summaryrefslogtreecommitdiff
path: root/parallel/jpdc.ps
diff options
context:
space:
mode:
Diffstat (limited to 'parallel/jpdc.ps')
-rwxr-xr-xparallel/jpdc.ps12898
1 files changed, 12898 insertions, 0 deletions
diff --git a/parallel/jpdc.ps b/parallel/jpdc.ps
new file mode 100755
index 0000000..87d8934
--- /dev/null
+++ b/parallel/jpdc.ps
@@ -0,0 +1,12898 @@
+%!PS-Adobe-2.0
+%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
+%%Title: journal.dvi
+%%Pages: 39
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: Times-Roman Times-Bold Times-Italic Courier
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSCommandLine: dvips journal -t letter -o journal.ps
+%DVIPSParameters: dpi=600, comments removed
+%DVIPSSource: TeX output 1999.02.12:1313
+%%BeginProcSet: tex.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}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{dup dup 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 /IE 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 IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /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 dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup 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 /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
+if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 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 dup 1 get dup mul exch 0 get dup 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
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+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 /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /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
+%%BeginFont: Times-Roman
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
+% version = "0.6",
+% date = "22 June 1996",
+% filename = "8r.enc",
+% email = "kb@@mail.tug.org",
+% address = "135 Center Hill Rd. // Plymouth, MA 02360",
+% codetable = "ISO/ASCII",
+% checksum = "119 662 4424",
+% 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 down 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
+%%EndFont
+%%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 load]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{/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
+TeXDict begin 40258431 52099146 1000 600 600 (journal.dvi)
+@start /Fa 165[49 58 1[75 1[58 49 1[53 2[58 58 2[58 1[27
+58 58 44 49 3[58 65[{ TeXBase1Encoding ReEncodeFont }15
+79.999924 /Times-Roman rf /Fb 133[60 1[60 1[60 60 60
+60 60 1[60 60 60 60 60 60 1[60 60 2[60 60 60 1[60 14[60
+16[60 65[{ TeXBase1Encoding ReEncodeFont }21 100.000000
+/Courier rf /Fc 1 51 df<01FC0007FF801C0FC03003E06001F06000F8F800F8FC00FC
+FC00FCFC007C78007C3000FC0000FC0000F80000F80001F00003E00003C0000780000F00
+001E0000380000700000E00001C00C03800C0600180C00181800183FFFF87FFFF8FFFFF0
+FFFFF016217CA01E>50 D E /Fd 1 101 df<000003E000003FC000003FC0000003C000
+0003C00000078000000780000007800000078000000F0000000F0000000F0000000F0000
+1F1E0000FF9E0001E0DE0003807E0007007C000F003C001E003C003E003C003C0078007C
+0078007C0078007C007800F800F000F800F000F800F040F800F060F801E0C07801E0C078
+03E0C03807E1801C1CF3000FF87F0007E03C001B247EA220>100
+D E /Fe 1 101 df<0000001F000003FF000003FF0000003F0000003F0000003E000000
+3E0000007E0000007E0000007C0000007C000000FC000000FC000000F8000000F8000001
+F80007E1F8001FF9F0007C1DF000F80FF001F00FF003E007E007C007E00FC007E01F8007
+E01F8007C03F0007C03F000FC07F000FC07E000F807E000F807E001F80FE001F80FC001F
+00FC001F00FC003F02FC003F06FC003E06F8003E06F8007E0E7C00FE0C7C00FC0C7C01FC
+1C3E07BE181F0E1E380FFC0FF003F003C0202F7DAD24>100 D E
+/Ff 2 13 df<0000003FE000000000000001FFFC0000000000000FFFFF0000000000003F
+E03FC00000000000FF000FE00000000001FC0007F00003C00007F80003F80003C0000FF0
+0001FC000380001FE00001FE000380003FC00000FE000780007F800000FF00070000FF00
+0000FF00070001FE0000007F800F0003FE0000007F800E0003FC0000007F800E0007F800
+00007FC01E000FF80000003FC01C000FF80000003FC03C001FF00000003FC038001FF000
+00003FC078003FE00000003FC070003FE00000003FC0F0007FE00000003FC0E0007FC000
+00003FC1E0007FC00000003FC1C0007FC00000003FC3C000FFC00000003FC78000FF8000
+00003FC78000FF800000003FCF0000FF800000003FDE0000FF800000003FDE0000FF0000
+00003FFC0000FF000000003FF80000FF000000003FF00000FF000000003FF00000FF0000
+00003FE00000FF000000003FC00000FF000000003FC00000FF000000003FC00000FF0000
+00003FC00000FF000000003FC000007F00000000FFC000007F80000001FFE000003F8000
+0003FFE000003F8000000F9FE00E001FC000001F1FE01E000FE000007C0FE01C0007F000
+01F80FE03C0003F8000FE007F0780001FE00FF8003F8F800007FFFFE0001FFF000001FFF
+F00000FFC0000003FF0000003F000042357BB34A>11 D<000000000001FF000000000000
+000FFFC00000000000007FFFF0000000000000FE01FC000000000003F000FE0000000000
+0FC0007F00000000001F00003F00000000003C00003F80000000007800001F8000000000
+F000001FC000000001E000001FC000000003C000001FC0000000078000001FC00000000F
+0000001FE00000001E0000001FE00000001C0000001FE00000003C0000001FE000000078
+0000003FE0000000700000003FC0000000F00000003FC0000001E00000003FC0000001C0
+0000007FC0000003C00000007F80000003800000007F80000007800000007F8000000700
+000000FF0000000700000000FF0000000F00000001FE0000000E00000001FC0000000E00
+000003FC0000001E00000007F80000001C00000007F00000001C0000000FE00000003C00
+07FF1FC000000038001FFFFF8000000038003FFFFE0000000038003803FE000000007800
+3FFFFF0000000070003FFFFF8000000070000FFE1FC0000000700000000FE0000000F000
+00000FE0000000E000000007F0000000E000000007F0000000E000000007F8000001E000
+000003F8000001C000000003F8000001C000000003FC000001C000000003FC000003C000
+000003FC0000038000000003FC0000038000000003FC0000038000000007FC0000078000
+000007FC0000070000000007FC0000070000000007FC0000070000000007FC00000F0000
+00000FFC00000E000000000FF800000E000000000FF800000E000000000FF800001E0000
+00001FF800001E000000001FF000001E000000001FF000001C000000001FF000003C0000
+00003FE000003C000000003FE000003E000000007FC000003E000000007FC000007E0000
+0000FF8000007E00000000FF0000007E00000001FF0000007F00000001FE000000F70000
+0003FC000000E780000007F8000000E38000000FF0000000E3C000000FE0000001E1E000
+001FC0000001C1F000007F80000001C0F80000FF00000001C07E0001FC00000003C01F80
+0FF000000003800FFFFFE0000000038003FFFF00000000038000FFFC0000000007800000
+00000000000700000000000000000700000000000000000700000000000000000F000000
+00000000000E00000000000000000E00000000000000000E00000000000000001E000000
+00000000001C00000000000000001C00000000000000001C00000000000000003C000000
+000000000038000000000000000038000000000000000038000000000000000078000000
+0000000000700000000000000000700000000000000000700000000000000000F0000000
+0000000000F00000000000000000436B7ED342>I E /Fg 134[60
+60 1[60 66 40 47 53 2[60 66 100 33 2[33 66 60 40 53 66
+53 66 60 12[80 66 86 1[73 93 1[113 80 2[47 93 2[80 86
+1[80 86 11[60 60 60 60 60 2[30 40 45[{ TeXBase1Encoding ReEncodeFont }
+40 119.999947 /Times-Bold rf /Fh 103[50 32[50 1[50 50
+50 50 1[50 2[50 50 2[50 50 50 1[50 50 50 50 50 38[50
+10[50 50 46[{ TeXBase1Encoding ReEncodeFont }20 83.333336
+/Courier rf /Fi 134[42 42 60 42 42 23 32 28 42 42 42
+42 65 23 42 23 23 42 42 28 37 42 37 42 37 3[28 1[28 3[78
+60 1[51 46 55 1[46 60 60 74 51 60 1[28 60 60 2[60 55
+55 60 7[42 42 42 42 42 42 42 42 42 42 1[21 28 21 2[28
+28 2[69 34[46 2[{ TeXBase1Encoding ReEncodeFont }62 83.333336
+/Times-Roman rf /Fj 8 57 df<00380000780001F8001FF800FEF800E0F80000F80000
+F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000
+F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000
+F80000F80000F80000F80001FC00FFFFF8FFFFF815267BA521>49
+D<00FF000003FFE0000E03F0001800F80030007C0060007E0078003F00FC003F00FE001F
+80FE001F80FE001F80FE001F807C001F8000001F8000001F0000003F0000003E0000007E
+0000007C000000F8000001F0000003E0000003C00000078000000E0000001C0000003800
+000070018000E001800180018003000300060003000C0003001FFFFF003FFFFF007FFFFE
+00FFFFFE00FFFFFE0019267DA521>I<00FF000003FFE0000F01F8001C007C0030007E00
+3C003E007E003F007E003F007E003F007E003F003C003F0000003E0000007E0000007C00
+0000F8000001F0000007E00001FF800001FF00000001E0000000F00000007C0000003E00
+00003F0000001F0000001F8000001F8038001F807C001F80FE001F80FE001F80FE001F00
+FC003F0078003E0070007C003800F8001F01F00007FFC00000FF000019277DA521>I<00
+00380000003800000078000000F8000001F8000001F8000003F8000007F8000006F80000
+0CF800001CF8000018F8000030F8000070F8000060F80000C0F80001C0F8000180F80003
+00F8000700F8000E00F8000C00F8001C00F8003800F8003000F8006000F800E000F800FF
+FFFFE0FFFFFFE00000F8000000F8000000F8000000F8000000F8000000F8000000F80000
+01FC00003FFFE0003FFFE01B277EA621>I<18000C001F007C001FFFF8001FFFF0001FFF
+E0001FFF800019FC00001800000018000000180000001800000018000000180000001800
+0000187F000019FFE0001F81F0001E0078001C003C0018003E0000003E0000001F000000
+1F0000001F8000001F8030001F807C001F80FC001F80FC001F80FC001F80FC001F00F000
+1F0060003E0070003E0030007C001C00F8000F03E00003FFC00000FE000019277DA521>
+I<000FE000003FF80000F81C0001E0060003C01F0007803F000F003F001F003F001E003F
+003E001E003E0000007C0000007C0000007C0400007C3FC000FCFFF000FDC07800FF003C
+00FF003E00FE001E00FE001F00FE001F00FC001F80FC001F80FC001F80FC001F807C001F
+807C001F807C001F807C001F803C001F003E001F001E001E001E003E000F003C00078078
+0003C1F00001FFC000007F000019277DA521>I<300000003C0000003FFFFFE03FFFFFE0
+3FFFFFC07FFFFF807FFFFF807000070060000E0060000C00C0001C00C0003800C0007000
+0000E0000000C0000001C000000380000003800000070000000F0000000E0000001E0000
+001E0000001E0000003E0000003C0000003C0000007C0000007C0000007C0000007C0000
+00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000780000
+1B287DA621>I<007F000003FFE0000781F8000E007C001C001E0038001E0038000F0078
+000F0078000F0078000F007C000F007E001E003F801E003FE03C001FF078000FFCF00007
+FFC00003FF800000FFE00001FFF000079FFC000F07FE001E03FE003C00FF0078003F0078
+001F80F0000F80F0000F80F0000780F0000780F0000780F00007007800070078000E003C
+001C001E0038000F80F00003FFE000007F000019277DA521>I E
+/Fk 5 50 df<7FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFF
+FFE03C04789A4D>0 D<600000000006F8000000000FFC000000001F7E000000003F3F00
+0000007E1F80000000FC0FC0000001F807E0000003F003F0000007E001F800000FC000FC
+00001F80007E00003F00003F00007E00001F8000FC00000FC001F8000007E003F0000003
+F007E0000001F80FC0000000FC1F800000007E3F000000003F7E000000001FFC00000000
+0FF80000000007F00000000007F0000000000FF8000000001FFC000000003F7E00000000
+7E3F00000000FC1F80000001F80FC0000003F007E0000007E003F000000FC001F800001F
+8000FC00003F00007E00007E00003F0000FC00001F8001F800000FC003F0000007E007E0
+000003F00FC0000001F81F80000000FC3F000000007E7E000000003FFC000000001FF800
+0000000F600000000006303072B04D>2 D<00000000000000E000000000000003F00000
+000000000FF00000000000003FE0000000000000FF80000000000003FE0000000000000F
+F80000000000003FE0000000000000FF80000000000003FE0000000000000FF800000000
+00003FE0000000000000FF80000000000003FE0000000000001FF80000000000007FE000
+0000000001FF80000000000007FE0000000000001FF00000000000007FC0000000000001
+FF00000000000007FC0000000000001FF00000000000007FC0000000000001FF00000000
+000007FC0000000000001FF00000000000007FC0000000000000FF00000000000000FF00
+0000000000007FC00000000000001FF000000000000007FC00000000000001FF00000000
+0000007FC00000000000001FF000000000000007FC00000000000001FF00000000000000
+7FC00000000000001FF000000000000007FC00000000000001FF800000000000007FE000
+00000000001FF800000000000007FE00000000000000FF800000000000003FE000000000
+00000FF800000000000003FE00000000000000FF800000000000003FE00000000000000F
+F800000000000003FE00000000000000FF800000000000003FE00000000000000FF00000
+0000000003F000000000000000E000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000007FFF
+FFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE03C4E78BE4D>
+20 D<7000000000000000FC00000000000000FF000000000000007FC00000000000001F
+F000000000000007FC00000000000001FF000000000000007FC00000000000001FF00000
+0000000007FC00000000000001FF000000000000007FC00000000000001FF00000000000
+0007FC00000000000001FF800000000000007FE00000000000001FF800000000000007FE
+00000000000000FF800000000000003FE00000000000000FF800000000000003FE000000
+00000000FF800000000000003FE00000000000000FF800000000000003FE000000000000
+00FF800000000000003FE00000000000000FF00000000000000FF00000000000003FE000
+0000000000FF80000000000003FE0000000000000FF80000000000003FE0000000000000
+FF80000000000003FE0000000000000FF80000000000003FE0000000000000FF80000000
+000003FE0000000000001FF80000000000007FE0000000000001FF80000000000007FE00
+00000000001FF00000000000007FC0000000000001FF00000000000007FC000000000000
+1FF00000000000007FC0000000000001FF00000000000007FC0000000000001FF0000000
+0000007FC0000000000000FF00000000000000FC00000000000000700000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000007FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FF
+FFFFFFFFFFFFF07FFFFFFFFFFFFFE03C4E78BE4D>I<0001FF00000000003FC00000000F
+FFE000000003FFF80000003FFFFC0000000FFFFE0000007FFFFF0000003FE01F000001FF
+FFFF8000007E0007C00003F803FFE00001F80001E00007E0007FF00003F00000F0000780
+003FF80007C0000070000F00001FFC000F80000038001E000007FE001F0000001C001C00
+0003FF003E0000000C0038000001FF807C0000000E0038000001FFC0F800000006007000
+0000FFE0F80000000700700000007FF1F00000000700600000003FF3E000000003006000
+00001FFBC00000000300E00000001FFFC00000000380C00000000FFF800000000180C000
+000007FF000000000180C000000003FF000000000180C000000001FF800000000180C000
+000001FFC00000000180C000000000FFC00000000180C0000000007FE00000000180C000
+0000007FF00000000180C000000000FFF80000000180E000000001FFFC00000003806000
+000001EFFC00000003006000000003E7FE00000003007000000007C7FF00000007007000
+00000F83FF8000000700300000000F81FFC000000E00380000001F00FFC000000E001800
+00003E007FE000001C001C0000007C003FF000003C000E000000F8001FFC000078000700
+0001F0000FFE0000F00007800007E00007FF0003F00003C0000FC00003FFE00FE00001F0
+003F000000FFFFFFC000007C03FE0000007FFFFF0000003FFFF80000001FFFFE0000000F
+FFE000000003FFF800000001FE00000000007FC00000592D7BAB64>49
+D E /Fl 26 123 df<00000C00001C0000380000700000E00001C00003C0000780000F00
+000F00001E00003C00003C0000780000F80000F00001F00001E00003E00003E00007C000
+07C00007C0000F80000F80000F80001F00001F00001F00003F00003F00003E00003E0000
+7E00007E00007E00007E00007C00007C00007C0000FC0000FC0000FC0000FC0000FC0000
+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000
+FC0000FC0000FC00007C00007C00007C00007E00007E00007E00007E00003E00003E0000
+3F00003F00001F00001F00001F00000F80000F80000F800007C00007C00007C00003E000
+03E00001E00001F00000F00000F800007800003C00003C00001E00000F00000F00000780
+0003C00001C00000E000007000003800001C00000C166476CA26>40
+D<C00000E000007000003800001C00000E00000F000007800003C00003C00001E00000F0
+0000F000007800007C00003C00003E00001E00001F00001F00000F80000F80000F800007
+C00007C00007C00003E00003E00003E00003F00003F00001F00001F00001F80001F80001
+F80001F80000F80000F80000F80000FC0000FC0000FC0000FC0000FC0000FC0000FC0000
+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000
+FC0000F80000F80000F80001F80001F80001F80001F80001F00001F00003F00003F00003
+E00003E00003E00007C00007C00007C0000F80000F80000F80001F00001F00001E00003E
+00003C00007C0000780000F00000F00001E00003C00003C0000780000F00000E00001C00
+00380000700000E00000C0000016647BCA26>I<00000000C00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+00007FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF807FFFFFFFFFFFFF
+FF0000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000001E00000000000000001E00000000000000001E00000
+000000000001E00000000000000000C00000000041407BB84C>43
+D<0000FF00000007FFE000001F81F800003E007C0000FC003F0001F8001F8001F0000F80
+03E00007C007C00003E007C00003E00FC00003F00F800001F01F800001F81F800001F83F
+800001FC3F800001FC3F800001FC3F000000FC7F000000FE7F000000FE7F000000FE7F00
+0000FE7F000000FEFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF0000
+00FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000
+FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FF
+FF000000FFFF000000FF7F000000FE7F000000FE7F000000FE7F000000FE7F000000FE7F
+800001FE3F800001FC3F800001FC3F800001FC1F800001F81F800001F80FC00003F00FC0
+0003F00FC00003F007E00007E003E00007C003F0000FC001F8001F8000FC003F00003E00
+7C00001F81F8000007FFE0000000FF000028447CC131>48 D<000030000000F0000001F0
+000003F000001FF00000FFF000FFFFF000FFE7F000FF07F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F000000FF800001FFC007FFFFFFF7FFFFFFF7FFFFF
+FF204278C131>I<0000000380000000000380000000000780000000000F80000000000F
+80000000001F80000000003F80000000003F80000000007F8000000000FF8000000000FF
+8000000001FF8000000003BF80000000033F80000000073F80000000063F800000000C3F
+800000001C3F80000000183F80000000303F80000000703F80000000603F80000000C03F
+80000001C03F80000001803F80000003003F80000007003F80000006003F8000000C003F
+8000001C003F80000018003F80000030003F80000070003F80000060003F800000E0003F
+800001C0003F80000180003F80000380003F80000300003F80000600003F80000E00003F
+80000C00003F80001800003F80003800003F80003000003F80006000003F8000E000003F
+8000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC00000003F80000000003F80000000003F
+80000000003F80000000003F80000000003F80000000003F80000000003F80000000003F
+80000000003F80000000003F80000000003F80000000003F8000000000FFE00000007FFF
+FFC000007FFFFFC000007FFFFFC02A437DC231>52 D<06000000C007C00007C007FC007F
+8007FFFFFF0007FFFFFE0007FFFFFC0007FFFFF80007FFFFE00007FFFF8000063FFC0000
+060000000006000000000600000000060000000006000000000600000000060000000006
+000000000600000000060000000006000000000600000000060000000006000000000600
+FF00000607FFC000061F01F000063800FC0006F0007E0007C0003F000780001F80078000
+1FC00700000FC00600000FE000000007F000000007F000000007F000000007F800000003
+F800000003F800000003FC00000003FC00000003FC00000003FC00000003FC3E000003FC
+7F000003FCFF800003FCFF800003FCFF800003FCFF800003FCFF800003F8FF000007F8FE
+000007F860000007F060000007F07000000FF03000000FE03800001FC01C00001FC01E00
+003F800F00007F00078000FE0003C001FC0001F807F000007FFFE000001FFF00000007F8
+000026447BC131>I<7FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF80
+7FFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000007FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF80
+7FFFFFFFFFFFFFFF0041187BA44C>61 D<0007FC000000003FFF80000000F80FE0000003
+C003F00000070001F800000E0000FC00000FC0007E00001FE0007F00001FF0003F80001F
+F0003F80001FF0003F80001FF0001FC0001FF0001FC0000FE0001FC0000380001FC00000
+00001FC0000000001FC0000000001FC0000000001FC00000000FFFC0000001FFFFC00000
+0FFE1FC000003FC01FC00000FF001FC00003FC001FC00007F8001FC0000FF0001FC0001F
+E0001FC0003FC0001FC0007FC0001FC0007F80001FC0007F80001FC060FF00001FC060FF
+00001FC060FF00001FC060FF00003FC060FF00003FC060FF00003FC060FF80007FC0607F
+8000EFC0607FC000C7E0C03FC001C7E0C01FE00783F1C007F81E03FF8001FFFC01FF0000
+1FE0007C002B2E7CAC31>97 D<00007F80000003FFF000000FC07C00003F000F0000FC00
+038001F80001C003F8000FC007F0001FE007E0003FE00FE0003FE01FC0003FE01FC0003F
+E03F80003FE03F80001FC07F800007007F800000007F800000007F00000000FF00000000
+FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF
+00000000FF00000000FF000000007F000000007F800000007F800000003F800000003F80
+0000303FC00000301FC00000700FE00000600FE00000E007F00000C003F80001C001F800
+038000FC000700003F001E00001FC078000007FFF0000000FF8000242E7DAC2B>99
+D<000000007F000000003FFF000000003FFF000000003FFF0000000001FF0000000000FF
+00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
+00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
+00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
+00000000007F0000007F807F000003FFF07F00000FC07C7F00003F000E7F00007E00077F
+0000FC0003FF0003F80001FF0007F00000FF0007E00000FF000FE000007F001FC000007F
+001FC000007F003F8000007F003F8000007F007F8000007F007F8000007F007F0000007F
+00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F
+00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F007F0000007F
+007F8000007F007F8000007F003F8000007F003F8000007F001FC000007F001FC000007F
+000FC00000FF000FE00000FF0007F00001FF0003F00003FF0001F800077F8000FC000E7F
+C0003F001C7FFE000FC0F87FFE0003FFE07FFE00007F007F002F467DC436>I<0001FE00
+000007FFC000001F03F000007E00FC0000FC007E0001F8003F0003F0003F0007E0001F80
+0FE0001FC00FC0000FC01FC0000FC03F80000FE03F800007E03F800007E07F800007F07F
+000007F07F000007F0FF000007F0FF000007F0FF000007F0FFFFFFFFF0FFFFFFFFF0FF00
+000000FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F0000
+00007F800000007F800000003F800000003F800000301FC00000301FC00000700FC00000
+600FE00000E007F00000C003F00001C001F800038000FC000700003E001E00001F80F800
+0003FFE0000000FF0000242E7DAC2B>I<01FC00000000FFFC00000000FFFC00000000FF
+FC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC0000000001
+FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
+FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
+FC0000000001FC0000000001FC0000000001FC0000000001FC01FE000001FC07FFC00001
+FC1E07F00001FC3801F80001FC7001FC0001FCE000FC0001FDC000FE0001FD8000FE0001
+FF80007F0001FF00007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001
+FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
+FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
+FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
+FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001
+FC00007F0001FC00007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F
+457DC436>104 D<01E00007F80007F8000FFC000FFC000FFC000FFC0007F80007F80001
+E00000000000000000000000000000000000000000000000000000000000000000000000
+000000000001FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC0001
+FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001
+FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001
+FC0001FC0001FC0001FC0001FC0001FC0003FE00FFFFF8FFFFF8FFFFF815437DC21C>I<
+01FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC00
+01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
+01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
+01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
+01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
+01FC0001FC0001FC0001FC0001FC0003FE00FFFFF8FFFFF8FFFFF815457DC41C>108
+D<01FC00FF00001FE00000FFFC07FFE000FFFC0000FFFC0F03F801E07F0000FFFC3C01FC
+07803F800007FC7000FE0E001FC00003FCE0007E1C000FC00001FDC0007F38000FE00001
+FD80007F30000FE00001FF80003FF00007F00001FF00003FE00007F00001FF00003FE000
+07F00001FE00003FC00007F00001FE00003FC00007F00001FE00003FC00007F00001FC00
+003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F0
+0001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F
+800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001
+FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F8000
+07F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00
+003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F0
+0001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F
+800007F00003FE00007FC0000FF800FFFFF81FFFFF03FFFFE0FFFFF81FFFFF03FFFFE0FF
+FFF81FFFFF03FFFFE04B2C7DAB52>I<01FC01FE0000FFFC07FFC000FFFC1E07F000FFFC
+3801F80007FC7001FC0003FCE000FC0001FDC000FE0001FD8000FE0001FF80007F0001FF
+00007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001FC00007F0001FC
+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC
+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC
+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC
+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC
+00007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F2C7DAB36>I<00
+007F8000000003FFF00000000FC0FC0000003E001F0000007C000F800000F80007C00001
+F00003E00003E00001F00007C00000F8000FC00000FC000FC00000FC001F8000007E003F
+8000007F003F8000007F003F0000003F007F0000003F807F0000003F807F0000003F807F
+0000003F80FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF
+0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F
+0000003F807F8000007F803F8000007F003F8000007F001F8000007E001FC00000FE000F
+C00000FC000FE00001FC0007E00001F80003F00003F00001F80007E00000FC000FC00000
+3E001F0000001FC0FE00000007FFF8000000007F8000002A2E7DAC31>I<01FC03FC0000
+FFFC0FFF8000FFFC3C07E000FFFC7001F80007FDE000FE0001FD80007F0001FF80003F80
+01FF00001FC001FE00001FE001FC00000FE001FC00000FF001FC000007F001FC000007F8
+01FC000003F801FC000003FC01FC000003FC01FC000003FC01FC000001FE01FC000001FE
+01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE
+01FC000001FE01FC000001FE01FC000001FE01FC000003FC01FC000003FC01FC000003FC
+01FC000007F801FC000007F801FC000007F001FC00000FF001FE00000FE001FE00001FC0
+01FF00003FC001FF00003F8001FF80007E0001FDC000FC0001FCF003F80001FC3C0FE000
+01FC1FFF800001FC03FC000001FC0000000001FC0000000001FC0000000001FC00000000
+01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000
+01FC0000000001FC0000000001FC0000000001FC0000000003FE00000000FFFFF8000000
+FFFFF8000000FFFFF80000002F3F7DAB36>I<00007F8003000003FFE00700000FE07807
+00003F801C0F00007E000E0F0000FC00071F0003F800039F0007F80001BF0007F00001FF
+000FE00000FF001FE00000FF001FC00000FF003FC000007F003FC000007F007F8000007F
+007F8000007F007F8000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F
+00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F
+00FF0000007F007F8000007F007F8000007F007F8000007F003F8000007F003FC000007F
+001FC000007F001FE00000FF000FE00000FF000FF00001FF0007F00001FF0003F80003FF
+0001FC00077F0000FE000E7F00003F001C7F00000FC0F87F000003FFE07F0000007F007F
+00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
+00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F
+00000000007F00000000007F0000000000FF800000003FFFFE0000003FFFFE0000003FFF
+FE2F3F7DAB33>I<03F803F0FFF81FFCFFF83C3EFFF8707F07F8E0FF03F9C0FF01F980FF
+01FB80FF01FB007E01FB003C01FF000001FE000001FE000001FE000001FE000001FC0000
+01FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0000
+01FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0000
+01FC000001FC000001FC000001FC000001FC000001FC000003FF0000FFFFFE00FFFFFE00
+FFFFFE00202C7DAB26>I<003FE01801FFFC3807E01F780F0003F81E0001F83C0000F87C
+00007878000078F8000038F8000038F8000018F8000018FC000018FC000018FE000018FF
+8000007FC000007FFC00003FFFE0001FFFFC000FFFFF0007FFFFC003FFFFE000FFFFF000
+1FFFF80000FFF800000FFC000003FCC00001FEC00000FEC000007EE000007EE000003EE0
+00003EF000003EF000003EF000003EF800003CFC00007CFC000078FE0000F8FF0001F0F3
+8003E0F1F00F80E07FFE00C00FF0001F2E7DAC26>I<0006000000060000000600000006
+000000060000000E0000000E0000000E0000000E0000001E0000001E0000001E0000003E
+0000007E0000007E000000FE000001FE000007FE00001FFFFFF0FFFFFFF0FFFFFFF000FE
+000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE
+000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE
+000000FE000000FE000000FE000000FE000C00FE000C00FE000C00FE000C00FE000C00FE
+000C00FE000C00FE000C00FE000C00FE000C007E001C007F0018007F0018003F0038001F
+8030001FC0700007E0E00001FFC000007F001E3E7EBC26>I<01FC00007F00FFFC003FFF
+00FFFC003FFF00FFFC003FFF0007FC0001FF0003FC0000FF0001FC00007F0001FC00007F
+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F
+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F
+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F
+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F
+0001FC0000FF0001FC0000FF0001FC0000FF0001FC0001FF0001FC0001FF0000FC0001FF
+0000FE0003FF00007E00077F80007F000E7FC0003F001C7FFE000FC0787FFE0003FFF07F
+FE00007F807F002F2D7DAB36>I<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC07FF0000
+7FE003FE00001F8001FE00001F0001FE00000E0000FE00000E0000FE00000C00007F0000
+1800007F00001800007F80001800003F80003000003F80003000003FC0007000001FC000
+6000001FE0006000000FE000C000000FE000C000000FF001C0000007F00180000007F001
+80000003F80300000003F80300000003FC0700000001FC0600000001FC0600000000FE0C
+00000000FE0C00000000FF0C000000007F18000000007F18000000007FB8000000003FB0
+000000003FF0000000001FE0000000001FE0000000001FE0000000000FC0000000000FC0
+00000000078000000000078000000000078000000000030000002E2C7EAA33>I<3FFFFF
+FFE03FFFFFFFE03FC0003FE03F00003FC03C00007F80380000FF00380000FF00300001FE
+00700003FC00700003FC00700007F80060000FF00060000FF00060001FE00060003FC000
+60003FC00000007F80000000FF00000001FF00000001FE00000003FC00000007FC000000
+07F80000000FF00000001FF00000001FE00060003FC00060007F800060007F80006000FF
+0000C001FE0000C001FE0000C003FC0000C007F80000C007F80001C00FF00001C01FE000
+03C01FE00003C03FC00007807F80001F80FF8000FF80FFFFFFFF80FFFFFFFF80232B7DAA
+2B>122 D E /Fm 75[33 29[50 27[39 44 44 66 44 50 28 39
+39 1[50 50 50 72 28 44 1[28 50 50 28 44 50 44 50 50 7[55
+1[83 61 72 55 50 61 1[61 72 66 83 55 1[44 33 72 72 61
+61 72 66 61 61 6[33 50 1[50 1[50 50 50 5[33 25 4[33 8[33
+27[50 2[{ TeXBase1Encoding ReEncodeFont }59 100.000000
+/Times-Italic rf /Fn 8 57 df<000C00003C00007C0003FC00FFFC00FC7C00007C00
+007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00
+007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00
+007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000FE007FFFFE
+7FFFFE172C7AAB23>49 D<007F800001FFF0000780FC000E003F001C001F8038000FC070
+000FC0600007E0F00007E0FC0007F0FE0007F0FE0003F0FE0003F0FE0003F07C0007F000
+0007F0000007F0000007E000000FE000000FC000001FC000001F8000003F0000007E0000
+007C000000F8000001F0000003E0000007C000000F8000001E0000003C00000078000000
+F0003000E0003001C0003003800060070000600E0000E01FFFFFE03FFFFFE07FFFFFC0FF
+FFFFC0FFFFFFC01C2C7DAB23>I<003FC00001FFF00007C0FC000E007E001C003F001C00
+1F803F001FC03F001FC03F800FC03F000FC03F000FC00C001FC000001FC000001F800000
+1F8000003F0000003E0000007C000000F8000003F00000FFC00000FFF0000000FC000000
+3F0000001F8000001FC000000FC000000FE000000FE0000007F0000007F0380007F07C00
+07F0FE0007F0FE0007F0FE0007F0FE000FE0F8000FE060000FC070001FC038001F801E00
+3F000780FC0001FFF000007FC0001C2D7DAB23>I<00000E0000000E0000001E0000003E
+0000003E0000007E000000FE000000FE000001BE000003BE0000033E0000063E00000E3E
+00000C3E0000183E0000383E0000303E0000603E0000E03E0000C03E0001803E0003803E
+0003003E0006003E000E003E000C003E0018003E0038003E0030003E0060003E00E0003E
+00FFFFFFFCFFFFFFFC00003E0000003E0000003E0000003E0000003E0000003E0000003E
+0000003E0000003E0000007F00001FFFFC001FFFFC1E2D7EAC23>I<0C0001800FC01F80
+0FFFFF000FFFFE000FFFFC000FFFF0000FFFC0000C7E00000C0000000C0000000C000000
+0C0000000C0000000C0000000C0000000C0000000C1FC0000C7FF8000DE07C000F801F00
+0F001F800E000F800C0007C0000007E0000007E0000003E0000003F0000003F0000003F0
+000003F0780003F0FC0003F0FC0003F0FC0003F0FC0003F0F80007E0E00007E0600007C0
+70000FC038000F801C001F000E003E000780F80001FFE000007F80001C2D7DAB23>I<00
+03F800000FFE00003E078000F8018001F007C003E00FC007C00FC00F800FC00F800FC01F
+0007801F0000003E0000003E0000007E0000007E0000007C0000007C0FC000FC3FF000FC
+F07C00FDC01E00FF800F00FF000F80FF0007C0FE0007E0FE0007E0FE0003E0FC0003F0FC
+0003F0FC0003F0FC0003F07C0003F07C0003F07C0003F07E0003F07E0003F03E0003E03E
+0007E01E0007E01F0007C00F000F8007801F0003C03E0001E07C00007FF000001FC0001C
+2D7DAB23>I<300000003C0000003FFFFFF83FFFFFF83FFFFFF07FFFFFF07FFFFFE07000
+01C06000018060000380C0000700C0000E00C0000C0000001C0000003800000030000000
+70000000E0000001C0000001C00000038000000380000007000000070000000F0000000E
+0000001E0000001E0000003E0000003E0000003E0000003C0000007C0000007C0000007C
+0000007C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC
+000000FC0000007800001D2E7CAC23>I<001FC00000FFF00003E07C0007801E000F000F
+001E0007801E0007803C0003C03C0003C03C0003C03C0003C03E0003C03E0007C03F0007
+801FC00F801FE00F001FF81E000FFC3C0007FFF80003FFE00000FFE000003FF80000FFFC
+0003C7FF000783FF801F00FFC01E003FC03C001FE07C0007E0780003F0F80003F0F00001
+F0F00000F0F00000F0F00000F0F00000F0F80000E0780001E07C0001C03C0003C01E0007
+800F800F0007E03C0001FFF000003FC0001C2D7DAB23>I E /Fo
+135[72 104 72 80 48 56 64 1[80 72 80 120 40 80 1[40 80
+72 48 64 80 64 1[72 9[143 2[96 80 104 1[88 2[135 3[56
+112 112 1[96 104 104 96 104 10[72 72 72 72 72 72 9[48
+39[{ TeXBase1Encoding ReEncodeFont }42 144.000000 /Times-Bold
+rf /Fp 5 102 df<007800FE01FE01FE01FE03FE03FC03FC03FC07F807F807F807F007F0
+0FE00FE00FE00FC01FC01F801F801F803F003F003F003E007E007C007C007C00F800F800
+F800F0000F227EA413>48 D<600000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000FFFF80FFFF807FFF80114374
+B11F>98 D<00018000038000038000038000038000038000038000038000038000038000
+038000038000038000038000038000038000038000038000038000038000038000038000
+038000038000038000038000038000038000038000038000038000038000038000038000
+038000038000038000038000038000038000038000038000038000038000038000038000
+038000038000038000038000038000038000038000038000038000038000038000038000
+0380000380000380000380000380000380FFFF80FFFF80FFFF8011437FB11F>I<7FFF80
+FFFF80FFFF80E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000600000114374B11F>I<FFFF80FFFF80FFFF800003
+800003800003800003800003800003800003800003800003800003800003800003800003
+800003800003800003800003800003800003800003800003800003800003800003800003
+800003800003800003800003800003800003800003800003800003800003800003800003
+800003800003800003800003800003800003800003800003800003800003800003800003
+800003800003800003800003800003800003800003800003800003800003800003800003
+8000038000038000018011437FB11F>I E /Fq 12 119 df<000003FC00000000001FFF
+0000000000FE07C000000003F001F000000007E000F80000001FC000FC000E003F80007C
+000E007F00003E000C00FE00003F000C01FC00003F001C03F800001F001807F800001F80
+1807F000001F80380FF000001F80301FE000001F80701FE000001FC0603FC000001FC060
+3FC000001FC0E03FC000000FC0C07F8000000FC1C07F8000000FC1807F8000000FC380FF
+8000000FC700FF0000000FC600FF0000000FCE00FF0000000FDC00FF0000001FD800FE00
+00001FF800FE0000001FF000FE0000001FE000FE0000001FC000FE0000001FC000FE0000
+001FC000FE0000001FC000FE0000001FC0007E0000003FC0007E0000007FC0003F000000
+EFC0383F000003CFC0381F80000F07C0300FC0001C07C07007E000F803E0E001F00FE001
+E1C0007FFF0000FF80001FF000003E00372D7CAB3E>11 D<0000000003F800000000001F
+FF00000000007C0F8000000001E003E0000000078001F00000000E0001F00000001C0000
+F8000000380000F8000000700000FC000000E00000FC000001C00000FC000001800000FC
+000003800000FC000007000000FC000006000000FC00000E000001FC00000C000001FC00
+001C000001F8000018000001F8000038000003F0000030000003F0000070000007E00000
+60000007E000006000000FC00000E000000F800000C000001F000000C000003E000001C0
+07FE7C000001801FFFF8000001801807E0000001801FFFF80000038007FCFC0000030000
+007E0000030000007E0000030000003F0000070000003F0000060000003F800006000000
+1F8000060000001FC0000E0000001FC0000C0000001FC0000C0000001FC0000C0000003F
+C0001C0000003FC000180000003FC000180000003FC000180000003FC000380000007FC0
+00300000007F8000300000007F8000300000007F800070000000FF800070000000FF0000
+70000000FF000070000001FE0000F0000001FE0000F0000001FC0000F0000003FC0000F0
+000003F80001F0000007F80001B8000007F000019800000FE000019800001FC000039C00
+003F8000030E00007F000003060000FE000003078001F800000701C003F000000600F01F
+C0000006003FFF00000006000FF00000000E0000000000000C0000000000000C00000000
+00000C0000000000001C0000000000001800000000000018000000000000180000000000
+003800000000000030000000000000300000000000003000000000000070000000000000
+600000000000006000000000000060000000000000E0000000000000E000000000000036
+597DC537>I<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A78891B>58
+D<00000000000001C000000000000007E00000000000001FE00000000000007FC0000000
+000001FF00000000000007FC0000000000001FF00000000000007FC0000000000001FF00
+00000000000FFC0000000000003FF0000000000000FFC0000000000003FF000000000000
+0FF80000000000003FE0000000000000FF80000000000003FE0000000000001FF8000000
+0000007FE0000000000001FF80000000000007FE0000000000001FF00000000000007FC0
+000000000001FF00000000000007FC0000000000001FF00000000000007FC00000000000
+00FF00000000000000FF000000000000007FC00000000000001FF000000000000007FC00
+000000000001FF000000000000007FC00000000000001FF000000000000007FE00000000
+000001FF800000000000007FE00000000000001FF800000000000003FE00000000000000
+FF800000000000003FE00000000000000FF800000000000003FF00000000000000FFC000
+00000000003FF00000000000000FFC00000000000001FF000000000000007FC000000000
+00001FF000000000000007FC00000000000001FF000000000000007FC00000000000001F
+E000000000000007E000000000000001C03B3878B44C>60 D<0000000018000000003C00
+0000007C000000007C000000007800000000F800000000F800000000F000000001F00000
+0001F000000001E000000003E000000003E000000003C000000007C000000007C0000000
+07800000000F800000000F800000001F000000001F000000001E000000003E000000003E
+000000003C000000007C000000007C000000007800000000F800000000F800000000F000
+000001F000000001F000000003E000000003E000000003C000000007C000000007C00000
+0007800000000F800000000F800000000F000000001F000000001F000000001E00000000
+3E000000003E000000003C000000007C000000007C00000000F800000000F800000000F0
+00000001F000000001F000000001E000000003E000000003E000000003C000000007C000
+000007C000000007800000000F800000000F800000000F000000001F000000001F000000
+003E000000003E000000003C000000007C000000007C000000007800000000F800000000
+F800000000F000000001F000000001F000000001E000000003E000000003E000000007C0
+00000007C000000007800000000F800000000F800000000F000000001F000000001F0000
+00001E000000003E000000003E000000003C000000007C000000007C0000000078000000
+00F800000000F800000000F000000000600000000026647BCA31>I<7000000000000000
+FC00000000000000FF000000000000007FC00000000000001FF000000000000007FC0000
+0000000001FF000000000000007FC00000000000001FF000000000000007FE0000000000
+0001FF800000000000007FE00000000000001FF800000000000003FE00000000000000FF
+800000000000003FE00000000000000FF800000000000003FF00000000000000FFC00000
+000000003FF00000000000000FFC00000000000001FF000000000000007FC00000000000
+001FF000000000000007FC00000000000001FF000000000000007FC00000000000001FE0
+0000000000001FE00000000000007FC0000000000001FF00000000000007FC0000000000
+001FF00000000000007FC0000000000001FF0000000000000FFC0000000000003FF00000
+00000000FFC0000000000003FF0000000000000FF80000000000003FE0000000000000FF
+80000000000003FE0000000000001FF80000000000007FE0000000000001FF8000000000
+0007FE0000000000001FF00000000000007FC0000000000001FF00000000000007FC0000
+000000001FF00000000000007FC0000000000000FF00000000000000FC00000000000000
+70000000000000003B3878B44C>I<000FE0000007FFE0000007FFE0000007FFE0000000
+1FC00000000FC00000001FC00000001FC00000001F800000001F800000001F800000003F
+800000003F000000003F000000003F000000007F000000007E000000007E000000007E00
+000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F80FC0
+0001F83FF00003F8F07C0003F3C03E0003F7001F0003FE001F8007FC000F8007F8000FC0
+07F0000FC007F0000FE00FE0000FE00FC0000FE00FC0000FE00FC0000FE01FC0000FE01F
+80000FE01F80000FE01F80001FE03F80001FE03F00001FE03F00001FE03F00003FE07F00
+003FC07E00003FC07E00003FC07E00007FC07E00007F80FC00007F80FC00007F00FC0000
+FF00FC0000FF00FC0001FE007C0001FC007C0001FC007C0003F8007C0007F0007C0007E0
+003C000FE0003E001FC0001E003F80001F007E00000F00FC000007C1F0000001FFC00000
+007F00000023467CC429>98 D<0000000001FC00000000FFFC00000000FFFC00000000FF
+FC0000000003F80000000001F80000000003F80000000003F80000000003F00000000003
+F00000000007F00000000007F00000000007E00000000007E0000000000FE0000000000F
+E0000000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F
+80000000003F80000000003F80000000003F0000000FC03F0000007FF07F000001F8387F
+000007E01C7E00000FC00E7E00003F0007FE00007F0003FE0000FE0003FC0001FC0003FC
+0001F80001FC0003F80001FC0007F00001F8000FF00001F8000FE00003F8001FE00003F8
+001FE00003F0003FC00003F0003FC00007F0007FC00007F0007F800007E0007F800007E0
+007F80000FE000FF80000FE000FF00000FC000FF00000FC000FF00001FC000FF00001FC0
+00FE00001F8000FE00001F8000FE00003F8030FE00003F8070FE00003F0060FE00003F00
+60FE00007F00E0FE00007F00C0FE0000FE00C07E0001FE00C07E0003FE01C03E00073E01
+803F000E3E03801F001C3E03000F80381F070007C0F00F0E0001FFC007FC00007F0001F0
+002E467CC433>100 D<0000007E0000000003FF800000000FC1E0E000001F0073F00000
+7E0033F00000FC003FF00001F8001FF00003F8001FE00007F0000FE0000FE0000FE0000F
+E0000FE0001FC0000FC0003FC0000FC0003F80001FC0007F80001FC0007F00001F8000FF
+00001F8000FF00003F8001FF00003F8001FE00003F0001FE00003F0001FE00007F0003FE
+00007F0003FC00007E0003FC00007E0003FC0000FE0003FC0000FE0003F80000FC0003F8
+0000FC0003F80001FC0003F80001FC0003F80001F80003F80001F80003F80003F80003F8
+0007F80001F80007F00001F8000FF00000F8001FF00000FC003FF000007C0077E000003E
+01E7E000001F078FE0000007FE0FE0000001F80FC0000000000FC0000000001FC0000000
+001FC0000000001F80000000001F80000000003F80000000003F80000000003F00000000
+003F00001C00007E00007F0000FE0000FF0000FC0000FF0001F80000FF0003F80000FE00
+07F00000FE000FC00000F8001F8000007C00FE0000001FFFF800000003FFC00000002C40
+7EAB2F>103 D<0000FE000000007FFE000000007FFE000000007FFE0000000001FC0000
+000000FC0000000001FC0000000001FC0000000001F80000000001F80000000003F80000
+000003F80000000003F00000000003F00000000007F00000000007F00000000007E00000
+000007E0000000000FE0000000000FE0000000000FC0000000000FC0000000001FC00000
+00001FC0000000001F80000000001F80003F00003F8000FFC0003F8003C0E0003F000703
+E0003F001E0FE0007F00380FE0007F00701FE0007E00E01FE0007E01C01FE000FE01801F
+C000FE0380070000FC0700000000FC0E00000001FC1C00000001FC3800000001F8700000
+0001F8E000000003FBC000000003FF0000000003FF8000000003FFF800000007F1FE0000
+0007F03F80000007E00FE0000007E007F000000FE003F000000FE003F800000FC001F800
+000FC001F800001FC001F801C01FC001F801801F8001F801801F8001F801803F8001F803
+803F8001F803003F0001F003003F0001F007007F0001F006007F0001F00E007E0001F00C
+007E0001F01C00FE0000F03800FE0000787000FC00003FE0003800000F80002B467BC433
+>107 D<00F80003FC000003FE001FFF0000071F007C0FC0000E0F80E007E0000C07C3C0
+03E0001C07C70003F0001807CE0001F0003807DC0001F8003007D80001F800300FF80001
+F800700FF00001F800600FE00001F800600FE00001F800E00FC00003F800C01FC00003F0
+00C01F800003F000001F800003F000001F800007F000003F800007E000003F000007E000
+003F000007E000003F00000FE000007F00000FC000007E00000FC000007E00001FC00000
+7E00001F800000FE00001F800000FC00003F800000FC00003F000000FC00003F007001FC
+00007F006001F800007E006001F80000FE006001F80000FC00E003F80000FC00C003F000
+00FC01C003F00000F8018003F00000F8038007F00000F8030007E00000F8070007E00000
+F80E0007E00000781C000FE000007C38000FC000001FF0000380000007C000342D7DAB3A
+>110 D<003E00000E0000FF80003F8003C3C0007F800703E0007F800601F0007F800E01
+F0007F801C01F0007F801803F0003F803803F0001F803003F0000F803003F0000F807007
+F00007806007E00007806007E0000780E00FE0000700C00FC0000300001FC0000300001F
+80000700001F80000600003F80000600003F00000600003F00000E00007F00000C00007E
+00000C00007E00000C00007E00001C0000FE0000180000FC0000180000FC0000380000FC
+0000300000FC0000700001F80000600001F80000E00001F80000C00001F80001C00000F8
+0001800000F80003800000FC0007000000FC00060000007C000E0000007E001C0000003F
+00780000000F81E000000007FFC000000000FE000000292D7DAB2F>118
+D E /Fr 134[45 45 66 45 45 25 35 30 45 45 45 45 71 25
+45 1[25 45 45 30 40 45 40 45 40 12[56 3[51 66 1[81 3[30
+66 3[66 2[66 18[23 30 23 41[51 2[{ TeXBase1Encoding ReEncodeFont }36
+91.249977 /Times-Roman rf /Fs 139[30 35 40 14[40 51 45
+31[66 65[{ TeXBase1Encoding ReEncodeFont }7 91.249977
+/Times-Bold rf /Ft 134[50 3[55 33 39 44 2[50 55 83 28
+55 1[28 55 50 33 44 55 44 55 50 12[66 55 72 1[61 2[94
+66 1[50 1[78 5[66 7[33 58[{ TeXBase1Encoding ReEncodeFont }29
+100.000000 /Times-Bold rf /Fu 75[33 11[33 17[50 1[44
+44 24[44 50 50 72 50 50 28 39 33 50 50 50 50 78 28 50
+28 28 50 50 33 44 50 44 50 44 3[33 1[33 61 72 1[94 72
+72 61 55 66 1[55 72 72 89 61 72 39 33 72 72 55 61 72
+66 66 72 1[44 1[56 1[28 28 50 50 50 50 50 50 50 50 50
+50 28 25 33 25 1[50 33 33 33 1[83 33[55 55 2[{
+ TeXBase1Encoding ReEncodeFont }82 100.000000 /Times-Roman
+rf /Fv 134[60 2[60 60 33 47 40 1[60 60 60 93 33 60 1[33
+60 60 40 53 60 53 60 53 11[86 73 66 5[106 2[47 1[86 86
+66 73 86 80 80 86 7[60 2[60 3[60 60 2[30 1[30 44[{
+ TeXBase1Encoding ReEncodeFont }40 119.999947 /Times-Roman
+rf /Fw 134[86 3[86 1[67 57 2[86 86 134 48 3[86 2[76 1[76
+1[76 12[105 96 2[96 6[57 124 124 2[124 2[124 6[48 12[57
+45[{ TeXBase1Encoding ReEncodeFont }22 172.833374 /Times-Roman
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: Letter
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 195 506 a Fw(APHID:)44 b(Asynchronous)g(P)m(arallel)h(Game-T)-6
+b(ree)46 b(Search)863 805 y Fv(Mark)29 b(G.)h(Brockington)f(and)h
+(Jonathan)e(Schaef)m(fer)1118 955 y(Department)j(of)e(Computing)g
+(Science)1441 1104 y(Uni)m(v)n(ersity)h(of)f(Alberta)1249
+1254 y(Edmonton,)g(Alberta)i(T6G)f(2H1)1771 1403 y(Canada)1510
+1637 y(February)g(12,)f(1999)1925 5589 y Fu(1)p eop
+%%Page: 2 2
+2 1 bop 146 100 a Ft(Running)26 b(Head:)31 b Fu(APHID:)25
+b(Asynchronous)f(P)o(arallel)g(Game-T)m(ree)h(Search)146
+199 y Ft(Send)i(Pr)n(oofs)d(T)-9 b(o:)146 299 y Fu(Jonathan)24
+b(Schaef)n(fer)146 399 y(615)h(General)g(Services)g(Building)146
+498 y(Department)g(of)f(Computing)g(Science)146 598 y(Uni)n(v)o(ersity)
+f(Of)i(Alberta)146 697 y(Edmonton,)e(AB)j(T6G)e(2H1)146
+797 y(Canada)146 897 y(\(403\))h(492-3851)1781 1117 y
+Fs(Abstract)380 1293 y Fr(Most)30 b(parallel)i(game-tree)f(search)g
+(approaches)i(use)d(synchronous)k(methods,)e(where)e(the)h(w)o(ork)e
+(is)244 1406 y(concentrated)j(within)d(a)f(speci\002c)h(part)h(of)e
+(the)h(tree,)h(or)e(at)g(a)g(gi)n(v)o(en)h(search)h(depth.)45
+b(This)28 b(article)i(sho)n(ws)244 1519 y(that)19 b(asynchronous)k
+(game-tree)d(search)g(algorithms)h(can)e(be)g(as)g(ef)n(\002cient)h(as)
+e(or)h(better)h(than)g(synchronous)244 1632 y(methods)25
+b(in)e(determining)j(the)e(minimax)g(v)n(alue.)380 1745
+y(APHID,)f(a)h(ne)n(w)g(asynchronous)29 b(parallel)e(game-tree)f
+(search)g(algorithm,)g(is)f(presented.)35 b(APHID)22
+b(is)244 1857 y(implemented)j(as)e(a)g(freely-a)n(v)n(ailable)28
+b(portable)e(library)-6 b(,)24 b(making)g(the)g(algorithm)h(easy)f(to)f
+(inte)o(grate)j(into)244 1970 y(a)i(sequential)k(game-tree)e(searching)
+h(program.)45 b(APHID)27 b(has)i(been)g(added)h(to)f(four)g(programs)i
+(written)244 2083 y(by)d(dif)n(ferent)h(authors.)43 b(APHID)26
+b(yields)j(better)g(speedups)h(than)f(synchronous)i(search)e(methods)g
+(for)f(an)244 2196 y(Othello)c(and)g(a)f(check)o(ers)j(program,)f(and)f
+(comparable)h(speedups)h(on)e(tw)o(o)f(chess)i(programs.)146
+2495 y Fu(K)n(e)o(yw)o(ords:)k(parallel)c(search,)g(alpha-beta,)g
+(computer)f(games,)g(heuristic)g(search.)p eop
+%%Page: 3 3
+3 2 bop 146 100 a Ft(List)25 b(of)g(Symbols:)146 299
+y Fq(\013)q(\014)6 b Fu(:)30 b(alpha,)25 b(beta)146 498
+y Fq(d)p Fu(:)31 b(dee)146 697 y Fq(d)197 661 y Fp(0)220
+697 y Fu(:)g(dee)25 b(prime)p eop
+%%Page: 1 4
+1 3 bop 0 100 a Fo(1)143 b(Intr)m(oduction)0 402 y Fu(Making)21
+b(computers)g(play)g(games)g(in)g(a)h(skillful)e(manner)l(,)i
+(comparable)g(to)f(that)h(of)f(a)h(strong)f(human)g(player)l(,)i(is)0
+601 y(a)e(challenging)g(problem)f(that)h(has)g(attracted)g(the)g
+(attention)f(of)h(man)o(y)f(computer)h(scientists)e(o)o(v)o(er)h(the)h
+(last)g(\002fty)0 800 y(years.)30 b(T)-8 b(w)o(o-player)22
+b(zero-sum)g(games)f(with)g(perfect)i(information,)e(such)h(as)g
+(chess,)g(Othello)3301 764 y Fn(1)3362 800 y Fu(and)g(check)o(ers,)0
+1000 y(are)32 b(programmed)f(using)g(the)g(same)h(basic)g(techniques.)
+50 b(The)32 b Fq(\013)q(\014)37 b Fu(algorithm)30 b([9])i(is)f(used)h
+(to)f(e)o(xhausti)n(v)o(ely)0 1199 y(search)c(v)n(ariations)d(that)i
+(are)g Fq(d)g Fu(mo)o(v)o(es)e(deep)i(in)g(a)g(depth-\002rst)g(manner)g
+(to)g(determine)f(the)h(best)f(mo)o(v)o(e)g(and)h(its)0
+1398 y(v)n(alue.)k(A)25 b(lar)n(ge)g(hash)g(table,)g(called)f(the)h
+Fm(tr)o(ansposition)c(table)k Fu([5],)g(is)f(used)h(to)f(store)h(pre)n
+(viously)e(determined)0 1598 y(best)31 b(mo)o(v)o(es)e(and)i(v)n(alues)
+g(for)g(positions.)48 b(The)31 b(v)n(alues)f(from)h(this)f(table)h(are)
+h(re-used)f(during)g(the)g(search)g(to)0 1797 y(pre)n(v)o(ent)24
+b(the)g(same)h(position)e(from)i(being)f(e)o(xplored)g(twice.)146
+1996 y(Instead)31 b(of)h(immediately)d(searching)i(a)h(v)n(ariation)e
+Fq(d)h Fu(mo)o(v)o(es)e(deep)j(\(or)f Fq(d)g Fm(ply)p
+Fu(\),)i(most)d(programs)h(search)0 2195 y(to)c(1)g(ply)-6
+b(,)27 b(then)f(to)h(2)g(ply)-6 b(,)27 b Fm(et)g(ceter)o(a)p
+Fu(.)38 b(This)26 b(technique)h(is)g(kno)n(wn)f(as)h
+Fm(iter)o(ative)f(deepening)h Fu([16)o(],)h(and)g(is)e(used)0
+2395 y(to)i(acquire)g(mo)o(v)o(e-ordering)f(information)f(in)i(the)g
+(transposition)e(table.)41 b(The)28 b(best)g(mo)o(v)o(e)e(for)j(a)f
+Fl(\()p Fq(d)d Fk(\000)g Fl(1\))p Fu(-ply)0 2594 y(search)30
+b(is)f(lik)o(ely)f(to)h(be)g(the)g(best)g(mo)o(v)o(e)f(for)h(a)h
+Fq(d)p Fu(-ply)e(search,)j(and)e(the)g Fq(\013)q(\014)35
+b Fu(algorithm)28 b(will)g(b)n(uild)g(a)i(smaller)0 2793
+y(search)25 b(tree)h(\(by)e(eliminating,)f(or)i(cutting-of)n(f,)e
+(irrele)n(v)n(ant)h(subtrees\))h(if)f(the)h(best)f(mo)o(v)o(e)g(is)g
+(searched)h(\002rst.)146 2992 y(A)f(game-playing)f(program)g(that)h
+(can)g(out-search)g(its)f(opponent)g(has)g(a)i(high)e(probability)f(of)
+i(winning.)29 b(It)0 3192 y(has)23 b(been)g(sho)n(wn)f(that)h(there)g
+(is)g(a)g(strong)f(correlation)h(between)g(the)g(search)h(depth)e(and)h
+(the)g(relati)n(v)o(e)f(strength)0 3391 y(of)j(chess,)f(Othello)g(and)h
+(check)o(ers)g(programs)f([8].)31 b(Thus,)24 b(programs)g(are)h(de)n(v)
+o(eloped)e(to)i(search)g(as)g(deeply)f(as)0 3590 y(possible)f(while)i
+(staying)e(within)h(the)h(time)f(constraints)f(imposed)h(by)g(the)h
+(rules)g(of)f(the)h(game.)146 3789 y(When)c(using)f(parallelism)f(to)h
+(search)i(game)e(trees)h(deeper)l(,)h(almost)d(all)i(of)f(the)h
+(research)g(has)g(concentrated)0 3989 y(on)32 b(synchronous)e(parallel)
+i(search)g(algorithms.)50 b(These)32 b(algorithms)e(force)j(w)o(ork)f
+(on)f(one)h(part)g(of)g(the)g(tree)0 4188 y(to)c(be)g(completed)g
+(before)g(w)o(ork)h(on)f(the)g(rest)g(of)g(the)g(tree)h(can)g(be)f
+(carried)h(out.)40 b(There)29 b(are)g(global)e(synchro-)0
+4387 y(nization)j(points)g(during)g(the)h(search)h(that)e(all)h
+(processors)g(must)f(reach)i(before)f(an)o(y)g(process)g(is)f(allo)n
+(wed)g(to)0 4586 y(proceed.)j(In)25 b(some)g(synchronous)f(algorithms,)
+g(the)h(w)o(ork)g(is)g(synchronized)g(at)g(e)n(v)o(ery)g(choice)h
+(along)e(the)i(hy-)0 4786 y(pothesized)i(best-mo)o(v)o(e)e(sequence,)k
+(commonly)c(kno)n(wn)h(as)i(the)f(principal)g(v)n(ariation.)40
+b(In)29 b(all)f(synchronized)0 4985 y(algorithms,)23
+b(the)i(w)o(ork)f(is)h(synchronized)f(at)h(the)g(root)f(of)h(the)g
+(tree)g(between)g(steps)f(of)h(iterati)n(v)o(e)f(deepening;)g(a)p
+0 5074 1560 4 v 112 5136 a Fj(1)149 5166 y Fi(Othello)c(is)h(a)g(re)o
+(gistered)e(trademark)f(of)i(Tsukuda)f(Original,)g(licensed)h(by)g
+(Anjar)f(Co.)1925 5589 y Fu(1)p eop
+%%Page: 2 5
+2 4 bop 0 100 a Fu(complete)24 b Fq(d)p Fu(-ply)g(search)i(must)d(be)i
+(\002nished)g(before)g(the)g Fl(\()p Fq(d)c Fl(+)h(1\))p
+Fu(-ply)j(search)g(can)g(be)o(gin.)146 299 y(The)33 b(adv)n(antage)f
+(of)h(the)f(synchronous)f(approaches)i(is)f(that)g(the)o(y)g(can)h(use)
+f(the)h(v)n(alue)f(of)g(the)h(principal)0 498 y(v)n(ariation)19
+b(in)h(the)h(same)f(w)o(ay)g(as)h(the)f(sequential)g(search)h
+(algorithm)e(does.)29 b(Synchronous)19 b(parallel)i(algorithms)0
+697 y(are)32 b(successful)e(at)h(k)o(eeping)f(the)h(size)f(of)h(the)g
+(search)g(tree)h(b)n(uilt)d(close)i(to)f(the)h(sequential)f(search)h
+(tree)g(size,)0 897 y(assuming)d(that)h(processors)g(are)i(able)e(to)g
+(share)h(transposition)e(table)h(information)f(in)h(an)h(ef)n
+(\002cient)g(manner)-5 b(.)0 1096 y(Ho)n(we)n(v)o(er)l(,)23
+b(there)j(are)f(fundamental)f(problems)g(with)g(synchronous)f(parallel)
+i Fq(\013)q(\014)30 b Fu(search)c(algorithms:)120 1347
+y(1.)49 b(There)28 b(are)g(man)o(y)e(times)h(when)g(there)h(is)f(insuf)
+n(\002cient)f(parallelism)g(to)h(k)o(eep)h(all)f(the)g(processors)g(b)n
+(usy)-6 b(.)244 1546 y(If)29 b(there)f(are)i(more)e(processors)g(than)g
+(w)o(ork)g(granules)h(at)f(a)h(synchronization)e(point,)h(then)g(some)g
+(pro-)244 1746 y(cessors)23 b(must)g(go)g(idle.)30 b(This)23
+b(idle)g(time)g(increases)h(in)f(magnitude)f(\(and)i(signi\002cance\))g
+(as)f(the)h(number)244 1945 y(of)35 b(processors)f(increases.)61
+b(This)35 b(problem)f(is)g(e)o(xacerbated)h(in)g(games)f(that)g(ha)n(v)
+o(e)h(a)g(small)f(a)n(v)o(erage)244 2144 y(number)24
+b(of)h(mo)o(v)o(e)e(choices.)120 2412 y(2.)49 b(The)o(y)33
+b(require)i(an)f(ef)n(\002cient)h(implementation)c(of)k(a)f(shared)h
+(transposition)d(table)i(between)g(the)g(pro-)244 2612
+y(cesses)24 b(to)f(achie)n(v)o(e)g(high)f(performance.)31
+b(T)-8 b(ypically)i(,)22 b(the)i(algorithms)e(will)g(e)o(xhibit)g(poor)
+i(performance)244 2811 y(without)19 b(such)i(a)g(table,)g(since)g(each)
+h(processor')-5 b(s)20 b(search)h(results)f(must)g(be)h(made)g(a)n(v)n
+(ailable)f(to)h(all)f(other)244 3010 y(processes.)37
+b(Because)28 b(of)f(this,)g(most)e(synchronous)h(algorithms)f(are)j
+(tested)f(on)f(shared)h(memory)g(sys-)244 3209 y(tems.)45
+b(On)29 b(distrib)n(uted)g(memory)f(systems,)i(sharing)f(a)h(table)g
+(is)f(not)g(as)h(ef)n(\002cient,)h(and)f(the)g(speedups)244
+3409 y(portrayed)25 b(in)f(the)h(literature)f(for)h(shared)g(memory)f
+(systems)g(are)h(not)f(achie)n(v)n(able.)120 3677 y(3.)49
+b(Man)o(y)25 b(synchronous)f(algorithms)g(attempt)h(to)g(initiate)g
+(parallelism)f(at)i(nodes)f(which)g(are)i(better)e(done)244
+3876 y(sequentially)-6 b(.)59 b(F)o(or)35 b(e)o(xample,)h(ha)n(ving)e
+(searched)h(the)g(\002rst)g(branch)g(at)g(a)g(node)g(and)g(not)f(achie)
+n(v)o(ed)g(a)244 4075 y(cut-of)n(f,)40 b(the)d(remaining)f(branches)i
+(are)g(usually)e(searched)h(in)g(parallel.)68 b(Ho)n(we)n(v)o(er)l(,)39
+b(if)e(the)g(second)244 4275 y(branch)26 b(causes)f(a)h(cut-of)n(f,)f
+(then)g(all)h(of)f(the)h(w)o(ork)f(done)g(on)g(the)h(third)f(and)g
+(subsequent)f(branches)i(w)o(as)244 4474 y(unnecessary)-6
+b(.)38 b(This)26 b(suggests)g(that)h(parallelism)f(should)g(only)h(be)g
+(initiated)f(at)h(nodes)g(where)h(there)g(is)244 4673
+y(a)d(high)f(probability)f(that)i(all)f(branches)h(must)f(be)h
+(considered.)120 4941 y(4.)49 b(Man)o(y)21 b(of)h(the)f(synchronous)g
+(algorithms)f(do)i(not)f(inte)o(grate)g(well)h(into)f(typical)g
+(sequential)g(algorithms.)244 5141 y(This)h(causes)h(man)o(y)f(changes)
+h(to)g(the)f(main)h(search)g(algorithm)f(to)g(incorporate)h
+(parallelism.)29 b(This)22 b(will)244 5340 y(lik)o(ely)i(result)g(in)g
+(a)i(parallel)e(program)h(for)g(which)f(it)g(is)h(dif)n(\002cult)f(to)g
+(v)o(erify)g(its)h(correctness.)1925 5589 y(2)p eop
+%%Page: 3 6
+3 5 bop 146 100 a Fu(In)28 b(other)e(w)o(ork,)i(a)f(theoretical)g
+(model)f(w)o(as)h(de)n(v)o(eloped)f(for)i(comparing)e(a)h(typical)g
+(synchronous)f(game-)0 299 y(tree)31 b(search)g(algorithm)e(to)h(an)g
+(asynchronous)g(one)g([2].)48 b(The)30 b(theoretical)g(results)g
+(indicated)g(that)g(an)g(asyn-)0 498 y(chronous)22 b(algorithm)f(could)
+i(outperform)f(a)h(synchronous)f(algorithm)f(on)h(game)h(trees)g
+(similar)e(to)i(those)f(seen)0 697 y(in)j(practice.)34
+b(This)25 b(paper)h(sho)n(ws)f(that)g(it)g(is)g(possible)g(for)h
+(asynchronous)e(search)i(algorithms)e(to)i(outperform)0
+897 y(their)f(synchronous)e(counterparts)h(in)h(practice.)146
+1096 y(The)g(paper')-5 b(s)25 b(major)f(contrib)n(utions)f(include:)120
+1365 y(1.)49 b(The)36 b(APHID)g(\(Asynchronous)f(P)o(arallel)h
+(Hierarchical)h(Iterati)n(v)o(e)e(Deepening\))h(algorithm)e(is)i
+(intro-)244 1564 y(duced)19 b(that)f(addresses)h(the)f(pre)n(viously)f
+(mentioned)h(problems.)28 b(First,)19 b(the)g(algorithm)e(is)i
+(asynchronous)244 1764 y(in)k(nature;)h(it)f(remo)o(v)o(es)f(all)h
+(global)f(synchronization)g(points)h(from)g(the)g Fq(\013)q(\014)29
+b Fu(search)24 b(and)f(from)h(iterati)n(v)o(e)244 1963
+y(deepening.)62 b(Second,)38 b(the)d(algorithm)f(does)h(not)g(require)h
+(a)f(shared)h(transposition)d(table)i(for)h(mo)o(v)o(e)244
+2162 y(ordering)22 b(information.)28 b(Third,)23 b(parallelism)e(is)h
+(only)f(applied)h(at)g(nodes)g(that)g(ha)n(v)o(e)g(a)h(high)f
+(probability)244 2361 y(of)j(needing)f(parallelism.)120
+2634 y(2.)49 b(APHID)25 b(has)g(been)g(designed)f(to)g(conform)h(to)f
+(the)h(structure)f(of)h(the)g(sequential)f Fq(\013)q(\014)6
+b Fu(-based)24 b(game-tree)244 2833 y(search)35 b(algorithm.)57
+b(Consequently)-6 b(,)35 b(parallelism)e(can)i(be)f(added)g(to)g(an)g
+(e)o(xisting)f(application)g(with)244 3033 y(minimal)d(ef)n(fort.)50
+b(APHID)32 b(has)g(been)g(programmed)e(as)i(an)g
+(application-independent)d(and)j(portable)244 3232 y(library)-6
+b(.)529 3196 y Fn(2)624 3232 y Fu(This)33 b(w)o(as)g(used)g(to)g
+(generate)h(all)f(of)h(the)f(parallel)g(applications)f(reported)i(in)f
+(this)f(article.)244 3431 y(Each)25 b(of)g(the)g(implementations)e
+(took)h(less)h(than)g(a)g(day)g(of)h(programming)d(time)i(to)f(achie)n
+(v)o(e)h(a)g(parallel)244 3630 y(program)k(that)g(e)o(x)o(ecuted)f(in)h
+(the)h(same)f(w)o(ay)g(as)h(the)f(sequential)f(program,)i(and)g(a)f(fe)
+n(w)h(days)f(of)g(addi-)244 3830 y(tional)i(tuning)g(to)h(achie)n(v)o
+(e)g(the)g(reported)g(speedups.)53 b(In)32 b(contrast,)i(adding)e(a)g
+(synchronous)f(parallel)244 4029 y(algorithm)23 b(to)i(an)g(e)o
+(xisting)e(sequential)g(algorithm)h(may)g(tak)o(e)h(months)e(of)i(w)o
+(ork.)120 4302 y(3.)49 b(APHID')-5 b(s)31 b(performance)h(for)g(four)f
+(game-playing)f(programs)h(is)g(presented.)50 b(APHID)32
+b(yields)e(better)244 4501 y(speedups)38 b(than)h(synchronous)f(search)
+h(methods)f(for)h(an)g(Othello)f(and)h(a)g(check)o(ers)h(program,)i
+(and)244 4700 y(comparable)25 b(speedups)f(on)g(tw)o(o)h(chess)f
+(programs.)146 4969 y(Section)37 b(2)g(gi)n(v)o(es)e(a)j(brief)f(surv)o
+(e)o(y)e(of)i(rele)n(v)n(ant)f(parallel)h(search)g(methods.)66
+b(Section)37 b(3)g(describes)f(the)0 5169 y(APHID)26
+b(algorithm)e(in)i(detail,)f(along)g(with)g(an)h(illustrati)n(v)o(e)d
+(e)o(xample)i(of)g(ho)n(w)g(to)g(add)h(APHID)g(into)f(e)o(xisting)p
+0 5249 1560 4 v 112 5310 a Fj(2)149 5340 y Fi(It)c(is)g(freely)e(a)n(v)
+n(ailable)h(at)h Fh(http://www.cs.ualberta.ca/\230games/a)o(phid/)p
+Fi(.)1925 5589 y Fu(3)p eop
+%%Page: 4 7
+4 6 bop 0 100 a Fu(sequential)28 b(game-tree)i(search)g(code.)45
+b(Section)29 b(4)g(sho)n(ws)f(the)i(e)o(xperimental)e(results)g(of)i
+(adding)f(APHID)g(to)0 299 y(four)c(applications.)k(Section)c(5)g
+(summarizes)e(this)h(paper)-5 b(.)0 637 y Fo(2)143 b(Pr)m(e)n(vious)34
+b(W)-11 b(ork)0 889 y Fg(2.1)119 b(The)30 b Ff(\013)q(\014)37
+b Fg(Algorithm)0 1156 y Fu(In)25 b(a)h(tw)o(o)e(player)i(zero-sum)f
+(game)f(with)h(perfect)g(information)f(and)h(a)h(\002nite)f(number)g
+(of)g(mo)o(v)o(es,)e(an)j(optimal)0 1355 y(strate)o(gy)g(can)h(be)g
+(determined)f(by)h(the)f(minimax)g(algorithm.)35 b(In)27
+b(general,)g(minimax)f(is)g(a)h(depth-\002rst)g(search)0
+1554 y(of)h(a)h(game)f(tree.)41 b(Each)29 b(node)f(represents)g(a)g
+(position,)g(and)g(the)g(links)f(between)h(nodes)g(represent)h(the)f
+(mo)o(v)o(e)0 1753 y(required)k(to)f(reach)h(the)g(ne)o(xt)e(position.)
+50 b(The)31 b(player)h(to)f(mo)o(v)o(e)f(alternates)h(at)h(each)g(le)n
+(v)o(el)f(of)g(the)h(tree.)51 b(The)0 1953 y(e)n(v)n(aluation)18
+b(of)i(each)h(leaf)g(node)f(in)f(the)h(search)h(is)f(based)g(on)f(an)i
+(approximation)d(of)i(whether)g(the)g(\002rst)g(player)h(is)0
+2152 y(going)f(to)h(win)g(the)h(game)e(\(heuristic)h(e)n(v)n(aluation)f
+(function\).)29 b(Whene)n(v)o(er)21 b(the)g(\002rst)g(player)h(mo)o(v)o
+(es,)e(he)i(chooses)0 2351 y(a)i(mo)o(v)o(e)f(to)g(maximize)g(his)h(e)n
+(v)n(aluation)e(\(so-called)h(Max)h(nodes)g(in)f(the)h(search)g
+(tree\).)31 b(Con)l(v)o(ersely)-6 b(,)23 b(when)h(the)0
+2550 y(second)i(player)g(has)h(to)f(mo)o(v)o(e)e(at)j(a)f(node,)h(he)f
+(will)g(choose)g(the)g(mo)o(v)o(e)f(that)h(minimizes)e(the)i(e)n(v)n
+(aluation)f(\(Min)0 2750 y(nodes\).)146 2949 y(Although)c(the)h(tree)g
+(is)g(\002nite,)g(it)g(can)g(get)g(quite)f(lar)n(ge.)30
+b(T)-8 b(o)22 b(search)h(a)f(tree)h(of)f(depth)f Fq(d)h
+Fu(and)g(with)f Fq(b)i Fu(branches)0 3148 y(at)35 b(e)n(v)o(ery)g
+(node,)j Fq(b)658 3112 y Fe(d)735 3148 y Fu(nodes)c(w)o(ould)h(be)h(e)n
+(v)n(aluated.)61 b(F)o(ortunately)-6 b(,)37 b(there)e(are)h
+(straightforw)o(ard)f(\223bounding\224)0 3347 y(techniques)e(that)g
+(can)h(pro)o(v)o(e)e(some)h(e)n(v)n(aluations)e(are)k(irrele)n(v)n
+(ant.)55 b(The)34 b(most)e(popular)h(of)h(these)f(is)g(the)h
+Fq(\013)q(\014)0 3547 y Fu(algorithm,)23 b(gi)n(v)o(en)h(in)g(Figure)h
+(1.)146 3746 y(The)k Fq(\013)q(\014)35 b Fu(algorithm)27
+b(only)h(considers)h(nodes)f(that)h(are)g(rele)n(v)n(ant)f(to)h(the)g
+(search)g(windo)n(w)f([)p Fq(\013)q Fu(,)i Fq(\014)6
+b Fu(].)43 b Fq(\013)30 b Fu(rep-)0 3945 y(resents)g(the)f(best)h(v)n
+(alue)f(that)h(the)g(side)f(to)h(mo)o(v)o(e)e(can)i(achie)n(v)o(e)g
+(thus)f(f)o(ar)h(in)g(the)g(search.)46 b(Additional)29
+b(search)0 4144 y(at)i(this)g(node)g(is)f(intended)h(to)g(\002nd)g(mo)o
+(v)o(es)e(that)i(impro)o(v)o(e)f(this)g(lo)n(wer)h(bound)f(\(i.e.)50
+b(ha)n(v)o(e)31 b(a)g(v)n(alue)g Fq(>)40 b(\013)q Fu(\).)49
+b Fq(\014)0 4344 y Fu(is)26 b(the)f(best)h(that)g(the)f(player)i(to)e
+(mo)o(v)o(e)g(can)h(achie)n(v)o(e)f(or)l(,)i(con)l(v)o(ersely)-6
+b(,)25 b(the)h(smallest)e(v)n(alue)i(that)f(the)h(opponent)0
+4543 y(can)35 b(pro)o(v)n(ably)e(restrict)h(the)g(side)h(to)f(mo)o(v)o
+(e)f(to.)59 b(When)35 b Fq(\013)46 b Fk(\025)g Fq(\014)6
+b Fu(,)37 b(no)d(additional)f(search)j(is)e(needed)g(at)h(this)0
+4742 y(node)c(\(a)g Fm(cut-of)n(f)f Fu(occurs\).)49 b(In)31
+b(ef)n(fect,)h(this)e Fm(prunes)g Fu(parts)g(of)h(the)g(tree)g(that)f
+(pro)o(v)n(ably)f(cannot)i(contrib)n(ute)e(to)0 4941
+y(the)c(minimax)e(v)n(alue.)30 b(It)25 b(has)g(been)g(sho)n(wn)f(that)g
+(the)h Fq(\013)q(\014)30 b Fu(algorithm)23 b(will)h(return)h(the)g
+(correct)g(minimax)f(v)n(alue)0 5141 y(if)30 b(the)g(root)f(position)f
+(is)h(searched)i(with)e Fq(\013)38 b Fl(=)f Fk(\0001)p
+Fu(,)31 b Fq(\014)43 b Fl(=)36 b(+)p Fk(1)30 b Fu([9].)46
+b(F)o(or)30 b(a)g(depth)f Fq(d)h Fu(tree)g(with)f Fq(b)i
+Fu(branches)0 5340 y(at)g(e)n(v)o(ery)f(node,)h Fq(\013)q(\014)36
+b Fu(has)31 b(the)g(potential)e(to)h(search)h(the)g(minimum)d(number)i
+(of)h(leaf)g(nodes)f(possible)g(to)g(de-)1925 5589 y(4)p
+eop
+%%Page: 5 8
+5 7 bop 818 0 a
+ 17879478 11840716 9275228 18879365 30917427 33154007 startTexFig
+ 818 0 a
+%%BeginDocument: pics/alphabeta-code.ps
+%Magnification: 1.00
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+79.5 561.5 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
+ 0.06000 0.06000 sc
+7.500 slw
+% Polyline
+n 1050 975 m 6500 975 l 6500 4550 l 1050 4550 l cp gs col-1 s gr
+/Courier ff 180.00 scf sf
+1500 3000 m
+gs 1 -1 sc (for\(i=1; i <= numOfSuccessors; i++\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+6000 1800 m
+gs 1 -1 sc (/* move counter */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+6000 2000 m
+gs 1 -1 sc (/* score returned by search */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2000 m
+gs 1 -1 sc (int sc;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 4400 m
+gs 1 -1 sc (} /* AlphaBeta */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 4000 m
+gs 1 -1 sc (return\(alpha\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 3800 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 3600 m
+gs 1 -1 sc (if \(alpha >= beta\) { return\(alpha\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 3400 m
+gs 1 -1 sc (alpha = max\(alpha, sc\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 3200 m
+gs 1 -1 sc (sc = -AlphaBeta\(p.succ[i],-beta,-alpha\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2800 m
+gs 1 -1 sc (numOfSuccessors = GenerateSuccessors\(p\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2400 m
+gs 1 -1 sc (if \(EndOfSearch\(p\)\) { return\(Evaluate\(p\)\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 1800 m
+gs 1 -1 sc (int i;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 1600 m
+gs 1 -1 sc (int numOfSuccessors;) col-1 sh gr
+/Courier ff 180.00 scf sf
+6000 1600 m
+gs 1 -1 sc (/* total moves */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 1200 m
+gs 1 -1 sc (int AlphaBeta\(position p, int alpha, int beta\) {) col-1 sh gr
+showpage
+$F2psEnd
+rs
+%%EndDocument
+
+ endTexFig
+ 836 1703 a Fu(Figure)25 b(1:)30 b(A)25 b(Ne)o(gamax)f(F)o(ormulation)f
+(of)h(the)h Fq(\013)q(\014)30 b Fu(Algorithm)0 1989 y(termine)24
+b(the)h(minimax)e(v)n(alue:)30 b Fq(b)1168 1952 y Fp(d)1209
+1925 y Fd(d)p 1210 1937 33 4 v 1211 1978 a Fc(2)1251
+1952 y Fp(e)1309 1989 y Fl(+)22 b Fq(b)1448 1952 y Fp(b)1489
+1925 y Fd(d)p 1489 1937 V 1490 1978 a Fc(2)1531 1952
+y Fp(c)1589 1989 y Fk(\000)g Fl(1)j Fu(\(assuming)e(that)h(there)h(are)
+h(no)e(transpositions)f(in)h(the)h(tree\).)0 2188 y(This)i(best)h(case)
+h(is)f(achie)n(v)o(ed)f(when)h(the)g(\223best\224)h(mo)o(v)o(e)d(is)i
+(considered)g(\002rst)g(at)g(all)g(nodes)g(in)g(the)g(search)h(tree)0
+2388 y(\(a)c(perfectly-ordered)h(tree\).)146 2587 y(There)e(is)f(a)g
+(portion)f(of)h(the)g Fq(\013)q(\014)29 b Fu(tree)23
+b(that)g(must)f(al)o(w)o(ays)h(be)g(searched)h(to)f(determine)f(the)h
+(minimax)f(v)n(alue.)0 2786 y(This)k Fm(critical)f(tr)l(ee)i
+Fu(is)f(de\002ned)h(as)g(the)g(perfectly-ordered)g(tree)g(that)f(is)g
+(generated)h(when)f Fq(\013)q(\014)32 b Fu(is)27 b(started)f(with)0
+2985 y(the)32 b(search)i(windo)n(w)d(\()p Fk(\0001)p
+Fu(,)p Fl(+)p Fk(1)p Fu(\).)54 b(Figure)33 b(2)g(sho)n(ws)e(the)h
+(structure)h(of)f(the)h(critical)f(tree.)55 b(Nodes)32
+b(mark)o(ed)0 3185 y(ALL)22 b(ha)n(v)o(e)g(all)g(of)g(their)g
+(successors)g(e)o(xplored)f(by)h Fq(\013)q(\014)6 b Fu(.)29
+b(Nodes)22 b(mark)o(ed)g(CUT)g(ha)n(v)o(e)g(at)g(least)g(one)g(branch)h
+(that)0 3384 y(can)32 b(cut)f(of)n(f)g(further)g(search)h(at)f(this)g
+(node.)50 b(In)31 b(the)g(critical)g(tree,)j(\002rst)d(mo)o(v)o(e)f
+(searched)i(at)f(all)g(CUT)h(nodes)0 3583 y(causes)23
+b(a)g(cut-of)n(f.)29 b(CUT)23 b(and)g(ALL)f(nodes)g(are)h(also)g(kno)n
+(wn)e(as)i(type-2)f(and)g(type-3)g(nodes,)h(respecti)n(v)o(ely)e([9].)
+146 3782 y(The)26 b(principal)f(v)n(ariation)g(\(type-1)h(nodes,)g
+(labeled)f(PV)i(in)e(Figure)h(2\))g(of)g(an)g Fq(\013)q(\014)32
+b Fu(critical)25 b(tree)i(is)e(the)h(\002rst)0 3982 y(\(left-most\))e
+(branch)g(searched.)32 b(All)24 b(of)g(the)h(PV)g(nodes)f(are)h
+(searched)g(with)f(the)g(windo)n(w)f(\()p Fk(\0001)p
+Fu(,)p Fl(+)p Fk(1)p Fu(\).)31 b(Thus,)0 4181 y(all)25
+b(children)f(at)h(PV)g(nodes)f(are)i(searched,)f(meaning)f(that)h(the)o
+(y)e(are)j(ef)n(fecti)n(v)o(ely)d(ALL)i(nodes.)0 4476
+y Fg(2.2)119 b(P)o(arallel)30 b Ff(\013)q(\014)7 b Fg(-based)30
+b(Sear)n(ch)h(Algorithms)0 4742 y Fu(The)h Fm(PV)-5 b(-Split)30
+b Fu(algorithm)h([13])h(is)g(based)g(on)f(the)h(re)o(gular)g(structure)
+g(of)g(the)g(critical)g(game)f(tree.)53 b(The)32 b(\002rst)0
+4941 y(stage)38 b(of)f(the)h(algorithm)e(in)l(v)n(olv)o(es)g(a)j
+(recursi)n(v)o(e)e(call)g(to)h(itself)f(as)h(PV)-10 b(-Split)37
+b(tra)n(v)o(els)g(do)n(wn)g(the)h(principal)0 5141 y(v)n(ariation.)28
+b(Once)20 b(the)f(left)h(subtree)f(of)h(a)g(PV)g(node)f(has)h(been)f(e)
+o(xamined,)h(all)f(of)h(the)f(other)h(subtrees)f(belo)n(w)g(that)0
+5340 y(PV)27 b(node)f(are)h(searched)f(in)g(parallel.)35
+b(Each)27 b(processor)f(is)f(gi)n(v)o(en)g(one)h(subtree)g(at)h(a)f
+(time)g(to)g(search,)h(without)1925 5589 y(5)p eop
+%%Page: 6 9
+6 8 bop 825 0 a
+ 17761071 11840716 5130977 18813583 31443681 36245749 startTexFig
+ 825 0 a
+%%BeginDocument: pics/candidacy2-4.ps
+
+/arrowHeight 10 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l b translate w h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+%I Idraw 10 Grid 4.98316 4.98316
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.799705 0 0 0.799705 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 174 230 ] concat
+%I
+200 443 200 353 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 174 230 ] concat
+%I
+200 443 349 353 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 174 230 ] concat
+%I
+200 443 50 353 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 174 230 ] concat
+%I
+50 353 5 263 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 174 230 ] concat
+%I
+50 353 110 263 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 174 230 ] concat
+%I
+50 353 65 263 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+109 263 65 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+109 263 109 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+109 263 154 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+169 263 199 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+214 263 244 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 174 50 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 174 65 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 174 79 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 174 57 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 174 72 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+109 174 102 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+154 174 147 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+199 174 184 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+199 174 192 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+199 174 199 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+199 174 207 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+199 174 214 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+244 174 229 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+236 129 244 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+244 174 244 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+244 174 251 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+244 174 259 129 Line
+%I 1
+End
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+304 443 15 15 Elli
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 150 0 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 0 -90 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -45 -180 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -89 -269 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 46 -269 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 90 -269 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+304 263 274 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+304 263 319 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+304 263 364 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 189 230 ] concat
+%I
+304 174 349 263 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 189 230 ] concat
+%I
+349 263 349 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 189 230 ] concat
+%I
+349 263 394 174 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+274 174 274 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+319 174 319 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+364 174 364 136 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 85 230 ] concat
+%I
+364 136 364 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 241 230 ] concat
+%I
+252 174 252 136 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 241 230 ] concat
+%I
+297 174 297 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 241 230 ] concat
+%I
+252 136 252 129 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 0 0 1 241 230 ] concat
+%I
+342 174 342 129 Line
+%I 1
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 224 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 226 230 ] concat
+%I
+148 353 163 263 Line
+%I 1
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 165 -180 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 226 230 ] concat
+%I
+297 353 312 263 Line
+%I 1
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 314 -180 ] concat
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+139 428 169 458 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 214 676 ] concat
+%I
+[
+(ALL)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 89 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 44 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 269 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 149 -180 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 104 -180 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 239 -90 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 388 -90 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 313 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 358 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 403 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 448 -269 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+%I p
+1 SetP
+%I t
+[ 1 -0 -0 1 70 230 ] concat
+%I
+65 443 14 15 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 124 678 ] concat
+%I
+[
+(CUT)
+] Text
+End
+
+End %I eop
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 339 684 ] concat
+%I
+[
+(PV)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 189 594 ] concat
+%I
+[
+(PV)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 144 504 ] concat
+%I
+[
+(PV)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 100 415 ] concat
+%I
+[
+(PV)
+] Text
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+
+ endTexFig
+ 1412 1703 a Fu(Figure)25 b(2:)30 b(The)25 b(Critical)g(T)m(ree)0
+1991 y(assistance)f(from)h(other)f(processors.)30 b(After)25
+b(all)g(of)f(the)h(subtrees)f(ha)n(v)o(e)g(been)h(completely)f(e)o
+(xplored,)f(that)i(PV)0 2190 y(node)32 b(returns)f(its)g(score)h(to)g
+(the)f(PV)h(node)g(abo)o(v)o(e)f(it.)51 b(At)31 b(an)o(y)g(time,)i
+(only)e(one)h(node')-5 b(s)31 b(subtrees)g(are)i(being)0
+2389 y(e)o(xamined)f(in)g(parallel.)54 b(The)32 b(major)g(problem)g
+(with)g(PV)-10 b(-Split)32 b(is)g(the)h(lar)n(ge)g(amount)e(of)i
+(synchronization;)0 2588 y(man)o(y)21 b(processors)h(are)h(often)f
+(forced)g(to)g(w)o(ait)g(for)g(long)f(periods)h(of)g(time)f(while)h
+(the)g(last)f(une)n(v)n(aluated)g(branch)0 2788 y(of)k(a)g(PV)g(node)g
+(is)f(\002nished.)146 2987 y(The)35 b(best)g(speedups)g(for)g(parallel)
+g Fq(\013)q(\014)40 b Fu(ha)n(v)o(e)35 b(been)g(reported)g(for)h(the)f
+Fm(Y)-9 b(oung)34 b(Br)l(other)o(s)g(W)-9 b(ait)34 b(Concept)0
+3186 y Fu(\(YBWC\))22 b(algorithm)d([3].)30 b(In)21 b(this)e(paper)l(,)
+j(YBWC)g(is)e(used)g(as)h(a)g(representati)n(v)o(e)f(of)h(a)g(lar)n(ge)
+g(group)f(of)h(popular)0 3385 y(synchronous)e(algorithms)f(\(including)
+h(ABD)l(AD)l(A)h([17],)h(Dynamic)f(T)m(ree)g(Splitting)e([7])j(and)f
+(Jamboree)g([11]\))0 3585 y(which)28 b(all)h(share)g(the)f(same)h
+(underlying)e(parallel)i(algorithm)e(and)i(dif)n(fer)f(only)g(in)h
+(implementation)d(details.)0 3784 y(All)38 b(of)h(these)g(algorithms)e
+(synchronize)i(at)f(the)h(end)g(of)g(each)g(iteration,)j(and)d(may)f
+(also)h(synchronize)f(at)0 3983 y(additional)23 b(points)h(within)f
+(each)j(iteration.)146 4182 y(In)32 b(a)g(game)f(tree)h(that)f(has)h
+(near)n(-perfect)h(mo)o(v)o(e)d(ordering,)j(there)f(is)f(a)h(high)f
+(probability)f(that)h(a)h(node)g(is)0 4382 y(an)c(ALL)g(node)g(if)g
+(the)g(left-most)f(branch)h(is)f(e)n(v)n(aluated)g(and)h(does)g(not)f
+(cause)i(a)f(cut-of)n(f.)40 b(The)28 b(basic)g(YBWC)0
+4581 y(states)j(that)h(the)g(left-most)e(branch)i(\(the)g(eldest)g
+(brother\))g(must)e(be)j(e)n(v)n(aluated)d(before)j(an)o(y)e(other)h
+(branches)0 4780 y(\(the)d(young)g(brothers\))g(can)h(be)f(distrib)n
+(uted)f(to)h(other)g(processors.)44 b(This)29 b(is)g(not)f(necessarily)
+h(limited)f(to)h(the)0 4979 y(principal)35 b(v)n(ariation)g(\(i.e.)65
+b(PV)-10 b(-Split\))37 b(or)f(a)g(pseudo-principal)f(v)n(ariation)g(as)
+h(in)g(other)g(algorithms;)k(it)c(can)0 5179 y(happen)g(at)f(an)o(y)g
+(node)h(within)e(the)i(game)f(tree.)64 b(The)36 b(optimized)e
+(algorithm)g(is)h(called)h(YBWC*.)64 b(In)36 b(this)1925
+5589 y(6)p eop
+%%Page: 7 10
+7 9 bop 0 100 a Fu(v)n(ariant,)27 b(young)f(brothers)h(are)g(not)g
+(forced)g(to)g(w)o(ait)g(at)g(ALL)g(nodes,)g(allo)n(wing)e(sequential)h
+(e)n(v)n(aluation)f(of)i(all)0 299 y(\223reasonable\224)e(mo)o(v)o(es)e
+(at)i(CUT)g(nodes.)146 498 y(The)h(UIDP)-9 b(ABS)26 b(algorithm)e(\()p
+Fm(Unsync)o(hr)l(onized)g(Iter)o(atively)g(Deepening)h(P)-8
+b(ar)o(allel)24 b(Alpha-Beta)g(Sear)l(c)o(h)p Fu(\))0
+697 y([14])29 b(w)o(as)h(the)f(\002rst)g(attempt)f(to)h(asynchronously)
+f(start)h(the)g(ne)o(xt)g(le)n(v)o(el)f(of)h(an)h(iterati)n(v)o(ely)d
+(deepened)j(search)0 897 y(instead)d(of)g(synchronizing)f(at)h(the)g
+(root)g(of)g(the)g(game)g(tree.)38 b(The)27 b(mo)o(v)o(es)f(from)h(the)
+g(root)g(position)e(are)j(parti-)0 1096 y(tioned)20 b(among)f(the)i
+(processors,)g(and)f(the)g(processors)h(search)g(their)f(o)n(wn)f
+(subset)h(of)h(the)f(mo)o(v)o(es)f(with)h(iterati)n(v)o(e)0
+1295 y(deepening.)29 b(Each)21 b(processor)f(is)g(gi)n(v)o(en)f(the)h
+(same)g(initial)f(search)i(windo)n(w)-6 b(,)20 b(b)n(ut)g(some)g(of)g
+(the)g(processors)g(may)0 1494 y(ha)n(v)o(e)26 b(changed)g(their)f
+(windo)n(ws)g(based)h(on)g(the)f(search)i(results)e(of)h(their)g(mo)o
+(v)o(es.)32 b(The)26 b(UIDP)-9 b(ABS)28 b(algorithm)0
+1694 y(combines)h(all)i(the)f(processors')g(results)g(once)g(a)h
+(predetermined)f(time)g(limit)e(has)j(been)f(reached.)49
+b(Some)30 b(of)0 1893 y(the)i(mo)o(v)o(es)e(may)i(ha)n(v)o(e)g(been)g
+(e)n(v)n(aluated)f(to)h(lar)n(ger)h(depths)e(than)h(those)f(on)h(other)
+g(processors,)i(which)d(may)0 2092 y(yield)e(a)h(better)f(quality)f(mo)
+o(v)o(e)g(choice.)45 b(Ho)n(we)n(v)o(er)l(,)29 b(it)g(is)g(important)f
+(to)h(note)g(that)g(each)h(mo)o(v)o(e)e(may)h(only)g(be)0
+2291 y(searched)23 b(by)g(one)f(processor;)h(thus,)g(the)f(algorithm)f
+(can)i(only)f(use)h(as)g(man)o(y)e(processors)i(as)f(there)h(are)h(mo)o
+(v)o(es)0 2491 y(at)h(the)f(root)h(of)g(the)f(game)h(tree.)0
+2830 y Fo(3)143 b(The)35 b(APHID)f(Algorithm)0 3133 y
+Fu(This)18 b(section)g(describes)h(the)g(Asynchronous)e(P)o(arallel)i
+(Hierarchical)g(Iterati)n(v)o(e)f(Deepening)g(\(APHID)3589
+3096 y Fn(3)3629 3133 y Fu(\))i(game-)0 3332 y(tree)29
+b(search)g(algorithm.)40 b(APHID)29 b(represents)g(a)g(departure)g
+(from)f(the)g(synchronous)f(algorithms)g(described)0
+3531 y(in)d(Section)g(2)g(and)g(has)g(been)h(designed)e(to)h(address)g
+(the)g(problems)f(described)h(in)g(Section)g(1.)30 b(First,)24
+b(the)g(algo-)0 3730 y(rithm)k(is)g(asynchronous)f(in)i(nature;)h(it)e
+(remo)o(v)o(es)f(all)i(global)e(synchronization)g(points)h(from)g(the)h
+Fq(\013)q(\014)34 b Fu(search)0 3930 y(and)28 b(from)f(iterati)n(v)o(e)
+f(deepening.)39 b(Second,)29 b(the)e(algorithm)g(does)g(not)g(require)h
+(a)g(shared)g(transposition)d(table)0 4129 y(for)h(mo)o(v)o(e)d
+(ordering)i(information,)f(although)g(one)h(can)h(be)f(used)g(if)h
+(duplicate)e(detection)h(is)g(important)e(in)i(the)0
+4328 y(underlying)33 b(application.)59 b(Third,)36 b(parallelism)e(is)g
+(only)f(applied)h(at)h(nodes)f(that)g(ha)n(v)o(e)g(a)h(high)f
+(probability)0 4527 y(of)g(needing)g(parallelism,)h(and)g(this)e
+(decision)g(is)h(based)g(on)g(the)g(best)g(information)f(a)n(v)n
+(ailable)h(at)g(the)g(time.)0 4727 y(Finally)-6 b(,)24
+b(APHID)h(is)f(designed)g(to)h(easily)f(\002t)h(into)f(an)h(e)o
+(xisting)e(sequential)h Fq(\013)q(\014)6 b Fu(-based)24
+b(search)h(algorithm.)146 4926 y(APHID)k(subdi)n(vides)d(the)j(tree)g
+(into)e(man)o(y)h(distinct)f(pieces)h(which)g(each)h(process)g(can)f
+(search)h(indepen-)p 0 5016 1560 4 v 112 5077 a Fj(3)149
+5107 y Fi(An)d(aphid)e(is)i(a)f(soft-bodied)e(insect)i(that)g(sucks)g
+(the)h(sap)f(from)f(plants.)39 b(One)25 b(could)f(say)i(the)f(APHID)g
+(algorithm)e(sucks)j(the)0 5206 y(minimax)19 b(v)n(alue)g(from)h(a)g
+(game)f(tree.)1925 5589 y Fu(7)p eop
+%%Page: 8 11
+8 10 bop 992 0 a
+ 15132435 7104430 4670504 18813583 35522150 33285570 startTexFig
+ 992 0 a
+%%BeginDocument: pics/aphid-partition.ps
+%Magnification: 1.00
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+34.5 576.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc 0 0 1 startangle endangle arc
+ closepath
+ savematrix setmatrix
+ } def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
+ 0.06000 0.06000 sc
+60.000 slw
+% Polyline
+n 2775 3075 m 2925 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 2775 2925 m 2925 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3000 3075 m 3150 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3000 2925 m 3150 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3225 3075 m 3375 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3225 2925 m 3375 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3450 3075 m 3600 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3450 2925 m 3600 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5175 3075 m 5325 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5175 2925 m 5325 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5400 3075 m 5550 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5400 2925 m 5550 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5625 3075 m 5775 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5625 2925 m 5775 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5850 3075 m 6000 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 5850 2925 m 6000 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 6075 3075 m 6225 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 6075 2925 m 6225 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4425 3075 m 4575 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4425 2925 m 4575 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4200 3075 m 4350 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4200 2925 m 4350 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3975 3075 m 4125 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3975 2925 m 4125 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3750 3075 m 3900 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 3750 2925 m 3900 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4875 3075 m 5025 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4875 2925 m 5025 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4650 3075 m 4800 2925 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 4650 2925 m 4800 3075 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 675 1425 m 825 1275 l gs 1.00 setgray ef gr gs col-1 s gr
+% Polyline
+n 675 1275 m 825 1425 l gs 1.00 setgray ef gr gs col-1 s gr
+7.500 slw
+% Ellipse
+n 5400 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
+
+% Ellipse
+n 5175 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
+
+% Ellipse
+n 4950 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
+
+15.000 slw
+% Polyline
+n 3675 3000 m 3075 4800 l gs col-1 s gr
+7.500 slw
+% Polyline
+n 4626 3004 m 4926 4804 l gs col-1 s gr
+15.000 slw
+% Polyline
+n 4626 3004 m 4926 4804 l gs col-1 s gr
+7.500 slw
+% Polyline
+n 2700 3000 m 6300 3000 l gs col-1 s gr
+30.000 slw
+% Polyline
+gs clippath
+8430 4599 m 8400 4719 l 8370 4599 l 8370 4845 l 8430 4845 l cp clip
+8370 1401 m 8400 1281 l 8430 1401 l 8430 1155 l 8370 1155 l cp clip
+n 8400 1200 m 8400 4800 l gs 1.00 setgray ef gr gs col-1 s gr gr
+
+% arrowhead
+n 8370 1401 m 8400 1281 l 8430 1401 l col-1 s
+% arrowhead
+n 8430 4599 m 8400 4719 l 8370 4599 l col-1 s
+% Polyline
+gs clippath
+7830 2799 m 7800 2919 l 7770 2799 l 7770 3045 l 7830 3045 l cp clip
+7770 1401 m 7800 1281 l 7830 1401 l 7830 1155 l 7770 1155 l cp clip
+n 7800 1200 m 7800 3000 l gs 1.00 setgray ef gr gs col-1 s gr gr
+
+% arrowhead
+n 7770 1401 m 7800 1281 l 7830 1401 l col-1 s
+% arrowhead
+n 7830 2799 m 7800 2919 l 7770 2799 l col-1 s
+15.000 slw
+% Polyline
+n 4500 1200 m 900 4800 l 8100 4800 l 4500 1200 l gs col-1 s gr
+% Polyline
+n 5100 3000 m 6000 4800 l gs col-1 s gr
+/Helvetica ff 270.00 scf sf
+4500 2400 m
+gs 1 -1 sc (MASTER) dup sw pop 2 div neg 0 rm col-1 sh gr
+/Helvetica ff 270.00 scf sf
+2400 4200 m
+gs 1 -1 sc (SLAVE 1) dup sw pop 2 div neg 0 rm col-1 sh gr
+/Helvetica ff 270.00 scf sf
+6450 4200 m
+gs 1 -1 sc (SLAVE K) dup sw pop 2 div neg 0 rm col-1 sh gr
+/Helvetica ff 270.00 scf sf
+4050 4200 m
+gs 1 -1 sc (SLAVE 2) dup sw pop 2 div neg 0 rm col-1 sh gr
+/Helvetica ff 270.00 scf sf
+900 1425 m
+gs 1 -1 sc (= PIECE OF WORK) col-1 sh gr
+/Helvetica ff 270.00 scf sf
+7500 2100 m
+gs 1 -1 sc (d') col-1 sh gr
+/Helvetica ff 270.00 scf sf
+8175 3150 m
+gs 1 -1 sc (d) col-1 sh gr
+showpage
+$F2psEnd
+rs
+%%EndDocument
+
+ endTexFig
+ 720 1103 a Fu(Figure)25 b(3:)30 b(APHID)25 b(P)o(artitioning)e(Game)i
+(T)m(ree)g(Amongst)e(Processes)888 1225 y
+ 16766447 9472573 9669918 31246336 22892052 38679674 startTexFig
+ 888 1225 a
+%%BeginDocument: pics/location_parallelism.ps
+
+/arrowHeight 10 def
+/arrowWidth 5 def
+
+/IdrawDict 52 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Times-Roman reencodeISO def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l b translate w h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+%I Idraw 10 Grid 3 3
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.799705 0 0 0.799705 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+117 437 65 332 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+117 437 162 332 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 271 296 ] concat
+%I
+117 437 65 332 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 271 296 ] concat
+%I
+117 437 162 332 Line
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
+Times-Roman 12 SetF
+%I t
+[ 1 0 0 1 217 609 ] concat
+%I
+[
+(APHID)
+] Text
+End
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 26.5 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 30.5 123 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 33.5 123 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 37.5 123 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 42 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 45 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 49 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 52.5 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 56 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 60 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 22.5 123.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 159 96 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 162.5 104 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 166 110.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 170.5 118.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 174 126.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 177 134 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 181 141 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 185 149 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 188.5 156 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 191.5 164 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 156 88.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 151.5 80 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 148 72.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 192 149 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 195.5 149 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 198.5 149 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 191 135 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 195 135 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 199 135 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 203.5 135 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 187 141 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 190 141 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 181 126.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 185 126.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 189 127 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 188.5 118.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 192.5 118.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 196.5 118.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 204.5 118.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 178 110.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 199 110.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 213.5 111 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 184 96 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 208 95.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 194 156 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 272 76 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 122 296 ] concat
+%I
+72 268 76 272 Line
+%I 1
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -36.5 92.5 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+100 84 116 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+116 100 132 84 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+132 84 148 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+148 116 164 84 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+164 84 180 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+180 116 196 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+196 100 212 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+212 116 228 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+228 116 244 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+244 100 260 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+260 116 276 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+276 100 292 84 Line
+%I 2
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 112.5 93 ] concat
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+100 84 116 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+116 100 132 84 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+132 84 148 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+148 116 164 84 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+164 84 180 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+180 116 196 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+196 100 212 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+212 116 228 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+228 116 244 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+244 100 260 116 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+260 116 276 100 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 174 494 ] concat
+%I
+276 100 292 84 Line
+%I 2
+End
+
+End %I eop
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 226 494 ] concat
+%I
+136 476 160 476 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 244 596 ] concat
+%I
+136 272 160 272 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 226 497 ] concat
+%I
+136 296 160 296 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 244 554 ] concat
+%I
+136 272 160 272 Line
+%I 2
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 297 692 ] concat
+%I
+[
+(d)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 313.5 716 ] concat
+%I
+[
+(d')
+] Text
+End
+
+Begin %I Line
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 200 494 ] concat
+%I
+200 374 200 308 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 200 494 ] concat
+%I
+200 404 200 470 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 200 494 ] concat
+%I
+236 452 236 470 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 200 494 ] concat
+%I
+236 422 236 398 Line
+%I 2
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
+Times-Roman 12 SetF
+%I t
+[ 1 0 0 1 367 609 ] concat
+%I
+[
+(YBWC*)
+] Text
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+
+ endTexFig
+ 491 2628 a Fu(Figure)i(4:)30 b(Location)24 b(of)h(P)o(arallelism)f(in)
+g(T)-8 b(ypical)25 b(APHID)g(and)g(YBWC*)g(Search)0 2915
+y(dently)j(of)g(each)h(other)-5 b(.)41 b(Figure)29 b(3)f(gi)n(v)o(es)f
+(an)i(e)o(xample)f(of)g(ho)n(w)g(the)g(tree)h(w)o(ould)f(be)g(di)n
+(vided)f(by)h(the)h(APHID)0 3114 y(algorithm.)g(The)23
+b(\002gure)h(sho)n(ws)e(us)i(a)f(single-le)n(v)o(el)f(master/sla)n(v)o
+(e)g(hierarchy)h(\(multiple)f(le)n(v)o(els)g(are)i(possible\).)0
+3314 y(The)k(master)g(process)h(controls)e(the)h(top)g
+Fq(d)1511 3278 y Fp(0)1563 3314 y Fu(ply)f(of)i(the)f(game)g(tree,)h
+(including)e(the)h(root.)41 b(The)29 b(lea)n(v)o(es)f(of)g(the)0
+3513 y(master')-5 b(s)28 b Fq(d)412 3477 y Fp(0)435 3513
+y Fu(-ply)h(tree)h(are)g(the)f(pieces)g(of)h(w)o(ork)f(that)g(each)h
+(sla)n(v)o(e)e(process)h(e)o(xamines.)43 b(Each)30 b(of)f(the)g
+Fq(k)k Fu(sla)n(v)o(e)0 3712 y(processes)c(gets)g(a)g(portion)f(of)h
+(the)g(master')-5 b(s)28 b(lea)n(v)o(es)h(to)g(search,)h(implicitly)d
+(di)n(viding)g(the)i(remainder)g(of)g(the)0 3912 y(tree)d(as)g(sho)n
+(wn)e(in)h(Figure)h(3.)33 b(Note)25 b(that)g(the)g(diagram)h(is)f
+(partially)f(misleading)g(in)h(that,)h(for)f(load)h(balancing)0
+4111 y(purposes,)e(a)h(sla)n(v)o(e')-5 b(s)24 b(pieces)h(of)f(w)o(ork)h
+(are)h(actually)e(distrib)n(uted)f(across)i(the)g(bottom)e(of)i(the)f
+(master')-5 b(s)24 b(tree.)146 4310 y(It)31 b(is)g(interesting)f(to)h
+(compare)g(APHID)h(against)e(a)h(synchronous)f(parallel)h(algorithm.)49
+b(Figure)31 b(4)g(illus-)0 4509 y(trates)22 b(graphically)f(where)i(w)o
+(ork)f(is)f(allocated)h(o)o(v)o(er)f(the)h(course)g(of)h(a)f(typical)f
+(APHID)i(and)f(YBWC*)h(search.)0 4709 y(Each)g(location)f(mark)o(ed)h
+(with)f(an)h Fb(x)f Fu(sho)n(ws)g(where)h(the)g(parallelism)e
+(typically)h(tak)o(es)h(place.)30 b(Although)21 b(more)0
+4908 y(parallelism)j(could)g(be)h(generated)h(in)e(YBWC*,)i(one)f(must)
+f(be)h(careful)h(because)f(each)h Fb(x)e Fu(along)h(the)g(left)g(side)0
+5107 y(of)j(the)g(YBWC*)h(tree)f(represents)g(a)h(global)e
+(synchronization)f(point,)i(and)g(the)g(rest)g(are)h(local)e
+(synchroniza-)0 5306 y(tion)d(points.)1925 5589 y(8)p
+eop
+%%Page: 9 12
+9 11 bop 146 100 a Fu(In)23 b(APHID,)g(the)g(master)g(process)f(mak)o
+(es)h(repeated)g(searches)g(or)g Fm(passes)f Fu(o)o(v)o(er)g(its)g
+(part)h(of)g(the)g(game)f(tree.)0 299 y(The)k(master')-5
+b(s)25 b(tree)i(is)f(small)f(and)h(is)f(quickly)g(searched.)35
+b(The)27 b(master)e(is)h(responsible)f(for)h(ensuring)g(that)f(the)0
+498 y(sla)n(v)o(es)h(determine)g(all)g(of)g(the)h(minimax)e(v)n(alues)g
+(required)i(to)f(get)g(a)h Fq(d)p Fu(-ply)f Fq(\013)q(\014)32
+b Fu(search)27 b(of)f(the)h(full)f(game)g(tree)0 697
+y(\002nished,)h(after)g(which)g(it)f(proceeds,)h(via)g(iterati)n(v)o(e)
+e(deepening,)i(to)f(the)h(ne)o(xt)f(search)h(depth)f(repeatedly)h
+(until)0 897 y(the)e(time)f(limit)f(e)o(xpires.)146 1096
+y(Each)28 b(sla)n(v)o(e)e(searches)h(its)f(pieces)h(of)g(w)o(ork)g
+Fl(\()p Fq(d)d Fk(\000)g Fq(d)1968 1060 y Fp(0)1991 1096
+y Fl(\))j Fu(plies)f(deep,)i(plus)e(an)o(y)g(search)i(e)o(xtensions)d
+(that)h(the)0 1295 y(master)j(requires.)45 b(If)30 b(APHID)g(were)g(a)g
+(synchronous)e(algorithm,)h(the)g(sla)n(v)o(es)g(w)o(ould)f(\002nish)h
+(their)h(w)o(ork)f(for)0 1494 y(the)23 b(master')-5 b(s)23
+b(depth)g Fq(d)g Fu(iteration,)f(and)i(then)f(w)o(ait)g(for)g(the)h(ne)
+o(xt)e(iteration)h(\()p Fq(d)16 b Fl(+)h(1)p Fu(\))24
+b(to)f(be)o(gin.)29 b(APHID')-5 b(s)23 b(sla)n(v)o(es)0
+1694 y(do)g(not)h(sit)f(idle)g(w)o(aiting.)29 b(Instead,)24
+b(the)o(y)f(use)g(iterati)n(v)o(e)f(deepening)i(to)f(search)h(their)g
+(w)o(ork)f(lists)g(an)g(additional)0 1893 y(ply)30 b(deeper)h(\(and)f
+(be)o(yond,)h(if)f(there)h(is)f(time\))f(without)g(con\002rmation)h
+(from)g(the)g(master)-5 b(.)47 b(Thus,)31 b(the)f(sla)n(v)o(es)0
+2092 y(attempt)c(to)h(determine)f(minimax)g(v)n(alues)g(that)h(may)f
+(be)i(necessary)-6 b(,)27 b(in)g(anticipation)e(of)j(the)e(master)h
+(process)0 2291 y(asking)g(for)h(them.)38 b(The)27 b(sla)n(v)o(es)g
+(continue)g(searching)g(until)f(the)i(master)f(signals)f(that)h(the)h
+(search)g(at)f(the)h(root)0 2491 y(of)d(the)g(tree)g(has)f(been)h
+(terminated.)146 2690 y(By)39 b(partitioning)d(the)i(tree)h(in)f(this)f
+(manner)l(,)k(APHID')-5 b(s)38 b(performance)h(does)f(not)g(rely)g(on)g
+(the)g(imple-)0 2889 y(mentation)c(of)h(a)g(global)g(shared)g(memory)f
+(or)h(a)h(f)o(ast)f(interconnection)f(netw)o(ork)g(between)h(the)g
+(processes.)0 3088 y(This)25 b(mak)o(es)g(the)g(APHID)h(algorithm)e
+(suitable)h(for)h(loosely-coupled)e(architectures)h(\(such)h(as)f(a)h
+(netw)o(ork)f(of)0 3288 y(w)o(orkstations\),)e(as)i(well)g(as)f
+(tightly-coupled)f(architectures.)146 3487 y(This)37
+b(section)f(contains)g(a)i(description)e(of)h(the)g(master)g(process)g
+(\(Section)g(3.1\),)j(the)d(sla)n(v)o(e)f(processes)0
+3686 y(\(Section)g(3.3\),)i(and)d(the)h(APHID)g(table)f(through)g
+(which)g(the)h(master)f(and)g(sla)n(v)o(e)g(communicate)g(\(Section)0
+3885 y(3.2\).)29 b(Balancing)19 b(the)h(w)o(ork)f(load)h(between)f(the)
+h(sla)n(v)o(es)e(is)h(discussed)g(in)g(Section)h(3.4.)28
+b(The)20 b(interf)o(ace)g(between)0 4085 y(APHID)25 b(and)g(the)g
+(application)e(is)i(described)f(in)h(Section)g(3.5.)0
+4380 y Fg(3.1)119 b(The)30 b(APHID)g(Master)0 4646 y
+Fu(The)i(master)f(is)g(responsible)f(for)i(ensuring)f(that)g(the)h
+(result)f(of)g(a)h Fq(d)p Fu(-ply)f(search)h(is)f(obtained.)51
+b(The)31 b(amount)0 4846 y(of)c(w)o(ork)g(retained)g(by)f(the)h(master)
+l(,)g Fq(d)1329 4809 y Fp(0)1379 4846 y Fu(ply)-6 b(,)27
+b(is)f(automatically)g(determined)g(based)h(on)f(the)h(characteristics)
+g(of)0 5045 y(the)f(search)g(tree)g(generated)h(for)f(the)g(root)f
+(position)f(and)i(domain-dependent)f(information)f(pro)o(vided)h(by)g
+(the)0 5244 y(user)-5 b(.)30 b(Further)25 b(details)g(on)f(the)h
+(automatic)f(determination)f(of)i Fq(d)2246 5208 y Fp(0)2294
+5244 y Fu(can)g(be)g(found)f(else)n(where)h([2].)1925
+5589 y(9)p eop
+%%Page: 10 13
+10 12 bop 146 100 a Fu(APHID)26 b(completes)d(a)j Fq(d)p
+Fu(-ply)e Fq(\013)q(\014)30 b Fu(search)25 b(by)g(repeating)f(the)h
+(follo)n(wing)e(steps:)120 407 y(1.)49 b(Ex)o(ecute)37
+b(a)h(quick)f(search)h(\(or)g Fm(pass)p Fu(\))f(of)h(the)f
+Fq(d)1967 371 y Fp(0)1990 407 y Fu(-ply)g(tree)h(using)f(the)g
+(application')-5 b(s)36 b(sequential)h Fq(\013)q(\014)244
+606 y Fu(algorithm)23 b(\(where)j Fq(d)1009 570 y Fp(0)1059
+606 y Fq(<)i(d)p Fu(\),)d(aided)f(by)h(a)g(transposition)e(table)h
+(\(if)h(a)n(v)n(ailable\).)120 888 y(2.)49 b(If)25 b(the)g(search)g
+(returns)g(an)g(accurate)g Fq(d)p Fu(-ply)f(v)n(alue,)h(then)f(e)o(xit)
+g(the)h(loop.)120 1171 y(3.)49 b(Based)24 b(on)g(the)f(leaf)h(nodes)f
+(visited)g(during)g(this)f(pass,)i(report)g(an)o(y)f(changes)g(to)h
+(the)f(sla)n(v)o(es')g(w)o(ork)g(lists.)120 1453 y(4.)49
+b(W)-8 b(ait)24 b(for)i(ne)n(w)e(information)f(from)i(a)g(sla)n(v)o(e)f
+(process.)120 1735 y(5.)49 b(Go)25 b(to)f(step)g(1.)146
+2042 y(The)32 b Fq(d)384 2006 y Fp(0)407 2042 y Fu(-ply)g(tree)h(is)e
+(not)h(k)o(ept)g(in)f(memory)-6 b(.)51 b(Thus,)34 b(on)d(each)i(pass)f
+(the)g(tree)g(is)g(tra)n(v)o(ersed)g(to)g(determine)0
+2242 y(an)o(y)g(changes)g(to)f(the)h(w)o(ork)g(required.)53
+b(The)32 b(tree)g(is)g(re)o(generated)g(on)g(each)h(pass)f(by)f(the)h
+(application')-5 b(s)31 b Fq(\013)q(\014)0 2441 y Fu(algorithm)23
+b(and)i(transposition)e(table.)30 b(Since)c Fq(d)1668
+2405 y Fp(0)1715 2441 y Fu(is)f(usually)e(small,)h(the)h(cost)f(of)h(a)
+g(pass)g(is)f(also)g(small.)146 2640 y(During)e(a)g(pass,)g(when)g(the)
+g(master)f(reaches)i(a)f(leaf)h(of)f(the)f Fq(d)2263
+2604 y Fp(0)2286 2640 y Fu(-ply)h(tree,)h(an)f(e)n(v)n(aluation)e(of)i
+(that)g(node)f(must)0 2839 y(be)h(done.)29 b(If)22 b(the)f(subtree)g
+(underneath)g(that)g(node)g(\()p Fq(d)9 b Fk(\000)g Fq(d)1984
+2803 y Fp(0)2008 2839 y Fu(\))22 b(is)f(smaller)f(than)h
+Fq(g)k Fu(ply)c(\(the)g Fm(minimum)g(gr)o(anularity)0
+3039 y Fu(for)j(a)h(piece)f(of)h(parallel)f(w)o(ork\),)g(then)g(the)g
+(master)f(searches)i(the)f(remaining)f(\()p Fq(d)d Fk(\000)g
+Fq(d)2979 3002 y Fp(0)3002 3039 y Fu(\))k(ply)g(itself.)30
+b(Otherwise,)0 3238 y(the)25 b(node)f(is)h(assigned)f(to)g(a)h(sla)n(v)
+o(e)f(processor)-5 b(.)146 3437 y(Assuming)32 b(that)h(the)h(master)f
+(does)g(not)g(search)h(the)f(tree)h(underneath)g(a)g(gi)n(v)o(en)e
+(node)h(\()p Fq(g)47 b Fk(\024)e Fl(\()p Fq(d)28 b Fk(\000)h
+Fq(d)3781 3401 y Fp(0)3804 3437 y Fl(\))p Fu(\),)0 3636
+y(APHID)c(must)f(determine)h(a)g(v)n(alue)f(with)g(respect)i(to)e(the)h
+Fq(\013)q(\014)30 b Fu(search)c(windo)n(w)d(at)i(that)g(node)f(without)
+g(further)0 3836 y(search.)60 b(F)o(or)35 b(e)o(xample,)h(an)f
+Fq(\013)q(\014)40 b Fu(search)35 b(windo)n(w)e(of)h(\(0,5\))h(says)f
+(that)g(the)h Fq(\013)q(\014)k Fu(algorithm)33 b(needs)i(to)f(kno)n(w)0
+4035 y(whether)e(the)g(node')-5 b(s)32 b(minimax)e(v)n(alue)i(is)g
+Fk(\024)42 b Fl(0)p Fu(,)34 b Fk(\025)42 b Fl(5)p Fu(,)34
+b(or)e(the)g(e)o(xact)g(v)n(alue)g(if)g(it)g(lies)g(in)g(between)g(0)g
+(and)g(5.)0 4234 y(W)l(ithout)23 b(kno)n(wing)h(which)g(case)h(is)g
+(correct,)g(the)g Fq(\013)q(\014)30 b Fu(search)25 b(may)g(gi)n(v)o(e)e
+(inaccurate)i(results.)146 4433 y(If)34 b(the)e(sla)n(v)o(e)h(has)f
+(already)h(gi)n(v)o(en)f(the)g(master)h(a)g Fl(\()p Fq(d)28
+b Fk(\000)h Fq(d)2181 4397 y Fp(0)2204 4433 y Fl(\))p
+Fu(-ply)j(search)h(result,)i(that)d(v)n(alue)g(is)h(used.)3740
+4397 y Fn(4)3834 4433 y Fu(If)0 4633 y(the)25 b Fl(\()p
+Fq(d)d Fk(\000)h Fq(d)409 4596 y Fp(0)432 4633 y Fl(\))p
+Fu(-ply)i(result)g(is)g(una)n(v)n(ailable)f(because)h(the)h(sla)n(v)o
+(e)e(has)h(not)g(reached)h(that)f(depth)g(of)g(search,)h(or)f(the)0
+4832 y Fl(\()p Fq(d)e Fk(\000)h Fq(d)264 4796 y Fp(0)287
+4832 y Fl(\))p Fu(-ply)h(result)h(has)g(returned)h(a)f(bound)g(that)g
+(yields)f(insuf)n(\002cient)g(information)g(on)h(the)g(minimax)f(v)n
+(alue)0 5031 y(with)31 b(respect)i(to)f(the)g Fq(\013)q(\014)37
+b Fu(search)c(windo)n(w)-6 b(,)32 b(then)g(the)g(algorithm)e(guesses)i
+(at)g(the)g(minimax)f(v)n(alue.)52 b(Going)p 0 5121 1560
+4 v 112 5182 a Fj(4)149 5212 y Fi(In)30 b(the)g(implementations)f
+(presented)f(here,)k(the)e(deeper)f(ply)h(v)n(alues)g(are)g(not)f(used)
+h(e)n(v)o(en)f(if)i(the)o(y)e(are)h(a)n(v)n(ailable.)54
+b(This)31 b(is)0 5312 y(discussed)20 b(in)g(Section)g(4.)1900
+5589 y Fu(10)p eop
+%%Page: 11 14
+11 13 bop 0 100 a Fu(back)36 b(to)f(our)h(earlier)g(e)o(xample,)i(a)e
+(v)n(alue)f(of)h Fk(\024)49 b Fl(10)35 b Fu(does)g(not)h(yield)f
+(useful)g(information)f(at)i(a)g(node)g(with)0 299 y(an)d
+Fq(\013)q(\014)39 b Fu(search)33 b(windo)n(w)f(of)h(\(0,5\),)i(hence)f
+(a)f(guessed)g(v)n(alue)f(for)h(this)f(node)h(w)o(ould)g(be)g(used)f
+(until)g(a)i(sla)n(v)o(e)0 498 y(could)24 b(return)h(better)f
+(information.)30 b(An)o(y)23 b(node)i(where)g(APHID)g(has)g(to)f(guess)
+g(at)h(the)f(v)n(alue)g(is)h(mark)o(ed)f(as)h(an)0 697
+y Fm(uncertain)f Fu(node.)146 897 y(F)o(or)j(uncertain)g(nodes,)g
+(information)e(gathered)i(from)g(both)f(pre)n(vious)f(searches)j(and)f
+(the)f(current)i(search)0 1096 y(is)23 b(used)g(to)f(determine)h(a)h
+(guessed)e(v)n(alue.)30 b(The)23 b(guessed)g(v)n(alue)f(is)h(chosen)g
+(so)g(that)f(it)h(will)f(not)h(alter)g(the)g(shape)0
+1295 y(or)e(ordering)g(of)h(mo)o(v)o(es)d(within)h(the)h(game)g(tree)g
+(until)f(ne)n(w)h(information)f(is)h(recei)n(v)o(ed)g(from)g(a)g(sla)n
+(v)o(e)g(processor)-5 b(.)0 1494 y(Details)24 b(of)h(the)g(guessed)f
+(score)h(algorithm)e(are)j(pro)o(vided)e(in)g(Appendix)g(A.)146
+1694 y(As)c(minimax)f(v)n(alues)g(get)i(back)o(ed)f(up)g(the)g
+Fq(d)1681 1657 y Fp(0)1704 1694 y Fu(-ply)g(tree)h(during)e(the)h
+(search,)i(the)e(master)g(maintains)f(a)i(count)0 1893
+y(of)26 b(ho)n(w)f(man)o(y)g(uncertain)h(nodes)f(ha)n(v)o(e)h(been)g(e)
+n(v)n(aluated.)33 b(When)26 b(the)g(master)g(has)g(no)f(uncertain)h(e)n
+(v)n(aluations)0 2092 y(in)e(its)g Fq(d)272 2056 y Fp(0)295
+2092 y Fu(-ply)h(tree,)g(the)g(v)n(alue)f(of)h(the)f(complete)h
+Fq(d)p Fu(-ply)f(tree)h(is)f(accurate,)i(and)f(APHID)g(e)o(xits)f(the)g
+(loop.)146 2291 y(Sometimes,)f(the)g Fl(\()p Fq(d)17
+b Fk(\000)g Fq(d)1034 2255 y Fp(0)1056 2291 y Fl(\))p
+Fu(-ply)23 b(result)g(may)g(be)g(insuf)n(\002cient)f(for)i(the)f
+(master)g(to)g(determine)g(the)g(minimax)0 2491 y(v)n(alue.)47
+b(A)30 b(further)h(search)g(at)f(the)h(same)f(depth,)h(with)f(a)g(dif)n
+(ferent)g(search)h(windo)n(w)-6 b(,)30 b(is)g(required)h(when)f(this)0
+2690 y(happens.)k(The)26 b(master)f(sends)h(a)g(message)g(to)f(the)h
+(sla)n(v)o(e)g(responsible)e(for)j(searching)f(the)f(node)h(that)g(it)f
+(needs)0 2889 y(to)31 b(re-e)o(x)o(ecute)g(the)h(search)g(with)e(a)i
+(re)n(vised)f(search)h(windo)n(w)-6 b(.)49 b(The)31 b(sla)n(v)o(e)g
+(will)g(e)n(v)o(entually)e(return)j(updated)0 3088 y(information)23
+b(that)g(is)h(consistent)e(with)i(both)f(the)h(original)f(information)f
+(and)i(the)g(search)h(windo)n(w)d(requested.)146 3288
+y(APHID)e(solv)o(es)e(one)h(of)g(the)g(problems)f(that)h(synchronous)f
+(algorithms)f(ha)n(v)o(e)i(with)f(respect)h(to)g(initializing)0
+3487 y(parallelism)33 b(incorrectly)h(at)g(a)g(potential)f(CUT)h(node.)
+58 b(Most)33 b(synchronous)g(algorithms)f(use)i(application-)0
+3686 y(dependent)j(information)g(to)g(determine)h(when)g(to)f(initiate)
+g(parallelism.)69 b(By)38 b(using)f(the)h(guessed)f(scores)0
+3885 y(when)d(accurate)h(information)d(is)h(not)h(a)n(v)n(ailable,)h
+(the)f(APHID)g(algorithm)e(automatically)h(determines)g(if)h(a)0
+4085 y(subsequent)26 b(child)h(is)g(lik)o(ely)g(to)g(generate)h(a)g
+(cut-of)n(f)g(at)f(a)h(f)o(ailed)g(CUT)g(node.)38 b(Nodes)28
+b(which)f(are)h(pruned)f(by)0 4284 y(the)f(master)l(,)g(using)f(either)
+h(real)g(or)g(guessed)g(scores,)g(are)h(not)e(searched)i(by)f(the)f
+(sla)n(v)o(es.)34 b(If)26 b(it)g(seems)f(unlik)o(ely)0
+4483 y(that)g(the)f(node)h(will)f(be)h(pruned)g(\(e.g.)31
+b(due)25 b(to)g(lo)n(w)f(real/guessed)h(v)n(alues\),)f(then)g(all)h
+(children)g(are)g(visited)f(and)0 4682 y(the)e(w)o(ork)h(w)o(ould)e(be)
+i(initiated)e(in)h(parallel.)30 b(This)22 b(is)g(all)g(handled)g
+(implicitly)e(in)i(an)h(application-independent)0 4882
+y(w)o(ay)i(by)f(the)h Fq(\013)q(\014)30 b Fu(routine.)1900
+5589 y(11)p eop
+%%Page: 12 15
+12 14 bop 978 0 a
+ 15345564 14208860 8420065 17234821 28417720 35653713 startTexFig
+ 978 0 a
+%%BeginDocument: pics/aphid-snapshot.ps
+
+/arrowHeight 10 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l b translate w h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+%I Idraw 10 Grid 6 6
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.799705 0 0 0.799705 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 5.99997 0 ] concat
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 342 674 ] concat
+%I
+[
+(Master)
+] Text
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 8 26 ] concat
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 315 543.5 ] concat
+%I
+[
+(1)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+80 224 12 12 Elli
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -4 26 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+128 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 339 543.5 ] concat
+%I
+[
+(2)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -10 26 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+164 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 357 544 ] concat
+%I
+[
+(3)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -16 26 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+200 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 375 544 ] concat
+%I
+[
+(4)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -22 26 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+236 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 393 544 ] concat
+%I
+[
+(5)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 104 26 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+32 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 291 543.5 ] concat
+%I
+[
+(7)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -28 26 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+272 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 411 544 ] concat
+%I
+[
+(6)
+] Text
+End
+
+End %I eop
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+68 260 164 452 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+68 260 272 260 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+164 452 272 260 Line
+%I 2
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -71.5 99 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+308 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 428.5 544 ] concat
+%I
+[
+(R)
+] Text
+End
+
+End %I eop
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 284 612.5 ] concat
+%I
+[
+(d')
+] Text
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 226 395 ] concat
+%I
+148 518 100 518 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 226 395 ] concat
+%I
+148 326 100 326 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 226 395 ] concat
+%I
+124 446 124 506 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 226 395 ] concat
+%I
+124 410 124 338 Line
+%I 2
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 18 -24 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+128 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 339 543.5 ] concat
+%I
+[
+(2)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 84 -24 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+164 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 357 544 ] concat
+%I
+[
+(3)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -108 -24 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+200 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 375 544 ] concat
+%I
+[
+(4)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 0 -24 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+236 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 393 544 ] concat
+%I
+[
+(5)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 66 -24 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+272 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 411 544 ] concat
+%I
+[
+(6)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -84 -24 ] concat
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 315 543.5 ] concat
+%I
+[
+(1)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+80 224 12 12 Elli
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 12 -24 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+32 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 291 543.5 ] concat
+%I
+[
+(7)
+] Text
+End
+
+End %I eop
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.458861 0 0 0.489848 235.544 397.7 ] concat
+%I
+232 170 388 266 Rect
+End
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.815325 0 0 0.489848 236.845 397.7 ] concat
+%I
+232 170 364 266 Rect
+End
+
+Begin %I Line
+%I b 65520
+1 0 0 [12 4] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.21519 0 0 0.046875 83.0438 492.703 ] concat
+%I
+100 241 376 241 Line
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 162 515 ] concat
+%I
+[
+(APHID)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 162 503 ] concat
+%I
+[
+(Table)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 222 497 ] concat
+%I
+[
+(-1/4)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 258 497 ] concat
+%I
+[
+(+2/3)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 297.5 497 ] concat
+%I
+[
+(?/0)
+] Text
+End
+
+Begin %I Rect
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 148 395 ] concat
+%I
+136 170 352 266 Rect
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 348 497 ] concat
+%I
+[
+(+5/5)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 468 497 ] concat
+%I
+[
+(+1/3)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+140 331 98 217 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+140 331 170 235 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+98 217 110 229 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+110 229 116 217 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+116 217 122 247 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+122 247 140 235 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+140 235 146 247 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+146 247 152 229 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+152 229 158 247 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 0 0 1 130 131 ] concat
+%I
+158 247 170 235 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+288 398 204 194 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+204 194 240 218 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+240 218 252 230 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+252 230 264 218 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+264 218 276 182 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+276 182 288 206 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+288 206 300 230 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+300 230 312 206 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+312 206 324 230 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+288 398 348 230 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 234 263 ] concat
+%I
+324 230 348 230 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+188 248 212 284 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+212 284 236 248 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+236 248 248 296 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+248 296 272 260 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+272 260 284 296 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+284 296 308 272 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+308 272 320 296 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+260 464 320 296 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 338 230 ] concat
+%I
+260 464 188 248 Line
+%I 2
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 246 341 ] concat
+%I
+[
+(Slave 1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 354 341 ] concat
+%I
+[
+(Slave 2)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 444 341 ] concat
+%I
+[
+(Slave 3)
+] Text
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 35.5 -97.5 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+128 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 339 543.5 ] concat
+%I
+[
+(2)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 54 -97 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+272 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 411 544 ] concat
+%I
+[
+(6)
+] Text
+End
+
+End %I eop
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 -24.5 -99 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 428 ] concat
+%I
+32 224 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 291 543.5 ] concat
+%I
+[
+(7)
+] Text
+End
+
+End %I eop
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 130 296 ] concat
+%I
+100 320 148 320 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 130 296 ] concat
+%I
+100 164 148 164 Line
+%I 2
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 180.5 421.5 ] concat
+%I
+[
+(d-d')
+] Text
+End
+
+Begin %I Line
+%I b 65535
+1 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 130 296 ] concat
+%I
+124 224 124 176 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+1 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 0 0 0.5 130 296 ] concat
+%I
+124 260 124 308 Line
+%I 2
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 384 497 ] concat
+%I
+[
+(+4/5)
+] Text
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 60 -36 ] concat
+
+Begin %I Elli
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.5 -0 -0 0.5 278 362 ] concat
+%I
+356 380 12 12 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 453 555.5 ] concat
+%I
+[
+(8)
+] Text
+End
+
+End %I eop
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 504 497 ] concat
+%I
+[
+(-3/1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 432 497 ] concat
+%I
+[
+(<0/4)
+] Text
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+
+ endTexFig
+ 893 2003 a Fu(Figure)25 b(5:)30 b(A)25 b(Snapshot)f(of)h(APHID)g
+(Search)h(in)f(Operation)0 2291 y Fg(3.2)119 b(The)30
+b(APHID)g(T)-11 b(able)0 2557 y Fu(If)35 b(a)g(leaf)h(node)e(is)h
+(visited)e(by)i(the)g(master)f(for)h(the)g(\002rst)g(time,)h(it)f(is)f
+(allocated)g(to)h(a)g(sla)n(v)o(e)f(process.)61 b(This)0
+2756 y(information)33 b(is)i(recorded)g(in)g(the)f Fm(APHID)h(table)f
+Fu(that)h(is)f(shared)h(by)f(all)h(processes.)61 b(Figure)35
+b(5)f(sho)n(ws)g(an)0 2956 y(e)o(xample)24 b(of)h(ho)n(w)f(the)g(APHID)
+i(table)e(w)o(ould)g(be)h(or)n(ganized)g(at)g(a)g(gi)n(v)o(en)e(point)h
+(in)g(time.)146 3155 y(The)k(table)f(is)g(replicated)h(on)f(the)g
+(master)g(and)h(sla)n(v)o(e)f(processes.)38 b(Ho)n(we)n(v)o(er)l(,)27
+b(each)h(sla)n(v)o(e)f(only)g(kno)n(ws)f(of)0 3354 y(the)i(entries)h
+(rele)n(v)n(ant)e(to)h(it)g(within)f(the)i(table.)41
+b(F)o(or)29 b(e)o(xample,)f(in)g(Figure)h(5,)g(sla)n(v)o(e)f(1)g(only)g
+(kno)n(ws)f(about)h(the)0 3553 y(entries)23 b(for)h(1,)f(4)g(and)g(7.)
+30 b(The)24 b(master)l(,)f(which)g(is)g(responsible)f(for)h(distrib)n
+(uting)e(the)i(w)o(ork)g(to)g(all)g(of)h(its)e(sla)n(v)o(es,)0
+3753 y(has)j(copies)f(of)h(e)n(v)o(ery)f(table)h(entry)-6
+b(.)146 3952 y(The)39 b(master)f(and)h(sla)n(v)o(e)f(only)g(read)h
+(their)f(local)h(copies)f(of)h(the)f(information;)44
+b(there)39 b(are)g(no)g(e)o(xplicit)0 4151 y(messages)19
+b(sent)h(between)g(them)f(asking)g(for)h(information.)28
+b(The)20 b(entries)f(in)h(the)g(APHID)g(table)g(are)g(partitioned)0
+4350 y(into)k(tw)o(o)g(parts:)30 b(one)25 b(which)f(only)g(the)g
+(master)h(can)g(write)f(to,)g(and)h(one)g(which)f(only)g(the)g(sla)n(v)
+o(e)g(that)g(has)h(been)0 4550 y(assigned)i(that)g(piece)h(of)g(w)o
+(ork)g(can)g(write)g(to.)39 b(An)o(y)27 b(attempt)f(to)i(write)f(into)g
+(the)h(table)f(generates)h(a)g(message)0 4749 y(that)c(informs)g(the)h
+(master)f(or)h(sla)n(v)o(e)f(process)h(to)f(update)h(its)f(replicated)h
+(cop)o(y)f(of)h(the)g(table)f(entry)-6 b(.)146 4948 y(The)33
+b(master')-5 b(s)32 b(half)h(of)g(the)g(table)g(is)g(illustrated)e(abo)
+o(v)o(e)h(the)h(dashed)g(line)f(in)h(Figure)g(5.)55 b(F)o(or)33
+b(each)h(leaf)0 5147 y(visited)26 b(by)i(the)f(master)l(,)h(there)g(is)
+f(an)g(entry)h(in)f(the)g(APHID)h(table.)39 b(Information)27
+b(maintained)f(on)h(the)h(lea)n(v)o(es)1900 5589 y(12)p
+eop
+%%Page: 13 16
+13 15 bop 0 100 a Fu(includes)20 b(the)g(mo)o(v)o(es)f(required)i(to)f
+(generate)h(the)f(leaf)h(positions)e(from)h(the)g(root)h
+Fb(R)p Fu(,)f(the)g(approximate)g(location)0 299 y(of)27
+b(the)f(leaf)i(in)e(the)h(tree)g(\(which)f(is)h(used)f(by)h(the)f(sla)n
+(v)o(e)g(to)h(prioritize)f(w)o(ork\),)h(whether)g(this)e(leaf)j(w)o(as)
+e(visited)0 498 y(on)e(the)g(last)f(pass)h(that)g(the)g(master)g(e)o(x)
+o(ecuted,)f(and)h(the)g(number)f(of)i(the)f(sla)n(v)o(e)f(that)h(the)g
+(leaf)g(w)o(as)g(assigned)g(to.)146 697 y(In)32 b(our)f(e)o(xample,)i
+(roughly)d(the)i(same)f(number)g(of)h(lea)n(v)o(es)f(ha)n(v)o(e)g(been)
+h(allocated)f(to)g(each)h(sla)n(v)o(e.)50 b(Note)0 897
+y(that)22 b(there)h(is)g(an)g(additional)e(leaf,)j(8,)f(that)f(is)g
+(not)g(represented)i(in)e(the)h(master')-5 b(s)21 b Fq(d)2862
+860 y Fp(0)2885 897 y Fu(-ply)i(search)g(tree.)31 b(This)22
+b(leaf)0 1096 y(node)i(w)o(as)g(visited)f(on)h(a)g(pre)n(vious)f(pass)h
+(by)g(the)g(master)l(,)g(b)n(ut)f(w)o(as)h(not)g(visited)f(on)h(the)g
+(latest)f(pass.)30 b(Ho)n(we)n(v)o(er)l(,)0 1295 y(the)e(information)e
+(that)h(the)h(sla)n(v)o(e)f(has)h(generated)g(about)f(this)g(node)h
+(may)f(be)h(needed)g(in)g(a)g(later)g(pass,)g(and)g(is)0
+1494 y(not)23 b(deleted)g(from)g(the)g(table.)30 b(Lea)n(v)o(es)23
+b(are)h(initially)d(allocated)i(to)g(the)g(sla)n(v)o(es)f(in)h(a)h
+(round-robin)e(manner)l(,)h(and)0 1694 y(may)h(mo)o(v)o(e)g(due)h(to)f
+(load)g(balancing)h(\(as)g(described)f(in)h(Section)g(3.4\).)146
+1893 y(The)i(sla)n(v)o(e')-5 b(s)25 b(part)h(of)h(the)f(table)g(\(the)g
+(area)h(belo)n(w)f(the)g(dashed)g(line\))g(contains)g(information)f(on)
+h(the)g(min-)0 2092 y(imax)31 b(v)n(alue)g(at)g(v)n(arious)g(depths)f
+(of)i(search.)51 b(The)32 b(best)f(information)f(\(with)h(respect)h(to)
+f(search)h(depth\))f(and)0 2291 y(the)e(ply)g(to)g(which)g(the)h(leaf)g
+(w)o(as)f(e)o(xamined)g(is)g(gi)n(v)o(en)f(underneath)h(each)h(leaf)g
+(node.)45 b(F)o(or)29 b(leaf)h(1,)g(the)g(score)0 2491
+y(returned)i(is)f(-1)h(with)f(a)h(search)g(depth)f(of)h(4.)51
+b(Leaf)33 b(3)e(illustrates)g(that)g(the)g(score)h(information)f
+(returned)g(by)0 2690 y(the)25 b(sla)n(v)o(e)f(may)h(not)g(al)o(w)o
+(ays)g(be)g(an)g(e)o(xact)g(number)-5 b(.)31 b(The)25
+b(sla)n(v)o(es)f(maintain)g(upper)h(and)g(lo)n(wer)f(bounds)g(on)h(the)
+0 2889 y(minimax)g(v)n(alue)h(of)h(each)h(node)e(for)h(each)h(ply)e(of)
+h(search)g(depth.)2306 2853 y Fn(5)2382 2889 y Fu(This)f(information)f
+(is)i(determined)f(by)g(the)0 3088 y(minimax)31 b(v)n(alue)h(returned)h
+(and)g(the)g(search)g(windo)n(w)f(used)g(by)h(the)g(sla)n(v)o(e.)54
+b(F)o(or)33 b(simplicity)-6 b(,)32 b(only)g(a)h(single)0
+3288 y(bound)24 b(is)g(sho)n(wn.)146 3487 y(The)32 b(APHID)f(table)g
+(data)h(structure)e(must)g(support)h(tw)o(o)f(time)h(critical)g
+(operations:)42 b(\002nding)31 b(a)h(node)e(in)0 3686
+y(the)i(table,)i(and)e(adding)f(a)h(node)g(to)g(the)g(table.)52
+b(Hence,)35 b(the)d(APHID)g(table)g(has)g(been)g(implemented)f(as)h(an)
+0 3885 y(e)o(xtendible)f(hash)g(table.)52 b(Applications)31
+b(that)g(w)o(ould)g(use)h(APHID)h(generally)f(ha)n(v)o(e)f(a)i
+(transposition)d(table;)0 4085 y(the)21 b(transposition)e(table)i
+(hashing)g(function)f(can)i(also)f(be)h(used)f(to)g(\002nd)g(and)g(add)
+h(lea)n(v)o(es)e(to)h(the)h(APHID)f(table.)0 4380 y Fg(3.3)119
+b(The)30 b(APHID)g(Sla)m(v)o(e)0 4646 y Fu(A)20 b(sla)n(v)o(e)f
+(process)g(essentially)f(e)o(x)o(ecutes)h(the)g(same)h(code)f(that)h(a)
+f(sequential)g Fq(\013)q(\014)25 b Fu(searcher)c(w)o(ould.)28
+b(The)19 b(sla)n(v)o(e')-5 b(s)0 4846 y(main)24 b(loop)g(simply)f
+(repeats)i(the)g(follo)n(wing)e(steps)h(until)g(the)g(master)h(tells)f
+(it)g(that)g(the)h(search)g(is)g(complete:)p 0 4935 1560
+4 v 112 4996 a Fj(5)149 5027 y Fi(Note)c(that)f(tw)o(o)g(bounds)f(may)h
+(be)g(needed.)j(A)e(search)f(may)g(return)f(an)h(upper)f(bound)f(on)i
+(a)g(score.)25 b(That)20 b(node)f(may)h(ha)n(v)o(e)f(to)i(be)0
+5126 y(re-searched)e(to)i(get)g(more)e(information)g(on)h(its)i(score.)
+k(The)21 b(second)e(search)i(may)f(return)g(a)h(lo)n(wer)f(bound)f
+(that)i(is)g(good)f(enough)e(to)0 5226 y(cause)i(a)h(cutof)n(f.)1900
+5589 y Fu(13)p eop
+%%Page: 14 17
+14 16 bop 120 100 a Fu(1.)49 b(Look)24 b(in)h(its)f(local)g(cop)o(y)h
+(of)g(the)f(APHID)i(table)e(and)h(\002nd)g(the)f(best)h(node)f(to)h
+(search.)120 382 y(2.)49 b(Ex)o(ecute)24 b(the)h(search.)120
+664 y(3.)49 b(Report)25 b(the)g(result)f(back)h(to)f(the)h(master)f
+(\(fetching)h(an)o(y)f(update)h(to)f(its)g(APHID)i(table)e(in)h
+(return\).)120 946 y(4.)49 b(Go)25 b(to)f(step)g(1.)146
+1254 y(A)g(sla)n(v)o(e)f(chooses)g(the)h(\223best\224)f(node)h(based)f
+(on)h(tw)o(o)f(criteria:)30 b(the)24 b(depth)f(to)g(which)g(the)h(node)
+f(has)h(already)0 1453 y(been)35 b(searched)g(by)g(the)f(sla)n(v)o(e,)j
+(and)d(the)h(node')-5 b(s)34 b(\223priority\224)g(within)f(the)i
+(search)g(tree.)61 b(The)35 b(\002rst)f(criterion)0 1652
+y(ensures)28 b(that)g(all)h(pieces)f(of)h(w)o(ork)f(are)h(searched)h
+(to)e(equal)g(depths.)41 b(Nodes)28 b(searched)h(to)f(shallo)n(wer)g
+(depths)0 1851 y(are)f(preferred)h(o)o(v)o(er)e(those)g(searched)i(to)e
+(deeper)i(depths,)e(because)h(the)o(y)f(represent)h(more)g(w)o(ork)f
+(to)h(be)f(done.)0 2051 y(In)j(Figure)g(5,)g(sla)n(v)o(e)g(1)f(has)h
+(master)f(leaf)i(nodes)e(1,)i(4)e(and)h(7,)h(and)e(the)o(y)g(ha)n(v)o
+(e)h(been)g(searched)g(to)g(depths)f(4,)h(3)0 2250 y(and)23
+b(0,)f(respecti)n(v)o(ely)-6 b(.)28 b(Thus,)23 b(sla)n(v)o(e)f(1)g(is)g
+(attempting)f(to)h(search)h(leaf)g(7)g(to)f(1)g(ply)-6
+b(,)22 b(and)h(will)f(continue)f(to)i(search)0 2449 y(leaf)i(7)g(up)f
+(to)h(3)g(ply)f(using)g(iterati)n(v)o(e)f(deepening,)h(if)h(no)g(ne)n
+(w)f(high-priority)f(w)o(ork)i(arri)n(v)o(es)f(from)g(the)h(master)-5
+b(.)146 2648 y(The)33 b(second)e(criterion)h(is)g(the)g(location)f(of)i
+(the)f(node)g(within)f(the)h(master')-5 b(s)31 b(latest)h(pass)f(o)o(v)
+o(er)h(the)g(tree.)0 2848 y(Children)e(of)g(nodes)g(are)h(usually)e
+(considered)h(in)g(a)g(best-to-w)o(orst)f(ordering,)i(implying)d(that)i
+(the)g(left-most)0 3047 y(branches)g(at)f(a)h(node)f(are)h(less)f(lik)o
+(ely)f(to)h(be)h(pruned)f(than)g(the)g(right-most)e(ones.)44
+b(F)o(or)30 b(sla)n(v)o(e)e(2)i(in)f(Figure)g(5,)0 3246
+y(lea)n(v)o(es)i(2)h(and)f(5)h(ha)n(v)o(e)f(both)g(been)g(searched)h
+(to)g(5)f(ply)-6 b(,)32 b(b)n(ut)f(leaf)h(2)f(is)g(being)g(searched)i
+(to)e(6)g(ply)g(since)h(it)f(is)0 3445 y(further)25 b(left)g(in)f(the)h
+(tree)g(than)f(leaf)i(5.)146 3645 y(Unfortunately)-6
+b(,)27 b(maintaining)f(a)i(complete)f(ordering)h(of)g(each)g(leaf)g(in)
+g(the)f(master')-5 b(s)27 b Fq(d)3251 3609 y Fp(0)3274
+3645 y Fu(-ply)h(tree)g(can)g(be)0 3844 y(e)o(xpensi)n(v)o(e.)33
+b(Thus,)25 b(APHID)i(uses)f(a)g(priority)f(scheme)h(to)g(gi)n(v)o(e)f
+(an)h(approximation)e(of)j(the)f(second)g(criterion.)0
+4043 y(The)k(formula)f(for)h(the)g(priority)f(is)g(as)h(follo)n(ws:)39
+b(F)o(or)30 b(each)g(principal)f(v)n(ariation)g(node)h(that)f(lies)g
+(on)h(the)f(path)0 4242 y(from)d(the)h(root)f(of)h(the)f(tree)h(to)f
+(the)h(node)f(in)h(question,)e(four)i(points)e(are)j(added)e(to)g(the)h
+(node')-5 b(s)26 b(priority)-6 b(.)34 b(T)-8 b(w)o(o)0
+4442 y(points)25 b(are)i(gi)n(v)o(en)e(to)g(the)h(node')-5
+b(s)26 b(priority)f(if)h(it)g(is)g(considered)g(to)g(be)g(part)g(of)g
+(the)h(critical)f(tree.)35 b(The)26 b(priority)0 4641
+y(scheme)k(ensures)g(that)g(the)g(search)h(proceeds)f(in)g(a)h(roughly)
+e(left-to-right)g(manner)l(,)j(and)e(that)g(nodes)f(within)0
+4840 y(the)e(critical)f(tree)h(are)h(preferred)f(o)o(v)o(er)f(nodes)g
+(that)h(might)e(not)h(be)h(e)n(v)n(aluated.)35 b(Ev)o(ery)26
+b(node)h(visited)e(in)h(a)h(pass)0 5039 y(of)c(the)g(game)g(tree)h(by)f
+(the)g(master)f(gets)h(at)h(least)e(4)i(points,)e(since)h(the)g(root)g
+(is)f(part)i(of)f(the)g(principal)f(v)n(ariation.)0 5239
+y(Nodes)i(that)g(are)h(not)f(touched)g(on)g(the)g(master')-5
+b(s)24 b(latest)g(pass)g(of)g(the)g(game)g(tree)h(are)g(gi)n(v)o(en)e
+(a)i(priority)e(of)i(zero.)1900 5589 y(14)p eop
+%%Page: 15 18
+15 17 bop 146 100 a Fu(A)21 b(node)g(with)f(zero)h(priority)f(will)g
+(ne)n(v)o(er)g(be)h(selected)g(for)g(further)g(search)g(by)f(a)i(sla)n
+(v)o(e.)28 b(F)o(or)21 b(sla)n(v)o(e)f(3,)i(notice)0
+299 y(that)h(leaf)g(8)h(has)f(been)g(searched)h(pre)n(viously)-6
+b(,)21 b(b)n(ut)i(not)f(on)h(the)g(last)g(pass.)30 b(This)22
+b(leaf)i(is)f(ignored)f(by)h(the)g(sla)n(v)o(e')-5 b(s)0
+498 y(w)o(ork)25 b(selection)f(algorithm)f(because)i(it)g(is)f(not)g
+(currently)h(part)g(of)f(the)h(master')-5 b(s)24 b(tree.)146
+697 y(If)e(there)g(are)g(nodes)g(that)f(must)f(be)i(searched)g(for)g
+(the)f(current)h(iteration)f(of)g(the)h(master)l(,)g(the)f(node)g(with)
+g(the)0 897 y(highest)27 b(priority)h(is)g(al)o(w)o(ays)g(scheduled)g
+(until)g(it)g(has)g(been)h(searched)g(to)f(the)h(requisite)e(depth.)42
+b(This)27 b(allo)n(ws)0 1096 y(the)g(master')-5 b(s)26
+b(de)n(v)o(elopment)f(of)i(the)g(search)g(tree)h(to)e(proceed)h(in)g
+(an)g(orderly)g(manner)-5 b(.)37 b(When)27 b(all)f(nodes)h(at)g(a)0
+1295 y(sla)n(v)o(e)d(ha)n(v)o(e)h(been)g(searched)h(to)f(the)f(master')
+-5 b(s)25 b(required)g(depth,)f(the)h(nodes)g(at)g(the)g(lo)n(west)e
+(search)j(depth)e(ha)n(v)o(e)0 1494 y(their)h(search)g(e)o(xtended,)f
+(with)g(priority)g(v)n(alues)g(as)h(a)g(secondary)f(consideration.)146
+1694 y(Before)32 b(a)f(search)g(can)g(be)f(e)o(x)o(ecuted,)h(an)g
+Fq(\013)q(\014)36 b Fu(search)31 b(windo)n(w)e(must)g(be)i(generated)g
+(by)f(the)g(sla)n(v)o(e.)47 b(The)0 1893 y(windo)n(w)29
+b(selection)g(algorithm)g(is)g(application-dependent.)46
+b(The)30 b(general-purpose)g(windo)n(w)f(selection)g(al-)0
+2092 y(gorithm)i(used)h(by)f(the)h(applications)f(in)h(this)f(paper)i
+(in)l(v)n(olv)o(ed)d(centering)i(the)g(search)h(windo)n(w)d(around)i
+(the)0 2291 y(probable)c(minimax)e(v)n(alue)i(of)g(the)g(game)g(tree.)
+41 b(The)28 b(search)g(windo)n(w)f(w)o(as)h(made)g(slightly)f(lar)n
+(ger)h(to)g(re\003ect)0 2491 y(the)f(amount)e(of)i(uncertainty)f(in)h
+(the)f(probable)h(minimax)e(v)n(alue.)36 b(Further)27
+b(details)f(on)h(the)f(algorithm)g(can)h(be)0 2690 y(found)d(in)h
+(Appendix)f(B.)0 2985 y Fg(3.4)119 b(Load)30 b(Balancing)0
+3252 y Fu(Although)21 b(the)i(master)g(attempts)f(to)g(gi)n(v)o(e)g(an)
+h(equal)g(amount)f(of)h(w)o(ork)f(to)h(each)g(sla)n(v)o(e)g(in)f
+(APHID,)i(neither)e(the)0 3451 y(master)h(nor)h(the)f(sla)n(v)o(e)g
+(can)h(predict)f(the)h(amount)e(of)i(ef)n(fort)f(required)h(to)f
+(complete)g(a)h Fl(\()p Fq(d)17 b Fk(\000)h Fq(d)3261
+3415 y Fp(0)3284 3451 y Fl(\))p Fu(-ply)23 b(search)h(for)0
+3650 y(a)h(gi)n(v)o(en)e(piece)j(of)e(w)o(ork.)31 b(Thus,)24
+b(load)g(imbalances)h(can)g(occur)-5 b(.)146 3849 y(As)22
+b(part)g(of)g(a)g(pass)f(of)h(the)g Fq(d)1120 3813 y
+Fp(0)1143 3849 y Fu(-ply)f(tree,)i(the)f(master)f(computes)g(ho)n(w)g
+(man)o(y)g(uncertain)g(nodes)g(it)h(is)f(w)o(aiting)0
+4049 y(for)i(from)g(each)h(sla)n(v)o(e.)29 b(The)23 b(master)g(can)g
+(mo)o(v)o(e)e(lea)n(v)o(es)i(of)g(the)g Fq(d)2258 4012
+y Fp(0)2281 4049 y Fu(-ply)f(tree)i(from)e(an)i Fm(o)o(verwork)o(ed)f
+(slave)g Fu(\(with)0 4248 y(a)g(lar)n(ge)g(number)f(of)h(uncertain)f
+(nodes\))g(to)g(an)h Fm(underwork)o(ed)g(slave)f Fu(\(with)g(no)g
+(uncertain)h(nodes\).)29 b(This)22 b(yields)0 4447 y(a)39
+b(tradeof)n(f)g(between)g(f)o(aster)g(con)l(v)o(er)n(gence)g(for)g(a)g
+(gi)n(v)o(en)f(ply)g(search)h(of)g(the)g(tree)g(and)g(additional)f
+(search)0 4646 y(o)o(v)o(erhead,)31 b(since)f(the)g(pre)n(vious)f
+(searches)i(for)f(the)g(piece)h(of)f(w)o(ork)g(to)g(be)h(mo)o(v)o(ed)d
+(must)i(be)g(re-searched)h(on)0 4846 y(another)25 b(processor)-5
+b(.)146 5045 y(The)39 b(load-balancing)e(algorithm)g(al)o(w)o(ays)h
+(attempts)f(to)h(strip)g(pieces)g(of)h(w)o(ork)f(a)o(w)o(ay)g(from)g
+(the)g(most)0 5244 y(o)o(v)o(erw)o(ork)o(ed)c(sla)n(v)o(e.)60
+b(The)35 b(algorithm)e(prefers)j(to)e(tak)o(e)h(pieces)g(of)g(w)o(ork)g
+(that)f(are)i(small,)g(since)f(the)o(y)f(lead)1900 5589
+y(15)p eop
+%%Page: 16 19
+16 18 bop 0 100 a Fu(to)30 b(less)f(duplicated)g(w)o(ork.)47
+b(The)30 b(\002rst)g(uncertain)g(node)f(encountered)h(for)h(each)f(sla)
+n(v)o(e)g(during)f(a)h(pass)g(is)g(not)0 299 y(considered)c(for)g
+(load-balancing)f(purposes,)g(since)h(it)f(is)h(lik)o(ely)f(being)g
+(searched)i(by)e(that)h(sla)n(v)o(e)f(at)h(this)f(time.)0
+498 y(Another)f(stipulation)f(is)h(that)g(the)h(same)f(piece)h(of)g(w)o
+(ork)g(cannot)f(be)h(mo)o(v)o(ed)e(twice)h(in)h(a)g(ro)n(w;)f(this)f
+(pre)n(v)o(ents)h(a)0 697 y(v)o(ery)g(small)g(piece)h(of)g(w)o(ork)g
+(from)f(being)h(passed)f(from)h(process)g(to)f(process.)146
+897 y(Another)i(cause)h(of)f(a)h(load)f(imbalance)g(is)g(a)g(piece)h
+(of)f(w)o(ork)g(that)g(is)g(much)g(lar)n(ger)h(than)f(the)g(other)g
+(pieces)0 1096 y(of)k(w)o(ork.)47 b(F)o(or)30 b(e)o(xample,)h(the)f
+(search)h(tree)f(for)h(a)g(node)f(along)f(the)h(principal)g(v)n
+(ariation)f(is)h(generally)g(much)0 1295 y(lar)n(ger)39
+b(than)f(the)g(last)g(subtrees)g(e)o(xamined)f(during)h(a)h(sequential)
+e(search.)72 b(When)38 b(there)h(is)f(such)g(a)h(lar)n(ge)0
+1494 y(piece)d(of)f(w)o(ork,)j(multiple)33 b(processes)i(should)f
+(participate)h(in)g(computing)e(the)j(minimax)d(v)n(alue.)62
+b(Thus,)37 b(a)0 1694 y(mechanism)27 b(is)g(needed)i(for)f(breaking)g
+(a)g(lar)n(ge)g(piece)h(of)f(w)o(ork)g(into)f(a)h(number)g(of)g
+(smaller)f(pieces)h(that)g(can)0 1893 y(be)35 b(distrib)n(uted)e(\(via)
+i(the)g(load-balancing)f(algorithm\))g(to)g(other)h(processes.)61
+b(This)34 b(can)h(be)g(accomplished)0 2092 y(by)e(mo)o(ving)e(the)i
+(master')-5 b(s)32 b(parallelization)g(horizon)h(deeper)h(within)e(the)
+h(tree)g(for)h(a)f(lar)n(ge)h(piece)f(of)g(w)o(ork.)0
+2291 y(This)c(allo)n(ws)f(the)h(master)g(to)g(subdi)n(vide)f(a)i
+(single)e(piece)i(of)g(w)o(ork)f(into)g(man)o(y)f(smaller)h(pieces.)45
+b(It)29 b(could)g(be)0 2491 y(said)f(that)h(the)f(lar)n(ge)h(piece)h
+(of)e(w)o(ork)h(is)f Fm(e)n(xempted)h Fu(from)g(the)g(parallelization)e
+(horizon)i(at)f Fq(d)3283 2455 y Fp(0)3306 2491 y Fu(-ply)-6
+b(.)42 b(Note)29 b(that)0 2690 y(ne)n(w)c(pieces)h(of)g(w)o(ork)g
+(created)g(from)f(e)o(x)o(emptions)f(can)i(also)f(be)h(e)o(x)o(empted.)
+32 b(Thus,)25 b(Figure)h(4)g(is)f(misleading;)0 2889
+y(APHID)g(parallelism)f(does)g(not)h(necessarily)f(occur)h(at)g(the)g
+(same)f(depth)h(in)f(the)h(tree.)146 3088 y(The)32 b(master)f(is)g
+(responsible)g(for)h(determining)e(the)i(pieces)f(of)h(w)o(ork)f(to)h
+(be)g(e)o(x)o(empted.)49 b(It)32 b(bases)f(these)0 3288
+y(decisions)22 b(on)g(the)g(sla)n(v)o(e')-5 b(s)22 b(feedback)h(on)f
+(the)h(ef)n(fort)f(required)h(to)f(search)h(each)g(piece)g(of)g(w)o
+(ork)f(\(subtree)h(size\).)0 3487 y(Periodically)-6 b(,)35
+b(the)f(master)g(determines)f(the)h(lar)n(gest)g(pieces)g(of)g(w)o(ork)
+g(that)g(ha)n(v)o(e)f(been)h(e)o(xplored)g(recently)-6
+b(,)0 3686 y(along)22 b(with)g(the)h(a)n(v)o(erage)g(size)g(of)g(each)h
+(piece)f(of)g(w)o(ork.)30 b(If)23 b(the)g(size)g(of)g(the)f(lar)n(gest)
+h(piece)g(of)g(w)o(ork)g(is)f Fq(v)27 b Fu(times)0 3885
+y(the)f(size)g(of)g(the)g(a)n(v)o(erage)g(piece)g(of)g(w)o(ork,)h(the)e
+(lar)n(gest)h(piece)h(of)f(w)o(ork)f(is)h(subdi)n(vided)e(in)h(future)h
+(searches.)35 b Fq(v)0 4085 y Fu(is)24 b(an)h(application-dependent)f
+(parameter)h(in)f(APHID.)146 4284 y(The)38 b(nature)h(of)f(the)g
+Fq(\013)q(\014)43 b Fu(algorithm)37 b(does)h(not)f(guarantee)i(that)e
+(man)o(y)g(more)h(w)o(ork)g(granules)g(will)f(be)0 4483
+y(created)27 b(if)g(the)f(search)h(horizon)f(is)g(e)o(xtended)g(by)g(a)
+h(single)f(ply)-6 b(.)34 b(F)o(or)27 b(e)o(xample,)f(if)g(the)h(node)f
+(to)g(be)h(e)o(x)o(empted)0 4682 y(is)h(a)g(CUT)h(node,)g(then)f(the)g
+(search)g(will)g(lik)o(ely)f(generate)i(a)f(single)g(ALL)g(node.)40
+b(When)29 b(APHID)f(e)o(x)o(empts)f(a)0 4882 y(lar)n(ge)i(piece)f(of)g
+(w)o(ork,)h(the)f(horizon)g(is)f(e)o(xtended)h(by)g(2)g(ply)f(to)h
+(guarantee)h(that)e(the)h(w)o(ork)g(will)g(be)g(split)f(into)0
+5081 y(multiple)c(pieces.)1900 5589 y(16)p eop
+%%Page: 17 20
+17 19 bop 0 100 a Fg(3.5)119 b(Exter)n(nal)30 b(Interface)g(of)f(the)h
+(APHID)g(Algorithm)0 366 y Fu(The)25 b(APHID)g(algorithm)f(has)h(been)g
+(written)f(as)h(an)g(application-independent)e(library)h(of)h(C)h
+(routines)e(\(using)0 565 y(PVM)37 b(for)g(process)g(communication)f
+([4]\).)68 b(It)37 b(w)o(as)g(designed)f(to)h(pro)o(vide)f(minimal)f
+(interv)o(ention)h(into)g(a)0 765 y(w)o(orking)29 b(v)o(ersion)f(of)i
+(sequential)e Fq(\013)q(\014)6 b Fu(.)44 b(F)o(or)30
+b(a)g(program)f(to)g(use)g(the)h(library)-6 b(,)29 b(a)h(fe)n(w)g
+(application-dependent)0 964 y(routines)22 b(\(such)h(as)h(mo)o(v)o(e)d
+(format,)i(ho)n(w)g(to)g(mak)o(e/unmak)o(e)f(mo)o(v)o(es,)f(setting)h
+(a)i(windo)n(w)e(for)h(a)h(sla)n(v)o(e')-5 b(s)22 b(search,)0
+1163 y Fm(etc)p Fu(.\))39 b(must)27 b(be)h(written)e(so)i(that)f(APHID)
+h(can)g(access)g(the)f(required)h(information)e(without)g(ha)n(ving)h
+(to)g(kno)n(w)0 1362 y(the)e(data)g(structures)f(used)g(in)h(the)f
+(application.)146 1562 y(T)-8 b(o)25 b(parallelize)f(a)h(sequential)e
+Fq(\013)q(\014)30 b Fu(program,)24 b(the)g(user)h(modi\002es)e(their)i
+(search)g(routine)e(as)i(sho)n(wn)e(in)h(Fig-)0 1761
+y(ure)h(6.)32 b(The)25 b(changes)g(required)g(by)g(APHID)h(are)g(mark)o
+(ed)f(by)g(shading,)f(and)h(easily)f(\002t)i(into)e(the)h(standard)g
+Fq(\013)q(\014)0 1960 y Fu(frame)n(w)o(ork.)42 b(This)28
+b(one)h(piece)g(of)g(code)g(functions)e(as)i(the)g(search)g(algorithm)e
+(for)i(both)f(the)h(master)g(and)f(the)0 2159 y(sla)n(v)o(e)22
+b(processes.)30 b(The)22 b Fb(aphid)p 1144 2159 30 4
+v 35 w(master)f Fu(routine)h(identi\002es)g(whether)h(the)f(process)h
+(is)f(a)h(master)f(or)h(a)g(sla)n(v)o(e.)0 2359 y(The)j(master)f(uses)h
+Fb(aphid)p 976 2359 V 34 w(horizon)f Fu(to)g(tell)g(if)h(it)f(is)h(at)f
+(a)i(leaf)f(node)f(in)h(its)f(tree.)34 b(Since)26 b(games)f(are)h
+(played)0 2558 y(under)31 b(real-time)g(constraints,)g
+Fb(aphid)p 1444 2558 V 35 w(checkalarm)e Fu(is)i(periodically)f(called)
+h(to)g(check)h(whether)f(there)0 2757 y(is)i(a)h(reason)g(to)g(abort)f
+(the)h(search.)58 b Fb(Aphid)p 1621 2757 V 35 w(intnode)p
+2076 2757 V 34 w(start)33 b Fu(and)h Fb(aphid)p 2921
+2757 V 35 w(intnode)p 3376 2757 V 34 w(end)f Fu(tell)g(the)0
+2956 y(master)27 b(that)g(a)h(search)g(is)f(be)o(ginning/ending)e(for)j
+(this)e(interior)h(node.)39 b(Which)27 b(searching)h(an)f(interior)g
+(node,)0 3156 y Fb(aphid)p 306 3156 V 35 w(intmnode)p
+821 3156 V 34 w(move)18 b Fu(k)o(eeps)h(track)g(of)g(which)f(mo)o(v)o
+(e)f(is)i(being)f(searched,)j(and)d Fb(aphid)p 3359 3156
+V 35 w(intnode)p 3814 3156 V 34 w(update)0 3355 y Fu(records)25
+b(the)g(v)n(alue)f(of)h(the)g(search.)146 3554 y(In)32
+b(addition)e(to)i(the)f(abo)o(v)o(e,)h(approximately)e(10)i(lines)f(of)
+g(code)h(ha)n(v)o(e)f(to)h(be)f(added)h(outside)f(of)g(the)h
+Fq(\013)q(\014)0 3753 y Fu(algorithm)25 b(to)g(allo)n(w)g(APHID)i(to)f
+(mak)o(e)g(the)g(sequential)f(program)h(into)f(a)h(parallel)g(program.)
+35 b(More)26 b(speci\002c)0 3953 y(information)d(on)i(each)g(of)g(the)g
+Fb(aphid)p 1388 3953 V 59 w Fu(functions)f(and)h(call-back)g(routines)f
+(can)h(be)g(found)f(else)n(where)h([2].)146 4152 y(Other)31
+b(parallel)f Fq(\013)q(\014)6 b Fu(-based)30 b(algorithms)f(require)i
+(signi\002cant)f(changes)h(to)f(the)g(sequential)g(search)h(algo-)0
+4351 y(rithms)24 b(used)i(in)f(practice.)34 b(If)26 b(the)f(search)i
+(algorithm)d(has)i(been)f(designed)g(without)g(re)o(gard)g(for)h
+(multitasking)0 4550 y(or)f(a)f(speci\002c)h(parallel)g(model,)e(inte)o
+(grating)g(a)i(parallel)f(algorithm)f(into)h(the)g(code)h(can)f(be)h(a)
+g(signi\002cant)f(task.)0 4750 y(By)33 b(using)e(the)h(sequential)f
+(algorithm)g(and)h(call-back)h(functions)e(to)h(the)g(user')-5
+b(s)31 b(code)i(whene)n(v)o(er)f(possible,)0 4949 y(APHID)25
+b(represents)f(a)g(signi\002cant)g(decrease)h(in)e(the)h(ef)n(fort)g
+(required)h(to)e(achie)n(v)o(e)h(a)g(w)o(orking)g(parallel)g(game-)0
+5148 y(tree)h(search)h(program)e(o)o(v)o(er)g(its)g(synchronous)g
+(counterparts.)1900 5589 y(17)p eop
+%%Page: 18 21
+18 20 bop 789 188 a
+ 18334146 37416636 11972280 9472573 28220375 42626580 startTexFig
+ 789 188 a
+%%BeginDocument: pics/aphidcode-alphabeta.ps
+%Magnification: 0.50
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+151.5 664.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
+ 0.03000 0.03000 sc
+% Polyline
+n 1150 5445 m 9150 5445 l 9150 5645 l 1150 5645 l cp gs 0.90 setgray ef gr
+% Polyline
+n 1150 7245 m 9150 7245 l 9150 7845 l 1150 7845 l cp gs 0.90 setgray ef gr
+% Polyline
+n 1150 8645 m 9150 8645 l 9150 9445 l 1150 9445 l cp gs 0.90 setgray ef gr
+% Polyline
+n 1150 10045 m 9150 10045 l 9150 10245 l 1150 10245 l cp gs 0.90 setgray ef gr
+% Polyline
+n 1150 10645 m 9150 10645 l 9150 10845 l 1150 10845 l cp gs 0.90 setgray ef gr
+% Polyline
+n 1150 12645 m 9150 12645 l 9150 12845 l 1150 12845 l cp gs 0.90 setgray ef gr
+% Polyline
+n 1150 14645 m 9150 14645 l 9150 14845 l 1150 14845 l cp gs 0.90 setgray ef gr
+7.500 slw
+% Polyline
+n 1050 575 m 9250 575 l 9250 17300 l 1050 17300 l cp gs col-1 s gr
+/Courier ff 180.00 scf sf
+1500 1400 m
+gs 1 -1 sc (int numOfSuccessors;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 1600 m
+gs 1 -1 sc (int gamma;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 1800 m
+gs 1 -1 sc (int i;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2000 m
+gs 1 -1 sc (int sc;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2200 m
+gs 1 -1 sc (int under;) col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 1800 m
+gs 1 -1 sc (/* move counter */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 2000 m
+gs 1 -1 sc (/* score returned by search */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 2200 m
+gs 1 -1 sc (/* alpha for move to be searched */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 2400 m
+gs 1 -1 sc (/* beta for move to be searched */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 4400 m
+gs 1 -1 sc (/* Generate hash value and key for this position */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 4800 m
+gs 1 -1 sc (/* Fetch information from transposition table */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 5600 m
+gs 1 -1 sc (if \(aphid_master\(\) == FALSE && h_length >= plytogo\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 5800 m
+gs 1 -1 sc (if \(flag == VALID\) { return\(h_score\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 6000 m
+gs 1 -1 sc (if \(flag == LBOUND\) { alpha = max\(alpha,h_score\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 6200 m
+gs 1 -1 sc (if \(flag == UBOUND\) { beta = min\(beta,h_score\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 6400 m
+gs 1 -1 sc (if \(alpha >= beta\) { return\(h_score\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 6600 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 7000 m
+gs 1 -1 sc (/* Evaluate position if at bottom of tree */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 5400 m
+gs 1 -1 sc (/* If we have searched position deep enough, use score info */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 7200 m
+gs 1 -1 sc (if \(plytogo == 0\) { return\(Evaluate\(p\)\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 4600 m
+gs 1 -1 sc (generate_hash\(p, p_hash, p_key\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 5000 m
+gs 1 -1 sc (retrieve\(p_hash, p_key, p_entry, h_length, h_score, h_flag, h_move\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 7400 m
+gs 1 -1 sc (if \(aphid_horizon\(depth, plytogo, p_hash, p_key\) == TRUE\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 7600 m
+gs 1 -1 sc (return\(aphid_eval_leaf\(alpha, beta, depth, plytogo, p_hash, p_key\)\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 7800 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 8200 m
+gs 1 -1 sc (/* Generate move list, evaluate position if no moves */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 8400 m
+gs 1 -1 sc (numOfSuccessors = GenerateSuccessors\(p\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 8600 m
+gs 1 -1 sc (if \(numOfSuccessors == 0\) { return\(Evaluate\(p\)\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 8800 m
+gs 1 -1 sc (if \(aphid_checkalarm\(FALSE\) != FALSE\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 9000 m
+gs 1 -1 sc (terminate_search = TRUE;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 9400 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 10000 m
+gs 1 -1 sc (under = alpha; over = beta;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 10200 m
+gs 1 -1 sc (aphid_intnode_start\(depth, p_hash, p_key\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 11800 m
+gs 1 -1 sc (if \(sc > under && i > 1 && sc < beta && plytogo > 2\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+2100 12000 m
+gs 1 -1 sc (sc = -AlphaBeta\(p,-beta,-sc,plytogo-1\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 11600 m
+gs 1 -1 sc (/* Is a research necessary? */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 11400 m
+gs 1 -1 sc (sc = -AlphaBeta\(p,-over,-under,plytogo-1\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 10800 m
+gs 1 -1 sc (aphid_intnode_move\(depth, &\(movelist[i]\)\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 11000 m
+gs 1 -1 sc (make_move\(p, movelist[i]\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 3000 m
+gs 1 -1 sc (char *p_hash;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 3200 m
+gs 1 -1 sc (char *p_key;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 3400 m
+gs 1 -1 sc (int h_length;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 3600 m
+gs 1 -1 sc (int h_score;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 3800 m
+gs 1 -1 sc (int h_flag;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2800 m
+gs 1 -1 sc (char *p_entry;) col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 2800 m
+gs 1 -1 sc (/* pointer to physical location of TT entry */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 3000 m
+gs 1 -1 sc (/* pointer to hash value */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 3200 m
+gs 1 -1 sc (/* pointer to hash table lock */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 3400 m
+gs 1 -1 sc (/* ply position previously searched to */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 3600 m
+gs 1 -1 sc (/* score at h_length ply from TT */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 3800 m
+gs 1 -1 sc (/* type of score \(VALID, LBOUND or UBOUND\) */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 4000 m
+gs 1 -1 sc (/* recommended move from TT */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 4000 m
+gs 1 -1 sc (move h_move;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2400 m
+gs 1 -1 sc (int over;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 2600 m
+gs 1 -1 sc (move move_opt;) col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 2600 m
+gs 1 -1 sc (/* current best move */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 12800 m
+gs 1 -1 sc (aphid_intnode_update\(depth, value\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 1200 m
+gs 1 -1 sc (move movelist[MAX_LEGAL_MOVES];) col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 1200 m
+gs 1 -1 sc (/* ordered list of all moves */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 1400 m
+gs 1 -1 sc (/* total number of moves in movelist[] */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+9000 1600 m
+gs 1 -1 sc (/* current best minimax value */) dup sw pop neg 0 rm col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 10600 m
+gs 1 -1 sc (for\(i=1; \(i <= numOfSuccessors && score <= beta\); i++\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 14000 m
+gs 1 -1 sc (/* set window for next child */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 14200 m
+gs 1 -1 sc (under = max\(gamma, alpha\); over = under + 1;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 14400 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 15200 m
+gs 1 -1 sc (/* Write information into transposition table */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 13000 m
+gs 1 -1 sc (if \(sc > gamma\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+2100 13200 m
+gs 1 -1 sc (gamma = sc;) col-1 sh gr
+/Courier ff 180.00 scf sf
+2100 13400 m
+gs 1 -1 sc (move_opt = movelist[i];) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 13600 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 9800 m
+gs 1 -1 sc (gamma = -INFINITY;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 14800 m
+gs 1 -1 sc (aphid_intnode_end\(depth, score, beta\); ) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 12200 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 12600 m
+gs 1 -1 sc (unmake_move\(p, movelist[i]\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 15400 m
+gs 1 -1 sc (h_flag = VALID;) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 15600 m
+gs 1 -1 sc (if \(score <= alpha\) { h_flag = LBOUND; }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 16000 m
+gs 1 -1 sc (if \(h_length <= plytogo\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 15800 m
+gs 1 -1 sc (if \(score >= beta\) { h_flag = UBOUND; }) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 16400 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 16200 m
+gs 1 -1 sc (p_entry = store\(p_hash, p_key, plytogo, score, h_flag, move_opt\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 17200 m
+gs 1 -1 sc (} /* AlphaBeta */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 800 m
+gs 1 -1 sc (int AlphaBeta\(position p, int alpha, int beta, int depth, int plytogo\) {) col-1 sh gr
+/Courier ff 180.00 scf sf
+1800 9200 m
+gs 1 -1 sc (return\(0\); /* Should exit AlphaBeta quickly when alarm on */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1500 16800 m
+gs 1 -1 sc (return\(gamma\);) col-1 sh gr
+showpage
+$F2psEnd
+rs
+%%EndDocument
+
+ endTexFig
+ 770 5131 a Fu(Figure)25 b(6:)30 b(Code)c(Example:)j(APHID)d(within)d
+(the)i Fq(\013)q(\014)30 b Fu(Algorithm)1900 5589 y(18)p
+eop
+%%Page: 19 22
+19 21 bop 146 100 a Fu(It)23 b(should)f(also)h(be)g(noted)f(that,)h(in)
+g(terms)f(of)h(ease)h(of)f(use,)g(the)g(APHID)g(library)g(is)f(almost)g
+(unique.)29 b(Gi)n(v)o(en)0 299 y(an)22 b Fq(\013)q(\014)27
+b Fu(program)21 b(with)g(the)g(code)h(structured)f(to)g(use)g(the)h
+(Cilk)f(directi)n(v)o(es,)g(then)g(parallel)g Fm(sync)o(hr)l(onous)f
+Fu(search)0 498 y(algorithms,)f(such)g(as)h(YBWC)h(and)e(PV)-10
+b(-Split,)21 b(can)f(be)f(easily)h(implemented)e([1].)29
+b(Cilk)19 b(uses)g(multiple)f(threads)0 697 y(to)27 b(coordinate)g(the)
+g(search,)h(where)g(each)f(thread)h(represents)f(a)g(node)g(where)h(w)o
+(ork)f(has)g(been)g(split)f(of)n(f)h(from)0 897 y(its)d(parent.)0
+1236 y Fo(4)143 b(Experimental)33 b(Results)0 1539 y
+Fu(Most)c(authors)g(demonstrate)h(the)g(ef)n(fecti)n(v)o(eness)e(of)i
+(their)g(parallel)g(algorithm)f(using)g(a)h(single)f(application.)0
+1738 y(Chess)40 b(is)f(often)h(chosen)g(because)g(synchronous)f
+(algorithms)f(usually)h(yield)g(good)g(speedups)g(when)h(the)0
+1937 y(branching)24 b(f)o(actor)i(is)e(lar)n(ge.)31 b(In)25
+b(contrast,)g(APHID')-5 b(s)25 b(performance)g(will)f(be)h(presented)g
+(using)f(four)g(dif)n(ferent)0 2136 y(applications,)35
+b(each)g(written)f(by)g(dif)n(ferent)g(authors)g(and)g(with)f(dif)n
+(ferent)h(coding)g(styles.)58 b(This)34 b(ambitious)0
+2336 y(comparison)27 b(of)i(performance)g(in)f(multiple)e(application)i
+(domains)f(is)h(feasible)g(because)h(of)f(APHID')-5 b(s)29
+b(ease)0 2535 y(of)c(inte)o(gration)e(into)h(an)h(e)o(xisting)e
+(sequential)h(program.)146 2734 y(This)34 b(section)f(presents)h(e)o
+(xperimental)e(results)i(for)g(APHID.)g(Section)g(4.1)g(describes)g
+(the)g(e)o(xperimen-)0 2933 y(tal)h(methodology)-6 b(.)60
+b(Section)36 b(4.2)f(describes)g(the)g(o)o(v)o(erhead)g(model)g(used)g
+(to)g(analyze)h(performance.)63 b(The)0 3133 y(e)o(xperimental)24
+b(results)g(are)h(presented)g(in)f(Section)h(4.3.)0 3428
+y Fg(4.1)119 b(Methodology)0 3694 y Fu(APHID)19 b(has)g(been)g
+(implemented)e(in)i(four)g(applications:)28 b(C)t Fa(H)t(I)t(N)t(O)t(O)
+t(K)r Fu(,)e(C)t Fa(R)t(A)t(F)t(T)t(Y)r Fu(,)h(K)t Fa(E)t(Y)-6
+b(A)t(N)t(O)25 b Fu(and)c(T)t Fa(H)t(E)t Fu(T)t Fa(U)t(R)t(K)r
+Fu(.)2 3893 y(C)t Fa(H)t(I)t(N)t(O)t(O)t(K)26 b Fu(is)20
+b(the)g(Man)g(vs.)28 b(Machine)20 b(W)-8 b(orld)20 b(Check)o(ers)h
+(Champion)e(program)h(\(principal)f(author:)28 b(Jonathan)0
+4093 y(Schaef)n(fer\).)37 b(K)t Fa(E)t(Y)-6 b(A)t(N)t(O)32
+b Fu(is)25 b(a)h(state-of-the-art)g(Othello)e(program,)i(which)f(rank)o
+(ed)h(among)f(the)h(top)f(\002)n(v)o(e)g(com-)0 4292
+y(puter)32 b(Othello)e(programs)h(w)o(orldwide)g(from)h(1992)f(to)g
+(1996)g(\(author:)44 b(Mark)32 b(Brockington\).)52 b(C)t
+Fa(R)t(A)t(F)t(T)t(Y)40 b Fu(is)0 4491 y(a)35 b(strong)f(free)n(w)o
+(are)i(chess)f(program)g(\(author:)51 b(Robert)35 b(Hyatt\).)63
+b(T)t Fa(H)t(E)t Fu(T)t Fa(U)t(R)t(K)42 b Fu(is)34 b(a)h(strong)g
+(chess)f(program)0 4690 y(designed)g(by)h(tw)o(o)g(graduate)g(students)
+f(at)h(the)g(Uni)n(v)o(ersity)e(of)i(Alberta)g(\(Andreas)g(Junghanns)f
+(and)h(Yngvi)0 4890 y(Bjornsson\).)63 b(Both)36 b(chess)g(programs)g
+(ha)n(v)o(e)f(been)h(participants)f(in)h(a)g(W)-8 b(orld)36
+b(Computer)f(Chess)h(Champi-)0 5089 y(onsip.)52 b(All)32
+b(of)g(the)g(applications)f(ha)n(v)o(e)h(a)h(\002nely-tuned)f
+(sequential)f(search)i(algorithm)e(that)h(considers)f(the)0
+5288 y(best)e(mo)o(v)o(e)e(\002rst)i(approximately)e(90\045)i(\(or)g
+(more\))g(of)g(the)g(time.)42 b(In)29 b(practice,)h(the)o(y)e(each)i
+(search)f(trees)h(that)1900 5589 y(19)p eop
+%%Page: 20 23
+20 22 bop 0 100 a Fu(are)26 b(close)e(to)h(the)f(critical)h(tree)g(in)f
+(size.)146 299 y(All)g(e)o(xperiments)f(were)j(performed)e(on)g(a)h
+(Silicon)f(Graphics)h(Origin)e(2000)h(with)g(64)g(processors.)3631
+263 y Fn(6)3701 299 y Fu(Each)0 498 y(of)34 b(the)g(applications)e
+(were)j(compiled)e(with)g(SGI')-5 b(s)34 b Fb(cc)g Fu(compiler)-5
+b(.)57 b(F)o(or)34 b(the)g(parallel)g(tests,)h(tw)o(o)e(dif)n(ferent)0
+697 y(v)o(ersions)h(of)i(the)g(code)g(were)g(compiled.)62
+b(The)36 b(\002rst)g(parallel)f(program)h(could)f(be)h(used)f(at)h
+(run-time)f(as)h(a)0 897 y(master)30 b(or)g(a)g(sla)n(v)o(e)g(by)f
+(APHID.)i(The)f(second)g(program)g(w)o(as)g(an)g(e)o(x)o(ecutable)f
+(that)h(could)f(only)g(be)i(used)e(by)0 1096 y(APHID)34
+b(as)f(a)h(sla)n(v)o(e.)55 b(This)33 b(separation)g(impro)o(v)o(ed)e
+(performance,)36 b(since)d(a)h(number)e(of)i(callback)f(routines)0
+1295 y(used)25 b(only)f(by)g(the)h(master)f(impacted)g(the)h
+(performance)g(of)g(the)g(sla)n(v)o(es)f(when)g(left)h(in)g(the)f
+Fq(\013)q(\014)30 b Fu(algorithm.)146 1494 y(P)o(arallel)i(and)g
+(sequential)f(algorithms)f(often)h(do)h(not)f(agree)i(with)e(each)h
+(other)f(about)h(the)f(search)i(result)0 1694 y(\(v)n(alue)24
+b(and/or)g(best)g(mo)o(v)o(e\))f(when)h(the)h(full)f(v)o(ersion)f(of)h
+(the)h(program)f(is)g(used)g([12].)31 b(F)o(or)24 b(e)o(xample,)f(dif)n
+(ferent)0 1893 y(search)g(windo)n(ws)e(can)i(cause)g(dif)n(ferent)f
+(search)h(e)o(xtensions)e(to)h(be)g(turned)h(on,)f(resulting)g(in)g(a)h
+(dif)n(ferent)f(v)n(alue)0 2092 y(at)33 b(the)h(root.)56
+b(One)33 b(w)o(ould)g(prefer)h(that)f(the)g(parallel)g(and)h
+(sequential)e(algorithms)g(return)h(identical)g(v)n(alues)0
+2291 y(and)26 b(principal)f(v)n(ariations,)g(allo)n(wing)f(for)i(a)g
+(meaningful)f(comparison.)33 b(It)26 b(is)f(dif)n(\002cult)g(to)h(mak)o
+(e)f(this)g(happen)0 2491 y(without)i(se)n(v)o(erely)h(crippling)g(the)
+h(program')-5 b(s)28 b(sequential)f(search)j(algorithm.)41
+b(As)29 b(a)g(compromise,)f(most)g(of)0 2690 y(the)20
+b(search)i(result)e(dif)n(ferences)h(can)g(be)f(eliminated)g(by)g
+(disabling)f(all)h Fq(\013)q(\014)26 b Fu(windo)n(w-based)20
+b(search)h(e)o(xtensions)0 2889 y(and)h(reductions.)30
+b(This)21 b(does)i(not)f(imply)f(that)h(a)h(\002x)o(ed)f(search)h
+(depth)f(w)o(as)h(enforced)g(on)f(the)g(programs.)30
+b(As)22 b(an)0 3088 y(e)o(xample,)30 b(the)g(check)o(ers)g(and)g(chess)
+g(programs)f(still)g(used)g(quiescence)h(search)h(to)e(e)o(xtend)g(the)
+h(search)g(well)0 3288 y(be)o(yond)24 b(the)g Fq(d)p
+Fu(-ply)g(search)i(horizon.)146 3487 y(The)g(size)f(of)g(each)h(of)g
+(the)f(searches)h(is)f(important)e(to)i(the)g(observ)o(ed)g(speedup.)32
+b(In)25 b(synchronous)f(parallel)0 3686 y(game-tree)h(search)g
+(algorithms,)e(the)i(speedup)f(can)h(be)g(impro)o(v)o(ed)e(arbitrarily)
+h(by)h(increasing)f(the)h(size)f(of)h(the)0 3885 y(search)e([15].)30
+b(Ho)n(we)n(v)o(er)l(,)21 b(searching)h(game)g(trees)g(that)g(occur)g
+(under)g(tournament)f(time)h(controls)f(is)h(critical)f(to)0
+4085 y(assessing)e(a)h(parallel)f(game-tree)h(search)g(algorithm')-5
+b(s)18 b(performance.)29 b(Thus,)20 b(the)g(size)f(of)h(the)g(indi)n
+(vidual)d(tests)0 4284 y(w)o(as)24 b(limited)e(so)h(that)h(the)f(a)n(v)
+o(erage)h(time)f(spent)g(searching)h(on)f(a)h(64-processor)g(machine)f
+(did)g(not)g(e)o(xceed)h(the)0 4483 y(usual)e(time)h(controls)f(in)g
+(the)h(game)f(being)h(studied.)29 b(This)22 b(is)h(180)f(seconds)h(in)f
+(chess,)h(60)g(seconds)g(in)f(Othello,)0 4682 y(and)29
+b(120)g(seconds)g(in)f(the)h(game)g(of)g(check)o(ers.)45
+b(Consequently)-6 b(,)29 b(the)g(search)g(depth)g(achie)n(v)o(ed)f
+(depended)h(on)0 4882 y(the)f(game)g(being)g(studied)f(and)i(the)f
+(position)e(being)i(tested.)41 b(F)o(or)29 b(check)o(ers,)g(the)g
+(search)g(depth)e(v)n(aried)h(from)0 5081 y(25)h(to)f(29)h(ply)-6
+b(,)29 b(while)f(for)h(chess)g(it)g(w)o(as)g(11)f(or)i(12)e(ply)-6
+b(.)42 b(F)o(or)29 b(Othello,)g(all)g(positions)e(were)i(searched)h(15)
+f(ply)p 0 5171 1560 4 v 112 5232 a Fj(6)149 5262 y Fi(Additional)19
+b(e)o(xperiments)g(ha)n(v)o(e)g(been)h(done)f(using)h(Sun)g(equipment)e
+(to)i(test)h(the)f(portability)f(of)h(the)g(APHID)h(library)e([2)o(].)
+1900 5589 y Fu(20)p eop
+%%Page: 21 24
+21 23 bop 0 100 a Fu(deep.)60 b(The)35 b(parallelization)f(horizon)g(v)
+n(aried)g(from)g(4)h(to)f(8)g(ply)g(\(4)h(in)f(chess)h(and)f(Othello,)i
+(6)f(to)f(8)g(ply)g(in)0 299 y(check)o(ers\).)63 b(A)36
+b(suitable)e(benchmark)h(set)g(w)o(as)h(chosen)f(for)g(each)h(game:)51
+b(the)35 b(Bratk)o(o-K)m(opec)h(test)f(set)g(for)0 498
+y(chess)25 b([10],)g(positions)e(from)i(the)g(\002rst)g(Chinook-T)m
+(insle)o(y)e(match)h(for)i(check)o(ers)g([12)o(],)g(and)f(positions)e
+(from)i(a)0 697 y(W)-8 b(orld)24 b(Championship)g(game)g(for)h(Othello)
+f([2].)146 897 y(Using)j(a)g(transposition)e(table)i(that)g(is)g(lar)n
+(ge)g(enough)g(to)g(accommodate)f(results)h(disco)o(v)o(ered)f(during)g
+(the)0 1096 y(search)g(is)f(important.)32 b(that)25 b(k)o(ept)g(the)g
+(o)o(v)o(erall)g(size)g(of)h(the)f(program)g(and)h(data)f(belo)n(w)g
+(400)g(MB)h(w)o(as)f(chosen.)0 1295 y(It)c(w)o(as)h(unanticipated)e
+(that)g(this)h(limitation)e(w)o(ould)h(dramatically)g(af)n(fect)i(the)f
+(speedup)g(on)g(a)h(lar)n(ge)f(number)g(of)0 1494 y(processors)g(b)n
+(ut,)g(as)g(discussed)f(later)l(,)i(400)f(MB)g(pro)o(v)o(ed)f(to)h(be)g
+(inadequate)g(for)g(the)g(lar)n(ge)g(searches)h(attempted)0
+1694 y(in)i(the)h(chess)g(and)g(check)o(ers)g(programs.)146
+1893 y(Distrib)n(uted)g(transposition)f(table)i(schemes)g(quickly)g
+(become)g(communication-bound)e(on)i(modern)f(ar)n(-)0
+2092 y(chitectures.)58 b(Thus,)35 b(it)f(is)f(usually)g(infeasible)g
+(to)h(implement)e(sharing)h(of)h(transposition)e(table)i(entries)f(on)0
+2291 y(systems)21 b(where)j(shared)f(memory)f(is)g(not)g(a)n(v)n
+(ailable)g(in)h(hardw)o(are.)30 b(The)23 b(APHID)h(library)e(contains)g
+(a)h(method)0 2491 y(for)g(distrib)n(uting)d(transposition)h(table)h
+(information)f(that)i(does)f(not)g(o)o(v)o(erload)g(the)g
+(interconnection)g(netw)o(ork.)0 2690 y(Experiments)30
+b(with)g(APHID)h(using)f(distrib)n(uted)f(transposition)g(tables)h(are)
+i(a)n(v)n(ailable)e(else)n(where)h([2].)49 b(The)0 2889
+y(e)o(xperiments)19 b(reported)i(in)f(this)g(paper)h(were)g(run)g(on)f
+(a)h(shared-memory)g(computer)l(,)f(allo)n(wing)f(us)i(to)f(compare)0
+3088 y(our)25 b(results)f(with)g(those)g(reported)h(in)f(the)h(recent)g
+(literature.)146 3288 y(Note)31 b(that)f(the)g(transposition)f(table)h
+(size)h(did)f(not)g(increase)h(as)g(the)g(number)f(of)h(processors)f
+(increased.)0 3487 y(The)k(sequential)g(tests)f(used)h(e)o(xactly)g
+(the)g(same)g(number)g(of)h(table)f(entries)g(as)g(each)h(of)g(the)f
+(parallel)g(tests.)0 3686 y(If)d(the)g(parallel)g(run)g(used)g(64)f
+(processors,)i(then)f(each)g(process)g(recei)n(v)o(ed)g(1/64th)e(of)i
+(the)g(table)g(entries)g(that)0 3885 y(the)d(sequential)f(process)h
+(recei)n(v)o(ed.)40 b(Thus,)29 b(the)f(e)o(xperiments)e(measured)i(the)
+g(scalability)f(of)h(the)g(number)g(of)0 4085 y(processors)d(and)h(not)
+f(the)g(scalability)g(of)h(memory)-6 b(.)32 b(Other)25
+b(researchers)i(ha)n(v)o(e)e(allo)n(wed)g(the)g(number)h(of)f(table)0
+4284 y(entries)34 b(to)g(increase)h(in)f(tandem)g(with)g(the)g(number)g
+(of)g(processors.)60 b(This)33 b(can)i(result)f(in)g(an)h(unf)o(air)f
+(com-)0 4483 y(parison)29 b(\(and)h(signi\002cantly)f(in\003ated)g
+(speedups\))h(because)g(the)f(sequential)g(algorithm')-5
+b(s)28 b(table)h(may)h(not)f(be)0 4682 y(lar)n(ge)e(enough)f(to)h(hold)
+f(the)h(critical)f(tree)h(in)g(memory)-6 b(,)26 b(whereas)h(the)g
+(parallel)f(v)o(ersion)g(can.)37 b(When)27 b(e)o(xamin-)0
+4882 y(ing)i(the)h(game-tree)g(search)g(literature,)h(the)e(reader)i
+(should)e(a)n(v)n(oid)g(directly)g(comparing)g(speedups)h(without)0
+5081 y(understanding)23 b(the)i(conditions)e(under)i(which)f(the)o(y)g
+(were)i(achie)n(v)o(ed.)146 5280 y(The)21 b(standard)g(set)g(of)g
+(tests)f(for)h(each)h(program)e(in)l(v)n(olv)o(ed)g(e)o(xamining)f(a)i
+(\002x)o(ed-depth)g(game)f(tree)h(\(modulo)1900 5589
+y(21)p eop
+%%Page: 22 25
+22 24 bop 0 100 a Fu(an)o(y)28 b(quiescence)g(search\))h(and)f(using)f
+(a)h(shared)h(memory)e(transposition)f(table,)j(o)o(v)o(er)e(a)h(v)n
+(arying)f(number)h(of)0 299 y(processors.)g(Each)20 b(program)e(w)o(as)
+h(tested)g(on)g Fq(n)p Fu(=16,)h(32)f(and)g(64)f(processors,)i(using)e
+(a)i(single-le)n(v)o(el)d(hierarchy:)0 498 y(one)25 b(master)f
+(allocated)h(w)o(ork)f(to)h Fq(n)d Fk(\000)h Fl(1)i Fu(sla)n(v)o(es)e
+(for)j(each)f(test)f(position.)146 697 y(There)34 b(are)g(tw)o(o)e
+(methods)g(of)h(reporting)g(speedups)f(and)h(o)o(v)o(erheads)f(for)h(a)
+h(lar)n(ge)f(number)g(of)g(samples.)0 897 y(The)28 b(\002rst)f(is)g(to)
+g(add)h(all)f(of)h(the)f(searches)h(for)g(the)f(multiple)f(positions)f
+(together)l(,)j(and)g(perform)f(the)h(speedup)0 1096
+y(and)j(o)o(v)o(erhead)f(analysis)g(on)g(the)h(combined)e(data.)49
+b(The)31 b(second)f(method)g(is)g(to)h(perform)f(the)h(speedup)f(and)0
+1295 y(o)o(v)o(erhead)c(analysis)h(on)f(each)i(indi)n(vidual)d
+(position,)h(and)h(a)n(v)o(erage)g(the)g(speedups)g(and)g(o)o(v)o
+(erheads.)36 b(The)28 b(sec-)0 1494 y(ond)36 b(method)f(is)h(preferred)
+h(\(and)g(used)f(in)g(this)f(paper\))i(because)f(it)g(will)g(not)f(o)o
+(v)o(erestimate)g(the)h(observ)o(ed)0 1694 y(speedup)24
+b(for)h(a)h(lar)n(ge)f(number)f(of)h(test)f(positions.)0
+1989 y Fg(4.2)119 b(Ov)o(erheads)30 b(in)h(APHID)0 2255
+y Fu(The)36 b(performance)h(of)g(APHID)g(will)e(be)i(analyzed)f(in)g
+(terms)g(of)h(the)f(impediments)e(\(o)o(v)o(erheads\))i(to)g(high)0
+2455 y(parallel)28 b(performance.)41 b(Since)28 b(the)g(o)o(v)o(erhead)
+f(model)g(used)h(in)f(this)g(section)h(is)f(slightly)f(dif)n(ferent)i
+(than)g(that)0 2654 y(used)d(by)f(other)h(authors,)f(the)g(terminology)
+f(used)i(is)f(de\002ned)i(here.)146 2853 y(The)e Fm(total)e(o)o
+(verhead)h Fu(represents)g(the)g(additional)e(computing)h(time)g
+(required)i(by)e(the)i(parallel)f(algorithm)0 3052 y(on)i
+Fq(n)g Fu(processors)f(to)h(achie)n(v)o(e)f(the)g(same)h(result)f(as)h
+(the)g(sequential)f(v)o(ersion:)772 3351 y Fl(total)c(o)m(v)m(erhead)30
+b(=)1512 3284 y(\(parallel)20 b(time)43 b Fk(\002)h Fl(n\))23
+b Fk(\000)f Fl(sequen)m(tial)h(time)p 1512 3328 1580
+4 v 1984 3420 a(sequen)m(tial)g(time)3101 3351 y Fq(:)0
+3650 y Fu(The)29 b(total)g(o)o(v)o(erhead)f(can)i(also)f(be)h(computed)
+e(by)h(e)o(xamining)e(the)j(component)e(o)o(v)o(erheads)g
+(independently)-6 b(.)0 3849 y(The)32 b(three)h(main)e(o)o(v)o(erheads)
+g(are)i(\(1\))g(dedicating)e(a)i(processor)f(to)g(be)g(used)g(e)o
+(xclusi)n(v)o(ely)d(as)k(a)f(master)g(\(the)0 4049 y(master)f(o)o(v)o
+(erhead\),)i(\(2\))f(the)g(ef)n(fecti)n(v)o(e)e(decrease)j(in)e(nodes)h
+(per)g(second)f(e)o(xamined)g(\(parallelization)g(o)o(v)o(er)n(-)0
+4248 y(head\),)e(and)f(\(3\))g(the)g(lar)n(ger)g(search)g(tree)h(b)n
+(uilt)d(by)i(the)g(parallel)f(algorithm)g(\(total)g(search)h(o)o(v)o
+(erhead\).)40 b(There)0 4447 y(is)29 b(no)g(synchronization)f(o)o(v)o
+(erhead)g(in)h(the)g(APHID)h(algorithm)e(since)h(the)g(algorithm)f
+(operates)h(in)g(an)g(asyn-)0 4646 y(chronous)24 b(manner)-5
+b(.)30 b(The)25 b(breakdo)n(wn)f(of)h(o)o(v)o(erheads)f(can)h(be)g(e)o
+(xpressed)f(in)h(the)f(follo)n(wing)f(formula:)380 4945
+y Fl(total)e(o)m(v)m(erhead)85 b(=)d(\(1)22 b(+)g(master)g(o)m(v)m
+(erhead)r(\))g Fk(\002)h Fl(\(1)e(+)h(parallelization)c(o)m(v)m(erhead)
+r(\))1244 5169 y Fk(\002)k Fl(\(1)g(+)g(total)f(searc)m(h)i(o)m(v)m
+(erhead)r(\))p Fq(:)1900 5589 y Fu(22)p eop
+%%Page: 23 26
+23 25 bop 146 100 a Fu(The)30 b Fm(master)g(o)o(verhead)g
+Fu(is)f(the)h(approximate)f(penalty)h(incurred)g(by)g(ha)n(ving)f(a)i
+(single)e(processor)h(being)0 299 y(allocated)24 b(completely)f(to)h
+(the)h(handling)e(of)h(the)h(master)-5 b(.)29 b(This)24
+b(is)g(simply)f Fl(1)p Fq(=)p Fl(\()p Fq(n)d Fk(\000)h
+Fl(1\))p Fu(,)j(the)h(bene\002t)f(of)h(adding)0 498 y(another)g(sla)n
+(v)o(e)f(to)g(the)h(other)g Fq(n)d Fk(\000)h Fl(1)h Fu(sla)n(v)o(es.)
+146 697 y(The)37 b Fm(par)o(allelization)32 b(o)o(verhead)k
+Fu(is)g(the)g(penalty)f(incurred)i(by)e(the)h(APHID)h(library)f(on)g
+(the)g(speed)g(of)0 897 y(the)h(sla)n(v)o(es.)65 b(The)37
+b(dif)n(ference)g(between)g(the)g(rate)g(at)g(which)f(the)h(parallel)f
+(sla)n(v)o(es)g(e)o(xplore)g(nodes)h(and)f(the)0 1096
+y(sequential)29 b(program')-5 b(s)28 b(node)i(rate)g(is)f(the)g
+(parallelization)g(o)o(v)o(erhead.)44 b(This)29 b(o)o(v)o(erhead)f(is)i
+(deri)n(v)o(ed)e(partially)0 1295 y(from)g(the)h(cost)f(of)h(using)f
+(PVM,)g(and)h(partially)f(from)g(the)h(w)o(ork-scheduling)e(algorithm)h
+(on)g(each)h(sla)n(v)o(e.)42 b(In)0 1494 y(ef)n(fect,)34
+b(the)d(parallelization)g(o)o(v)o(erhead)f(includes)h(synchronization)f
+(o)o(v)o(erhead,)j(comple)o(xity)c(o)o(v)o(erhead)i(and)0
+1694 y(communication)23 b(o)o(v)o(erhead,)h(as)h(used)f(in)h(pre)n
+(vious)e(parallel)i Fq(\013)q(\014)30 b Fu(models)24
+b([12)o(,)h(15].)146 1893 y(The)d Fm(total)f(sear)l(c)o(h)g(o)o
+(verhead)h Fu(represents)f(the)h(number)f(of)h(additional)f(nodes)g
+(searched)h(by)g(the)g(algorithm)0 2092 y(while)37 b(attempting)f(to)h
+(determine)f(the)i Fq(d)p Fu(-ply)e(minimax)g(v)n(alue.)68
+b(In)37 b(the)h(case)g(of)f(APHID,)h(there)f(are)i(tw)o(o)0
+2291 y(o)o(v)o(erheads)29 b(that)g(combine)g(to)g(mak)o(e)h(the)f
+(total)g(search)h(o)o(v)o(erhead:)40 b(the)29 b(search)h(o)o(v)o
+(erhead)f(\(as)h(seen)g(in)f(other)0 2491 y(parallel)c(models\))f(and)g
+(the)h(speculati)n(v)o(e)e(search.)146 2690 y(The)33
+b Fm(sear)l(c)o(h)g(o)o(verhead)g Fu(represents)g(the)g(additional)f
+(nodes)g(searched)i(to)f(achie)n(v)o(e)f(the)h Fq(d)p
+Fu(-ply)g(minimax)0 2889 y(v)n(alue.)60 b(This)34 b(can)i(be)f
+(computed)e(by)i(di)n(viding)e(the)h(number)h(of)g(nodes)f(e)o(xamined)
+g(in)g(the)h(parallel)g(search)0 3088 y(by)29 b(the)g(number)g(of)g
+(nodes)g(e)o(xamined)f(in)h(the)g(corresponding)g(sequential)f(search.)
+45 b(Most)28 b(of)i(this)e(o)o(v)o(erhead)0 3288 y(is)j(incurred)g
+(when)g(the)g(parallel)g(v)o(ersion)f(uses)h(a)g(search)h(windo)n(w)d
+(that)i(is)g(not)f(as)h(precise)h(as)f(that)g(used)f(by)0
+3487 y(the)i(sequential)f(v)o(ersion.)51 b(If)32 b(a)g(shared-memory)g
+(transposition)e(table)h(is)h(not)f(used,)i(some)f(of)g(the)g(increase)
+0 3686 y(in)c(search)g(o)o(v)o(erhead)f(can)i(be)f(attrib)n(uted)f(to)g
+(information)g(de\002cienc)o(y)-6 b(,)28 b(since)g(data)g(is)f(not)g
+(shared)i(ef)n(\002ciently)0 3885 y(between)c(the)g(processes.)146
+4085 y(The)19 b(remainder)g(of)g(the)g(increase)h(in)e(search)i(o)o(v)o
+(erhead)e(is)g(attrib)n(utable)g(to)h(the)g(load-balancing)f
+(algorithm.)0 4284 y(The)k(APHID)f(algorithm)f(forces)i(w)o(ork)g(to)f
+(be)h(recalculated)f(when)h(it)f(is)g(mo)o(v)o(ed)f(to)h(another)g
+(processor)-5 b(.)29 b(When)0 4483 y(there)e(are)h(more)f(processors)g
+(in)g(the)g(system,)f(the)h(load-balancing)f(algorithm)g(is)h(more)g
+(acti)n(v)o(e)f(in)h(balancing)0 4682 y(the)e(w)o(orkload,)f(thus)g
+(causing)g(more)h(search)g(o)o(v)o(erhead.)146 4882 y(Since)33
+b(each)g(position)e(is)h(searched)h(to)f Fq(d)g Fu(ply)-6
+b(,)33 b(the)g(asynchronous)e(nature)i(of)f(the)g(sla)n(v)o(es)g(will)g
+(result)f(in)0 5081 y(some)22 b(w)o(ork)g(being)h(done)f(at)h(depth)f
+Fl(\()p Fq(d)14 b Fl(+)g(1\))22 b Fu(or)g(greater)-5
+b(.)31 b(The)22 b Fm(speculative)g(sear)l(c)o(h)g Fu(represents)h(the)f
+(amount)g(of)0 5280 y(additional)d(search)h(that)g(APHID)g(has)g
+(undertak)o(en)g(which)g(is)f(be)o(yond)g(what)h(the)g(sequential)f
+(algorithm)g(w)o(ould)1900 5589 y(23)p eop
+%%Page: 24 27
+24 26 bop 0 100 a Fu(attempt)22 b(for)i(a)f Fq(d)p Fu(-ply)g(search.)31
+b(It)23 b(can)h(be)f(computed)f(by)h(taking)g(the)g(number)g(of)g
+(speculati)n(v)o(e)f(nodes)h(searched)0 299 y(and)35
+b(di)n(viding)f(that)h(by)g(the)g(number)g(of)h(nodes)f(searched)h(in)f
+(the)h(sequential)e(case.)64 b(In)35 b(our)h(e)o(xperiments,)0
+498 y(speculati)n(v)o(e)d(search)i(results)e(are)i(computed,)h(b)n(ut)e
+(these)g(results)f(are)j(not)d(used)h(to)g(in\003uence)h(the)f(v)n
+(alue)g(of)0 697 y(shallo)n(wer)27 b(searches.)43 b(This)27
+b(allo)n(wed)h(the)g(APHID)h(algorithm)e(to)h(produce)h(the)f(same)g
+(search)h(v)n(alues)f(as)g(the)0 897 y(sequential)c(v)o(ersion)g(in)g
+(most)g(cases.)146 1096 y(Ignoring)32 b(the)g(speculati)n(v)o(e)e
+(search)j(results)e(understates)g(the)h(potential)f(of)h(the)g(APHID)h
+(algorithm.)51 b(In)0 1295 y(a)32 b(real)g(tournament)e(game,)j
+(speculati)n(v)o(e)d(search)i(could)f(be)h(used)f(to)g(look)g(an)h(e)o
+(xtra)f(mo)o(v)o(e)f(ahead)i(on)g(some)0 1494 y(k)o(e)o(y)24
+b(v)n(ariations.)29 b(It)c(is)f(highly)g(lik)o(ely)f(that)i(the)f(v)n
+(ariations)f(that)i(were)g(speculati)n(v)o(ely)d(e)o(xtended)i(will)g
+(be)h(in)f(the)0 1694 y(left-most)j(branches)h(of)g(the)g(tree.)41
+b(Thus,)28 b(sometimes)f(k)o(e)o(y)g(v)n(ariations)g(will)g(be)h
+(searched)h(an)f(additional)f(ply)0 1893 y(\(or)21 b(more\))g(deeper)-5
+b(.)30 b(This)20 b(allo)n(ws)g(APHID)i(to)e(\002nd)i(important)d(v)n
+(ariations)h(much)g(sooner)h(than)g(a)g(synchronous)0
+2092 y(parallel)k(program)f(with)g(the)h(same)f(observ)o(ed)h(speedup.)
+146 2291 y(T)-8 b(o)34 b(quantify)f(the)h(ef)n(fects)f(of)h(speculati)n
+(v)o(e)e(search)j(is)e(dif)n(\002cult.)57 b(T)-8 b(o)33
+b(do)h(so)f(means)h(that)f(there)h(must)f(be)0 2491 y(a)j(metric)g(for)
+g(measuring)f(the)g(quality)g(of)h(the)f(mo)o(v)o(e)g(selected)g(by)h
+(an)g(algorithm.)62 b(There)36 b(are)h(a)f(fe)n(w)g(test)0
+2690 y(sets)27 b(that)g(measure)h(mo)o(v)o(e)e(quality)h(in)g(chess,)h
+(where)g(the)g(performance)g(metric)f(is)g(ho)n(w)g(quickly)g(a)g
+(program)0 2889 y(determines)32 b(the)g(best)g(mo)o(v)o(e)e(in)i(a)h
+(tactical)f(position.)51 b(There)33 b(is)f(insuf)n(\002cient)f(kno)n
+(wledge)g(about)h(tactics)f(in)0 3088 y(Othello)h(to)h(design)f(a)i
+(similar)e(test.)55 b(Thus,)35 b(the)e(performance)h(metric)f(used)f
+(is)h(to)g(compare)g(speedups)g(for)0 3288 y(each)25
+b(program.)0 3583 y Fg(4.3)119 b(T)-11 b(est)29 b(Results)0
+3849 y Fu(Figure)23 b(7)f(gi)n(v)o(es)f(the)h(speedups)g(for)h(each)g
+(of)f(the)g(programs)g(tested,)g(while)g(Figure)h(8)f(gi)n(v)o(es)f
+(the)h(o)o(v)o(erheads)g(for)0 4049 y(each)j(program)g(on)f(separate)i
+(graphs.)146 4248 y(Figure)33 b(7)e(sho)n(ws)g(that)h(the)g(speedups)f
+(for)h(the)g(Othello)f(program,)k(K)t Fa(E)t(Y)-6 b(A)t(N)t(O)r
+Fu(,)38 b(are)33 b(signi\002cantly)d(lar)n(ger)0 4447
+y(than)k(the)f(speedups)h(for)g(the)f(other)h(three)g(programs.)58
+b(There)34 b(are)h(tw)o(o)e(reasons)h(for)g(this.)57
+b(First,)36 b(the)e(trees)0 4646 y(that)28 b(were)i(measured)e(in)j(K)t
+Fa(E)t(Y)-6 b(A)t(N)t(O)34 b Fu(are)c(\002x)o(ed-depth)e(trees,)h
+(whereas)h(the)e(other)h(programs)f(had)h(a)g(v)n(ariable)0
+4846 y(search)h(depth)f(due)g(to)g(quiescence)h(searches.)45
+b(This)28 b(mak)o(es)h(the)g(load)g(balancing)g(v)o(ery)g(easy)h(for)h
+(K)t Fa(E)t(Y)-6 b(A)t(N)t(O)r Fu(.)0 5045 y(APHID)25
+b(thri)n(v)o(es)d(when)i(there)g(is)g(little)f(v)n(ariance)h(in)g(the)g
+(size)g(of)g(each)h(piece)f(of)h(w)o(ork.)30 b(When)24
+b(the)g(equi)n(v)n(alent)0 5244 y(of)h(quiescence)g(search)g(is)g
+(added)f(to)j(K)t Fa(E)t(Y)-6 b(A)t(N)t(O)r Fu(,)28 b(the)d(speedup)f
+(drops)h(from)f(37)h(to)f(22)h(on)f(64)h(processors)f([2].)1900
+5589 y(24)p eop
+%%Page: 25 28
+25 27 bop 1178 0 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 1178 0 a
+%%BeginDocument: pics/speedup_all.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 951 M
+63 0 V
+4481 0 R
+-63 0 V
+972 951 M
+(8) Rshow
+1080 1451 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(16) Rshow
+1080 1950 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(24) Rshow
+1080 2450 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(32) Rshow
+1080 2950 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(40) Rshow
+1080 3450 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(48) Rshow
+1080 3949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(56) Rshow
+1080 4449 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(64) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(72) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Speedup) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+LT0
+3163 4637 M
+(Perfect Speedup) Rshow
+3271 4637 M
+324 0 V
+1080 451 M
+505 500 V
+505 500 V
+1010 999 V
+5119 4449 L
+505 500 V
+LT1
+3163 4457 M
+(Keyano) Rshow
+3271 4457 M
+324 0 V
+1585 810 M
+505 345 V
+1010 670 V
+2019 965 V
+3379 4457 D
+1585 810 D
+2090 1155 D
+3100 1825 D
+5119 2790 D
+LT2
+3163 4277 M
+(Chinook) Rshow
+3271 4277 M
+324 0 V
+2090 973 M
+1010 154 V
+2019 220 V
+3379 4277 A
+2090 973 A
+3100 1127 A
+5119 1347 A
+LT3
+3163 4097 M
+(Crafty) Rshow
+3271 4097 M
+324 0 V
+2090 998 M
+1010 488 V
+2019 89 V
+3379 4097 B
+2090 998 B
+3100 1486 B
+5119 1575 B
+LT4
+3163 3917 M
+(TheTurk) Rshow
+3271 3917 M
+324 0 V
+2090 981 M
+1010 280 V
+2019 187 V
+3379 3917 C
+2090 981 C
+3100 1261 C
+5119 1448 C
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 1212 1523 a Fu(Figure)25 b(7:)31 b(Speedups)25 b(for)g(All)f(Programs)
+146 1811 y(The)h(second)g(reason)g(is)g(that)f(the)h(transposition)e
+(table)i(is)g(not)f(as)h(critical)g(in)g(Othello)f(as)h(it)f(is)h(in)f
+(the)h(other)0 2010 y(three)37 b(programs.)65 b(When)36
+b(all)g(64)g(processors)g(attempt)g(to)g(write)g(into)f(a)i(400)f(MB)h
+(transposition)d(table,)39 b(a)0 2209 y(processor)32
+b(o)o(v)o(erwrites)f(another)h(processor')-5 b(s)32 b(table)g(entries)g
+(frequently)-6 b(.)52 b(This)31 b(inhibits)g(the)h(ability)f(of)h(the)0
+2408 y(processors)f(to)g(detect)g(positions)e(that)i(ha)n(v)o(e)g
+(already)g(been)h(searched.)50 b(Duplicate)31 b(node)g(detection)f(via)
+h(the)0 2608 y(transposition)k(table)h(is)h(important)e(to)h
+(controlling)f(the)i(size)g(of)g(the)f(search)i(tree)f(in)f(chess)h
+(and)g(check)o(ers)0 2807 y(programs.)49 b(The)31 b(limited)e(size)j
+(of)f(the)g(transposition)e(table)h(is)h(of)g(little)f(importance)h(in)
+f(searching)h(Othello)0 3006 y(game)k(trees)g(in)g(parallel,)i(because)
+f(achie)n(ving)e(the)h(same)g(position)f(by)h(dif)n(ferent)g(sequences)
+g(of)g(mo)o(v)o(es)f(is)0 3205 y(much)27 b(more)h(dif)n(\002cult.)39
+b(Thus,)28 b(better)g(results)f(are)i(obtained)e(when)h(searching)g
+(Othello)f(trees)h(than)f(chess)h(or)0 3405 y(check)o(ers)d(trees.)585
+3369 y Fn(7)146 3604 y Fu(In)c(an)g(algorithm)f(that)g(does)g(not)h
+(synchronize,)g(it)f(should)g(not)g(be)h(surprising)e(to)i(disco)o(v)o
+(er)e(that)i(the)f(lar)n(gest)0 3803 y(portion)29 b(of)h(the)g(total)g
+(o)o(v)o(erhead)f(is)h(accounted)g(for)h(by)f(the)g(search)g(o)o(v)o
+(erhead)g(and)g(the)g(speculati)n(v)o(e)f(search.)0 4002
+y(As)j(the)g(number)f(of)h(processes)g(increases,)i(the)d(processors)h
+(get)g(fe)n(wer)g(pieces)g(of)g(w)o(ork)g(and)g(the)g(need)g(for)0
+4202 y(load)d(balancing)g(increases.)46 b(This)28 b(also)i(allo)n(ws)e
+(some)h(of)h(the)f(less)g(b)n(usy)g(sla)n(v)o(es)g(to)g(get)h(further)f
+(ahead)h(than)0 4401 y(the)25 b(o)o(v)o(erw)o(ork)o(ed)e(sla)n(v)o(es,)
+h(causing)g(a)i(rise)e(in)h(the)f(speculati)n(v)o(e)g(search.)146
+4600 y(T)-8 b(o)19 b(put)f(the)h(APHID)g(results)f(in)h(perspecti)n(v)o
+(e,)f(a)i(v)o(ersion)d(of)i(YBWC)h(has)f(been)g(implemented)e(in)j(K)t
+Fa(E)t(Y)-6 b(A)t(N)t(O)r Fu(.)0 4799 y(The)27 b(algorithm)f(w)o(as)h
+(tak)o(en)h(directly)e(from)h(Feldmann')-5 b(s)27 b(thesis)f([3].)39
+b(A)27 b(considerable)g(ef)n(fort)g(w)o(as)g(spent)g(at-)0
+4999 y(tempting)33 b(to)h(optimize)g(the)g(performance)h(of)g(the)g
+(algorithm.)58 b(YBWC)36 b(and)f(APHID)g(were)g(tested)f(under)p
+0 5088 1560 4 v 112 5150 a Fj(7)149 5180 y Fi(A)h(lar)o(ger)e
+(transposition)f(table)i(\(4-8)f(GB)i(of)e(RAM\))i(for)e(both)g(the)h
+(sequential)f(and)h(parallel)f(tests)j(w)o(ould)d(impro)o(v)o(e)f(the)0
+5279 y(speedups)19 b(of)h(the)g(check)o(ers)g(and)f(chess)i(programs.)i
+(This)d(w)o(as)h(not)f(possible)g(to)g(test)h(because)f(of)g(resource)f
+(constraints.)1900 5589 y Fu(25)p eop
+%%Page: 26 29
+26 28 bop 406 0 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 406 0 a
+%%BeginDocument: pics/overhead_keyano.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 901 M
+63 0 V
+4481 0 R
+-63 0 V
+972 901 M
+(50) Rshow
+1080 1351 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(100) Rshow
+1080 1800 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(150) Rshow
+1080 2250 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(200) Rshow
+1080 2700 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(250) Rshow
+1080 3150 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(300) Rshow
+1080 3600 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(350) Rshow
+1080 4049 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(400) Rshow
+1080 4499 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(450) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(500) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Overhead \(in Percent\)) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+3163 4724 M
+(Keyano-APHID) Rshow
+LT0
+3163 4454 M
+(Total Overhead) Rshow
+3271 4454 M
+324 0 V
+1585 885 M
+505 10 V
+1010 50 V
+2019 296 V
+3379 4454 D
+1585 885 D
+2090 895 D
+3100 945 D
+5119 1241 D
+LT1
+3163 4274 M
+(Master Overhead) Rshow
+3271 4274 M
+324 0 V
+1585 579 M
+505 -68 V
+3100 480 L
+5119 465 L
+3379 4274 A
+1585 579 A
+2090 511 A
+3100 480 A
+5119 465 A
+LT2
+3163 4094 M
+(Search Overhead) Rshow
+3271 4094 M
+324 0 V
+1585 511 M
+505 35 V
+1010 34 V
+5119 847 L
+3379 4094 B
+1585 511 B
+2090 546 B
+3100 580 B
+5119 847 B
+LT3
+3163 3914 M
+(Speculative Search) Rshow
+3271 3914 M
+324 0 V
+1585 473 M
+505 38 V
+1010 70 V
+5119 745 L
+3379 3914 C
+1585 473 C
+2090 511 C
+3100 581 C
+5119 745 C
+LT4
+3163 3734 M
+(Parallelization Overhead) Rshow
+3271 3734 M
+324 0 V
+1585 626 M
+505 2 V
+3100 593 L
+5119 493 L
+3379 3734 T
+1585 626 T
+2090 628 T
+3100 593 T
+5119 493 T
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 1950 0 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 1950 0 a
+%%BeginDocument: pics/overhead_chinook.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 901 M
+63 0 V
+4481 0 R
+-63 0 V
+972 901 M
+(50) Rshow
+1080 1351 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(100) Rshow
+1080 1800 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(150) Rshow
+1080 2250 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(200) Rshow
+1080 2700 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(250) Rshow
+1080 3150 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(300) Rshow
+1080 3600 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(350) Rshow
+1080 4049 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(400) Rshow
+1080 4499 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(450) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(500) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Overhead \(in Percent\)) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+3163 4724 M
+(Chinook-APHID) Rshow
+LT0
+3163 4454 M
+(Total Overhead) Rshow
+3271 4454 M
+324 0 V
+2090 1569 M
+3100 3051 L
+5119 4570 L
+3379 4454 D
+2090 1569 D
+3100 3051 D
+5119 4570 D
+LT1
+3163 4274 M
+(Master Overhead) Rshow
+3271 4274 M
+324 0 V
+2090 511 M
+3100 480 L
+5119 465 L
+3379 4274 A
+2090 511 A
+3100 480 A
+5119 465 A
+LT2
+3163 4094 M
+(Search Overhead) Rshow
+3271 4094 M
+324 0 V
+2090 782 M
+1010 672 V
+2019 583 V
+3379 4094 B
+2090 782 B
+3100 1454 B
+5119 2037 B
+LT3
+3163 3914 M
+(Speculative Search) Rshow
+3271 3914 M
+324 0 V
+2090 908 M
+1010 354 V
+5119 2401 L
+3379 3914 C
+2090 908 C
+3100 1262 C
+5119 2401 C
+LT4
+3163 3734 M
+(Parallelization Overhead) Rshow
+3271 3734 M
+324 0 V
+2090 617 M
+1010 33 V
+5119 531 L
+3379 3734 T
+2090 617 T
+3100 650 T
+5119 531 T
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 406 1448 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 406 1448 a
+%%BeginDocument: pics/overhead_crafty.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 901 M
+63 0 V
+4481 0 R
+-63 0 V
+972 901 M
+(50) Rshow
+1080 1351 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(100) Rshow
+1080 1800 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(150) Rshow
+1080 2250 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(200) Rshow
+1080 2700 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(250) Rshow
+1080 3150 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(300) Rshow
+1080 3600 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(350) Rshow
+1080 4049 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(400) Rshow
+1080 4499 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(450) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(500) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Overhead \(in Percent\)) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+3163 4724 M
+(Crafty-APHID) Rshow
+LT0
+3163 4454 M
+(Total Overhead) Rshow
+3271 4454 M
+324 0 V
+2090 1447 M
+1010 269 V
+5119 3605 L
+3379 4454 D
+2090 1447 D
+3100 1716 D
+5119 3605 D
+LT1
+3163 4274 M
+(Master Overhead) Rshow
+3271 4274 M
+324 0 V
+2090 511 M
+3100 480 L
+5119 465 L
+3379 4274 A
+2090 511 A
+3100 480 A
+5119 465 A
+LT2
+3163 4094 M
+(Search Overhead) Rshow
+3271 4094 M
+324 0 V
+2090 982 M
+1010 177 V
+5119 2171 L
+3379 4094 B
+2090 982 B
+3100 1159 B
+5119 2171 B
+LT3
+3163 3914 M
+(Speculative Search) Rshow
+3271 3914 M
+324 0 V
+2090 549 M
+3100 829 L
+2019 607 V
+3379 3914 C
+2090 549 C
+3100 829 C
+5119 1436 C
+LT4
+3163 3734 M
+(Parallelization Overhead) Rshow
+3271 3734 M
+324 0 V
+2090 688 M
+3100 563 L
+2019 4 V
+3379 3734 T
+2090 688 T
+3100 563 T
+5119 567 T
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 1950 1448 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 1950 1448 a
+%%BeginDocument: pics/overhead_theturk.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 901 M
+63 0 V
+4481 0 R
+-63 0 V
+972 901 M
+(50) Rshow
+1080 1351 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(100) Rshow
+1080 1800 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(150) Rshow
+1080 2250 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(200) Rshow
+1080 2700 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(250) Rshow
+1080 3150 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(300) Rshow
+1080 3600 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(350) Rshow
+1080 4049 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(400) Rshow
+1080 4499 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(450) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(500) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Overhead \(in Percent\)) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+3163 4724 M
+(TheTurk-APHID) Rshow
+LT0
+3163 4454 M
+(Total Overhead) Rshow
+3271 4454 M
+324 0 V
+2090 1341 M
+1010 759 V
+5119 3912 L
+3379 4454 D
+2090 1341 D
+3100 2100 D
+5119 3912 D
+LT1
+3163 4274 M
+(Master Overhead) Rshow
+3271 4274 M
+324 0 V
+2090 511 M
+3100 480 L
+5119 465 L
+3379 4274 A
+2090 511 A
+3100 480 A
+5119 465 A
+LT2
+3163 4094 M
+(Search Overhead) Rshow
+3271 4094 M
+324 0 V
+2090 927 M
+1010 792 V
+5119 2925 L
+3379 4094 B
+2090 927 B
+3100 1719 B
+5119 2925 B
+LT3
+3163 3914 M
+(Speculative Search) Rshow
+3271 3914 M
+324 0 V
+2090 517 M
+1010 80 V
+2019 841 V
+3379 3914 C
+2090 517 C
+3100 597 C
+5119 1438 C
+LT4
+3163 3734 M
+(Parallelization Overhead) Rshow
+3271 3734 M
+324 0 V
+2090 669 M
+3100 544 L
+4477 451 L
+3379 3734 T
+2090 669 T
+3100 544 T
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 1191 2972 a Fu(Figure)25 b(8:)30 b(Ov)o(erheads)25 b(for)g(All)f
+(Programs)0 3259 y(similar)35 b(conditions:)53 b(the)36
+b(same)h(test)f(set,)j(same)d(search)i(depth,)g(and)f(the)f(same)h
+(size)g(of)f(shared)h(memory)0 3458 y(transposition)22
+b(table.)31 b(The)24 b(performance)h(of)g(APHID)g(v)o(ersus)f(YBWC)h
+(can)g(be)g(seen)g(in)f(Figure)h(9.)30 b(YBWC)c(is)0
+3657 y(rapidly)i(starv)o(ed)h(out)f(of)h(w)o(ork)g(to)g(do)g(once)g(64)
+g(processors)f(are)i(reached.)44 b(The)29 b(synchronization)f(o)o(v)o
+(erhead)0 3857 y(increases)d(dramatically)f(and)h(the)f(processors)h
+(are)g(only)f(b)n(usy)h(60\045)f(of)h(the)g(time.)146
+4056 y(The)33 b(search)g(o)o(v)o(erhead)f(in)g(YBWC)h(starts)f(at)g(a)h
+(higher)f(le)n(v)o(el)f(than)i(for)f(APHID)h(on)f(8)h(processors,)h(b)n
+(ut)0 4255 y(the)i(search)g(o)o(v)o(erhead)g(in)f(APHID)i(rapidly)e
+(increases)h(past)g(the)g(equi)n(v)n(alent)e(le)n(v)o(el)h(in)h(YBWC.)g
+(Ho)n(we)n(v)o(er)l(,)0 4454 y(it)c(is)g(important)f(to)i(note)f(that)g
+(the)h(o)o(v)o(erhead)e(in)i(APHID)g(is)f(partially)g(due)g(to)g
+(speculati)n(v)o(e)f(search.)55 b(When)0 4654 y(APHID)38
+b(is)f(run)h(on)g(64)f(processors,)k(a)d(32.65\045)f(o)o(v)o(erhead)g
+(is)g(attrib)n(uted)g(to)g(speculati)n(v)o(e)f(search.)70
+b(If)38 b(the)0 4853 y(search)25 b(were)g(e)o(xtended)f(an)h(e)o(xtra)f
+(ply)-6 b(,)23 b(these)i(speculati)n(v)o(e)d(search)j(results)f(w)o
+(ould)g(gi)n(v)o(e)f(APHID)i(a)g(head)f(start)0 5052
+y(on)i(the)g(ne)o(xt)g(iteration;)g(YBWC)h(w)o(ould)f(be)h(forced)g(to)
+f(attempt)f(the)h(entire)h(search)g(from)f(scratch.)36
+b(YBWC')-5 b(s)0 5251 y(parallelization)21 b(o)o(v)o(erhead)f(is)i
+(much)f(lo)n(wer)g(than)g(the)g(equi)n(v)n(alent)f(o)o(v)o(erheads)h
+(in)g(APHID.)h(Ho)n(we)n(v)o(er)l(,)f(APHID)1900 5589
+y(26)p eop
+%%Page: 27 30
+27 29 bop 406 0 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 406 0 a
+%%BeginDocument: pics/aphidybw_keyano.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 951 M
+63 0 V
+4481 0 R
+-63 0 V
+972 951 M
+(8) Rshow
+1080 1451 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(16) Rshow
+1080 1950 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(24) Rshow
+1080 2450 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(32) Rshow
+1080 2950 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(40) Rshow
+1080 3450 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(48) Rshow
+1080 3949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(56) Rshow
+1080 4449 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(64) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(72) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Speedup) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+LT0
+3794 4637 M
+(Perfect Speedup) Rshow
+3902 4637 M
+324 0 V
+1080 451 M
+505 500 V
+505 500 V
+1010 999 V
+5119 4449 L
+505 500 V
+LT1
+3794 4457 M
+(APHID, fixed-depth, shared TT) Rshow
+3902 4457 M
+324 0 V
+1585 810 M
+505 345 V
+1010 670 V
+2019 965 V
+4010 4457 D
+1585 810 D
+2090 1155 D
+3100 1825 D
+5119 2790 D
+LT2
+3794 4277 M
+(YBW, fixed-depth, shared TT) Rshow
+3902 4277 M
+324 0 V
+1585 841 M
+505 294 V
+1010 462 V
+2019 366 V
+4010 4277 A
+1585 841 A
+2090 1135 A
+3100 1597 A
+5119 1963 A
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 1950 0 a
+ 12191183 10419816 3289088 3289088 42100326 36443095 startTexFig
+ 1950 0 a
+%%BeginDocument: pics/overhead_ybwkeyano.ps
+/gnudict 40 dict def
+gnudict begin
+/Color false def
+/Solid false 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.100 0.100 scale
+0 setgray
+/Helvetica findfont 180 scalefont setfont
+newpath
+LTa
+1080 451 M
+4544 0 V
+-4544 0 R
+0 4498 V
+LTb
+1080 451 M
+63 0 V
+4481 0 R
+-63 0 V
+972 451 M
+(0) Rshow
+1080 901 M
+63 0 V
+4481 0 R
+-63 0 V
+972 901 M
+(50) Rshow
+1080 1351 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(100) Rshow
+1080 1800 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(150) Rshow
+1080 2250 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(200) Rshow
+1080 2700 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(250) Rshow
+1080 3150 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(300) Rshow
+1080 3600 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(350) Rshow
+1080 4049 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(400) Rshow
+1080 4499 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(450) Rshow
+1080 4949 M
+63 0 V
+4481 0 R
+-63 0 V
+-4589 0 R
+(500) Rshow
+1080 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(0) Cshow
+1585 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(8) Cshow
+2090 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(16) Cshow
+2595 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(24) Cshow
+3100 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(32) Cshow
+3604 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(40) Cshow
+4109 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(48) Cshow
+4614 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(56) Cshow
+5119 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(64) Cshow
+5624 451 M
+0 63 V
+0 4435 R
+0 -63 V
+0 -4615 R
+(72) Cshow
+1080 451 M
+4544 0 V
+0 4498 V
+-4544 0 V
+0 -4498 V
+504 2700 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Overhead \(in Percent\)) Cshow
+grestore
+3352 -89 M
+(Number of Processors) Cshow
+3415 4724 M
+(Keyano-YBWC) Rshow
+LT0
+3415 4454 M
+(Total Overhead) Rshow
+3523 4454 M
+324 0 V
+1585 823 M
+505 178 V
+1010 355 V
+2019 886 V
+3631 4454 D
+1585 823 D
+2090 1001 D
+3100 1356 D
+5119 2242 D
+LT1
+3415 4274 M
+(Synchronization Overhead) Rshow
+3523 4274 M
+324 0 V
+1585 468 M
+505 137 V
+3100 717 L
+2019 719 V
+3631 4274 A
+1585 468 A
+2090 605 A
+3100 717 A
+5119 1436 A
+LT2
+3415 4094 M
+(Search Overhead) Rshow
+3523 4094 M
+324 0 V
+1585 670 M
+505 13 V
+3100 806 L
+2019 77 V
+3631 4094 B
+1585 670 B
+2090 683 B
+3100 806 B
+5119 883 B
+LT3
+3415 3914 M
+(Parallelization Overhead) Rshow
+3523 3914 M
+324 0 V
+1585 468 M
+505 11 V
+1010 20 V
+2019 13 V
+3631 3914 C
+1585 468 C
+2090 479 C
+3100 499 C
+5119 512 C
+stroke
+grestore
+end
+showpage
+%%EndDocument
+
+ endTexFig
+ 167 1523 a Fu(Figure)25 b(9:)30 b(Speedups)25 b(and)g(Ov)o(erheads)f
+(for)j(K)t Fa(E)t(Y)-6 b(A)t(N)t(O)31 b Fu(\(YBWC,)26
+b(Fix)o(ed-Depth,)d(Shared)j(Memory\))0 1811 y(ne)n(v)o(er)e(slo)n(ws)g
+(do)n(wn)f(to)i(w)o(ait)f(for)h(messages)f(from)h(another)g(processor)f
+(or)h(to)g(\002nd)g(w)o(ork.)146 2010 y(The)k(observ)o(ed)g(speedups)f
+(for)i(YBWC)g(are)g(in)e(line)h(with)f(other)h(published)f(performance)
+i(numbers)e(for)0 2209 y(this)g(algorithm.)41 b(W)-8
+b(eill)28 b(tested)h(YBWC)g(and)g(ABD)l(AD)l(A)g(on)f(a)i(CM-5)e(using)
+g(a)h(dif)n(ferent)g(Othello)e(program)0 2408 y([17].)74
+b(YBWC)40 b(achie)n(v)o(ed)f(a)g(9.5-fold)g(speedup)g(and)g(ABD)l(AD)l
+(A)g(achie)n(v)o(ed)g(an)g(11-fold)g(speedup)f(on)h(16)0
+2608 y(processors,)24 b(comparable)h(numbers)f(to)g(that)h(achie)n(v)o
+(ed)f(by)g(the)j(K)t Fa(E)t(Y)-6 b(A)t(N)t(O)31 b Fu(implementation.)
+146 2807 y(Switching)38 b(to)g(the)g(check)o(ers)h(program)f(results,)j
+(the)d(speedups)g(for)i(C)t Fa(H)t(I)t(N)t(O)t(O)t(K)45
+b Fu(could)38 b(be)g(described)0 3006 y(as)e(disappointing.)62
+b(Ho)n(we)n(v)o(er)l(,)38 b(other)e(authors)f(that)h(ha)n(v)o(e)f
+(attempted)g(to)h(parallelize)g(check)o(ers)h(programs)0
+3205 y(with)29 b(synchronous)f(algorithms)g(ha)n(v)o(e)h(met)g(with)g
+(limited)f(success.)44 b(The)30 b(best-kno)n(wn)e(speedup)h(for)h(a)f
+(syn-)0 3405 y(chronous)f(algorithm)f(on)i(a)g(high-performance)f
+(check)o(ers)i(program)e(is)g(3.32)g(for)h(Lu')-5 b(s)28
+b(Principal)h(V)-11 b(ariation)0 3604 y(Frontier)29 b(Splitting)f(with)
+h(Load)g(Balancing)h([12)o(].)45 b(Thus,)30 b(the)f(observ)o(ed)g
+(speedup)g(of)g(14.35)g(on)g(64)g(proces-)0 3803 y(sors)24
+b(for)h(APHID)g(is)f(a)h(four)n(-fold)f(impro)o(v)o(ement)e(o)o(v)o(er)
+i(pre)n(viously)f(published)g(results)h(for)g(an)o(y)g(synchronous)0
+4002 y(algorithm)f(in)i(the)f(domain)g(of)h(check)o(ers.)146
+4202 y(APHID)i(can)g(yield)f(lar)n(ger)h(observ)o(ed)e(speedups)h(than)
+g(synchronous)f(algorithms)f(in)i(domains)f(with)h(lo)n(w)0
+4401 y(branching)h(f)o(actors)i(such)e(as)h(check)o(ers)h(and)f
+(Othello.)39 b(Higher)27 b(branching)h(f)o(actors)g(are)h(represented)f
+(by)g(tw)o(o)0 4600 y(computer)g(chess)h(programs:)41
+b(C)t Fa(R)t(A)t(F)t(T)t(Y)36 b Fu(and)31 b(T)t Fa(H)t(E)t
+Fu(T)t Fa(U)t(R)t(K)r Fu(.)49 b(In)29 b(computer)f(chess)h(algorithms,)
+f(synchronous)0 4799 y(parallel)23 b(algorithms)f(achie)n(v)o(e)h
+(higher)g(ef)n(\002ciencies)h(because)g(of)f(the)g(increased)h(number)f
+(of)g(parallel)h(alterna-)0 4999 y(ti)n(v)o(es)i(a)n(v)n(ailable)h(at)h
+(ALL)g(nodes.)39 b(Consider)28 b(W)-8 b(eill')j(s)27
+b(tests)g(on)h(a)g(32-processor)f(CM-5)h(as)g(representati)n(v)o(e)f
+(of)0 5198 y(synchronous)19 b(parallel)h(algorithm)f(performance.)30
+b(W)-8 b(eill')j(s)19 b(implementation)f(of)i(YBWC)h(for)g(chess)f
+(achie)n(v)o(ed)1900 5589 y(27)p eop
+%%Page: 28 31
+28 30 bop 0 100 a Fu(a)22 b(speedup)g(of)g(12)g(on)f(32)h(processors,)g
+(and)g(ABD)l(AD)l(A)g(achie)n(v)o(ed)g(a)g(speedup)g(of)g(16)f([17].)30
+b(W)-8 b(eill')j(s)21 b(results)g(are)0 299 y(similar)h(to)g(other)h
+(reported)g(speedups)g(with)f(synchronous)g(game-tree)g(search)i
+(algorithms.)k(The)23 b(majority)f(of)0 498 y(these)i(algorithms)f(ha)n
+(v)o(e)h(been)h(tested)e(under)i(similar)e(conditions)g(to)h(those)f
+(used)i(for)f(the)g(chess)h(programs)e(in)0 697 y(this)i(paper)-5
+b(.)33 b(Although)24 b(it)h(is)g(not)g(an)g(objecti)n(v)o(e)f
+(comparison)h(between)h(algorithms,)e(the)h(observ)o(ed)g(speedups)0
+897 y(in)33 b(the)g(literature)g(for)g(most)f(synchronous)g(algorithms)
+f(are)j(comparable,)h(up)e(to)f(32)h(processors,)i(with)d(the)0
+1096 y(observ)o(ed)24 b(speedups)g(seen)h(for)g(the)g(APHID)g
+(algorithm)e(in)i(both)h(T)t Fa(H)t(E)t Fu(T)t Fa(U)t(R)t(K)32
+b Fu(and)26 b(C)t Fa(R)t(A)t(F)t(T)t(Y)r Fu(.)146 1295
+y(Dynamic)h(T)m(ree)h(Splitting,)f(when)h(using)f(the)g(same)h(testing)
+e(methodology)g(as)i(described)g(in)f(this)g(paper)l(,)0
+1494 y(achie)n(v)o(ed)18 b(a)i(speedup)f(of)g(8.81)g(on)g(16)g
+(processors)g([6].)29 b(Ho)n(we)n(v)o(er)l(,)19 b(a)h(latter)f(paper)g
+(which)g(used)g(a)h(non-standard)0 1694 y(testing)27
+b(methodology)g(\(using)g(a)i(series)g(of)f(related)h(positions)e(with)
+g(transposition)g(table)h(data)h(carried)g(o)o(v)o(er)0
+1893 y(from)24 b(search)g(to)g(search\))g(yielded)g(a)g(speedup)f(of)h
+(11.1)g(on)f(16)h(processors)f([7].)31 b(It)24 b(is)f(not)h(kno)n(wn)e
+(whether)i(the)0 2092 y(latter)h(testing)e(methodology)g(is)h
+(partially)g(responsible)g(for)h(the)g(dif)n(ference)g(in)f(the)h
+(observ)o(ed)f(results.)146 2291 y(Ho)n(we)n(v)o(er)l(,)c(there)f(is)h
+(one)f(important)f(data)i(point)f(that)g(is)g(signi\002cantly)f(lar)n
+(ger)i(than)g(the)f(reported)h(speedups)0 2491 y(by)g(an)o(y)g(other)g
+(author)-5 b(.)28 b(Feldmann')-5 b(s)20 b(Y)-11 b(oung)19
+b(Brothers)i(W)-8 b(ait)20 b(algorithm)f(in)j(Z)t Fa(U)t(G)t(Z)t(W)-6
+b(A)t(N)t(G)27 b Fu(achie)n(v)o(es)20 b(speedups)0 2690
+y(of)27 b(21.83)g(on)g(32)g(processors)g(and)g(37.34)f(on)h(64)g
+(processors)g(for)h(7-ply)e(searches)i(for)g(chess)f(that)f(tak)o(e)i
+(place)0 2889 y(in)h(tournament)g(time)g([3].)46 b(Results)29
+b(of)h(this)f(calibre)h(ha)n(v)o(e)f(not)g(been)h(reported)g(for)g(an)o
+(y)f(other)h(algorithm)e(or)0 3088 y(by)d(an)o(y)f(other)g(author)h
+(repeating)g(Feldmann')-5 b(s)23 b(w)o(ork.)146 3288
+y(Why)32 b(are)i(Feldmann')-5 b(s)31 b(observ)o(ed)h(speedups)g(so)g
+(lar)n(ge?)55 b(One)33 b(reason)g(is)f(that)i(Z)t Fa(U)t(G)t(Z)t(W)-6
+b(A)t(N)t(G)40 b Fu(is)32 b(a)h(slo)n(w)0 3487 y(sequential)26
+b(program.)38 b(C)t Fa(R)t(A)t(F)t(T)t(Y)c Fu(searches)27
+b(11-)f(and)h(12-ply)f(trees)h(on)f(32)g(processors)h(in)f(the)g(same)h
+(a)n(v)o(erage)0 3686 y(time)i(that)i(Z)t Fa(U)t(G)t(Z)t(W)-6
+b(A)t(N)t(G)37 b Fu(searches)30 b(7-ply)e(trees)i(on)f(32)g
+(processors.)45 b(Although)28 b(there)h(is)g(a)h(dramatic)f(speed)0
+3885 y(dif)n(ference)36 b(between)g(the)f(SGI)h(Origin)f(2000)g(\(on)g
+(which)g(Crafty)i(searches)f(130,000)e(nodes)h(per)h(second\))0
+4085 y(and)23 b(the)g(T)m(ransputer)f(T)-9 b(-800)23
+b(\(where)h(Zugzw)o(ang)e(visits)g(523)g(nodes)h(per)h(second\),)f
+(this)f(does)h(not)f(completely)0 4284 y(account)j(for)g(the)f(lar)n
+(ge)i(dif)n(ference)f(in)f(search)i(depths.)146 4483
+y(Unlik)o(e)f(other)h(game-playing)e(programs,)k(Z)t
+Fa(U)t(G)t(Z)t(W)-6 b(A)t(N)t(G)33 b Fu(spends)25 b(a)h(lar)n(ge)g
+(amount)f(of)h(time)f(doing)g(mo)o(v)o(e)0 4682 y(ordering)39
+b(at)h(each)h(node.)75 b(This)39 b(allo)n(ws)i(Z)t Fa(U)t(G)t(Z)t(W)-6
+b(A)t(N)t(G)47 b Fu(to)40 b(use)g(a)g(netw)o(ork)f(of)h(T)m(ransputers)
+f(as)h(a)g(shared)0 4882 y(memory)30 b(system)g(with)g(v)o(ery)g
+(little)g(loss)g(in)g(performance.)50 b(The)31 b(time)f(spent)g(in)g
+(mo)o(v)o(e)g(ordering)g(impro)o(v)o(es)2 5081 y(Z)t
+Fa(U)t(G)t(Z)t(W)-6 b(A)t(N)t(G)r Fu(')h(s)37 b(parallel)c(tree)f
+(search:)47 b(it)31 b(searches)i(the)g(best)f(mo)o(v)o(e)f(\002rst)h
+(96\045)g(of)h(the)f(time,)h(signi\002cantly)0 5280 y(better)28
+b(than)g(most)f(other)h(sequential)f(chess)h(programs.)40
+b(On)28 b(the)g(other)g(hand,)h(most)e(programs)h(use)g(less)f(e)o(x-)
+1900 5589 y(28)p eop
+%%Page: 29 32
+29 31 bop 312 3 3256 4 v 312 20 V 310 120 4 100 v 493
+120 V 510 120 V 510 120 V 754 90 a Fi(K)n(e)o(yano)p
+1251 120 V 1268 120 V 1267 120 V 486 w(Chinook)p 2009
+120 V 2026 120 V 2025 120 V 527 w(Crafty)p 2808 120 V
+2825 120 V 2824 120 V 528 w(TheT)l(urk)p 3566 120 V 312
+123 3256 4 v 310 222 4 100 v 493 222 V 510 222 V 895
+222 V 990 193 a(T)-7 b(otal)p 1251 222 V 1268 222 V 1653
+222 V 589 w(T)g(otal)p 2009 222 V 2026 222 V 2411 222
+V 610 w(T)g(otal)p 2808 222 V 2825 222 V 3210 222 V 609
+w(T)g(otal)p 3566 222 V 310 322 V 493 322 V 510 322 V
+895 322 V 962 292 a(Search)p 1251 322 V 1268 322 V 1653
+322 V 530 w(Search)p 2009 322 V 2026 322 V 2411 322 V
+552 w(Search)p 2808 322 V 2825 322 V 3210 322 V 551 w(Search)p
+3566 322 V 310 422 V 383 392 a(n)p 493 422 V 510 422
+V 136 w(Speedup)p 895 422 V 135 w(Ov)o(er)i(.)p 1251
+422 V 1268 422 V 153 w(Speedup)p 1653 422 V 135 w(Ov)o(er)g(.)p
+2009 422 V 2026 422 V 153 w(Speedup)p 2411 422 V 155
+w(Ov)o(er)g(.)p 2808 422 V 2825 422 V 174 w(Speedup)p
+3210 422 V 135 w(Ov)o(er)g(.)p 3566 422 V 312 425 3256
+4 v 310 525 4 100 v 383 495 a(8)p 493 525 V 510 525 V
+206 w(5.74)p 895 525 V 189 w(9.12\045)p 1251 525 V 1268
+525 V 265 w(-)p 1653 525 V 343 w(-)p 2009 525 V 2026
+525 V 359 w(-)p 2411 525 V 363 w(-)p 2808 525 V 2825
+525 V 380 w(-)p 3210 525 V 343 w(-)p 3566 525 V 312 528
+3256 4 v 310 628 4 100 v 362 598 a(16)p 493 628 V 510
+628 V 165 w(11.27)p 895 628 V 147 w(17.26\045)p 1251
+628 V 1268 628 V 184 w(8.35)p 1653 628 V 168 w(87.45\045)p
+2009 628 V 2026 628 V 185 w(8.76)p 2411 628 V 210 w(69.9\045)p
+2808 628 V 2825 628 V 226 w(8.48)p 3210 628 V 168 w(59.26\045)p
+3566 628 V 312 631 3256 4 v 310 731 4 100 v 362 701 a(32)p
+493 731 V 510 731 V 165 w(21.99)p 895 731 V 147 w(28.78\045)p
+1251 731 V 1268 731 V 163 w(10.82)p 1653 731 V 147 w(201.6\045)p
+2009 731 V 2026 731 V 164 w(16.56)p 2411 731 V 168 w(120.7\045)p
+2808 731 V 2825 731 V 184 w(12.96)p 3210 731 V 147 w(157.2\045)p
+3566 731 V 312 734 3256 4 v 310 834 4 100 v 362 804 a(64)p
+493 834 V 510 834 V 165 w(37.44)p 895 834 V 147 w(76.72\045)p
+1251 834 V 1268 834 V 163 w(14.35)p 1653 834 V 147 w(393.1\045)p
+2009 834 V 2026 834 V 164 w(18.00)p 2411 834 V 147 w(300.65\045)p
+2808 834 V 2825 834 V 163 w(15.96)p 3210 834 V 147 w(384.8\045)p
+3566 834 V 312 837 3256 4 v 312 853 V 513 1013 a Fu(T)d(able)25
+b(I:)g(Speedup)g(Data)g(for)g(All)f(Programs)h(\(Fix)o(ed-Depth,)f
+(Shared)i(Memory\))0 1300 y(pensi)n(v)o(e)19 b(mo)o(v)o(e)g(ordering)i
+(heuristics)e(and)i(only)f(search)h(the)g(best)f(more)h(\002rst)f
+(80-90\045)h(of)f(the)h(time,)g(increasing)0 1499 y(the)j(node)h(rate)g
+(dramatically)-6 b(.)29 b(The)24 b(increase)i(in)e(nodes)g(per)h
+(second)f(easily)g(subsumes)f(the)h(additional)g(nodes)0
+1698 y(that)g(must)g(be)h(searched,)g(allo)n(wing)e(most)h(programs)g
+(to)h(out-search)g(sequential)g(Z)t Fa(U)t(G)t(Z)t(W)-6
+b(A)t(N)t(G)r Fu(.)146 1898 y(Another)34 b(reason)f(for)h(the)g(e)o
+(xtraordinary)f(speedups)g(is)g(that)g(the)g(transposition)f(table)h(w)
+o(as)h(allo)n(wed)e(to)0 2097 y(gro)n(w)g(as)h(more)f(T)m(ransputers)g
+(were)h(added)g(to)f(the)h(system.)53 b(Thus,)34 b(the)e(observ)o(ed)g
+(speedups)g(are)h(illustrat-)0 2296 y(ing)27 b(the)g(po)n(wer)g(of)h
+(adding)e(additional)g(processors)i(and)f(transposition)e(table)i
+(memory)-6 b(,)27 b(not)g(just)g(additional)0 2495 y(processors.)33
+b(F)o(or)26 b(the)f(lar)n(gest)h(search)g(amongst)e(the)i(test)f(set,)i
+(Z)t Fa(U)t(G)t(Z)t(W)-6 b(A)t(N)t(G)33 b Fu(searches)27
+b(61)e(million)f(nodes)h(se-)0 2695 y(quentially)c(with)h(a)i(small)d
+(transposition)g(table,)i(and)g(41)f(million)f(nodes)h(in)h(parallel)g
+(on)f(256)g(processors)h(with)0 2894 y(a)k(much)f(lar)n(ger)h
+(transposition)d(table.)35 b(The)26 b(number)g(of)g(nodes)i(Z)t
+Fa(U)t(G)t(Z)t(W)-6 b(A)t(N)t(G)34 b Fu(searches)27 b(sequentially)e(w)
+o(ould)0 3093 y(decrease)31 b(if)f(much)f(lar)n(ger)i(transposition)d
+(tables)h(were)i(used)f(during)f(the)h(sequential)f(test.)45
+b(This)30 b(w)o(ould,)g(of)0 3293 y(course,)25 b(reduce)g(the)g(observ)
+o(ed)f(speedup.)146 3492 y(W)l(ith)33 b(a)g(f)o(ast)h(sequential)e
+(program,)j(operating)d(in)h(an)h(en)l(vironment)d(where)j(messages)f
+(are)h(not)e(f)o(ast)h(in)0 3691 y(relation)i(to)h(the)f(program,)j
+(less)e(than)f(superb)h(mo)o(v)o(e)e(ordering)h(and)h(constant)f
+(memory)g(usage)h(in)f(the)h(se-)0 3890 y(quential)23
+b(and)g(parallel)g(runs,)h(it)f(is)g(unlik)o(ely)f(that)h(Feldmann')-5
+b(s)22 b(observ)o(ed)h(speedups)g(can)h(be)f(duplicated)g(with)0
+4090 y(an)o(y)k(synchronous)g(parallel)g(algorithm.)38
+b(Gi)n(v)o(en)27 b(a)h(program)f(without)g(quiescence)h(search,)g(it)g
+(is)f(possible)f(to)0 4289 y(generate)i(equi)n(v)n(alent)d(speedups)i
+(with)f(asynchronous)h(search.)38 b(Earlier)28 b(it)e(w)o(as)i
+(demonstrated)e(that)h(APHID)0 4488 y(can)d(generate)g(speedups)f(of)h
+(that)g(calibre)g(in)f(the)h(\002x)o(ed-depth)f(v)o(ersion)f(of)k(K)t
+Fa(E)t(Y)-6 b(A)t(N)t(O)r Fu(.)34 b(Ho)n(we)n(v)o(er)l(,)23
+b(quiescence)0 4687 y(search)29 b(is)f(inte)o(gral)f(to)h(modern)g
+(chess)g(programs.)41 b(Hence,)29 b(it)f(is)g(unlik)o(ely)f(that)h(an)o
+(y)g(asynchronous)f(parallel)0 4887 y(algorithm)c(in)i(chess)f(w)o
+(ould)g(achie)n(v)o(e)h(observ)o(ed)f(speedups)g(similar)f(to)i
+(Feldmann')-5 b(s)24 b(results.)1900 5589 y(29)p eop
+%%Page: 30 33
+30 32 bop 0 100 a Fo(5)143 b(Conclusions)0 402 y Fu(In)25
+b(this)f(paper)l(,)h(the)f(question)g(w)o(as)h(posed)f(as)h(to)f
+(whether)h(asynchronous)e(algorithms)g(could)i(be)g(competiti)n(v)o(e)0
+601 y(with)32 b(synchronous)g(algorithms)g(in)h(real)g(applications)f
+(searching)h(real)h(game)e(trees.)57 b(The)33 b(results)f(in)h(Sec-)0
+800 y(tion)26 b(4.3,)h(summarized)f(in)g(T)-8 b(able)27
+b(I,)h(sho)n(w)e(that)g(the)h(APHID)g(algorithm)e(can)j(deli)n(v)o(er)d
+(superior/competiti)n(v)o(e)0 1000 y(results)f(to)g(that)g(achie)n(v)n
+(able)f(by)h(a)h(synchronous)e(algorithm.)29 b(Further)l(,)c(this)e
+(performance)i(is)f(easy)h(to)f(achie)n(v)o(e)0 1199
+y(since)h(APHID)g(is)f(easy)h(to)g(inte)o(grate)f(into)g(an)g(e)o
+(xisting)f Fq(\013)q(\014)6 b Fu(-searching)25 b(program.)146
+1398 y(Comparing)31 b(APHID)g(to)g(synchronous)f(approaches,)i(it)f(is)
+f(interesting)g(to)h(note)f(that)h(APHID')-5 b(s)31 b(results)0
+1598 y(are)36 b(less)f(dependent)g(on)g(the)g(branching)g(f)o(actor)h
+(within)e(the)h(tree.)63 b(The)35 b(synchronous)f(search)i(results)e
+(are)0 1797 y(highly)d(dependent)h(on)g(the)g(branching)f(f)o(actor;)36
+b(a)d(lar)n(ger)g(branching)e(f)o(actor)i(yields)e(more)h(parallelism)f
+(and)0 1996 y(less)26 b(idle)f(time.)34 b(Thus,)26 b(the)g
+(asynchronous)f(algorithm)g(in)g(APHID)i(is)f(a)g(better)g(choice)g(in)
+g(applications)f(with)0 2195 y(small)f(branching)g(f)o(actors,)h(such)g
+(as)f(check)o(ers)i(and)f(Othello.)146 2395 y(The)20
+b(speedups)f(achie)n(v)n(able)g(by)h(the)g(APHID)g(algorithm)f(are)h
+(similar)f(to)g(those)h(achie)n(v)o(ed)f(by)g(synchronous)0
+2594 y(parallel)k(algorithms)e(up)i(to)f(32)h(processors)f(for)i
+(chess.)29 b(Thus,)23 b(a)g(synchronous)f(parallel)h(algorithm)e(may)i
+(be)g(a)0 2793 y(reasonable)k(choice)g(for)g(wide)g(v)n(ariable-depth)e
+(game)i(trees.)37 b(Ho)n(we)n(v)o(er)l(,)26 b(when)g(one)h(considers)f
+(that)h(APHID)0 2992 y(is)f(\(1\))g(easy)h(to)f(inte)o(grate)f(into)h
+(e)o(xisting)e(le)o(gac)o(y)h(code,)i(\(2\))f(can)h(lik)o(ely)e(achie)n
+(v)o(e)h(better)g(speedups)g(with)f(more)0 3192 y(transposition)d
+(table)h(memory)-6 b(,)23 b(and)h(\(3\))g(has)g(the)g(additional)e
+(bene\002t)j(of)f(speculati)n(v)o(e)e(search)i(on)g(some)f(of)h(the)0
+3391 y(k)o(e)o(y)g(v)n(ariations)g(at)g(the)h(ne)o(xt)f(search)h
+(depth,)g(then)f(APHID)h(becomes)g(the)f(algorithm)g(of)h(choice.)146
+3590 y(It)h(is)g(hoped)g(that)f(this)g(document,)h(in)f(conjunction)g
+(with)g(the)h(freely-a)n(v)n(ailable)g(APHID)g(library)-6
+b(,)26 b(will)f(be)0 3789 y(helpful)32 b(for)i(game-tree)f(researchers)
+h(to)f(in)l(v)o(estigate)e(these)i(and)g(other)g(ideas)f(surrounding)g
+(asynchronous)0 3989 y(game-tree)25 b(search.)0 4328
+y Fo(6)143 b(Ackno)o(wledgements)0 4630 y Fu(P)o(aul)20
+b(Masiar)g(and)h(Marc)g(Nolte)e(arranged)i(access)g(to)f(the)h
+(64-processor)f(SGI)h(Origin)f(2000)f(system)h(in)g(Eagan,)0
+4830 y(Minnesota.)28 b(Charles)20 b(Leiserson,)h(Ask)o(e)f(Plaat)g(and)
+g(Boston)g(Uni)n(v)o(ersity)e(arranged)j(access)f(to)g(a)g
+(32-processor)0 5029 y(SGI)30 b(Origin)e(2000)g(system.)43
+b(The)29 b(authors)f(w)o(ould)g(also)h(lik)o(e)f(to)h(thank)g(Darse)g
+(Billings,)g(Yngvi)f(Bj)8 b(\250)-41 b(ornsson,)0 5228
+y(Murray)38 b(Campbell,)k(Joe)c(Culberson,)j(Y)-10 b(aoqing)38
+b(Gao,)k(Andreas)d(Junghanns,)h(T)-8 b(on)o(y)37 b(Marsland,)42
+b(Monroe)1900 5589 y(30)p eop
+%%Page: 31 34
+31 33 bop 0 100 a Fu(Ne)n(wborn,)24 b(Denis)g(P)o(app,)h(John)f
+(Samson,)g(and)h(the)g(referees)h(for)f(their)f(helpful)h(suggestions.)
+0 436 y Fo(Refer)m(ences)50 738 y Fu([1])49 b(R.)31 b(D.)f(Blumofe,)i
+(C.)f(F)-8 b(.)31 b(Joer)n(g,)h(B.)g(C.)f(K)o(uszmaul,)f(C.)h(E.)g
+(Leiserson,)g(K.)g(H.)f(Randall,)i(and)f(Y)-13 b(.)31
+b(Zhou.)215 938 y(Cilk:)51 b(An)35 b(Ef)n(\002cient)g(Multithreaded)f
+(Runtime)h(System.)69 b(In)35 b Fm(Pr)l(oceedings)f(of)h(PPOPP)g('95)p
+Fu(,)j(pages)215 1137 y(207\226216,)23 b(Santa)j(Barbara,)g(CA,)f(July)
+f(1995.)50 1413 y([2])49 b(M.)36 b(G.)i(Brockington.)74
+b Fm(Async)o(hrnous)36 b(P)-8 b(ar)o(allel)35 b(Game-T)-5
+b(r)l(ee)38 b(Sear)l(c)o(h)p Fu(.)75 b(PhD)37 b(thesis,)i(Uni)n(v)o
+(ersity)c(of)215 1612 y(Alberta,)24 b(Department)h(of)f(Computing)g
+(Science,)h(Edmonton,)e(Canada,)j(December)f(1997.)50
+1889 y([3])49 b(R.)32 b(Feldmann.)59 b Fm(Spielbaumsuc)o(he)31
+b(auf)g(Massiv)h(P)-8 b(ar)o(allelen)30 b(Systemen)p
+Fu(.)60 b(PhD)32 b(thesis,)h(Uni)n(v)o(ersity)d(of)215
+2088 y(P)o(aderborn,)22 b(P)o(aderborn,)f(German)o(y)-6
+b(,)21 b(May)g(1993.)27 b(English)20 b(translation)g(a)n(v)n(ailable:)
+27 b(Game)22 b(T)m(ree)f(Search)215 2287 y(on)j(Massi)n(v)o(ely)f(P)o
+(arallel)i(Systems.)50 2564 y([4])49 b(A.)25 b(Geist,)f(A.)h(Be)o
+(guelin,)g(J.)g(Dongarra,)g(W)-9 b(.)25 b(Jiang,)f(B.)i(Manchek,)f(and)
+g(V)-13 b(.)25 b(Sunderam.)37 b Fm(PVM:)25 b(P)-8 b(ar)o(allel)215
+2763 y(V)h(irtual)33 b(Mac)o(hine)i(\226)h(A)f(User')l(s)g(Guide)g(and)
+h(T)-5 b(utorial)33 b(for)i(Network)o(ed)i(P)-8 b(ar)o(allel)33
+b(Computing)p Fu(.)69 b(MIT)215 2962 y(Press,)25 b(1994.)50
+3238 y([5])49 b(R.)36 b(D.)g(Greenblatt,)j(D.)d(E.)f(Eastlak)o(e,)k
+(and)d(S.)g(D.)g(Crock)o(er)-5 b(.)72 b(The)36 b(Greenblatt)g(Chess)g
+(Program.)72 b(In)215 3438 y Fm(Pr)l(oceedings)23 b(of)i(the)f(F)-7
+b(all)24 b(J)n(oint)f(Computer)i(Confer)l(ence)p Fu(,)g(v)n(olume)f
+(31,)g(pages)h(801\226810,)f(1967.)50 3714 y([6])49 b(R.)34
+b(M.)f(Hyatt.)63 b Fm(A)33 b(High-P)-8 b(erformance)33
+b(P)-8 b(ar)o(allel)31 b(Algorithm)h(T)-9 b(o)34 b(Sear)l(c)o(h)f
+(Depth-F)l(ir)o(st)e(Game)j(T)-5 b(r)l(ees)p Fu(.)215
+3913 y(PhD)25 b(thesis,)f(Uni)n(v)o(ersity)e(of)j(Alabama,)f
+(Birmingham,)g(Alabama,)g(1988.)50 4190 y([7])49 b(R.)22
+b(M.)f(Hyatt.)28 b(The)22 b(Dynamic)f(T)m(ree)g(Splitting)f(P)o
+(arallel)i(Search)h(Algorithm.)k Fm(ICCA)22 b(J)n(ournal)p
+Fu(,)f(20\(1\):3\226)215 4389 y(19,)j(1997.)50 4665 y([8])49
+b(A.)24 b(Junghanns)e(and)j(J.)e(Schaef)n(fer)-5 b(.)35
+b(Search)25 b(V)-11 b(ersus)24 b(Kno)n(wledge)f(in)h(Game-Playing)f
+(Programs)h(Re)n(vis-)215 4864 y(ited.)35 b(In)25 b Fm(Pr)l(oceedings)e
+(of)i(IJCAI-97)p Fu(,)g(pages)g(692\226697,)f(Nago)o(ya,)g(Japan,)h
+(August)f(1997.)50 5141 y([9])49 b(D.)29 b(E.)f(Knuth)g(and)h(R.)h(W)-9
+b(.)28 b(Moore.)49 b(An)28 b(Analysis)g(of)h(Alpha-Beta)g(Pruning.)49
+b Fm(Arti\002cial)27 b(Intellig)o(ence)p Fu(,)215 5340
+y(6\(3\):293\226326,)c(1975.)1900 5589 y(31)p eop
+%%Page: 32 35
+32 34 bop 0 100 a Fu([10])49 b(D.)23 b(K)m(opec)g(and)g(I.)h(Bratk)o
+(o.)33 b(The)23 b(Bratk)o(o-K)m(opec)h(Experiment:)k(A)c(Comparison)e
+(of)i(Human)f(and)g(Com-)215 299 y(puter)g(Performance)h(in)f(Chess.)32
+b(In)23 b(M.R.B.)g(Clark)o(e,)h(editor)l(,)f Fm(Advances)g(in)g
+(Computer)g(Chess)g(3)p Fu(,)g(pages)215 498 y(57\22672.)h(Permagon)h
+(Press,)g(1982.)0 780 y([11])49 b(B.)28 b(C.)h(K)o(uszmaul.)44
+b(The)28 b(StarT)-7 b(ech)29 b(Massi)n(v)o(ely-P)o(arallel)d(Chess)i
+(Program.)46 b Fm(ICCA)29 b(J)n(ournal)p Fu(,)e(18\(1\):3\226)215
+980 y(19,)d(1995.)0 1262 y([12])49 b(C.-P)-11 b(.)30
+b(P)-11 b(.)30 b(Lu.)51 b(P)o(arallel)29 b(Search)i(of)e(Narro)n(w)h
+(Game)f(T)m(rees.)51 b(Master')-5 b(s)29 b(thesis,)g(Uni)n(v)o(ersity)f
+(of)h(Alberta,)215 1461 y(Department)24 b(of)h(Computing)e(Science,)j
+(Edmonton,)d(Canada,)i(1993.)0 1743 y([13])49 b(T)-7
+b(.)24 b(A.)h(Marsland)f(and)g(M.)h(S.)g(Campbell.)35
+b(P)o(arallel)25 b(Search)h(of)e(Strongly)g(Ordered)i(Game)e(T)m(rees.)
+36 b Fm(A)m(CM)215 1943 y(Computing)23 b(Surve)m(ys)p
+Fu(,)i(14\(4\):533\226551,)e(1982.)0 2225 y([14])49 b(M.)28
+b(M.)h(Ne)n(wborn.)48 b(Unsynchronized)28 b(Iterati)n(v)o(ely)f
+(Deepening)i(P)o(arallel)g(Alpha-Beta)g(Search.)50 b
+Fm(IEEE)215 2424 y(T)-5 b(r)o(ansactions)22 b(on)j(P)-8
+b(attern)23 b(Analysis)h(and)g(Mac)o(hine)g(Intellig)o(ence)p
+Fu(,)g(P)-9 b(AMI-10\(5\):687\226694,)23 b(1988.)0 2707
+y([15])49 b(J.)23 b(Schaef)n(fer)-5 b(.)33 b(Distrib)n(uted)21
+b(Game-T)m(ree)j(Searching.)32 b Fm(J)n(ournal)22 b(of)h(P)-8
+b(ar)o(allel)21 b(and)i(Distrib)n(uted)e(Comput-)215
+2906 y(ing)p Fu(,)j(6\(2\):90\226114,)f(1989.)0 3188
+y([16])49 b(J.)24 b(J.)g(Scott.)35 b(A)25 b(Chess-Playing)f(Program.)35
+b(In)25 b(B.)g(Meltzer)g(and)f(D.)g(Michie,)g(editors,)g
+Fm(Mac)o(hine)g(Intelli-)215 3387 y(g)o(ence)h(4)p Fu(,)g(pages)f
+(255\226265.)g(Edinb)n(ur)n(gh)g(Uni)n(v)o(ersity)e(Press,)j(1969.)0
+3670 y([17])49 b(J.-C.)35 b(W)-8 b(eill.)67 b Fm(Pr)l(o)o(gr)o(ammes)32
+b(d')1389 3648 y(\264)1369 3670 y(Ec)o(hecs)j(de)f(Championnat:)50
+b(Ar)l(c)o(hitectur)l(e)34 b(Lo)o(gicielle)o(,)j(Synth)3650
+3671 y(\036)3645 3670 y(ese)d(de)215 3869 y(F)-10 b(onctions)23
+b(d')730 3847 y(\264)711 3869 y(Evaluations,)f(P)-8 b(ar)o(all)1488
+3870 y(\264)1483 3869 y(elisme)23 b(de)i(Rec)o(her)l(c)o(he)p
+Fu(.)35 b(PhD)25 b(thesis,)e(Uni)n(v)o(ersit)6 b(\264)-39
+b(e)23 b(P)o(aris)i(8,)f(January)215 4068 y(1995.)35
+b(In)25 b(French.)0 4408 y Fo(A)143 b(The)35 b(Master')-5
+b(s)34 b(Guessed)g(Scor)m(e)h(Algorithm)0 4710 y Fu(APHID)j(has)f(all)g
+(of)g(the)h(information)d(about)i(the)g(pre)n(vious)f(depths)h(of)g
+Fq(\013)q(\014)43 b Fu(search)38 b(for)f(a)h(node,)i(such)d(as)0
+4909 y(whether)26 b(the)g(score)g(w)o(as)g(a)h(lo)n(wer)e(bound,)h(an)g
+(upper)g(bound)f(or)h(an)g(e)o(xact)g(minimax)f(v)n(alue.)33
+b(Other)26 b(informa-)0 5109 y(tion)21 b(includes)h(the)g(\002nal)g
+(minimax)f(v)n(alue)h(from)g(each)h(of)f(those)g(depths)f(of)h(search,)
+i(as)e(well)g(as)g(a)h(hypothetical)0 5308 y(minimax)28
+b(v)n(alue)h(for)g(the)h(current)g Fq(d)p Fu(-ply)e(search)i(\(the)g
+(closest)f(node)g(on)g(the)g(principal)g(v)n(ariation)f(that)h(has)h(a)
+1900 5589 y(32)p eop
+%%Page: 33 36
+33 35 bop 0 100 a Fu(certain)28 b(v)n(alue\).)38 b(All)27
+b(of)h(this)f(information)f(is)h(used)g(to)g(determine)g(a)h(guessed)f
+(score.)40 b(The)27 b(full)g(algorithm)g(is)0 299 y(gi)n(v)o(en)c(in)i
+(Figure)g(10.)146 498 y(Starting)i(with)f(the)g(information)g(for)h(a)g
+Fl(\()p Fq(d)c Fk(\000)h Fq(d)1817 462 y Fp(0)1863 498
+y Fk(\000)g Fl(1\))p Fu(-ply)i(search,)i(the)f(algorithm)e(checks)i
+(successi)n(v)o(ely)0 697 y(shallo)n(wer)e(depths)g(of)h(search)g
+(returned)g(by)g(the)f(sla)n(v)o(e)h(until)e(a)j(rele)n(v)n(ant)d
+(result)i(is)f(found)h(with)f(respect)h(to)f(the)0 897
+y Fq(\013)q(\014)33 b Fu(search)28 b(windo)n(w)-6 b(.)36
+b(This)26 b(is)h(guaranteed)h(to)f(happen,)g(since)g(the)h(master)f
+(stores)f(an)i(e)o(xact)f(e)n(v)n(aluation)e(of)j(a)0
+1096 y(leaf)d(node)g(\(a)g(0-ply)f(search\))i(when)f(the)f(leaf)h(is)g
+(\002rst)g(generated)g(and)g(gi)n(v)o(en)e(to)h(a)i(sla)n(v)o(e.)146
+1295 y(Ho)n(we)n(v)o(er)l(,)k(the)f(result)g(returned)g(by)h(the)f(sla)
+n(v)o(e)g(should)f(not)h(be)g(used)h(without)e(an)h(adjustment)f(since)
+h(the)0 1494 y(minimax)24 b(v)n(alue)h(at)h(the)g(root)f(of)h(the)g
+(tree)g(may)g(v)n(ary)f(between)h(dif)n(ferent)g(depths)f(of)h(search.)
+34 b(In)26 b(APHID,)g(the)0 1694 y(sla)n(v)o(e')-5 b(s)28
+b(minimax)g(v)n(alue)h(is)g(scaled)h(by)f(the)g(dif)n(ference)h
+(between)g(the)f(v)n(alue)g(of)h(the)f(full)g(search)h(that)f(it)g(w)o
+(as)0 1893 y(generated)g(for)g(and)f(the)g(hypothetical)f(v)n(alue)h
+(of)g(the)g(current)h(search.)42 b(F)o(or)29 b(e)o(xample,)f(if)h(the)f
+(current)h(search)0 2092 y(has)k(a)g(hypothetical)d(minimax)h(v)n(alue)
+h(of)h(5,)i(and)d(the)h(result)f(of)h Fk(\024)g Fu(6)f(from)h(a)g
+(search)g(that)f(had)h(a)g(minimax)0 2291 y(v)n(alue)g(of)h(7)g(at)f
+(the)h(root)f(of)h(the)g(game)f(tree)h(is)f(to)h(be)g(used,)h(then)f
+(the)f(dif)n(ference)h(of)g(the)g(minimax)e(v)n(alues)0
+2491 y(\(5-7\))26 b(w)o(ould)f(be)g(added)h(to)f(the)h(result.)33
+b(Thus,)25 b(the)g(v)n(alue)g(changes)h(from)f Fk(\024)h
+Fu(6)g(for)g(the)f(earlier)i(search)f(to)f Fk(\024)h
+Fu(4)0 2690 y(for)g(use)g(as)f(a)h(guessed)f(minimax)g(v)n(alue)g(in)g
+(the)g(current)h(search.)34 b(This)25 b(preserv)o(es)h(the)f(mo)o(v)o
+(e)f(ordering)h(of)h(the)0 2889 y(pre)n(vious)e(iteration.)146
+3088 y(This)c(algorithm)e(is)i(preferred)h(o)o(v)o(er)e(other)h
+(methods)f(for)h(determining)f(an)h(estimated)f(e)n(v)n(aluation)g
+(because)0 3288 y(it)k(guarantees)g(that)g(a)h(guessed)e(score)i(will)e
+(not)h(disrupt)f(the)h(search)h(tree.)31 b(If)23 b(the)g(old)g(search)h
+(result)f(\()p Fk(\024)h Fu(6\))f(w)o(as)0 3487 y(suf)n(\002cient)g(to)
+h(cause)h(the)e(tree)i(to)f(be)g(pruned)g(in)f(the)h(earlier)h(search,)
+f(the)g(guessed)g(v)n(alue)f(\()p Fk(\024)29 b Fl(4)p
+Fu(\))24 b(will)f(lik)o(ely)g(be)0 3686 y(suf)n(\002cient)h(to)h(prune)
+f(the)h(tree)g(in)g(the)f(current)h(search.)0 4026 y
+Fo(B)143 b(The)35 b(Sla)l(v)o(e')-5 b(s)34 b(W)m(indo)o(w)h(Selection)f
+(Algorithm)0 4328 y Fu(The)29 b(windo)n(w)f(selection)g(algorithm)g(is)
+g(application-dependent,)h(and)g(can)g(be)g(modi\002ed)g(by)g(editing)f
+(a)h(call-)0 4527 y(back)f(function)f(pro)o(vided)g(to)g(the)h
+(application)f(programmer)-5 b(.)38 b(Based)29 b(on)e(numerous)g
+(tests,)h(a)g(general)g(set)g(of)0 4727 y(rules)d(w)o(as)f(created)i
+(for)f(determining)e(small,)h(useful)g Fq(\013)q(\014)31
+b Fu(search)25 b(windo)n(ws)e(in)i(APHID.)146 4926 y(The)39
+b(\002rst)f(recommendation)f(is)h(that)g(the)g(sla)n(v)o(e')-5
+b(s)38 b(search)g(windo)n(w)f(should)h(be)g(centered)h(around)f(the)0
+5125 y(hypothetical)29 b(minimax)g(v)n(alue)i(\(as)g(de\002ned)g(in)g
+(Section)f(3.1\),)i(since)f(this)f(is)h(the)f(most)g(lik)o(ely)g(v)n
+(alue)g(of)h(the)1900 5589 y(33)p eop
+%%Page: 34 37
+34 36 bop 0 100 a Fu(search.)279 63 y Fn(8)355 100 y
+Fu(The)26 b(second)h(recommendation)e(is)h(that)g(to)g(increase)h(the)g
+(windo)n(w)e(based)h(on)g(ho)n(w)g(\223unstable\224)g(the)0
+299 y(principal)35 b(v)n(ariation)f(may)g(be.)63 b(F)o(or)35
+b(e)o(xample,)i(if)e(the)g(master)g(says)g(that)g(the)g(highest)f
+(remaining)g(priority)0 498 y(w)o(ork)i(to)g(be)h(searched)f(is)g(the)g
+(same)h(as)f(the)g(piece)h(of)f(w)o(ork)g(that)g(is)g(currently)g
+(being)g(e)o(xamined,)i(then)e(a)0 697 y(small)29 b(search)h(windo)n(w)
+e(should)g(be)i(chosen)f(because)h(the)f(search)h(is)f(relati)n(v)o
+(ely)f(con\002dent)i(of)f(the)h(principal)0 897 y(v)n(ariation.)i(Ho)n
+(we)n(v)o(er)l(,)25 b(as)g(the)h(dif)n(ference)g(between)g(the)f(lar)n
+(gest)h(priority)e(that)h(the)h(master)f(needs)h(completed)0
+1096 y(and)31 b(the)f(priority)f(of)i(the)f(sla)n(v)o(e')-5
+b(s)30 b(piece)h(of)f(w)o(ork)h(gets)f(lar)n(ger)l(,)i(the)f(search)g
+(windo)n(w)e(needs)h(to)h(be)f(lar)n(ger)h(to)0 1295
+y(re\003ect)d(the)f(uncertainty)f(in)h(the)g(principal)f(v)n(ariation.)
+36 b(These)27 b(lar)n(ger)h(search)g(windo)n(ws)d(are)j(also)e(used)h
+(when)0 1494 y(starting)e(speculati)n(v)o(e)f(searches)i(for)h(future)e
+(iterations,)g(since)h(there)g(is)g(no)f(information)g(on)g(the)h(v)n
+(alue)f(of)h(the)0 1694 y(principal)e(v)n(ariation)g(at)g(the)h(ne)o
+(xt)f(ply)-6 b(.)146 1893 y(These)23 b(recommendations)e(were)i(used)f
+(in)g(the)g(windo)n(w)f(selection)g(algorithm)g(for)i(each)g(of)f(the)h
+(programs)0 2092 y(tested)h(in)g(Section)h(4.)30 b(The)25
+b(scale)g(and)f(v)n(ariance)h(of)f(the)h(e)n(v)n(aluation)d(function)i
+(in)g(each)h(program)g(w)o(as)f(used)g(to)0 2291 y(determine)g(the)h
+(constants)f(used)g(to)h(increase)g(or)g(set)f(the)h(initial)e(size)i
+(of)g(the)g(sla)n(v)o(e')-5 b(s)23 b(windo)n(w)-6 b(.)p
+0 5149 1560 4 v 112 5210 a Fj(8)149 5240 y Fi(When)23
+b(the)g(hypothetical)d(minimax)h(v)n(alue)h(is)i(INV)-11
+b(ALID,)21 b(then)h(this)i(must)e(be)h(a)g(PV)g(node,)f(and)g(an)h
+(in\002nite)f(search)h(windo)n(w)0 5340 y(should)c(be)h(chosen.)1900
+5589 y Fu(34)p eop
+%%Page: 35 38
+35 37 bop 195 608 a
+ 27707274 30785863 11446026 16445440 28746629 35587932 startTexFig
+ 195 608 a
+%%BeginDocument: pics/guessed-score.ps
+%Magnification: 0.50
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+143.5 569.5 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
+ 0.03000 0.03000 sc
+7.500 slw
+% Polyline
+n 1050 975 m 9775 975 l 9775 10600 l 1050 10600 l cp gs col-1 s gr
+/Courier ff 180.00 scf sf
+1200 2000 m
+gs 1 -1 sc (int SlaveScoreUppBound\(position p, int d\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 2800 m
+gs 1 -1 sc (int RootMinimax\(int d\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 4000 m
+gs 1 -1 sc (first node visited during a pass by a master.\) */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 4400 m
+gs 1 -1 sc (int GuessedScore\(int alpha, int beta, position p, int d, int dprime\)) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 4600 m
+gs 1 -1 sc ({) col-1 sh gr
+/Courier ff 180.00 scf sf
+1600 5200 m
+gs 1 -1 sc (int hmm; /* working hypothetical minimax value for current depth */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1600 5800 m
+gs 1 -1 sc ({) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 6000 m
+gs 1 -1 sc (hmm = HypotheticalMinimax\(\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 6200 m
+gs 1 -1 sc (if \(hmm == INVALID\) { hmm = RootMinimax\(depth\); }) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 6600 m
+gs 1 -1 sc (/* Scale lower and upper bounds if they are not INFINITE to change) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 6800 m
+gs 1 -1 sc (bias of search result from previous search depth to current depth. */) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 7000 m
+gs 1 -1 sc (lb = -INFINITY; ub = INFINITY;) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 7200 m
+gs 1 -1 sc (if \(SlaveScoreLowBound\(p,depth-dprime\) != -INFINITY\)) col-1 sh gr
+/Courier ff 180.00 scf sf
+2400 7400 m
+gs 1 -1 sc (lb = SlaveScoreLowBound\(p,depth-dprime\) + hmm - RootMinimax\(depth\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 7600 m
+gs 1 -1 sc (if \(SlaveScoreUppBound\(p,depth-dprime\) != INFINITY\)) col-1 sh gr
+/Courier ff 180.00 scf sf
+2400 7800 m
+gs 1 -1 sc (ub = SlaveScoreUppBound\(p,depth-dprime\) + hmm - RootMinimax\(depth\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 8200 m
+gs 1 -1 sc (/* Check each bound to see if scaled bounds satisfy constraints. */) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 8400 m
+gs 1 -1 sc (if \(ub <= alpha\) { return alpha; }) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 8600 m
+gs 1 -1 sc (if \(lb >= beta\) { return beta; }) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 9200 m
+gs 1 -1 sc (if \(lb == ub\) { return ub; }) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 9000 m
+gs 1 -1 sc (/* An exact scaled value is always satisfactory for constraints. */) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 9600 m
+gs 1 -1 sc (/* NOTE: Loop will always exit at or before depth = dprime, since) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 9800 m
+gs 1 -1 sc (master stored SlaveScoreLowBound\(p,0\) = SlaveScoreUppBound\(p,0\) = ) col-1 sh gr
+/Courier ff 180.00 scf sf
+2000 10000 m
+gs 1 -1 sc (static evaluation, yielding equal scaled upper/lower bounds. */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1600 5600 m
+gs 1 -1 sc (for \(depth = d-1; depth >= dprime; depth = depth - 1\)) col-1 sh gr
+/Courier ff 180.00 scf sf
+1600 10200 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 10400 m
+gs 1 -1 sc (}) col-1 sh gr
+/Courier ff 180.00 scf sf
+1600 5000 m
+gs 1 -1 sc (int ub,lb; /* scaled upper/lower bounds \(if not infinite\) */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1600 4800 m
+gs 1 -1 sc (int depth; /* depth of search where estimate will be derived */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 3800 m
+gs 1 -1 sc (current pass, returns INVALID if no PV has been explored \(only happens when) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 3600 m
+gs 1 -1 sc (/* HypotheticalMinimax returns highest accurate value along current PV in) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 3400 m
+gs 1 -1 sc (int HypotheticalMinimax\(\);) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 3000 m
+gs 1 -1 sc (/* RootMinimax returns minimax value from previous search at depth d */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 2400 m
+gs 1 -1 sc (position p at depth d if result was <= beta\(p,d\); INFINITY, otherwise. */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 2200 m
+gs 1 -1 sc (/* SlaveScoreUppBound returns value from slave's alphabeta search for) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 1600 m
+gs 1 -1 sc (position p at depth d if result was >= alpha\(p,d\); -INFINITY, otherwise. */) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 1400 m
+gs 1 -1 sc (/* SlaveScoreLowBound returns value from slave's alphabeta search for) col-1 sh gr
+/Courier ff 180.00 scf sf
+1200 1200 m
+gs 1 -1 sc (int SlaveScoreLowBound\(position p, int d\);) col-1 sh gr
+showpage
+$F2psEnd
+rs
+%%EndDocument
+
+ endTexFig
+ 1015 4711 a Fu(Figure)25 b(10:)30 b(Code)c(F)o(or)e(Guessed)h(Score)h
+(Algorithm)1900 5589 y(35)p eop
+%%Page: 36 39
+36 38 bop 146 100 a Ft(Mark)37 b(Br)n(ockington)h Fu(recei)n(v)o(ed)d
+(a)i(B.Math.)64 b(de)o(gree)36 b(in)g(Pure)h(Math)e(with)h(Computer)f
+(Science)i(from)0 299 y(the)c(Uni)n(v)o(ersity)e(of)j(W)-8
+b(aterloo,)35 b(in)e(1992,)i(and)e(recei)n(v)o(ed)g(a)h(Ph.D.)g(in)f
+(Computing)f(Science)i(from)f(the)g(Uni-)0 498 y(v)o(ersity)i(of)g
+(Alberta)h(in)g(1997.)63 b(His)35 b(research)i(interests)e(include)g
+(arti\002cial)h(intelligence,)h(distrib)n(uted)d(and)0
+697 y(parallel)26 b(processing,)h(cryptography)e(and)i(data)f(security)
+-6 b(.)35 b(Mark)27 b(is)f(currently)g(w)o(orking)g(at)h(BioW)-8
+b(are)27 b(Corp.,)0 897 y(an)e(interacti)n(v)o(e)e(entertainment)h
+(\002rm)h(in)g(Edmonton,)d(Alberta,)j(Canada.)146 1096
+y Ft(J)o(onathan)35 b(Schaeffer)i Fu(recei)n(v)o(ed)d(a)h(B.Sc.)62
+b(de)o(gree)35 b(in)f(Computing)g(Science)h(from)g(the)g(Uni)n(v)o
+(ersity)d(of)0 1295 y(T)-8 b(oronto,)26 b(in)g(1978,)g(and)g(recei)n(v)
+o(ed)g(an)h(M.Math.)34 b(and)26 b(a)h(Ph.D.)g(in)f(Computer)g(Science)h
+(from)f(the)g(Uni)n(v)o(ersity)0 1494 y(of)34 b(W)-8
+b(aterloo)34 b(in)f(1980)h(and)g(1986,)h(respecti)n(v)o(ely)-6
+b(.)56 b(He)35 b(is)e(the)h(principal)f(author)h(of)i(C)t
+Fa(H)t(I)t(N)t(O)t(O)t(K)r Fu(,)k(the)34 b(Man-)0 1694
+y(Machine)22 b(W)-8 b(orld)23 b(Champion)f(check)o(ers)h(program.)30
+b(He)23 b(is)f(currently)g(a)h(Professor)g(of)g(Computing)e(Science)j
+(at)0 1893 y(the)i(Uni)n(v)o(ersity)e(of)i(Alberta.)35
+b(His)25 b(current)i(research)g(interests)e(include)h(heuristic)f
+(search,)i(parallel)f(process-)0 2092 y(ing,)e(and)h(computer)f(games.)
+1900 5589 y(36)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF