Ahojte,
tak dnes to bolo fakt huste. Mam popisane asi 3 strany, ani riadok kodu, ziadna zmienka o zlozitosti. Cely cas som sa snazil vymysliet a popisat algoritmus, ktory by tuto ulohu riesil.
Prisiel som toto (v skratke):
1. vyhadzat z toho grafu slepe cesty, vobec s nimi nepracovat
2. ohodnotit graf podla priepustnosti na hranach, najprv som to ohodnocoval smerom od D1 cez vsetkych naslednikov prvej krizovatky, atd (po hladinach) az po D2. Cize ak viedlo viac ciest do jednej krizovatky, priepustnosti sa pre danu krizovatku scitali.
Potom som to obratil (obratil vsetky hrany) a siel od D2 smerom na D1 a znizoval som priepustnosti na zaklade predchadzajucich hran, ktore viedli do krizovatiek. Takze ak bola napr. v povodnom grafe hrana s priepusnostou 50 a za nou hrana s priepusnotsou 1, tak cely usek (obe hrany) mal priepusnost 1. Samozrejme som si povodne priepusnosti pamatal.
3. vyberal som useky s rovnakou povodnou priepustnostou a minimalnymi nakladmi na rozsirenie. Zvysoval som ich priepusnost, kym dany usek nedosiahol priepusnosti predchadzajuceho useku na ceste z D1 a D2 a tym sa predlzil. Toto som opakoval, kym boli peniaze. Vzdy som vyberal najlacnejsi usek.
Teraz zistujem, ze som tam narobil kopu zbytocnych operacii.
Maly priklad som mal vlozit prvok do BVS, takze to by malo byt za jedna.
Ma to niekto podobne riesene alebo je to aspon ciastocne dobre?
Tak vela zdaru.
A este jeden link o tokoch v sietach:
http://www.cs.vsb.cz/hlineny/vyuka/DIM- ... redn11.pdf