Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_4семестр.doc
Скачиваний:
5
Добавлен:
24.09.2019
Размер:
541.7 Кб
Скачать

24 Графо-аналитический метод решения задач целочисленного программирования. Область допустимых решений. Случаи множества равноценных оптимальных планов.

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

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

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

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

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

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

25. Основные этапы решения целочисленных задач методом Р.Гомори, области применения этого класса задач в экономике. По смыслу значительной части экономических задач, относящихся к задачам линейного программирования, компоненты решения должны выражаться в целых числах, т.е. быть целочисленными. К ним относятся, например, задачи, в которых переменные означают количество единиц неделимой продукции, число судов при распределениях по линиям, число турбин в энергосистеме, число вычислительных машин в управляющем комплексе и многие другие.

Задача линейного целочисленного программирования формулируется следующим образом: найти такое решение (план) Х=(х1, х2, …, хn), при котором линейная функци

принимает максимальное или минимальное значение при ограничениях , i=1, 2, …, m

, j= 1, 2,…,n. Xj- целые числа.

Один из алгоритмов решения задачи линейного целочисленно­го программирования (2.4.2)-(2.4.4), предложенный Гомори, основан на симплексном методе и использует достаточно простой способ построения правильного отсечения.

Пусть задача линейного программирования (2.4.1)-(2.4.3) име­ет конечный оптимум и на последнем шаге ее решения сим­плексным методом получены следующие уравнения, выра­жающие основные переменные х1, х2, ..., xj..., xm через неос­новные переменные xm+1, xm+2,…, xm+i, …, xn  оптимального решения

                (2.4.5)

так, что оптимальным решением задачи (2.4.1)-(2.4.3) является Х* = (β1, β2, …, βi, …βm,0,0,…,0), в котором, например β­i - нецелая компонента. В этом случае можно доказать, что неравен­ство

              (2.4.6)

сформированное по i-му уравнению системы (2.4.5), обладает всеми свойствами правильного отсечения.

Для решения задачи целочисленного линейного программиро­вания (2.4.1)-(2.4.4.) методом Гомори используется следующий ал­горитм:

- симплексным методом решается задача (2.4.1)-(2.4.3) без учета условия целочисленности. Если все компоненты оптимального плана целые, то он является оптимальным и для задачи целочис­ленного программирования (2.4.1)-(2.4.4). Если первая задача (2.4.1)-(2.4.3) неразрешима (т.е. не имеет конечного оптимума или условия ее противоречивы), то и вторая задача (2.4.1)-(2.4.4) также неразре­шима;

- если среди компонент оптимального решения есть неце­лые, то выбирается компонента с наибольшей целой частью и по соответствующему уравнению системы (2.4.5) формируется пра­вильное отсечение (2.4.6);

- неравенство (2.4.6) путем введения дополнительной неотрицатель­ной целочисленной переменной преобразовывается в равносильное уравнение

           (2.4.7)

 и включается в систему ограничений (2.4.2);

- полученную расширенную задачу решают симплексным ме­тодом. Если найденный оптимальный план будет целочисленным, то задача целочисленного программирования (2.4.1)-(2.4.4) решена. В противном случае следует вернуться к пункту 2 алгоритма и повторить цикл до тех пор, пока не будет получен оптимальный план .

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

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

26. Правила составления дополнительного условия Гомори. Дробная часть чисел в условии Гомори. Правила расчета новых таблиц двойственным симплексным методом. Для решения задачи целочисленного линейного программиро­вания (2.4.1)-(2.4.4.) методом Гомори используется следующий ал­горитм:

- симплексным методом решается задача (2.4.1)-(2.4.3) без учета условия целочисленности. Если все компоненты оптимального плана целые, то он является оптимальным и для задачи целочис­ленного программирования (2.4.1)-(2.4.4). Если первая задача (2.4.1)-(2.4.3) неразрешимна (т.е. не имеет конечного оптимума или условия ее противоречивы), то и вторая задача (2.4.1)-(2.4.4) также неразре­шима;

