Описание
Производственная линия состоит из 5 видов станков и выпускает семь типов изделий (P1-P7). Количество станков каждого типа составляет:
• шлифовальный – 4 шт;
• вертикально-сверлильный – 2 шт;
• горизонтально-сверлильный – 3 шт;
• расточный - 1 шт;
• строгальный – 1 шт;
Прибыль (цена продажи – стоимость сырья) от продажи 1 ед. изделия (P1-P7), затраты времени на обработку изделия на каждом станке составляют:
(Прочерк указывает, что обработка на данном станке не требуется.)
Ниже представлены объемы ожидаемого спроса (по месяцам) для изготавливаемых изделий:
Линия работает в двухсменном режиме (8 часов каждая), 6 дней в неделю. Всего за рабочий месяц планируется отработать 24 рабочих дней. Порядок обработки на станках не имеет значения.
Для каждого станка (кроме 2-х шлифовальных) необходимо один раз в полгода (на месяц) проводить техническое обслуживание. Для этого их необходимо вывести из работы на 1 мес.
Складские площади позволяют хранить одновременно не более 100 единиц каждого изделия, по цене $0,5 за штуку в месяц. В начале рассматриваемого периода на складах отсутствуют запасы готовой продукции, однако в конце июня необходимо иметь запас в 50 изделий каждого типа.
Цель: разработать план производства продукции (по месяцам) максимизирующий прибыль с учетом требования по проведению технического обслуживания станков.
Решение
В результате решения модели мы получим план производства, продаж продукции и ремонта оборудования максимизирующих общий доход. Так, план производства составляет (ед./мес.):
План продаж имеет следующие характеристики (ед./мес.):
Выполнение указанного плана продаж принесет предприятию максимальный доход в размере ($):
При этом, план возможной остановки оборудования для проведения технического обслуживания выглядит следующим образом (количество станков определенного типа, которые можно остановить):
Суммарный доход компании составит 116630$.
В случае необходимости модель может быть адаптирована под дополнительные потребности клиента.
* Пример заимствован из учебного пособия: Зайцев М.Г., Варюхин С.Е. "Методы оптимизации управления и принятия решений: примеры, задачи, кейсы." - 2 изд. испр.-М: Издательство "Дело" АХН, 2008 - 664с.
Форма ввода данных
Раздел находится в разработке...
* Сообщите нам (E-mail, комментарий) если требуется решение модели с данными пользователя.
Модель AMPL (фрагмент кода)
# Производственная задача reset; set PROD := {'P1','P2','P3','P4','P5','P6','P7'}; # Продукты set machine := {'Grinding', 'Vertical drilling', 'Horizontal drilling', 'Boring', 'Planing'}; # Типы станков set month := {'January', 'February', 'March', 'April', 'May', 'June'/*, July, August, September, October, November, December*/} ordered; param machine_count{machine} >= 0; # Ежемесячное количество работающих станков param revenue{PROD} >= 0; # Доход от продажи продукции set LINKS within {machine, PROD}; # param time{LINKS} >= 0; # Продолжительность обработки каждого вида продукции на каждом виде станка param demand{month,PROD} >= 0; # Спрос на продукцию param Total_time:= 8*2*24; # Общий резерв рабочего времени завода (час./мес.) param storage{month, PROD}>=0; # Ежемесячный резерв для хранения каждого вида продукции param storage_cost{month,PROD} >=0; # Стоимость хранения 1 ед.продукции в месяц var X{month, PROD} >= 0; # План производства var Y{month, PROD} >= 0; # План продаж var Z{month, machine} >=0, integer; # Максимальное количество работающих станков каждого вида maximize Total_cost: sum {p in PROD, m in month} Y[m,p] * revenue[p]; # Максимизировать прибыль subject to A_1{p in PROD, m in month}:Y[m,p] <= demand[m,p] ; # Объем продаж <= спрос ... data; param storage_cost default 0.5; param storage default 100; param machine_count:= Grinding 4 'Vertical drilling' 2 'Horizontal drilling' 3 Boring 1 Planing 1 ; param revenue:= P1 10 P2 6 P3 8 P4 4 P5 11 P6 9 P7 3 ; param: LINKS: time: 'P1' 'P2' 'P3' 'P4' 'P5' 'P6' 'P7':= Grinding 0.5 0.7 . . 0.3 0.2 0.5 'Vertical drilling' 0.1 0.2 . 0.3 . 0.6 . 'Horizontal drilling' 0.2 . 0.8 . . . 0.6 Boring 0.05 0.03 . 0.07 0.1 . 0.08 Planing . . 0.01 . 0.05 . 0.05 ; param demand: 'P1' 'P2' 'P3' 'P4' 'P5' 'P6' 'P7':= January 500 1000 300 300 800 200 100 February 600 500 200 0 400 300 150 March 300 600 0 0 500 400 100 April 200 300 400 500 200 0 100 May 0 100 500 100 1000 300 0 June 500 500 100 300 1100 500 60 ; solve; display X, # План производства Y; # План продаж