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

13.3.1 Первый алгоритм Гомори решения полностью целочисленных задач

          Рассмотрим полностью целочисленную задачу линейного программирования (13.4) – (13.7), в которой n1 = n.

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

        Обозначим через N совокупность небазисных переменных и на основании последней симплексной таблицы выразим целевую функцию и все переменные  через небазисные переменные :

.                    (13.10)

Так как  – нецелая величина, обозначим ближайшее целое число, не превосходящее , через [ ] (целая часть ) и определим дробную часть числа  ({ }):{ }=  – .

Очевидно, { }>0.

     Теорема 13.5. Пусть  – допустимое решение задачи . Тогда соотношение

,

                             (13.11)

определяют правильное отсечение.

Доказательство. Запишем выражение (13.10) в виде

Используя выражение (13.11), получим

или

.

На основании предположения теоремы о допустимости решения задачи    – целые. Величины  целые по определению. Следовательно,  тоже целое.

Докажем, что . Предположим, что . Это значит, что

.

По определению дробной части . По условию теоремы x – допустимое решение задачи , поэтому . Следовательно, , . Отсюда , или, что то же самое, . Итак,  – нецелое, а это противоречит только что доказанному. Следовательно, предположение  неверное. Теорема доказана.

Следствие. Любое оптимальное решение X(D, F) задачи (D, F), не являющиеся допустимым решением задачи  не удовлетворяет условию правильного отсечения (13.11).

Доказательство. Пусть X(D, F) – оптимальное решение задачи (D, F), –дробное. Покажем, что  не удовлетворяет условию отсечения. Из оптимальности плана  следует, что . Поэтому . Учитывая это, подставим  в выражение (13.11):

что противоречит условию .

       Важной проблемой метода отсечения является нарастание количества дополнительных ограничений по мере решения вспомогательных задач, оптимальные планы которых будут содержать нецелые координаты, т.е. возникает проблема размерности. Гомори предложил прием, ограничивающий размеры рассматриваемых расширенных симплексных таблиц числом (n+2)(k+1), где n – количество переменных задач , k – число ее небазисных переменных. Этот прием основан на том, что дополнительные ограничения (правильные отсечения)  интересуют нас лишь как способ отсечения нецелочисленного оптимального решения  и перехода от задачи  к задаче . Заметим, что переменная  выводится из базиса сразу же после введения ограничения:

,

.

Идею Гомори проиллюстрируем на конкретном примере.

         Пример. Решить полностью целочисленную задачу линейного программирования:

максимизировать

при условиях

Отбрасывая условие целочисленности, решаем задачу  симплексным методом.

Решение задачи :

Номер итерации

Базисные переменные

 

0

6

-1

3

1

0

2

35

7

1

0

1

35

F

0

-7

-9

0

0

 

 

 

 

 

 

 

 

 

 

I

2

-1/3

1

1/3

0

33

22/3

0

-1/3

1

9/2

F

18

-10

0

3

0

 

 

II

7/2

0

1

7/22

1/22

 

9/2

1

0

-1/22

3/22

 

F

63

0

0

28/11

15/11

 

 

 

 

 

 

 

 

 

 

  После II итерации получаем в последней симплексной таблице оптимальное решение . Это решение не целочисленное. Поэтому переходим к построению задачи . С нецелочисленным значением  две строки – первая и вторая. Номер k выбираем из условия

.

В нашем случае . Тогда для образования сечения выбирается первая строка, т.е.  k= 1. Запишем первое сечение Гомори:

.

Так как {7/2} = 1/2, {7/22} = 7/22, {1/22} = 1/22, получаем

.

Перенеся члены с переменными в правую часть и введя неотрицательную балансовую переменную , получим сечение в форме 3-го дополнительного уравнения .                                                                              (13.12)

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

Решение задачи :

Номер итерации

Базисные переменные

 

 

0

7/2

0

1

7/22

1/22

0

11

77

9/2

1

0

-1/22

3/22

0

11/3

1/2

0

0

7/22

1/22

-1

11/7

11

F

63

0

0

28/11

15/11

0

 

 

 

I

3

0

1

0

0

-1

 

 

32/7

1

0

0

1/7

-1/7

 

 

11/7

0

0

1

1/7

-22/7

 

 

F

59

0

0

0

1

8

 

 

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

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

В данном случае min{ } соответствует выделенной строке 3-го столбца. Поэтому, выбрав за разрешающие 3-ю строку и 3-й столбец, сразу получим опорное решение, которое одновременно и оптимально: . Так как оно опять не целочисленное, то перейдем к построению задачи .

Соответствующие сечение следующее:

.

Так как      имеем новое,4-е уравнение

.

Введя неотрицательную балансовую переменную , получим сечение 4-го дополнительного уравнения для задачи :

После выполнения I итерации имеем опорное решение которое одновременно и оптимальное и целочисленное. Таким образом, , .

Решение задачи :

Номер итерации

Базисные переменные

 

 

0

3

0

1

0

0

1

0

-

3

32/7

1

0

0

1/7

-1/7

0

32

-

11/7

0

0

1

1/7

-22/7

0

11

-

4/7

0

0

0

1/7

6/7

-1

4

2/3

F

59

0

0

0

1

8

0

 

 

 

I

3

0

1

0

0

1

0

 

 

4

1

0

0

0

-1

1

 

 

1

0

0

1

0

-4

1

 

 

4

0

0

0

1

6

-7

 

 

F

55

0

0

0

0

2

7

 

 

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

Для новой области  находим оптимальное решение задачи   ; при переходе к задаче  строим второе сечение , которое после исключения базисных переменных  и  примет вид . В новой области оптимальное решение оказывается искомым целочисленным.

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

Теорема 13.6. Пусть множество оптимальных планов задачи  ограничено и выполняются следующие условия:

1) гарантирована целочисленность целевой функции  (например, все  – целые) и строка целевой функции учитывается при выборе строки для построения правильного отсечения:

2) справедливо по крайней мере одно из двух утверждений: либо целевая функция  ограничена снизу на , либо задача  имеет хотя бы один план .

Тогда первый алгоритм Гомори требует лишь конечного числа больших итераций.

Метод Отсечений

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

(13.24)

(13.25)

        Будем говорить, что отсечение (13.24) более эффективно, чем отсечение (13.25), если  для всех j, причем хотя бы при одном j выполняется строгое неравенство.

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

        Оптимальное значение целевой функции (F = 63) задачи , рассмотренное в предпоследнем примере, достигается в точке . Поскольку значение F является целым, соответствующая строка не может быть выбрана в качестве производящей. Так как , первое практическое правило не позволяет осуществить выбор производящей строки. Применим второе правило. Запишем отсечения, соответствующие производящим строкам с базисными переменными  и :

.

.

Так как

,

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

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

;

.

Второе практическое правило также не применимо. В этом случае для образования сечения выбирается первая их данных строк.

        Основные недостатки методов отсечений.

        1. Ни один тип отсечений не обеспечивает высокой эффективности соответствующих вычислительных процедур.

        2. Методы отсечений не подходят для решения целочисленных задач больших размерностей.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]