- •Содержание
- •Введение
- •1. Организационно-методические указания
- •1.1. Общие замечания к изучению курса
- •1.2. Программа курса
- •1.3. Список рекомендованной литературы Основная
- •Рекомендованная (дополнительная)
- •2. Образцы решения контрольных заданий
- •2.1. Составление математических моделей задач линейного программирования
- •2.2. Решение задач линейного программирования и анализ полученного решения
- •1. Решаем задачу графически.
- •2. Решаем задачу симплекс методом
- •Получили второе опорное решение:
- •Приведем алгоритм решения злп симплекс-методом
- •3. Решаем задачу с помощью Поиска решений в Excel Методика решения задачи симплекс-методом с использованием Microsoft Excel
- •6. Определяем дефицитность ресурсов
- •7. Найдём интервалы устойчивости по сырью и ценам
- •8. Целесообразность выпуска третьего изделия
- •2.3. Симплекс-метод с искусственным базисом. Двойственный симплекс-метод
- •Решение состоит из двух этапов:
- •Анализ решения злп в Excel
- •Двойственный симплекс-метод
- •2.4. Транспортная задача, ее решение методом потенциалов и в Excel
- •Получили третий опорный план (распределение).
- •Решение состоит из двух этапов:
- •2. 5. Задача динамического программирования
2.4. Транспортная задача, ее решение методом потенциалов и в Excel
Задача 2.4.1. Три фермерских хозяйства А1, А2, А3 ежедневно могут доставлять в магазины соответственно 70, 50 и 60 ц картофеля для обеспечения четырёх торговых точек: В1, В2, В3, В4 . Стоимость перевозки 1 ц картофеля и потребность торговых точек в картофеле указаны в табл. 2.4.1.
Таблица 2.4.1. Исходные данные транспортной задачи
Фермерские хозяйства |
Затраты на перевозку 1 ц картофеля по торговым точкам |
Запасы картофеля, ц |
|||
В1 |
В2, |
В3 |
В4 |
||
А1 |
6 |
5 |
7 |
9 |
70 |
А2 |
9 |
9 |
6 |
5 |
50 |
А3 |
5 |
9 |
3 |
8 |
60 |
Потребности в картофеле, ц |
20 |
80 |
20 |
40 |
|
Определить план поставки картофеля в каждую точку для удовлетворения потребностей, чтобы суммарные транспортные издержки были минимальными.
Решение.
1. Проверяем наличие закрытости транспортной модели.
Задача называется закрытой, если a1 +a2 +…+am = b1+ b2 +…+bn.
Если a1
+a2
+…+am
b1+
b2
+…+bn,
то задача называется открытой. a1,
a2,
…, am
–
запасы картофеля у
поставщиков, b1,
b2
,…, bn
–
потребности
потребителей.
В нашем случае
,
.
Следовательно задача открытая.
Составим математическую модель задачи.
Введём переменные
– количество
картофеля, которое планируется перевозить
от i-го
фермерского хозяйства к j-й
торговой точке (например, х11
–
количество
картофеля, которое планируется перевозить
от первого фермерского хозяйства к
первой торговой точке), Z – суммарные
транспортные издержки, которые надо
минимизировать:
С первого фермерского
хозяйства вывозится
ц
картофеля и так как задача открытого
типа, запасы картофеля больше потребностей,
то эта величина не превосходит 70 ц, что
записывается в виде неравенства
.
Количество привезённого картофеля на
первую торговую точку равно
и
оно равно 20 ц, т.е х11+х21+х31
= 1700. Поступая аналогично по остальным
фермерским хозяйствам и торговым точкам,
получаем математическую модель задачи:
Так как спрос
больше потребления, то вводим фиктивного
потребителя с потребностью равнёй 180
– 160 =2 0 ц и тарифами перевозок равными
нулю. Для этого в матрицу транспортной
задачи вводим дополнительный столбец,
соответствующую фиктивному потребителю
с потребностями
и тарифами перевозок
.
Для удобства данные запишем в виде табл. 2.4.2.
Таблица 2.4.2. Закрытая транспортная задача примера 2.4.2
bj ai |
20 |
80 |
20 |
40 |
20 |
70 |
6 |
5 |
7 |
9 |
0 |
50 |
9 |
9 |
6 |
5 |
0 |
60 |
5 |
9 |
3 |
8 |
0 |
2. Методом северо-западного угла находим начальный опорный план. Сущность метода северо-западного угла состоит в том, что максимально возможные поставки последовательно вводятся в северо-западную клетку таблицы.
У первого поставщика берём 20 ц картофеля и отдаём их первому потребителю. 20 записываем в клетку (1;1). Оставшиеся 50 ц картофеля даём второму потребителю. Второму потребителю надо ещё 30 ц картофеля. Его берём у второго поставщика. Оставшиеся 20 ц картофеля у второго поставщика распределяем третьему потребителю. От третьего поставщика 40 ц отдаём третьему потребителю и 20 ц четвёртому.
Таблица 2.4.3. Первоначальное распределение
bj ai |
20 |
80 |
20 |
40 |
20 |
|||||||
70 |
|
6 |
|
5 |
|
7 |
|
9 |
|
0 |
||
20 |
50 |
|
|
|
||||||||
50 |
|
9 |
|
4 |
|
6 |
|
5 |
|
0 |
||
|
30 |
20 |
|
|
||||||||
60 |
|
5 |
|
9 |
|
3 |
|
8 |
|
0 |
||
|
|
|
40 |
20 |
||||||||
Проверяем баланс по каждой строке и каждому столбцу.
3. Проверяем распределение на вырожденность. Заполненных клеток должно быть m+n–1=3+5–1=7. Мы получили шесть заполненных клеток. Такое распределение называется вырожденным. Для того, чтобы сделать распределение невырожденным, ставят поставку объемом равным нулю в клетку, которая образует с другими заполненными так называемую цепочку (цикл) перераспределения. Это означает, что от каждой заполненной клетки можно перейти в любую другую заполненную клетку перемещаясь только горизонтально и вертикально. делая повороты только в заполненных клетках. В одну незаполненную клетку (3;4) ставим 0 и считаем ее заполненной. Ноль можно ставить не в любую незаполненную клетку. В нашем случае ноль нельзя ставить в клетки (1;3) и (2;1).
Получили начальное распределение
,
Z(X1) = 20·6+50·5+30·4+20·6+40·8= 930 (грн.).
4. Проверяем
полученный план на оптимальность.
Проверка текущего опорного плана на
оптимальность осуществляется методом
потенциалов. Находим потенциалы. Каждому
поставщику и потребителю ставим в
соответствие числа
,
называемые потенциалами таким образом,
чтобы их сумма равнялась тарифам
соответствующих заполненных клеток.
если (i;j)
заполненная клетка.
Таблица 2.4.4. Потенциалы и оценки оптимальности
bj ai |
20 |
80 |
20 |
40 |
20 |
ui |
|||||||
70 |
|
6 |
|
5 |
|
7 |
|
9 |
|
0 |
u1 = 0 |
||
20 |
50 |
[0] |
[ 3] |
[ 2] |
|||||||||
50 |
|
9 |
|
4 |
|
6 |
|
5 |
|
0 |
u2 = 1 |
||
[ 4] |
30 |
2 |
0 |
[ 3] |
|||||||||
60 |
|
5 |
|
9 |
|
3 |
|
8 |
|
0 |
u3 = 2 |
||
[3] |
[ 2] |
[ |
40 |
20 |
|||||||||
vj |
v1 = 6 |
v2 = 5 |
v3 = 7 |
v3 = 6 |
v4 = 2 |
|
|||||||
Для нахождения потенциалов получаем систему уравнений
Система состоит
из семи уравнений с восьмью неизвестными.
Она неопределённая, то есть имеет
бесконечное множество решений. Один из
потенциалов приравниваем к нулю, а
остальные находятся однозначно из этой
системы. Пусть
.
Тогда из первого уравнения находим
,
из второго
и т.д. Систему можно не выписывать, а
значения потенциалов находить
непосредственно в таблице.
5. Находим оценки незаполненных клеток по формуле
:
Их значения
записываем в клетках таблицы в нижнем
левом углу. Величины груза выделены
жирным шрифтом, а значения оценок
выделены квадратными скобками. Оценка
3 в клетке (3;1) показывает, что если в эту
клетку поместить единицу груза, то
стоимость перевозок уменьшится на три
гривны. Действительно,
для сохранения
баланса с клетки (3;4) необходимо отнять
единицу груза, в клетку (2;4) необходимо
прибавить единицу груза, с клетки (2;2)
необходимо отнять единицу груза, в
клетку (1;2) необходимо добавить единицу
груза, с клетки (1;1) отнять единицу груза.
Стоимость перевозки будет соответственно
меняться:
,
т.е. уменьшиться на 3 грн.
Отсюда следует, что текущий опорный план будет оптимальным, если для всех незаполненных клеток оценки будут неположительными:
6. Начальный план не является оптимальным, поскольку имеются положительные оценки для пустых клеток. Переходим к новому опорному плану. Переход осуществляется заполнением клетки, которой соответствует наибольшая положительная оценка оптимальности. В нашем случае это клетка (3;3). Для клетки (3;3) строим цикл пересчёта (цепочку перераспределения). Циклом для незаполненной клетки называется последовательность заполненных клеток, в которые поочерёдно добавляется и вычитается груз для сохранения баланса, если в незаполненную клетку поместить некоторый груз. Для каждой свободной ячейки всегда существует только одна цепочка перераспределения. Она составляется таким образом, что на каждом углу цепочки стоят заполненные клетки, а один угол цепочки находится в клетке, куда осуществляется перераспределение.
0 + ρ
20 –
ρ
40 – ρ
+ ρ
Рис. 2.4.1. Цикл перераспределения для клетки (3;3)
7. Определяем груз ρ, который будем перемещать по циклу, он равный минимуму грузов стоящих в клетках, в которых он вычитается от объемов в клетках
ρ = min (40,20) = 20.
8. Составляем новую таблицу. Клетка (3;3) заполняется, а клетка (2;3) освобождается. Так как в клетку (3;3) будем ставить груз равный 20 ц, то значение целевой функции при втором распределении уменьшится следующим образом:
.
Таблица 2.4.5. Потенциалы и оценки оптимальности второго плана
bj ai |
20 |
80 |
20 |
40 |
20 |
ui |
|||||||
70 |
|
6 |
|
5 |
|
7 |
|
9 |
|
0 |
u1 = 0 |
||
2
|
5 0 |
[ 6] |
[ 3] |
[ 2] |
|||||||||
50 |
|
9 |
|
4 |
|
6 |
|
5 |
|
0 |
u2 = -1 |
||
[ 4] |
30 |
[ 6] |
20 |
[ 3] |
|||||||||
60 |
|
5 |
|
9 |
|
3 |
|
8 |
|
0 |
u3 = 2 |
||
[ |
[ 2] |
20 |
20 |
20 |
|||||||||
vj |
v1 = 6 |
v2 = 5 |
v3 = 1 |
v3 = 6 |
v4 = 2 |
|
|||||||
Z(X2) = 20·6+50·5+30·4+20·5+20·3+20·8= 810 (грн.)
9. Возвращаемся к пункту 4 и продолжаем итерации, пока получим все оценки незаполненных клеток неположительные.
Находим потенциалы и оценки оптимальности для незаполненных клеток второго опорного плана. Вычисления выполняем непосредственно в табл. 2.4.5.
Второй план также не оптимален, так как имеется положительная оценка для свободной клетки (3;1). Будем делать перераспределение в клетку (3;1). Для этой клетки составляем цепочку перераспределения и определяем груз, который будем перемещать по этой цепочке.
50
+ ρ
20
–
ρ
20
+ ρ
30
– ρ
20
– ρ
+ ρ
Рис. 2.4.2. Цепочка перераспределения для клетки (3;1)
ρ = min (20,30,20) = 20
Составляем третью таблицу. Освобождается две клетки (1;1) и (3;4), но незаполненной считаем только (1;1), так как в ней находится больший тариф. В клетку (3;4) ставим нуль и считаем её заполненной.
Таблица 2. 4. 6. Потенциалы и оценки оптимальности третьего плана
bj ai |
20 |
80 |
20 |
40 |
20 |
ui |
|||||||
70 |
|
6 |
|
5 |
|
7 |
|
9 |
|
0 |
u1 = 0 |
||
[ 3] |
70 |
[ 7] |
[ 3] |
[ 2] |
|||||||||
50 |
|
9 |
|
4 |
|
6 |
|
5 |
|
0 |
u2 = 1 |
||
[ 7] |
10 |
[ 6] |
40 |
[ 3] |
|||||||||
60 |
|
5 |
|
9 |
|
3 |
|
8 |
|
0 |
u3 =2 |
||
20 |
[ 2] |
20 |
0 |
20 |
|||||||||
vj |
v1 =3 |
v2 = 5 |
v3 = 1 |
v3 = 6 |
v4 = 2 |
|
|||||||

0
6]
0
3]