Транспортная задач. Решение Суммарные запасы а і 180 200 150 530 ед, суммарные потребности b j
Скачать 73.04 Kb.
|
Вариант № 2. Тема 3. Транспортная задача Решение: Суммарные запасы Σ аі = 180 + 200 + 150 = 530 ед, суммарные потребности Σ bj= 130 + 160 + 190 = 480 ед. Σ аі ≠ Σbj, запасы не равны потребностям, т.е. это открытая модель транспортной задачи. Вводим балансовый пункт потребления (фиктивного потребителя) В4,ф с потребностями b4 = 530 – 480 = 50 ед. Составим математическую модель задачи. Пусть хіj – количество единиц, которое планируется перевезти из пункта Аі в пункт Вj (это план перевозок). Тогда общая стоимость всех перевозок будет : Z = Σ Σ Cij хij, её необходимо минимизировать. Количество единиц не может быть отрицательной, поэтому хіj ≥ 0. Из условия задачи следует, что должны выполняться такие условия : Σ хіj = аі , і =1,2,3 , т.е. весь товар из пунктов Аі необходимо вивезти. Кроме того потребности Вj должны быть полностью удовлетворены, т.е. Σ хіj = bj , j = 1,2,3,4. Таким образом, математическая модель задачи имеет вид : Z = Σ Σ Cij хіj → min Σ хіj = аі , і=1,2,3 Σ хіj = bj , j = 1,2,3,4. хіj ≥ 0 Построим начальный опорный план , пользуясь правилом «минимального элемента» . Составим транспортную таблицу, в углы клеток запишем заданные тарифы Сіj ,а в середины клеток будемо последовательно заносить значения хіj по схеме : Из всей таблицы стоимостей выбираем клетку АіВj с наименьшей стоимостью Сіj , т.е. ищем min Сіj , и заносимо в неё число хіj = min { аі , bj }. Потом вычёркиваем и больше не рассматриваем строку, что соответствует поставщику, запасы которого полностью исчерпаны, или столбец, что соответствует потребителю, потребности которого полностью удовлетворены и снова ищем min Сіj, и так заполняем всю таблицу, пока все запасы не будут исчерпаны, а все потревности – удовлетворены. Если клеток с одинаковым значением min Сіj несколько, то берём любую из них. Фиктивные клетки, т.е. клетки столбца В4,ф заполняем в последнюю очередь.
1) min Сіj =C23=1 ; х23 =min { а2 , b3 } = min { 200, 190 } = 190 ; Столбец В3 вычёркиваем, а2 ’= 200 – 190 = 10 ед. 2) min Сіj = С11 =2 ; х11 = min { а1 , b1 } = min { 180, 130 } = 130 ; Столбец В1 вычёркиваем, а1 ’ =180 – 130 = 50 ед. 3) min Сіj = С32 =3 ; х32 = min { а3 , b2 } = min { 150, 160 } = 150 ; Строку А3 вычёркиваем, b2 ’= 160 – 150 = 10 ед. 4) min Сіj =C22 =5 ; х22 =min { а2 , b2 } = min { 10, 10 } = 10 ; Столбец В2 и строку А2 вычёркиваем 5) осталась одна клетка А1В4 ; х14 = min { а1’, b4 } = min { 50, 50 } = 50. В итоге таблица заполнена полностью. Получилось 5 занятых и 7 свободных клеток. Начальный опорный план имеет вид: х11 = 130; х14 = 50; х22 = 10; х23 = 190; х32 = 150; остальные хіj = 0 При этом стоимость перевозок: Z = 130 ∙ 2 + 10 ∙ 5 + 190 ∙ 1 + 150 ∙ 3 + 50 · 0 = 950. Метод потенциалов. Сначала проверяем этот план на оптимальность. Для этого вычисляем потенциалы uiиvj исходя из условия : ui+vj = Сіj для всех занятых клеток, причём u1= 0. Опорный план должен быть невырожденный, т.е. число занятых клеток должно быть равно m + n – 1 = 3 + 4 – 1 = 6 , а в таблице только 5 занятых клеток, поэтому в одну клетку, например А2В1 , заносим нулевую перевозку х21 = 0 и считаем эту клетку занятой. Получаем систему из 6 уравнений, из которой находим потенциалы uiиvj : Клетка А1В1 → u1 + v1 = 4 u1 = 0 Клетка А1В4 → u1 + v4 = 8 u2 = 2 Клетка А2В1 → u1 + v5 = 0 u3 = 0 Клетка А2В2 → u2 + v2 = 1 => v1 = 2 Клетка А2В3 → u2 + v5 = 0 v2 = 3 Клетка А3В2 → u3 + v3 = 2 v3 = -1 v4 = 0 Перепишем транспортную таблицу, добавив к ней строку и столбец для записи потенциалов, и проверим выполнение условия оптимальности : ui+vj ≤ Сіj для всех свободных ( не занятых ) клеток.
? Для свободных клеток : ui+vj ≤ Сіj Клетка А1В2 → u1 + v2 = 0 + 3 = 3 < 9 Клетка А1В3 → u1 + v3 = 0 + (-1) = -1 < 7 Клетка А2В4 → u2 + v4 = 2 + 0 = 2 > 0 Клетка А3В1 → u3 + v1 = 0 + 2 = 2 < 6 Клетка А3В3 → u3 + v3 = 0 + (-1) = -1 < 2 Клетка А3В4 → u3 + v4 = 0 + 0 = 0 = 0 Видим, что условие оптимальности нарушено в клетке А2В4 , т.е. начальный опорний план не является оптимальным, т.е. его можно улучшить, т.е. построить новый опорный план, стоимость которого будет меньше. Для этого нужно перераспределить груз по клеткам таблицы. Строим цикл, т.е. замкнутую прямоугольную ломаную линию, одна вершина которого находится в клетке, в которой нарушено условие оптимальности , т.е. в клетке А2В4 , а остальные вершины – в занятых клетках. Вершины цикла по очереди отмечаем знаками “+” и “–“ , начиная с клетки А2В4 , затем среди клеток с “–“ выбираем наименьшее значение хіj : θ0 = min { хіj } = min { 50, 0 } = 0 - в клетке А2В1 Далее, двигаясь по вершинам цикла, добавляем это значение θ0 к значениям хіj в клетках с “+” и отнимаем от значений хіj в клетках с “–” . Но, так как θ0 = 0, то значения перевозок не меняются, просто нулевая перевозка переносится из клетки А2В1 в клетку А2В4. Новую таблицу снова проверяем на оптимальность , т.е. вычисляем (непосредственно в таблице) новые значения потенциалов и проверяем выполнение условия оптимальности.
? Для свободных клеток : ui+vj ≤ Сіj Клетка А1В2 → u1 + v2 = 0 + 5 = 5 < 9 Клетка А1В3 → u1 + v3 = 0 + 1 = 1 < 7 Клетка А2В1 → u2 + v1 = 0 + 2 = 2 < 4 Клетка А3В1 → u3 + v1 = -2 + 2 = 0 < 6 Клетка А3В3 → u3 + v3 = -2 + 1 = -1 < 2 Клетка А3В4 → u3 + v4 = -2 + 0 = -2 < 0 Условие оптимальности виполнено для всех свободных клеток, значит этот план является оптимальним, т.е. его стоимость минимальна : х11 = 130; х14 = 50; х22 = 10; х23 = 190; х32 = 150; остальные хіj = 0 Z min = 950 Оптимальний план перевозок: Из пункта А1 → в пункт В1 - 130 ед. Из пункта А1 → в пункт В4,ф - 50 ед. (останутся невывезенными) Из пункта А2 → в пункт В2 - 10 ед. Из пункта А2 → в пункт В3 - 190 ед. Из пункта А3 → в пункт В2 - 150 ед. |