Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
все темы 12.doc
Скачиваний:
127
Добавлен:
04.07.2015
Размер:
4.5 Mб
Скачать

Методы отсечения.

Суть метода состоит в том, что сначала решается задача линейного программирования без условия целочисленности. Если полученный ответ удовлетворяет условию целочисленности, то задача решена. В противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами:

  • оно должно быть линейным;

  • оно должно отсекать найденный оптимальный нецелочисленный план;

  • оно не должно отсекать ни одного целочисленного плана.

Такие ограничения называются правильными отсечениями.

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

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

Пример 11.

х1, х2- целые.

Построим область допустимых решений задачи (рис.). Это многоугольник АВСДЕ. Построим вектор градиент целевой функции (1;-3). Ясно, что точкой оптимума будет точка В(3.5;6.5). Полученное решение не удовлетворяет условию целочисленности. Проведем прямую А'B', отсекающую точку В и не отсекающую ни одну целую точку. Получаем новый многоугольник АА'B'СДЕ, где А' и B' имеют целые координаты. Точка А'(3;6) - новое решение задачи целочисленного программирования.

Метод Гомори.

Пусть задача линейного программирования имеет оптимальное решение. Не нарушая общности задачи предположим х1, х2,…хm-это базисные переменные, полученные на последнем шаге симплекс-метода. Они выражены через небазисные переменные хm+1, хm+2,…хn.

Оптимальное решение задачи Х*(1,2, …,m, 0, 0,…,0).

Пусть в этом оптимальном решении iне целая компонента.

Алгоритм метода Гомори.

  1. Решаем задачу симплекс методом. Если найденное решение целочисленно, то задача решена. Если задача не разрешима, то она не имеет решений и в целых числах.

  2. Если среди компонент оптимального решения есть не целые, то надо выбрать компоненту с оптимальной целой частью и сформулировать правильное отсечение из условия

  3. Вводим дополнительную неотрицательную целую переменную хn+1и получаем новое уравнение

  4. Полученную расширенную задачу решаем симплекс-методом. Если новый найденный план целочисленный, то задача решена, если нет то повторяем процедуру.

Замечание.- дробная часть числа.

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

Пример 12.

Решить задачу в целых числах.

Приведем задачу к каноническому виду:

Построим симплекс таблицу

Базис

Свободный член

Переменные

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

x1

x2

x3

x4

x5

x3

60

3

5

1

0

0

12

x4

34

3

4

0

1

0

17/2

x5

8

0

1

0

0

1

8

z

0

-2

-3

0

0

0

Данный план не оптимален, так как в оценочной строке есть отрицательные элементы. Наибольший по модулю в столбце х2. Следовательно х2переменная вводимая в базис. Построим оценочные отношения. Наименьшее соответствует строке х5. Значит х5вводимая в базис переменная. Переходим к новой симплекс-таблице.

Базис

Свободный член

Переменные

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

x1

x2

x3

x4

x5

x3

20

3

0

1

0

-5

20/3

x4

2

3

0

0

1

-4

2/3

x2

8

0

1

0

0

1

z

24

-2

0

0

0

3

Полученное решение не является оптимальным. х1вводимая, х4выводимая переменная. Переходим к новой симплекс-таблице.

Базис

Свободный член

Переменные

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

x1

x2

x3

x4

x5

x3

18

0

0

1

-1

-1

x1

2/3

1

0

0

1/3

-4/3

x2

8

0

1

0

0

1

z

76/3

0

0

0

2/3

1/3

Полученное решение Х(2/3;8;18;0;0) оптимально, но не является целочисленным (х1=2/3).

Построим правильное отсечение из условия:

Найдем дробные части от чисел стоящих в фигурных скобках:

;;

Получим неравенство:

Введем дополнительную целую переменную

Полученное уравнение надо добавить в систему ограничений и решить симплекс-методом новую задачу.

Для сокращения числа шагов можно вводить новое уравнение в симплекс-таблицу, полученную на последнем шаге.

Базис

Свободный член

Переменные

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

x1

x2

x3

x4

x5

x6

x3

18

0

0

1

-1

-1

0

x1

2/3

1

0

0

1/3

-4/3

0

x2

8

0

1

0

0

1

0

8

x6

2/3

0

0

0

1/3

1/3

-1

1

z

76/3

0

0

0

2/3

1/3

0

Полученное базисное решение не допустимо (х6=-1).

Замечание.Включение в систему ограничений дополнительного ограничения, соответствующего правильному отсечению всегда дает недопустимое базисное решение.

Для получения допустимого базисного решения необходимо перевести в основные переменные переменную, входящую со знаком "+" в уравнение, в котором свободный член отрицательный. В нашем случае это переменная х4или.x5. Введем х5.

Базис

Свободный член

Переменные

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

x1

x2

x3

x4

x5

x6

x3

19

0

0

1

-1/2

0

-2/3

x1

2

1

0

0

1

0

-2

x2

7

0

1

0

-1/2

0

3/2

x5

1

0

0

0

1/2

1

3/2

z

25

0

0

0

1/2

0

1/2

Полученное решение является оптимальным. Найденный план целочисленен Х(2;7;19;0;1;0).