ВВЕДЕНИЕ
Компания занимается производством фруктовых соков и напитков (смеси соков). Перечень выпускаемой продукции и ее цена приведены в таблице:
Наименование | Цена за литр, руб |
Яблочный сок | 40 |
Виноградный сок | 42 |
Клюквенный сок | 37 |
Яблочно-виноградный | 40 |
Яблочно-клюквенный | 39 |
Фруктовая смесь | 42 |
Состав смесей:
- яблочно-виноградный – 70% яблочный сок и 30% виноградный сок;
- яблочно-клюквенный – 60% яблочный сок и 40% клюквенный сок;
- фруктовая смесь – 50% яблочный сок, 20% виноградный сок и остальное - клюквенный сок.
В настоящее время, на складе компании имеется 3000 литров яблочного сока, 1900 литров виноградного сока, и 2500 литров клюквенного сока. Себестоимость литра яблочного сока – 20 руб., виноградного сока – 23 руб. и клюквенного сока – 18 руб. Все напитки упакованы в стандартные пакеты емкостью 1 литр. Компанией ранее был заключен контракт на поставку 600 пакетов яблочного сока, 300 пакетов яблочно-виноградного сока и 1000 пакетов фруктовой смеси. Остальная произведенная продукция будет продана через сеть магазинов розничной торговли. Опыт показывает, что спрос на любой из видов соков и смесей не превышает 2000 пакетов.
Цель: Составить план производства максимизирующий прибыль с учетом указанных условий.
РЕШЕНИЕ
Результатом решения математической модели, является план розлива, дающий наибольшую прибыль (150900 руб.) учитывающий все заявленные требования:
В результате анализа чувствительности решения, выявлены следующие особенности:
- увеличение запаса на 1 ед. соков: apple, cranberry, grapes позволит увеличить выпуск продукции на 20, 19, 20 руб. соответственно.
При снижении запасов на 1 ед. произойдет уменьшение выпуска продукции на соответствующие значения.
В случае необходимости модель может быть адаптирована под дополнительные потребности клиента.
* Пример заимствован из учебного пособия: Зайцев М.Г., Варюхин С.Е. "Методы оптимизации управления и принятия решений: примеры, задачи, кейсы." - 2 изд. испр.-М: Издательство "Дело" АХН, 2008 - 664с.
Модель AMPL
set ingredient := {"apple", "grapes", "cranberry"}; # Ингредиенты set PROD := {"apple", "grapes", "cranberry", "apple-grapes", "apple-cranberry", "fruit-mix"}; # Продукты param consist{ingredient, PROD}>= 0; # Состав продуктов param stock{ingredient}>= 0; # Запас ингридиентов, литров param cost {ingredient}>= 0; # Стоимость ингредиентов param price{PROD}>= 0; # Цена на продукты param X_lower{PROD}>= 0; # Минимальный объем выпуска продукта, литров param X_upper{PROD}>= 0; # Максимальный объем выпуска продукта, литров var X{i in PROD}>= X_lower[i], <= X_upper[i]; # Количество произведенной продукции, литров maximize Total_cost: sum{i in PROD} X[i] * price[i] - sum {i in PROD, j in ingredient} X[i] * consist[j,i] * cost[j]; # Максимизация Прибыли (цена - себестоимость) subject to A_1{j in ingredient}:sum{i in PROD} X[i] * consist[j,i] <= stock[j]; # Количество ингридиентов направленных на изготовление продукции <= запас data; param consist(tr): apple grapes cranberry:= apple 1 0 0 grapes 0 1 0 cranberry 0 0 1 "apple-grapes" 0.7 0.3 0 "apple-cranberry" 0.6 0 0.4 "fruit-mix" 0.5 0.2 0.3 ; param cost := apple 20 grapes 22 cranberry 18 ; param price:= apple 40 grapes 42 cranberry 37 "apple-grapes" 40 "apple-cranberry" 39 "fruit-mix" 42 ; param X_lower default 0:= apple 0 "apple-grapes" 0 "apple-cranberry" 1000; param X_upper default 2000; param stock := apple 3000 grapes 1900 cranberry 2500 ; solve; display stock; # Запас ингредиентов display X; # Количество произведенной продукции, литров display X.rc; # Теневая цена количества произведенной продукции display A_1; # Изменение стоимости при приращении/уменьшении ограничения
Форма ввода данных
Раздел находится в разработке...
* Сообщите нам (E-mail, комментарий) если требуется решение модели с данными пользователя.