Автор: Пользователь скрыл имя, 13 Декабря 2011 в 08:55, лабораторная работа
Динамическое программирование – метод оптимизации, в котором процесс принятия решения и управления может быть разбит на отдельные этапы (шаги).
В отличие от линейного программирования, в котором симплексный метод является универсальным методом решения, в динамическом программировании такого универсального метода не существует. Одним из основных методов динамического программирования является метод рекуррентных соотноше –ний, который основывается на использовании принципа оптимальности Беллмана.
Введение.
Транспортная задача – одна из распространенных задач линейного программирования. Ее цель - разработка наиболее рациональных путей и способов транспортирования товаров, устранение чрезмерно дальних, встречных, повторных перевозок. Все это сокращает время продвижения товаров, уменьшает затраты предприятий, фирм, связанные с осуществлением процессов снабжения сырьем, материалами, топливом, оборудованием и так далее.
Алгоритм и методы решения транспортной задачи могут быть использованы при решении некоторых экономических задач, не имеющих ничего общего с транспортировкой груза. К таким задачам относятся следующие:
- оптимальное закрепление за станками операций по обработке деталей. Задача позволяет опреде –лить, сколько времени и на какой операции нужно использовать каждый из станков, чтобы обработать максимальное количество деталей;
- оптимальные назначения или проблема выбора. Задача позволяет определить, какой механизм и на какую работу надо назначить, чтобы добиться максимальной производительности;
- задача о сокращении производства с учетом суммарных расходов на изготовление и транспорти –ровку продукции;
- увеличение производительности автомобильного транспорта за счет минимизации порожнего пробега.
Постановка задачи
Фирма имеет три магазина розничной торговли, расположенные в разных районах города (А, В, С). Поставки продукции в эти магазины осуществляются с четырех складов (1,2,3,4).
Стоимости
перевозок груза даны в таблице:
Склады | Магазины | Запас | ||
А | В | С | ||
1 | 3 | 1 | 3 | 30 |
2 | 5 | 4 | 2 | 25 |
3 | 4 | 3 | 5 | 15 |
4 | 1 | 5 | 5 | 30 |
Спрос | 40 | 20 | 40 |
Найти
оптимальное распределение
Транспортная задача
Транспортная задача ставится следующим образом: имеется m пунктов отправления А1, А2 , ..., Аm , в которых сосредоточены запасы каких-то однородных грузов в количестве соответственно а1, а2, ... , аm единиц. Имеется n пунктов назначения В1 , В2 , ... , Вn подавшие заявки соответственно на b1 , b2 , ... , bn единиц груза. Известны стоимости Сij перевозки единицы груза от каждого пункта отправления Аi до каждого пункта назначения Вj. Все числа Сij, образующие прямоугольную таблицу, заданы. Требуется составить такой план перевозок (откуда, куда и сколько единиц поставить), чтобы все заявки были выполнены, а общая стоимость всех перевозок была минимальна.
Данная
транспортная задача является задачей
с правильным балансом, так как
сумма потребностей магазинов и
количество товаров на складах одинаковы:
40 + 20 + 40 = 100, 30 + 25 + 15 + 30 = 100.
Составление опорного плана методом северо-западного угла.
Перевозки расставляются следующим образом: магазин A подал заявку на 40 единиц груза. Удовлетворим эту заявку за счет запаса 30, имеющегося в пункте № 1, и запишем перевозку 30 в клетке U1,V1. Но нам нужно поставить в A еще 10 единиц груза, чтобы полностью удовлетворить его потребность. Возьмем недостающие 10 единиц со склада № 2 и запишем перевозку 10 в клетку U2,V1. На складе № 2 у нас осталось еще 15 груза, направим их в магазин B. Недостающие 5 единиц добавим в B со склада № 3. Оставшийся там груз в количестве 10 направим в магазин C, в который недостающие 30 единиц груза привезем со склада № 4, где у нас как раз 30 единиц.
В
итоге у нас получилось такое
распределение перевозок:
Склады | Магазины | Запас | |||
А | В | С | |||
V1 = 3 | V2 = 2 | V3 = 4 | |||
1 | U1 = 0 | 3
30 |
1 | 3 | 30 |
2 | U2 = 2 |
5
10 |
4
15 |
2
|
25 |
3 | U3 = 1 | 4 |
3
5 |
5
10 |
15 |
4 | U4 = 1 | 1 | 5 | 5
30 |
30 |
Спрос | 40 | 20 | 40 |
Этот
план удовлетворяет балансовым условиям.
При этом значение функции перевозок составит:
L = 30 • 3
+ 10 • 5 + 15 • 4 + 5 • 3 + 10 • 5 + 30 • 5 = 415.
Рассчитаем для полученного плана потенциалы. Для удобства будем обозначать клетки комбинацией
(Ui; Vj), где i – номер строки, j – номер столбца.
Пусть U1 = 0. Тогда, чтобы выполнялось условие Ui + Vj = Cij в клетке (U1; V1), нужно выполнить следующий расчет:
V1 = C11 – U1 = 3 – 0 = 3.
Аналогично для клетки (U2; V1), при уже известном V1, рассчитаем U2:
U2 = C21 – V1 = 2.
Следующая клетка с перевозками – (U2; V2), для нее известно U2 = 2, а значит V2 = 4 – 2 = 2. Анало –гично рассчитаем потенциалы остальных клеток:
U3; V2: V2 = 2, U3 = 3 – 2 = 1.
U3; V3: U3 = 1, V3 = 5 – 1 = 4.
U4; V3: V3 = 4, U4 = 5 – 4 = 1.
После того, как все потенциалы рассчитаны, проверяем первоначальный план на оптимальность. План считается оптимальным, если для всех свободных клеток будет выполнено следующее условие:
Ui + Cij > Vj.
Выполним расчет для всех оставшихся свободных клеток.
U1; V2: U1 + С12 = 0 + 1 = 1 < 2
U1; V3: U1 + С13 = 0 + 3 = 3 < 4
U2; V3: U2 + С23 = 2 + 2 = 4 ≥ 4
U3; V1: U3 + С31 = 1 + 4 = 5 > 3
U4; V1: U4 + С41 = 1 + 1 = 2 < 3
U4; V2: U4 + С42 = 1 + 5 = 6 > 2
Условие оптимальности не выполняется. Чтобы улучшить план, необходимо переместить перевозку в клетку, где условие оптимальности нарушено больше всего, то есть разность Vj – (Ui+Cij) максимальна. Такой клетки у нас нет, поскольку в трех клетках разность одинакова, поэтому выберем клетку, которая позволяет составить многоугольник, необходимый для выполнения перемещения. Это клетка – (U1; V2).
Перемещение
производится так, чтобы по отношению
к выбранной клетке образовать связку.
Для это необходимо провести замкнутую
ломаную линию, состоящую из вертикальных
и горизонтальных линий, в которой
одной из вершин полученного многоугольника
является свободная клетка, а в остальных
вершинах должны находиться занятые клетки.
Далее каждой клетке в связке поочередно
присваивается знаки „плюсˮ и „минусˮ,
начиная со свободной. Из клеток со знаком
„минусˮ перемещаем перевозки в клетки
со знаком „плюсˮ. Чтобы не получить отрицательных
перевозок, перемещаем наименьшее количество
продукта, которое находится в клетках
связки со знаком „минусˮ.
Склады | Магазины | Запас | |||
А | В | С | |||
V1 = 3 | V2 = 1 | V3 = 3 | |||
1 | U1 = 0 |
3
15 |
1
15 |
3 | 30 |
2 | U2 = 2 |
5
25 |
4
|
2
|
25 |
3 | U3 = 2 | 4 | 3
5 |
5
10 |
15 |
4 | U4 = 2 | 1 | 5 | 5
30 |
30 |
Спрос | 40 | 20 | 40 |
L
= 15 • 3 + 15 • 1 + 25 • 5 + 5 • 3 + 10 • 5 + 30 • 5= 400.
Повторим проделанные в первом случае расчеты. Как и тогда при U1 = 0 V1 = 3.
U1; V2: U1 = 0, V2 = 1 – 0 = 1.
U2; V1: V1 = 3, U2 = 5 – 3 = 2.
U3; V2: V2 = 1, U3 = 3 – 1 = 2.
U3; V3: U3 = 2, V3 = 5 – 2 = 3.
U4; V3: V3 = 3, U4 = 5 – 3 = 2.
U1; V3: U1 + С13 = 0 + 3 = 3 ≥ 3
U2;
V2: U2 + С22 = 2 + 4 =
6 > 1
U2; V3: U2 + С23 = 2 + 2 = 4 > 3
U3; V1: U3 + С31 = 2 + 4 = 6 > 3
U4; V1: U4 + С41 = 2 + 1 = 3 ≥ 3
U4; V2: U4 + С42 = 2 + 5 = 7 > 3
Как мы видим в последней таблице условие оптимальности выполняется для всех свободных клеток. Следовательно, это решение является оптимальным.
Ответ: оптимальный план содержит шесть перевозок:
- с первого склада – 15 единиц магазину А и столько же магазину В;
- со второго склада – 25 единиц магазину А;
- с третьего склада – 5 единиц магазину В и 10 единиц магазину С;
- с четвертого склада – 30 единиц магазину С.
При этом общая сумма транспортных расходов минимальна и составляет 400 денежных единиц.
Решим
эту же задачу, но на этот раз изменим первоначальные
значения. Пусть в клетке (U1; V3)
количество поставок будет равно 1, а не
3, как было до этого.
Информация о работе Лабораторные работы по Методам Оптимизации