Минераловатные плиты

Описание

Предприятие производит различные виды минераловатных плит, используемых для изоляции зданий. На предприятии имеется две поточных линии.
Производство осуществляется в две смены (8 часов каждая). Такой режим работы позволяет полностью удовлетворить рыночный спрос. Однако, одна из поточных линий нуждается в техническом обслуживании. Для этого необходимо закрыть линию не менее чем на один месяц. Что бы не подвести клиентов и не потерять долю на рынке, менеджер предприятия должен принять меры по удовлетворению рыночного спроса в период проведения технического обслуживания линии. Для этого рассматриваются два варианта действий:
А – в предшествующий остановке месяц загрузить обе линии работой в три смены и произвести необходимое количество плит "про запас";
Б - импортировать плиты из-за границы через компанию-партнера.
В случае импорта, прибыль от продажи плит уменьшается на 40%. Предприятие располагает площадями основного склада для хранения готовой продукции в объеме 27 000 м.куб. плит. Все, что нужно хранить сверх этого объема, придется разместить в дополнительно арендуемом складе, по цене $3 за м.куб. в месяц.
Соотношения сырья, используемого в процессе производства продукции имеет следующие значения:
- 50 % порфирита, 30 % шлака и 20 % сами же плиты (брак, отходы обработки и т.п.). Потери сырья в процессе производства - 8 %.
Склад сырья ограничен вместимостью 1500 тонн порфирита и 1000 тонн шлака (которые являются главными компонентами изделий). Дополнительно есть возможность использовать для хранения сырья арендуемые железнодорожные вагоны (вместимость вагона 60т) стоимостью 100 USD/вагон в день.
Предварительные переговоры с арендодателем показывают, что можно будет использовать не более 15 вагонов для хранения сырья. Для простоты предположим, что каждый нанятый вагон будет в среднем использоваться в течение 0,5 месяца.
Необходимо разработать план закупок сырья, план закупок импорта, план выпуска продукции максимизирующий прибыль предприятия с учетом указанных обстоятельств.

Решение

В результате решения модели мы получим план производства и импорта маскимизирующий прибыль компании:
Объем необходимого сырья и количество арендуемых вагонов для хранения сырья представлены в следующей таблице:
Суммарная прибыль компании составит 932204$.
Изменение количества вагонов для хранения сырья (в диапазоне от 10 до 20 шт.) приведет к следующему изменению прибыли:

В случае необходимости модель может быть адаптирована под дополнительные потребности клиента.

* Пример заимствован из учебного пособия: Зайцев М.Г., Варюхин С.Е. "Методы оптимизации управления и принятия решений: примеры, задачи, кейсы." - 2 изд. испр.-М: Издательство "Дело" АХН, 2008 - 664с.

Форма ввода данных


Раздел находится в разработке...
* Сообщите нам (E-mail, комментарий) если требуется решение модели с данными пользователя.

Модель AMPL (фрагмент кода)
set PROD := {'Light batts', 'Venti batts', 'Cavity batts',
'Roof batts', 'Facade batts', 'Sandvich batts', 'Beton batts'}; # Продукты
param demand{PROD} >= 0;    # Спрос на продукты 
param density{PROD} >= 0;   # Плотность произведенной продукции
param revenue{PROD} >= 0;   # Доход от продажи произведенной продукции
param loss_revenue = 0.4;   # Потеря доходности при импорте продукции
...
set materials := {'porphyrite', 'slag'}; # Сырье для производства продукции
param carriage_cost := 100; # Стоимость использования вагонов, $ в день
param carriage_day := 15;   # Средняя продолжительность использования вагонов
param carriage_capacity := 60000; # Вместимость вагона, тн
param carriage_count := 15; # Количество вагонов для хранения сырья
# кусочно-линейная функция затрат на хранение сырья
...
param recipe{materials};    # Сырьевой состав продукции
param losses := 0.08;       # Потери производства 8% от объема производства
var X{PROD} >= 0;           # Количество произведенной продукции
var Y{PROD} >= 0;           # Количество импортируемой продукции
var Z >= 0, <=stock_max; # Переменная для подсчета кусочно-линейных затрат на хранение продукции var ZZ{m in materials} >=0, <= storage_max[m];                      # Переменная для подсчета кусочно-линейных затрат на хранение сырья          
var V_mat_prod {m in materials} = sum {p in PROD} X[p] * recipe[m]; # Объем сырья в готовой продукции
var V_mat_plan {m in materials} = V_mat_prod[m] * (1+losses);       # Объем сырья использованного в процессе производства
var M_mat_plan {m in materials} = sum {p in PROD} X[p] * recipe[m] * (1 + losses) * density[p]; # Масса каждого вида сырья использованного в процессе производства
var Count_carriage {m in materials} = M_mat_plan[m]  / carriage_capacity; # Количество вагонов необходимых для хранения сырья 
# Прибыль продаж = прибыль от продажи X + прибыль от продажи Y - издержки хранения продуктов - издержки хранения сырья.
maximize Total_revenue: sum{p in PROD}(X[p] * revenue[p] + Y[p] * revenue[p] * (1-loss_revenue)) -
    << stock_min; 0, stock_penalty >> Z - sum{m in materials} << storage_min[m]; 0, storage_penalty>> ZZ[m]; 
subject to
A_1: sum{p in PROD}X[p] = Z;                    # Введение в модель кусочно-линейной функции penalty затрат на хранение продукции
...
data;
param stock_min = 27000;
param stock_max = 1000000;
param storage_min :=
porphyrite  1500000
slag        1000000;
param storage_max default 100000000;
param:              revenue demand  density :=
'Light batts'       25      23000   40    
'Venti batts'       15      8000    110
'Cavity batts'      15      6500    50  
'Roof batts'        18      7000    160
'Facade batts'      20      6000    200
'Sandvich batts'    20      2000    130
'Beton batts'       15      4500    110 ;
param recipe:=
'porphyrite'    0.5
'slag'          0.3 ;
solve;