- если среди компонент оптимального решения есть неце­лые, то выбирается компонента с наибольшей целой частью и по соответствующему уравнению системы (2.4.5) формируется пра­вильное отсечение (2.4.6);

- неравенство (2.4.6) путем введения дополнительной неотрицатель­ной целочисленной переменной преобразовывается в равносильное уравнение

           (2.4.7)

 и включается в систему ограничений (2.4.2);

- полученную расширенную задачу решают симплексным ме­тодом. Если найденный оптимальный план будет целочисленным, то задача целочисленного программирования (2.4.1)-(2.4.4) решена. В противном случае следует вернуться к пункту 2 алгоритма и повторить цикл до тех пор, пока не будет получен оптимальный план .

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

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

Задачи линейного программирования можно решать двойственным симплексным методом. Системы ограничений в задачах при положительном базисе имеют свободные члены любого знака. Двойственный симплексный метод позволяет значительно уменьшить размеры симплексной таблицы и количество преобразований системы ограничений. Для получения решения исходной задачи можно перейти к двойственной. А используя оценки ее оптимального плана, можно определить оптимальное решение исходной задачи.

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

bi являются оценками плана двойственной задачи. Сj являются оценками плана исходной задачи.

Найдем решение двойственной задачи по симплексной таблице. В симплексной таблице прописана исходная задача. Также определим оптимальный план двойственной задачи. Также найдем и оптимальный план исходной задачи.

Такой метод принято называть двойственным симплексным методом.

Допустим нужно определить исходную задачу линейного программирования, которая поставлена в общем виде: минимизировать функцию Z=СХ при АХ=A0, Х>0. Значит в двойственной задаче следует максимизировать функцию f=YA0 при YA>С. Пусть определен следующий базис D=(A1, А2,…, Аi,…, Аm), причем в нем хотя бы одна из компонент вектора Х=D-1A0=(x1, x2,…, xi,…, xm) отрицательная. Для всех векторов Aj используется следующее соотношение Zj-Cj >0 (i=1,2,…, n).

Пользуясь теоремой двойственности, Y=СбазD-1 является планом двойственной задачи. Этот план не оптимальный. Потому что оценки оптимального плана двойственной задачи должны быть неотрицательными и выбранный базис X содержит отрицательную компоненту и не является планом исходной задачи, а с другой стороны.

Поэтому, следует исключить из базиса исходной задачи вектор Аi, который соответствует компоненте xi<0. Данный вектор относится к отрицательной оценке, его необходимо включить в базис двойственной задачи.

Просматриваем i-ю строку для выбора вектора, включаемого в базис исходной задачи. Т.е. если строка не имеет xij<0, тогда линейная функция двойственной задачи не ограничена на многограннике решений. Поэтому нет решений исходной задачи.

В противном случае для столбцов, имеющих отрицательные значения, определяем q0j=min(xi/xij)>0. Также находим вектор, который соответствует minq0j(Zj-Cj) при решении исходной задачи на максимум, а также maxq0j(Zj-Cj) при значении исходной задачи на минимум.

Найденный вектор включаем в базис исходной задачи. Направляющей строкой определяется вектор, который надо убрать из базиса исходной задачи.

Допустим, что q0j=min(xi/xij)=0, т.е. xi=0, тогда xij выбирается как разрешающий элемент, но лишь тогда, когда xij>0.

Данный подход к решению задачи не приводит к росту количества отрицательных компонент вектора X. Пока не будет получено Х>0, процесс не прекращается.

Определяя оптимальный план двойственной задачи, находим и оптимальный план исходной задачи.

Используя при решении, алгоритм двойственного симплексного метода условие Zj-Cj>0 допускается не учитывать, пока не будут исключены все хi<0.

Обычным симплексным методом определяется оптимальный план. Этот метод обычно используется при условии, что все хi<0. Чтобы перейти к плану исходной, задачи за одну итерацию надо определить q0j=max(xi/xij)>0.