Algorytm INSA dla problemu J||C max
Mariusz Makuchowski
21 maja 2019
Przykład problemu i harmonogram
Dane: n = 4, m = 3 J
1= ((1, 4), (3, 2), (2, 5)) J
2= ((2, 2), (3, 2)) J
3= ((1, 4), (2, 2))
J
4= ((3, 2), (1, 2), (2, 5), (3, 2)) harmonogram:
m
1J
1,1J
4,2J
3,1m
2J
2,1J
4,3J
3,2J
1,3m
3J
4,1J
2,2J
1,2J
4,4Cmax= 18
Model permutacyjno-grafowy
Dla kolejności π buduje się graf G (π)
π =
(J
1,1, J
4,2, J
3,1) (J
2,1, J
4,3, J
3,2, J
1,3) (J
4,1, J
2,2, J
1,2, J
4,4)
J1,1 J4,2 J3,1
J2,1 J4,3 J3,2 J1,3
J4,1 J2,2 J1,2 J4,4
Model permutacyjno-grafowy
4 2 4
2 5 2 5
2 2 2 2
0-4
0-2
0-2
4-6
6-11
2-4
6-10
11-13
4-6
13-18
11-13
J1,1 J4,2 J3,1
J2,1 J4,3 J3,2 J1,3
J4,1 J2,2 J1,2 J4,4
Algorytm Insa
Algorytm buduje rozwiązanie poprzez dokładanie jeszcze nieuszeregowanych operacji do bieżącego harmonogramu.
krok 1: π = () (J1,3) ()
!
krok 2: π = () (J4,3, J1,3) ()
!
krok 3: π =
(J1,1) (J4,3, J1,3) ()
!
.. .
krok 10: π =
(J1,1, J4,2, J3,1) (J2,1, J4,3, J3,2, J1,3) (J4,1, J1,2, J2,2)
!
krok 11: π =
(J1,1, J4,2, J3,1) (J2,1, J4,3, J3,2, J1,3) (J4,1, J1,2, J2,2, J4,4)
!
Algorytm INSA
Którą operację szeregować ?
Wybrać operację największą z nieuszeregowanych
Na którą pozycję położyć ?
Wybrać pozycję najlepszą, na właściwej maszynie (pozycja o najmniejszej długości najdłuższej ścieżki przechodzącej przez wkładaną operację).
Algorytm INSA
Jak efektywnie policzyć długość najdłuższej ścieżki przechodzącej przez wkładaną operację?
Na podstawie wartości R ścieżek dochodzących i Q ścieżek wychodzących.
Jak efektywnie zweryfikować dopuszczalność rozwiązania?
Dla najkrótszej ścieżki rozwiązanie jest dopuszczalne.
Wybór pozycji, krok 11
Dla kolejności π buduje się graf G (π)
π =
(J
1,1, J
4,2, J
3,1) (J
2,1, J
4,3, J
3,2, J
1,3) (J
4,1, J
1,2, J
2,2)
+ J
4,4J1,1 J4,2 J3,1
J2,1 J4,3 J3,2 J1,3
J4,1 J1,2 J2,2 J4,4
Wybór pozycji, krok 11
Dla kolejności π buduje się graf G (π)
π =
(J
1,1, J
4,2, J
3,1) (J
2,1, J
4,3, J
3,2, J
1,3) (J
4,1, J
1,2, J
2,2)
+ J
4,44 2 4
2 5 2 5
2 2 2 2
4 18
2 14
2 16
6 14
11 12
6 7
10 11
13 7
8 2
18 5
13 2
Wybór pozycji, krok 11
4 2 4
2 5 2 5
2 2 2 2
4 18
2 14
2 16
6 14
11 12
6 7
10 11
13 7
8 2
18 5
13 2
A B C D
A: path = 11 + 2 + 16 = 29 B: path = max{11, 2} + 2 + 7 = 20 C: path = max{11, 6} + 2 + 2 = 15 D: path = max{11, 8} + 2 + 0 = 13
INSA: rozwiązanie
π =
(J
1,1, J
4,2, J
3,1) (J
2,1, J
4,3, J
3,2, J
1,3) (J
4,1, J
1,2, J
2,2, J
4,4)
4 2 4
2 5 2 5
2 2 2 2
0-4
0-2
0-2
4-6
6-11
2-4
6-10
5-13
4-6
13-18
11-13
J1,1 J4,2 J3,1
J2,1 J4,3 J3,2 J1,3
J4,1 J1,2 J2,2 J4,4