Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

courses:a4m33pal:zkouska2014_5 [2014/01/30 20:58]
sioca vytvořeno
courses:a4m33pal:zkouska2014_5 [2025/01/03 18:29] (aktuální)
Řádek 12: Řádek 12:
 ===== Řešení ===== ===== Řešení =====
  
-TODO+Nejprve si vytvořím minimální kostru (kruskal, jarník ...). Zvolil jsem Kruskala, protože množina seřazených hran se mi později hodí. 
 +Celou dobu si držím dvě množiny hran: hrany v kostře a hrany mimo kostru. Obě seřazené.
  
 +Pro každou augmentaci:
 +   * vyberu nejdražší hranu mimo kostru
 +   * označím jí k přidání do kostry
 +   * spustím BFS z obou jejích koncových uzlů a ukládám si předchůdce každého uzlu
 +   * jakmile narazím na uzel, ve kterém už jsem byl, našel jsem vytvořený cyklus
 +   * procházím z nalezeného uzlu zpět k uzlům přidané hrany a aktualizuju si nejlevnější hranu cylku
 +   * nejlevnější hranu označím k odebrání z kostry
 +   * počítám váhu takto vzniklé kostry a označím jako možné následující maximum
 +   * spustím tento cylkus znovu pro druhou největší hranu mimo graf ...
 +
 +Cyklus končí, jakmile by váha možné přidané hrany už nemohla v součtu s aktuální váhou kostry-1 (musím nějakou hranu odebrat tak budu předpokládat,​ že tu nejlevnější) převýšit nebo alespoň vyrovnat momentálně uložené následující maximum.
 +
 +Po skončení cylku přidám označenou drahou a odeberu označenou levnou hranu. Updatuju momentální váhu kostry.
 +
 +Opakujte až do D-té augmentace (minimální kostra se počítá jako první augmentace)
 +
 +Zdroják a data (12/12 - o kousek rychlejší než referenční):​ {{:​courses:​a4m33pal:​src.zip|}}
  
courses/a4m33pal/zkouska2014_5.1391111899.txt.gz · Poslední úprava: 2025/01/03 18:24 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0