6 Wyklad AlgorytmyPrzyblizone

background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image

1

2

3

4

czas

procesor

C

max

1

2

3

4

5

6

7

8

9

10

11

background image
background image
background image

1

2

3

4

czas

procesor

C

max

2

3

1

4

5

6

7

8

9

10

11

background image
background image
background image
background image
background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(3,2,8,10,5,1,9,7,11,4,6)

background image
background image
background image
background image
background image
background image
background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image

1

2

3

4

procesor

2

3

1

4

5

6

7

8

9

10

11

Lista=(11,6,2,3,9,1,5,4,10,8,7)

background image
background image
background image
background image
background image

Schematy aproksymacyjne

Schemat aproksymacyjny  rodzina algorytmów {A

ε

}

taka, »e dla ka»-

dego ε > 0 algorytm A

ε

dostarcza rozwi¡zania problemu z bª¦dem nie wi¦k-

szym ni» ε, czyli dla problemu ekstremalizacji funkcji K(x), x ∈

X

, mamy:

|K

A

ε

− K

| ≤ εK

,

gdzie K

jest warto±ci¡ optymaln¡ funkcji K, a K

A

ε

jest warto±ci¡ funkcji

K

dla rozwi¡zania dostarczonego przez algorytm A

ε

.

background image

Wyró»niamy dwa typy schematów aproksymacyjnych:

Wielomianowe schematy aproksymacyjne: czas dziaªania algorytmu A

ε

jest ograniczony od góry przez wielomian od rozmiaru instancji N(I) oraz
funkcj¦ wykªadnicz¡ od odwrotno±ci bª¦du 1/ε czyli:

T IM E(A

ε

) = O



p(N (I)) · e



1

ε



,

gdzie p jest wielomianem oraz e jest funkcj¡ wykªadnicz¡.

Przykªad: zªo»ono±¢ A

ε

mo»e wynosi¢ O



n

2

· 2

1

ε



.

Wielomianowy schemat aproksymacyjny skrótowo nazywamy PTAS:

Polynomial Time Approximation Scheme.

background image

W peªni wielomianowe schematy aproksymacyjne: czas dziaªania algo-
rytmu A

ε

jest ograniczony od góry przez wielomian od rozmiaru instancji

N (I)

oraz wielomian od odwrotno±ci bª¦du 1/ε czyli:

T IM E(A

ε

) = O



p



N (I),

1

ε



,

gdzie p jest wielomianem.

Przykªad: zªo»ono±¢ A

ε

mo»e wynosi¢ O



n

3

ε

2



.

W peªni wielomianowy schemat aproksymacyjny skrótowo nazywamy FPTAS:

Fully Polynomial Time Approximation Scheme.

background image

Przykªad:

PTAS dla problemu

P 2||C

max

Dane:
J = {J

1

, J

2

, . . . , J

n

}

 zbiór n zada«, n ∈

Z

+

,

dwa procesory maj¡ce zrealizowa¢ wszystkie zadania J

1

, . . . , J

n

,

p

j

, j = 1, . . . , n

 czas wykonywania (dªugo±¢) zadania J

j

, p

j

R

+

.

Znale¹¢:
takie przyporz¡dkowanie zada« do procesorów x

=

{x

1

, x

2

, . . . , x

n

}

(x

j

∈ {0, 1}

; x

j

= 0

oznacza, »e zadanie J

j

jest przyporz¡dkowane do pierwszego procesora,

a x

j

= 1

 do drugiego, j = 1, . . . , n)

, dla którego:

C

max

= max

j∈J

{C

j

} −→ min,

gdzie C

j

jest czasem zako«czenia wykonywania zadania J

j

, j = 1, . . . , n.

background image

Algorytm PTAS

Procedure PTAS(n,k)

Krok 0. Posortuj zadania wg nierosn¡cego porz¡dku czasów ich wykony-

wania p

j

(p

1

≥ p

2

≥ . . . ≥ p

n

), tworz¡c list¦ zada« L.

