Frågan om P=NP? Är P=NP? Institutionen för system- och rymdteknik Luleå tekniska universitet Luleå, Sverige Kan varje [beräknings-] problem vars lösning kan verifieras snabbt av en dator även lösas snabbt av en dator? Alla snabbt lösbara problem bildar mängden P Alla problem vars lösningar snabbt kan kollas utgör mängden NP Om svaret är JA så är P=NP och om NEJ så är P NP 1000-tals med forskare har misslyckats med att besvara frågan De allra flesta tror att P NP Att det finns problem som inte kan lösas snabbt trots att deras lösningar kan verifieras snabbt Många viktiga problem verkar nämligen vara så 1 2 Bakgrund "Snabb lösning"?! Första belägget från 1956 Ett brev från Kurt Gödel till John von Neumann Formuleringen om P=NP? är från 1971 Frågan stramades upp av Richard Karp, Stephen Cook och Leonid Levin Frågan P=NP? är den viktigaste obesvarade frågan inom datavetenskapen Den som först kommer på svaret får 1 000 000 USD och evig berömmelse(!) Frågan är ett s k Millennium Prize Problem Googla Clay Mathematics Institute för mer info Med "snabbt" eller enkelt menas här polynomiellt antal steg/jämförelser Högst ungefär Cn k steg (eller jämförelser), där n är indatas storlek medan C och k är konstanter Exempel: 20n 2, 100n 300, 9n 3, n 2.8074 En lösning är polynomiell om det existerar ett k sådant att antal beräkningssteg som lösningen i värsta fall förbrukar tillhör O(n k ) Mer än polynomiellt är "långsamt eller svårt Framförallt exponentiellt Exempel: 2 n, 4 3n-5, 5000 8 9n 3 4
Problem 1: Subsetsum Givet en mängd med n tal, finns det en icke-tom delmängd vars summa är noll? Konkret instans: Vad sägs om { 2, 14, 15, 10, 7, 3}? Lösning: Ja, { 2, 15, 10, -3} Lösningen kan kollas med 3 additioner och 1 jämförelse (med noll) En lösning tar högst n-1 additioner och 1 jämförelse att verifiera Detta är polynomiellt i n De bästa algoritmerna som löser problemet tar exponentiellt antal steg/jämförelser (dvs O(k n )) 2. Handelsresandeproblemet (TSP) En handelsresande vill besöka ett antal städer genom att köra från sitt hem och sen tillbaka Det finns en maximal körsträcka som inte får överskridas T ex att regler sätter begränsningar Jämför med hur långtradarchaufförer måste sova då och då Finns det någon ordning som den handelsresande kan köra runt till alla städerna i (och återvända hem) utan att köra för långt? Vilken är den kortast möjliga rutten? Källa: http://www.caranddriver.com/ 5 6 3. Schemaläggning av tentor Studenterna vid ett inte närmare namngivet nordligt beläget tekniskt universitet läser alla varje läsperiod en eller flera kurser Varje kurs avslutas med en obligatorisk tenta som tar 4 timmar att skriva För att hindra fusk måste alla som tar tentan i en kurs ta den samtidigt Om en student läser flera kurser måste tentorna i de kurserna ges olika tider (dvs inte överlappa tidsmässigt) Givet en examinationsperiod ("tentaperiod") med 5 dagar, finns det något sätt att schemalägga tentorna på så att alla studenter kan tentera alla sina kurser? Källa: http://www.jippieserien.se/ 4. Packning av filer En student [vid ett inte närmare namngivet nordligt beläget tekniskt universitet] har 100 filmer och vill spara dessa på USB-minnen Filmerna har (väldigt) varierande storlek Vissa är små (< 1 GB) medan andra är stora (många GB) Ingen film får delas Varje minne rymmer 32 GB Räcker det med 10 minnen? Vilket är det minsta antalet minnen som krävs? Källa: http://presenta.se/ 7 8
Vid ett [inte närmare namngivet nordligt beläget tekniskt] universitet vill man införa kameraövervakade tentor A och B är vänner, R och S är vänner, D och K är vänner, B och R är vänner osv... Finns det en grupp med t ex 40 studenter som alla är vänner med varandra? 7. Inbrottstjuvens dilemma En tjuv hittar vid ett inbrott en stor mängd dyrbarheter (guld, ädelstenar mm) Varje dyrbarhet är odelbar samt har viss volym och visst värde Tjuvens säck rymmer 30 liter Ryms det dyrbarheter för 1 000 000 kr i säcken? Vilket är det maximala värdet säcken kan innehålla, om man packar så smart som möjligt? Källa: http://hackslashmaster.blogspot.se 9 10 Källa: http://www.solberga.nu Räcker det med 100 övervakningskameror? Vilket är det absolut minsta antalet som krävs? 6. Vänskapsrelationer Antag att man har en fullständig lista på vilka studenter [vid ett inte närmare namngivet nordligt beläget tekniskt universitet] som är vänner Tentorna ges överallt på campus (inte bara i klassrum och tentasalar) För att ingen ska kunna fuska så måste varje punkt på universitetet ses av minst en kamera (gärna flera) Målning av Jerry Weiss, 2003. Källa: wikipedia om "vänskap" Källa: http://swestore.com/ 5. Tentavaktningsproblemet 8. En knäckfråga I en påse finns 100 st hemgjorda knäck som alla väger lite olika Går det att dela upp alla knäck i två högar så att högarna väger lika mycket? Samma fråga men ett jämnt antal högar För om man t ex kan dela upp i 6 högar med samma vikt så kan man dela upp i 2: Lägg ihop de första 3 högarna till en hög och de övriga 3 högarna till en annan hög 11 12
OR NOT AND (a) Är satisfierbar, <x1=1, x2=1, x3=0> (b) Är inte satisfierbar (a) ((x1 x2) x3) (x3 (x1 x2 x3)) (x1 x2 x3) (b) ((x1 x2) x3) (x3 (x1 x2 x3)) (x1 x2 x3) 13 14 Om problem och lösningsmetoder Givet en logisk krets, finns det en tilldelning av värden (0 eller 1) till variablerna x1, x2, x3,... sådan att kretsen ger 1 som utdata? Problemet kallas "SAT som i "SATisfiability Vi har just lärt känna grupperna P och NP Notera att P ingår i NP Verifiera en påstådd lösning genom att beräkna en ny (på polynomiellt antal steg/ jämförelser) och jämför dem En annan viktig grupp utgörs av de s k NPfullständiga problemen (NP-Complete) De 9 problem jag gått igenom är exempel på NP-fullständiga problem Satisfierbarhetsproblemet på svenska Nr 9 SAT var det första NP-fullständiga (1971) Såna är de svåraste att lösa i NP De kan idag endast lösas genom att testa alla möjligheter (Brute Force) NP-fullständiga problem är nära besläktade Skulle ett kunna lösas snabbt så kan alla problem i NP lösas snabbt(!) è P=NP(!) 15 NP-svåra problem (NP-Hard) är minst lika svåra att lösa som de i NP 16
P, NP och NP-fullständigt Studiet av [beräknings-] problem hör nära samman med datavetenskapen och datatekniken Datorer löser ju (beräknar lösningar på) problem Idag har vi sett hur lösbara problem trots allt kan vara olika svåra att lösa P och NP-fullständigt Exempel på enkla vardagsproblem som inte verkar gå att lösa snabbt Det viktigaste datavetenskapliga problemet är om P=NP eller ej Senare kommer jag att prata om rejält svåra och, ja, rent utav omöjliga problem, men mer om det då 17