]> mj.ucw.cz Git - ads2.git/commitdiff
Prednaska o Dinicove algoritmu dosahla sve prvni verze.
authorMartin Mares <mj@ucw.cz>
Wed, 31 Oct 2007 08:32:29 +0000 (09:32 +0100)
committerMartin Mares <mj@ucw.cz>
Wed, 31 Oct 2007 08:32:29 +0000 (09:32 +0100)
3-dinic/3-dinic.tex
3-dinic/sitc.eps [new file with mode: 0644]
all/Makefile

index d6cb6709c44a8ea68cf309feeb412e6ee615a7a2..181b24d02b960af2210f7e8a3ed8a9fb7012fc97 100644 (file)
@@ -1,26 +1,34 @@
 \input ../lecnotes.tex
 
-\prednaska{2}{Toky v sítích (2. èást)}{(zapsali Jakub Melka, Petr Musil)}
+\prednaska{3}{Toky v sítích (2. èást)}{(zapsali Jakub Melka, Petr Musil)}
 
 Na minulé pøedná¹ce jsme si ukázali \s{Ford-Fulkersonùv} algoritmus. O nìm víme, ¾e kdy¾ se zastaví, tak \uv{vydá} maximální tok. Jen¾e on se zastavit nemusí (napøíklad pro sítì s reálnými kapacitami), nebo trvá pøíli¹ dlouho.
+Uká¾eme si lep¹í algoritmus, {\I Dinicùv}, který má výraznì men¹í slo¾itost a zastaví se v¾dy. 
 
-\s{Definice:} Sí» rezerv $R$ k síti $S=(V,E,z,s,c)$ a toku $f$ v $S$ je  sí» $R=(V,E\cup\overleftarrow{E}, z,s, r)$, pro $\forall e\in E : $ 
+
+Idea je následující : v algoritmu budeme pou¾ívat {\I sí» rezerv }, která bude obsahovat \uv{rezervy} - kolik je¹tì po dané hranì mù¾eme pustit, aby to nepøekroèilo její kapacitu.
+Sí» rezerv pak budeme urèitým zpùsobem vyu¾ívat k vylep¹ování toku.
+
+\s{Definice:} {\I Sí» rezerv }$R$ k síti $S=(V,E,z,s,c)$ a toku $f$ v $S$ je  sí» $R=(V,E\cup\overleftarrow{E}, z,s, r)$, pro $\forall e\in E : $ 
 \itemize\ibull
-\: $r(e)=c(e)-f(e)$
-\: $r(\overleftarrow{e})=f(e)$
+\:$r(e)=c(e)-f(e)$
+\:$r(\overleftarrow{e})=f(e)$
 \endlist
-Kde hrana $\overleftarrow{e}$ vznikne z hrany $e$ tak, ¾e se zorientuje opaèným smìrem. V pøípadì, ¾e tam u¾ opaènì orientovaná hrana je, pak vznikne multigraf\foot{Graf, který mù¾e mít mezi dvìma vrcholy více stejnì orientovaných hran} s multiplikací maximálnì 2.
+\>kde hrana $\overleftarrow{e}$ vznikne z hrany $e$ tak, ¾e se zorientuje opaèným smìrem. V pøípadì, ¾e tam u¾ opaènì orientovaná hrana je, pak vznikne multigraf\foot{Graf, který mù¾e mít mezi dvìma vrcholy více stejnì orientovaných hran} s multiplicitou maximálnì 2.
+
 
-\s{Vìta:} Je-li $f$ tok v síti $S$ a $g$ tok v pøislu¹né síti rezerv, pak $\exists f'$ v $S$ takový, ¾e $\mid f'\mid = \mid f\mid + \mid g\mid$.
+\>Musíme ale zjistit, zda vùbec jde vylep¹ovat tok pomocí sítì rezerv. K tomu nám bude slou¾it následující vìta :
+
+\s{Vìta:} Je-li $f$ tok v síti $S$ a $g$ tok v pøíslu¹né síti rezerv, pak $\exists f'$ v $S$ takový, ¾e $\vert f'\vert = \vert f\vert + \vert g\vert$.
 
 \proof
 Rozebereme si jednotlivé pøípady pro $\forall e\in E$. 
 \numlist\nalpha
