Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Øvingsforelesning 12 Redusering av problemer,

Liknende presentasjoner


Presentasjon om: "Øvingsforelesning 12 Redusering av problemer,"— Utskrift av presentasjonen:

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

2 Øvingsforelesning 12 - Børge Rødsjø
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 2009 Øvingsforelesning 12 - Børge Rødsjø

3 Øvingsforelesning 12 - Børge Rødsjø
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? Løs problemet med en kjent algoritme Hvis ingen kjent algoritme finnes; se om problemet likner et problem man har algoritme for Bevis at det ikke finnes noen løsning av problemet (i polynomisk tid, O(nk), der k konstant) Får et problem av arbeidsgiver, prøver først å løse problemet med en kjent algoritme, hvis ikke en algoritme finnes, prøv å redusere problemet til et problem man har en kjent algoritme for. Hvis ikke; bevis at det ikke finnes noen løsning av problemet i polynomisk tid. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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 Eksempel på krav: DAG (Rettet asyklisk graf), Shortest path (ikke negative sykler i grafen), sorteringsalgoritmer: Bucketsort (uniform fordeling), counting-sort (tall i ett gitt intervall, fra 1 til k) 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

5 Øvingsforelesning 12 - Børge Rødsjø
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 Viktig at transformeringen er i polynomisk tid, og ikke overskrider tiden det tar å løse det kjente problemet. Fordi hvis transformeringen tar mere tid en å løse det kjente problemet, vet vi ikke noe om kjøretiden til vårt ukjente nye problem. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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

7 Øvingsforelesning 12 - Børge Rødsjø
Reduksjon A B kjent problem ukjent problem A 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 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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ø

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 Vi vet at et problem er umulig å løse, hvis vi reduserer det til vårt ukjente problem, har vi vist at vårt problem er minst like vanskelig som det umulige problemet. Pga. selvmotsigelse hvis vi kunne løse vårt problem, kunne vi også løse det umulige problemet, men det problemet er jo umulig å løse; altså må antakelsen vår være feil: vårt problem kan ikke løses. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

10 Øvingsforelesning 12 - Børge Rødsjø
Reduksjon A B ukjent problem kjent problem A 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 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

11 Eller slik som Hetland ville sagt det...
Vi vet at Chuck Norris er farlig, hvis Chuck Norris er redd for han på høyresiden, har vi vist at han på høyresiden er enda farligere en Chuck Norris en ninja. Anta at nerden lett kan løses, da kan også Chuck Norris lett løses fordi han kan ta nerden, men vi vet at Chuck Norris er umulig å ta, vi har en selvmotsigelse, konklusjon: nerden kan ikke lett løses. 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 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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ø

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

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 SHORTEST-PATH: Finne minimum av alle korteste veier fra u til v i urettet, uvektet graf. PATH: Svare ja eller nei på spørsmålet om det finnes en vei fra u til v med max. k kanter 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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ø

16 Øvingsforelesning 12 - Børge Rødsjø
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(nk), der k=konstant og n=størrelsen til input Problemer i P: avgjørelsesproblemer i lineær-programmering, kalkulere greatest common divisor, finne maximum matching, avgjøre om et tall er et primtall 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

17 Vise at ukjent problem er i P
kjent problem i P A 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 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

18 Øvingsforelesning 12 - Børge Rødsjø
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) Hvis vi gjetter riktig i hvert valg i NP-problemet, får vi polynomisk kjøretid, og et riktig svar. Eller hvis vi kan kjøre alle mulige valg i parallell, får vi polynomisk kjøretid. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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ø

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

21 Øvingsforelesning 12 - Børge Rødsjø
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ø

22 Øvingsforelesning 12 - Børge Rødsjø
Redusere NP til NPC Alt i kan reduseres til alt i NP NPC NP NPC Merk at siden alle NPCproblemer ligger i NP så kan de også reduseres til hverandre. Det holder altså å løse *ett* av dem for å ha løst alle problemer i NP. 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) 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

