diff options
author | Patrick Simianer <p@simianer.de> | 2010-05-18 08:52:24 +0200 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2010-05-18 08:52:24 +0200 |
commit | b90042ebc1f37fa5f911df54ce0d3827da074892 (patch) | |
tree | 271ffd81ccf00888380b8b578d9bf238d8e4387b /resources | |
parent | ec3f1801c258dbba07dfccbd9864f9b2de0bfae6 (diff) |
major
Diffstat (limited to 'resources')
-rw-r--r-- | resources/RENFADFA.doc | bin | 0 -> 131072 bytes | |||
-rw-r--r-- | resources/fsmnlp.ps | 6674 | ||||
-rw-r--r-- | resources/graphregexpr.jar | bin | 0 -> 54806 bytes | |||
-rw-r--r-- | resources/regexprdemo.jar | bin | 0 -> 36642 bytes | |||
-rw-r--r-- | resources/urls.txt | 10 |
5 files changed, 6680 insertions, 4 deletions
diff --git a/resources/RENFADFA.doc b/resources/RENFADFA.doc Binary files differnew file mode 100644 index 0000000..fb76173 --- /dev/null +++ b/resources/RENFADFA.doc diff --git a/resources/fsmnlp.ps b/resources/fsmnlp.ps new file mode 100644 index 0000000..34379af --- /dev/null +++ b/resources/fsmnlp.ps @@ -0,0 +1,6674 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software +%%Pages: 16 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentFonts: Palatino-Bold Palatino-Roman CMSY6 Palatino-Italic +%%+ CMMI10 CMR7 CMSY8 CMR6 Palatino-BoldItalic CMSY7 CMSY10 CMR10 CMMI7 +%%+ CMMI6 CMEX10 Courier CMMI9 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -f +%DVIPSParameters: dpi=600, compressed, comments removed +%DVIPSSource: TeX output 2003.05.08:1610 +%%BeginProcSet: texc.pro +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: pstricks.pro +% PostScript prologue for pstricks.tex. +% Version 97 patch 3, 98/06/01 +% For distribution, see pstricks.tex. +% +/tx@Dict 200 dict def tx@Dict begin +/ADict 25 dict def +/CM { matrix currentmatrix } bind def +/SLW /setlinewidth load def +/CLW /currentlinewidth load def +/CP /currentpoint load def +/ED { exch def } bind def +/L /lineto load def +/T /translate load def +/TMatrix { } def +/RAngle { 0 } def +/Atan { /atan load stopped { pop pop 0 } if } def +/Div { dup 0 eq { pop } { div } ifelse } def +/NET { neg exch neg exch T } def +/Pyth { dup mul exch dup mul add sqrt } def +/PtoC { 2 copy cos mul 3 1 roll sin mul } def +/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } +def +/PathLength { flattenpath /z 0 def { /y1 ED /x1 ED /y2 y1 def /x2 x1 def +} { /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ } +/pathforall load stopped { pop pop pop pop } if z } def +/STP { .996264 dup scale } def +/STV { SDict begin normalscale end STP } def +/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def +PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y +mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul +/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ] +0 } ifelse setdash stroke } def +/DotLine { /b PathLength def /a ED /z ED /y CLW def /z y z add def a 0 gt +{ /b b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add +def } if } ifelse } ifelse [ 0 b b z Div round Div dup 0 le { pop 1 } if +] a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1 +setlinecap stroke } def +/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch +2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 +% DG/SR modification begin - Dec. 12, 1997 - Patch 2 +%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a +% DG/SR modification end +Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict +/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1 +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } +% def +a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore +pop pop } def +% DG/SR modification end +/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg +exch 3 index sub exch Atan rotate newpath } def +/EndArrow { @mtrx setmatrix CP grestore end } def +/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1 +scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill +grestore } def +/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0 +CLW moveto } def +/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2 +div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0 +CLW moveto } def +/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW +2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0 +curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto } +def +/SD { 0 360 arc fill } def +/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS +CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def +/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { +/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto +load } if ] cvx newpath 3 1 roll T exec } def +/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch +cvi def } def +/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if +f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub +def n { Lineto } repeat CP 4 2 roll ArrowB L pop pop } if } def +/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } +ifelse { pop } repeat a } def +/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq +and { pop pop /n n 1 sub def } if } def +/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop } +repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1 +ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 +moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto +Lineto pop pop closepath } ifelse } def +/Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mul +neg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w add +def } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 +div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +setmatrix } def +% DG modification begin - Jan. 15, 1997 +%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { +%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0 +%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +%setmatrix } def +/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup +CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2 +div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0 +d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx +% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) +% setmatrix } def +setmatrix pop } def +% DG/SR modification end +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth +def } def +/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1 +def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp +mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos +abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def +/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul +m mul neg def } def +/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } +ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def } +def +/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def +/NC { CC x1 y1 x2 y2 x y curveto } def +/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def +/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def +/NAC { x2 y2 x y curveto CC x1 y1 } def +/EAC { x2 y2 x y ArrowB curveto pop pop } def +/OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def +n { NC } repeat EOC } ifelse } def +/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload +/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop +pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def +/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { +CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } +repeat closepath pop pop } ifelse } def +/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def +/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def +/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } +def +/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix +rotate matrix concatmatrix exch findfont exch makefont setfont } def +/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto +x1 y1 lineto closepath } def +/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1 +y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div +exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse +/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto +x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath } +ifelse } def +/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add +/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq { +pop pop Rect } { OvalFrame } ifelse } def +/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop +} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ] +aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def +/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6 +2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto } +ifelse } def +/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { +6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def +/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1 +sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore } +def +/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 +sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA +x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0 +y0 x0 2 mul x1 sub y1 ] def } def +/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } +if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if +/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div +round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div +round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub +0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def +/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def } +if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def } +{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add +exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n +div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1 +dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt { +dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt { +pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup +stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg} +{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i +w add def } repeat grestore gsave n 0 gt +% DG/SR modification begin - Nov. 7, 1997 - Patch 1 +%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } +{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } +% DG/SR modification end +{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul +n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n +div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop +1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs +dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt +{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g +exch t L stroke /i i h add def } repeat grestore } def +/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0 +1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add +exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c +mul neg d } def +/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def +/Rot { CP CP translate 3 -1 roll neg rotate NET } def +/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } +def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle +dup a add ] cvx def } def +/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] +cvx def } def +/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def +/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def +/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def +/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s +abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b +div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } { +h1 abs h sub dup s mul abs } ifelse } def +/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s +mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q +{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add +exch } def +/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible +/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def +} if } ifelse } def +/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def +/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit +neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def +/IfVisible true def } def +end +% END pstricks.pro + +%%EndProcSet +%%BeginProcSet: pst-dots.pro +10 dict dup begin + /FontType 3 def + /FontMatrix [ .001 0 0 .001 0 0 ] def + /FontBBox [ 0 0 0 0 ] def + /Encoding 256 array def + 0 1 255 { Encoding exch /.notdef put } for + Encoding + dup (b) 0 get /Bullet put + dup (c) 0 get /Circle put + dup (C) 0 get /BoldCircle put + dup (u) 0 get /SolidTriangle put + dup (t) 0 get /Triangle put + dup (T) 0 get /BoldTriangle put + dup (r) 0 get /SolidSquare put + dup (s) 0 get /Square put + dup (S) 0 get /BoldSquare put + dup (q) 0 get /SolidPentagon put + dup (p) 0 get /Pentagon put + (P) 0 get /BoldPentagon put + /Metrics 13 dict def + Metrics begin + /Bullet 1000 def + /Circle 1000 def + /BoldCircle 1000 def + /SolidTriangle 1344 def + /Triangle 1344 def + /BoldTriangle 1344 def + /SolidSquare 886 def + /Square 886 def + /BoldSquare 886 def + /SolidPentagon 1093.2 def + /Pentagon 1093.2 def + /BoldPentagon 1093.2 def + /.notdef 0 def + end + /BBoxes 13 dict def + BBoxes begin + /Circle { -550 -550 550 550 } def + /BoldCircle /Circle load def + /Bullet /Circle load def + /Triangle { -571.5 -330 571.5 660 } def + /BoldTriangle /Triangle load def + /SolidTriangle /Triangle load def + /Square { -450 -450 450 450 } def + /BoldSquare /Square load def + /SolidSquare /Square load def + /Pentagon { -546.6 -465 546.6 574.7 } def + /BoldPentagon /Pentagon load def + /SolidPentagon /Pentagon load def + /.notdef { 0 0 0 0 } def + end + /CharProcs 20 dict def + CharProcs begin + /Adjust { + 2 copy dtransform floor .5 add exch floor .5 add exch idtransform + 3 -1 roll div 3 1 roll exch div exch scale + } def + /CirclePath { 0 0 500 0 360 arc closepath } def + /Bullet { 500 500 Adjust CirclePath fill } def + /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath eofill } def + /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath eofill } def + /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def + /TrianglePath { + 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath + } def + /SolidTriangle { TrianglePath fill } def + /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def + /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def + /SquarePath { + -450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto + closepath + } def + /SolidSquare { SquarePath fill } def + /Square { SquarePath .89 .89 scale SquarePath eofill } def + /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def + /PentagonPath { + -337.8 -465 moveto + 337.8 -465 lineto + 546.6 177.6 lineto + 0 574.7 lineto + -546.6 177.6 lineto + closepath + } def + /SolidPentagon { PentagonPath fill } def + /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def + /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def + /.notdef { } def + end + /BuildGlyph { + exch + begin + Metrics 1 index get exec 0 + BBoxes 3 index get exec + setcachedevice + CharProcs begin load exec end + end + } def + /BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } bind def +end +/PSTricksDotFont exch definefont pop +% END pst-dots.pro + +%%EndProcSet +%%BeginProcSet: pst-node.pro +% PostScript prologue for pst-node.tex. +% Version 97 patch 1, 97/05/09. +% For distribution, see pstricks.tex. +% +/tx@NodeDict 400 dict def tx@NodeDict begin +tx@Dict begin /T /translate load def end +/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } +if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end +grestore } def +/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def +} def +/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch +Sin mul } def } def +/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def +} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } +ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx +dup Sin mul Cos Div } ifelse } def +/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub +/u ED /NodePos { GetRnodePos } def } def +/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup +Cos mul exch Sin mul } def +/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h +mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul +} ifelse } def +/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d +ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d +sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan +sin def /NodePos { TriNodePos } def } def +/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos +hh mul Atan dup cos ww mul exch sin hh mul } def +/GetCenter { begin X Y NodeMtrx transform CM itransform end } def +/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist +Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg } +{ 0 Dist Sin mul } ifelse } ifelse Do } def +/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform +exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx +dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop +XYPos } ifelse } def +/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1 +roll sin mul sub exch } ifelse } def +/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA +AddOffset yA add /yA1 ED xA add /xA1 ED } def +/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB +AddOffset yB add /yB1 ED xB add /xB1 ED } def +/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA +AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED +ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED +} ifelse } def +/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB +AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED +ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED +} ifelse } def +/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED +/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b +known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA +ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def +/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub +mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def +/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt +{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop +} repeat LPutLine cleartomark } def +/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED +/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 +mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx +sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul +add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add +y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul +mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def +/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def +} def +/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def +/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit +} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd +} def +/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def +} def +/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def +/NAngle yyB yyA sub xxB xxA sub Atan def } def +/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def +/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def +} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { +exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark +VPosEnd } def +/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 +roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx +def grestore exec /LPutVar /SaveLPutVar load def } def +/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def +GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { +LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { +LPutVar VPutLine } def LPutVar } def +/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop +end } def +/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub +Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan +/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 +yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +ifelse } def +/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 +roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA +GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict +begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] +cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines +} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def +/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx +itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2 +yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1 +yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def +/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def +/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2 +yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform +/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1 +tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def +xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx +transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def } +{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB +0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict +begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx +def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if +xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end +/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED +GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin +false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { +LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def } +def +/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate +def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2 +mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3 +mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 +xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false +Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] +cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos { +VPutLines } def } def +% DG/SR modification begin - May 9, 1997 - Patch 1 +%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r +%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r +r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add +exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 +mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED +% DG/SR modification end +} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add +AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r +Div def /y ED /x ED } def +/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB +180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos +mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def +/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy +add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos +{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar +tx@Dict begin false Polygon end } def +/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan +def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2 +mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def +/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div +def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def +GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul +sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0 +eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn } +{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def +0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0 +0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2 +roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat } +ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos +{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le { +r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC } +{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add +add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub +mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t +sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse +y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos { +LPutPos } def } def +/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB +sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 +ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB +w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos +{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } +{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } +def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin +/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def +/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg +exch X sub neg exch moveto setmatrix CP grestore } def +/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 +def } ifelse LPutCoor } def +/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg } +if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED } +def +/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if +r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop } +ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED } +def +end +% END pst-node.pro + +%%EndProcSet +%%BeginProcSet: 8r.enc +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", +% version = "0.6", +% date = "1 July 1998", +% filename = "8r.enc", +% email = "tex-fonts@@tug.org", +% docstring = "Encoding for TrueType or Type 1 fonts +% to be used with TeX." +% @} +% +% Idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard Encoding + ISO Latin 1 + extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% +% (4) Remaining positions left undefined are for use in (hopefully) +% upward-compatible revisions, if someday more characters are generally +% available. +% +% (5) hyphen appears twice for compatibility with both +% ASCII and Windows. +% +/TeXBase1Encoding [ +% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef + /breve /minus /.notdef +% These are the only two remaining unencoded characters, so may as +% well include them. + /Zcaron /zcaron +% 0x10 + /caron /dotlessi +% (unusual TeX characters available in, e.g., Lucida Bright) + /dotlessj /ff /ffi /ffl + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + % very contentious; it's so painful not having quoteleft and quoteright + % at 96 and 145 that we move the things normally found there to here. + /grave /quotesingle +% 0x20 (ASCII begins) + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +% 0x40 + /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O +% 0x50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o +% 0x70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde + /.notdef % rubout; ASCII ends +% 0x80 + /.notdef /.notdef /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /.notdef /.notdef /.notdef +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /.notdef /.notdef /Ydieresis +% 0xA0 + /.notdef % nobreakspace + /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot + /hyphen % Y&Y (also at 45); Windows' softhyphen + /registered + /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def + +%%EndProcSet +%%BeginProcSet: texps.pro +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ +dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 +roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def +dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} +if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} +def end + +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict +begin/SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ +CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N +/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} +repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +%%BeginProcSet: color.pro +TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop +setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll +}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def +/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ +setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ +/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch +known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC +/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC +/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 +setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 +setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 +0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC +/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 +setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 +0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ +0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ +0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC +/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 +setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 +setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 +0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC +/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 +setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 +0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ +0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ +0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC +/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 +setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC +/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 +0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 +0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 +0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 +setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 +0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC +/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 +setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 +0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 +1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC +/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 +setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ +0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} +DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 +setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 +setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 +setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end + +%%EndProcSet +%%BeginFont: CMMI9 +%!PS-AdobeFont-1.1: CMMI9 1.100 +%%CreationDate: 1996 Jul 23 07:53:55 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI9) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI9 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 15 /epsilon1 put +readonly def +/FontBBox{-29 -250 1075 750}readonly def +/UniqueXX 5087384 def +currentdict end +currentfile eexec +80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 +74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 +48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f +15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff +da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 +bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 +3c6e705479464a4b33ae3d31bfe98efe259f07f7950237bbaee4f7b64ffea83a +757fa717d50c3298392891bfd60e34a056b0d6021da3fd9b8b01bf78b0b23dc4 +ea3b0605150d20b27ff9ea5f2524661019d982a2e47cd7c21ee5ca9ed9227821 +f8d07119397de26838c11d7b35bcedc43e011626e300f8249ed846d7b5ccbd89 +02550cda17ddf113df658fb13f8162681013766863784efac128e01ef997e1a4 +30312afac8f3d948edecd7d5090ab5c864b91d7f6e80256f0e1fc99f1102b74c +61cc456e2e1bedf0e627d5f70f738f963a13666405c51ebf23ca077e97570a2f +1118536b92e585cf1dbd5fbf36a0a5d197538c05304e93a15f3c931168d91d42 +483ef428b1a3f1b7e548fd1d23b80f5523c8b8bf450b02804fb689f915c86693 +f7dfb1c43f681627c7f027021aa3a8179148f1819cd94b8890a9ac63dc1e8a68 +f254b64f6f173c3d02e3ebc037da05074017c8b113e94f4e2d26b467ef9da07e +afd7ea7c86e025af52c5ceeb835951e67e02a38daf1e9e698bd21996c1071e84 +ff7fbe77f6ddf9d06fa92b16ecebcbe0370b5cd9d450d0f2906a105cadf93ed0 +0abc7fcf2c996e7c15e452006e35390d99b9cfc59925f1444c20d9c3e1fc2910 +32cf9fa9d580eac1bc956334da391b870a757c3bee6aa3e005b20988d8587876 +3ced20c6edf2ac2b22890e37ff7aedeb0986d85ae05bc84339bf2116df48c5d1 +cc888bb33d409b06dd70ffd0618b2080442aac439aeb39c20a87ad74ef10629c +f1604db8611e8e4224c5b21ab0c7ebddc77fe9a283b3a8c6a2a9508f6836e3fc +3eae1366b4da4f44cb7a77fd81d278c17775d56cb28b70f18d894bfd1ec1827f +fb16b0d4c1a4ce155da066810170fea53e0d24874d69366a46873838b82ece2e +bb961c260c67b449acd29dd7613c555bdb2105bdddc2924c6064486a50e936ee +a8c6ea5be6ee8441652dd81f930cb7c529ddee172f25588eeec791ff03753b9a +80c10598425b6a0886d6aad2d1d973454b9c6319ac29be6b1fa97f8bbbb1c9fd +acbda78d04e5891f78b85fcd173a827effee79a2fe5df00d2b1b4526b1858fed +dbd207bf886ef031cdf61ad3fadfbc26cb8eb879dd17b9999d8735ee9fde3ba9 +24ce7786237f6c624563022da4d9174a9ef26e2b6baf5b3248761805f2dd2429 +7375b95ecebc05a109d87220a4e2b06b31e2c87f2f892e10c01c3801be734fac +04300c4f912ab08adcb21b68b3fe97230cf30214cab7fe65753c1db70b401dc0 +c3 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMEX10 +%!PS-AdobeFont-1.1: CMEX10 1.00 +%%CreationDate: 1992 Jul 23 21:22:48 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMEX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMEX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 83 /uniontext put +readonly def +/FontBBox{-24 -2960 1454 772}readonly def +/UniqueXX 5000774 def +currentdict end +currentfile eexec +80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a +e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4 +d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828 +e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4 +7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80 +523f59a30d195fcf9b9fce4ffafc6d5649664203ab24acb938d58d246707ffe7 +d62f04bec4b70c21ef75beb2b812622b3c74e969d72d3cd11bd7106294a99caf +0b1629bc7d4de6b96ca82930831d64575f23f4ad06a0e45e315b1d392411be8d +6d73c998789ff258a07a3c8c2057325784514c845500bfd1a971310cfc11d41c +1a167dbd5ff012c60add4e87325f6e5299032a839de65fb1473a166aae1876a4 +414a434f22c1d241591fb36f857df6fa930608750ffc0c54f44994662b1f00f1 +400bf752ea8d83ffc4cb77a290bc2d99981ae59a191748ba5c7ba1a9d2583fd2 +1398452b6ff5d83a059f7eadcd2ef744e9dd22bdf9c79d049bf06835e878c32b +7765c69bdd8ef4deb4ea7cfff4cf9354a4ddffa689de961d16772491c7afbd7f +ffde42400764c68e954ee5c455a5687959829bc3b319b2147deaab3628662c80 +30c5e02fea09609abe4eaa12e217bc3af673f1bc36a7039eb13fcacb4218fe0f +c5a3f9452d4edf46cc91db67b624d4f2d37502fb9f11af4da18ca40b61097f95 +d44329375467ed13c5cb585ec53f62b83ef9502cc755af44bf32b87b8ae9f3f2 +f8dbf72dab90acafbacd280db6aaffaefdff6d5eff26669bac56280a950560e3 +d01714ba38659b0e4e28bf8cdc1f15ff7e3ea9d95a6afbbe3d8e6905aa6d531d +6b6dcab89e2036cc492c65f76ddcc3cfcff33fde3d9ffd10f7a90530fd5c7683 +4329baa902e701ca42717476298c9ff511b1941244bb1dfd0e5cab92a43970cd +1bdb292eadd055c97972844fdcdb0aa06401e7b2632b9d134f96bce0064860f3 +9859da7a9a82be0a840672a1331212752ae1b521b693b384a72dba8d37a86eaf +a0341e7fc5f6ef7a8c566aacb91e8bf5005c18837894c4eacff41dba54e071ca +83fe249b6aa6921340879a644a43e13b3ef9b1db789c61b5927c967d6bf493ca +0c722a7ba6762fda1dcdfeb814981973f4273f9a2220e0fc2e6daa1a100ba89f +a91fba83b432117b682a73d3e36ba6a079c103a03999424264222e5b1040a79e +96bba57dc7d01a8d79396179040acc9c522adc949683542abe58fba208c69e67 +0cce82866c38aff4e1da5771809955c3023c40c6caeee0a28cbc5a2d3f30e340 +345e624bdfbb5f23994d566225a7890711ed54d1dc68411a67f70b73c7bc3083 +683abbfcc8ed1a3caf3ef8b751f1533b359fbc1b029a3c1902d943759319a1e9 +ba7f48b6a34717410abdb15e68c227b0d480ab5a7288426e827bbc9a641200a7 +fca27ee30c2aee6f42b3b29c573be209 + +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMMI6 +%!PS-AdobeFont-1.1: CMMI6 1.100 +%%CreationDate: 1996 Jul 23 07:53:52 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI6) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI6 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 59 /comma put +dup 97 /a put +dup 99 /c put +dup 115 /s put +dup 116 /t put +readonly def +/FontBBox{11 -250 1241 750}readonly def +/UniqueXX 5087381 def +currentdict end +currentfile eexec +80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 +74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 +48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f +15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff +da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 +bdd7da12534ba078ad3d780414930e72218b3075925ce1192f11fc8530fcd5e3 +038e3a6a6db2dcfbae3b4653e7e02730314e02b54a1e296d2bef8a79411d9225 +dad7b4e6d6f9cf0688b69ba21193bf1495807e7a1e67ed7e41cc25acc04702f6 +8ef703e3d45722c1a91fdef7100a48631a02a6f02a08c6b1f9b4df8310385b86 +8632718fd87119a233f219d9411383b7fa9f3e4780d8c27e2e89e0cae883d664 +c3eac57a3aef8988a2e9f0f8c7f53e0a80bdfc4620e21287d0390e1975398544 +7f3ea66401024bea75e1b4c4437b7bb188f76f96b918ac7c6ad7e8ae7f21d8c2 +790f08cccec904fe48ef39e597ed4d4237c1d1f596f5906b19ea308020f7a35c +168e327ec3246b1dfabe912f6b6daac09974876d3996e57d180261110db05f15 +e3e8eebba3d90b5764c03df3033a1ed678ebc679569a2fb297378b25434c0f20 +5313ecb8a952f07242d3ee731b0cdc086a4481178a3d65129c47c09b22e9c431 +e11b3747b94c26a757c38d06001798c6a568303d541385244b967d3b1786edea +f65bb53c4c2fe75e4b1b15c2c78d930b4296c80f08bad86012451edc8e9f0854 +c3b390a16e27b11b3d45a9f72eff8baded2242dc928a61685d79e09681c97425 +5b90a498614cf560fa5b1718981388268ba206a96989e6d0b5d485d9aca5594a +e67dd7b34d8a369adb06647f8aff8814d6d9cdc04a4835918e557174c5bc0f3f +bcea9907a04cf93c12727ec40db3f2f77596dca477862747435bdedacd9b2311 +6cc97fa47ffdd7d897fb6bdd5572e35d34e7e1cb5e7273a4ffd86525323ace4a +84e1297028c2bd5469baa2e75d19360c2c9042139d5e7dd4390a6a3935424711 +de21910126d750ae279916ceb71da3591d60dc62db333c5021e2c1cd61ade51e +9395804fa8f124b194547de13ddc8ce157d5d0de6ed12ffbfc67bff54c817919 +0d0a07b371965275e62be6a0a177be27972dca5212214fbfb473c9a99d2e8ef8 +02dc76d6a57a2b7496a4df89213b422ac457b844e6e965229a421d83cf444959 +2410dcc1b0e7f1626d1f62759f286c9f5e18b7134d30231d696a1db921544385 +106bed821dd146507164b2a3b30b24e4e20b98f0530aa680f1f9486b47111c18 +8fad0bdc5b2f7a3b5413e21b0949ab099fe4d4b0b279915e932c7e2c5847c583 +a8276cf361449b30941b58f722bb505dd717772666c08a788dbc005cc8da3244 +83a70d422e5babd5080625826bce045b168d253465c3a045bc0f56fcd6e2f96e +76b5937ca16e463cd1a97ec08a53f7a50dc3c43d77fc3da62d9b97ae6011ff6a +e32aa6f456435f616af79a96db7509734650f9c3b263f052dee49a7b3770c6c5 +e8fd1a2a941214ded27cb5881cb1abd6dc267ae4942205692fa37890f0539ba5 +b72b188aa91d0401b71a4b7e66c826781936845144068e54f694f07c23c54992 +7b7e33e3114534e8ad553cad8fa4021454b26a74f80254ffbea755f73638b241 +53ad0bf28f299062c9f174d349c78dbc95d4a7611297cabcbfaebb9b75a2a14e +36630b909bec9c0da30b0164c70c4b974ebb3fdcfa6dbca188c498eaa5e59a8d +9342f5d43e6dda23bd45c4600a9c3e3033aaae9ec1b897b12e6775520c7c598f +e66d63a9c5fad7fd4bd96f9e676dd48c319f9dee38761f4dc30de718a83e19bb +eda092f766c26ea6d458036e2cd23d11340a4b4f80875d81d73df69cfa34eab5 +d489802f782958c4d591c32be26b587cb4b35d20a5db418c6bfa50882deffd58 +aba8c69335e69f2f9e2b863d9d0249a2ebbfcbba1a31c3c5134c8b42e99f2d42 +539e2a0373f861f2aec07cd820c963193f024f672c6bc5d28e93e36f48b38e06 +1617dee4d26838455046ba678a97cf2940d7897bd83d50a4a7fee3298f59128a +3da093b2a913376c46cb1995aef8065aecb0db36c1b1b700247b76d2813a59d5 +20abf8974b8310bf63278ed31a9e247f65fa3131ab73c21cbef668bd9da5f6cf +6808fe5c04b2d9615098f382487ff6da3200c1710c3e00503e00325100165525 +e75979f9211d5cff808c0fa4ce75e005bd817b5eb7f32692135003252fab42e9 +9a584fd7534beb3d916c042c816e3d209242a0348292c3af78483a62c44adb2d +77ec304517b2259ef46b82a1c7df01c981042096e02cad52f2c7839e9946c715 +a311293e5f6ba3aed88222c0c06580676372b467c076f1b155541b883c1cac9f +15bb9e6c2998b3bb56 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMMI7 +%!PS-AdobeFont-1.1: CMMI7 1.100 +%%CreationDate: 1996 Jul 23 07:53:53 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 59 /comma put +dup 80 /P put +dup 81 /Q put +dup 85 /U put +dup 88 /X put +dup 97 /a put +dup 99 /c put +dup 105 /i put +dup 106 /j put +dup 112 /p put +dup 115 /s put +dup 116 /t put +dup 117 /u put +readonly def +/FontBBox{0 -250 1171 750}readonly def +/UniqueXX 5087382 def +currentdict end +currentfile eexec +80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 +74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 +48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f +15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff +da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 +bdd7da12534ba078ad3d780414930f01bdaae649990604a33aa9eaffbe5b5489 +e5c7c9ff9d9be01b08220832c41caac64816b53bbc087ae4b621d2b44b21ae5e +3f7fe4ddb05c675abfe30510eee4a7c874bb57b2ffe521a6875eddfdfd18c781 +25bfca5a097aad361dd94df46f14026c25ea988194899b95001209cb7009cead +4b4ea03473ea120e7a7e341d4e3926796347fdb3a124c29660ac09f4648b313c +b58e824884382f24ce08d2edc686923acace1201c16a07a42803288cd0b946f7 +546510e95b1fa1cc96f0bf72aa823d8e83d7c68c752c82a54c752eed2b1e699d +e9db1830272ffbf2f4996ccc2d6fe2ae272798989525ef3b67b0d09bffcef749 +a805e5f76578222b9c4a8a09b13189a16ab746ddef7875f1ecf83e568f493d82 +ff729baa1e0834dbec30a35d3c49c9b10c5e1d90c6e3c8fb737df5ceb3299d96 +0fb79632f91f257753b4d2e34e3f54a26c7b950981fb7fe4dee3315db63e75b0 +24b4d318baec8aac9cde186f6d65767df1dba35124287c2e805bc660a3a22772 +0ae4fa097f1d75107441c0a0fbb9eec17d5516fa03b98756b7df7ac7eff9c7a2 +364b9f691ed5cb692dfff9dd80c761e9c4d5d6061782b327302c053ce1cd09ba +0605ebf761cf9b730524e1994e7dfaa956799d522ec53d5acba27a35c4d28279 +617771938ece58c5ab664aa00c1bc4efba2d15504247a68e3af0f9bd59a387b3 +80db88cca083b06f5af70d768d1699826fb12ce12efc2b4c70923e052dbb964f +5fa957c3ce225c0fda64d9b5321ee1ade207c1cc93105096cc73118f4082594c +8ecddeb0d7bfde6f70bc62f10407c26a476ed88be7999d64a15912493829a9de +62c71f5a34fbf5a843e311873cd98817dc9f8a4aeb7e0738b5de10043f5cfea7 +147c926ba6ce84d344ec60682b4d85913695c25e77231a7e950f4241bfa1dd50 +a25c96d21ba767fd8804d1448c7311088347264c062d3a70b6b89dde975ffb8c +65f950f04f3b7ffd9075bfdb43ff5918fb8ace4273bf29524d9c9ba59c7abdc8 +c41e98d969d238bb6d1370e1b71f129e276bdc26838c54da8780280a4f39194d +3075865d5264815eca65beb7f78f4af22dee08efa9775a9b16be602f28139b1a +22ca65b9a6cdfca8c5d233a4286e320bf6d39c19a6dfcb3994dbf412d10289bf +e6c542ef3d68bb9e560e5750958813fdf19b0bc0abbfdaa6bae8408063af47b0 +a226b3ae30442af91c80af26bd1bf6fe97f56a9271ac2922ed41ef471593c4d3 +536d2d2888e1b030bc0061c8475af14bb9b2b1668e36dbe8051390e0d7aa2740 +47e4bb90a068901f3a0b420e85d5f251ac3ad298e2332c48463a204c05651acf +8e4222ceb1d73ea7876cc4c7bd54d641d570455a930ec79d1158281316f67fd7 +dace8abba26619264e523c5e98f45945553a15f7d8a00d9709589f6a76b37179 +e996625ac67c29dc45d42dd9561c373b7e4a2f0d6f8a8ba12e12237bd45f488c +e2354ed5b048d900d9b28119beff12871f600ab02b516d35607bb65c802c04be +ee08f03bc43d5f9b4253ddac00e55f79ddb2d8febd4d25cf62de4568e2dda882 +3f30d0b9e864473012126ee279ea2624dfa1f7b95cfb453d0badf3a26a8242db +56907465f7828662f4fb011b6bd60982f326493a07795f2a862d388c23d58ef0 +9ce6e58bda6bfc142a822770583f818db619c528dc568cf60f7aa9818f63ad2d +1233942a1b4b543706f144581320c976ec1f2f1effbfb64714a770172041b001 +69699bede2caafa71dae2a6e163daa4bf3d43f537fbca0104d645879a3c3ebc4 +9f2c3a9efb651457aeaab4dd214529b7b0cce4653a33defc68065f8c14c953fe +e97774977368c0661dffbef71acf1759706b899e9ba7b12a53b52d9f53dbc14e +8322e472966744022eebe349f6cb7c0bee577112f2c376ca23f6f789c08f7167 +61147762e1068424ccd9b61510802c29ee62ddfdbe6d47828699da5da409f562 +aabc270d880bd6a04437400f6067b836ae893cc60c77bb4cba347249d38cb655 +e67ea619302ff0d929cf844ff933110108f83db8799e8fcfe60ce2796adb945d +ba4c2bd8b13d40bac60b082aa49b54c711885020fe8d43ff91a3f3cfb57df5df +c296ab07ca2b342cc6efb63288874b57fc8c58b2784415c4d035c3c9c1bcda2e +4d70fa651224ce09afb6a34b454a1d9104390983dfb9641117fce3e23bfa267a +0d96fa97101cb5479ad421d21fbfd75f8c0b2143ee4c3eaf80ff5b995f16ee0a +b7c8bfd6a7253d2239921507477d2770104370bffd49cbead54b19ee08a8c417 +2beef445c0cd1e9748aac2f94bc0b6b981e7ea3c47af5a931d0ba333e807c751 +0f9cc782ba0e543a01674f8247fa6e573e71dce65b75e532471fd67f91ab09ef +1f046f4e97dd6ddff3834bcaa36f38fd337a442394249724b92e9bcb39c77232 +5e81b11e75fd9e93b4fd5cb434066462b507cffff7571117f6069885582d8f57 +06e1684b2904b3a534d972f70091bd48fb19fc44be5a7cdef8b5189b6f25e37c +a31056256a78cd175f0202b6e45e76b10ca015efcd165c88199a8023aca239a5 +4e64f8b8c1c7294aa46a541bfa0dfbe4a534e88d5e463812d5afce4158f07adc +e2b7bcbc692e26ca0187dd0ce76506f9e44eba7a3afe7f09c5fb02af4d9e944a +92814704368c54f89a39cfd266236ef553113d293d3d68f3b6f913fcb1c7dda9 +4a1f39e94f232c362e9da28c9c80f64bc948d59ab391312f4dd5dd8e40bd8a5b +76666eb1673d704f35d9774a5e5e8a21061a0414651a19839997ee0e19f2c4a9 +136197ef1b53ef3141c74beb59b186e96f81f27a3393dbae26cd5a3a049d246c +b418ff4ac753dd2806386961f48a5a0f06f439ed42a594e4ed372704dcbe060e +490ca08a144945edfb250f591ec89cba259e0d2df3ba283152ee1853aeea6b1f +fae156d02a4275dcfe33c16acdc2ce7c139992643f68e9fbf88c2dc86d94e3da +ad2f64261a294226cc8e6f61b3426bea2ef7de92641e727ec9d9b7e02f35438a +13114f2c14fac8ea8c40fd32b979af0ca4d223c39d07ca45822d1a27c666afcc +ce0c55e04306575fee24db16264f645d9a26541b015c58af7aff7c6ad39987a0 +ed3ba6da32bca17363872deb91105132270d0cab0a9c5ed064f95ff5c5b8d3d0 +03d20063742357595fb0760e460ed07c8bc9f22e46ff6603f19fd5b76a280aa8 +7f4f395d0ebea24edbba17bba51c7c9a1b82ddd674e97fadc70d2df98b3ce850 +08081f9428f9e93d4982ce72ba6e5255701f595d08f46e1152be0b3ac0676626 +708d481b430b02234d3a5c5aa4f9807714d7fc48ba0fc01277e89671a0272c17 +478e7e64fe10c5df195ec37f1932606c4feec57ecf632b94b4c82efe940c65aa +082eee703485930a801545c9c5ba1c686813c7a2876ad1e90fd7f081deed04b3 +c5a781808aa6048c87df86625cdb22d6c7c2de9f8d06bb8218b5e9ff2cd5c022 +cda27896222ac4fa3fe7ae166017375cfb1c143bf957af52e578302557a8af0d +8090969cf926163d23ff3f58f27583e8b3d76e0dc661e5bb77c1358cf0ed855b +765ae295d873dac304cd4e8df8a952294128f212ec11c300df6d80d72ffd181c +cebf24f00d1dc62a2db6845e9f524ad93cd92d30b7c55e34422814ececac7fa9 +7cd78cecc4becd25ef0b7038594fc555d801a303e71bbc078e8fb2bafefc62b0 +fbd9bb507f130814df586fb1014c34a60561f1da43213adec0e96a561ab088e2 +e5ff4a797ec4635d84ad200be5e582ded21160cea45b4e5fa30a6e1bfcb87276 +b21f391137c84c84dd9ba79ae80d4332c29ff3d8f67d6e6cac50013b5d6b60c7 +4a375bf59f7e9796d38b7e5a7e1c18c4a9b11cac11e2e76c0acb39e353a9eed6 +e846ae26b47bc775f9458c11b8821a4ff5a59c85322dabe7ca9dc17ad73e73be +2fd023164c99a30001f1905b782e63fdffcfab6d11c29b609e13205b3cd28495 +6f11c34617f068a33e7453b26894b762f5b950e30d7c55f836133814c24ef6b0 +66b626475ae63a118f7828a812a317379c217518d06b0dc96ff76e54df280648 +ae3f39eb0351d30d3d66de361534ec14d0583ca6de242d6747769548ffe91463 +55818a4390d53d10fa5d123b757f66dbde495e885a5e3d28df17e71027958b1a +6274469ab3eec14c916f6eee602b0d2c27ec3c9b96ae9bdf709c4d14c1a86846 +3c99fd206e7a1d294f5354e0ce9899e56665edde9b2732767d1b37ad436d6530 +fd55f6623b1242e7547cfb22ba76baf711cac6a2a7a3b3e59b6852a9814a0824 +34837fcc9a5b910613e09a7ce2dea2d560effab80828d6ce6a8741d46307aba2 +87fdd3b51b03d9a4ed73af2a5a4eb9ee501a29260f84950d3909f31fce971b86 +8d93526095e400d4228bb59a83fe88c9d1e056258ae883da2ce1ad7e65dbae35 +009306189cfbb8c00ddea59ad1076ea99a19029d1071b02a4797dc215f513516 +e6561f968124ea2ca6ecd0b156871fd4d0f618db9df5b33c3ff13a8a4e777771 +25bb72af3ea22db7c3c65a807ca695f7991df4d3d8e8b34c832cbbbdb61af548 +3bae21be70ababc2793f140947e755b38bc72065c21eaebb2a1bbf8149ae36ee +96a8868bc494ca542c22c62387635984b1096549d6bfbd2b842d09e2caaa76af +345aee3dd5152c9a03af9f4d00b78f6288a0a0eaf35081dcba906d165b3ea575 +35f5087b447c6693c4584a9250beef04d7e9991ec656e44d911ffa98eb41c852 +a5f10a610fc9bed6803a3497f70cee94305f0fe69eeee2130696f129b17402e5 +6f92ef35bb8728d4ec580a61eadd51d6a3d6bee02e17865514288e000758846c +aaef14eb30d6b61fa7dc062cef6d6726d50dd58410f984dcfa299cc036066724 +9ba2e28a88a3f13bcfb930fcc91f74e8829b +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 6 /Sigma put +dup 40 /parenleft put +dup 41 /parenright put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 58 /colon put +dup 59 /semicolon put +dup 61 /equal put +dup 91 /bracketleft put +dup 93 /bracketright put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +/UniqueXX 5000793 def +currentdict end +currentfile eexec +8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 +97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc +8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 +b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 +50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e +784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de +fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202 +3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5 +2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12 +cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e +4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618 +99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8 +ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b +1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a +e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af +154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e +44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40 +a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e +3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7 +dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552 +315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3 +62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5 +87f907572b8354a5c3165eea7e8b2ba4e155f60e5ea763348a68b1555c02ad7d +7dbf7316889a222ff9e91a46568b2ada7a721bdc74c01285a4d2da9e68a45294 +59165bf752b1c65f96c8c782a1c5b0e85e61ae98fa9e1a75b3713bb0f9dc5c40 +59474f76d6b5adb96221d0387e31a31793d314e7807f205fd779f84ce8f01c78 +362f20f481b1df7ca50fe86df11e304c0ae7abae013fbdeb1fe7f4553c608ba5 +aaea38980169fc15eb0718eca3051fea142c6eae24e51b0470b1c9d20361ad1f +ec8c0a799fabb8e11ed97bef296fc10b39ed96503d408758c6ecc63492f3d3de +4defb94289cb05412204c3d36c428e7697212ab9c24a05ec13d27b017d1f7fb3 +15dbe2563fb00b7d7706a64cd22ad45db96fedc41d3022eaa2df55d6e65d40c3 +9d501e4575718cf7c784c6c724734e0dc598a95a997a6545628fda277fb75f7b +0c1761e3e0408c38e7972ada405012301b919f9ce925bc451644fad90efb6fa1 +62819061ad78992aac07d8a60ccd3033ddf10dffc9fb29921e5790b9c6f502c9 +0f71f63898ffe2d1bbb773ab17d27756c13cfcc0ecd5893926997ce318ba6716 +e463187beea13224650ae855571905ef1b4a6dff435b6afc43d464a3e3ce3188 +5a24fbf28db8e892833f24be491cab7e48cf2c0b69ebc9c7667f703ea3e1b7eb +982af736f2d10496dc2c358d16fc8316c3b1ba061d682232e87b09b541e18b0d +c06b7e8bcdc04bc22f53ec668844c22dbc4ea5b756a9288fb08711d1e2474fd0 +f544579e3331d9f9315c4002dde371235d804259804ba18bf27e2bc843cad136 +cd20b676570f74e4084773063d0a09f1c97078922af2f5360a8159c2ae17ec27 +c64d8d72b533a62b0bca6326e963d9c58759a400a8b71bc2a60ee79fabc76611 +82fd1c626cbb9d7304bd8d363d9900e8777cac47defd8caf09038f23494dceda +13bf53661dbd183259a23c8d65caf3ef45a69533cb2d48b3ca3b7046b6a8389d +5fc1c3857222c428959526c99d773e23cbf305d9bc616bac57a0d2d713daf3c2 +43d9b56c944e4748466c5be464e5adde746599cce30180e4d2768046c3e7e508 +60888ba0b61159d1ee984fd3d37b68e39acdb248e6b1f3951940a3a60070e701 +5f53dd3cd8e36dd7896f75c5023dc629736901c5b46319c26ae6c19f2f80d489 +be7a5a92e7f8bc716727fe000d3a8a4213a2ac5f6c1c9a96ca5654bbed40b44a +d2414d25a29786de2e5b0efd5a01727bc54bd041e4abc6a920b4e1fc857fb1de +ab75ab41b2dd7e7deaac6af802cad689a866c7c425ba1876500b5456864fc05b +21b883eff82c96f4dced5c0c733367d4a1fca966f471386cccbdf2d95d386dd2 +d79e43b03cfdff4a9c369bdc248392db702167458eaaf318871d639722977752 +44c5e3f5c45ae0f5788c15422c646747f7a586007a7d636060ccc11c3285be86 +fb54e493d71c79f32c1e0324b5812a7d4506eeb0199ca8fdf8c17e27cb4e3801 +ca4378469645ed4cd6e438a9d4579c9811b921084e94542d8bca618919ae962a +b18cde0353fe47bb836d8d6e4dd56a297711873d9101c6f8f7d1a5075a6d840a +e48cc4c70d5232baba5af46499a4c82958d8a6fbbfef86ca1b50fad89e97d1c3 +b3cda28d1e66ccf2f1c0f8150be73db6fcdde760715ae9fdf2bb24687400f4c5 +41c9ed695aa923e152f92f7becd9e85d41d0d8e2e6692a14bd5ad5a8dd1a96b5 +a67f8b27cf8b3176b6b2bc785ee2368421dcdf98ccddf2f23d006fe1e02da1e2 +b994457ab691496dba78c15d352189c9fbc94a92a7ddda6a3a450d89163b822b +356a22ea2f3efbc73b91c12c8c2866d5a7432a2ff6adc54077725235fa4fd89f +1a38108d4c7668e63e12bb289904e12a97e3a56f2c8480f91f8522a8cef6e688 +c9b07482e0cc7bc6c13dabbf1618a47419a641aaccea0a4bde44044ecdf0c42c +1bcd725e0a56fac3e020ce42173d2ea945d941a712f214c1cbdd800566cbf968 +967d665e7987786687a8dc75b71d9fd84ea2fb888256a48692615e8631938d4b +b32a26dcaaa09f35c6ba19588ab0ccf3bb1949813bd5b93e6731f9ffc57227ff +032861f757c6c754fb773147427ed346649c5e9fdb132cbead7e8aa28822e50f +4d2684cd68575aef73f0a0bf97cebf08a6dfd58356f977a48d83a42bdd782cf6 +bee009e82602ab8677a337807fd2f9ef8c23b64a041b70bf5ba98b392504d926 +b0aa788478a62aeb5ac518c0f011e55ee8dcd6e2319de1bd74334debe7977da1 +57f2941999299799a448f661e48fa9092036d9777e1dcccc12f1b79c94de069d +9e6e98facdd66cc1b6e75f8d44f3eb53e26226593f8f48fb3252d030beebf9db +c998decf56ad7a3cd3e1effe62d605c06320a3744cf4e867b5d7f5f8d47f036d +5937aac0c7ac8d8f1698f085791045fdc7ce880c8d5176596871cf5f07820230 +68883afc9eaedd182b1f9c60013b92109cfd28cf8740d777307cc2de672c3a66 +001aaac10e422ea3e0573b3afbbc83633b9d103de7b0530625441f39363a804b +c2e343f19e4e4cd502a88c12e3de1cb382ad9e7310417f7fceefd4bf64cca6a1 +9cead353cd232c064c47237ceee396fb51001bd9fdcec2b3326e0eb49703803d +0e94e462259ae3f5bdcb0b180923035f9b49ec95a9bcf1a375d81ae2c7aed1bc +65dbba2dcd3f3652753aaa5d8cc617c6f7ef16a78b3e6307e582208254ea2911 +c79c16f3963013b7ab06688433e5dab3639dfa36d86562b2e496114668651366 +f43758a5a34fb9e46666af146e3c76cc1dca2a489e6e3d3dc89053323887fbb4 +b0983f3df46ed75e98b6f1e5fd8e480ba328215516c50bc4383e18818a0ff50a +ff0ea5c6579434a51c88558fb1ddeb626fc47ae45b3dbe86e27b3641035502fc +fd4a20290ff1abaa87658f15d8b4b4614dc516784c2801fb2db4f78ae14deae2 +ed645fcee410f3404095ae7b7929811eaea86a341ef988952c9e98940d224483 +9a48c9a8e4807f6fb49cab06aad1043b5f124da54554bfab1cb601285c803a53 +c00c0983ee483f13b0b9f9020d7169e01b2bc24f77a6fae19755f6be4404fb43 +806c24f1827388475d462d64a55dbd9ba9e15acde222cd44f57b55cfbc2e6561 +62cd87ba55333361f89b3408edbbc14859864f0a65975b003de187b8aaf27058 +84cdeeb1ebbe438aa83c0a47cdb871f5f226e1365b6b7709f7ca194cf2e249d3 +0015245f7e792b1c436d87cb944ceffe7f1ed906c90ccb27876df09f5f8d6b2b +ddfcf113726d790986b34013773b8d621434b754c1ddc4da14c5c2f1cc3a2194 +1b6bbc159e6f7ec23e279507a5bf71534243f45ddcc2029030d695e82e968808 +0770fa7fe17f1f999fd3c34ced7d +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMSY10 +%!PS-AdobeFont-1.1: CMSY10 1.0 +%%CreationDate: 1991 Aug 15 07:20:57 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 2 /multiply put +dup 15 /bullet put +dup 18 /reflexsubset put +dup 19 /reflexsuperset put +dup 33 /arrowright put +dup 50 /element put +dup 59 /emptyset put +dup 91 /union put +dup 92 /intersection put +dup 102 /braceleft put +dup 103 /braceright put +dup 106 /bar put +readonly def +/FontBBox{-29 -960 1116 775}readonly def +/UniqueXX 5000820 def +currentdict end +currentfile eexec +9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 +05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 +b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a +f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 +d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8 +3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0 +aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a +9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4 +9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa +4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd +df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79 +c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074 +b64c4302813551ec0153be72f1f9695b56a658dabe99f8667d0236d0abb09f3c +ea230c59e6cc255cf32ccdc338aff2bfe51f3521d06c7825b3f99d122ae597e2 +d995b95525325f461af5bfe8eb8c42ac414629a4b0e2887c696966ba8c1b6f3c +ed5540608d095018fda4f0a224566315eafc70cc46b7f315c2e1139c87645173 +91b7c65ca7517a60d92f76ca2e67dd4b3bdba7aa7b5244e585a71eabb36b2bf4 +fadefdce47a623ba178613eda0b665951ae7136ac733db742f94a871fe68e6d8 +fde47d96669d1102cb4395f209cd0bdd18ecf2b72156283bd9f76175bf1cc9d8 +7001d1bc696cea850a5904fd1fd68ea8ec1d997580e1ad4d6c1b874fd92bb3a4 +ed5f7661ada49c62f8084a7b826810e86c958e00fadb465b2758a8ce6db79a2a +d2ba4ea210d3170bd2acddea0357aedc5efc7badbdc739259d8562269170ae01 +4b0c24b09735adc253e26937889bcbf00b31817df769dd0594ab3f25ece62e50 +d7128e4137cca7a6bf205919c60946b7ed42f80d00c9b599c2f0fc6ad86d7eea +0b445529041b481b9b7745e70244385c25255d2f869f8026ce0215b9c55a7e60 +ae8a42ef9700976ba849cecaa5990a1fda9c33feb854e3321beaf9ac23b1bd56 +250ebca1c4336f24042370409e1ec1a7a7dacc212295a43bd621e40a597efe46 +b2eb64b943a9bb0572c4e0d04201ad063899fb3e7559d7403d6c3050ce089454 +ba0d70bc7e1e1795afa62cf4e9eae075a064a6e4c4e36e8308eeb81ef2bea17d +318a31ca3df6b2adee5ee4071bed0d7efd58e207d818e278b91c8620ef1807ca +4a2f4ab30a51fe4152006a073a1ccddd1ee8671fd2ca9c54cebd27904a493a48 +ad9cbe731cff093ead2e314d7a54ab0a62cbbe09f084e254b97f8fea39242dc9 +ec087eb96c5538b484b604bb1585e3946b415e33e9ecd2de401bbdcdc789b6a1 +47c42261414dc09a6252422c04b47ad78129112c22dc88eade9e4eb46a3d1525 +a4bbd59c343e189a97e77839f3957c77e532fbda0197c91c6564b5355aebfbf4 +1bcf0a078d1db53b1e89c44a8f6c9a9f68665084b8e1a91429d401dd616f3b02 +b966bb9c419dbfdd8e7ad453ee0aa387eedc1142d815ca28715c2d9c308a1bfc +1f2035871ab8e411022d3c6fad8f68835b9142a733e89fd82d1eb5a7ebad5318 +66045f06e194525c59250e09c8f04b4302b54b34a065b7251dad0eca830e0072 +4c45f345a97061b261e9221361e80aaa1985dfae610990884a04ed65c26ad1b9 +2a28f4e4161caf23a2b8a364e2bc990b27c1341a1754bf1a032aa69846de6e69 +a42731dc7ec26e1abfe2dd09391f70876beec63c307ef0a8026ffe2bef19244b +7123ea890ff1eaba8044d3e4f6436862e52dac2b713bdadd9450eb2235d5e008 +0cae2aaa8967cd68e15fa84dda4bcb391ff5cd8b47b8c08c02cbaf16d83a09d9 +fc09b5aadb7abc34e388c7d973a9a03fc02bf6c36a1f79af7ea72e5765686aa4 +4f142fd393638781733c13265a1a5a3b437369171db0a4117cb61a9eb428a0b9 +ef449cd651e3e4ab905e2a295e77ac44cf8507529333fa63e87bf9961645f51e +8b25e19be7ec03b205474e1f0a19ebeec6f2564d9e19399b27bc0efe6424f017 +6d0f282bca9350a5955d01dbd91cde44e20864a230b76b4cebee653783926293 +4b7f77bdae0d9b0bd14eb611b4da1779b45eb16e329618b9b995cd0fca4af32b +f077f096ca58c3df8dfff71d562800d5f8185fa52e5a9d205e8e51cd9c014448 +ba782fb6ddc461361b5c3962533f756e392286309b71b0b569c1fbcb2962b7ec +17fd34f672c2c15cf1ae5b1e49be71f34f158e72fc09f59fa84b3fe0e04830a5 +a398caf61158de3a12c7a56eb709a5c28c080a710dcea99310b8998731b014cd +ef816a8dc8c73c2b72a23e99998bdd1586c7c31b818a68fb5486041c693d176f +8b160d0329de85cc89a286b485d374fe10129a3ec0b5c087451b8efb7cf08f19 +300a18921401498b580307342ba7df251cfdbd4f5637114eeefc113937263e85 +aa59c840597def86297aa1deaff84e5ee13e406ca73a8b06aab2857a906a8acf +a4862b6c7df139c840ecb800d35cfed13f2697ac8c440287a6a8f56de44ec244 +d30a5c2d704a61699a63af9227e8fda255a36601f0909c9b0ce371c5f8e4e226 +655ec4be0c3dca5b0b2391c3babff3e0f8519273b95001affe12b58ad78b1f07 +83d1db49bee439f5981c2fce2dd7a1b447d02eca534a692293f45ce732c7d69c +bf58aee97f85435b5a81795cc5d91b8b6ee35401dc646087542373f71d8a0b8b +041b134339e6bd073e86a7b2d31ecdaa578e34b53a3de9c93b17a9ea82206547 +4816ef66e8464a04f4a99f76a8b58739871f61f44c98fd7b85f8fe46806e8ee7 +df462a01df21ba6061011810493793b01cc4b58440f5c2c6cf0c2e9de5c286d3 +eed7c590d33ba72d7c76b759ff8e7cc48cbe5623545bf96638a408f3a29e4486 +2e153410f15a6c9b4dba97f2397f7cfe61a83fb4f46f988a9e67f3aef2794335 +5ce0be6d5bba3e2a256df3e0b59abf08b375acaa02388d7ee73510283c482134 +8fe809b097d77099329a79db6843e9e3036d59352efed7f3156d9583f2f30805 +932583c68f2ffdc00ca416 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMSY7 +%!PS-AdobeFont-1.1: CMSY7 1.0 +%%CreationDate: 1991 Aug 15 07:21:52 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /minus put +dup 3 /asteriskmath put +dup 48 /prime put +dup 50 /element put +dup 106 /bar put +readonly def +/FontBBox{-15 -951 1252 782}readonly def +/UniqueXX 5000817 def +currentdict end +currentfile eexec +9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 +05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 +b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a +f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 +d026957276530530a2fbefc6c8f73e9b697ddc0351763500e23c4d170ea8a2d2 +75ad0b6b23097f02fa803c1f46f9ac10fe0e527c431b11b1b9a50e874896cca6 +17fe3e255960846bc319ca68b9b930a45d5d0fc36b352c3443ab6f7793b38d2c +7fb9c409ab7980ead55e9f8f6b83c70088d1fa6d7f2214da8928e40b96334ad2 +72d1b5db9d1355a579b26a8dac21f021e393d7d837a95deb8de92ed818a8b80b +98ee9cdd8a3c57ad7d6eb7a82f43eaa6ec520eefa7302e750edc4b495f70bba2 +24a2182eec37f1a1c5dc8e20973007150237daa6bf03d498826777eeebe09014 +ebfe05a8731e1a421cfc513d47d673e3d94d805f5d0668ffa265e0962cb5a75a +4a93d9b8763c70f88a5d87e970994617fc62f70fb0ed32c459934f23a9f150fa +083cf9eda2757efdfc0ffcf2a563927bbad06da9fbd2cc59328c0d1cbf948664 +ff7eb9e71e42dd9eab74f6d8385bec475fbbbc5d26a9c90ef6e6050ec283a71e +6922d272c3c23863007a9f53cbc7cdf50d3ea31622542858c80e08699eb84656 +ea41df4a8c71471000d202dff2b633a0cf98d403af763ed5240b7e301f14beb6 +0059d1ad4f936e4a3db3338958feb1fa736b970f7b9c0317b9ab2220802aea08 +22f4823816d7cdba7d977abfa1b68382e8ba20c656708ea6599d9912329b2292 +b1672afc5f9806e3aca1e593d770dc728a8798e5e26e536b128c23c131b686d7 +82a279a89e0ff3eb32ef20e5df240933d65f58bd8c79ca297191de63af012daa +658b56745ffaf752d97f342d9ac6c2976fa2a7b56ae33f609451258b9a0cdd1c +f78e711f1878ccbd46489c78534da7ef61aafc7b174d0ec47b78c884b5382993 +8dd2dfffd077c9e38719cb128beefbc65bb2619383071ef0041b8c85762fdba1 +2ab9ae506dd348e40ad87b15727c6729329a2a4f5b674cf802feca3cd12d7b9e +455534b2831cd4cc04a13b890f9dafaded255d79844df6622c203cb82f840afb +8364e5c1e72f39179d7e9dbd4b0778d82840d7ac819be3fbbb93975b34f5a2c1 +874d4112f660462027eb6912f64c049598067ddd0c51e4674034636c4bb0a833 +d50ef70b7b5889cb44a40e8173421082a5058846bde25252254f3258cd8356bc +205f5a2ab23b1babbfe628f2b40753979b7631d163c2a94dc27092273f0382e7 +615a09eeac272e51ddbfb633f1c503ba8f2036c3fbf0608a4e523a12e1613a65 +99149acf52c8b0a077e52551fd08bcb8e7b1d2111f682425deb1e34f227e4103 +06725b89ee10a10996d0aae0d765896f910f97363b9464914c1627d6336bb8f0 +9187f280096696f0e83f7067ac2bb763046b58c206b664d37ca9afe9925055a0 +0c997a12a28cabce6e96d97f782e030ccb2c728053abc09f42 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMR6 +%!PS-AdobeFont-1.1: CMR6 1.0 +%%CreationDate: 1991 Aug 20 16:39:02 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR6) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR6 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +readonly def +/FontBBox{-20 -250 1193 750}readonly def +/UniqueXX 5000789 def +currentdict end +currentfile eexec +9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 +0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 +79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 +2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 +b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d +823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf +5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b +edad3b72ad63c2918b6e5a2017457e0d4ebc204b031f3fc6c13d7da7277a94ba +018e9998b3dd888011a5d7c4204989f30f908b95533bda845746b673ab71ea57 +65a0d14f4350707e47c8276305b28513cbe1bb0dbd269a53719bda46e536685d +df78ca0146b6b93e760256b74d939d4e35b5e77238f04c92298dfdd188feea30 +e053eefbcbb52f2011772b3aae39f5805597bbc1e8bb75a446ce014030f4f2f0 +f49f9e962ee4a1024a746fa92a3628db5270732b54e43fe5ecfa524f127e5fcc +788e77e66098336ad67fe4cccaf0253272d5df79864bf4b734cb9a5859d557d8 +bc11b8e00221ebc12e97de4b1f466ead83a4c894709363bca9040410a52d592e +34ee40cc7e5efa920546b981aa659513a24b1b85c221a1875b62d0b89e57a368 +321b8043a5b094e0379760a443d632892b14ad6d19dacc8c78093243ad67e6a3 +08e56e6b68412ee690b10dac6e17708754a00d51fc957b500eb80175716eef4b +2ca1ef867614659bee3f2b7319e97b6fdf1efc847bf3cee3156f72f21751da8e +5fb6898919e6799820d3de0642d756e09d6fae4ff08dd3deda3173bff4bb11f7 +9109c97ddc05897af709ea199a90fcee8ce4c7a3c15b18170c41c04de2d3fba8 +f34296a95b8e1e8de3739b17273f8f2c85e914615e8eac5e8bd2387ba3b1edf4 +7968f06e2067d836d0f9f3e085cdfd2de06a62c81d786b304326f7002e83160a +36598589228b4dddddc43c85e1d126f8fe81b828028e26317af5894aaccf4f69 +6301e1a9fc45935d8a414957f08febebbc3a72ada80f101e47447d019ade56e9 +f4fab969bba2b44e47399fedf5caa1bcea216d7ba713d523da5d7776ec0bb452 +fc23761a3e881b097d783e6608a001eae5a6b8bb69589902e05d9dbc92f27c27 +2348ae1f0ca880d6428de6fc0eed6c08a0a7814bd38e9bd9ea8abac49d5455ad +f6eb7b914537823b7d84f63fceb9b4b655dc671dd1f5bbb2c0565fb9841d8f88 +c25332d81167dd2e49cbf91b8ff9aaec3caff6f74b9d057de435f022e7bce755 +85dd57330b4a524700b0a0e39d0697795b55e7b1aa507019f565f02f1d67de5f +353296ef3feb20647e28e6e2e380bfa1ee330fe17e58c44ae95716c6a2f09f4d +646a81965cecb7620e62b0b72a5a432364cd0560da0db5a4af5b0e8b4905fcba +b791ddcd766688f158da449332daa27ef2ef2998b0946101bdd4a521433e0c2c +b3ee2aa43022952dd34509c8cb57975a5332ff89b4c150ea14529eb9e7323d34 +f9a1adbb512ad2b78172df0cfb85be7f73d31fe0ac0d6cf98d7e25192196f519 +b57e599040f7c29a34a661bfbe350cbb4c050d22e10acf5380b450d073164518 +a0bf97017d5ca7f23c8b245a90b0c5876e270cd583ce2ef6932c64b9ab57109c +3c10d0ad9e58346513442514d9f7f9829bf36a5cd2a0a4c41fcc029b3abd86e2 +342d2d4f5ad996a02b9d931b09d9b960650fc66dac32b561eddfe9f2852619bc +a885cd130b5cdf131a421a2ceecac3cf636e8a091850e5967052f80bdc72d5a4 +40f35b29e65532db482f07d9ae5b7bf9d49064156f644072de2962c8b73b9d4a +6814b98a16af84222ab2fb12f82b3e936036ee316f01a782734ba7285aea2ed0 +df5875cd0a781978aa6c55d34c2067529cee81accfb090c9e9ca4654cd6a9a29 +3695138f98362a46be6c8a507fc5dea916d9c64a8cda8bf3b996e6faac2358e9 +9fbb29ae326d6b3fd434957c41cb6e8b54eb000003103170093d2f927f266ce1 +f7fe2b5147028c4d41a36277f534b801aa1b28ca6aa004a692dcb5f22348c2fb +2c25faef9ed78cad84ff3d52b3c83d2b56c4a0c2702eb526a2006b52fde7b619 +e1627a170be9eb71f2559520707ccd737002471ee8a5089040d0731a667dcabb +bb30a6e5595695aad80742dac5ceb37924132116791565d50d86b692ce777412 +21b45baebd359adda98c084a0102d6d52f9f774c5798b0bea1ad3ae86111126a +50da58673572778d3bec5fc0161341ad43f221713fcf5d783cc2855d7d17b376 +ee7b97b5452c7cc87c2be2fe187420969facd599b10de1578b0bad79cda626fe +45851f43b5785ba8989cd8290791a8f40931ad8353ac077bd58cc2a99bc95f32 +fbe74ad2e8c2dad4db14612aed39c9c9fdf558eb80e6a92ee5d2fa5ff8ae4a21 +2d3cb19ef141679106b28f30dffd06d9e3a8a592f67a0407eccea6921c55d0bf +961036adb22fbdce5a84feb3dcf64c4408087516edda733b4240e607e26607e1 +ce8b691b28d2c1741caf5d252c97831594479ac0ae2d2261d21a0f45266a9862 +d4ce67aac80573d4132a6cf7472bd3fa17f2c3deef3c7f23e7b5bfd640d4cdea +79331fe5cfad5822352b68c29d18088367d063837b4a6c78ef1e4c3dc3795a4e +3b2cfa5cd67c94aa65c210572001b9fef4a37bd2e557c0353e24857fc5bfb7ab +49e709218905235efa101cde008f98f6cf896186e780ac8877bd4b0935a6 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMSY8 +%!PS-AdobeFont-1.1: CMSY8 1.0 +%%CreationDate: 1991 Aug 15 07:22:10 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 3 /asteriskmath put +dup 13 /circlecopyrt put +readonly def +/FontBBox{-30 -955 1185 779}readonly def +/UniqueXX 5000818 def +currentdict end +currentfile eexec +9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 +05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 +b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a +f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 +d026957276530530a2fbefc6c8f059084178f5ab59e11b66566ca5ba42b1911a +5d7f1bf343015eece988b7a93bce0c7aa61344d48aed9c92c8698d4b7c9951c8 +7d103f2414b39e1437f9d2e50c4ee5f218f2e6716926a79ea978f13b1f855345 +191dd7d31d8f82c2e3343c7a5894d95bdc492c28226834efcb5c12fea36ac5cc +430e0aa604961e34888adf6c1f3954cbc2498e225d953cf5685852162346f474 +5a2a7087d5d7ad486de16d2ca8e15cee26e012671ba3bdc7d95cc8c98bb774f5 +08625e968aee27ff7d1a06e63bcfb5aa4876c3f8f13b30ccccee73c3caf4e70d +98e6ed2f422dbb4950bf789680e064150995941a9f4dd68a575949847a7d012b +b910bf03a69374e341e8036ff92c949f3dc6e86aaa7a2b79532b36ca1496c973 +3f5e789fa3754f83951039e765b6ef8d37389a18ca2655d971ea0ab2f6131886 +1d71a694f55fc3186d85d232f23b49634341f3d4279a84def32013aabbb89fa4 +20ba8b5a82ec05c02340bfc3e91a5db9a027ddccd503a463a6bf851d16d578a6 +b0a76a6efb49266813508e17c5b74b2890d4c8dad59c3a09170f03dc0265a344 +3356687a0d87b14590aafdc0739693bb5e81d1a98faa93a01a1b550d6ff8f53f +06b1c4158d18ebfd24cf56f2a597d93da619a4034396e94a01a3c6b9f05cc22f +2737d96e86155384cb35c41e2b9f34256e7d2765d1981b70b6e4937f7c0ee777 +e2b72dd324b0de03ffb857bc2d97dc2013e0a7c0a796a2ce060a1ae00065ff25 +de3f1433f60a0027f873dde7228f44d5bec99f2090494867fa9dc172a5c6b303 +5547be2f6ade63192e3cced295b049b7b61283a13eeb7a1541f72f6b1f464df9 +a6ba7d783987b571200b314418c8f132f0acc95ee967aaec1c8ee0d734dbf8cd +6ca9e20df809650d5e92b4a48e854ec9d24e1f9a0b0d8fe52779156dabe22ce5 +11ed2afc265c8fdd73c8f73e5de20dcac79671963a66b0967d0c83f5f62240b7 +322bbd4a6f4a4532b6997ea91071c95cfab937f912ade36507ac53e60904ee66 +cd828d58a502e0dc +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueXX 5000790 def +currentdict end +currentfile eexec +9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 +0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 +79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 +2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 +b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d +823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950 +93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21 +c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644 +7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e +13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03 +22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56 +25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1 +c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a +d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2 +b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e +2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd +6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4 +07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331 +51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6 +0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3 +d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1 +34e48d740607ff2e7804164a16d47735864db847c97335e6d4215cb99911a1ec +015a3edaac1f28fedd56d2467130d07bae9416c15f0827d27c6c79f59054282a +418c12c157c91223a829947f47592f7cafd93ca182b25a73a9419127e3b12a9e +5167ac3963f2b019b338ac46d63880f94dda4b538835884d2a5538c85528d6bd +977f844d32b43b0e48caed5a4bdabcefe71695d69ca784db55ff8fd5c5c42e30 +40097ef70580328190679602afd080901928e98fe6d2dc73cac402e4e1ca6f7f +432df214ec854aad9718714bdb6ba5281a79414d38ff3b5d49b6265ac26d3e4e +a6c10279881a342085ea3e9bb3dd7f89bcbcfd367ff35c8e711da5022dce9399 +016902f1575ce159c868f1f9ecac906f7a5e7f60fea3c2e71a2548de75ddaf9e +f3bd912397302b349d1897aca3279b170aee052fb7f473ac38ad55bdb638421a +8ebb6dc9887fe398c58ff86217a35ad1bfc089e8a1dd89af1972e100ee0a289f +4cd724cbd37d89e7b30ff19887f6dfd9332f5efe43d6cb6b4e42d9e70c79face +5741a2d96458bb62f8ab9e12848d9bd05d0c1795a0a45b188762163a0ee14418 +476631c149aa9cc61c746cdaf335337be1e733e652d4650291d864efb26b07f2 +63644ba180e34e0fa0eccbb4f7d0372c7288301dd46dd34fb5d055757f818dd0 +e20ae31124469e7e9a345e0e6be9a0c797c9a3c726b17b1550ba3937203f5764 +2d4d44ce8dba5a13c8cbd99e44015855f93084aa67bae6fb9114361be84268fe +6430900fa1fe389b22da19b6c3437999c1365f39c2bb6abd92eadf93c6d9fa1e +ccdd217fc6d1c2842b5187cff6da02b1c3a9a316c414f8dffc71f0e34c35167c +2a2514a30bb7617e533fdc4bcc453d684f5dc7a290b400c57e87a8719901c077 +4ca32a5e311fe7dab79bfe6036621b6831f817c4d7ba447997e12442fe33cfef +f94e68847de78230a79e2841e73382efaca832c888b25d2bb81b4916dbd747fc +172616ae399eed5be00ffcdd22a2d965ebb2adc7d97156efe60c3fb86399ba49 +ba0223ebd12c75a4d2a9cdea372376993f80992e0122f71f4f23992269b1a21e +b6732d9f6ee4a9e584fa56dbeb6147d098ea6144be68211dd20a9c6b688bb5b6 +c9303d9e39fece40bf91e134b3811568dc7444200faf6a60e0e784df471ef31d +de12b813811fc69ed7de6f1d8aaf407db2339d2ad24696e086d14038feec0f66 +d2e7649fc57a6396a480935be9cb7c54ec870169ce7e6c4431deb30a3e577750 +cf914d9c0c5a83919bca88f5d6f9e579 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 14 /delta put +dup 15 /epsilon1 put +dup 58 /period put +dup 59 /comma put +dup 61 /slash put +dup 68 /D put +dup 70 /F put +dup 77 /M put +dup 80 /P put +dup 81 /Q put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 97 /a put +dup 98 /b put +dup 110 /n put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueXX 5087385 def +currentdict end +currentfile eexec +80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 +74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 +48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f +15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff +da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 +bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 +3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6 +4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a +c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876 +d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe +dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18 +6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22 +168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0 +26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6 +84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2 +b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc +55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7 +8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316 +ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325 +e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1 +24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd45416d +f3459365434123a76ccf883a4973bab19807e1f0c4bab03a45f7ed69ff2660ff +3963e4def11001eec4238c368a39d874fd30b3c14f4186ec7700fbce22abe468 +eb32baf7b0164f8f21a9b5e706b91411faaa44467cb2180ab03de375c1ab93e9 +76e11ab92fdd4a7280a6d1a8dc65c4c89d04c8ed6988045a2a3de9a4c7b1efd3 +75b78d2ee00e6c955ee2c3e0ec7817ca1274bdc3b510be7ebd1e500d0bff5eed +52eb9de4ece6e5e061cbfc0389d458cd198e9ad3eed9b58053df2bb41bd22495 +e9b2be46eca74062f2ffeb08f7034288d43da11b503e0e11b8713c301f0852f7 +ee440cbd0aae1e0c9d7f4f33441d17878cdf154f4e4cf5ae71891da59f0ebbc8 +2d29bc393f4e4544b672ec732662634845cc437be64fcec560d466c7c171c7eb +621d13bf0bca0f672c520e67316b2d95c6f0668a4ab4356aad64ccaef7aee840 +6c9317d8b1c66519a96eea4f1d2db6f27179d209444094ddff0c95d066634f33 +853e7622219ffa825b81ae2faee14921bc58d620daa87b86bfc29baffd8087ea +62790b6eb6436d0a569898d82b85a51eea2e6d3fd15b2710e3b26b8a22028472 +94845e9ede5259e6639068c86f1ecf5d1a8be634f06b9ab919af14c836e8169d +e3948538566cae3f89c7f8e6beeb314a7f530331bb8ece57b901f6b601a7abb2 +1e956fb7313b501923ada1a69c27f09529a4e75540baf813aab4243493850325 +66842f8d1f693da1e9a4a8a3038580e723304c6d34f202a73836f49516daacf3 +b55e276f75f9d398bda2ec531e40a9e17c568c3194f1a8876629e891855d0ae7 +b397ebfcbb553083b79debcc7da4a9d890fc76da60b7de055a9a0cf04eaee382 +671aa1fa6f491a98a19a5903a85e755968751d177410dfdbc392404073dae859 +9fee3175f23b491334d84d3c91f3aea8524804154af668826b942a46f3cc7110 +178ef3935a1d84055ee41a86d936160656aae13f80720835e93e19dc430b695b +67c07dc6a1b319ef0c5f89d818dc890647ecc07e3a047213aeb351c4b5a8c202 +52e121390061bbc50600e4bdce87461a38b75aaa76e1d573783e4a9a9d4f2b4e +15ae1b384b621825eeee6213bef83c49aaeaa543700534b84335e56e2e9a25b7 +156125518069cda1c245ff062e76b418a17a80b2102ba631be200a8c59b0a661 +6a43a8ff790ba582610c24a2dc5175fe865a21cd020a4fd2310102ca7de41fbb +7b8508ef3945e42c2a09da2558cc9a0cb3eb5ddfe92be82a2306a74e138561a3 +18eeae2c92f71a1b3d41e48c3c9addf084765a25eaa2e0881998565dfa999b13 +d413d4a592e1c07b6453a06e6f82a4f8f570f8225f0ac8ba63bcefa2aee1778a +4e3c1ea25f6d50b45af124a70981610f428f7035d09aac792898de54f002ad6a +1877614d6516c8c824f549055a7d87ff2de308378d1ca151b353fec551c5e7db +18752fa603d9d3daefb62c6b2ec6b694cf5cb0115b5341f80fb7a2390463e73a +6c9157bb5adb21eb082869a6993ba7c38da8962cba3388181f2702c411a48c3f +9ffd684cdc15439727fe75fd8f18c8374d75886cf739a799dcd5a2647eea7480 +859da8a3bcd71094629afd1997a05fc1d71762b9abf18dd20e419a412a28d48a +77363b7a9ca6d473f7d177cf19deba5c32fd0132d5f4ea1183e987412ceb85d2 +4f74ab0488174b2e0b820f72bde92874fb79f879319a78021d7b24ecc0758732 +5ab344fdd02c8d356f6a7723c1794c6e77af502b8fd5f06bcb7053ea9ee045cf +a567f2170f31a6ff5d060d81289e2cb6eee427845584a9ed30010898766e31bc +c82c079a8d77df87b49492faa0664ca420b0c50ff01000aced86866083653c1d +dd4835e6dc95b0bcceea56f035a9f7feaf8456fbd9b63227052cbc2f043c8c0b +ea81b79f5e3044fd9e9340f991e67a4751c718a72c90eb0c6bbfd7d31c63ef84 +13b5bbee3924af80a7c27715384debdc1325d21897494c9ad934b26bdc22380e +b5b0ad11f8e2117909ea99b0cdc17de09143ce8e719d975a430caf57414d70e6 +389b8f525e09abeef5c65c977b460062e12db05b7a7333360431dcb7d811f849 +8efd04fbb81193478c8da7d296e2faec6b2c3d0cbb0b550831f830b5022f442d +80de3beb8b0bdac26887e4995909a4769ea2d372a1cb14a8a34387f10337a489 +2bc0736fdcc9731191627f328c49a1593b8f70c64c71076fef587b0208e8ad3f +7eec3f1285ee9f458b024574e4b77f1df1353ecf533b6d75b57889c1f1ded74c +8769080a8ca167833a898f064f55644e5005e6caedde40b40a4b313f4325d933 +c5c94c72e76685289a7887fe046e2ee03c4a7a4f7f94240175ce4efacc2d18ec +d3e3137b1b6e94b50126c5442d3dc7a8a6298d4dacdfb10823087e8ad3ca8ecb +2c24d23bd72590b6ba951378adc0f8d635d8e35bcaf04261788dbf14322eb433 +8ed1096538c12a637e4d5bf1337ab704fdeafd33e83ba58846adbce55d1515cd +039a6413101daea6a4f49d586daa3375873f5accd4b1867f1bd31f91ca6f9329 +ba44f07df61996c7073de8879e6d38959756ea7b19908cf5a081f08b391a9cb8 +a75f6671b9eade89e7289490d41252d987b3499dfa87b31c935ab00f9559cfee +0c0a004a35e2fa0e4f0d44695dbe0b17a6ab6a8d935c500bcce07cbf2853ab4b +15f69779c96c5c9755885a3fb2e0938252c0b5fb85b6a41e95a6b2f420e6ce73 +d8709ecbbee494877df4e26396eb0e854c3ad399588b6d1f213c954dba95ea51 +f3344a8fb5f3d08e3c615036c005d1828c9d4401455ebf6daf11909490ae989a +77884137c9ca94cc33e717d440bdf67dce128af6ffa51cedb61f87f83eff5f84 +0c349d4d7f6e867e9ad941666ff5c632bfc4c2acba7828f6e856b7fef9b08a69 +e090eb5d4c81e59a1df26fe728efea4a99effcf10fa8489c582173f360af7237 +55774b49e17fdb1799412808d9fd071a9d54f89aaa9323246a67e4abe8058c40 +0b1a602938249bd23c95b063b342e7a6771f50c5ba91026dcf3a0108d7d100e6 +eaaa081f6045af8f21da33dee154674c4d3c65780ab9004f26e0b9e729c78f6a +22e9ff47716d11f5d76f92ae0f0f1c43f96af6553eed8693236cb7171e0517f0 +9ccd019c700bc75a6ae72fa99d602041aa95b4572e4c4546db13c86bfc891978 +cb1cbc059aa05b380cacb07f7a8d2850a07c0f5e584d34733a6ed490da861181 +dd723a89e5c607236c523c439fe8141f25cf7dbc9a13ed6584f19819b0b9f0c4 +005fb7f185a172b7c8c984fef306a563ca6d200b36295e0125862a1b0e5859f4 +7915347008fc3a6408293cacb55b5c987a5b23066ad2425597c5e45c7353dd25 +8f84a49fb2f8eb58fb9015b09e509e16b4b88b2fe5da72feefba8d4eeebaf494 +e90f4dbaf8650fa7aa2f8b7ae44a4a8f08816cf7644db8d196b767831bcfa125 +bbcfa4b7ee1aa8a7b22a9829defd1ff7303b8001e385282fc38d9b1ffe04342b +04f46e28acd9c21a1eb95e5289f3ffb4dfa571c28107266b675a1769ddfeb7be +bc3f07e019d70efa77231c1dfe11dc8b768151c4c2a001f7f711f91b8e289024 +5929b163cb5698a9958e144effb0d153e075d6116a1a2bed8c36df672e17018c +74493d29619c639dbe7480eef00285ebe816b667887fee771652ae1f3772d594 +a47cb2d3246631cf0d2e6ac3c5e03ec42a963f5b378c5262e50fc975f2b4c660 +c3c359efd103b41a62d4538d4c6a927c16e21666be203878c5b14dca81ecf757 +775dec363e840cf6fd074bdba5108f6a81c7991a3f40cf8d9a7101f93fb9dca5 +4074c7207984c47048b335e6e7d87f12c17fd282c3831b9c2ac7a07580056bac +b16399b6c211e1aa49753965bb3bc9eac89462f8804b4e51a615a816d2578308 +e845390132d4e32fbc1f65576e85d81f53cc6402868b78eb05b8028862fd80ce +847ca511a3421904482fe693c124d6978e3abdb1eb934806fa0b3a64ae01f4be +f0a37235ebf3b24d50081e3208380c223ed25a8ab1055f2af6e871e78707bad1 +f04acff5fb4ca29411dd4925f748a020cb1fabab9a29ac50e3d8fd430e3775f9 +e624ab77ca4b05e92fae75d3f06d76a2575f3ae3f7fa83806b954c4cbced6cfc +38130874b52cd910c2eb365271d268ab23cd4fa29d2abb407a37678b360d9a90 +3090749b52f4247dc71659733030b2ce8b409fc38e32b931f001ee3350ce9c07 +b46c792a5f7754070690564c2dc9317bf3958e637b78b551a2aaba577bbad52b +e1c5ac15ee46eaa0ca038ac562d657ce24b565f29b8119ca19e8b7e9f997f31a +22ff33e5f1095f5769889b5e9991c41827d10978629a235fa86db7f5139219b5 +06fef252548772985a491a43f4b46ea6c6efbfc8fb73ffd4b0fbe84eb2dffd5f +2d04f66442434b99abf2875a9d5207d611f37d35ccff144d797ada8ea68fccdb +cb95745101bfc5da9558d9678fd04388fe6f2239e19edc692948edf253fd71d0 +438b1cafc02bcb29417307e6665dc117c9f0e82ece7337479e123842f65fec31 +3b5274d569d8f6b27a2fcbb83632b6c539e102d5bc0dc984aaa746f0e1de1db5 +28a15895b58233aa013885defdbbd8fd64a262a8993d3cb516ba368daef29885 +f377240a5af10e5e05789cee83e54b3094667382c0a6998f9816293429a2fae5 +5a2217df27e3d0b9aadf0b5b6a1e3c4cd4ffbeebe429f86ae02f3971e6b15b35 +68b49a3b44fce3478dc6a110f29e2a933f3abea7a37466141568baabd7411a52 +756217e28078fb66133be285fd24877953cd4c39412ca20692e653a9e7d23f1d +231635687a1e35422c5c2343a3946ab5c51356c21f51a64115b2b3e7df1813ff +25ee91c931807c02e640375aba7c9a059ad18c953aa1d233a03e1b0cc46f76c7 +ca0ff71e55aa175d7651f0df2fd880942528a7cd836e8c5b89ab3b0334d425a6 +1acac212587be5e5a7c5d93417747c7094f7bc379e8e956c42df9f29b938abd0 +b7713ad2630f3488f623d70c88a85dca14a0761cdc4b7b9bbd2ebee9b0a6c038 +50aeb5e4b0535b842d09497af5fa481b671a8c644858cefbc63d189c28a83007 +c766fe23f7992d0720b66c1a1bcd96330445e0e2ffd14a4eb3eea827b3730001 +872e82cccb9a2a503d85e95076d0f53969425836ec7a3571fdb0fa817682835c +6babce55981cb1854267ab7f89e696cec60ecea00fd7d5abe69709c95dc8898a +47c1349e72218b6dd5abc6df734c37995756984b26c0571ca730cdcc864714c9 +ed5c11d5005ab9b15b0e4e6e6fb1609d3cc751572a625c448646ca04c955b7cc +7ebca59337f9d880109150feed4cdd1eb37d3b22f213fc43e73829be38479352 +5e3ef510de8086fd01f331b3ffb07cd3bbffe56cd21c439bd567d51bfc1ebb8a +22a6d0d19467958947c0e3a956fb9beedb594f5c7e060b812c12997883c12d1f +fba4e766c72fb0bcbaab290d3787ccbf411da60170bebd7b749f52bf5977c8a8 +b6644df6622e5206530a3785afa2873ea696d5b467b4c3b09c06dfc6cfbee520 +621580f0211c7594839071d28a36ffa22b46907b380d1b71f9d6670868289bd6 +d641e4c43540e9f29d9edbd72deea4e2e4d16fa441fa1b46f73608715194d40b +b3ce6c918c31a4dd573202205eea2f7232ed59a43a81b053190d8b1e9e0097b3 +8ea091ffb9e27942a5bca1637611e56e5028fd66f28991c571e16fbca14f3406 +7fb2e1876516f81d0960f0ab356f372407d1a02b6afbff927932437e5bbb5425 +1c2f24352eaa48f3ed3e963e7c8f2115d13816e80ef7f12e91b226dd7632b655 +439f10b8413d7a15758d9eedc2cc612d042bfb2698143e11c8dee61c78c8cc5a +f313aaf35e665a2fbc28da960e2a8e58bc76b488ce3c74cd3480b584a1588ae5 +207d2ccf3d72f00c8b0c49aa15dc69a650c8203fffd1ff7eb4c766d2ecf5c9e1 +373a479a7c1192e92288c16b2be7c46a096687af1fd2e766899dba63e8153b2f +2a78c48a5363789a1baf924f4802bbc411b10e3abac5e10e04ae7bf53394fead +23dcc6bb0c03978b9c6f9436b182c3634bb29f4e94477d7b745e9247cebcdbfe +94d2810a15529bbaaa2a57ac8255e03a33bf30d633668328503444a2f8fa5bc5 +c02c97f942e325ce92770ebea0b783bc1106c3e021f5f2738665717580344c6b +5d1cbb142a40e2b863a4356b07149c021471f20c282615e997df7c74783b523c +8d90f000d7a6a6f45fdff7d1e0276246bfa6885bb67c317c8f2a8ba36e31f6f0 +a8799d0ee485f2d33041f03d98c4d33de3d6602f23bb09d234d6b71c6688198e +b6217ef1088abf762140a442ccf0767685129ae52bca01389229478fa02432c6 +bb126be105d248 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +%%BeginFont: CMSY6 +%!PS-AdobeFont-1.1: CMSY6 1.0 +%%CreationDate: 1991 Aug 15 07:21:34 + +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. + +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY6) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY6 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 3 /asteriskmath put +readonly def +/FontBBox{-4 -948 1329 786}readonly def +/UniqueXX 5000816 def +currentdict end +currentfile eexec +9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 +05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 +b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a +f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 +d026957276530530a2fbefc6c8f059084178f5ab59e11b6a18979f258b8c6ed3 +ccafbc21aca420c9c83eea371adc20e038b4d7b8ac303004b0aa205f04135140 +76407216032fdd22e6219da8f16b28ca12524deb7bca073cc5eba65c102a5e85 +fd48e6d062cd4283ee570a7774597e5bf0e3400b6be72db0115f3cb12db70ce0 +83722870cddfadee715f10f1fcaf20e06f3c54afe5ca238539bfe2b596116e83 +f5371ff18fa5003d8543226cfd4025f9940365b392a858d27f078d3abcffe4a1 +54e78c7692d1a32bf935967c64f01b24788ff8325d61145e2d4a489fd986fb77 +38e6b254522c77ca2797a504a9ce4676a77ebacb026eca94dde5922c936f8e90 +c43e28519671e8def84a1526a8b89450ef2bd624857da91e76994317b723923a +47cb7b71e71550262a4a4eeef7e0d2eba371584b12b189f38fdb9feabf33b900 +d528bea06075d4e71d7696aa2ce7a5bf900014283045468c2625de16e2000219 +15074a97c681b3c6eee6d67ec3e481e174b53d1a3dd58da4507f93fa57f4f715 +e5df982321fae7682dcd02c3e977327fa2b9b80ef30e834269bba9c69dcd694b +b055398be8186c0a2d19f9c101f67b30c506d8fe62dd7da5dc0d4c7abd32f9c3 +c64e081ca3cda88b1949fa64f70da6cb7a544360778ed200f21b04958bdbd70f +044e7e611a28443d0c7b8049413c0ac989dd986086bb0b8a304c185458138b9f +6c929aec9a804d4422ce5429d29a5c03b8a7916ed162a368650de8db6d9961ab +cf373b396ed91d0289d26958cce7318fd7cde1bedb07347b1990557b33352b61 +b18672a53c81d8766a5260d28b9a2aaa542368e2c307cfedbb67e7a5a2b0fdfe +8ee5f5f0c0f3cb9e7744b87ceee63dab32 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + +%%EndFont +TeXDict begin 39158280 55380996 1000 600 600 () @start +/Fa 240[31 15[{}1 74.7198 /CMMI9 rf /Fb 131[50 1[50 5[50 +50 50 1[50 50 50 50 50 2[50 50 1[50 50 50 2[50 44[50 +4[50 47[{TeXBase1Encoding ReEncodeFont}18 83.022 /Courier +rf /Fc 134[37 37 2[42 25 29 29 35 37 33 42 58 21 33 1[21 +37 37 21 29 37 30 35 33 9[71 54 58 46 42 50 1[46 58 58 +71 42 2[25 58 54 42 46 1[50 1[54 5[19 1[37 37 37 37 37 +1[37 37 37 2[19 25 19 4[21 39[{TeXBase1Encoding ReEncodeFont}53 +74.7198 /Palatino-Italic rf /Fd 136[62 1[46 25 33 29 +2[42 46 66 25 46 1[25 1[42 29 37 46 33 46 37 12[50 1[54 +11[42 4[58 7[37 37 37 37 37 37 37 37 37 49[{ +TeXBase1Encoding ReEncodeFont}31 74.7198 /Palatino-Bold +rf /Fe 172[69 83[{}1 83.022 /CMEX10 rf /Ff 135[43 2[50 +27 35 33 1[50 45 48 73 24 46 1[24 1[46 1[40 51 37 46 +42 12[51 44 12[46 28[28 28 40[{ +.167 SlantFont TeXBase1Encoding ReEncodeFont}23 83.022 +/Palatino-Roman rf /Fg 139[24 29 15[28 1[34 37[19 59[{}5 +49.8132 /CMMI6 rf /Fh 134[33 3[37 22 26 26 1[33 29 37 +52 18 2[18 33 33 1[26 33 27 31 29 97[{TeXBase1Encoding ReEncodeFont}18 +66.4176 /Palatino-Italic rf /Fi 138[39 25 31 2[34 5[27 +23 5[30 1[36 8[54 2[45 3[52 42 20[20 59[{}13 58.1154 +/CMMI7 rf /Fj 162[23 1[23 29[65 1[23 23 3[42 42 42 42 +42 42 7[32 32 33[60 6[{}14 83.022 /CMR10 rf /Fk 149[23 +2[42 42 9[55 55 31[42 8[55 16[83 13[65 65 2[42 12[65 +2[{}12 83.022 /CMSY10 rf /Fl 149[20 55[45 1[19 44[34 +2[52{}5 58.1154 /CMSY7 rf /Fm 138[46 32 37 32 1[46 7[46 +42 1[37 2[45 46 97[{TeXBase1Encoding ReEncodeFont}10 +83.022 /Palatino-BoldItalic rf /Fn 201[30 30 30 30 30 +30 49[{}6 49.8132 /CMR6 rf /Fo 103[25 1[37 27[37 42 39 +62 42 45 24 32 30 42 45 41 43 66 22 42 17 22 43 42 25 +36 46 33 41 37 21 6[50 1[75 54 58 46 39 50 1[45 59 62 +71 46 54 25 25 62 57 42 46 58 53 46 58 5[19 19 37 37 +37 37 37 37 37 37 37 37 45 19 25 19 2[25 25 21 58 35[45 +2[{TeXBase1Encoding ReEncodeFont}73 74.7198 /Palatino-Roman +rf /Fp 103[22 30[37 34 55 38 40 22 28 26 37 40 36 39 +59 19 37 1[19 39 37 22 32 41 29 37 33 9[66 2[41 1[44 +2[52 55 63 41 1[22 22 55 1[37 41 51 47 41 52 50 5[17 +33 33 1[33 33 33 33 33 33 33 40 17 22 17 2[22 22 18 52 +35[40 2[{TeXBase1Encoding ReEncodeFont}61 66.4176 /Palatino-Roman +rf /Fq 242[71 9[35 3[{}2 66.4176 /CMSY8 rf /Fr 204[33 +33 33 33 48[{}4 58.1154 /CMR7 rf /Fs 135[42 69 46 51 +28 37 32 1[51 46 51 74 28 1[28 28 51 46 32 42 51 37 51 +42 10[65 2[51 2[51 2[83 51 2[32 2[46 51 1[60 1[65 11[42 +42 42 42 42 2[21 28 42[51 2[{TeXBase1Encoding ReEncodeFont}40 +83.022 /Palatino-Bold rf /Ft 138[48 30 39 37 37 42 1[50 +11[36 44 11[57 49 51 1[66 53 2[81 6[53 1[69 6[42 1[23 +23 42[34 37 14[{}22 83.022 /CMMI10 rf /Fu 133[37 42 42 +60 42 46 28 32 32 1[42 37 46 65 23 37 23 23 42 42 23 +32 42 34 38 37 11[65 51 46 55 4[78 6[46 51 65 55 1[60 +6[21 11[21 28 21 41[44 2[{TeXBase1Encoding ReEncodeFont}40 +83.022 /Palatino-Italic rf /Fv 103[28 83 28[42 46 43 +69 47 50 27 35 33 46 50 45 48 73 24 46 19 24 48 46 28 +40 51 37 46 42 23 2[28 1[28 2[55 83 60 65 51 44 55 1[50 +65 69 79 51 60 28 28 69 63 46 51 64 59 51 65 3[50 1[21 +21 42 42 42 42 42 42 42 42 42 42 50 21 28 21 50 1[28 +28 23 65 2[42 31[50 50 2[{TeXBase1Encoding ReEncodeFont}79 +83.022 /Palatino-Roman rf /Fw 252[32 3[{}1 49.8132 /CMSY6 +rf /Fx 137[56 1[32 1[39 2[54 58 3[23 4[48 61 2[50 18[83 +6[76 71[{TeXBase1Encoding ReEncodeFont}11 99.6264 /Palatino-Roman +rf /Fy 137[80 88 48 64 56 1[88 80 88 128 48 2[48 2[56 +72 1[64 88 72 12[96 88 5[143 7[88 1[104 67[{ +TeXBase1Encoding ReEncodeFont}21 143.462 /Palatino-Bold +rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%BeginPaperSize: a4 +% a4 +%%EndPaperSize + +%%EndSetup +%%Page: 1 1 +1 0 bop Black Black 330 377 a Fy(T)-16 b(reatment)33 +b(of)j(Epsilon)e(Moves)h(in)g(Subset)330 543 y(Construction)330 +909 y Fx(Gertjan)26 b(van)f(Noor)n(d)1160 877 y Fw(\003)330 +997 y Fv(Rijksuniversiteit)e(Gr)o(oningen)329 1331 y +Fu(The)29 b(paper)g(discusses)h(the)f(pr)o(oblem)g(of)h(determinising)f +(\002nite-state)g(automata)f(containing)g(lar)o(ge)330 +1439 y(numbers)34 b(of)e Ft(\017)p Fu(-moves.)f(Experiments)h(with)f +(\002nite-state)h(appr)o(oximations)e(of)i(natural)h(language)330 +1547 y(grammars)d(often)h(give)g(rise)h(to)e(very)h(lar)o(ge)f +(automata)g(with)g(a)g(very)h(lar)o(ge)g(number)g(of)g +Ft(\017)p Fu(-moves.)330 1655 y(The)21 b(paper)f(identi\002es)h(and)g +(compar)o(es)f(a)h(number)g(of)g(subset)h(construction)f(algorithms)f +(which)g(tr)o(eat)330 1762 y Ft(\017)p Fu(-moves.)j(Experiments)h(have) +g(been)h(performed)f(which)g(indicate)g(that)f(the)h(algorithms)f +(differ)i(con-)330 1870 y(siderably)19 b(in)g(practice,)f(both)g(with)h +(r)o(espect)f(to)g(the)h(size)g(of)g(the)f(r)o(esulting)h +(deterministic)g(automaton,)330 1978 y(and)j(with)f(r)o(espect)h(to)f +(practical)h(ef\002ciency)m(.)f(Furthermor)o(e,)h(the)g(experiments)g +(suggest)g(that)e(the)i(av-)330 2086 y(erage)e(number)h(of)f +Ft(\017)p Fu(-moves)f(per)h(state)g(can)f(be)i(used)f(to)g(pr)o(edict)e +(which)h(algorithm)f(is)j(likely)e(to)h(be)h(the)330 +2194 y(fastest)g(for)g(a)f(given)h(input)f(automaton.)330 +2393 y Fs(1)g(Introduction)330 2593 y(1.1)g(Finite-state)c(Language)j +(Processing)330 2692 y Fv(An)29 b(important)g(pr)o(oblem)f(in)i +(computational)f(linguistics)h(is)g(posed)e(by)h(the)g(fact)f(that)h +(the)330 2792 y(grammars)21 b(which)i(ar)o(e)e(typically)h +(hypothesised)h(by)f(linguists)h(ar)o(e)d(unattractive)h(fr)o(om)h(the) +330 2892 y(point)j(of)e(view)h(of)g(computation.)g(For)g(instance,)g +(the)g(number)g(of)g(steps)f(r)o(equir)o(ed)g(to)h(anal-)330 +2991 y(yse)18 b(a)g(sentence)g(of)g Ft(n)f Fv(wor)o(ds)h(is)h +Ft(n)1398 2961 y Fr(3)1453 2991 y Fv(for)e(context-fr)o(ee)g(grammars.) +g(For)h(certain)g(linguistically)330 3091 y(mor)o(e)25 +b(attractive)g(grammatical)g(formalisms)h(it)g(can)f(be)g(shown)i(that) +f(no)g(upper)o(-bound)f(to)330 3190 y(the)31 b(number)g(of)g(steps)g(r) +o(equir)o(ed)f(to)h(\002nd)g(an)g(analysis)g(can)f(be)h(given.)g(The)g +(human)g(lan-)330 3290 y(guage)24 b(user)-6 b(,)25 b(however)-6 +b(,)24 b(seems)h(to)g(pr)o(ocess)f(in)i(linear)e(time;)h(humans)g +(understand)f(longer)330 3390 y(sentences)32 b(with)g(no)f(noticeable)h +(delay)-9 b(.)30 b(This)h(implies)h(that)g(neither)f(context-fr)o(ee)f +(gram-)330 3489 y(mars)17 b(nor)h(mor)o(e)f(powerful)h(grammatical)f +(formalisms)h(ar)o(e)e(likely)i(models)g(for)f(human)h(lan-)330 +3589 y(guage)23 b(pr)o(ocessing.)g(An)g(important)h(issue)g(ther)o +(efor)o(e)d(is)j(how)g(the)f(linearity)h(of)f(pr)o(ocessing)330 +3689 y(by)e(humans)g(can)g(be)f(accounted)g(for)-6 b(.)479 +3788 y(A)26 b(potential)g(solution)h(to)f(this)h(pr)o(oblem)e(concerns) +h(the)g(possibility)h(of)f Fu(appr)o(oximating)330 3888 +y Fv(an)17 b(underlying)h(general)e(and)h(abstract)f(grammar)h(by)g +(techniques)h(of)f(a)g(much)g(simpler)h(sort.)330 3987 +y(The)g(idea)g(that)g(a)g(competence)g(grammar)g(might)h(be)f(appr)o +(oximated)e(by)j(\002nite-state)f(means)330 4087 y(goes)24 +b(back)g(to)g(early)f(work)h(by)g(Chomsky)i(\(Chomsky)-9 +b(,)24 b(1963;)e(Chomsky)-9 b(,)24 b(1964\).)e(Ther)o(e)g(ar)o(e)330 +4187 y(essentially)h(thr)o(ee)e(observations)i(which)g(motivate)f(the)h +(view)f(that)g(the)h(pr)o(ocessing)f(of)g(nat-)330 4286 +y(ural)e(language)h(is)g(\002nite-state:)p Black 571 +4469 a(1.)p Black -5 w(humans)g(have)g(a)f(\002nite)h(\(small,)g +(limited,)g(\002xed\))e(amount)j(of)f(memory)g(available)629 +4569 y(for)f(language)h(pr)o(ocessing)p Black 571 4735 +a(2.)p Black -5 w(humans)g(have)g(pr)o(oblems)f(with)i(certain)e +(grammatical)g(constr)o(uctions,)j(such)e(as)629 4834 +y(center)o(-embedding,)e(which)j(ar)o(e)d(impossible)j(to)f(describe)f +(by)h(\002nite-state)f(means)629 4934 y(\(Miller)g(and)g(Chomsky)-9 +b(,)22 b(1963\))p Black 571 5100 a(3.)p Black -5 w(humans)f(pr)o(ocess) +g(natural)f(language)g(very)h(ef)o(\002ciently)f(\(in)h(linear)f +(time\))p Black 330 5293 1495 4 v 371 5371 a Fq(\003)d +Fp(Alfa-informatica)h(&)e(BCN.)h(E-mail:)f(vannoor)o(d@let.r)o(ug.nl)p +Black Black 351 5942 a(c)330 5944 y Fq(\015)g Fp(2000)i(Association)f +(for)h(Computational)e(Linguistics)p Black eop +%%Page: 2 2 +2 1 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black 330 357 +a Fs(1.2)h(Finite-state)c(Approximation)i(and)i Ft(\017)p +Fs(-moves)330 457 y Fv(In)27 b(experimenting)f(with)h(\002nite-state)f +(appr)o(oximation)g(techniques)i(for)e(context-fr)o(ee)e(and)330 +556 y(mor)o(e)17 b(powerful)h(grammatical)f(formalisms)h(\(such)g(as)f +(the)h(techniques)h(pr)o(esented)d(in)j(Black)330 656 +y(\(1989\),)24 b(Per)o(eira)i(and)h(W)-6 b(right)28 b(\(1991\),)d(Rood) +j(\(1996\),)c(Per)o(eira)i(and)h(W)-6 b(right)28 b(\(1997\),)c(Evans) +330 756 y(\(1997\),)31 b(Neder)o(hof)h(\(1997\),)f(Neder)o(hof)i +(\(1998\),)e(Johnson)k(\(1998\))c(\))i(we)h(have)f(found)h(that)330 +855 y(the)24 b(r)o(esulting)f(automata)g(often)h(ar)o(e)e(extr)o(emely) +g(lar)o(ge.)g(Mor)o(eover)-6 b(,)22 b(the)i(automata)e(contain)330 +955 y(many)f Ft(\017)p Fv(-moves)g(\()p Fu(jumps)p Fv(\).)e(And)i +(\002nally)-9 b(,)21 b(if)f(such)i(automata)e(ar)o(e)f(determinised)i +(then)g(the)g(r)o(e-)330 1054 y(sulting)h(automata)d(ar)o(e)h(often)g +Fu(smaller)p Fv(.)h(It)f(turns)h(out)g(that)g(a)f(straightforwar)o(d)f +(implementa-)330 1154 y(tion)j(of)f(the)g(subset)h(constr)o(uction)h +(determinisation)e(algorithm)h(performs)f(badly)g(for)g(such)330 +1254 y(inputs.)k(In)f(this)h(paper)e(we)h(consider)g(a)g(number)g(of)g +(variants)g(of)g(the)g(subset-constr)o(uction)330 1353 +y(algorithm)e(which)f(dif)o(fer)e(in)i(their)g(tr)o(eatment)f(of)h +Ft(\017)p Fv(-moves.)479 1453 y(Although)30 b(we)e(have)g(observed)g +(that)g(\002nite-state)h(appr)o(oximation)f(techniques)h(typi-)330 +1553 y(cally)h(yield)g(automata)g(with)g(lar)o(ge)f(amounts)i(of)f +Ft(\017)p Fv(-moves,)g(this)h(is)f(obviously)i(not)f(a)e(ne-)330 +1652 y(cessity)-9 b(.)21 b(Instead)f(of)g(trying)h(to)g(impr)o(ove)g +(upon)g(determinisation)g(techniques)g(for)g(such)g(au-)330 +1752 y(tomata)k(it)g(might)i(be)d(mor)o(e)h(fr)o(uitful,)g(per)o(haps,) +f(to)i(try)f(to)g(impr)o(ove)g(these)g(appr)o(oximation)330 +1851 y(techniques)g(in)g(such)g(a)e(way)h(that)h(mor)o(e)f(compact)g +(automata)f(ar)o(e)g(pr)o(oduced.)2914 1820 y Fn(1)2973 +1851 y Fv(However)-6 b(,)330 1951 y(because)26 b(r)o(esear)o(ch)f(into) +i(\002nite-state)g(appr)o(oximation)f(is)h(still)h(of)e(an)h +(exploratory)f(and)h(ex-)330 2051 y(perimental)g(natur)o(e,)e(it)j(can) +e(be)h(ar)o(gued)e(that)i(mor)o(e)g(r)o(obust)f(determinisation)i +(algorithms)330 2150 y(do)e(still)h(have)f(a)g(r)o(ole)g(to)h(play:)e +(it)i(can)f(be)g(expected)f(that)h(appr)o(oximation)g(techniques)h(ar)o +(e)330 2250 y(much)f(easier)f(to)h(de\002ne)f(and)g(implement)h(if)g +(the)f(r)o(esulting)h(automaton)g(is)g(allowed)f(to)h(be)330 +2350 y(non-deterministic)c(and)e(to)h(contain)g Ft(\017)p +Fv(-moves.)479 2449 y(Note)f(furthermor)o(e)e(that)h(even)g(if)g(our)g +(primary)g(motivation)h(is)g(in)g(\002nite-state)f(appr)o(ox-)330 +2549 y(imation,)24 b(the)f(pr)o(oblem)g(of)g(determinising)h +(\002nite-state)f(automata)f(with)i Ft(\017)p Fv(-moves)f(may)g(be)330 +2648 y(r)o(elevant)d(in)h(other)g(ar)o(eas)e(of)i(language)f(r)o(esear) +o(ch)f(as)h(well.)330 2848 y Fs(1.3)g(Subset)e(construction)i(and)f +Ft(\017)p Fs(-moves)330 2947 y Fv(The)50 b(experiments)g(wer)o(e)f +(performed)g(using)h(the)h Fu(FSA)f(Utilities)p Fv(.)f(The)h +Fu(FSA)g(Utilities)330 3047 y Fv(tool-box)j(\(van)e(Noor)o(d,)h(1997;)e +(van)h(Noor)o(d,)h(1999;)e(Ger)o(demann)h(and)h(van)g(Noor)o(d,)330 +3147 y(1999;)44 b(van)i(Noor)o(d)g(and)f(Ger)o(demann,)g(1999\))f(is)j +(a)e(collection)i(of)f(tools)i(to)e(manipu-)330 3246 +y(late)36 b(r)o(egular)f(expr)o(essions,)h(\002nite-state)h(automata)e +(and)i(\002nite-state)f(transducers.)f(Ma-)330 3346 y(nipulations)40 +b(include)e(determinisation,)h(minimisation,)i(composition,)f +(complementa-)330 3445 y(tion,)g(intersection,)g(Kleene)g(closur)o(e,)f +(etc.)g(V)-8 b(arious)40 b(visualisation)h(tools)f(ar)o(e)e(available) +330 3545 y(to)i(br)o(owse)g(\002nite-state)g(automata.)f(The)h +(tool-box)g(is)h(implemented)f(in)g(SICStus)g(Pr)o(o-)330 +3645 y(log,)49 b(and)g(is)g(available)f(fr)o(ee)f(of)i(char)o(ge)f +(under)g(Gnu)i(General)e(Public)i(License)e(via)330 3744 +y(anonymous)35 b(ftp)e(at)g(ftp://ftp.let.r)o(ug.nl/pub/vannoor)o +(d/Fsa/,)h(and)f(via)g(the)h(web)f(at)330 3844 y(http://www)-8 +b(.let.r)o(ug.nl/\230vannoor)o(d/Fsa/.)38 b(At)e(the)g(time)h(of)f(our) +g(initial)h(experiments)330 3944 y(with)31 b(\002nite-state)f(appr)o +(oximation,)g(an)g(old)h(version)g(of)f(the)h(tool-box)g(was)f(used,)g +(which)330 4043 y(ran)d(into)h(memory)f(pr)o(oblems)g(for)g(some)h(of)e +(these)i(automata.)e(For)h(this)h(r)o(eason,)e(the)h(sub-)330 +4143 y(set)i(constr)o(uction)i(algorithm)f(has)f(been)f(r)o +(e-implemented,)g(paying)h(special)g(attention)h(to)330 +4242 y(the)25 b(tr)o(eatment)f(of)h Ft(\017)p Fv(-moves.)f(Thr)o(ee)g +(variants)g(of)h(the)g(subset)g(constr)o(uction)i(algorithm)e(ar)o(e) +330 4342 y(identi\002ed)c(which)g(dif)o(fer)e(in)j(the)e(way)h +Ft(\017)p Fv(-moves)g(ar)o(e)e(tr)o(eated:)p Black 330 +4525 a Fm(per)i(graph)p Black 42 w Fv(The)d(most)h(obvious)h(and)d +(straightforwar)o(d)h(appr)o(oach)e(is)j(sequential)g(in)g(the)f(fol-) +629 4624 y(lowing)33 b(sense.)g(Firstly)-9 b(,)32 b(an)g(equivalent)g +(automaton)h(without)g Ft(\017)p Fv(-moves)f(is)h(con-)629 +4724 y(str)o(ucted)16 b(for)g(the)h(input.)f(In)h(or)o(der)e(to)i(do)g +(this,)g(the)f(transitive)g(closur)o(e)g(of)h(the)f(graph)629 +4824 y(consisting)27 b(of)e(all)g Ft(\017)p Fv(-moves)f(is)i(computed.) +f(Secondly)-9 b(,)24 b(the)h(r)o(esulting)h(automaton)629 +4923 y(is)20 b(then)g(tr)o(eated)e(by)i(a)f(subset)h(constr)o(uction)i +(algorithm)e(for)g Ft(\017)p Fv(-fr)o(ee)d(automata.)i(Dif-)629 +5023 y(fer)o(ent)g(variants)h(of)g Fu(per)g(graph)f Fv(can)h(be)g +(identi\002ed,)f(depending)i(on)f(the)h(implemen-)629 +5122 y(tation)g(of)g(the)g Ft(\017)p Fv(-r)o(emoval)e(step.)p +Black 330 5289 a Fm(per)i(state)p Black 42 w Fv(For)d(each)g +Fu(state)g Fv(which)h(occurs)f(in)h(a)f(subset)g(pr)o(oduced)f(during)h +(subset)h(constr)o(uc-)p Black 330 5458 1495 4 v 373 +5536 a Fp(1)e(Indeed,)e(a)i(later)g(implementation)e(by)h(Neder)o(hof)h +(avoids)f(constr)o(uction)i(of)f(the)f(complete)g(non-determistic)423 +5611 y(automaton)g(by)g(minimising)h(sub-automata)g(befor)o(e)f(they)g +(ar)o(e)g(embedded)e(into)j(lar)o(ger)g(sub-automata.)p +Black Black 3288 5944 a Fv(2)p Black eop +%%Page: 3 3 +3 2 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black 629 357 +a Fv(tion,)i(compute)f(the)h(states)f(which)h(ar)o(e)e(r)o(eachable)f +(using)j Ft(\017)p Fv(-moves.)f(The)g(r)o(esults)g(of)629 +457 y(this)25 b(computation)g(can)g(be)f(memorised,)g(or)h(computed)f +(for)h(each)e(state)i(in)f(a)g(pr)o(e-)629 556 y(pr)o(ocessing)31 +b(step.)g(This)h(is)f(the)g(appr)o(oach)f(mentioned)i(brie\003y)f(in)h +(Johnson)g(and)629 656 y(W)-8 b(ood)21 b(\(1997\).)1111 +624 y Fn(2)p Black 330 822 a Fm(per)g(subset)p Black +43 w Fv(For)35 b(each)e Fu(subset)j Ft(Q)e Fv(of)h(states)f(which)h +(arises)f(during)h(subset)g(constr)o(uction,)629 922 +y(compute)19 b Ft(Q)1036 891 y Fl(0)1082 922 y Fk(\023)k +Ft(Q)18 b Fv(which)i(extends)e Ft(Q)h Fv(with)g(all)g(states)f(which)i +(ar)o(e)e(r)o(eachable)e(fr)o(om)629 1021 y(any)25 b(member)f(of)h +Ft(Q)f Fv(using)i Ft(\017)p Fv(-moves.)e(Such)h(an)f(algorithm)i(is)f +(described)f(in)h(Aho,)629 1121 y(Sethi,)20 b(and)h(Ullman)f(\(1986\).) +479 1303 y(The)d(motivation)i(for)d(this)i(paper)e(is)h(the)g +(experience)f(that)h(the)g(\002rst)h(appr)o(oach)d(turns)j(out)330 +1403 y(to)h(be)f(impractical)g(for)g(automata)f(with)j(very)e(lar)o(ge) +f(numbers)i(of)f Ft(\017)p Fv(-moves.)g(An)g(integration)330 +1503 y(of)32 b(the)g(subset)f(constr)o(uction)j(algorithm)e(with)h(the) +f(computation)g(of)g Ft(\017)p Fv(-r)o(eachable)d(states)330 +1602 y(performs)20 b(much)i(better)e(in)h(practice)f(for)g(such)i +(automata.)479 1702 y(Section)35 b(2)f(pr)o(esents)f(a)h(short)h +(statement)f(of)h(the)f(pr)o(oblem)g(\(how)h(to)f(determinise)g(a)330 +1802 y(given)c(\002nite-state)g(automaton\),)g(and)g(a)f(subset)i +(constr)o(uction)h(algorithm)e(which)h(solves)330 1901 +y(this)23 b(pr)o(oblem)g(in)g(the)g(absence)f(of)h Ft(\017)p +Fv(-moves.)f(Section)h(3)f(de\002nes)h(a)f(number)h(of)g(subset)g(con-) +330 2001 y(str)o(uction)28 b(algorithms)g(which)f(dif)o(fer)e(with)j(r) +o(espect)e(to)h(the)g(tr)o(eatment)f(of)g Ft(\017)p Fv(-moves.)h(Most) +330 2100 y(aspects)21 b(of)g(the)g(algorithms)h(ar)o(e)e(not)i(new)f +(and)g(have)g(been)g(described)f(elsewher)o(e,)g(and/or)330 +2200 y(wer)o(e)j(incorporated)g(in)h(pr)o(evious)g(implementations;)h +(a)e(comparison)h(of)g(the)g(dif)o(fer)o(ent)e(al-)330 +2300 y(gorithms)28 b(had)e(not)h(been)f(performed)g(pr)o(eviously)-9 +b(.)26 b(W)-8 b(e)26 b(pr)o(ovide)g(a)g(comparison)h(with)g(r)o(e-)330 +2399 y(spect)e(to)h(the)g(size)f(of)g(the)h(r)o(esulting)f +(deterministic)h(automaton)g(\(in)g(section)g(3\))e(and)h(prac-)330 +2499 y(tical)d(ef)o(\002ciency)g(\(in)h(section)h(4\).)d(Section)i(4)f +(pr)o(ovides)g(experimental)g(r)o(esults)h(both)g(for)g(ran-)330 +2599 y(domly)30 b(generated)f(automata)g(and)g(for)g(automata)g +(generated)f(by)i(appr)o(oximation)f(algo-)330 2698 y(rithms.)j(Our)f +(implementations)h(of)f(the)g(various)g(algorithms)i(ar)o(e)c(also)i +(compar)o(ed)f(with)330 2798 y(A)-6 b(T&T's)20 b(FSM)g(utilities)h +(\(Mohri,)g(Per)o(eira,)e(and)h(Riley)-9 b(,)21 b(1998\),)d(to)j +(establish)g(that)g(the)g(experi-)330 2897 y(mental)g(dif)o(fer)o +(ences)d(we)j(\002nd)g(between)f(the)h(algorithms)g(ar)o(e)f(tr)o(uly)h +(caused)f(by)g(dif)o(fer)o(ences)330 2997 y(in)h(the)g(algorithm)h +(\(as)e(opposed)h(to)g(accidental)f(implementation)h(details\).)330 +3196 y Fs(2)f(Subset)f(Construction)330 3396 y(2.1)h(Problem)f +(statement)330 3495 y Fv(Let)30 b(a)h(\002nite-state)f(machine)h +Ft(M)39 b Fv(be)31 b(speci\002ed)f(by)h(a)f(tuple)h Fj(\()p +Ft(Q;)14 b Fj(\006)p Ft(;)g(\016)o(;)g(S;)g(F)e Fj(\))30 +b Fv(wher)o(e)g Ft(Q)g Fv(is)h(a)330 3595 y(\002nite)24 +b(set)f(of)h(states,)f Fj(\006)g Fv(is)h(a)f(\002nite)h(alphabet,)e +Ft(\016)k Fv(is)e(a)f(function)h(fr)o(om)f Ft(Q)d Fk(\002)g +Fj(\(\006)h Fk([)f(f)p Ft(\017)p Fk(g)p Fj(\))27 b Fk(!)h +Fj(2)3253 3565 y Fi(Q)3309 3595 y Fv(.)330 3694 y(Furthermor)o(e,)20 +b Ft(S)28 b Fk(\022)23 b Ft(Q)d Fv(is)h(a)f(set)h(of)g(start)f(states)h +(and)f Ft(F)35 b Fk(\022)23 b Ft(Q)d Fv(is)h(a)g(set)f(of)h(\002nal)g +(states.)3075 3663 y Fn(3)479 3794 y Fv(Let)30 b Ft(\017)p +Fv(-move)g(be)g(the)g(r)o(elation)g Fk(f)p Fj(\()p Ft(q)1608 +3806 y Fi(i)1635 3794 y Ft(;)14 b(q)1709 3806 y Fi(j)1744 +3794 y Fj(\))p Fk(j)p Ft(q)1836 3806 y Fi(j)1912 3794 +y Fk(2)40 b Ft(\016)s Fj(\()p Ft(q)2116 3806 y Fi(i)2145 +3794 y Ft(;)14 b(\017)p Fj(\))p Fk(g)p Fv(.)29 b Ft(\017)p +Fv(-r)o(eachable)e(is)k(the)f(r)o(e\003exive)330 3894 +y(and)21 b(transitive)g(closur)o(e)f(of)i Ft(\017)p Fv(-move.)e(Let)h +Ft(\017)p Fv(-CLOSURE:)e Fj(2)2219 3864 y Fi(Q)2299 3894 +y Fk(!)k Fj(2)2447 3864 y Fi(Q)2524 3894 y Fv(be)e(a)g(function)h +(which)g(is)330 3993 y(de\002ned)e(as:)896 4093 y Ft(\017)p +Fv(-CLOSURE)n Fj(\()p Ft(Q)1444 4059 y Fl(0)1468 4093 +y Fj(\))j(=)g Fk(f)p Ft(q)s Fk(j)p Ft(q)1756 4059 y Fl(0)1802 +4093 y Fk(2)g Ft(Q)1946 4059 y Fl(0)1969 4093 y Ft(;)14 +b Fj(\()p Ft(q)2078 4059 y Fl(0)2101 4093 y Ft(;)g(q)s +Fj(\))24 b Fk(2)f Ft(\017)p Fv(-r)o(eachable)n Fk(g)330 +4242 y Fv(Furthermor)o(e,)50 b(we)g(write)g Ft(\017)p +Fv(-CLOSURE)1721 4204 y Fl(\000)p Fr(1)1810 4242 y Fj(\()p +Ft(Q)1908 4212 y Fl(0)1931 4242 y Fj(\))h Fv(for)f(the)g(set)h +Fk(f)p Ft(q)s Fk(j)p Ft(q)2633 4212 y Fl(0)2733 4242 +y Fk(2)78 b Ft(Q)2932 4212 y Fl(0)2955 4242 y Ft(;)14 +b Fj(\()p Ft(q)s(;)g(q)3141 4212 y Fl(0)3165 4242 y Fj(\))78 +b Fk(2)330 4342 y Ft(\017)p Fv(-r)o(eachable)m Fk(g)p +Fv(.)479 4442 y(For)21 b(any)g(given)g(\002nite-state)f(automaton)h +Ft(M)32 b Fj(=)22 b(\()p Ft(Q;)14 b Fj(\006)p Ft(;)g(\016)o(;)g(S;)g(F) +e Fj(\))20 b Fv(ther)o(e)g(is)g(an)h(equivalent)330 4541 +y(deterministic)i(automaton)h Ft(M)1349 4511 y Fl(0)1399 +4541 y Fj(=)j(\(2)1565 4511 y Fi(Q)1621 4541 y Ft(;)14 +b Fj(\006)p Ft(;)g(\016)1795 4511 y Fl(0)1818 4541 y +Ft(;)g Fk(f)p Ft(Q)1963 4553 y Fr(0)1999 4541 y Fk(g)p +Ft(;)g(F)2143 4511 y Fl(0)2166 4541 y Fj(\))p Fv(.)23 +b Ft(F)2307 4511 y Fl(0)2353 4541 y Fv(is)h(the)f(set)g(of)g(all)g +(states)g(in)g Fj(2)3274 4511 y Fi(Q)330 4641 y Fv(containing)k(a)d +(\002nal)i(state)f(of)g Ft(M)9 b Fv(,)25 b(i.e.,)f(the)i(set)f(of)h +(subsets)f Fk(f)p Ft(Q)2351 4653 y Fi(i)2410 4641 y Fk(2)31 +b Fj(2)2538 4611 y Fi(Q)2594 4641 y Fk(j)p Ft(q)k Fk(2)d +Ft(Q)2842 4653 y Fi(i)2869 4641 y Ft(;)14 b(q)35 b Fk(2)d +Ft(F)12 b Fk(g)p Fv(.)24 b Ft(M)3307 4611 y Fl(0)330 +4741 y Fv(has)e(a)g(single)h(start)f(state)g Ft(Q)1226 +4753 y Fr(0)1286 4741 y Fv(which)h(is)g(the)f(epsilon)i(closur)o(e)e +(of)g(the)g(start)h(states)f(of)g Ft(M)9 b Fv(,)22 b(i.e.,)330 +4840 y Ft(Q)396 4852 y Fr(0)456 4840 y Fj(=)h Ft(\017)p +Fv(-CLOSURE)n Fj(\()p Ft(S)5 b Fj(\))p Fv(.)21 b(Finally)-9 +b(,)582 5046 y Ft(\016)622 5012 y Fl(0)646 5046 y Fj(\()p +Fk(f)p Ft(q)757 5058 y Fr(1)794 5046 y Ft(;)14 b(q)868 +5058 y Fr(2)905 5046 y Ft(;)g(:)g(:)g(:)g(;)g(q)1127 +5058 y Fi(i)1154 5046 y Fk(g)p Ft(;)g(a)p Fj(\))23 b(=)f +Ft(\017)p Fv(-CLOSURE)o Fj(\()p Ft(\016)s Fj(\()p Ft(q)2011 +5058 y Fr(1)2049 5046 y Ft(;)14 b(a)p Fj(\))k Fk([)h +Ft(\016)s Fj(\()p Ft(q)2363 5058 y Fr(2)2401 5046 y Ft(;)14 +b(a)p Fj(\))k Fk([)h Ft(:)14 b(:)g(:)k Fk([)h Ft(\016)s +Fj(\()p Ft(q)2904 5058 y Fi(i)2932 5046 y Ft(;)14 b(a)p +Fj(\)\))p Black 330 5216 1495 4 v 373 5294 a Fp(2)j(Accor)o(ding)g(to)g +(Derick)g(W)-6 b(ood)17 b(\(p.c.\),)f(this)h(appr)o(oach)g(has)g(been)e +(implemented)g(in)i(several)f(systems,)423 5369 y(including)h(Howar)o +(d)g(Johnson's)g(INR)h(system.)373 5439 y(3)f(Note)g(that)e(a)i(set)f +(of)h(start)g(states)f(is)h(r)o(equir)o(ed,)f(rather)h(than)e(a)i +(single)g(start)g(state.)e(Many)h(operations)i(on)423 +5514 y(automata)e(can)h(be)g(de\002ned)e(somewhat)h(mor)o(e)h +(elegantly)f(in)g(this)h(way)g(\(including)g Fh(per)f(graph)2853 +5491 y Fg(t)2899 5514 y Fp(discussed)423 5589 y(below\).)h(Obviously)-7 +b(,)16 b(for)h(deterministic)g(automata)f(this)h(set)f(should)g(be)h(a) +f(singleton)h(set.)p Black Black 3288 5944 a Fv(3)p Black +eop +%%Page: 4 4 +4 3 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +Black Black Black Black Black 705 344 a Fs(funct)p Black +705 357 199 4 v 20 w Ff(subset)p 1162 344 25 4 v 30 w(constr)o(uction)8 +b Fj(\(\()p Ft(Q;)14 b Fj(\006)p Ft(;)g(\016)o(;)g(S;)g(F)e +Fj(\)\))788 443 y Ff(index)p 999 443 V 30 w(transitions\(\))e +Fj(;)37 b Ff(T)-7 b(rans)29 b Fj(:=)23 b Fk(;)p Fj(;)36 +b Ff(Finals)30 b Fj(:=)23 b Fk(;)p Fj(;)36 b Ff(States)29 +b Fj(:=)23 b Fk(;)p Fj(;)788 543 y Ff(Start)31 b Fj(:=)22 +b Ff(epsilon)p 1373 543 V 31 w(closur)o(e)6 b Fj(\()p +Ft(S)f Fj(\))788 643 y Ff(add)k Fj(\()p Ft(S)c(tar)r(t)p +Fj(\))p Black 788 742 a Fs(while)p Black 788 755 217 +4 v 40 w Fv(ther)o(e)20 b(is)h(an)g(unmarked)f(subset)h +Ft(T)34 b Fk(2)24 b Ff(States)p Black 26 w Fs(do)p Black +2504 755 97 4 v 1025 842 a Ff(mark)10 b Fj(\()p Ft(T)i +Fj(\))p Black 1025 941 a Fs(foreach)p Black 1025 954 +282 4 v 21 w Fj(\()p Ft(a;)i(U)9 b Fj(\))23 b Fk(2)g +Ff(instr)o(uctions)8 b Fj(\()p Ft(T)k Fj(\))p Black 21 +w Fs(do)p Black 2226 954 97 4 v 1108 1041 a Ft(U)32 b +Fj(:=)23 b Ff(epsilon)p 1579 1041 25 4 v 31 w(closur)o(e)6 +b Fj(\()p Ft(U)j Fj(\))1108 1141 y Ff(T)-7 b(rans)6 b +Fj([)p Ft(T)h(;)14 b(a)p Fj(])23 b(:=)f Fk(f)p Ft(U)9 +b Fk(g)1108 1240 y Ff(add)g Fj(\()p Ft(U)g Fj(\))p Black +1025 1340 a Fs(od)p Black 1025 1353 97 4 v Black 788 +1440 a(od)p Black 788 1453 V Black 788 1539 a(return)p +Black 788 1552 236 4 v 20 w Fj(\()p Ff(States)d Ft(;)14 +b Fj(\006)p Ft(;)g Ff(T)-7 b(rans)5 b Ft(;)14 b Fk(f)p +Ff(Start)7 b Fk(g)p Ft(;)14 b Ff(Finals)7 b Fj(\))p Black +705 1639 a Fs(end)p Black 705 1652 143 4 v Black 705 +1838 a(proc)p Black 705 1851 167 4 v 21 w Ff(add)i Fj(\()p +Ft(U)g Fj(\))584 b Fv(Reachable-state-set)19 b(Maintenance)p +Black 788 1938 a Fs(if)p Black 788 1951 60 4 v 21 w Ft(U)41 +b(=)-51 b Fk(2)23 b Ff(States)p Black 869 2037 a Fs(then)p +Black 869 2050 171 4 v 40 w Fv(add)d Ft(U)29 b Fv(unmarked)20 +b(to)i Ff(States)p Black 1060 2137 a Fs(if)p Black 1060 +2150 60 4 v 21 w Ft(U)27 b Fk(\\)19 b Ft(F)p Black 32 +w Fs(then)p Black 1384 2150 171 4 v 20 w Ff(Finals)30 +b Fj(:=)23 b Ff(Finals)i Fk([)19 b(f)p Ft(U)9 b Fk(g)p +Black 19 w Fs(\002)p Black 2423 2150 51 4 v Black 788 +2237 a(\002)p Black 788 2250 V Black 705 2336 a(end)p +Black 705 2349 143 4 v Black 705 2535 a(funct)p Black +705 2548 199 4 v 20 w Ff(instr)o(uctions)f Fj(\()p Ft(P)k +Fj(\))548 b Fv(Instr)o(uction)22 b(Computation)p Black +788 2635 a Fs(return)p Black 788 2648 236 4 v 20 w Ff(mer)o(ge)6 +b Fj(\()1313 2573 y Fe(S)1382 2660 y Fi(p)p Fl(2)p Fi(P)1530 +2635 y Ff(transitions)i Fj(\()p Ft(p)p Fj(\)\))p Black +705 2741 a Fs(end)p Black 705 2754 143 4 v Black 705 +2940 a(funct)p Black 705 2953 199 4 v 20 w Ff(epsilon)p +1195 2940 25 4 v 31 w(closur)o(e)e Fj(\()p Ft(U)j Fj(\))532 +b Fv(variant)20 b(1:)g(No)h Ft(\017)p Fv(-moves)p Black +788 3040 a Fs(return)p Black 788 3053 236 4 v 20 w Ft(U)p +Black 705 3140 a Fs(end)p Black 705 3153 143 4 v 330 +3313 a Fd(Figure)d(1)330 3396 y Fo(Subset-constr)o(uction)i(algorithm.) +p Black 479 3699 a Fv(An)27 b(algorithm)h(which)g(computes)g +Ft(M)1738 3669 y Fl(0)1788 3699 y Fv(for)f(a)f(given)i +Ft(M)35 b Fv(will)28 b(only)g(need)f(to)h(take)e(into)330 +3799 y(account)c(states)f(in)h Fj(2)1001 3769 y Fi(Q)1079 +3799 y Fv(which)g(ar)o(e)e(r)o(eachable)g(fr)o(om)h(the)h(start)f +(state)g Ft(Q)2611 3811 y Fr(0)2648 3799 y Fv(.)h(This)g(is)g(the)g(r)o +(eason)330 3899 y(that)27 b(for)f(many)h(input)h(automata)e(the)h +(algorithm)h(does)e(not)i(need)e(to)i(tr)o(eat)d(all)i(subsets)g(of)330 +3998 y(states)33 b(\(but)g(note)g(that)g(ther)o(e)f(ar)o(e)g(automata)g +(for)h(which)h(all)f(subsets)g(ar)o(e)f(r)o(elevant,)f(and)330 +4098 y(hence)21 b(exponential)g(behaviour)f(cannot)h(be)g(avoided)f(in) +h(general\).)479 4198 y(Consider)28 b(the)g(subset)h(constr)o(uction)g +(algorithm)g(in)f(\002gur)o(e)f(1.)h(The)f(algorithm)i(main-)330 +4297 y(tains)23 b(a)e(set)i(of)f(subsets)h Fu(States)p +Fv(.)f(Each)g(subset)g(can)g(be)g(either)g(marked)g(or)h(unmarked)e +(\(to)i(in-)330 4397 y(dicate)e(whether)g(the)h(subset)g(has)f(been)g +(tr)o(eated)f(by)i(the)f(algorithm\);)h(the)f(set)h(of)f(unmarked)330 +4497 y(subsets)28 b(is)f(sometimes)i(r)o(eferr)o(ed)24 +b(to)k(as)f(the)g(agenda.)g(The)g(algorithm)h(takes)f(such)h(an)f(un-) +330 4596 y(marked)21 b(subset)h Ft(T)32 b Fv(and)21 b(computes)h(all)g +(transitions)g(leaving)g Ft(T)12 b Fv(.)20 b(This)i(computation)h(is)e +(per)o(-)330 4696 y(formed)d(by)h(the)f(function)i Fu(instructions)f +Fv(and)f(is)h(called)e Fu(instruction)i(computation)e +Fv(by)i(Johnson)330 4795 y(and)h(W)-8 b(ood)22 b(\(1997\).)479 +4895 y(The)j(function)g Fu(index)p 1165 4895 25 4 v 29 +w(transitions)g Fv(constr)o(ucts)g(the)g(function)g Fu(transitions)p +Fv(:)f Ft(Q)30 b Fk(!)f Fj(\006)21 b Fk(\002)g Fj(2)3274 +4865 y Fi(Q)330 4995 y Fv(which)i(r)o(eturns)e(for)g(a)h(given)g(state) +f Ft(p)g Fv(the)h(set)g(of)g(pairs)f Fj(\()p Ft(s;)14 +b(T)e Fj(\))21 b Fv(r)o(epr)o(esenting)g(the)h(transitions)330 +5094 y(leaving)f Ft(p)p Fv(.)g(Furthermor)o(e,)g(the)g(function)h +Fu(mer)o(ge)f Fv(takes)g(such)h(a)f(set)g(of)h(pairs)e(and)h(mer)o(ges) +g(all)330 5194 y(pairs)d(with)i(the)e(same)h(\002rst)g(element)g(\(by)f +(taking)h(the)g(union)h(of)e(the)h(corr)o(esponding)g(second)330 +5294 y(elements\).)i(For)g(example:)p Black Black 330 +5538 a Ff(mer)o(ge)6 b Fj(\()p Fk(f)p Fj(\()p Ft(a;)14 +b Fk(f)p Fj(1)p Ft(;)g Fj(2)p Ft(;)g Fj(4)p Fk(g)p Fj(\))p +Ft(;)g Fj(\()p Ft(b;)g Fk(f)p Fj(2)p Ft(;)g Fj(4)p Fk(g)p +Fj(\))p Ft(;)g Fj(\()p Ft(a;)g Fk(f)p Fj(3)p Ft(;)g Fj(4)p +Fk(g)o Fj(\))p Ft(;)g Fj(\()p Ft(b;)g Fk(f)p Fj(5)o Ft(;)g +Fj(6)p Fk(g)o Fj(\))p Fk(g)p Fj(\))j(=)538 5637 y Fk(f)p +Fj(\()p Ft(a;)d Fk(f)p Fj(1)p Ft(;)g Fj(2)p Ft(;)g Fj(3)p +Ft(;)g Fj(4)p Fk(g)p Fj(\))p Ft(;)g Fj(\()p Ft(b;)g Fk(f)p +Fj(2)p Ft(;)g Fj(4)p Ft(;)g Fj(5)p Ft(;)g Fj(6)o Fk(g)p +Fj(\))p Fk(g)p Black 3288 5944 a Fv(4)p Black eop +%%Page: 5 5 +5 4 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black 479 357 +a Fv(The)24 b(pr)o(ocedur)o(e)e Fu(add)g Fv(is)i(r)o(esponsible)f(for)h +(`r)o(eachable-state-set)c(maintenance',)k(by)f(en-)330 +457 y(suring)h(that)f(tar)o(get)g(subsets)g(ar)o(e)f(added)g(to)i(the)f +(set)h(of)f(subsets)h(if)f(these)g(subsets)h(wer)o(e)e(not)330 +556 y(encounter)o(ed)d(befor)o(e.)g(Mor)o(eover)-6 b(,)18 +b(if)i(such)h(a)f(new)g(subset)g(contains)h(a)f(\002nal)g(state,)g +(then)g(this)330 656 y(subset)h(is)g(added)e(to)i(the)g(set)g(of)g +(\002nal)g(states.)330 855 y Fs(3)f(V)-9 b(ariants)19 +b(for)i Ft(\017)p Fs(-Moves)330 1054 y Fv(The)31 b(algorithm)i(pr)o +(esented)d(in)i(the)f(pr)o(evious)h(section)g(does)f(not)h(tr)o(eat)e +Ft(\017)p Fv(-moves.)i(In)f(this)330 1154 y(section,)21 +b(possible)h(extensions)f(of)g(the)g(algorithm)h(ar)o(e)d(identi\002ed) +i(to)g(tr)o(eat)e Ft(\017)p Fv(-moves.)330 1353 y Fs(3.1)h(Per)g(graph) +330 1453 y Fv(In)h(the)f Fu(per)g(graph)f Fv(variant)h(two)h(steps)f +(can)g(be)g(identi\002ed.)g(In)g(the)h(\002rst)f(step,)g +Fu(efr)o(ee)p Fv(,)h(an)f(equiv-)330 1553 y(alent)26 +b Ft(\017)p Fv(-fr)o(ee)f(automaton)h(is)h(constr)o(ucted.)g(In)g(the)f +(second)h(step)f(this)h Ft(\017)p Fv(-fr)o(ee)e(automaton)i(is)330 +1652 y(determinised)g(using)h(the)g(subset)f(constr)o(uction)i +(algorithm.)f(The)f(advantage)f(of)h(this)h(ap-)330 1752 +y(pr)o(oach)i(is)h(that)g(the)g(subset)g(constr)o(uction)i(algorithm)f +(can)e(r)o(emain)g(simple)i(because)e(the)330 1851 y(input)21 +b(automaton)h(is)f Ft(\017)p Fv(-fr)o(ee.)479 1951 y(An)43 +b(algorithm)h(for)f Fu(efr)o(ee)h Fv(is)g(described)e(for)h(instance)g +(in)h(Hopcr)o(oft)e(and)h(Ullman)330 2051 y(\(1979\)[page)29 +b(26-27].)h(The)i(main)h(ingr)o(edient)g(of)f Fu(efr)o(ee)i +Fv(is)f(the)g(constr)o(uction)h(of)f(the)f(func-)330 +2150 y(tion)c Ft(\017)p Fv(-CLOSURE,)d(which)j(can)f(be)g(computed)g +(by)g(using)h(a)f(standar)o(d)e(transitive)i(closur)o(e)330 +2250 y(algorithm)22 b(for)f(dir)o(ected)f(graphs:)g(this)i(algorithm)g +(is)g(applied)e(to)i(the)f(dir)o(ected)f(graph)h(con-)330 +2350 y(sisting)27 b(of)e(all)h Ft(\017)p Fv(-moves)f(of)h +Ft(M)9 b Fv(.)25 b(Such)g(an)h(algorithm)g(can)g(be)f(found)h(in)g +(several)e(textbooks)330 2449 y(\(see,)c(for)g(instance,)h(Cormen,)g +(Leiserson,)g(and)f(Rivest)h(\(1990\)\).)479 2549 y(For)31 +b(a)f(given)g(\002nite-state)g(automaton)h Ft(M)49 b +Fj(=)40 b(\()p Ft(Q;)14 b Fj(\006)p Ft(;)g(\016)o(;)g(S;)g(F)e +Fj(\))29 b Fu(efr)o(ee)i Fv(computes)g Ft(M)3202 2519 +y Fl(0)3265 2549 y Fj(=)330 2648 y(\()p Ft(Q;)14 b Fj(\006)p +Ft(;)g(\016)602 2618 y Fl(0)625 2648 y Ft(;)g(S)718 2618 +y Fl(0)741 2648 y Ft(;)g(F)843 2618 y Fl(0)866 2648 y +Fj(\))p Fv(,)46 b(wher)o(e)g Ft(S)1296 2618 y Fl(0)1389 +2648 y Fj(=)69 b Ft(\017)p Fv(-CLOSURE)o Fj(\()p Ft(S)5 +b Fj(\))p Fv(,)46 b Ft(F)2226 2618 y Fl(0)2319 2648 y +Fj(=)69 b Ft(\017)p Fv(-CLOSURE)2904 2610 y Fl(\000)p +Fr(1)2993 2648 y Fj(\()p Ft(F)12 b Fj(\))p Fv(,)46 b(and)330 +2748 y Ft(\016)370 2718 y Fl(0)393 2748 y Fj(\()p Ft(p;)14 +b(a)p Fj(\))42 b(=)f Fk(f)p Ft(q)s Fk(j)p Ft(q)873 2718 +y Fl(0)938 2748 y Fk(2)h Ft(\016)s Fj(\()p Ft(p)1149 +2718 y Fl(0)1172 2748 y Ft(;)14 b(a)p Fj(\))p Ft(;)g(p)1364 +2718 y Fl(0)1429 2748 y Fk(2)42 b Ft(\017)p Fv(-CLOSURE)1977 +2710 y Fl(\000)p Fr(1)2066 2748 y Fj(\()p Ft(p)p Fj(\))p +Ft(;)14 b(q)45 b Fk(2)d Ft(\017)p Fv(-CLOSURE)n Fj(\()p +Ft(q)2910 2718 y Fl(0)2934 2748 y Fj(\))p Fk(g)p Fv(.)30 +b(Instead)330 2848 y(of)20 b(using)h Ft(\017)p Fv(-CLOSURE)e(on)i(both) +g(the)f(sour)o(ce)g(and)g(tar)o(get)f(side)h(of)g(a)g(transition,)g +Fu(efr)o(ee)h Fv(can)f(be)330 2947 y(optimised)h(in)h(two)f(dif)o(fer)o +(ent)e(ways)i(by)f(using)i Ft(\017)p Fv(-CLOSURE)d(only)j(on)f(one)h +(side:)p Black 571 3130 a Fk(\017)p Black 16 w Fu(efr)o(ee)779 +3100 y Fi(t)809 3130 y Fu(:)e Ft(M)940 3100 y Fl(0)986 +3130 y Fj(=)j(\()p Ft(Q;)14 b Fj(\006)p Ft(;)g(\016)1346 +3100 y Fl(0)1369 3130 y Ft(;)g(S)1462 3100 y Fl(0)1485 +3130 y Ft(;)g(F)e Fj(\))p Fv(,)20 b(wher)o(e)h Ft(S)1966 +3100 y Fl(0)2012 3130 y Fj(=)h Ft(\017)p Fv(-CLOSURE)o +Fj(\()p Ft(S)5 b Fj(\))p Fv(,)21 b(and)629 3230 y Ft(\016)669 +3199 y Fl(0)692 3230 y Fj(\()p Ft(p;)14 b(a)p Fj(\))23 +b(=)g Fk(f)p Ft(q)s Fk(j)p Ft(q)1135 3199 y Fl(0)1181 +3230 y Fk(2)g Ft(\016)s Fj(\()p Ft(p;)14 b(a)p Fj(\))p +Ft(;)g(q)27 b Fk(2)c Ft(\017)p Fv(-CLOSURE)o Fj(\()p +Ft(q)2188 3199 y Fl(0)2211 3230 y Fj(\))p Fk(g)p Fv(.)p +Black 571 3396 a Fk(\017)p Black 16 w Fu(efr)o(ee)779 +3365 y Fi(s)815 3396 y Fu(:)e Ft(M)947 3365 y Fl(0)993 +3396 y Fj(=)h(\()p Ft(Q;)14 b Fj(\006)p Ft(;)g(\016)1352 +3365 y Fl(0)1375 3396 y Ft(;)g(S;)g(F)1565 3365 y Fl(0)1588 +3396 y Fj(\))p Fv(,)21 b(wher)o(e)f Ft(F)1976 3365 y +Fl(0)2023 3396 y Fj(=)i Ft(\017)p Fv(-CLOSURE)2561 3357 +y Fl(\000)p Fr(1)2650 3396 y Fj(\()p Ft(F)12 b Fj(\))p +Fv(,)21 b(and)629 3495 y Ft(\016)669 3465 y Fl(0)692 +3495 y Fj(\()p Ft(p;)14 b(a)p Fj(\))23 b(=)g Fk(f)p Ft(q)s +Fk(j)p Ft(q)j Fk(2)d Ft(\016)s Fj(\()p Ft(p)1350 3465 +y Fl(0)1374 3495 y Ft(;)14 b(a)p Fj(\))p Ft(;)g(p)1566 +3465 y Fl(0)1612 3495 y Fk(2)23 b Ft(\017)p Fv(-CLOSURE)2141 +3457 y Fl(\000)p Fr(1)2230 3495 y Fj(\()p Ft(p)p Fj(\))p +Fk(g)p Fv(.)479 3678 y(Although)d(both)e(variants)g(appear)f(very)g +(similar)-6 b(,)18 b(ther)o(e)g(ar)o(e)e(some)j(dif)o(fer)o(ences.)d +(Firstly)-9 b(,)330 3778 y Fu(efr)o(ee)480 3747 y Fi(t)533 +3778 y Fv(might)24 b(intr)o(oduce)e(states)h(which)g(ar)o(e)f(not)h +Fu(co-accessible)p Fv(:)g(states)g(fr)o(om)f(which)i(no)f(path)330 +3877 y(exists)g(to)g(a)f(\002nal)h(state;)f(in)h(contrast,)g +Fu(efr)o(ee)1700 3847 y Fi(s)1759 3877 y Fv(might)g(intr)o(oduce)g +(states)f(which)i(ar)o(e)d(not)i Fu(acces-)330 3977 y(sible)p +Fv(:)e(states)g(fr)o(om)e(which)j(no)f(path)f(exists)h(fr)o(om)f(the)g +(start)g(state.)g(A)g(straightforwar)o(d)f(mod-)330 4076 +y(i\002cation)27 b(of)g(both)g(algorithms)g(is)g(possible)g(to)g(ensur) +o(e)f(that)g(these)h(states)f(ar)o(e)f(not)j(pr)o(esent)330 +4176 y(in)i(the)g(output.)f(Thus)h Fu(efr)o(ee)1240 4146 +y Fi(t;c)1349 4176 y Fv(ensur)o(es)f(that)h(all)f(states)g(in)h(the)g +(r)o(esulting)f(automaton)h(ar)o(e)330 4276 y(co-accessible;)24 +b Fu(efr)o(ee)995 4246 y Fi(s;a)1111 4276 y Fv(ensur)o(es)g(that)h(all) +g(states)f(in)h(the)g(r)o(esulting)g(automaton)g(ar)o(e)e +Fu(accessi-)330 4375 y(ble)p Fv(.)k(As)f(a)f(consequence,)i(the)f(size) +g(of)g(the)g(determinised)g(machine)g(is)h(in)g(general)e(smaller)330 +4475 y(if)j Fu(efr)o(ee)560 4445 y Fi(t;c)667 4475 y +Fv(is)g(employed,)g(because)f(states)h(which)h(wer)o(e)e(not)i +(co-accessible)e(\(in)h(the)g(input\))330 4575 y(ar)o(e)c(r)o(emoved)h +(\(this)h(is)g(ther)o(efor)o(e)e(an)h(additional)g(bene\002t)h(of)f +Fu(efr)o(ee)2493 4544 y Fi(t;c)2573 4575 y Fv(;)g(the)h(fact)e(that)i +Fu(efr)o(ee)3238 4544 y Fi(s;a)330 4674 y Fv(r)o(emoves)31 +b(accessible)f(states)h(has)g(no)g(ef)o(fect)f(on)h(the)g(size)g(of)g +(the)g(determinised)g(machine)330 4774 y(because)20 b(the)h(subset)g +(constr)o(uction)h(algorithm)g(alr)o(eady)d(ensur)o(es)h(accessibility) +h(anyway\).)479 4873 y(Secondly)-9 b(,)37 b(it)g(turns)g(out)g(that)g +(applying)g Fu(efr)o(ee)2038 4843 y Fi(t)2105 4873 y +Fv(in)g(combination)i(with)e(the)g(subset-)330 4973 y(constr)o(uction) +32 b(algorithm)g(generally)e(pr)o(oduces)f(smaller)i(automata)f(than)h +Fu(efr)o(ee)2979 4943 y Fi(s)3045 4973 y Fv(\(even)f(if)330 +5073 y(we)21 b(ignor)o(e)g(the)g(bene\002t)g(of)g(ensuring)g +(co-accessibility\).)g(An)f(example)h(is)g(pr)o(esented)f(in)h(\002g-) +330 5172 y(ur)o(e)f(2.)g(The)h(dif)o(fer)o(ences)d(can)j(be)f(quite)h +(signi\002cant.)h(This)f(is)g(illustrated)g(in)g(\002gur)o(e)f(3.)479 +5272 y(Below)g(we)f(will)h(write)f Fu(per)h(graph)1550 +5242 y Fi(X)1631 5272 y Fv(to)f(indicate)g(the)h(non-integrated)f +(algorithm)h(based)330 5372 y(on)h Fu(efr)o(ee)594 5341 +y Fi(X)658 5372 y Fv(.)p Black 3288 5944 a(5)p Black +eop +%%Page: 6 6 +6 5 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +Black Black 1101 592 a + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.15997 add 2 div +2 copy 0.15997 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@0 11 {InitCnode +} NewNode end end + 1101 592 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.15997 +add 2 div 2 copy 0.15997 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + + +@endspecial Fv(0)1121 565 y + tx@Dict begin tx@NodeDict begin {-28.44543 0.0 } false /N@start0 10 +{InitPnode } NewNode end end + 1121 565 a 1121 565 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@start0 /N@0 InitNC { yB yA sub xB xA sub Atan dup 0. add /AngleA +ED 0. sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave 0.8 +SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1121 +565 a 2281 593 a + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.97992 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 2.6 add} false /N@1 11 {InitCnode +} NewNode end end + 2281 593 a @beginspecial @setspecial + tx@Dict begin STP newpath 2.6 SLW 0 setgray 5.0 2 div 6.97992 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 2.6 SLW 0 setgray 0 setlinecap stroke grestore +gsave 1.0 SLW 1 setgray stroke grestore end + + +@endspecial Fv(1)1691 593 y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@2 11 {InitCnode +} NewNode end end + 1691 593 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial Fv(2)1121 565 y + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@0 /N@2 InitNC { yB yA sub xB xA sub Atan dup 15.0 add /AngleA +ED 15.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1121 565 a 1121 +565 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 1121 565 a 1121 565 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 11.55904 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 1121 565 a 1073 583 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 11.55904 5.77951 +2.2775 } false /N@x 16 {InitRnode } NewNode end end + 1073 +583 a Ft(\017)i Fv(a)1121 565 y + tx@Dict begin PutEnd end + 1121 565 a 1121 565 a + tx@Dict begin PutEnd end + +1121 565 a 1121 565 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@1 /N@2 InitNC { yB yA sub xB xA sub Atan dup 15.0 add /AngleA +ED 15.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1121 565 a 1121 565 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 1121 565 +a 1121 565 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 4.05904 4.30554 +0.0 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add exch +} PutCoor PutBegin end + 1121 565 a 1104 582 a + tx@Dict begin tx@NodeDict begin {4.30554 0.0 4.05904 2.02951 2.15277 +} false /N@x 16 {InitRnode } NewNode end end + 1104 582 a Ft(\017)1121 +565 y + tx@Dict begin PutEnd end + 1121 565 a 1121 565 a + tx@Dict begin PutEnd end + 1121 565 a 1121 565 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@2 /N@1 InitNC { yB yA sub xB xA sub Atan dup 15.0 add /AngleA +ED 15.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1121 +565 a 1121 565 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 1121 565 a 1121 565 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 1121 565 a 1100 +583 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 1100 583 a Fv(a)1121 565 y + tx@Dict begin PutEnd end + 1121 565 a 1121 565 +a + tx@Dict begin PutEnd end + 1121 565 a 1653 860 a Fv(\(1\))869 1073 y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.15997 add 2 div +2 copy 0.15997 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@0 11 {InitCnode +} NewNode end end + 869 1073 +a @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.15997 +add 2 div 2 copy 0.15997 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial Fv(0)890 1748 +y + tx@Dict begin tx@NodeDict begin {-28.44543 84.62517 } false /N@start0 +10 {InitPnode } NewNode end end + 890 1748 a 890 1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@start0 /N@0 InitNC { yB yA sub xB xA sub Atan dup 0. add /AngleA +ED 0. sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave 0.8 +SLW 0 setgray 0 setlinecap stroke grestore grestore end + 890 1748 a 1312 1777 a + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.97992 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 2.6 add} false /N@1 11 {InitCnode +} NewNode end end + 1312 1777 +a @beginspecial @setspecial + tx@Dict begin STP newpath 2.6 SLW 0 setgray 5.0 2 div 6.97992 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 2.6 SLW 0 setgray 0 setlinecap stroke grestore +gsave 1.0 SLW 1 setgray stroke grestore end + +@endspecial Fv(1)1312 1251 +y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@2 11 {InitCnode +} NewNode end end + 1312 1251 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial +Fv(2)890 1748 y + tx@Dict begin tx@NodeDict begin {24.88976 63.29109 } false /N@start2 +10 {InitPnode } NewNode end end + 890 1748 a 890 1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@start2 /N@2 InitNC { yB yA sub xB xA sub Atan dup 0. add /AngleA +ED 0. sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave 0.8 +SLW 0 setgray 0 setlinecap stroke grestore grestore end + 890 1748 a 890 +1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@0 /N@2 InitNC { yB yA sub xB xA sub Atan dup 15.0 add /AngleA +ED 15.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 890 1748 a 890 1748 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 890 1748 a 890 1748 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 890 +1748 a 869 1767 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 869 1767 a Fv(a)890 1748 y + tx@Dict begin PutEnd end + 890 1748 +a 890 1748 a + tx@Dict begin PutEnd end + 890 1748 a 890 1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@2 /N@1 InitNC { yB yA sub xB xA sub Atan dup 15.0 add /AngleA +ED 15.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 890 1748 a 890 1748 +a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 890 1748 a 890 1748 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 890 1748 a 869 1767 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 869 1767 +a Fv(a)890 1748 y + tx@Dict begin PutEnd end + 890 1748 a 890 1748 a + tx@Dict begin PutEnd end + 890 1748 a 890 +1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { BeginArrow +1. 1. scale false 0.4 1.4 1.5 2. Arrow EndArrow moveto } def /ArrowB +{ } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@2 +/N@2 InitNC { /AngleA -90. def /r 14.22636 def NCCircle x y r angleA +{ ArrowA CP } { add } ArcArrow angleB arc end } if end gsave 0.8 SLW +0 setgray 0 setlinecap stroke grestore grestore end + 890 1748 a 890 1748 a + tx@Dict begin tx@NodeDict begin /t 0.5 def tx@NodeDict /HPutPos known +{ HPutPos } { CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } ifelse /Sin +NAngle sin def /Cos NAngle cos def /s 5.0 NCLW add def /l 2.5 def /r +2.5 def /h 1.43202 def /d 3.44292 def /flag false def HPutAdjust LPutCoor +end PutBegin end + 890 1748 a 869 1775 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 869 +1775 a Fv(a)890 1748 y + tx@Dict begin PutEnd end + 890 1748 a 1185 1925 a Fv(\(2\))2041 +1539 y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.15997 add 2 div +2 copy 0.15997 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@0 11 {InitCnode +} NewNode end end + 2041 1539 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.15997 +add 2 div 2 copy 0.15997 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial +Fv(0)2062 1748 y + tx@Dict begin tx@NodeDict begin {-22.76672 28.4584 } false /N@start0 +10 {InitPnode } NewNode end end + 2062 1748 a 2062 1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@start0 /N@0 InitNC { yB yA sub xB xA sub Atan dup 0. add /AngleA +ED 0. sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave 0.8 +SLW 0 setgray 0 setlinecap stroke grestore grestore end + 2062 1748 a +2514 1304 a + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.97992 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 2.6 add} false /N@1 11 {InitCnode +} NewNode end end + 2514 1304 a @beginspecial @setspecial + tx@Dict begin STP newpath 2.6 SLW 0 setgray 5.0 2 div 6.97992 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 2.6 SLW 0 setgray 0 setlinecap stroke grestore +gsave 1.0 SLW 1 setgray stroke grestore end + +@endspecial +Fv(1)2514 1776 y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@2 11 {InitCnode +} NewNode end end + 2514 1776 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + + +@endspecial Fv(2)2062 1748 y + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@0 /N@1 InitNC { yB yA sub xB xA sub Atan dup 20.0 add /AngleA +ED 20.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 2062 1748 a 2062 1748 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + +2062 1748 a 2062 1748 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 2062 1748 a 2041 1767 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 2041 +1767 a Fv(a)2062 1748 y + tx@Dict begin PutEnd end + 2062 1748 a 2062 1748 a + tx@Dict begin PutEnd end + 2062 +1748 a 2062 1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@0 /N@2 InitNC { yB yA sub xB xA sub Atan dup 20.0 add /AngleA +ED 20.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 2062 1748 a 2062 1748 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 2062 1748 +a 2062 1748 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 2062 1748 a 2041 1767 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 2041 1767 a Fv(a)2062 +1748 y + tx@Dict begin PutEnd end + 2062 1748 a 2062 1748 a + tx@Dict begin PutEnd end + 2062 1748 a 2062 1748 +a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { BeginArrow +1. 1. scale false 0.4 1.4 1.5 2. Arrow EndArrow moveto } def /ArrowB +{ } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@1 +/N@1 InitNC { /AngleA -90. def /r 14.22636 def NCCircle x y r angleA +{ ArrowA CP } { add } ArcArrow angleB arc end } if end gsave 0.8 SLW +0 setgray 0 setlinecap stroke grestore grestore end + 2062 1748 a 2062 1748 a + tx@Dict begin tx@NodeDict begin /t 0.5 def tx@NodeDict /HPutPos known +{ HPutPos } { CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } ifelse /Sin +NAngle sin def /Cos NAngle cos def /s 5.0 NCLW add def /l 2.5 def /r +2.5 def /h 1.43202 def /d 3.44292 def /flag false def HPutAdjust LPutCoor +end PutBegin end + 2062 1748 a 2041 1775 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 2041 +1775 a Fv(a)2062 1748 y + tx@Dict begin PutEnd end + 2062 1748 a 2062 1748 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@2 /N@1 InitNC { yB yA sub xB xA sub Atan dup 20.0 add /AngleA +ED 20.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 2062 +1748 a 2062 1748 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 2062 1748 a 2062 1748 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 2062 1748 +a 2041 1767 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 2041 1767 a Fv(a)2062 1748 y + tx@Dict begin PutEnd end + 2062 1748 +a 2062 1748 a + tx@Dict begin PutEnd end + 2062 1748 a 2298 1890 a Fv(\(3\))653 2209 +y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.15997 add 2 div +2 copy 0.15997 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@0 11 {InitCnode +} NewNode end end + 653 2209 a @beginspecial @setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.15997 +add 2 div 2 copy 0.15997 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial Fv(0)674 +2182 y + tx@Dict begin tx@NodeDict begin {-22.76672 0.0 } false /N@start0 10 +{InitPnode } NewNode end end + 674 2182 a 674 2182 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@start0 /N@0 InitNC { yB yA sub xB xA sub Atan dup 0. add /AngleA +ED 0. sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave 0.8 +SLW 0 setgray 0 setlinecap stroke grestore grestore end + 674 2182 a 1126 2210 a + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.97992 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 2.6 add} false /N@1 11 {InitCnode +} NewNode end end + 1126 +2210 a @beginspecial @setspecial + tx@Dict begin STP newpath 2.6 SLW 0 setgray 5.0 2 div 6.97992 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 2.6 SLW 0 setgray 0 setlinecap stroke grestore +gsave 1.0 SLW 1 setgray stroke grestore end + +@endspecial Fv(1)674 +2182 y + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@0 /N@1 InitNC { yB yA sub xB xA sub Atan dup 20.0 add /AngleA +ED 20.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 674 2182 a 674 2182 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 674 2182 a 674 2182 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 674 +2182 a 653 2200 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 653 2200 a Fv(a)674 2182 y + tx@Dict begin PutEnd end + 674 2182 +a 674 2182 a + tx@Dict begin PutEnd end + 674 2182 a 674 2182 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { BeginArrow +1. 1. scale false 0.4 1.4 1.5 2. Arrow EndArrow moveto } def /ArrowB +{ } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@1 +/N@1 InitNC { /AngleA -90. def /r 14.22636 def NCCircle x y r angleA +{ ArrowA CP } { add } ArcArrow angleB arc end } if end gsave 0.8 SLW +0 setgray 0 setlinecap stroke grestore grestore end + 674 2182 a 674 2182 +a + tx@Dict begin tx@NodeDict begin /t 0.5 def tx@NodeDict /HPutPos known +{ HPutPos } { CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } ifelse /Sin +NAngle sin def /Cos NAngle cos def /s 5.0 NCLW add def /l 2.5 def /r +2.5 def /h 1.43202 def /d 3.44292 def /flag false def HPutAdjust LPutCoor +end PutBegin end + 674 2182 a 653 2209 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 653 2209 a Fv(a)674 2182 y + tx@Dict begin PutEnd end + 674 +2182 a 910 2323 a Fv(\(4\))1855 2209 y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.15997 add 2 div +2 copy 0.15997 sub 4 2 roll Pyth 3.0 add 0.8 add} false /N@0 11 {InitCnode +} NewNode end end + 1855 2209 a @beginspecial +@setspecial + tx@Dict begin STP newpath 0.8 SLW 0 setgray 5.0 2 div 6.8299 0.15997 +add 2 div 2 copy 0.15997 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 0.8 SLW 0 setgray 0 setlinecap stroke grestore +end + +@endspecial Fv(0)1876 2182 y + tx@Dict begin tx@NodeDict begin {-22.76672 0.0 } false /N@start0 10 +{InitPnode } NewNode end end + 1876 2182 a +1876 2182 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@start0 /N@0 InitNC { yB yA sub xB xA sub Atan dup 0. add /AngleA +ED 0. sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave 0.8 +SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1876 2182 a 2328 2210 a + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.97992 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 2.6 add} false /N@1 11 {InitCnode +} NewNode end end + 2328 2210 a @beginspecial +@setspecial + tx@Dict begin STP newpath 2.6 SLW 0 setgray 5.0 2 div 6.97992 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 2.6 SLW 0 setgray 0 setlinecap stroke grestore +gsave 1.0 SLW 1 setgray stroke grestore end + +@endspecial Fv(1)2800 2210 y + tx@Dict begin tx@NodeDict begin {5.0 2 div 6.8299 0.05994 add 2 div +2 copy 0.05994 sub 4 2 roll Pyth 3.0 add 2.6 add} false /N@2 11 {InitCnode +} NewNode end end + 2800 2210 a +@beginspecial @setspecial + tx@Dict begin STP newpath 2.6 SLW 0 setgray 5.0 2 div 6.8299 0.05994 +add 2 div 2 copy 0.05994 sub 4 2 roll Pyth 3.0 add CLW 2 div add 0 +360 arc closepath gsave 2.6 SLW 0 setgray 0 setlinecap stroke grestore +gsave 1.0 SLW 1 setgray stroke grestore end + +@endspecial Fv(2)1876 2182 +y + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@0 /N@1 InitNC { yB yA sub xB xA sub Atan dup 20.0 add /AngleA +ED 20.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1876 2182 a 1876 2182 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 1876 2182 a 1876 2182 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 1876 +2182 a 1855 2200 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 1855 2200 a Fv(a)1876 2182 y + tx@Dict begin PutEnd end + 1876 +2182 a 1876 2182 a + tx@Dict begin PutEnd end + 1876 2182 a 1876 2182 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { moveto +} def /ArrowB { BeginArrow 1. 1. scale false 0.4 1.4 1.5 2. Arrow + EndArrow } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 +0 0 /N@1 /N@2 InitNC { yB yA sub xB xA sub Atan dup 20.0 add /AngleA +ED 20.0 sub 180 add /AngleB ED 0.67 0.67 NCCurve } if end gsave +0.8 SLW 0 setgray 0 setlinecap stroke grestore grestore end + 1876 2182 +a 1876 2182 a + tx@Dict begin tx@NodeDict begin /t .5 def LPut end PutBegin end + 1876 2182 a 1876 2182 a + tx@Dict begin { 5.0 tx@Dict /NCLW known { NCLW add } if 5.0 4.71497 +0.15997 NAngle 90 add Uput exch pop add a PtoC h1 add exch w1 add +exch } PutCoor PutBegin end + 1876 2182 a 1855 +2200 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 1855 2200 a Fv(a)1876 2182 y + tx@Dict begin PutEnd end + 1876 2182 a 1876 +2182 a + tx@Dict begin PutEnd end + 1876 2182 a 1876 2182 a + tx@Dict begin gsave STV newpath 0.8 SLW 0 setgray /ArrowA { BeginArrow +1. 1. scale false 0.4 1.4 1.5 2. Arrow EndArrow moveto } def /ArrowB +{ } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@2 +/N@2 InitNC { /AngleA -90. def /r 14.22636 def NCCircle x y r angleA +{ ArrowA CP } { add } ArcArrow angleB arc end } if end gsave 0.8 SLW +0 setgray 0 setlinecap stroke grestore grestore end + 1876 2182 a 1876 2182 +a + tx@Dict begin tx@NodeDict begin /t 0.5 def tx@NodeDict /HPutPos known +{ HPutPos } { CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } ifelse /Sin +NAngle sin def /Cos NAngle cos def /s 5.0 NCLW add def /l 2.5 def /r +2.5 def /h 1.43202 def /d 3.44292 def /flag false def HPutAdjust LPutCoor +end PutBegin end + 1876 2182 a 1855 2209 a + tx@Dict begin tx@NodeDict begin {4.71497 0.15997 5.0 2.5 2.2775 } +false /N@x 16 {InitRnode } NewNode end end + 1855 2209 a Fv(a)1876 2182 +y + tx@Dict begin PutEnd end + 1876 2182 a 2348 2371 a Fv(\(5\))330 2584 y Fd(Figure)d(2)330 +2667 y Fo(Illustration)h(of)f(the)h(dif)o(fer)o(ence)e(in)i(size)f +(between)i(two)f(variants)g(of)g Fc(efr)o(ee)p Fo(.)f(\(1\))h(is)f(the) +h(input)330 2759 y(automaton.)h(The)f(r)o(esult)e(of)i +Fc(efr)o(ee)1297 2727 y Fg(t)1343 2759 y Fo(is)f(given)g(in)h(\(2\);)g +(\(3\))g(is)f(the)h(r)o(esult)e(of)i Fc(efr)o(ee)2553 +2727 y Fg(s)2586 2759 y Fo(.)f(\(4\))h(and)g(\(5\))g(ar)o(e)f(the)330 +2850 y(r)o(esult)f(of)i(applying)f(the)h(subset)g(constr)o(uction)g(to) +g(the)g(r)o(esult)f(of)g Fc(efr)o(ee)2348 2819 y Fg(t)2395 +2850 y Fo(and)h Fc(efr)o(ee)2676 2819 y Fg(s)2709 2850 +y Fo(,)f(r)o(espectively)-8 b(.)p Black Black 330 3047 +a + 23681433 16577003 3289088 3289088 26970521 19866091 startTexFig + 330 3047 a +%%BeginDocument: csizes.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid true def +/gnulinewidth 5.000 def +/vshift -60 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Palatino-Roman findfont 180 scalefont setfont +newpath +LTa +1080 451 M +5841 0 V +-5841 0 R +0 4498 V +LTb +1080 451 M +63 0 V +5778 0 R +-63 0 V +972 451 M +(0) Rshow +1080 901 M +63 0 V +5778 0 R +-63 0 V +972 901 M +(2000) Rshow +1080 1351 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(4000) Rshow +1080 1800 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(6000) Rshow +1080 2250 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(8000) Rshow +1080 2700 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10000) Rshow +1080 3150 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(12000) Rshow +1080 3600 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(14000) Rshow +1080 4049 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(16000) Rshow +1080 4499 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(18000) Rshow +1080 4949 M +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(20000) Rshow +1080 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0) Cshow +1664 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.2) Cshow +2248 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.4) Cshow +2832 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.6) Cshow +3416 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.8) Cshow +4001 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1) Cshow +4585 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.2) Cshow +5169 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.4) Cshow +5753 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.6) Cshow +6337 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.8) Cshow +6921 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2) Cshow +1080 451 M +5841 0 V +0 4498 V +-5841 0 V +0 -4498 V +180 2700 M +currentpoint gsave translate 90 rotate 0 0 M +(Number of States) Cshow +grestore +4000 91 M +(Deterministic Jump Density \(mean\)) Cshow +LT0 +6318 4706 M +(efree-source) Rshow +6426 4706 M +324 0 V +1372 880 M +292 26 V +1956 574 L +292 1055 V +292 1381 V +292 1873 V +3124 2334 L +292 792 V +3708 1439 L +293 1469 V +4293 1550 L +4585 714 L +292 645 V +5169 541 L +292 20 V +292 -48 V +292 -31 V +292 3 V +292 11 V +292 -19 V +6534 4706 D +1372 880 D +1664 906 D +1956 574 D +2248 1629 D +2540 3010 D +2832 4883 D +3124 2334 D +3416 3126 D +3708 1439 D +4001 2908 D +4293 1550 D +4585 714 D +4877 1359 D +5169 541 D +5461 561 D +5753 513 D +6045 482 D +6337 485 D +6629 496 D +6921 477 D +LT1 +6318 4526 M +(efree-target) Rshow +6426 4526 M +324 0 V +1372 877 M +292 25 V +1956 571 L +292 1012 V +292 1218 V +292 1409 V +3124 2002 L +292 428 V +3708 1114 L +293 830 V +4293 999 L +4585 571 L +292 254 V +5169 483 L +292 3 V +292 -17 V +292 -9 V +292 0 V +292 1 V +292 -3 V +6534 4526 A +1372 877 A +1664 902 A +1956 571 A +2248 1583 A +2540 2801 A +2832 4210 A +3124 2002 A +3416 2430 A +3708 1114 A +4001 1944 A +4293 999 A +4585 571 A +4877 825 A +5169 483 A +5461 486 A +5753 469 A +6045 460 A +6337 460 A +6629 461 A +6921 458 A +stroke +grestore +end +showpage + +%%EndDocument + + endTexFig + 330 5230 a Fd(Figure)18 b(3)330 5313 y Fo(Dif)o(fer)o(ence)f(in)i +(sizes)f(of)g(deterministic)g(automata)i(constr)o(ucted)f(with)h +(either)e Fc(efr)o(ee)2740 5281 y Fg(s)2792 5313 y Fo(or)g +Fc(efr)o(ee)3017 5281 y Fg(t)3044 5313 y Fo(,)h(for)330 +5396 y(randomly)f(generated)g(input)h(automata)h(consisting)f(of)f(100) +i(states,)e(15)i(symbols,)d(and)i(various)330 5479 y(numbers)g(of)f +(transitions)h(and)g(jumps)g(\(cf.)f(section)h(4\).)f(Note)h(that)h +(all)f(states)g(in)g(the)g(input)g(ar)o(e)330 5562 y(co-accessible;)f +(the)h(dif)o(fer)o(ence)e(in)i(size)f(is)g(due)g(solely)f(to)i(the)g +(ef)o(fect)f(illustrated)g(in)h(\002gur)o(e)e(2.)p Black +Black 3288 5944 a Fv(6)p Black eop +%%Page: 7 7 +7 6 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +Black Black Black Black Black 933 344 a Fs(funct)p Black +933 357 199 4 v 20 w Ff(closur)o(e)7 b Fj(\()p Ft(T)12 +b Fj(\))1016 443 y Ft(D)26 b Fj(:=)c Fk(;)p Black 1016 +543 a Fs(foreach)p Black 1016 556 282 4 v 21 w Ft(t)h +Fk(2)g Ft(T)p Black 32 w Fs(do)p Black 1531 556 97 4 +v 41 w Fv(add)d Ft(t)h Fv(unmarked)f(to)h Ft(D)p Black +23 w Fs(od)p Black 2472 556 V Black 1016 643 a(while)p +Black 1016 656 217 4 v 41 w Fv(ther)o(e)f(is)h(an)f(unmarked)h(state)f +Ft(t)j Fk(2)h Ft(D)p Black 22 w Fs(do)p Black 2490 656 +97 4 v 1254 742 a Ff(mark)10 b Fj(\()p Ft(t)p Fj(\))p +Black 1254 842 a Fs(foreach)p Black 1254 855 282 4 v +20 w Ft(q)26 b Fk(2)d Ft(\016)s Fj(\()p Ft(t;)14 b(\017)p +Fj(\))p Black 21 w Fs(do)p Black 1923 855 97 4 v Black +1337 941 a(if)p Black 1337 954 60 4 v 21 w Ft(q)35 b(=)-51 +b Fk(2)23 b Ft(D)p Black 23 w Fs(then)p Black 1651 954 +171 4 v 40 w Fv(add)d Ft(q)k Fv(unmarked)c(to)h Ft(D)p +Black 23 w Fs(\002)p Black 2676 954 51 4 v Black 1254 +1041 a(od)p Black 1254 1054 97 4 v Black 1016 1141 a(od)p +Black 1016 1154 V Black 1016 1240 a(return)p Black 1016 +1253 236 4 v 20 w Ft(D)p Black 933 1340 a Fs(end)p Black +933 1353 143 4 v 330 1514 a Fd(Figure)d(4)330 1597 y +Fo(Epsilon-closur)o(e)e(Algorithm)p Black 330 1900 a +Fs(3.2)k(Per)g(subset)f(and)h(per)g(state)330 2000 y +Fv(Next)i(we)f(discuss)i(two)f(variants)f(\()p Fu(per)h(subset)h +Fv(and)e Fu(per)h(state)p Fv(\))g(in)g(which)h(the)f(tr)o(eatment)f(of) +h Ft(\017)p Fv(-)330 2099 y(moves)17 b(is)g(integrated)g(with)g(the)g +(subset)g(constr)o(uction)h(algorithm.)g(W)-8 b(e)17 +b(will)g(show)h(later)e(that)330 2199 y(such)27 b(an)g(integrated)f +(appr)o(oach)f(is)i(in)g(practice)f(often)g(mor)o(e)h(ef)o(\002cient)f +(than)h(the)g Fu(per)f(graph)330 2298 y Fv(appr)o(oach)i(if)h(ther)o(e) +g(ar)o(e)f(many)i Ft(\017)p Fv(-moves.)f(The)g Fu(per)h(subset)h +Fv(and)e Fu(per)g(state)g Fv(appr)o(oaches)f(ar)o(e)330 +2398 y(also)c(mor)o(e)g(suitable)g(for)f(a)h Fu(lazy)f +Fv(implementation)i(of)f(the)g(subset)h(constr)o(uction)g(algorithm)330 +2498 y(\(in)d(such)g(a)f(lazy)g(implementation)i(subsets)f(ar)o(e)f +(only)h(computed)g(with)h(r)o(espect)d(to)i(a)g(given)330 +2597 y(input)f(string\).)479 2697 y(The)i Fu(per)f(subset)i +Fv(and)e(the)g Fu(per)h(state)f Fv(algorithms)i(use)e(a)g(simpli\002ed) +h(variant)f(of)g(the)h(tran-)330 2797 y(sitive)g(closur)o(e)g +(algorithm)h(for)f(graphs.)g(Instead)f(of)i(computing)g(the)f +(transitive)g(closur)o(e)g(of)330 2896 y(a)i(given)i(graph,)e(this)i +(algorithm)f(only)h(computes)g(the)f(closur)o(e)f(for)h(a)f(given)i +(set)f(of)f(states.)330 2996 y(Such)c(an)f(algorithm)i(is)f(given)g(in) +g(\002gur)o(e)f(4.)479 3095 y(In)i(both)g(of)f(the)g(two)h(integrated)f +(appr)o(oaches,)e(the)i(subset)h(constr)o(uction)h(algorithm)f(is)330 +3195 y(initialised)k(with)g(an)f(agenda)f(containing)i(a)f(single)h +(subset)f(which)h(is)g(the)f Ft(\017)p Fv(-CLOSURE)f(of)330 +3295 y(the)h(set)f(of)g(start-states)g(of)g(the)h(input;)g(furthermor)o +(e,)e(the)i(way)f(in)h(which)g(new)g(transitions)330 +3394 y(ar)o(e)j(computed)i(also)g(takes)f(the)h(ef)o(fect)e(of)i +Ft(\017)p Fv(-moves)f(into)i(account.)e(Both)h(dif)o(fer)o(ences)d(ar)o +(e)330 3494 y(accounted)20 b(for)h(by)g(an)f(alternative)g +(de\002nition)i(of)f(the)f Fu(epsilon)p 2339 3494 25 +4 v 31 w(closur)o(e)h Fv(function.)479 3594 y(The)c(appr)o(oach)d(in)j +(which)g(the)f(transitive)g(closur)o(e)g(is)h(computed)f(for)g(one)h +(state)e(at)h(a)g(time)330 3693 y(is)25 b(de\002ned)e(by)h(the)h +(following)g(de\002nition)h(of)e(the)g Fu(epsilon)p 2210 +3693 V 30 w(closur)o(e)h Fv(function.)g(Note)f(that)g(we)330 +3793 y(make)c(sur)o(e)g(that)h(the)g(transitive)f(closur)o(e)h +(computation)g(is)g(only)h(performed)d(once)i(for)g(each)330 +3892 y(input)f(state,)e(by)i(memorising)g(the)g Fu(closur)o(e)f +Fv(function;)h(the)g(full)f(computation)h(is)g(memorised)330 +3992 y(as)g(well.)626 3960 y Fn(4)p Black Black Black +330 4258 a Fs(funct)p Black 330 4271 199 4 v 20 w Ff(epsilon)p +820 4258 25 4 v 31 w(closur)o(e)6 b Fj(\()p Ft(U)j Fj(\))1405 +b Fv(variant)20 b(2:)g(per)g(state)p Black 413 4357 a +Fs(return)p Black 413 4370 236 4 v 20 w Ff(memo)7 b Fj(\()939 +4295 y Fe(S)1009 4382 y Fi(u)p Fl(2)p Fi(U)1162 4357 +y Ff(memo)g Fj(\()p Ff(closur)o(e)g Fj(\()p Fk(f)p Ft(u)p +Fk(g)p Fj(\)\)\))p Black 330 4457 a Fs(end)p Black 330 +4470 143 4 v 479 4623 a Fv(In)23 b(the)g(case)f(of)h(the)g +Fu(per)g(subset)h Fv(appr)o(oach,)d(the)i(closur)o(e)f(algorithm)i(is)f +(applied)e(to)j(each)330 4723 y(subset.)f(W)-8 b(e)24 +b(also)f(memorise)h(the)g(closur)o(e)f(function,)h(in)g(or)o(der)e(to)i +(ensur)o(e)e(that)i(the)f(closur)o(e)330 4822 y(computation)j(is)f +(performed)f(only)h(once)g(for)g(each)f(subset.)h(This)g(can)g(be)f +(useful)h(since)g(the)330 4922 y(same)d(subset)h(can)f(be)g(generated)g +(many)g(times)h(during)g(subset)g(constr)o(uction.)h(The)e(de\002ni-) +330 5022 y(tion)g(simply)f(is:)p Black Black Black 330 +5287 a Fs(funct)p Black 330 5300 199 4 v 20 w Ff(epsilon)p +820 5287 25 4 v 31 w(closur)o(e)6 b Fj(\()p Ft(U)j Fj(\))1343 +b Fv(variant)20 b(3:)g(per)g(subset)p Black 330 5457 +1495 4 v 373 5535 a Fp(4)d(This)f(is)i(an)e(impr)o(ovement)f(over)h +(the)g(algorithm)h(given)f(in)g(a)h(pr)o(eliminary)g(version)g(of)g +(this)f(paper)h(\(van)423 5610 y(Noor)o(d,)g(1998\).)p +Black Black 3288 5944 a Fv(7)p Black eop +%%Page: 8 8 +8 7 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +413 357 a Fs(return)p Black 413 370 236 4 v 20 w Ff(memo)7 +b Fj(\()p Ff(closur)o(e)g Fj(\()p Ft(U)i Fj(\)\))p Black +330 457 a Fs(end)p Black 330 470 143 4 v 479 606 a Fv(The)17 +b(motivation)h(for)f(the)g Fu(per)g(state)f Fv(variant)g(is)h(the)g +(insight)i(that)d(in)i(this)f(case)f(the)h(closur)o(e)330 +706 y(algorithm)31 b(is)g(called)e(at)h(most)i Fk(j)p +Ft(Q)p Fk(j)e Fv(times.)h(In)f(contrast,)g(in)h(the)g +Fu(per)f(subset)i Fv(appr)o(oach)d(the)330 806 y(transitive)c(closur)o +(e)f(algorithm)i(may)f(need)f(to)i(be)e(called)g Fj(2)2258 +776 y Fl(j)p Fi(Q)p Fl(j)2379 806 y Fv(times.)h(On)g(the)g(other)g +(hand,)330 905 y(in)19 b(the)f Fu(per)g(state)g Fv(appr)o(oach)f(some)h +(over)o(head)f(must)i(be)f(accepted)e(for)i(computing)i(the)e(union)330 +1005 y(of)27 b(the)g(r)o(esults)f(for)h(each)f(state.)g(Mor)o(eover)-6 +b(,)26 b(in)h(practice)f(the)h(number)g(of)f(subsets)i(is)f(often)330 +1105 y(much)c(smaller)f(than)h Fj(2)1084 1074 y Fl(j)p +Fi(Q)p Fl(j)1179 1105 y Fv(.)g(In)f(some)h(cases,)f(the)h(number)f(of)h +(r)o(eachable)d(subsets)j(is)g(smaller)330 1204 y(than)e(the)g(number)g +(of)g(states)f(encounter)o(ed)g(in)h(those)h(subsets.)330 +1403 y Fs(3.3)e(Implementation)330 1503 y Fv(In)f(or)o(der)f(to)i +(implement)g(the)f(algorithms)h(ef)o(\002ciently)f(in)h(Pr)o(olog,)f +(it)g(is)h(important)f(to)h(use)f(ef-)330 1603 y(\002cient)g(data-str)o +(uctur)o(es.)e(In)i(particular)-6 b(,)17 b(we)i(use)g(an)g +(implementation)h(of)e(\(non-updatable\))330 1702 y(arrays)h(based)g +(on)i(the)f(N+K)h(tr)o(ees)e(of)h(O'Keefe)g(\(1990,)e(pp.142-145\))e +(with)21 b(N=95)e(and)h(K=32.)330 1802 y(On)f(top)f(of)g(this)g +(datastr)o(uctur)o(e,)e(a)i(hash)g(array)f(is)h(implemented)g(using)h +(the)f(SICStus)g(library)330 1902 y(pr)o(edicate)23 b +Fb(term)p 901 1902 25 4 v 29 w(hash/4)g Fv(which)j(constr)o(ucts)f(a)f +(key)h(for)f(a)g(given)h(term.)f(In)h(such)g(hashes,)330 +2001 y(a)h(value)f(in)i(the)g(underlying)f(array)f(is)i(a)f(partial)f +(list)i(of)f(key-value)g(pairs;)f(thus)i(collisions)330 +2101 y(ar)o(e)22 b(r)o(esolved)h(by)h(chaining.)g(This)g(pr)o(ovides)f +(ef)o(\002cient)g(access)g(in)i(practice,)d(although)j(such)330 +2200 y(arrays)17 b(ar)o(e)f(quite)j(memory-intensive:)f(car)o(e)e(must) +j(be)e(taken)h(to)g(ensur)o(e)g(that)f(the)h(determin-)330 +2300 y(istic)f(algorithms)h(indeed)e(ar)o(e)f(implemented)i(without)h +(intr)o(oducing)f(choice-points)h(during)330 2400 y(r)o(untime.)330 +2599 y Fs(4)i(Experiments)330 2798 y Fv(T)-7 b(wo)22 +b(sets)f(of)h(experiments)f(have)g(been)h(performed.)e(In)i(the)g +(\002rst)f(set)h(of)g(experiments,)f(ran-)330 2898 y(dom)33 +b(automata)e(ar)o(e)g(generated)g(accor)o(ding)h(to)g(a)g(number)g(of)h +(criteria)e(based)g(on)i(Leslie)330 2997 y(\(1995\).)13 +b(In)j(the)g(second)g(set)g(of)f(experiments,)h(r)o(esults)f(ar)o(e)g +(pr)o(ovided)f(for)i(a)f(number)h(of)g(\(much)330 3097 +y(lar)o(ger\))i(automata)h(that)h(surfaced)f(during)h(actual)f +(development)g(work)i(on)f(\002nite-state)g(ap-)330 3197 +y(pr)o(oximation)h(techniques.)1241 3165 y Fn(5)330 3396 +y Fu(Random)34 b(automata.)d Fv(Firstly)-9 b(,)35 b(we)g(r)o(eport)g +(on)g(a)g(number)g(of)g(experiments)g(for)g(randomly)330 +3496 y(generated)30 b(automata.)g(Following)j(Leslie)d(\(1995\),)e(the) +j Fu(absolute)h(transition)f(density)f Fv(of)h(an)330 +3595 y(automaton)g(is)f(de\002ned)g(as)f(the)i(number)f(of)g +(transitions)h(divided)e(by)h(the)g(squar)o(e)g(of)g(the)330 +3695 y(number)25 b(of)f(states)h(multiplied)g(by)g(the)f(number)h(of)g +(symbols)h(\(i.e.)d(the)i(number)g(of)f(transi-)330 3794 +y(tions)19 b(divided)e(by)i(the)f(maximum)g(number)h(of)f(`possible')h +(transitions,)g(or)-6 b(,)17 b(in)i(other)f(wor)o(ds,)330 +3894 y(the)k(pr)o(obability)f(that)h(a)f(possible)i(transition)f(in)h +(fact)e(exists\).)g Fu(Deterministic)h(transition)f(den-)330 +3994 y(sity)f Fv(is)h(the)g(number)g(of)g(transitions)h(divided)e(by)h +(the)g(number)f(of)h(states)g(multiplied)g(by)g(the)330 +4093 y(number)26 b(of)g(symbols)h(\(i.e.)e(the)i(ratio)e(of)h(the)h +(number)f(of)g(transitions)h(and)e(the)i(maximum)330 +4193 y(number)21 b(of)g(`possible')g(transitions)h(in)f(a)g +(deterministic)g(machine\).)479 4293 y(In)28 b(both)g(of)f(these)g +(de\002nitions,)h(the)f(number)h(of)f(transitions)h(should)g(be)f +(understood)330 4392 y(as)f(the)g(the)h(number)f(of)h(non-duplicate)f +(transitions)h(which)g(do)g(not)g(lead)e(to)i(a)f(sink)h(state.)330 +4492 y(A)c(sink)h(state)f(is)h(a)f(state)g(fr)o(om)g(which)h(ther)o(e)f +(exists)g(no)i(sequence)e(of)h(transitions)g(to)g(a)f(\002nal)330 +4591 y(state.)g(In)g(the)h(randomly)f(generated)g(automata,)f(states)h +(ar)o(e)f(accessible)h(and)g(co-accessible)330 4691 y(by)e(constr)o +(uction;)h(sink)g(states)e(and)h(associated)f(transitions)h(ar)o(e)f +(not)h(r)o(epr)o(esented.)479 4791 y(Leslie)g(\(1995\))e(shows)k(that)e +Fu(deterministic)g(transition)g(density)g Fv(is)g(a)g(r)o(eliable)f +(measur)o(e)g(for)330 4890 y(the)k(dif)o(\002culty)g(of)g(subset)h +(constr)o(uction.)g(Exponential)g(blow-up)f(can)g(be)g(expected)f(for)h +(in-)330 4990 y(put)34 b(automata)e(with)j(deterministic)f(transition)g +(density)g(of)f(ar)o(ound)g(2.)2753 4958 y Fn(6)2820 +4990 y Fv(He)h(concludes)330 5090 y(\(page)20 b(66\):)p +Black Black 629 5252 a([.)12 b(.)g(.)g(])27 b(randomly)g(generated)f +(automata)g(exhibit)i(the)f(maximum)g(execu-)p Black +330 5413 1495 4 v 373 5491 a Fp(5)17 b(All)g(the)f(automata)g(used)g +(in)h(the)f(experiments)g(ar)o(e)g(fr)o(eely)h(available)g(fr)o(om)423 +5566 y(http://www)-6 b(.let.r)o(ug.nl/\230vannoor)o(d/Fsa/.)373 +5637 y(6)17 b(Leslie)g(uses)f(the)g(terms)g Fh(absolute)i(density)f +Fp(and)f Fh(deterministic)h(density)p Fp(.)p Black Black +3288 5944 a Fv(8)p Black eop +%%Page: 9 9 +9 8 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +330 1687 a + 23681433 16577003 3289088 3289088 26970521 19866091 startTexFig + 330 1687 a +%%BeginDocument: dts25n.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid true def +/gnulinewidth 5.000 def +/vshift -60 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Palatino-Roman findfont 180 scalefont setfont +newpath +LTa +LTb +1080 451 M +63 0 V +5778 0 R +-63 0 V +972 451 M +(1) Rshow +1080 677 M +31 0 V +5810 0 R +-31 0 V +1080 975 M +31 0 V +5810 0 R +-31 0 V +1080 1128 M +31 0 V +5810 0 R +-31 0 V +-5810 73 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10) Rshow +1080 1426 M +31 0 V +5810 0 R +-31 0 V +1080 1725 M +31 0 V +5810 0 R +-31 0 V +1080 1878 M +31 0 V +5810 0 R +-31 0 V +-5810 72 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100) Rshow +1080 2176 M +31 0 V +5810 0 R +-31 0 V +1080 2474 M +31 0 V +5810 0 R +-31 0 V +1080 2627 M +31 0 V +5810 0 R +-31 0 V +-5810 73 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(1000) Rshow +1080 2926 M +31 0 V +5810 0 R +-31 0 V +1080 3224 M +31 0 V +5810 0 R +-31 0 V +1080 3377 M +31 0 V +5810 0 R +-31 0 V +-5810 73 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10000) Rshow +1080 3675 M +31 0 V +5810 0 R +-31 0 V +1080 3974 M +31 0 V +5810 0 R +-31 0 V +1080 4127 M +31 0 V +5810 0 R +-31 0 V +-5810 72 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100000) Rshow +1080 4425 M +31 0 V +5810 0 R +-31 0 V +1080 4723 M +31 0 V +5810 0 R +-31 0 V +1080 4876 M +31 0 V +5810 0 R +-31 0 V +-5810 73 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(1e+06) Rshow +1479 451 M +0 31 V +0 4467 R +0 -31 V +2042 451 M +0 31 V +0 4467 R +0 -31 V +2441 451 M +0 31 V +0 4467 R +0 -31 V +2751 451 M +0 31 V +0 4467 R +0 -31 V +3004 451 M +0 31 V +0 4467 R +0 -31 V +3217 451 M +0 31 V +0 4467 R +0 -31 V +3403 451 M +0 31 V +0 4467 R +0 -31 V +3566 451 M +0 31 V +0 4467 R +0 -31 V +3712 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1) Cshow +4674 451 M +0 31 V +0 4467 R +0 -31 V +5237 451 M +0 31 V +0 4467 R +0 -31 V +5636 451 M +0 31 V +0 4467 R +0 -31 V +5945 451 M +0 31 V +0 4467 R +0 -31 V +6198 451 M +0 31 V +0 4467 R +0 -31 V +6412 451 M +0 31 V +0 4467 R +0 -31 V +6598 451 M +0 31 V +0 4467 R +0 -31 V +6761 451 M +0 31 V +0 4467 R +0 -31 V +6907 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(10) Cshow +1080 451 M +5841 0 V +0 4498 V +-5841 0 V +0 -4498 V +180 2700 M +currentpoint gsave translate 90 rotate 0 0 M +(CPU-time \(msec\) / Number of States \(input+output\)) Cshow +grestore +4000 91 M +(Deterministic Density) Cshow +LT0 +6318 4706 M +(fsa) Rshow +6534 4706 D +1479 1070 D +2042 1558 D +2441 1950 D +2751 2617 D +3004 2859 D +3217 3229 D +3403 3308 D +3566 3601 D +3712 3914 D +3845 4026 D +3965 4198 D +4076 4274 D +4179 4434 D +4364 4541 D +5369 4438 D +5636 3841 D +5945 3431 D +6412 2687 D +6907 2481 D +LT1 +6318 4526 M +(fsm) Rshow +6534 4526 A +1479 1070 A +2042 1426 A +2441 1558 A +2751 2151 A +3004 2418 A +3217 2849 A +3403 2950 A +3566 3316 A +3712 3676 A +3845 3813 A +3965 3982 A +4076 4049 A +4179 4262 A +4364 4332 A +5369 4329 A +5636 3756 A +5945 3371 A +6412 2693 A +6907 2499 A +LT2 +6318 4346 M +(states) Rshow +6534 4346 B +1479 1624 B +2042 2067 B +2441 2350 B +2751 2865 B +3004 3043 B +3217 3348 B +3403 3412 B +3566 3624 B +3712 3893 B +3845 3981 B +3965 4106 B +4076 4154 B +4179 4314 B +4364 4359 B +5369 4018 B +5636 3372 B +5945 2909 B +6412 2125 B +6907 1905 B +stroke +grestore +end +showpage + +%%EndDocument + + endTexFig + 330 3871 a Fd(Figure)f(5)330 3954 y Fo(Deterministic)g(transition)h +(density)f(versus)g(CPU-time)g(in)h(msec.)f(The)h(input)g(automata)h +(have)g(25)330 4037 y(states,)f(15)g(symbols,)e(and)i(no)g +Fa(\017)p Fo(-moves.)f Fc(fsa)h Fo(r)o(epr)o(esents)d(the)k(CPU-time)e +(r)o(equir)o(ed)e(by)j(our)f(FSA6)330 4120 y(implementation;)h +Fc(fsm)g Fo(r)o(epr)o(esents)d(the)j(CPU-time)g(r)o(equir)o(ed)d(by)i +(A)-6 b(T&T's)19 b(FSM)f(library;)f Fc(states)330 4203 +y Fo(r)o(epr)o(esents)g(the)i(sum)f(of)h(the)g(number)g(of)f(states)h +(of)f(the)i(input)f(and)g(output)g(automata.)p Black +Black 3288 5944 a Fv(9)p Black eop +%%Page: 10 10 +10 9 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black 629 357 +a Fv(tion)k(time,)f(and)g(the)h(maximum)g(number)f(of)h(states,)e(at)h +(an)h(appr)o(oximate)629 457 y(deterministic)c(density)g(of)f(2.)g +(Most)h(of)f(the)h(ar)o(ea)d(under)i(the)h(curve)f(occurs)629 +556 y(within)k(0.5)e(and)h(2.5)f(deterministic)i(density\227this)g(is)g +(the)f(ar)o(ea)f(in)h(which)629 656 y(subset)g(constr)o(uction)h(is)f +(expensive.)629 789 y Fs(Conjecture.)d Fv(For)i(a)g(given)h(NF)-6 +b(A,)19 b(we)h(can)g(compute)h(the)f(expected)f(num-)629 +888 y(bers)g(of)g(states)g(and)g(transitions)i(in)f(the)f(corr)o +(esponding)g(DF)-6 b(A,)19 b(pr)o(oduced)629 988 y(by)g(subset)g +(constr)o(uction,)h(fr)o(om)f(the)g(deterministic)g(density)g(of)g(the) +g(NF)-6 b(A.)629 1088 y(In)18 b(addition,)g(this)h(functional)f(r)o +(elationship)g(gives)h(rise)f(to)g(a)g(Poisson-like)629 +1187 y(curve)i(with)i(its)f(peak)f(appr)o(oximately)f(at)i(a)f +(deterministic)h(density)g(of)g(2.)479 1370 y(A)h(number)h(of)f +(automata)f(wer)o(e)g(generated)g(randomly)-9 b(,)22 +b(accor)o(ding)g(to)g(the)h(number)f(of)330 1469 y(states,)32 +b(symbols,)g(and)g(transition)h(density)-9 b(.)32 b(For)g(the)g +(\002rst)g(experiment,)g(automata)f(wer)o(e)330 1569 +y(generated)i(consisting)j(of)e(15)f(symbols,)i(25)e(states,)g(and)h +(various)g(densities)g(\(and)f(no)i Ft(\017)p Fv(-)330 +1669 y(moves\).)22 b(The)f(r)o(esults)g(ar)o(e)g(summarised)g(in)h +(\002gur)o(e)g(5.)e(CPU-time)i(was)f(measur)o(ed)f(on)j(a)e(HP)330 +1768 y(9000/785)c(machine)j(r)o(unning)h(HP-UX)f(10.20.)d(Note)j(that)g +(our)g(timings)h(do)f(not)g(include)g(the)330 1868 y(start-up)g(of)h +(the)g(Pr)o(olog)g(engine,)g(nor)g(the)g(time)g(r)o(equir)o(ed)e(for)i +(garbage)e(collection.)479 1968 y(In)26 b(or)o(der)d(to)j(establish)f +(that)f(the)h(dif)o(fer)o(ences)e(we)i(obtain)g(later)f(ar)o(e)g +(genuinely)h(due)g(to)330 2067 y(dif)o(fer)o(ences)30 +b(in)k(the)e(underlying)i(algorithm,)f(and)f(not)i(due)e(to)h +(`accidental')f(implemen-)330 2167 y(tation)h(details,)g(we)g(have)f +(compar)o(ed)g(our)h(implementation)h(with)g(the)f(determiniser)g(of) +330 2267 y(A)-6 b(T&T's)30 b(FSM)f(utilities)i(\(Mohri,)f(Per)o(eira,)f +(and)h(Riley)-9 b(,)31 b(1998\).)d(For)i(automata)g(without)i +Ft(\017)p Fv(-)330 2366 y(moves)19 b(we)f(establish)g(that)g(FSM)f +(normally)i(is)f(faster:)f(for)h(automata)f(with)i(very)e(small)i +(tran-)330 2466 y(sition)24 b(densities)g(FSM)f(is)g(up)g(to)h(four)f +(times)h(as)f(fast,)f(for)h(automata)g(with)h(lar)o(ger)e(densities)330 +2565 y(the)f(r)o(esults)f(ar)o(e)g(similar)-6 b(.)479 +2665 y(A)27 b(new)g(concept)g(called)g Fu(absolute)g(jump)f(density)h +Fv(is)g(intr)o(oduced)g(to)g(specify)g(the)g(num-)330 +2765 y(ber)h(of)g Ft(\017)p Fv(-moves.)g(It)g(is)h(de\002ned)e(as)h +(the)h(number)f(of)g Ft(\017)p Fv(-moves)g(divided)g(by)g(the)g(squar)o +(e)g(of)330 2864 y(the)c(number)h(of)f(states)g(\(i.e.,)f(the)h(pr)o +(obability)g(that)g(an)g Ft(\017)p Fv(-move)g(exists)g(for)g(a)g(given) +g(pair)g(of)330 2964 y(states\).)i(Furthermor)o(e,)h +Fu(deterministic)g(jump)g(density)f Fv(is)i(the)f(number)h(of)f +Ft(\017)p Fv(-moves)g(divided)330 3064 y(by)d(the)g(number)g(of)g +(states)g(\(i.e.,)f(the)h(average)e(number)i(of)g Ft(\017)p +Fv(-moves)g(which)h(leave)e(a)h(given)330 3163 y(state\).)j(In)i(or)o +(der)e(to)i(measur)o(e)e(the)i(dif)o(fer)o(ences)d(between)i(the)g(thr) +o(ee)g(implementations,)h(a)330 3263 y(number)g(of)f(automata)g(has)h +(been)f(generated)f(consisting)k(of)d(15)g(states)g(and)g(15)g +(symbols,)330 3362 y(using)33 b(various)f(transition)h(densities)g +(between)f(0.01)e(and)i(0.3)f(\(for)g(lar)o(ger)g(densities)i(the)330 +3462 y(automata)d(tend)g(to)h(collapse)f(to)h(an)f(automaton)h(for)g +Fj(\006)2184 3432 y Fl(\003)2222 3462 y Fv(\).)e(For)i(each)f(of)h +(these)f(transition)330 3562 y(densities,)19 b(deterministic)h(jump)g +(densities)g(wer)o(e)e(chosen)i(in)g(the)f(range)g(0)g(to)h(2.5)e +(\(again,)g(for)330 3661 y(lar)o(ger)f(values)g(the)h(automata)f(tend)h +(to)g(collapse\).)f(In)h(\002gur)o(es)g(6)f(to)36 b(9)17 +b(the)h(outcomes)h(of)f(these)330 3761 y(experiments)j(ar)o(e)g +(summarised)g(by)h(listing)h(the)f(average)e(amount)i(of)f(CPU-time)g +(r)o(equir)o(ed)330 3861 y(per)k(deterministic)g(jump)h(density)f +(\(for)g(each)f(of)h(the)g(algorithms\),)h(using)g(automata)e(with)330 +3960 y(15,)16 b(20,)h(25)g(and)g(100)f(states)h(r)o(espectively)-9 +b(.)17 b(Thus,)g(every)h(dot)f(r)o(epr)o(esents)g(the)g(average)f(for)i +(de-)330 4060 y(terminising)k(a)d(number)i(of)f(dif)o(fer)o(ent)e +(input)j(automata)f(with)h(various)f(absolute)g(transition)330 +4159 y(densities)h(and)f(the)h(same)g(deterministic)g(jump)g(density)-9 +b(.)479 4259 y(The)18 b(striking)g(aspect)e(of)i(these)f(experiments)g +(is)g(that)h(the)f(integrated)g Fu(per)g(subset)h Fv(and)f +Fu(per)330 4359 y(state)h Fv(variants)f(ar)o(e)g(much)i(mor)o(e)f(ef)o +(\002cient)f(for)h(lar)o(ger)f(deterministic)h(jump)h(density)-9 +b(.)18 b(The)g Fu(per)330 4458 y(graph)525 4428 y Fi(t)579 +4458 y Fv(is)27 b(typically)g(the)g(fastest)f(algorithm)h(of)f(the)h +(non-integrated)g(versions.)g(However)-6 b(,)330 4558 +y(in)26 b(these)g(experiments)g(all)g(states)f(in)i(the)e(input)i(ar)o +(e)d(co-accessible)h(by)h(constr)o(uction;)h(and)330 +4658 y(mor)o(eover)-6 b(,)26 b(all)g(states)h(in)g(the)g(input)g(ar)o +(e)f(\002nal)h(states.)f(Ther)o(efor)o(e,)f(the)i(advantages)e(of)i +(the)330 4757 y Fu(per)21 b(graph)652 4727 y Fi(t;c)750 +4757 y Fv(algorithm)g(could)g(not)h(be)e(observed)g(her)o(e.)479 +4857 y(The)30 b(turning)g(point)h(is)e(ar)o(ound)g(a)g(deterministic)h +(jump)g(density)g(of)f(ar)o(ound)g(0.8:)f(for)330 4956 +y(smaller)f(densities)g(the)f Fu(per)h(graph)1448 4926 +y Fi(t)1503 4956 y Fv(is)g(typically)g(slightly)h(faster;)d(for)h(lar)o +(ger)g(densities)h(the)330 5056 y Fu(per)19 b(state)g +Fv(algorithm)g(is)g(much)h(faster)-6 b(.)17 b(For)j(densities)f(beyond) +g(1.5,)e(the)i Fu(per)g(subset)h Fv(algorithm)330 5156 +y(tends)25 b(to)g(perform)g(better)f(than)h(the)g Fu(per)g(state)f +Fv(algorithm.)i(Inter)o(estingly)-9 b(,)24 b(this)i(generalisa-)330 +5255 y(tion)i(is)g(supported)f(by)h(the)g(experiments)f(on)h(automata)f +(which)h(wer)o(e)f(generated)f(by)i(ap-)330 5355 y(pr)o(oximation)k +(techniques)g(\(although)h(the)e(r)o(esults)h(for)f(randomly)h +(generated)f(automata)330 5455 y(ar)o(e)19 b(mor)o(e)i(consistent)h +(than)f(the)g(r)o(esults)f(for)h(`r)o(eal')e(examples\).)p +Black 3247 5944 a(10)p Black eop +%%Page: 11 11 +11 10 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +330 413 a + 23681433 16577003 3289088 3289088 26970521 19866091 startTexFig + 330 413 a +%%BeginDocument: 15n.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid true def +/gnulinewidth 5.000 def +/vshift -60 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Palatino-Roman findfont 180 scalefont setfont +newpath +LTa +1080 451 M +0 4498 V +LTb +1080 451 M +63 0 V +5778 0 R +-63 0 V +972 451 M +(10) Rshow +1080 902 M +31 0 V +5810 0 R +-31 0 V +1080 1166 M +31 0 V +5810 0 R +-31 0 V +1080 1354 M +31 0 V +5810 0 R +-31 0 V +1080 1499 M +31 0 V +5810 0 R +-31 0 V +1080 1618 M +31 0 V +5810 0 R +-31 0 V +1080 1718 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 77 R +31 0 V +5810 0 R +-31 0 V +-5810 68 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100) Rshow +1080 2402 M +31 0 V +5810 0 R +-31 0 V +1080 2666 M +31 0 V +5810 0 R +-31 0 V +1080 2853 M +31 0 V +5810 0 R +-31 0 V +1080 2998 M +31 0 V +5810 0 R +-31 0 V +1080 3117 M +31 0 V +5810 0 R +-31 0 V +1080 3217 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 77 R +31 0 V +5810 0 R +-31 0 V +-5810 69 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(1000) Rshow +1080 3901 M +31 0 V +5810 0 R +-31 0 V +1080 4165 M +31 0 V +5810 0 R +-31 0 V +1080 4352 M +31 0 V +5810 0 R +-31 0 V +1080 4498 M +31 0 V +5810 0 R +-31 0 V +1080 4616 M +31 0 V +5810 0 R +-31 0 V +1080 4717 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 76 R +31 0 V +5810 0 R +-31 0 V +-5810 69 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10000) Rshow +1080 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0) Cshow +2087 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.5) Cshow +3094 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1) Cshow +4101 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.5) Cshow +5108 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2) Cshow +6115 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2.5) Cshow +1080 451 M +5841 0 V +0 4498 V +-5841 0 V +0 -4498 V +180 2700 M +currentpoint gsave translate 90 rotate 0 0 M +(Mean CPU-time \(msec\)) Cshow +grestore +4000 91 M +(#Jumps/#States) Cshow +LT0 +6318 4706 M +(per_graph\(t\)) Rshow +6426 4706 M +324 0 V +1483 4047 M +403 -642 V +402 -251 V +403 -554 V +403 -290 V +403 -369 V +403 -96 V +403 -279 V +402 -212 V +403 0 V +403 171 V +403 -26 V +403 -333 V +403 300 V +6534 4706 D +1483 4047 D +1886 3405 D +2288 3154 D +2691 2600 D +3094 2310 D +3497 1941 D +3900 1845 D +4303 1566 D +4705 1354 D +5108 1354 D +5511 1525 D +5914 1499 D +6317 1166 D +6720 1466 D +LT1 +6318 4526 M +(per_graph\(s\)) Rshow +6426 4526 M +324 0 V +1483 4241 M +403 -505 V +402 -144 V +403 -432 V +403 -243 V +403 -368 V +403 -33 V +403 -372 V +402 -151 V +403 -215 V +403 246 V +403 117 V +403 73 V +403 -248 V +6534 4526 A +1483 4241 A +1886 3736 A +2288 3592 A +2691 3160 A +3094 2917 A +3497 2549 A +3900 2516 A +4303 2144 A +4705 1993 A +5108 1778 A +5511 2024 A +5914 2141 A +6317 2214 A +6720 1966 A +LT2 +6318 4346 M +(per_graph\(s,a\)) Rshow +6426 4346 M +324 0 V +1483 4237 M +403 -497 V +402 -145 V +403 -421 V +403 -224 V +403 -307 V +403 -13 V +403 -218 V +402 -97 V +403 -194 V +403 388 V +403 -82 V +403 6 V +403 67 V +6534 4346 B +1483 4237 B +1886 3740 B +2288 3595 B +2691 3174 B +3094 2950 B +3497 2643 B +3900 2630 B +4303 2412 B +4705 2315 B +5108 2121 B +5511 2509 B +5914 2427 B +6317 2433 B +6720 2500 B +LT3 +6318 4166 M +(per_graph\(t,c\)) Rshow +6426 4166 M +324 0 V +1483 4048 M +403 -635 V +402 -246 V +403 -518 V +403 -233 V +403 -295 V +403 -40 V +403 -111 V +402 -88 V +403 -134 V +403 252 V +403 12 V +403 -130 V +403 145 V +6534 4166 C +1483 4048 C +1886 3413 C +2288 3167 C +2691 2649 C +3094 2416 C +3497 2121 C +3900 2081 C +4303 1970 C +4705 1882 C +5108 1748 C +5511 2000 C +5914 2012 C +6317 1882 C +6720 2027 C +LT4 +6318 3986 M +(per_subset) Rshow +6426 3986 M +324 0 V +1483 4169 M +403 -659 V +402 -271 V +403 -577 V +403 -330 V +403 -424 V +403 -142 V +403 -507 V +4705 955 L +403 -53 V +5511 757 L +403 264 V +403 145 V +6720 715 L +6534 3986 T +1483 4169 T +1886 3510 T +2288 3239 T +2691 2662 T +3094 2332 T +3497 1908 T +3900 1766 T +4303 1259 T +4705 955 T +5108 902 T +5511 757 T +5914 1021 T +6317 1166 T +6720 715 T +LT5 +6318 3806 M +(per_state) Rshow +6426 3806 M +324 0 V +1483 4157 M +403 -663 V +402 -279 V +403 -596 V +403 -311 V +403 -451 V +403 -135 V +403 -508 V +4705 845 L +403 157 V +5511 670 L +403 294 V +403 -62 V +6720 715 L +6534 3806 S +1483 4157 S +1886 3494 S +2288 3215 S +2691 2619 S +3094 2308 S +3497 1857 S +3900 1722 S +4303 1214 S +4705 845 S +5108 1002 S +5511 670 S +5914 964 S +6317 902 S +6720 715 S +LT6 +6318 3626 M +(fsm) Rshow +6426 3626 M +324 0 V +1483 3879 M +403 -448 V +402 -101 V +403 -387 V +403 -188 V +403 -320 V +403 -7 V +403 -448 V +402 -135 V +403 -127 V +403 54 V +403 252 V +403 232 V +403 -612 V +stroke +grestore +end +showpage + +%%EndDocument + + endTexFig + 330 2596 a Fd(Figure)f(6)330 2679 y Fo(A)-7 b(verage)18 +b(amount)i(of)e(CPU-time)h(versus)f(jump)h(density)f(for)f(each)j(of)e +(the)i(algorithms,)d(and)i(FSM.)330 2762 y(Input)h(automata)g(have)g +(15)f(states.)f(Absolute)h(transition)g(densities:)f(0.01-0.3.)p +Black Black 330 3128 a + 23681433 16577003 3289088 3289088 26970521 19866091 startTexFig + 330 3128 a +%%BeginDocument: 20n.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid true def +/gnulinewidth 5.000 def +/vshift -60 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Palatino-Roman findfont 180 scalefont setfont +newpath +LTa +1080 451 M +0 4498 V +LTb +1080 451 M +63 0 V +5778 0 R +-63 0 V +972 451 M +(10) Rshow +1080 902 M +31 0 V +5810 0 R +-31 0 V +1080 1166 M +31 0 V +5810 0 R +-31 0 V +1080 1354 M +31 0 V +5810 0 R +-31 0 V +1080 1499 M +31 0 V +5810 0 R +-31 0 V +1080 1618 M +31 0 V +5810 0 R +-31 0 V +1080 1718 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 77 R +31 0 V +5810 0 R +-31 0 V +-5810 68 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100) Rshow +1080 2402 M +31 0 V +5810 0 R +-31 0 V +1080 2666 M +31 0 V +5810 0 R +-31 0 V +1080 2853 M +31 0 V +5810 0 R +-31 0 V +1080 2998 M +31 0 V +5810 0 R +-31 0 V +1080 3117 M +31 0 V +5810 0 R +-31 0 V +1080 3217 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 77 R +31 0 V +5810 0 R +-31 0 V +-5810 69 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(1000) Rshow +1080 3901 M +31 0 V +5810 0 R +-31 0 V +1080 4165 M +31 0 V +5810 0 R +-31 0 V +1080 4352 M +31 0 V +5810 0 R +-31 0 V +1080 4498 M +31 0 V +5810 0 R +-31 0 V +1080 4616 M +31 0 V +5810 0 R +-31 0 V +1080 4717 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 76 R +31 0 V +5810 0 R +-31 0 V +-5810 69 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10000) Rshow +1080 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0) Cshow +2087 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.5) Cshow +3094 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1) Cshow +4101 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.5) Cshow +5108 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2) Cshow +6115 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2.5) Cshow +1080 451 M +5841 0 V +0 4498 V +-5841 0 V +0 -4498 V +180 2700 M +currentpoint gsave translate 90 rotate 0 0 M +(Mean CPU-time \(msec\)) Cshow +grestore +4000 91 M +(#Jumps/#States) Cshow +LT0 +6318 4706 M +(per_graph\(t\)) Rshow +6426 4706 M +324 0 V +1483 4654 M +403 -225 V +402 -601 V +403 -329 V +403 -698 V +403 -215 V +403 -314 V +403 -197 V +402 -197 V +403 143 V +403 -104 V +403 -169 V +403 -78 V +403 187 V +6534 4706 D +1483 4654 D +1886 4429 D +2288 3828 D +2691 3499 D +3094 2801 D +3497 2586 D +3900 2272 D +4303 2075 D +4705 1878 D +5108 2021 D +5511 1917 D +5914 1748 D +6317 1670 D +6720 1857 D +LT1 +6318 4526 M +(per_graph\(s\)) Rshow +6426 4526 M +324 0 V +1483 4822 M +403 -82 V +402 -466 V +403 -276 V +403 -652 V +403 -215 V +403 -273 V +403 -207 V +402 -155 V +403 161 V +403 -123 V +403 13 V +403 -162 V +403 171 V +6534 4526 A +1483 4822 A +1886 4740 A +2288 4274 A +2691 3998 A +3094 3346 A +3497 3131 A +3900 2858 A +4303 2651 A +4705 2496 A +5108 2657 A +5511 2534 A +5914 2547 A +6317 2385 A +6720 2556 A +LT2 +6318 4346 M +(per_graph\(s,a\)) Rshow +6426 4346 M +324 0 V +1483 4817 M +403 -77 V +402 -463 V +403 -278 V +403 -594 V +403 -212 V +403 -197 V +403 -115 V +402 46 V +403 61 V +403 37 V +403 -14 V +403 -438 V +403 493 V +6534 4346 B +1483 4817 B +1886 4740 B +2288 4277 B +2691 3999 B +3094 3405 B +3497 3193 B +3900 2996 B +4303 2881 B +4705 2927 B +5108 2988 B +5511 3025 B +5914 3011 B +6317 2573 B +6720 3066 B +LT3 +6318 4166 M +(per_graph\(t,c\)) Rshow +6426 4166 M +324 0 V +1483 4661 M +403 -221 V +402 -595 V +403 -329 V +403 -604 V +403 -168 V +403 -230 V +403 -53 V +402 -28 V +403 55 V +403 10 V +403 4 V +403 -288 V +403 283 V +6534 4166 C +1483 4661 C +1886 4440 C +2288 3845 C +2691 3516 C +3094 2912 C +3497 2744 C +3900 2514 C +4303 2461 C +4705 2433 C +5108 2488 C +5511 2498 C +5914 2502 C +6317 2214 C +6720 2497 C +LT4 +6318 3986 M +(per_subset) Rshow +6426 3986 M +324 0 V +1483 4760 M +403 -273 V +402 -627 V +403 -339 V +403 -737 V +403 -294 V +403 -358 V +403 -280 V +402 -397 V +403 249 V +403 -274 V +403 -340 V +403 76 V +403 -76 V +6534 3986 T +1483 4760 T +1886 4487 T +2288 3860 T +2691 3521 T +3094 2784 T +3497 2490 T +3900 2132 T +4303 1852 T +4705 1455 T +5108 1704 T +5511 1430 T +5914 1090 T +6317 1166 T +6720 1090 T +LT5 +6318 3806 M +(per_state) Rshow +6426 3806 M +324 0 V +1483 4756 M +403 -275 V +402 -652 V +403 -347 V +403 -752 V +403 -246 V +403 -377 V +403 -268 V +402 -340 V +403 171 V +403 -254 V +403 -326 V +403 177 V +403 58 V +6534 3806 S +1483 4756 S +1886 4481 S +2288 3829 S +2691 3482 S +3094 2730 S +3497 2484 S +3900 2107 S +4303 1839 S +4705 1499 S +5108 1670 S +5511 1416 S +5914 1090 S +6317 1267 S +6720 1325 S +LT6 +6318 3626 M +(fsm) Rshow +6426 3626 M +324 0 V +1483 4510 M +403 21 V +402 -411 V +403 -282 V +403 -577 V +403 -156 V +403 -236 V +403 -269 V +402 -188 V +403 206 V +403 -213 V +403 -37 V +403 0 V +403 -29 V +stroke +grestore +end +showpage + +%%EndDocument + + endTexFig + 330 5311 a Fd(Figure)g(7)330 5394 y Fo(A)-7 b(verage)18 +b(amount)i(of)e(CPU-time)h(versus)f(jump)h(density)f(for)f(each)j(of)e +(the)i(algorithms,)d(and)i(FSM.)330 5477 y(Input)h(automata)g(have)g +(20)f(states.)f(Absolute)h(transition)g(densities:)f(0.01-0.3.)p +Black Black 3252 5944 a Fv(1)-5 b(1)p Black eop +%%Page: 12 12 +12 11 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +330 413 a + 23681433 16577003 3289088 3289088 26970521 19866091 startTexFig + 330 413 a +%%BeginDocument: 25n.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid true def +/gnulinewidth 5.000 def +/vshift -60 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Palatino-Roman findfont 180 scalefont setfont +newpath +LTa +1080 451 M +0 4498 V +LTb +1080 451 M +63 0 V +5778 0 R +-63 0 V +972 451 M +(10) Rshow +1080 790 M +31 0 V +5810 0 R +-31 0 V +1080 988 M +31 0 V +5810 0 R +-31 0 V +1080 1128 M +31 0 V +5810 0 R +-31 0 V +1080 1237 M +31 0 V +5810 0 R +-31 0 V +-5810 89 R +31 0 V +5810 0 R +-31 0 V +-5810 75 R +31 0 V +5810 0 R +-31 0 V +-5810 66 R +31 0 V +5810 0 R +-31 0 V +-5810 57 R +31 0 V +5810 0 R +-31 0 V +-5810 52 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100) Rshow +1080 1914 M +31 0 V +5810 0 R +-31 0 V +1080 2112 M +31 0 V +5810 0 R +-31 0 V +1080 2253 M +31 0 V +5810 0 R +-31 0 V +1080 2361 M +31 0 V +5810 0 R +-31 0 V +-5810 90 R +31 0 V +5810 0 R +-31 0 V +-5810 75 R +31 0 V +5810 0 R +-31 0 V +-5810 65 R +31 0 V +5810 0 R +-31 0 V +-5810 58 R +31 0 V +5810 0 R +-31 0 V +-5810 51 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(1000) Rshow +1080 3039 M +31 0 V +5810 0 R +-31 0 V +1080 3237 M +31 0 V +5810 0 R +-31 0 V +1080 3377 M +31 0 V +5810 0 R +-31 0 V +1080 3486 M +31 0 V +5810 0 R +-31 0 V +-5810 89 R +31 0 V +5810 0 R +-31 0 V +-5810 75 R +31 0 V +5810 0 R +-31 0 V +-5810 66 R +31 0 V +5810 0 R +-31 0 V +-5810 57 R +31 0 V +5810 0 R +-31 0 V +-5810 52 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10000) Rshow +1080 4163 M +31 0 V +5810 0 R +-31 0 V +1080 4361 M +31 0 V +5810 0 R +-31 0 V +1080 4502 M +31 0 V +5810 0 R +-31 0 V +1080 4610 M +31 0 V +5810 0 R +-31 0 V +-5810 90 R +31 0 V +5810 0 R +-31 0 V +-5810 75 R +31 0 V +5810 0 R +-31 0 V +-5810 65 R +31 0 V +5810 0 R +-31 0 V +-5810 58 R +31 0 V +5810 0 R +-31 0 V +-5810 51 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100000) Rshow +1080 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0) Cshow +2087 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.5) Cshow +3094 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1) Cshow +4101 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.5) Cshow +5108 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2) Cshow +6115 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2.5) Cshow +1080 451 M +5841 0 V +0 4498 V +-5841 0 V +0 -4498 V +180 2700 M +currentpoint gsave translate 90 rotate 0 0 M +(Mean CPU-time \(msec\)) Cshow +grestore +4000 91 M +(#Jumps/#States) Cshow +LT0 +6318 4706 M +(per_graph\(t\)) Rshow +6426 4706 M +324 0 V +1483 4180 M +403 -175 V +402 -587 V +403 -454 V +403 -359 V +403 -363 V +403 -319 V +403 -68 V +402 -108 V +403 -59 V +403 -32 V +403 17 V +403 9 V +403 77 V +6534 4706 D +1483 4180 D +1886 4005 D +2288 3418 D +2691 2964 D +3094 2605 D +3497 2242 D +3900 1923 D +4303 1855 D +4705 1747 D +5108 1688 D +5511 1656 D +5914 1673 D +6317 1682 D +6720 1759 D +LT1 +6318 4526 M +(per_graph\(s\)) Rshow +6426 4526 M +324 0 V +1483 4351 M +403 -94 V +402 -526 V +403 -351 V +403 -345 V +403 -346 V +403 -376 V +403 -29 V +402 -24 V +403 -50 V +403 -27 V +403 31 V +403 -1 V +403 73 V +6534 4526 A +1483 4351 A +1886 4257 A +2288 3731 A +2691 3380 A +3094 3035 A +3497 2689 A +3900 2313 A +4303 2284 A +4705 2260 A +5108 2210 A +5511 2183 A +5914 2214 A +6317 2213 A +6720 2286 A +LT2 +6318 4346 M +(per_graph\(s,a\)) Rshow +6426 4346 M +324 0 V +-5267 6 R +403 -95 V +402 -523 V +403 -347 V +403 -333 V +403 -307 V +403 -269 V +403 35 V +402 14 V +403 34 V +403 -13 V +403 57 V +403 13 V +403 115 V +6534 4346 B +1483 4352 B +1886 4257 B +2288 3734 B +2691 3387 B +3094 3054 B +3497 2747 B +3900 2478 B +4303 2513 B +4705 2527 B +5108 2561 B +5511 2548 B +5914 2605 B +6317 2618 B +6720 2733 B +LT3 +6318 4166 M +(per_graph\(t,c\)) Rshow +6426 4166 M +324 0 V +-5267 14 R +403 -175 V +402 -580 V +403 -436 V +403 -335 V +403 -287 V +403 -199 V +403 4 V +402 -37 V +403 2 V +403 -15 V +403 29 V +403 -21 V +403 108 V +6534 4166 C +1483 4180 C +1886 4005 C +2288 3425 C +2691 2989 C +3094 2654 C +3497 2367 C +3900 2168 C +4303 2172 C +4705 2135 C +5108 2137 C +5511 2122 C +5914 2151 C +6317 2130 C +6720 2238 C +LT4 +6318 3986 M +(per_subset) Rshow +6426 3986 M +324 0 V +1483 4211 M +403 -166 V +402 -612 V +403 -477 V +403 -402 V +403 -406 V +403 -417 V +403 -90 V +402 -210 V +403 -137 V +403 -135 V +403 23 V +403 -37 V +403 63 V +6534 3986 T +1483 4211 T +1886 4045 T +2288 3433 T +2691 2956 T +3094 2554 T +3497 2148 T +3900 1731 T +4303 1641 T +4705 1431 T +5108 1294 T +5511 1159 T +5914 1182 T +6317 1145 T +6720 1208 T +LT5 +6318 3806 M +(per_state) Rshow +6426 3806 M +324 0 V +1483 4208 M +403 -175 V +402 -614 V +403 -486 V +403 -401 V +403 -398 V +403 -408 V +403 -90 V +402 -166 V +403 -119 V +403 -105 V +403 22 V +403 22 V +403 12 V +6534 3806 S +1483 4208 S +1886 4033 S +2288 3419 S +2691 2933 S +3094 2532 S +3497 2134 S +3900 1726 S +4303 1636 S +4705 1470 S +5108 1351 S +5511 1246 S +5914 1268 S +6317 1290 S +6720 1302 S +LT6 +6318 3626 M +(fsm) Rshow +6426 3626 M +324 0 V +1483 4200 M +403 -116 V +402 -501 V +403 -296 V +403 -307 V +403 -301 V +403 -366 V +403 -4 V +402 -34 V +403 -163 V +403 -59 V +403 46 V +403 -87 V +403 22 V +stroke +grestore +end +showpage + +%%EndDocument + + endTexFig + 330 2596 a Fd(Figure)f(8)330 2679 y Fo(A)-7 b(verage)17 +b(amount)i(of)f(CPU-time)g(versus)f(deterministic)g(jump)h(density)f +(for)g(each)i(of)f(the)g(algorithms,)330 2762 y(and)h(FSM.)f(Input)i +(automata)g(have)g(25)f(states.)f(Absolute)h(transition)g(densities:)f +(0.01-0.3.)p Black Black 330 3128 a + 23681433 16577003 3289088 3289088 26970521 19866091 startTexFig + 330 3128 a +%%BeginDocument: 100n.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid true def +/gnulinewidth 5.000 def +/vshift -60 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Palatino-Roman findfont 180 scalefont setfont +newpath +LTa +1080 451 M +0 4498 V +LTb +1080 451 M +63 0 V +5778 0 R +-63 0 V +972 451 M +(100) Rshow +1080 902 M +31 0 V +5810 0 R +-31 0 V +1080 1166 M +31 0 V +5810 0 R +-31 0 V +1080 1354 M +31 0 V +5810 0 R +-31 0 V +1080 1499 M +31 0 V +5810 0 R +-31 0 V +1080 1618 M +31 0 V +5810 0 R +-31 0 V +1080 1718 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 77 R +31 0 V +5810 0 R +-31 0 V +-5810 68 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(1000) Rshow +1080 2402 M +31 0 V +5810 0 R +-31 0 V +1080 2666 M +31 0 V +5810 0 R +-31 0 V +1080 2853 M +31 0 V +5810 0 R +-31 0 V +1080 2998 M +31 0 V +5810 0 R +-31 0 V +1080 3117 M +31 0 V +5810 0 R +-31 0 V +1080 3217 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 77 R +31 0 V +5810 0 R +-31 0 V +-5810 69 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(10000) Rshow +1080 3901 M +31 0 V +5810 0 R +-31 0 V +1080 4165 M +31 0 V +5810 0 R +-31 0 V +1080 4352 M +31 0 V +5810 0 R +-31 0 V +1080 4498 M +31 0 V +5810 0 R +-31 0 V +1080 4616 M +31 0 V +5810 0 R +-31 0 V +1080 4717 M +31 0 V +5810 0 R +-31 0 V +-5810 87 R +31 0 V +5810 0 R +-31 0 V +-5810 76 R +31 0 V +5810 0 R +-31 0 V +-5810 69 R +63 0 V +5778 0 R +-63 0 V +-5886 0 R +(100000) Rshow +1080 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0) Cshow +2087 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(0.5) Cshow +3094 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1) Cshow +4101 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(1.5) Cshow +5108 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2) Cshow +6115 451 M +0 63 V +0 4435 R +0 -63 V +0 -4615 R +(2.5) Cshow +1080 451 M +5841 0 V +0 4498 V +-5841 0 V +0 -4498 V +180 2700 M +currentpoint gsave translate 90 rotate 0 0 M +(Mean CPU-time \(msec\)) Cshow +grestore +4000 91 M +(#Jumps/#States) Cshow +LT0 +6318 4706 M +(per_graph\(t\)) Rshow +6426 4706 M +324 0 V +1483 1826 M +403 888 V +402 958 V +403 -82 V +403 80 V +403 -400 V +403 -466 V +403 -663 V +402 -104 V +403 -65 V +403 -45 V +403 -110 V +403 80 V +403 -28 V +201 -18 V +6534 4706 D +1483 1826 D +1886 2714 D +2288 3672 D +2691 3590 D +3094 3670 D +3497 3270 D +3900 2804 D +4303 2141 D +4705 2037 D +5108 1972 D +5511 1927 D +5914 1817 D +6317 1897 D +6720 1869 D +LT1 +6318 4526 M +(per_graph\(s\)) Rshow +6426 4526 M +324 0 V +1483 1801 M +403 837 V +402 891 V +403 -130 V +403 49 V +403 -324 V +403 -390 V +403 -509 V +402 0 V +403 15 V +403 -85 V +403 -121 V +403 125 V +403 20 V +201 -49 V +6534 4526 A +1483 1801 A +1886 2638 A +2288 3529 A +2691 3399 A +3094 3448 A +3497 3124 A +3900 2734 A +4303 2225 A +4705 2225 A +5108 2240 A +5511 2155 A +5914 2034 A +6317 2159 A +6720 2179 A +LT2 +6318 4346 M +(per_graph\(s,a\)) Rshow +6426 4346 M +324 0 V +1483 1811 M +403 826 V +402 890 V +403 -129 V +403 45 V +403 -325 V +403 -364 V +403 -452 V +402 23 V +403 30 V +403 -58 V +403 -111 V +403 156 V +403 -2 V +201 -40 V +6534 4346 B +1483 1811 B +1886 2637 B +2288 3527 B +2691 3398 B +3094 3443 B +3497 3118 B +3900 2754 B +4303 2302 B +4705 2325 B +5108 2355 B +5511 2297 B +5914 2186 B +6317 2342 B +6720 2340 B +LT3 +6318 4166 M +(per_graph\(t,c\)) Rshow +6426 4166 M +324 0 V +1483 1838 M +403 884 V +402 953 V +403 -85 V +403 78 V +403 -381 V +403 -430 V +403 -528 V +402 -20 V +403 -15 V +403 8 V +403 -83 V +403 138 V +403 -37 V +201 -22 V +6534 4166 C +1483 1838 C +1886 2722 C +2288 3675 C +2691 3590 C +3094 3668 C +3497 3287 C +3900 2857 C +4303 2329 C +4705 2309 C +5108 2294 C +5511 2302 C +5914 2219 C +6317 2357 C +6720 2320 C +LT4 +6318 3986 M +(per_subset) Rshow +6426 3986 M +324 0 V +1483 2037 M +403 854 V +402 885 V +403 -162 V +403 -27 V +403 -529 V +403 -624 V +403 -898 V +402 -203 V +403 -118 V +403 -196 V +5914 752 L +403 14 V +6720 640 L +201 -90 V +6534 3986 T +1483 2037 T +1886 2891 T +2288 3776 T +2691 3614 T +3094 3587 T +3497 3058 T +3900 2434 T +4303 1536 T +4705 1333 T +5108 1215 T +5511 1019 T +5914 752 T +6317 766 T +6720 640 T +LT5 +6318 3806 M +(per_state) Rshow +6426 3806 M +324 0 V +1483 2024 M +403 828 V +402 864 V +403 -185 V +403 -64 V +403 -544 V +403 -584 V +403 -748 V +402 -93 V +403 -53 V +403 -131 V +403 -141 V +403 95 V +403 -29 V +201 -42 V +6534 3806 S +1483 2024 S +1886 2852 S +2288 3716 S +2691 3531 S +3094 3467 S +3497 2923 S +3900 2339 S +4303 1591 S +4705 1498 S +5108 1445 S +5511 1314 S +5914 1173 S +6317 1268 S +6720 1239 S +LT6 +6318 3626 M +(fsm) Rshow +6426 3626 M +324 0 V +1483 869 M +403 1219 V +402 976 V +403 -128 V +403 161 V +403 -161 V +403 -187 V +403 -428 V +402 -6 V +403 19 V +403 -215 V +403 -298 V +403 128 V +403 46 V +201 -205 V +stroke +grestore +end +showpage + +%%EndDocument + + endTexFig + 330 5311 a Fd(Figure)g(9)330 5394 y Fo(A)-7 b(verage)17 +b(amount)i(of)f(CPU-time)g(versus)f(deterministic)g(jump)h(density)f +(for)g(each)i(of)f(the)g(algorithms,)330 5477 y(and)h(FSM.)f(Input)i +(automata)g(have)g(100)f(states.)g(Absolute)f(transition)i(densities:)d +(0.001-0.0035.)p Black Black 3247 5944 a Fv(12)p Black +eop +%%Page: 13 13 +13 12 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black 330 357 +a Fu(Comparison)30 b(with)g(the)g(FSM)h(library)36 b +Fv(W)-8 b(e)31 b(also)g(pr)o(ovide)e(the)i(r)o(esults)f(for)h(A)-6 +b(T&T's)29 b(FSM)h(li-)330 457 y(brary)23 b(again.)g(FSM)g(is)h +(designed)g(to)g(tr)o(eat)f(weighted)h(automata)f(for)h(very)f(general) +g(weight)330 556 y(sets.)g(The)f(initial)i(implementation)g(of)e(the)h +(library)f(consisted)i(of)e(an)h(on-the-\003y)g(computa-)330 +656 y(tion)j(of)e(the)h(epsilon-closur)o(es)g(combined)g(with)h +(determinisation.)f(This)g(was)g(abandoned)330 756 y(for)d(two)g(r)o +(easons:)f(it)i(could)f(not)g(be)g(generalised)f(to)h(the)g(case)g(of)g +(general)f(weight)i(sets,)e(and)330 855 y(it)g(was)g(not)h(outputting)g +(the)f(intermediate)g(epsilon-r)o(emoved)f(machine)i(\(which)f(might)h +(be)330 955 y(of)f(inter)o(est)h(in)g(itself\).)e(In)i(the)g(curr)o +(ent)e(version)i Ft(\017)p Fv(-moves)g(must)g(be)f(r)o(emoved)g(befor)o +(e)f(deter)o(-)330 1054 y(minisation)f(is)g(possible.)f(This)g +(mechanism)h(thus)g(is)f(comparable)f(to)h(our)g Fu(per)g(graph)f +Fv(variant.)330 1154 y(Appar)o(ently)-9 b(,)22 b(FSM)g(employs)i(an)f +(algorithm)h(equivalent)g(to)g(our)f Fu(per)h(graph)2799 +1124 y Fi(s;a)2888 1154 y Fv(.)g(The)f(r)o(esult-)330 +1254 y(ing)31 b(determinised)f(machines)h(ar)o(e)d(generally)i(lar)o +(ger)f(than)i(the)f(machines)h(pr)o(oduced)e(by)330 1353 +y(our)c(integrated)f(variants)g(and)g(the)g(variants)g(which)i +(incorporate)e Ft(\017)p Fv(-moves)g(on)h(the)g(tar)o(get)330 +1453 y(side)c(of)f(transitions.)i(The)f(timings)h(below)f(ar)o(e)e +(obtained)i(for)f(the)h(pipe)1083 1631 y Fb(fsmrmepsilon)47 +b(|)j(fsmdeterminize)330 1808 y Fv(This)20 b(is)g(somewhat)g(unfair)f +(since)h(this)g(includes)g(the)g(time)f(to)h(write)g(and)f(r)o(ead)f +(the)h(interme-)330 1908 y(diate)24 b(machine.)h(Even)g(so,)h(it)f(is)g +(inter)o(esting)h(to)f(note)h(that)f(the)g(FSM)g(library)f(is)i(a)e +(constant)330 2008 y(factor)c(faster)f(than)i(our)g Fu(per)f(graph)1442 +1978 y Fi(s;a)1532 2008 y Fv(;)g(for)h(lar)o(ger)e(numbers)i(of)f +(jumps)h(the)g Fu(per)g(state)f Fv(and)g Fu(per)330 2107 +y(subset)i Fv(variants)e(consistently)i(beat)e(the)h(FSM)f(library)-9 +b(.)330 2307 y Fu(Experiment:)28 b(Automata)f(generated)h(by)h(appr)o +(oximation)d(algorithms)35 b Fv(The)29 b(automata)f(used)h(in)330 +2406 y(the)20 b(pr)o(evious)g(experiments)h(wer)o(e)e(randomly)i +(generated.)e(However)-6 b(,)19 b(it)i(may)f(well)h(be)f(that)330 +2506 y(in)d(practice)f(the)g(automata)g(that)h(ar)o(e)e(to)i(be)g(tr)o +(eated)d(by)j(the)g(algorithm)g(have)f(typical)h(pr)o(oper)o(-)330 +2605 y(ties)k(which)h(wer)o(e)e(not)i(r)o(e\003ected)e(in)h(this)h +(test)f(data.)f(For)h(this)h(r)o(eason)f(r)o(esults)g(ar)o(e)e(pr)o +(esented)330 2705 y(for)f(a)g(number)h(of)f(automata)g(that)g(wer)o(e)f +(generated)h(using)h(appr)o(oximation)f(techniques)h(for)330 +2805 y(context-fr)o(ee)29 b(grammars.)g(In)i(particular)-6 +b(,)28 b(automata)i(have)f(been)h(used)g(which)h(wer)o(e)e(cr)o(e-)330 +2904 y(ated)18 b(by)g(Neder)o(hof,)g(using)h(the)g(technique)g +(described)f(in)h(Neder)o(hof)e(\(1997\).)f(In)j(addition,)f(a)330 +3004 y(small)g(number)g(of)f(automata)g(have)g(been)h(used)f(which)i +(wer)o(e)d(cr)o(eated)g(using)i(the)g(technique)330 3104 +y(of)f(Per)o(eira)e(and)h(W)-6 b(right)17 b(\(1997\))d(\(as)h +(implemented)i(by)g(Neder)o(hof\).)e(W)-8 b(e)16 b(have)h(r)o +(estricted)e(our)330 3203 y(attention)21 b(to)h(automata)e(with)h(at)f +(least)h(1000)e(states)h(in)i(the)e(input.)479 3303 y(The)k(automata)f +(typically)h(contain)g(lots)h(of)e(jumps.)i(Mor)o(eover)-6 +b(,)22 b(the)i(number)g(of)f(states)330 3402 y(of)16 +b(the)g(r)o(esulting)g(automaton)g(is)h(often)f Fu(smaller)g +Fv(than)g(the)g(number)g(of)g(states)g(in)g(the)g(input)h(au-)330 +3502 y(tomaton.)j(Results)g(ar)o(e)e(given)h(in)h(the)f(tables)g(1)g +(and)g(2.)f(One)i(of)f(the)g(most)h(striking)h(examples)330 +3602 y(is)f(the)h Fu(ygrim)e Fv(automaton)h(consisting)i(of)e(3382)e +(states)i(and)g(9124)e(jumps.)j(For)f(this)h(example,)330 +3701 y(the)i Fu(per)g(graph)f Fv(implementations)j(ran)d(out)i(of)f +(memory)h(\(after)d(a)i(long)h(time\),)f(wher)o(eas)f(the)330 +3801 y(implementation)h(of)e(the)g Fu(per)h(subset)h +Fv(algorithm)f(pr)o(oduced)e(the)h(determinised)h(automaton)330 +3901 y(\(containing)28 b(only)g(9)f(states\))f(within)j(a)d(single)i +(CPU-second.)e(The)h(FSM)g(implementation)330 4000 y(took)f(much)g +(longer)g(for)f(this)h(example)e(\(wher)o(eas)g(for)h(many)g(of)h(the)f +(other)h(examples)e(it)i(is)330 4100 y(faster)d(than)h(our)g +(implementations\).)h(Note)f(that)f(this)i(example)e(has)h(the)g +(highest)h(number)330 4199 y(of)20 b(jumps)h(per)e(number)h(of)g +(states)g(ratio.)f(This)h(con\002rms)h(the)f(observation)h(that)e(the)h +Fu(per)g(sub-)330 4299 y(set)h Fv(algorithm)h(performs)e(better)g(on)i +(inputs)f(with)h(a)e(high)i(deterministic)f(jump)g(density)-9 +b(.)330 4498 y Fs(5)20 b(Conclusion)330 4698 y Fv(W)-8 +b(e)25 b(have)f(discussed)h(a)g(number)g(of)g(variants)f(of)h(the)g +(subset-constr)o(uction)i(algorithm)e(for)330 4797 y(determinising)31 +b(\002nite)f(automata)f(containing)j Ft(\017)p Fv(-moves.)d(The)h +(experiments)g(support)g(the)330 4897 y(following)22 +b(conclusions:)p Black 571 5075 a Fk(\017)p Black 16 +w Fv(The)f(integrated)f(variants)g Fu(per)h(subset)h +Fv(and)e Fu(per)h(state)f Fv(work)i(much)f(better)f(for)629 +5174 y(automata)g(containing)i(a)e(lar)o(ge)g(number)h(of)g +Ft(\017)p Fv(-moves.)f(The)h Fu(per)f(subset)i Fv(variant)629 +5274 y(tends)f(to)g(impr)o(ove)f(upon)i(the)f Fu(per)f(state)h +Fv(algorithm)g(if)g(the)g(number)g(of)g Ft(\017)p Fv(-moves)629 +5373 y(incr)o(eases)f(even)g(further)-6 b(.)p Black 571 +5538 a Fk(\017)p Black 16 w Fv(W)e(e)21 b(have)f(identi\002ed)h(four)f +(dif)o(fer)o(ent)f(variants)h(of)h(the)g Fu(per)g(graph)e +Fv(algorithm.)i(In)629 5637 y(our)g(experiments,)f(the)h +Fu(per)g(graph)1730 5607 y Fi(t)1779 5637 y Fv(is)g(the)g(algorithm)g +(of)g(choice)g(for)g(automata)p Black 3247 5944 a(13)p +Black eop +%%Page: 14 14 +14 13 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +380 705 2900 4 v 378 805 4 100 v 772 805 V 772 805 V +1193 775 a Fv(Input)p 1814 805 V 1814 805 V 1017 w(Output)p +3278 805 V 380 808 2900 4 v 378 908 4 100 v 537 878 a(Id)p +772 908 V 207 w(#states)p 1119 908 V 99 w(#trans)p 1445 +908 V 99 w(#jumps)p 1814 908 V 1814 908 V 659 w(#states)p +3278 908 V 1815 911 1465 4 v 378 1007 4 100 v 772 1007 +V 1119 1007 V 1445 1007 V 1814 1007 V 1918 977 a Fo(per)e(graph)2243 +946 y Fg(s)p 2325 1007 V 2376 977 a Fo(per)h(graph)2702 +946 y Fg(t)p 2778 1007 V 2829 977 a Fo(per)g(graph)3155 +946 y Fg(t;c)p 3278 1007 V 378 1107 V 772 1107 V 1119 +1107 V 1445 1107 V 1814 1107 V 1865 1077 a Fo(per)g(graph)2191 +1045 y Fg(s;a)p 2325 1107 V 2391 1077 a Fo(per)g(subset)p +2778 1107 V 3278 1107 V 378 1207 V 772 1207 V 1119 1207 +V 1445 1207 V 1814 1207 V 2106 1177 a Fu(FSM)p 2325 1207 +V 171 w Fo(per)g(state)p 2778 1207 V 3278 1207 V 380 +1210 2900 4 v 378 1310 4 100 v 512 1280 a Fv(g14)p 772 +1310 V 262 w(1048)p 1119 1310 V 200 w(403)p 1445 1310 +V 201 w(1272)p 1814 1310 V 385 w(137)p 2325 1310 V 327 +w(137)p 2778 1310 V 374 w(131)p 3278 1310 V 378 1409 +V 446 1379 a(ovis4.n)p 772 1409 V 196 w(1424)p 1119 1409 +V 158 w(2210)p 1445 1409 V 243 w(517)p 1814 1409 V 385 +w(164)p 2325 1409 V 327 w(133)p 2778 1409 V 374 w(107)p +3278 1409 V 378 1509 V 512 1479 a(g13)p 772 1509 V 262 +w(1441)p 1119 1509 V 158 w(1006)p 1445 1509 V 201 w(1272)p +1814 1509 V 385 w(337)p 2325 1509 V 327 w(337)p 2778 +1509 V 374 w(329)p 3278 1509 V 378 1608 V 476 1579 a(r)o(ene2)p +772 1608 V 226 w(1800)p 1119 1608 V 158 w(2597)p 1445 +1608 V 284 w(96)p 1814 1608 V 386 w(846)p 2325 1608 V +327 w(844)p 2778 1608 V 374 w(844)p 3278 1608 V 378 1708 +V 445 1678 a(ovis9.p)p 772 1708 V 195 w(1868)p 1119 1708 +V 158 w(2791)p 1445 1708 V 201 w(2688)p 1814 1708 V 344 +w(2478)p 2325 1708 V 285 w(2478)p 2778 1708 V 332 w(1386)p +3278 1708 V 378 1808 V 466 1778 a(ygrim)p 772 1808 V +216 w(3382)p 1119 1808 V 158 w(5422)p 1445 1808 V 201 +w(9124)p 1814 1808 V 468 w(9)p 2325 1808 V 411 w(9)p +2778 1808 V 458 w(9)p 3278 1808 V 378 1907 V 430 1877 +a(ygrim.p)p 772 1907 V 140 w(48062)p 1119 1907 V 116 +w(63704)p 1445 1907 V 117 w(109296)p 1814 1907 V 384 +w(702)p 2325 1907 V 327 w(702)p 2778 1907 V 374 w(702)p +3278 1907 V 378 2007 V 461 1977 a(java19)p 772 2007 V +168 w(54369)p 1119 2007 V 116 w(28333)p 1445 2007 V 159 +w(51018)p 1814 2007 V 343 w(1971)p 2325 2007 V 285 w(1971)p +2778 2007 V 332 w(1855)p 3278 2007 V 378 2107 V 461 2077 +a(java16)p 772 2107 V 168 w(64210)p 1119 2107 V 116 w(43935)p +1445 2107 V 159 w(41305)p 1814 2107 V 343 w(3186)p 2325 +2107 V 285 w(3186)p 2778 2107 V 332 w(3078)p 3278 2107 +V 378 2206 V 460 2176 a(zovis3)p 772 2206 V 168 w(88156)p +1119 2206 V 116 w(78895)p 1445 2206 V 159 w(68093)p 1814 +2206 V 343 w(5174)p 2325 2206 V 285 w(5154)p 2778 2206 +V 332 w(4182)p 3278 2206 V 378 2306 V 460 2276 a(zovis2)p +772 2306 V 168 w(89832)p 1119 2306 V 116 w(80400)p 1445 +2306 V 159 w(69377)p 1814 2306 V 343 w(6561)p 2325 2306 +V 285 w(6541)p 2778 2306 V 332 w(5309)p 3278 2306 V 380 +2309 2900 4 v 330 2371 a Fd(T)-8 b(able)18 b(1)330 2454 +y Fo(The)h(automata)h(generated)e(by)h(appr)o(oximation)e(algorithms.)h +(The)h(table)g(lists)f(the)h(number)g(of)f(states,)330 +2537 y(transitions)h(and)g(jumps)g(of)f(the)i(input)f(automaton,)h(and) +f(the)g(number)g(of)f(states)h(of)g(the)330 2629 y(determinised)e +(machine)j(using)e(r)o(espectively)e(the)k Fc(efr)o(ee)1962 +2597 y Fg(s)1995 2629 y Fo(,)e Fc(efr)o(ee)2168 2597 +y Fg(t)2196 2629 y Fo(,)g(and)h(the)g Fc(efr)o(ee)2636 +2597 y Fg(t;c)2729 2629 y Fo(variants.)p Black Black +468 3575 2725 4 v 466 3675 4 100 v 859 3675 V 859 3675 +V 1750 3645 a Fv(CPU-time)h(\(sec\))p 3190 3675 V 861 +3678 2332 4 v 466 3775 4 100 v 859 3775 V 911 3745 a +Fo(graph)1108 3713 y Fg(t)p 1183 3775 V 1235 3745 a Fo(graph)1432 +3713 y Fg(t;c)p 1555 3775 V 1606 3745 a Fo(graph)1803 +3713 y Fg(s)p 1884 3775 V 1936 3745 a Fo(graph)2133 3713 +y Fg(s;a)p 2267 3775 V 2318 3745 a Fo(subset)p 2576 3775 +V 133 w(state)p 2862 3775 V 158 w Fu(FSM)p 3190 3775 +V 468 3778 2725 4 v 466 3878 4 100 v 600 3848 a Fv(g14)p +859 3878 V 302 w(0.4)p 1183 3878 V 266 w(0.4)p 1555 3878 +V 224 w(0.3)p 1884 3878 V 278 w(0.3)p 2267 3878 V 204 +w(0.4)p 2576 3878 V 182 w(0.2)p 2862 3878 V 222 w(0.1)p +3190 3878 V 466 3977 V 533 3947 a(ovis4.n)p 859 3977 +V 237 w(0.9)p 1183 3977 V 266 w(1.1)p 1555 3977 V 224 +w(0.8)p 1884 3977 V 278 w(1.0)p 2267 3977 V 204 w(0.7)p +2576 3977 V 182 w(0.6)p 2862 3977 V 222 w(0.6)p 3190 +3977 V 466 4077 V 600 4047 a(g13)p 859 4077 V 302 w(0.9)p +1183 4077 V 266 w(0.8)p 1555 4077 V 224 w(0.6)p 1884 +4077 V 278 w(0.6)p 2267 4077 V 204 w(1.2)p 2576 4077 +V 182 w(0.7)p 2862 4077 V 222 w(0.2)p 3190 4077 V 466 +4177 V 564 4147 a(r)o(ene2)p 859 4177 V 266 w(0.2)p 1183 +4177 V 266 w(0.3)p 1555 4177 V 224 w(0.2)p 1884 4177 +V 278 w(0.2)p 2267 4177 V 204 w(0.2)p 2576 4177 V 182 +w(0.2)p 2862 4177 V 222 w(0.1)p 3190 4177 V 466 4276 +V 532 4246 a(ovis9.p)p 859 4276 V 194 w(36.6)p 1183 4276 +V 224 w(16.0)p 1555 4276 V 183 w(16.9)p 1884 4276 V 235 +w(17.0)p 2267 4276 V 163 w(25.2)p 2576 4276 V 139 w(20.8)p +2862 4276 V 181 w(21.9)p 3190 4276 V 466 4376 V 553 4346 +a(ygrim)p 859 4376 V 333 w(-)p 1183 4376 V 343 w(-)p +1555 4376 V 301 w(-)p 1884 4376 V 355 w(-)p 2267 4376 +V 205 w(0.9)p 2576 4376 V 140 w(21.0)p 2862 4376 V 139 +w(512.1)p 3190 4376 V 466 4475 V 518 4446 a(ygrim.p)p +859 4475 V 297 w(-)p 1183 4475 V 343 w(-)p 1555 4475 +V 301 w(-)p 1884 4475 V 355 w(-)p 2267 4475 V 122 w(562.1)p +2576 4475 V 257 w(-)p 2862 4475 V 99 w(4512.4)p 3190 +4475 V 466 4575 V 548 4545 a(java19)p 859 4575 V 208 +w(55.5)p 1183 4575 V 224 w(67.4)p 1555 4575 V 183 w(52.6)p +1884 4575 V 235 w(45.0)p 2267 4575 V 163 w(25.8)p 2576 +4575 V 139 w(19.0)p 2862 4575 V 222 w(3.8)p 3190 4575 +V 466 4675 V 548 4645 a(java16)p 859 4675 V 208 w(30.0)p +1183 4675 V 224 w(45.8)p 1555 4675 V 183 w(35.0)p 1884 +4675 V 235 w(29.9)p 2267 4675 V 167 w(1)-5 b(1.3)p 2576 +4675 V 140 w(12.1)p 2862 4675 V 222 w(3.0)p 3190 4675 +V 466 4774 V 547 4744 a(zovis3)p 859 4774 V 167 w(741.1)p +1183 4774 V 182 w(557.5)p 1555 4774 V 299 w(-)p 1884 +4774 V 196 w(407.4)p 2267 4774 V 120 w(358.4)p 2576 4774 +V 98 w(302.5)p 2862 4774 V 138 w(325.6)p 3190 4774 V +466 4874 V 547 4844 a(zovis2)p 859 4874 V 167 w(909.2)p +1183 4874 V 182 w(627.2)p 1555 4874 V 299 w(-)p 1884 +4874 V 196 w(496.0)p 2267 4874 V 120 w(454.4)p 2576 4874 +V 98 w(369.4)p 2862 4874 V 138 w(392.1)p 3190 4874 V +468 4877 2725 4 v 330 4939 a Fd(T)d(able)18 b(2)330 5022 +y Fo(Results)g(for)g(automata)i(generated)e(by)h(appr)o(oximation)e +(algorithms.)h(The)h(dashes)f(in)h(the)g(table)330 5105 +y(indicate)g(that)h(the)g(corr)o(esponding)c(algorithm)i(ran)h(out)g +(of)f(memory)g(\(after)g(a)h(long)f(period)g(of)g(time\))330 +5188 y(for)g(that)i(particular)f(example.)p Black Black +3247 5944 a Fv(14)p Black eop +%%Page: 15 15 +15 14 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black Black +629 357 a Fv(containing)i(few)f Ft(\017)g Fv(moves,)h(because)e(it)h +(is)h(faster)e(than)i(the)f(other)g(algorithms,)h(and)629 +457 y(because)f(it)h(pr)o(oduces)f(smaller)g(automata)g(than)h(the)g +Fu(per)g(graph)2674 426 y Fi(s)2729 457 y Fv(and)f Fu(per)h(graph)3212 +426 y Fi(s;a)629 556 y Fv(variants.)p Black 571 722 a +Fk(\017)p Black 16 w Fv(The)g Fu(per)f(graph)1110 692 +y Fi(t;c)1209 722 y Fv(variant)g(is)h(an)f(inter)o(esting)h +(alternative)f(in)h(that)g(it)g(pr)o(oduces)f(the)629 +822 y(smallest)h(r)o(esults.)f(This)i(variant)e(should)h(be)g(used)f +(if)h(the)g(input)g(automaton)g(is)629 922 y(expected)e(to)i(contain)h +(many)f(non-co-accessible)f(states.)p Black 571 1088 +a Fk(\017)p Black 16 w Fv(Automata)g(pr)o(oduced)f(by)i(\002nite-state) +g(appr)o(oximation)f(techniques)i(tend)f(to)629 1187 +y(contain)g(many)g Ft(\017)p Fv(-moves.)g(W)-8 b(e)21 +b(found)f(that)h(for)g(these)f(automata)h(the)f(dif)o(fer)o(ences)629 +1287 y(in)h(speed)f(between)h(the)g(various)f(algorithms)i(can)f(be)f +(enormous.)i(The)e Fu(per)h(subset)629 1386 y Fv(and)f +Fu(per)h(state)g Fv(algorithms)g(ar)o(e)f(good)h(candidates)f(for)g +(this)i(application.)479 1569 y(W)-8 b(e)30 b(have)e(attempted)h(to)g +(characterize)e(the)i(expected)f(ef)o(\002ciency)g(of)h(the)h(various)f +(al-)330 1669 y(gorithms)f(in)f(terms)f(of)h(the)f(number)h(of)f(jumps) +h(and)f(the)h(number)f(of)h(states)f(in)h(the)g(input)330 +1768 y(automaton.)17 b(It)f(is)g(quite)h(conceivable)f(that)g(other)h +(simple)g(pr)o(operties)e(of)h(the)h(input)g(automa-)330 +1868 y(ton)25 b(can)g(be)f(used)g(even)h(mor)o(e)f(ef)o(fectively)f +(for)h(this)i(purpose.)e(One)h(r)o(eviewer)e(suggests)j(to)330 +1968 y(use)21 b(the)g(number)f(of)h(str)o(ongly)g Ft(\017)p +Fv(-connected)f(components)i(\(the)f(str)o(ongly)g(connected)g(com-)330 +2067 y(ponents)g(of)g(the)g(graph)f(of)h(all)f Ft(\017)p +Fv(-moves\))g(for)h(this)g(purpose.)f(W)-8 b(e)21 b(leave)f(this)h(and) +f(other)h(pos-)330 2167 y(sibilities)h(to)f(a)f(futur)o(e)g(occasion.)p +Black 330 2367 a Fd(Acknowledgments)330 2467 y Fo(I)f(am)g(grateful)f +(to)h(Mark-Jan)f(Neder)o(hof)f(for)330 2550 y(support,)h(and)h(for)f +(pr)o(oviding)e(me)j(with)g(lots)g(of)330 2633 y(\(often)g(dr)o +(eadful\))e(automata)j(generated)e(by)330 2716 y(his)h(\002nite-state)g +(appr)o(oximation)f(tools.)g(The)330 2799 y(comments)h(of)f(the)i +(anonymous)e(FSMNLP)330 2882 y(and)h(CL)f(r)o(eviewers)f(wer)o(e)h +(extr)o(emely)e(useful.)330 3081 y Fd(References)p Black +Black 330 3214 a Fo(Aho,)j(Alfr)o(ed)e(V)-10 b(.,)18 +b(Ravi)h(Sethi,)g(and)g(Jef)o(fr)o(ey)e(D.)405 3297 y(Ullman.)27 +b(1986.)h Fc(Compilers.)18 b(Principles,)405 3380 y(T)-8 +b(echniques)17 b(and)i(T)-8 b(ools)p Fo(.)26 b(Addison)18 +b(W)-7 b(esley)f(.)p Black Black 330 3480 a(Black,)18 +b(A.W)-7 b(.)26 b(1989.)i(Finite)18 b(state)i(machines)405 +3563 y(fr)o(om)d(featur)o(e)h(grammars.)26 b(In)19 b +Fc(International)405 3646 y(W)o(orkshop)g(on)f(Parsing)h(T)-8 +b(echnologies)p Fo(,)18 b(pages)405 3729 y(277\226285,)j(Pittsbur)o +(gh.)p Black Black 330 3829 a(Chomsky)-8 b(,)17 b(Noam.)27 +b(1963.)h(Formal)18 b(pr)o(operties)405 3912 y(of)g(grammars.)26 +b(In)19 b(R.)f(Duncan)i(Luce,)405 3995 y(Robert)e(R.)g(Bush,)h(and)g +(Eugene)f(Galanter)-6 b(,)405 4078 y(editors,)17 b Fc(Handbook)i(of)f +(Mathematical)405 4161 y(Psychology;)i(V)-6 b(olume)19 +b(II)p Fo(.)f(John)h(W)l(iley)-8 b(,)17 b(pages)405 4244 +y(323\226418.)p Black Black 330 4343 a(Chomsky)-8 b(,)17 +b(Noam.)27 b(1964.)h(On)19 b(the)g(notion)405 4426 y(`r)o(ule)e(of)h +(grammar)6 b('.)25 b(In)19 b(Jerry)e(E.)g(Fodor)g(and)405 +4509 y(Jerr)o(old)f(J.)i(Katz,)i(editors,)d Fc(The)i(Structur)o(e)e(of) +405 4592 y(Language;)h(Readings)h(in)f(the)h(Philosophy)g(of)405 +4675 y(Language)p Fo(.)f(Pr)o(entice)g(Hall,)h(pages)f(1)l(19\226136.)p +Black Black 330 4775 a(Cormen,)g(Leiserson,)e(and)k(Rivest.)26 +b(1990.)405 4858 y Fc(Intr)o(oduction)17 b(to)i(Algorithms)p +Fo(.)27 b(MIT)18 b(Pr)o(ess,)405 4941 y(Cambridge)f(Mass.)p +Black Black 330 5041 a(Evans,)i(Edmund)f(Grimley)-8 b(.)25 +b(1997.)405 5124 y(Appr)o(oximating)17 b(context-fr)o(ee)h(grammars)405 +5207 y(with)h(a)g(\002nite-state)h(calculus.)27 b(In)19 +b Fc(35th)405 5290 y(Annual)e(Meeting)h(of)g(the)h(Association)g(for) +405 5373 y(Computational)f(Linguistics)f(and)i(8th)405 +5456 y(Confer)o(ence)f(of)g(the)h(Eur)o(opean)f(Chapter)i(of)e(the)405 +5539 y(Association)g(for)h(Computational)f(Linguistics)p +Fo(,)405 5622 y(pages)g(452\226459,)j(Madrid.)p Black +Black 1930 2367 a(Ger)o(demann,)d(Dale)g(and)h(Gertjan)h(van)g(Noor)o +(d.)2004 2450 y(1999.)28 b(T)-7 b(ransducers)18 b(fr)o(om)g(r)o(ewrite) +f(r)o(ules)2004 2533 y(with)j(backr)o(efer)o(ences.)25 +b(In)19 b Fc(Ninth)f(Confer)o(ence)2004 2617 y(of)h(the)g(Eur)o(opean)f +(Chapter)h(of)g(the)g(Association)2004 2700 y(for)g(Computational)f +(Linguistics)p Fo(,)f(Ber)o(gen)2004 2783 y(Norway)-8 +b(.)p Black Black 1930 2882 a(Hopcr)o(oft,)17 b(John)j(E.)e(and)h(Jef)o +(fr)o(ey)d(D.)i(Ullman.)2004 2965 y(1979.)28 b Fc(Intr)o(oduction)18 +b(to)h(Automata)f(Theory)m(,)2004 3048 y(Languages)h(and)g(Computation) +p Fo(.)26 b(Addison)2004 3131 y(W)-7 b(esley)f(.)p Black +Black 1930 3231 a(Johnson,)19 b(J.)f(Howar)o(d)g(and)h(Derick)e(W)-7 +b(ood.)2004 3314 y(1997.)28 b(Instr)o(uction)20 b(computation)g(in)f +(subset)2004 3397 y(constr)o(uction.)28 b(In)19 b(Darr)o(ell)e +(Raymond,)2004 3480 y(Derick)h(W)-7 b(ood,)17 b(and)i(Sheng)g(Y)-7 +b(u,)19 b(editors,)2004 3563 y Fc(Automata)g(Implementation)p +Fo(.)f(Springer)2004 3646 y(V)-8 b(erlag,)17 b(pages)h(64\22671.)29 +b(Lectur)o(e)17 b(Notes)i(in)2004 3729 y(Computer)f(Science)h(1260.)p +Black Black 1930 3829 a(Johnson,)g(Mark.)25 b(1998.)j(Finite-state)2004 +3912 y(appr)o(oximation)18 b(of)h(constraint-based)2004 +3995 y(grammars)f(using)g(left-corner)g(grammar)2004 +4078 y(transforms.)26 b(In)20 b Fc(COLING-ACL)d('98.)i(36th)2004 +4161 y(Annual)f(Meeting)f(of)i(the)g(Association)g(for)2004 +4244 y(Computational)f(Linguistics)g(and)h(17th)2004 +4327 y(International)f(Confer)o(ence)f(on)i(Computational)2004 +4410 y(Linguistics.)e(Pr)o(oceedings)i(of)g(the)g(Confer)o(ence)p +Fo(,)2004 4493 y(Montr)o(eal.)p Black Black 1930 4592 +a(Leslie,)d(T)-7 b(ed.)26 b(1995.)i(Ef)o(\002cient)19 +b(appr)o(oaches)f(to)2004 4675 y(subset)h(constr)o(uction.)28 +b(Master)6 b('s)17 b(thesis,)2004 4758 y(Computer)h(Science,)h +(University)f(of)2004 4842 y(W)-7 b(aterloo.)p Black +Black 1930 4941 a(Miller)h(,)17 b(Geor)o(ge)f(and)k(Noam)f(Chomsky)-8 +b(.)25 b(1963.)2004 5024 y(Finitary)18 b(models)g(of)g(language)h +(users.)25 b(In)2004 5107 y(R.)19 b(Luce,)f(R.)g(Bush,)g(and)h(E.)f +(Galanter)-6 b(,)2004 5190 y(editors,)17 b Fc(Handbook)i(of)g +(Mathematical)2004 5273 y(Psychology)m(.)i(V)-6 b(olume)18 +b(2.)h Fo(John)g(W)l(iley)-8 b(.)p Black Black 1930 5373 +a(Mohri,)17 b(Mehryar)-6 b(,)18 b(Fernando)g(C.N.)g(Per)o(eira,)2004 +5456 y(and)i(Michael)e(Riley)-8 b(.)25 b(1998.)j(A)19 +b(rational)2004 5539 y(design)f(for)g(a)h(weighted)f(\002nite-state) +2004 5622 y(transducer)h(library)-8 b(.)25 b(In)19 b +Fc(Automata)p Black 3247 5944 a Fv(15)p Black eop +%%Page: 16 16 +16 15 bop Black 330 91 a Fo(van)20 b(Noor)o(d)1145 b(Epsilon)17 +b(Moves)h(in)h(Subset)g(Constr)o(uction)p Black 405 357 +a Fc(Implementation.)e(Second)i(International)405 440 +y(W)o(orkshop)g(on)f(Implementing)g(Automata,)405 523 +y(WIA)g('97)p Fo(.)h(Springer)e(V)-8 b(erlag.)25 b(Lectur)o(e)18 +b(Notes)405 606 y(in)h(Computer)f(Science)h(1436.)p Black +Black 330 706 a(Neder)o(hof,)e(M.)h(J.)27 b(1997.)h(Regular)405 +789 y(appr)o(oximations)17 b(of)h(CFLs:)f(A)h(grammatical)405 +872 y(view)-7 b(.)26 b(In)20 b Fc(International)d(W)o(orkshop)i(on)405 +955 y(Parsing)f(T)-8 b(echnologies)p Fo(,)19 b(Massachusetts)405 +1038 y(Institute)g(of)g(T)-7 b(echnology)f(.)p Black +Black 330 1137 a(Neder)o(hof,)17 b(Mark-Jan.)26 b(1998.)i(Context-fr)o +(ee)405 1220 y(parsing)18 b(thr)o(ough)g(r)o(egular)f(appr)o +(oximation.)405 1303 y(In)i Fc(Finite-state)e(Methods)i(in)f(Natural) +405 1386 y(Language)g(Pr)o(ocessing)p Fo(,)g(pages)g(13\22624,)405 +1469 y(Ankara.)p Black Black 330 1569 a(van)i(Noor)o(d,)d(Gertjan.)27 +b(1997.)h(FSA)19 b(Utilities:)e(A)405 1652 y(toolbox)h(to)h(manipulate) +g(\002nite-state)405 1735 y(automata.)28 b(In)19 b(Darr)o(ell)e +(Raymond,)h(Derick)405 1818 y(W)-7 b(ood,)17 b(and)i(Sheng)h(Y)-7 +b(u,)18 b(editors,)f Fc(Automata)405 1901 y(Implementation)p +Fo(.)g(Springer)h(V)-8 b(erlag,)17 b(pages)405 1984 y(87\226108.)28 +b(Lectur)o(e)18 b(Notes)h(in)f(Computer)405 2067 y(Science)h(1260.)p +Black Black 330 2167 a(van)h(Noor)o(d,)d(Gertjan.)27 +b(1998.)h(The)19 b(tr)o(eatment)405 2250 y(of)f(epsilon)g(moves)g(in)h +(subset)g(constr)o(uction.)405 2333 y(In)g Fc(Finite-state)e(Methods)i +(in)f(Natural)405 2416 y(Language)g(Pr)o(ocessing)p Fo(,)g(Ankara.)405 +2499 y(cmp-lg/9804003.)p Black Black 330 2599 a(van)i(Noor)o(d,)d +(Gertjan.)27 b(1999.)h(FSA6)19 b(r)o(efer)o(ence)405 +2682 y(manual.)27 b(The)19 b Fc(FSA)f(Utilities)g Fo(toolbox)g(is)405 +2765 y(available)h(fr)o(ee)e(of)i(char)o(ge)f(under)g(Gnu)405 +2848 y(General)g(Public)h(License)f(at)405 2931 y(http://www)-7 +b(.let.r)o(ug.nl/\230vannoor)o(d/Fsa/.)p Black Black +330 3030 a(van)20 b(Noor)o(d,)d(Gertjan)i(and)g(Dale)g(Ger)o(demann.) +405 3113 y(1999.)28 b(An)19 b(extendible)f(r)o(egular)f(expr)o(ession) +405 3196 y(compiler)g(for)h(\002nite-state)i(appr)o(oaches)e(in)405 +3279 y(natural)h(language)g(pr)o(ocessing.)24 b(In)405 +3362 y(O.)18 b(Boldt,)f(H.)i(Juer)o(gensen,)e(and)405 +3445 y(L.)h(Robbins,)g(editors,)f Fc(W)o(orkshop)i(on)405 +3528 y(Implementing)f(Automata;)g(WIA99)405 3611 y(Pr)o(e-Pr)o +(oceedings)p Fo(,)g(Potsdam)g(Germany)-8 b(.)p Black +Black 330 3711 a(O'Keefe,)17 b(Richar)o(d)i(A.)26 b(1990.)i +Fc(The)19 b(Craft)f(of)405 3794 y(Pr)o(olog)p Fo(.)26 +b(The)19 b(MIT)f(Pr)o(ess,)f(Cambridge)405 3877 y(Mass.)p +Black Black 330 3977 a(Per)o(eira,)g(Fernando)h(C.)h(N.)f(and)h(R.)f +(N.)h(W)-6 b(right.)405 4060 y(1991.)28 b(Finite-state)19 +b(appr)o(oximation)e(of)405 4143 y(phrase)h(str)o(uctur)o(e)g +(grammars.)26 b(In)19 b Fc(29th)405 4226 y(Annual)e(Meeting)h(of)g(the) +h(Association)g(for)405 4309 y(Computational)f(Linguistics)p +Fo(,)f(Berkeley)-8 b(.)p Black Black 330 4408 a(Per)o(eira,)17 +b(Fernando)h(C.)h(N.)f(and)h(Rebecca)g(N.)405 4491 y(W)-6 +b(right.)26 b(1997.)i(Finite-state)405 4575 y(appr)o(oximation)18 +b(of)g(phrase-str)o(uctur)o(e)405 4658 y(grammars.)25 +b(In)20 b(Emmanuel)e(Roche)h(and)405 4741 y(Y)-7 b(ves)18 +b(Schabes,)i(editors,)c Fc(Finite-State)405 4824 y(Language)i(Pr)o +(ocessing)p Fo(.)g(MIT)h(Pr)o(ess,)405 4907 y(Cambridge,)e(pages)h +(149\226173.)p Black Black 330 5006 a(Rood,)g(C.M.)25 +b(1996.)j(Ef)o(\002cient)19 b(\002nite-state)405 5089 +y(appr)o(oximation)f(of)g(context)h(fr)o(ee)405 5172 +y(grammars.)25 b(In)20 b(A.)e(Kornai,)h(editor)-6 b(,)405 +5255 y Fc(Extended)19 b(Finite)e(State)h(Models)h(of)f(Language)p +Fo(,)405 5338 y(Pr)o(oceedings)e(of)j(the)g(ECAI'96)g(workshop,)405 +5421 y(pages)f(58\22664,)i(Budapest)e(University)g(of)405 +5504 y(Economic)g(Sciences,)h(Hungary)-8 b(.)p Black +3247 5944 a Fv(16)p Black eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/resources/graphregexpr.jar b/resources/graphregexpr.jar Binary files differnew file mode 100644 index 0000000..99e8440 --- /dev/null +++ b/resources/graphregexpr.jar diff --git a/resources/regexprdemo.jar b/resources/regexprdemo.jar Binary files differnew file mode 100644 index 0000000..4d4f2cc --- /dev/null +++ b/resources/regexprdemo.jar diff --git a/resources/urls.txt b/resources/urls.txt index 6100af2..6877e60 100644 --- a/resources/urls.txt +++ b/resources/urls.txt @@ -2,9 +2,11 @@ http://www.inf.fh-flensburg.de/lang/theor/ http://www.inf.fh-flensburg.de/lang/compbau/recursivedescent.htm http://www.inf.fh-flensburg.de/lang/theor/regular-expression-parser.htm http://www.codeproject.com/KB/recipes/OwnRegExpressionsParser.aspx +http://www.inf.fh-flensburg.de/lang/theor/regulaerer-ausdruck-zu-automat-bottomup.htm -http://osteele.com/ -http://raphaeljs.com/ -http://thejit.org/ -http://processingjs.org/ +http://osteele.com/archives/2006/02/reanimator +http://www.codeguru.com/cpp/cpp/cpp_mfc/parsing/article.php/c4093/ +http://swtch.com/~rsc/regexp/regexp1.html +http://www.gamedev.net/reference/articles/article2170.asp +http://raphaeljs.com/reference.html |