Производство соков


ВВЕДЕНИЕ

Компания занимается производством фруктовых соков и напитков (смеси соков). Перечень выпускаемой продукции и ее цена приведены в таблице:

Наименование Цена за литр, руб
Яблочный сок 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, комментарий) если требуется решение модели с данными пользователя.