Транспортная задача: опорный план и метод потенциалов с примером
Транспортная задача: опорный план методами северо-западного угла и минимального элемента, метод потенциалов, цикл перераспределения, проверка оптимальности.
Три склада с цементом: 30, 40 и 20 тонн. Четыре стройки с заявками: 20, 25, 35 и 10 тонн. Перевозка тонны с каждого склада на каждую стройку стоит своих денег — тарифов двенадцать, и они все разные. Диспетчеры спорят о плане: один грузит «по порядку, пока не кончится», другой — «по самой дешёвой клетке». Первый план обойдётся в 285 тысяч, второй — в 185. Оптимум же — 175, и до него можно добраться за один ход. Как именно — вопрос метода потенциалов.
Постановка: тарифы, запасы, заявки#
Поставщиков , потребителей . У поставщика запас , у потребителя — заявка . Перевозка тонны от к стоит , а переменная — сколько тонн везём. Цель — минимизировать общую стоимость:
Ограничения двоякие: из каждого склада всё вывезти (), каждую заявку закрыть (). Это линейная задача с особой структурой: в каждом ограничении участвуют переменные только одной строки или одного столбца таблицы. Именно эта ленивая структура и порождает отдельный метод вместо общего симплекса.
| Тариф, тыс./т | Б1 | Б2 | Б3 | Б4 | Запас |
|---|---|---|---|---|---|
| А1 | 2 | 3 | 2 | 4 | 30 |
| А2 | 3 | 2 | 5 | 1 | 40 |
| А3 | 4 | 3 | 2 | 6 | 20 |
| Заявка | 20 | 25 | 35 | 10 | 90 |
Модель называется закрытой, когда суммарный запас равен суммарной заявке: . Равенство не декоративное: без него не бывает планов, закрывающих и склады, и заявки одновременно. Если запасов больше, вводят фиктивного потребителя с нулевыми тарифами — «склад остатков»; если заявок больше — фиктивного поставщика. Открытая модель сводится к закрытой и дальше решается по общей схеме.
Фиктивные строки и столбцы безобидны: нулевой тариф не влияет на сумму, а фиктивные перевозки лишь показывают, сколько груза останется на складе или сколько заявки не будет закрыто. В выводе их аккуратно отбрасывают, но при расчёте потенциалов они участвуют наравне с настоящими — пропуск этого нюанса ломает проверки на полпути. Держите таблицу полной: строк, столбцов, ни одной дырки.
Опорный план: северо-западный угол против минимального элемента#
Опорный план — допустимый план, у которого занятых клеток ровно : у нас . Занятая клетка — перевозка, вошедшая в базис. Классических способа построить стартовый план два, и они исповедуют разные философии.
Метод северо-западного угла
- Клетка (1,1): . Заявка Б1 закрыта, у А1 остаток 10.
- Клетка (1,2): . Склад А1 пуст, у Б2 остаток 15.
- Клетка (2,2): . Б2 закрыта, у А2 остаток 25.
- Клетка (2,3): . А2 пуст, у Б3 остаток 10.
- Клетка (3,3): . Б3 закрыта, у А3 остаток 10.
- Клетка (3,4): . Всё вывезено, всё доставлено.
Занятых клеток шесть — план невырожден. Стоимость: тысяч. Метод ни разу не взглянул на тарифы — он просто заполняет матрицу слева направо, сверху вниз.
Метод минимального элемента
- Минимальный тариф 1 — клетка (2,4): . Заявка Б4 закрыта.
- Среди оставшихся тариф 2 стоит в (1,1), (1,3), (2,2), (3,3). Берём (1,1): . Б1 закрыта.
- Клетка (1,3): . Склад А1 пуст.
- Клетка (2,2): . Б2 закрыта.
- Клетка (3,3): . Склад А3 пуст, у Б3 остаток 5.
- Остатки встречаются в клетке (2,3): . План построен.
Занятых клеток снова шесть. Стоимость: тысяч — на сто дешевле северо-западного. Жадный выбор работает лучше слепого, но оптимума не гарантирует: дешёвые клетки набиты, а дорогая (2,3) с тарифом 5 всё равно в плане.
Проверка на невырожденность: m + n − 1 занятых клеток#
Число — не прихоть, а размер базиса: столько уравнений содержит система для потенциалов. В обоих наших планах занято 6 клеток — проверка пройдена. Если клеток меньше, план вырожден: потенциалы восстановить не удастся, система распадётся на куски. Лечение — нулевая перевозка: в подходящую клетку помещают формально пустую, но «базисную» поставку, и счёт продолжается. Если клеток больше — план содержит цикл и опорным не является.
Метод потенциалов: оценки клеток#
Присвоим каждому складу потенциал , каждой стройке так, чтобы для занятых клеток выполнялось . Уравнений , неизвестных — одного не хватает, поэтому фиксируем нулём, остальные определяются последовательно.
- . Из клетки (1,1): ; из клетки (1,3): .
- Из (2,3): ; из (2,2): ; из (2,4): .
- Из (3,3): . Итого , .
Теперь оцениваем свободные клетки: . Оценка отвечает на вопрос: что произойдёт с суммой, если протащить тонну через эту клетку?
| Клетка | $c_{ij}$ | $u_i + v_j$ | $\Delta_{ij}$ |
|---|---|---|---|
| (1,2) | 3 | −1 | 4 |
| (1,4) | 4 | −2 | 6 |
| (2,1) | 3 | 5 | −2 |
| (3,1) | 4 | 2 | 2 |
| (3,2) | 3 | −1 | 4 |
| (3,4) | 6 | −2 | 8 |
Одна клетка с минусом: (2,1), . Каждая тонна, пропущенная через неё, экономит две тысячи. План не оптимален — улучшаем.
Цикл перераспределения: одна итерация#
Строим цикл: замкнутую ломаную по строкам и столбцам с вершинами в занятых клетках, стартующую в клетке (2,1). Здесь цикл прямоугольный: (2,1) → (1,1) → (1,3) → (2,3) → обратно в (2,1). Расставляем знаки поочерёдно: плюс в стартовой клетке, минус в следующей — и так по кругу.
- Знаки: , , , .
- Сдвиг — минимум по минусовым клеткам: .
- Прибавляем 5 к плюсовым клеткам, вычитаем из минусовых: , , , — клетка (2,3) уходит из базиса.
- Новая стоимость: тысяч — оценка клетки в точности предсказала выигрыш.
| План, т | Б1 | Б2 | Б3 | Б4 |
|---|---|---|---|---|
| А1 | 15 | — | 15 | — |
| А2 | 5 | 25 | — | 10 |
| А3 | — | — | 20 | — |
Проверка балансов обязательна: А1 отгружает , А2 — , А3 — ; заявки закрыты: , , , . Контрольный пересчёт потенциалов нового плана даёт , , и все шесть свободных клеток получают оценки — ни одной отрицательной. План оптимален, .
Когда план оптимален и что это даёт#
- Критерий метода потенциалов: план оптимален, если все оценки свободных клеток .
- Вырожденность: занятых клеток меньше — добавляют нулевую перевозку, иначе потенциалы не восстановятся.
- Потенциалы — двойственные оценки: склады и заявки получают цены, и критерий — это условие двойственности в действии. Мостик — двойственность в ЛП.
- Связь с симплексом: транспортная задача — частный случай ЛП, и симплекс-метод решает её тоже, просто медленнее: клеточная структура экономит сотни нулей в таблице.
Родственная классика — потоки в сетях: там тоже двигают «тонны» по рёбрам и ищут бутылочное горлышко; см. потоки в сетях и словарную статью про поток в сети. Начало всей линии — линейное программирование с полуплоскостями и вершинами.
Следующий шаг: измените условие — уменьшите запас склада А3 с 20 до 15 тонн. Баланс сломается: запасов 85, заявок 90. Добавьте фиктивного поставщика с запасом 5 и нулевыми тарифами, постройте опорный план минимальным элементом и доведите его до оптимума потенциалами. Одна-две итерации улучшения — лучшая тренировка перед контрольной.
Сколько занятых клеток должно быть у невырожденного опорного плана транспортной задачи 3×4?
Оценка свободной клетки оказалась отрицательной. Что делать?
Частые вопросы
Как построить начальный опорный план транспортной задачи?
Два классических способа: метод северо-западного угла — заполнение матрицы по порядку без учёта тарифов — и метод минимального элемента, где каждый раз выбирается клетка с наименьшим тарифом. В обоих на каждом шаге исчерпывается либо запас поставщика, либо заявка потребителя, пока не распределено всё.
Что делать, если занятых клеток меньше, чем m + n − 1?
План вырожден: система для потенциалов не решается — уравнений не хватает. Добавляют нулевую перевозку: в подходящую клетку помещают формально нулевую поставку, чтобы занятых клеток стало ровно , и продолжают метод потенциалов.
Как строится цикл перераспределения в транспортной задаче?
Свободной клетке с отрицательной оценкой ставят плюс. Далее по строкам и столбцам чередуют занятые клетки с минусами и плюсами, пока путь не замкнётся. Сдвиг равен минимуму перевозок в минусовых клетках: их уменьшают, плюсовые увеличивают, одна клетка покидает базис.
Что означает оценка Δij свободной клетки?
Это изменение суммарной стоимости при вводе единицы перевозки через данную клетку. Отрицательная оценка — план можно улучшить циклом; нулевые оценки при оптимальном плане указывают на альтернативные оптимумы; положительные — клетку трогать невыгодно.
Готовитесь к контрольной?
Чеклист тем по «Теория игр»: что вы уже умеете, что повторить и в каком порядке.
Открыть чеклист предмета →
Проверьте себя в бою
Босс-экзамен по «Теория игр»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.
Начать босс-экзамен →