Линейная и целочисленная оптимизация

Содержание

Линейная и целочисленная оптимизация (Задание 17)

Два вида груза, два ограничения - по массе и по объёму, - и вопрос: что и сколько погрузить, чтобы выручка была наибольшей. Или наоборот: сколько рейсов понадобится, чтобы вывезти всё. Производной здесь нет вовсе, зато появляется требование, которого нет в других сюжетах задания 17: числа обязаны быть целыми. Из-за него решение состоит из двух половин - «больше нельзя» и «столько можно», - и без любой из них баллов не будет.

Модель: план из двух целых чисел

Область ограничений на плоскости и целые точки в ней

Оценка сверху: «больше нельзя»

Оценка снизу: наименьшее число рейсов

Оценка снизу и предъявленный план

Перебор целых планов у границы

Целые точки на границе допустимой области
Жадный план против оптимального: остаток грузоподъёмности

Алгоритм

Примеры решения

Пример 1. Два ограничения сразу

Условие: Мебельный магазин отправляет одним фургоном холодильники и диваны. Холодильник весит 9090 кг и занимает 11 м3^3, доставка одного холодильника приносит 55 тыс. рублей. Диван весит 6060 кг и занимает 22 м3^3, доставка одного дивана приносит 44 тыс. рублей. Фургон может взять не более 18001800 кг груза и не более 4040 м3^3. Сколько холодильников и сколько диванов нужно погрузить, чтобы выручка за рейс была наибольшей, и чему она равна?

Пример 2. Наименьшее число рейсов

Условие: На стройку нужно перевезти 3030 тяжёлых плит массой 22 т каждая и 7070 лёгких плит массой 0,50{,}5 т каждая. Грузовик за один рейс поднимает не более 66 т, а по габаритам ложемента вмещает не более 88 плит (любых). Какое наименьшее число рейсов потребуется, чтобы перевезти все плиты?

Пример 3. Дробная оценка и целая выручка

Условие: Речная баржа перевозит контейнеры двух типов: большой контейнер весит 44 т, и за его перевозку платят 77 тыс. рублей, малый весит 33 т, и за него платят 55 тыс. рублей. Баржа может взять не более 5050 т груза; свободного места на палубе достаточно, а число контейнеров каждого типа - целое неотрицательное. Какую наибольшую выручку может получить перевозчик за один рейс и сколько контейнеров каждого типа для этого нужно взять?

Как оформить решение на 2 балла

Критерии ФИПИ: 22 балла - обоснованно получен верный ответ; 11 балл - последовательность всех шагов верна, но допущена вычислительная ошибка; 00 - в остальных случаях. Особенность темы в том, что «обоснованно» здесь означает двустороннюю аргументацию: одна найденная раскладка ответа не доказывает, а одна оценка ответа не даёт. В чистовике должны быть шесть пунктов.

  1. Переменные с указанием целочисленности: «xx и yy - числа контейнеров, целые неотрицательные».
  2. Все ограничения неравенствами и целевая функция с числами.
  3. Оценка: сверху для выручки, снизу для числа рейсов. Множители α\alpha, β\beta или λ\lambda выписаны, их неотрицательность отмечена.
  4. Уточнение по целочисленности, если оценка дробная: выручка вниз, рейсы вверх.
  5. План, на котором оценка достигается, с проверкой каждого ограничения по отдельности.
  6. Вывод: «8787 - достижимо и больше не бывает», и ответ в терминах задачи.

Частые ошибки

Проверь себя
  1. Ограничения 3x+2y⩽603x + 2y \leqslant 60 и x+2y⩽40x + 2y \leqslant 40, выручка R=5x+4yR = 5x + 4y. Какая оценка сверху верна?
  2. Общая масса груза 9595 т, за рейс перевозится не более 66 т. Какова оценка снизу для числа рейсов?
  3. Оценка сверху дала R⩽87,5R \leqslant 87{,}5, а выручка выражается целым числом тысяч рублей. Что писать дальше?
  4. Найден план на 8787 тысяч рублей. Почему этого мало для полного балла?
  5. Почему план «грузить только самый выгодный товар» бывает хуже оптимального?