Фармацевтическая фирма ежедневно производит не менее 800 кг пищевой добавки
Задан ассортимент различных продуктов (кормов), которые используются для создания пищевых добавок (или смесей для откорма животных). Каждый продукт содержит определенное количество разных питательных веществ (витаминов и калорий). Известен требуемый человеку (животному) минимум питательных веществ каждого вида. Необходимо определить оптимальный рацион, содержащий все необходимые питательные вещества и имеющую минимальную стоимость. Составление математической модели.
1) Целью является минимизация стоимости составленного рациона (или составленной смеси)
2) Параметры задачи:
п– число различных продуктов;
m– число различных питательных веществ;
aij – содержание i-го питательного вещества в j-м продукте,
bt – количество i-го необходимого питательного вещества
cj– стоимость единицы j-го продукта,
3) Управляющие переменные xj, – это количество j-го продукта, входящего в рацион (смесь),
4) Область допустимых решений определяется системой неравенств, содержащей условия по необходимому уровню потребления каждого питательного вещества во всех продуктах и условия неотрицательности управляющих переменных:
5) Критерий оптимальности С имеет вид
Пример задачи такого класса:
Фармацевтическая фирма ежедневно производит не менее 800 кг некой пищевой добавки, которая состоит из смеси кукурузной и соевой муки, состав которой представлен в следующей таблице.
Мука | Белок | Клетчатка | Стоимость (в $ за фунт) |
(в фунтах на фунт муки) | |||
Кукурузная | 0,09 | 0,02 | 0,30 |
Соевая | 0,60 | 0,06 | 0,90 |
Диетологи требуют, чтобы в пищевой добавке было не менее 30% белка и не более 5% клетчатки. Фирма хочет определить рецептуру смеси наименьшей стоимости с учетом требований диетологов.
Поскольку пищевая добавка состоит только из кукурузной и соевой муки, переменными для этой задачи, очевидно, будут x1 — количество (в кг) кукурузной муки, используемой в дневном производстве пищевой добавки; х2 — количество (в кг) соевой муки, используемой в дневном производстве пищевой добавки.
Целевая функция равна обшей стоимости пищевой добавки, производимой за один день, и должна быть минимальной. В данном случае это можно записать следующим образом:
Целевая функция: Z = 0,3 x1+ 0,9×2→ min
Ограничения модели должны отражать производственные требования и рекомендации диетологов. Фирма должна выпускать не менее 800 кг смеси в день. Соответствующее ограничение будет записано следующим образом: x1+ x2 ≥ 800.
Рассмотрим ограничение, связанное с количеством белка в пищевой добавке. Общее количество белка в смеси, состоящей из х1 кг кукурузной муки и х2 кг соевой муки, равно 0.09×1 + 0.6х2 (кг). Это количество должно составлять не менее 30% от общего объема смеси х1 + х2. Отсюда получаем следующее неравенство:
0.09х1 + 0.6×2 ≥ 0.3(x1 + х2).
Аналогично строится ограничение для клетчатки:
0.02×1 + 0.06х2 ≤ 0.05(х1 + х2).
В последних двух неравенствах переменные x1 и х2 надо перенести из правых частей неравенств в левые. Окончательно модель примет следующий вид:
Минимизировать Z = 0.3×1 + 0.9×2 при ограничениях
x1 + x2 ≥ 800,
0.21х1 – 0.3×2 ≤ 0,
0.03×1 – 0.01×2 ≥ 0,
x1, x2 ≥ 0.
На рис. 1 показано графическое решение этой задачи.
Рис. 1. Графическое решение задачи минимизации
Поскольку в данной модели следует минимизировать целевую функцию, поэтому нужно идти в направлении уменьшения ее значений (это направление на рис. 1 показано стрелкой). Оптимальное решение находится на пересечении прямых x1 + х2 = 800 и 0.21×1 – 0.30×2 = 0, откуда получаем х1 = 470.59 (кг) и х2 = 329.41 (кг). При этих значениях переменных минимальная стоимость производимой ежедневно пищевой добавки составляет z = 0.3 * 470.59 + 0.9 * 329.41 = 437.65.
Тема 4. Графический анализ чувствительности
Модель линейного программирования является как бы “моментальным снимком” реальной ситуации, когда параметры модели (коэффициенты целевой функции и неравенств ограничений) предполагаются неизменными. Естественным стремлением является изучить влияние изменения параметров модели на полученное оптимальное решение задачи ЛП. Такое исследование называется анализом чувствительности.
Анализ моделей на чувствительность — это процесс, реализуемый после получения оптимального решения. В рамках такого анализа выявляется чувствительность оптимального решения к определенным изменениям исходной модели.
Например, в задаче об ассортименте продукции может представлять интерес вопрос о том, как повлияет на оптимальное решение увеличение и уменьшение спроса на продукцию или запасов исходного сырья. Возможно, также потребуется анализ влияния рыночных цен на оптимальное решение.
При таком анализе всегда рассматривается комплекс линейных оптимизационных моделей. Это придает модели определенную динамичность, позволяющую исследователю проанализировать влияние возможных изменений исходных условий на полученное ранее оптимальное решение. Динамические характеристики моделей фактически отображают аналогичные характеристики, свойственные реальным процессам. Отсутствие методов, позволяющих выявлять влияние возможных изменений параметров модели на оптимальное решение, может привести к тому, что полученное (статическое) решение устареет еще до своей реализации.
Анализ чувствительности может основываться на графическом решении задачи ЛП. Рассмотрим два случая:
· изменение коэффициентов целевой функции;
· изменение значений констант в правой части неравенств ограничений.
Источник
1. Переменные, которые следует определить.
2. Целевая функция, подлежащая оптимизации.
3. Ограничения, которым должны удовлетворять переменные.
Определение переменных – первый шаг в создании модели. В нашем примере необходимо определить ежедневные объемы производства краски для внутренних и наружных работ. Обозначим эти объемы как переменные модели:
ежедневный объем производства краски для наружных работ;
ежедневный объем производства краски для внутренних работ.
Используя эти переменные, далее строим целевую функцию. Логично предположить, что целевая функция, как суммарный ежедневный доход, должна возрастать при увеличении ежедневных объемов производства красок. Обозначим эту функцию через z (она измеряется в тысячах долларов) и положим, что .
В соответствии с целями компании получаем задачу:
Максимизировать , или
Итак, остался не определенным последний элемент модели – условия (ограничения), которые должны учитывать ограниченные возможности ежедневного потребления сырья и ограниченность спроса на готовую продукцию. Другими словами, ограничения на сырье можно записать следующим образом.
Из таблицы с данными имеем следующее.
Используемый объем сырья (т)
Используемый объем сырья (т)
Поскольку ежедневный расход сырья С1 и С2 ограничен соответственно 24 и 6 тоннами, получаем следующие ограничения.
(сырье С1)
(сырье С2)
Существует еще два ограничения по спросу на готовую продукцию:
1) максимальный ежедневный объем производства краски для внутренних работ не должен превышать 2 т, т. е.
2) ежедневный объем производства краски для внутренних работ не должен превышать ежедневный объем производства краски для наружных работ более чем на одну тонну (разность между ежедневными объемами производства красок для внутренних и наружных работ не должна превышать одной тонны), т. е.
Еще одно неявное ограничение состоит в том, что переменные и должны быть неотрицательными.
Таким образом, к сформулированным выше ограничениям необходимо добавить условие неотрицательности переменных: , . Окончательно задача будет записана следующим образом:
Максимизировать (или )
при выполнении следующих ограничений:
, .
Любое решение, удовлетворяющее ограничениям модели, является допустимым. Например, решение и будет допустимым, так как не нарушает ни одного ограничения, включая условие неотрицательности. Чтобы удостовериться в этом, подставьте значения и в левые части неравенств системы ограничений и убедитесь, что ни одно неравенство не нарушается. Значение целевой функции при этом решении будет равно (тысяч долларов).
Итак, задача сформулирована.
Теперь встает вопрос о нахождении оптимального допустимого решения, доставляющего максимум целевой функции. После некоторых раздумий приходим к выводу, что задача имеет много (фактически, бесконечно много) допустимых решений. По этой причине невозможна подстановка значений переменных для поиска оптимума, т. е. нельзя применить простой перебор всех допустимых решений. Следовательно, необходима эффективная процедура отбора допустимых решений для поиска оптимального.
2.2. Графическое решение ЗЛП
Графический способ решения задачи ЛП состоит из двух этапов.
1. Построение пространства допустимых решений, удовлетворяющих всем ограничениям модели.
2. Нахождение оптимального решения среди всех точек пространства допустимых решений.
2.2.1. Нахождение максимума целевой функции
Используем модель, построенную для компании Mikks, чтобы показать два этапа графического решения ЗЛП.
Этап 1. Построение пространства допустимых решений.
Сначала проведем оси: на горизонтальной будут указываться значения переменной , а на вертикальной – (рис. 2.1). Далее рассмотрим условие неотрицательности переменных: , . Эти два ограничения показывают, что пространство допустимых решений будет лежать в первом квадранте.
Рис. 2.1. Пространство допустимых решений модели
Чтобы учесть оставшиеся ограничения, проще всего заменить неравенства на равенства, в результате чего получим уравнения прямых, а затем на плоскости провести эти прямые. Например, неравенство заменяется уравнением прямой . Эта прямая обозначена на рис. 2.1 как линия (1).
Этап 2. Нахождение оптимального решения.
Точки пространства допустимых решений, показанного на рис. 2.1, удовлетворяют одновременно всем ограничениям. Это пространство ограничено отрезками прямых, которые соединяются в угловых точках А, В, С, D, Е и F. Любая точка, расположенная внутри или на границе области, ограниченной ломаной ABCDEF, является допустимым решением, т. е. удовлетворяет всем ограничениям. Поскольку пространство допустимых решений содержит бесконечное число точек, необходима некая процедура поиска оптимального решения.
Нахождение оптимального решения требует определения направления возрастания целевой функции (напомним, что мы максимизируем функцию z). Мы можем приравнять z к нескольким возрастающим значениям, например 10 и 15.
Эти значения, подставленные вместо z в выражение целевой функции, порождают уравнения прямых. Для значений 10 и 15 получаем уравнения прямых и . На рис. 2.2 эти прямые показаны штриховыми линиями, а направление возрастания целевой функции – толстой стрелкой.
Рис. 2.2. Оптимальное решение модели
Целевая функция может возрастать до тех пор, пока прямые, соответствующие возрастающим значениям этой функции, пересекают область допустимых решений. Точка пересечения области допустимых решений и прямой, соответствующей максимально возможному значению целевой функции, и будет точкой оптимума.
На рис. 2.2 видно, что оптимальное решение соответствует точке С. Эта точка является местом пересечения прямых (1) и (2), поэтому ее координаты и находятся как решение системы уравнений, задающих эти прямые:
Решением этой системы будет и , при этом значение целевой функции равно.
Полученное решение означает, что для компании Mikks оптимальным выбором будет ежедневное производство 3 т краски для наружных работ и 1.5 т – для внутренних работ с ежедневным доходом в $21 000.
Не случайно, что оптимальное решение расположено в угловой точке пространства допустимых решений, где пересекаются две прямые. Если мы изменим наклон функции z (путем изменения ее коэффициентов), то обнаружим, что в любом случае решение достигается в одной из угловых точек (или одновременно в нескольких угловых точках). В этом и состоит основная идея построения общего симплексного алгоритма, который будет рассмотрен далее.
2.2.2. Нахождение минимума целевой функции
Пример 2.2. Задача о диете
Фармацевтическая фирма Ozark ежедневно производит не менее 800 кг некой пищевой добавки – смеси кукурузной и соевой муки, состав которой представлен в следующей таблице.
Мука | Белок | Клетчатка | Стоимость (в $ за кг) |
(в кг на кг муки) | |||
Кукурузная | 0,09 | 0,02 | 0,30 |
Соевая | 0,6 | 0,06 | 0,90 |
Диетологи требуют, чтобы в пищевой добавке было не менее 30% белка и не более 5% клетчатки. Фирма Ozark хочет определить рецептуру смеси минимальной стоимости с учетом требований диетологов.
Поскольку пищевая добавка состоит только из кукурузной и соевой муки, переменными для этой задачи, очевидно, будут
– количество (в кг) кукурузной муки, используемой в дневном производстве пищевой добавки;
– количество (в кг) соевой муки, используемой в дневном производстве пищевой добавки.
Целевая функция равна общей стоимости пищевой добавки, производимой за один день, и должна быть минимальной. В данном случае это можно записать следующим образом:
Минимизировать (или )
Ограничения модели должны отражать производственные требования и рекомендации диетологов. Фирма должна выпускать не менее 800 кг смеси в день; соответствующее ограничение будет записано следующим образом: .
Рассмотрим ограничение, связанное с количеством белка в пищевой добавке. Общее количество белка в смеси, состоящей из кг кукурузной муки и кг соевой муки, равно (кг).
Это количество должно составлять не менее 30% от общего объема смеси . Отсюда получаем следующее неравенство:
Аналогично строится ограничение для клетчатки:
В последних двух неравенствах переменные и надо перенести из правых частей в левые. Окончательно модель примет следующий вид.
Минимизировать (или )
при ограничениях
, .
На рис. 2.3 показано графическое решение этой задачи.
Поскольку в данной модели следует минимизировать целевую функцию, поэтому нужно идти в направлении уменьшения ее значений (это направление на рис. 2.3 показано стрелкой). Оптимальное решение находится на пересечении прямых и , откуда получаем (кг) и (кг).
При этих значениях переменных минимальная стоимость производимой ежедневно пищевой добавки составляет
Рис. 2.3. Графическое решение задачи о диете
2.3. Компьютерное решение задач ЛП (при помощи Excel)
Проиллюстрируем на примере Mikks.
Составим в Excel следующую таблицу:
Здесь содержится 4 типа данных:
1) входные данные (ячейки B5:C9 и F6:F9),
2) значения переменных и целевой функции (ячейки в прямоугольнике B13:D13),
3) формулы, по которым вычисляются значения целевой функции и левых частей ограничений (ячейки D5:D9) и
4) поясняющие заголовки и надписи.
Для инструмента Поиск решения требуется информация только первых трех типов – поясняющие заголовки и надписи необходимы только для того, чтобы сделать табличное представление модели более понятным и удобочитаемым.
Покажем соответствие между математической моделью и табличной.
Алгебраическая формула | Формула Excel | Ячейка | |
Целевая функция z | =B5*B$13+C5*C$13 | D5 | |
Ограничение 1 | =B6*B$13+C6*C$13 | D6 | |
Ограничение 2 | =B7*B$13+C7*C$13 | D7 | |
Ограничение 3 | =B8*B$13+C8*C$13 | D8 | |
Ограничение 4 | =B9*B$13+C9*C$13 | D9 |
После ввода исходных данных и расчетных формул табличная модель готова для использования средства Поиск решения.
Откроется одноименное диалоговое окно:
В этом окне надо ввести адрес ячейки, в которой вычисляется значение целевой функции, указать, надо ли минимизировать или максимизировать целевую функцию, и ввести адреса ячеек, содержащих значение переменных. В нашей модели:
– в поле ввода УСТАНОВИТЬ ЦЕЛЕВУЮ ЯЧЕЙКУ вводится D5;
– устанавливается переключатель РАВНОЙ МАКСИМАЛЬНОМУ ЗНАЧЕНИЮ;
– в поле ввода ИЗМЕНЯЯ ЯЧЕЙКИ вводится $B$13:$C$13.
Эта информация указывает средству ПОИСК РЕШЕНИЯ, что переменные находятся в ячейках В13 и С13, и надо найти максимум целевой функции, значение которой вычисляется в ячейке D5.
Далее надо задать ограничения модели, щелкнув на кнопке ДОБАВИТЬ в диалоговом окне ПОИСК РЕШЕНИЯ. Открывшееся диалоговое окно ДОБАВЛЕНИЕ ОГРАНИЧЕНИЯ предоставляет средства для ввода всех частей ограничений (левой части, знака неравенства и значения правой части). Используя это окно, вводим ограничения модели в таком виде: $D$6:$D$9<=$F$6:$F$9 (напомним, что в ячейках F6:F9 записаны значения правых частей ограничений).
Теперь осталось ввести ограничения неотрицательности для переменных. С помощью диалогового окна ДОБАВЛЕНИЕ ОГРАНИЧЕНИЯ вводим $B$13:$C$13>=0.
Когда ПОИСК РЕШЕНИЯ найдет решение этой задачи, оптимальное значение целевой функции появится в ячейке D5, а значения переменных и – в ячейках B13 и С13 соответственно.
Теперь все готово для решения нашей задачи, достаточно щелкнуть на кнопке ВЫПОЛНИТЬ в диалоговом окне ПОИСК РЕШЕНИЯ, для чего надо открыть диалоговое окно ПАРАМЕТРЫ ПОИСКА РЕШЕНИЯ, щелкнув на кнопке ПАРАМЕТРЫ.
Самое важное – установить опцию ЛИНЕЙНАЯ МОДЕЛЬ. В этом же окне можно указать, что все переменные должны быть неотрицательными (опция Неотрицательные значения).
Результат работы:
2.4. Двойственная задача и ее решение
Каждой задаче линейного программирования можно определённым образом поставить в соответствие некоторую другую задачу линейного программирования, называемую сопряжённой или двойственной по отношению к исходной или прямой. Дадим определение двойственной задачи по отношению к общей задаче линейного программирования, состоящей в нахождении максимального значения функции при ограничениях “с недостатком”.
Две следующие задачи называются симметричными взаимно двойственными задачами линейного программирования:
Обе двойственные задачи линейного программирования обладают следующими свойствами:
1) в одной задаче ищут максимум целевой функции, в другой – минимум;
2) обе задачи являются стандартными задачами линейного программирования, причем в задаче о максимуме все неравенства вида “≤”, а в задаче о минимуме – вида “≥” ;
3) матрица системы ограничений одной задачи является транспонированной к матрице системы ограничений другой;
4) коэффициенты при переменных целевой функции одной задачи являются свободными членами ограничений другой;
5) число неравенств в системе ограничений одной задачи совпадает с числом переменных в другой задаче;
6) условия неотрицательности имеются в обеих задачах.
Свойствами двойственных задач следует руководствоваться при их составлении.
2.5. Целочисленное программирование
Значительная часть задач по смыслу может иметь решения только в целых числах; например, число турбин, судов, животных может быть только целым числом. Такие задачи решаются методами целочисленного программирования. Общая постановка задачи линейного программирования дополняется требованием о том, чтобы найденные переменные в оптимальном плане были целыми.
Задачи целочисленного программирования решаются в Excel теми же средствами, что и общие задачи линейного программирования. В отличие от задач линейного программирования, при решении задач целочисленного программирования необходимо добавить указание на то, что разыскиваемые оптимальные значения переменных могут принимать только целые значения. Для этого в окне “Добавление ограничения” нужно выбрать в списке, расположенном посередине, значение “цел”, как показано в следующем примере.
Пример 2.3. На мебельной фабрике изготавливают столы, стулья и табуреты. На производство одного изделия требуется 1,5, 1 и 0,62 м3 древесины. При этом затраты рабочего времени при изготовлении стола составляют 5 машино-часов, стула − 1,5 машино-часа и табурета − 0,7 машино-часа. Всего для производства мебели фабрика может ежедневно использовать 12 м3 древесины. Оборудование может быть занято в течение 26 машино-часов. Прибыль от реализации стола, ст и 15 руб. соответственно. Фабрика должна ежедневно производить не менее двух столов. На производство другой продукции ограничений нет. Требуется определить, какую продукцию и в каком количестве следует ежедневно изготавливать фабрике, чтобы прибыль от ее реализации была максимальной.
Решение.
Составим вспомогательную таблицу:
Стол | Стул | Табурет | Ограничение ресурсов | |
Древесина, м3 | 1,5 | 1 | 0,62 | 12 |
Рабочее время, маш.-час. | 5 | 1,5 | 0,7 | 26 |
Прибыль за 1 шт., руб. | 200 | 30 | 15 |
Определим переменные модели:
Из за большого объема этот материал размещен на нескольких страницах: 1 2 3 4 |
Источник