Krok 1. Przyporz¡dkuj k pierwszych zada« (1 ≤ k ≤ n) z listy L do proce-

sorów w sposób optymalny (przegl¡d zupeªny), ignoruj¡c zadania
pozostaªe.

Krok 2. Pozostaªe (n − k) zada« przyporz¡dkowuj kolejno do najwcze±niej

dost¦pnego procesora.

background image

Zªo»ono±¢ obliczeniowa:

Krok 0 

O(n log n)

(np. sortowanie kopcowe).

Krok 1 

O(2

k

)

Przykªadowo, niech x

k

=

{x

1

, . . . , x

k

}

b¦dzie wektorem binarnym oznaczaj¡cym przy-

porz¡dkowanie k najdªu»szych zada« do procesorów. Przegl¡d zupeªny mo»emy zre-

alizowa¢, traktuj¡c wektor x

k

jako k-bitow¡ liczb¦ binarn¡. Startujemy od warto±ci

x

k

=

{0, 0, . . . , 0}

i w ka»dym kroku zwi¦kszamy warto±¢ x

k

o 1 a» do osi¡gni¦cia

warto±ci x

k

=

{1, 1, . . . , 1}

. W ten sposób w ka»dym kroku otrzymujemy nowe przy-

porz¡dkowanie. Wybieramy to, dla którego warto±¢ kryterium C

max

jest najmniejsza,

przy czym wszystkich mo»liwych przyporz¡dkowa« jest 2

k

.

Krok 2 

O(n − k)

.

Ostatecznie, zªo»ono±¢ obliczeniowa alg. PTAS wynosi

O(n log n + 2

k

)

.

background image

Dokªadno±¢:

ε =

1/2

1 +

bk/2c

,

(1)

gdzie bxc oznacza najwi¦ksz¡ warto±¢ caªkowit¡ nie wi¦ksz¡ ni» x (czyli zaokr¡glenie w dóª
warto±ci x).

Zatem ε ∼

1

k

.

W efekcie: wraz ze wzrostem

k

ro±nie zªo»ono±¢ (czas dziaªania)

algorytmu (wykªadniczo!), ale maleje bª¡d (proporcjonalnie).

Na podstawie wzoru (1) mo»na stwierdzi¢, »e k = O(

1

ε

)

, co daje zªo»ono±¢

obliczeniow¡ alg. PTAS zgodn¡ z denicj¡, tzn.

O


n log n + 2

1
ε


.

background image

Algorytm FPTAS

Do skonstruowania FPTAS dla problemu P 2||C

max

wykorzystamy algorytm

programowania dynamicznego o zªo»ono±ci (pseudowielomianowej)

O(n·S)

,

gdzie S =

P

n

j=1

p

j

.

Procedure FPTAS(n,k)

Krok 0. Utwórz now¡ instancj¦ problemu P 2||C

max

, podstawiaj¡c

˜

p

j

=



p

j

k



dla

j = 1, . . . , n.

Krok 1. Rozwi¡» now¡ instancj¦ problemu metod¡ programowania dyna-

micznego (optymalnie).

Krok 2. Rozwi¡zanie uzyskane w Kroku 1 zastosuj do pierwotnej instancji

problemu (b¦dzie ono rozwi¡zaniem przybli»onym!).

background image

Zªo»ono±¢ obliczeniowa:

Krok 0 

O(n)

.

Krok 1 

O(n ·

S

k

)

.

Krok 2 

O(n)

(wyznaczenie warto±ci funkcji celu).

Zatem zªo»ono±¢ obliczeniowa alg. FPTAS wynosi

O(n ·

S

k

)

< O(nS)

.

Dokªadno±¢:

ε =

2nk

S

,

(2)

wi¦c ε ∼ k.

W efekcie: wraz ze wzrostem

k

maleje zªo»ono±¢ (czas dziaªania)

algorytmu (proporcjonalnie), ale ro±nie bª¡d (te» proporcjonalnie).

background image

Wyliczaj¡c ze wzoru (2) k =

j

εS

2n