-\: $g(e)=g(\overleftarrow{e})=0 \Rightarrow f'(e)=f(e) $
-\: $g(e)>0$ a zároveò $g(\overleftarrow{e})=0\Rightarrow f'(e) = f(e) + g(e)$
-\: $g(e)=0$ a zároveò $g(\overleftarrow{e})>0\Rightarrow f'(e) = f(e) - g(\overleftarrow{e})$
-\: nastává cirkulace, odeèteme $\varepsilon$ od obou hran $e$ a $\overleftarrow{e}$,
-kde $\varepsilon=\min(\lbrace g(e), g(\overleftarrow{e}) \rbrace )$
+\:$g(e)=g(\overleftarrow{e})=0 \Rightarrow f'(e)=f(e) $
+\:$g(e)>0$ a zároveò $g(\overleftarrow{e})=0\Rightarrow f'(e) = f(e) + g(e)$
+\:$g(e)=0$ a zároveò $g(\overleftarrow{e})>0\Rightarrow f'(e) = f(e) - g(\overleftarrow{e})$
+\:nastává cirkulace, odeèteme tedy $\varepsilon$ od obou hran $e$ a $\overleftarrow{e}$,
+kde $\varepsilon=\min(\lbrace g(e), g(\overleftarrow{e}) \rbrace )$. Pøevedeme tím tento pøípad na jeden ze tøí uvedených vý¹e.
 \endlist
 
 Je v¹ak $f'$ tok? Tok $f'$ urèitì nemù¾e klesnout pod $0$, proto¾e se odeèítá jen v pøípadì $3$, a tam je z definice vidìt, ¾e to pod $0$ klesnout nemù¾e. Kapacita také nemù¾e
@@ -28,33 +36,44 @@ b
 
 \qed
 
+\>Tato vìta nám øíká, ¾e pokud existuje je¹tì tok v síti rezerv, pak jde tok v standardní síti je¹tì zvý¹it o tento tok v síti rezerv. Pokud bude tok v standardní síti maximální, tak tok v síti rezerv bude nulový.
+
 \s{Dinicùv algoritmus}
 
 \algo
-\: $f\leftarrow$ nulový tok 
-\: sestrojíme sí» rezerv $R$
-\: $l$ je délka nejkrat¹í cesty $z\rightarrow s$ cesty v $R$
-\: kdy¾ $l=\infty$, tak skonèi
-\: sestrojíme proèi¹tìnou sí» $C$\foot{Ponecháme vrcholy a hrany z $R$, které le¾í na nejkrat¹ích $z\rightarrow s$ cestách} 
-\: $g\leftarrow$ blokující tok v $C$
-\: zlep¹íme tok $f$ podle $g$ a jdi na bod 2
+\:$f\leftarrow$ nulový tok 
+\:sestrojíme sí» rezerv $R$
+\:$l$ je délka nejkrat¹í cesty $z\rightarrow s$ cesty v $R$
+\:kdy¾ $l=\infty$, tak skonèi
+\:sestrojíme proèi¹tìnou sí» $C$ a to následujícím zpùsobem%\foot{Ponecháme vrcholy a hrany z $R$, které le¾í na nejkrat¹ích $z\rightarrow s$ cestách} 
+\::spustíme BFS\foot{Breadth-First Search, standardní prohledávání do ¹íøky} algoritmus ze zdroje
+\::BFS nám rozdìlí uzly do vrstev, vyhodíme hrany za spotøebièem a slepé ulièky
+\:$g\leftarrow$ blokující tok v $C$ takto :
+\::$g\leftarrow$ nulový tok
+\::Dokud existuje cesta od zdroje ke spotøebièi
+\:::Nasytíme cestu - po¹leme po ní tolik, aby obsahovala nasycenou hranu
+\:::Sma¾eme nasycené hrany a doèistíme sí» (sí» nyní mù¾e obsahovat slepé ulièky díky smazání nasycených hran)
+\:zlep¹íme tok $f$ podle $g$ a jdeme na bod 2
 \endalgo
 
