Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка исо 2012.doc
Скачиваний:
23
Добавлен:
10.11.2019
Размер:
4.49 Mб
Скачать

4.3. Метод искусственного базиса

В задачах линейного программирования, где все ограничения являются неравенствами типа "≤" (с неотрицательной правой частью), дополнительные (остаточные) переменные позволяют сформировать начальное допустимое базисное решение. Естественно, возникает вопрос: как найти начальное допустимое базисное решение в задачах ЛП, где есть ограничения в виде равенств или неравенств типа "≥"?

Наиболее общим способом построения начального допустимого базисного решения задачи ЛП является использование искусственных переменных. Эти переменные в первой итерации играют роль дополнительных остаточных переменных, но на последующих итерациях от них освобождаются. Разработано два тесно связанных между собой метода нахождения начального решения, которые используют искусственные переменные: М-метод и двухэтапный метод.

Рассмотрим М-метод:

Пусть задача ЛП записана в стандартной форме. Для любого равенства i, в котором не содержится дополнительная положительная переменная, введем искусственную переменную Ri, которая далее войдет в начальное базисное решение. Но, поскольку эта переменная искусственна (другими словами, не имеет никакого "физического смысла" в данной задаче), необходимо сделать так, чтобы на последующих итерациях она обратилась в нуль. Для этого в выражение целевой функции вводят штраф.

Переменная Ri с помощью достаточно большого положительного числа М штрафуется путем ввода в целевую функцию выражения -MRi в случае максимизации целевой функции и выражения +MRi — в случае минимизации. Вследствие этого штрафа естественно предположить, что процесс оптимизации симплекс-метода приведет к нулевому значению переменной Ri. Следующий пример проясняет детали этого метода.

Пример №1

Дана математическая модель задачи линейного программирования:

Стандартная форма этой задачи получается в результате добавления дополнительной отрицательной (избыточной) переменной х3 во второе неравенство и дополнительной положительной (остаточной) переменной x4 в третье неравенство.

Эта задача в стандартной форме будет записана следующим образом:

В полученной задаче первое и второе уравнения не имеют дополнительных (остаточных) переменных, которые можно ввести в базисное решение. Поэтому введем в эти уравнения искусственные переменные R1 и R2 а в целевую функцию добавим штраф MR1 + MR2. В результате получим следующую задачу ЛП.

В этой модифицированной задаче переменные R1, R2 и х4 используются в качестве начального допустимого базисного решения. В результате получим следующую симплекс-таблицу:

Переменные

Базис

х1

х2

х3

R1

R2

х4

свободные

члены bj

R1

3

1

0

1

0

0

3

R2

4

3

-1

0

1

0

6

х4

1

2

0

0

0

1

4

F

-4

-1

0

-M

-M

0

0

Заметьте, что в данном методе коэффициенты целевой функции заносятся с противоположным знаком не зависимо от направления поиска.

Прежде чем применять симплекс-метод, надо согласовать значения в F-строке с остальной частью таблицы. В частности, значение функции F, соответствующее начальному базисному решению R1= 3, R2=6 и х4 = 4, должно равняться ЗM+6M+0=9M, а не 0, как показано в таблице. Это противоречие связано с тем, что переменным R1 и R2 соответствуют ненулевые коэффициенты (-M, -М) в строке F, где обычно дополнительным переменным соответствуют нулевые коэффициенты. Чтобы сделать эти коэффициенты нулевыми, следует умножить элементы строк R1 и R2 на величину M, и затем сложить эти строки с F-строкой. (Обратите внимание на "подсвеченные" единицы в этих строках — если бы эти коэффициенты были отличны от единиц, то необходимо было бы сначала разделить все элементы этих строк на данные коэффициенты.) Кратко это действие можно записать следующим образом:

Новая F-строка = старая F-строка + MR1-строка + MR2-строка.

Измененная симплекс-таблица примет следующий вид:

Переменные

Базис

х1

х2

х3

R1

R2

х4

свободные

члены b

R1

3

1

0

1

0

0

3

R2

4

3

-1

0

1

0

6

х4

1

2

0

0

0

1

4

F

-4+7M

-1+4M

-M

0

0

0

9M

Отметим, что теперь F = 9M, что соответствует базисному решению R1= 3, R2=6 и х4 = 4.

Последняя таблица готова к применению симплекс-метода с использованием условий оптимальности и допустимости. Поскольку минимизируем целевую функцию, то находим наибольший положительный коэффициент в F-строке. Наибольший коэффициент -4 +7М соответствует переменной x1 которая и будет вводимой. Условие допустимости (оценочное отношение) указывает на переменную R1 в качестве исключаемой.

Поскольку вводимая и исключаемая переменные определены, новую симплекс-таблицу можно вычислить с помощью метода Жордана-Гаусса. Заметим, что вычисления в F-строке, где присутствует M, следует проводить алгебраически. Так, для получения новой F-строки необходимо новую ведущую строку умножить на -(-4 + 7М) и сложить с текущей F-строкой. В результате получим следующую таблицу:

Переменные

Базис

х1

х2

х3

R1

R2

х4

свободные

члены b

x1

1

1/3

0

1/3

0

0

1

R2

0

5/3

-1

-4/3

1

0

2

х4

0

3/5

0

-1/3

0

1

3

F

0

(1+5M)/3