k

i podstawiaj¡c do wzoru zªo»ono±ci obli-

czeniowej O(n ·

S

k

)

, otrzymamy zªo»ono±¢ obliczeniow¡ alg. FPTAS zgodn¡

z denicj¡, tzn.

O




n

2

ε




.

background image

Schematy aproksymacyjne s¡ algorytmami przybli»onymi (tzn. dostar-

czaj¡ rozwi¡za« nieoptymalnych). Ich podstawow¡ cech¡ jest mo»liwo±¢

wpªywania na maksymalny bª¡d uzyskiwanych wyników.

Niestety odbywa si¦ to kosztem czasu dziaªania (im mniejszy dopusz-

czalny bª¡d tym dªu»szy czas dziaªania).

PTAS  silna zale»no±¢ bª¦dów od czasów (st¡d praktyczne ich za-

stosowanie jest ograniczone jedynie do przypadków, w których dopusz-

czamy stosunkowo du»y bª¡d rozwi¡za«).

FPTAS  wi¦ksza skuteczno±¢ ni» PTAS (mo»liwo±¢ uzyskania re-

zultatów o mniejszym bª¦dzie w rozs¡dnym czasie).

Zostaªo udowodnione, »e nie dla wszystkich problemów NP-trudnych

mo»na skonstruowa¢ schemat aproksymacyjny (o ile P 6= NP ).

Ponadto, FPTAS mo»na skonstruowa¢ tylko dla problemów NP-trud-

nych w zwykªym sensie (nie silnie NP-trudnych).

background image

Rodzaje algorytmów (metod) optymalnych:

Wielomianowe algorytmy dokªadne (dedykowane) 

tylko dla problemów z

klasy P.

Programowanie dynamiczne 

gªównie dla problemów NP-trudnych w zwykªym

sensie (tzn. nie silnie NP-trudnych).

Programowanie caªkowitoliczbowe.

Metoda podziaªu i ogranicze« 

gªównie dla problemów (silnie) NP-trudnych.

Przegl¡d zupeªny.

background image

Rodzaje algorytmów (metod) przybli»onych:

Algorytmy konstrukcyjne i zachªanne 

gªównie dla problemów NP-trudnych.

Algorytmy typu popraw 

gªównie dla problemów (silnie) NP-trudnych:

 lokalnego poszukiwania (np. poszukiwanie zst¦puj¡ce, poszukiwanie

losowe),

 metaheurystyczne (np. poszukiwanie z zabronieniami (tabu search),

symulowane wy»arzanie, poszukiwanie genetyczne (ewolucyjne), po-
szukiwanie mrówkowe).

Wielomianowe i w peªni wielomianowe schematy aproksymacyjne


gªównie dla problemów NP-trudnych.


Document Outline


Wyszukiwarka

Podobne podstrony:
Algorytmy Ekslporacji Danych wykład 1, ALGORYTMY
Wykład 4-Algorytm Neville'a
Wyklad 8 - Algorytmy Na Grafach, Iteracja ograniczona - pętla DLA
Wykład z Algorytmów 0 03 2008
Wykład 9 Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I
Wykład 3 D algorytm
6 Wyklad AlgorytmyPrzyblizone
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
Algorytmy i struktury danych Wykład 3 i 4 Tablice, rekordy i zbiory
ALGORYTM MNOŻENIA PISEMNE GO(1), wykłady i notatki, dydaktyka matematyki, matematyka przedszkole i 1
wprowadzanie algorytmu odejmowqnia liczb w zakresie 1000(1), wykłady i notatki, dydaktyka matematyki
Algorytmy wyklady, Metody tworzenia algorytmów
Algorytmy wyklady, Elementarne struktury danych
Algorytmy wyklady, Złożoność obliczeniowa algorytmów
PLC mgr wyklad 2011 algorytmy
wyk.9, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembler
wyk.7.1, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembl
Algorytmy i struktury danych AiSD-C-Wyklad05
Wykład 3 4 FFT-algorytm

więcej podobnych podstron