• Nie Znaleziono Wyników

Akceleracja algorytmu NEH

N/A
N/A
Protected

Academic year: 2021

Share "Akceleracja algorytmu NEH"

Copied!
15
0
0

Pełen tekst

(1)

Akceleracja algorytmu NEH

Mariusz Makuchowski

4 kwietnia 2019

(2)

Algorytm NEH

Algorytm buduje rozwiązanie poprzez dokładanie jeszcze nieuszeregowanych zadań do bieżącej kolejności.

Przykład: J = {1, 2, 3, 4}

krok 1: π = (3)

krok 2: π = (3, 2)

krok 3: π = (3, 4, 2)

krok 4: π = (1, 3, 4, 2)

(3)

NEH: przykład krok 4

π = (1, 3, 4, 2)

π = (3, 1, 4, 2)

π = (3, 4, 1, 2)

π = (3, 4, 2, 1)

(4)

Obliczenie C max (π)

kolejność π = (J 1 , J 3 , J 2 , J 4 ) m 1 J 1 J 3 J 2 J 4

m 2 J 1 J 3 J 2 J 4

m 3 J 1 J 3 J 2 J 4

J

1

J

3

J

2

J

4

m

1

1/1 3/4 4/8 2/10

m

2

1/2 4/8 1/9 4/14

m

3

3/5 3/11 2/13 1/15

(5)

Złożoność obliczenowa: naiwana implementacja

n kroków

średnio n/2 próbnych kolejności dla każdej kolejności obliczamy C

max

Ponieważ wyliczenie C max (π) zajmuje O(nm) złożoność

naiwnej implementacji NEH wynosi O(n 3 m)

(6)

qNEH

W danym kroku kolejności są ”podobne”.

(5,1,3,2,4) (1,5,3,2,4) (1,3,5,2,4) (1,3,2,5,4) (1,3,2,4,5)

Można to podobieństwo wykorzystać.

(7)

Model grafowy

kolejność π = (J 1 , J 3 , J 2 , J 4 )

m

1

J

1

J

3

J

2

J

4

m

2

J

1

J

3

J

2

J

4

m

3

J

1

J

3

J

2

J

4

1

1

3

4

4

1

2

4 m

1

m

2

J

1

J

3

J

2

J

4

(8)

Model grafowy: najdłuższa dochodząca scieżka

kolejność π = (J 1 , J 3 , J 2 , J 4 )

m

1

J

1

J

3

J

2

J

4

m

2

J

1

J

3

J

2

J

4

m

1

J

1

J

3

J

2

J

4

1

1

3

4

4

1

2

4 m

1

m

2

J

1

J

3

J

2

J

4

1

2

4

8

8

9

10

14

(9)

Model grafowy: najdłuższa wychodząca scieżka

kolejność π = (J 1 , J 3 , J 2 , J 4 )

m

1

J

1

J

3

J

2

J

4

m

2

J

1

J

3

J

2

J

4

m

1

J

1

J

3

J

2

J

4

1

1

3

4

4

1

2

4 m

1

m

2

J

1

J

3

J

2

J

4

15

11

9

14

10

6

11

6

3

7

5

1

(10)

Model grafowy: cięcie grafu

1

1

3

3

4

3

4

1

2

2

4

1 m

1

m

2

m

3

J

1

J

3

J

2

J

4

1

2

5

4

8

11

8

9

13

10

14

15 15

11

9

14

10

6

11

6

3

7

5

1

(11)

Model grafowy: cięcie grafu

1

1

3

3

4

3

4

1

2

2

4

1 m

1

m

2

m

3

J

1

J

3

J

2

J

4

1

2

5

4

8

11

8

9

13

10

14

15 15

11

9

14

10

6

11

6

3

7

5

1

C max = max

  4 + 11

8 + 6 = 15

(12)

Model grafowy: dodanie zadania

1

1

3

3

4

3

1

2

3

4

1

2

2

4

1 m

1

m

2

m

3

J

1

J

3

J

5

J

2

J

4

1

2

5

4

8

11

11

6

3

7

5

1

(13)

Model grafowy: dodanie zadania

1

1

3

3

4

3

1

2

3

4

1

2

2

4

1 m

1

m

2

m

3

J

1

J

3

J

5

J

2

J

4

4

8

11

5

10

14

11

6

3

C

J5,m1

= 4 + 1 = 5

C

J5,m2

= max (5, 8) + 2 = 10 C

max

= max

( 5+11

10+6 = 17

(14)

Złożoność algorytmu: Quick NEH

n kroków

dla każdego kroku obliczamy dwie tablice; O(nm) średnio n/2 próbnych kolejności

dla każdej kolejności obliczamy C

max

; O(m)

Całkowita złożoność algorytmu quick NEH to O(n 2 m)

(15)

Działanie progrmau na CPU i5 2500MHz

Naiwny NEH

data.110 11869 0.076 data.111 26670 1.129 data.112 27232 1.185 data.113 26848 1.140 data.114 27055 1.132 data.115 26727 1.154 data.116 26992 1.173 data.117 26797 1.180 data.118 27138 1.200 data.119 26631 1.157 data.120 26984 1.132

Quick NEH

data.110 11869 0.002

data.111 26670 0.010

data.112 27232 0.011

data.113 26848 0.011

data.114 27055 0.009

data.115 26727 0.010

data.116 26992 0.010

data.117 26797 0.012

data.118 27138 0.010

data.119 26631 0.009

data.120 26984 0.009

Cytaty

Powiązane dokumenty

Dla dowolnego drzewa binarnego o wysokości wd będącej liczbą naturalną wd>0, algorytm preorder dla danych spełniających  w skończonej liczbie kroków dochodzi

x_p=-2*nr_gr; %ograniczenie dolne zmiennej x_k=3*nr_gr; %ograniczenie górne zmiennej q=5; %dokładność (liczba cyfr po przecinku) N=20; %liczność populacji.. p_c=0.9;

E.E., Ham I.: A heuristic algorithm for the m-machine, n-job flow-shop

1969 język BCPL; Martin Richards z University Mathematical Laboratories w Cambridge; dla pierwszej instalacji systemu operacyjnego UNIX 1970 język B zdefiniowany dwa lata

• Języki wysokiego poziomu: ADA, Pascal, Fortran, C++, Lisp, B, SmallTalk, Java. "Podstawy informatyki", Tadeusz Wilusz

Optymalizacja sieci drogowej propozycja algorytmu..

Niektórzy badacze uważają, że zmiany sekularne są wynikiem coraz większej li­ czby małżeństw między osobnikami z różnych grup etnicznych, inni są zdania, że

Twofish poddaje operacji XOR 128 bitów klucza przed pierwszą rundą sieci Feistela (drugą wartością jest ciąg wejściowy) oraz 128 bitów po ostatniej rundzie