[Lemon-commits] [lemon_svn] jacint: r196 - hugo/trunk/src/work/jacint
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:38:03 CET 2006
Author: jacint
Date: Mon Mar 1 18:24:34 2004
New Revision: 196
Added:
hugo/trunk/src/work/jacint/README_FLOW
Removed:
hugo/trunk/src/work/jacint/READ_FLOW
hugo/trunk/src/work/jacint/dijkstra.hh
Modified:
hugo/trunk/src/work/jacint/makefile
Log:
nagytakaritas
Added: hugo/trunk/src/work/jacint/README_FLOW
==============================================================================
--- (empty file)
+++ hugo/trunk/src/work/jacint/README_FLOW Mon Mar 1 18:24:34 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.
+
Modified: hugo/trunk/src/work/jacint/makefile
==============================================================================
--- hugo/trunk/src/work/jacint/makefile (original)
+++ hugo/trunk/src/work/jacint/makefile Mon Mar 1 18:24:34 2004
@@ -3,44 +3,15 @@
CXXFLAGS = -W -Wall -ansi -pedantic
LEDAROOT = /ledasrc/LEDA-4.1
-BINARIES = preflow_jgraph
+BINARIES = preflow
all: $(BINARIES)
makefile: .depend
sinclude .depend
-
-
-preflow_jgraph:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_jgraph preflow_jgraph.cc
-
-preflowalpar:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../alpar -I../jacint -o preflowalpar preflowalpar.cc
-
-preflow_max_flow:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_max_flow preflow_max_flow.cc
-
preflow:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow preflow.cc
-
-preflow_hl0:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_hl0 preflow_hl0.cc
-
-preflow_hl1:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_hl1 preflow_hl1.cc
-
-preflow_hl2:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_hl2 preflow_hl2.cc
-
-preflow_hl3:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_hl3 preflow_hl3.cc
-
-preflow_hl4:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_hl4 preflow_hl4.cc
-
-preflow_param:
- $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../jacint -o preflow_param preflow_param.cc
+ $(CXX3) $(CXXFLAGS) -O3 -I. -I.. -I../marci -o preflow preflow.cc
clean:
$(RM) *.o $(BINARIES) .depend
More information about the Lemon-commits
mailing list