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

← Назад к материалам
Старшая школа 17 Залы Оптимизация Линейная алгебра

Дидактические цели

Как получить максимум от ресурсов, которых на всё не хватает? Мастерская, делающая столы и стулья при ограниченных часах столярных, обивочных и сборочных работ, проходит через всю лабораторию. За 17 залов вы пройдёте графический метод целиком: составите модель, построите допустимую область и найдёте оптимальную вершину — как при максимизации, так и при минимизации. Симплекс-метод и двойственная задача разбираются в отдельной лаборатории «Симплекс-метод». Рассчитано на старшую школу.

Чему учимся

  • Различать роли, которые играет каждое число в условии, — переменная, коэффициент цели, удельный расход, ёмкость — и превращать условие в модель с целевой функцией и ограничениями (залы 1-5).
  • Строить полуплоскость, удовлетворяющую неравенству, пересекать несколько таких и узнавать допустимую область; читать запас каждого ресурса как зазор сверху его столбика (залы 6-10).
  • Находить оптимум с помощью линий уровня, вычислять его решением системы 2×2, когда числа уже не прочитать по клеткам, и понимать, почему он всегда попадает в вершину (залы 11-13).
  • Решать от начала до конца полную задачу на максимум, проходя метод шаг за шагом (зал 14).
  • Распознавать задачи с подвохом: область без верхней границы и поэтому без максимума, пустая область из-за несовместных ограничений и бесконечно много оптимальных решений вдоль стороны (зал 15).
  • Минимизировать при ограничениях вида «не меньше», когда область уходит вверх без границы, а не заключена в многоугольник, и решать от начала до конца полную задачу на минимум (залы 16 и 17).

Ключевые математические идеи

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

Содержание по залам

Зал 1 · Мебельная мастерская

Затравка лаборатории — без единой формулы. Два ползунка задают, сколько столов и сколько стульев изготовить, а три столбика вживую показывают расход времени на столярные работы, обивку и сборку: заполненная часть — израсходованное, пустая часть сверху — остаток. Если столбик переполняется, он краснеет, и план невозможен. Цель — получить 33 € прибыли, не переполнив ни одного столбика, а после успеха обращается внимание на то, что какой-то столбик обязательно оказался заполнен до конца.

Задания для ученика

  • Двигать ползунки в поисках допустимого плана с прибылью от 33 €.
  • Вычислить, сколько стульев позволяет сборка, если уже делается 4 стола.
  • Определить, какой ресурс кончится первым, если делать только стулья.

Зал 2 · Какую роль играет каждое число

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

Задания для ученика

  • Распределить три фрагмента условия по ролям.
  • Отличить расход на единицу от общей ёмкости.

Зал 3 · От фразы к неравенству

Алгебраический шаг: если на каждый стол уходит 3 часа, то на x столов — 3x. Теперь можно записать ограничение целиком, и объясняется, почему знак ≤, а не =. Редактируемая таблица расходов позволяет менять коэффициенты и видеть, как поворачивается соответствующая прямая; при движении двух ползунков появляется название того, что видно на экране, — допустимая область, — и плоскость становится кликабельной, чтобы рассматривать конкретные планы по одному.

Задания для ученика

  • Записать алгебраическое выражение для общего расхода времени на столы.
  • Перевести два разных утверждения в неравенства.
  • Вычислить, сколько часов сборки требует заданный план.

Зал 4 · Карта прибыли

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

Задания для ученика

  • Вычислить прибыль конкретного плана.
  • Сравнить три плана и определить, какой выгоднее.
  • Объяснить, почему линии равной прибыли параллельны.

Зал 5 · Постройте модель сами

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

Задания для ученика

  • Заполнить таблицу расходов по условию.
  • Определить, какое неравенство соответствует каждому ресурсу.
  • Отметить все недостающие условия и отличить их от величин, которые не являются переменными решения.

Зал 6 · Прямая делит плоскость

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

Задания для ученика

  • Определить, какая сторона прямой удовлетворяет ограничению.
  • Вычислить расход для плана, выходящего за предел.
  • Перевести «не менее 2 стульев на стол» в неравенство и указать точку, которая ему удовлетворяет.

Зал 7 · Выполнить два условия сразу

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

Задания для ученика

  • Выбрать из четырёх планов единственный, который удовлетворяет обоим ограничениям.
  • Найти точку пересечения двух прямых.

Зал 8 · Допустимая область

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

Задания для ученика

  • Определить, допустим ли конкретный план, и объяснить, почему нет.
  • Вычислить запас двух разных ресурсов в одной и той же точке.

Зал 9 · Ограничения на пределе

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

Задания для ученика

  • Определить, какие ограничения активны в данной вершине.
  • Сосчитать, сколько ограничений выполняется как равенство в любом углу.

Зал 10 · Углы области

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

Задания для ученика

  • Решить две системы 2×2 и найти координаты двух вершин.
  • Вычислить прибыль в найденной вершине.
  • Сосчитать вершины области.

Зал 11 · Развёртка прибыли

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

Задания для ученика

  • Определить, в какую сторону нужно сдвигать линию уровня.
  • Вычислить угловой коэффициент линии уровня прибыли.

Зал 12 · Когда посмотреть недостаточно

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

Задания для ученика

  • Решить систему 5x + 4y = 120, 3x + 8y = 156.
  • Вычислить прибыль в этой вершине.
  • Объяснить, почему одного чертежа недостаточно.

Зал 13 · Почему всегда угол?

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

Задания для ученика

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

Зал 14 · Решите целиком сами

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

Задания для ученика

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

Зал 15 · Когда что-то не так

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

Задания для ученика

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

Зал 16 · Минимизация и «не менее»

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

Задания для ученика

  • Вычислить стоимость диеты в оптимальной вершине.
  • Объяснить, почему есть минимум, но нет максимума.

Зал 17 · Решите задачу на минимум

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

Задания для ученика

  • Построить с нуля модель задачи на минимум.
  • Начертить прямые и найти вершины, решая соответствующие системы.
  • Вычислить стоимость в каждом углу и записать окончательное решение.

Залы для показа

Самые наглядные для показа и обсуждения в классе.

★
Зал 1 · Мебельная мастерская — Это затравка лаборатории: за пять минут она закрепляет идею ограниченного ресурса. Столбики, которые заполняются и переполняются, понятны без предварительных объяснений и возвращаются на протяжении всей лаборатории, пока не превращаются в переменные запаса.
★
Зал 11 · Развёртка прибыли — Анимированный сдвиг, который останавливается ровно при последнем касании области, — лучший образ для объяснения графического метода. Хорошо показать его на проекторе и, прежде чем запускать, спросить вслух, где он остановится.
★
Зал 13 · Почему всегда угол? — Поворот направления прибыли и перескакивающая выигрышная вершина превращают теорему в очевидность, а случай равенства — когда подсвечивается целая сторона — заодно отвечает на вопрос, всегда ли решение единственно.
★
Зал 14 · Решите целиком сами — Этот зал стоит пройти в классе от начала до конца: он заставляет применить весь метод к новой задаче. Пересечение прямых, не принадлежащее допустимой области, — именно та ошибка, которую ученики сами допускают на контрольной.