Frågan om P=NP? Är P=NP? Bakgrund. "Snabb lösning"?!

Relevanta dokument
Föreläsning 8: Intro till Komplexitetsteori

Föreläsning 9: NP-fullständighet

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Algoritmer, datastrukturer och komplexitet

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

Algoritmer, datastrukturer och komplexitet

Övningsmästarprov 2 + några NP-reduktioner. Algoritmer, datastrukturer och komplexitet

PCP-satsen på kombinatoriskt manér

Algoritmer, datastrukturer och komplexitet

Föreläsning 11. Giriga algoritmer

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Algoritmer, datastrukturer och komplexitet

Föreläsning 12+13: Approximationsalgoritmer

Föreläsning 1. Introduktion. Vad är en algoritm?

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Algoritmer, datastrukturer och komplexitet

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

Föreläsning 11. Giriga algoritmer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Algoritmer, datastrukturer och komplexitet

Komplexitetsklasser och repetition

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Algoritmer och datastrukturer TDA143

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Kaliningrad) låg vid bägge sidor av floden Pregel samt på

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Relativa, kriteriebaserade och målrelaterade betyg. Målrelaterade kriterier. Relationen betygskriterier lärandemål

Studentrapport från mitt utbyte

JavaScript del 3 If, Operatorer och Confirm

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

hur väl kursens lärandemål uppfylls Syften med betygskriterier Uppgift i grupper om fyra Betygskriterier är bra men kräver ny examination

Tentamen i Programmering grundkurs och Programmering C

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Föreläsning 16: Tentan, att förbereda sig

UTVÄRDERING AV SKOGSMÄSTARPROGRAM M ET / 1 4

Tommy Färnqvist, IDA, Linköpings universitet

Grundläggande logik och modellteori

Partneruniversitet (enkät ifylles i datorn): University of Western Australia

samt lite algoritmer en kortfattad introduktion för studenter på Intro:DV

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Tentamen i. Programmering i språket C

9 Funktioner. Exempel. f(x) = x + 1 sqr(y) = y 2. x, om x < 0. abs(x) =

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Tentamen i EDAF05 Algoritmer, datastrukturer och komplexitet

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

Datorprogram, algoritmer och Turing-maskiner

Tentaupplägg denna gång

Föreläsning 8. Innehåll. Satisfierbarhet hos en formel. Logik med tillämpningar

kl Tentaupplägg

Institutionen för datavetenskap vid Helsingfors universitet

Funktionärer Helgresa Mälarn runt åt fel håll THE TWIN CLUB

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

Objektorienterad Programmering (TDDC77)

Föreläsning 1: Intro till kursen och programmering

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Så, med nytt (inget) hår satte jag mig på planet till Irland och Dublin!

BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden

Föreläsning 5 Innehåll

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

Studentrapport från mitt utbyte

Föreläsning 1: Intro till kursen och programmering

Hur fungerade det med bibliotek, studiematerial och datorer? Alldeles utmärkt. Universitetet hade bra bibliotek och jag hade med egen dator.

1. Hur många timmar per vecka har du i genomsnitt lagt ner på kursen (inklusive schemalagd tid)?

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

Dagens föreläsning (F15)

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

INFORMATION IDAG. 09:00 Information (E4304) 09:30 Fika (utanför E1418) 10:15 Labbintroduktion (E3437, E3439) 12:00 Faddrarna tar över

DD1314 Programmeringsteknik

Grundläggande logik och modellteori

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

kl Tentaupplägg

Förslag på intervjufrågor:

Utvärdering Lärande med stöd av IKT vt-10

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

VT17-1DV023-7,5hp. Vilket sammanfattande omdöme ger du kursen? Antal respondenter: 56. Antal svar. Svarsfrekvens: 42,86 %

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

kl Tentaupplägg

Poäng. Start v. Programmeringsteknik med C och Matlab 7,50. Antal registrerade (män/kvinnor) 274 (194/80)

Sommarakademin 2010 SOMMARGUIDE

a = a a a a a a ± ± ± ±500

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Introduktion till Programmering. Dåtid, nutid och framtid

Robotar i NXc. En laboration med Mindstormrobotar. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Cacheminne Intel Core i7

Vad är ett universitet? Dagens agenda. Introduktion till informationsteknik (1IK426) VT Vad är ett universitet? Linnéuniversitetet

Tea Nygren Siv Söderlund Fredrik Wiklund. Carl Hemmingsson. Magnus Johansson. Carl Hemmingsson. Föreläsningar Lektioner Laborationer Projekt

Diskret matematik, lektion 2

Tentamen, EDAA10 Programmering i Java

Föreläsningsanteckningar F6

Studentrapport från mitt utbyte

Att våga tala. - går det att lära sig? Mina egna små erfarenheter... Fredrik Bengtsson

Grundläggande logik och modellteori

Transkript:

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