Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

NP-úplné problémy v grafech. Třídy problémů: Třída P problémů: množina problémů řešitelných v polynomiálním čase (existuje pro ně polynomiální algoritmus)

Podobné prezentace


Prezentace na téma: "NP-úplné problémy v grafech. Třídy problémů: Třída P problémů: množina problémů řešitelných v polynomiálním čase (existuje pro ně polynomiální algoritmus)"— Transkript prezentace:

1 NP-úplné problémy v grafech

2 Třídy problémů: Třída P problémů: množina problémů řešitelných v polynomiálním čase (existuje pro ně polynomiální algoritmus) Třída NP problémů: někdo navrhne řešení problémů (tzv. nápověda) a my umíme v polynomiálním čase rozhodnout, zda tento návrh skutečně řešením je (existuje polynomiální verifikační algoritmus ) NP-těžké problémy: je na ně převoditelný každý problém z NP NP-úplný problém: NP-těžké a jsou z NP NP-úplné problémy: existuje polynomiální algoritmus???

3 Struktura třídy NP Pro NP existuje polynomiální algoritmus → NP=P Pro NP neexistuje polynomiální algoritmus → NP-úplné ∩ P=Ø NP-úplné+NP≠P NP P NP- úplné P=NP=NP-úlné

4 Porovnání složitosti algoritmů: NN2N2 N8N8 2N2N N!N!

5 Při operací za s: NN2N2 N8N8 2N2N N!N! 1<1s 5 10<1s 15<1s1 s<1s15 min 20<1s10 s<1s31 let 30<1s2 min1 s 100 * Věk vesmíru 50<1s3 h11 dní 100<1s3 měs Věk vesmíru

6 P & NP-úplný problém Problém 1[P]: Existuje okružní cesta, na které projedeme každou silnici právě jednou? Tzn. Rozhodnout, zda graf G= (V, H) existuje uzavřený eulerovský tah Řešení: obarvovaní stran Pokud řešení existuje, tak ho umíme najít v čase O(H)

7 Problém 2 [NP- úplný]: Existuje okružní cesta, na které projedeme každé město právě jednou? Tzn. Najít Hamiltonovskou kružnici permutace vrcholů v1, v2,..., v│V│tvořících hamiltonovskou kružnici ověření: 1. jde o permutaci vrcholů grafu? 2. je (vi, vi+1) ∈ H, i = 1,2,..., │V│-1 a (v│V│, v1) ∈ H ?

8 Možný algoritmus: graf zakódován maticí sousednosti algoritmus - ověření všech permutací vrcholů Náročnost: počet prvků matice: n Počet vrcholů: √n Počet permutaci vrcholů: √n!

9 Řešení NP-úplných problémů Metodou úplného prohledávání všech možností je v praxi již pro relativně malý rozměr úlohy nezvládnutelné Musíme hledat řešení částečná či přibližná – aproximační algoritmy

10 Aproximační algoritmy: polynomiální algoritmus: nalezení „dostatečné dobrého“ (téměř optimálního) řešení Problémy: nalezení řešení negarantuje (nepoužitelnost v praxi) funguje v praxi, ale chybí teoretické zdůvodnění Rozdíl: relativní chybu lze zmenšit libovolně X omezená zdola

11 Příklady NP-úplných problémů: Hamiltonova cesta, Hamiltonova kružnice Barvení grafů: obarvit vrcholy k barvami tak, aby vrcholy stejné barvy nebyly nikdy spojeny hranou k-bipartitní graf: množina k vrcholů taková, že žádné dva nejsou propojeny hranou Existence k-kliky (úplný graf s k-vrcholy)

12 Barvení grafů: Definice: obarvení grafu označujeme takové obarvení uzlů grafů takové, že žádné dva sousední uzly nemají stejnou barvu Otázka: nejmenší počet barev pro obarvení uzlů Je NP-úplný problém? …graf o N uzlech, q barev → q N

13 Barvení grafů:problém 4 barev

14 Barvení grafů: heuristika (sekvenční barvení) 1.[Inicializace] K:=0; b=0 while 2. [Test ukončení] existuje neobarvený vrchol grafu go begin 3a. [Volba vrcholu] zvolíme dosud neobarvený vrchol v 0 3b. [Určení barvy] Najdeme minimální přirozené číslo b tak, že neexistuje vrchol spojený s v 0 a již obarvený barvou b 3c. [Obarvení v 0 ] V 0 obarvíme barvou b if b>K then K:=b end;

15 Jak zvolit v 0 ? 1. Vrcholy uspořádáme do nerostoucí posloupnosti podle velikosti jejich stupňů, za v 0 volíme první neobarvený vrchol 2. Pro každý vrchol v určíme počet barev D(v), které byly použity k obarvení jeho již obarvených sousedů. Volíme za v 0 neobarvený vrchol, který má největší hodnotu D(v). Pokud je jich více, volíme ten, který má nejvíce neobarvených sousedů.

16

17 1

18 1 2

19 3 1 2

20 3 1 42

21

22


Stáhnout ppt "NP-úplné problémy v grafech. Třídy problémů: Třída P problémů: množina problémů řešitelných v polynomiálním čase (existuje pro ně polynomiální algoritmus)"

Podobné prezentace


Reklamy Google