Maks flyt
Download
1 / 14

MAKS FLYT - PowerPoint PPT Presentation


  • 130 Views
  • Uploaded on

MAKS FLYT. Rikke Amilde Løvlid [email protected] Flytnettverk. Et flytnettverk G=(V,E): en rettet graf hver kant har kapasitet c(u,v) ≥0 ingen kant betyr at kapasiteten er null. to spesielle noder, kilden s og sluket t. Flyt. En flyt i G er en funksjon.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' MAKS FLYT' - harken


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
Maks flyt

MAKS FLYT

Rikke Amilde Løvlid

[email protected]


Flytnettverk
Flytnettverk

  • Et flytnettverk G=(V,E):

    • en rettet graf

    • hver kant har kapasitet c(u,v)≥0

    • ingen kant betyr at kapasiteten er null.

    • to spesielle noder, kilden s og sluket t.


Flyt

En flyt i G er en funksjon

  • slik at følgende krav er oppfylt:

  • Kapasitet: For alle , krever vi

  • Symmetri: For alle , krever vi

  • Bevaring av flyt: For alle , krever vi


Eksempel
Eksempel

  • a/b betyr at flyten er a og kapasiteten er b

  • Hvis det bare står et tall c, betyr dette 0/c

  • og

    DETTE PUNKTET ER FEIL! Nettverket oppfyller ikke krav to, dvs f(v1,f2)!=-f(v2,v1). Se neste foil.


Notasjon av flyt i grafen ny
Notasjon av flyt i grafen NY!

  • Når vi implementerer maks flyt og vil se om man kan sende mer fra u til v, skal man bare trenge å sjekke om f(u,v)<c(u,v).

    • Dvs. vi ønsker ikke å måtte gjøre den utregninga som står i siste punkt på forrige slide.)

    • Legg merke til at hvis flyten er negativ og kapasiteten er 0, er flyten mindre enn kapasiteten, så man kan sette på mer flyt.

  • Dette forutsetter at når f(u,v) opdateres, må vi og oppdatere f(v,u).

  • De tallene som står på grafen skal være de samme som ville stått i flyt- og kapasites-matrisa.

    • Eks: Hvis f(u,v)=3 i følge flytmatrisa og c(u,v)=5 i følge kapasitetsmatrisa, skal det på pila fra u til v i grafen stå 3/5. Siden f(u,v)=3, er f(v,u)=-3. Dvs. at på pila fra v til u, skal det stå -3/c(v,u), men det er vanlig å droppe å skrive den negative flyten.

  • Send en mail hvis dette er uklart!


Flere kilder flere sluk
Flere kilder/Flere sluk

  • Hvis vi har flere kilder, lager vi en superkilde med kant til hver av kildene. Kapasiteten fra superkilden til kildene settes til uendelig.

  • Tilsvarende hvis vi har flere sluk.


Residual nettverket
Residual-nettverket,

- består av kanter som tillater mer flyt


Flytfor kende vei
Flytforøkende vei

  • En flytforøkende vei er en vei fra kilden s til sluket t i residual-nettverket, .

  • Vi kan sende en enhet i den flytforøkende veien.


Snitt
Snitt

  • Et snitt (S,T) til et flytnettverk G=(V,E) er en partisjon av nodene V i S og T=V-S slik at kilden s ligger i S og sluket t ligger i T


Maks flyt minimalt snitt
Maks flyt, minimalt snitt

  • Hvis f er en flyt i et flytnettverk G=(V,E) med kilde s og sluk t, har vi at

    • f er en maksimal flyt i G.

    • Residualnettverket har ingen flytforøkende vei.

    • Verdien på flyten fra kilde til sluk, | f | er lik kapasiteten til et eller annet snitt, det minimale snittet.

      betyr det samme.


Ford fulkerson
Ford-Fulkerson

  • For hver kant, sett flyten til null

  • Finn en flytforøkende vei vha. residualnettverket.

  • Sett på all den flyten veie kan tåle.

  • Oppdater flyten.

  • Gå til 2.

  • Når det ikke finnes flere flytforøkende veier, har vi oppnådd maks flyt.

  • Ford-Fulkerson bruker dybde-først-søk for å finne flytforøkende vei..

  • Man oppnår bedre kjøretid med bredde-først-søk (Edmonds-Karp).



Merkelappmetoden
Merkelappmetoden

  • Merkelappen: [Inn/Ut, nabo, (flyt fra s til n)]

  • Algoritmen

    • Sett f(u,v)=0 for alle kanter u,v

    • Startnoden s får merkelapp [- , - , ]

      I = {s} (I er mengden merkede noder)

      s er ubehandlet, setter s til n (skal behandles)

    • n merket og ubehandlet node i I, for alle j gjør:

      • Hvis (n,j) element i kantlista L, j er umerket og f(n,j)<c(n,j) får j merkelappen [Inn , n , min( , c(n,j)-f(n,j)) = ] I = I U {j}

      • Hvis (j,n) element i kantlista L, j umerked og f(j,n)>0, får j merkelappen [Ut, n, min( , f(n,j)) = ]

      • I = I U {j}

    • Hvis n != t, og eksisterer ubehandlet n i I: gå til 3.

    • Hvis n != t: f(i,j) er optimal, avslutt!

    • Flytforøkende vei funnet, oppdater flyten.

    • Fjern merkelappene. Gå til 2.


ad