- •Государственный комитет рсфср по делам науки и высшей школы
- •Введение
- •Лабораторная работа I одномерная оптимизация
- •Постановка задачи
- •Краткие общие сведения Метод Пассивного поиска
- •Метод Фибоначчи
- •Метод золотого сечения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа 3 симплексный метод
- •Постановка задачи
- •Краткие общие сидения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа 4 решение прямой и двойственной задач
- •Краткие общие сведения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Тексты исходных задач Вариант I
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Лабораторная работа 5 транспортная задача
- •Постановка задачи
- •Краткие общие сведения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа 6 задача 0 коммивояжере
- •Постановка задачи
- •Краткие общие сведения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Содержание
- •197376, Санкт-Петербург, ул. Проф. Попова, 5
Требования к отчету
Отчет должен содержать:
а) постановку задачи;
б) последовательность решений (кончая оптимальным) и их стоимостей;
в) обоснование действий по улучшению начального решения;
г) ответы на контрольные вопросы.
Контрольные вопросы
1. Почему базисное решение должно содержать m+n-1компонент?
2. Приведите пример транспортной задачи, одно из базисных решений которой содержит нулевые компоненты.
3. Почему один из потенциалов можно положить равным О?
4. Почему характеристические разности вычисляются только для небазисных клеток?
5. Почему величина перераспределяемого потока определяется формулой (5.6)?
Лабораторная работа 6 задача 0 коммивояжере
Цель работы. Изучение метода ветвей и границ на примере решения задачи коммивояжера.
Постановка задачи
Коммивояжер должен побывать в каждом из nгородов в точности по одному разу и закончить свое путешествие в том городе, откуда
- 25 -
он его начал. Задача коммивояжера состоит в минимизации суммарных дорожных расходов.
Формально она может быть поставлена так:
Минимизировать
при условиях
(6.1)
(6.2)
перестановка
(6.3)
где (i1, j1), ..., (in, jn) -индексы ненулевых переменныхXij
не содержит внутренних циклов.
Здесь
Cij- стоимость переезда изi-го города вj-й,
1, если путь из i-го городаj-й включается в марш-
Xij = рут коммивояжера,
О, иначе.
Краткие общие сведения
Поставленная задача очень напоминает задачу о назначениях и отличается от последней лишь наличием дополнительного условия (6.3). Это обстоятельство, однако, делает ее нелинейной и не позволяет применить к ее решению методы линейного программирования (служащие, в частности, базой классического "венгерского" метода решения задачи о назначениях). Тем не менее, задача коммивояжера может успешно решаться с помощью весьма общего метода решения переборных задач - метода ветвей и границ.
Напомним здесь основную идею метода. Конечное множество решений задачи последовательно разбивается на подмножества, на каждом из которых вычисляется оценка снизу минимизируемой функции.
- 26 -
Процесс последовательного деления через конечное число шагов приводит к появлению подмножества, содержащего всего одно решение. Для такого подмножества оценка снизу целевой функции может быть заменена ее точным значением, которое объявляется так называемым "рекордом". С момента появления "рекорда" появляется возможность сравнивать с ним "потенциальные возможности", заложенные в каждом из получившихся подмножеств:
а) если оценка снизу целевой функции на каком-либо подмножестве больше, чем "рекорд", то соответствующее подмножество можно исключить из дальнейшего рассмотрения;
б) если в процессе разобщения выявляется одноточечное подмножество (решение), для которого значение целевой дикции меньше, чем "рекорд", то старое "рекордное" решение заменяется новым.
Процесс разбиения на подмножества удобно фиксировать в виде дерева, вершины которого соответствуют подмножествам.
Описанная выше общая схема будет работоспособной только в том случае, если конкретизировать в ней два ключевых момента:
а) способ выбора очередного подмножества, подлежащего разбиению, и правило, по которому оно осуществляется.
б) метод получения оценки.
1. Правило разбиения:
а) любое подмножество разбивается на две части;
б) одна из частей содержит все маршруты, входящие в разбиваемое подмножество и включающие путь, связывающий два конкретных города; вторая часть является дополнением первой и соответственно содержит маршруты, в которых движение по выбранному пути запрещено;
в) правило выбора упомянутого пути будет приведено ниже.
2. Способ получения оценки снизу стоимости маршрутов, входящих в подмножество.
Подмножество маршрутов удобно кодировать с помощью пары:
а) (i(1),j(1)), ..., (i(l),j(l))- набора путей, включаемых во все маршруты подмножества;
б) матрицы вида:
|
j1 |
|
jn-l+1 |
i1 |
C'i1,j1 |
|
C'i1,jn-l+1 |
... |
... | ||
in-l+1 |
C'in-l+1,j1 |
... |
C'in-l+1,jn-l+1 |
- 27 -
Здесь {i1,i2,...,in-l+1} = {1,2,...,n} \ {i(1),i(2),...,i(l)}- номера городов, для которых в рамках данного подмножества остается открытым вопрос о том, куда из них двигаться; аналогичный смысл имеет множество{j1,j2,...,jn-l+1}. ЧислаC'ip,jq- это модифицированные стоимости переездов (см.ниже). Некоторые из них могут быть равны бесконечности, что означает запрет движения по соответствующим путям.
Способ получения оценки стоимости, а заодно и выбора пути, по которому проводится разбиение, поясним на примере разбиения исходного (полного) множества маршрутов.
1. Редуцировать матрицу стоимостей, т.е. последовательно вычесть из каждой строки ее минимальный элемент, после чего осуществить ту же процедуру применительно к столбцам. Сумма вычитаемых в процессе редукции чиселХ – редукционная сумма - даст искомую оценку.
2. Для каждого из нулевых элементов редуцированной матрицы С'ij вычислить
3. Осуществить разбиение по тому пути, для которого величина Δijмаксимальна.
4. В подмножестве маршрутов, исключающих путь (i, j),соответ-ствующую стоимость положить равной бесконечности и провести редук-цию поi-й строке иj-му столбцу. СуммаX + Δij даст оценку снизу.
5. В подмножестве маршрутов, включающих путь (i, j), осущест-вить следующую последовательность действий:
а) вычеркнуть элементы i-й строки иj -го столбца;
б) найти путь, движение по которому может привести к образованию внутреннего цикла, и положить его стоимость равной бесконеч-ности (в простейшем случае, в частности, при разбиении исходного множества, - это путь (j,i));
в) провести редукцию получившейся матрицы;
г) добавить редукционную сумму к Xи получить оценку снизу для рассматриваемого подмножества.
Отметим, что разбиение любого подмножества, кроме исходного, выполняется по приведенному выше алгоритму, начиная со 2-го пункта.
- 28 –