Целевая функция линейного программирования формула

Проблема Вы сформулировали задачу оптимизации в традиционной форме линейного программирования и хотели бы использовать Excel для ее решения. Решение Используйте возможности линейной оптимизации Solver. Обсуждение Задачи линейной оптимизации могут быть написаны в виде целевой функции для максимизации (или минимизации) с учетом ограничений. Ограничения могут быть записаны в виде неравенств или равенств. Рассмотрим этот простой пример:

 

Целевая функция

 

Ограничения

Если бы это была смесь продуктов переменные x1 и x2 могут представлять различные продукты с учетом некоторых ограничений на доступность или производство. В то время как целевая функция может представлять общую прибыль. Учитывая совокупность произведенных продуктов.

Идея состоит в том. Чтобы найти оптимальное сочетание продуктов таким образом. Чтобы максимизировать прибыль. Линейная оптимизация не ограничивается такой проблемой ассортимента продукции. Например, ваша проблема может состоять в том. Чтобы попытаться максимально увеличить содержание витаминов в корме для скота. Учитывая определенные ингредиенты. В зависимости от их доступности и стоимости. Или ваша проблема может состоять в попытке минимизировать затраты труда на производство определенных продуктов в вашей лаборатории (см. Следующий пример гипотетического рецепта).

Более того, проблема не должна ограничиваться двумя переменными. Вы можете иметь любое количество переменных и ограничений. В зависимости от вашей проблемы. Я выбрал две переменные для этого простого примера. Потому что мы можем построить его с помощью функции построения диаграмм Excel и получить некоторое представление о решении. Проблемы с большим количеством переменных гораздо сложнее. Если не невозможно. Визуализировать адекватно. Такие задачи требуют от вас большой осторожности при поиске решения (особенно если задача нелинейная) или упрощения задачи таким образом. Чтобы вы могли визуализировать одни переменные. Сохраняя другие постоянными.

Возвращаясь к нашему простому примеру. На рис. 13-1 показан график нашей задачи. Я использовал функции построения диаграмм Excel (см. главу 4) для подготовки этого графика.

Этот граф по существу состоит из ограничений для задачи в пространстве x1, x2. Две прямые линии, обозначенные Ограничением 1 и Ограничением 2, представляют собой первые два ограничения. Заштрихованная область под этими ограничениями представляет область допустимых значений для x1 и x2, которые находятся в пределах заданных ограничений.

Обратите внимание, что эта область ограничена осями x1 и x2, потому что у нас также есть два ограничения больше или равно нулю для этих переменных.

Рис. 13-1. Пример графика линейной оптимизации

Я нарисовал затененную область с помощью линий AutoShapes в Excel Чтобы нарисовать заштрихованную область, просто определите вершины, указывая и щелкая мышью. Обязательно выберите свою диаграмму, прежде чем начать рисовать заштрихованную область, потому что если вы этого не сделаете, то обнаружите, что результирующая заштрихованная область нарисована на вашей электронной таблице, а не на вашей диаграмме.

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

Из этого графика можно сделать вывод. Что оптимальное решение соответствует (x1,x2) = (10,5). Которое находится на пересечении двух ограничительных линий. Вы можете использовать Solver для проверки этого результата.

На рис. 13-2 показана простая электронная таблица, которую я настроил, чтобы облегчить поиск оптимальных значений для x1 и x2, чтобы максимизировать целевую функцию.

Рис. 13-2. Пример линейной оптимизации

Ячейка С3 содержит правую часть целевой функции. Формула такова: 29*С1+45*С2. Значения для x1 и x2, показанные на рис. 13-2, действительно являются оптимальными значениями. А значение 515 для целевой функции-максимальным. Перед вызовом решателя ячейки С1 и С2 содержат только начальные предположения об оптимуме. Изначально я установил их на 0.

Ячейки C6 и C7 содержат формулы. Соответствующие ограничению 1 и ограничению 2 соответственно. Формула в C6 =2*C1+8*C2, а формула в C7 =4*C1+4*C2. Эти формулы представляют левую часть уравнений ограничений. Показанных ранее. Предельные значения (называемые правосторонними значениями) для этих ограничений содержатся в ячейках D6 и D7.

На рис. 13-3 показана модель решателя. Которую я использовал для решения этой задачи.

Целевая ячейка-C3, и я проинструктировал Решателя попытаться максимизировать ее значение. Ячейки, подлежащие изменению, — это C1 и C2, соответствующие x1 и x2 соответственно. Есть также четыре ограничения. Обратитесь к рецепту 9.4, чтобы узнать. Как добавить ограничения в решатель.

Рис. 13-3. Модель решателя для линейной оптимизации

Первые два ограничения, показанные на рис. 13-3, соответствуют ограничениям, что x1 и x2 должны быть больше или равны 0. Последние два ограничения соответствуют уравнениям ограничений, рассмотренным ранее, то есть Ограничениям 1 и 2, как показано на рис. 13-1.

Я также установил опцию решателя Assume Linear Model для этой задачи. Так как это задача линейной оптимизации. См. Введение к главе 9 для обсуждения вариантов решателя. Нажатие кнопки Решить приводит к оптимальному решению. Показанному ранее на рис. 13-2.

смотрите также

Как я уже упоминал во введении к главе 9, Solver может генерировать несколько отчетов для вас после нахождения решения. Дополнительные сведения см. в Рецепте 13.6.