![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Eng | Rus | Ukr | ![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Исследование операций
|
29.01.2005
|
![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2. Метод ОТСЕКАющих ПЛОСКОСТЕЙМетод отсекающих плоскостей впервые разработан Р. Гомори в 1957-1958 гг. для задач линейного цілочисельного программирование (ЛЦП) [18; 27]. Для группы методов отсечения плоскостей характерна так называемая 'регуляризация' задачи, состоящая в погружении исходной несвязанной области допустимых решений (дискретных точек) в объемлющую ее непрерывную выпуклую область, т.е. во временном отбрасывании условий дискретности. Затем к получившейся регулярной задаче применяются стандартные методы оптимизации. Если полученное в результате решение удовлетворяет отброшенному условию дискретности, то задача решена. В противном случае необходимо продолжить процесс решения. Для задачи ЛЦП соответствующая идея 'регуляризации', положенная в основу метода отсекающих плоскостей, высказана Г. Данцигом. Допустим необходимо решить задачу ЛЦП: минимизировать при условиях
Отбросив на определенное время условие целочисленности (4.2.4), найдем оптимальное решение. Если окажется, что он удовлетворяет также и условию целочисленности, то это решение является искомым. В противном случае нужно сформировать дополнительное ограничение, которому заведомо удовлетворяет любой целочисленный план, но не удовлетворяет найденный оптимальный нецелочисленный план. Такое ограничение называют 'правильным отсечением'. Геометрически правильное отсечение означает гиперплоскость, отсекающую от выпуклого многогранника соответствующей задачи ЛП некоторый многогранник, содержащий все целочисленные решения исходной задачи. Далее к исходной системе ограничений задачи добавляют правильное отсечение и описанный процесс решения продолжают аналогично. Если правильное отсечение сформировано удовлетворительно, то можно полагать, что через несколько итераций будeт найдено решение задачи ЛЦП либо будет зафиксирована несовместность ее условий. Рассмотрим задачу ЛП (4.2.1) - (4.2.3) в предположении, что все {aij}, {bi}, {cj} - целые числа и m < n. Пусть {А1, А2, ., Аm} - линейно независимые векторы ограничений, образующие базис системы {А1, А2, ., Аn}. Очевидно, матрица Ax= { А1, А2, ., Аm} - не вырождена, и поэтому существует обратная к ней Умножив ограничения задачи
Это соотношение в развернутой форме записи имеет вид
Откуда
где Соотношение (4.2.6) справедливо для любого решения, в том числе и оптимального. Подставляя выражение (4.2.6) в (4.2.1), получим
Решим задачу ЛП (4.2.1) - (4.2.3) симплекс-методом или двойственным симплекс-методом. Допустим, что оптимальным оказался базис {А1, А2, ., Аm}. Элементы последней симплекс-таблицы обозначим через xij, причем Выберем один из них, например Обозначим через [xij] целую часть, а через gij = xij - [xij] - дробную часть числа xij, причем xij ³ [xij]. Очевидно, 0 ≤ gij < 1. Пусть x = [xi]
Соотношение (4.2.8) справедливо для любого плана решаемой задачи. Допустим, что x - целочисленный план. Тогда, учитывая целочисленность левой части (4.2.8), получим Теперь возможны два случая: а) x ³ 1; б) x £ 0. В первом случае, если допустить, что x ³ 1, то
Нецелочисленный план x не удовлетворяет неравенству (4.2.9), поскольку Итак, ограничение (4.2.9) является правильным отсечением. Его записывают в эквивалентной форме
или
и добавляют к исходной системе линейных ограничений задачи. Переменные новой задачи таковы: {x1, x2, ., xn+1}... Ее условия уже разрешены относительно базисных переменных плана x = {x1, x2, ., xm} и новой переменной xn+1, и, следовательно, имеем псевдоплан с базисными компонентами: xi= xi0, Симплекс-таблица данного псевдоплана образуется дописыванием к таблице, отвечающей найденному оптимальному плану x, строки с элементами
Одновременно к таблице добавляют единичный вектор Аn+1 такой, что К этому плану применяют двойственный симплекс-метод. На первой итерации из базиса обязательно выводят вектор, отвечающий переменной xn+1, так как в столбце ai0 таблицы имеется один отрицательный элемент xn+1 = - Будем называть большой итерацией метода отсекающих плоскостей совокупность итераций алгоритма двойственного симплекс-метода, приводящих от псевдоплана с дробными компонентами к следующему оптимальному плану (не обязательно целочисленному). В зависимости от исхода большой итерации различают следующие три случая: 1) в столбце 2) получен новый план, где все 3) получен некоторый промежуточный псевдоплан, где имеется элемент Переменные С геометрической точки зрения это правило можно обосновать так. Если псевдоплан оказывается внутри полупространства Сделаем некоторые замечания относительно метода Гомори. 1. Двойственный симплекс-метод является основой метода отсекающих плоскостей Гомори, так как он позволяет учитывать новые ограничения (правильные отсечения) в процессе решения задачи и переходить от текущего псевдоплана к новому оптимальному плану. 2. При определенных условиях можно гарантировать конечность алгоритма Гомори. Достаточные условия конечности алгоритма установлены в следующей теореме [18]. Теорема 4.2. Если целевая функция задачи 3. Правильное отсечение можно формировать и по индексной строке. Пусть на k-й итерации элементы индексной строки таковы: Обозначим через g0j дробную часть элемента
4. В отличие от обычной задачи ЛП задача целочисленного программирования требует большого объема вычислений даже при малых m и n. Количество итераций существенно зависит от того, насколько удачно сформированы правильные отсечения. 5. В результате постоянного улучшения базового алгоритма метода Гомори были разработаны новые алгоритмы отсекающих плоскостей (второй и третий алгоритмы Гомори [12; 27]), которые используют более эффективные правильные отсечения. Пример 4.2. Решить методом Гомори следующую задачу: максимизировать при ограничениях
Для данной задачи оптимальный нецелочисленный план найден двойственным симплекс-методом (см. пример 2.9). Здесь это решение приведено в таблице 4.1. Таблица 4.1.
Образуем правильное отсечение по строке Допишем строку Таблица 4.2.
Находим в столбце Таблица 4.3.
Дописываем к табл.4.3 снизу строку Таблица 4.4
Так как в столбце Закончилась вторая большая итерация. Так как в столбце Анализируя табл.4.6, находим направляющий элемент Таблица 4.5
Таблица 4.6
Таблица 4.7
Так как полученный план в табл.4.7 еще нецелочисленный, то формируем новое правильное отсечение по индексной строке, дописывая к табл.4.7 строку и столбец Таблица 4.8
Выполнив одну итерацию двойственного симплекс-метода, приходим к табл.4.8, где получен искомый целочисленный план: |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2002-2004 | ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |