[Lemon-commits] [lemon_svn] jacint: r145 - hugo/trunk/src/work/jacint
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:37:47 CET 2006
Author: jacint
Date: Sat Feb 21 22:40:59 2004
New Revision: 145
Added:
hugo/trunk/src/work/jacint/READ_FLOW
Log:
leiras
Added: hugo/trunk/src/work/jacint/READ_FLOW
==============================================================================
--- (empty file)
+++ hugo/trunk/src/work/jacint/READ_FLOW Sat Feb 21 22:40:59 2004
@@ -0,0 +1,55 @@
+ Heurisztikak:
+
+gap: ha egy 0<i<n szint kiurul, az [i+1,n-1] szinten levoket felrakjuk az
+ n szintre, ezzel nem sertve a tavolsagcimke tulajdonsagot
+
+highest label: a legnagyobb szintu aktivon pumpalunk (2 phase eseten
+ persze az n alattiak kozul a legnagyobb szintun)
+
+bound_decrease: nem highest label. Egy b valtozoval lepegetunk lefele
+ mig 0-hoz erunk, amikor megemeljuk n-ig (vagy k-ig ha
+ az nyilvan volt tartva). Mindig egy b szintu aktivon
+ pumpalunk (ha van ilyen, ha nem: --b). Relabel utan tehat
+ nem megyunk a csucs utan, ot majd csak b ujboli felemelese utan
+ tudjuk pumpalni. Meglepoen hatekony.
+
+highest label + bound_decrease: preflow.h-ban H0*n relabel-enkent a
+ bound_decrease, mig H1*n relabel-enkent a highest label valtozatot
+ futtatjuk az 1. fazisban (a masodik fazis igen gyors az elsohoz
+ kepest, igy itt sima highest label fut). Ez igen hatekonynak
+ tunik, ugy latszik, hogy egyesul a ket eljaras elonye. Teszteles
+ alapjan a H0=20, H1=1 valasztas elfogadhatonak tunik.
+
+2 phase: az elso fazisban csak az [1,n-1] szintu aktivokon pumpalunk,
+ es alkalmazzuk gap-et. Ha alul nincs aktiv, fentrol kifujjuk
+ s-bol a fenti csucsokat a segedgraf egy vissza bfs-evel, es
+ visszacsurgatunk ugyanugy, mint az elso fazisban. Az elso fazis
+ utan az n. szint alatti csucsok egy min vagast adnak, es t
+ excesse a max folyamertek.
+
+level_list: kezzel irunk egy listat minden szintre az ottani csucsokrol.
+ Ha meg egy k valtozoban nyilvantartjuk a legnagyobb nemures
+ szintet az [1,n] intervallumban, akkor nagyon gyorsan tudunk
+ gap eseten a gap feletti csucsokat az n szintre tenni. Ilyenkor
+ arra sincs szukseg (ami maskor igen hasznos), hogy nyilvantartsuk
+ melyik szinten hany csucs van.
+
+
+ A LEDA flowja
+
+max_flow.t tartalmazza a LEDA flowjait, a legutolso fuggveny,
+MAX_FLOW_T a default. Semmi kulonoset nem csinal, 2 fazisu highest label,
+gap eseten bfs-sel szivja fel a csucsokat az n szintre (ez igen rossz
+megoldas suru grafnal). Nyilvan tartja az aktivokat egy valamilyen stackben,
+es hogy melyik szinten hany pont van. 5*m lepesenkent (h=5 defaultbol)
+csinal egy bfs-t vagy t-bol (1. fazis) vagy s-bol (2. fazis). Van benne
+par rossz megoldas, pl. az elsorol a 2. fazisra valo atteresnel nem kell
+egy bfs a t-bol.
+
+
+
+ Egy erdekes tapasztalat:
+
+Meglepo modon nagyon sokat gyorsitott amikor az stl stack-jet kezzel
+megirtam. Ez talan a G.id(NodeIt v) hatekonysaganak koszonheto.
+
More information about the Lemon-commits
mailing list