Сервис для решения задач по линейному программированию

и другие интересные типовые задачи
English

Пример №8. Решение задачи линейного программирования симплекс методом.
Область допустимых решений - пустое множество

Данное решение сделано калькулятором, представленным на сайте.
Задача:

Найти наибольшее значение функции
F = x1 + x2
при следующих ограничениях:
Знак системы 3 x1 + 5 x2 30
4 x1 - 3 x2 12
x1 - 3 x2 6
x1 ≥ 0    x2 ≥ 0    

Решение:

1. Свободные члены системы должны быть неотрицательными.
Данное условие выполнено.

2. Каждое ограничение системы должно представлять собой уравнение.
Знак системы 3 x1 + 5 x2 30
4 x1 - 3 x2 12
x1 - 3 x2 6
Знак системы 3 x1 + 5 x2 + S1 = 30
4 x1 - 3 x2 + S2 = 12
x1 - 3 x2 - S3 = 6
S1 ≥ 0, S2 ≥ 0, S3 ≥ 0.   Введенные переменные S1, S2, S3, называются балансовыми переменными.

3. Нахождение начального базиса и значения функции F, которое соответствует найденному начальному базису.

Что такое базис?
Переменная называется базисной для данного уравнения, если она входит в данное уравнение с коэффициентом один и не входит в оставшиеся уравнения системы (при условии, что в правой части уравнения стоит неотрицательное число).
Если в каждом уравнении присутствует базисная переменная, тогда говорят, что в системе присутствует базис.
Переменные, которые не являются базисными, называются свободными.

В чем заключается идея симплекс метода?
Каждому базису соответствует единственное значение функции. Одно из них является наибольшим значением функции F.
Мы будем переходить от одного базиса к другому.
Следующий базис будем выбирать таким образом, чтобы получить значение функции F не меньше имеющегося.
Очевидно, количество возможных базисов для любой задачи число не очень большое.
Следовательно, рано или поздно, ответ будет получен.

Как осуществляется переход от одного базиса к другому?
Запись решения удобнее вести в виде таблиц. Каждая строка таблицы эквивалентна уравнению системы. Выделенная строка состоит из коэффициентов функции (см. таблицу ниже). Это позволяет не переписывать переменные каждый раз, что существенно экономит время.
B выделенной строке выбираем наибольший положительный коэффициент (можно выбрать любой положительный).
Это необходимо для того, чтобы получить значение функции F не меньше имеющегося.
Выбран столбец.
Для положительных коэффициентов выбранного столбца считаем отношение Θ и выбираем наименьшее значение.
Это необходимо для того, чтобы после преобразования столбец свободных членов остался неотрицательным.
Выбрана строка.
Определен элемент, который будет базисным. Далее считаем.

В нашей системе есть базис?
Знак системы 3 x1 + 5 x2 + S1 = 30
4 x1 - 3 x2 + S2 = 12
x1 - 3 x2 - S3 = 6
Базиса нет, т.е. мы не можем начать решение.
Придется его найти. Для этого решим вспомогательную задачу.
Добавим искусственную переменную в то уравнение, где нет базисной переменной.
Знак системы 3 x1 + 5 x2 + S1 = 30
4 x1 - 3 x2 + S2 = 12
x1 - 3 x2 - S3 + R1 = 6
R1 ≥ 0.   Введенная переменная R1, называется искусственной переменной.
Введем в рассмотрение функцию W и будем искать ее наименьшее значение.
Алгоритм нахождения наименьшего значения функции W имеет только одно отличие от алгоритма, рассмотренного выше.
W = R1
W = 6 - x1 + 3 x2 + S3
Приравниваем свободные переменные нулю. Устно находим значения базисных переменных. (см. систему)
Функция W выражена через свободные переменные. Поэтому значение функции W, для данного базиса, можно найти мгновенно.
x1 = 0   x2 = 0   S3 = 0  
S1 = 30   S2 = 12   R1 = 6  
=> W = 6

Шаг №1
x1 x2 S1 S2 S3 R1 св. член Θ
3 5 1 0 0 0 30 30 : 3 = 10
4 -3 0 1 0 0 12 12 : 4 = 3
1 -3 0 0 -1 1 6 6 : 1 = 6
-1 3 0 0 1 0 W - 6
3 5 1 0 0 0 30
1 -3/4 0 1/4 0 0 3
1 -3 0 0 -1 1 6
-1 3 0 0 1 0 W - 6
0 29/4 1 -3/4 0 0 21
1 -3/4 0 1/4 0 0 3
0 -9/4 0 -1/4 -1 1 3
0 9/4 0 1/4 1 0 W - 3
Приравниваем свободные переменные нулю. Устно находим значения базисных переменных. (см. таблицу)
Функция W выражена через свободные переменные. Поэтому значение функции W, для данного базиса, можно найти мгновенно. (см. выделенную строку таблицы)
x2 = 0   S2 = 0   S3 = 0  
x1 = 3   S1 = 21   R1 = 3  
=> W - 3 = 0   => W = 3
Среди коэффициентов выделенной строки нет отрицательных. Следовательно, найдено наименьшее значение функции W.
Но в базисе по-прежнему содержатся искусственные переменные.
Следовательно, область допустимых решений исходной задачи - пустое множество.
Ответ:

Область допустимых решений задачи - пустое множество.










© 2010-2024

Если у Вас есть замечания, пожалуйста, пишите siteReshmat@yandex.ru


Ссылки