МатВектор

Command Palette

Search for a command to run...

🧮 Линал30 минСложность 2/5+60 XP

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

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

3 интерактива3 квизаУрок 22 из 22Обновлено 05.10.2026Обычный

Задача из жизни цеха. Продукция двух видов: изделия и . На изделие уходит единицы древесины, на — одна; всего древесины единиц в смену. На станке: занимает час, — часа; всего часов. Прибыль: рублей с изделия , — с . Сколько выпускать каждого, чтобы заработать больше всего? Две переменные — и это подарок: задача решается карандашом на листе бумаги, без единой итерации симплекса. Графический метод — не игрушка, а способ увидеть устройство всей линейной оптимизации: ответ всегда сидит в вершине.

Стандартная форма задачи#

Обозначим план выпуска (изделия ) и (изделия ). Ограничения по ресурсам и неотрицательность выпуска дают систему неравенств, а цель — функцию прибыли:

задача линейного программирования: цель линейна, ограничения линейны

Слово «линейное» здесь буквальное: ни в цели, ни в ограничениях нет ни квадратов, ни произведений переменных. Именно линейность делает задачу решаемой до конца — каждая граница на плоскости превращается в прямую, а нарисовать прямую вы умеете. Каждое неравенство вырезает из плоскости полуплоскость; пересечение всех четырёх полуплоскостей — область допустимых решений (ОДР):

ОДР — выпуклый многоугольник, у нас с вершинами (0,0), (6,0), (4,4), (0,6)

Выпуклость не случайность, а теорема: пересечение полуплоскостей всегда выпуклое множество — вместе с любыми двумя своими точками оно содержит отрезок между ними. Вершины многоугольника — это решения систем уравнений из пар граничных прямых; пересечение и считается как обычная СЛАУ: удвоим первое, вычтем второе, получим , откуда , .

Линии уровня: куда двигать прибыль#

Зафиксируем прибыль: . На плоскости это прямая, параллельная всем остальным линиям уровня — «карта высот» функции . Прибыль растёт в направлении вектора , сокращённо : это нормаль к линиям уровня, её направление связано со скалярным произведением — вдоль функция растёт быстрее всего. Геометрический алгоритм решения:

  1. Построить ОДР: по прямым-границам и полуплоскостям, с проверкой одной пробной точкой (обычно ).
  2. Провести линию уровня для какого-нибудь — она перпендикулярна вектору .
  3. Сдвигать линию уровня параллельно себе в сторону до последнего касания ОДР — у многоугольника это всегда вершина (или целое ребро).
  4. Вычислить во всех кандидатных вершинах и выбрать максимум — проверка, которая защищает от ошибок рисунка.

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

Полное решение задачи о производстве#

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

Ошибки, которые меняют ответ#

  • Вершина не из ОДР: посчитали пересечение прямых, но не проверили остальные неравенства. Точка — пересечение оси с первой прямой, но второе ограничение там нарушено; включить её в перебор — испортить ответ.
  • Линия уровня сдвигается против нормали: получили максимум там, где прибыль минимальна. Всегда отмечайте на чертеже стрелкой.
  • Потерянная вершина: забыли осевые точки или — они тоже вершины ОДР, хотя на них не пересекаются две «наклонные» прямые.
  • Арифметика пересечения: система из двух прямых решается в две строки, но знак минус при переносе — классическая потеря. Сверяйте пересечение подстановкой в оба уравнения.

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

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

Координаты вершины пересечения прямых и :

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

Линии уровня целевой функции перпендикулярны вектору:

Числовой прогон: цех делает столы и стулья, ресурс — 20 часов столярного времени и 18 часов покраски. Стол требует 2 и 3 часа, стул — 2 и 1 час; прибыль 6 и 5 тысяч. Ограничения: , , целевая . Вершины области: , , , . Значения целевой: 50, 54, 32 и 0 — оптимум в точке : четыре стола и шесть стульев, прибыль 54 тысячи. Линия уровня в этой точке касается области последней — геометрия совпала с алгеброй.

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

В нашей задаче максимум прибыли достигается:

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

Графический метод работает в трёх измерениях?

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

Что если ограничение со знаком «≥»?

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

Как понять, что максимум на всём ребре?

Если линия уровня параллельна одной из границ ОДР и «застревает» на ней целиком: значение одинаково во всех точках ребра. Проверка мгновенная — посчитайте в двух концах ребра; равенство значений и означает альтернативный оптимум.

Зачем проверять ресурсы «на впритык»?

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

Курс линейной алгебры на этом сайте пройден от первых операций с матрицами до оптимизации; возвращайтесь к любому уроку через хаб курса или тренируйте технику в тренажёре по матрицам. Если задача роста вам ближе по вероятностной части — переходите к цепям Маркова в курсе теории вероятностей.

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

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

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

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

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

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