Лабораторная работа №2
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ КЫРГЫЗСКОЙ РЕСПУБЛИКИ
КЫРГЫЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ ИМ. И. РАЗЗАКОВА
Лабораторная работа
Бишкек 2022
Лабораторная работа №2
Вариант №7
Фирма, владеющая двумя предприятиями, имеет возможность выполнить четыре заказа. Каждый заказ должен выполняться только одним предприятием (совместная работа предприятий над одним заказом невозможна). Каждое из предприятий может выполнять несколько заказов. Если предприятие имеет несколько заказов, то они выполняются им последовательно (одновременно предприятие не может работать над несколькими заказами). Время, необходимое каждому из предприятий для выполнения каждого заказа, приведено в таблице 6.
Таблица 6
Характеристики заказа |
Заказ |
|||
Z1 |
Z2 |
Z3 |
Z4 |
|
Затраты времени 1-го предприятия, дней |
4 |
2 |
6 |
3 |
Затраты времени 2-го предприятия, дней |
7 |
1 |
2 |
5 |
Это означает, например, что если заказы Z1 и Z2 поручены первому предприятию, а Z3 и Z4 - второму, то затраты времени первого предприятия составят4+2=6 дней, а второго - 2+5=7 дней. Таким образом, все заказы будут выполнены за7 дней.
Требуется распределить заказы между предприятиями таким образом, чтобы общий срок выполнения всех заказов был минимальным.
Листинг кода:
GENERATE 1,,,1 ;генерация Z1 заказа
SPLIT 3 ;так как я взял транзакт как день то расщепляю их (3+1=4)
QUEUE D_P1 ;отправляю на очередь первого предприятия
TERMINATE
GENERATE 1,,,1 ;генерация Z2 заказа
QUEUE D_P2 ;отправляю на очередь второго предприятия
TERMINATE
GENERATE 1,,,1 ;генерация Z3 заказа
SPLIT 1 ;так как я взял транзакт как день то расщепляю их (1+1=2)
QUEUE D_P2 ;отправляю на очередь второго предприятия
TERMINATE
GENERATE 1,,,1 ;генерация Z4 заказа
SPLIT 2 ;так как я взял транзакт как день то расщепляю их (2+1=3)
QUEUE D_P1 ;отправляю на очередь первого предприятия
TERMINATE
MET TERMINATE
GENERATE 1 ;работа предприятия 1
TEST G Q$D_P1,0,MET ;проверяем есть ли работа
SEIZE PRED1 ;предприятие1 начинает работу
ADVANCE 1 ;отрабатывают 1 день
DEPART D_P1 ;уменьшаем общий срок работы
RELEASE PRED1 ;предприятие1 заканчивают работу
TRANSFER ,TERM
GENERATE 1 ;работа предприятия 2
TEST G Q$D_P2,0,MET ;проверяем есть ли работа
SEIZE PRED2 ;предприятие1 начинает работу
ADVANCE 1 ;отрабатывают 1 день
DEPART D_P2 ;уменьшаем общий срок работы
RELEASE PRED2 ;предприятие1 заканчивают работу
TERM TERMINATE 1
START 7
Результат:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 5.000 30 2 0
NAME VALUE
D_P1 10002.000
D_P2 10000.000
MET 16.000
PRED1 10003.000
PRED2 10001.000
TERM 30.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1 0 0
2 SPLIT 1 0 0
3 QUEUE 4 0 0
4 TERMINATE 4 0 0
5 GENERATE 1 0 0
6 QUEUE 1 0 0
7 TERMINATE 1 0 0
8 GENERATE 1 0 0
9 SPLIT 1 0 0
10 QUEUE 2 0 0
11 TERMINATE 2 0 0
12 GENERATE 1 0 0
13 SPLIT 1 0 0
14 QUEUE 3 0 0
15 TERMINATE 3 0 0
MET 16 TERMINATE 1 0 0
17 GENERATE 4 0 0
18 TEST 4 0 0
19 SEIZE 4 0 0
20 ADVANCE 4 0 0
21 DEPART 4 0 0
22 RELEASE 4 0 0
23 TRANSFER 4 0 0
24 GENERATE 4 0 0
25 TEST 4 0 0
26 SEIZE 3 0 0
27 ADVANCE 3 0 0
28 DEPART 3 0 0
29 RELEASE 3 0 0
TERM 30 TERMINATE 7 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
PRED2 3 0.600 1.000 1 0 0 0 0 0
PRED1 4 0.800 1.000 1 0 0 0 0 0