
- •Расчетно-графическая работа
- •1. Транспортная задача. Метод Северо-Западного угла
- •Задача 2. Транспортная задача. Метод Фогеля.
- •Задача 3. Транспортная задача. Метод наименьшего элемента.
- •Задача 4. Графическое решение задачи линейного програмирования.
- •Задача 4. Симплекс-метод
- •Задача 5. Метод множителей Лагранжа
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
Уфимский государственный авиационный технический университет
Кафедра автоматизированных систем управления
Расчетно-графическая работа
по дисциплине
«Методы оптимизации»
Вариант №20
Выполнил: ст. гр. ПИ-204з Еникеев Р.Ф.
Проверила: асс.каф.АСУ Кондратьева О.В.
Уфа 2013
1. Транспортная задача. Метод Северо-Западного угла
Три предприятия данного экономического
района могут производить некоторую
однородную продукцию в количествах
соответственно равных 150, 220, 180 единиц.
Эта продукция должна быть поставлена
пяти потребителям в количествах,
соответственно равных 110, 180, 30, 180, 50
единиц. Затраты связанные с производством
и доставкой единицы продукции, задаются
матрицей С =
.
Составить план прикрепления потребителей к поставщикам, решить задачу тремя методами, сделать вывод о том какой из полученных планов является оптимальным.
Решение:
Представим задачу в табличной форме, где в ячейках на пересечении строк и столбцов записаны затраты на доставку единицы продукции от поставщика Ai потребителю Bi.
|
Потребители |
Запасы |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
10 |
6 |
5 |
150 |
A2 |
12 |
8 |
6 |
5 |
13 |
220 |
A3 |
6 |
2 |
8 |
2 |
4 |
180 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
Начнем отгружать потребителям, начиная с северо-западного угла таблицы (левый верхний).
На пересечении строк и столбцов записано количество отгружаемого от поставщика Ai потребителю Bi количество единиц товара:
Первый шаг, отгрузим в северо-западный угол min(B1,A1) = min(110, 150) = 110 единиц:
|
Потребители |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
A1 |
110 |
|
|
|
|
A2 |
|
|
|
|
|
A3 |
|
|
|
|
|
Потребность |
110 |
180 |
30 |
180 |
50 |
Продолжим двигаться «по диагонали» в правый нижний угол, отгружая минимум (возможное или необходимое) из остатка на складе у поставщика в строке и запроса потребителя в столбце.
Второй шаг:
|
Потребители |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
A1 |
110 |
40 |
|
|
|
A2 |
|
|
|
|
|
A3 |
|
|
|
|
|
Потребность |
110 |
180 |
30 |
180 |
50 |
Потребителю B1 необходимо 180 единиц товара, но в наличии у поставщика A1 осталось только 40 единиц (110 мы отгрузили на первом шаге потребителю B1).
У первого поставщика закончился товар, поэтому переходим на вторую строчку, к поставщику A2. Первый потребитель B1 полностью удовлетворил свои запросы, потребителю B2 необходимо еще всего 140 единиц (40 он получил от A1).
На третьем шаге таблица выглядит следующим образом:
|
Потребители |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
A1 |
110 |
40 |
|
|
|
A2 |
|
140 |
|
|
|
A3 |
|
|
|
|
|
Потребность |
110 |
180 |
30 |
180 |
50 |
Продолжая движение по таблице по указанному алгоритму, в итоге получем опорное решение. На пересечении строки и столбца стоит число единиц товара, отгружаемых от поставщика из строки потребителю из столбца.
|
Потребители |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
A1 |
110 |
40 |
|
|
|
A2 |
|
140 |
30 |
50 |
|
A3 |
|
|
|
130 |
50 |
Потребность |
110 |
180 |
30 |
180 |
50 |
Проверим на вырожденность – N=m+n-1=3+5-1=7 – равно числу загруженных ячеек. План не вырожден, нули проставлять не нужно.
Рассчитаем потенциалы каждой ячейки, то есть число, характеризующее снижение или повышение издержек при загрузке товара в другую ячейку. Отрицательное число в ячейке покажет, что мы можем снизить издержки.
Для расчета потенциалов примем за потенциал первой строки 0. Запишем таблицу в виде таблицы издержек, фиксируя потенциальные издержки, которые мы готовы понести в текущем опорном плане, и добавив строку и столбец для потенциалов строк и столбцов.
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
|
|
|
0 |
A2 |
|
8 |
6 |
5 |
|
|
A3 |
|
|
|
2 |
4 |
|
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
|
|
|
|
|
|
αi + βj =cij, где cij – издержки на пересечении строки I и столбца j.
Отсюда легко находим βj для B1. β1=c11-α1 = 7 – 0 = 7.
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
|
|
|
0 |
A2 |
|
8 |
6 |
5 |
|
|
A3 |
|
|
|
2 |
4 |
|
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
7 |
|
|
|
|
|
β2= 9 – 0 = 9.
α2= c22 – β2 = 8 – 9 = -1.
Таким образом, рассчитали потенциалы строк и столбцов.
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
|
|
|
0 |
A2 |
|
8 |
6 |
5 |
|
-1 |
A3 |
|
|
|
2 |
4 |
2 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
7 |
9 |
5 |
4 |
2 |
|
Далее, если издержки в ячейке на пересечении столбца и строки больше суммы потенциалов для строки и столбца, то смысла перегружать товар в эту ячейку нет.
Расcчитаем значения cij - αi - βj и запишем их в оставшиеся ячейки. Отрицательное значение покажет, где cij < αi + βj, то есть где имеется смысл загрузить ячейку с целью снижения издержек. Цветом выделены ячейки, для которых подсчитаны значения.
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
5 |
2 |
3 |
0 |
A2 |
6 |
8 |
6 |
5 |
12 |
-1 |
A3 |
-3 |
-9 |
1 |
2 |
4 |
2 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
7 |
9 |
5 |
4 |
2 |
|
Как мы видим, максимальное снижение издержек будет в ячейку A3xB2, так как там максимальное по модулю отрицательное число.
Составим контур переноса ячеек по правилам:
• контур представляет замкнутый многоугольник с вершинами
в загруженных клетках, за исключением клетки с вершиной
максимальной неоптимальности «+», и звеньями, лежащими вдоль
строк и столбцов матрицы;
• ломаная линия должна быть связанной в том смысле, что из
любой ее вершины можно попасть в любую другую вершину по
звеньям ломаной цепи (по строке или по столбцу);
• в каждой вершине контура встречаются только два звена, одно
из них располагается по строке, другое — по столбцу;
• число вершин контура четное, все они в процессе перераспределения
делятся на загружаемые и разфужаемые;
• в каждой строке (столбце) имеются две вершины: одна — загружаемая,
другая — разгужаемая.
Цветом помечены загруженные в опорном плане ячейки. Загр. – загружаемые на следующей итерации ячейки, Разгр. – разгружаемые.
|
Потребители |
αi |
|||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
|
A1 |
7 |
9 |
5 |
2 |
3 |
0 |
|
A2 |
6 |
|
6 |
5 (Загр) |
12 |
-1 |
|
A3 |
-3 |
( Загр)-9 |
1 |
2 (Разгр) |
4 |
2 |
|
Потребность |
110 |
180 |
30 |
180 |
50 |
|
|
βj |
7 |
9 |
5 |
4 |
2 |
|
Перегрузим из каждой разгружаемой ячейки в каждую загружаемую минимум из разгружаемых и потребностей, min(A2xB2,A3xB4)=min(140, 130)=130. Получим следующий план:
|
Потребители |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
A1 |
110 |
40 |
|
|
|
A2 |
|
10 |
30 |
180 |
|
A3 |
|
130 |
|
|
50 |
Потребность |
110 |
180 |
30 |
180 |
50 |
План не вырожден, загруженных ячеек по прежнему 7.
Рассчитаем потенциалы аналогично предыдущему разу:
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
3 |
0 |
-6 |
0 |
A2 |
6 |
8 |
6 |
5 |
3 |
-1 |
A3 |
6 |
2 |
8 |
3 |
4 |
-7 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
7 |
9 |
7 |
6 |
11 |
|
По указанной выше причине перегрузим в ячейку A1xB5 40 единиц (min A1xB2,A3xB5) товара по контуру:
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
9 |
3 |
0 |
- |
0 |
A2 |
6 |
8 |
6 |
5 |
3 |
-1 |
A3 |
6 |
2 |
8 |
3 |
4 (Разгр.) |
-7 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
7 |
9 |
7 |
6 |
11 |
|
Получим следующий план:
|
Потребители |
Запасы |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
110 |
|
|
|
40 |
150 |
A2 |
|
10 |
30 |
180 |
|
220 |
A3 |
|
170 |
|
|
10 |
180 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
Он также не вырожден.
Рассчитвем потенцалы:
|
Потребители |
αi |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
7 |
6 |
9 |
6 |
5 |
0 |
A2 |
0 |
8 |
6 |
5 |
3 |
5 |
A3 |
0 |
2 |
8 |
3 |
4 |
-1 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
βj |
7 |
3 |
1 |
0 |
5 |
|
Отрицательных значений в ячейках нет, снижать издержки потенциала нет, значит найденный план оптимален.
Суммарные затраты – сумма произведений единиц товара в ячейках на издержки в ячейке.
Z=2510.
Ответ: Оптимальный план с издержками 2510:
|
Потребители |
Запасы |
||||
Поставщики |
B1 |
B2 |
B3 |
B4 |
B5 |
|
A1 |
110 |
|
|
|
40 |
150 |
A2 |
|
10 |
30 |
180 |
|
220 |
A3 |
|
170 |
|
|
10 |
180 |
Потребность |
110 |
180 |
30 |
180 |
50 |
|
Вывод: методом потенциалов с начальным планом, заданным подходом с северно-западного угла найдено оптимальное решение транспортной задачи.