МатВектор

Command Palette

Search for a command to run...

♟️ Теория игр35 минСложность 3/5+65 XP

Транспортная задача: опорный план и метод потенциалов с примером

Транспортная задача: опорный план методами северо-западного угла и минимального элемента, метод потенциалов, цикл перераспределения, проверка оптимальности.

3 интерактива2 квизаУрок 9 из 9Обновлено 04.10.2026Обычный

Три склада с цементом: 30, 40 и 20 тонн. Четыре стройки с заявками: 20, 25, 35 и 10 тонн. Перевозка тонны с каждого склада на каждую стройку стоит своих денег — тарифов двенадцать, и они все разные. Диспетчеры спорят о плане: один грузит «по порядку, пока не кончится», другой — «по самой дешёвой клетке». Первый план обойдётся в 285 тысяч, второй — в 185. Оптимум же — 175, и до него можно добраться за один ход. Как именно — вопрос метода потенциалов.

Постановка: тарифы, запасы, заявки#

Поставщиков , потребителей . У поставщика запас , у потребителя — заявка . Перевозка тонны от к стоит , а переменная — сколько тонн везём. Цель — минимизировать общую стоимость:

переменные — план перевозок

Ограничения двоякие: из каждого склада всё вывезти (), каждую заявку закрыть (). Это линейная задача с особой структурой: в каждом ограничении участвуют переменные только одной строки или одного столбца таблицы. Именно эта ленивая структура и порождает отдельный метод вместо общего симплекса.

Тариф, тыс./тБ1Б2Б3Б4Запас
А1232430
А2325140
А3432620
Заявка2025351090
Три поставщика, четыре потребителя, суммарный баланс 90 тонн

Модель называется закрытой, когда суммарный запас равен суммарной заявке: . Равенство не декоративное: без него не бывает планов, закрывающих и склады, и заявки одновременно. Если запасов больше, вводят фиктивного потребителя с нулевыми тарифами — «склад остатков»; если заявок больше — фиктивного поставщика. Открытая модель сводится к закрытой и дальше решается по общей схеме.

Фиктивные строки и столбцы безобидны: нулевой тариф не влияет на сумму, а фиктивные перевозки лишь показывают, сколько груза останется на складе или сколько заявки не будет закрыто. В выводе их аккуратно отбрасывают, но при расчёте потенциалов они участвуют наравне с настоящими — пропуск этого нюанса ломает проверки на полпути. Держите таблицу полной: строк, столбцов, ни одной дырки.

Опорный план: северо-западный угол против минимального элемента#

Опорный план — допустимый план, у которого занятых клеток ровно : у нас . Занятая клетка — перевозка, вошедшая в базис. Классических способа построить стартовый план два, и они исповедуют разные философии.

Метод северо-западного угла

  1. Клетка (1,1): . Заявка Б1 закрыта, у А1 остаток 10.
  2. Клетка (1,2): . Склад А1 пуст, у Б2 остаток 15.
  3. Клетка (2,2): . Б2 закрыта, у А2 остаток 25.
  4. Клетка (2,3): . А2 пуст, у Б3 остаток 10.
  5. Клетка (3,3): . Б3 закрыта, у А3 остаток 10.
  6. Клетка (3,4): . Всё вывезено, всё доставлено.

Занятых клеток шесть — план невырожден. Стоимость: тысяч. Метод ни разу не взглянул на тарифы — он просто заполняет матрицу слева направо, сверху вниз.

Метод минимального элемента

  1. Минимальный тариф 1 — клетка (2,4): . Заявка Б4 закрыта.
  2. Среди оставшихся тариф 2 стоит в (1,1), (1,3), (2,2), (3,3). Берём (1,1): . Б1 закрыта.
  3. Клетка (1,3): . Склад А1 пуст.
  4. Клетка (2,2): . Б2 закрыта.
  5. Клетка (3,3): . Склад А3 пуст, у Б3 остаток 5.
  6. Остатки встречаются в клетке (2,3): . План построен.

Занятых клеток снова шесть. Стоимость: тысяч — на сто дешевле северо-западного. Жадный выбор работает лучше слепого, но оптимума не гарантирует: дешёвые клетки набиты, а дорогая (2,3) с тарифом 5 всё равно в плане.

Проверка на невырожденность: m + n − 1 занятых клеток#

Число — не прихоть, а размер базиса: столько уравнений содержит система для потенциалов. В обоих наших планах занято 6 клеток — проверка пройдена. Если клеток меньше, план вырожден: потенциалы восстановить не удастся, система распадётся на куски. Лечение — нулевая перевозка: в подходящую клетку помещают формально пустую, но «базисную» поставку, и счёт продолжается. Если клеток больше — план содержит цикл и опорным не является.

Метод потенциалов: оценки клеток#

