Liikenneverkko

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 24. joulukuuta 2019 tarkistetusta versiosta . tarkastukset vaativat 16 muokkausta .

Graafiteoriassa siirtoverkko on  suunnattu graafi , jossa jokaisella reunalla on ei-negatiivinen kapasiteetti ja virtaus . Erotetaan kaksi kärkeä: lähde ja nielu siten, että mikä tahansa verkon toinen kärki sijaitsee polulla kohteeseen , kun taas . Liikenneverkon avulla voidaan mallintaa esimerkiksi tieliikennettä.

Kokonaislukusiirtoverkko  on siirtoverkko, jossa kaikki reunakapasiteetit ovat kokonaislukuja.

Määritelmät

Virtausverkko on suunnattu graafi , jossa

Flow (virtaus) - funktio (joissakin lähteissä myös ), jolla on seuraavat ominaisuudet:

Virtauksen arvo on lähteestä lähtevien virtausten summa tai nielujen virtausten summa .

Maksimivirtausongelmana on löytää sellainen virtaus , että virtauksen arvo on maksimi, ts. sellaista virtaa ei oleolemassa.

Leikkaus (st cut) on pari disjoint asettaa siten, että ja ja . On myös määritelmä, jossa leikkaus on reunojen osajoukko , missä on pisteiden osajoukko siten, että ja .

St -leikkauksen kapasiteetti on kaikkien leikkausreunojen kapasiteettien summa: tai .

Leikkausvirtausarvo  on kaikkien leikattujen reunojen virtausarvojen summa tai . Se ei ylitä leikkauksen läpijuoksua, koska kaikille .

Minimileikkaus  – leikkaus, jonka läpimenoteho on pieni.

Reunan jäännöskapasiteetti (jäännöskapasiteetti) - . Se ei ole aina negatiivinen kaistanleveyden rajoitusehdon vuoksi.

Jäännösverkko on kaavio , jossa  on joukko reunoja, joilla on positiivinen jäännöskapasiteetti. Huippupisteen välinen polku voi olla olemassa jäännösverkossa , vaikka sitä ei olisi alkuperäisessä verkossa. Tämä tapahtuu, kun alkuperäisessä verkossa on paluupolku ja virtaus sitä pitkin on positiivinen.

Lisäävä (jäännös, täydentävä) polku (augmenting path) on polku jäännösverkossa, jossa ja Alla on todistettu, että virtaus on maksimaalinen silloin ja vain, jos jäännösverkossa ei ole lisättävää polkua.

Ominaisuudet

Virtaus minkä tahansa leikkauksen läpi on yhtä suuri kuin lähteestä lähtevien virtausten summa.
Todistus : olkoon leikkaus (A,B). Tarkastellaan kaikkien A:lle kuuluvien pisteiden virtausten summaa. Se on yhtä suuri kuin

Ensimmäinen minkä tahansa pisteparin (u, v) summista sisältää kaksi termiä f(u, v) ja f(v, u), jotka ovat absoluuttisesti yhtä suuret ja etumerkillisesti vastakkaiset. Siksi tämä summa on nolla. Toinen summa on virtaus leikkauksen (A,B) läpi. Siksi kaikkien A:hen kuuluvien kärkien kaikkien virtausten summa on yhtä suuri kuin leikkauksen läpi kulkeva virtaus. Toisaalta virtausten summa mistä tahansa kärjestä, paitsi s ja t, on yhtä suuri kuin nolla ja . Siksi kaikkien A:hen kuuluvien kärkien kaikkien virtojen summa on yhtä suuri kuin s:stä peräisin olevien virtojen summa. Siksi virtaus leikkauksen (A,B) läpi on yhtä suuri kuin s:stä saatujen virtausten summa, mikä oli todistettava.

Lähteestä lähtevien virtausten summa on yhtä suuri kuin nielujen virtausten summa.
Todiste : Harkitse leikkausta . Tämän leikkauksen läpi kulkeva virtaus on yhtä suuri kuin viemäriin virtausten summa. Toisaalta juuri todistetun mukaan virtaus tämän (ja minkä tahansa muun) leikkauksen läpi on yhtä suuri kuin lähteestä lähtevien virtausten summa. Lause on todistettu.

Maksimivirtaus on positiivinen, jos ja vain, jos lähteestä nieluun on reitti positiivisen kapasiteetin reunoja pitkin.
Todistus : Olkoon sellainen polku P olemassa. Olkoon c P:hen kuuluvien reunojen minimikapasiteetti. Olkoon virtaus yhtä suuri kuin c kaikilla P:n reunoilla ja nolla kaikilla muilla reunoilla. Silloin kokonaisvirtaus lähteestä on yhtä suuri kuin c, eli se on positiivinen. Oletetaan nyt, että sellaista polkua ei ole, eli t ei ole saavutettavissa pisteestä s positiivisen kapasiteetin reunoja pitkin. Olkoon A joukko pisteitä, jotka ovat saavutettavissa s:stä tällaisia ​​reunoja pitkin, B on joukko niitä, joita ei saavuteta. Sitten, koska , , niin (A,B) on leikkaus. Ei myöskään ole reunaa (a, b), jolla on positiivinen kapasiteetti siten, että , , muuten b olisi saavutettavissa pisteestä s. Siksi osan (A,B) läpijuoksu on yhtä suuri kuin nolla, ja siten virtaus sen läpi on aina nolla. Siksi lähteestä lähtevien virtojen summa on aina nolla.

Virtaus on maksimaalinen silloin ja vain, jos jäännösverkossa ei ole lisäyspolkua. Todistus : Olkoon jäännösverkossa lisäyspolku ja  olkoon jäännösverkossa kuuluvien reunojen jäännöskapasiteetin minimi . Lisää kaikkien parien kohdalla ja vähennä . Lisäsimme lähteestä tulevaa kokonaisvirtausta , joten se ei ollut maksimi. Nyt päinvastoin oletetaan, ettei sellaista polkua ole. Osoittakaamme ristiriitaisesti, että virtaus alkuperäisessä verkossa tarjoaa suurimman kokonaisvirtauksen kohteesta . Jos näin ei ole, on olemassa virtaus , joka tarjoaa suuremman kokonaisvirtauksen kohteesta . On helppo nähdä, että  se on virtaus jäännösverkossa, joka tarjoaa positiivisen kokonaisvirtauksen kohteesta . Siksi jäännösverkossa on polku lähteestä nieluon, eli lisäyspolku. Meillä on ristiriita.

Ford-Fulkersonin lause . Maksimivirtauksen arvo on yhtä suuri kuin minimiosan kapasiteetti.
Todiste : virtausten summa kohteestaon yhtä suuri kuin virtaus minkä tahansa leikkauksen läpi, mukaan lukien pienin, joten se ei ylitä minimileikkauksen läpimenoa. Siksi maksimivirtaus ei ole suurempi kuin minimileikkauksen läpimeno. On vielä todistettava, että hän ei ole vähemmän kuin hän. Anna virtauksen olla maksimi. Sitten jäännösverkossa nielu ei ole tavoitettavissa lähteestä. Antaa olla joukko pisteitä, jotka ovat tavoitettavissa lähteestä jäännösverkossa ja jotka eivät ole tavoitettavissa. Sitten, koska,,on leikkaus. Lisäksi jäännösverkossa ei ole reunaapositiivisella kapasiteetilla, jolla,, muuten se olisitavoitettavissa kohteesta. Siksi alkuperäisessä verkossa virtaus mitä tahansa tällaista reunaa pitkin on yhtä suuri kuin sen kapasiteetti, ja näin ollen virtaus leikkauksen läpion yhtä suuri kuin sen kapasiteetti. Mutta virtaus minkä tahansa leikkauksen läpi on yhtä suuri kuin lähteestä tuleva kokonaisvirtaus, joka tässä tapauksessa on yhtä suuri kuin suurin virtaus. Tämä tarkoittaa, että suurin virtaus on yhtä suuri kuin leikkauksen läpimeno, joka ei ole pienempi kuin minimileikkauksen läpimeno. Lause on todistettu.

Esimerkki

Tässä näkyy siirtoverkko, jossa on lähde , nielu ja neljä lisäsolmua. Virtaus ja suorituskyky on merkitty vastaavasti . Kaistanleveys lähteestä nieluun on 5, mikä on helppo nähdä, koska kaistanleveys lähteestä on 5, joka on myös .

Yllä olevan virtauksen jäännösverkko on esitetty alla. Huomaa, että joissakin reunoissa on rajoitettu kapasiteetti, kun taas alkuperäisessä verkossa se on nolla. Esimerkiksi kylkiluu . Tämä virtaus ei ole maksimi. On olemassa kasvavia polkuja ja . Ensimmäisen raidan jäännöskapasiteetti . Lisäyspolkua ei ole lähdeverkossa, mutta sen läpi on mahdollista ohjata oikea virtaus.

Sovellus

Yleisin esimerkki kuljetusverkkojen käytöstä on löytää maksimivirtaus , mikä tarkoittaa maksimaalista kokonaisvirtausta kohteesta - Verkon suurimman virtauksen löytämiseksi voidaan käyttää Ford-Fulkerson-algoritmia , Edmonds-Karp- algoritmia ja muita.

Vähimmäiskustannuksissa virtausongelmassa kullekin reunalle on määritetty kustannukset , kustannukset, jotka aiheutuvat virtauksen lähettämisestä reunan läpi . Tehtävänä on lähettää tietty määrä virtausta kohteesta kohteeseen alhaisin kustannuksin.

Katso myös

Kirjallisuus

Linkit (englanniksi)