Maks Flyt og NPkompletthet
Flyt - Intro Mange av oppgavene om flyt handler om å se at Dette kan vi løse som et flytproblem. Resten er som regel kortsvarsoppgaver, og går på grunnleggende forståelse av flyt.
Flyt - Viktige begreper Kapasitet Flyt Maks flyt Minimalt snitt Residualkapasitet Flytforøkende sti Oppheving av flyt Ford-Fulkerson Edmonds-Karp
Kont 2011 - Oppg. 3b) Anta at du har oppgitt en rettet, asyklisk graf (DAG) G = (V, E), samt noder s og t i V. a) Hvordan ville du telle antall mulige stier fra s til t i G? -> Dynamisk Programmering b) Hvordan vil du telle (det maksimale) antall stier som kan følges samtidig fra s til t, hvis disse stiene ikke kan dele kanter? -> Kjør maks-flyt fra s til t med kapasiteter på 1.
Høst 2011 - Oppg. 3c) Du er teaterregissør, og skal lage en øvingsplan en oversikt over hvilke skuespillere som skal møte på hvilke dager under innøvingen av et teaterstykke. Du har oppgitt følgende: Et sett med skuespillere, der skuespiller i er betalt for å møte på D[i] øvingsdager (og altså ikke kan møte flere dager enn dette). Et sett med scener, der scene i skal jobbes med på S[i] av øvingsdagene. Summen av S[i] over alle scenene er lik antall dager tilgjengelig. Informasjon om hvilke skuespillere som har anledning til å møte hvilke av dagene. (Enkelte er altså opptatt på noen av dagene.) Informasjon om hvilke skuespillere som er med i hvilke scener (og dermed må møte hvis scenen skal jobbes med). Du ønsker å utarbeide en algoritme som lager en øvingsplan, det vil si, som avgjør hvilken scene det skal jobbes med på hver av øvingsdagene. Dersom det er umulig å få til en slik plan skal algoritmen oppgi dette. c) Beskriv kort en algoritme som løser problemet. (Bruk gjerne en figur i svaret.)
Høst 2011 - Oppg. 3c) Nøkkelsetning:... avgjør hvilken scene det skal jobbes med på hver av øvingsdagene Ting fra to grupper som skal kobles sammen to og to -> Bipartitt matching! Dette kan løses som et flytproblem. Hvordan sette opp flytnettverket? Lag kilde, sluk og noder for dager/scener. En flytenhet er en dag med jobbing. Da må det gå S[i] flytenheter gjennom scene i. Det kan kun gå 1 flytenhet gjennom en gitt dag. En scene kan kun jobbes med på en gitt dag hvis alle relevante skuespillere er ledige. En ting til man må huske for å få full uttelling: Sjekk at skuespillerene blir betalt for minst det antall dager de må jobbe!
NP-kompletthet Også her har man mange kortsvarsoppgaver. Dere MÅ forstå begrepene på neste slide. De lengre oppgavene er ofte på formen Vis at sånn og sånn problem er NP-komplett. Eksempler på hvordan gjøre dette i kap. 34.5 Mulig dette ikke er pensum lenger...
NP-kompletthet - Viktige Begreper P NP Reduksjon Verifisering vs. løsing NP-komplett NP-hard Dere må også kjenne til en del NP-komplette problemer: Circuit-SAT, SAT, 3-CNF-SAT Clique Vertex cover Hamiltonian cycle Traveling salesman Subset-sum/0-1 knapsack Longest simple path
Høst 2010 - Oppg. 3 Tenk deg at du står overfor tre beslutningsproblemer, Foo, Bar og Baz. Alle tre problemer ligger i klassen NP. Du vet at Foo ligger i NPC og at Baz ligger i P. Du ønsker å prøve å konstruere polynomiske reduksjoner mellom noen av disse for å komme frem til ulike konklusjoner. a) Hvilket problem vil du redusere til hvilket for å vise at Bar P? Forklar kort. b) Hvilket problem vil du redusere til hvilket for å vise at Bar NPC? Forklar kort. c) Hvilket problem vil du redusere til hvilket for å vise at P = NP? Forklar kort.
Høst 2012 - Oppg. i) En venn av deg har et problem som består i å avgjøre om en graf G inneholder en sykel av lengde k (målt i antall kanter), for et gitt heltall k. Vennen din vil vise at problemet er NP-komplett, og vil gjøre det ved å la grafen H være en sykel av lengde k, og så løse sykelproblemet ved hjelp av subgrafisomorfismeproblemet. Enkelt svar: Reduksjon feil vei! De viser en reduksjon til et NP-komplett problem, og har dermed ikke vist annet enn at problemet er i NP Tok med denne oppgaven fordi slike feil er veldig fort gjort å gjøre selv. PS. Vi kan vise at problemet er NP-komplett ved å redusere fra Hamiltonsykel-problemet.
Kont 2011 - Oppg. 4a) Følgende oppgave ble gitt ved fjorårets kontinuasjonseksamen: «Du skal invitere venner til fest. Du vurderer et sett med n kandidater, men du vet at hver av dem bare vil ha det hyggelig dersom han eller hun kjenner minst k andre på festen. (Du kan anta at dersom A kjenner B så kjenner B automatisk A.) Beskriv en algoritme som finner en størst mulig delmengde av de n vennene dine der alle kjenner minst k av de andre, dersom en slik delmengde eksisterer. Forklar kort hvorfor algoritmen er korrekt og optimal.» Du ønsker nå å arrangere en liten sammenkomst, og vil dermed løse samme problem, bortsett fra at du vil finne en minst mulig delmengde der alle kjenner minst k av de andre. a) Vis (dvs. forklar kort) at det er urealistisk å løse denne nye varianten av oppgaven. Urealistisk å løse = NP-hard Reduksjon fra klikkproblemet: Finn den minimale delmengden der alle kjenner minst k-1 av de andre. Dersom denne delmengden har akkurat k elementer, har grafen en klikk med størrelse k.