-M

(4-7M)/3

0

0

4+2M

Отметим, что уже первая итерация исключила из базисного решения искусственную переменную R1, что является результатом включения штрафа в целевую функцию.

Последняя таблица показывает, что следующими (вводимой и исключаемой) переменными будут х2 и R2 соответственно. Конечно, для получения оптимального решения может потребоваться больше двух итераций.

В данной задаче оптимальным решением будет x1= 2/5, х2 = 9/5, х3=1 и F= 17/5.

Пример №2

Дана математическая модель задачи линейного программирования:

Стандартная форма этой задачи получается в результате добавления дополнительной положительной (остаточной) переменной х5 во второе неравенство и дополнительной отрицательной (избыточной) переменной x6 в третье неравенство. Эта задача в стандартной форме будет записана следующим образом.

В полученной задаче третье уравнение не имеет дополнительной положительной переменной, которую можно ввести в базисное решение. Поэтому введем в это уравнение искусственную переменную а в целевую функцию добавим штраф . В результате получим следующую задачу ЛП.

В результате получим следующую симплекс-таблицу:

Переменные

Базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

х4

2

1

-2

1

0

0

0

24

х5

1

2

4

0

1

0

0

22

R1

1

-1

2

0

0

-1

1

10

F

-3

3

-6

0

0

0

-M

0

Прежде чем применять симплекс-метод, надо согласовать значения в F-строке с остальной частью таблицы.

Новая F-строка = старая F-строка - MR1-строка

Измененная симплекс-таблица примет следующий вид:

Переменные

Базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

х4

2

1

-2

1

0

0

0

24

х5

1

2

4

0

1

0

0

22

R1

1

-1

2

0

0

-1

1

10

F

-3-M

3+M

-6-2M

0

0

M

0

-10M

Поскольку максимизируем целевую функцию, то находим наибольший по модулю отрицательный коэффициент в F-строке. Наибольший по модулю отрицательный коэффициент -6 -2М соответствует переменной x3 которая и будет вводимой.

Переменные

Базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

Оценочное отношение

х4

2

1

-2

1

0

0

0

24

х5

1

2

4

0

1

0

0

22

22/4

R1

1

-1

2

0

0

-1

1

10

10/2

F

-3-M

3+M

-6-2M

0

0

M

0

-10M

Условие допустимости (оценочное отношение) указывает на переменную R1 в качестве исключаемой. В результате получим следующую таблицу:

Переменные

Базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

х4

3

0

0

1

0

-1

1

34

х5

-1

4

0

0

1

2

-2

2

х3

0,5

-0,5

1

0

0

-0,5

0,5

5

F

0

0

0

0

0

-3

3M

30

Отметим, что уже первая итерация исключила из базисного решения искусственную переменную R1.

Переменные

базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

Оценочное отношение

х4

3

0

0

1

0

-1

1

34

х5

-1

4

0

0

1

2

-2

2

1

х3

0,5

-0,5

1

0

0

-0,5

0,5

5

F

0

0

0

0

0

-3

3M

30

Полученный план не оптимален, т.к. в целевой строке содержится отрицательный элемент. Наибольший по модулю отрицательный коэффициент -3 соответствует переменной x6 которая и будет вводимой.

Оценочное отношение указывает на переменную x6 в качестве исключаемой.

Переменные

базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

Оценочное отношение

х4

2,5

2

0

1

0,5

0

0

35

14

х6

-0,5

2

0

0

0,5

1

-1

1

х3

0,25

0,5

1

0

0,25

0

0

5,5

22

F

-1,5

6

0

0

1,5

0

M

33

Полученный план не оптимален, т.к. в целевой строке содержится отрицательный элемент. Наибольший по модулю отрицательный коэффициент -1.5 соответствует переменной x1 которая и будет вводимой.

Оценочное отношение указывает на переменную x4 в качестве исключаемой.

Переменные

базис

х1

х2

х3

х4

x5

x6

R1

свободные

члены bj

х1

1

0,8

0

0,4

0,2

0

0

14

х6

0

2,4

0

0,2

0,6

1

-1

8

х3

0

0,3

1

-0,1

0,2

0

0

2

F

0

7,2

0

0,6

1,8

0

M

54

Полученный план оптимален. Результат можно записать как:

х1=14

х2=0, т.к. ее нет в базисе

х3=2

F=54

Проведем проверку: .

При использовании M-метода следует обратить внимание на следующие два обстоятельства.

1. Использование штрафа М-может и не привести к исключению искусственной переменной в конечной симплекс-итерации. Если исходная задача линейного программирования не имеет допустимого решения (например, система ограничений несовместна), тогда в конечной симплекс-итерации по крайней мере одна искусственная переменная будет иметь положительное значение. Это "индикатор" того, что задача не имеет допустимого решения.

2. Теоретически применение М-метода требует, чтобы M→∞. Однако с точки зрения компьютерных вычислений величина М должна быть конечной и, вместе с тем, достаточно большой. Как понимать термин "достаточно большая" — это открытый вопрос. Величина М должна быть настолько большой, чтобы выполнять роль "штрафа", но не слишком большой, чтобы не уменьшить точность вычислений. На практике вы должны помнить о возможных ошибках машинного округления при выполнении вычислений, в которых совместно участвуют как большие, так и малые числа.