Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Øvingsforelesning 12 Redusering av problemer, P, NP, NPC og eksempler av disse Børge Rødsjø

Liknende presentasjoner


Presentasjon om: "Øvingsforelesning 12 Redusering av problemer, P, NP, NPC og eksempler av disse Børge Rødsjø"— Utskrift av presentasjonen:

1 Øvingsforelesning 12 Redusering av problemer, P, NP, NPC og eksempler av disse Børge Rødsjø

2 Dagens tema Redusering av problemer Problemklasser P, NP og NPC Eksempler på NPC-problemer Teoriøving 11: Grådighet Prakisøving 11: Pengeveksling Praksisøving 12: Tvilling-DNA 6. november 20092Øvingsforelesning 12 - Børge Rødsjø

3 Nytt ukjent problem Du kommer over et nytt problem du ønsker å løse Hvordan skal man gå frem for å finne en løsning av problemet? 1. Løs problemet med en kjent algoritme 2. Hvis ingen kjent algoritme finnes; se om problemet likner et problem man har algoritme for 3. Bevis at det ikke finnes noen løsning av problemet (i polynomisk tid, O(n k ), der k konstant) 6. november 2009Øvingsforelesning 12 - Børge Rødsjø3

4 Løse problemet med kjent algoritme Hvis det nye problemet kan løses med en kjent algoritme, er problemet enkelt/trivielt Men vær oppmerksom på hvilke krav de ulike algoritmene har for input 6. november 2009Øvingsforelesning 12 - Børge Rødsjø4

5 Redusere problemet Vi ønsker å gjøre om det nye problemet vårt til et problem som vi har en kjent algoritme for Ønsker å redusere ukjent problem til kjent problem i polynomisk tid Løser så det enkle problemet, og vi har et svar på det vanskelige ukjente problemet 6. november 2009Øvingsforelesning 12 - Børge Rødsjø5

6 Reduksjon med kjent algoritme 6. november 2009Øvingsforelesning 12 - Børge Rødsjø6 Transformerer det nye vanskelige problemet A (I A ), ned til en algoritme som løser et kjent problem B (I B ), løser problemet B (O B ), og vi har fått en løsning til vårt problem A (O A )

7 Reduksjon A 6. november 2009Øvingsforelesning 12 - Børge Rødsjø7 B ≤ Hvis ukjent problem A kan reduseres effektivt og enkelt til kjent problem B, kan vi bare løse B, og det ukjente problemet A vil være minst like enkelt som B ukjent problem kjent problem AB

8 Bevise at ukjent problem er vanskelig Vi klarer ikke å finne noen reduksjon til en kjent algoritme, så vi prøve å bevise at det ikke eksisterer en løsning for vårt nye ukjente problem 6. november 2009Øvingsforelesning 12 - Børge Rødsjø8

9 Bevise at ukjent problem er vanskelig Fra før har vi noen problemer som vi vet er umulige å løse Hvis vi reduserer et slikt problem til vårt ukjente problem, har vi vist at vårt problem er minst like vanskelig som det kjente problemet Fordi hvis vi kunne løse vårt ukjente problem, kunne vi bare redusert det umulige problemet til vårt, og dermed løst det umulige problemet, men det problemet er umulig å løse, så vi har en selvmotsigelse, altså er vårt problem også umulig å løse 6. november 2009Øvingsforelesning 12 - Børge Rødsjø9

10 Reduksjon A 6. november 2009Øvingsforelesning 12 - Børge Rødsjø10 B ≤ Vi vet at A er vanskelig å løse, reduserer så A til vårt ukjente problem B, har da vist at vårt problem B er minst like vanskelig som A kjent problem ukjent problem AB

11 Eller slik som Hetland ville sagt det november 2009Øvingsforelesning 12 - Børge Rødsjø11 Vi vet Chuck Norris er farlig, men hvis Chuck Norris er redd for nerden, har vi vist at nerden er minst like farlig som Chuck Norris

