Оптимизационные задачи принятия решений

Аннотация: На экономических примерах рассматривается задача линейного программирования, в том числе двойственная к ней, а также графический и симплекс-метод ее решения. Даются постановки транспортной задачи и задачи о ранце. Вводится понятие графа, дается понятие о задачах коммивояжера, кратчайшего пути, максимального потока.

Линейное программирование

В теории принятия решений большое место занимают оптимизационные задачи Среди них наиболее известны задачи линейного программирования, в которых максимизируемая функция F(X) является линейной, а ограничения А задаются линейными неравенствами. Начнем с примера.

Производственная задача. Цех может производить стулья и столы. На производство стула идет 5 единиц материала, на производство стола - 20 единиц (футов красного дерева). Изготовление стула требует 10 человеко-часов, стола - 15 задачи Имеется 400 единиц материала и 450 человеко-часов. Прибыль при производстве стула - 45 долларов США, при производстве стола - 80 долларов США. Сколько надо сделать стульев и столов, чтобы получить максимальную прибыль?

Обозначим: Х_1 - число изготовленных стульев, Х_2 - число сделанных столов. Задача оптимизации имеет вид:

45 Х_1 + 80 Х_2 \to max\ 5 Х_1 + 20 Х_2 \le 400,\ 10 Х_1 + 15 Х_2 \le 450,\ Х_1 \ge 0,\ Х_2 \ge 0.

В первой строке выписана целевая функция - прибыль при выпуске Х_1 стульев и Х_2 столов. Ее требуется максимизировать, выбирая оптимальные значения переменных Х_1 и Х_2. При этом должны быть выполнены ограничения по материалу (вторая строчка) - истрачено не более 400 футов красного дерева. А также и ограничения по труду (третья строчка) - затрачено не более 450 часов. Кроме того, нельзя забывать, что число столов и число стульев неотрицательны. Если Х_1 = 0, то это значит, что стулья не выпускаются. Если же хоть один стул сделан, то Х_1 положительно. Но невозможно представить себе отрицательный выпуск - Х_1 не может быть отрицательным с экономической точки зрения, хотя с математической точки зрения такого ограничения усмотреть нельзя. В четвертой и пятой строчках задачи и констатируется, что переменные неотрицательны.

Условия производственной задачи можно изобразить на координатной плоскости. Будем по горизонтальной оси абсцисс откладывать значения Х_1, а по вертикальной оси ординат - значения Х_2. Тогда ограничения по материалу и последние две строчки оптимизационной задачи выделяют возможные значения вектора (Х_1, Х_2) объемов выпуска в виде треугольника (рис. 8.1).

Таким образом, ограничения по материалу изображаются в виде выпуклого многоугольника, конкретно, треугольника. Этот треугольник получается путем отсечения от первого квадранта примыкающей к началу координат зоны. Отсечение проводится прямой, соответствующей второй строке исходной задачи, с заменой неравенства на равенство. Прямая пересекает ось Х_1, соответствующую стульям, в точке (80, 0). Это означает, что если весь материал пустить на изготовление стульев, то будет изготовлено 80 стульев. Та же прямая пересекает ось Х_2, соответствующую столам, в точке (0, 20). Это означает, что если весь материал пустить на изготовление столов, то будет изготовлено 20 столов. Для всех точек внутри треугольника выполнено неравенство, а не точное равенство - материал останется.


Рис. 8.1.

Аналогичным образом можно изобразить и ограничения по труду (рис. 8.2).


Рис. 8.2.

Таким образом, ограничения по труду, как и ограничения по материалу, изображаются в виде треугольника. Этот треугольник также получается путем отсечения от первого квадранта примыкающей к началу координат зоны. Отсечение проводится прямой, соответствующей третьей строке исходной задачи, с заменой неравенства на равенство. Прямая пересекает ось Х_1, соответствующую стульям, в точке (45, 0). Это означает, что если все трудовые ресурсы пустить на изготовление стульев, то будет сделано 45 стульев. Та же прямая пересекает ось Х_2, соответствующую столам, в точке (0, 30). Это означает, что если всех рабочих поставить на изготовление столов, то будет сделано 30 столов. Для всех точек внутри треугольника выполнено неравенство, а не точное равенство - часть рабочих будет простаивать.

Мы видим, что очевидного решения нет - для изготовления 80 стульев есть материал, но не хватает рабочих рук, а для производства 30 столов есть рабочая сила, но нет материала, Значит, надо изготавливать и то, и другое. Но в каком соотношении?

Чтобы ответить на этот вопрос, надо "совместить" рис. 8.1 и рис. 8.2, получив область возможных решений, а затем проследить, какие значения принимает целевая функция на этом множестве (рис. 8.3).


Рис. 8.3.

Таким образом, множество возможных значений объемов выпуска стульев и столов (Х_1, Х_2) , или, в других терминах, множество А, задающее ограничения на параметр управления в общей оптимизационной задаче, представляет собой пересечение двух треугольников, т.е. выпуклый четырехугольник, показанный на рис. 8.3. Три его вершины очевидны - это (0,0), (45,0) и (0,20). Четвертая - это пересечение двух прямых - границ треугольников на рис. 8.1 и рис. 8.2, т.е. решение системы уравнений

5 Х_1 + 20 Х_2 = 400,\ 10 Х_1 + 15 Х_2 = 450.

