Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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 P=NP=NP-úlné NP P NP-úplné
4
Porovnání složitosti algoritmů:
1 2 5 25 400000 32 120 10 100 108 1024 106 15 225 109 32000 1012 20 400 1010 1018 30 900 1011 1032 50 2500 1013 1015 1064 10000 1016 1030 10157
5
Při 1 000 000 000 operací za s: N N2 N8 2N N! 1 <1s 5 10 15 1 s
15 min 20 10 s 31 let 30 2 min 100 * Věk vesmíru 50 3 h 11 dní 100 3 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
Existuje okružní cesta, na které projedeme každé město právě jednou?
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: Náročnost: 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 → qN
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 v0 3b. [Určení barvy] Najdeme minimální přirozené číslo b tak, že neexistuje vrchol spojený s v0 a již obarvený barvou b 3c. [Obarvení v0] V0 obarvíme barvou b if b>K then K:=b end;
15
Jak zvolit v0? Vrcholy uspořádáme do nerostoucí posloupnosti podle velikosti jejich stupňů, za v0 volíme první neobarvený vrchol 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 v0 neobarvený vrchol, který má největší hodnotu D(v). Pokud je jich více, volíme ten, který má nejvíce neobarvených sousedů.
17
1
18
1 2
19
3 1 2
20
3 1 4 2
21
1 3 4 2
22
1 3 2 4
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.