12 Avgjørelsesproblemer Vi skal ta for oss avgjørelsesproblemer, som er nært beslektet med optimaliseringsproblemer Avgjørelsesproblemer: Problemer der svaret er enten ja eller nei Optimaliseringsproblem: Finne det optimale svaret av flere mulige svar, finne max eller min 6. november 2009Øvingsforelesning 12 - Børge Rødsjø12

13 Avgjørelsesproblemer 6. november 2009Øvingsforelesning 12 - Børge Rødsjø13

14 Avgjørelsesproblemer SHORTEST-PATH (Optimaliseringsproblem) Finne korteste vei fra u til v i en urettet, uvektet graf PATH (Relatert avgjørelsesproblem) Finne ut om det finnes vei fra u til v med max. k kanter 6. november 2009Øvingsforelesning 12 - Børge Rødsjø14

15 Avgjørelsesproblemer Optimaliseringsproblemer har ofte et tilhørende avgjørelsesproblem Anta at vi kan løse SHORTEST-PATH kjapt Vi kan da sammenlikne svaret med parameteren k til PATH, og vi vet da at vi også har løst PATH kjapt M.a.o., hvis et optimaliseringsproblem er lett, er det tilhørede avgjørelsesproblemet minst like lett 6. november 2009Øvingsforelesning 12 - Børge Rødsjø15

16 Problemklassen P Problemklassene P, NP, og NPC inneholder avgjørelsesproblemer P = {mengden av avgjørelsesproblemer som kan løses i polynomisk tid} Polynomisk tid: O(n k ), der k=konstant og n=størrelsen til input 6. november 2009Øvingsforelesning 12 - Børge Rødsjø16

17 Vise at ukjent problem er i P A 6. november 2009Øvingsforelesning 12 - Børge Rødsjø17 B ≤ Hvis ukjent problem A kan reduseres effektivt og enkelt til kjent problem B (B er i mengden P), kan vi bare løse B, og det ukjente problemet A vil være minst like enkelt som B ukjent problem kjent problem i P AB

18 Problemklassen NP NP står for nonderministic polynomial time NP = {mengden av avgjørelsesproblemer der en løsning kan verifiseres i polynomisk tid} Dvs. at hvis vi tipper på en løsning til problemet, kan det sjekkes i polynomisk tid om denne løsningen er korrekt (gjelder når løsningen faktisk er korrekt) 6. november 2009Øvingsforelesning 12 - Børge Rødsjø18

19 Vise at ukjent problem er i NP Enten: Finn en algoritme som verifiserer løsningen på problemet i polynomisk tid. Eller: Vis at problemet er i P Siden P er en undermengde av NP (kommer snart til dette) 6. november 2009Øvingsforelesning 12 - Børge Rødsjø19

20 Redusere NP til verstinger i NP NP 6. november 2009Øvingsforelesning 12 - Børge Rødsjø20 NP ≤ Alle problemer i NP kan reduseres/omskrivers til de vanskeligste problemene i NP NP Alt i kan reduseres til.. verstinger i De vanskeligste probleme i NP

21 Problemklassen NPC Vi gir verstingene i NP et navn: NPC NPC står for NP-Complete NPC = {mengden av de vanskeligste avgjørelsesproblemer i NP} 6. november 2009Øvingsforelesning 12 - Børge Rødsjø21

22 Redusere NP til NPC NP 6. november 2009Øvingsforelesning 12 - Børge Rødsjø22 NPC ≤ Hvis man har løst ett av NPC-problemene i polynomisk tid, har man løst alle problemer i NP i polynomisk tid (fordi problemene kan reduseres til hverandre) NPNPC Alt i kan reduseres til.. alt i

23 NPC Ingen har klart å løse noen problemer i NPC enda, i polynomisk tid Så hvis vi vil bevise at vårt nye ukjente problem er umulig å løse, er det bare å redusere et NPC-problem til vårt problem Da er vårt problem minst like vanskelig som et NPC-problem 6. november 2009Øvingsforelesning 12 - Børge Rødsjø23

