- •Государственный комитет рсфср по делам науки и высшей школы
- •Введение
- •Лабораторная работа I одномерная оптимизация
- •Постановка задачи
- •Краткие общие сведения Метод Пассивного поиска
- •Метод Фибоначчи
- •Метод золотого сечения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа 3 симплексный метод
- •Постановка задачи
- •Краткие общие сидения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа 4 решение прямой и двойственной задач
- •Краткие общие сведения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Тексты исходных задач Вариант I
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Лабораторная работа 5 транспортная задача
- •Постановка задачи
- •Краткие общие сведения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа 6 задача 0 коммивояжере
- •Постановка задачи
- •Краткие общие сведения
- •Порядок проведения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Содержание
- •197376, Санкт-Петербург, ул. Проф. Попова, 5
Краткие общие сведения
Общепринятым методом решения транспортной задачи является так называемый "метод потенциалов". Приведем структуру соответствующего алгоритма.
1. Поиск начального решения, т.е. набора { Xij }, удовлет-воряющего ограничениям (5.3).
2. Если{Xij} -оптимальное решение,токонец.
3. Модификация решения, не увеличивающая его стоимости, и переход на 2.
Задача (5.2), (5.3) является частным случаем задачи линейного программирования, а вышеприведенный алгоритм укладывается в общую схему решения этой задачи.
Выделим специфические черты, отличающие метод потенциалов.
1. В силу (5.1) условие (5.3) содержит ровно m+n-1независимых ограничений,и, следовательно, любое базисное решение транспортной задачи имеет не болееm+n-1ненулевых компонент.
2. Транспортная задача допускает несколько простых способов поиска начального базисного решения. Один из возможных алгоритмов реализован в лабораторной работе:
а) выбрать: в табл.5.1 незаполненную и непомеченную клетку с минимальной стоимостью (пусть, для определенности, это клетка с индексами (k, l));
б) заполнить выбранную клетку числом
Xkl = min { αk, Bl },
т.е. максимально загрузить соответствующий путь;
в) модифицировать величины спроса и предложения:
1) αk=αk-Xkl
Bl = Bl – Xkl.
2) еслиαk= 0,
топометить все незаполненные и непомеченные клеткиk-й строки,
иначепометить все незаполненные и непомеченные клеткиl-го столбца;
д) еслиостались незаполненные или непомеченные клетки,
идтина а).
Заполненные клетки будем называть базисными (некоторые из них могут содержать нули).
- 21 -
Заполненные клетки будем называть базисными (некоторые из них могут содержать нули).
3. Проверку оптимальности полученного решения удобно осуществлять, переходя к двойственным переменным. Не входя в подробности обоснования, приведем соответствующий алгоритм:
а) найти "потенциалы" и, такие, что
Ui + Vj = Cij (5.5)
для всех пар (i, j), выделяющих базисные клетки. Легко видеть, что одну из переменныхUiилиVj(по нашему выбору) можно поло-жить равной чему угодно, после чего система (5.5) решается однозначно;
б) для всех небазисных клеток вычислить так называемые "характеристические разности"
Xij = Ui + Vj - Cij
в) есливсеXijнеотрицательны,
торешение оптимально,
иначесм. следующий пункт.
При решении задачи вручную проверку оптимальности удобно производить с использованием табл.5.2.
Таблица 5.2
C11 |
... |
C1n |
Ui |
X11 |
X1n | ||
... |
... |
... |
... |
Cm1 |
... |
Cmn |
Um |
Xm1 |
Xmn | ||
V1 |
... |
Vn |
|
4. В случае, если полученное решение неоптимально, можно от-носительно просто улучшить его:
а) выбрать какую-либо клетку, для которой Xij < 0;
б) найти последовательность клеток (цикл)
(i1=i, j1=j), (i2,j1), (i2,j2), ..., (ip,jp-1), (ip,jp), (ip+1=i1,jp), в которой все клетки, кроме клеток(i1,j1),являются базисными;
в) перераспределить грузопоток по найденному циклу:
пропустить дополнительно Xединиц груза по каждому из пу- тей(ik, jk),
уменьшить на Xколичество груза, перевозимого по путям
(ik+1, jk).
- 22 -
Здесь
(5.6)
г) включить в базис клетку (i, j)и исключить из базиса одну из клеток, поток в которой после модификации, проведенной в п. в), оказывается равным 0.
Вообще говоря, п. в) вышеприведенного алгоритма следует сводить к задаче поиска цикла в ориентированном графе (связанном с модифицируемым решением), однако при небольших размерах задач, решаемых в ходе лабораторной работы, цикл можно найти путем простого направ- ленного перебора в глубину. Следует запомнить, что величина Х, вычисляемая в (5.6), может оказаться равной 0. При использовании такого цикла меняется не грузопоток, а лишь набор базисных переменных.