Мезенцев Имитационное моделирование / Лаба 4 (Восстановлен)
.docxЗадание 2. Оптимизация расписания работы производственного участка цеха
Цель. Формализовать и найти решение задачи оптимального управления бизнес-процессом, имеющей следующее содержательное описание.
Условия задачи:
Перед администрацией цеха стоит задача разработки сменно-суточного графика работы производственного участка цеха, состоящего из нескольких станков и обрабатывающего три партии деталей различного типа. Прерывания обработки любой партии деталей в пользу другой не допускаются. Одновременно один станок может обрабатывать только одну партию деталей и одну деталь в партии. Технологические маршруты для каждой партии фиксированы, хотя и различны в общем случае и не могут быть изменены. В качестве критерия эффективности расписания рассматривается быстродействие всей системы (участка), т.е. время завершения обработки последней по хронологии партии деталей.
Технологические маршруты обработки партий деталей представлены в таблице 1.
Таблица 1 – Технологические маршруты обработки партий деталей
|
Опер. 1 |
Опер. 2 |
Опер. 3 |
Detal 1 |
S1 |
S2 |
S1 |
Detal 2 |
S2 |
S3 |
S2 |
Detal 3 |
S1 |
S3 |
S2 |
Известны также длительности обработки каждой партии деталей на каждой технологической операции., которые представлены в таблице 2.
Таблица 2 – Длительности обработки партий деталей (час)
|
Опер. 1 |
Опер. 2 |
Опер. 3 |
Detal 1 |
15 |
20 |
10 |
Detal 2 |
18 |
12 |
20 |
Detal 3 |
10 |
10 |
20 |
1. Построение дизъюнктивной сети обслуживающей системы в представлении узел-операция
На основе данных таблицы 1, строим сетевую модель ОС (рис. 1). Временные характеристики проекта приведены в таблице 2.
Рисунок 1 – Смешанная сетевая модель работы производственного участка
2. ЭММ оптимизации расписания работы производственного участка
– время начала выполнения операции i;
– некоторое число, превышающее величиной длительность самой трудоемкой операции в системе;
– время выполнения операции i;
Булевы переменные , если операцию i решено выполнять раньше операции j, и в противном случае.
Для данного примера имеем задачу:
3. Данные задачи структурированы в соответствии с ЭММ и представлены в виде таблицы:
6. Средствами Ilog OPL studio рассчитали кратчайшее расписание (оптимальное по быстродействию) работы участка.
CPLEX:
Файл Vasileva.dat
/*********************************************
* OPL 6.3 Data
* Author: user
* Creation Date: 24.12.2015 at 15:59:55
*********************************************/
n = 19;
m = 27;
m1 = 9;
n1 = 10;
SheetConnection sheet("vas.xls");
A1 from SheetRead(sheet,"SAS!b4:k12");
A2 from SheetRead(sheet,"SAS!b13:k30");
A3 from SheetRead(sheet,"SAS!l13:t30");
b1 from SheetRead(sheet,"SAS!v4:v12");
b2 from SheetRead(sheet,"SAS!v13:v30");
z1 from SheetRead(sheet,"SAS!b31:k31");
z2 from SheetRead(sheet,"SAS!l31:t31");
x to SheetWrite(sheet,"SAS!b3:k3");
w to SheetWrite(sheet,"SAS!l3:t3");
В данном файле описываются все данные, которые понадобятся во время решения программы. SheetCоnnectiоn – операция, связывающая таблицу Excel с переменной. SheetReаd – процедура для чтения данных с выбранной таблицы, выбранной страницы и выбранного интервала. SheetWrite – процедура для записи значения в таблицу.
Файл Vasileva.mod
/*********************************************
* OPL 6.3 Model
* Author: user
* Creation Date: 24.12.2015 at 15:59:55
*********************************************/
int n = ...;
int m = ...;
int m1 = ...;
int n1 = ...;
int m2 = m - m1;
int n2 = n - n1;
range j1 = 1..n1;
range j2 = 1..n2;
range i1 = 1..m1;
range i2 = 1..m2;
float b1[i1] = ...;
float b2[i2] = ...;
float z1[j1] = ...;
float z2[j2] = ...;
float A3[i2][j2] = ...;
float A1[i1][j1] = ...;
float A2[i2][j1] = ...;
float MaxValue = 1000*max(r in i2) b2[r];
dvar float x[j1] in 0..MaxValue;
dvar boolean w[j2];
minimize
sum(jj in j1) z1[jj] * x[jj] +
sum(jjj in j2) z2[jjj] * w[jjj] ;
subject to {
forall( r1 in i1 )
ct1:
sum( jj in j1)
A1[r1][jj] * x[jj] <= b1[r1];
forall( r in i2 )
ct2:
sum( jj in j1 )
A2[r][jj] * x[jj] +
sum( jjj in j2)
A3[r][jjj] * w[jjj] <= b2[r];
}
В результате работы получаем решение в IBM ILоg и Excel, которое показано на рисунке 4.
Решение в IBM ILоg CPLEX:
// solution (optimal) with objective 65
x = [-1.7764e-15 20 45 15 33 45 0 10
33 65];
w = [1 1 1 0 1 1 1 1 1];
IBM ILоg CP:
Файл JSPVasileva.dat