Автор работы: Пользователь скрыл имя, 09 Декабря 2010 в 21:08, контрольная работа
Цель исследования, осуществляемого в данной работе, - совершенствование процесса оптимизации сложных задач экономического и сетевого планирования путем разработки технологий и программных средств, использующих графовое моделирование.
Транспортная задача может быть решена методами линейного программирования. Однако благодаря особенностям переменных задачи разработаны специальные методы ее решения. Наиболее применяемый из них метод потенциалов.
Согласно методу потенциалов, каждому i-му пункту отправления устанавливается потенциал Ui, который можно интерпретировать как цену продукта в пункте отправления, а каждому j-му пункту назначения устанавливается потенциал Vj, который можно условно принять как цену продукта в пункте назначения равна его цене в пункте отправления плюс транспортные расходы на его доставку, т.е. Vj= Ui+cij.
Алгоритм решения транспортной задачи методом потенциалов включает следующие этапы:
Третий этап повторяется до тех пор, пока план перевозок не станет оптимальным.
Пример. Пусть имеется 3 поставщика и 4 потребителя. Запасы продукта у поставщиков, спрос потребителей и транспортные расходы на доставку единицы продукта от i-го поставщика к j-му потребителю заданы в таблице:
Поставщик | Потребитель | Запас | |||
1 | 2 | 3 | 4 | ||
1 | 3 | 5 | 6 | 2 | 170 |
2 | 6 | 4 | 7 | 5 | 250 |
3 | 5 | 4 | 6 | 5 | 180 |
Спрос | 180 | 230 | 160 | 60 | 600 |
Требуется составить такой план перевозки, чтобы обеспечить минимум общей суммы транспортных расходов.
Решение. Обозначим xij – количество продукта, доставляемого от i-го поставщика к j-му потребителю. Тогда модель:
min L =
3x11+5x12+6x13+2x14+6x21+4x22+
Определим
начальный план перевозок с помощью
метода северо-западного угла, по которому
транспортная матрица заполняется
слева на право и сверху вниз.
Потребность первого
таблица 2
Поставщики | Потребитель | Запас | ||||
1 | 2 | 3 | 4 | |||
V1=3 | V2=5 | V3=8 | V4=7 | |||
1 | U1=0 | 3
|
5
20 |
6
|
2
2 |
170 |
2 | U2=1 |
6
7 |
4
210 |
4
70 |
5
6 |
250 |
3 | U3=2 | 5
7 |
4
6 |
6
120 |
5
60 |
180 |
Спрос | 150 | 230 | 160 | 60 | 600 |
Мы должны заполнить m+n-1 клеток. Если число заполненных клеток меньше m+n-1 (случай вырождения), то недостающие клетки выбираются произвольно и заполняются нулями. Это так называемые условные поставки.
Первоначальный план содержит шесть перевозок: от первого поставщика – 150 ед. к первому потребителю и 20 ед. ко второму; от второго поставщика – 210 ед. ко второму и 40 ед. к третьему; от третьего поставщика – 120 ед. к третьему потребителю и 60 ед. к четвертому.
Построим систему потенциалов на основе равенства:
Vj= Ui+cij.
Присвоим первому поставщику потенциал U1 =0. От первого поставщика продукт направляют первому и второму потребителям, следовательно, V1=U1+c11=0+3=3; V2=0+5=5. Зная потенциал второго потребителя, найдем потенциал второго поставщика U2=V2.-c22=5-4=1. потенциал третьего потребителя V3=1+7=8. потенциал третьего поставщика U3= 8-6=2. Потенциал четвертого потребителя V4= 2+5=7. Вычислить потенциалы, помещаем в ( табл.3).
Проверим первоначальный план на оптимальность. План считывается оптимальным, если для всех свободных ячеек выполняется условие:
Осуществляем проверку:
U1+с13=0+6=6<8 – не выполняется, т.е. если бы продукт отправлялся от первого поставщика к третьему потребителю, то его цена у первого поставщика была бы ниже, чем в первоначальном плане.
Рассчитанные
значения заносятся в свободные
ячейки (табл.3).
таблицы 3
Итерация 1. целевая функция=2590.
Поставщики | Потребитель | Запас | ||||
1 | 2 | 3 | 4 | |||
V1=3 | V2=0 | V3=3 | V4=2 | |||
1 | U1=0 | 3
|
5
5 |
6
6 |
2
|
170 |
2 | U2=-4 |
6
2 |
4
230 |
4
20 |
5
1 |
250 |
3 | U3=-3 | 5
2 |
4
1 |
6
|
5
40 |
180 |
Спрос | 150 | 230 | 160 | 60 | 600 |
Для улучшения плана (целевая функция = 2690) необходимо переместить перевозку в ячейку, где условие оптимальности нарушено больше всего, т.е. разность Vj-(Ui+cij) максимальна (ячейка 1.4).
Перемещение производится та, чтобы по отношению к выбранной ячейки образоваться связку. Для этого необходимо провести замкнутую ломанную линию, состоящею из горизонтальных и вертикальных линий, в которой одной из вершин полученного многоугольника является свободная ячейка, а остальные вершины должны находиться в занятых ячейках.
Далее каждое ячейке в связке поочередно присваивается знаки плюс и минус, начиная со свободной. Из ячеек со знаком минус перемещаем перевозки в ячейки со знаком плюс. Чтобы не получить отрицательных перевозок, перемещаем наименьшее количество продукта, которое находится в ячейках связки со знаком минус.
Последовательное
улучшение плана в таблицах 3-5.
таблицы 4
Итерация 2. целевая функция=2570.
Поставщики | Потребитель | Запас | ||||
1 | 2 | 3 | 4 | |||
V1=3 | V2=1 | V3=3 | V4=2 | |||
1 | U1=0 | 3
|
5
5 |
6
6 |
2
|
170 |
2 | U2=-3 | 6
20 |
4
230 |
7
4 |
5
2 |
250 |
3 | U3=-3 |
5
2 |
4
1 |
6
160 |
5
20 |
180 |
Спрос | 150 | 230 | 160 | 60 | 600 |
таблицы 5
Итерация 3. целевая функция=2550.
Поставщики | Потребитель | Запас | ||||
1 | 2 | 3 | 4 | |||
V1=3 | V2=1 | V3=4 | V4=2 | |||
1 | U1=0 | 3
110 |
5
5 |
6
6 |
2
60 |
170 |
2 | U2=-3 | 6
20 |
4
230 |
7
4 |
5
2 |
250 |
3 | U3=-2 | 5
2 |
4
2 |
6
160 |
5
3 |
180 |
Спрос | 150 | 230 | 160 | 60 | 600 |