Technická univerzita v Liberci Fakulta mechatroniky, informatiky a mezioborových studií
zápočtová práce z předmětu Gramatiky a automaty (MTI / GRA)
Problém P versus NP
Autor: David Salač
Vyučující: doc. Václav Záda
akademický rok 2015/2016
1 CO JE TO PROBLÉM P VERSUS NP
1
Abstrakt V době výpočetní techniky vyvstává zásadní otázka: jsme schopni každý problém řešit dostatečně efektivně pomocí dostupné výpočetní techniky? Problém tříd P a NP s touto otázkou úzce souvisí a přes veškeré dosavadní bádání není dosud zodpovězen. V této práci jsou uvedeny některé obecné záležitosti s problematikou spojené.
Práce vychází ze článku "The Status of the P Versus NP Problem", autorem je Lance Fortnow [1]. Článek je psán spíše v popularizačním duchu, nežli jako vědecká práce.
1
Co je to problém P versus NP
Formálně termín "efektivní algoritmus"definoval v roce 1965 Jack Edmonds. Je to takový algoritmus, který proběhne v čase odpovídajícímu polynomiální hodnotě vůči délce vstupu. Třída problémů u kterých existuje efektivní algoritmus k jejich řešení, je označena jako P (z "Polynomial Time"). Příklad: předpokládejme, že máme skupinu n studentů a potřebujeme je spárovat tak, aby mohli ve dvou společně pracovat na projektu. Máme samozřejmě informace o tom, jak jsou studenti vzájemně "kompatibilní". Pokud bychom zvolili metodu hrubé síly, již pro skupinu 40 studentů by prakticky nešlo najít na běžném počítači řešení problému. Efektivní algoritmus však existuje a jeho autorem je právě Jack Edmonds. Pro mnoho dalších problémů však žádný efektivní algoritmus doposud neexistuje a zdá se, že ani existovat nemůže. Například by stačilo výše uvedenou ukázku jednoduše upravit tak, že bychom nevytvářeli páry studentů, nýbrž trojce nebo větší skupiny. Dále bychom mohli studenty posadit do kruhu tak, aby každý student měl vedle sebe právě a jen kompatibilní studenty. Pro takovéto problémy zatím nebylo efektivní řešení nalezeno. Společným jmenovatelem uvedených problémů je, že pokud nám někdo předloží své řešení, jsme jej schopni velice efektivně ověřit. Tedy můžeme snadno rozhodnout o tom, jestli vyhovuje podmínkám či nikoli. Nejsme však schopni takové řešení efektivně nalézt. V této situaci mluvíme o problémech NP (z "Nondeterministic Polynomial-Time"). Pokud by platilo, že P = NP , tak by to znamenalo, že pro každý problém, u kterého jsme schopni efektivně validovat předložené řešení, jsme schopni i validní řešení efektivně nalézt. Pro některé problémy (například uvedený problém kompatibilních trojic, či kompatibilního kruhu studentů) zavádíme termín NP-úplné problémy. To jsou takové problémy, kde při nalezení efektivního algoritmu pro vyřešení
3 CO KDYŽ ROVNOST P = NP NEPLATÍ (P 6= NP)
2
jednoho z nich, bychom mohli ostatní přeformulovat takovým způsobem, že by existoval efektivní algoritmus pro každý z nich. Již v sedmdesátých letech minulého století nalezli teoretičtí informatici stovky problémů spadajících do třídy NP-úplných (dnes je počet známých problémů ještě řádově vyšší). Nalezení efektivního algoritmu pro jeden z nich by implikovalo rovnost P = NP pro všechny NP-úplné problémy. Většina vědců se domnívá, že NP 6= P . Snaha o důkaz této nerovnosti se brzy stala klíčovým problémem informatiky a matematiky. S růstem významu výpočetní techniky pro numerické řešení mnoha problémů hraje nejen ve výzkumu efektivita používaných algoritmů stále významnější roli. V roce 2000 zařadil Clayův matematický institut problém P versus NP do seznamu problémů tisíciletí a v případě úspěšného vyřešení (tj. důkazu rovnosti či nerovnosti) by na vítěze čekala odměna milion dolarů.
2
Co když platí rovnost P = NP
Nejdříve je třeba upozornit, že samotný důkaz rovnosti nemusí technicky vzato znamenat, že budeme mít k dispozici efektivní algoritmus, který zvládne vyřešit NP-úplné problémy. Pokud však budeme takový algoritmus mít k dispozici, bude to mít řadu následků. Jako negativum lze uvést, že ztratí na významu využívat kryptografii s veřejným klíčem, neboť bude k dispozici efektivní cesta k jejímu prolomení. Protože na asymetrické kryptografii (s veřejným klíčem) stojí hlavní služby internetu (DNSKEY, veškeré certifikáty apod), znamenalo by to fakticky jeho konec v současné podobě. Pozitivum by jistě bylo, že by ke každému problému bylo možné nalézt efektivní algoritmus na jeho vyřešení. To by mělo zásadní vliv na rozvoj vědy, výzkumu a průmyslu. Podstatně by se například zlepšila přesnost meteorologických předpovědí, rapidně by se ulehčila možnost simulace fyzikálních jevů (včetně kvantových). Efektivní vyhodnocování experimentů provedených v CERN by mělo zásadní vliv na lidské poznání původu vesmíru... Na téma rovnosti P a NP dokonce bylo napsáno několik knih žánru sci-fi.
3
Co když rovnost P = NP neplatí (P 6= NP)
Doposud nebyl žádný pokus o důkaz nerovnosti úspěšný. Zde jsou prezentovány některé z neúspěšných pokusů o důkaz.
3 CO KDYŽ ROVNOST P = NP NEPLATÍ (P 6= NP)
3.1
3
Diagonalizace
Vychází s otázky, zdali jsme schopni sestavit NP jazyk L tak, že každý algoritmus pracující v polynomiálním čase selže při práci nad L pro nějaký vstup. Tato cesta se nazývá diagonalizace a její kořeny sahají až do 19 století. Již v roce 1874 dokázal George Cantor, že reálná čísla jsou nespočetná využítím techniky zvané diagonalizace. Pro každý spočetný seznam čísel nalezl reálné číslo, které na seznamu nebylo. Stejnou metodou dokázal Alan Turing, že pro problém zastavení (tj. rozhodnutí, zda při známém zdrojovém kódu a vstupu program zastaví nebo poběží navždy) neexistuje efektivní algoritmus. Tato metoda zaznamenala i další úspěchy na poli teorie složitosti. Při pokusu o důkaz nerovnosti P a NP za využití diagonalizace došlo k selhání. Problém tkví v tom, že nevíme, jak konkrétní NP stroj může simulovat libovolný P stroj. Dalším problémem je, že důkaz lze použít pouze za předpokladu, že všechny stroje budou mít přístup ke stejným dodatečným informacím – Baker, Gill a Solovay dokázali, že takto při důkazu nelze postupovat. Dílčí úspěch byl dosáhnut, když bylo dokázáno, že NP-úplný problém splnitelnosti Booleovských formulí (SAT) nemůže mít algoritmus, který pracuje zároveň s malým množstvím paměti i procesorového času. Což však s důkazem P 6= NP prakticky nesouvisí.
3.2
Složitost obvodu
Další pokus o důkaz nerovnosti byl postaven na myšlence, že neexistje relativně malý obvod složení z logických hradel (AND, OR, NOT), kde by jejich počet polynomiálně kopíroval délku vstupu. V roce 1984 bylo ukázáno, že žádný malý obvod pro vyřešení problému s paritami (první příklad v tomto textu) neexistuje (pokud má fixní množství vrstev s hradly). O rok později byl naopak nalezen malý obvod pro vyřešení NP-úplného problému a postupně bylo ukázáno, že již samotná výchozí úvaha je chybná.
3.3
Důkaz komplexnosti
Předpokládejme množinu tautologií, Booleovských formulí θ proměnných nad operacemi AND (∧), OR (∨) a NOT (¬) takových, že každá jejich kombinace je ve výsledku logická pravda. Například formule: (x ∧ y) ∨ (¬x) ∨ (¬y)
4 ŘEŠENÍ NP-ÚPLNÝCH PROBLÉMŮ
4
Pokud by tato formule nebyla tautologie, můžeme to snadno dokázat tak, že nalezneme možnost, pro kterou je celkový výraz nepravdivý. Pokud však je výraz skutečně tautologie, předpokládáme, že důkaz nebude krátký. Pokud by se podařilo dokázat, že neexistuje krátký důkaz toho, že konkrétní formule je tautologie, implikovalo by to nerovnost P 6= NP. Pro důkaz nerovnosti P 6= NP by bylo třeba dokázat, že tautologie nemůže mít jednoduchý důkaz v libovolném dokazovacím systému. Což zatím nebylo provedeno.
4
Řešení NP-úplných problémů
Pro vyřešení NP-úplných problémů se v praxi využívají některé standardní postupy. Hrubá síla je obecně nejhorší postup, který však zaručeně vede k cíli. Spočívá ve vyzkoušení všech přípustných variant a tím i nalezení varianty vyhovující požadavkům. S postupným zlepšováním výkonových možností počítačů se také rozšiřují možnosti řešení problémů hrubou silou. V praxi se například pro řešení problémů obchodního cestujícího (nejpopulárnější NP-úplný problém) využívají algoritmy, které jsou schopny operovat až s 10000 body grafu. Problém obchodního cestujícího lze laicky formulovat jako: existuje n měst, mezi nimi cesty o známých délkách. Nalezněte nejkratší možnou trasu procházející všemi městy a vracející se nazpět do výchozího města. Podobně existuje relativně efektivní algoritmus řešící splnitelnost Booleovské formule (SAT solver), pokud je však zadaná ve normálovém tvaru. V praxi je možné operovat až se 100 proměnnými. Heuristika a průměrná kompexita. Standardně se při řešení NP-úplných problémů uvažuje nejhorší případ, který může nastat. V praxi však se však lze často potkat s problémy, které jsou na vyřešení podstatně jednodušší. Standardně se tedy výzkumníci snaží převést NP-úplné problémy na jednodušší tvar, který již jsou schopni řešit dostatečně efektivně. Problém průměrné komplexity hraje v informatice důležitou roli, především potom v kryptografii. Aproximace. Další používaný nástroj pro řešení NP-úplných problémů je aproximace. Kdy získáváme požadovaný výsledek s určitou mírou nejstoty, zato však podstatně rychleji. Například pro problém obchodního cestujícího existuje efektivní algoritmus zvaný Arora, který dokáže efektivně nalézt přibližné řešení. Využití pravděpodobnosti. Pokud předpokládáme, že máme problém, při kterém můžeme snadno ověřit, jestli jestli nalezené řešení správné či ni-
6 KVANTOVÉ POČÍTAČE
5
koli. Potom nic nebrání generování náhodných možností a jejich následné verifikaci. Příznačně se dá problém demonstrovat na rozhodnutí o splnitelnosti Booleovské formule. V tomto případě jsme při vyzkoušení dostatečného množství variant schopni s vyčíslitelnou pravděpodobností rozhodnout o tom, jestli se jedná o tautologii či nikoli. Tato metoda se hojně využívá při kryptoanalýze.
5
Odbočka ke kryptografii
Jak již bylo výše zmíněno pro kryptografii je otázka P vs NP naprosto klíčová, především pak pro kryptografii s veřejným klíčem. Pro názornost je zde zmíněna konkrétní ukázka RSA. Vycházíme z toho, že Bob chce poslat Alici zprávu přes odposlouchávaný kanál. Zvolí si tedy dvě prvočísla p a q. Dále dopočte číslo n = pq a zvolí číslo e. Dvojce (e, n) představuje veřejný klíč. Šifrování zprávy probíhá dle rovnice: c = me
mod n
kde c je zašifrovaná zpráva a m zpráva jako taková. Je zřejmé, že útočník může volit dvě možnosti prolomení šifry. První je řešení diskrétního logaritmu (v podstatě uvažuje všechny možné m a kontroluje výstup). Druhá možnost je faktorizace n (rozklad na prvočísla) a dopočtení d... Dodnes nebylo dokázáno, že problém faktorizace čísel či diskrétního logaritmu je NP-úplný. Nelze tedy vyloučit, že se podaří nalézt efektivní algoritmus k faktorizaci čísel. To však nemění nic natom, že pokud by platila rovnost P = NP, byl by celý algoritmus v praxi nepoužitelný (neboť problém diskrétního logaritmu či faktorizace čísel je nejhůře NP-úplný).
6
Kvantové počítače
Při diskuzi na téma P vs NP se je dobré zmínit o možnostech kvantových počítačů. V devadesátých letech byl nalezen Peterem Shorem efektivní algoritmus pro faktorizaci čísel a řešení diskrétního logaritmu pro hypotetický kvantový počítač. V této souvislosti však není jasné, jestli jsou zmíněné problémy NP-úplné a tedy nelze ani rozhodnout o tom, zdali bude existovat univerzální efektivní algoritmus pro řešení NP-úplných problémů na kvantovém počítači. Shorův algoritmus se opírá o algebraickou strukturu čísel, která je dosti specifická. Pro obecné NP-úplné problémy byl nalezen algoritmus pro kvantový počítač, který zrychlí jejich řešení kvadraticky. Žádný další pokrok však dosud nebyl zaznamenán.
REFERENCE
6
V neposlední řadě je kvantový počítač s dostatečným výkonem stále spíše hypotetická záležitost a to i přes miliardy dolarů vynaložené na jejich vývoj.
Reference [1] FORTNOW, Lance. The Status of the P Versus NP Problem. Communications of the ACM, [online]. 2009(52): 78-86 [cit. 2015-12-31]. DOI: 10.1145/1562164.1562186. Dostupné z: http://cacm.acm.org/magazines/2009/9/38904-the-status-of-the-pversus-np-problem/