Присвоим каждому складу потенциал , каждой стройке так, чтобы для занятых клеток выполнялось . Уравнений , неизвестных — одного не хватает, поэтому фиксируем нулём, остальные определяются последовательно.

  1. . Из клетки (1,1): ; из клетки (1,3): .
  2. Из (2,3): ; из (2,2): ; из (2,4): .
  3. Из (3,3): . Итого , .

Теперь оцениваем свободные клетки: . Оценка отвечает на вопрос: что произойдёт с суммой, если протащить тонну через эту клетку?

Клетка$c_{ij}$$u_i + v_j$$\Delta_{ij}$
(1,2)3−14
(1,4)4−26
(2,1)35−2
(3,1)422
(3,2)3−14
(3,4)6−28
Оценки шести свободных клеток плана со стоимостью 185

Одна клетка с минусом: (2,1), . Каждая тонна, пропущенная через неё, экономит две тысячи. План не оптимален — улучшаем.

Цикл перераспределения: одна итерация#

Строим цикл: замкнутую ломаную по строкам и столбцам с вершинами в занятых клетках, стартующую в клетке (2,1). Здесь цикл прямоугольный: (2,1) → (1,1) → (1,3) → (2,3) → обратно в (2,1). Расставляем знаки поочерёдно: плюс в стартовой клетке, минус в следующей — и так по кругу.

  1. Знаки: , , , .
  2. Сдвиг — минимум по минусовым клеткам: .
  3. Прибавляем 5 к плюсовым клеткам, вычитаем из минусовых: , , , — клетка (2,3) уходит из базиса.
  4. Новая стоимость: тысяч — оценка клетки в точности предсказала выигрыш.
План, тБ1Б2Б3Б4
А115—15—
А2525—10
А3——20—
Оптимальный план: Z = 175 тысяч рублей

Проверка балансов обязательна: А1 отгружает , А2 — , А3 — ; заявки закрыты: , , , . Контрольный пересчёт потенциалов нового плана даёт , , и все шесть свободных клеток получают оценки — ни одной отрицательной. План оптимален, .

Когда план оптимален и что это даёт#

  • Критерий метода потенциалов: план оптимален, если все оценки свободных клеток .
  • Вырожденность: занятых клеток меньше — добавляют нулевую перевозку, иначе потенциалы не восстановятся.
  • Потенциалы — двойственные оценки: склады и заявки получают цены, и критерий — это условие двойственности в действии. Мостик — двойственность в ЛП.
  • Связь с симплексом: транспортная задача — частный случай ЛП, и симплекс-метод решает её тоже, просто медленнее: клеточная структура экономит сотни нулей в таблице.

Родственная классика — потоки в сетях: там тоже двигают «тонны» по рёбрам и ищут бутылочное горлышко; см. потоки в сетях и словарную статью про поток в сети. Начало всей линии — линейное программирование с полуплоскостями и вершинами.

Следующий шаг: измените условие — уменьшите запас склада А3 с 20 до 15 тонн. Баланс сломается: запасов 85, заявок 90. Добавьте фиктивного поставщика с запасом 5 и нулевыми тарифами, постройте опорный план минимальным элементом и доведите его до оптимума потенциалами. Одна-две итерации улучшения — лучшая тренировка перед контрольной.

Проверь себя+10 XP

Сколько занятых клеток должно быть у невырожденного опорного плана транспортной задачи 3×4?

Проверь себя+10 XP

Оценка свободной клетки оказалась отрицательной. Что делать?

Частые вопросы

Как построить начальный опорный план транспортной задачи?

Два классических способа: метод северо-западного угла — заполнение матрицы по порядку без учёта тарифов — и метод минимального элемента, где каждый раз выбирается клетка с наименьшим тарифом. В обоих на каждом шаге исчерпывается либо запас поставщика, либо заявка потребителя, пока не распределено всё.

Что делать, если занятых клеток меньше, чем m + n − 1?

План вырожден: система для потенциалов не решается — уравнений не хватает. Добавляют нулевую перевозку: в подходящую клетку помещают формально нулевую поставку, чтобы занятых клеток стало ровно , и продолжают метод потенциалов.

Как строится цикл перераспределения в транспортной задаче?

Свободной клетке с отрицательной оценкой ставят плюс. Далее по строкам и столбцам чередуют занятые клетки с минусами и плюсами, пока путь не замкнётся. Сдвиг равен минимуму перевозок в минусовых клетках: их уменьшают, плюсовые увеличивают, одна клетка покидает базис.

Что означает оценка Δij свободной клетки?

Это изменение суммарной стоимости при вводе единицы перевозки через данную клетку. Отрицательная оценка — план можно улучшить циклом; нулевые оценки при оптимальном плане указывают на альтернативные оптимумы; положительные — клетку трогать невыгодно.

Готовитесь к контрольной?

Чеклист тем по «Теория игр»: что вы уже умеете, что повторить и в каком порядке.

Открыть чеклист предмета →

Проверьте себя в бою

Босс-экзамен по «Теория игр»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.

Начать босс-экзамен →