23 Øvingsforelesning 12 - Børge Rødsjø
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ø

24 Bevise at ukjent problem A er vanskelig
NPC A ukjent problem NPC 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 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

25 Øvingsforelesning 12 - Børge Rødsjø
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ø

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

27 Bevise at ukjent problem A er NP-hard
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 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

28 Øvingsforelesning 12 - Børge Rødsjø
Slik tror vi det er... Venn-diagram: NP inneholder klassen P og NPC, og snittet mellom P og NPC er den tomme mengden 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

29 Øvingsforelesning 12 - Børge Rødsjø
...eller er det slik? Hvis noen klarer å vise dette vil det føre til drastiske konsekvenser, NP-komplette problemer kan løses i polynomisk tid 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

30 Øvingsforelesning 12 - Børge Rødsjø
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 Mange års forskning på NPC problemer, og at ingen har klart å løse dem enda, tyder på at NP != P, men det er aldri blitt bevist. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

31 Fullstendig venndiagram
Slik kan det være hvis P ≠ NP NPC er de vanskeligste problemene i NP, og NP-Hard er NPC + problemer som er like vanskelige som NPC, men som ikke kan verifiseres i polynomisk tid 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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

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ø

34 Øvingsforelesning 12 - Børge Rødsjø
Hvordan NPC- problemer reduseres til hverandre: Curcuit-SAT problemet ble bevist i 1971 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

35 Øvingsforelesning 12 - Børge Rødsjø
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ø

36 Øvingsforelesning 12 - Børge Rødsjø
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. ((x1 OR x2) AND (NOT x2 AND x3)) OR x4 Finn tilordning til x1, x2, x3, og x4 med true/false, i polynomisk tid, slik at uttrykket blir true 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

37 Øvingsforelesning 12 - Børge Rødsjø
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 Cook og Levin satt på hver sin side av jernteppet under den kalde krigen – og begge viste (ved helt *andre* metoder) at (CIRCUIT-)SAT var NP-komplett. Cook publiserte dette i 1971 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

38 Øvingsforelesning 12 - Børge Rødsjø
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 Konjunktiv normalform: alle paranterser er satt sammen med AND, og alle variabler inni paranteser er satt sammen med OR 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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. En komplett subgraf er en graf der alle noder er koblet til alle andre noder med direkte kant. Hvis på tavla med 3 noder og 4 noder

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. Hvis på tavla med eksempelet i figuren over

42 Øvingsforelesning 12 - Børge Rødsjø
HAM-CYCLE Finnes det en Hamilton sykel i grafen? Eks. Hamilton sykel: En sykel som besøker alle nodene i grafen en og bare en gang. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

43 Øvingsforelesning 12 - Børge Rødsjø
HAM-CYCLE Finnes det en Hamilton sykel i grafen? Eks. Ja Hamilton sykel: En sykel som besøker alle nodene i grafen en og bare en gang. 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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 En handelsmann som starter i hjembyen sin, og ønsker å besøke alle byer rundt seg en og bare en gang, slik at ruten blir kortest mulig, og han skal komme tilbake til hjembyen etter å ha besøkt alle andre byer. TSP er det samme som en minimal hamilton sykel i en komplett, urettet, vektet graf. Bildet over viser den korteste veien blant mulige måter å traversere på 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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ø

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 Øvingsforelesning 12 - Børge Rødsjø
Og her er resten av NPC 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

48 Teoriøving 11: Grådighet
Oppgave 4 Optimal parantessetting Bruk parantesdybden for et flyttall som frekvens Kjør Huffman-koding Gjennomgang? Ta et raskt eksempel på tavla, hvis noen ønsker det 6. november 2009 Øvingsforelesning 12 - Børge Rødsjø

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] ) Må bare meddele at dette er jeg ingen ekspert på, jeg kan ikke forklare denne oppgaven noe særlig bra. Henviser derfor til løsningsforslag til eksamen januar 1996, og til løsningen av kode på Algdat-sidene.

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,"

Liknende presentasjoner


Annonser fra Google