МатВектор

Command Palette

Search for a command to run...

♟️ Теория игр30 минСложность 2/5+60 XP

Линейное программирование: постановка задачи и графический метод

Что такое ЗЛП и как решать её графически: полуплоскости, линии уровня, перебор вершин. Разбираем план производства стола и тумб с полной проверкой ответа.

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

Цех получил заказ: нужны столы и тумбы, сколько сможет сделать — столько заберут. Один стол приносит 2 тысячи прибыли, одна тумба — 3 тысячи. Ресурсов впритык: станок А отработает до конца месяца не больше 8 часов, причём стол требует час его работы, тумба — два; у станка Б остаётся 6 часов, и он тратит по часу на любое изделие. Запускать одни тумбы? Выходит 4 тумбы и 12 тысяч. Одни столы? 6 столов и те же 12 тысяч. А если смешать? Оказывается, 4 стола и 2 тумбы дадут 14 тысяч — больше любой крайности. Как получать такие ответы не перебором догадок, а алгоритмом, и есть вопрос линейного программирования.

Что такое ЗЛП: три обязательных ингредиента#

Задача линейного программирования (ЗЛП) — задача об оптимизации линейной функции на множестве, заданном линейными неравенствами и равенствами. В общем виде она записывается так:

целевая функция: — переменные плана, — прибыли или затраты на единицу

На переменные наложены ограничения — по одному на каждый ресурс:

— расход -го ресурса на единицу -го продукта, — запас ресурса

Наконец, третий ингредиент — неотрицательность: . Отрицательный выпуск не имеет смысла. Слово «линейное» в названии означает: ни одна переменная не возводится в степень, не умножается на другую, под неё не подставляется синус. Благодаря этому каждое ограничение вырезает из пространства полуплоскость, а целевая функция задаёт семейство параллельных прямых — на этом и построен графический метод.

  • линейная целевая функция — то, что максимизируем или минимизируем;
  • линейные ограничения — неравенства или равенства, задающие границы плана;
  • неотрицательность переменных — её иногда снимают, тогда меняется техника, но не идея.

Жизненные постановки: план, рацион и раскрой#

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

Задача о рационе (диете) — зеркальная: не прибыль максимизировать, а затраты минимизировать при обязательных требованиях. Есть корма с ценами и содержанием питательных веществ; нужно смешать их так, чтобы животное получило норму белка, жиров и витаминов, а смесь стоила дешевле всех остальных допустимых смесей.

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

ПостановкаПеременныеЧто оптимизируем
План производстваобъёмы выпуска каждого продуктаприбыль → max
Рацион (диета)количество каждого корма в смесистоимость → min
Раскрой материаласколько прутков кроить каждым способомотходы → min
Три классические постановки — одна математическая схема

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

Стандартная и каноническая форма: зачем две#

Стандартной (или симметричной) формой называют запись, где все ограничения — неравенства «≤», целевая функция максимизируется, переменные неотрицательны. Наша задача про цех записана именно так.

Каноническая форма требует равенств: каждое неравенство дополняют балансовой переменной. Ограничение превращается в , где — недогрузка станка А, простой в часах. Ограничение со знаком «≥» приводят умножением строки на , а переменную без ограничения знака заменяют разностью двух неотрицательных. Зачем возня? Каноническая форма — стартовая площадка симплекс-метода: в ней сразу читается начальный базис.

Как нарисовать задачу: полуплоскости и линия уровня#

Пока переменных две, задачу можно нарисовать. Каждое линейное неравенство на плоскости — полуплоскость: прямая-граница плюс одна из двух сторон. Пересечение всех полуплоскостей и условий неотрицательности называют областью допустимых решений (ОДР). Это выпуклый многоугольник — возможно, пустой или неограниченный, но всегда выпуклый, если не пуст.

Целевая функция рисуется линиями уровня — прямыми с разными значениями . Все они параллельны, а направление роста задаёт вектор — градиент. Двигаем линию уровня по стрелке; последняя точка, где она ещё касается ОДР, — оптимум.

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

Полный пример: 2x + 3y → max с перебором вершин#

Вернёмся к цеху. Обозначим — столы, — тумбы. Прибыль и два ресурса дают систему:

  1. Прямая проходит через точки и . Подстановка даёт — верно, значит, берём полуплоскость с началом координат.
  2. Прямая проходит через и ; проверка нулём снова работает.
  3. Условия , оставляют первый квадрант.
  4. ОДР — четырёхугольник с вершинами , , , ; точка — пересечение прямых и : вычтем второе из первого, получим , затем .
ВершинаКак получена$F = 2x + 3y$
(0, 0)пересечение осей0
(6, 0) и 12
(4, 2) и 14
(0, 4) и 12
Перебор вершин — вместо проверки бесконечного множества точек

Максимум равен 14 при , : четыре стола и две тумбы. Проверка честная: станок А загружен целиком — часов, станок Б тоже — часов. Оба ресурса прижаты к границе. Если бы какая-то полуплоскость «болталась» в стороне, стоило бы перепроверить арифметику.

Заметьте, как легли числа: чистые тумбы дают 12, чистые столы — тоже 12, а смесь выжимает 14. Интуиция «бери самое прибыльное» ошибается, потому что тумба съедает два дефицитных часа станка А. Редкий случай, когда «немножко всего» математически честнее, чем удар в одну точку.

Когда метод молчит: пустая ОДР и вечный рост#

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

Второй случай — неограниченность. Возьмём при единственном ограничении и . План допустим при любом , а растёт без предела. ОДР — бесконечный клин, линия уровня уезжает по нему вечно, максимума не существует. Симплекс-метод сообщает об этом отдельным сигналом — увидим его в уроке про симплекс-метод.

В практических моделях неограниченность — почти всегда симптом забытого ограничения: спроса, бюджета, ёмкости рынка. Математика честно говорит «можно зарабатывать вечно» — значит, вы забыли, что покупатели кончаются.

Что дальше#

При трёх переменных рисовать уже тесно, при десяти — невозможно. Но вывод «оптимум прячется в вершине» никуда не уходит: симплекс-метод перебирает вершины алгебраически, без единого чертежа. Систему ограничений удобно держать в матричной записи — об этом матрицы и операции, а решать систему руками научит СЛАУ и метод Гаусса; сам термин закреплён в статье про систему линейных уравнений. Корни всей линии — введение в теорию игр: исследование операций выросло из игр как их вырожденный случай с «природой» вместо противника.

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

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

В задаче при , , максимальная прибыль равна:

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

Линия уровня целевой функции — это:

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

ОДР задачи неограничена. Что можно сказать о целевой функции?

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

Как найти область допустимых решений графически?

Постройте прямую по каждому ограничению: найдите её пересечения с осями и проведите линию. Заштрихуйте нужную полуплоскость — ту, где лежит проверочная точка , если она удовлетворяет неравенству. Пересечение всех штриховок и условий , и есть ОДР.

Почему оптимум линейной функции достигается в вершине?

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

Чем каноническая форма отличается от стандартной?

Стандартная форма — неравенства «≤», максимум и неотрицательные переменные. Каноническая — равенства: к каждому неравенству добавляют балансовую переменную, недогрузку ресурса, а «≥» разворачивают умножением строки на минус единицу. Каноническая форма нужна симплекс-методу, потому что из равенств сразу читается начальный базис и первые значения базисных переменных.

Что делать, если целевая функция не ограничена на ОДР?

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

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

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

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

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

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

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