+\>Provedeme podrobnou analýzu algoritmu z hlediska slo¾itosti, a uvidíme, ¾e má slo¾itost $O(n^2m)$. Nejprve analyzujeme hledání
+blokujícího toku, pak se podíváme, kolik fází maximálnì mù¾e Dinicùv algoritmus mít.
+
 \figure{sitc.eps}{Pøíklad proèi¹tìné sítì}{\hsize}
 
-\s{Postup tvorby proèi¹tìné sítì :} prohledáním do ¹íøky vytvoøíme vrstvy, zahodímì ty za spotøebièem, ponecháme
+\s{Postup tvorby proèi¹tìné sítì podrobnìji :} prohledáním do ¹íøky vytvoøíme vrstvy, zahodíme ty za spotøebièem, ponecháme
 pouze hrany mezi $C_i$ a $C_{i+1}$. Je¹tì musíme odstranit slepé ulièky - cesty, které konèí v $C_m : m < l$, proto¾e ty urèitì nejsou souèástí nejkrat¹í $z\rightarrow s$ cesty.
 
 Proèi¹tìní zvládneme v lineárním èase $O(n+m)$, v pøípadì souvislého grafu pouze $O(m)$. 
 
-\s{Definice:} $f$ je blokující tok, pokud na ka¾dé orientované cestì $P$ ze zdroje do spotøebièe $\exists e\in P : f(e)=c(e)$.
+\s{Definice:} $f$ je {\I blokující tok}, pokud na ka¾dé orientované cestì $P$ ze zdroje do spotøebièe $\exists e\in P : f(e)=c(e)$.
 
 \s{Algoritmus hledání blokujícího toku}
 \algo
-\: $g\leftarrow$ nulový tok
-\: Dokud $\exists z\rightarrow s$ cesta $P$ v síti $C$ :
-\:: $\varepsilon = \min\limits_{e\in P}\lbrace c(e)-f(e) \rbrace$
-\:: $\forall e \in P :g(e)=g(e)+\varepsilon$, pokud $g(e)=r(e)$ tak sma¾eme hranu $e$ - proèistíme sí».
+\:$g\leftarrow$ nulový tok
+\:Dokud $\exists z\rightarrow s$ cesta $P$ v síti $C$ :
+\::$\varepsilon = \min\limits_{e\in P}\lbrace c(e)-f(e) \rbrace$
+\::$\forall e \in P :g(e)=g(e)+\varepsilon$, pokud $g(e)=r(e)$ tak sma¾eme hranu $e$ - proèistíme sí».
 \endalgo
 
 Pøi ka¾dém prùchodu se sma¾e v¾dy alespoò 1 hrana, tedy maximálnì $m$-krát provádíme $O(n)$. Èi¹tìní pak maximálnì sma¾e celý graf, jedno mazání nás stojí konstantní èas, tedy celková slo¾itost tohoto algoritmu bude $O(m\cdot n)$.
@@ -63,13 +82,13 @@ P
 \s{Lemma: } Pøi ka¾dé fázi $l$ vzroste alespoò o jedna.
 
 \proof
-Uva¾me sí» $R$, rozdìlenou na vrstvy, je¹tì pøed proèi¹tìním. Po proèi¹tìní, nìkteré hrany zmizí. Pøibýt mohou jen zrcadlové 
+Uva¾me sí» $R$, rozdìlenou na vrstvy, je¹tì pøed proèi¹tìním. Po proèi¹tìní nìkteré hrany zmizí. Pøibýt mohou jen zrcadlové 
 protìj¹ky ji¾ existujících hran (døíve tam byl tok $O$, zvý¹ením vznikne zrcadlová hrana).
 
 Uva¾me cestu $P$ délky $\leq l$ ze $z\rightarrow s$ :
 \numlist\nalpha
-\: $\not\in P\Rightarrow$ zablokování
-\: $\in P\Rightarrow$ délka $ > l$
+\:$\not\in P\Rightarrow$ zablokování
+\:$\in P\Rightarrow$ délka $ > l$
 \endlist
 \qed
 
@@ -79,7 +98,14 @@ Uva
 Plyne pøímo z pøedchozího lemmatu a slo¾itosti algoritmu hledání blokujícího toku.
 \qed
 
-Takto napsaný algoritmus je pro implementaci pøíli¹ pracný. Napøíklad namísto pøepoèítávání tokù na rezervy a naopak. Mù¾eme
+\s{Vìta: } Dinicùv algoritmus najde v¾dy maximální tok.
+
+\proof
+Nech» algoritmus probìhne. Skonèit mù¾e jedinì tehdy, kdy¾ nenajde ¾ádnou cestu ze zdroje do spotøebièe v síti rezerv, kterou by
+mohl být tok vylep¹en. Tedy tok musí být nutnì maximální.
+\qed
+
+Takto napsaný algoritmus je pro implementaci pøíli¹ pracný. Napøíklad namísto pøepoèítávání tokù na rezervy a naopak, mù¾eme
 minimálnì vnitøní cyklus poèítat jenom v rezervách. Proèi¹tìní se dá dìlat jednou namísto $2\times$. Napøíklad prohledávat do hloubky a mazat pøi vracení se z vrcholù. Dokonce i hledání blokujícího toku lze øe¹it v rámci prohledávání do hloubky, 
 cesta si pamatuje minimum rezerv a pøi vracení se pak hned rezervu sni¾uje.
 
diff --git a/3-dinic/sitc.eps b/3-dinic/sitc.eps
new file mode 100644 (file)
index 0000000..ef69b1f
--- /dev/null
@@ -0,0 +1,192 @@
+%!PS-Adobe-3.0 EPSF-3.0 
+%%BoundingBox: 0 0 475 173
+%%Pages: 0
+%%Creator: Sun Microsystems, Inc.
+%%Title: none
+%%CreationDate: none
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+%%BeginResource: SDRes
+/b4_inc_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
+/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
+/bdef {bind def} bind def
+/c {setgray} bdef
+/l {neg lineto} bdef
+/rl {neg rlineto} bdef
+/lc {setlinecap} bdef
+/lj {setlinejoin} bdef
+/lw {setlinewidth} bdef
+/ml {setmiterlimit} bdef
+/ld {setdash} bdef
+/m {neg moveto} bdef
+/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
+/r {rotate} bdef
+/t {neg translate} bdef
+/s {scale} bdef
+/sw {show} bdef
+/gs {gsave} bdef
+/gr {grestore} bdef
+/f {findfont dup length dict begin
+{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
+currentdict end /NFont exch definefont pop /NFont findfont} bdef
+/p {closepath} bdef
+/sf {scalefont setfont} bdef
+/ef {eofill}bdef
+/pc {closepath stroke}bdef
+/ps {stroke}bdef
+/pum {matrix currentmatrix}bdef
+/pom {setmatrix}bdef
+/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+%%EndPageSetup
+pum
+0.02833 0.02826 s 
+0 -6120 t
+/tm matrix currentmatrix def
+gs
+tm setmatrix
+-601 -423 t 
+1 1 s 
+601 423 m 17365 423 l 17365 6542 l 601 6542 l 601 423 l eoclip newpath
+gs
+601 423 m 17365 423 l 17365 6542 l 601 6542 l 601 423 l eoclip newpath
+601 423 m 17366 423 l 17366 6543 l 601 6543 l 601 423 l eoclip newpath
+0 lw 1 lj 0.000 c 3569 5040 m  3293 5040 3069 4256 3069 3290 ct 3069 2324 3293 1540 3569 1540 ct 
+3845 1540 4069 2324 4069 3290 ct 4069 4256 3845 5040 3569 5040 ct pc
+5603 5040 m  5327 5040 5103 4256 5103 3290 ct 5103 2324 5327 1540 5603 1540 ct 
+5879 1540 6103 2324 6103 3290 ct 6103 4256 5879 5040 5603 5040 ct pc
+7702 5040 m  7426 5040 7202 4256 7202 3290 ct 7202 2324 7426 1540 7702 1540 ct 
+7978 1540 8202 2324 8202 3290 ct 8202 4256 7978 5040 7702 5040 ct pc
+12162 5040 m  11886 5040 11662 4256 11662 3290 ct 11662 2324 11886 1540 12162 1540 ct 
+12438 1540 12662 2324 12662 3290 ct 12662 4256 12438 5040 12162 5040 ct pc
+14123 5040 m  13847 5040 13623 4256 13623 3290 ct 13623 2324 13847 1540 14123 1540 ct 
+14399 1540 14623 2324 14623 3290 ct 14623 4256 14399 5040 14123 5040 ct pc
+1751 3540 m  1613 3540 1501 3428 1501 3290 ct 1501 3152 1613 3040 1751 3040 ct 
+1889 3040 2001 3152 2001 3290 ct 2001 3428 1889 3540 1751 3540 ct pc
+gs
+gs
+pum
+1580 3509 t
+12 0 m  12 0 12 0 12 -45 ct 12 -45 12 -45 221 -287 ct 197 -286 176 -285 158 -285 ct 
+158 -285 158 -285 24 -285 ct 24 -285 24 -285 24 -330 ct 24 -330 24 -330 293 -330 ct 
+293 -330 293 -330 293 -293 ct 293 -293 293 -293 115 -84 ct 115 -84 115 -84 81 -45 ct 
+106 -47 129 -48 151 -48 ct 151 -48 151 -48 303 -48 ct 303 -48 303 -48 303 0 ct 
+303 0 303 0 12 0 ct p ef
+pom
+gr
+gr
+15851 3540 m  15713 3540 15601 3428 15601 3290 ct 15601 3152 15713 3040 15851 3040 ct 
+15989 3040 16101 3152 16101 3290 ct 16101 3428 15989 3540 15851 3540 ct pc
+gs
+gs
+pum
+15682 3509 t
+20 -100 m  20 -100 20 -100 75 -107 ct 78 -85 87 -68 101 -57 ct 115 -45 135 -39 161 -39 ct 
+187 -39 206 -44 218 -55 ct 231 -65 237 -77 237 -91 ct 237 -104 231 -114 220 -121 ct 
+213 -126 193 -132 163 -140 ct 122 -150 93 -159 77 -167 ct 61 -174 49 -185 41 -198 ct 
+33 -211 29 -226 29 -242 ct 29 -257 32 -270 39 -283 ct 46 -295 55 -306 67 -314 ct 
+75 -320 87 -326 102 -330 ct 117 -335 134 -337 151 -337 ct 177 -337 200 -333 219 -326 ct 
+239 -318 253 -308 263 -296 ct 272 -283 278 -266 282 -245 ct 282 -245 282 -245 227 -238 ct 
+225 -255 217 -268 205 -277 ct 193 -286 177 -291 155 -291 ct 129 -291 111 -287 100 -278 ct 
+89 -270 83 -260 83 -249 ct 83 -241 85 -235 90 -229 ct 94 -223 102 -218 111 -214 ct 
+117 -212 133 -208 161 -200 ct 201 -190 228 -181 244 -174 ct 260 -167 272 -158 281 -145 ct 
+290 -132 294 -116 294 -97 ct 294 -79 289 -61 278 -45 ct 267 -28 251 -15 231 -6 ct 
+210 3 187 7 161 7 ct 118 7 85 -2 63 -20 ct 41 -38 26 -65 20 -100 ct p ef
+pom
+gr
+gr
+3576 2273 m  3507 2273 3451 2217 3451 2148 ct 3451 2079 3507 2023 3576 2023 ct 
+3645 2023 3701 2079 3701 2148 ct 3701 2217 3645 2273 3576 2273 ct p ef
+3576 2273 m  3507 2273 3451 2217 3451 2148 ct 3451 2079 3507 2023 3576 2023 ct 
+3645 2023 3701 2079 3701 2148 ct 3701 2217 3645 2273 3576 2273 ct pc
+gs
+gs
+pum
+9809 3509 t
+56 0 m  56 -64 l  120 -64 l  120 0 l  56 0 l  p ef
+234 0 m  234 -64 l  298 -64 l  298 0 l  234 0 l  p ef
+412 0 m  412 -64 l  476 -64 l  476 0 l  412 0 l  p ef
+pom
+gr
+gr
+3576 3173 m  3507 3173 3451 3117 3451 3048 ct 3451 2979 3507 2923 3576 2923 ct 
+3645 2923 3701 2979 3701 3048 ct 3701 3117 3645 3173 3576 3173 ct p ef
+3576 3173 m  3507 3173 3451 3117 3451 3048 ct 3451 2979 3507 2923 3576 2923 ct 
+3645 2923 3701 2979 3701 3048 ct 3701 3117 3645 3173 3576 3173 ct pc
+3576 4473 m  3507 4473 3451 4417 3451 4348 ct 3451 4279 3507 4223 3576 4223 ct 
+3645 4223 3701 4279 3701 4348 ct 3701 4417 3645 4473 3576 4473 ct p ef
+3576 4473 m  3507 4473 3451 4417 3451 4348 ct 3451 4279 3507 4223 3576 4223 ct 
+3645 4223 3701 4279 3701 4348 ct 3701 4417 3645 4473 3576 4473 ct pc
+5576 2473 m  5507 2473 5451 2417 5451 2348 ct 5451 2279 5507 2223 5576 2223 ct 
+5645 2223 5701 2279 5701 2348 ct 5701 2417 5645 2473 5576 2473 ct p ef
+5576 2473 m  5507 2473 5451 2417 5451 2348 ct 5451 2279 5507 2223 5576 2223 ct 
+5645 2223 5701 2279 5701 2348 ct 5701 2417 5645 2473 5576 2473 ct pc
+5576 4273 m  5507 4273 5451 4217 5451 4148 ct 5451 4079 5507 4023 5576 4023 ct 
+5645 4023 5701 4079 5701 4148 ct 5701 4217 5645 4273 5576 4273 ct p ef
+5576 4273 m  5507 4273 5451 4217 5451 4148 ct 5451 4079 5507 4023 5576 4023 ct 
+5645 4023 5701 4079 5701 4148 ct 5701 4217 5645 4273 5576 4273 ct pc
+7676 2673 m  7607 2673 7551 2617 7551 2548 ct 7551 2479 7607 2423 7676 2423 ct 
+7745 2423 7801 2479 7801 2548 ct 7801 2617 7745 2673 7676 2673 ct p ef
+7676 2673 m  7607 2673 7551 2617 7551 2548 ct 7551 2479 7607 2423 7676 2423 ct 
+7745 2423 7801 2479 7801 2548 ct 7801 2617 7745 2673 7676 2673 ct pc
+7676 4073 m  7607 4073 7551 4017 7551 3948 ct 7551 3879 7607 3823 7676 3823 ct 
+7745 3823 7801 3879 7801 3948 ct 7801 4017 7745 4073 7676 4073 ct p ef
+7676 4073 m  7607 4073 7551 4017 7551 3948 ct 7551 3879 7607 3823 7676 3823 ct 
+7745 3823 7801 3879 7801 3948 ct 7801 4017 7745 4073 7676 4073 ct pc
+14076 3373 m  14007 3373 13951 3317 13951 3248 ct 13951 3179 14007 3123 14076 3123 ct 
+14145 3123 14201 3179 14201 3248 ct 14201 3317 14145 3373 14076 3373 ct p ef
+14076 3373 m  14007 3373 13951 3317 13951 3248 ct 13951 3179 14007 3123 14076 3123 ct 
+14145 3123 14201 3179 14201 3248 ct 14201 3317 14145 3373 14076 3373 ct pc
+12176 2473 m  12107 2473 12051 2417 12051 2348 ct 12051 2279 12107 2223 12176 2223 ct 
+12245 2223 12301 2279 12301 2348 ct 12301 2417 12245 2473 12176 2473 ct p ef
+12176 2473 m  12107 2473 12051 2417 12051 2348 ct 12051 2279 12107 2223 12176 2223 ct 
+12245 2223 12301 2279 12301 2348 ct 12301 2417 12245 2473 12176 2473 ct pc
+12176 4073 m  12107 4073 12051 4017 12051 3948 ct 12051 3879 12107 3823 12176 3823 ct 
+12245 3823 12301 3879 12301 3948 ct 12301 4017 12245 4073 12176 4073 ct p ef
+12176 4073 m  12107 4073 12051 4017 12051 3948 ct 12051 3879 12107 3823 12176 3823 ct 
+12245 3823 12301 3879 12301 3948 ct 12301 4017 12245 4073 12176 4073 ct pc
+3451 2148 m  3122 2490 l  2983 2224 l  3451 2148 l  p ef
+1 lw 0 lj 1750 3040 m  3132 2315 l  ps
+3576 3173 m  3159 3399 l  3107 3104 l  3576 3173 l  p ef
+1927 3466 m  3222 3236 l  ps
+3451 4348 m  2986 4252 l  3137 3993 l  3451 4348 l  p ef
+1927 3466 m  3139 4168 l  ps
+5451 4148 m  5050 4402 l  4978 4110 l  5451 4148 l  p ef
+3922 4526 m  5102 4234 l  ps
+5451 2348 m  5089 2654 l  4977 2376 l  5451 2348 l  p ef
+3701 3048 m  5117 2482 l  ps
+7676 2673 m  7405 3062 l  7226 2822 l  7676 2673 l  p ef
+5701 4148 m  7388 2888 l  ps
+7551 3948 m  7113 3767 l  7309 3540 l  7551 3948 l  p ef
+5701 2348 m  7279 3713 l  ps
+7676 2423 m  7221 2556 l  7232 2256 l  7676 2423 l  p ef
+5701 2348 m  7316 2409 l  ps
+14076 3123 m  13604 3080 l  13724 2805 l  14076 3123 l  p ef
+12301 2348 m  13746 2979 l  ps
+13951 3248 m  13595 3562 l  13478 3286 l  13951 3248 l  p ef
+12301 3948 m  13620 3389 l  ps
+15601 3289 m  15147 3426 l  15156 3126 l  15601 3289 l  p ef
+14201 3248 m  15241 3278 l  ps
+5451 2348 m  4987 2446 l  5021 2148 l  5451 2348 l  p ef
+3701 2148 m  5093 2307 l  ps
+gr
+gs
+601 423 m 17365 423 l 17365 6542 l 601 6542 l 601 423 l eoclip newpath
+gr
+gr
+0 6120 t 
+pom
+count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
+%%PageTrailer
+%%Trailer
+%%EOF
index c7017eb01f7b3adf53fbac67cdc95d650f06029a..4a84909d655f2c9149e7a063a4a35378158f4099 100644 (file)
@@ -1,5 +1,5 @@
 P=ads2
-X:=$(shell for a in 1 2 ; do echo ../$$a-*/$$a-*.tex ; done)
+X:=$(shell for a in 1 2 ; do echo ../$$a-*/$$a-*.tex ; done)
 
 %universe: all ChangeLog