- •Министерство аграрной политики украины луганский национальный аграрный университет
- •Основы системного анализа
- •Введение
- •Рекомендации по выполнению контрольной работы
- •1.2. Алгоритм решения задачи линейного программирования графическим методом
- •. Типовой пример
- •1.4. Индивидуальное задание №1
- •2.2. Алгоритм симплекс-метода
- •Типовой пример
- •Решение.
- •Учитывая количество ресурсов, затрачиваемых на изготовление единицы продукции, а также их наличие, составим систему ограничений:
- •2.4. Индивидуальное задание №2
- •Применение метода искусственного базиса для решения задач линейного программирования
- •Постановка и методика решения м-задачи
- •Типовой пример
- •3.3. Индивидуальное задание №3
- •4. Закрытая модель транспортной (распределительной) задачи
- •4.1. Формализация распределительной задачи
- •4.2. Методы построения опорного плана Метод северо-западного угла
- •Метод наилучшего элемента
- •4.3. Решение транспортной задачи методом потенциалов
- •4.4. Алгоритм последовательного улучшения опорного плана перевозок
- •4.5. Типовой пример
- •4.6. Индивидуальное задание № 4
- •Вариант 5.
- •5. Открытая модель транспортной задачи
- •5.1. Постановка и методика решения открытой транспортной задачи
- •5.2. Типовой пример
- •5.3. Индивидуальное задание № 5
- •Вариант 3.
- •Литература
4.4. Алгоритм последовательного улучшения опорного плана перевозок
Предполагается, что транспортная задача решается на минимум целевой функции.
-
Осуществляется выбор перспективной клетки с наибольшей по модулю отрицательной оценкой:
– перспективная клетка.
-
Строится цикл, исходная вершина которого находится в перспективной клетке, а остальные – в занятых клетках.
Правило построения цикла заключается в следующем.
Перемещаясь от перспективной клетки по строке или столбцу, проводим линию до любой занятой клетки и, делая поворот на 90 , снова проводим ее до следующей занятой клетки. Эта процедура продолжается до тех пор, пока цикл не замкнется в перспективной клетке.
-
В вершинах цикла расставляются чередующиеся знаки «+» и «–», начиная с перспективной, в которой ставится знак «+».
-
Определяется число α как минимальный объем груза среди клеток цикла с отрицательными вершинами (в отрицательной полуцепи цикла).
Величина α определяет количество груза, который можно перераспределить в рассматриваемом цикле.
-
В перспективную клетку (i, j)* вписывается значение α; в цикле осуществляется перераспределение на эту величину.
Число α прибавляется к перевозкам, если они соответствуют положительно отмеченным клеткам цикла, и вычитается в противном случае.
В результате преобразования перспективная клетка становится занятой, а клетка, которая определила число α – свободной.
-
Строится новая распределительная таблица, вычисляются потенциалы и характеристики, проверяется оптимальность плана.
Таким образом, решение транспортной задачи сводится к следующим действиям.
-
Построение первоначального опорного плана (методом северо-западного угла или методом наилучшего элемента).
-
Вычисление потенциалов поставщиков и потребителей, а также вычисление оценок (характеристик) свободных клеток.
-
Проверка условия оптимальности.
-
Последовательное улучшение опорного плана до получения оптимального.
4.5. Типовой пример
Дана следующая содержательная постановка задачи.
С четырех складов необходимо организовать перевозку груза на три строительных участка. Общее количество груза на складах (в тоннах), потребности участков (в тоннах), а также стоимость перевозки одной тонны груза от каждого склада к каждому участку (в ден. ед.) представлены в таблице2.
Таблица 2
Склады |
Участки |
Наличие на складах |
||
1-й |
2-й |
3-й |
||
I-й |
40 |
70 |
20 |
8000 |
II-й |
10 |
20 |
30 |
5000 |
III-й |
20 |
40 |
10 |
10000 |
IV-й |
30 |
20 |
50 |
7000 |
Потребности участков |
12000 |
9000 |
9000 |
30000 |
Необходимо определить такой план перевозок груза, чтобы общие транспортные издержки при этом были минимальными.
При решении использовать метод потенциалов.
Решение.
Составим математическую модель задачи.
Обозначим xij – количество груза, перевозимое из i-го склада на j-й строительный участок, i = 1, 2, 3, 4; j = 1, 2, 3 (таблица 3).
Таблица 3
Склады |
Участки |
Наличие на складах |
||
1-й |
2-й |
3-й |
||
I-й |
x11 40 |
x12 70 |
x13 20 |
8000 |
II-й |
x21 10 |
x22 20 |
x23 30 |
5000 |
III-й |
x31 20 |
x32 40 |
x33 10 |
10000 |
IV-й |
x41 30 |
x42 20 |
x43 50 |
7000 |
Потребности участков |
12000 |
9000 |
9000 |
30000 |
Составим ограничивающие условия:
-
С каждого склада должен быть вывезен весь груз:
x11 + x12 + x13 = 8000;
x21 + x22 + x23 = 5000;
x31 + x32 + x33 = 10000;
x41 + x42 + x43 = 7000.
-
Потребности всех строительных участков должны быть удовлетворены:
x11 + x21 + x31 + x41 = 12000;
x12 + x22 + x32 + x42= 9000;
x13 + x23 + x33 + x43= 9000.
-
Обратные перевозки невозможны:
xij 0, i = 1, 2, 3, 4; j = 1, 2, 3.
Общие транспортные расходы выразятся двойной суммой произведений тарифов на общее количество перевозимого груза:
По условию задачи суммарные потребности строительных участков равны наличию груза на сладах. Следовательно, имеется закрытая модель транспортной задачи.
Составим первоначальный опорный план методом наилучшего элемента.
В таблице определяем клетку с минимальной стоимостью. Таких клеток две: (2; 1) и (3; 3) (минимальная стоимость перевозки c21 = c33 = 10).
Построение первоначального плана выгоднее начать с заполнения клетки (3; 3), поскольку в нее можно вписать больший объем перевозок 9000 т, чем в клетку (2; 1), где максимально возможный объем перевозок составит 5000 т. Записываем x33 = 9000 т (min {9000; 10000}). Потребности третьего участка полностью удовлетворены, поэтому прочеркиваем оставшиеся клетки третьего столбца. На третьем складе осталось 10000 – 9000 = 1000 т.
В таблице снова выбираем клетку с минимальной стоимостью – клетку (2; 1) и записываем величину x21 = min {12000; 5000} = 5000. Возможности второго склада полностью исчерпаны, поэтому прочеркиваем вторую строку. Первому участку необходимо допоставить 12000 – 5000 = 7000 т.
В оставшейся таблице снова выбираем клетку с минимальной стоимостью, в которую можно вписать больший объем перевозок: (4; 2),
x42 = min {9000; 7000} = 7000. Возможности четвертого склада исчерпаны – прочеркиваем клетку (4; 1). Второму участку необходимо допоставить 9000 – 7000 = 2000 т.
Наименьшую стоимость перевозки содержит клетка (3; 1). Поэтому
x31 = min {7000; 1000} = 1000 т. Возможности третьего склада исчерпаны – прочеркиваем клетку (3; 2). Первому участку необходимо допоставить 7000 – 1000 = 6000 т. Далее заполняем клетку (1; 1): x11 = min {6000; 8000} = 6000 т. На первом складе осталось 8000 – 6000 = 2000 т. И, наконец, в оставшуюся клетку (1; 2) вписываем величину x12 = 2000.
Построение первоначального опорного плана показано в таблице 4.
Таблица 4
Склады |
Участки |
Наличие на складах |
||
1-й |
2-й |
3-й |
||
I-й |
6000 40 |
2000 70 |
– 20 |
8000 |
II-й |
5000 10 |
– 20 |
– 30 |
5000 |
III-й |
1000 20 |
– 40 |
9000 10 |
10000 |
IV-й |
– 30 |
7000 20 |
– 50 |
7000 |
Потребности участков |
12000 |
9000 |
9000 |
30000 |
Число занятых клеток r = m + n – 1 = 4 + 3 – 1 = 6. Следовательно, полученный опорный план является невырожденным и транспортная задача имеет решение.
Для проверки плана на оптимальность вычислим потенциалы строк ui и столбцов vj.
Расчет потенциалов можно производить либо непосредственно в таблице, либо из системы уравнений.
Таблица 5
vj ui + Склады
|
1 – й
|
2 –й |
3 –й |
Наличие на складах |
|
v1 = 40
|
v2 = 70 |
v3 = 30 |
|||
I–й |
u1 = 0 |
6000 40 |
2000 70 |
– 20 |
8000 |
– |
u2 = 30 |
5000 10 |
– 20 |
– 30 |
5000 |
III-й |
u3 = 20 |
1000 20 |
– 40 |
9000 10 |
10000 |
IV-й |
u4 = 50 |
– 30 |
7000 20 |
– 50 |
7000 |
Потребности участков |
12000 |
9000 |
9000 |
30000 |
Построим систему потенциалов, используя условие vj – ui = cij для каждой занятой клетки:
v1 – u1 = 40;
v1 – u2 = 10;
v1 – u3 = 20;
v2 – u1 = 70;
v2 – u4 = 20;
v3 – u3 = 10.
Так как количество уравнений на одно меньше, чем неизвестных, то система неопределенна и имеет бесконечное множество решений. Поэтому полагаем u1 = 0 и находим все значения потенциалов.
Учитывая, что u1 = 0, найдем значение потенциала первого столбца:
v1 = c11 + u1 = 40 + 0 = 40.
Аналогично определяем значение потенциала второго столбца:
v2 = c12 + u1 = 70 + 0 = 70.
Используя найденное значение потенциала v1 и известную величину c21, определяем u2:
u2 = v1 – c21 = 40 – 10 = 30.
Таким же образом вычисляем значение потенциала третьей строки u2:
u3 = v1 – c31 = 40 – 20 = 20.
Потенциал третьего столбца v3 определяем по известным значениям
u3 = 20 и c33 = 10:
v3 = c33 + u3 = 10 + 20 = 30.
Потенциал четвертой строки u4 найдем, используя значения v2 = 70 и
c42 = 20:
u4 = v2 – c42 = 70 – 20 = 50.
Значения потенциалов записываем в распределительную таблицу (таблица 5).
Для проверки опорного плана на оптимальность вычислим оценки свободных клеток wij по формуле: wij = cij – (vj – ui).
w13 = c13 – (v3 – u1) = 20 – (30 – 0) = –10;
w22 = c22 – (v2 – u2) = 20 – (70 – 30) = –20;
w23 = c23 – (v3 – u2) = 30 – (30 – 30) = 30;
w32 = c32 – (v2 – u3) = 40 – (70 – 20) = –10;
w41 = c41 – (v1 – u4) = 30 – (40 – 50) = 40;
w43 = c43 – (v3 – u4) = 50 – (30 – 50) = 70.
Оценки w13, w22, w32 оказались отрицательными. Следовательно, полученный опорный план не является оптимальным и может быть улучшен за счет перераспределения грузов из занятых клеток.
Определяем наибольшую по абсолютной величине отрицательную оценку:
min {w13 = –10, w22 = –20, w32 = –10} = w22.
Индексы такой оценки определяют перспективную клетку (2; 2)*, которую необходимо ввести в план.
Строим цикл, выбирая клетку (2; 2) в качестве исходной вершины. Двигаясь по этой строке до занятой клетки (2; 1), поворачиваем на 90° вверх и продолжаем двигаться вдоль первого столбца до занятой клетки (1; 1). Снова делаем поворот на 90° и переходим к клетке (1; 2). Затем, повернув на 90°, возвращаемся к исходной клетке (2; 2).
Таким образом, получили цикл (2; 2) * – (2; 1) – (1; 1) – (1; 2).
Присваиваем вершинам цикла чередующиеся знаки, начиная с перспективной клетки, которой присваиваем знак «+».
Среди клеток с отрицательными вершинами определяем величину α как минимальный объем груза:
α = min {2000; 5000} = 2000 т.
На эту величину производим перераспределение:
x12 = 2000 – 2000 = 0;
x22 = 0 + 2000 = 2000;
x21 = 5000 – 2000 = 3000;
x11 = 6000 + 2000 = 8000.
Получаем новый план перевозок.
Целевая функция для нового плана составит:
z = 40∙8000 + 10∙3000 + 20∙2000 + 20∙1000 + 10∙9000 + 20∙7000 = 640000 (ден. ед.).
Составляем следующую распределительную таблицу (таблица 6).
Таблица 6
vj ui + Склады
|
1 – й
|
2 –й |
3 –й |
Наличие на складах |
|
v1 = 40
|
v2 = 50 |
v3 = 30 |
|||
* – – |
u1 = 0 |
8000 40 |
– 70 |
– 20 |
8000 |
+ |
u2 = 30 |
3000 10 |
2000 20 |
– 30 |
5000 |
III-й |
u3 = 20 |
1000 20 |
– 40 |
9000 10 |
10000 |
IV-й |
u4 = 30 |
– 30 |
7000 20 |
– 50 |
7000 |
Потребности участков |
12000 |
9000 |
9000 |
30000 |
Вычисляем потенциалы строк и столбцов из системы уравнений для занятых клеток:
v1 – u1 = 40;
v1 – u2 = 10;
v2 – u2 = 20;
v1 – u3 = 20;
v3 – u3 = 10;
v2 – u4 = 20.
Полагая u1 = 0, найдем значения потенциалов:
v1 = 40 + u1 = 40 + 0 = 40;
u2 = v1 – 10 = 40 – 10 = 30;
v2 = 20 + u2 = 20 + 30 = 50;
u3 = v1 – 20 = 40 – 20 = 20;
v3 = 10 + u3 = 10 + 20 = 30;
u4 = v2 – 20 = 50 – 20 = 30.
Для проверки опорного плана на оптимальность вычислим оценки свободных клеток полученной таблицы:
w12 = c12 – (v2 – u1) = 70 – (50 – 0) = 20;
w13 = c13 – (v3 – u1) = 20 – (40 – 0)= –20;
w23 = c23 – (v3 – u2) = 30 – (40 – 30) = 20;
w32 = c32 – (v2 – u3) = 40 – (50 – 20) = 10;
w41 = c41 – (v1 – u4) = 30 – (40 – 30) = 20;
w43 = c43 – (v3 – u4) = 50 – (40 – 30) = 40.
Оценка w13 = –20 отрицательна. Следовательно, полученный опорный план не является оптимальным и может быть улучшен за счет перераспределения груза.
Клетка (1; 3)* – перспективная.
Строим цикл: (1; 3)* – (3; 3) – (3; 1) – (1; 1).
Присваиваем чередующиеся знаки «+» и «–», начиная с перспективной
клетки.
Находим величину перераспределения груза:
α = min {8000; 9000} = 8000 т.
Производим перераспределение груза в вершинах цикла:
x11 = 8000 – 8000 = 0;
x13 = 0 + 8000 = 8000;
x33 = 9000 – 8000 = 1000;
x31 = 1000 + 8000 = 9000.
Определим значение целевой функции для полученного опорного плана:
z = 20∙8000 + 10∙3000 + 20∙2000 + 20∙9000 + 10∙1000 + 20∙7000 = 560000 (ден. ед.).
Составляем следующую распределительную таблицу (таблица 7):
Таблица 7
vj ui Склады
|
1 – й
|
2 –й |
3 –й |
Наличие на складах |
|
v1 = 30
|
v2 = 40 |
v3 = 20 |
|||
I–й |
u1 = 0 |
– 40 |
– 70 |
8000 20 |
8000 |
II-й |
u2 = 20 |
3000 10 |
2000 20 |
– 30 |
5000 |
III-й |
u3 = 0 |
9000 20 |
– 40 |
1000 10 |
10000 |
IV-й |
u4 = 20 |
– 30 |
7000 20 |
– 50 |
7000 |
Потребности участков |
12000 |
9000 |
9000 |
30000 |
Вычислим потенциалы строк и столбцов из системы уравнений для занятых клеток:
v3 – u1 = 20;
v1 – u2 = 10;
v2 – u2 = 20;
v1 – u3 = 20;
v3 – u3 = 10.
v2 – u4 = 20.
Полагая u1 = 0, найдем значения потенциалов:
v3 = 20 + u1 = 20 + 0 = 20;
u3 = v3 – 10 = 20 – 10 = 10;
v1 = 20 + u3 = 20 + 10 = 30;
u2 = v1 – 10 = 30 – 10 = 20;
v2 = 20 + u2 = 20 + 20 = 40;
u4 = v2 – 20 = 40 – 20 = 20.
Вычислим оценки свободных клеток полученной таблицы:
w11 = c11 – (v1 – u1) = 40 – (30 – 0) = 10;
w12 = c12 – (v2 – u1) = 70 – (40 – 0) = 30;
w23 = c23 – (v3 – u2) = 30 – (20 – 20) = 30;
w32 = c32 – (v2 – u3) = 40 – (40 – 10) = 10;
w41 = c41 – (v1 – u4) = 30 – (30 – 20) = 20;
w43 = c43 – (v3 – u4) = 50 – (20 – 20) = 50.
Все оценки положительны. Следовательно, план перевозок является оптимальным.
.
Минимальные транспортные затраты для оптимального плана составляют zmin = 560000 ден. ед.