Vingsforelesning 12
This presentation is the property of its rightful owner.
Sponsored Links
1 / 51

Øvingsforelesning 12 PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

Øvingsforelesning 12. Redusering av problemer, P, NP, NPC og eksempler av disse Børge Rødsjø [email protected] Dagens tema. Redusering av problemer Problemklasser P, NP og NPC Eksempler på NPC-problemer Teoriøving 11: Grådighet Prakisøving 11: Pengeveksling

Download Presentation

Øvingsforelesning 12

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Vingsforelesning 12

Øvingsforelesning 12

Redusering av problemer,

P, NP, NPC og eksempler av disse

Børge Rødsjø

[email protected]


Dagens tema

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

Øvingsforelesning 12 - Børge Rødsjø


Nytt ukjent problem

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)

Øvingsforelesning 12 - Børge Rødsjø


L se problemet med kjent algoritme

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

Øvingsforelesning 12 - Børge Rødsjø


Redusere problemet

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

Øvingsforelesning 12 - Børge Rødsjø


Reduksjon med kjent algoritme

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)

Øvingsforelesning 12 - Børge Rødsjø


Reduksjon

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

Øvingsforelesning 12 - Børge Rødsjø


Bevise at ukjent problem er vanskelig

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

Øvingsforelesning 12 - Børge Rødsjø


Bevise at ukjent problem er vanskelig1

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

Øvingsforelesning 12 - Børge Rødsjø


Reduksjon1

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

Øvingsforelesning 12 - Børge Rødsjø


Eller slik som hetland ville sagt det

Eller slik som Hetland ville sagt det...

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

Øvingsforelesning 12 - Børge Rødsjø


Avgj relsesproblemer

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

Øvingsforelesning 12 - Børge Rødsjø


Avgj relsesproblemer1

Avgjørelsesproblemer

Øvingsforelesning 12 - Børge Rødsjø


Avgj relsesproblemer2

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

Øvingsforelesning 12 - Børge Rødsjø


Avgj relsesproblemer3

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

Øvingsforelesning 12 - Børge Rødsjø


Problemklassen p

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

Øvingsforelesning 12 - Børge Rødsjø


Vise at ukjent problem er i p

Vise at ukjent problem er i P

A

B

kjent problem i P

ukjent problem

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

Øvingsforelesning 12 - Børge Rødsjø


Problemklassen np

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)

Øvingsforelesning 12 - Børge Rødsjø


Vise at ukjent problem er i np

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)

Øvingsforelesning 12 - Børge Rødsjø


Redusere np til verstinger i np

Redusere NP til verstinger i NP

NP

Alt i kan reduseres til.. verstinger i

NP

NP

NP

De vanskeligste probleme i NP

Alle problemer i NP kan reduseres/omskrivers til de vanskeligste problemene i NP

Øvingsforelesning 12 - Børge Rødsjø


Problemklassen npc

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}

Øvingsforelesning 12 - Børge Rødsjø


Redusere np til npc

Redusere NP til NPC

NP

Alt i kan reduseres til.. alt i

NPC

NP

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)

Øvingsforelesning 12 - Børge Rødsjø


Vingsforelesning 12

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

Øvingsforelesning 12 - Børge Rødsjø


Bevise at ukjent problem a er vanskelig

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

Øvingsforelesning 12 - Børge Rødsjø


Np hard

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

Øvingsforelesning 12 - Børge Rødsjø


Redusere np til np hard

Redusere NP til NP-hard

NPC

Alt i kan reduseres til.. alt i

NP-hard

NPC

NP-hard

Et NP-hard problem er minst like vanskelig som et NPC-problem, hvis reduseringen er i polynomisk tid

Øvingsforelesning 12 - Børge Rødsjø


Bevise at ukjent problem a er np hard

Bevise at ukjent problem A er NP-hard

NP-hard

ukjent problem

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

Øvingsforelesning 12 - Børge Rødsjø


Slik tror vi det er

Slik tror vi det er...

Øvingsforelesning 12 - Børge Rødsjø


Eller er det slik

...eller er det slik?

Øvingsforelesning 12 - Børge Rødsjø


Vingsforelesning 12

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

Øvingsforelesning 12 - Børge Rødsjø


Fullstendig venndiagram

Fullstendig venndiagram

  • Slik kan det være hvis P ≠ NP

Øvingsforelesning 12 - Børge Rødsjø


Vingsforelesning 12

Over til noe mer konkret...

Øvingsforelesning 12 - Børge Rødsjø


Bevise at v rt problem er vanskelig

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

Øvingsforelesning 12 - Børge Rødsjø


Vingsforelesning 12

Hvordan NPC- problemer reduseres til hverandre:

Øvingsforelesning 12 - Børge Rødsjø


Npc problemer

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

Øvingsforelesning 12 - Børge Rødsjø


Vingsforelesning 12

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

Øvingsforelesning 12 - Børge Rødsjø


Circuit sat

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

Øvingsforelesning 12 - Børge Rødsjø


3 cnf sat

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

Øvingsforelesning 12 - Børge Rødsjø


Subset sum

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. 8+4+4+3


Clique

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.


Vertex cover

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.


Ham cycle

HAM-CYCLE

  • Finnes det en Hamilton sykel i grafen?

  • Eks.

Øvingsforelesning 12 - Børge Rødsjø


Ham cycle1

HAM-CYCLE

  • Finnes det en Hamilton sykel i grafen?

  • Eks.

    • Ja

Øvingsforelesning 12 - Børge Rødsjø


Tsp travelling salesman problem

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

Øvingsforelesning 12 - Børge Rødsjø


Tsp travelling salesman problem1

TSP (Travelling Salesman Problem)

  • TSP er faktisk NP-hard

  • Dvs. at alle problemer i NPC kan reduseres til TSP

Øvingsforelesning 12 - Børge Rødsjø


Graph k colorability

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!


Og her er resten av npc

Og her er resten av NPC

Øvingsforelesning 12 - Børge Rødsjø


Teori ving 11 gr dighet

Teoriøving 11: Grådighet

  • Oppgave 4

    • Optimal parantessetting

    • Bruk parantesdybden for et flyttall som frekvens

    • Kjør Huffman-koding

    • Gjennomgang?

Øvingsforelesning 12 - Børge Rødsjø


Pengeveksling

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] )


Pengeveksling1

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.


Tvilling dna neste ukes v

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


  • Login