общая стоимость доставки = 1020 − 2 × АЮ − 5 × БЮ (рублей)
(2.1)Нам нужно выбрать АЮ и БЮ так, чтобы стоимость была как можно меньше.
Но это еще не все. АЮ и БЮ нельзя выбрать просто так. В задаче есть существенные
АЮ ≤ 60,
(2.2)БЮ ≤ 40.
(2.3)Во-вторых, нужно учесть, что запас на каждом складе ограниченный. С южного склада мы отправляем АЮ + БЮ листов, а всего на этом складе 70 листов. Поэтому АЮ + БЮ не больше 70:
АЮ + БЮ ≤ 70.
(2.4)Аналогично с северного склада мы не можем отправить больше 35 листов:
(40 – АЮ) + (60 – БЮ) ≤ 35.
Раскрыв скобки в этом выражении, получаем:
АЮ + БЮ ≥ 65.
(2.5)Это ограничение можно интерпретировать еще и так: поскольку на северном складе 35 листов, а нам в совокупности необходимо доставить 100 листов, то как минимум 65 листов должны быть доставлены с южного склада.
Вот теперь все! Это и есть
Выбрать АЮ и БЮ так, чтобы минимизировать:
1020 − 2 × АЮ − 5 × БЮ,
при ограничениях:
0 ≤ АЮ ≤ 60,
0 ≤ БЮ ≤ 40,
АЮ + БЮ ≤ 70,
АЮ + БЮ ≥ 65.
Мы добавили, что АЮ и БЮ либо ноль, либо больше нуля, потому что доставить клиенту отрицательное количество листов железа невозможно.
В практических задачах переменных и ограничений намного больше. При этом всегда есть только
Теория для практики
Пионер и основатель теории линейного программирования – советский ученый Леонид Витальевич Канторович. Над подобными проблемами он работал в конце 1930-х годов. В 1940-м вышла его фундаментальная статья «Об одном эффективном методе решения некоторых классов экстремальных проблем»{2}
. В ней Канторович заложил математические основы линейного программирования (правда, тогда оно еще так не называлось).Канторович интересовался этими проблемами прежде всего из-за их практической ценности. В 1975 году он получил Нобелевскую премию «за вклад в теорию оптимального распределения ресурсов», которую разделил с американским экономистом-математиком голландского происхождения Тьяллингом Купмансом, тоже занимавшимся разработкой теории линейного программирования и ее приложениями в экономике.
Одна из классических знаменитых задач линейного программирования – задача о диете Стиглера, датируемая 1945 годом. Звучит она примерно так: какие из 77 продуктов должны входить в потребительскую корзину одного человека (скажем, мужчины среднего веса), чтобы он получил необходимую норму девяти питательных веществ (включая калории) и при этом стоимость продуктов была минимальной? Это очень важная задача в экономике, потому что ее решение определяет минимальную потребительскую стоимость полноценного питания.
В математической формулировке переменные – это количество каждого продукта. Содержание белков, жиров, витаминов, минералов в каждом продукте известно. Ограничения – это минимальное количество питательных веществ. А минимизировать надо общую стоимость продуктов, которая складывается из количества каждого продукта, помноженного на его цену.
Уже к концу 1950-х линейное программирование достаточно широко использовалось в нефтяной индустрии. Сегодня оно лежит в основе огромного класса задач оптимизации, включая задачи менеджмента и микроэкономики: планирование, логистика, составление расписаний. Задачи, где нужно минимизировать стоимость или максимизировать доход при заданных ограничениях.
От задачи к решению