Из первого уравнения: 5 Х_1 = 400 - 20 Х_2, Х_1 = 80 - 4 Х_2. Подставляем во второе уравнение:

10 (80 - 4 Х_2) + 15 Х_2 = 800 - 40Х_2 + 15 Х_2 = 800 - 25 Х_2 = 450,

следовательно, 25 Х_2 = 350, Х_2 = 14, откуда Х_1 = 80 - 4 \times 14 = 80 - 56 =24.

Итак, четвертая вершина четырехугольника - это (24, 14).

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

Целевая функция 45 Х_1 + 80 Х_2 принимает минимальное значение, равное 0, в вершине (0, 0). При увеличении аргументов эта функция увеличивается. В вершине (24, 14) она принимает значение 2200. При этом прямая 45 Х_1 + 80 Х_2 = 2200 проходит между прямыми ограничений 5 Х_1 + 20 Х_2 = 400 и 10 Х_1 + 15 Х_2 = 450, пересекающимися в той же точке. Отсюда, как и из непосредственной проверки двух оставшихся вершин, вытекает, что максимум целевой функции, равный 2200, достигается в вершине (24, 14).

Таким образом, оптимальный выпуск таков: 24 стула и 14 столов. При этом используется весь материал и все трудовые ресурсы, а прибыль равна 2200 долларам США.

Двойственная задача. Каждой задаче линейного программирования соответствует так называемая двойственная задача. В ней по сравнению с исходной задачей строки переходят в столбцы, неравенства меняют знак, вместо максимума ищется минимум (или, наоборот, вместо минимума - максимум). Задача, двойственная к двойственной - эта сама исходная задача. Сравним исходную задачу (слева) и двойственную к ней (справа):

\begin{align}45 Х_1 &+ 80 Х_2 \to max, & 400 W_1 &+ 450 W_2 \to min,\ 5 Х_1 &+ 20 Х_2 \le 400, & 5 W_1 &+ 10 W_2 \ge 45,\ 10 Х_1 &+ 15 Х_2 \le 450, & 20 W_1 &+ 15 W_2 \ge 80, \ Х_1 &\ge 0, & W_1 &\ge 0,\ Х_2 &\ge 0. & W_2 &\ge 0.\ \end{align}

Почему двойственная задача столь важна? Можно доказать, что оптимальные значения целевых функций в исходной и двойственной задачах совпадают (т.е. максимум в исходной задаче совпадает с минимумом в двойственной). При этом оптимальные значения W_1 и W_2 показывают стоимость материала и труда соответственно, если их оценивать по вкладу в целевую функцию. Чтобы не путать с рыночными ценами этих факторов производства, W_1 и W_2 называют "объективно обусловленными оценками" сырья и рабочей силы.

Линейное программирование как научно-практическая дисциплина. Из всех задач оптимизации задачи линейного программирования выделяются тем, что в них ограничения - системы линейных неравенств или равенств. Ограничения задают выпуклые линейные многогранники в конечном линейном пространстве. Целевые функции также линейны.

Впервые такие задачи решались советским математиком Л.В. Канторовичем (1912-1986) в 1930-х годах как задачи производственного менеджмента с целью оптимизации организации производства и производственных процессов, например, процессов загрузки станков и раскройки листов материалов. После второй мировой войны аналогичными задачами занялись в США. В 1975 г. Т. Купманс (1910-1985, родился в Нидерландах, работал в основном в США) и академик АН СССР Л.В. Канторович были награждены Нобелевскими премиями по экономике.

Рассмотрим несколько типовых задач линейного программирования.

Задача о диете (упрощенный вариант). Предположим для определенности, что необходимо составить самый дешевый рацион питания цыплят, содержащий необходимое количество определенных питательных веществ (для простоты, тиамина Т и ниацина Н).

Таблица 8.1. Исходные данные в задаче об оптимизации смеси Содержание в 1 унции К Содержание в 1 унции С Потребность Вещество Т 0,10 мг 0,25 мг 1,00 мг Вещество Н 1,00 мг 0,25 мг 5,00 мг Калории 110,00 120,00 400,00 Стоимость 1 унции, в центах 3,8 4,2

Пищевая ценность рациона (в калориях) должна быть не менее заданной. Пусть для простоты смесь для цыплят изготавливается из двух продуктов - К и С. Известно содержание тиамина и ниацина в этих продуктах, а также питательная ценность К и С (в калориях). Сколько К и С надо взять для одной порции куриного корма, чтобы цыплята получили необходимую им дозу веществ Н и Т и калорий (или больше), а стоимость порции была минимальна? Исходные данные для расчетов приведены в табл. 8.1.

Задача линейного программирования имеет вид:

3,8 К + 4,2 С \to min,\ 0,10 К + 0,25 С \ge 1,00,\ 1,00 К + 0,25 С \ge 5,00,\ 110,00 К + 120,00 С \ge 400,00,\ К \ge 0,\ С \ge 0.

Ее графическое решение представлено на рис. 8.4

 Графическое решение задачи об оптимизации смеси
Рис. 8.4. Графическое решение задачи об оптимизации смеси
Источник: http://www.intuit.ru/studies/courses/547/403/lecture/9280



Лекция 4. Использование оптимизационных моделей при принятии решений Решебник по русскому языку 9 класс бунеев

Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений Оптимизационные задачи принятия решений