24 Bevise at ukjent problem A er vanskelig NPC 6. november 2009Øvingsforelesning 12 - Børge Rødsjø24 A ≤ Hvis man effektivt kan redusere et NPC-problem til vårt ukjente problem A, har vi vist at A må være minst like vanskelig som NPC-problemet NPCA ukjent problem

25 NP-hard NP-hard = NPC + {mengden av NPC-problemer som ikke ligger i NP} Så løsningen til et NP-hard problem trenger ikke nødvendigvis å kunne verifiseres i polynomisk tid Alle NPC-problemer kan reduseres til NP-hard problemer NP-hard problemer trenger ikke å være avgjørelsesproblemer 6. november 2009Øvingsforelesning 12 - Børge Rødsjø25

26 Redusere NP til NP-hard NPC 6. november 2009Øvingsforelesning 12 - Børge Rødsjø26 NP-hard ≤ Et NP-hard problem er minst like vanskelig som et NPC-problem, hvis reduseringen er i polynomisk tid NPCNP-hard Alt i kan reduseres til.. alt i

27 Bevise at ukjent problem A er NP-hard NP-hard 6. november 2009Øvingsforelesning 12 - Børge Rødsjø27 A ≤ NP-hard A Hvis man effektivt kan redusere et NP-hard problem til vårt ukjente problem A, har vi vist at A må være minst like vanskelig som NP-hard problemet ukjent problem

28 Slik tror vi det er november 2009Øvingsforelesning 12 - Børge Rødsjø28

29 ...eller er det slik? 6. november 2009Øvingsforelesning 12 - Børge Rødsjø29

30 P = NP? Ingen har klart å bevise at hverken P = NP, eller at P ≠ NP Clay Mathematics Institute har utlovt 1 million US dollar til den som klarer å bevise noe slikt Sansynligvis det vanskeligste og viktigste problemet i teoretisk informatikk 6. november 2009Øvingsforelesning 12 - Børge Rødsjø30

31 Fullstendig venndiagram Slik kan det være hvis P ≠ NP 6. november 2009Øvingsforelesning 12 - Børge Rødsjø31

32 Over til noe mer konkret november 2009Øvingsforelesning 12 - Børge Rødsjø32

33 Bevise at vårt problem er vanskelig For å vise at vårt problem er vanskelig, er det derfor lurt å kunne noen NPC-problemer, så vi kan redusere en av dem til vårt problem Skal nå gå igjennom en god del NPC- problemer 6. november 2009Øvingsforelesning 12 - Børge Rødsjø33

34 6. november 2009Øvingsforelesning 12 - Børge Rødsjø34 Hvordan NPC- problemer reduseres til hverandre:

35 NPC-problemer SAT (Satisfiability) 3-CNF-SAT CURCUIT-SAT (Er bevist at er i NPC) SUBSET-SUM CLIQUE VERTEX-COVER HAM-CYCLE TSP (Travelling Salesman Problem) GRAPH K-COLORABILITY 6. november 2009Øvingsforelesning 12 - Børge Rødsjø35

36 SAT Gitt et boolsk uttrykk sammensatt med AND, OR, NOT, variabler og paranteser, finnes det en tilordning til variablene (TRUE/FALSE) slik at hele uttrykket blir TRUE? Eks. ((x 1 OR x 2 ) AND (NOT x 2 AND x 3 )) OR x 4 Finn tilordning til x 1, x 2, x 3, og x 4 med true/false, i polynomisk tid, slik at uttrykket blir true 6. november 2009Øvingsforelesning 12 - Børge Rødsjø36

37 CIRCUIT-SAT Det første problemet som ble vist at er NP- komplett Helt likt SAT, bare en ”eldre” versjon med logiske gater (AND, OR, NOT) og koblinger mellom gatene Alle andre NPC-problemer er reduseringer fra dette problemet 6. november 2009Øvingsforelesning 12 - Børge Rødsjø37

