Opis działania algorytmu INSA

Transkrypt

Opis działania algorytmu INSA
Działanie INSY
Najpierw należy wyznaczyć kolejność topologiczną oraz uzupełnić tabelę.
Dane:
zad1
czas Ptime =10;
maszyna 1, Lp 1
Ptime=15; maszyna 2;
Lp 2
Ptime=7; maszyna 1;
Lp 3
zad2
Ptime =20; maszyna 2; Ptime =17; maszyna 1; Ptime=8; maszyna 3;
Lp 4
Lp 5
Lp 6
zad3
Ptime=9; maszyna 1;
Lp 7
Ptime=10; maszyna 2;
Lp 8
Ptime=14; maszyna 3;
Lp 9
Tabela do zadania:
Przepisujemy dane,
Zadania zostały odzielone pogrubioną linią. Każde zadanie to trzy operacjie (patrz dane)
Następnicy technologiczni wynikają z danych tzn po zadaniu 1.1 powino byz zad1.2 (czyli aby móc
pomalować – np. kolumna trzecia w danych to trzeba najpierw zeszlifować – kolumna 2 w danych)
Tzn Lp1 jest przed lp2 potem jest lp3 ale Lp4 to nowe zadanie tak więc przed nim nic nie ma (np.
Lp4 to już obróbka innej części, nie drzwi ale skrzyni biegów.)
W pierwszym kroku w Poprzednikach i Następnikach KOLEJNOŚCOWYCh wpisujem wszędzie 0.
Dane te odczytuje się z diagramu gantta czyli po dodaniu zadania do kolejnośći wykonania. Tzn w
każdym kroku jak dodasz jakieś zadanie w „najbardziej optymalne” miejsce to zmieniasz dla tego
zadania (i tych co z nim sąsiadują na giagramie gantta) poprzedników i nast. Kolejnościowych.
Lp
Maszyna Ptime
NastTech Poprzed. Nast.
Poprz
nologiczn Tech
Kolejnoś Kolej
y
ciowy
1
1
10
2
0
0
0
2
2
15
3
1
0
0
3
1
7
0
2
0
0
4
2
20
5
0
0
0
5
1
17
6
4
0
0
6
3
8
0
5
0
0
7
1
9
8
0
0
0
8
2
10
9
7
0
0
9
3
14
0
8
0
0
R
Trzeba wyznaczyć kolejność topologiczną tzn to w tym grafie jest za czym.
Dodajemy kolumnę z liczbą poprzeedników i wpisujemy tam +1 z każdego poprzednika
Kolejnościowego i +1 za każdego techologicznego.
Q
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
0
2
2
15
3
1
0
0
1
3
1
7
0
2
0
0
1
4
2
20
5
0
0
0
0
5
1
17
6
4
0
0
1
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
7
0
0
1
9
3
14
0
8
0
0
1
Q
Teraz lecimu od góry o jak tylko pojawi się 0 w kolumnie Lpoprzedników to dajem do
topologicznej.
Tzn dla LP1 jest zero więc mam
1
Dla LP2 nie ma zera więc omijamy
Dla Lp3 nie ma zera więc omijamy
Dla Lp4 jest zero wieć mamy:
1, 4,
Dla lp 5 pomijamy...
...
Dla LP7 jest zero więc:
1, 4, 7
Teraz ponieważ przelecieliśmy wszystkie to wykreślamy 1 4 i 7 jak poprzedników (tak jakby
rekurencyjnie wchodzimy w podgraf w którym 1 4 i 7 już nie są podpiete – analogicznie
analizujemy połączenia nie od początku tylko od drugich w koilejce):
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
0
2
2
15
3
było
0
0
teraz 0
3
1
7
0
2
0
0
1
4
2
20
5
0
0
0
0
5
1
17
6
4
0
0
1
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
7
0
0
1
9
3
14
0
8
0
0
1
Jak tylko pojawi się zero to wpisujemy do topologiczniej:
Q
1,4,7, 2
i teraz przechodzimy do 4 i „wykreślamy” ją z aktualnych poprzedników
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
0
2
2
15
3
1
0
0
teraz 0
3
1
7
0
2
0
0
1
4
2
20
5
0
0
0
0
5
1
17
6
było
0
0
Teraz 0
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
7
0
0
1
9
3
14
0
8
0
0
1
Q
Więc dodajemy piątkę:
1,4,7,2,5
I ponieważ jedynka i czwórka zostały „wykreślone” z aktualnych poprzedników to reraz 7 (czyli
idziemy kolejnośćią topologiczną):
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
0
2
2
15
3
1
0
0
teraz 0
3
1
7
0
2
0
0
1
4
2
20
5
0
0
0
0
5
1
17
6
4
0
0
Teraz 0
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
było
0
0
Teraz 0
9
3
14
0
8
0
0
1
I wpisujemy 8
1,4,7,2,5,8
i tak dalej aż wszędzie będą zera.
Dostajemy:
1,4,7,2,5,8,3,6,9.
to jest kolejność topologiczna.
Q
Na jej podstawie można wyznacząć R i Q
R- najdłuższa droga gochodząca do wierzchołka + jego ptime.
Q najdłuższa dorga wychodząca z wierzchołka + jego ptime
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
--
2
2
15
3
1
0
0
--
3
1
7
0
2
0
0
--
4
2
20
5
0
0
0
--
5
1
17
6
4
0
0
--
6
3
8
0
5
0
0
--
7
1
9
8
0
0
0
--
8
2
10
9
7
0
0
--
9
3
14
0
8
0
0
--
Q
Idziemy po kolejności topologicznej. Patrzymy jaka jest droga dochodząca do 1 (nie ma żadnej
długości bo 1 nie ma poprzedników) i dodajemy do niej Ptime dla 1. czyli 10. R_1=10.
Tak samo z 4, 7 – też nie mają oprzedników więc wich R=(drogaR=0)+Ptime.
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
--
2
2
15
3
1
0
0
--
3
1
7
0
2
0
0
--
4
2
20
5
0
0
0
--
5
1
17
6
4
0
0
--
6
3
8
0
5
0
0
--
7
1
9
8
0
0
0
--
8
2
10
9
7
0
0
--
9
3
14
0
8
0
0
--
Q
10
20
9
Teraz 2 (po kolejności topologicznej) – poprzednika 2 to 1 więc R_2=R_1+Ptime_2=10+15=25.
Jeśli 2 miało by kilku poprzedników to było by to max z(R) + Pitem.
Potem analizujemy 5. Poprzednik_5=4. R_5=R_4+Ptime_5=20+17=37.
I tak dajel aż będzie całe R wypełnione.
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
--
10
2
2
15
3
1
0
0
--
25
3
1
7
0
2
0
0
--
32
4
2
20
5
0
0
0
--
20
5
1
17
6
4
0
0
--
37
6
3
8
0
5
0
0
--
45
7
1
9
8
0
0
0
--
9
8
2
10
9
7
0
0
--
19
9
3
14
0
8
0
0
--
33
Q
Dla Q robimy tak samo tylko licząc od końca kolejności topologicznej.
Tzna jak mamy 1,4,7,2,5,8,3,6,9 to analizujemy:
najpierw 9. Q_9=max(Q_następników)+Ptime_9.
9 nie ma następników bo jest „końcem” grafu więc Q_9=0+P_9=14;
Teraz 6 (wegłóg kolejności topologicznej ale od tyłu)
6 też nie ma nstępników więc Q_6=P_6=8;
3 ma taka samo wieć Q_3=P_3=7;
Teraz 8. Następnik 8 to 9 Q_9=14; Q_8=Q_9+Ptime_8=14+10=24;
I tak dajlej aż uzupełnimy wszystko.
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
Q
1
1
10
2
0
0
0
--
10
32
2
2
15
3
1
0
0
--
25
22
3
1
7
0
2
0
0
--
32
7
4
2
20
5
0
0
0
--
20
45
5
1
17
6
4
0
0
--
37
25
6
3
8
0
5
0
0
--
45
8
7
1
9
8
0
0
0
--
9
33
8
2
10
9
7
0
0
--
19
24
9
3
14
0
8
0
0
--
33
14
Sortujemy procesy po maksymalnym czasie:
4 (Ptime=20)
5 (17)
2 (15)\
9 (14)
1 (10)
8 (10)
7 (9)
6 (8)
3 (7)
I według tej kolejności wstawiamy procesy do uszeregowania sprawdzając INSĄ czy jest lepiej czy
gożej.
Czyli pierwsze idzie 4. Wykonuje się na maszynie 2. Można je poprstu wsadzić bo nic na tej
maszynie jeszcze nie ma.
masz1
-
-
-
masz2
4
-
-
-
-
masz3
To powyżej to diagram a nie tabela:)
Teraz wybieramy następny proces z listy posortowanej po Ptime więc jest to 5.
5 jest na maszynie 1 więc wstawiamy
masz1
5
-
-
masz2
4
-
-
masz3
-
-
-
Teraz z posortowan ej koljeki dajemy 2. jest na pierwszej maszynie więc trzeba sprawdzić
wszystkie kolejności.
2,4 oraz 4,2
Dla 2,4 liczymy:
p. techn=1, R_1=10
Ptime_2=15
n. kolejność=4 (BO ZADANIE
4 BYŁO BY LO BY ZA NIM
NA MASZYNIE 2)
p. kolejności=0 (bo było by
n. tech=3
pierwsze na maszynie 2)
Wybieramy max z R z pierwszej kolumny + Ptime + max z Q z ostatniej kolumny;
R_1+P_2+Q_4=10+15+47=70.
Tą daną zapamientujemy dla tej koleności.
Sprawdzamy ile wyjdzie dla koleności 4,2
p. techn=1, R_1=10
Ptime_2=15
n. kolejność=0 (bo było by
ostanie na maszynie 2)
p. kolejności=4 (bo zadanie 4
było by pierwsze na maszynie
2)
n. tech=3
Znowy liczmy
max(Rpoprzedników)+Ptime+max(Qnastępników)
R_4+P_2+Q_3=20+15+7=42
Teraz wybieramy tą kolejność dla której wyliczona wartość jest MNIEJSZA. Czyli kolejność
4->2 bo 42<70
masz1
5
-
-
masz2
4
2
-
masz3
-
-
-
Teraz uaktualniamy tabelę z następnikami! Zmieniło się w kolejnościowych bo zawsze przed 2 jest
4 czyli dwa ma poprzdnika 4 a 4 ma następnika 2.
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
0
2
2
15
3
1
0
4
2
3
1
7
0
2
0
0
1
4
2
20
5
0
2
0
0
5
1
17
6
4
0
0
1
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
7
0
0
1
9
3
14
0
8
0
0
1
Q
Liczymy nową kolejność topologiczną.
Tak samo jak ostatnio. Widać, że najprawdopodobniej 2 się przesunie trochę dalej bo doszedł jej
poprzednik a reszcie się nic nie zmieniło.
Nowa kolejność to:
1,4,7,5,2,8,6,3,9
(liczymy jak poprzednio: wypisujemy te co mają 0 w Lpoprzed czyli 1,4,7 a potem „wykreślamy” 1
z poprzedzników i dopsujem te u których pokazują się zera. W tym wypadku nic się nie dosze bo
dla dwójki się zmieni z 2 na 1 w Lpoprzedników)
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
0
0
0
2
2
15
3
bylo
0
4
teraz 1
3
1
7
0
2
0
0
1
4
2
20
5
0
2
0
0
5
1
17
6
4
0
0
1
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
7
0
0
1
9
3
14
0
8
0
0
1
Q
1,4,7,
Potem „wykreślamy” 4 i aktlalizujemy Lpoprzedników i wpisujemy te co mają 0.
1,4,7,5,2,
być może mażna wpisać dwa przed pięć.
Itd.
jak już mamy nową kolejność to liczymy nowe R i nowe Q. Tak jak poprzednio. Jedziemy po
kolejnośći i wpisuemy
R_x=max(R_poprzedników)+P_x
Dla Q jedziemy po topologiczniej od tyłu
Q_x=max(Q_następników)+P_x
mamy:
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
Q
1
1
10
2
0
0
0
--
10
32
2
2
15
3
1
0
4
---
35
22
3
1
7
0
2
0
0
--
42
7
4
2
20
5
0
2
0
--
20
45
5
1
17
6
4
0
0
--
37
25
6
3
8
0
5
0
0
--
45
8
7
1
9
8
0
0
0
--
9
33
8
2
10
9
7
0
0
--
19
24
9
3
14
0
8
0
0
--
33
14
Jak już mamy aktualną tabelę i uszeregowanie:
masz1
5
-
-
masz2
4
2
-
masz3
-
-
-
Oraz kolejność sortowania:
9 (Ptime=14)
1 (10)
8 (10)
7 (9)
6 (8)
3 (7)
To dodajemy 9 do diagramu. Jest ono na 3 maszynie więc wstawiwamy po prostu.
masz1
5
masz2
4
2
-
masz3
9
-
-
Nic się nie zmienia w technologicznych na razie.
Teraz wstawimy 1.
1 jest na 1 maszynie więc może być kolejność 1,5 albo 5,1
Trzeba sprawdzić obie i wybrać to dla której wyjdzie mniejszy wynik. Tak jak poprzednio:
Dla 1,5
p. techn=0 (z danych)
Ptime_1=10
n. kolejność=5 (bo zad 5 będzie
po 1 na maszynie 1)
p. kolejności=0 (bo będzie
pierwsze na maszynie 1)
n. tech=2 (z danych)
max(R_poprzedników)+P_1+max(Q_następników)=0+10+25=35;
Teraz dla kolejność 5,1
p. techn=0 (z danych)
Ptime_1=10
n. kolejność=0 (bo będzie
ostanie na maszynie 1))
p. kolejności=5 (bo będzie za
zadaniem 5 w kolejności 5,1)
n. tech=2 (z danych)
max(R_poprzedników)+P_1+max(Q_następników)=R_5+P_1+Q_2=37+10+22=69
Wybieramy tą kolejność dla której wartość jest MNIEJSZA tak wieć będzie 1,5 bo 35<69;
Mamy:
masz1
1
5
-
masz2
4
2
-
masz3
9
-
-
Teraz trzeba zmienić nastepnika kolejnościowego dla 1 i poprzenika kolejnościowego dla 5.
Lp
Maszyn Ptime
a
NastTec Poprzed. Nast.
Poprz
hnologic Tech
Kolejno Kolej
zny
ściowy
Lpoprze R
dników
1
1
10
2
0
5
0
0
2
2
15
3
1
0
4
2
3
1
7
0
2
0
0
1
4
2
20
5
0
2
0
0
5
1
17
6
4
0
1
2
6
3
8
0
5
0
0
1
7
1
9
8
0
0
0
0
8
2
10
9
7
0
0
1
9
3
14
0
8
0
0
1
Q
Wyliczamy nową kolejność topologiczną oraz nowe R i Q.
I dla nowych danych wstawiamy kolejne zadania z sortowania na maszynę.
Będzie to zadanie 8 na maszynę 3 czyli ablo przed 9 albo po 9. Wychodzi chyba po 9.
czyli
masz1
1
5
-
masz2
4
2
-
masz3
9
8
-
Dla tego też aktualizujemy poprzednika kolejnościowego i nast. Kolejnościowego i liczymy nową
topologiczną i nowe R i Q i wstawiamy następne zadania. Taraz będą już trzy możliwości:
przed, pomiędzy, za.
Wybieramy zawszę tą dal której wyliczone
max(R_poprzedników)+P_x+max(Q_następników) jest najmniejsze/
I tak w kółko.
Mam nadzieje że jest to dobrze i że Ci pomoże.