38 3-CNF-SAT Likt som SAT, men her må uttrykket være på konjunktiv normalform, og alle ledd har 3 variabler Eks. (X or not Y or not Z) and (not X or Y or Z) and (X or Y or Z) Finn tilordning til x, y og z med true/false, i polynomisk tid, slik at uttrykket blir true 6. november 2009Øvingsforelesning 12 - Børge Rødsjø38

39 SUBSET-SUM Vi har en sekvens av tall, og vil finne ut om noen av disse tallene kan legges sammen og få en viss sum Eks: Tall-rekke = {8, 16, 4, 4, 1, 3} Finner vi summen 18 her? Nei. Finner vi summen 19 her? Ja, f.eks

40 CLIQUE En klikk er en samling noder i en graf som utgjør en komplett subgraf. Finnes det en klikk i denne grafen, med minst k noder? Eks: Hvis k=3 Ja, nodene 1, 2 og 5. Hvis k = 4 Nei, det finnes ikke.

41 VERTEX-COVER Kan vi finne en samling av maksimalt k noder, som gjør at alle kantene i grafen er nabo med minst én av disse nodene? Eks: Hvis k=3 Ja, f.eks. Nodene 4, 5 og 2. Hvis k=2 Nei.

42 HAM-CYCLE Finnes det en Hamilton sykel i grafen? Eks. 6. november 2009Øvingsforelesning 12 - Børge Rødsjø42

43 HAM-CYCLE Finnes det en Hamilton sykel i grafen? Eks. Ja 6. november 2009Øvingsforelesning 12 - Børge Rødsjø43

44 TSP (Travelling Salesman Problem) Gitt en urettet graf med noder og vektede kanter, finn billigste sykel som besøker alle nodene én og bare én gang Eks. den korteste veien gjennom de 15 største byene i Tyskland 6. november 2009Øvingsforelesning 12 - Børge Rødsjø44

45 TSP (Travelling Salesman Problem) TSP er faktisk NP-hard Dvs. at alle problemer i NPC kan reduseres til TSP 6. november 2009Øvingsforelesning 12 - Børge Rødsjø45

46 GRAPH K-COLORABILITY Gitt k forskjellige farger, kan vi fargelegge nodene i en graf slik at ingen naboer har samme farge? Eks: k = 3 Ja, det kan den. Se bilde. k = 2 Nei, det kan den ikke. Obs! k=2 kan sjekkes i polynomisk tid!

47 Og her er resten av NPC 6. november 2009Øvingsforelesning 12 - Børge Rødsjø47

48 Teoriøving 11: Grådighet Oppgave 4 Optimal parantessetting Bruk parantesdybden for et flyttall som frekvens Kjør Huffman-koding Gjennomgang? 6. november 2009Øvingsforelesning 12 - Børge Rødsjø48

49 Pengeveksling Se Algdat-eksamen januar 1996, oppg. 3 Grådig algoritme: Plukk så mange man kan av den største mynten, så mange man kan av den nest største mynten, osv.. Dynamisk algoritme: Optimal substruktur: Den optimale måten å ta ut n kroner, hvis man har mynter 2, 3, 7: 1 + Min( mynter[n-2], mynter[n-3], mynter[n-7] )

50 Pengeveksling Når kan man bruke den grådige algoritmen, og når må man bruke den dynamiske? Den grådige fungerer hvis hver mynt går opp i alle mynter som er større enn seg. Iterer gjennom myntsettet, og sjekk hele veien: coin[i+1] % coin[i] == 0 Det finnes andre, bedre måter å sjekke for greedy choice property, men de er mer kompliserte.

51 Tvilling-DNA (neste ukes øv.) Levenshtein distance (søk på Wikipedia) Dynamisk programmering, bottom-up Bygg en matrise over edit distances for starten av stringene Mange morsomme tweaks eller alternative algoritmer mulig Dette er et veldig reelt problem i bioinformatikk


Laste ned ppt "Øvingsforelesning 12 Redusering av problemer, P, NP, NPC og eksempler av disse Børge Rødsjø"

Liknende presentasjoner


Annonser fra Google