From 10acef9e6f2d1f56a39c7f4b9ccf4b4be6f8bed7 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Wed, 1 Jun 2016 19:04:57 -0700 Subject: A bunch of chess-related papers. --- parallel/214-92.pdf | Bin 0 -> 78476 bytes parallel/214-92.ps | 11579 ++++++++++++ parallel/acm.ps | 12754 +++++++++++++ parallel/brockington96aphid.ps | 34409 +++++++++++++++++++++++++++++++++++ parallel/brockington96taxonomy.ps | 2428 +++ parallel/brockington97aphid.ps | 12648 +++++++++++++ parallel/ciancarini94comparison.ps | 24943 +++++++++++++++++++++++++ parallel/dop7.ps | 1844 ++ parallel/jpdc.ps | 12898 +++++++++++++ parallel/mthesis.pdf | Bin 0 -> 447791 bytes parallel/p53-walczak.pdf | Bin 0 -> 595401 bytes parallel/p533-marsland.pdf | Bin 0 -> 1550785 bytes parallel/p65-campbell.pdf | Bin 0 -> 127959 bytes parallel/pami.ps | 3771 ++++ parallel/rbf-europar01.pdf | 1820 ++ parallel/search.ps | 2298 +++ parallel/the-aphid-parallel.pdf | Bin 0 -> 74334 bytes parallel/the-aphid-parallel.ps | 3515 ++++ 18 files changed, 124907 insertions(+) create mode 100755 parallel/214-92.pdf create mode 100755 parallel/214-92.ps create mode 100755 parallel/acm.ps create mode 100755 parallel/brockington96aphid.ps create mode 100755 parallel/brockington96taxonomy.ps create mode 100755 parallel/brockington97aphid.ps create mode 100755 parallel/ciancarini94comparison.ps create mode 100755 parallel/dop7.ps create mode 100755 parallel/jpdc.ps create mode 100644 parallel/mthesis.pdf create mode 100644 parallel/p53-walczak.pdf create mode 100644 parallel/p533-marsland.pdf create mode 100644 parallel/p65-campbell.pdf create mode 100755 parallel/pami.ps create mode 100755 parallel/rbf-europar01.pdf create mode 100644 parallel/search.ps create mode 100755 parallel/the-aphid-parallel.pdf create mode 100755 parallel/the-aphid-parallel.ps (limited to 'parallel') diff --git a/parallel/214-92.pdf b/parallel/214-92.pdf new file mode 100755 index 0000000..2721d39 Binary files /dev/null and b/parallel/214-92.pdf differ diff --git a/parallel/214-92.ps b/parallel/214-92.ps new file mode 100755 index 0000000..23b1a28 --- /dev/null +++ b/parallel/214-92.ps @@ -0,0 +1,11579 @@ +%!PS-Adobe-1.0 +%%Creator: vivaldi.ms.uky.edu:raphael (Raphael Finkel,POT959,7 6743,2660206) +%%Title: stdin (ditroff) +%%CreationDate: Wed Oct 14 11:38:59 1992 +%%EndComments +% Start of psdit.pro -- prolog for ditroff translator +% Copyright (c) 1985,1987 Adobe Systems Incorporated. All Rights Reserved. +% GOVERNMENT END USERS: See Notice file in TranScript library directory +% -- probably /usr/lib/ps/Notice +% RCS: $Header: psdit.pro,v 2.2 87/11/17 16:40:42 byron Rel $ +/$DITroff 140 dict def $DITroff begin +/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def +/xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto + /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F + /pagesave save def}def +/PB{save /psv exch def currentpoint translate + resolution 72 div dup neg scale 0 0 moveto}def +/PE{psv restore}def +/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def +/tan{dup sin exch cos div}bind def +/point{resolution 72 div mul}bind def +/dround {transform round exch round exch itransform}bind def +/xT{/devname exch def}def +/xr{/mh exch def /my exch def /resolution exch def}def +/xp{}def +/xs{docsave restore end}def +/xt{}def +/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not + {fonts slotno fontname findfont put fontnames slotno fontname put}if}def +/xH{/fontheight exch def F}bind def +/xS{/fontslant exch def F}bind def +/s{/fontsize exch def /fontheight fontsize def F}bind def +/f{/fontnum exch def F}bind def +/F{fontheight 0 le {/fontheight fontsize def}if + fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore + fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if + makefont setfont .04 fontsize point mul 0 dround pop +%raphael.ms.uky.edu 7/89: changed 'setlinewidth' to pop right here: + pop}bind def +/X{exch currentpoint exch pop moveto show}bind def +/N{3 1 roll moveto show}bind def +/Y{exch currentpoint pop exch moveto show}bind def +/S /show load def +/ditpush{}def/ditpop{}def +/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}bind def +/AN{4 2 roll moveto 0 exch ashow}bind def +/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}bind def +/AS{0 exch ashow}bind def +/MX{currentpoint exch pop moveto}bind def +/MY{currentpoint pop exch moveto}bind def +/MXY /moveto load def +/cb{pop}def % action on unknown char -- nothing for now +/n{}def/w{}def +/p{pop showpage pagesave restore /pagesave save def}def +/abspoint{currentpoint exch pop add exch currentpoint pop add exch}def +/dstroke{currentpoint stroke moveto}bind def +/Dl{2 copy gsave rlineto stroke grestore rmoveto}bind def +/arcellipse{oldmat currentmatrix pop + currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def + rad 0 rad -180 180 arc oldmat setmatrix}def +/Dc{gsave dup /diamv exch def /diamh exch def arcellipse dstroke + grestore diamh 0 rmoveto}def +/De{gsave /diamv exch def /diamh exch def arcellipse dstroke + grestore diamh 0 rmoveto}def +/Da{currentpoint /by exch def /bx exch def /fy exch def /fx exch def + /cy exch def /cx exch def /rad cx cx mul cy cy mul add sqrt def + /ang1 cy neg cx neg atan def /ang2 fy fx atan def cx bx add cy by add + 2 copy rad ang1 ang2 arcn stroke exch fx add exch fy add moveto}def +/Barray 200 array def % 200 values in a wiggle +/D~{mark}def +/D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop + /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and + {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def + Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put + Bcontrol Blen 2 sub 2 copy get 2 mul put + Bcontrol Blen 1 sub 2 copy get 2 mul put + /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub + {/i exch def + Bcontrol i get 3 div Bcontrol i 1 add get 3 div + Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div + Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div + /Xbi Xcont Bcontrol i 2 add get 2 div add def + /Ybi Ycont Bcontrol i 3 add get 2 div add def + /Xcont Xcont Bcontrol i 2 add get add def + /Ycont Ycont Bcontrol i 3 add get add def + Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto + }for dstroke}if}def +end +/ditstart{$DITroff begin + /nfonts 60 def % NFONTS makedev/ditroff dependent! + /fonts[nfonts{0}repeat]def + /fontnames[nfonts{()}repeat]def +/docsave save def +}def + +% character outcalls +/oc {/pswid exch def /cc exch def /name exch def + /ditwid pswid fontsize mul resolution mul 72000 div def + /ditsiz fontsize resolution mul 72 div def + ocprocs name known{ocprocs name get exec}{name cb} + ifelse}def +/fractm [.65 0 0 .6 0 0] def +/fraction + {/fden exch def /fnum exch def gsave /cf currentfont def + cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto + fnum show rmoveto currentfont cf setfont(\244)show setfont fden show + grestore ditwid 0 rmoveto} def +/oce {grestore ditwid 0 rmoveto}def +/dm {ditsiz mul}def +/ocprocs 50 dict def ocprocs begin +(14){(1)(4)fraction}def +(12){(1)(2)fraction}def +(34){(3)(4)fraction}def +(13){(1)(3)fraction}def +(23){(2)(3)fraction}def +(18){(1)(8)fraction}def +(38){(3)(8)fraction}def +(58){(5)(8)fraction}def +(78){(7)(8)fraction}def +(sr){gsave .05 dm .16 dm rmoveto(\326)show oce}def +(is){gsave 0 .15 dm rmoveto(\362)show oce}def +(->){gsave 0 .02 dm rmoveto(\256)show oce}def +(<-){gsave 0 .02 dm rmoveto(\254)show oce}def +(==){gsave 0 .05 dm rmoveto(\272)show oce}def +end +% DIThacks fonts for some special chars +50 dict dup begin +/FontType 3 def +/FontName /DIThacks def +/FontMatrix [.001 0.0 0.0 .001 0.0 0.0] def +/FontBBox [-220 -280 900 900] def% a lie but ... +/Encoding 256 array def +0 1 255{Encoding exch /.notdef put}for +Encoding + dup 8#040/space put %space + dup 8#110/rc put %right ceil + dup 8#111/lt put %left top curl + dup 8#112/bv put %bold vert + dup 8#113/lk put %left mid curl + dup 8#114/lb put %left bot curl + dup 8#115/rt put %right top curl + dup 8#116/rk put %right mid curl + dup 8#117/rb put %right bot curl + dup 8#120/rf put %right floor + dup 8#121/lf put %left floor + dup 8#122/lc put %left ceil + dup 8#140/sq put %square + dup 8#141/bx put %box + dup 8#142/ci put %circle + dup 8#143/br put %box rule + dup 8#144/rn put %root extender + dup 8#145/vr put %vertical rule + dup 8#146/ob put %outline bullet + dup 8#147/bu put %bullet + dup 8#150/ru put %rule + dup 8#151/ul put %underline + pop +/DITfd 100 dict def +/BuildChar{0 begin + /cc exch def /fd exch def + /charname fd /Encoding get cc get def + /charwid fd /Metrics get charname get def + /charproc fd /CharProcs get charname get def + charwid 0 fd /FontBBox get aload pop setcachedevice + 40 setlinewidth + newpath 0 0 moveto gsave charproc grestore + end}def +/BuildChar load 0 DITfd put +%/UniqueID 5 def +/CharProcs 50 dict def +CharProcs begin +/space{}def +/.notdef{}def +/ru{500 0 rls}def +/rn{0 750 moveto 500 0 rls}def +/vr{20 800 moveto 0 -770 rls}def +/bv{20 800 moveto 0 -1000 rls}def +/br{20 770 moveto 0 -1040 rls}def +/ul{0 -250 moveto 500 0 rls}def +/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def +/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def +/sq{80 0 rmoveto currentpoint dround newpath moveto + 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def +/bx{80 0 rmoveto currentpoint dround newpath moveto + 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def +/ci{355 333 rmoveto currentpoint newpath 333 0 360 arc + 50 setlinewidth stroke}def + +/lt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def +/lb{20 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def +/rt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def +/rb{20 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def +/lk{20 800 moveto 20 300 -280 300 s4 arcto pop pop 1000 sub + currentpoint stroke moveto + 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def +/rk{20 800 moveto 20 300 320 300 s4 arcto pop pop 1000 sub + currentpoint stroke moveto + 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def +/lf{20 800 moveto 0 -1000 rlineto s4 0 rls}def +/rf{20 800 moveto 0 -1000 rlineto s4 neg 0 rls}def +/lc{20 -200 moveto 0 1000 rlineto s4 0 rls}def +/rc{20 -200 moveto 0 1000 rlineto s4 neg 0 rls}def +end + +/Metrics 50 dict def Metrics begin +/.notdef 0 def +/space 500 def +/ru 500 def +/br 0 def +/lt 250 def +/lb 250 def +/rt 250 def +/rb 250 def +/lk 250 def +/rk 250 def +/rc 250 def +/lc 250 def +/rf 250 def +/lf 250 def +/bv 250 def +/ob 350 def +/bu 350 def +/ci 750 def +/bx 750 def +/sq 750 def +/rn 500 def +/ul 500 def +/vr 0 def +end + +DITfd begin +/s2 500 def /s4 250 def /s3 333 def +/a4p{arcto pop pop pop pop}def +/2cx{2 copy exch}def +/rls{rlineto stroke}def +/currx{currentpoint pop}def +/dround{transform round exch round exch itransform} def +end +end +/DIThacks exch definefont pop +%raphael.ms.uky.edu 7/89: for splines from gremlin: next 3 lines +/Dg{gsave}def +/Dgi{rlineto}def +/Dgl{lineto currentpoint stroke grestore moveto}def +ditstart +(psc)xT +576 1 1 xr +1(Times-Roman)xf 1 f +2(Times-Italic)xf 2 f +3(Times-Bold)xf 3 f +4(Times-BoldItalic)xf 4 f +5(Helvetica)xf 5 f +6(Helvetica-Bold)xf 6 f +7(Courier)xf 7 f +8(Courier-Bold)xf 8 f +9(Symbol)xf 9 f +10(DIThacks)xf 10 f +10 s +1 f +xi +%%EndProlog + +%%Page: 1 1 +10 s 0 xH 0 xS 1 f +15 s +867 807(A)N +983(comparison)X +1574(of)X +1704(some)X +1988(parallel)X +2379(game-tree)X +2889(search)X +3225(algorithms)X +1878 942(\(Revised)N +2335(version\))X +14 s +1553 1203(Jaleh)N +1812(Rezaie)X +12 s +2201(\(jrezaie@ms.uky.edu\))X +14 s +1482 1329(Raphael)N +1877(Finkel)X +12 s +2247(\(raphael@ms.uky.edu\))X +13 s +1606 1572(Department)N +2123(of)X +2236(Computer)X +2678(Science)X +1812 1689(University)N +2278(of)X +2391(Kentucky)X +1725 1806(Lexington,)N +2204(KY)X +2380(40506-0027)X +8 f +14 s +576 2127(Abstract)N +1 f +12 s +776 2268(This)N +1002(paper)X +1271 0.2404(experimentally)AX +1905(compares)X +2329(several)X +2658(sequential)X +3105(and)X +3300(parallel)X +3646(game-tree)X +576 2376(search)N +850(methods:)X +1231(alpha-beta,)X +1685(mandatory)X +2125(work)X +2350(\256rst,)X +2550 0.1979(principal-variation)AX +3295(splitting,)X +3662(tree)X +3834(split-)X +576 2484(ting,)N +775(ER,)X +947(and)X +1111(delay)X +1345(splitting.)X +1734(All)X +1882(have)X +2089(been)X +2296(implemented)X +2826(in)X +2927(a)X +2996(common)X +3359(environment)X +3872(pro-)X +576 2592(vided)N +814(by)X +934(the)X +1076(DIB)X +1265(package.)X +8 f +14 s +576 2796(Key)N +844(words:)X +1 f +12 s +1326(game)X +1559(trees,)X +1789(heuristic)X +2145(search,)X +2439(alpha-beta)X +8 f +14 s +576 3000(1.)N +844(Introduction)X +1 f +12 s +776 3141(In)N +892(this)X +1067(paper)X +1318(we)X +1467(compare)X +1836(some)X +2076(of)X +2193(the)X +2348(parallel)X +2675(methods)X +3038(for)X +3187(searching)X +3593(large)X +3823(game)X +576 3249(trees.)N +831(These)X +1086(trees)X +1293(arise)X +1500(in)X +1600(the)X +1743(area)X +1929(of)X +2034(arti\256cial)X +2381 0.2784(intelligence)AX +2857(and)X +3021(are)X +3164(closely)X +3462(related)X +3750(to)X +3850(trees)X +576 3357(searched)N +946(in)X +1054(other)X +1285(application)X +1748(areas.)X +2028(Exhaustive)X +2490(search)X +2770(of)X +2884(a)X +2961(tree)X +3140(is)X +3238(prohibitively)X +3770(expen-)X +576 3465(sive.)N +803(There)X +1052(are)X +1194(several)X +1491(ways)X +1712(to)X +1811(ameliorate)X +2243(the)X +2385(problem.)X +10 f +624 3606(g)N +1 f +706(Search)X +992(only)X +1187(to)X +1286(a)X +1353(given)X +1591(depth.)X +10 f +624 3714(g)N +1 f +706(Apply)X +970(heuristics,)X +1387(such)X +1587(as)X +1691(the)X +1833(alpha-beta)X +2259(method,)X +2596(to)X +2695(cut)X +2837(off)X +2973(fruitless)X +3307(search.)X +10 f +624 3822(g)N +1 f +706(Apply)X +970(many)X +1208(computers)X +1633(simultaneously)X +2240(in)X +2339(pursuing)X +2699(the)X +2841(search.)X +576 3963(We)N +734(concentrate)X +1203(on)X +1323(distributed)X +1759(variants)X +2088(of)X +2192(the)X +2334(alpha-beta)X +2760(heuristic)X +3116(that)X +3285(try)X +3416(to)X +3515(avoid)X +3754(search-)X +576 4071(ing)N +723(unnecessary)X +1217(parts)X +1428(of)X +1532(the)X +1674(tree)X +1843(while)X +2081(keeping)X +2410(many)X +2648(processors)X +3077(fruitfully)X +3449(busy.)X +776 4212(The)N +987(algorithms)X +1460(we)X +1633(compare)X +2026(are)X +2205(alpha-beta,)X +2692(mandatory)X +3165(work)X +3423(\256rst,)X +3657(principal-)X +576 4320(variation)N +947(splitting,)X +1315(tree)X +1488(splitting,)X +1856(ER,)X +2031(and)X +2198(delay)X +2434(splitting.)X +2825(To)X +2959(be)X +3077(able)X +3265(to)X +3367(make)X +3603(a)X +3673(fair)X +3834(com-)X +576 4428(parison)N +884(between)X +1230(the)X +1373(above)X +1628(algorithms,)X +2089(we)X +2226(have)X +2433(extended)X +2806(the)X +2949(DIB)X +3139(package)X +3479([1])X +3617(to)X +3718(use)X +3872(it)X +3952(as)X +576 4536(a)N +643(framework)X +1089(for)X +1225(implementing)X +1785(all)X +1906(the)X +2048(algorithms)X +2484(we)X +2620(compare.)X +776 4677(Section)N +1097(2)X +1177(describes)X +1567(the)X +1717(DIB)X +1914(package.)X +2310(Section)X +2632(3)X +2713(introduces)X +3147(the)X +3298(alpha-beta)X +3733(pruning)X +576 4785(and)N +749(brie\257y)X +1034(describes)X +1426(the)X +1578(algorithms)X +2024(used)X +2234(in)X +2342(the)X +2493(experiment.)X +3008(Section)X +3330(4)X +3411(presents)X +3759(experi-)X +576 4893(mental)N +876(results)X +1164(that)X +1346(compare)X +1716(the)X +1872(algorithms.)X +2370(Section)X +2697(5)X +2783(compares)X +3190(the)X +3346(effects)X +3641(of)X +3759(several)X +576 5001(sorting)N +872(strategies)X +1264(on)X +1388(the)X +1534(above)X +1792(algorithms.)X +2280(Section)X +2597(6)X +2673(illustrates)X +3076(the)X +3222(new)X +3410(results)X +3689(achieved)X +576 5109(by)N +703(adjustments)X +1195(made)X +1436(to)X +1543(MWF)X +1804(algorithm.)X +2259(Section)X +2580(7)X +2660(summarizes)X +3152(the)X +3302(results,)X +3609(and)X +3780(details)X +576 5217(remaining)N +991(parts)X +1202(of)X +1306(this)X +1469(experiment.)X +8 f +14 s +576 5439(2.)N +840(DIB)X +1104(\320)X +1234(A)X +1364(distributed)X +2164(implementation)X +3165(of)X +3362(backtrack-)X +576 5547(ing)N +1 f +12 s +776 5688(In)N +892(this)X +1067(section)X +1376(we)X +1524(describe)X +1881(how)X +2082(DIB)X +2283(works)X +2553(and)X +2728(how)X +2929(we)X +3077(use)X +3241(it)X +3331(to)X +3443(implement)X +3893(dif-)X +576 5796(ferent)N +825(tree-search)X +1272(algorithms.)X + +2 p +%%Page: 2 2 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(2)X +8 f +14 s +576 780(2.1.)N +978(Description)X +1782(of)X +1983(DIB)X +1 f +12 s +776 921(DIB)N +971(is)X +1065(a)X +1138(multi-purpose)X +1708(package)X +2054(developed)X +2480(by)X +2606(Finkel)X +2882(and)X +3051(Manber)X +3380(for)X +3523(tree-traversal)X +576 1029(problems)N +958([1].)X +1168(It)X +1277(allows)X +1578(applications)X +2094(such)X +2320(as)X +2450(backtrack)X +2875(and)X +3063(branch-and-bound)X +3817(to)X +3941(be)X +576 1137(implemented)N +1122(on)X +1260(a)X +1345(multicomputer.)X +2003(DIB's)X +2279(requirements)X +2824(from)X +3053(the)X +3213(distributed)X +3668(operating)X +576 1245(system)N +886(are)X +1047(minimal.)X +1460(The)X +1653(machines)X +2060(must)X +2289(be)X +2422(connected)X +2855(by)X +2993(a)X +3078(network)X +3435(that)X +3622(supports)X +3989(a)X +576 1353(message-passing)N +1263(mechanism;)X +1770(each)X +1988(machine)X +2356(must)X +2584(be)X +2716(able)X +2918(to)X +3035(communicate,)X +3621(not)X +3786(neces-)X +576 1461(sarily)N +817(directly,)X +1163(with)X +1361(all)X +1485(other)X +1710(machines.)X +2149(Our)X +2325 0.2548(implementation)AX +2958(of)X +3065(DIB)X +3257(is)X +3348(programmed)X +3867(in)X +3968(C)X +576 1569(and)N +741(runs)X +932(in)X +1033(the)X +1177(Unix)X +1395(environment)X +1908(across)X +2174(machines)X +2564(connected)X +2981(by)X +3103(an)X +3220(internet)X +3541(or)X +3647(on)X +3770(a)X +3840(Unix)X +576 1677(multiprocessor.)N +776 1818(The)N +953(application)X +1409(program)X +1762(must)X +1976(specify)X +2281(the)X +2426(root)X +2609(of)X +2717(the)X +2863(problem)X +3212(tree,)X +3409(how)X +3602(to)X +3705(generate)X +576 1926(children,)N +955(and)X +1133(calculations)X +1633(needed)X +1945(at)X +2054(each)X +2270(node.)X +2544(It)X +2642(can)X +2815(also)X +3009(optionally)X +3438(specify)X +3754(how)X +3957(to)X +576 2034(generate)N +937(values)X +1217(of)X +1331(a)X +1408(tree)X +1587(node)X +1808(from)X +2029(combining)X +2475(its)X +2600(children's)X +3019(values)X +3299(and)X +3472(how)X +3671(to)X +3781(spread)X +576 2142(information)N +1055(either)X +1299(globally)X +1639(or)X +1743(locally)X +2030(throughout)X +2476(the)X +2618(tree.)X +776 2283(DIB)N +969(divides)X +1276(the)X +1423(problem)X +1773(into)X +1952(subproblems)X +2472(and)X +2640(assigns)X +2946(them)X +3168(to)X +3272(any)X +3440(number)X +3763(of)X +3872(pro-)X +576 2391(cessors)N +879(\(potentially)X +1349(nonhomogeneous)X +2052(machines)X +2441(in)X +2541(a)X +2609(network\))X +2981(dynamically.)X +3531(Each)X +3749(proces-)X +576 2499(sor)N +723(maintains)X +1128(a)X +1201(table)X +1419(of)X +1530(explicit)X +1851(work,)X +2103(recording)X +2503(all)X +2631(the)X +2780(problems)X +3169(that)X +3345(have)X +3558(been)X +3771(sent)X +3957(to)X +576 2607(the)N +721(processor,)X +1140(have)X +1349(been)X +1558(generated)X +1960(by)X +2083(the)X +2227(processor)X +2621(itself,)X +2864(and/or)X +3136(have)X +3344(been)X +3552(sent)X +3733(to)X +3834(other)X +576 2715(processors.)N +1062(Each)X +1288(processor)X +1689(is)X +1786(responsible)X +2257(for)X +2402(the)X +2553(work)X +2784(in)X +2893(its)X +3018(table.)X +3288(Each)X +3515(item)X +3721(of)X +3835(work)X +576 2823(\(represented)N +1079(by)X +1202(a)X +1272(node)X +1486(in)X +1588(the)X +1733(backtrack)X +2135(tree,)X +2331(which)X +2593(stands)X +2859(as)X +2965(well)X +3157(for)X +3295(all)X +3418(its)X +3535(descendents\))X +576 2931(is)N +664(labeled)X +967(by)X +1087(which)X +1346(processor,)X +1762(if)X +1845(any,)X +2032(has)X +2184(been)X +2390(assigned)X +2745(that)X +2914(work.)X +776 3072(When)N +1030(a)X +1097(processor)X +2 f +1489(A)X +1 f +1588(is)X +1676(\256nished)X +2004(with)X +2199(a)X +2266(problem)X +2611(and)X +2775(has)X +2928(reported)X +3274(its)X +3390(result)X +3629(to)X +3729(the)X +3872(pro-)X +576 3180(cessor)N +848(that)X +1025(gave)X +1239(it)X +1324(that)X +1500(problem,)X +1876(it)X +1961(will)X +2142(take)X +2334(the)X +2483(\256rst)X +2663(\(in)X +2801(an)X +2923(inorder)X +3232(traversal)X +3595(of)X +3706(the)X +3855(tree\))X +576 3288(unassigned)N +1042(problem)X +1402(from)X +1629(its)X +1760(table.)X +2036(If)X +2140(no)X +2276(unassigned)X +2743(problem)X +3104(is)X +3208(available,)X +2 f +3621(A)X +1 f +3736(sends)X +3989(a)X +3 f +576 3396(work)N +815(request)X +1 f +1145(message)X +1496(to)X +1596(another)X +1910(processor)X +2303(\(or)X +2440(processors\),)X +2926(selected)X +3262(at)X +3357(random)X +3676(from)X +2 f +3888(A)X +1 f +3963('s)X +576 3504(peers,)N +827(repeatedly)X +1253(\(with)X +1480(some)X +1707(delay\))X +1972(until)X +2173(new)X +2357(work)X +2578(arrives.)X +776 3645(A)N +878(processor)X +2 f +1279(B)X +1 f +1387(that)X +1565(receives)X +1914(a)X +1990(work)X +2220(request)X +2531(message)X +2890(interrupts)X +3292(its)X +3416(own)X +3614(search)X +3893(and)X +576 3753(trys)N +754(to)X +863(respond)X +1201(by)X +1331(sending)X +1664(some)X +1901(work)X +2132(to)X +2240(the)X +2391(requesting)X +2825(processor)X +3226(from)X +3446(its)X +3570(table.)X +3839(If)X +3936(no)X +576 3861(unassigned)N +1031(problem)X +1380(is)X +1472(available)X +1849(in)X +1952(the)X +2098(table,)X +2338(then)X +2532(the)X +2678(problem)X +2 f +3028(B)X +1 f +3132(is)X +3225(working)X +3574(on)X +3699(is)X +3792(subdi-)X +576 3969(vided)N +815(and)X +979(its)X +1095(children)X +1436(are)X +1579(put)X +1727(in)X +1827(the)X +1970(table.)X +2231(Until)X +2454(work)X +2676(is)X +2765(subdivided,)X +3236(DIB)X +3426(maintains)X +3826(a)X +3893(fast)X +576 4077(representation)N +1163(of)X +1284(the)X +1443(current)X +1758(search)X +2046(\(just)X +2259(a)X +2344(recursion)X +2744(stack;)X +3011(we)X +3165(call)X +3347(it)X +3443(the)X +3603(``implicit'')X +576 4185(representation\);)N +1206(subdivided)X +1653(work)X +1875(is)X +1964(explicit)X +2278(in)X +2377(the)X +2519(table.)X +2779(After)X +3006(subdivision,)X +2 f +3497(B)X +1 f +3596(can)X +3754(usually)X +576 4293(send)N +791(some)X +1033(unassigned)X +1499(work)X +1735(to)X +1849(the)X +2006(requesting)X +2446(processor.)X +2901(Subdivision)X +3399(may)X +3604(have)X +3826(to)X +3941(be)X +576 4401(repeated)N +944(several)X +1258(times)X +1508(before)X +1795(an)X +1927(unassigned)X +2395(problem)X +2757(is)X +2862(generated,)X +3302(but)X +3466(if)X +3566(it)X +3660(reaches)X +3989(a)X +576 4509(trivial)N +844(problem)X +1202(\(not)X +1394(worth)X +1655(subdividing\),)X +2202(or)X +2319(if)X +2416(it)X +2508(reaches)X +2835(the)X +2991(depth)X +3243(at)X +3351(which)X +2 f +3624(B)X +1 f +3737(itself)X +3968(is)X +576 4617(searching,)N +998(the)X +1144(request)X +1450(is)X +1542(not)X +1693(granted.)X +2 f +2058(B)X +1 f +2161(resumes)X +2504(its)X +2623(search)X +2897(after)X +3102(dealing)X +3414(with)X +3613(the)X +3759(incom-)X +576 4725(ing)N +723(request.)X +776 4866(DIB)N +972(is)X +1067(fault)X +1275(tolerant,)X +1625(in)X +1731(that)X +1907(work)X +2135(that)X +2 f +2311(B)X +1 f +2417(has)X +2576(given)X +2822(to)X +2 f +2929(A)X +1 f +3036(can)X +3202(still)X +3379(be)X +3502(accomplished)X +576 4974(by)N +2 f +702(B)X +1 f +807(if)X +896(there)X +1119(is)X +1213(nothing)X +1537(else)X +1717(worth)X +1971(doing)X +2220(and)X +2389(if)X +2 f +2478(A)X +1 f +2582(has)X +2739(not)X +2891(yet)X +3038(reported)X +3388(the)X +3535(result)X +3778(of)X +3887(that)X +576 5082(work.)N +845(This)X +1040(mechanism)X +1503(does)X +1703(not)X +1850(need)X +2056(timeouts)X +2412(or)X +2516(``heartbeats'')X +3059(to)X +3158(detect)X +3413(failure.)X +776 5223(We)N +938(have)X +1148(enhanced)X +1540(the)X +1686(DIB)X +1879(package)X +2223(so)X +2336(that)X +2509(it)X +2591(can)X +2753(achieve)X +3076(high)X +3275(ef\256ciency)X +3683(for)X +3823(game)X +576 5331(tree)N +748(search.)X +1069(The)X +1246(principal)X +1616(enhancement)X +2152(is)X +2243(added)X +2500(\257exibility)X +2902(given)X +3143(to)X +3245(the)X +3389(application)X +3844(level)X +576 5439(for)N +719(delaying)X +1082(evaluation)X +1515(of)X +1626(a)X +1700(game-tree)X +2117(node.)X +2383(That)X +2591(is,)X +2710(the)X +2860(application)X +3321(can)X +3487(refuse)X +3754(to)X +3861(gen-)X +576 5547(erate)N +792(additional)X +1206(children)X +1549(for)X +1688(a)X +1758(node)X +1972(but)X +2122(indicate)X +2455(that)X +2627(in)X +2729(the)X +2874(future)X +3131(it)X +3212(may)X +3405(again)X +3641(be)X +3759(willing)X +576 5655(to)N +688(do)X +821(so.)X +991(DIB)X +1194(does)X +1408(not)X +1569(attempt)X +1897(to)X +2010(generate)X +2375(children)X +2729(of)X +2847(such)X +3061(a)X +3142(node)X +3367(again)X +3614(until)X +3829(some)X +576 5763(other)N +798(child)X +1015(of)X +1119(that)X +1288(node)X +1499(has)X +1651(completed)X +2077(or)X +2181(a)X +2248(data)X +2433(update)X +2714(message)X +3064(has)X +3216(arrived)X +3513(at)X +3607(that)X +3776(node.)X + +3 p +%%Page: 3 3 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(3)X +1 f +12 s +776 780(To)N +913(experiment)X +1377(with)X +1578(game)X +1817(playing,)X +2160(we)X +2302(have)X +2514(designed)X +2886(a)X +2959(two-level)X +3353(application)X +3813(struc-)X +576 888(ture.)N +817(The)X +3 f +1010(game)X +1 f +1272(level)X +1503(is)X +1610(game-speci\256c,)X +2212(knowing)X +2591(the)X +2752(rules)X +2982(for)X +3137(tic-tac-toe,)X +3596(Othello,)X +3952(or)X +576 996(checkers.)N +989(The)X +3 f +1167(control)X +1 f +1489(level)X +1705(communicates)X +2290(both)X +2489(with)X +2688(DIB)X +2881(and)X +3048(the)X +3194(game)X +3431(level.)X +3695(It)X +3782(knows)X +576 1104(the)N +734(pattern)X +1042(of)X +1162(evaluation)X +1604(for)X +1756(one)X +1935(of)X +2055(the)X +2213(algorithms)X +2665(we)X +2816(compared,)X +3259(namely,)X +3606(alpha-beta,)X +576 1212(mandatory)N +1023(work)X +1255(\256rst,)X +1463 0.1979(principal-variation)AX +2216(splitting,)X +2591(tree)X +2772(splitting,)X +3148(ER,)X +3331(or)X +3447(delay)X +3692(splitting.)X +576 1320(Any)N +769(of)X +877(the)X +1022(game)X +1258(modules)X +1611(we)X +1750(implemented)X +2281(can)X +2442(be)X +2560(used)X +2763(with)X +2961(any)X +3127(of)X +3234(the)X +3379(control)X +3679(modules;)X +576 1428(any)N +739(such)X +939(combination)X +1445(can)X +1603(be)X +1718(used)X +1918(with)X +2113(our)X +2265(enhanced)X +2653(DIB.)X +776 1569(Since)N +1043(DIB)X +1261(distributes)X +1715(work,)X +1989(collects)X +2337(and)X +2529(reports)X +2849(results,)X +3177(and)X +3370(passes)X +3669(messages)X +576 1677(between)N +929(processors)X +1365(in)X +1471(a)X +1545(similar)X +1844(way)X +2035(for)X +2178(all)X +2306(the)X +2455(combinations,)X +3029(we)X +3172(can)X +3337(compare)X +3700(different)X +576 1785(control)N +882(modules)X +1241(in)X +1349(a)X +1425(fairly)X +1668 0.2050(implementation-independent)AX +2811(fashion.)X +3176(Previous)X +3546(comparisons)X +576 1893(are)N +719(questionable)X +1231(because)X +1561(each)X +1763(algorithm)X +2163(was)X +2337(implemented)X +2866(in)X +2966(a)X +3034(different)X +3391(parallel)X +3706(environ-)X +576 2001(ment.)N +8 f +14 s +576 2205(3.)N +844(Parallel)X +1447(tree)X +1782(search)X +2251(algorithms)X +1 f +12 s +776 2346(The)N +953(best)X +1135(way)X +1323(to)X +1426(evaluate)X +1776(a)X +1847(parallel)X +2165(algorithm)X +2568(for)X +2708(a)X +2779(given)X +3021(problem)X +3370(is)X +3462(to)X +3565(measure)X +3914(the)X +576 2454(extent)N +844(in)X +951(which)X +1217(it)X +1302(takes)X +1531(advantage)X +1953(of)X +2064(available)X +2444(processors.)X +2928(This)X +3130(idea)X +3322(can)X +3487(be)X +3609(formulated)X +576 2562(as)N +680(follows:)X +2 f +1161 2754(speedup)N +1516(S)X +9 f +1604(=)X +2 f +1848 2823(time)N +2054(required)X +2425(by)X +2556(parallel)X +2901(algorithm)X +1705 2700(time)N +1911(required)X +2282(by)X +2413(best)X +2608(sequential)X +3044(algorithm)X +10 f +1690 2727(h)N +1709(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X +2 f +1442 3045(ef\256ciency)N +1847(E)X +9 f +1946(=)X +2 f +2047 3114(number)N +2380(of)X +2511(processors)X +2966(used)X +2571 2991(S)N +10 f +2033 3018(h)N +2053(hhhhhhhhhhhhhhhhhhhhhhh)X +1 f +776 3285(It)N +866(is)X +961(not)X +1115(easy)X +1317(to)X +1423(achieve)X +1749(a)X +1823(``perfect'')X +2250(ef\256ciency)X +2661(of)X +2772(1.0.)X +2971(For)X +3136(a)X +3211(given)X +3457(sized)X +3687(problem,)X +576 3393(ef\256ciency)N +990(tends)X +1227(to)X +1335(decrease)X +1700(as)X +1813(the)X +1964(number)X +2291(of)X +2404(processors)X +2842(increases.)X +3276(This)X +3480(relationship)X +3968(is)X +576 3501(explained)N +975(by)X +1095(Kumar)X +1386(and)X +1549(Rao)X +1728([2])X +1864(as)X +1968(resulting)X +2329(from)X +2540(an)X +2655(increase)X +2995(in)X +3094(the)X +3236(communication)X +3860(time)X +576 3609(\(sum)N +798(of)X +908(the)X +1056(time)X +1258(spent)X +1491(by)X +1616(all)X +1742(processors)X +2176(in)X +2280(communicating)X +2909(with)X +3109(neighboring)X +3603(processors,)X +576 3717(waiting)N +894(for)X +1035(messages,)X +1451(time)X +1652(in)X +1756(starvation,)X +2189(and)X +2357(so)X +2471(forth\),)X +2743(while)X +2986(there)X +3208(is)X +3301(no)X +3426(change)X +3729(in)X +3834(com-)X +576 3825(putation)N +926(time)X +1132(\(sum)X +1358(of)X +1471(the)X +1622(time)X +1827(spent)X +2063(by)X +2192(all)X +2322(the)X +2473(processors)X +2911(in)X +3019(useful)X +3287(computation\).)X +3882(The)X +576 3933(relationship)N +1060(between)X +1411(communication)X +2041(time)X +2243(\()X +2 f +2275(T)X +9 s +2328 3957(cm)N +1 f +12 s +2428 3933(\),)N +2514(computation)X +3026(time)X +3228(\()X +2 f +3260(T)X +9 s +3313 3957(cp)N +1 f +12 s +3397 3933(\),)N +3483(and)X +3652(ef\256ciency)X +576 4047(\(E\))N +723(is)X +811(described)X +1204(as)X +1308(follows:)X +2 f +2045 4263(E)N +9 f +2120(=)X +2 f +2197 4332(T)N +9 s +2250 4356(cp)N +12 s +9 f +2334 4332(+)N +2 f +2387(T)X +9 s +2440 4356(cm)N +12 s +2300 4185(T)N +9 s +2353 4209(cp)N +12 s +10 f +2182 4236(h)N +2218(hhhhhhh)X +1 f +776 4527(Kumar)N +1080(and)X +1256(Rao)X +1435([2])X +1584(de\256ne)X +1856(an)X +3 f +1984(isoef\256ciency)X +2518(function)X +1 f +2896(that)X +3078(shows)X +3354(how)X +3556(the)X +3711(problem)X +576 4635(must)N +790(grow)X +1013(with)X +1210(number)X +1530(of)X +1636(processors)X +2067(to)X +2168(achieve)X +2489(the)X +2633(same)X +2857(ef\256ciency.)X +3311(They)X +3535(also)X +3716(mention)X +576 4743(that)N +759(since)X +995(most)X +1220(problems)X +1616(have)X +1836(a)X +1917(sequential)X +2346(component)X +2812(\(in)X +2957(depth-\256rst)X +3390(search,)X +3698(it)X +3790(is)X +3893(one)X +576 4851(node)N +813(expansion\),)X +1309(problem)X +1680(size)X +1880(must)X +2117(grow)X +2364(at)X +2484(least)X +2711(linearly)X +3056(to)X +3181(maintain)X +3569(a)X +3662(particular)X +576 4959(ef\256ciency.)N +776 5100(Steinberg)N +1177(and)X +1348(Solomon)X +1719([3])X +1863(blame)X +2131(the)X +2281(failure)X +2565(to)X +2672(achieve)X +2999(perfect)X +3299(ef\256ciency)X +3711(on)X +3839(three)X +576 5208(types)N +803(of)X +907(``loss''.)X +10 f +624 5349(g)N +3 f +706(Starvation)X +1162(loss)X +1 f +1311(:)X +1362(processors)X +1791(sitting)X +2056(idle)X +2225(while)X +2463(awaiting)X +2819(work)X +3040(to)X +3139(be)X +3254(given)X +3492(to)X +3591(them.)X +10 f +624 5457(g)N +3 f +706(Interference)X +1240(loss)X +1 f +1389(:)X +1442(time)X +1640(spent)X +1869(waiting)X +2184(for)X +2322(access)X +2594(to)X +2695(shared)X +2973(resources)X +3363(such)X +3566(as)X +3673(the)X +3818(set)X +3952(of)X +706 5565(un\256nished)N +1130(subproblems.)X +10 f +624 5673(g)N +3 f +706(Speculative)X +1201(loss)X +1 f +1350(:)X +1402(time)X +1599(spent)X +1828(performing)X +2287(unnecessary)X +2783(work,)X +3030(such)X +3232(as)X +3338(that)X +3509(performed)X +3936(by)X +706 5781(a)N +792(parallel)X +1125(algorithm)X +1543(before)X +1832(it)X +1929(is)X +2036(possible)X +2394(to)X +2512(determine)X +2941(that)X +3129(the)X +3289(work)X +3528(is)X +3634(necessary.)X + +4 p +%%Page: 4 4 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(4)X +1 f +12 s +706 780(Because)N +1059(a)X +1134(parallel)X +1456(algorithm)X +1863(must)X +2082(evaluate)X +2436(different)X +2800(nodes)X +3056(simultaneously,)X +3695(informa-)X +706 888(tion)N +893(gained)X +1187(by)X +1319(evaluation)X +1757(of)X +1873(one)X +2048(node)X +2271(could)X +2521(come)X +2766(too)X +2925(late)X +3101(to)X +3212(cut)X +3366(off)X +3514(evaluation)X +3952(of)X +706 996(other)N +928(nodes.)X +8 f +14 s +576 1200(3.1.)N +978(Alpha-beta)X +1 f +12 s +776 1341(The)N +966(alpha-beta)X +1408(algorithm)X +1823(is)X +1927(a)X +2010(sequential)X +2441(technique)X +2857(used)X +3074(to)X +3190(evaluate)X +3553(a)X +3637(game)X +3887(tree)X +576 1449(ef\256ciently.)N +1050(The)X +1235(nodes)X +1494(corresponding)X +2079(to)X +2189(the)X +2342(\256rst)X +2526(player's)X +2871(moves)X +3157(are)X +3309(called)X +3 f +3574(max)X +1 f +3784(nodes,)X +576 1557(and)N +744(the)X +891(other)X +1119(nodes)X +1373(are)X +1521(called)X +3 f +1782(min)X +1 f +1972(nodes.)X +2274(The)X +2454(value)X +2693(of)X +2803(a)X +2876(max)X +3072(node)X +3289(is)X +3383(the)X +3531(maximum)X +3952(of)X +576 1665(the)N +719(value)X +953(of)X +1058(its)X +1174(children,)X +1539(where)X +1799(as)X +1904(the)X +2047(value)X +2281(of)X +2386(a)X +2454(min)X +2629(node)X +2841(is)X +2930(the)X +3073(minimum)X +3473(of)X +3577(the)X +3719(value)X +3952(of)X +576 1773(its)N +714(children.)X +1125(The)X +1322(value)X +1578(of)X +1705(a)X +1795(leaf)X +1987(is)X +2098(determined)X +2579(by)X +2723(a)X +2814(game-speci\256c)X +3397(static)X +3649(evaluator.)X +576 1881(Alpha-beta)N +1034(ignores)X +1347(branches)X +1719(that)X +1894(are)X +2042(certain)X +2335(not)X +2488(to)X +2593(contribute)X +3014(to)X +3118(the)X +3265(value)X +3503(of)X +3612(the)X +3759(current)X +576 1989(node.)N +835(Figure)X +1110(1)X +1183(shows)X +1447(a)X +1515(sample)X +1813(game)X +2047(tree)X +2217(with)X +2413(a)X +2481(cutoff.)X +2784(In)X +2889(this)X +3053(\256gure,)X +3326(node)X +2 f +3538(z)X +1 f +3591(,)X +3640(which)X +3900(is)X +3989(a)X +576 2097(max)N +766(node,)X +1001(has)X +1153(two)X +1321(children,)X +1685(and)X +1848(its)X +1963(\256rst)X +2136(child)X +2353(is)X +2441(evaluated)X +2835(to)X +2934(9.)X +3054(Therefore,)X +1184 2238(value\()N +2 f +1425(z)X +1 f +1478(\))X +1534(=)X +1612(max{9,)X +1920(value\()X +2 f +2161(y)X +1 f +2220(\)})X +576 2379(where)N +2 f +845(y)X +1 f +939(is)X +1038(the)X +1191(other)X +1424(child)X +1652(of)X +2 f +1767(z)X +1 f +1820(.)X +1903(Now)X +2124(if)X +2218(the)X +2371(\256rst)X +2555(child)X +2783(\(we)X +2962(will)X +3147(often)X +3380(call)X +3555(it)X +3644(the)X +3 f +3797(eldest)X +1 f +576 2487(child\))N +825(of)X +2 f +929(y)X +1 f +1012(is)X +1100(evaluated)X +1494(to)X +1593(7)X +1665(then)X +1184 2628(value\()N +2 f +1425(y)X +1 f +1484(\))X +1540(=)X +1618(min{7,)X +1910(...})X +576 2769(so)N +688(the)X +833(value)X +1069(of)X +2 f +1176(z)X +1 f +1256(is)X +1347(9)X +1423(regardless)X +1841(of)X +1949(the)X +2095(value)X +2332(of)X +2 f +2440(y)X +1 f +2499(.)X +2575(It)X +2662(follows)X +2978(that)X +3151(the)X +3297(remaining)X +3716(children)X +576 2877(of)N +680(the)X +822(node)X +2 f +1033(y)X +1 f +1116(need)X +1322(not)X +1469(be)X +1584(evaluated.)X +2026(Ignoring)X +2381(those)X +2608(children)X +2948(is)X +3036(called)X +3 f +3291(shallow)X +3624(cutoff)X +1 f +3864(.)X +776 3018(Figure)N +1073(2)X +1167(illustrates)X +1588(another)X +1923(type)X +2135(of)X +2261(cutoff.)X +2585(After)X +2834(the)X +2998(eldest)X +3269(child)X +3508(of)X +3634(node)X +2 f +3868(z)X +1 f +3968(is)X +576 3126(evaluated,)N +1009(we)X +1160(see)X +1322(that)X +2 f +1506(z)X +1 f +1559('s)X +1667(value)X +1915(will)X +2104(be)X +2234(greater)X +2540(than)X +2744(or)X +2862(equal)X +3109(to)X +3222(9.)X +3356(This)X +3565(value)X +3812(is)X +3914(the)X +576 3234(current)N +876(lower)X +1122(bound)X +1389(in)X +1491(the)X +1636(alpha-beta)X +2065(algorithm.)X +2515(The)X +2692(value)X +2928(of)X +3035(a)X +3 f +3105(min)X +1 f +3292(node)X +3506(in)X +3608(the)X +3754(subtree)X +576 3342(rooted)N +853(at)X +954(node)X +2 f +1172(y)X +1 f +1262(must)X +1479(be)X +1600(greater)X +1898(than)X +2094(9)X +2172(in)X +2277(order)X +2510(for)X +2652(the)X +2800(lower)X +3049(bound)X +3319(to)X +3424(change.)X +3775(There-)X +576 3450(fore,)N +779(when)X +1011(the)X +1154(algorithm)X +1554(reaches)X +1868(node)X +2 f +2080(w)X +1 f +2185(\(a)X +2285(min)X +2460(node\))X +2704(and)X +2868(its)X +2984(\256rst)X +3158(child)X +3376(is)X +3465(evaluated)X +3860(to)X +3960(7,)X +576 3558(the)N +719(evaluation)X +1146(of)X +1250(the)X +1392(remaining)X +1807(children)X +2147(can)X +2305(be)X +2420(avoided.)X +2797(This)X +2992(cutoff)X +3246(is)X +3334(called)X +3589(a)X +3 f +3656(deep)X +3872(cut-)X +576 3666(off)N +1 f +712(because)X +1041(the)X +1183(node)X +2 f +1394(w)X +1 f +1498(is)X +1586(more)X +1808(than)X +1998(one)X +2161(ply)X +2308(below)X +2567(the)X +2709(node)X +2 f +2920(z)X +1 f +2973(.)X +776 3807(Following)N +1198(Fishburn)X +1563([4],)X +1726(we)X +1865(present)X +2170(the)X +2315(following)X +2716(Pascal-like)X +3166(code)X +3376(of)X +3484(the)X +3630(alpha-beta)X +576 3915(algorithm,)N +999(as)X +1103(adapted)X +1427(from)X +1638(Knuth)X +1902(and)X +2065(Moore)X +2345([5]:)X +1584 4399 MXY +1 setlinewidth +2023 4462 MXY +125 Dc +1584 4775 MXY +125 Dc +2524 MX +125 Dc +2023 5150 MXY +125 Dc +2899 MX +125 Dc +1695 4735 MXY +346 -229 Dl +2140 4491 MXY +396 246 Dl +2540 4817 MXY +-415 285 Dl +1584 4817 MXY +[64 32] 0 setdash +2635 4813 MXY +296 283 Dl +5 f +2061 4502(z)N +2562 4815(y)N +1621 4940(9)N +2059 5316(7)N +1584 5276 MXY +3 setlinewidth +[] 0 setdash +3 f +1821 5448(Figure)N +1 f +2118(1:)X +2217(Shallow)X +2556(cutoff)X + +5 p +%%Page: 5 5 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(5)X +1 f +12 s +1440 876 MXY +1 setlinewidth +1951 955 MXY +157 Dc +1519 1269 MXY +157 Dc +2540 MX +157 Dc +2147 1740 MXY +157 Dc +3011 MX +157 Dc +1794 2094 MXY +157 Dc +2501 MX +157 Dc +1440 2604 MXY +157 Dc +2147 MX +157 Dc +1636 1201 MXY +336 -193 Dl +2092 1002 MXY +458 229 Dl +2661 1335 MXY +369 355 Dl +2572 1333 MXY +-311 337 Dl +2281 1796 MXY +233 254 Dl +2179 1803 MXY +-266 223 Dl +1440 1803 MXY +[64 32] 0 setdash +1904 2166 MXY +273 377 Dl +1440 2166 MXY +[] 0 setdash +1833 2162 MXY +-291 367 Dl +5 f +2006 995(z)N +2595 1309(y)N +2202 1780(x)N +1838 2134(w)N +1572 1466(9)N +1493 2801(7)N +1440 2761 MXY +3 setlinewidth +3 f +1877 2933(Figure)N +1 f +2174(2:)X +2273(Deep)X +2500(cutoff)X +3 f +10 s +576 3119(function)N +7 f +908(alphabeta\(z)X +1484(:)X +1580(position;)X +2 f +12 s +9 f +2060(a)X +7 f +10 s +2120(,)X +2 f +12 s +9 f +2216(b)X +7 f +10 s +2317(:)X +2413(integer\):integer;)X +3 f +864 3209(var)N +7 f +1152 3299(Answer,)N +1536(Child,)X +1872(t,)X +2016(d)X +2112(:)X +2208(integer;)X +3 f +864 3389(begin)N +7 f +1152 3479(determine)N +1632(the)X +1824(child)X +2112(positions)X +2 f +12 s +2592(z)X +1 f +9 s +2641 3503(1)N +7 f +10 s +3479(,...,)Y +2 f +12 s +2965(z)X +9 s +3002 3503(d)N +3 f +10 s +1152 3575(if)N +7 f +1249(d)X +1345(=)X +1441(0)X +3 f +1537(then)X +1440 3665(return)N +7 f +1663(\(StaticValue\(z\)\))X +3 f +1152 3755(else)N +1440 3845(begin)N +7 f +1440 3935(Answer)N +1776(:=)X +2 f +12 s +9 f +1920(a)X +7 f +10 s +2028(;)X +3 f +1440 4025(for)N +7 f +1591(Child)X +1879(:=)X +2023(1)X +3 f +2119(to)X +7 f +2234(d)X +3 f +2330(do)X +1728 4115(begin)N +7 f +1728 4205(t)N +1824(:=)X +1968(-alphabeta\()X +2 f +12 s +(z)S +9 s +2533 4229(Child)N +7 f +10 s +2709 4205(,)N +2805(-)X +2 f +12 s +9 f +(b)S +7 f +10 s +2906(,)X +3002(-Answer\);)X +3 f +1728 4301(if)N +7 f +1825(t)X +1921(>)X +2017(Answer)X +3 f +2353(then)X +7 f +2016 4391(Answer)N +2352(:=)X +2496(t;)X +3 f +1728 4481(if)N +7 f +1825(Answer)X +2 f +12 s +9 f +2161(\263)X +2238(b)X +3 f +10 s +2339(then)X +2016 4571(return)N +7 f +2239(\(Answer\);)X +2719({cutoff})X +3 f +1728 4661(end)N +7 f +1852(;)X +3 f +1440 4751(return)N +7 f +1663(\(Answer\);)X +3 f +1440 4841(end)N +7 f +1564(;)X +3 f +864 4931(end)N +7 f +988(.)X +1 f +12 s +576 5105(The)N +750(alpha-beta)X +1176(algorithm)X +1575(satis\256es)X +1903(the)X +2045(following)X +2443(conditions)X +2868([5]:)X +896 5246(if)N +979(negamax\()X +2 f +1359(z)X +1 f +1412(\))X +2 f +9 f +1468(\243)X +1545(a)X +1 f +2048(then)X +2238(alphabeta\()X +2 f +2640(z)X +1 f +2693(,)X +2 f +9 f +2741(a)X +1 f +2801(,)X +2 f +9 f +2849(b)X +1 f +2902(\))X +2 f +9 f +2958(\243)X +3035(a)X +1 f +3095(,)X +896 5354(if)N +2 f +9 f +979(a)X +1 f +1063(<)X +1141(negamax\()X +2 f +1521(z)X +1 f +1574(\))X +1630(<)X +2 f +9 f +1708(b)X +1 f +2048(then)X +2238(alphabeta\()X +2 f +2640(z)X +1 f +2693(,)X +2 f +9 f +2741(a)X +1 f +2801(,)X +2 f +9 f +2849(b)X +1 f +2902(\))X +2958(=)X +3036(negamax\()X +2 f +3416(z)X +1 f +3469(\),)X +896 5462(if)N +979(negamax\()X +2 f +1359(z)X +1 f +1412(\))X +2 f +9 f +1468(\263)X +1545(b)X +1 f +2048(then)X +2238(alphabeta\()X +2 f +2640(z)X +1 f +2693(,)X +2 f +9 f +2741(a)X +1 f +2825(,)X +2 f +9 f +2873(b)X +1 f +2926(\))X +2 f +9 f +2982(\263)X +3059(b)X +1 f +3112(.)X +576 5603(These)N +830(conditions)X +1255(imply)X +1504(that)X + +6 p +%%Page: 6 6 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(6)X +1 f +12 s +896 780(alphabeta\()N +2 f +1298(z)X +1 f +1351(,)X +2 f +9 f +1399(-\245)X +1 f +1521(,)X +2 f +9 f +1569(\245)X +1 f +1638(\))X +1694(=)X +1772(negamax\()X +2 f +2152(z)X +1 f +2205(\))X +2261(,)X +576 921(which)N +839(means)X +1113(that)X +1287(if)X +1375(the)X +1522(initial)X +1777(window)X +2115([alpha,)X +2409(beta])X +2631(is)X +2724(\()X +2 f +9 f +2756(-\245)X +1 f +2878(,)X +2 f +9 f +2931(\245)X +1 f +3000(\))X +3061(then)X +3256(the)X +3403(alpha-beta)X +3834(algo-)X +576 1029(rithm)N +818(returns)X +1118(the)X +1269(same)X +1500(value)X +1742(as)X +1855(the)X +2006(negamax)X +2387(algorithm)X +2795(\(straightforward)X +3453 0.2321(tree-evaluation)AX +576 1137(algorithm)N +975(that)X +1144(never)X +1382(cuts)X +1561(work)X +1782(off\))X +1950([5].)X +776 1278(The)N +959(performance)X +1479(of)X +1593(the)X +1745(alpha-beta)X +2181(algorithm)X +2590(depends)X +2939(a)X +3016(great)X +3243(deal)X +3438(on)X +3568(the)X +3720(order)X +3957(in)X +576 1386(which)N +838(children)X +1181(of)X +1288(a)X +1358(node)X +1572(are)X +1717(expanded.)X +2161(If)X +2252(the)X +2397(children)X +2740(of)X +2847(each)X +3050(node)X +3263(in)X +3364(the)X +3508(game)X +3743(tree)X +3914(are)X +576 1494(expanded)N +972(in)X +1074(increasing)X +1497(order)X +1727(of)X +1834(their)X +2038(negamax)X +2413(values,)X +2710(then)X +2904(the)X +3050(largest)X +3335(number)X +3657(of)X +3765(cutoffs)X +576 1602(will)N +750(occur.)X +776 1743(Knuth)N +1049(and)X +1221(Moore)X +1501([5])X +1646(introduced)X +2091(the)X +2242(idea)X +2436(of)X +3 f +2549(critical)X +2872(nodes)X +1 f +3139(in)X +3247(their)X +3457(analysis)X +3800(of)X +3914(the)X +576 1851(best)N +764(case)X +963(of)X +1075(the)X +1225(alpha-beta)X +1659(algorithm,)X +2090(and)X +2261(Steinberg)X +2662(and)X +2833(Solomon)X +3204([3])X +3348(use)X +3508(the)X +3658(following)X +576 1959(rules)N +787(to)X +886(determine)X +1296(the)X +1438(critical)X +1731(nodes:)X +10 f +624 2100(g)N +1 f +706(The)X +880(root)X +1059(of)X +1163(the)X +1305(game)X +1538(tree)X +1707(is)X +1795(a)X +1862(type-1)X +2132(node.)X +10 f +624 2208(g)N +1 f +706(The)X +880(eldest)X +1129(child)X +1346(of)X +1450(a)X +1517(type-1)X +1787(node)X +1998(is)X +2086(also)X +2265(type-1.)X +2583(The)X +2757(remaining)X +3172(children)X +3512(are)X +3654(type-2.)X +10 f +624 2316(g)N +1 f +706(The)X +880(eldest)X +1129(child)X +1346(of)X +1450(a)X +1517(type-2)X +1787(node)X +1998(is)X +2086(a)X +2153(type-3)X +2423(node.)X +10 f +624 2424(g)N +1 f +706(All)X +853(children)X +1193(of)X +1297(a)X +1364(type-3)X +1634(node)X +1845(are)X +1987(type-2.)X +10 f +624 2532(g)N +1 f +706(A)X +799(node)X +1010(is)X +1098(critical)X +1391(iff)X +1506(it)X +1584(is)X +1672(assigned)X +2027(a)X +2094(number)X +2412(by)X +2532(the)X +2674(above)X +2928(rules.)X +776 2673(The)N +954(critical)X +1251(nodes)X +1503(form)X +1718(a)X +1789(minimal)X +2139(subtree)X +2441([3])X +2581(of)X +2689(the)X +2835(game)X +3072(tree)X +3245(which,)X +3533(regardless)X +3952(of)X +576 2781(the)N +743(values)X +1038(of)X +1167(the)X +1333(terminal)X +1703(nodes,)X +1999(will)X +2197(always)X +2512(be)X +2651(examined)X +3074(by)X +3218(the)X +3384(alpha-beta)X +3834(algo-)X +576 2889(rithm)N +809([5].)X +995(The)X +1171(number)X +1491(of)X +1598(terminal)X +1947(nodes)X +2198(in)X +2300(the)X +2445(minimal)X +2794(subtree)X +3099(of)X +3206(a)X +3276(complete)X +2 f +3657(d)X +1 f +(-ary)S +3887(tree)X +576 2997(of)N +680(height)X +2 f +945(h)X +1 f +1017(is)X +2 f +2147 3153(d)N +9 s +10 f +2219 3114(R)N +2 f +(h)S +2285(/)X +1 f +(2)S +2 f +10 f +2353(H)X +12 s +9 f +3153(+)Y +2 f +2424(d)X +9 s +10 f +2496 3114(Q)N +2 f +(h)S +2562(/)X +1 f +(2)S +2 f +10 f +2630(P)X +12 s +9 f +3153(-)Y +1 f +2701(1)X +576 3309(If)N +673(the)X +824(tree)X +1002(is)X +1099(examined)X +1507(in)X +1615(increasing)X +2044(order)X +2280(of)X +2394(value,)X +2661(the)X +2813(alpha-beta)X +3249(procedure)X +3668(examines)X +576 3417(precisely)N +949(the)X +1092(minimal)X +1438(subtree)X +1740(of)X +1844(the)X +1986(game)X +2219(tree.)X +2436(In)X +2540(short,)X +2780(alpha-beta)X +3206(examines)X +3594(about)X +3832(2)X +2 f +(n)S +1 f +9 s +3940 3378(1)N +2 f +(/)S +1 f +(2)S +12 s +576 3525(nodes,)N +848(where)X +1107(negamax)X +1479(would)X +1743(examine)X +2 f +2094(n)X +1 f +2182(nodes.)X +8 f +14 s +576 3729(3.2.)N +978(Mandatory)X +1648(work)X +1983(first)X +2385(\(MWF\))X +1 f +12 s +776 3870(This)N +974(algorithm)X +1376(was)X +1552(proposed)X +1931(by)X +2054(Akl,)X +2250(Barnard,)X +2612(and)X +2779(Doran)X +3047(as)X +3155(a)X +3226(parallel)X +3544(implementa-)X +576 3978(tion)N +762(of)X +878(alpha-beta)X +1316(without)X +1646(deep)X +1864(cutoffs.)X +2215(The)X +2401(name)X +2646(MWF)X +2910(was)X +3094(coined)X +3386(by)X +3517(Fishburn)X +3893(and)X +576 4086(Finkel.)N +908(MWF)X +1175(evaluates)X +1573(critical)X +1881(nodes)X +2144(concurrently)X +2670(and)X +2848(then)X +3053(returns)X +3359(to)X +3473(evaluate)X +3834(other)X +576 4194(nodes)N +838(if)X +935(needed)X +1232([6,)X +1352(7].)X +1518(When)X +1786(deep)X +2006(cutoffs)X +2311(are)X +2467(not)X +2628(considered)X +3083(in)X +3195(the)X +3350(search)X +3633(algorithm,)X +576 4302(only)N +771(type-1)X +1041(and)X +1204(type-2)X +1474(nodes)X +1722(are)X +1864(critical,)X +2181(as)X +2285(shown)X +2559(in)X +2658(Figure)X +2933(3.)X +776 4443(MWF)N +1032(evaluates)X +1418(type-1)X +1691(nodes)X +1942(completely,)X +2423(but)X +2574(only)X +2773(evaluates)X +3160(type-2)X +3434(nodes)X +3686(partially.)X +576 4551(After)N +814(the)X +967(eldest)X +1227(child)X +1455(of)X +1570(a)X +1648(type-1)X +1929(node)X +2150(\(also)X +2371(type-1\))X +2683(has)X +2845(been)X +3061(evaluated,)X +3489(the)X +3641(remaining)X +576 4659(children)N +916(\(all)X +1069(type-2\))X +1371(are)X +1513(completely)X +1966(evaluated)X +2360(only)X +2555(if)X +2639(the)X +2782(result)X +3021(of)X +3126(the)X +3269(partial)X +3541(evaluation)X +3968(is)X +576 4767(not)N +727(suf\256cient)X +1113(to)X +1216(cut)X +1361(them)X +1581(off.)X +1768(All)X +1918(evaluations)X +2384(currently)X +2759(allowed)X +3091(by)X +3214(MWF)X +3470(may)X +3663(be)X +3781(under-)X +576 4875(taken)N +809(simultaneously.)X +776 5016(Akl,)N +971(Barnard,)X +1332(and)X +1498(Doran)X +1762([6])X +1901(tested)X +2153(MWF)X +2409(with)X +2607(game)X +2844(trees)X +3054(of)X +3162(depth)X +3404(4)X +3480(and)X +3647(branching)X +576 5124(factors)N +875(of)X +992(5,)X +1101(10,)X +1258(15)X +1391(and)X +1567(20.)X +1748(They)X +1983(noticed)X +2304(that)X +2486(MWF)X +2752(has)X +2917(a)X +2997(better)X +3254(ef\256ciency)X +3670(when)X +3914(the)X +576 5232(game)N +818(tree)X +996(has)X +1157(a)X +1233(larger)X +1491(fanout,)X +1794(but)X +1950(found)X +2207(that)X +2385(the)X +2536(speedup)X +2884(reaches)X +3206(a)X +3282(plateau)X +3595(around)X +3896(six.)X +576 5340(The)N +765(total)X +976(number)X +1309(of)X +1428(nodes)X +1691(visited)X +1987(as)X +2106(well)X +2311(as)X +2429(the)X +2585(number)X +2917(of)X +3035(terminal)X +3395(nodes)X +3657(examined)X +576 5448(showed)N +903(an)X +1028(increase)X +1378(with)X +1584(increasing)X +2015(number)X +2344(of)X +2459(processors,)X +2923(but)X +3081(the)X +3234(plateau)X +3548(was)X +3732(reached)X +576 5556(much)N +814(faster.)X +776 5697(Fishburn)N +1141([4])X +1282(analyzed)X +1654(MWF)X +1912(for)X +2053(best-\256rst)X +2418(and)X +2586(worst-\256rst)X +3010(ordering)X +3366(of)X +3476(the)X +3624(game)X +3863(tree.)X +576 5805(In)N +688(the)X +838(best-\256rst)X +1206(ordering,)X +1588(MWF)X +1849(is)X +1945(almost)X +2234(optimal,)X +2585(since)X +2815(its)X +2938(ef\256ciency)X +3350(is)X +3446(very)X +3649(close)X +3878(to)X +3984(1)X + +7 p +%%Page: 7 7 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(7)X +1 f +12 s +577 876 MXY +1 setlinewidth +2284 MY +127 Dc +831 MX +127 Dc +703 MX +127 Dc +703 1836 MXY +127 Dc +959 2284 MXY +127 Dc +1215 MX +127 Dc +1087 MX +127 Dc +1343 MX +127 Dc +1599 MX +127 Dc +1471 MX +127 Dc +1727 MX +127 Dc +1983 MX +127 Dc +1855 MX +127 Dc +1855 1836 MXY +127 Dc +2111 2284 MXY +127 Dc +2367 MX +127 Dc +2239 MX +127 Dc +2495 MX +127 Dc +2751 MX +127 Dc +2623 MX +127 Dc +2623 1836 MXY +127 Dc +2239 MX +127 Dc +2879 2284 MXY +127 Dc +3135 MX +127 Dc +3007 MX +127 Dc +3007 1836 MXY +127 Dc +3263 2284 MXY +127 Dc +3519 MX +127 Dc +3391 MX +127 Dc +3647 MX +127 Dc +3903 MX +127 Dc +3775 MX +127 Dc +3775 1836 MXY +127 Dc +3391 MX +127 Dc +2239 940 MXY +127 Dc +3400 1357 MXY +-1046 -377 Dl +1207 1357 MXY +1046 -377 Dl +1087 1388 MXY +127 Dc +1119 1443 MXY +-325 335 Dl +1151 1452 MXY +0 320 Dl +1184 1443 MXY +325 335 Dl +2271 1443 MXY +-325 335 Dl +577 1443 MXY +[16] 0 setdash +2303 1452 MXY +0 320 Dl +2336 1443 MXY +325 335 Dl +577 1443 MXY +[] 0 setdash +3423 MX +-325 335 Dl +577 1443 MXY +[16] 0 setdash +3455 1452 MXY +0 320 Dl +3488 1443 MXY +325 335 Dl +577 1443 MXY +[] 0 setdash +2303 1324 MXY +0 -320 Dl +767 1900 MXY +0 320 Dl +753 1899 MXY +-101 323 Dl +782 1899 MXY +101 323 Dl +1137 1899 MXY +-101 323 Dl +577 1899 MXY +[16] 0 setdash +1166 MX +101 323 Dl +577 1899 MXY +[] 0 setdash +1521 MX +-101 323 Dl +577 1899 MXY +[16] 0 setdash +1550 MX +101 323 Dl +577 1899 MXY +[] 0 setdash +1905 MX +-101 323 Dl +1934 1899 MXY +101 323 Dl +577 1899 MXY +[16] 0 setdash +2289 MX +-101 323 Dl +2318 1899 MXY +101 323 Dl +2673 1899 MXY +-101 323 Dl +2702 1899 MXY +101 323 Dl +577 1899 MXY +[] 0 setdash +3057 MX +-101 323 Dl +3086 1899 MXY +101 323 Dl +577 1899 MXY +[16] 0 setdash +3441 MX +-101 323 Dl +3470 1899 MXY +101 323 Dl +3825 1899 MXY +-101 323 Dl +3854 1899 MXY +101 323 Dl +577 1899 MXY +[] 0 setdash +1471 1836 MXY +127 Dc +1087 MX +127 Dc +577 MX +[16] 0 setdash +1151 1900 MXY +0 320 Dl +1535 1900 MXY +0 320 Dl +2303 1900 MXY +0 320 Dl +2687 1900 MXY +0 320 Dl +3455 1900 MXY +0 320 Dl +3839 1900 MXY +0 320 Dl +577 1900 MXY +[] 0 setdash +2239 1388 MXY +127 Dc +3391 MX +127 Dc +1919 1900 MXY +0 320 Dl +5 f +2277 980(1)N +1125 1428(1)N +741 1876(1)N +614 2324(1)N +997(1)X +1765(1)X +1893 1876(1)N +3045(1)X +2917 2324(1)N +2277 1428(2)N +3429(2)X +1125 1876(2)N +1509(2)X +741 2324(2)N +869(2)X +1893(2)X +2021(2)X +3045(2)X +3173(2)X +1381(1)X +3071 1900 MXY +0 320 Dl +577 2348 MXY +3 setlinewidth +3 f +1059 2520(Figure)N +1 f +1356(3:)X +1455(Minimal)X +1811(subtree)X +2113(when)X +2345(deep)X +2551(cutoffs)X +2842(are)X +2984(not)X +3131(considered)X +576 2724(when)N +808(a)X +875(large)X +1092(number)X +1410(of)X +1514(processors)X +1943(is)X +2031(used.)X +2279(For)X +2437(the)X +2580(worst-\256rst)X +2999(ordering,)X +3374(Fishburn)X +3740(used)X +3941(an)X +576 2832(example)N +929(game)X +1163(tree)X +1333(of)X +1438(degree)X +1720(38)X +1841(and)X +2005(processor)X +2398(tree)X +2568(of)X +2673(fanout)X +2944(2)X +3017(to)X +3117(predict)X +3410(that)X +3580(speedup)X +3920(for)X +576 2940(MWF)N +829(will)X +1003(satisfy)X +2 f +1985 3096(p)N +1 f +9 s +2045 3057(0.93)N +2 f +12 s +9 f +2195 3096(\243)N +2 f +2272(S)X +9 f +2360(\243)X +2 f +2437(p)X +1 f +9 s +2497 3057(0.96)N +12 s +576 3252(where)N +2 f +835(p)X +1 f +923(is)X +1011(the)X +1153(number)X +1471(of)X +1575(processors.)X +2052(This)X +2247(result)X +2485(is)X +2573(almost)X +2854(as)X +2958(good)X +3174(as)X +3278(tree-splitting.)X +8 f +14 s +576 3456(3.3.)N +978(The)X +1246(tree-splitting)X +2251(algorithm)X +1 f +12 s +776 3597(Fishburn)N +1154(proposed)X +1543(this)X +1719(method)X +2045(as)X +2162(a)X +2242(natural)X +2547(parallel)X +2874(way)X +3071(to)X +3184(implement)X +3635(the)X +3791(alpha-)X +576 3705(beta)N +771(algorithm.)X +1228(The)X +1412(tree-splitting)X +1939(algorithm)X +2348(splits)X +2585(the)X +2736(game)X +2978(tree)X +3156(into)X +3339(its)X +3463(subtrees)X +3811(at)X +3914(the)X +576 3813(root)N +765(node,)X +1010(and)X +1183(each)X +1394(subtree)X +1706(is)X +1804(assigned)X +2169(to)X +2278(a)X +2355(pool)X +2560(of)X +2674(processors)X +3114(for)X +3261(evaluation)X +3687([4].)X +3882(The)X +576 3921(pool)N +788(will)X +979(evaluate)X +1342(the)X +1501(subtree)X +1820(in)X +1936(parallel)X +2267(if)X +2367(it)X +2462(has)X +2631(more)X +2870(than)X +3077(one)X +3257(processor.)X +3714(In)X +3834(other)X +576 4029(words,)N +860(the)X +1004(game)X +1239(tree)X +1410(is)X +1500(mapped)X +1831(to)X +1932(a)X +2001(processor)X +2395(tree.)X +2614(as)X +2720(shown)X +2996(in)X +3097(Figure)X +3374(4.)X +3497(Here)X +3711(we)X +3850(have)X +576 4137(a)N +646(binary)X +919(tree)X +1090(of)X +1196(processors)X +1627(with)X +1824(height)X +2091(two)X +2261(\(connected)X +2710(by)X +2832(heavy)X +3088(arcs\))X +3301(mapped)X +3632(onto)X +3829(a)X +3898(ter-)X +576 4245(nary)N +772(game)X +1006(tree.)X +1224(When)X +1479(there)X +1697(are)X +1840(more)X +2063(branches)X +2430(in)X +2530(the)X +2673(game)X +2907(tree)X +3077(than)X +3268(there)X +3486(are)X +3629(in)X +3729(the)X +3872(pro-)X +576 4353(cessor)N +851(tree,)X +1055(the)X +1208(extra)X +1436(game)X +1679(tree)X +1858(branches)X +2234(are)X +2386(queued)X +2698(and)X +2871(assigned)X +3236(to)X +3345(a)X +3422(processor)X +3824(when)X +576 4461(one)N +739(becomes)X +1100(available.)X +776 4602(All)N +930(interior)X +1245(processors)X +1681(in)X +1787(the)X +1937(tree)X +2114(of)X +2226(processors)X +2663(are)X +2813(both)X +3016(masters)X +3342(and)X +3513(slaves)X +3780(except)X +576 4710(the)N +728(root)X +917(processor,)X +1343(which)X +1612(is)X +1710(only)X +1915(a)X +1992(master.)X +2331(All)X +2488(the)X +2640(leaf)X +2819(processors)X +3258(are)X +3410(slaves.)X +3726(When)X +3989(a)X +576 4818(slave)N +804(processor)X +1202(\256nishes)X +1526(the)X +1675(search)X +1952(of)X +2063(its)X +2185(assigned)X +2547(subtree,)X +2880(it)X +2965(reports)X +3263(the)X +3412(value)X +3652(computed)X +576 4926(to)N +690(its)X +820(master.)X +1164(When)X +1433(a)X +1515(master)X +1811(processor)X +2218(receives)X +2573(a)X +2655(response)X +3030(from)X +3256(one)X +3434(of)X +3552(its)X +3681(slaves,)X +3978(it)X +576 5034(updates)N +896(its)X +1013(alpha-beta)X +1441(window)X +1776(and)X +1941(informs)X +2266(the)X +2410(other)X +2634(working)X +2980(slaves)X +3241(of)X +3347(this)X +3512(new)X +3699(window.)X +576 5142(The)N +752(new)X +938(window)X +1273(may)X +1465(allow)X +1705(the)X +1849(remaining)X +2266(work)X +2489(under)X +2734(the)X +2878(master)X +3161(to)X +3261(be)X +3377(cutoff.)X +3680(When)X +3935(all)X +576 5250(the)N +723(slaves)X +987(have)X +1198(\256nished,)X +1555(either)X +1804(by)X +1929(cutoff)X +2188(or)X +2298(by)X +2424(reporting)X +2807(their)X +3014(values,)X +3314(the)X +3462(master)X +3749(proces-)X +576 5358(sor)N +717(can)X +875(compute)X +1231(the)X +1373(value)X +1606(of)X +1710(its)X +1825(own)X +2014(position.)X +776 5499(Fishburn)N +1141([4])X +1280(calculates)X +1689(the)X +1835(speedup)X +2178(for)X +2318(the)X +2464(tree-splitting)X +2985(algorithm)X +3388(for)X +3528(two)X +3700(different)X +576 5607(orderings)N +978(of)X +1097(the)X +1254(game)X +1502(tree.)X +1734(Worst-\256rst)X +2189(ordering)X +2554(produces)X +2940(no)X +3075(alpha-beta)X +3516(cutoffs.)X +3870(It)X +3968(is)X +576 5715(achieved)N +947(by)X +1071(sorting)X +1366(all)X +1491(children)X +1835(of)X +1943(all)X +2068(nodes)X +2320(so)X +2433(that)X +2607(whenever)X +3010(the)X +3157(call)X +3326(alphabeta\()X +2 f +3728(z)X +1 f +3781(,)X +2 f +9 f +3834(a)X +1 f +3894(,)X +2 f +9 f +3947(b)X +1 f +4000(\))X + +8 p +%%Page: 8 8 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(8)X +1 f +12 s +577 876 MXY +1 setlinewidth +1215 2284 MXY +127 Dc +1087 MX +127 Dc +1343 MX +127 Dc +1599 MX +127 Dc +1471 MX +127 Dc +2111 MX +127 Dc +2367 MX +127 Dc +2239 MX +127 Dc +2495 MX +127 Dc +2751 MX +127 Dc +2623 MX +127 Dc +2623 1836 MXY +127 Dc +2239 MX +127 Dc +3263 2284 MXY +127 Dc +3519 MX +127 Dc +3391 MX +127 Dc +3647 MX +127 Dc +3903 MX +127 Dc +3775 MX +127 Dc +3775 1836 MXY +127 Dc +3391 MX +127 Dc +3400 1357 MXY +-1046 -377 Dl +577 1357 MXY +10 setlinewidth +1207 MX +1046 -377 Dl +1119 1443 MXY +-325 335 Dl +1151 1452 MXY +0 320 Dl +577 1452 MXY +1 setlinewidth +1184 1443 MXY +325 335 Dl +577 1443 MXY +10 setlinewidth +2271 MX +-325 335 Dl +2303 1452 MXY +0 320 Dl +577 1452 MXY +1 setlinewidth +2336 1443 MXY +325 335 Dl +3423 1443 MXY +-325 335 Dl +3455 1452 MXY +0 320 Dl +3488 1443 MXY +325 335 Dl +577 1443 MXY +10 setlinewidth +2303 1324 MXY +0 -320 Dl +577 1324 MXY +1 setlinewidth +767 1900 MXY +0 320 Dl +753 1899 MXY +-101 323 Dl +782 1899 MXY +101 323 Dl +1137 1899 MXY +-101 323 Dl +1166 1899 MXY +101 323 Dl +1521 1899 MXY +-101 323 Dl +1550 1899 MXY +101 323 Dl +1905 1899 MXY +-101 323 Dl +1934 1899 MXY +101 323 Dl +2289 1899 MXY +-101 323 Dl +2318 1899 MXY +101 323 Dl +2673 1899 MXY +-101 323 Dl +2702 1899 MXY +101 323 Dl +3057 1899 MXY +-101 323 Dl +3086 1899 MXY +101 323 Dl +3441 1899 MXY +-101 323 Dl +3470 1899 MXY +101 323 Dl +3825 1899 MXY +-101 323 Dl +3854 1899 MXY +101 323 Dl +1151 1900 MXY +0 320 Dl +1535 1900 MXY +0 320 Dl +2303 1900 MXY +0 320 Dl +2687 1900 MXY +0 320 Dl +3455 1900 MXY +0 320 Dl +3839 1900 MXY +0 320 Dl +1919 1900 MXY +0 320 Dl +1087 1388 MXY +127 Dc +2239 940 MXY +127 Dc +2239 1388 MXY +127 Dc +703 1836 MXY +127 Dc +1087 MX +127 Dc +1471 MX +127 Dc +1855 MX +127 Dc +1855 2284 MXY +127 Dc +1983 MX +127 Dc +1727 MX +127 Dc +959 MX +127 Dc +831 MX +127 Dc +703 MX +127 Dc +577 MX +127 Dc +3007 MX +127 Dc +3135 MX +127 Dc +3007 1836 MXY +127 Dc +3391 1388 MXY +127 Dc +2879 2284 MXY +127 Dc +577 2348 MXY +3 setlinewidth +3 f +1372 2520(Figure)N +1 f +1669(4:)X +1768(Processor)X +2165(tree)X +2334(mapped)X +2663(onto)X +2858(game)X +3091(tree)X +576 2724(is)N +664(made,)X +921(the)X +1063(following)X +1461(relation)X +1780(holds)X +2012(among)X +2298(the)X +2440(children)X +2 f +2780(z)X +1 f +9 s +2829 2748(1)N +12 s +2889 2724(,...,)N +2 f +3033(z)X +9 s +3070 2748(d)N +1 f +12 s +3122 2724(:)N +2 f +9 f +1445 2886(a)N +2 f +1529(<)X +9 f +1618(-)X +1 f +1671(negamax\()X +2 f +2051(z)X +1 f +9 s +2100 2910(1)N +12 s +2886(\))Y +2 f +2192(<)X +1 f +2257(...)X +2 f +2353(<)X +9 f +2442(-)X +1 f +2495(negamax\()X +2 f +2875(z)X +9 s +2912 2910(d)N +1 f +12 s +2964 2886(\))N +2 f +3020(<)X +9 f +3109(b)X +1 f +576 3048(Since)N +822(there)X +1047(are)X +1197(no)X +1325(cutoffs,)X +1648(there)X +1873(is)X +1969(no)X +2097(speculative)X +2564(loss,)X +2770(so)X +2888(tree)X +3066(splitting)X +3415(achieves)X +3780(practi-)X +576 3156(cally)N +788(perfect)X +1080(speedup.)X +776 3297(Best-\256rst)N +1178(ordering)X +1554(produces)X +1952(the)X +2121(maximum)X +2563(number)X +2908(of)X +3039(alpha-beta)X +3492(cutoffs.)X +3858(It)X +3968(is)X +576 3405(achieved)N +943(by)X +1063(sorting)X +1354(all)X +1475(children)X +1815(of)X +1919(all)X +2040(nodes)X +2288(so)X +2397(that:)X +1121 3561(negamax\()N +2 f +1501(z)X +1 f +1554(\))X +2 f +9 f +1610(=)X +1687(-)X +1 f +1740(negamax\()X +2 f +2120(z)X +1 f +9 s +2169 3585(1)N +12 s +3561(\))Y +2261(for)X +2397(all)X +2518(nodes)X +2 f +2766(z)X +1 f +2843(in)X +2942(the)X +3084(game)X +3317(tree.)X +576 3723(Using)N +829(this)X +992(ordering,)X +1366(the)X +1508(tree-splitting)X +2025(algorithm)X +2424(gives)X +2 f +2651(S)X +9 f +2739(=)X +1 f +2816(O\()X +2 f +2917(p)X +1 f +9 s +2977 3684(1)N +2 f +(/)S +1 f +(2)S +12 s +3723(\))Y +3125(with)X +2 f +3320(p)X +1 f +3408(processors.)X +776 3864(The)N +950(tree-splitting)X +1467(algorithm)X +1866(gives)X +2 f +2093(S)X +9 f +2181(=)X +1 f +2258(O\()X +2 f +2359(p)X +1 f +9 s +2419 3825(1)N +2 f +(/)S +1 f +(2)S +12 s +3864(\))Y +2567(with)X +2 f +2762(p)X +1 f +2850(processors)X +3279(when)X +3511(best-\256rst)X +3872(ord-)X +576 3972(ering)N +798([4])X +934(of)X +1038(the)X +1180(game)X +1413(tree)X +1582(is)X +1670(used.)X +8 f +14 s +576 4176(3.4.)N +978 -0.1979(Principal-variation)AX +2318(\(PV\))X +2653(splitting)X +1 f +12 s +776 4317(PV)N +931(splitting)X +1281(is)X +1379(a)X +1456(re\256nement)X +1902(of)X +2016(the)X +2168(tree-splitting)X +2695(algorithm)X +3094([8].)X +3288(It)X +3381(assumes)X +3735(that)X +3914(the)X +576 4425(search)N +860(tree)X +1043(is)X +1145(mapped)X +1488(onto)X +1697(an)X +1826(underlying)X +2281(tree)X +2464(of)X +2582(processors)X +3025(and)X +3202(that)X +3385(the)X +3540(game)X +3786(tree)X +3968(is)X +576 4533(strongly)N +921(ordered,)X +1269(that)X +1444(is,)X +1562(the)X +1710(\256rst)X +1889(branch)X +2181(of)X +2292(each)X +2500(node)X +2718(is)X +2813(the)X +2962(best)X +3148(branch)X +3441(at)X +3542(least)X +3750(70)X +3877(per-)X +576 4641(cent)N +780(of)X +903(the)X +1064(time)X +1279(and)X +1461(that)X +1649(the)X +1810(best)X +2007(move)X +2263(is)X +2369(in)X +2486(the)X +2646(\256rst)X +2837(quarter)X +3152(of)X +3274(the)X +3434(branches)X +3818(being)X +576 4749(searched)N +937(90)X +1057(percent)X +1365(of)X +1469(the)X +1611(time.)X +776 4890(The)N +962(type-1)X +1244(nodes)X +1504(are)X +1658(recursively)X +2122(evaluated)X +2528(until)X +2741(a)X +2820(given)X +3070(ply)X +3229(is)X +3329(reached,)X +3690(at)X +3797(which)X +576 4998(point)N +813(tree)X +997(splitting)X +1351(is)X +1453(used.)X +1715(After)X +1956(the)X +2112(value)X +2359(of)X +2477(the)X +2633(principal)X +3014(variation)X +3395(\(type-1\))X +3743(node)X +3968(is)X +576 5106(backed)N +874(up)X +995(the)X +1138(tree,)X +1332(tree)X +1503(splitting)X +1845(is)X +1935(used)X +2137(to)X +2238(evaluate)X +2586(the)X +2730(remaining)X +3147(siblings)X +3472(if)X +3557(they)X +3749(can)X +3909(not)X +576 5214(be)N +691(cut)X +833(off.)X +776 5355(There)N +1049(are)X +1215(two)X +1407(differences)X +1883(between)X +2252(PV)X +2422(splitting)X +2786(and)X +2973(MWF.)X +3298(First,)X +3546(PV)X +3716(splitting)X +576 5463(requires)N +918(a)X +993(particular)X +1395(underlying)X +1844(processor)X +2244(structure,)X +2637(in)X +2744(contrast)X +3081(with)X +3284(the)X +3434(pool)X +3637(of)X +3749(proces-)X +576 5571(sors)N +757(used)X +960(in)X +1062(MWF.)X +1366(Second,)X +1700(it)X +1781(waits)X +2011(for)X +2150(the)X +2295(search)X +2569(of)X +2677(type-1)X +2951(nodes)X +3203(to)X +3306(end)X +3473(before)X +3747(it)X +3829(starts)X +576 5679(evaluating)N +1015(the)X +1170(other)X +1405(nodes.)X +1714(This)X +1922(aspect)X +2200(of)X +2317(PV)X +2476(splitting)X +2829(ensures)X +3154(that)X +3336(the)X +3491(best)X +3683(available)X +576 5787(value)N +809(of)X +2 f +9 f +913(a)X +1 f +997(is)X +1085(passed)X +1365(to)X +1464(the)X +1606(other)X +1828(nodes)X +2076(of)X +2180(the)X +2322(tree.)X + +9 p +%%Page: 9 9 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3992(9)X +1 f +12 s +776 780(PV)N +935(splitting)X +1288(was)X +1474(compared)X +1892 0.2404(experimentally)AX +2509(with)X +2718(the)X +2874(tree)X +3057(splitting)X +3411(algorithm)X +3824(using)X +576 888(trees)N +790(of)X +901(depth)X +1146(4)X +1225(and)X +1395(width)X +1645(24.)X +1820(Experimental)X +2371(results)X +2653(show)X +2886(that)X +3062(PV)X +3215(splitting)X +3562(outperforms)X +576 996(tree)N +755(splitting,)X +1129(especially)X +1549(when)X +1791(a)X +1868(wider)X +2121(processor)X +2523(tree)X +2702(is)X +2800(used)X +3000([8].)X +3194(For)X +3361(example,)X +3746(when)X +3989(a)X +576 1104(processor)N +986(tree)X +1173(with)X +1386(both)X +1599(depth)X +1855(and)X +2036(width)X +2297(of)X +2418(2)X +2507(was)X +2697(used,)X +2938(tree-splitting)X +3472(examined)X +3888(912)X +576 1212(nodes,)N +855(and)X +1025(PV)X +1178(splitting)X +1526(examined)X +1933(648)X +2109(nodes.)X +2413(But)X +2584(when)X +2824(the)X +2974(width)X +3225(of)X +3337(the)X +3487(processor)X +3887(tree)X +576 1320(was)N +761(changed)X +1118(to)X +1229(8,)X +1337(tree-splitting)X +1866(and)X +2041(PV)X +2199(splitting)X +2551(examined)X +2962(772)X +3142(and)X +3316(277)X +3495(nodes)X +3754(respec-)X +576 1428(tively.)N +8 f +14 s +576 1632(3.5.)N +978(The)X +1246(ER)X +1447(algorithm)X +1 f +12 s +776 1773(This)N +977(algorithm)X +1382(was)X +1561(developed)X +1987(by)X +2113(Steinberg)X +2512(and)X +2681(Solomon)X +3058(for)X +3200(parallel)X +3520(evaluation)X +3952(of)X +576 1881(game)N +812(trees.)X +1069(It)X +1155(is)X +1246(a)X +1315(sequential)X +1732(algorithm)X +2133(with)X +2330(a)X +2399(parallel)X +2715 0.2548(implementation)AX +3345([3].)X +3531(The)X +3707(nodes)X +3957(in)X +576 1989(the)N +728(game)X +971(tree)X +1150(are)X +1302(divided)X +1626(into)X +1811(two)X +1990(groups,)X +2310(e-nodes)X +2644(and)X +2818(r-nodes.)X +3189(E-nodes)X +3539(will)X +3724(be)X +3850(fully)X +576 2097(evaluated,)N +997(and)X +1163(r-nodes)X +1478(will)X +1655(be)X +1773(refuted,)X +2097(that)X +2269(is,)X +2384(will)X +2561(have)X +2770(an)X +2888(estimated)X +3284(value.)X +3567(All)X +3716(children)X +576 2205(of)N +688(an)X +811(e-node)X +1105(are)X +1255(evaluated,)X +1681(but)X +1836(as)X +1948(few)X +2124(as)X +2236(one)X +2407(child)X +2632(of)X +2744(an)X +2867(r-node)X +3150(needs)X +3401(to)X +3509(be)X +3633(examined.)X +576 2313(Therefore)N +985(e-nodes)X +1313(are)X +1460(more)X +1687(``costly'')X +2074(than)X +2269(r-nodes.)X +2634(Every)X +2892(internal)X +3215(node)X +3430(has)X +3586(exactly)X +3893(one)X +576 2421(e-node)N +862(child)X +1079(\(e-child\).)X +776 2562(Any)N +980(child)X +1212(of)X +1331(a)X +1413(node)X +1639(can)X +1812(be)X +1942(chosen)X +2248(as)X +2368(the)X +2526(e-child,)X +2858(but)X +3021(the)X +3179(child)X +3412(with)X +3623(the)X +3781(lowest)X +576 2670(negamax)N +948(value)X +1181(is)X +1269(the)X +1411(best)X +1590(choice)X +1866([3].)X +776 2811(To)N +907(choose)X +1198(the)X +1340(e-child)X +1633(of)X +1738(a)X +1806(node)X +2 f +2018(z)X +1 f +2071(,)X +2120(ER)X +2268(evaluates)X +2652(the)X +2795(elder)X +3013(grandchildren)X +3573(\(eldest)X +3855(chil-)X +576 2919(dren)N +778(of)X +2 f +889(z)X +1 f +942('s)X +1042(children\))X +1421(in)X +1527(parallel,)X +1872(and)X +2042(chooses)X +2377(the)X +2525(child)X +2748(whose)X +3023(elder)X +3246(child)X +3469(has)X +3627(the)X +3775(largest)X +576 3027(value.)N +874(The)X +1066(e-child)X +1376(is)X +1482(then)X +1690(evaluated)X +2102(while)X +2358(avoiding)X +2737(re-evaluation)X +3288(of)X +3410(its)X +3543(oldest)X +3815(child,)X +576 3135(since)N +798(we)X +934(just)X +1097(got)X +1244(its)X +1359(value.)X +1640(The)X +1814(remaining)X +2229(children)X +2569(are)X +2711(refuted)X +3008(in)X +3107(order.)X +776 3276(In)N +890(the)X +1043(parallel)X +1368 0.2548(implementation)AX +2009(of)X +2124(ER,)X +2306(the)X +2459(elder)X +2687(grandchildren)X +3257(can)X +3426(be)X +3552(evaluated)X +3957(in)X +576 3384(parallel)N +906(because)X +1251(they)X +1457(represent)X +1850(mandatory)X +2302(work.)X +2586(Since)X +2839(these)X +3076(grandchildren)X +3650(are)X +3807(them-)X +576 3492(selves)N +849(e-nodes,)X +1210(their)X +1425(elder)X +1657(grandchildren)X +2231(can)X +2404(also)X +2598(be)X +2728(recursively)X +3195(evaluated)X +3604(in)X +3718(parallel.)X +576 3600(These)N +836(parallel)X +1156(evaluations)X +1625(are)X +1773(mandatory)X +2215(work,)X +2466(but)X +2619(if)X +2708(ER)X +2860(is)X +2953(to)X +3057(perform)X +3396(only)X +3596(the)X +3743(manda-)X +576 3708(tory)N +758(work,)X +1006(the)X +1151(remaining)X +1569(siblings)X +1895(of)X +2002(an)X +2120(e-node)X +2409(must)X +2623(be)X +2741(examined)X +3143(sequentially.)X +3684(To)X +3818(avoid)X +576 3816(these)N +798(sequential)X +1213(evaluations)X +1676(and)X +1839(thus)X +2023(starvation)X +2427(loss,)X +2624(ER)X +2771(uses)X +2960(the)X +3102(following)X +3500(two)X +3668(methods:)X +10 f +624 3957(g)N +1 f +706(Parallel)X +1030(refutation:)X +1461(After)X +1693(an)X +1813(e-child)X +2 f +2110(y)X +1 f +2198(of)X +2307(an)X +2427(e-node)X +2 f +2719(z)X +1 f +2802(is)X +2896(evaluated,)X +3320(refute)X +2 f +3575(y)X +1 f +3634('s)X +3733(siblings)X +706 4065(in)N +822(parallel.)X +1201(This)X +1413(parallel)X +1744(evaluation)X +2187(is)X +2291(likely)X +2551(to)X +2666(encounter)X +3086(lots)X +3265(of)X +3385(speculative)X +3859(loss.)X +706 4173(This)N +915(work)X +1150(is)X +1252(similar)X +1558(to)X +1671(the)X +1827(speculative)X +2299(work)X +2534(performed)X +2974(by)X +3109(MWF)X +3377(and)X +3555(PV)X +3716(splitting)X +706 4281(algorithms.)N +10 f +624 4389(g)N +1 f +706(Multiple)X +1064(e-children:)X +1508(After)X +1737(an)X +1854(e-child)X +2148(of)X +2254(an)X +2371(e-node)X +2 f +2659(z)X +1 f +2738(is)X +2828(evaluated,)X +3248(choose)X +3541(the)X +3685(next)X +3877(best)X +706 4497(child)N +933(of)X +2 f +1047(z)X +1 f +1134(as)X +1248(a)X +1325(second)X +1626(e-child.)X +1976(If)X +2074(it)X +2162(happens)X +2510(that)X +2688(the)X +2839(\256rst)X +3021(e-child)X +3322(is)X +3419(not)X +3575(actually)X +3914(the)X +706 4605(best)N +892(child)X +1116(of)X +2 f +1227(z)X +1 f +1311(\(other)X +1572(children)X +1919(cannot)X +2207(be)X +2329(immediately)X +2843(refuted\),)X +3203(we)X +3347(will)X +3529(have)X +3743(another)X +706 4713(e-child)N +1001(that)X +1173(will)X +1350(hopefully)X +1746(help)X +1939(us)X +2051(cut)X +2196(off)X +2 f +2334(z)X +1 f +2387('s)X +2482(other)X +2706(children.)X +3096(In)X +3202(general,)X +3536(after)X +3739(the)X +3883(\256rst)X +706 4821(e-child)N +998(has)X +1150(been)X +1356(evaluated,)X +1774(ensure)X +2049(that)X +2 f +2218(z)X +1 f +2295(always)X +2586(has)X +2738(one)X +2901(active)X +3156(e-child.)X +776 4962(Steinberg)N +1189(and)X +1372(Solomon)X +1764(compared)X +2189(ER)X +2357(to)X +2477(PV)X +2644(splitting.)X +3053(Sequential)X +3505(ER)X +3673(evaluates)X +576 5070(more)N +811(nodes)X +1072(than)X +1275(alpha-beta,)X +1737(but)X +1896(sequential)X +2323(PV)X +2481(splitting)X +2833(is)X +2933(identical)X +3302(to)X +3413(alpha-beta.)X +3899(For)X +576 5178(this)N +751(reason)X +1038(Steinberg)X +1444(and)X +1620(Solomon)X +1991([3])X +2140(used)X +2353(relative)X +2680(ef\256ciency)X +3097(and)X +3273(relative)X +3600(speedup)X +3952(as)X +576 5286(shown)N +850(below)X +1109(to)X +1208(compare)X +1564(the)X +1706(two)X +1874(algorithms.)X +2 f +1435 5478(relative)N +1770(ef\256ciency)X +9 f +2151(=)X +2 f +2228 5547(no.)N +2388(of)X +2519(processors)X +2974(used)X +2364 5424(relative)N +2699(speedup)X +10 f +2213 5451(h)N +2252(hhhhhhhhhhhhhhhhhhh)X + +10 p +%%Page: 10 10 +12 s 0 xH 0 xS 10 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(10)X +2 f +12 s +857 816(relative)N +1192(speedup)X +9 f +1523(=)X +2 f +1948 885(time)N +2154(required)X +2525(by)X +2656(parallel)X +3001(algorithm)X +1600 762(time)N +1806(required)X +2177(by)X +2308(parallel)X +2653(algorithm)X +3072(with)X +1 f +3278(1)X +2 f +3350(processor)X +10 f +1585 789(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N +1 f +576 1023(Experiments)N +1091(show)X +1321(that)X +1494(ER)X +1645(achieves)X +2005(twice)X +2242(the)X +2388(ef\256ciency)X +2797(and)X +2965(speedup)X +3309(of)X +3418(the)X +3565(PV)X +3716(splitting)X +576 1131(algorithm)N +983(when)X +1223(used)X +1431(on)X +1559(suf\256ciently)X +2024(deep)X +2238(trees)X +2444([3].)X +2636(The)X +2818(average)X +3150(ef\256ciency)X +3562(achieved)X +3936(by)X +576 1239(ER)N +725(using)X +959(16)X +1082(processors)X +1514(for)X +1653(7,)X +1752(8,)X +1851(9,)X +1950(and)X +2116(10)X +2239(ply)X +2389(trees)X +2598(are)X +2743(respectively)X +3236(0.44,)X +3455(0.52,)X +3674(0.68,)X +3893(and)X +576 1347(0.58.)N +820(The)X +997(corresponding)X +1574(ef\256ciencies)X +2040(for)X +2179(PV)X +2328(splitting)X +2671(are)X +2816(0.28,)X +3035(0.31,)X +3254(0.31,)X +3473(and)X +3639(0.31.)X +3882(The)X +576 1455(range)N +817(of)X +924(speedup)X +1266(for)X +1405(7)X +1480(to)X +1582(9)X +1657(ply)X +1807(trees)X +2016(using)X +2251(16)X +2374(processors)X +2806(are)X +2951(7.1)X +3098(to)X +3201(10.9)X +3397(for)X +3537(the)X +3683(ER)X +3834(algo-)X +576 1563(rithm)N +821(and)X +995(4.5)X +1150(to)X +1260(5.0)X +1415(for)X +1562(the)X +1715(PV)X +1872(splitting)X +2223(algorithm.)X +2681(Steinberg)X +3085(and)X +3259(Solomon)X +3641(contribute)X +576 1671(ER's)N +792(higher)X +1062(ef\256ciency)X +1466(to)X +1565(low)X +1733(starvation)X +2137(loss.)X +8 f +14 s +576 1875(3.6.)N +978(Delay)X +1380(splitting)X +1 f +12 s +776 2016(This)N +984(algorithm)X +1396(delays)X +1679(the)X +1834(evaluation)X +2273(of)X +2390(each)X +2604(node)X +2828(until)X +3042(its)X +3170(eldest)X +3432(sibling)X +3732(is)X +3834(com-)X +576 2124(pletely)N +868(evaluated.)X +1315(Starvation)X +1740(loss)X +1918(is)X +2011(accepted)X +2378(in)X +2482(order)X +2714(to)X +2818(increase)X +3163(the)X +3310(number)X +3633(of)X +3741(cutoffs.)X +576 2232(Evaluation)N +1031(delay)X +1278(occurs)X +1567(at)X +1675(every)X +1927(level)X +2153(for)X +2303(each)X +2518(node,)X +2767(thus)X +2965(making)X +3292(delay)X +3539(splitting)X +3893(dif-)X +576 2340(ferent)N +839(from)X +1064(PV)X +1224(splitting,)X +1601(in)X +1713(which)X +1985(delay)X +2231(of)X +2348(evaluation)X +2787(occurs)X +3075(only)X +3283(along)X +3534(the)X +3689(principle)X +576 2448(variation)N +943(route.)X +776 2589(The)N +950(following)X +1348(is)X +1436(Pascal-like)X +1883(code)X +2089(for)X +2225(delay)X +2458(splitting:)X +3 f +10 s +896 2712(function)N +7 f +1228(DelaySplit\(z)X +1852(:)X +1948(position;)X +2 f +12 s +9 f +2428(a)X +7 f +10 s +2488(,)X +2 f +12 s +9 f +2584(b)X +7 f +10 s +2637(\):)X +2781(integer;)X +3 f +1184 2802(var)N +7 f +1348(d,)X +1492(i)X +1588(:)X +1684(integer;)X +1472 2892(value)N +1760(:)X +3 f +1856(array)X +7 f +2048([1..MAXWIDTH])X +2720(of)X +2864(integer;)X +3 f +1184 2982(begin)N +1472 3072(if)N +7 f +1569(\(I)X +1713(am)X +1857(a)X +1953(leaf)X +2193(processor\))X +3 f +2721(then)X +1760 3162(return)N +7 f +1983(\(alphabeta\(z,)X +2 f +12 s +9 f +2655(a)X +7 f +10 s +2715(,)X +2 f +12 s +9 f +2811(b)X +7 f +10 s +2864(\)\);)X +1472 3252(determine)N +1952(the)X +2144(child)X +2432(positions)X +2 f +12 s +2912(z)X +1 f +9 s +2961 3276(1)N +7 f +10 s +3252(,)Y +3093(...,)X +2 f +12 s +3333(z)X +9 s +3370 3276(d)N +12 s +9 f +1472 3348(a)N +7 f +10 s +1580(=)X +1676(-DelaySplit\()X +2 f +12 s +(z)S +1 f +9 s +2301 3372(1)N +7 f +10 s +3348(,)Y +2 f +12 s +9 f +2433(-b)X +7 f +10 s +2539(,)X +2 f +12 s +9 f +2635(-a)X +7 f +10 s +2748(\);)X +3 f +1472 3444(if)N +2 f +12 s +9 f +1569(a)X +1653(\263)X +1730(b)X +3 f +10 s +1831(then)X +1760 3534(return)N +7 f +1983(\()X +2 f +12 s +9 f +(a)S +7 f +10 s +2091(\);)X +3 f +1472 3624(for)N +7 f +1623(i)X +1719(:=)X +1863(2)X +3 f +1959(to)X +7 f +2074(d)X +3 f +2170(do)X +2274(in)X +2360(parallel)X +1760 3714(begin)N +7 f +1760 3804(value[i])N +2192(:=)X +2336(-DelaySplit\()X +2 f +12 s +(z)S +9 s +2949 3828(i)N +7 f +10 s +2985 3804(,)N +2 f +12 s +9 f +3081(-b)X +7 f +10 s +3187(,)X +2 f +12 s +9 f +3283(-a)X +7 f +10 s +3396(\);)X +3 f +1760 3900(begincrit)N +7 f +2115({critical)X +2595(region)X +2931(})X +3 f +2048 3990(if)N +7 f +2145(value[i])X +2577(>)X +2 f +12 s +9 f +2673(a)X +3 f +10 s +2781(then)X +2 f +12 s +9 f +2336 4080(a)N +7 f +10 s +2444(:=)X +2588(value[i];)X +3 f +1760 4170(endcrit)N +7 f +2005(;)X +3 f +1760 4260(if)N +2 f +12 s +9 f +1857(a)X +1941(\263)X +2018(b)X +3 f +10 s +2119(then)X +2048 4350(return)N +7 f +2271(\()X +2 f +12 s +9 f +(a)S +7 f +10 s +2379(\);)X +2523({)X +2619(cutoff)X +2955(})X +3 f +1760 4440(end)N +7 f +1884(;)X +3 f +1184 4530(end)N +7 f +1308(.)X +1404({)X +1500(DelaySplit)X +2028(})X +8 f +14 s +576 4767(4.)N +844(Experimental)X +1715(results)X +1 f +12 s +776 4908(We)N +935(have)X +1143(tested)X +1394(the)X +1538(above)X +1794(algorithms)X +2232(on)X +2354(a)X +2423(Sequent)X +2759(Symmetry)X +3186(with)X +3383(26)X +3505(cpus)X +3707(using)X +3941(an)X +576 5016(unsorted)N +941(tree)X +1120(of)X +1234(depth)X +1482(9)X +1564(and)X +1737(fanout)X +2017(of)X +2131(at)X +2235(most)X +2456(15)X +2586(\(the)X +2770(fanout)X +3049(decreases)X +3451(by)X +3580(one)X +3752(at)X +3855(each)X +576 5124(level\))N +825(generated)X +1229(by)X +1354(the)X +1501(game)X +1739(tic-tac-toe.)X +2208(The)X +2387(algorithms)X +2828(tend)X +3023(to)X +3127(have)X +3338(more)X +3565(cutoffs)X +3861(with)X +576 5232(a)N +647(sorted)X +910(tree,)X +1107(but)X +1258(are)X +1404(likely)X +1652(to)X +1755(have)X +1965(a)X +2036(higher)X +2310(ef\256ciency)X +2717(with)X +2915(a)X +2985(worst-\256rst)X +3406(sorted)X +3668(tree.)X +3888(Not)X +576 5340(sorting)N +871(at)X +969(all)X +1094(gives)X +1325(us)X +1438(a)X +1509(comparison)X +1986(with)X +2185(a)X +2256(reasonable)X +2696(amount)X +3013(of)X +3121(cutoff)X +3380(and)X +3548(a)X +3620(reasonable)X +576 5448(amount)N +914(of)X +1043(parallelism.)X +1569(The)X +1768(relative)X +2107(ef\256ciency)X +2536(comparisons)X +3071(are)X +3238(shown)X +3537(in)X +3661(Figure)X +3960(5.)X +576 5556(\(Relative)N +954(ef\256ciency)X +1358(compares)X +1751(the)X +1893(parallel)X +2207(execution)X +2606(time)X +2802(to)X +2901(the)X +3044(sequential)X +3460(execution)X +3860(time)X +576 5664(of)N +692(the)X +846(same)X +1079(algorithm)X +1489(in)X +1599(the)X +1752(same)X +1985(environment.)X +2555(The)X +2740(sequential)X +3166(execution)X +3576(times)X +3820(of)X +3935(all)X +576 5772(algorithms)N +1031(we)X +1186(tested)X +1455(are)X +1617(quite)X +1854(similar.\))X +2246(For)X +2423(this)X +2606(particular)X +3020(test,)X +3222(the)X +3384(MWF)X +3657(algorithm)X + +11 p +%%Page: 11 11 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(11)X +1 f +12 s +576 780(achieved)N +961(an)X +1094(almost)X +1393(perfect)X +1703(ef\256ciency,)X +2149(followed)X +2532(by)X +2669(delay)X +2919(splitting)X +3276(and)X +3456(ER)X +3620(algorithms)X +576 888(with)N +772(speedup)X +1112(of)X +1217(over)X +1413(12)X +1534(and)X +1698(9)X +1772(respectively,)X +2288(using)X +2522(20)X +2644(processors.)X +3123(We)X +3283(attribute)X +3631(our)X +3785(ability)X +576 996(to)N +685(exceed)X +987(a)X +1064(speedup)X +1413(of)X +1527(6)X +1609(with)X +1814(MWF)X +2077(to)X +2186(DIB's)X +2454 0.2723(parallelization)AX +3041(environment)X +3562(and)X +3735(the)X +3887(tree)X +576 1104(structure)N +937(used)X +1137(in)X +1236(this)X +1399(experiment.)X +776 1245(Figure)N +1056(6)X +1133(shows)X +1402(the)X +1550(ratio)X +1757(of)X +1867(the)X +2015(number)X +2339(of)X +2449(nodes)X +2703(examined)X +3108(by)X +3234(the)X +3382(algorithms)X +3824(using)X +576 1353(different)N +932(numbers)X +1287(of)X +1391(machines)X +1779(verses)X +2043(using)X +2275(one)X +2438(machine)X +2789(\(sequential)X +3236(algorithm\).)X +977 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1090 1717 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1316 2412 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1542 2591 MXY +0 29 Dl +0 -15 Dl +15 0 Dl +-29 0 Dl +1768 2800 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1994 2919 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2220 2856 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2446 2935 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2672 3097 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2898 3176 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +3124 3238 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-29 0 Dl +920 3238 MXY +[16] 0 setdash +1 setlinewidth +977 1551 MXY +113 181 Dl +226 695 Dl +226 178 Dl +226 209 Dl +226 119 Dl +226 -62 Dl +226 79 Dl +226 161 Dl +226 79 Dl +226 62 Dl +5 f +3125 3292(alphabeta)N +920 1551 MXY +[] 0 setdash +3 setlinewidth +977 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1090 1560 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1316 1669 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1542 1593 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1768 1653 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +1994 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2220 1726 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2446 1605 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2672 1613 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2898 1834 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +3124 1633 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +977 1551 MXY +113 23 Dl +226 110 Dl +226 -76 Dl +226 59 Dl +226 -116 Dl +226 189 Dl +226 -121 Dl +226 8 Dl +226 221 Dl +226 -201 Dl +3163 1737(MWF)N +977 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1090 1596 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1316 1732 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1542 1816 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1768 1870 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1994 1984 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2220 2065 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2446 2209 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2672 2178 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2898 2376 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-29 0 Dl +3124 2495 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-29 0 Dl +920 2495 MXY +1 setlinewidth +977 1551 MXY +113 60 Dl +226 135 Dl +226 85 Dl +226 54 Dl +226 113 Dl +226 82 Dl +226 144 Dl +226 -32 Dl +226 198 Dl +226 119 Dl +3135 2585(delaysplit)N +920 1551 MXY +3 setlinewidth +977 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1090 1895 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1316 2664 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1542 2887 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1768 3037 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1994 3151 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2220 3142 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2446 3376 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2672 3229 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2898 3439 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-29 0 Dl +3124 3498 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +920 3498 MXY +[64 32 32 32] 0 setdash +1 setlinewidth +977 1551 MXY +113 359 Dl +226 769 Dl +226 223 Dl +226 150 Dl +226 113 Dl +226 -9 Dl +226 235 Dl +226 -147 Dl +226 209 Dl +226 59 Dl +3433(TreeSplit10)Y +920 1551 MXY +[] 0 setdash +3 setlinewidth +977 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1090 1783 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1316 2159 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1542 2297 MXY +0 29 Dl +0 -15 Dl +15 0 Dl +-29 0 Dl +1768 2514 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1994 2517 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2220 2684 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2446 2783 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2672 2794 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2898 2882 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +3124 2970 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +920 2970 MXY +[64 32] 0 setdash +1 setlinewidth +977 1551 MXY +113 246 Dl +226 376 Dl +226 138 Dl +226 218 Dl +226 3 Dl +226 167 Dl +226 99 Dl +226 10 Dl +226 88 Dl +226 88 Dl +3178 3009(ER)N +920 1551 MXY +[] 0 setdash +3 setlinewidth +977 1537 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1090 1876 MXY +0 29 Dl +0 -15 Dl +15 0 Dl +-29 0 Dl +1316 2610 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1542 2904 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +1768 3097 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1994 3232 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2220 3413 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2446 3413 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2672 3422 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2898 3549 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +3124 3546 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +977 1551 MXY +113 339 Dl +226 735 Dl +226 294 Dl +226 192 Dl +226 136 Dl +226 180 Dl +226 0 Dl +226 9 Dl +226 127 Dl +226 -3 Dl +3151 3574(PVS10)N +977 4377 MXY +2259 0 Dl +977 MX +0 -2826 Dl +4377 MY +0 29 Dl +951 4530(1)N +1203 4377 MXY +0 29 Dl +1177 4530(3)N +1429 4377 MXY +0 29 Dl +1403 4530(5)N +1655 4377 MXY +0 29 Dl +1629 4530(7)N +1881 4377 MXY +0 29 Dl +1855 4530(9)N +2107 4377 MXY +0 29 Dl +2054 4530(11)N +2333 4377 MXY +0 29 Dl +2280 4530(13)N +2559 4377 MXY +0 29 Dl +2506 4530(15)N +2784 4377 MXY +0 29 Dl +2731 4530(17)N +3010 4377 MXY +0 29 Dl +2957 4530(19)N +3236 4377 MXY +0 29 Dl +3183 4530(21)N +977 4377 MXY +-29 0 Dl +734 4401(0.00)N +977 4094 MXY +-29 0 Dl +734 4118(0.10)N +977 3812 MXY +-29 0 Dl +734 3835(0.20)N +977 3529 MXY +-29 0 Dl +734 3553(0.30)N +977 3247 MXY +-29 0 Dl +734 3270(0.40)N +977 2964 MXY +-29 0 Dl +734 2988(0.50)N +977 2681 MXY +-29 0 Dl +734 2705(0.60)N +977 2399 MXY +-29 0 Dl +734 2422(0.70)N +977 2116 MXY +-29 0 Dl +734 2140(0.80)N +977 1834 MXY +-29 0 Dl +734 1857(0.90)N +977 1551 MXY +-29 0 Dl +734 1575(1.00)N +3 f +1448 4721(Figure)N +1 f +1745(5:)X +1844(Ef\256ciency)X +2264(vs)X +2373(number)X +2691(of)X +2795(machines)X + +12 p +%%Page: 12 12 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(12)X +1 f +12 s +911 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1024 2842 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +1252 2474 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1478 2341 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1705 2157 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1932 1986 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2158 2093 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +2385 2032 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2612 1784 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2839 1684 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +3065 1753 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +848 1753 MXY +[16] 0 setdash +1 setlinewidth +911 2924 MXY +113 -67 Dl +228 -367 Dl +226 -133 Dl +227 -185 Dl +227 -171 Dl +226 108 Dl +227 -61 Dl +227 -249 Dl +227 -99 Dl +226 69 Dl +5 f +3118 1810(alphabeta)N +848 2924 MXY +[] 0 setdash +3 setlinewidth +911 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1024 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +1252 2903 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1478 2939 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1705 2990 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +1932 2970 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2158 3002 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +2385 2991 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2612 3026 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2839 3069 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +3065 2988 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +911 2924 MXY +113 0 Dl +228 -5 Dl +226 36 Dl +227 51 Dl +227 -20 Dl +226 32 Dl +227 -11 Dl +227 35 Dl +227 43 Dl +226 -81 Dl +3128 3038(delaysplit)N +911 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1024 2755 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +1252 2268 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1478 2042 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +1705 1837 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +1932 1685 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2158 1760 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +2385 1263 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2612 1663 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2839 1179 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +3065 1090 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +848 1090 MXY +[64 32 32 32] 0 setdash +1 setlinewidth +911 2924 MXY +113 -153 Dl +228 -487 Dl +226 -226 Dl +227 -205 Dl +227 -153 Dl +226 76 Dl +227 -498 Dl +227 401 Dl +227 -485 Dl +226 -88 Dl +3196 1093(TreeSplit10)N +848 2924 MXY +[] 0 setdash +3 setlinewidth +911 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1024 2766 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +1252 2365 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1478 2093 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1705 1926 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1932 1742 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2158 1298 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +2385 1404 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2612 1449 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2839 1195 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +3065 1143 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +911 2924 MXY +113 -142 Dl +228 -401 Dl +226 -272 Dl +227 -167 Dl +227 -185 Dl +226 -443 Dl +227 106 Dl +227 45 Dl +227 -254 Dl +226 -52 Dl +3121 1197(PVS10)N +911 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1024 2903 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +1252 2880 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1478 2929 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +1705 2917 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1932 2998 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2158 2935 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +2385 3002 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2612 3019 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2839 3006 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +3065 3051 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +848 3051 MXY +[16] 0 setdash +1 setlinewidth +911 2924 MXY +113 -5 Dl +228 -24 Dl +226 50 Dl +227 -12 Dl +227 81 Dl +226 -63 Dl +227 67 Dl +227 17 Dl +227 -14 Dl +226 46 Dl +3121 3121(MWF)N +848 2924 MXY +[] 0 setdash +3 setlinewidth +911 2908 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1024 2823 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +1252 2677 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1478 2617 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +1705 2501 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +1932 2523 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2158 2438 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-31 0 Dl +2385 2317 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2612 2347 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +2839 2329 MXY +0 32 Dl +0 -16 Dl +16 0 Dl +-32 0 Dl +3065 2210 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-32 0 Dl +848 2210 MXY +[64 32 32 32] 0 setdash +1 setlinewidth +911 2924 MXY +113 -86 Dl +228 -145 Dl +226 -60 Dl +227 -116 Dl +227 22 Dl +226 -85 Dl +227 -121 Dl +227 30 Dl +227 -18 Dl +226 -119 Dl +3124 2267(ER)N +848 2924 MXY +[] 0 setdash +3 setlinewidth +911 3964 MXY +2495 0 Dl +911 MX +0 -3120 Dl +3964 MY +0 31 Dl +885 4124(1)N +1138 3964 MXY +0 31 Dl +1112 4124(3)N +1365 3964 MXY +0 31 Dl +1339 4124(5)N +1591 3964 MXY +0 31 Dl +1565 4124(7)N +1818 3964 MXY +0 31 Dl +1792 4124(9)N +2045 3964 MXY +0 31 Dl +1992 4124(11)N +2272 3964 MXY +0 31 Dl +2219 4124(13)N +2499 3964 MXY +0 31 Dl +2446 4124(15)N +2726 3964 MXY +0 31 Dl +2673 4124(17)N +2952 3964 MXY +0 31 Dl +2899 4124(19)N +3179 3964 MXY +0 31 Dl +3126 4124(21)N +3406 3964 MXY +0 31 Dl +3353 4124(23)N +911 3964 MXY +-31 0 Dl +662 3981(0.00)N +911 2924 MXY +-31 0 Dl +662 2942(1.00)N +911 1883 MXY +-31 0 Dl +662 1901(2.00)N +911 844 MXY +-31 0 Dl +662 861(3.00)N +3 f +1026 4326(Figure)N +1 f +1323(6:)X +1422(Relative)X +1768(no.)X +1912(of)X +2016(nodes)X +2264(examined)X +2663(vs.)X +2796(number)X +3114(of)X +3218(machines)X +776 4500(We)N +938(have)X +1148(also)X +1331(tested)X +1584(the)X +1730(algorithms)X +2170(using)X +2406(Othello)X +2723(with)X +2922(a)X +2994(6)X +9 f +(\264)S +1 f +3095(6)X +3172(board.)X +3468(All)X +3620(algorithms)X +576 4608(have)N +783(almost)X +1065(the)X +1208(same)X +1431(relative)X +1746(ef\256ciency,)X +2175(with)X +2371(delay)X +2605(splitting)X +2946(leading)X +3255(when)X +3487(fewer)X +3730(than)X +3920(six)X +576 4716(processors)N +1005(are)X +1147(used.)X +1395(In)X +1499(this)X +1662(experiment,)X +2144(the)X +2286(speedup)X +2625(did)X +2772(not)X +2919(exceed)X +3211(7)X +3283(\(Figure)X +3590(7\).)X + +13 p +%%Page: 13 13 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(13)X +1 f +12 s +977 823 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1089 1360 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1313 1872 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1537 2223 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1761 2298 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1985 2446 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +2208 2472 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +2432 2581 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2656 2699 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2880 2699 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +3104 2760 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +920 2760 MXY +[16] 0 setdash +1 setlinewidth +977 837 MXY +112 537 Dl +224 513 Dl +224 350 Dl +224 75 Dl +224 149 Dl +223 25 Dl +224 109 Dl +224 118 Dl +224 0 Dl +224 61 Dl +5 f +3159 2702(alphabeta)N +920 837 MXY +[] 0 setdash +3 setlinewidth +977 823 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1089 1229 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1313 1707 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1537 1968 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1761 2105 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1985 2175 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +2208 2396 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +2432 2503 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2656 2556 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2880 2724 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +3104 2858 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +977 837 MXY +112 406 Dl +224 479 Dl +224 260 Dl +224 138 Dl +224 69 Dl +223 221 Dl +224 107 Dl +224 53 Dl +224 168 Dl +224 134 Dl +3197 2982(MWF)N +977 823 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1089 1069 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1313 1643 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1537 2044 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1761 2262 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1985 2536 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +2208 2547 MXY +0 29 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +2432 2693 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2656 2741 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2880 2539 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +3104 2908 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +920 2908 MXY +[64 32 32 32] 0 setdash +1 setlinewidth +977 837 MXY +112 247 Dl +224 573 Dl +224 401 Dl +224 218 Dl +224 274 Dl +223 12 Dl +224 145 Dl +224 48 Dl +224 -202 Dl +224 370 Dl +3169 3122(delaysplit)N +920 837 MXY +[] 0 setdash +3 setlinewidth +977 823 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1089 1445 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1313 1918 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1537 2110 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1761 2284 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1985 2383 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +2208 2461 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +2432 2631 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2656 2628 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2880 2702 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +3104 2752 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +977 837 MXY +112 622 Dl +224 473 Dl +224 193 Dl +224 174 Dl +224 98 Dl +223 78 Dl +224 170 Dl +224 -2 Dl +224 73 Dl +224 50 Dl +3068 2562(TreeSplit10)N +977 823 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1089 1237 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1313 1713 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +1537 1979 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1761 2110 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1985 2259 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +2208 2332 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +2432 2475 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2656 2472 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2880 2643 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +3104 2628 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +920 2628 MXY +[64 32] 0 setdash +1 setlinewidth +977 837 MXY +112 414 Dl +224 476 Dl +224 266 Dl +224 132 Dl +224 148 Dl +223 73 Dl +224 143 Dl +224 -3 Dl +224 171 Dl +224 -14 Dl +3213 2422(ER)N +920 837 MXY +[] 0 setdash +3 setlinewidth +977 823 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1089 1315 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +1313 1892 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +1537 2178 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1761 2444 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +1985 2530 MXY +0 29 Dl +0 -14 Dl +14 0 Dl +-29 0 Dl +2208 2581 MXY +0 28 Dl +0 -14 Dl +15 0 Dl +-29 0 Dl +2432 2685 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +2656 2771 MXY +0 29 Dl +0 -15 Dl +14 0 Dl +-28 0 Dl +2880 2819 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +3104 2914 MXY +0 28 Dl +0 -14 Dl +14 0 Dl +-28 0 Dl +977 837 MXY +112 492 Dl +224 577 Dl +224 286 Dl +224 266 Dl +224 87 Dl +223 50 Dl +224 104 Dl +224 86 Dl +224 48 Dl +224 95 Dl +3219 2842(PVS10)N +977 3637 MXY +2238 0 Dl +977 MX +0 -2800 Dl +3637 MY +0 28 Dl +951 3789(1)N +1201 3637 MXY +0 28 Dl +1175 3789(3)N +1425 3637 MXY +0 28 Dl +1399 3789(5)N +1648 3637 MXY +0 28 Dl +1622 3789(7)N +1872 3637 MXY +0 28 Dl +1846 3789(9)N +2096 3637 MXY +0 28 Dl +2043 3789(11)N +2320 3637 MXY +0 28 Dl +2267 3789(13)N +2544 3637 MXY +0 28 Dl +2491 3789(15)N +2768 3637 MXY +0 28 Dl +2715 3789(17)N +2992 3637 MXY +0 28 Dl +2939 3789(19)N +3215 3637 MXY +0 28 Dl +3162 3789(21)N +977 3637 MXY +-28 0 Dl +734 3661(0.00)N +977 3357 MXY +-28 0 Dl +734 3381(0.10)N +977 3077 MXY +-28 0 Dl +734 3101(0.20)N +977 2797 MXY +-28 0 Dl +734 2821(0.30)N +977 2517 MXY +-28 0 Dl +734 2541(0.40)N +977 2237 MXY +-28 0 Dl +734 2261(0.50)N +977 1957 MXY +-28 0 Dl +734 1981(0.60)N +977 1677 MXY +-28 0 Dl +734 1701(0.70)N +977 1397 MXY +-28 0 Dl +734 1421(0.80)N +977 1117 MXY +-28 0 Dl +734 1141(0.90)N +977 837 MXY +-28 0 Dl +734 861(1.00)N +3 f +1448 3979(Figure)N +1 f +1745(7:)X +1844(Ef\256ciency)X +2264(vs)X +2373(number)X +2691(of)X +2795(machines)X +8 f +14 s +576 4216(5.)N +844(Sorting)X +1380(methods)X +1 f +12 s +776 4357(We)N +934(have)X +1141(compared)X +1546(the)X +1689(effects)X +1971(of)X +2076(four)X +2261(different)X +2618(sorting)X +2910(strategies)X +3299(on)X +3420(the)X +3563(search)X +3834(algo-)X +576 4465(rithms.)N +902(In)X +1014(all)X +1143(the)X +1293(strategies,)X +1712(an)X +3 f +1834(expansion)X +2275(depth)X +2540(parameter)X +1 f +3004(speci\256es)X +3366(how)X +3562(many)X +3807(levels)X +576 4573(below)N +843(a)X +918(node)X +1138(are)X +1289(expanded)X +1691(in)X +1799(order)X +2035(to)X +2143(sort)X +2320(that)X +2498(node's)X +2787(children.)X +3184(We)X +3351(set)X +3491(the)X +3642(expansion)X +576 4681(depth)N +828(parameter)X +1252(to)X +1364(3)X +1449(for)X +1598(the)X +1753(experiments)X +2261(reported)X +2619(here.)X +2870(That)X +3084(is,)X +3209(to)X +3321(sort)X +3502(a)X +3582(node)X +2 f +3806(z)X +1 f +3859(,)X +3920(we)X +576 4789(expand)N +880(the)X +1024(tree)X +1195(to)X +1296(three)X +1515(levels)X +1766(below)X +2 f +2027(z)X +1 f +2080(,)X +2130(evaluate)X +2478(the)X +2622(leaves)X +2889(statically,)X +3288(apply)X +3528(alpha-beta)X +3957(to)X +576 4897(those)N +803(values)X +1073(to)X +1172(back)X +1378(them)X +1595(up)X +1715(to)X +1814(node)X +2 f +2025(z)X +1 f +2078('s)X +2171(children,)X +2535(then)X +2725(sort)X +2893(those)X +3120(children)X +3460(accordingly.)X +776 5038(Another)N +1122(adjustable)X +1545(parameter)X +1963(is)X +2059(the)X +3 f +2209(sorting)X +2529(depth)X +2795(parameter)X +1 f +3228(,)X +3284(which)X +3551(speci\256es)X +3914(the)X +576 5146(maximum)N +996(depth)X +1239(of)X +1348(a)X +1420(node)X +1636(to)X +1740(which)X +2004(sorting)X +2300(may)X +2495(be)X +2615(applied.)X +2976(For)X +3138(some)X +3369(applications,)X +3887(like)X +576 5254(tic-tac-toe)N +998(with)X +1199(a)X +1272(4)X +9 f +(\264)S +1 f +1373(4)X +1451(board,)X +1724(every)X +1968(level)X +2186(of)X +2296(the)X +2444(search)X +2720(tree)X +2895(may)X +3092(be)X +3214(pro\256tably)X +3619(sorted,)X +3909(but)X +576 5362(in)N +688(other)X +923(applications,)X +1450(sorting)X +1754(nodes)X +2015(beyond)X +2335(some)X +2575(level)X +2799(increases)X +3188(the)X +3342(total)X +3550(computation)X +576 5470(time;)N +807(sorting)X +1106(time)X +1310(outweighs)X +1737(cutoff)X +1999(bene\256ts.)X +2378(For)X +2543(example,)X +2926(in)X +3033(Othello)X +3354(with)X +3557(a)X +3632(6)X +9 f +(\264)S +1 f +3733(6)X +3813(board)X +576 5578(and)N +752(a)X +832(search)X +1114(tree)X +1295(of)X +1411(nine)X +1613(levels,)X +1898(the)X +2052(best)X +2243(overall)X +2547(results)X +2834(are)X +2988(achieved)X +3367(when)X +3611(the)X +3765(sorting)X +576 5686(depth)N +814(parameter)X +1224(is)X +1312(set)X +1443(to)X +1542(six)X +1678(levels.)X + +14 p +%%Page: 14 14 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(14)X +1 f +12 s +776 780(Our)N +967(\256rst)X +1158(attempt)X +1490(at)X +1602(sorting)X +1911(was)X +2102(to)X +2219(sort)X +2405(only)X +2618(the)X +2778(children)X +3136(of)X +3258(the)X +3418(top)X +3583(node.)X +3861(This)X +576 888(regime,)N +899(called)X +1161(``TN)X +1384(\(top-node\))X +1821(sorting'',)X +2207(applies)X +2511(to)X +2617(all)X +2745(the)X +2894(algorithms)X +3337(except)X +3620(ER,)X +3797(which)X +576 996(has)N +734(its)X +855(own)X +1051(internal)X +1377(sorting)X +1675(mechanism.)X +2193(There)X +2449(is)X +2544(no)X +2671(noticeable)X +3099(difference)X +3521(in)X +3627(number)X +3952(of)X +576 1104(nodes,)N +858(total)X +1064(time,)X +1294(or)X +1407(ef\256ciency)X +1820(for)X +1965(any)X +2137(of)X +2250(the)X +2401(algorithms)X +2846(between)X +3200(TN)X +3361(and)X +3533(no)X +3662(sorting)X +3962(at)X +576 1212(all.)N +776 1353(Next)N +995(we)X +1139(extended)X +1519(the)X +1669(sorting)X +1968(to)X +2075(include)X +2391(all)X +2521(nodes)X +2778(on)X +2907(the)X +3058(principal)X +3434(variation)X +3810(route.)X +576 1461(We)N +745(call)X +920(this)X +1094(sorting)X +1395(regime)X +1697(``PVR)X +1981(sorting''.)X +2394(Our)X +2577(tests)X +2782(of)X +2896(PVR)X +3116(sorting)X +3417(for)X +3563(PV)X +3719(spitting,)X +576 1569(MWF,)N +853(and)X +1016(delay)X +1249(splitting)X +1589(show)X +1815(no)X +1935(signi\256cant)X +2360(improvement)X +2898(in)X +2997(total)X +3193(computation)X +3699(time.)X +776 1710(In)N +889(the)X +1040(third)X +1255(sorting)X +1555(regime,)X +1881(we)X +2027(sort)X +2205(at)X +2309(the)X +2461(top)X +2618(node)X +2839(and)X +3012(at)X +3116(every)X +3364(eldest)X +3623(child.)X +3898(We)X +576 1818(call)N +754(this)X +931(sorting)X +1236(regime)X +1542(``EC)X +1767(\(eldest)X +2062(child\))X +2325(sorting''.)X +2741(EC)X +2901(sorting)X +3205(applies)X +3515(to)X +3627(MWF)X +3893(and)X +576 1926(delay)N +812(splitting,)X +1179(since)X +1404(only)X +1603(in)X +1706(these)X +1932(two)X +2104(algorithms)X +2544(do)X +2668(we)X +2808(suspend)X +3145(evaluation)X +3575(of)X +3683(all)X +3808(nodes)X +576 2034(that)N +751(are)X +899(not)X +1052(eldest)X +1307(children)X +1653(until)X +1859(their)X +2065(eldest)X +2319(sibling)X +2610(is)X +2703(fully)X +2914(evaluated.)X +3361(Therefore)X +3770(having)X +576 2142(the)N +718(best)X +897(child)X +1114(evaluated)X +1508(\256rst)X +1681(should)X +1961(result)X +2199(in)X +2298(more)X +2520(cutoffs.)X +776 2283(As)N +916(expected,)X +1317(the)X +1469(results)X +1755(are)X +1908(much)X +2157(better)X +2412(for)X +2559(EC)X +2717(sorting)X +3019(than)X +3220(PRV)X +3441(sorting,)X +3767(as)X +3882(evi-)X +576 2391(denced)N +875(by)X +997(tests)X +1194(with)X +1391(our)X +1545(tic-tac-toe)X +1963(and)X +2128(Othello)X +2442(applications.)X +2981(The)X +3156(total)X +3353(computation)X +3860(time)X +576 2499(is)N +664(almost)X +945(reduced)X +1274(by)X +1394(half)X +1568(when)X +1800(fewer)X +2043(machines)X +2431(are)X +2573(used.)X +2821(The)X +2996(reduction)X +3385(in)X +3485(the)X +3628(ef\256ciency,)X +576 2607(expected)N +948(due)X +1116(to)X +1220(the)X +1367(improvement)X +1910(in)X +2014(the)X +2161(sequential)X +2581(performance)X +3097(of)X +3206(the)X +3353(algorithms,)X +3817(is)X +3909(not)X +576 2715(too)N +725(bad.)X +938(Figures)X +1252(8,)X +1350(9)X +1424(and)X +1589(10)X +1711(show)X +1939(the)X +2083(number)X +2403(of)X +2509(nodes)X +2759(examined)X +3160(\(in)X +3293(multiples)X +3678(of)X +3784(1000\),)X +576 2823(total)N +772(time)X +968(and)X +1131(ef\256ciency)X +1535(comparisons)X +2045(for)X +2181(MWF)X +2434(using)X +2666(the)X +2808(4)X +9 f +(\264)S +1 f +2909(4)X +2981(tic-tac-toe)X +3397(game.)X +1377 4346 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4329 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 4313 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 4287 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 4316 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 4235 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 4295 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 4295 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4278 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4299 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4339 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 4339 MXY +[16] 0 setdash +1 setlinewidth +1377 4356 MXY +79 -17 Dl +158 -16 Dl +157 -26 Dl +157 29 Dl +157 -81 Dl +158 60 Dl +157 0 Dl +157 -17 Dl +158 21 Dl +157 40 Dl +5 f +2527 4242(MWF\(EC-sorting\))N +1337 4356 MXY +[] 0 setdash +3 setlinewidth +1377 3093 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 3086 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 3043 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 3130 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 3110 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 3255 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 3143 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 3264 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 3293 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 3269 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 3349 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 3103 MXY +79 -7 Dl +158 -43 Dl +157 87 Dl +157 -20 Dl +157 145 Dl +158 -112 Dl +157 121 Dl +157 29 Dl +158 -24 Dl +157 80 Dl +2541 3533(MWF\(NoSorting\))N +1377 4971 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +4971 MY +0 20 Dl +1351 5102(1)N +1535 4971 MXY +0 20 Dl +1509 5102(3)N +1692 4971 MXY +0 20 Dl +1666 5102(5)N +1849 4971 MXY +0 20 Dl +1823 5102(7)N +2007 4971 MXY +0 20 Dl +1981 5102(9)N +2164 4971 MXY +0 20 Dl +2111 5102(11)N +2321 4971 MXY +0 20 Dl +2268 5102(13)N +2478 4971 MXY +0 20 Dl +2425 5102(15)N +2636 4971 MXY +0 20 Dl +2583 5102(17)N +2793 4971 MXY +0 20 Dl +2740 5102(19)N +2950 4971 MXY +0 20 Dl +2897 5102(21)N +1377 4971 MXY +-20 0 Dl +1151 5012(0.00)N +1377 4820 MXY +-20 0 Dl +1098 4861(50.00)N +1377 4669 MXY +-20 0 Dl +1045 4710(100.00)N +1377 4518 MXY +-20 0 Dl +1045 4559(150.00)N +1377 4366 MXY +-20 0 Dl +1045 4407(200.00)N +1377 4215 MXY +-20 0 Dl +1045 4256(250.00)N +1377 4064 MXY +-20 0 Dl +1045 4105(300.00)N +1377 3912 MXY +-20 0 Dl +1045 3953(350.00)N +1377 3761 MXY +-20 0 Dl +1045 3802(400.00)N +1377 3609 MXY +-20 0 Dl +1045 3650(450.00)N +1377 3458 MXY +-20 0 Dl +1045 3499(500.00)N +1377 3307 MXY +-20 0 Dl +1045 3348(550.00)N +1377 3155 MXY +-20 0 Dl +1045 3196(600.00)N +1377 3004 MXY +-20 0 Dl +1045 3045(650.00)N +3 f +1312 5263(Figure)N +1 f +1609(8:)X +1708(Nodes)X +1977(examined)X +2376(vs.)X +2509(number)X +2827(of)X +2931(machines)X + +15 p +%%Page: 15 15 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(15)X +1 f +12 s +1377 1091 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 1066 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 997 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1057 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1021 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1123 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 974 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1054 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1049 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 900 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1040 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 1101 MXY +79 -25 Dl +158 -69 Dl +157 60 Dl +157 -36 Dl +157 102 Dl +158 -149 Dl +157 80 Dl +157 -5 Dl +158 -149 Dl +157 140 Dl +5 f +2541 861(MWF\(NoSorting\))N +1377 1772 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 1689 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 1583 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1450 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1403 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1240 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1278 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1299 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1147 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1141 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1145 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 1145 MXY +[16] 0 setdash +1 setlinewidth +1377 1782 MXY +79 -83 Dl +158 -106 Dl +157 -133 Dl +157 -47 Dl +157 -163 Dl +158 38 Dl +157 21 Dl +157 -152 Dl +158 -6 Dl +157 4 Dl +2527 1266(MWF\(EC-sorting\))N +1337 1782 MXY +[] 0 setdash +3 setlinewidth +1377 2416 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2379 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 2335 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2290 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2275 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2210 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 2252 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 2279 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 2204 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2239 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2239 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 2239 MXY +[16] 0 setdash +1 setlinewidth +1377 2426 MXY +79 -37 Dl +158 -44 Dl +157 -45 Dl +157 -15 Dl +157 -65 Dl +158 42 Dl +157 27 Dl +157 -75 Dl +158 35 Dl +157 0 Dl +2370 2164(SortTime\(EC-sorting\))N +1337 2426 MXY +[] 0 setdash +3 setlinewidth +1377 2802 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +2802 MY +0 20 Dl +1351 2933(1)N +1535 2802 MXY +0 20 Dl +1509 2933(3)N +1692 2802 MXY +0 20 Dl +1666 2933(5)N +1849 2802 MXY +0 20 Dl +1823 2933(7)N +2007 2802 MXY +0 20 Dl +1981 2933(9)N +2164 2802 MXY +0 20 Dl +2111 2933(11)N +2321 2802 MXY +0 20 Dl +2268 2933(13)N +2478 2802 MXY +0 20 Dl +2425 2933(15)N +2636 2802 MXY +0 20 Dl +2583 2933(17)N +2793 2802 MXY +0 20 Dl +2740 2933(19)N +2950 2802 MXY +0 20 Dl +2897 2933(21)N +1377 2802 MXY +-20 0 Dl +1151 2843(0.00)N +1377 2606 MXY +-20 0 Dl +1098 2647(40.00)N +1377 2409 MXY +-20 0 Dl +1098 2450(80.00)N +1377 2212 MXY +-20 0 Dl +1045 2253(120.00)N +1377 2015 MXY +-20 0 Dl +1045 2057(160.00)N +1377 1819 MXY +-20 0 Dl +1045 1860(200.00)N +1377 1622 MXY +-20 0 Dl +1045 1663(240.00)N +1377 1425 MXY +-20 0 Dl +1045 1466(280.00)N +1377 1229 MXY +-20 0 Dl +1045 1270(320.00)N +1377 1032 MXY +-20 0 Dl +1045 1073(360.00)N +1377 835 MXY +-20 0 Dl +1045 876(400.00)N +3 f +1532 3094(Figure)N +1 f +1829(9:)X +1928(Time)X +2156(vs.)X +2289(number)X +2607(of)X +2711(machines)X +1377 3298 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 3449 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 3611 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 3772 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 3823 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 3975 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 3943 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 3924 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4050 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4054 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4054 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 3308 MXY +79 151 Dl +158 162 Dl +157 161 Dl +157 51 Dl +157 152 Dl +158 -32 Dl +157 -19 Dl +157 126 Dl +158 4 Dl +157 0 Dl +5 f +2527 4033(MWF\(EC-sorting\))N +1377 3298 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 3314 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 3390 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 3338 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 3379 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 3300 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 3430 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 3346 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 3351 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 3505 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 3365 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 3365 MXY +[16] 0 setdash +1 setlinewidth +1377 3308 MXY +79 16 Dl +158 76 Dl +157 -52 Dl +157 41 Dl +157 -79 Dl +158 130 Dl +157 -84 Dl +157 5 Dl +158 154 Dl +157 -140 Dl +2541 3364(MWF\(NoSorting\))N +1337 3308 MXY +[] 0 setdash +3 setlinewidth +1377 5275 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +5275 MY +0 20 Dl +1351 5406(1)N +1535 5275 MXY +0 20 Dl +1509 5406(3)N +1692 5275 MXY +0 20 Dl +1666 5406(5)N +1849 5275 MXY +0 20 Dl +1823 5406(7)N +2007 5275 MXY +0 20 Dl +1981 5406(9)N +2164 5275 MXY +0 20 Dl +2111 5406(11)N +2321 5275 MXY +0 20 Dl +2268 5406(13)N +2478 5275 MXY +0 20 Dl +2425 5406(15)N +2636 5275 MXY +0 20 Dl +2583 5406(17)N +2793 5275 MXY +0 20 Dl +2740 5406(19)N +2950 5275 MXY +0 20 Dl +2897 5406(21)N +1377 5275 MXY +-20 0 Dl +1151 5316(0.00)N +1377 5079 MXY +-20 0 Dl +1151 5120(0.10)N +1377 4882 MXY +-20 0 Dl +1151 4923(0.20)N +1377 4685 MXY +-20 0 Dl +1151 4726(0.30)N +1377 4488 MXY +-20 0 Dl +1151 4530(0.40)N +1377 4292 MXY +-20 0 Dl +1151 4333(0.50)N +1377 4095 MXY +-20 0 Dl +1151 4136(0.60)N +1377 3898 MXY +-20 0 Dl +1151 3939(0.70)N +1377 3702 MXY +-20 0 Dl +1151 3743(0.80)N +1377 3505 MXY +-20 0 Dl +1151 3546(0.90)N +1377 3308 MXY +-20 0 Dl +1151 3349(1.00)N +3 f +1412 5567(Figure)N +1 f +1709(10:)X +1856(Ef\256ciency)X +2276(vs.)X +2409(number)X +2727(of)X +2831(machines)X + +16 p +%%Page: 16 16 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(16)X +1 f +12 s +776 780(The)N +953(last)X +1114(sorting)X +1408(regime)X +1703(is)X +1794(motivated)X +2207(by)X +2330(considering)X +2806(the)X +2951(type-2)X +3224(nodes)X +3475(in)X +3577(MWF.)X +3882(The)X +576 888(eldest)N +830(child)X +1052(of)X +1161(a)X +1233(type-2)X +1508(node)X +1724(is)X +1817(evaluated)X +2215(before)X +2489(its)X +2608(other)X +2834(children)X +3178(are)X +3324(generated.)X +3775(There-)X +576 996(fore,)N +784(if)X +872(we)X +1013(also)X +1197(sort)X +1370(the)X +1517(children)X +1862(of)X +1971(a)X +2044(type-2)X +2320(node)X +2537(there)X +2760(should)X +3046(be)X +3167(even)X +3379(more)X +3607(cutoffs.)X +3952(In)X +576 1104(this)N +748(sorting)X +1048(regime,)X +1373(in)X +1481(addition)X +1830(to)X +1938(sorting)X +2238(children)X +2587(of)X +2700(every)X +2947(eldest)X +3205(child,)X +3455(we)X +3599(also)X +3786(sort)X +3962(at)X +576 1212(every)N +814(type-2)X +1084(node.)X +1343(We)X +1501(call)X +1665(this)X +1828(regime)X +2120(``TT)X +2326(\(type-two\))X +2756(sorting''.)X +776 1353(TT)N +919(sorting)X +1211(resulted)X +1541(in)X +1641(a)X +1709(vast)X +1889(improvement)X +2428(in)X +2528(total)X +2725(computation)X +3232(time)X +3429(and)X +3594(the)X +3738(number)X +576 1461(of)N +688(nodes)X +944(generated.)X +3 f +1398(Unfortunately,)X +2034(a)X +2113(subtle)X +2389(bug)X +2574(in)X +2685(our)X +2860(implementation)X +3537(\(since)X +3803(\256xed\))X +576 1569(renders)N +920(all)X +1051(our)X +1224(conclusions)X +1722(about)X +1985(this)X +2163(sorting)X +2480(method)X +2819(inaccurate;)X +3314(previous)X +3696(versions)X +576 1677(of)N +681(this)X +855(report)X +1142(should)X +1438(not)X +1596(be)X +1717(trusted)X +2035(in)X +2139(this)X +2312(regard.)X +2662(In)X +2776(fact,)X +2979(what)X +3205(we)X +3341(implemented)X +3899(did)X +576 1785(not)N +760(evaluate)X +1153(type-2)X +1460(nodes)X +1745(as)X +1881(deeply)X +2199(as)X +2336(type-1)X +2644(nodes,)X +2954(so)X +3091(far)X +3266(fewer)X +3548(nodes)X +3834(were)X +576 1893(evaluated.)N +1053(So)X +1188(TT)X +1349(sorting)X +1670(\(in)X +1815(this)X +1997(report\))X +2324(implies)X +2651(a)X +2732(different)X +3123(evaluation)X +3583(strategy)X +3947(as)X +576 2001(well.)N +1 f +824(The)X +1008(computation)X +1524(time)X +1731(is)X +1830(almost)X +2122(30)X +2253(times)X +2497(faster)X +2746(than)X +2947(the)X +3100(computation)X +3617(time)X +3824(using)X +576 2109(EC)N +735(sorting)X +1038(for)X +1186(a)X +1265(4)X +9 f +(\264)S +1 f +1366(4)X +1450(tic-tac-toe)X +1877(game,)X +2145(even)X +2362(though)X +2664(about)X +2913(95%)X +3124(of)X +3239(the)X +3392(time)X +3599(is)X +3698(spent)X +3936(on)X +576 2217(sorting)N +868(in)X +968(the)X +1111(1-machine)X +1543(\(sequential\))X +2023(case.)X +2262(These)X +2517(results)X +2793(are)X +2936(shown)X +3211(in)X +3311(Figures)X +3625(11)X +3747(and)X +3912(12.)X +576 2325(The)N +771(ef\256ciency)X +1196(is)X +1305(drastically)X +1752(reduced)X +2102(because)X +2452(the)X +2615(work)X +2857(does)X +3078(not)X +3246(seem)X +3489(to)X +3608(be)X +3743(divided)X +576 2433(evenly)N +857(between)X +1202(the)X +1344(machines.)X +1780(Our)X +1953(assumption)X +2415(is)X +2503(that)X +2673(a)X +2741(better)X +2986(distribution)X +3455(of)X +3560(work)X +3782(can)X +3941(be)X +576 2541(achieved)N +948(by)X +1073(some)X +1305(adjustments)X +1794(to)X +1898(DIB)X +2092(itself)X +2314(so)X +2428(that)X +2602(this)X +2770(great)X +2992(speed)X +3240(can)X +3403(be)X +3523(accompanied)X +576 2649(by)N +696(a)X +763(better)X +1007(ef\256ciency.)X +1377 4770 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4752 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 4667 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 4618 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 4590 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 4541 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 4493 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 4446 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4431 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4314 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4395 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 4780 MXY +79 -18 Dl +158 -85 Dl +157 -49 Dl +157 -28 Dl +157 -49 Dl +158 -48 Dl +157 -47 Dl +157 -15 Dl +158 -77 Dl +157 41 Dl +5 f +2457 4358(MWF\(TT-sorting\))N +1377 3612 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 3514 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 3389 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 3233 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 3178 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2985 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 3031 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 3055 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 2876 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2870 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2874 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 2874 MXY +[16] 0 setdash +1 setlinewidth +1377 3622 MXY +79 -98 Dl +158 -125 Dl +157 -156 Dl +157 -55 Dl +157 -193 Dl +158 46 Dl +157 24 Dl +157 -179 Dl +158 -6 Dl +157 4 Dl +2449 2871(MWF\(EC-sorting\))N +1337 3622 MXY +[] 0 setdash +3 setlinewidth +1377 4370 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4326 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 4274 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 4221 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 4204 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 4128 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 4176 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 4208 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4120 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4162 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4161 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 4161 MXY +[16] 0 setdash +1 setlinewidth +1377 4380 MXY +79 -44 Dl +158 -52 Dl +157 -53 Dl +157 -17 Dl +157 -76 Dl +158 48 Dl +157 32 Dl +157 -88 Dl +158 42 Dl +157 -1 Dl +2206 4115(SortTime\(EC-sorting\))N +3137(........)X +1337 4380 MXY +[] 0 setdash +3 setlinewidth +1377 4777 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4777 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 4773 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 4772 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 4771 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 4770 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 4770 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 4771 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4771 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4768 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4771 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 4787 MXY +79 0 Dl +158 -4 Dl +157 -1 Dl +157 -1 Dl +157 -1 Dl +158 0 Dl +157 1 Dl +157 0 Dl +158 -3 Dl +157 3 Dl +2337 4712(SortTime\(TT-sorting\))N +1377 4822 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +4822 MY +0 20 Dl +1351 4953(1)N +1535 4822 MXY +0 20 Dl +1509 4953(3)N +1692 4822 MXY +0 20 Dl +1666 4953(5)N +1849 4822 MXY +0 20 Dl +1823 4953(7)N +2007 4822 MXY +0 20 Dl +1981 4953(9)N +2164 4822 MXY +0 20 Dl +2111 4953(11)N +2321 4822 MXY +0 20 Dl +2268 4953(13)N +2478 4822 MXY +0 20 Dl +2425 4953(15)N +2636 4822 MXY +0 20 Dl +2583 4953(17)N +2793 4822 MXY +0 20 Dl +2740 4953(19)N +2950 4822 MXY +0 20 Dl +2897 4953(21)N +1377 4822 MXY +-20 0 Dl +1151 4863(0.00)N +1377 4707 MXY +-20 0 Dl +1098 4748(20.00)N +1377 4591 MXY +-20 0 Dl +1098 4632(40.00)N +1377 4475 MXY +-20 0 Dl +1098 4516(60.00)N +1377 4360 MXY +-20 0 Dl +1098 4401(80.00)N +1377 4244 MXY +-20 0 Dl +1045 4285(100.00)N +1377 4128 MXY +-20 0 Dl +1045 4169(120.00)N +1377 4013 MXY +-20 0 Dl +1045 4054(140.00)N +1377 3897 MXY +-20 0 Dl +1045 3938(160.00)N +1377 3781 MXY +-20 0 Dl +1045 3822(180.00)N +1377 3665 MXY +-20 0 Dl +1045 3706(200.00)N +1377 3550 MXY +-20 0 Dl +1045 3591(220.00)N +1377 3434 MXY +-20 0 Dl +1045 3475(240.00)N +1377 3318 MXY +-20 0 Dl +1045 3359(260.00)N +1377 3202 MXY +-20 0 Dl +1045 3243(280.00)N +1377 3087 MXY +-20 0 Dl +1045 3128(300.00)N +1377 2971 MXY +-20 0 Dl +1045 3012(320.00)N +1377 2855 MXY +-20 0 Dl +1045 2896(340.00)N +3 f +1508 5114(Figure)N +1 f +1805(11:)X +1952(Time)X +2180(vs.)X +2313(number)X +2631(of)X +2735(machines)X + +17 p +%%Page: 17 17 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(17)X +1 f +12 s +1377 1179 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 1133 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 1092 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1023 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1099 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 888 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1044 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1044 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1000 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1055 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1158 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 1158 MXY +[16] 0 setdash +1 setlinewidth +1377 1189 MXY +79 -46 Dl +158 -41 Dl +157 -69 Dl +157 76 Dl +157 -211 Dl +158 156 Dl +157 0 Dl +157 -44 Dl +158 55 Dl +157 103 Dl +5 f +2449 1348(MWF\(EC-sorting\))N +1337 1189 MXY +[] 0 setdash +3 setlinewidth +1377 2739 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2741 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 2732 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2729 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2728 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2722 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 2721 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 2725 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 2724 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2718 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2720 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 2749 MXY +79 2 Dl +158 -9 Dl +157 -3 Dl +157 -1 Dl +157 -6 Dl +158 -1 Dl +157 4 Dl +157 -1 Dl +158 -6 Dl +157 2 Dl +2457 2669(MWF\(TT-sorting\))N +1377 2787 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +2787 MY +0 20 Dl +1351 2918(1)N +1535 2787 MXY +0 20 Dl +1509 2918(3)N +1692 2787 MXY +0 20 Dl +1666 2918(5)N +1849 2787 MXY +0 20 Dl +1823 2918(7)N +2007 2787 MXY +0 20 Dl +1981 2918(9)N +2164 2787 MXY +0 20 Dl +2111 2918(11)N +2321 2787 MXY +0 20 Dl +2268 2918(13)N +2478 2787 MXY +0 20 Dl +2425 2918(15)N +2636 2787 MXY +0 20 Dl +2583 2918(17)N +2793 2787 MXY +0 20 Dl +2740 2918(19)N +2950 2787 MXY +0 20 Dl +2897 2918(21)N +1377 2787 MXY +-20 0 Dl +1151 2828(0.00)N +1377 2591 MXY +-20 0 Dl +1098 2632(25.00)N +1377 2394 MXY +-20 0 Dl +1098 2435(50.00)N +1377 2197 MXY +-20 0 Dl +1098 2238(75.00)N +1377 2000 MXY +-20 0 Dl +1045 2042(100.00)N +1377 1804 MXY +-20 0 Dl +1045 1845(125.00)N +1377 1607 MXY +-20 0 Dl +1045 1648(150.00)N +1377 1410 MXY +-20 0 Dl +1045 1451(175.00)N +1377 1214 MXY +-20 0 Dl +1045 1255(200.00)N +1377 1017 MXY +-20 0 Dl +1045 1058(225.00)N +1377 820 MXY +-20 0 Dl +1045 861(250.00)N +3 f +1288 3079(Figure)N +1 f +1585(12:)X +1732(Nodes)X +2001(examined)X +2400(vs.)X +2533(number)X +2851(of)X +2955(machines)X +776 3253(We)N +958(also)X +1161(used)X +1385(three-level)X +1846(sort)X +2038(for)X +2198(TT)X +2364(sorting.)X +2727(The)X +2925(great)X +3166(speed)X +3433(in)X +3556(this)X +3743(method)X +576 3361(allowed)N +912(us)X +1028(to)X +1134(build)X +1363(a)X +1437(complete)X +1822(game)X +2062(tree)X +2238(for)X +2381(our)X +2540(experiments.)X +3090(In)X +3200(previous)X +3561(experiments)X +576 3469(with)N +771(tic-tac-toe,)X +1211(we)X +1347(built)X +1548(a)X +1615(search)X +1885(tree)X +2054(with)X +2249(nine)X +2439(levels;)X +2715(the)X +2858(complete)X +3237(search)X +3508(tree)X +3678(for)X +3815(a)X +3883(4)X +9 f +(\264)S +1 f +3984(4)X +576 3577(board)N +819(has)X +971(16)X +1091(levels.)X +8 f +14 s +576 3781(6.)N +844(New)X +1112(results)X +1 f +12 s +776 3922(We)N +939(have)X +1150(new)X +1339(results)X +1619(based)X +1867(on)X +1992(adjustments)X +2481(made)X +2719(to)X +2824(MWF)X +3083(concerning)X +3541(the)X +3689(selection)X +576 4030(of)N +682(type-1)X +954(nodes.)X +1252(In)X +1358(dynamic)X +1716(MWF)X +1971(\(DMWF\),)X +2383(we)X +2521(decide)X +2799(which)X +3060(children)X +3401(of)X +3506(a)X +3574(type-1)X +3845(node)X +576 4138(to)N +687(fully)X +905(investigate)X +1359(not)X +1518(by)X +1650(taking)X +1927(the)X +2081(\256rst)X +2266(\(as)X +2414(in)X +2525(MWF\),)X +2846(but)X +3005(by)X +3137(taking)X +3414(all)X +3547(those)X +3787(whose)X +576 4246(static)N +815(value)X +1059(is)X +1158(above)X +1423(the)X +1576(90th)X +1782(percentile)X +2198(of)X +2312(its)X +2437(siblings.)X +2818(To)X +2959(our)X +3121(knowledge,)X +3601(no)X +3731(one)X +3904(has)X +576 4354(tried)N +781(algorithms)X +1221(that)X +1394(dynamically)X +1900(adjust)X +2159(their)X +2365(width)X +2613(of)X +2722(full)X +2885(evaluation)X +3316(based)X +3564(on)X +3689(evidence)X +576 4462(provided)N +955(in)X +1067(the)X +1221(tree.)X +1450(This)X +1657(adjustment)X +2116(can)X +2286(also)X +2477(be)X +2604(made)X +2849(to)X +2960(other)X +3194(algorithms)X +3642(like)X +3823(delay)X +576 4570(splitting)N +916(and)X +1079(ER.)X +776 4711(We)N +939(compared)X +1348(MWF)X +1606(and)X +1774(DMWF)X +2101(under)X +2349(EC)X +2501(sorting)X +2797(for)X +2939(a)X +3012(tic-tac-toe)X +3434(tree)X +3609(with)X +3810(a)X +3883(4)X +9 f +(\264)S +1 f +3984(4)X +576 4819(board.)N +873(Figure)X +1154(13)X +1280(shows)X +1549(the)X +1697(comparison)X +2176(of)X +2286(the)X +2434(total)X +2636(time)X +2838(\(including)X +3264(communication)X +3893(and)X +576 4927(idle)N +745(time\))X +973(between)X +1318(MWF)X +1571(and)X +1734(DMWF.)X +2104(DMWF)X +2426(is)X +2514(about)X +2752(one-third)X +3129(faster)X +3368(than)X +3559(MWF.)X +3861(This)X +576 5035(speed)N +843(is)X +955(achieved)X +1346(with)X +1565(even)X +1795(less)X +1987(sorting)X +2302(time)X +2522(because)X +2875(it)X +2977(generates)X +3389(fewer)X +3656(nodes,)X +3952(as)X +576 5143(demonstrated)N +1124(in)X +1228(Figure)X +1508(14)X +1633(\(number)X +1989(of)X +2099(nodes)X +2353(are)X +2501(in)X +2606(multiples)X +2995(of)X +3105(1000\).)X +3407(There)X +3662(is)X +3756(also)X +3941(an)X +576 5251(improvement)N +1114(in)X +1213(the)X +1355(ef\256ciency)X +1759(\(Figure)X +2066(15\).)X + +18 p +%%Page: 18 18 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(18)X +1 f +12 s +1377 1867 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 1852 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 1809 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1762 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1708 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1607 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1618 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1533 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1494 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1393 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1305 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 1305 MXY +[16] 0 setdash +1 setlinewidth +1377 1877 MXY +79 -15 Dl +158 -43 Dl +157 -47 Dl +157 -54 Dl +157 -102 Dl +158 12 Dl +157 -85 Dl +157 -39 Dl +158 -101 Dl +157 -88 Dl +5 f +2428 1286(TotalTime\(DMWF\))N +1337 1877 MXY +[] 0 setdash +3 setlinewidth +1377 2296 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2296 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 2303 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2306 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2303 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2296 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 2304 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 2280 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 2293 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2284 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2260 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 2260 MXY +[16] 0 setdash +1 setlinewidth +1377 2306 MXY +79 0 Dl +158 7 Dl +157 3 Dl +157 -3 Dl +157 -7 Dl +158 8 Dl +157 -24 Dl +157 13 Dl +158 -9 Dl +157 -24 Dl +2446 2458(SortTime\(DMWF\))N +1337 2306 MXY +[] 0 setdash +3 setlinewidth +1377 1611 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 1517 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 1395 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1244 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1190 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1002 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1047 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1071 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 896 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 890 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 894 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 1621 MXY +79 -94 Dl +158 -122 Dl +157 -152 Dl +157 -53 Dl +157 -188 Dl +158 45 Dl +157 24 Dl +157 -175 Dl +158 -6 Dl +157 4 Dl +2383 893(TotalTime\(MWF\))N +1377 2348 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2305 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 2254 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2203 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2186 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2112 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 2159 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 2190 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 2105 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2145 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2145 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 2358 MXY +79 -43 Dl +158 -51 Dl +157 -51 Dl +157 -17 Dl +157 -74 Dl +158 47 Dl +157 31 Dl +157 -85 Dl +158 40 Dl +157 0 Dl +2481 2089(SortTime\(MWF\))N +1377 2787 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +2787 MY +0 20 Dl +1351 2918(1)N +1535 2787 MXY +0 20 Dl +1509 2918(3)N +1692 2787 MXY +0 20 Dl +1666 2918(5)N +1849 2787 MXY +0 20 Dl +1823 2918(7)N +2007 2787 MXY +0 20 Dl +1981 2918(9)N +2164 2787 MXY +0 20 Dl +2111 2918(11)N +2321 2787 MXY +0 20 Dl +2268 2918(13)N +2478 2787 MXY +0 20 Dl +2425 2918(15)N +2636 2787 MXY +0 20 Dl +2583 2918(17)N +2793 2787 MXY +0 20 Dl +2740 2918(19)N +2950 2787 MXY +0 20 Dl +2897 2918(21)N +1377 2787 MXY +-20 0 Dl +1151 2828(0.00)N +1377 2506 MXY +-20 0 Dl +1098 2547(50.00)N +1377 2225 MXY +-20 0 Dl +1045 2266(100.00)N +1377 1944 MXY +-20 0 Dl +1045 1985(150.00)N +1377 1663 MXY +-20 0 Dl +1045 1704(200.00)N +1377 1382 MXY +-20 0 Dl +1045 1423(250.00)N +1377 1101 MXY +-20 0 Dl +1045 1142(300.00)N +1377 820 MXY +-20 0 Dl +1045 861(350.00)N +3 f +1508 3079(Figure)N +1 f +1805(13:)X +1952(Time)X +2180(vs.)X +2313(number)X +2631(of)X +2735(machines)X +1377 3652 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 3606 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 3565 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 3496 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 3572 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 3361 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 3517 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 3517 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 3473 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 3528 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 3631 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 3631 MXY +[16] 0 setdash +1 setlinewidth +1377 3662 MXY +79 -46 Dl +158 -41 Dl +157 -69 Dl +157 76 Dl +157 -211 Dl +158 156 Dl +157 0 Dl +157 -44 Dl +158 55 Dl +157 103 Dl +5 f +2785 3821(MWF)N +1337 3662 MXY +[] 0 setdash +3 setlinewidth +1377 4212 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4211 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 4218 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 4249 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 4232 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 4248 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 4282 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 4262 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4281 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4306 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4258 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 4222 MXY +79 -1 Dl +158 7 Dl +157 31 Dl +157 -17 Dl +157 16 Dl +158 34 Dl +157 -20 Dl +157 19 Dl +158 25 Dl +157 -48 Dl +2751 4293(DMWF)N +1377 5260 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +5260 MY +0 20 Dl +1351 5391(1)N +1535 5260 MXY +0 20 Dl +1509 5391(3)N +1692 5260 MXY +0 20 Dl +1666 5391(5)N +1849 5260 MXY +0 20 Dl +1823 5391(7)N +2007 5260 MXY +0 20 Dl +1981 5391(9)N +2164 5260 MXY +0 20 Dl +2111 5391(11)N +2321 5260 MXY +0 20 Dl +2268 5391(13)N +2478 5260 MXY +0 20 Dl +2425 5391(15)N +2636 5260 MXY +0 20 Dl +2583 5391(17)N +2793 5260 MXY +0 20 Dl +2740 5391(19)N +2950 5260 MXY +0 20 Dl +2897 5391(21)N +1377 5260 MXY +-20 0 Dl +1151 5301(0.00)N +1377 5064 MXY +-20 0 Dl +1098 5105(25.00)N +1377 4867 MXY +-20 0 Dl +1098 4908(50.00)N +1377 4670 MXY +-20 0 Dl +1098 4711(75.00)N +1377 4473 MXY +-20 0 Dl +1045 4515(100.00)N +1377 4277 MXY +-20 0 Dl +1045 4318(125.00)N +1377 4080 MXY +-20 0 Dl +1045 4121(150.00)N +1377 3883 MXY +-20 0 Dl +1045 3924(175.00)N +1377 3687 MXY +-20 0 Dl +1045 3728(200.00)N +1377 3490 MXY +-20 0 Dl +1045 3531(225.00)N +1377 3293 MXY +-20 0 Dl +1045 3334(250.00)N +3 f +1288 5552(Figure)N +1 f +1585(14:)X +1732(Nodes)X +2001(examined)X +2400(vs.)X +2533(number)X +2851(of)X +2955(machines)X + +19 p +%%Page: 19 19 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(19)X +1 f +12 s +1377 810 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 961 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 1123 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1284 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1335 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1487 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1455 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1436 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1562 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1566 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1566 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 820 MXY +79 151 Dl +158 162 Dl +157 161 Dl +157 51 Dl +157 152 Dl +158 -32 Dl +157 -19 Dl +157 126 Dl +158 4 Dl +157 0 Dl +5 f +2785 1712(MWF)N +1377 810 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 832 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 928 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1024 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1115 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1239 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1251 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1349 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1369 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1550 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1497 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 1497 MXY +[16] 0 setdash +1 setlinewidth +1377 820 MXY +79 22 Dl +158 96 Dl +157 96 Dl +157 91 Dl +157 124 Dl +158 12 Dl +157 98 Dl +157 20 Dl +158 181 Dl +157 -53 Dl +2751 1506(DMWF)N +1337 820 MXY +[] 0 setdash +3 setlinewidth +1377 2787 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +2787 MY +0 20 Dl +1351 2918(1)N +1535 2787 MXY +0 20 Dl +1509 2918(3)N +1692 2787 MXY +0 20 Dl +1666 2918(5)N +1849 2787 MXY +0 20 Dl +1823 2918(7)N +2007 2787 MXY +0 20 Dl +1981 2918(9)N +2164 2787 MXY +0 20 Dl +2111 2918(11)N +2321 2787 MXY +0 20 Dl +2268 2918(13)N +2478 2787 MXY +0 20 Dl +2425 2918(15)N +2636 2787 MXY +0 20 Dl +2583 2918(17)N +2793 2787 MXY +0 20 Dl +2740 2918(19)N +2950 2787 MXY +0 20 Dl +2897 2918(21)N +1377 2787 MXY +-20 0 Dl +1151 2828(0.00)N +1377 2591 MXY +-20 0 Dl +1151 2632(0.10)N +1377 2394 MXY +-20 0 Dl +1151 2435(0.20)N +1377 2197 MXY +-20 0 Dl +1151 2238(0.30)N +1377 2000 MXY +-20 0 Dl +1151 2042(0.40)N +1377 1804 MXY +-20 0 Dl +1151 1845(0.50)N +1377 1607 MXY +-20 0 Dl +1151 1648(0.60)N +1377 1410 MXY +-20 0 Dl +1151 1451(0.70)N +1377 1214 MXY +-20 0 Dl +1151 1255(0.80)N +1377 1017 MXY +-20 0 Dl +1151 1058(0.90)N +1377 820 MXY +-20 0 Dl +1151 861(1.00)N +3 f +1424 3079(Figure)N +1 f +1721(15:)X +1868(Ef\256ciency)X +2288(vs)X +2397(number)X +2715(of)X +2819(machines)X +776 3253(We)N +952(also)X +1149(compared)X +1571(MWF)X +1842(and)X +2023(DMWF)X +2363(under)X +2624(EC)X +2789(sorting)X +3098(for)X +3252(Othello)X +3583(with)X +3797(a)X +3883(6)X +9 f +(\264)S +1 f +3984(6)X +576 3361(board.)N +887(Since)X +1145(Othello)X +1478(is)X +1585(a)X +1671(more)X +1912(complicated)X +2427(game)X +2679(than)X +2888(tic-tac-toe,)X +3347(the)X +3508(sorting)X +3818(depth)X +576 3469(parameter)N +986(was)X +1160(set)X +1292(to)X +1392(6)X +1465(levels,)X +1739(as)X +1844(mentioned)X +2276(above.)X +2579(The)X +2754(results)X +3030(of)X +3135(this)X +3299(experiment,)X +3782(shown)X +576 3577(in)N +675(Figures)X +987(16,)X +1131(17)X +1251(and)X +1414(18,)X +1558(are)X +1700(similar)X +1992(to)X +2091(the)X +2233(results)X +2508(from)X +2719(tic-tac-toe.)X + +20 p +%%Page: 20 20 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(20)X +1 f +12 s +1377 2410 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2337 MXY +0 19 Dl +0 -9 Dl +10 0 Dl +-20 0 Dl +1614 2219 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2139 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2043 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1982 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1901 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1792 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1764 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1617 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 1568 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 1568 MXY +[16] 0 setdash +1 setlinewidth +1377 2420 MXY +79 -73 Dl +158 -118 Dl +157 -80 Dl +157 -96 Dl +157 -61 Dl +158 -81 Dl +157 -109 Dl +157 -28 Dl +158 -147 Dl +157 -49 Dl +5 f +2349 1624(TotalTime\(DMWF\))N +1337 2420 MXY +[] 0 setdash +3 setlinewidth +1377 2732 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2721 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 2722 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2718 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2711 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2712 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 2709 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 2701 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 2699 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2704 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2687 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 2687 MXY +[16] 0 setdash +1 setlinewidth +1377 2742 MXY +79 -11 Dl +158 1 Dl +157 -4 Dl +157 -8 Dl +157 1 Dl +158 -2 Dl +157 -8 Dl +157 -2 Dl +158 5 Dl +157 -17 Dl +2367 2652(SortTime\(DMWF\))N +1337 2742 MXY +[] 0 setdash +3 setlinewidth +1377 2167 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2087 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 1968 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 1859 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 1825 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 1738 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 1648 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 1511 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 1361 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 1145 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 827 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 2177 MXY +79 -80 Dl +158 -119 Dl +157 -109 Dl +157 -34 Dl +157 -87 Dl +158 -90 Dl +157 -137 Dl +157 -150 Dl +158 -216 Dl +157 -318 Dl +2383 883(TotalTime\(MWF\))N +1377 2719 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 2714 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 2703 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 2706 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 2707 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 2702 MXY +0 19 Dl +0 -9 Dl +10 0 Dl +-20 0 Dl +2243 2696 MXY +0 19 Dl +0 -9 Dl +10 0 Dl +-20 0 Dl +2400 2698 MXY +0 19 Dl +0 -9 Dl +10 0 Dl +-20 0 Dl +2557 2692 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 2679 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 2670 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 2729 MXY +79 -6 Dl +158 -10 Dl +157 2 Dl +157 2 Dl +157 -5 Dl +158 -6 Dl +157 2 Dl +157 -6 Dl +158 -13 Dl +157 -9 Dl +2402 2559(SortTime\(MWF\))N +1377 2787 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +2787 MY +0 20 Dl +1351 2918(1)N +1535 2787 MXY +0 20 Dl +1509 2918(3)N +1692 2787 MXY +0 20 Dl +1666 2918(5)N +1849 2787 MXY +0 20 Dl +1823 2918(7)N +2007 2787 MXY +0 20 Dl +1981 2918(9)N +2164 2787 MXY +0 20 Dl +2111 2918(11)N +2321 2787 MXY +0 20 Dl +2268 2918(13)N +2478 2787 MXY +0 20 Dl +2425 2918(15)N +2636 2787 MXY +0 20 Dl +2583 2918(17)N +2793 2787 MXY +0 20 Dl +2740 2918(19)N +2950 2787 MXY +0 20 Dl +2897 2918(21)N +1377 2787 MXY +-20 0 Dl +1151 2828(0.00)N +1377 2656 MXY +-20 0 Dl +1045 2697(100.00)N +1377 2525 MXY +-20 0 Dl +1045 2566(200.00)N +1377 2394 MXY +-20 0 Dl +1045 2435(300.00)N +1377 2263 MXY +-20 0 Dl +1045 2304(400.00)N +1377 2132 MXY +-20 0 Dl +1045 2173(500.00)N +1377 2000 MXY +-20 0 Dl +1045 2042(600.00)N +1377 1869 MXY +-20 0 Dl +1045 1910(700.00)N +1377 1738 MXY +-20 0 Dl +1045 1779(800.00)N +1377 1607 MXY +-20 0 Dl +1045 1648(900.00)N +1377 1476 MXY +-20 0 Dl +992 1517(1000.00)N +1377 1345 MXY +-20 0 Dl +992 1386(1100.00)N +1377 1214 MXY +-20 0 Dl +992 1255(1200.00)N +1377 1082 MXY +-20 0 Dl +992 1123(1300.00)N +1377 951 MXY +-20 0 Dl +992 992(1400.00)N +1377 820 MXY +-20 0 Dl +992 861(1500.00)N +3 f +1508 3079(Figure)N +1 f +1805(16:)X +1952(Time)X +2180(vs.)X +2313(number)X +2631(of)X +2735(machines)X +1377 4199 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4080 MXY +0 19 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 3953 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 3825 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 3803 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 3756 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 3631 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 3510 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 3430 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 3413 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 3349 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1337 3349 MXY +[16] 0 setdash +1 setlinewidth +1377 4209 MXY +79 -120 Dl +158 -126 Dl +157 -128 Dl +157 -22 Dl +157 -47 Dl +158 -125 Dl +157 -121 Dl +157 -80 Dl +158 -17 Dl +157 -64 Dl +5 f +2785 3389(MWF)N +1337 4209 MXY +[] 0 setdash +3 setlinewidth +1377 4662 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1456 4559 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1614 4419 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1771 4366 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1928 4258 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2085 4262 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2243 4186 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2400 4112 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2557 4133 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2715 4068 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +2872 4003 MXY +0 20 Dl +0 -10 Dl +10 0 Dl +-20 0 Dl +1377 4672 MXY +79 -103 Dl +158 -140 Dl +157 -53 Dl +157 -108 Dl +157 4 Dl +158 -76 Dl +157 -74 Dl +157 21 Dl +158 -65 Dl +157 -65 Dl +2751 4018(DMWF)N +1377 5260 MXY +1573 0 Dl +1377 MX +0 -1967 Dl +5260 MY +0 20 Dl +1351 5391(1)N +1535 5260 MXY +0 20 Dl +1509 5391(3)N +1692 5260 MXY +0 20 Dl +1666 5391(5)N +1849 5260 MXY +0 20 Dl +1823 5391(7)N +2007 5260 MXY +0 20 Dl +1981 5391(9)N +2164 5260 MXY +0 20 Dl +2111 5391(11)N +2321 5260 MXY +0 20 Dl +2268 5391(13)N +2478 5260 MXY +0 20 Dl +2425 5391(15)N +2636 5260 MXY +0 20 Dl +2583 5391(17)N +2793 5260 MXY +0 20 Dl +2740 5391(19)N +2950 5260 MXY +0 20 Dl +2897 5391(21)N +1377 5260 MXY +-20 0 Dl +1151 5301(0.00)N +1377 5064 MXY +-20 0 Dl +1098 5105(50.00)N +1377 4867 MXY +-20 0 Dl +1045 4908(100.00)N +1377 4670 MXY +-20 0 Dl +1045 4711(150.00)N +1377 4473 MXY +-20 0 Dl +1045 4515(200.00)N +1377 4277 MXY +-20 0 Dl +1045 4318(250.00)N +1377 4080 MXY +-20 0 Dl +1045 4121(300.00)N +1377 3883 MXY +-20 0 Dl +1045 3924(350.00)N +1377 3687 MXY +-20 0 Dl +1045 3728(400.00)N +1377 3490 MXY +-20 0 Dl +1045 3531(450.00)N +1377 3293 MXY +-20 0 Dl +1045 3334(500.00)N +3 f +1288 5552(Figure)N +1 f +1585(17:)X +1732(Nodes)X +2001(examined)X +2400(vs.)X +2533(number)X +2851(of)X +2955(machines)X + +21 p +%%Page: 21 21 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(21)X +1 f +12 s +981 826 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +1101 1169 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +1340 1560 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-31 0 Dl +1578 1826 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +1817 1897 MXY +0 31 Dl +0 -16 Dl +15 0 Dl +-30 0 Dl +2056 2059 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +2294 2199 MXY +0 30 Dl +0 -15 Dl +16 0 Dl +-31 0 Dl +2533 2373 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +2772 2513 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +3011 2698 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +3249 2880 MXY +0 31 Dl +0 -16 Dl +16 0 Dl +-31 0 Dl +981 841 MXY +120 343 Dl +239 391 Dl +238 266 Dl +239 71 Dl +239 162 Dl +238 140 Dl +239 174 Dl +239 140 Dl +239 185 Dl +238 182 Dl +5 f +3178 2885(MWF)N +981 826 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +1101 1318 MXY +0 31 Dl +0 -16 Dl +15 0 Dl +-30 0 Dl +1340 1844 MXY +0 31 Dl +0 -16 Dl +15 0 Dl +-31 0 Dl +1578 2092 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +1817 2319 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +2056 2432 MXY +0 31 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +2294 2560 MXY +0 31 Dl +0 -15 Dl +16 0 Dl +-31 0 Dl +2533 2701 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +2772 2731 MXY +0 30 Dl +0 -15 Dl +15 0 Dl +-30 0 Dl +3011 2868 MXY +0 31 Dl +0 -16 Dl +15 0 Dl +-30 0 Dl +3249 2907 MXY +0 30 Dl +0 -15 Dl +16 0 Dl +-31 0 Dl +920 2907 MXY +[16] 0 setdash +1 setlinewidth +981 841 MXY +120 492 Dl +239 526 Dl +238 248 Dl +239 227 Dl +239 114 Dl +238 128 Dl +239 140 Dl +239 30 Dl +239 137 Dl +238 39 Dl +3144 3034(DMWF)N +920 841 MXY +[] 0 setdash +3 setlinewidth +981 3827 MXY +2387 0 Dl +981 MX +0 -2986 Dl +3827 MY +0 30 Dl +955 3984(1)N +1220 3827 MXY +0 30 Dl +1194 3984(3)N +1459 3827 MXY +0 30 Dl +1433 3984(5)N +1697 3827 MXY +0 30 Dl +1671 3984(7)N +1936 3827 MXY +0 30 Dl +1910 3984(9)N +2175 3827 MXY +0 30 Dl +2122 3984(11)N +2413 3827 MXY +0 30 Dl +2360 3984(13)N +2652 3827 MXY +0 30 Dl +2599 3984(15)N +2891 3827 MXY +0 30 Dl +2838 3984(17)N +3130 3827 MXY +0 30 Dl +3077 3984(19)N +3368 3827 MXY +0 30 Dl +3315 3984(21)N +981 3827 MXY +-30 0 Dl +734 3847(0.00)N +981 3528 MXY +-30 0 Dl +734 3549(0.10)N +981 3230 MXY +-30 0 Dl +734 3250(0.20)N +981 2931 MXY +-30 0 Dl +734 2951(0.30)N +981 2632 MXY +-30 0 Dl +734 2653(0.40)N +981 2334 MXY +-30 0 Dl +734 2354(0.50)N +981 2035 MXY +-30 0 Dl +734 2056(0.60)N +981 1737 MXY +-30 0 Dl +734 1757(0.70)N +981 1438 MXY +-30 0 Dl +734 1458(0.80)N +981 1139 MXY +-30 0 Dl +734 1160(0.90)N +981 841 MXY +-30 0 Dl +734 861(1.00)N +3 f +1424 4181(Figure)N +1 f +1721(18:)X +1868(Ef\256ciency)X +2288(vs)X +2397(number)X +2715(of)X +2819(machines)X +8 f +14 s +576 4418(7.)N +844(Future)X +1313(work)X +1 f +12 s +776 4559(With)N +996(enhancements)X +1569(made)X +1805(to)X +1907(DIB)X +2099(for)X +2239(achieving)X +2642(high)X +2841(ef\256ciency)X +3249(in)X +3352(game)X +3589(tree)X +3762(search,)X +576 4667(we)N +722(have)X +938(developed)X +1368(an)X +1492(environment)X +2012(in)X +2120(which)X +2388(we)X +2533(can)X +2700(test)X +2867(different)X +3232(algorithms)X +3677(in)X +3785(a)X +3861(con-)X +576 4775(sistent)N +853(way.)X +1092(These)X +1353(algorithms)X +1796(have)X +2009(been)X +2222(examined)X +2628(using)X +2867(a)X +2941(test)X +3107(suite)X +3321(of)X +3433(problems)X +3823(taken)X +576 4883(from)N +793(game)X +1032(trees)X +1244(for)X +1386(checkers,)X +1776(tic-tac-toe,)X +2221(and)X +2389(Othello.)X +2755(These)X +3014(games)X +3289(are)X +3436(coded)X +3695(indepen-)X +576 4991(dently)N +841(from)X +1052(the)X +1194(search)X +1464(algorithms,)X +1924(thus)X +2108(contributing)X +2603(to)X +2702(the)X +2844(consistency)X +3317(of)X +3421(the)X +3563(experiment.)X +776 5132(We)N +954(are)X +1116(currently)X +1508(testing)X +1809(these)X +2051(algorithms)X +2507(on)X +2647(a)X +2735(26-processor)X +3276(Sequent)X +3631(Symmetry)X +576 5240(machine.)N +992(Our)X +1182(future)X +1453(plans)X +1697(include)X +2022(the)X +2181(use)X +2350(of)X +2471(a)X +2555(KSR)X +2782(multicomputer)X +3391(with)X +3603(64)X +3740(cpus)X +3957(to)X +576 5348(examine)N +927(the)X +1069(search)X +1339(algorithms)X +1775(with)X +1970(a)X +2037(larger)X +2286(number)X +2604(of)X +2708(processors.)X +776 5489(We)N +944(will)X +1128(also)X +1317(experiment)X +1785(with)X +1990(worst-case)X +2435(sorting,)X +2760(not)X +2917(because)X +3256(it)X +3345(would)X +3620(be)X +3746(used)X +3957(in)X +576 5597(practice,)N +930(but)X +1077(to)X +1176(see)X +1323(how)X +1512(each)X +1713(algorithm)X +2112(is)X +2200(sensitive)X +2561(to)X +2660(sorting.)X + +22 p +%%Page: 22 22 +12 s 0 xH 0 xS 1 f +10 s +3 f +576 474(Game-tree)N +963(search)X +3952(22)X +8 f +14 s +576 780(References)N +1 f +12 s +576 921(1.)N +776(Raphael)X +1122(Finkel)X +1399(and)X +1569(Udi)X +1744(Manber,)X +2098(``DIB)X +2358(\320)X +2485(A)X +2585(Distributed)X +3049 0.2356(Implementation)AX +3691(of)X +3802(Back-)X +776 1029(tracking,'')N +2 f +1223(ACM)X +1469(Transactions)X +2013(on)X +2152(Programming)X +2733(Languages)X +3196(and)X +3382(Systems)X +3 f +3728(9)X +1 f +(\(2\))S +3912(pp.)X +776 1137(235-256)N +1120(\(April)X +1379(1987\).)X +576 1278(2.)N +776(Vipin)X +1024(Kumar)X +1320(and)X +1488(V.)X +1610(Nageshwara)X +2115(Rao,)X +2 f +2324(Scalable)X +2686(Parallel)X +3032(Formation)X +3473(of)X +3578(Depth-First)X +776 1386(Search)N +1 f +1043(.)X +576 1527(3.)N +776(Igor)X +960(Steinberg)X +1353(and)X +1516(Marvin)X +1823(Solomon,)X +2 f +2218(Searching)X +2632(Game)X +2885(tree)X +3059(in)X +3158(Parallel)X +1 f +3474(.)X +576 1668(4.)N +776(John)X +1000(Philip)X +1273(Fishburn,)X +1681(``Analysis)X +2124(of)X +2247(speed)X +2509(up)X +2648(in)X +2767(Distributed)X +3244(Algorithms,'')X +3814(Ph.D.)X +776 1776(Thesis,)N +1140(Department)X +1660(of)X +1805(Computer)X +2255(Science,)X +2644(University)X +3114(of)X +3258(Wisconsin-Madison)X +776 1884(\(1981\).)N +576 2025(5.)N +776(D.)X +907(V.)X +1038(Knuth)X +1316(and)X +1493(R.)X +1619(W.)X +1772(Moore,)X +2090(``An)X +2309(analysis)X +2657(of)X +2775(alpha-beta)X +3215(prunning,'')X +2 f +3689(Arti\256cial)X +776 2133(Intelligence)N +3 f +1256(6)X +1 f +1328(pp.)X +1472(293-326)X +1816(\(1975\).)X +576 2274(6.)N +776(Selim)X +1048(G.)X +1188(Akl,)X +1403(David)X +1685(T.)X +1815(Barnard,)X +2196(and)X +2382(Ralph)X +2659(J.)X +2767(Doran,)X +3078(``Desing,)X +3485(Analysis,)X +3893(and)X +776 2382 0.2356(Implementation)AN +1432(of)X +1557(a)X +1645(Parallel)X +1985(Tree)X +2207(Search)X +2514(Algorithm,'')X +2 f +3048(IEEE)X +3 f +3301(PAMI-4)X +1 f +3637(\(2\)\(March)X +776 2490(1982\).)N +576 2631(7.)N +776(R.)X +891(A.)X +1011(Finkel)X +1284(and)X +1450(J.)X +1538(P.)X +1642(Fishburn,)X +2034(``Parallelism)X +2559(in)X +2661(alpha-beta)X +3090(search,'')X +2 f +3452(Arti\256cial)X +3823(Intel-)X +776 2739(ligence)N +3 f +1079(19)X +1 f +1199(pp.)X +1343(89-106)X +1639(\(1982\).)X +576 2880(8.)N +776(T.)X +903(A.)X +1040(Marsland)X +1448(and)X +1632(M.)X +1786(Campbell,)X +2230(``Parallel)X +2634(Search)X +2941(of)X +3066(Strongly)X +3442(Ordered)X +3802(Game)X +776 2988(Trees,'')N +2 f +1102(Computing)X +1553(Surveys)X +3 f +1876(14)X +1 f +(\(4\))S +2108(pp.)X +2252(533-551)X +2596(\(December)X +3048(1982\).)X + +22 p +%%Trailer +xt + +xs diff --git a/parallel/acm.ps b/parallel/acm.ps new file mode 100755 index 0000000..f87e7b1 --- /dev/null +++ b/parallel/acm.ps @@ -0,0 +1,12754 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: acm.dvi +%%Pages: 8 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips -f acm.dvi +%DVIPSParameters: dpi=600, comments removed +%DVIPSSource: TeX output 1995.12.14:1155 +%%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 +%%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 40258437 52099154 1000 600 600 (acm.dvi) +@start /Fa 47 123 df<3C007E00FF00FF00FF80FF807F803D80018001800180018003 +0003000300070006000E000C0018003800700020000917788718>44 +DI<3C7EFFFFFFFF7E3C0808788718>I<0000 +0060000000000000F0000000000000F0000000000000F0000000000001F8000000000001 +F8000000000001F8000000000003FC000000000003FC000000000007FE000000000006FE +000000000006FE00000000000EFF00000000000C7F00000000000C7F0000000000187F80 +00000000183F8000000000183F8000000000301FC000000000301FC000000000701FE000 +000000600FE000000000600FE000000000C00FF000000000C007F000000000C007F00000 +00018003F8000000018003F8000000018003F8000000030001FC000000030001FC000000 +070001FE000000060000FE000000060000FE0000000FFFFFFF0000000FFFFFFF0000000F +FFFFFF0000001800003F8000001800003F8000001800003F8000003000001FC000003000 +001FC000007000001FE000006000000FE000006000000FE00000C000000FF00000C00000 +07F00001C0000007F00001C0000003F80003E0000003F8000FF000000FFC00FFFE0000FF +FFF0FFFE0000FFFFF0FFFE0000FFFFF034367CB53D>65 DI<000003FF00010000 +1FFFE0030000FFFFF8070003FF807C070007F8000E0F001FE000031F003F800001BF007F +000000FF00FE0000007F01FC0000003F03F80000003F07F00000001F07E00000001F0FE0 +0000000F1FC00000000F1FC0000000073FC0000000073F80000000073F80000000037F80 +000000037F80000000037F0000000003FF0000000000FF0000000000FF0000000000FF00 +00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00 +00000000FF00000000007F00000000007F80000000037F80000000033F80000000033F80 +000000033FC0000000031FC0000000061FC0000000060FE00000000607E00000000C07F0 +0000000C03F80000001801FC0000003800FE00000030007F00000060003F800000C0001F +E00003800007F8000F000003FF803E000000FFFFF80000001FFFE000000003FF00003037 +7BB43B>IIII<000003FE00020000003FFFC006 +000000FFFFF00E000003FF00780E00000FF8001E1E00001FE000073E00003F800003FE00 +007F000001FE0000FC000000FE0001F80000007E0003F80000007E0007F00000003E000F +E00000001E000FE00000001E001FC00000001E001FC00000000E003FC00000000E003F80 +0000000E003F8000000006007F8000000006007F8000000006007F000000000600FF0000 +00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000 +000000FF000000000000FF000000000000FF000000000000FF000000000000FF000003FF +FFF07F000003FFFFF07F800003FFFFF07F80000001FF003F80000000FE003F80000000FE +003FC0000000FE001FC0000000FE001FC0000000FE000FE0000000FE000FE0000000FE00 +07F0000000FE0003F8000000FE0001FC000000FE0000FC000000FE00007F000001FE0000 +3F800003BE00001FE000073E00000FF8000E1E000003FF007C06000000FFFFF802000000 +3FFFE00000000003FF00000034377BB440>III<003FFFFF80003FFFFF80003FFFFF8000001FF00000000FE00000000FE00000000F +E00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0 +0000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000 +00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000 +000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000 +0FE00000000FE00000000FE0001C000FE0007F000FE000FF800FE000FF800FE000FF800F +E000FF800FE000FF801FC000FF001FC0007C003F800070003F800038007F00001C00FC00 +000F81F8000003FFE00000007F00000021357CB22A>IIIII<000007FE00000000003FFFC000000001FC03 +F800000007E0007E0000000FC0003F0000003F00000FC000007E000007E00000FC000003 +F00001F8000001F80003F8000001FC0003F0000000FC0007E00000007E000FE00000007F +000FC00000003F001FC00000003F801FC00000003F803F800000001FC03F800000001FC0 +7F800000001FE07F800000001FE07F000000000FE07F000000000FE0FF000000000FF0FF +000000000FF0FF000000000FF0FF000000000FF0FF000000000FF0FF000000000FF0FF00 +0000000FF0FF000000000FF0FF000000000FF0FF000000000FF0FF000000000FF07F0000 +00000FE07F800000001FE07F800000001FE07F800000001FE03F800000001FC03FC00000 +003FC01FC00000003F801FC00000003F800FE00000007F000FE00000007F0007F0000000 +FE0003F0000000FC0003F8000001FC0001FC000003F80000FC000003F000007E000007E0 +00003F80001FC000000FC0003F00000007F000FE00000001FC03F8000000003FFFC00000 +000007FE00000034377BB43F>II82 D<001FF00080007FFE018001FFFF83 +8003F00FC38007C001E7800F00007F801E00003F803C00001F803C00000F807800000F80 +7800000780F800000380F800000380F800000380F800000380FC00000180FC00000180FE +000001807E000000007F800000007FC00000003FF80000003FFF8000001FFFF800000FFF +FF800007FFFFE00003FFFFF80000FFFFFC00003FFFFE000003FFFF0000003FFF00000003 +FF800000007F800000003FC00000001FC00000000FE000000007E0C0000007E0C0000003 +E0C0000003E0C0000003E0C0000003E0E0000003E0E0000003C0F0000003C0F0000007C0 +F800000780FC00000F80FE00000F00FF80001E00F3E0007C00E1FC01F800E07FFFF000C0 +1FFFC0008003FE000023377BB42E>I<7FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF +807F8003F8007F807C0003F8000F80780003F8000780700003F8000380700003F8000380 +600003F8000180E00003F80001C0E00003F80001C0E00003F80001C0C00003F80000C0C0 +0003F80000C0C00003F80000C0C00003F80000C0C00003F80000C0C00003F80000C00000 +03F8000000000003F8000000000003F8000000000003F8000000000003F8000000000003 +F8000000000003F8000000000003F8000000000003F8000000000003F8000000000003F8 +000000000003F8000000000003F8000000000003F8000000000003F8000000000003F800 +0000000003F8000000000003F8000000000003F8000000000003F8000000000003F80000 +00000003F8000000000003F8000000000003F8000000000003F8000000000003F8000000 +000003F8000000000003F8000000000003F8000000000007FC000000001FFFFFFF000000 +1FFFFFFF0000001FFFFFFF000032337CB23B>I86 DI< +000018000000003C000000003C000000003C000000007E000000007E00000000FF000000 +00FF00000000FF000000019F800000019F800000039FC00000030FC00000030FC0000006 +0FE000000607E000000607E000000C03F000000C03F000001C03F800001801F800001801 +F800003000FC00003000FC00007000FE00007FFFFE00007FFFFE0000C0003F0000C0003F +0001C0003F800180001F800180001F800380001FC00300000FC00780000FE00F80000FE0 +1FC0001FF0FFF000FFFFFFF000FFFF28277EA62E>97 DI<0000FF00100007FFE030001FC07870007E001CF000F80007F001F00003F003E0 +0001F007C00001F00FC00000F01F800000F01F800000703F000000703F000000707F0000 +00307E000000307E00000030FE00000000FE00000000FE00000000FE00000000FE000000 +00FE00000000FE00000000FE000000007E000000007E000000307F000000303F00000030 +3F000000301F800000601F800000600FC000006007C00000C003E000018001F000038000 +F8000700007E000E00001FC078000007FFE0000000FF800024287DA62C>IIII<0000FF00100007FFE030001FC07870007E001CF000F80007F001 +F00003F003E00001F007C00001F00FC00000F01F800000F01F800000703F000000703F00 +0000707F000000307E000000307E00000030FE00000000FE00000000FE00000000FE0000 +0000FE00000000FE00000000FE0001FFFFFE0001FFFF7E000007F87E000003F07F000003 +F03F000003F03F000003F01F800003F01F800003F00FC00003F007C00003F003E00003F0 +01F00007F000FC0007F0007E000CF0001FC038700007FFF0100000FF800028287DA630> +III107 DIII<0001FF0000000FFFE0 +00003F01F800007C007C0001F8003F0003E0000F8007E0000FC00FC00007E00F800003E0 +1F800003F03F000001F83F000001F87F000001FC7F000001FC7E000000FC7E000000FCFE +000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE00 +0000FEFE000000FE7F000001FC7F000001FC7F000001FC3F000001F83F800003F81F8000 +03F01FC00007F00FC00007E007E0000FC003F0001F8001F8003F0000FC007E00003F01F8 +00000FFFE0000001FF000027287DA62F>II114 D<00FE010003FFC3000F01E7001E +007F0038001F0038000F0070000F0070000700F0000700F0000700F0000300F8000300F8 +000300FC0000007F0000007FE000003FFE00003FFFE0001FFFF80007FFFC0003FFFE0000 +7FFF000007FF0000007F8000001F8000000FC0000007C0C00007C0C00003C0C00003C0C0 +0003C0E00003C0E0000380F0000780F0000700FC000E00FE001E00E7C07800C1FFF00080 +3FC0001A287DA622>I<7FFFFFFFF87FFFFFFFF87E00FC01F87800FC00787000FC003860 +00FC00186000FC0018E000FC001CC000FC000CC000FC000CC000FC000CC000FC000CC000 +FC000C0000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC +00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00 +000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000 +0000FC00000001FE0000007FFFF800007FFFF80026267EA52C>IIII121 D<3FFFFFFC3FFFFFFC3FC001FC3F0003F83C00 +07F0380007F038000FE070001FC070001FC070003F8060007F0060007F006000FE000001 +FC000001FC000003F8000007F0000007F000000FE000001FC000003F8000003F8000007F +000000FE000C00FE000C01FC000C03F8000C03F8000C07F0001C0FE0001C0FE000181FC0 +00383F8000383F8000787F0001F8FE0007F8FFFFFFF8FFFFFFF81E267DA526>I +E /Fb 8 118 df68 D<01FF838007FFF7801FFFFF803F007F807C001F807C000F80 +F8000F80F8000780FC000780FE000000FF8000007FFC00007FFFE0003FFFFC001FFFFE00 +07FFFF8000FFFFC00003FFC000001FE000000FE0000007E0F00003E0F00003E0F00003E0 +F80007C0FC000FC0FF001F80FFFFFF00FFFFFC00E1FFE0001B1E7C9C23>83 +D<00007FC000007FC000007FC000000FC000000FC000000FC000000FC000000FC000000F +C000000FC000000FC000FF8FC007FFFFC01FFFFFC03F807FC07F001FC07E000FC0FC000F +C0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC07E000FC07F003FC03F80FFC01FFFFF +F807FFEFF801FF0FF81D1D7D9C23>100 D<00FF8007FFE01FFFF83F80FC7E007C7E003E +FC001EFFFFFEFFFFFEFFFFFEFC0000FE00007E001E7F003E3FC07C0FFFF803FFF000FF80 +17127D911D>I104 D112 +D<03C00003C00003C00007C00007C0000FC0000FC0003FC000FFFFC0FFFFC0FFFFC00FC0 +000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC1E00FC1E00FC1E00FE3E007FF +C003FF8000FC00131A7E9919>116 DI E /Fc 1 +124 df123 D +E /Fd 1 106 df<0038007C007C00780070000000000000000000000000000007801FC0 +38E030E060F0C1E0C1E0C1E003C003C003C0078007800F000F040F061E0C1E0C1E181C18 +1E700FE007800F237DA116>105 D E /Fe 6 118 df<0003FF8000001FFFF000007FFFFC +0001FF83FE0003FE007F8007FC003F800FF8003FC01FF8001FE01FF0001FE03FF0000FF0 +3FF0000FF07FE0000FF07FE0000FF87FE00007F8FFE00007F8FFE00007F8FFFFFFFFF8FF +FFFFFFF8FFFFFFFFF8FFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE0 +0000007FE00000003FF00000003FF00000781FF00000780FF80000F80FFC0000F007FC00 +03F001FF000FE000FFC07FC0007FFFFF00000FFFFC000001FFE00025257DA42C>101 +D<00FE007FC000FFFE03FFF800FFFE0FFFFE00FFFE1F03FF00FFFE3C01FF8007FE7801FF +8003FEF000FF8003FFE000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FF +C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF +C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF +C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF +C003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFF +FFFFFFFC3FFFFF30257DA435>110 D<00FE03F000FFFE0FFE00FFFE3FFF00FFFE7C7F80 +FFFEF8FFC007FEF0FFC003FFE0FFC003FFC0FFC003FFC0FFC003FF807F8003FF803F0003 +FF800C0003FF80000003FF00000003FF00000003FF00000003FF00000003FF00000003FF +00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 +000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000 +00FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE000022257EA427>114 +D<003FF03803FFFEF80FFFFFF81FC00FF83F0003F87E0001F87C0000F8FC0000F8FC0000 +78FE000078FF000078FF800000FFFC0000FFFFE0007FFFFC007FFFFF803FFFFFC01FFFFF +F00FFFFFF803FFFFF800FFFFFC001FFFFC00007FFE000007FEF00001FEF00000FEF80000 +FEF800007EFC00007EFC00007CFE0000FCFF0000F8FF8001F8FFF007F0FFFFFFC0F8FFFF +00E01FF8001F257DA426>I<000F0000000F0000000F0000000F0000000F0000001F0000 +001F0000001F0000001F0000003F0000003F0000007F000000FF000000FF000001FF0000 +07FF00001FFFFFE0FFFFFFE0FFFFFFE0FFFFFFE003FF000003FF000003FF000003FF0000 +03FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF0000 +03FF000003FF000003FF000003FF000003FF000003FF007803FF007803FF007803FF0078 +03FF007803FF007803FF007803FF007803FF00F801FF80F001FF81F000FFC3E0003FFFC0 +001FFF800003FE001D357EB425>I<00FF00003FC0FFFF003FFFC0FFFF003FFFC0FFFF00 +3FFFC0FFFF003FFFC007FF0001FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 +00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 +00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 +00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00 +01FFC003FF0001FFC003FF0003FFC003FF0003FFC001FF0007FFC001FF800FFFE000FFC0 +3EFFFF007FFFFCFFFF001FFFF0FFFF0003FF80FFFF30257DA435>I +E /Ff 4 112 df<007FFFFFFFF00000007FFFFFFFFE0000007FFFFFFFFF80000000FFC0 +00FFC00000007F80001FE00000007F800007F0000000FF800003F8000000FF000001FC00 +0000FF000000FE000000FF000000FF000000FF0000007F000000FF0000003F800001FF00 +00003F800001FE0000003F800001FE0000003FC00001FE0000001FC00001FE0000001FC0 +0001FE0000001FE00003FE0000001FE00003FC0000001FE00003FC0000001FE00003FC00 +00001FE00003FC0000001FE00003FC0000001FE00007FC0000001FE00007F80000003FE0 +0007F80000003FE00007F80000003FE00007F80000003FE00007F80000003FE0000FF800 +00003FC0000FF00000007FC0000FF00000007FC0000FF00000007FC0000FF00000007F80 +000FF00000007F80001FF0000000FF80001FE0000000FF00001FE0000000FF00001FE000 +0001FE00001FE0000001FE00001FE0000003FC00003FE0000003F800003FC0000007F800 +003FC0000007F000003FC000000FE000003FC000001FC000003FC000003FC000007FC000 +007F8000007F800000FE0000007F800001FC0000007F800007F80000007F80001FF00000 +01FF8000FFC00000FFFFFFFFFF000000FFFFFFFFFC000000FFFFFFFFC00000003B397DB8 +3F>68 D<00007F00000003FFE000000F81F000003E00FC00007C007C0001F8003E0003F0 +003F0007F0001F0007E0001F000FC0001F801FC0001F801F80001F803F80001F803F8000 +1F807F00001F807F00001F807F00001F80FFFFFFFF00FFFFFFFF00FE00000000FE000000 +00FE00000000FE00000000FE00000000FE00000000FC00000000FE00000000FE00000000 +7E00000E007E00000E007E00001C003F000018001F000038001F800070000FC001E00007 +E003800001F01F0000007FFC0000001FE0000021277BA525>101 +D<000FC03FC00003FFC0FFF00007FFC3C0F80007FFCF007C00003FDC007E00001FB8007E +00001FF0003E00001FE0003F00001FC0003F00001FC0007F00003F80007E00003F80007E +00003F00007E00003F00007E00003F00007E00003F0000FE00007F0000FE00007E0000FC +00007E0000FC00007E0000FC00007E0000FC00007E0001FC0000FE0001FC0000FC0001F8 +0000FC0001F80000FC0001F80000FC0001F80000FC0003F80001FC0003F80001F80003F0 +0001F80003F00001F80003F00001F80003F00003F80007F000FFFFE1FFFFC0FFFFE1FFFF +C0FFFFC1FFFF802A257EA42E>110 D<00003FC0000001FFF8000007C07C00001F001F00 +007C000F8000F80007C001F00007C003E00003E007E00003E007C00001F00F800001F01F +800001F81F800001F83F000001F83F000001F87F000001F87F000001F87E000003F8FE00 +0003F8FE000003F8FE000003F8FE000003F8FE000003F0FE000007F0FC000007F0FC0000 +07E0FC00000FE0FC00000FC0FE00000FC07E00001F807E00001F003E00003E003F00007C +001F0000F8000F8001F00007C007E00001F81F800000FFFE0000001FF0000025277BA52A +>I E /Fg 5 119 df<00003FC000000000FFF800000007E07C0000000F801F0000003F00 +1F800C007E000F800C00FC0007C01C01F80007E01803F00007E01807E00003E0380FE000 +03F0300FC00003F0301FC00003F0703F800003F0603F800003F0E07F800003F0C07F0000 +03F1C07F000003F1807F000003F380FF000003F300FE000003F700FE000003FE00FE0000 +03FC00FE000003FC00FC000003F800FC000003F000FC000003F000FC000003F000FC0000 +03F0007E000007F0007E00000FF0003E00001DF8183F000079F8181F0000E1F8380F8007 +C0F83007E03F007CF001FFF8003FC0003FC0000F802E267DA435>11 +D<00000001FC0000000007FF800000001E07C00000007801E0000000E001F0000001C000 +F80000038000F80000070000F800000E0000FC00001C0000FC0000380000FC0000300000 +FC0000700001FC0000600001F80000E00001F80000C00001F80001C00003F80001800003 +F00003800003F00003000007E00003000007C0000700000FC0000600001F80000600FFBF +00000E01FFFC00000C0381F800000C03FFFE00000C00FF1F00001C00001F80001800000F +80001800000FC0001800000FC0003800000FC00030000007E00030000007E0003000000F +E0007000000FE0006000000FE0006000000FE0006000000FE000E000001FE000C000001F +C000C000001FC000C000001FC001C000003FC001C000003F8001C000003F8001C000007F +0003C000007F0003C00000FE0003C00000FC0003E00001F80007600003F00006700007E0 +000638000FC000061C001F80000E0E003F00000C0780FC00000C01FFF000000C007F8000 +001C00000000001800000000001800000000001800000000003800000000003000000000 +003000000000003000000000007000000000006000000000006000000000006000000000 +00E00000000000C00000000000C000000000002E4B7EBA2F>I<1C007F00FF80FF80FFC0 +FFC0FFC07FC01CC000C000C000C000C001C00180018003800300070006000E001C003800 +700060000A19798817>59 D<0003FFFFFFFF00000007FFFFFFFFE0000007FFFFFFFFF800 +000007F80007FC00000007F00000FE00000007F000007F0000000FF000003F8000000FF0 +00001FC000000FE000001FC000000FE000001FC000001FE000001FE000001FE000001FE0 +00001FC000001FE000001FC000001FE000003FC000001FE000003FC000003FC000003F80 +00003FC000003F8000003FC000007F8000007F8000007F8000007F8000007F0000007F00 +00007F000000FE000000FF000001FC000000FF000001F8000000FE000007F0000000FE00 +000FE0000001FE00003FC0000001FE0001FF00000001FFFFFFFC00000001FFFFFFE00000 +0003FC00000000000003FC00000000000003F800000000000003F800000000000007F800 +000000000007F800000000000007F000000000000007F00000000000000FF00000000000 +000FF00000000000000FE00000000000000FE00000000000001FE00000000000001FE000 +00000000001FC00000000000001FC00000000000003FC00000000000003FC00000000000 +003F800000000000003F800000000000007F800000000000007F800000000000007F0000 +0000000000FF800000000000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000 +3B397DB835>80 D<00F80003C003FE0007E0070F000FE00E0F800FF01C0F800FF0180F80 +0FF0380F8007F0300F8003F0701F8001F0601F8001F0601F8000F0E03F8000E0C03F0000 +E0C07F0000E0007E0000E0007E0000C000FE0000C000FC0000C000FC0001C001FC000180 +01F800018001F800038001F800030003F800030003F000070003F000060003F0000E0003 +F0000C0003F0001C0003F000180003F000380003F000700001F000E00001F801C00000FC +038000007E0F0000001FFE00000007F0000024267EA428>118 D +E /Fh 3 70 df<0000400001F00003F00007F80007F80007F00007F00007F00007F0000F +F0000FF0000FE0000FE0000FE0000FE0001FE0001FE0001FC0001FC0001FC0001FC0003F +C0003FC0003F80003F80003F80003F80007F80007F80007F00007F00007F00007F0000FF +0000FF0000FE0000FE0000FE0000FE0001FE0001FE0001FC0001FC0001FC0003FC0003FC +0003F80003F80003F80003F80007F80007F80007F00007F00007F00007F0000FF0000FF0 +000FE0000FE0000FE0000FE0001FE0001FE0001FC0001FC0001FC0001FC0003FC0003FC0 +003F80003F80003F80003F80007F80007F80007F00007F00007F00007F0000FF0000FF00 +00FE0000FE0000FE0000FE0000FE0000FE0000FC00007C0000155A83D60E>5 +D<10000000007C00000000FC00000000FE00000000FE00000000FE00000000FF00000000 +FF000000007F000000007F800000007F800000003F800000003FC00000003FC00000001F +C00000001FE00000001FE00000000FE00000000FF00000000FF000000007F000000007F8 +00000007F800000003F800000003FC00000003FC00000001FC00000001FE00000001FE00 +000000FE00000000FF00000000FF000000007F000000007F800000007F800000003F8000 +00003FC00000003FC00000001FC00000001FE00000001FE00000000FE00000000FF00000 +000FF000000007F000000007F800000007F800000003FC00000003FC00000001FC000000 +01FE00000001FE00000000FE00000000FF00000000FF000000007F000000007F80000000 +7F800000003F800000003FC00000003FC00000001FC00000001FE00000001FE00000000F +E00000000FF00000000FF000000007F000000007F800000007F800000003F800000003FC +00000003FC00000001FC00000001FE00000001FE00000000FE00000000FF00000000FF00 +0000007F000000007F800000007F800000003F800000003FC00000003FC00000001FC000 +00001FE00000001FE00000000FC000000007C0235A83D61C>66 D<1000007C0000FC0000 +FE0000FE0000FE0000FE0000FE0000FE0000FF0000FF00007F00007F00007F00007F0000 +7F80007F80003F80003F80003F80003F80003FC0003FC0001FC0001FC0001FC0001FC000 +1FE0001FE0000FE0000FE0000FE0000FE0000FF0000FF00007F00007F00007F00007F000 +07F80007F80003F80003F80003F80003F80003FC0003FC0001FC0001FC0001FC0001FE00 +01FE0000FE0000FE0000FE0000FE0000FF0000FF00007F00007F00007F00007F00007F80 +007F80003F80003F80003F80003F80003FC0003FC0001FC0001FC0001FC0001FC0001FE0 +001FE0000FE0000FE0000FE0000FE0000FF0000FF00007F00007F00007F00007F00007F8 +0007F80003F00001F0155A83D60E>69 D E /Fi 3 106 df<000FE00000003FF8000000 +F83E000001E01F006003C00F80C007800780C00F0007C0C01E0007C1803E0007C1803C00 +07E3007C0003E3007C0003E600F80003E600F80003EC00F80003EC00F80003F800F00003 +F000F00003E000F00003E000F00003E000F00003E00078000FE00078001DE0C03C0079F1 +801E03E0F3800FFF807F0003FC003C00231B7C992B>11 D<000000FE00000007FF800000 +1F03C000003801E000006001E00000C001F000018001F000030001F000060001F0000C00 +01F0000C0001F000180003E000380003E000300003C000300007800060000F8000601FFE +0000603FFC0000603FFC0000C01FDE0000C0000F0000C0000F0000C00007800180000780 +0180000780018000078001800007800300000F800300000F800300000F800300000F8007 +00001F000700001F000700001E000700003E000F00003C000D800078000DC000F0000CE0 +01E000187007C000183FFF0000180FFC0000180000000030000000003000000000300000 +000030000000006000000000600000000060000000006000000000C00000000024347FA8 +26>I<000E00001F00003F00003F00003E00001C00000000000000000000000000000000 +00000000000003E00007F0000C7800187C00307C00307C00607C0060F800C0F800C0F800 +01F00001F00001F00003E00003E00007C00007C00007C1800F81800F81801F03001F0300 +1F06000F0C000F1C0007F00003E00011287DA617>105 D E /Fj +37 123 df<000007FF0007FF000000007FFFC07FFFE0000003FFFFF3FFFFF000000FFE01 +FFFE01FC00001FF000FFF000FC00007FE003FFE001FE0000FFC007FFC003FE0000FF8007 +FF8003FE0001FF8007FF8007FF0001FF0007FF0003FE0001FF0007FF0003FE0001FF0003 +FF0003FE0001FF0001FF0001FC0001FF0001FF0000700001FF0001FF0000000001FF0001 +FF0000000001FF0001FF0000000001FF0001FF0000000001FF0001FF003FFF00FFFFFFFF +FFFFFFFF00FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF0001FF0001 +FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001 +FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001 +FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001 +FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001 +FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001 +FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001 +FF0001FF003FFFF83FFFF83FFFF83FFFF83FFFF83FFFF83FFFF83FFFF83FFFF83FFFF83F +FFF83FFFF845347FB34A>14 D<0000700000F00003E00007C0000F80001F80003F00003E +00007E0000FC0001F80001F80003F00003F00007F00007E0000FE0000FE0001FC0001FC0 +001FC0003F80003F80003F80007F80007F80007F80007F00007F00007F0000FF0000FF00 +00FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00 +00FF00007F00007F00007F00007F80007F80007F80003F80003F80003F80001FC0001FC0 +001FC0000FE0000FE00007E00007F00003F00003F00001F80001F80000FC00007E00003E +00003F00001F80000F800007C00003E00000F0000070144B78B722>40 +DI<0F003FC07FE0FFF0FFF0FFF0FFF0FFF0FFF07F +E03FC00F000000000000000000000000000000000000000F003FC07FE0FFF0FFF0FFF0FF +F0FFF0FFF07FE03FC00F000C217AA019>58 D<0000001F800000000000001F8000000000 +00003FC00000000000003FC00000000000007FE00000000000007FE00000000000007FE0 +000000000000FFF0000000000000FFF0000000000001FFF8000000000001FFF800000000 +0001FFF8000000000003FFFC000000000003FFFC000000000007FFFE000000000007CFFE +000000000007CFFE00000000000FCFFF00000000000F87FF00000000001F87FF80000000 +001F03FF80000000003F03FFC0000000003E01FFC0000000003E01FFC0000000007E01FF +E0000000007C00FFE000000000FC00FFF000000000F8007FF000000000F8007FF0000000 +01F8007FF800000001F0003FF800000003F0003FFC00000003E0001FFC00000003E0001F +FC00000007FFFFFFFE00000007FFFFFFFE0000000FFFFFFFFF0000000FFFFFFFFF000000 +1F800007FF8000001F000003FF8000001F000003FF8000003F000003FFC000003E000001 +FFC000007E000001FFE000007C000000FFE000007C000000FFE00000FC000000FFF00000 +F80000007FF000FFFFF0003FFFFFF0FFFFF0003FFFFFF0FFFFF0003FFFFFF0FFFFF0003F +FFFFF03C347DB343>65 DI<000000FFE0003800001FFFFE00780000FFFFFF80F8 +0003FFFFFFE1F8000FFFE00FF7F8001FFE0001FFF8007FF800007FF800FFE000003FF801 +FFC000001FF803FF8000000FF807FF00000007F80FFE00000007F80FFE00000003F81FFC +00000003F81FFC00000001F83FFC00000001F83FF800000001F87FF800000000F87FF800 +000000F87FF800000000F87FF00000000000FFF00000000000FFF00000000000FFF00000 +000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF0000000 +0000FFF00000000000FFF00000000000FFF000000000007FF000000000007FF800000000 +007FF800000000787FF800000000783FF800000000783FFC00000000781FFC00000000F8 +1FFC00000000F00FFE00000000F00FFF00000001F007FF00000003E003FF80000003E001 +FFC0000007C000FFE000000F80007FF800003F00001FFE0000FE00000FFFE007FC000003 +FFFFFFF0000000FFFFFFC00000001FFFFE0000000000FFF0000035357BB340>III<000003FF80000000007FFFFC00000001 +FFFFFF00000007FF01FFC000001FF8003FF000003FE0000FF80000FFC00007FE0001FF80 +0003FF0003FF000001FF8003FE000000FF8007FE000000FFC00FFC0000007FE00FFC0000 +007FE01FF80000003FF01FF80000003FF03FF80000003FF83FF80000003FF87FF8000000 +3FFC7FF00000001FFC7FF00000001FFC7FF00000001FFCFFF00000001FFEFFF00000001F +FEFFF00000001FFEFFF00000001FFEFFF00000001FFEFFF00000001FFEFFF00000001FFE +FFF00000001FFEFFF00000001FFEFFF00000001FFEFFF00000001FFE7FF00000001FFC7F +F00000001FFC7FF80000003FFC7FF80000003FFC3FF80000003FF83FF80000003FF83FF8 +0000003FF81FFC0000007FF01FFC0000007FF00FFE000000FFE007FE000000FFC007FF00 +0001FFC003FF000001FF8001FF800003FF0000FFC00007FE00007FF0001FFC00001FF800 +3FF0000007FF01FFC0000001FFFFFF000000007FFFFC0000000007FFC0000037357BB342 +>79 D82 +D<000FFC0070007FFF80F001FFFFE1F007FFFFFBF00FF803FFF01FE0007FF03FC0003FF0 +3F80000FF07F800007F07F000007F07F000003F0FF000001F0FF000001F0FF000001F0FF +800000F0FF800000F0FFC00000F0FFE0000000FFF80000007FFFC000007FFFFC00007FFF +FFE0003FFFFFF8001FFFFFFE001FFFFFFF000FFFFFFF8003FFFFFFC001FFFFFFE0007FFF +FFF0001FFFFFF00000FFFFF800000FFFF80000007FFC0000003FFC0000001FFC0000000F +FCF0000007FCF0000007FCF0000003FCF0000003FCF8000003FCF8000003FCF8000003F8 +FC000007F8FE000007F0FF000007F0FF80000FE0FFE0001FE0FFFE007FC0FDFFFFFF00F8 +7FFFFE00F01FFFF800E001FFC00026357BB331>I<3FFFFFFFFFFFF83FFFFFFFFFFFF83F +FFFFFFFFFFF83FFFFFFFFFFFF83FF003FF801FF87F8003FF8003FC7F0003FF8001FC7E00 +03FF8000FC7C0003FF80007C7C0003FF80007C780003FF80003C780003FF80003C780003 +FF80003C780003FF80003CF80003FF80003EF00003FF80001EF00003FF80001EF00003FF +80001EF00003FF80001E000003FF800000000003FF800000000003FF800000000003FF80 +0000000003FF800000000003FF800000000003FF800000000003FF800000000003FF8000 +00000003FF800000000003FF800000000003FF800000000003FF800000000003FF800000 +000003FF800000000003FF800000000003FF800000000003FF800000000003FF80000000 +0003FF800000000003FF800000000003FF800000000003FF800000000003FF8000000000 +03FF800000000003FF800000000003FF800000001FFFFFFFF000001FFFFFFFF000001FFF +FFFFF000001FFFFFFFF00037327DB13E>I87 D89 D<007FFE000003FFFFE00007FFFFF8000FF00FFC001FF803FF001FF801FF00 +1FF800FF801FF800FFC01FF8007FC00FF0007FC007E0007FC00180007FC00000007FC000 +007FFFC0000FFFFFC000FFFFFFC003FFF07FC00FFF007FC01FF8007FC03FF0007FC07FE0 +007FC0FFC0007FC0FF80007FC0FF80007FC0FF80007FC0FF8000FFC0FFC000FFC07FC001 +FFC07FE003FFE03FF80FBFFF0FFFFF1FFF03FFFC0FFF007FE007FF28217EA02B>97 +D<01FC00000000FFFC00000000FFFC00000000FFFC00000000FFFC000000000FFC000000 +0007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC000000 +0007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC000000 +0007FC0000000007FC07FC000007FC7FFF800007FDFFFFE00007FFF00FF80007FFC007FC +0007FF0003FE0007FE0001FF0007FC0000FF8007FC0000FF8007FC0000FFC007FC00007F +C007FC00007FC007FC00007FE007FC00007FE007FC00007FE007FC00007FE007FC00007F +E007FC00007FE007FC00007FE007FC00007FE007FC00007FE007FC00007FC007FC00007F +C007FC0000FFC007FC0000FF8007FC0000FF8007FE0001FF0007FF0003FE0007FFC007FC +0007F3F01FF80007E1FFFFE00007C07FFF800007800FF800002B347EB331>I<0007FF80 +00003FFFF00000FFFFFC0003FE01FE0007FC03FF000FF803FF001FF003FF003FE003FF00 +3FE003FF007FE001FE007FC000FC007FC0003000FFC0000000FFC0000000FFC0000000FF +C0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC00000007FC00000007FE0 +0000007FE00000003FE00007803FF00007801FF8000F800FF8001F0007FE003E0003FF80 +FC0000FFFFF800003FFFE0000007FF000021217DA027>I<00000001FC00000000FFFC00 +000000FFFC00000000FFFC00000000FFFC000000000FFC0000000007FC0000000007FC00 +00000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC00 +00000007FC0000000007FC0000000007FC0000000007FC0000000007FC000007FE07FC00 +003FFFC7FC0000FFFFF7FC0003FF01FFFC0007FC003FFC000FF8001FFC001FF0000FFC00 +3FE00007FC003FE00007FC007FE00007FC007FC00007FC007FC00007FC00FFC00007FC00 +FFC00007FC00FFC00007FC00FFC00007FC00FFC00007FC00FFC00007FC00FFC00007FC00 +FFC00007FC00FFC00007FC007FC00007FC007FC00007FC007FE00007FC003FE00007FC00 +3FE0000FFC001FF0001FFC000FF8003FFC0007FC007FFE0003FE03FFFFE000FFFFE7FFE0 +003FFF87FFE00007FC07FFE02B347DB331>I<0003FF8000003FFFF00000FFFFFC0001FF +03FE0007FC007F000FF8003F801FF0001FC01FE0001FC03FE0000FE07FE0000FE07FC000 +0FE07FC0000FF0FFC0000FF0FFC00007F0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFC00000 +00FFC0000000FFC0000000FFC00000007FC00000007FE00000003FE00000003FE00000F0 +1FF00000F00FF00001F007F80003E003FE000FC001FF807F80007FFFFF00001FFFFC0000 +03FFE00024217EA029>I<00000000F8000FFC07FE007FFF9FFE01FFFFFF7F07FC0FFC7F +0FF003FC7F1FF003FE7F1FE001FE3E3FE001FF1C3FE001FF003FE001FF003FE001FF003F +E001FF003FE001FF003FE001FF001FE001FE001FF003FE000FF003FC0007FC0FF80007FF +FFE0000F7FFF80000F0FFC00001F000000001F000000001F000000001F800000001FC000 +00001FFFFFF0001FFFFFFE000FFFFFFF800FFFFFFFE007FFFFFFF003FFFFFFF807FFFFFF +FC1FFFFFFFFC3F80001FFC7F000003FEFF000001FEFE000000FEFE000000FEFE000000FE +FE000000FEFF000001FE7F800003FC3FC00007F81FE0000FF00FFC007FE003FFFFFF8000 +FFFFFE00000FFFE00028327EA12C>103 D<01FC00000000FFFC00000000FFFC00000000 +FFFC00000000FFFC000000000FFC0000000007FC0000000007FC0000000007FC00000000 +07FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC00000000 +07FC0000000007FC0000000007FC0000000007FC0000000007FC03FF000007FC0FFFC000 +07FC3FFFF00007FCFC0FF80007FDE007FC0007FFC007FC0007FF8003FE0007FF0003FE00 +07FF0003FE0007FE0003FE0007FE0003FE0007FC0003FE0007FC0003FE0007FC0003FE00 +07FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE00 +07FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE00 +07FC0003FE0007FC0003FE0007FC0003FE00FFFFE07FFFF0FFFFE07FFFF0FFFFE07FFFF0 +FFFFE07FFFF02C347DB331>I<03F00007F8000FFC001FFE001FFE001FFE001FFE001FFE +001FFE000FFC0007F80003F0000000000000000000000000000000000000000000000000 +0001FC00FFFC00FFFC00FFFC00FFFC000FFC0007FC0007FC0007FC0007FC0007FC0007FC +0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC +0007FC0007FC0007FC0007FC0007FC00FFFFC0FFFFC0FFFFC0FFFFC012357DB418>I<01 +FC00000000FFFC00000000FFFC00000000FFFC00000000FFFC000000000FFC0000000007 +FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007 +FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007 +FC0000000007FC007FFF0007FC007FFF0007FC007FFF0007FC007FFF0007FC001FC00007 +FC003F800007FC007E000007FC00FC000007FC03F8000007FC07E0000007FC0FC0000007 +FC3F80000007FC7F00000007FCFF80000007FFFF80000007FFFFC0000007FFFFE0000007 +FFBFF0000007FF3FF8000007FC1FFC000007F80FFC000007F807FE000007F803FF000007 +F801FF800007F801FFC00007F800FFC00007F8007FE00007F8003FF00007F8001FF800FF +FFC07FFFC0FFFFC07FFFC0FFFFC07FFFC0FFFFC07FFFC02A347DB32F>107 +D<01FC00FFFC00FFFC00FFFC00FFFC000FFC0007FC0007FC0007FC0007FC0007FC0007FC +0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC +0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC +0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC +00FFFFE0FFFFE0FFFFE0FFFFE013347DB318>I<03F803FE0003FE0000FFF81FFFC01FFF +C000FFF87FFFE07FFFE000FFF8F81FF0F81FF000FFF9E00FF9E00FF8000FFBC00FFBC00F +F80007FF8007FF8007FC0007FF0007FF0007FC0007FE0007FE0007FC0007FE0007FE0007 +FC0007FE0007FE0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007 +FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007 +FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007 +FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007 +FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC0007FC00FFFFE0FFFFE0FF +FFE0FFFFE0FFFFE0FFFFE0FFFFE0FFFFE0FFFFE0FFFFE0FFFFE0FFFFE043217CA04A>I< +01F803FF0000FFF80FFFC000FFF83FFFF000FFF8FC0FF800FFF9E007FC000FFBC007FC00 +07FF8003FE0007FF0003FE0007FF0003FE0007FE0003FE0007FE0003FE0007FC0003FE00 +07FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE00 +07FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE00 +07FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE00FFFFE07FFFF0 +FFFFE07FFFF0FFFFE07FFFF0FFFFE07FFFF02C217DA031>I<0003FF8000001FFFF00000 +FFFFFE0001FF01FF0007FC007FC00FF0001FE01FF0001FF01FE0000FF03FE0000FF83FC0 +0007F87FC00007FC7FC00007FC7FC00007FCFFC00007FEFFC00007FEFFC00007FEFFC000 +07FEFFC00007FEFFC00007FEFFC00007FEFFC00007FE7FC00007FC7FC00007FC7FE0000F +FC3FE0000FF81FE0000FF01FF0001FF00FF8003FE007FC007FC001FF01FF0000FFFFFE00 +003FFFF8000003FF800027217EA02C>I<01FC07FC0000FFFC7FFF8000FFFDFFFFE000FF +FFF01FF800FFFFC007FC0007FF0003FE0007FE0003FF0007FC0001FF8007FC0001FF8007 +FC0000FFC007FC0000FFC007FC0000FFC007FC00007FE007FC00007FE007FC00007FE007 +FC00007FE007FC00007FE007FC00007FE007FC00007FE007FC00007FE007FC00007FE007 +FC0000FFC007FC0000FFC007FC0000FFC007FC0001FF8007FC0001FF8007FE0003FF0007 +FF0007FE0007FFC00FFC0007FFF03FF80007FDFFFFE00007FC7FFF800007FC0FF8000007 +FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007 +FC0000000007FC0000000007FC0000000007FC0000000007FC00000000FFFFE0000000FF +FFE0000000FFFFE0000000FFFFE00000002B307EA031>I<01F81F80FFF87FF0FFF8FFF8 +FFF9E3FCFFFBC7FE0FFF87FE07FF07FE07FF07FE07FE07FE07FE03FC07FE01F807FE0060 +07FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC0000 +07FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC0000FFFFF000 +FFFFF000FFFFF000FFFFF0001F217EA024>114 D<00FFE1C007FFFFC00FFFFFC03F803F +C07E000FC07E0007C0FC0007C0FC0003C0FE0003C0FE0003C0FF800000FFFC0000FFFFE0 +007FFFFC007FFFFE003FFFFF800FFFFFC007FFFFE000FFFFE0000FFFF000007FF000000F +F0F00007F0F00003F0F80003F0F80003F0FC0003E0FE0007E0FF000FC0FFC01F80FFFFFF +00F9FFFC00E03FE0001C217DA023>I<003C0000003C0000003C0000003C0000003C0000 +007C0000007C0000007C000000FC000000FC000001FC000001FC000003FC000007FC0000 +1FFFFF80FFFFFF80FFFFFF80FFFFFF8007FC000007FC000007FC000007FC000007FC0000 +07FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC0000 +07FC000007FC000007FC03C007FC03C007FC03C007FC03C007FC03C007FC03C007FC03C0 +07FE078003FE078001FF0F0000FFFE00003FFC00000FF0001A2F7EAE22>I<01FC0000FE +00FFFC007FFE00FFFC007FFE00FFFC007FFE00FFFC007FFE000FFC0007FE0007FC0003FE +0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE +0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE +0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0003FE0007FC0007FE +0007FC0007FE0007FC000FFE0007FC001FFE0003FE003FFF0001FF00FBFFF000FFFFF3FF +F0003FFFC3FFF00007FE03FFF02C217DA031>III121 +D<1FFFFFFF1FFFFFFF1FFFFFFF1FE007FE1F800FFC1F001FFC1E003FF83E003FF03E007F +E03C00FFE03C01FFC03C01FF803C03FF000007FF00000FFE00001FFC00001FF800003FF8 +00007FF00F00FFE00F00FFC00F01FF800F03FF800F07FF001F07FE001F0FFC001E1FFC00 +3E3FF8007E3FF000FE7FE003FEFFFFFFFEFFFFFFFEFFFFFFFE20217EA027>I +E /Fk 4 118 df<007FFFFFE000007FFFFFF8000003F0007E000003E0003F000003E000 +1F800007E0000F800007E0000FC00007C0000FC00007C0000FC0000FC0000FC0000FC000 +0F80000F80001F80000F80001F00001F80003F00001F80007E00001F0000FC00001F0001 +F800003F000FE000003FFFFF8000003FFFFF8000003E0007E000007E0001F000007E0000 +F800007C0000FC00007C00007C0000FC00007E0000FC00007E0000F800007E0000F80000 +7E0001F800007E0001F80000FC0001F00000FC0001F00001F80003F00001F00003F00003 +F00003E0000FE00003E0001F800007E0007F0000FFFFFFFC0000FFFFFFE000002A287AA7 +30>66 D<0001F0000007FC00001E0EE0003C07E0007807E000F007E001E003E001E003E0 +03E007C003C007C007C007C007C007C00F800F800F800F800F800F800F800F800F001F00 +0F001F000F001F000F003F000F003E0007807E000780FE0003C3FE0001FF7C00007C7C00 +00007C0000007C000000F8000000F8000000F8003001F0007801F000F803E000F807C000 +F01F80007FFE00001FF000001B267C9920>103 D<001FC0007FF000F07801C03C03C03C +07807C07807C0780780F80300FE00007FF0007FF8007FFC003FFE000FFF0001FF00003F0 +3801F07800F07C00F0F801E0F001E07003C07003803C0F001FFE0007F000161B7B991C> +115 D<03E0000007F000700C7800F8187C00F8387C01F0307C01F0707C01F070F801F0E0 +F803E0E0F803E001F003E001F003E001F007C003E007C003E007C003E007C007C00F8007 +C00F8707C00F8707C00F8707C01F0E07C01F0E07C03F0E03C07F1C01E0EF1800FF87F800 +3F01E0201B7B9925>117 D E /Fl 16 118 df<1F003F807FC0FFE0FFE0FFE0FFE0FFE0 +7FC03F801F000B0B7A8A17>46 D68 D<001FF8038000FFFF078003FFFFCF8007 +FFFFFF801FF00FFF801FC001FF803F80007F807F00003F807E00001F807E00001F80FE00 +000F80FE00000F80FE00000780FF00000780FF80000780FFC0000000FFF00000007FFF00 +00007FFFF000007FFFFF80003FFFFFE0001FFFFFF8000FFFFFFE0007FFFFFF0003FFFFFF +8000FFFFFFC0001FFFFFC00001FFFFE000000FFFE0000000FFF00000003FF00000001FF0 +0000000FF0F000000FF0F0000007F0F0000007F0F0000007F0F8000007F0F8000007E0FC +00000FE0FE00000FC0FF00001FC0FFC0003F80FFFC00FF00FFFFFFFE00F9FFFFFC00F03F +FFF000E003FF800024307CAE2D>83 D<007FF8000003FFFF00000FFFFFC0001FE01FF000 +1FF007F8001FF003FC001FF003FC001FF001FE000FE001FE0007C001FE00000001FE0000 +0001FE000000FFFE00003FFFFE0001FFFFFE0007FFC1FE001FFC01FE003FE001FE007FC0 +01FE00FF8001FE00FF0001FE00FF0001FE00FF0001FE00FF0003FE00FF8003FE007FC007 +FF003FF03FFFF81FFFFEFFF807FFF87FF800FFC01FF8251E7E9D28>97 +D<0000000FC0000003FFC0000003FFC0000003FFC0000003FFC00000003FC00000003FC0 +0000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000 +00003FC00000003FC0000FF83FC0007FFF3FC001FFFFFFC007FC07FFC00FF001FFC01FE0 +007FC03FE0003FC03FC0003FC07FC0003FC07F80003FC07F80003FC0FF80003FC0FF8000 +3FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003F +C07F80003FC07FC0003FC03FC0003FC03FC0007FC01FE000FFC00FF003FFC007FC0FFFFC +01FFFFBFFC00FFFE3FFC001FF03FFC262E7DAD2D>100 D<000FFC00007FFF8001FFFFE0 +07FC0FF00FF003F81FE001FC1FE000FC3FC000FE7FC0007E7F80007E7F80007FFF80007F +FF80007FFFFFFFFFFFFFFFFFFFFFFFFFFF800000FF800000FF8000007F8000007FC00000 +7FC000003FC0000F1FE0000F0FF0001F07F8007E03FE01FC01FFFFF8007FFFE00007FF00 +201E7E9D25>I<0000FF800007FFE0001FFFF0007FC7F000FF0FF801FE0FF801FE0FF803 +FC0FF803FC0FF803FC07F003FC008003FC000003FC000003FC000003FC000003FC0000FF +FFFC00FFFFFC00FFFFFC00FFFFFC0003FC000003FC000003FC000003FC000003FC000003 +FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003 +FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00003FFFE0003F +FFE0003FFFE0003FFFE0001D2E7EAD19>I<03F0000000FFF0000000FFF0000000FFF000 +0000FFF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000 +000FF00000000FF00000000FF00000000FF00000000FF00000000FF01FF0000FF07FFC00 +0FF1FFFF000FF7E0FF800FFF807F800FFE007FC00FFC003FC00FFC003FC00FF8003FC00F +F8003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0 +003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF000 +3FC00FF0003FC00FF0003FC0FFFF03FFFCFFFF03FFFCFFFF03FFFCFFFF03FFFC262E7CAD +2D>104 D<07C00FE01FF03FF83FF83FF83FF83FF81FF00FE007C0000000000000000000 +00000003F0FFF0FFF0FFF0FFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F +F00FF00FF00FF00FF00FF00FF00FF00FF00FF0FFFFFFFFFFFFFFFF102F7CAE17>I<03F0 +000000FFF0000000FFF0000000FFF0000000FFF00000000FF00000000FF00000000FF000 +00000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000 +000FF00000000FF003FFF00FF003FFF00FF003FFF00FF003FFF00FF000FC000FF003F800 +0FF007F0000FF00FC0000FF03F80000FF07F00000FF0FC00000FF1F800000FF7FC00000F +FFFE00000FFFFF00000FFFFF00000FFEFF80000FF87FC0000FF03FE0000FE01FF0000FE0 +0FF8000FE00FF8000FE007FC000FE003FE000FE001FF000FE000FF80FFFE03FFFCFFFE03 +FFFCFFFE03FFFCFFFE03FFFC262E7DAD2B>107 D<03F0FFF0FFF0FFF0FFF00FF00FF00F +F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F +F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0FFFFFF +FFFFFFFFFF102E7CAD17>I<03F03FE000FFF1FFFC00FFF7FFFF00FFFFC0FF80FFFE007F +C00FFC003FE00FF8001FF00FF0001FF00FF0000FF80FF0000FF80FF0000FFC0FF00007FC +0FF00007FC0FF00007FC0FF00007FC0FF00007FC0FF00007FC0FF00007FC0FF00007FC0F +F0000FF80FF0000FF80FF0000FF80FF0001FF00FF8001FF00FFC003FE00FFE007FC00FFF +81FF800FF7FFFE000FF1FFF8000FF07FC0000FF00000000FF00000000FF00000000FF000 +00000FF00000000FF00000000FF00000000FF00000000FF0000000FFFF000000FFFF0000 +00FFFF000000FFFF000000262B7D9D2D>112 D<07E07E00FFE1FF80FFE3FFE0FFE78FE0 +FFEF1FF00FFE1FF00FFC1FF00FFC1FF00FF80FE00FF807C00FF800000FF000000FF00000 +0FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000 +0FF000000FF000000FF000000FF00000FFFF8000FFFF8000FFFF8000FFFF80001C1E7D9D +22>114 D<01FF8E0007FFFE001FFFFE003F00FE007C007E0078003E00F8001E00F8001E +00FC001E00FF000000FFF00000FFFF80007FFFE0003FFFF8001FFFFE000FFFFE0003FFFF +00003FFF800000FF8000003F80F0001F80F0000F80F8000F80F8000F80FC001F00FE001F +00FF807E00FFFFFC00FBFFF000E0FF8000191E7D9D20>I<003C0000003C0000003C0000 +003C0000007C0000007C0000007C000000FC000000FC000001FC000003FC000007FC0000 +1FFFFF00FFFFFF00FFFFFF00FFFFFF0003FC000003FC000003FC000003FC000003FC0000 +03FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000 +03FC03C003FC03C003FC03C003FC03C003FC03C003FC03C003FC07C001FE078001FF0F80 +00FFFF00003FFC00000FF0001A2A7FA920>I<03F0000FC0FFF003FFC0FFF003FFC0FFF0 +03FFC0FFF003FFC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF000 +3FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0003F +C00FF0003FC00FF0003FC00FF0003FC00FF0003FC00FF0007FC00FF0007FC00FF000FFC0 +07F001FFC007F807FFFC03FFFFBFFC00FFFE3FFC003FF03FFC261E7C9D2D>I +E /Fm 12 96 df0 +D<007F800001FFE00007FFF8000FFFFC001FFFFE003FFFFF003FFFFF007FFFFF807FFFFF +80FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFF +C07FFFFF807FFFFF803FFFFF003FFFFF001FFFFE000FFFFC0007FFF80001FFE000007F80 +001A1B7C9D23>15 D17 +D<0000000001C00000000007C0000000001FC0000000007F0000000001FC0000000007F0 +000000001FC0000000007F0000000001FC0000000007F0000000001FC0000000007F0000 +000001FC0000000007F0000000001FC0000000007F0000000001FC0000000007F0000000 +001FC0000000007F0000000000FC0000000000FC00000000007F00000000001FC0000000 +0007F00000000001FC00000000007F00000000001FC00000000007F00000000001FC0000 +0000007F00000000001FC00000000007F00000000001FC00000000007F00000000001FC0 +0000000007F00000000001FC00000000007F00000000001FC00000000007C00000000001 +C00000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +007FFFFFFFFF80FFFFFFFFFFC0FFFFFFFFFFC02A397AAB37>20 DI<0001C000000000000001C000000000000001C000 +000000000003C00000000000000380000000000000078000000000000007000000000000 +000F000000000000000E000000000000001E000000000000003C00000000000000780000 +0000000000F800000000000001F000000000000003C00000000000000F80000000000000 +7FFFFFFFFFFFFFFCFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFC0F8000000000000003C00000 +0000000001F000000000000000F80000000000000078000000000000003C000000000000 +001E000000000000000E000000000000000F000000000000000700000000000000078000 +0000000000038000000000000003C000000000000001C000000000000001C00000000000 +0001C000000000003E237CA147>32 D<003F80000007F00000FFF000003FFC0003FFFC00 +00FFFF0007FFFF0001F807800F80FF8007C001C01E003FC00F8000E03C001FE01F000070 +38000FF03E000030700007F83C000038700003FC78000018600001FEF0000018E00000FF +E000001CC000007FE000000CC000007FC000000CC000003FC000000CC000001FE000000C +C000000FF000000CC000000FF800000CC000001FF800000CE000001FFC00001C6000003D +FE00001860000078FF000038700000F07F800038300001F03FC00070380003E01FE000F0 +1C0007C00FF001E00E000F8007FC07C007807E0003FFFF8003FFFC0000FFFF0000FFF000 +003FFC00003F80000007F0003E1F7C9D47>49 D<00000001C000000001C000000003C000 +00000380000000078000000007000000000F000000000E000000001E000000003C000000 +00380000000078000000007000000000F000000000E000000001E000000001C000000003 +C00000000380000000078000000007000000000F000000000E000000001E000000003C00 +000000380000000078000000007000000000F000000000E000000001E000000001C00000 +0003C00000000380000000078000000007000000000F000000001E000000001C00000000 +3C00000000380000000078000000007000000000F000000000E000000001E000000001C0 +00000003C00000000380000000078000000007000000000F000000001E000000001C0000 +00003C00000000380000000078000000007000000000F000000000E00000000060000000 +00223D76AE00>54 D58 D<0000000000001C0000000000003C0007FFFFFFFFF8001FFFFFFFFFF000FFFFFF +FFFFC001FFFFFFFFFF000780007C0000000F0000FC0000001E0000FC0000003E0000FC00 +00007E0001F80000007C0001F8000000FC0001F8000000F00001F8000000E00003F00000 +00000003F0000000000003F0000000000003F0000000000007E0000000000007E0000000 +000007E0000000000007E000000000000FC000000000000FC000000000000FC000000000 +000FC000000000001F8000000000001F8000000000001F8000000000001F800000000000 +3F8000000000003F0000000000003F0000000000003F0000000000003F0000000000007E +0000000000007E0000000000007E0000000000007C000000000000FC000000000000FC00 +0000000000F8000000000001F8000000000001F8000000000001F0000000000003F00000 +00000003E0000000000003E0000000000007C00000000000078000000000000F00000000 +000008000000000036347DAE27>84 D<0000300000000078000000007800000000FC0000 +0000FC00000001FE00000001CE00000001CE00000003CF00000003870000000787800000 +07038000000F03C000000E01C000001E01E000001C00E000003C00F00000380070000078 +0078000070003800007000380000F0003C0000E0001C0001E0001E0001C0000E0003C000 +0F000380000700078000078007000003800F000003C00E000001C01E000001E01C000000 +E01C000000E03C000000F0380000007078000000787000000038F00000003CE00000001C +E00000000C26297CA72F>94 DI E /Fn 12 122 df<0001FC0000000FFF0000003F07C000007C03E0 +0001F801F00C03F001F00C07E000F80C0FC000F81C0F8000FC181F80007C183F00007C38 +3F00007C307F00007C707E00007C607E00007CE07E00007CC0FE00007DC0FC00007F80FC +00007F00FC00007E00FC00007E00FC00007C00FC00007C007C00007C007C0000FE007C00 +03FE0C3E00073E0C1F001E3E1C0F81F81F3803FFE00FF000FE0003C0261F7D9D2D>11 +D<0000007E00000001FFC000000781E000001E00F000003800F000007000F80000E00078 +0001C0007800038000F800030000F800070000F800060000F8000E0001F8000C0001F000 +1C0001F000180003E000180007C0003800078000301FEF0000303FFE0000703FFE000060 +1FEF000060000F8000600007C000E00007C000C00007E000C00007E000C00007E001C000 +07E001800007E001800007E001800007E00380000FE00300000FC00300000FC00300000F +C00700001F800700001F800700003F000700003F000F80007E000D80007C000DC000F800 +0CE001F0001C7003E000183C0F8000181FFE00001803F800003800000000300000000030 +0000000030000000007000000000600000000060000000006000000000E000000000C000 +000000C000000000C000000000253C7EAE28>I<3C7EFFFFFFFF7E3C08087A8714>58 +D<3C007E00FF00FF00FF80FF807F803D80018001800180038003000300070006000E001C +0038007000600009157A8714>I<0000000000800000000003C0000000000FC000000000 +3F8000000000FE0000000003F8000000000FE0000000003F8000000000FE0000000003F8 +000000000FE0000000003F8000000000FE0000000003F8000000000FE0000000003F8000 +000000FE0000000003F8000000000FE0000000003F8000000000FE0000000000F8000000 +0000FE00000000003F80000000000FE00000000003F80000000000FE00000000003F8000 +0000000FE00000000003F80000000000FE00000000003F80000000000FE00000000003F8 +0000000000FE00000000003F80000000000FE00000000003F80000000000FE0000000000 +3F80000000000FC00000000003C00000000000802A2B7AA537>I<400000000000F00000 +000000FC00000000007F00000000001FC00000000007F00000000001FC00000000007F00 +000000001FC00000000007F00000000001FC00000000007F00000000001FC00000000007 +F00000000001FC00000000007F00000000001FC00000000007F00000000001FC00000000 +007F00000000001FC00000000007C0000000001FC0000000007F0000000001FC00000000 +07F0000000001FC0000000007F0000000001FC0000000007F0000000001FC0000000007F +0000000001FC0000000007F0000000001FC0000000007F0000000001FC0000000007F000 +0000001FC0000000007F0000000000FC0000000000F000000000004000000000002A2B7A +A537>62 D<003FFE00000001FFF0003FFE00000003FFF00000FF00000003F8000000FF00 +000007F8000000DF0000000DF0000000DF0000000DF0000001DF0000001BF0000001DF00 +000033E00000018F80000033E00000018F80000063E00000038F800000C7E00000038F80 +0000C7C00000030F80000187C00000030F80000307C000000707C000030FC000000707C0 +00060F8000000607C0000C0F8000000607C0000C0F8000000E07C000181F8000000E07C0 +00301F0000000C03E000301F0000000C03E000601F0000001C03E000C03F0000001C03E0 +00C03E0000001803E001803E0000001803E003003E0000003801F003007E0000003801F0 +06007C0000003001F00C007C0000003001F00C007C0000007001F01800FC0000007001F0 +3000F80000006001F03000F80000006000F86000F8000000E000F8C001F8000000E000F8 +C001F0000000C000F98001F0000000C000FB0001F0000001C000FB0003F0000001C0007E +0003E000000180007C0003E0000003C0007C0003E000000FE000780007E00000FFFE0070 +01FFFF8000FFFE003001FFFF8000442D7CAC44>77 D<0003F800000FFE00003E078000F8 +038001F003C003E001C007C001C00FC003C01F8003801F8007803F000F003F001E007F01 +FC007FFFF0007FFF00007E000000FE000000FC000000FC000000FC000000FC0000007C00 +00007C0000607C0000E07C0001C03E0003803E000F001F001C000F81F80003FFE00000FE +00001B1F7D9D21>101 D<07C007E0001FE03FF80018F8783E003879E01E00307B801F00 +707F001F00607F001F0060FE001F00E0FC001F00C0FC001F00C0F8001F0081F8003F0001 +F8003E0001F0003E0001F0003E0003F0007E0003F0007C0003E0007C0003E000FC0007E0 +00F80807E000F81807C001F81807C001F0180FC001F0380FC003E0300F8003E0700F8003 +E0E01F8001E0C01F8001E3C01F0000FF000E00003E00251F7E9D2B>110 +D<07C01F000FF07FC01CF8E0E03879C1E0307B87E0707F07E0607E07E060FC07E0E0FC03 +80C0F80000C0F8000081F8000001F8000001F0000001F0000003F0000003F0000003E000 +0003E0000007E0000007E0000007C0000007C000000FC000000FC000000F8000000F8000 +001F8000001F8000001F0000000E0000001B1F7E9D20>114 D<000E00001F00001F0000 +3F00003F00003E00003E00007E00007E00007C00007C0000FC0000FC00FFFFF8FFFFF801 +F80001F80001F00001F00003F00003F00003E00003E00007E00007E00007C00007C0000F +C0000FC0000F80000F80001F80101F80301F00301F00701F00601F00E01E01C01E03801F +07000F0E0007FC0001F000152B7EA919>116 D<01E0000007F8000E0E3C001F1C3E003F +383E003E303E003E703E003E607E007EE07C007CC07C007CC0FC007C80F800FC00F800F8 +01F800F801F000F801F001F803F001F003E001F003E001F003E003F007E003E007C003E0 +07C003E007C007E007C007C003C00FC003E01FC003E03FC001F07F80007FEF80001F8F80 +00001F8000001F0000001F003E003E003E003E007E007C007E00F8007C01F0007003E000 +3007C0003C0F80000FFE000003F00000202C7E9D23>121 D E /Fo +49 122 df<0000FF807E000007FFE1FF80001F807FC3C0003E007F87E0007C00FF07E000 +F800FE07E001F000FE07E003F000FC018003E0007C000003E0007C000003E0007C000003 +E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003 +E0007C0000FFFFFFFFFC00FFFFFFFFFC0003E0007C000003E0007C000003E0007C000003 +E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003 +E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003 +E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003 +E0007C000003E0007C000003E0007C000007F000FE00007FFF0FFFF0007FFF0FFFF0002B +2F7FAE29>11 D<0000FF00000007FFE000001F80F000003E003800007C007C0000F800FC +0001F000FC0003F000FC0003E000780003E000300003E000000003E000000003E0000000 +03E000000003E000000003E000000003E000000003E0007C00FFFFFFFC00FFFFFFFC0003 +E000FC0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0 +007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E000 +7C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C +0003E0007C0003E0007C0007F000FE007FFF0FFFE07FFF0FFFE0232F7FAE27>I<0001F0 +0000000007FC000000001F0C000000003E0E000000003C06000000007807000000007803 +00000000F80300000000F80300000000F80300000000F80300000000F80700000000F806 +00000000F80E00000000F81C00000000F838000000007C30000000007C70000000007CE0 +003FFF007FC0003FFF007F80000FF8003F000007E0003F00000380001F00000380003F80 +000700007F8000060000EFC0000E0001CFC0001C000387E00018000707F00038000F03F0 +0070001E01F80060003E01FC00E0007C00FE01C0007C007E018000FC003F038000FC003F +870000FC001FCE0000FC000FDC0000FC0007F80006FE0003F000067E0001F800067E0001 +FC000C3F0007FE001C1F800E1F80380FC07C07E0F003FFF001FFE0007F80007F8030307D +AE37>38 D<00030007000E001C0038007000F001E001C003C0078007800F000F001E001E +001E003C003C003C003C0078007800780078007800F800F800F000F000F000F000F000F0 +00F000F000F000F000F000F800F800780078007800780078003C003C003C003C001E001E +001E000F000F000780078003C001C001E000F000700038001C000E0007000310437AB11B +>40 DI< +000003800000000003800000000003800000000003800000000003800000000003800000 +000003800000000003800000000003800000000003800000000003800000000003800000 +000003800000000003800000000003800000000003800000000003800000000003800000 +000003800000000003800000000003800000000003800000FFFFFFFFFFFCFFFFFFFFFFFC +FFFFFFFFFFFC000003800000000003800000000003800000000003800000000003800000 +000003800000000003800000000003800000000003800000000003800000000003800000 +000003800000000003800000000003800000000003800000000003800000000003800000 +0000038000000000038000000000038000000000038000000000038000002E2F7CA737> +43 D<3C007E00FF00FF00FF80FF807F803D80018001800180038003000300070006000E +001C0038007000600009157A8714>I<3C7EFFFFFFFF7E3C08087A8714>46 +D<003FC00000FFF00003E07C0007C03E000F801F000F000F001E0007801E0007803E0007 +C03E0007C07C0003E07C0003E07C0003E07C0003E07C0003E0FC0003F0FC0003F0FC0003 +F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003 +F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07C0003E07C0003E07E0007E03E0007 +C03E0007C03E0007C01F000F800F000F000F801F0007C03E0003F0FC0000FFF000003FC0 +001C2D7DAB23>48 D<000C00003C00007C0003FC00FFFC00FC7C00007C00007C00007C00 +007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00 +007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00 +007C00007C00007C00007C00007C00007C00007C00007C0000FE007FFFFE7FFFFE172C7A +AB23>I<007F800001FFF0000780FC000E003F001C001F8038000FC070000FC0600007E0 +F00007E0FC0007F0FE0007F0FE0003F0FE0003F0FE0003F07C0007F0000007F0000007F0 +000007E000000FE000000FC000001FC000001F8000003F0000007E0000007C000000F800 +0001F0000003E0000007C000000F8000001E0000003C00000078000000F0003000E00030 +01C0003003800060070000600E0000E01FFFFFE03FFFFFE07FFFFFC0FFFFFFC0FFFFFFC0 +1C2C7DAB23>I<003FC00001FFF00007C0FC000E007E001C003F001C001F803F001FC03F +001FC03F800FC03F000FC03F000FC00C001FC000001FC000001F8000001F8000003F0000 +003E0000007C000000F8000003F00000FFC00000FFF0000000FC0000003F0000001F8000 +001FC000000FC000000FE000000FE0000007F0000007F0380007F07C0007F0FE0007F0FE +0007F0FE0007F0FE000FE0F8000FE060000FC070001FC038001F801E003F000780FC0001 +FFF000007FC0001C2D7DAB23>I<00000E0000000E0000001E0000003E0000003E000000 +7E000000FE000000FE000001BE000003BE0000033E0000063E00000E3E00000C3E000018 +3E0000383E0000303E0000603E0000E03E0000C03E0001803E0003803E0003003E000600 +3E000E003E000C003E0018003E0038003E0030003E0060003E00E0003E00FFFFFFFCFFFF +FFFC00003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000 +3E0000007F00001FFFFC001FFFFC1E2D7EAC23>I<0C0001800FC01F800FFFFF000FFFFE +000FFFFC000FFFF0000FFFC0000C7E00000C0000000C0000000C0000000C0000000C0000 +000C0000000C0000000C0000000C1FC0000C7FF8000DE07C000F801F000F001F800E000F +800C0007C0000007E0000007E0000003E0000003F0000003F0000003F0000003F0780003 +F0FC0003F0FC0003F0FC0003F0FC0003F0F80007E0E00007E0600007C070000FC038000F +801C001F000E003E000780F80001FFE000007F80001C2D7DAB23>I<0003F800000FFE00 +003E078000F8018001F007C003E00FC007C00FC00F800FC00F800FC01F0007801F000000 +3E0000003E0000007E0000007E0000007C0000007C0FC000FC3FF000FCF07C00FDC01E00 +FF800F00FF000F80FF0007C0FE0007E0FE0007E0FE0003E0FC0003F0FC0003F0FC0003F0 +FC0003F07C0003F07C0003F07C0003F07E0003F07E0003F03E0003E03E0007E01E0007E0 +1F0007C00F000F8007801F0003C03E0001E07C00007FF000001FC0001C2D7DAB23>I<30 +0000003C0000003FFFFFF83FFFFFF83FFFFFF07FFFFFF07FFFFFE0700001C06000018060 +000380C0000700C0000E00C0000C0000001C000000380000003000000070000000E00000 +01C0000001C00000038000000380000007000000070000000F0000000E0000001E000000 +1E0000003E0000003E0000003E0000003C0000007C0000007C0000007C0000007C000000 +FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 +7800001D2E7CAC23>I<001FC00000FFF00003E07C0007801E000F000F001E0007801E00 +07803C0003C03C0003C03C0003C03C0003C03E0003C03E0007C03F0007801FC00F801FE0 +0F001FF81E000FFC3C0007FFF80003FFE00000FFE000003FF80000FFFC0003C7FF000783 +FF801F00FFC01E003FC03C001FE07C0007E0780003F0F80003F0F00001F0F00000F0F000 +00F0F00000F0F00000F0F80000E0780001E07C0001C03C0003C01E0007800F800F0007E0 +3C0001FFF000003FC0001C2D7DAB23>I<003F800000FFF00003E0780007C03E000F801F +001F000F003E000F803E0007807E0007C07C0007C0FC0007E0FC0003E0FC0003E0FC0003 +E0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F07C0007F07E0007F07E0007F03E000F +F01F000FF00F001FF007803BF003E0F3F000FFC3F0003F03E0000003E0000007E0000007 +E0000007C0000007C000000FC01E000F803F000F003F001F003F003E003F003C003E0078 +001C00F0000E03E00007FF800001FE00001C2D7DAB23>I<3C7EFFFFFFFF7E3C00000000 +0000000000000000003C7EFEFFFFFF7F3F0303030706060E0C1C18387060082A7A9C14> +59 D<7FFFFFFFFFF8FFFFFFFFFFFCFFFFFFFFFFFC000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000FFFFFFFFFFFCFFFFFF +FFFFFC7FFFFFFFFFF82E137C9937>61 D<00001FF000C00000FFFE01C00003F00F83C000 +0F8001E3C0003F000077C0007C00003FC001F800001FC003F000000FC007E0000007C007 +E0000007C00FC0000003C01FC0000003C01F80000001C03F80000001C03F00000001C07F +00000000C07F00000000C07F00000000C0FE0000000000FE0000000000FE0000000000FE +0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE +00001FFFFEFE00001FFFFE7F0000001FE07F0000000FC07F0000000FC03F0000000FC03F +8000000FC01F8000000FC01FC000000FC00FC000000FC007E000000FC007E000000FC003 +F000000FC001F800001FC0007C00001FC0003F00003FC0000F8000F3C00003F007C1C000 +00FFFF00C000001FF800002F2F7CAD37>71 D73 D77 DI<00003FF000000001FFFE00000007E01F8000001F80 +07E000003E0001F00000FC0000FC0001F800007E0003F000003F0007E000001F8007C000 +000F800FC000000FC01F80000007E01F80000007E03F00000003F03F00000003F07F0000 +0003F87F00000003F87E00000001F87E00000001F8FE00000001FCFE00000001FCFE0000 +0001FCFE00000001FCFE00000001FCFE00000001FCFE00000001FCFE00000001FCFE0000 +0001FCFE00000001FC7F00000003F87F00000003F87F00000003F83F00000003F03F8000 +0007F01F80000007E01F80000007E00FC000000FC00FE000001FC007E000001F8003F000 +003F0001F800007E0000FC0000FC00007E0001F800001F8007E0000007E01F80000001FF +FE000000003FF000002E2F7CAD37>I<7FFFFFFFFFF87FFFFFFFFFF87F000FC003F87C00 +0FC000F870000FC0003870000FC0003860000FC0001860000FC00018E0000FC0001CE000 +0FC0001CC0000FC0000CC0000FC0000CC0000FC0000CC0000FC0000CC0000FC0000C0000 +0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000 +0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000 +0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000 +0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000 +0FC0000000000FC0000000000FC0000000001FE00000001FFFFFE000001FFFFFE0002E2D +7EAC33>84 D<00FF000007FFC0000F01F0001C00F8003F007C003F003E003F003E003F00 +3F001E001F0000001F0000001F0000001F0000001F000007FF00007FFF0001FE1F0007F0 +1F001FC01F003F801F007F001F007E001F00FE001F06FC001F06FC001F06FC001F06FC00 +3F06FE003F067E007F067F00EF8C1F83C7FC0FFF03F801FC01E01F207D9E23>97 +D<07C0000000FFC0000000FFC00000000FC000000007C000000007C000000007C0000000 +07C000000007C000000007C000000007C000000007C000000007C000000007C000000007 +C000000007C000000007C0FE000007C7FF800007CF03E00007DC01F00007F8007C0007F0 +007E0007E0003E0007C0001F0007C0001F8007C0001F8007C0000F8007C0000FC007C000 +0FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000F +C007C0001F8007C0001F8007C0001F0007C0003F0007E0003E0007F0007C0007B000F800 +07BC01F000070E07E0000607FF80000001FC0000222F7EAD27>I<001FE000007FFC0001 +F01E0003E0070007C01F800F801F801F001F803F001F803E000F007E0000007E0000007C +000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC +0000007E0000007E0000007E0000C03F0000C01F0001C01F8001800FC0038007E0070001 +F03E00007FF800001FC0001A207E9E1F>I<000000F80000001FF80000001FF800000001 +F800000000F800000000F800000000F800000000F800000000F800000000F800000000F8 +00000000F800000000F800000000F800000000F800000000F800000FE0F800007FF8F800 +01F81EF80003E007F80007C003F8000F8001F8001F0001F8003F0000F8003E0000F8007E +0000F8007E0000F800FC0000F800FC0000F800FC0000F800FC0000F800FC0000F800FC00 +00F800FC0000F800FC0000F800FC0000F8007C0000F8007E0000F8007E0000F8003E0001 +F8001F0001F8001F8003F8000F8007F80003E00EFC0001F03CFFC0007FF0FFC0001FC0F8 +00222F7EAD27>I<001F800000FFF00003E0780007C03E000F801E001F001F001F000F80 +3E000F807E0007807E0007C07C0007C0FC0007C0FC0007C0FC0007C0FFFFFFC0FFFFFFC0 +FC000000FC000000FC000000FC000000FC0000007E0000007E0000003E0000C03F0000C0 +1F0001C00F8003800FC0030003E00F0001F03C00007FF800001FC0001A207E9E1F>I<00 +03F0000FFC003E1E007C3F00F83F01F03F01F03F03E00C03E00003E00003E00003E00003 +E00003E00003E00003E00003E00003E000FFFFE0FFFFE003E00003E00003E00003E00003 +E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003 +E00003E00003E00003E00003E00003E00003E00003E00007F0007FFF807FFF80182F7FAE +16>I<003F00F800FFC3FE03E1FF1E07807C1E0F807C0C1F003E001F003E003E001F003E +001F003E001F003E001F003E001F003E001F003E001F001F003E001F003E000F807C0007 +8078000FE1F0000CFFC0001C3F00001C0000001C0000001C0000001E0000001F0000000F +FFF8000FFFFF0007FFFFC00FFFFFF01E0007F83C0000F87800007CF800007CF000003CF0 +00003CF000003CF000003CF800007C7C0000F83E0001F01F0003E007E01F8001FFFE0000 +3FF0001F2D7E9D23>I<07C0000000FFC0000000FFC00000000FC000000007C000000007 +C000000007C000000007C000000007C000000007C000000007C000000007C000000007C0 +00000007C000000007C000000007C000000007C0FE000007C3FF800007C703E00007DE01 +F00007F801F00007F000F80007F000F80007E000F80007E000F80007C000F80007C000F8 +0007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F800 +07C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007 +C000F80007C000F8000FE001FC00FFFE1FFFC0FFFE1FFFC0222E7EAD27>I<07800FC01F +E01FE01FE01FE00FC007800000000000000000000000000000000007C0FFC0FFC00FC007 +C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007 +C007C007C007C007C00FE0FFFCFFFC0E2E7EAD14>I<07C0FFC0FFC00FC007C007C007C0 +07C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C0 +07C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C0 +0FE0FFFEFFFE0F2E7EAD14>108 D<07C07F0007F000FFC3FFC03FFC00FFC783F0783F00 +0FCE01F8E01F8007DC00F9C00F8007F800FF800FC007F0007F0007C007E0007E0007C007 +E0007E0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0 +007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C000 +7C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C +0007C007C0007C0007C007C0007C0007C007C0007C0007C00FE000FE000FE0FFFE0FFFE0 +FFFEFFFE0FFFE0FFFE371E7E9D3C>I<07C0FE0000FFC3FF8000FFC703E0000FDE01F000 +07F801F00007F000F80007F000F80007E000F80007E000F80007C000F80007C000F80007 +C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C0 +00F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000 +F80007C000F8000FE001FC00FFFE1FFFC0FFFE1FFFC0221E7E9D27>I<001FE000007FF8 +0001F03E0003C00F00078007800F0003C01F0003E03E0001F03E0001F07C0000F87C0000 +F87C0000F8FC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000 +FCFC0000FC7C0000F87C0000F83E0001F03E0001F01F0003E01F0003E00F8007C007C00F +8001F03E00007FF800001FE0001E207E9E23>I<07C0FE0000FFC7FF8000FFCF03E0000F +DC01F00007F800FC0007F0007E0007E0003E0007C0003F0007C0001F8007C0001F8007C0 +001F8007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C000 +0FC007C0000FC007C0001FC007C0001F8007C0001F8007C0003F0007C0003F0007E0007E +0007F0007C0007F000F80007FC01F00007CE07E00007C7FF800007C1FC000007C0000000 +07C000000007C000000007C000000007C000000007C000000007C000000007C000000007 +C00000000FE0000000FFFE000000FFFE000000222B7E9D27>I<000FE01800007FF83800 +01F81C380003E00E780007C00778000F8003F8001F8001F8003F0001F8003F0001F8007E +0000F8007E0000F800FE0000F800FC0000F800FC0000F800FC0000F800FC0000F800FC00 +00F800FC0000F800FC0000F800FC0000F8007E0000F8007E0000F8007E0000F8003F0001 +F8001F0001F8001F8003F8000FC007F80003E00EF80001F03CF800007FF0F800001FC0F8 +00000000F800000000F800000000F800000000F800000000F800000000F800000000F800 +000000F800000000F800000001FC0000001FFFC000001FFFC0222B7E9D25>I<0781F8FF +87FEFF8E3F0F9C3F07B83F07B03F07F01E07E00007E00007E00007E00007C00007C00007 +C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007 +C00007C0000FE000FFFF00FFFF00181E7E9D1C>I<01FE1807FFB81E01F83C00F8780078 +F00038F00038F00018F00018F80018FC0018FF00007FF0003FFF001FFFC00FFFF001FFF8 +001FFC0001FCC0007EC0003EC0003EE0001EE0001EF0001EF0001EF8003CF8003CFC0078 +FF01F0E3FFC0C0FF0017207E9E1C>I<00600000600000600000600000E00000E00000E0 +0001E00003E00003E00007E0001FE000FFFFF0FFFFF003E00003E00003E00003E00003E0 +0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E01803E0 +1803E01803E01803E01803E01803E01803E03801F03001F07000F860003FE0000F80152A +7FA81B>I<07C000F800FFC01FF800FFC01FF8000FC001F80007C000F80007C000F80007 +C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C0 +00F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000 +F80007C000F80007C001F80007C001F80007C001F80007C003F80003E007F80003E00EFC +0001F81CFFC0007FF8FFC0001FE0F800221F7E9D27>II< +FFFC3FFE07FFFFFC3FFE07FF0FE003F001F80FC003E000F007C001E000E007C001F000E0 +03E003F000C003E003F000C003E007F801C001F00678018001F00678018001F80E7C0380 +00F80C3C030000F80C3C0300007C181E0600007C181E0600007C181F0600003E300F0C00 +003E300F0C00003E300F8C00001F60079800001F60079800001F6007D800000FC003F000 +000FC003F000000FC003F00000078001E00000078001E00000078001E00000030000C000 +301E7F9C33>III E /Fp 44 122 +df<000F807E003FE07E007FE07E00FFE07E01FFE07E03F8607E03F0000003E0000007E0 +000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000FFFF +E07EFFFFE07EFFFFE07EFFFFE07E07E0007E07E0007E07E0007E07E0007E07E0007E07E0 +007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0 +007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0 +007E07E0007E07E0007E1F2F7FAE26>12 D<000F8000003FE07E007FE07E00FFE07E01FF +E07E03F8607E03F0007E03E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0 +007E07E0007E07E0007E07E0007EFFFFE07EFFFFE07EFFFFE07EFFFFE07E07E0007E07E0 +007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0 +007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0 +007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E1F2F7FAE26>I46 D58 D<00003F00000000007F80000000007F8000000000FFC000 +000000FFC000000000F7C000000001F7E000000001E7E000000003E7F000000003E3F000 +000003E3F000000007C3F800000007C3F80000000FC1FC0000000F81FC0000000F81FC00 +00001F80FE0000001F00FE0000001F007E0000003F007F0000003E007F0000007E003F80 +00007E003F8000007C003F800000FC001FC00000F8001FC00001F8001FE00001F8000FE0 +0001F0000FE00003FFFFFFF00003FFFFFFF00003FFFFFFF00007FFFFFFF80007C00003F8 +000FC00003FC000FC00001FC000F800001FC001F800000FE001F800000FE003F000000FF +003F0000007F003E0000007F007E0000007F807E0000003F807C0000003F80FC0000001F +C02A2E7EAD2F>65 DI68 DII<00003FF8000001FFFF800007FFFFE0001FFFFFF8003FFFFFF800FFE00FF801FF8001 +F003FE00007003FC00001007F00000000FF00000001FE00000001FC00000003FC0000000 +3F800000003F800000007F000000007F000000007F00000000FE00000000FE00000000FE +00000000FE00000000FE00000000FE00000000FE00000000FE0001FFF8FE0001FFF8FE00 +01FFF87F0001FFF87F0001FFF87F000001F83F800001F83F800001F83FC00001F81FC000 +01F81FE00001F80FF00001F807F00001F803FC0001F803FE0001F801FF8001F800FFE007 +F8003FFFFFF8001FFFFFF80007FFFFE00001FFFF8000003FF80025307CAE2F>III76 DII<00007FC000000003FF +F80000000FFFFE0000003FFFFF8000007FFFFFC00000FFC07FE00001FF001FF00003FC00 +07F80007F80003FC000FF00001FE000FE00000FE001FC000007F001FC000007F003F8000 +003F803F8000003F807F0000001FC07F0000001FC07F0000001FC07E0000000FC0FE0000 +000FE0FE0000000FE0FE0000000FE0FE0000000FE0FE0000000FE0FE0000000FE0FE0000 +000FE0FE0000000FE0FE0000000FE0FE0000000FE07F0000001FC07F0000001FC07F0000 +001FC07F8000003FC03F8000003F803F8000003F801FC000007F001FE00000FF000FE000 +00FE000FF00001FE0007F80003FC0003FC0007F80001FF001FF00000FFC07FE000007FFF +FFC000003FFFFF8000000FFFFE00000003FFF8000000007FC000002B307CAE34>II82 D<000FFC00007FFF8001FFFFE003FFFFF807FFFFF80FF807F81FC000F03F8000 +303F0000103F0000007E0000007E0000007E0000007E0000007E0000007F0000003F8000 +003FC000003FF000001FFF00000FFFF00007FFFE0003FFFF0001FFFFC0007FFFE0000FFF +F00000FFF800000FF8000003FC000001FC000000FC000000FE0000007E0000007E000000 +7E0000007E0000007E4000007E600000FC700000FCFC0001F8FF0007F8FFE01FF07FFFFF +E01FFFFFC007FFFF0001FFFE00001FF0001F307DAE27>IIII<00FF000007FFE0001FFFF0003FFFF8003FFFFC003F00FE0038007F0020003F00 +00003F0000001F8000001F8000001F8000001F8000001F8000001F80000FFF8000FFFF80 +07FFFF801FFFFF803FFC1F807FC01F80FE001F80FC001F80FC001F80FC003F80FC003F80 +FE007F807F83FF807FFFFF803FFFFF803FFF9F801FFE1F8007F0000019217D9F22>97 +DI<001FF000007FFE0001FFFF8003FFFFC007FFFFC0 +0FF00FC01FC003801F8000803F0000003F0000007E0000007E0000007E000000FC000000 +FC000000FC000000FC000000FC000000FC000000FC000000FC0000007E0000007E000000 +7F0000003F0000003F8000401FC001C00FF00FC007FFFFC003FFFFC001FFFF80007FFE00 +001FF0001A217E9F1F>I<000003F0000003F0000003F0000003F0000003F0000003F000 +0003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000 +7F03F001FFE3F003FFFBF007FFFFF00FFFFFF01FF03FF03FC00FF03F8007F07F0003F07E +0003F07E0003F0FE0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC +0003F0FC0003F0FE0003F07E0003F07E0003F07F0007F03F800FF03FC01FF01FF03FF00F +FFFFF007FFFBF003FFF3F001FFC3F0007F00001C2F7EAD24>I<001F800000FFF00001FF +F80007FFFC000FFFFE000FE07F001FC03F003F801F003F000F807E0007807E0007807C00 +07C0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0F8000000F8000000FC000000FC00 +00007C0000007E0000007E0000003F0000003F8000401FC001C00FF01FC007FFFFC003FF +FFC001FFFF80007FFE00001FE0001A217E9F1F>I<0003F8000FFE003FFE007FFE00FFFE +00FE0601F80001F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 +FFFFE0FFFFE0FFFFE0FFFFE003F00003F00003F00003F00003F00003F00003F00003F000 +03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 +03F00003F00003F00003F00003F00003F000172F7FAE16>I<003F007C00FFC7FC03FFFF +FE07FFFFFE0FFFFFFE0FC0FC001F807E001F003E003E001F003E001F003E001F003E001F +003E001F003E001F003E001F001F003E001F807E000FC0FC000FFFFC001FFFF8001FFFF0 +003EFFC0003E3F00003E0000003E0000003F0000003FFFF8001FFFFF001FFFFFC00FFFFF +E03FFFFFF03FFFFFF87F000FF87E0001FCFC0000FCFC0000FCFC0000FCFC0000FCFE0001 +FC7F0003F83FE01FF01FFFFFE00FFFFFC007FFFF8001FFFE00003FF0001F2E7E9E23>I< +FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 +FC000000FC000000FC000000FC000000FC000000FC000000FC0FE000FC3FF800FCFFFC00 +FDFFFE00FFFFFF00FFC0FF00FF803F00FF003F80FE001F80FE001F80FE001F80FC001F80 +FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80 +FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80 +FC001F80192E7BAD24>II107 DI<000FE000FC3FF800FCFFFC00FD +FFFE00FFFFFF00FFC0FF00FF803F00FF003F80FE001F80FE001F80FE001F80FC001F80FC +001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC +001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC +001F80191F7B9E24>110 D<001FE000007FF80001FFFE0003FFFF0007FFFF800FF03FC0 +1FC00FE01F8007E03F0003F03F0003F07E0001F87E0001F87C0000F8FC0000FCFC0000FC +FC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FC7E0001F87E0001F87F0003F8 +3F0003F03F8007F01FC00FE00FF03FC007FFFF8003FFFF0001FFFE00007FF800001FE000 +1E217E9F23>I<0007F000FC3FF800FCFFFE00FFFFFF00FFFFFF80FFC0FF80FF003FC0FE +001FC0FC000FE0FC000FE0FC0007E0FC0007F0FC0003F0FC0003F0FC0003F0FC0003F0FC +0003F0FC0003F0FC0003F0FC0003F0FC0007E0FC0007E0FC000FE0FE000FC0FE001FC0FF +007F80FFC1FF80FFFFFF00FFFFFE00FCFFFC00FC7FF000FC0FC000FC000000FC000000FC +000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC +0000001C2C7B9E24>I<000780F81F80F87F80F8FF80F9FF80FBF800FFE000FFC000FF80 +00FF0000FF0000FE0000FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 +00FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000111F7B9E18 +>114 D<01FF0007FFE01FFFF83FFFFC7FFFFC7F00FCFE0038FC0008FC0000FC0000FC00 +00FE00007F80007FFC003FFF801FFFE00FFFF003FFF800FFFC0007FC0001FE0000FE0000 +7E00007E00007E40007E7000FCFE01FCFFFFF8FFFFF87FFFF00FFFC001FF0017217E9F1B +>I<07E00007E00007E00007E00007E00007E00007E00007E000FFFFF0FFFFF0FFFFF0FF +FFF007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007 +E00007E00007E00007E00007E00007E00007E00007E00007E00007F01003F07003FFF803 +FFF801FFF800FFE0007F0015277FA519>IIII<7E0000FC3F +0001FC1F8003F81FC007F00FE007E007F00FC003F01F8001F83F0000FC7F00007E7E0000 +3FFC00001FF800001FF000000FE0000007C000000FE000000FF000001FF800003EFC0000 +7C7E0000FC3F0001F81F8003F00F8003E00FC007E007E00FC003F01F8001F83F0001FC7F +0000FEFE00007F201E809D21>II E /Fq 11 58 df<70F8F8F87005057A8411>46 +D<01FC0007FF000F07801C01C03800E03800E07800F0700070700070F00078F00078F000 +78F00078F00078F00078F00078F00078F00078F00078F000787000707000707800F03800 +E03800E01C01C00F078007FF0001FC00151D7D9B1C>48 D<00600001E0000FE000FFE000 +F1E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 +01E00001E00001E00001E00001E00001E00001E00001E00001E00001E0007FFF807FFF80 +111C7B9B1C>I<03FC000FFF003C0FC07003E07801F0FC00F0FC00F8FC00F8FC00787800 +780000F80000F00000F00001E00003C0000780000F00001C0000380000E00001C0180380 +180600180C00383FFFF07FFFF0FFFFF0FFFFF0151C7D9B1C>I<01FC000FFF801E07C030 +01E07C01F07C00F07E00F07C01F03801E00003E00007C0001F8003FE0003FC0000078000 +03C00001E00000F00000F83000F87800F8FC00F8FC00F8FC00F07801F07003E03C07C00F +FF0003FC00151D7D9B1C>I<0001C00003C00007C0000FC0000FC0001BC00033C00073C0 +00E3C001C3C00383C00303C00603C00C03C01C03C03803C07003C0E003C0FFFFFEFFFFFE +0003C00003C00003C00003C00003C00003C0007FFE007FFE171C7E9B1C>I<1C00E01FFF +E01FFFC01FFF001FFC0018000018000018000018000018000018FC001BFF001F07C01C01 +E01801E01800F00000F00000F80000F87000F8F800F8F800F8F800F0F801F06001E07003 +C03C0F800FFF0003F800151D7D9B1C>I<003F8000FFC003C0E00700F00E01F01C01F038 +00E038000078000070000070FF00F3FF80F601C0F400E0F800F0F80070F00078F00078F0 +0078F000787000787000787800703800703800E01C01C00F038007FF0001FC00151D7D9B +1C>I<6000007FFFF87FFFF87FFFF07FFFE0E000C0C000C0C00180C00300000600000C00 +00180000180000300000700000700000F00000E00001E00001E00001E00001E00003E000 +03E00003E00003E00003E00003E00001C000151D7C9B1C>I<01FC0007FF801E03C03800 +E03000707000707000707800707E00707F00E03FC1C01FF7800FFE0003FF0007FF800F7F +E03C1FE07807F07001F8E000F8E00078E00038E00038E000307000703800E01E03C00FFF +0001FC00151D7D9B1C>I<01FC0007FF000F07801C01C03800E07800E07000F0F00070F0 +0070F00078F00078F00078F000787000F87800F83801781C03780FFE7807F87800007000 +00F00000E03800E07C01C07C0380780700381E001FFC0007F000151D7D9B1C>I +E /Fr 73 122 df<0001FE01F8000FFF8FFC003F03DF1E007803FC3F01F007F83F01E007 +F83F03E007F01E07C003F00C07C001F00007C001F00007C001F00007C001F00007C001F0 +0007C001F00007C001F00007C001F000FFFFFFFFE0FFFFFFFFE007C001F00007C001F000 +07C001F00007C001F00007C001F00007C001F00007C001F00007C001F00007C001F00007 +C001F00007C001F00007C001F00007C001F00007C001F00007C001F00007C001F00007C0 +01F00007C001F00007C001F00007C001F0000FE003F8007FFC1FFF807FFC1FFF8028297F +A827>11 D<0000FF0000000FFFC000003F01E000007C00F00000F001F00001E001F00003 +E001F00007C001F00007C000E00007C000000007C000000007C000000007C000000007C0 +00000007C000000007C00FF800FFFFFFF800FFFFFFF80007C000F80007C000F80007C000 +F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F8 +0007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F800 +07C000F80007C000F80007C000F8000FE001FC007FFC0FFF807FFC0FFF8021297FA826> +I<0000FF003FC000000FFFC1FFF000003F01E7E07800007C00FF803C0000F001FE007C00 +01E003FC007C0003E003FC007C0007C001F8007C0007C001F800380007C000F800000007 +C000F800000007C000F800000007C000F800000007C000F800000007C000F800000007C0 +00F803FE00FFFFFFFFFFFE00FFFFFFFFFFFE0007C000F8003E0007C000F8003E0007C000 +F8003E0007C000F8003E0007C000F8003E0007C000F8003E0007C000F8003E0007C000F8 +003E0007C000F8003E0007C000F8003E0007C000F8003E0007C000F8003E0007C000F800 +3E0007C000F8003E0007C000F8003E0007C000F8003E0007C000F8003E0007C000F8003E +0007C000F8003E0007C000F8003E000FE001FC007F007FFC0FFF83FFE07FFC0FFF83FFE0 +33297FA838>14 D<01E003E007E00FE00FC01F803E007C00F000E00040000B0B73A721> +19 D<3803807C07C0FE0FE0FF0FF0FF0FF07F07F03B03B0030030030030030030060060 +0600600E00E00C00C018018038038070070020020014127EA721>34 +D<387CFEFFFF7F3B0303030606060C1838702008127BA713>39 D<0006000C0018003000 +6000E001C00380038007000F000E001E001E001C003C003C003C00780078007800780078 +00F800F000F000F000F000F000F000F000F000F000F000F000F800780078007800780078 +003C003C003C001C001E001E000E000F0007000380038001C000E0006000300018000C00 +060F3B7AAB1A>II<387CFEFFFF7F3B03030306 +06060C1838702008127B8613>44 DI<387CFEFEFE7C +3807077B8613>I<003F800001FFF00003E0F80007803C000F001E001E000F003E000F80 +3E000F803C0007807C0007C07C0007C07C0007C07C0007C0FC0007E0FC0007E0FC0007E0 +FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0 +FC0007E0FC0007E07C0007C07C0007C07C0007C03E000F803E000F803E000F801F001F00 +0F001E0007803C0003E0F80001FFF000003F80001B277EA521>48 +D<00380000780001F8001FF800FEF800E0F80000F80000F80000F80000F80000F80000F8 +0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8 +0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80001FC +00FFFFF8FFFFF815267BA521>I<00FF000003FFE0000E03F0001800F80030007C006000 +7E0078003F00FC003F00FE001F80FE001F80FE001F80FE001F807C001F8000001F800000 +1F0000003F0000003E0000007E0000007C000000F8000001F0000003E0000003C0000007 +8000000E0000001C0000003800000070018000E001800180018003000300060003000C00 +03001FFFFF003FFFFF007FFFFE00FFFFFE00FFFFFE0019267DA521>I<00FF000003FFE0 +000F01F8001C007C0030007E003C003E007E003F007E003F007E003F007E003F003C003F +0000003E0000007E0000007C000000F8000001F0000007E00001FF800001FF00000001E0 +000000F00000007C0000003E0000003F0000001F0000001F8000001F8038001F807C001F +80FE001F80FE001F80FE001F00FC003F0078003E0070007C003800F8001F01F00007FFC0 +0000FF000019277DA521>I<0000380000003800000078000000F8000001F8000001F800 +0003F8000007F8000006F800000CF800001CF8000018F8000030F8000070F8000060F800 +00C0F80001C0F8000180F8000300F8000700F8000E00F8000C00F8001C00F8003800F800 +3000F8006000F800E000F800FFFFFFE0FFFFFFE00000F8000000F8000000F8000000F800 +0000F8000000F8000000F8000001FC00003FFFE0003FFFE01B277EA621>I<18000C001F +007C001FFFF8001FFFF0001FFFE0001FFF800019FC000018000000180000001800000018 +000000180000001800000018000000187F000019FFE0001F81F0001E0078001C003C0018 +003E0000003E0000001F0000001F0000001F8000001F8030001F807C001F80FC001F80FC +001F80FC001F80FC001F00F0001F0060003E0070003E0030007C001C00F8000F03E00003 +FFC00000FE000019277DA521>I<000FE000003FF80000F81C0001E0060003C01F000780 +3F000F003F001F003F001E003F003E001E003E0000007C0000007C0000007C0400007C3F +C000FCFFF000FDC07800FF003C00FF003E00FE001E00FE001F00FE001F00FC001F80FC00 +1F80FC001F80FC001F807C001F807C001F807C001F807C001F803C001F003E001F001E00 +1E001E003E000F003C000780780003C1F00001FFC000007F000019277DA521>I<300000 +003C0000003FFFFFE03FFFFFE03FFFFFC07FFFFF807FFFFF807000070060000E0060000C +00C0001C00C0003800C00070000000E0000000C0000001C0000003800000038000000700 +00000F0000000E0000001E0000001E0000001E0000003E0000003C0000003C0000007C00 +00007C0000007C0000007C000000FC000000FC000000FC000000FC000000FC000000FC00 +0000FC000000FC0000007800001B287DA621>I<007F000003FFE0000781F8000E007C00 +1C001E0038001E0038000F0078000F0078000F0078000F007C000F007E001E003F801E00 +3FE03C001FF078000FFCF00007FFC00003FF800000FFE00001FFF000079FFC000F07FE00 +1E03FE003C00FF0078003F0078001F80F0000F80F0000F80F0000780F0000780F0000780 +F00007007800070078000E003C001C001E0038000F80F00003FFE000007F000019277DA5 +21>I<007F000001FFC00007C1E0000F0070001E0078003E003C003C003E007C001E007C +001E00FC001F00FC001F00FC001F00FC001F00FC001F80FC001F80FC001F80FC001F807C +003F807C003F803C003F803E007F801E007F800F01DF8007FF9F8001FE1F8000101F0000 +001F0000001F0000003E003C003E007E003C007E003C007E0078007E00F0007C00E00030 +03C0001C0780000FFF000003F8000019277DA521>I<387CFEFEFE7C3800000000000000 +00000000387CFEFEFE7C3807197B9813>I<00000E00000000000E00000000001F000000 +00001F00000000001F00000000003F80000000003F80000000003F80000000006FC00000 +00006FC000000000EFE000000000C7E000000000C7E00000000183F00000000183F00000 +000183F00000000301F80000000301F80000000601FC0000000600FC0000000600FC0000 +000C007E0000000C007E0000001C007F00000018003F00000018003F00000030003F8000 +003FFFFF8000003FFFFF80000060000FC0000060000FC00000E0000FE00000C00007E000 +00C00007E00001800003F00001800003F00003800003F80003800001F80007800001F800 +1FC00003FC00FFF8003FFFE0FFF8003FFFE02B2A7EA931>65 DI<00007FC0020003FFF806000FE01E0E003F0007 +0E007C00019E01F00000FE03E000007E07C000003E078000003E0F8000001E1F0000001E +3F0000000E3E0000000E3E0000000E7E000000067E000000067C00000006FC00000000FC +00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000007C00 +0000007E000000067E000000063E000000063E000000063F0000000C1F0000000C0F8000 +000C078000001807C000003803E000003001F0000060007C0001C0003F000380000FE01E +000003FFF80000007FC000272A7DA82F>IIII72 DI<00FFFFC000FFFFC00001FE000000FC000000FC000000FC000000 +FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 +FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 +FC000000FC000000FC000000FC000000FC000000FC003800FC00FE00FC00FE00FC00FE00 +FC00FE01FC00FC01F8007803F0007003E0003C0FC0000FFF000003FC00001A297EA722> +IIIII<00007FC000000003FFF80000001FC07F000000 +3E000F800000F80003E00001F00001F00003E00000F80007C000007C000F8000003E000F +8000003E001F0000001F003F0000001F803E0000000F807E0000000FC07E0000000FC07C +00000007C07C00000007C0FC00000007E0FC00000007E0FC00000007E0FC00000007E0FC +00000007E0FC00000007E0FC00000007E0FC00000007E0FC00000007E07E0000000FC07E +0000000FC07E0000000FC03F0000001F803F0000001F801F0000001F001F8000003F000F +C000007E0007C000007C0003E00000F80001F00001F00000FC0007E000003E000F800000 +1FC07F00000007FFFC000000007FC000002B2A7DA833>II<00007FC000000003FFF80000001FC07F0000003E00 +0F800000F80003E00001F00001F00003E00000F80007C000007C000F8000003E000F8000 +003E001F0000001F003F0000001F803E0000000F807E0000000FC07E0000000FC07E0000 +000FC07C00000007C0FC00000007E0FC00000007E0FC00000007E0FC00000007E0FC0000 +0007E0FC00000007E0FC00000007E0FC00000007E0FC00000007E07C00000007C07E0000 +000FC07E0000000FC03E0000000F803F0000001F801F0000001F001F801F003F000F803F +C03E0007C070E07C0003E0E060F80001F0C071F00000F8C03BE000003EE03F8000001FF0 +7F00000007FFFC006000007FDC00600000001E00600000000F00E00000000F01E0000000 +0F83C00000000FFFC000000007FFC000000007FF8000000003FF0000000001FE00000000 +0078002B347DA833>II<007F802003FFF060078078E00E000EE01C0007E0380003E078 +0001E0700000E0F00000E0F00000E0F0000060F0000060F8000060F80000007C0000007F +0000003FE000003FFF00001FFFF0000FFFFC0003FFFF0000FFFF80000FFFC00000FFE000 +000FF0000003F0000001F0000000F8000000F8C0000078C0000078C0000078C0000078E0 +000070E0000070F00000F0F80000E0FC0001C0EF000780E3E01F00C0FFFC00801FF0001D +2A7DA825>I<7FFFFFFFFF007FFFFFFFFF007E003F003F0078003F000F0070003F000700 +60003F00030060003F000300E0003F000380C0003F000180C0003F000180C0003F000180 +C0003F000180C0003F00018000003F00000000003F00000000003F00000000003F000000 +00003F00000000003F00000000003F00000000003F00000000003F00000000003F000000 +00003F00000000003F00000000003F00000000003F00000000003F00000000003F000000 +00003F00000000003F00000000003F00000000003F00000000003F00000000003F000000 +00003F00000000003F00000000007F800000003FFFFF0000003FFFFF000029287EA72F> +I86 DI89 D91 +D<0400400E00E01C01C0180180300300700700600600600600C00C00C00C00C00C00DC0D +C0FE0FE0FF0FF0FF0FF07F07F03E03E01C01C0141277A721>II<0100038007C00FE01EF03C78701CE00EC0060F0978A721>I<00FE000007 +FFC0000F03E0001C00F0003E0078003F007C003F003C003F003E001E003E0000003E0000 +003E0000003E00003FFE0001FFFE0007F03E001FC03E003F003E007E003E007E003E00FC +003E18FC003E18FC003E18FC007E187E007E187E00DF383F838FF00FFE0FE003F807C01D +1C7E9A21>97 D<0F800000FF800000FF8000001F8000000F8000000F8000000F8000000F +8000000F8000000F8000000F8000000F8000000F8000000F8000000F81FC000F8FFF000F +BC0FC00FF003E00FC001F00F8000F00F8000F80F8000FC0F80007C0F80007C0F80007E0F +80007E0F80007E0F80007E0F80007E0F80007E0F80007E0F80007C0F80007C0F8000FC0F +8000F80FC001F00FC001E00F7003C00E3C0F800C0FFF000003F8001F297EA725>I<003F +C000FFF803E03C07C00E0F801F1F003F3E003F3E003F7E001E7C00007C0000FC0000FC00 +00FC0000FC0000FC0000FC0000FC00007C00007E00007E00033E00031F00060F800607C0 +0C03F03800FFE0003F80181C7E9A1E>I<000003E000003FE000003FE0000007E0000003 +E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003 +E0003F83E001FFE3E003E03BE007800FE00F0007E01F0003E03E0003E07E0003E07C0003 +E07C0003E0FC0003E0FC0003E0FC0003E0FC0003E0FC0003E0FC0003E0FC0003E07C0003 +E07C0003E07E0003E03E0003E01E0007E01F000FE00F801FF003E073FE01FFE3FE007F03 +E01F297EA725>I<003F0001FFE003E1F00F80F81F007C1F003E3E003E7E001E7E001F7C +001FFC001FFC001FFFFFFFFFFFFFFC0000FC0000FC0000FC00007C00007E00007E00033E +00031F00070F800E07C01C03E07800FFE0003F80181C7E9A1E>I<0007E0003FF0007C78 +00F0FC01E0FC03E0FC03C07807C03007C00007C00007C00007C00007C00007C00007C000 +07C000FFFF80FFFF8007C00007C00007C00007C00007C00007C00007C00007C00007C000 +07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000FE000 +7FFE007FFE0016297FA815>I<007E03E001FF9FF007C3FCF00F00F0F01F00F8001E0078 +003E007C003E007C003E007C003E007C003E007C003E007C001E0078001F00F8000F00F0 +000FC3E0000DFF80001C7E00001C0000001C0000001C0000001E0000000FFFF0000FFFFC +0007FFFF001FFFFF803E001FC0780007C0780003E0F00001E0F00001E0F00001E0F00001 +E0780003C07C0007C03E000F800FC07E0003FFF800007FC0001C277E9921>I<0F800000 +FF800000FF8000001F8000000F8000000F8000000F8000000F8000000F8000000F800000 +0F8000000F8000000F8000000F8000000F81FC000F8FFF000F9C0F800FB007C00FE007C0 +0FC003E00FC003E00FC003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E0 +0F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E0 +1FC007F0FFF83FFEFFF83FFE1F287EA725>I<0E003F803F803F803F803F800E00000000 +00000000000000000000000780FF80FF801F800F800F800F800F800F800F800F800F800F +800F800F800F800F800F800F800F800F800F800F801F80FFF8FFF80D287EA713>I<000E +00003F80003F80003F80003F80003F80000E000000000000000000000000000000000000 +00000000000F8001FF8001FF80001F80000F80000F80000F80000F80000F80000F80000F +80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F +80000F80000F80000F80000F80000F80000F80000F80780F80FC0F80FC1F00FC1F00FC3E +00707C003FF8000FE000113483A715>I<0F800000FF800000FF8000001F8000000F8000 +000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000 +000F8000000F803FF80F803FF80F801FC00F801F000F803C000F8078000F80E0000F81C0 +000F8380000F8F00000F9F80000FBF80000FF7C0000FC3E0000F81F0000F81F8000F80F8 +000F807C000F803E000F803F000F801F800F800FC01FC00FE0FFF83FFCFFF83FFC1E287E +A723>I<0F80FF80FF801F800F800F800F800F800F800F800F800F800F800F800F800F80 +0F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F80 +0F800F800F801FC0FFF8FFF80D287EA713>I<0F81FC007F0000FF8FFF03FFC000FF9C0F +8703E0001FB007CC01F0000FE007D801F0000FC003F000F8000FC003F000F8000FC003F0 +00F8000F8003E000F8000F8003E000F8000F8003E000F8000F8003E000F8000F8003E000 +F8000F8003E000F8000F8003E000F8000F8003E000F8000F8003E000F8000F8003E000F8 +000F8003E000F8000F8003E000F8000F8003E000F8000F8003E000F8000F8003E000F800 +1FC007F001FC00FFF83FFE0FFF80FFF83FFE0FFF80311A7E9937>I<0F81FC00FF8FFF00 +FF9C0F801FB007C00FE007C00FC003E00FC003E00FC003E00F8003E00F8003E00F8003E0 +0F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E0 +0F8003E00F8003E00F8003E01FC007F0FFF83FFEFFF83FFE1F1A7E9925>I<003F800000 +FFE00003E0F80007803C000F001E001E000F003E000F803E000F807C0007C07C0007C07C +0007C0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E07C0007C07C +0007C07E000FC03E000F801E000F001F001F000F803E0003E0F80001FFF000003F80001B +1C7E9A21>I<0F81FC00FF8FFF00FFBC0FC01FF007E00FC003F00F8001F00F8001F80F80 +00FC0F8000FC0F80007C0F80007E0F80007E0F80007E0F80007E0F80007E0F80007E0F80 +007E0F80007C0F8000FC0F8000FC0F8001F80FC001F00FC003E00FF007C00FBC1F800F8F +FF000F83F8000F8000000F8000000F8000000F8000000F8000000F8000000F8000001FC0 +0000FFF80000FFF800001F257E9925>I<003F806001FFE0E003F070E007C019E00F800D +E01F0007E03F0007E07E0003E07E0003E07C0003E0FC0003E0FC0003E0FC0003E0FC0003 +E0FC0003E0FC0003E0FC0003E07C0003E07E0003E07E0003E03F0003E01F0007E01F800F +E00FC01BE003E073E001FFE3E0007F03E0000003E0000003E0000003E0000003E0000003 +E0000003E0000003E0000007F000003FFE00003FFE1F257E9923>I<0F07C0FF1FF0FF38 +F81F71F80F61F80FC1F80FC0F00FC0000F80000F80000F80000F80000F80000F80000F80 +000F80000F80000F80000F80000F80000F80000F80000F80001FC000FFFC00FFFC00151A +7E991A>I<03F8400FFEC03C07C07803C07001C0F000C0F000C0F000C0F800C0FC00007F +C0007FFC003FFF001FFF8007FFC000FFE00007E0C003F0C001F0C000F0E000F0E000F0F0 +00E0F001E0F801C0EE0780C7FF0081FC00141C7E9A1A>I<00C00000C00000C00000C000 +01C00001C00001C00003C00007C0000FC0001FC000FFFFE0FFFFE007C00007C00007C000 +07C00007C00007C00007C00007C00007C00007C00007C00007C00007C03007C03007C030 +07C03007C03007C03007C03003E06003E06001F0C000FF80003F0014257FA31A>I<0F80 +03E0FF803FE0FF803FE01F8007E00F8003E00F8003E00F8003E00F8003E00F8003E00F80 +03E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F8003E00F80 +03E00F8003E00F8007E00F8007E007800FE007C01BF003E073FE01FFE3FE007F83E01F1B +7E9925>IIII +I E /Fs 71 123 df<00000007F8003E000000001FFF00FF800000007E0783E3C0000000 +F803C7C1E0000001F00FC787E0000003E00FCF87E0000003E00FCF87E0000007C00F9F07 +C0000007C0071F0380000007C0001F000000000F80001F000000000F80003E000000000F +80003E000000000F80003E000000001F80003E000000001F00007E000000001F00007C00 +0000001F00007C000000001F00007C000000003F00007C000000003E00007C0000001FFF +FFFFFFF800001FFFFFFFFFF800001FFFFFFFFFF80000007E0000F8000000007C0000F800 +0000007C0001F8000000007C0001F0000000007C0001F000000000FC0001F000000000F8 +0001F000000000F80003F000000000F80003E000000000F80003E000000001F80003E000 +000001F00003E000000001F00007E000000001F00007C000000001F00007C000000001F0 +0007C000000003F00007C000000003E0000FC000000003E0000F8000000003E0000F8000 +000003E0000F8000000007E0000F8000000007C0001F8000000007C0001F0000000007C0 +001F000000000FC0001F000000000FC0001F000000000F80003F000000000F80003E0000 +00000F80003E000000001F80003E000000001F00007E000000001F00007C000000001F00 +007C000000003E00007C000000003E0000F8000000383E1C00F80000007E3C3F00F00000 +007E3C3F01F0000000FE787F03E0000000FC787E03C0000000F8F03C078000000078E03C +1F000000003FC01FFC000000000F0003F0000000003B4582B42F>11 +D<00000003FF800000001FFFF00000003F00F8000000F8003C000001F0003E000003E000 +7E000003E000FE000007C000FE000007C000FC000007C0003800000F80000000000F8000 +0000000F80000000001F80000000001F00000000001F00000000001F00000000001F0000 +0000001F00000000003F00000000003E000000001FFFFFFFE0001FFFFFFFE0001FFFFFFF +C000007E0007C000007C0007C000007C000FC000007C000F8000007C000F800000FC000F +800000F8001F800000F8001F000000F8001F000000F8001F000001F8003F000001F0003E +000001F0003E000001F0003E000001F0007E000003F0007C000003E0007C000003E0007C +180003E000FC1C0003E000F83C0007E000F8380007C000F8380007C000F8780007C000F8 +700007C000F070000FC000F0F0000F8000F8E0000F800079E0000F80003FC0001F80000F +00001F80000000001F00000000001F00000000001F00000000003E00000000003E000000 +00383E000000007E3C000000007E7C00000000FE7800000000FC7800000000F8F0000000 +0079E0000000003FC0000000000F00000000002F4582B42B>I<3800F800FC00FC007E00 +3E003F001F000F800F80078003C003C001C000800A0F6AB327>18 +D<000E001F003F007E00FC01F803F007E00F801F003E007C00F800F000100E67B327>I< +03800FE01FE01FE01FE01FE01FE00760006000E000C000C001C001800380070006000E00 +1C0038007000E000C0000B176FB318>39 D<00000060000001E0000003C0000007000000 +0E0000001C0000003C00000078000000F0000001E0000003C0000007C00000078000000F +0000001F0000001E0000003C0000007C00000078000000F8000000F0000001F0000001E0 +000003E0000003C0000007C0000007C00000078000000F8000000F8000000F0000001F00 +00001F0000001E0000003E0000003E0000003E0000003C0000007C0000007C0000007C00 +00007800000078000000F8000000F8000000F8000000F0000000F0000000F0000000F000 +0000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000 +0000F0000000F000000070000000780000007800000038000000380000003C0000001C00 +00001C0000000E0000000E0000000700000003800000018000001B4A75B71F>I<000030 +00000038000000380000001C0000000E0000000E0000000F000000070000000780000007 +8000000380000003C0000003C0000003C0000003C0000001C0000001E0000001E0000001 +E0000001E0000001E0000001E0000001E0000001E0000003E0000003E0000003E0000003 +E0000003C0000003C0000003C0000007C0000007C0000007C00000078000000F8000000F +8000000F8000000F0000001F0000001F0000001F0000001E0000003E0000003E0000003C +0000007C0000007C000000F8000000F8000000F0000001F0000001E0000003E0000003C0 +000007C00000078000000F8000000F0000001E0000003E0000003C00000078000000F000 +0001E0000001E0000003C00000078000000F0000001E0000003C00000070000000E00000 +00C00000001B4A7EB71F>I<03800FE01FE01FE01FE01FE01FE00760006000E000C000C0 +01C001800380070006000E001C0038007000E000C0000B177A8718>44 +DI<1C7FFFFFFFFFFE380808778718> +I<00001FC000007FF00001E0F80007C03C000F003C001E001E003E001E003C001F007800 +1F00F8001F00F0001F01F0001F01F0001F03E0001F03E0001F07E0003F07C0003F07C000 +3F0FC0003F0FC0003E0F80007E1F80007E1F80007E1F80007E3F0000FC3F0000FC3F0000 +FC3F0000FC7E0001F87E0001F87E0001F87E0001F87C0003F0FC0003F0FC0003F0FC0007 +E0FC0007E0F80007C0F80007C0F8000F80F8000F80F8001F00F8001F00F8001E00F8003C +0078007C007800F8007C01F0003C03E0001F0F80000FFE000003F80000203477B127>48 +D<0000018000000380000003800000078000000F8000001F0000003F000000FF000001FF +00001FFE00007FBE00007E7E0000207E0000007C0000007C000000FC000000FC000000F8 +000000F8000001F8000001F8000001F0000001F0000003F0000003F0000003E0000003E0 +000007E0000007E0000007C0000007C000000FC000000FC000000F8000000F8000001F80 +00001F8000001F0000001F0000003F0000003F0000003E0000003E0000007E0000007E00 +00007C000000FC0000FFFFFC00FFFFFC00FFFFFC00193277B127>I<00000FE00000003F +F8000000F03E000003C01F000007800F80000F000F80001E0007C0001C0007C000380007 +C00078C007E00070E007E000F06007E000E06007E001E06007E001C06007E001C0E00FE0 +03C0C00FC00380C00FC00381C00FC00381801FC00383801F800387003F80038E003F0001 +FC007E0000F000FC00000001F800000003F000000007E00000000FC00000001F00000000 +7E00000000F800000003E00000000FC00000001F000000003E000000007800000001F000 +038003E000038003C000078007800007000F00000F001E00000F001C00001E003F00003E +003FF8007C007DFF80F800781FFFF800F00FFFF000E003FFE000E001FF8000E0007E0000 +23347AB127>I<000007F00000003FFC000000F81E000003E00F000007800780000F0007 +C0001E0003C0003C0003C000380003E000798003E00071C003E00070C007E000F0C007C0 +00E0C007C000E0C007C000E1C00FC000E3800F80007F001F80003C001F000000003E0000 +00007C00000000F800000001F00000001FE0000007FF80000007FE00000003FF00000000 +07C000000003E000000003E000000001F000000001F000000001F000000001F000000001 +F000000003F000180003F0007E0003F0007E0003F0007E0007F000FC0007E000F80007E0 +00E0000FC000E0000FC000F0001F800070003F000070007E00007800FC00003C01F00000 +1E07E0000007FF80000001FC000000233479B127>I<0000000E0000001F0000001F0000 +003F0000003E0000003E0000003E0000007E0000007C0000007C000000FC000000F80000 +00F8000001F8000001F0000001F0000003E0000003E0000003E0000007C0000007C00000 +0F8000000F8000001F0000001F0000003E0000003E0000007C00000078000000F8000000 +F0000001F0000003E0E00003C1F0000781F0000F83F0000F03E0001E03E0003C03E0007C +07E000F807C001F007C003E007C007C00FC00F800F801FFC0F803FFFCF807FFFFF82F003 +FFFF60003FFF00001FF800003F0000003E0000003E0000003E0000007E0000007C000000 +7C0000007C000000FC000000F8000000F8000000F8000000F8000000600020417DB127> +I<00060000C0000FC00FC0000FFFFF80000FFFFF00000FFFFC00001FFFF000001FFFC000 +001CFE0000001C000000003C000000003800000000380000000038000000007800000000 +700000000070000000007000000000F000000000E0FE000000E3FF800000EF03C00001FC +01E00001F801F00001F000F00001E000F80003C000F800038000F800000000F800000000 +F800000000F800000000F800000001F800000001F800000001F800000001F8003C0003F8 +00FC0003F000FC0003F000FC0003F000FC0007E000F80007E000E0000FC000E0000FC000 +E0001F8000E0003F0000F0007E00007000FC00007801F800003E07F000001FFFC000000F +FF00000003F8000000223478B127>I<000001F80000000FFE0000003FFF000000FE0F00 +0001F807800003E00F800007C01F80000F803F80001F003F00003E003F00007C000E0000 +FC00000000F800000001F800000003F000000003F000000007E000000007E00000000FC1 +F800000FC7FF00000FDE0780001FB803C0001FF003E0001FE001E0003FE001F0003FC001 +F0003F8001F0003F8001F0007F0001F8007F0001F8007E0001F8007E0003F0007E0003F0 +00FC0003F000FC0003F000FC0007F000FC0007E000FC0007E000F80007E000F8000FC000 +F8000FC000F8000F8000F8001F8000F8003F000078003E00007C007C00007C00F800003E +01F000001F07E000001FFFC0000007FF00000001F8000000213477B127>I<00E0F80038 +00E3FC003801EFFE007801FFFE00F003FFFE01E003FE0E03E007F80E03C007F0060F800F +C0071F800F8003FF001F0001EF001E00001E003E00003C003C00003C0078000078007800 +00F800F00000F000E00001F000E00001E000000003E000000007C000000007C00000000F +800000000F800000001F800000001F000000003F000000003E000000007E000000007E00 +000000FC00000000FC00000001F800000001F800000001F800000003F000000003F00000 +0007F000000007E000000007E00000000FE00000000FC00000000FC00000001FC0000000 +1FC00000001F800000003F800000003F800000003F800000003F000000003F000000001C +000000253476B127>I<000007E00000003FFC0000007FFE000001F81F000003E00F8000 +07800780000F0007C0001F0003C0001E0003C0003C0003C0003C0003C0003C0007C0007C +000780007C000780007C000F80007C000F00007E001E00007F003E00007F807C00003FC0 +F800003FE1E000001FFBC000000FFF00000007FE00000003FF00000007FF8000001EFFC0 +00007C7FE00000F01FF00001E00FF80007C007F800078003F8000F0001F8001E0000F800 +3E0000F8003C000078007C0000780078000078007800007800780000F800F80000F000F0 +0000F000F80001E000780003E000780003C0007C000780003C001F00003E003E00001F81 +FC00000FFFF0000003FFC0000000FE000000223479B127>I<00000FC00000007FF00000 +00FFFC000003F07E000007C03E00000F801F00001F001F00003E000F00007E000F8000FC +000F8000FC000F8001F8000F8001F8000F8003F0000F8003F0001F8003F0001F8007F000 +1F8007E0001F8007E0001F8007E0003F0007E0003F000FC0003F000FC0007F000FC0007F +0007C000FE0007C000FE0007C001FE0007C003FE0003C003FC0003E007FC0001E00EFC00 +00F03DF800007FF1F800000FC1F800000003F000000003F000000007E000000007E00000 +0007C00000000F800000001F800038001F00007E003E0000FE007E0000FE00FC0000FC01 +F80000F803F00000F007E00000781F8000007FFF0000001FFC00000007E0000000213478 +B127>I<007001FC03FC03FC03FC03FC03F800E000000000000000000000000000000000 +000000000000000000000000000000001C007F00FF00FF00FF00FF00FE0038000E20779F +18>I<000000001C00000000003C00000000003C00000000007C0000000000FC00000000 +00FC0000000001FC0000000001FE0000000003FE0000000003FE00000000077E00000000 +0F7E000000000E7E000000001C7E000000001C7E00000000387E00000000387E00000000 +707E00000000F07E00000000E07E00000001C07E00000001C07E00000003807F00000003 +803F00000007003F00000007003F0000000E003F0000001E003F0000001C003F00000038 +003F00000038003F00000070003F00000070003F000000E0003F000001FFFFFF000001FF +FFFF000003FFFFFF00000380003F00000700001F80000700001F80000E00001F80001E00 +001F80001C00001F80003C00001F80003800001F80007000001F8000F000001F8000E000 +001F8001E000001F8003E000001F800FF000003FC0FFFE0007FFFEFFFE0007FFFEFFFE00 +07FFFE2F367BB539>65 D<0007FFFFFFC000000FFFFFFFF000000FFFFFFFFC0000003F80 +00FE0000003F80007F0000003F80003F8000003F00001F8000003F00001F8000007F0000 +1FC000007F00001FC000007E00001FC000007E00001FC00000FE00001FC00000FE00001F +800000FC00003F800000FC00003F800001FC00007F000001FC00007E000001F80000FC00 +0001F80001FC000003F80003F0000003F80007E0000003F0001FC0000003FFFFFF000000 +07FFFFFE00000007F0007F80000007E0000FC0000007E00007E000000FE00003F000000F +E00003F800000FC00001F800000FC00001F800001FC00001FC00001FC00001FC00001F80 +0001FC00001F800001FC00003F800001FC00003F800001F800003F000003F800003F0000 +03F800007F000007F000007F000007F000007E00000FE000007E00001FC00000FE00003F +800000FE00007F000000FC0001FE000001FC0007FC00007FFFFFFFF00000FFFFFFFFC000 +00FFFFFFFE00000032337BB236>I<0000001FF000C0000000FFFC01C0000003FFFF03C0 +00000FF00F878000003F8003CF800000FE0001EF800001FC0000FF800003F00000FF0000 +0FE000007F00001FC000007F00003F8000003F00003F0000003E00007E0000003E0000FE +0000003E0001FC0000003E0003F80000003C0003F80000003C0007F00000003C0007F000 +00003C000FE000000038000FE000000038001FC000000038001FC000000000003FC00000 +0000003F8000000000003F8000000000003F8000000000007F8000000000007F00000000 +00007F0000000000007F0000000000007F000000000000FE000000000000FE0000000000 +00FE00000003C000FE00000003C000FE0000000380007E0000000380007E000000078000 +7E0000000700007E0000000F00007E0000000E00007F0000001E00003F0000003C00003F +0000007800001F8000007000001F800000F000000FC00001E0000007E00007C0000003F0 +000F00000001F8003E00000000FF00FC000000007FFFF0000000001FFFC00000000003FE +00000000323775B437>I<0007FFFFFFC000000FFFFFFFF000000FFFFFFFFC0000003F80 +01FE0000003F80007F0000003F80001F8000003F00000FC000003F000007E000007F0000 +07E000007F000003F000007E000003F000007E000001F00000FE000001F80000FE000001 +F80000FC000001F80000FC000001F80001FC000001F80001FC000001F80001F8000001F8 +0001F8000001F80003F8000001F80003F8000003F80003F0000003F80003F0000003F800 +07F0000003F80007F0000003F00007E0000007F00007E0000007F0000FE0000007F0000F +E0000007E0000FC000000FE0000FC000000FC0001FC000001FC0001FC000001F80001F80 +00001F80001F8000003F00003F8000003F00003F8000007E00003F000000FC00003F0000 +00FC00007F000001F800007F000003F000007E000007E000007E00000FC00000FE00001F +800000FE00007E000000FC0001FC000001FC000FF800007FFFFFFFE00000FFFFFFFF0000 +00FFFFFFF800000035337BB23A>I<0007FFFFFFFFF0000FFFFFFFFFF0000FFFFFFFFFE0 +00003F80001FE000003F800007E000003F800003E000003F000003E000003F000001E000 +007F000001E000007F000001C000007E000001C000007E000001C00000FE000001C00000 +FE000001C00000FC000E01C00000FC000E01C00001FC001E03C00001FC001C03800001F8 +001C00000001F8003C00000003F8003C00000003F8007800000003F001F800000003FFFF +F800000007FFFFF800000007FFFFF000000007E001F000000007E000F00000000FE000F0 +0000000FE000E00000000FC000E00000000FC000E00700001FC001E00F00001FC001C00E +00001F8001C01E00001F8000001C00003F8000001C00003F8000003C00003F0000003800 +003F0000007800007F000000F000007F000000F000007E000001F000007E000003E00000 +FE000007E00000FE00000FC00000FC00001FC00001FC0001FF80007FFFFFFFFF8000FFFF +FFFFFF8000FFFFFFFFFF000034337CB234>I<0007FFFFFFFFE0000FFFFFFFFFE0000FFF +FFFFFFC000003F80003FC000003F80000FC000003F800007C000003F000007C000003F00 +0003C000007F000003C000007F0000038000007E0000038000007E000003800000FE0000 +03800000FE000003800000FC000003800000FC001C03800001FC003C07800001FC003807 +000001F8003800000001F8003800000003F8007800000003F8007000000003F000F00000 +0003F003F000000007FFFFF000000007FFFFF000000007FFFFE000000007E003E0000000 +0FE003E00000000FE001C00000000FC001C00000000FC001C00000001FC003C00000001F +C003800000001F8003800000001F8003800000003F8000000000003F8000000000003F00 +00000000003F0000000000007F0000000000007F0000000000007E0000000000007E0000 +00000000FE000000000000FE000000000000FC000000000001FC00000000007FFFFC0000 +0000FFFFFC00000000FFFFFC0000000033337CB232>I<0000001FE00180000000FFF803 +80000007FFFE078000001FF01F0F0000003F80079F000000FE0003DF000001F80001FF00 +0007F00001FE00000FE00000FE00001FC00000FE00003F8000007E00007F0000007C0000 +7E0000007C0000FE0000007C0001FC0000007C0003F8000000780003F8000000780007F0 +000000780007F000000078000FE000000070000FE000000070001FC000000070001FC000 +000000003FC000000000003F8000000000003F8000000000003F8000000000007F800000 +0000007F0000000000007F0000000000007F0000000000007F000000000000FE00003FFF +FC00FE00003FFFFC00FE00003FFFF800FE0000003F8000FE0000003F0000FE0000003F00 +007E0000007F00007E0000007F00007E0000007E00007E0000007E00007F000000FE0000 +3F000000FE00003F000000FC00001F800001FC00001F800001FC00000FC00003F800000F +E00007F8000007F0000F78000003F8003E78000000FF01FC300000007FFFF0300000001F +FFC00000000003FE00000000313775B43B>I<0007FFFF01FFFFC0000FFFFF03FFFFC000 +0FFFFF03FFFFC000003FC0000FF00000003F80000FE00000003F80000FE00000003F0000 +0FC00000003F00000FC00000007F00001FC00000007F00001F800000007E00001F800000 +007E00001F80000000FE00003F80000000FE00003F00000000FC00003F00000000FC0000 +3F00000001FC00007F00000001FC00007E00000001F800007E00000001F800007E000000 +03F80000FE00000003F80000FC00000003F00000FC00000003FFFFFFFC00000007FFFFFF +FC00000007FFFFFFF800000007E00001F800000007E00001F80000000FE00003F8000000 +0FE00003F00000000FC00003F00000000FC00003F00000001FC00007F00000001FC00007 +E00000001F800007E00000001F800007E00000003F80000FE00000003F80000FC0000000 +3F00000FC00000003F00000FC00000007F00001FC00000007F00001F800000007E00001F +800000007E00001F80000000FE00003F80000000FE00003F00000000FC00003F00000001 +FC00007F0000007FFFF01FFFFC0000FFFFF03FFFFC0000FFFFF03FFFFC00003A337BB239 +>I<000FFFFF80000FFFFF80000FFFFF0000003FC00000003F800000003F800000003F00 +0000003F000000007F000000007F000000007E000000007E00000000FE00000000FE0000 +0000FC00000000FC00000001FC00000001FC00000001F800000001F800000003F8000000 +03F800000003F000000003F000000007F000000007F000000007E000000007E00000000F +E00000000FE00000000FC00000000FC00000001FC00000001FC00000001F800000001F80 +0000003F800000003F800000003F000000003F000000007F000000007F000000007E0000 +00007E00000000FE00000000FE00000000FC00000001FC000000FFFFF80000FFFFF80000 +FFFFF0000021337BB21E>I<00001FFFFE00003FFFFE00003FFFFC0000003F800000003F +800000003F800000003F000000003F000000007F000000007E000000007E000000007E00 +000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F80000 +0001F800000003F800000003F000000003F000000003F000000007F000000007E0000000 +07E000000007E00000000FE00000000FC00000000FC00000000FC00000001FC00000001F +800000001F800000001F800000003F800000003F000000003F00001C003F00007E007F00 +00FE007E0000FE007E0000FE00FE0000FC00FC0000F801FC0000E001F80000E003F00000 +7007E00000780FC000003C1F0000001FFC00000007F0000000273579B228>I<0007FFFF +000FFFF0000FFFFF000FFFF0000FFFFF000FFFE000003FC00003FE0000003F800003F800 +00003F800003E00000003F000007C00000003F00000F000000007F00001E000000007F00 +007C000000007E0000F8000000007E0001E000000000FE0003C000000000FE0007800000 +0000FC001F0000000000FC003E0000000001FC00780000000001FC00F00000000001F801 +E00000000001F807C00000000003F80F800000000003F81FC00000000003F03FC0000000 +0003F07FC00000000007F1FFE00000000007F3E7E00000000007E787F00000000007EF07 +F0000000000FFE03F0000000000FFC03F8000000000FF801F8000000000FE001F8000000 +001FC001FC000000001FC000FC000000001F8000FE000000001F8000FE000000003F8000 +7E000000003F80007F000000003F00003F000000003F00003F800000007F00003F800000 +007F00001F800000007E00001FC00000007E00000FC0000000FE00000FC0000000FE0000 +0FE0000000FC00000FE0000001FC00000FF000007FFFF000FFFF8000FFFFF001FFFF8000 +FFFFF001FFFF00003C337BB23B>I<0007FFFFC000000FFFFFC000000FFFFFC00000003F +C0000000003F80000000003F80000000003F00000000003F00000000007F00000000007F +00000000007E00000000007E0000000000FE0000000000FE0000000000FC0000000000FC +0000000001FC0000000001FC0000000001F80000000001F80000000003F80000000003F8 +0000000003F00000000003F00000000007F00000000007F00000000007E00000000007E0 +000000000FE0000000000FE0000000000FC0000000000FC00000E0001FC00001E0001FC0 +0001C0001F800001C0001F800003C0003F80000380003F80000780003F00000780003F00 +000F00007F00000F00007F00001F00007E00003E00007E00003E0000FE00007C0000FE00 +01FC0000FC0003FC0001FC001FF8007FFFFFFFF800FFFFFFFFF800FFFFFFFFF0002B337C +B230>I<0007FFC00000007FFC000FFFC0000000FFFC000FFFE0000000FFFC00003FE000 +0001FF0000003FE0000001FE0000003FE0000003FE0000003BE00000077C0000003BE000 +00077C0000007BE000000EFC0000007BE000000EF800000073E000001CF800000073E000 +0038F8000000F1F0000039F8000000F1F0000071F0000000E1F0000071F0000000E1F000 +00E1F0000001E1F00001C3F0000001E1F00001C3E0000001C1F0000383E0000001C1F000 +0703E0000003C1F0000707E0000003C1F0000E07C000000380F8000E07C000000380F800 +1C07C000000780F800380FC000000780F800380F8000000700F800700F8000000700F800 +700F8000000F00F800E01F8000000F00F801C01F0000000E00F801C01F0000000E00F803 +801F0000001E007C03803F0000001E007C07003E0000001C007C0E003E0000001C007C0E +003E0000003C007C1C007E0000003C007C1C007C00000038007C38007C00000038007C70 +007C00000078007C7000FC00000078003EE000F800000070003EE000F800000070003FC0 +00F8000000F0003F8001F8000000F0003F8001F0000001F0003F0001F0000007F8003F00 +03F000007FFF803E00FFFFC000FFFF803C01FFFFC000FFFF801C01FFFFC00046337BB245 +>I<0007FF80003FFFC0000FFFC0007FFFC0000FFFC0007FFFC000001FC00003F8000000 +3FE00001F00000003FE00001E00000003FE00001C00000003BF00001C00000007BF00003 +C00000007BF000038000000071F800038000000071F8000380000000F1F8000780000000 +F0FC000700000000E0FC000700000000E0FC000700000001E07E000F00000001E07E000E +00000001C07E000E00000001C03F000E00000003C03F001E00000003C03F801C00000003 +801F801C00000003801F801C00000007801FC03C00000007800FC03800000007000FC038 +00000007000FE0380000000F0007E0780000000F0007E0700000000E0007F0700000000E +0003F0700000001E0003F0F00000001E0003F8E00000001C0001F8E00000001C0001F8E0 +0000003C0001FDE00000003C0000FDC0000000380000FDC0000000380000FFC000000078 +00007FC00000007800007F800000007000003F800000007000003F80000000F000003F80 +000000F000001F00000001F000001F00000007F800001F0000007FFF80000F000000FFFF +80000E000000FFFF80000E0000003A337BB239>I<0000001FE000000001FFFC00000007 +E03F0000001F800FC000003E0003E00000F80001F00001F00001F00003E00000F80007C0 +0000FC000F8000007C001F0000007E003E0000007E007E0000003E00FC0000003F01F800 +00003F01F80000003F03F00000003F07F00000003F07E00000003F0FE00000003F0FC000 +00003F1FC00000003F1FC00000007F1F800000007F3F800000007F3F800000007F3F8000 +00007F7F00000000FE7F00000000FE7F00000000FE7F00000000FE7F00000001FCFE0000 +0001FCFE00000003F8FE00000003F8FE00000003F0FE00000007F0FE00000007E0FE0000 +000FE07E0000000FC07E0000001F807E0000001F807E0000003F003F0000007E003F0000 +00FC003F000000F8001F800001F0000F800003E0000FC00007C00007C0001F800003E000 +3E000001F800FC0000007E07F00000003FFF8000000007FC000000303775B43B>I<0007 +FFFFFFC000000FFFFFFFF800000FFFFFFFFC0000003F8001FE0000003F80003F0000003F +80001F8000003F00001FC000003F00000FC000007F00000FC000007F00000FE000007E00 +000FE000007E00000FE00000FE00000FE00000FE00001FC00000FC00001FC00000FC0000 +1FC00001FC00001F800001FC00003F800001F800003F000001F800007E000003F80000FE +000003F80000FC000003F00003F8000003F00007E0000007F0003FC0000007FFFFFF0000 +0007FFFFF800000007E000000000000FE000000000000FE000000000000FC00000000000 +0FC000000000001FC000000000001FC000000000001F8000000000001F8000000000003F +8000000000003F8000000000003F0000000000003F0000000000007F0000000000007F00 +00000000007E0000000000007E000000000000FE000000000000FE000000000000FC0000 +00000001FC00000000007FFFF000000000FFFFF000000000FFFFF00000000033337CB234 +>I<0007FFFFFE0000000FFFFFFFC000000FFFFFFFF00000003F8007F80000003F8001FC +0000003F80007E0000003F00007F0000003F00003F0000007F00003F0000007F00003F80 +00007E00003F8000007E00003F800000FE00003F800000FE00007F000000FC00007F0000 +00FC00007F000001FC0000FE000001FC0000FC000001F80001FC000001F80001F8000003 +F80003F0000003F8000FC0000003F0001F80000003F000FE00000007FFFFF000000007FF +FFC000000007E003E000000007E001F80000000FE000FC0000000FE0007C0000000FC000 +7E0000000FC0007E0000001FC0007E0000001FC0007E0000001F80007E0000001F80007E +0000003F8000FE0000003F8000FE0000003F0000FE0000003F0000FE0000007F0001FE00 +00007F0001FC0000007E0001FC0000007E0001FC01C000FE0001FC03C000FE0001FC0380 +00FC0001FC038001FC0001FC07807FFFF000FC0700FFFFF000FE0E00FFFFF0007E1C0000 +0000001FF8000000000007E00032357BB238>82 D<000001FC018000000FFF038000003F +FFC78000007E07EF800001F801FF000003F000FF000003E0007F000007C0007F00000F80 +003E00001F80003E00001F00003E00003F00003E00003E00003C00003E00003C00003E00 +003C00007E00003C00007E00003800007E00003800007E00000000007F00000000007F00 +000000003F80000000003FE0000000003FFE000000001FFFC00000000FFFF800000007FF +FC00000001FFFE000000007FFF000000000FFF8000000000FF80000000003F8000000000 +1FC0000000000FC0000000000FC0000000000FC0000000000FC0000E00000FC0000E0000 +0FC0001E00000F80001C00000F80001C00000F80001C00001F80003C00001F00003C0000 +1F00003E00003E00003E00007C00007E00007C00007F0000F800007F8001F000007FC007 +E00000F3F80FC00000F0FFFF000000E03FFC000000C00FF000000029377AB42B>I<03FF +FFFFFFFFC007FFFFFFFFFFC007FFFFFFFFFF8007F800FC003F800FC001FC001F800F8001 +FC000F800F0001F8000F801E0001F80007001E0003F80007001C0003F80007003C0003F0 +000F003C0003F0000F00380007F0000E00780007F0000E00700007E0000E00700007E000 +0E0070000FE0001E00F0000FE0001C0000000FC000000000000FC000000000001FC00000 +0000001FC000000000001F8000000000001F8000000000003F8000000000003F80000000 +00003F0000000000003F0000000000007F0000000000007F0000000000007E0000000000 +007E000000000000FE000000000000FE000000000000FC000000000000FC000000000001 +FC000000000001FC000000000001F8000000000001F8000000000003F8000000000003F8 +000000000003F0000000000003F0000000000007F0000000000007F0000000000007E000 +000000000FF0000000001FFFFFF00000003FFFFFF00000003FFFFFF0000000323374B237 +>I<3FFFF801FFFE7FFFF803FFFE7FFFF803FFFE01FE00001FC001FC00000F8001FC0000 +0F0001F800000E0001F800000E0001F800001E0003F800001E0003F000001C0003F00000 +1C0003F000003C0007F000003C0007E00000380007E00000380007E0000078000FE00000 +78000FC0000070000FC0000070000FC00000F0001FC00000F0001F800000E0001F800000 +E0001F800001E0003F800001E0003F000001C0003F000001C0003F000003C0007F000003 +C0007E00000380007E00000380007E0000078000FE0000078000FC0000070000FC000007 +0000FC00000F0000FC00000E0000F800001E0000F800001C0000F800003C0000F8000038 +0000F80000780000FC0000F00000FC0000E000007C0001E000007E0003C000003E000F80 +00001F001E0000000FC0FC00000007FFF800000001FFE0000000007F000000002F3570B2 +39>II +I89 D<00001FFE00003FFE00003FFE00003FFC00003C0000007C00000078000000 +7800000078000000F8000000F0000000F0000000F0000001F0000001E0000001E0000001 +E0000003E0000003C0000003C0000003C0000007C000000780000007800000078000000F +8000000F0000000F0000000F0000001F0000001E0000001E0000001E0000003E0000003C +0000003C0000003C0000007C000000780000007800000078000000F8000000F0000000F0 +000000F0000001F0000001E0000001E0000001E0000003E0000003C0000003C0000003C0 +000007C000000780000007800000078000000F8000000F0000000F0000000F0000001F00 +00001E0000001E0000001E0000003E0000003C0000003C0000003C0000007C0000007800 +00007FF800007FF80000FFF80000FFF800001F4B7DB718>91 D<00001FFE00003FFE0000 +3FFE00003FFC0000003C0000007C0000007C0000007800000078000000F8000000F80000 +00F0000000F0000001F0000001F0000001E0000001E0000003E0000003E0000003C00000 +03C0000007C0000007C0000007800000078000000F8000000F8000000F0000000F000000 +1F0000001F0000001E0000001E0000003E0000003E0000003C0000003C0000007C000000 +7C0000007800000078000000F8000000F8000000F0000000F0000001F0000001F0000001 +E0000001E0000003E0000003E0000003C0000003C0000007C0000007C000000780000007 +8000000F8000000F8000000F0000000F0000001F0000001F0000001E0000001E0000003E +0000003E0000003C0000003C0000007C0000007C00007FF800007FF80000FFF80000FFF8 +00001F4B82B718>93 D<0003F000000FF800003E1C60007C0FF000F807F001F007F003E0 +07F007E003E00FC003E00FC003E01F8007E01F8007C03F0007C03F0007C03F000FC07F00 +0F807E000F807E000F807E001F80FE001F00FC001F00FC001F06FC003F07FC003E0FFC00 +3E0EFC007E0E7C007E1E7C00FE1C7C01FC1C3C03FC3C3E07BE381F0E1E7807FC0FF001F0 +03C0202278A027>97 D<007E00000FFE00001FFE00001FFC000000FC000000FC000000FC +000000F8000000F8000001F8000001F8000001F0000001F0000003F0000003F0000003E0 +000003E0000007E0000007E0000007C3E00007CFF8000FDC3E000FF81F000FF00F000FE0 +0F801FC00F801F800F801F800FC01F000FC03F000FC03F000FC03E000FC03E000FC07E00 +1FC07E001F807C001F807C001F807C003F80FC003F00F8003F00F8003F00F8007E00F800 +7E00F800FC00F800FC007801F8007801F0007803E0003C07C0003C0F80001E1F00000FFC +000003F000001A3578B323>I<0000FC000007FF00001F0780003E03C000FC01C001F803 +C003F007C007E00FC007C00FC00FC00FC01F8007001F8000003F0000003F0000003F0000 +007F0000007E0000007E0000007E000000FE000000FC000000FC000000FC000000FC0000 +007C0000C07C0001E07C0001E07C0003C03E000F803E001F001F007C000F81F00003FFC0 +0000FE00001B2278A023>I<0000000FC0000003FFC0000003FFC0000003FF800000001F +800000001F800000001F800000001F000000001F000000003F000000003F000000003E00 +0000003E000000007E000000007E000000007C000000007C00000000FC00000000FC0000 +03F0F800000FF8F800003E1DF800007C0FF80000F807F00001F007F00003E007F00007E0 +03F0000FC003E0000FC003E0001F8007E0001F8007E0003F0007C0003F0007C0003F000F +C0007F000FC0007E000F80007E000F80007E001F8000FE001F8000FC001F0000FC001F06 +00FC003F0700FC003F0F00FC003E0E00FC007E0E007C007E1E007C00FE1C007C01FC1C00 +3C03FC3C003E07BE38001F0E1E780007FC0FF00001F003C000223578B327>I<0003F800 +000FFE00003E0F0000F8078001F0038003E0038007C003800FC003801F8003801F800780 +3F0007003F000F007E003E007E03F8007FFFE000FFFE0000FC000000FC000000FC000000 +FC000000F8000000F8000000F8000000F8000000F8000180F80003C0F80003C07C000780 +7C001F003C003E001E00F8000F03E00007FF800001FC00001A2277A023>I<0000001F00 +0000007FC0000000F0E0000001F0F0000003E3F0000003E3F0000007C3F0000007C3E000 +0007C1C000000FC00000000F800000000F800000000F800000000F800000001F80000000 +1F000000001F000000001F000000001F000000003F000000003E0000001FFFFE00001FFF +FE00001FFFFE0000007E000000007C000000007C000000007C000000007C00000000FC00 +000000F800000000F800000000F800000000F800000000F800000001F800000001F00000 +0001F000000001F000000001F000000003F000000003E000000003E000000003E0000000 +03E000000007E000000007C000000007C000000007C00000000FC00000000FC00000000F +800000000F800000000F800000001F800000001F000000001F000000001F000000003F00 +0000003E000000383E0000007E3C0000007E3C000000FE78000000FC78000000F8F00000 +0078E00000003FC00000000F00000000244582B418>I<00003F000000FF800003E1E600 +07C0FF000F807F001F007F003E007F007E003F00FC003E00FC003E01F8007E01F8007E03 +F0007C03F0007C03F000FC07F000FC07E000F807E000F807E001F807E001F80FC001F00F +C001F00FC003F007C003F007C003E007C007E007C00FE007C01FE003E03FC001E07FC001 +F0FFC0007FCFC0001F0F8000000F8000001F8000001F8000001F0000001F0000003F0000 +003E0038003E007E007E007E00FC00FE00F800FC01F0007803E0007C0F80001FFF000007 +F8000020317CA023>I<000FC0000003FFC0000003FFC0000003FF800000001F80000000 +1F800000001F800000001F000000001F000000003F000000003F000000003E000000003E +000000007E000000007E000000007C000000007C00000000FC00000000FC00000000F83F +800000F8FFE00001FBE0F00001FF80F80001FF00780001FE007C0003FC007C0003F8007C +0003F0007C0003F0007C0007E000FC0007E000F80007C000F80007C000F8000FC001F800 +0FC001F0000F8001F0000F8001F0001F8003F0001F8003E0001F0007E0001F0007C0C03F +0007C1E03F000FC1C03E000F81C03E000F81C07E000F83C07E000F03807C000F07807C00 +0F0700FC000F0E00FC000F1E00F80007F800700001F00023357BB327>I<0001800007E0 +0007E0000FE00007C0000380000000000000000000000000000000000000000000000000 +00000000000000000001F00003FC000F1E000E1E001C1E003C1E00381E00783E00703E00 +703E00707E00F07C0060FC0000F80000F80001F80001F00001F00003F00003E00003E000 +07E0C007C1E00FC1C00F81C00F81C00F83C00F03800F07800F07000F0E000F1E0007F800 +01F00013337AB118>I<000FC00001FFC00003FFC00003FF8000001F8000001F8000001F +8000001F0000001F0000003F0000003F0000003E0000003E0000007E0000007E0000007C +0000007C000000FC000000FC000000F8007800F801FE01F8078F01F80E0F01F01C3F01F0 +383F03F0703F03F0E03E03E1C01C03E3800007E7000007EE000007DC000007F800000FF8 +00000FFF00000F9FC0000F83F0001F81F0001F80F8001F00F8001F00F80C3F00F81E3F00 +F81C3E00F81C3E00F81C7E00F83C7E00F8387C00F8387C00F878FC007870FC0078E0F800 +3FC070000F8020357BB323>107 D<003F07FF0FFF0FFE007E007E007E007C007C00FC00 +FC00F800F801F801F801F001F003F003F003E003E007E007E007C007C00FC00FC00F800F +801F801F801F001F003F003F003E003E007E007E007C007C18FC1CFC3CF838F838F878F8 +70F070F0F0F8E079E03FC00F00103579B314>I<03C003F8007F00000FF00FFE01FFC000 +1E783C1F07C1E0001C7CF00F8F01F0003C3DE0079E00F000383FC007FC00F800387F8007 +F800F800707F0007F000F800707F0007E000F800707E0007E000F800F0FC000FC001F800 +E0FC000FC001F00060F8000F8001F00000F8000F8001F00001F8001F8003F00001F8001F +8003E00001F0001F0003E00001F0001F0003E00003F0003F0007E00003F0003F0007C000 +03E0003E000FC00003E0003E000F818007E0007E000F83C007E0007E001F838007C0007C +001F038007C0007C001F03800FC000FC001F07800FC000FC003E07000F8000F8003E0F00 +0F8000F8001E0E001F8001F8001E1C001F8001F8001E3C001F0001F0000FF0000E0000E0 +0003E0003A227AA03F>I<03C007F0000FF01FFC001E787C1E001C7CF01F003C3DE00F00 +383FC00F80387F800F80787F000F80707E000F80707E000F80F0FC001F80E0FC001F0060 +F8001F0000F8001F0001F8003F0001F8003E0001F0003E0001F0003E0003F0007E0003F0 +007C0003E000FC0003E000F81807E000F83C07E001F83807C001F03807C001F0380FC001 +F0780FC001E0700F8001E0F00F8001E0E01F8001E1C01F8001E3C01F0000FF000E00003E +0026227AA02B>I<0000FC000007FF00001F07C0003E03E000FC01F001F801F003F000F8 +07E000F807C000F80FC000F81F8000FC1F8000FC3F0000FC3F0000FC3F0001FC7F0001F8 +7E0001F87E0001F87E0003F8FE0003F0FC0003F0FC0003F0FC0007E0FC0007E07C000FC0 +7C000F807C001F807C003F003E007E003E00FC001F01F0000F83E00003FF800000FC0000 +1E2278A027>I<001E007C00007F81FF0000F3C387C000E3EF03E001E1FE01E001C1FC01 +F001C3F801F003C3F001F00383F001F80383E001F80787E001F80707E001F80307C001F8 +0007C001F8000FC003F8000FC003F0000F8003F0000F8003F0001F8007F0001F8007E000 +1F0007E0001F0007E0003F000FC0003F000FC0003E001F80003E001F80007E003F00007F +003E00007F007C00007F00F80000FF81F00000FDC3E00000F8FF800000F87E000001F800 +000001F800000001F000000001F000000003F000000003F000000003E000000003E00000 +0007E000000007E000000007C0000000FFFF000000FFFF000000FFFF00000025307FA027 +>I<0003F018000FF838003E1C78007C0EF800F807F001F007F003E007F007E003F00FC0 +03E00FC003E01F8003E01F8007E03F0007C03F0007C03F0007C07F000FC07E000F807E00 +0F807E000F80FE001F80FC001F00FC001F00FC001F00FC003F00FC003E00FC007E007C00 +7E007C00FE007C01FC003C03FC003E07FC001F0EFC0007FCF80001F0F8000000F8000001 +F8000001F0000001F0000001F0000003F0000003E0000003E0000007E0000007E0000007 +C00001FFFF0001FFFF0001FFFE001D3078A023>I<03C00FC00FF03FF01E78F0781C7DE0 +3C3C3FC0FC383F80FC387F00FC787F00F8707E0070707E0000F0FC0000E0FC000060F800 +0000F8000001F8000001F8000001F0000001F0000003F0000003F0000003E0000003E000 +0007E0000007E0000007C0000007C000000FC000000FC000000F8000000F8000001F8000 +001F8000001F0000000E0000001E227AA020>I<0003F0001FFC003C1E00780F00F00701 +E00701E00F03E01F03C01F03C01F03E00403E00003F00003FF8003FFE001FFF000FFF800 +7FFC0007FC0000FE00007E00003E38003EFC003CFC003CFC003CFC007CF00078E000F0F0 +01F07803E03C0F801FFE0003F80018227AA01F>I<000300000F80000F80000F80001F80 +001F80001F00001F00003F00003F00003E00003E00007E00007E00007C007FFFF87FFFF8 +FFFFF800F80000F80001F80001F80001F00001F00003F00003F00003E00003E00007E000 +07E00007C00007C0000FC0000FC0000F80000F80601F80F01F80E01F00E01F01E01F01C0 +1F03C01E03801E07001E0F000F1E0007F80001E00015307AAE19>I<01F000000003FC00 +07000F1E000F000E1E001F001C1E001F003C1E001F00381E003F00783E003E00703E003E +00703E003E00707E007E00F07C007C0060FC007C0000F8007C0000F800FC0001F800F800 +01F000F80001F000F80001F001F80003F001F00003E001F00003E001F06003E003F07003 +E003E0F007C003E0E007C003E0E003C007E1E003C007E1C003E00FC1C003E01FC3C001E0 +3FE38001F071E780007FE0FF00001F803C0024227AA029>I<00F0003803FC00FC0F1E00 +FC0E1E00FC1C1E00FC3C1E00FC381E007C783E007C703E003C703E003C707E003CF07C00 +3860FC003800F8003800F8007801F8007001F0007001F0007001F000F003F000E003E000 +E003E000E003E001C003E001C003C003C003C0038003C0078003C0070003E00E0003E00E +0001F01C0000F87800007FE000001F80001E227AA023>I<01F00000003803FC000E00FC +0F1E001E00FC0E1E003E00FC1C1E003E00FC3C1E003E00FC381E007E007C783E007C007C +703E007C003C703E007C003C707E00FC003CF07C00F8003860FC00F8003800F800F80038 +00F801F8007801F801F0007001F001F0007001F001F0007001F003F000F003F003F000E0 +03E003E000E003E003E000E003E003E001E003E003E001C003C003C001C003C007C00380 +03C007C0038003E00FE0078003E00FE0070003E01FE00E0001F03DF01E0000F878F83C00 +003FF03FF000000FC00FC0002E227AA033>I<001F007C00007FC1FF0001E1E7878003C0 +F703C00380FE0FC00700FE0FC00F00FC0FC00E00FC0F801E00F807001C00F800001C01F8 +00003C01F000001801F000000001F000000003F000000003E000000003E000000003E000 +000007E000000007E000000007C000000007C00600000FC00F00000FC00E00000F800E00 +380F801E007C1F801C00FC1F803C00FC1F803800FC3F807000F07FC0E00070F3C3C0003F +E1FF80000F807E000022227CA023>I<00F0000003FC00070F1E000F0E1E001F1C1E001F +3C1E001F381E003F783E003E703E003E703E003E707E007EF07C007C60FC007C00F8007C +00F800FC01F800F801F000F801F000F801F001F803F001F003E001F003E001F003E003F0 +03E003E007C003E007C003E003C007E003C007C003E00FC003E01FC001E03FC001F07F80 +007FEF80001F8F8000001F8000001F0000001F0000003F003E003E007E007E007E007C00 +7E00F8007C00F0007001F0007003E000380780003C1F00000FFC000007F0000020317AA0 +25>I<0007801C001FE03C003FF038007FF07800FFF8F001F07CE001E01FE003C003C003 +80078003800F0000001E0000001C0000003C00000078000000F0000001E0000007C00000 +0F8000001E0000003C00000078000000F0007000E000F001E000E003C000E0078001E00F +C003C01FF807C01F3E0F803C1FFF00781FFF00700FFE00F007F800E001E0001E227CA01F +>I E /Ft 36 121 df<7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF81E06 +7C9927>45 D<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A728927>I<000E00 +00001F0000001F0000003F0000007F0000007F000000FF000001FF000003FF00007FFF00 +00FFFF0000FFFF0000FFBF00007E3F0000003F0000003F0000003F0000003F0000003F00 +00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00 +00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00 +00003F0000003F0000003F0000003F0000003F00003FFFFF807FFFFF807FFFFFC07FFFFF +807FFFFF801A2F79AE27>49 D<003FE00001FFF80003FFFE000FFFFF801FFFFFC03FE07F +E03F800FE07F0007F07E0003F8FE0001F8FC0001F8FE0001FCFE0000FCFE0000FCFE0000 +FC7C0000FC000000FC000000FC000001FC000001F8000001F8000003F8000003F0000007 +F000000FE000001FC000003FC000007F800000FF000001FE000003FC000007F800000FF0 +00001FE000003FC000007F800000FE000001FC000007F800780FF000FC1FE000FC3FC000 +FC7FFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF81E2F7CAE27>I<0003F000000007F8 +00000007F80000000FFC0000000FFC0000000FFC0000000FFC0000000F3C0000001F3E00 +00001F3E0000001F3E0000001F3E0000001F3E0000003F3F0000003F3F0000003F3F0000 +003E1F0000003E1F0000007E1F8000007E1F8000007E1F8000007E1F800000FC0FC00000 +FC0FC00000FC0FC00000FC0FC00000FC0FC00001F807E00001F807E00001F807E00001FF +FFE00001FFFFE00003FFFFF00003FFFFF00003FFFFF00003F003F00003F003F00007E001 +F80007E001F80007E001F80007E001F8000FE001FC007FFC0FFF80FFFC0FFFC0FFFE1FFF +C0FFFC0FFFC07FFC0FFF80222F7EAE27>65 D<7FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFF +FFFFC07FFFFFFFC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E000 +0FC007E000078007E000000007E000000007E000000007E000000007E007800007E00FC0 +0007E00FC00007E00FC00007FFFFC00007FFFFC00007FFFFC00007FFFFC00007FFFFC000 +07E00FC00007E00FC00007E00FC00007E007800007E000000007E000000007E000000007 +E000000007E00003C007E00007E007E00007E007E00007E007E00007E007E00007E007E0 +0007E007E00007E07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC0232E7F +AD27>69 D<7FFFFFE0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE0001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F80007FFFFFE0FFFFFFF0FFFFFF +F0FFFFFFF07FFFFFE01C2E7BAD27>73 D<7FFFC000007FFFE00000FFFFE000007FFFE000 +007FFFC0000003F000000003F000000003F000000003F000000003F000000003F0000000 +03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 +F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 +00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 +000003F000078003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000F +C003F0000FC07FFFFFFFC07FFFFFFFC0FFFFFFFFC07FFFFFFFC07FFFFFFF80222E7FAD27 +>76 D<7FF003FFE0FFF807FFF0FFF807FFF0FFFC07FFF07FFC03FFE007FC003E0007DE00 +3E0007DE003E0007DE003E0007CF003E0007CF003E0007CF003E0007CF803E0007C7803E +0007C7C03E0007C7C03E0007C3C03E0007C3E03E0007C3E03E0007C1E03E0007C1F03E00 +07C1F03E0007C1F03E0007C0F83E0007C0F83E0007C0F83E0007C0783E0007C07C3E0007 +C07C3E0007C03C3E0007C03E3E0007C03E3E0007C01E3E0007C01F3E0007C00F3E0007C0 +0F3E0007C00F3E0007C007BE0007C007BE0007C007BE0007C003FE007FFC03FE00FFFE03 +FE00FFFE01FE00FFFE01FE007FFC00FC00242E7FAD27>78 D<00FFFC0007FFFF801FFFFF +E01FFFFFE03FFFFFF03FC00FF07F8007F87F0003F87E0001F87E0001F87E0001F8FC0000 +FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000 +FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000 +FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFE0001FC7E0001F87E0001 +F87E0001F87F0003F87F8007F83FE01FF03FFFFFF01FFFFFE01FFFFFE007FFFF8000FFFC +001E307CAE27>I<7FFFFF0000FFFFFFE000FFFFFFF000FFFFFFF8007FFFFFFC0007E003 +FE0007E000FF0007E0007F0007E0003F8007E0001F8007E0001FC007E0000FC007E0000F +C007E0000FC007E0000FC007E0000FC007E0000FC007E0001FC007E0001F8007E0003F80 +07E0007F0007E000FF0007E003FE0007FFFFFC0007FFFFF80007FFFFF00007FFFFE00007 +FFFF000007E000000007E000000007E000000007E000000007E000000007E000000007E0 +00000007E000000007E000000007E000000007E000000007E000000007E00000007FFE00 +0000FFFF000000FFFF000000FFFF0000007FFE000000222E7FAD27>I<7FFFF00000FFFF +FE0000FFFFFF8000FFFFFFC0007FFFFFE00007E01FF00007E007F00007E003F80007E001 +F80007E001FC0007E000FC0007E000FC0007E000FC0007E000FC0007E000FC0007E001FC +0007E001F80007E003F80007E007F00007E01FF00007FFFFE00007FFFFC00007FFFF8000 +07FFFF800007FFFFC00007E01FC00007E00FE00007E007E00007E003F00007E003F00007 +E003F00007E003F00007E003F00007E003F00007E003F00007E003F00007E003F0F007E0 +03F1F807E003F1F807E003F1F807E003F1F87FFE01FBF8FFFF01FFF0FFFF00FFF0FFFF00 +FFE07FFE007FC00000001F00252F7FAD27>82 D<7FFFFFFF80FFFFFFFFC0FFFFFFFFC0FF +FFFFFFC0FFFFFFFFC0FC03F00FC0FC03F00FC0FC03F00FC0FC03F00FC0FC03F00FC0FC03 +F00FC07803F007800003F000000003F000000003F000000003F000000003F000000003F0 +00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 +000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 +0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 +03F000000003F0000000FFFFC00001FFFFE00001FFFFE00001FFFFE00000FFFFC000222E +7EAD27>84 D<7FFE01FFF8FFFF03FFFCFFFF03FFFCFFFF03FFFC7FFE01FFF807E0001F80 +07E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007 +E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0 +001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E000 +1F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007F0003F +8003F0003F0003F0003F0003F8007F0001F8007E0001FC00FE0000FE01FC00007F87F800 +007FFFF800003FFFF000000FFFC0000007FF80000001FE0000262F80AD27>I<7FFC03FF +E07FFE07FFE0FFFE07FFF07FFE07FFE07FFC03FFE007E0007E0007E0007E0007E0007E00 +07E0007E0003F000FC0003F000FC0003F000FC0003F000FC0003F801FC0001F801F80001 +F801F80001F801F80001F801F80000FC03F00000FC03F00000FC03F00000FC03F000007E +07E000007E07E000007E07E000007E07E000007E07E000003F0FC000003F0FC000003F0F +C000003F0FC000001F0F8000001F9F8000001F9F8000001F9F8000000F9F0000000F9F00 +00000F9F0000000F9F0000000F9F00000007FE00000007FE00000007FE00000007FE0000 +0003FC00000003FC00000001F80000242F7FAD27>I<7FFFF0FFFFF8FFFFF8FFFFF8FFFF +F0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 +00FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 +00FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 +00FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 +00FFFFF0FFFFF8FFFFF8FFFFF87FFFF0153A71B327>91 D<7FFFF0FFFFF8FFFFF8FFFFF8 +7FFFF80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 +0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 +0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 +0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 +0001F87FFFF8FFFFF8FFFFF8FFFFF87FFFF0153A7EB327>93 D<03FFC000000FFFF00000 +1FFFFC00003FFFFF00003FFFFF80003F80FF80003F801FC0001F000FC00004000FE00000 +0007E000000007E000000FFFE000007FFFE00003FFFFE0000FFFFFE0001FFFFFE0003FFC +07E0007FC007E0007F0007E000FE0007E000FC0007E000FC0007E000FC0007E000FC0007 +E000FE000FE0007F001FE0007FC0FFE0003FFFFFFF801FFFFFFFC00FFFFFFFC003FFF1FF +C000FF807F8022207C9F27>97 D<000FFF00007FFFC001FFFFE003FFFFF007FFFFF00FF8 +07F01FE007F03FC003E03F8000807F0000007E0000007E000000FE000000FC000000FC00 +0000FC000000FC000000FC000000FC000000FE0000007E0000007E0000007F0000F03F80 +01F83FC001F81FE003F80FF80FF007FFFFF003FFFFE001FFFFC0007FFF00000FF8001D20 +7B9F27>99 D<00003FF00000007FF80000007FF80000007FF80000003FF800000001F800 +000001F800000001F800000001F800000001F800000001F800000001F800000001F80000 +0001F800000FE1F800007FFDF80001FFFFF80003FFFFF80007FFFFF8000FF83FF8001FE0 +0FF8003FC007F8003F8003F8007F0003F8007E0001F8007E0001F800FE0001F800FC0001 +F800FC0001F800FC0001F800FC0001F800FC0001F800FC0001F800FE0001F8007E0003F8 +007E0003F8007F0003F8003F0007F8003F800FF8001FE01FF8000FF03FF80007FFFFFFC0 +03FFFFFFE001FFFDFFE0007FF9FFE0001FE0FFC0232E7EAD27>I<000FF800003FFE0000 +FFFF8003FFFFC007FFFFE00FFC0FF01FE003F81FC001F83F8001FC7F0000FC7E0000FC7E +00007EFE00007EFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFCFC000000FE0000007E +0000007F0000003F00003C3F80007E1FC0007E1FF000FE0FFC07FC07FFFFFC01FFFFF800 +FFFFF0003FFFC00007FE001F207D9F27>I<7FE0000000FFF0000000FFF0000000FFF000 +00007FF000000003F000000003F000000003F000000003F000000003F000000003F00000 +0003F000000003F000000003F000000003F07F000003F1FFC00003F7FFF00003FFFFF000 +03FFFFF80003FFC1F80003FF01FC0003FE00FC0003FC00FC0003F800FC0003F800FC0003 +F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F0 +00FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000 +FC0003F000FC007FFF83FFE0FFFFC7FFF0FFFFC7FFF0FFFFC7FFF07FFF83FFE0242E7FAD +27>104 D<000F0000001F8000003FC000003FC000003FC000003FC000001F8000000F00 +00000000000000000000000000000000000000000000000000000000003FFF80007FFFC0 +007FFFC0007FFFC0003FFFC000000FC000000FC000000FC000000FC000000FC000000FC0 +00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0 +00000FC000000FC000000FC000000FC000000FC000000FC000000FC0007FFFFFF0FFFFFF +F0FFFFFFF8FFFFFFF07FFFFFF01D2F7BAE27>I<7FE00000007FF0000000FFF00000007F +F00000007FF000000001F000000001F000000001F000000001F000000001F000000001F0 +00000001F000000001F000000001F000000001F03FFFC001F07FFFE001F07FFFE001F07F +FFE001F03FFFC001F003F80001F007F00001F00FE00001F01FC00001F03F800001F0FF00 +0001F1FE000001F3FC000001F7F8000001FFFC000001FFFE000001FFFF000001FF3F0000 +01FE1F800001FC0FC00001F80FE00001F007E00001F003F00001F001F80001F001FC0001 +F000FE0001F0007E007FFFC1FFF07FFFC3FFF8FFFFE3FFF87FFFC3FFF87FFFC3FFF0252E +80AD27>107 D<7FFF8000FFFFC000FFFFC000FFFFC0007FFFC000000FC000000FC00000 +0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 +0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 +0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 +0FC000000FC000000FC000000FC000000FC000000FC000000FC0007FFFFFF8FFFFFFFCFF +FFFFFCFFFFFFFC7FFFFFF81E2E7CAD27>I<7F07C01F0000FF9FF07FC000FFFFF9FFE000 +FFFFFFFFF0007FFFFFFFF0000FFC7FF1F8000FF03FC0F8000FE03F80F8000FC03F00F800 +0FC03F00F8000FC03F00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F800 +0F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F800 +0F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F800 +7FF0FFC3FF00FFF8FFE3FF80FFF9FFE7FF80FFF8FFE3FF807FF0FFC3FF002920819F27> +I<7FE07F0000FFF1FFC000FFF7FFF000FFFFFFF0007FFFFFF80003FFC1F80003FF01FC00 +03FE00FC0003FC00FC0003F800FC0003F800FC0003F000FC0003F000FC0003F000FC0003 +F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F0 +00FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC007FFF83FFE0FFFFC7 +FFF0FFFFC7FFF0FFFFC7FFF07FFF83FFE024207F9F27>I<001FE000007FF80001FFFE00 +03FFFF0007FFFF800FF03FC01FC00FE03F8007F03F0003F07F0003F87E0001F87E0001F8 +FC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFE0001FC7E0001F8 +7E0001F87F0003F83F8007F03F8007F01FE01FE00FF03FC007FFFF8003FFFF0001FFFE00 +007FF800001FE0001E207C9F27>I<7FE0FF0000FFF3FFC000FFFFFFF000FFFFFFF8007F +FFFFFC0003FF81FE0003FE00FF0003FC003F8003F8001F8003F8001FC003F0000FC003F0 +000FC003F0000FE003F00007E003F00007E003F00007E003F00007E003F00007E003F000 +07E003F0000FE003F0000FC003F8000FC003F8001FC003FC003F8003FC007F8003FE00FF +0003FF83FE0003FFFFFC0003FFFFF80003FFFFF00003F3FFC00003F0FE000003F0000000 +03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 +F000000003F000000003F000000003F00000007FFF800000FFFFC00000FFFFC00000FFFF +C000007FFF80000023317F9F27>I<7FFC03FC00FFFE0FFF00FFFE3FFF80FFFE7FFFC07F +FEFFFFC0007FFE1FC0007FF81FC0007FF00F80007FE00200007FC00000007F800000007F +800000007F000000007F000000007E000000007E000000007E000000007E000000007E00 +0000007E000000007E000000007E000000007E000000007E000000007E000000007E0000 +00007E0000007FFFFF8000FFFFFFC000FFFFFFC000FFFFFFC0007FFFFF800022207E9F27 +>114 D<00FFF38007FFFFC01FFFFFC03FFFFFC07FFFFFC07F803FC0FC000FC0F8000FC0 +F8000FC0F8000780FC0000007F8000007FFC00003FFFF0001FFFFC0007FFFF0001FFFF80 +000FFFC000003FE0000007E0780003F0FC0001F0FC0001F0FE0001F0FE0003F0FF0007E0 +FFE01FE0FFFFFFC0FFFFFF80FFFFFF00FBFFFC00707FF0001C207B9F27>I<003C000000 +7E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00007FFFFFF0FF +FFFFF8FFFFFFF8FFFFFFF87FFFFFF0007E0000007E0000007E0000007E0000007E000000 +7E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000000 +7E0018007E007E007E007E007E007E007E007E007E00FE003F00FC003F83FC003FFFF800 +1FFFF0000FFFE00003FFC00000FF001F297EA827>I<7FE01FF800FFF03FFC00FFF03FFC +00FFF03FFC007FF01FFC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC00 +03F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003 +F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F001FC0003F0 +01FC0003F003FC0003FC0FFC0001FFFFFFE001FFFFFFF000FFFFFFF0003FFEFFF0000FF8 +7FE024207F9F27>I<7FFC0FFF80FFFE1FFFC0FFFE1FFFC0FFFE1FFFC07FFC0FFF8007C0 +00F80007E001F80003E001F00003E001F00003F003F00001F003E00001F003E00001F807 +E00000F807C00000F807C00000F807C000007C0F8000007C0F8000007C0F8000003E1F00 +00003E1F0000003E1F0000003F3F0000001F3E0000001F3E0000001FFE0000000FFC0000 +000FFC0000000FFC00000007F800000007F800000003F0000022207E9F27>I<7FFE07FF +E0FFFE07FFF0FFFF0FFFF0FFFE07FFF07FFE07FFE00F80001F000F80001F000F80001F00 +0FC0003F0007C0003E0007C0003E0007C0003E0007C0003E0007C0F03E0007C1F83E0003 +E3FC7C0003E3FC7C0003E3FC7C0003E3FC7C0003E79E7C0003E79E7C0001E79E780001E7 +9E780001E79E780001F79EF80001F79EF80001FF0FF80000FF0FF00000FF0FF00000FF0F +F00000FE07F000007C03E00024207F9F27>I<3FFC1FFF007FFE3FFF007FFE3FFF807FFE +3FFF003FFC1FFF0001F807E00000FC0FC00000FC1F8000007E1F0000003F3F0000001F7E +0000001FFC0000000FF800000007F800000003F000000003E000000003F000000007F800 +00000FF80000001FFC0000001F3E0000003E3F0000007E1F0000007C0F800000F80FC000 +01F807E00003F003E0007FFE1FFF807FFE1FFF80FFFF3FFFC07FFE1FFF807FFE1FFF8022 +207E9F27>I E /Fu 6 85 df<7FFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFE7FFFFFFFFF +FC2F047A943C>0 D<6000000030F8000000F8FC000001F87E000003F03F000007E01F80 +000FC00FC0001F8007E0003F0003F0007E0001F800FC0000FC01F800007E03F000003F07 +E000001F8FC000000FDF80000007FF00000003FE00000001FC00000001FC00000003FE00 +000007FF0000000FDF8000001F8FC000003F07E000007E03F00000FC01F80001F800FC00 +03F0007E0007E0003F000FC0001F801F80000FC03F000007E07E000003F0FC000001F8F8 +000000F86000000030252475A43C>2 D<001FC00000FFF80001FFFC0007FFFF000FFFFF +801FFFFFC03FFFFFE03FFFFFE07FFFFFF07FFFFFF0FFFFFFF8FFFFFFF8FFFFFFF8FFFFFF +F8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF87FFFFFF07FFFFFF03FFFFF +E03FFFFFE01FFFFFC00FFFFF8007FFFF0001FFFC0000FFF800001FC0001D1E7CA126>15 +D<700000000000FC0000000000FF00000000007FC0000000001FF00000000007FC000000 +0001FF00000000007FC0000000001FF00000000007FC0000000001FF00000000007FC000 +0000001FF00000000007FC0000000001FF00000000007FC0000000001FF00000000007FC +0000000001FF00000000007FC0000000001FF00000000007FC0000000001FE0000000001 +FE0000000007FC000000001FF0000000007FC000000001FF0000000007FC000000001FF0 +000000007FC000000001FF0000000007FC000000001FF0000000007FC000000001FF0000 +000007FC000000001FF0000000007FC000000001FF0000000007FC000000001FF0000000 +007FC000000000FF0000000000FC00000000007000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000007FFFFFFFFFFCFFFFFFFFFF +FEFFFFFFFFFFFE7FFFFFFFFFFC2F3E7AB03C>21 D<00001FFFFF80000001FFFFFFF80000 +0FFFFFFFFE00003FFFFFFFFF8000FE1FC03FFFC001E01FC003FFE007801FC000FFF00F00 +1FC0003FF01F001F80001FF83E001F80000FF87E001F800007F87C003F800007F8F8003F +800003F8E0003F800003F800003F000003F800003F000003F000003F000003F000007F00 +0003F000007F000007E000007E000007E000007E000007C000007E00000FC00000FE0000 +0F800000FE00001F000000FC00001E000000FC00003C000000FC000078000001FC0000F0 +000001F80001C0000001F8000780000001F8001F00000003F801FC00000003F07FF00000 +0003F1FF8000000003F7FE0000000007EFE00000000007E0000000000007E00000000000 +0FC000000000000FC000000000000FC000000000001F8000000000001F8000000000001F +8000000000003F0000000000003F0000000000003F0000000000007E0000000000007E00 +00000000007C000000000000FC000000000000FC000000000001F8000000000001E00000 +0000000180000000000035377EB236>80 D<00000000000000E000000000000003C00000 +FFFFFFFFFF800007FFFFFFFFFF00001FFFFFFFFFFC00007FFFFFFFFFF00000FFFFFFFFFF +800003C0001F800000000780003F800000000F80003F800000001F00003F800000003F00 +007F000000007F00007F000000007E00007F00000000FC00007F00000000F80000FE0000 +0000E00000FE00000000000000FE00000000000000FE00000000000001FC000000000000 +01FC00000000000001FC00000000000001FC00000000000003F800000000000003F80000 +0000000003F800000000000003F800000000000007F000000000000007F0000000000000 +07F000000000000007F00000000000000FE00000000000000FE00000000000000FE00000 +000000000FE00000000000001FC00000000000001FC00000000000001FC0000000000000 +1FC00000000000003F800000000000003F800000000000003F800000000000003F800000 +000000007F000000000000007F000000000000007F000000000000007E00000000000000 +FE00000000000000FC00000000000000FC00000000000001FC00000000000001F8000000 +00000003F800000000000003F000000000000003E000000000000007C000000000000007 +800000000000000E0000000000003B3A7DB42A>84 D E /Fv 10 +58 df<00FF0003FFC00781E00F00F01E00783C003C3C003C78001E78001E78001E78001E +F8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001F +F8001F78001E78001E7C003E3C003C3C003C1E00780F00F00781E003FFC000FF0018227D +A01E>48 D<00E00001E00007E000FFE000F9E00001E00001E00001E00001E00001E00001 +E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001 +E00001E00001E00001E00001E00001E00001E00001E00003F000FFFFC0FFFFC012217AA0 +1E>I<01FC0007FF801C0FC03003E06001F06000F8F800F8FC00FCFC00FCFC007C78007C +3000FC0000FC0000F80000F80001F00003E00003C0000780000F00001E00003800007000 +00E00001C00C03800C0600180C00181800183FFFF87FFFF8FFFFF0FFFFF016217CA01E> +I<00FF0003FFC00F03E01C00F01C00F83E00FC3E007C3E007C1E00FC0C00FC0000F80000 +F80001F00003E0000FC001FF0001FF000003E00000F000007800007C00003E00003F3000 +3F78003FFC003FFC003FFC003EF8007E60007C3800F81E03F00FFFC001FF0018227DA01E +>I<0000E00001E00001E00003E00007E00007E0000DE0001DE00039E00031E00061E000 +E1E000C1E00181E00381E00701E00601E00C01E01C01E01801E03001E07001E0E001E0FF +FFFFFFFFFF0001E00001E00001E00001E00001E00001E00003F0003FFF003FFF18227DA1 +1E>I<1000301E01F01FFFE01FFFC01FFF801FFE001BF000180000180000180000180000 +18000018FE001BFF801F03C01C01E01800F01800F800007800007800007C00007C30007C +78007CF8007CF8007CF80078F000F86000F07001E03801E01E078007FF0001F80016227C +A01E>I<000FC0007FF001F03803C01807803C0F007C1E007C1C00383C00003C00007C00 +00780000787FC0F9FFE0FB80F0FE0038FE003CFC001EFC001EF8001FF8001FF8001FF800 +1F78001F78001F78001F3C001E3C001E1C003C1E00380F00700781E001FFC0007F001822 +7DA01E>I<3000003C00003FFFFF3FFFFF7FFFFE7FFFFC60001C600038600070C000E0C0 +00C00001C0000380000700000600000E00001C00001C0000380000380000780000780000 +780000F00000F00000F00000F00001F00001F00001F00001F00001F00001F00001F00000 +E00018237CA11E>I<007F0003FFC00781E00E00701C003818001C38001C38001C38001C +3C001C3F00381FC0781FE0F00FF9E007FF8001FF8001FFC007FFF00F0FF81C03FC3801FE +70007E70001FE0000FE00007E00007E00007E0000670000E78000C3C00381F00F007FFC0 +00FF0018227DA01E>I<00FE0003FFC00781E00E00701C00783C003878003C78003CF800 +1EF8001EF8001EF8001FF8001FF8001FF8001F78003F78003F3C007F1C007F0F01DF07FF +9F03FE1E00001E00001E00003E00003C1C00383E00783E00703C00E01801C01C07800FFE +0003F80018227DA01E>I E /Fw 15 119 df<00007F0000000003FFE00000000FC0F800 +00003F007C0000007C007E006000F8003F006001F0003F00E003E0001F80C007E0001F80 +C00FC0001F81C00FC0001FC1801F80000FC1803F80000FC3803F00000FC3003F00000FC7 +007F00000FC6007E00000FCE007E00000FDC007E00000FD8007E00000FF800FC00000FF0 +00FC00000FE000FC00000FC0007C00000FC0007C00000FC0007C00000FC0007C00001FC0 +003E00003FC0003E000077C0C01F0001E7E0C00F800783E1C007C07E03E38001FFF801FF +00007F80007C002B227EA031>11 D<00000007F0000000001FFE00000000781F00000001 +E00F800000038007C00000070007E000000E0003E000001C0003E00000380003E0000070 +0003E00000E00007E00000C00007E00001C00007E00001800007E0000380000FE0000300 +000FC0000700000FC0000600001F80000600001F80000E00003F00000C00007E00000C01 +FE7C00001C03FFF80000180703F000001807FFF800001801FE7C00003800003E00003000 +003E00003000003F00003000001F00007000001F00006000001F00006000001F00006000 +001F0000E000003F0000C000003F0000C000003F0000C000003F0001C000007F0001C000 +007E00018000007E0001800000FE0003800000FC0003C00000FC0003C00001F80003C000 +03F00007E00003E00006600007C0000670000F80000638001F00000E1C007E00000C0F01 +F800000C03FFE000000C00FF0000001C0000000000180000000000180000000000180000 +000000380000000000300000000000300000000000300000000000700000000000600000 +000000600000000000600000000000E00000000000E000000000002B447FB42B>I<3C7E +FFFFFFFF7E3C08087A8715>58 D<0000000003000000000000070000000000000F000000 +0000000F0000000000001F8000000000001F8000000000003F8000000000007F80000000 +00007F800000000000FF800000000000FF800000000001BF8000000000033F8000000000 +033FC000000000063FC000000000061FC0000000000C1FC000000000181FC00000000018 +1FC000000000301FC000000000701FC000000000601FC000000000C01FC000000000C01F +E000000001801FE000000003800FE000000003000FE000000006000FE000000006000FE0 +0000000C000FE00000001C000FE000000018000FE000000030000FF000000030000FF000 +00007FFFFFF0000000FFFFFFF0000000FFFFFFF0000001800007F0000001800007F00000 +03000007F0000006000007F0000006000007F800000C000007F800000C000003F8000018 +000003F8000030000003F8000070000003F8000060000003F80000E0000003F80001E000 +0003F80007F0000007FC00FFFF0001FFFFF0FFFF0001FFFFF0FFFE0001FFFFF034367DB5 +3A>65 D<0000000FF800180000007FFF0038000003FFFFC07800000FFC03E0F000003FC0 +00F1F00000FF00003BF00001FC00001FF00007F800001FE0000FF000000FE0001FE00000 +07E0003F80000007E0007F80000007C000FF00000003C001FE00000003C001FC00000003 +C003FC000000038007F800000003800FF000000003800FF000000003801FE00000000300 +1FE000000003003FC000000003003FC000000000007FC000000000007F8000000000007F +8000000000007F800000000000FF800000000000FF000000000000FF000000000000FF00 +0000000000FF000000000000FE000000000000FE000000000000FE000000003800FE0000 +00003800FE000000003000FE000000003000FE000000007000FE000000006000FE000000 +00E0007F00000001C0007F0000000180007F0000000380003F8000000700003F8000000E +00001FC000001C00000FE0000038000007F0000070000003F80001E0000001FC0007C000 +0000FF803F000000003FFFFC000000000FFFF00000000001FF8000000035377CB437>67 +D<000FFFFFFFFFFE000FFFFFFFFFFE000FFFFFFFFFFC00003FC00003FC00003FC00000FC +00003FC000007C00003F8000003C00003F8000003C00007F8000001C00007F8000001800 +007F0000001800007F000000180000FF000000180000FF000000180000FE000300180000 +FE000300180001FE000700380001FE000600300001FC000600000001FC000E00000003FC +000E00000003FC001C00000003F8007C00000003FFFFFC00000007FFFFFC00000007FFFF +F800000007F000F800000007F000380000000FF000380000000FF000300000000FE00030 +0000000FE000300060001FE0007000E0001FE0006000C0001FC0006001C0001FC0000001 +80003FC000000180003FC000000380003F8000000300003F8000000700007F8000000E00 +007F8000000E00007F0000001E00007F0000003C0000FF0000007C0000FF000000F80000 +FE000003F80001FE00001FF000FFFFFFFFFFF000FFFFFFFFFFF000FFFFFFFFFFE0003733 +7DB239>69 D<000FFFFFFFFFFC000FFFFFFFFFFC000FFFFFFFFFF800003FC00007F80000 +3FC00000F800003FC000007800003F8000007800003F8000003800007F8000003800007F +8000003000007F0000003000007F000000300000FF000000300000FF000000300000FE00 +0000300000FE000600300001FE000E00700001FE000C00600001FC000C00000001FC000C +00000003FC001C00000003FC003800000003F8003800000003F800F800000007FFFFF800 +000007FFFFF800000007FFFFF000000007F001F00000000FF000F00000000FF000600000 +000FE000600000000FE000600000001FE000E00000001FE000C00000001FC000C0000000 +1FC000C00000003FC000000000003FC000000000003F8000000000003F8000000000007F +8000000000007F8000000000007F0000000000007F000000000000FF000000000000FF00 +0000000000FE000000000001FF0000000000FFFFFF00000000FFFFFF00000000FFFFFF00 +00000036337DB231>I<000FFFE00001FFFF000FFFE00001FFFF000FFFF00001FFFF0000 +1FF000000FE000003FF80000078000003FF800000700000033FC00000600000033FC0000 +0600000071FE00000E00000071FE00000C00000060FE00000C00000060FF00000C000000 +E07F00001C000000E07F800018000000C03F800018000000C03FC00018000001C03FC000 +38000001C01FE00030000001801FE00030000001800FF00030000003800FF00070000003 +8007F800600000030007F800600000030003F800600000070003FC00E00000070001FC00 +C00000060001FE00C00000060000FE00C000000E0000FF01C000000E0000FF018000000C +00007F818000000C00007F818000001C00003FC38000001C00003FC30000001800001FE3 +0000001800001FE30000003800000FF70000003800000FF600000030000007F600000030 +000007FE00000070000003FE00000070000003FC00000060000001FC00000060000001FC +000000E0000001FC000000E0000000F8000001E0000000F8000007F0000000780000FFFF +800000780000FFFF800000300000FFFF80000030000040337DB23D>78 +D<00000007FC00000000007FFFC000000001F807F00000000FE001F80000001F80007E00 +00007E00003F000000FC00001F800003F000001F800007E000000FC0000FC0000007E000 +1F80000007E0003F80000007F0007F00000007F000FE00000003F000FC00000003F801FC +00000003F803F800000003F803F800000003F807F000000003F807F000000003F80FF000 +000003F80FE000000003F81FE000000007F81FC000000007F83FC000000007F83FC00000 +0007F83FC000000007F87F800000000FF07F800000000FF07F800000000FF07F80000000 +1FE07F800000001FE07F000000001FE0FF000000003FC0FF000000003FC0FF000000003F +80FF000000007F807F000000007F007F00000000FF007F00000000FE007F00000001FC00 +7F00000003F8003F80000003F8003F80000007F0001F8000000FE0001FC000001FC0000F +C000003F80000FE000007E000007E00000FC000003F00001F8000001F80007E0000000FE +001F800000003F80FE000000000FFFF80000000001FF8000000035377DB43A>I<000FFF +FFFFF000000FFFFFFFFE00000FFFFFFFFF0000003FC0007FC000003FC0001FE000003FC0 +0007F000003F800007F000003F800003F800007F800003F800007F800003F800007F0000 +03FC00007F000003FC0000FF000003FC0000FF000007F80000FE000007F80000FE000007 +F80001FE000007F00001FE00000FF00001FC00000FE00001FC00001FC00003FC00003F80 +0003FC00007F000003F80000FE000003F80003FC000007F8001FF0000007FFFFFFC00000 +07FFFFFE00000007F000000000000FF000000000000FF000000000000FE000000000000F +E000000000001FE000000000001FE000000000001FC000000000001FC000000000003FC0 +00000000003FC000000000003F8000000000003F8000000000007F8000000000007F8000 +000000007F0000000000007F000000000000FF000000000000FF000000000000FE000000 +000001FE0000000000FFFFFC00000000FFFFFC00000000FFFFFC0000000036337DB231> +I<000FFFFFFF8000000FFFFFFFF800000FFFFFFFFE0000003FC001FF0000003FC0003FC0 +00003FC0001FE000003F80000FE000003F800007F000007F800007F000007F800007F000 +007F000007F800007F000007F80000FF000007F80000FF00000FF00000FE00000FF00000 +FE00000FF00001FE00001FE00001FE00001FC00001FC00003F800001FC00003F000003FC +00007E000003FC0001FC000003F80007F0000003F8003FC0000007FFFFFE00000007FFFF +F800000007F0007E00000007F0003F0000000FF0001F8000000FF0000FC000000FE0000F +C000000FE0000FE000001FE0000FE000001FE0000FE000001FC0000FE000001FC0000FE0 +00003FC0001FE000003FC0001FE000003F80001FE000003F80001FE000007F80003FE000 +007F80003FC000007F00003FC000007F00003FC00600FF00003FC00E00FF00003FC00C00 +FE00003FC01C01FE00003FC018FFFFFC001FC038FFFFFC000FE070FFFFFC0007E0E00000 +000003FFC000000000007F0037357DB23A>82 D<000000FF0018000007FFE03800001FFF +F87800007F00FCF80000FC001FF00001F0000FF00003E00007F00007C00003F0000F8000 +03E0000F800003E0001F000001E0001F000001E0003E000001C0003E000001C0003E0000 +01C0007E000001C0007E00000180007E00000180007F00000000007F80000000007FC000 +0000003FF0000000003FFF000000003FFFF00000001FFFFE0000000FFFFF80000007FFFF +C0000003FFFFE0000000FFFFF00000000FFFF800000000FFF8000000000FF80000000007 +FC0000000003FC0000000001FC0000000000FC0000000000FC000C000000FC000C000000 +FC001C000000F80018000000F80018000000F80018000001F80038000001F0003C000003 +F0003C000003E0003C000007C0007E00000F80007F00001F80007F80003F00007BE0007C +0000F9FC03F80000F07FFFE00000E01FFF800000C003FE0000002D377CB42F>I<03FFFF +FFFFFFF007FFFFFFFFFFF007FFFFFFFFFFE007F0007F000FE00F8000FF0003E00F0000FF +0001E00E0000FE0001E01C0000FE0000C01C0001FE0000C0180001FE0000C0380001FC00 +01C0380001FC0001C0300003FC000180700003FC000180600003F8000180600003F80001 +80600007F8000380E00007F8000300000007F0000000000007F000000000000FF0000000 +00000FF000000000000FE000000000000FE000000000001FE000000000001FE000000000 +001FC000000000001FC000000000003FC000000000003FC000000000003F800000000000 +3F8000000000007F8000000000007F8000000000007F0000000000007F000000000000FF +000000000000FF000000000000FE000000000000FE000000000001FE000000000001FE00 +0000000001FC000000000001FC000000000003FC000000000003FC000000000003F80000 +00000007FC000000001FFFFFFE0000001FFFFFFE0000001FFFFFFE00000034337FB22D> +I<7FFFF80000FFFEFFFFF80000FFFEFFFFF80000FFFE03FF0000001FE001FE0000000F00 +00FF0000001E0000FF0000001C0000FF0000003800007F8000006000007F800000C00000 +3FC00001C000003FC000038000003FC000070000001FE000060000001FE0000C0000001F +E000180000000FF000300000000FF0006000000007F800E000000007F801C000000007F8 +038000000003FC030000000003FC060000000003FC0C0000000001FE180000000001FE30 +0000000000FF600000000000FFE00000000000FFC000000000007F8000000000007F0000 +000000007F0000000000007E000000000000FE000000000000FE000000000000FE000000 +000000FC000000000001FC000000000001FC000000000001FC000000000001F800000000 +0003F8000000000003F8000000000003F8000000000003F0000000000007F00000000000 +07F000000000000FF00000000007FFFFE000000007FFFFE000000007FFFFE00000003733 +7EB22D>89 D<00F0000E0003FC001F00071E003F800E1F003F801C1F003F80381F801F80 +301F800F80303F800780703F000780603F000380607F000380E07E000300407E00030000 +FE00030000FC00070001FC00060001F800060001F800060001F8000E0003F8000C0003F0 +000C0003F0001C0003F000180003F000380003E000300003E000700003E000600003F000 +E00003F001C00001F003800001F807000000FC1E0000003FF800000007E0000021227EA0 +25>118 D E /Fx 85 128 df<00003FE00FE00001FFF83FF80007E01EF83C001F800FF0 +7E003F001FE0FE007E003FE0FE00FC003FC0FE01F8003FC0FE01F8003FC03803F0001F80 +0003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F80 +0003F0001F800003F0001F800003F0001F800003F0001F800003F0001F8000FFFFFFFFFF +C0FFFFFFFFFFC0FFFFFFFFFFC003F0001F800003F0001F800003F0001F800003F0001F80 +0003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F80 +0003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F80 +0003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F80 +0003F0001F800003F0001F800003F0001F800007F8003FC000FFFF83FFFF00FFFF83FFFF +00FFFF83FFFF002F357FB42D>11 D<00001FE0000000FFFC000003F01E00000FC0078000 +1F800780003F000FC0007E001FC000FC001FC000FC001FC001F8001FC001F8000F8001F8 +00000001F800000001F800000001F800000001F800000001F800000001F800000001F800 +000001F800000001F8000FC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC001F8001FC001F8000F +C001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC0 +01F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001 +F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8 +000FC001F8000FC003FC001FE07FFFC1FFFF7FFFC1FFFF7FFFC1FFFF28357FB42B>I<00 +001FF8000000FFFFC00003F00FC0000FC01FC0001F801FC0003F001FC0007E001FC000FC +001FC000FC000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F800 +0FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC0FFFFFFFF +C0FFFFFFFFC0FFFFFFFFC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC0 +01F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001 +F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8 +000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC003FC001FE07FFFE3 +FFFF7FFFE3FFFF7FFFE3FFFF28357FB42B>I<00001FE000FF00000000FFFC07FFE00000 +03F01E1F80F000000FC0077E003C00001F8007FC003C00003F001FF8007E00007E001FF0 +00FE0000FC001FE000FE0000FC001FE000FE0001F8001FC000FE0001F8000FC0007C0001 +F8000FC000000001F8000FC000000001F8000FC000000001F8000FC000000001F8000FC0 +00000001F8000FC000000001F8000FC000000001F8000FC000000001F8000FC000000001 +F8000FC0007E00FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFFFFFFFFFE0001F8000FC0 +00FE0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001 +F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0 +007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001 +F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0 +007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0007E0001 +F8000FC0007E0001F8000FC0007E0003FC001FE000FF007FFFC1FFFE0FFFF87FFFC1FFFE +0FFFF87FFFC1FFFE0FFFF83D357FB440>I<007800FC00FC01FC03FC07F807E00FC01F80 +1F003C007800F00040000E0E71B326>19 D<01F80001F80001F80001FF00003F80000FC0 +000FE00007E00007E0000FE0001FC0007F80FFFE00FFE000130E777D22>24 +D<3C7EFFFFFFFFFFFFFFFF7E7E7E7E7E7E7E7E7E7E7E3E3C3C3C3C3C3C3C3C3C3C3C1818 +18181818000000000000003C7EFFFFFFFF7E3C08367AB515>33 D<3C00F07E01F8FF03FC +FF03FCFF83FEFF83FE7F81FE3D80F601800601800601800601800603800E03000C03000C +07001C0600180E00380C00301C00703800E07001C060018017177EB326>I<007C000000 +030003FE000000078007878000000F800F01C000001F801E00E000003F003E00F800007E +003C007C0001FE007C007F8007FC007C0033FFFEF8007800307FF9F800F800380001F000 +F800180003E000F800180007E000F800180007C000F80018000F8000F80018001F8000F8 +0018003F0000F80018003E0000F80018007C0000F8003800FC000078003000F800007C00 +3001F000007C007003F000003C006003E000003E00E007C000001E00C00FC000000F01C0 +0F8000000787801F00000003FE003F000000007C003E0000000000007C001F00000000FC +00FF80000000F801E1E0000001F003C070000003F0078030000003E00F8038000007C00F +001800000FC01F001C00000F801F000C00001F001E000C00003F003E000E00003E003E00 +0600007C003E00060000FC003E00060001F8003E00060001F0003E00060003E0003E0006 +0007E0003E00060007C0003E0006000F80003E000E001F80001E000C001F00001F000C00 +3E00001F001C007E00000F0018007C00000F803800F8000007803001F8000003C07001F0 +000001E1E001E0000000FF8000C00000001F00373C7CB740>37 D<3C007E00FF00FF00FF +80FF807F803D800180018001800180038003000300070006000E000C001C003800700060 +0009177AB315>39 D<0000C00001C0000380000F00000E00001C00003C0000780000F000 +00F00001E00003C00003C00007C0000780000F80000F00001F00001F00001E00003E0000 +3E00003E00003C00007C00007C00007C00007C00007C0000F80000F80000F80000F80000 +F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000 +7C00007C00007C00007C00007C00003C00003E00003E00003E00001E00001F00001F0000 +0F00000F800007800007C00003C00003C00001E00000F00000F000007800003C00001C00 +000E00000F000003800001C00000C0124A79B71E>II<00 +0E0000001F0000001F0000001F0000001F0000001F0000001F0000700E01C0F80E03E0FE +0E0FE0FF0E1FE07F8E3FC01FEEFF0003FFF80000FFE000003F8000003F800000FFE00003 +FFF8001FEEFF007F8E3FC0FF0E1FE0FE0E0FE0F80E03E0700E01C0001F0000001F000000 +1F0000001F0000001F0000001F0000000E00001B207BB726>I<00000060000000000000 +F0000000000000F0000000000000F0000000000000F0000000000000F0000000000000F0 +000000000000F0000000000000F0000000000000F0000000000000F0000000000000F000 +0000000000F0000000000000F0000000000000F0000000000000F0000000000000F00000 +00000000F0000000000000F0000000000000F0000000000000F0000000000000F0000000 +000000F00000007FFFFFFFFFFFC0FFFFFFFFFFFFE0FFFFFFFFFFFFE07FFFFFFFFFFFC000 +0000F0000000000000F0000000000000F0000000000000F0000000000000F00000000000 +00F0000000000000F0000000000000F0000000000000F0000000000000F0000000000000 +F0000000000000F0000000000000F0000000000000F0000000000000F0000000000000F0 +000000000000F0000000000000F0000000000000F0000000000000F0000000000000F000 +0000000000F00000000000006000000033327CAB3C>I<3C007E00FF00FF00FF80FF807F +803D800180018001800180038003000300070006000E000C001C0038007000600009177A +8715>II<3C7EFFFFFFFF7E3C08087A +8715>I<0000003000000078000000F8000000F8000000F0000001F0000001F0000001E0 +000003E0000003E0000003C0000007C0000007C00000078000000F8000000F8000000F00 +00001F0000001F0000003E0000003E0000003C0000007C0000007C00000078000000F800 +0000F8000000F0000001F0000001F0000001E0000003E0000003E0000003C0000007C000 +0007C000000F8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000 +003C0000007C0000007C00000078000000F8000000F8000000F0000001F0000001F00000 +01E0000003E0000003E0000007C0000007C00000078000000F8000000F8000000F000000 +1F0000001F0000001E0000003E0000003E0000003C0000007C0000007C00000078000000 +F8000000F8000000F0000000600000001D4B7CB726>I<000FE000007FFC0000F83E0003 +E00F8007C007C0078003C00F8003E01F0001F01F0001F03F0001F83F0001F83E0000F87E +0000FC7E0000FC7E0000FC7E0000FC7E0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE +0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE +0000FEFE0000FEFE0000FEFE0000FEFE0000FE7E0000FC7E0000FC7E0000FC7E0000FC7E +0000FC3F0001F83F0001F83F0001F81F0001F01F0001F00F8003E007C007C007C007C003 +E00F8000F83E00007FFC00000FE0001F347DB126>I<00070000000F0000001F0000007F +000007FF0000FFFF0000FFBF0000F83F0000003F0000003F0000003F0000003F0000003F +0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F +0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F +0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F +0000003F0000003F0000003F0000003F0000003F0000003F0000007F80007FFFFF807FFF +FF807FFFFF8019327AB126>I<003FC00000FFF00003FFFC000F80FF001E007F801C003F +C038001FE070000FE070000FF0600007F0FC0007F0FE0007F8FF0007F8FF0003F8FF0003 +F8FF0003F87E0007F83C0007F8000007F8000007F0000007F000000FF000000FE000001F +C000001FC000003F8000003F0000007E000000FC000001F8000001F0000003E0000007C0 +00000F8000001F0000003E0000003C00000078001800F0001801E0001803C00030078000 +300F0000301C0000701FFFFFF03FFFFFF07FFFFFF0FFFFFFE0FFFFFFE0FFFFFFE01D327C +B126>I<001FE00000FFFC0001FFFF0007E03F800F001FC01E000FE01C0007F03F0007F0 +3F8007F83F8003F83FC003F83F8003F83F8003F81F0007F8000007F8000007F0000007F0 +00000FE000000FC000001FC000003F8000007E000001F800007FE000007FFC0000003F00 +00001FC000000FE0000007F0000007F8000003F8000003FC000001FC000001FE000001FE +000001FE7E0001FEFF0001FEFF0001FEFF0001FEFF0001FEFF0001FCFE0003FC780003FC +700007F8380007F03C000FF01F001FE00FE03F8003FFFF0000FFFC00001FE0001F347DB1 +26>I<000001C000000001C000000003C000000007C000000007C00000000FC00000001F +C00000001FC00000003FC00000007FC00000006FC0000000CFC0000001CFC00000038FC0 +0000030FC00000070FC000000E0FC000000C0FC000001C0FC00000380FC00000300FC000 +00700FC00000E00FC00000C00FC00001800FC00003800FC00003000FC00006000FC0000E +000FC0000C000FC00018000FC00038000FC00030000FC00060000FC000E0000FC000FFFF +FFFF80FFFFFFFF80FFFFFFFF8000000FC00000000FC00000000FC00000000FC00000000F +C00000000FC00000000FC00000000FC00000000FC00000001FE0000007FFFF800007FFFF +800007FFFF8021337EB226>I<0C0000C00FC00FC00FFFFF800FFFFF000FFFFE000FFFFC +000FFFF0000FFFC0000C1800000C0000000C0000000C0000000C0000000C0000000C0000 +000C0000000C0000000C0000000C0FC0000C7FF8000CF07C000FC03F000F001F800F000F +C00E000FC00C0007E00C0007E0000007F0000003F0000003F0000003F8000003F8000003 +F8000003F8180003F87E0003F8FE0003F8FE0003F8FE0003F8FE0003F0FE0007F0F80007 +F0600007E0700007E070000FC038001FC03C001F801E007F000F80FE0007FFF80001FFE0 +00003F80001D347CB126>I<0000FE000007FF80001FFFE0003F00F0007C007001F801F8 +01F003F803E003F807E003F80FC003F80FC001F01F8000001F8000003F0000003F000000 +3F0000007F0000007E0000007E07F0007E1FFC00FE381F00FE700F80FEE007C0FFC003E0 +FF8003F0FF8001F8FF0001F8FF0001FCFF0000FCFF0000FCFE0000FEFE0000FEFE0000FE +FE0000FEFE0000FE7E0000FE7E0000FE7E0000FE7E0000FE7F0000FE3F0000FC3F0000FC +1F0001FC1F8001F80F8001F00FC003F007C007E003E00FC001F81F8000FFFF00003FFC00 +000FE0001F347DB126>I<300000003C0000003FFFFFFF3FFFFFFF3FFFFFFF7FFFFFFE7F +FFFFFE7FFFFFFC700000386000003060000070600000E0C00000C0C00001C0C000038000 +0007000000060000000E0000001C00000018000000380000007000000070000000E00000 +00E0000001C0000003C0000003C0000003C0000007800000078000000F8000000F800000 +0F8000001F8000001F0000001F0000003F0000003F0000003F0000003F0000003F000000 +7F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000000 +1C000020347CB126>I<000FE000007FFC0000FFFF0003F01F8007C007C00F0003E00E00 +01F01E0000F01C0000F83C0000783C0000783C0000783E0000783E0000783F0000F83F80 +00F03FC001F01FF001E01FF803C00FFE078007FF0F0003FFDE0001FFF80000FFF800003F +FE00003FFF0000F7FFC003E3FFE00780FFF00F007FF81E001FF83E0007FC3C0003FC7800 +01FC7800007EF800007EF000003EF000003EF000001EF000001EF000001EF800001EF800 +003C7800003C7C0000783E0000781F0000F00F8003E007F01FC001FFFF00007FFC00001F +E0001F347DB126>I<000FE000007FF80000FFFE0003F83F0007E00F800FC007C01F8007 +E01F8003F03F0003F07F0001F87E0001F87E0001F8FE0001FCFE0000FCFE0000FCFE0000 +FCFE0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE0000FE7E0001FE7E0001FE7F0001 +FE3F0001FE3F0003FE1F8003FE0F8007FE07C00EFE03E01CFE01F038FE007FF0FE001FC0 +FC000000FC000001FC000001FC000001F8000001F8000001F0000003F01F0003E03F8007 +E03F8007C03F800FC03F801F803F003F001C007E001F01FC000FFFF00003FFC00000FF00 +001F347DB126>I<3C7EFFFFFFFF7E3C000000000000000000000000000000003C7EFFFF +FFFF7E3C08207A9F15>I<3C7EFFFFFFFF7E3C000000000000000000000000000000003C +7EFEFFFFFF7F3F03030303070606060E0C1C38307060082F7A9F15>I<7FFFFFFFFFFFC0 +FFFFFFFFFFFFE0FFFFFFFFFFFFE07FFFFFFFFFFFC0000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000007FFFFF +FFFFFFC0FFFFFFFFFFFFE0FFFFFFFFFFFFE07FFFFFFFFFFFC033147C9C3C>61 +D<000000E0000000000000E0000000000000E0000000000001F0000000000001F0000000 +000003F8000000000003F8000000000003F8000000000007FC000000000007FC00000000 +0007FC00000000000DFE00000000000CFE00000000000CFE0000000000187F0000000000 +187F0000000000187F0000000000303F8000000000303F8000000000703FC00000000060 +1FC000000000601FC000000000E01FE000000000C00FE000000000C00FE000000001800F +F0000000018007F0000000018007F0000000030003F8000000030003F8000000030003F8 +000000060001FC000000060001FC0000000E0001FE0000000FFFFFFE0000000FFFFFFE00 +00001FFFFFFF0000001800007F0000001800007F0000003000007F8000003000003F8000 +003000003F8000006000001FC000006000001FC000006000001FC00000C000000FE00000 +C000000FE00001C000000FF00001C0000007F00003E0000007F0001FF000000FF800FFFE +0001FFFFE0FFFE0001FFFFE0FFFE0001FFFFE033367DB53A>65 DI<000003FE000C00003FFF801C0000FFFFE01C0003 +FE01F83C000FF0003C7C001FC0000EFC007F800007FC00FE000003FC01FC000001FC03FC +000000FC03F8000000FC07F00000007C0FE00000007C0FE00000003C1FC00000003C1FC0 +0000001C3FC00000001C3F800000001C7F800000000C7F800000000C7F800000000C7F00 +0000000CFF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00 +00000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000007F00 +000000007F800000000C7F800000000C7F800000000C3F800000000C3FC00000000C1FC0 +0000001C1FC0000000180FE0000000180FE00000003807F00000003003F80000007003FC +000000E001FC000000E000FE000001C0007F80000380001FC0000F00000FF0001E000003 +FE00FC000000FFFFF00000003FFFC000000003FE00002E377CB437>IIII<000003FE000C0000003FFF801C000000FFFFE01C000003FE01 +F83C00000FF0003C7C00001FC0000EFC00007F800007FC0000FE000003FC0001FC000001 +FC0003FC000000FC0003F8000000FC0007F00000007C000FE00000007C000FE00000003C +001FC00000003C001FC00000001C003FC00000001C003F800000001C007F800000000C00 +7F800000000C007F800000000C007F000000000C00FF000000000000FF000000000000FF +000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00 +0000000000FF000000000000FF000000000000FF000003FFFFE07F000003FFFFE07F8000 +03FFFFE07F80000003FE007F80000001FC003F80000001FC003FC0000001FC001FC00000 +01FC001FC0000001FC000FE0000001FC000FF0000001FC0007F0000001FC0003F8000001 +FC0003FC000001FC0001FE000003FC0000FF000003FC00007F800007FC00001FC0000E7C +00000FF0001C3C000003FE00F81C000000FFFFF00C0000003FFFC00000000003FE000000 +33377CB43C>III<007FFFFF007FFFFF00 +7FFFFF00003FE000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 +001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 +001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 +001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 +001FC07E001FC0FF001FC0FF001FC0FF001FC0FF001FC0FF003F80FE003F8060003F0070 +007F003800FE001C01FC000F03F00003FFC00000FF000020357DB227>IIIII<000007FC00000000007FFFC000000001FC07F000000007E000FC +0000000F80003E0000003F00001F8000007E00000FC00000FC000007E00001F8000003F0 +0003F0000001F80003F0000001F80007E0000000FC000FE0000000FE000FC00000007E00 +1FC00000007F001FC00000007F003F800000003F803F800000003F807F800000003FC07F +800000003FC07F000000001FC07F000000001FC0FF000000001FE0FF000000001FE0FF00 +0000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF0000 +00001FE0FF000000001FE0FF000000001FE0FF000000001FE07F000000001FC07F800000 +003FC07F800000003FC07F800000003FC03F800000003F803FC00000007F803FC0000000 +7F801FC00000007F001FE0000000FF000FE0000000FE0007F0000001FC0007F0000001FC +0003F8000003F80001F8000003F00000FC000007E000007E00000FC000003F00001F8000 +001FC0007F00000007E000FC00000001FC07F0000000007FFFC00000000007FC00000033 +377CB43C>II82 D<001FE00300007FFC070001FFFF070007F01FCF000F80 +03FF001F0000FF003E00007F003E00003F007C00001F007C00001F007800000F00F80000 +0700F800000700F800000700F800000700FC00000300FC00000300FE00000300FE000000 +007F000000007FC00000003FF00000003FFF0000001FFFF000000FFFFF000007FFFFC000 +03FFFFF00000FFFFF800003FFFFC000003FFFE0000003FFF00000003FF00000000FF8000 +00007F800000003F800000001FC00000000FC0C000000FC0C000000FC0C0000007C0C000 +0007C0C0000007C0E0000007C0E0000007C0F000000F80F000000F80F800000F00FC0000 +1F00FE00003E00FF00007E00FFC000FC00F1FC03F800E0FFFFE000E01FFF8000C003FE00 +0022377CB42B>I<7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7F8007F001FE7C0007F0 +003E780007F0001E700007F0000E700007F0000E600007F00006E00007F00007E00007F0 +0007E00007F00007C00007F00003C00007F00003C00007F00003C00007F00003C00007F0 +0003C00007F00003000007F00000000007F00000000007F00000000007F00000000007F0 +0000000007F00000000007F00000000007F00000000007F00000000007F00000000007F0 +0000000007F00000000007F00000000007F00000000007F00000000007F00000000007F0 +0000000007F00000000007F00000000007F00000000007F00000000007F00000000007F0 +0000000007F00000000007F00000000007F00000000007F00000000007F00000000007F0 +000000000FF80000001FFFFFFC00001FFFFFFC00001FFFFFFC0030337DB237>IIII89 +D91 D<03000C07001C0E00381C00701800603800E03000C0 +7001C0600180600180E00380C00300C00300C00300C00300DE0378FF03FCFF83FEFF83FE +7F81FE7F81FE3F00FC1E0078171774B326>II<007F8000 +0003FFF000000F80FC00001C003E00003F003F00003F801F80003F800FC0003F800FC000 +3F8007E0001F0007E000000007E000000007E000000007E000000007E0000001FFE00000 +1FFFE00000FF87E00003FC07E0000FF007E0001FC007E0003F8007E0007F8007E0007F00 +07E000FF0007E0C0FE0007E0C0FE0007E0C0FE0007E0C0FE000FE0C0FE000FE0C0FF001F +E0C07F003BE0C03F8071F1801FC1E1FF8007FFC0FF0000FE003C0022237DA126>97 +D<03F0000000FFF0000000FFF0000000FFF000000007F000000003F000000003F0000000 +03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 +F000000003F000000003F000000003F000000003F000000003F03F800003F0FFE00003F3 +C0F80003F7007E0003FE003F0003FC001F8003F8000FC003F0000FC003F00007E003F000 +07F003F00007F003F00003F003F00003F803F00003F803F00003F803F00003F803F00003 +F803F00003F803F00003F803F00003F803F00003F803F00003F803F00003F003F00007F0 +03F00007E003F00007E003F0000FC003F8000FC003FC001F8003EC003F0003CF007C0003 +8381F8000301FFE00000007F000025357EB32B>I<0007F800003FFF0000FC07C001F000 +E003E003F007C007F00FC007F01F8007F03F8007F03F0003E07F0000007F0000007E0000 +00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 +00FE0000007F0000007F0000003F0000183F8000181F8000381FC000300FC0007007E000 +E003F001C000FC0F80003FFE000007F0001D237EA122>I<0000003F0000000FFF000000 +0FFF0000000FFF000000007F000000003F000000003F000000003F000000003F00000000 +3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F +000000003F000000003F000007F03F00003FFC3F0000FC0F3F0001F003BF0007E001FF00 +0FC000FF001F80007F001F80003F003F00003F003F00003F007F00003F007E00003F00FE +00003F00FE00003F00FE00003F00FE00003F00FE00003F00FE00003F00FE00003F00FE00 +003F00FE00003F00FE00003F007E00003F007F00003F007F00003F003F00003F001F8000 +7F001F80007F000FC000FF0007E001FF8003F007BFFC00F81E3FFC003FFC3FFC000FE03F +0026357DB32B>I<000FE000007FFC0000F83F0003F00F8007E00FC00FC007E01F8003E0 +1F8003F03F0003F03F0001F07F0001F87E0001F87E0001F8FE0001F8FE0001F8FFFFFFF8 +FFFFFFF8FE000000FE000000FE000000FE000000FE0000007E0000007F0000007F000000 +3F0000183F0000181F8000380F8000300FC0007007E000E001F003C000FC0F00003FFE00 +0007F0001D237EA122>I<0001FC000007FF00001F0780003E0FC0007C1FC000FC1FC001 +F81FC001F81FC003F8070003F0000003F0000003F0000003F0000003F0000003F0000003 +F0000003F0000003F0000003F0000003F0000003F00000FFFFF000FFFFF000FFFFF00003 +F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003 +F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003 +F0000003F0000003F0000003F0000003F0000003F0000003F0000007F800007FFFE0007F +FFE0007FFFE0001A357FB417>I<0000001F00001FC07F8000FFF8E3C001F07FC7C007E0 +3F03C00FC01F83800F800F80001F800FC0001F0007C0003F0007E0003F0007E0003F0007 +E0003F0007E0003F0007E0003F0007E0001F0007C0001F800FC0000F800F80000FC01F80 +0007E03F000007F07C00000EFFF800000C1FC000001C000000001C000000001C00000000 +1E000000001E000000001F000000000FFFFE00000FFFFFC00007FFFFF00003FFFFFC0007 +FFFFFE001F0001FE003E00007F007C00003F007C00001F80F800000F80F800000F80F800 +000F80F800000F80F800000F80FC00001F807C00001F003E00003E001F00007C000FC001 +F80003F007E00000FFFF8000001FFC000022337EA126>I<03F0000000FFF0000000FFF0 +000000FFF000000007F000000003F000000003F000000003F000000003F000000003F000 +000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 +0003F000000003F000000003F01FC00003F07FF00003F1E0FC0003F3807C0003F7007E00 +03FE007E0003FC003F0003FC003F0003F8003F0003F8003F0003F0003F0003F0003F0003 +F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0 +003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000 +3F0003F0003F0003F0003F0007F8007F80FFFFC7FFFCFFFFC7FFFCFFFFC7FFFC26347EB3 +2B>I<07800FC01FE01FE01FE01FE00FC007800000000000000000000000000000000000 +00000007E0FFE0FFE0FFE00FE007E007E007E007E007E007E007E007E007E007E007E007 +E007E007E007E007E007E007E007E007E007E007E007E007E00FF0FFFFFFFFFFFF10337E +B215>I<0003C00007E0000FF0000FF0000FF0000FF00007E00003C00000000000000000 +000000000000000000000000000000000000000000000003F000FFF000FFF000FFF00007 +F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 +F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 +F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F03803F07C03 +F0FE03E0FE07E0FE07C0FE0FC07C0F80381F001FFC0007F000144384B217>I<03F00000 +00FFF0000000FFF0000000FFF000000007F000000003F000000003F000000003F0000000 +03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 +F000000003F000000003F000000003F000000003F000000003F003FFE003F003FFE003F0 +03FFE003F001FF0003F000F80003F001E00003F001C00003F003800003F00F000003F01C +000003F038000003F070000003F0F0000003F3F8000003F7FC000003FEFC000003FC7E00 +0003F87F000003F03F800003F01F800003F00FC00003F00FE00003F007E00003F003F000 +03F003F80003F001F80003F000FC0003F000FE0007F800FF80FFFFC3FFF0FFFFC3FFF0FF +FFC3FFF024347EB329>I<07E0FFE0FFE0FFE00FE007E007E007E007E007E007E007E007 +E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 +E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E00F +F0FFFFFFFFFFFF10347EB315>I<03F01FE000FF0000FFF07FF803FFC000FFF1E07C0F03 +E000FFF3803E1C01F00007F7003F3801F80003FE003F7001F80003FC001FE000FC0003FC +001FE000FC0003F8001FC000FC0003F8001FC000FC0003F0001F8000FC0003F0001F8000 +FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0 +001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000 +FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0 +001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0007F8003FC001 +FE00FFFFC7FFFE3FFFF0FFFFC7FFFE3FFFF0FFFFC7FFFE3FFFF03C217EA041>I<03F01F +C000FFF07FF000FFF1E0FC00FFF3807C0007F7007E0003FE007E0003FC003F0003FC003F +0003F8003F0003F8003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F00 +03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003 +F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F8 +007F80FFFFC7FFFCFFFFC7FFFCFFFFC7FFFC26217EA02B>I<0007F00000003FFE000000 +FC1F800001F007C00003C001E00007C001F0000F8000F8001F00007C001F00007C003F00 +007E003E00003E007E00003F007E00003F007E00003F00FE00003F80FE00003F80FE0000 +3F80FE00003F80FE00003F80FE00003F80FE00003F80FE00003F807E00003F007E00003F +007E00003F003F00007E003F00007E001F00007C001F8000FC000FC001F80007C001F000 +03F007E00000FC1F8000003FFE00000007F0000021237EA126>I<03F03F8000FFF0FFE0 +00FFF3C0F800FFF7007E0007FE003F0003FC001F8003F8001FC003F0000FC003F0000FE0 +03F00007F003F00007F003F00007F003F00003F803F00003F803F00003F803F00003F803 +F00003F803F00003F803F00003F803F00003F803F00003F803F00007F803F00007F003F0 +0007F003F00007E003F0000FE003F0000FC003F8001FC003FC003F8003FC003F0003FF00 +FC0003F381F80003F1FFE00003F07F000003F000000003F000000003F000000003F00000 +0003F000000003F000000003F000000003F000000003F000000003F000000007F8000000 +FFFFC00000FFFFC00000FFFFC0000025307EA02B>I<0007F00300003FFC070000FC0F07 +0001F8038F0007E0018F000FE001DF001FC000FF001F80007F003F80007F003F00003F00 +7F00003F007F00003F00FF00003F00FE00003F00FE00003F00FE00003F00FE00003F00FE +00003F00FE00003F00FE00003F00FE00003F00FE00003F007F00003F007F00003F007F00 +003F003F80007F001F80007F001FC000FF000FC001FF0007E003BF0003F0073F0000F81E +3F00003FF83F00000FE03F000000003F000000003F000000003F000000003F000000003F +000000003F000000003F000000003F000000003F000000003F000000007F8000000FFFFC +00000FFFFC00000FFFFC26307DA029>I<03E07C00FFE1FF00FFE38F80FFE71FC007EE1F +C003EC1FC003EC1FC003FC0F8003F8000003F8000003F8000003F0000003F0000003F000 +0003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000 +0003F0000003F0000003F0000003F0000003F0000003F0000007F80000FFFFE000FFFFE0 +00FFFFE0001A217FA01E>I<00FF060007FFCE001F00FE003C003E0078001E0078000E00 +F0000E00F0000600F0000600F8000600F8000600FE000000FF8000007FFC00003FFFC000 +3FFFF0000FFFF80007FFFC0000FFFE00000FFF000000FF0000003F80C0001F80C0000F80 +E0000780E0000780E0000780F0000780F0000700F8000F00FC000E00FE001C00F7807800 +E1FFE000C07F800019237EA11E>I<003000003000003000003000003000007000007000 +00700000F00000F00001F00001F00003F00007F0001FFFFEFFFFFEFFFFFE03F00003F000 +03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 +03F00003F00303F00303F00303F00303F00303F00303F00303F00303F00701F80601F806 +00FC0E007E1C001FF80007E0182F7FAD1E>I<03F0003F00FFF00FFF00FFF00FFF00FFF0 +0FFF0007F0007F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000 +3F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F +0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F00 +03F0007F0003F0007F0003F000FF0001F000FF0001F801FF8000F803BFFC007E073FFC00 +1FFE3FFC0007F83F0026227EA02B>IIII<7FFF807FF87FFF807FF87FFF807FF807F8001F +C003F8000F8001F800070001F800060000FC000C0000FC000C0000FE001C00007E001800 +007E001800003F003000003F003000003F807000001F806000001FC0E000000FC0C00000 +0FC0C0000007E180000007E180000007F380000003F300000003FB00000001FE00000001 +FE00000000FC00000000FC00000000FC0000000078000000007800000000300000000030 +0000000060000000006000000000E000000000C000000000C00000000180000078018000 +00FC03000000FC03000000FC06000000FC0E000000701C00000078380000001FF0000000 +0FC000000025307F9F29>I<3FFFFFF03FFFFFF03F000FF03C000FE038001FC030003F80 +70007F8070007F006000FE006001FC006003FC006003F8000007F000000FE000000FE000 +001FC000003F8000007F0000007F003000FE003001FC003003FC003003F8003007F00070 +0FE000701FE000601FC000E03F8000E07F0003E0FF000FE0FFFFFFE0FFFFFFE01C207E9F +22>II<1C00707F01FCFF01FEFF01FEFF01FEFF01 +FE7F01FC1C0070170879B226>127 D E /Fy 31 90 df<7FFFFF80FFFFFFC0FFFFFFC0FF +FFFFC0FFFFFFC07FFFFF801A067F9621>45 DI<00001E000000007F00000000FF00000007FF0000003FFF00 +007FFFFF00007FFFFF0000FFFFFF0000FFFFFF0000FFFFFF00007FE7FF00000007FF0000 +0007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF000000 +07FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007 +FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF +00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00 +000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00003FFFFFFFC0 +7FFFFFFFE07FFFFFFFE07FFFFFFFE07FFFFFFFE03FFFFFFFC0233579B432>49 +D<0003FF0000001FFFF00000FFFFFC0001FFFFFF0007FFFFFFC00FFFFFFFE01FFC07FFF0 +3FF001FFF87FE0007FF87FC0003FFCFFC0003FFEFF80001FFE7F00001FFE3F00000FFF1F +00000FFF0E00000FFF06000007FF00000007FF00000007FF0000000FFF0000000FFF0000 +000FFF0000000FFE0000001FFE0000001FFC0000003FFC0000007FF8000000FFF0000000 +FFE0000001FFC0000003FF80000007FF0000001FFC0000003FF80000007FF0000000FFC0 +000001FF80000003FE00000007FC0000001FF80000003FF00000007FC0000000FF800000 +01FF00000003FE00000007F80000000FF00000001FFFFFFFFE3FFFFFFFFF7FFFFFFFFF7F +FFFFFFFF7FFFFFFFFF3FFFFFFFFE28357CB432>I<0001FF800000001FFFF80000007FFF +FE000001FFFFFF800007FFFFFFC0001FFF01FFE0003FF800FFF0007FE0007FF8007FC000 +3FF8003F80003FFC001F00003FFC000F00001FFC000600003FFC000000003FFC00000000 +3FFC000000003FFC000000007FF8000000007FF800000000FFF000000001FFF000000003 +FFE00000001FFFC000000FFFFF8000000FFFFE0000000FFFF80000000FFFF80000000FFF +FE0000000FFFFF8000000001FFE0000000007FF0000000003FFC000000001FFC00000000 +0FFE000000000FFF000000000FFF0000000007FF8000000007FF8000000007FF80000000 +07FF8000000007FF8000000007FF8000000007FF806000000FFF007000000FFF00780000 +0FFF00FE00001FFE00FF80003FFC00FFE0007FFC007FFE01FFF8001FFFFFFFF0000FFFFF +FFC00003FFFFFF800000FFFFFE0000001FFFF000000003FF80000029377CB432>I<0000 +03FF8000000007FFC00000000FFFC00000000FFFC00000001FFFC00000003FFFC0000000 +3FFFC00000007FFFC0000000FFFFC0000000FF7FC0000001FF7FC0000003FE7FC0000003 +FC7FC0000007FC7FC000000FF87FC000000FF07FC000001FF07FC000001FE07FC000003F +C07FC000007FC07FC000007F807FC00000FF807FC00001FF007FC00001FE007FC00003FE +007FC00007FC007FC00007F8007FC0000FF8007FC0000FF0007FC0001FE0007FC0003FE0 +007FC0003FC0007FC0007FC0007FC000FF80007FC000FFFFFFFFFFC0FFFFFFFFFFE0FFFF +FFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE07FFFFFFFFFC00000007FC0000000007FC0000000 +007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000 +007FC0000000007FC0000000007FC0000000003F80002B347DB332>I<07FFFFFFF80007 +FFFFFFFC000FFFFFFFFC000FFFFFFFFC000FFFFFFFFC000FFFFFFFF8000FFE000000000F +FE000000000FFE000000000FFE000000000FFE000000000FFE000000000FFE000000000F +FE000000000FFE000000000FFE000000000FFE000000000FFE3FE000000FFFFFFC00000F +FFFFFF00000FFFFFFF80000FFFFFFFE0000FFFFFFFF0000FFFE07FF8000FFF003FFC000F +FE001FFC000FFC000FFE000FF8000FFE0007F80007FF0007F00007FF0000000007FF8000 +000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000 +000007FF8000000007FF8018000007FF003C00000FFF003E00000FFF007E00000FFE00FF +80001FFC00FFC0003FFC007FF0007FF8003FFE01FFF0001FFFFFFFE00007FFFFFF800003 +FFFFFF000000FFFFFC0000003FFFF000000003FF00000029357DB232>I<000007FC0000 +00003FFF80000001FFFFE0000007FFFFE000000FFFFFE000003FFC03E000007FE0006000 +00FFC000000001FF8000000003FF0000000007FE0000000007FC000000000FFC00000000 +1FF8000000001FF8000000003FF0000000003FF0000000003FF007F000007FF03FFE0000 +7FE0FFFF80007FE1FFFFC0007FE3FFFFE000FFE7FFFFF000FFEFC07FF800FFEF001FFC00 +FFFE000FFC00FFFC0007FE00FFF80007FE00FFF80007FF00FFF00003FF00FFF00003FF80 +FFF00003FF80FFE00003FF80FFE00003FF80FFE00003FF807FE00003FF807FE00003FF80 +7FE00003FF807FE00003FF807FF00003FF803FF00003FF803FF00003FF003FF00003FF00 +1FF00007FF001FF80007FE000FF8000FFE000FFC001FFC0007FE003FF80003FF807FF000 +01FFFFFFE00000FFFFFFC000007FFFFF0000001FFFFE00000007FFF800000000FFC00000 +29377CB432>I<0001FFC00000000FFFF80000007FFFFF000001FFFFFFC00003FFFFFFE0 +0007FF007FF0000FFC001FF8001FF8000FFC003FF8000FFE003FF00007FE003FF00007FE +007FF00007FF007FF00007FF007FF00007FF007FF00007FF007FF00007FF007FF00007FF +003FF00007FE003FF8000FFE001FF8000FFC000FFC001FF80007FE003FF00003FFFFFFE0 +0000FFFFFF8000003FFFFE00000007FFF00000003FFFFE000000FFFFFF800003FFE3FFE0 +0007FE003FF0000FFC001FF8001FF8000FFC003FF00007FE007FF00007FF007FE00003FF +007FE00003FF00FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF +80FFE00003FF807FE00003FF007FE00003FF007FF00007FF003FF00007FE001FF8000FFC +001FFC001FFC000FFF007FF80007FFFFFFF00003FFFFFFE00000FFFFFF8000003FFFFE00 +00000FFFF800000001FFC0000029377CB432>56 D<000007FFE0000000000FFFF0000000 +001FFFF8000000001FFFF8000000003FFFFC000000003FFFFC000000003FFFFC00000000 +7FFFFE000000007FFFFE00000000FFFFFF00000000FFFFFF00000001FFEFFF80000001FF +EFFF80000001FFCFFF80000003FFC7FFC0000003FF87FFC0000007FF83FFE0000007FF03 +FFE0000007FF01FFE000000FFF01FFF000000FFE01FFF000001FFE00FFF800001FFC00FF +F800003FFC007FFC00003FFC007FFC00003FF8003FFC00007FF8003FFE00007FF0003FFE +0000FFF0001FFF0000FFE0001FFF0001FFE0000FFF8001FFE0000FFF8001FFC00007FF80 +03FFC00007FFC003FFFFFFFFFFC007FFFFFFFFFFE007FFFFFFFFFFE00FFFFFFFFFFFF00F +FFFFFFFFFFF00FFFFFFFFFFFF01FFFFFFFFFFFF81FFFFFFFFFFFF83FFC0000007FFC3FF8 +0000007FFC3FF80000003FFC7FF80000003FFE7FF00000003FFEFFF00000001FFFFFE000 +00001FFFFFE00000000FFFFFC000000007FF38337CB241>65 D<7FFFFFFF000000FFFFFF +FFF80000FFFFFFFFFF0000FFFFFFFFFFC000FFFFFFFFFFF000FFFFFFFFFFF800FFFFFFFF +FFFC00FFFFFFFFFFFE00FFF00007FFFF00FFF000007FFF80FFF000000FFF80FFF0000003 +FFC0FFF0000003FFC0FFF0000001FFC0FFF0000003FFC0FFF0000003FFC0FFF0000007FF +80FFF000000FFF80FFF000003FFF00FFF00000FFFE00FFF0000FFFF800FFFFFFFFFFE000 +FFFFFFFFFF8000FFFFFFFFFC0000FFFFFFFFFF0000FFFFFFFFFFE000FFFFFFFFFFF800FF +F00003FFFE00FFF000007FFF00FFF000000FFF80FFF0000007FFC0FFF0000003FFE0FFF0 +000001FFE0FFF0000000FFF0FFF0000000FFF0FFF0000000FFF0FFF0000000FFF0FFF000 +0000FFF0FFF0000001FFE0FFF0000007FFE0FFF000001FFFE0FFF00001FFFFC0FFFFFFFF +FFFF80FFFFFFFFFFFF00FFFFFFFFFFFE00FFFFFFFFFFF800FFFFFFFFFFF000FFFFFFFFFF +8000FFFFFFFFFE00007FFFFFFFC00000343279B142>I<0000001FFF8000000003FFFFFC +0000001FFFFFFFC000007FFFFFFFF00001FFFFFFFFF00007FFFFFFFFF0000FFFF803FFF0 +003FFF80003FE0007FFE00001FE000FFF8000007E001FFF0000003E003FFE0000001E007 +FFC0000000E00FFF80000000400FFF00000000001FFF00000000001FFE00000000003FFC +00000000003FFC00000000007FFC00000000007FF800000000007FF80000000000FFF800 +00000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000 +000000FFF00000000000FFF00000000000FFF00000000000FFF800000000007FF8000000 +00007FF800000000007FFC00000000003FFC00000000003FFC00000000001FFE00000000 +001FFF00000000000FFF00000000000FFF800000000007FFC00000003003FFE000000070 +01FFF0000000F000FFF8000001F0007FFE000007F8003FFF80001FF8000FFFF800FFF800 +07FFFFFFFFF80001FFFFFFFFF800007FFFFFFFE000001FFFFFFF00000003FFFFFC000000 +001FFFC00035367BB340>I<7FFFFFFF80000000FFFFFFFFFC000000FFFFFFFFFF800000 +FFFFFFFFFFE00000FFFFFFFFFFF80000FFFFFFFFFFFC0000FFFFFFFFFFFF0000FFFFFFFF +FFFF8000FFF00001FFFFC000FFF000001FFFE000FFF0000003FFF000FFF0000001FFF800 +FFF00000007FFC00FFF00000003FFC00FFF00000001FFE00FFF00000000FFF00FFF00000 +000FFF00FFF000000007FF00FFF000000007FF80FFF000000007FF80FFF000000003FF80 +FFF000000003FFC0FFF000000003FFC0FFF000000003FFC0FFF000000003FFC0FFF00000 +0003FFC0FFF000000003FFC0FFF000000003FFC0FFF000000003FFC0FFF000000003FFC0 +FFF000000007FF80FFF000000007FF80FFF000000007FF80FFF00000000FFF00FFF00000 +000FFF00FFF00000001FFE00FFF00000003FFE00FFF00000007FFC00FFF0000000FFF800 +FFF0000003FFF000FFF000000FFFF000FFF00001FFFFE000FFFFFFFFFFFF8000FFFFFFFF +FFFF0000FFFFFFFFFFFE0000FFFFFFFFFFF80000FFFFFFFFFFE00000FFFFFFFFFF800000 +FFFFFFFFFC0000007FFFFFFFC00000003A3279B147>I<7FFFFFFFFFFF00FFFFFFFFFFFF +80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF00FFF00000000000 +FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FF +F00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF0 +0000000000FFF00000000000FFF00000000000FFF00000000000FFFFFFFFFFF800FFFFFF +FFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFF800FFF00000 +000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF0000000 +0000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF000000000 +00FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000 +FFF00000000000FFFFFFFFFFFF80FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FF +FFFFFFFFFFC07FFFFFFFFFFF80323279B13E>I<7FFFFFFFFFFCFFFFFFFFFFFEFFFFFFFF +FFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF000000000FFF000000000FFF00000 +0000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000 +0000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000 +0000FFF000000000FFFFFFFFFFC0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFF +FFE0FFFFFFFFFFC0FFF000000000FFF000000000FFF000000000FFF000000000FFF00000 +0000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000 +0000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000 +0000FFF000000000FFF000000000FFF000000000FFF0000000007FE0000000002F3279B1 +3B>I<0000001FFF8000000001FFFFFC0000000FFFFFFF8000007FFFFFFFF00001FFFFFF +FFFC0007FFFFFFFFFC000FFFF801FFFC003FFF80003FFC007FFE00000FF800FFFC000003 +F801FFF0000001F803FFE0000000F807FFC0000000780FFF80000000380FFF0000000010 +1FFF00000000001FFE00000000003FFC00000000003FFC00000000007FFC00000000007F +F800000000007FF80000000000FFF80000000000FFF000007FFFFCFFF000007FFFFCFFF0 +00007FFFFCFFF000007FFFFCFFF000007FFFFCFFF000007FFFFCFFF00000001FFCFFF000 +00001FFCFFF80000001FFC7FF80000001FFC7FF80000001FFC7FFC0000001FFC3FFC0000 +001FFC3FFC0000001FFC1FFE0000001FFC1FFF0000001FFC0FFF0000001FFC0FFF800000 +1FFC07FFC000001FFC03FFE000001FFC01FFF000001FFC00FFFC00001FFC007FFE00001F +FC003FFF80001FFC000FFFF801FFFC0007FFFFFFFFFC0001FFFFFFFFFC00007FFFFFFFF0 +00000FFFFFFF80000001FFFFFC000000001FFF800036367BB343>I<7FE0000001FF80FF +F0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0 +000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF000 +0003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF00000 +03FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFFFFFFFFF +FFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFF +C0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0 +FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FF +F0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0 +000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF000 +0003FFC0FFF0000003FFC07FE0000001FF80323279B141>I<7FFFFCFFFFFEFFFFFEFFFF +FEFFFFFE7FFFFC03FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FF +C003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FF +C003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FFC003FF +C003FFC003FFC003FFC003FFC07FFFFCFFFFFEFFFFFEFFFFFEFFFFFE7FFFFC17327FB11A +>I<7F800000003FFCFFC00000007FFCFFC0000001FFFCFFC0000003FFF0FFC0000007FF +E0FFC000001FFFC0FFC000003FFF00FFC000007FFE00FFC00001FFFC00FFC00003FFF000 +FFC0000FFFE000FFC0001FFFC000FFC0003FFF0000FFC000FFFE0000FFC001FFFC0000FF +C003FFF00000FFC00FFFE00000FFC01FFFC00000FFC03FFF000000FFC0FFFE000000FFC1 +FFF8000000FFC3FFF8000000FFCFFFFC000000FFDFFFFE000000FFFFFFFF000000FFFFFF +FF800000FFFFFFFFC00000FFFFF3FFE00000FFFFE1FFF00000FFFF80FFF80000FFFF007F +FC0000FFFE003FFE0000FFF8001FFF0000FFF0000FFF8000FFE00007FFC000FFC00007FF +E000FFC00003FFF000FFC00001FFF800FFC00000FFF800FFC000007FFC00FFC000003FFE +00FFC000001FFF00FFC000000FFF80FFC0000007FFC0FFC0000003FFE0FFC0000001FFF0 +FFC0000000FFF8FFC00000007FFCFFC00000003FFC7F800000001FFC363279B143>75 +D<7FE000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFFFFFFFFFF0FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFF +F8FFFFFFFFFFF87FFFFFFFFFF02D3279B139>I<7FF8000000001FFF00FFFC000000003F +FF80FFFE000000007FFF80FFFE000000007FFF80FFFF00000000FFFF80FFFF00000000FF +FF80FFFF80000001FFFF80FFFF80000001FFFF80FFFFC0000003FFFF80FFFFC0000003FF +FF80FFBFE0000007FDFF80FFBFE0000007FDFF80FFBFE0000007FDFF80FF9FF000000FF9 +FF80FF9FF000000FF9FF80FF8FF800001FF1FF80FF8FF800001FF1FF80FF87FC00003FE1 +FF80FF87FC00003FE1FF80FF83FE00007FC1FF80FF83FE00007FC1FF80FF81FF0000FF81 +FF80FF81FF0000FF81FF80FF80FF8001FF01FF80FF80FF8001FF01FF80FF807FC003FE01 +FF80FF807FC003FE01FF80FF803FE007FC01FF80FF803FE007FC01FF80FF801FF00FF801 +FF80FF801FF00FF801FF80FF800FF81FF001FF80FF800FF81FF001FF80FF8007FC3FE001 +FF80FF8007FC3FE001FF80FF8003FE7FC001FF80FF8003FE7FC001FF80FF8003FE7FC001 +FF80FF8001FFFF8001FF80FF8001FFFF8001FF80FF8000FFFF0001FF80FF8000FFFF0001 +FF80FF80007FFE0001FF80FF80007FFE0001FF80FF80003FFC0001FF80FF80003FFC0001 +FF80FF80001FF80001FF80FF80000FF00001FF80FF800000000001FF807F000000000000 +FF00413278B152>I<7FFC0000003F80FFFE0000007FC0FFFF0000007FC0FFFF8000007F +C0FFFF8000007FC0FFFFC000007FC0FFFFE000007FC0FFFFE000007FC0FFBFF000007FC0 +FFBFF000007FC0FF9FF800007FC0FF8FFC00007FC0FF8FFC00007FC0FF87FE00007FC0FF +87FE00007FC0FF83FF00007FC0FF81FF80007FC0FF81FF80007FC0FF80FFC0007FC0FF80 +7FE0007FC0FF807FE0007FC0FF803FF0007FC0FF803FF0007FC0FF801FF8007FC0FF800F +FC007FC0FF800FFC007FC0FF8007FE007FC0FF8003FF007FC0FF8003FF007FC0FF8001FF +807FC0FF8001FF807FC0FF8000FFC07FC0FF80007FE07FC0FF80007FE07FC0FF80003FF0 +7FC0FF80001FF87FC0FF80001FF87FC0FF80000FFC7FC0FF80000FFC7FC0FF800007FE7F +C0FF800003FF7FC0FF800003FF7FC0FF800001FFFFC0FF800001FFFFC0FF800000FFFFC0 +FF8000007FFFC0FF8000007FFFC0FF8000003FFFC0FF8000001FFFC07F0000000FFF8032 +3279B141>I<0000001FFE00000000000003FFFFF000000000001FFFFFFE00000000007F +FFFFFF8000000001FFFFFFFFE000000007FFFFFFFFF80000000FFFF003FFFC0000003FFF +00003FFF0000007FFC00000FFF800000FFF0000003FFC00001FFE0000001FFE00003FFC0 +000000FFF00007FF800000007FF80007FF000000003FF8000FFE000000001FFC001FFE00 +0000001FFE001FFC000000000FFE003FFC000000000FFF003FF80000000007FF007FF800 +00000007FF807FF80000000007FF807FF00000000003FF807FF00000000003FF80FFF000 +00000003FFC0FFF00000000003FFC0FFF00000000003FFC0FFF00000000003FFC0FFF000 +00000003FFC0FFF00000000003FFC0FFF00000000003FFC0FFF00000000003FFC0FFF800 +00000007FFC07FF80000000007FF807FF80000000007FF807FF80000000007FF803FFC00 +0000000FFF003FFC000000000FFF001FFE000000001FFE001FFE000000001FFE000FFF00 +0000003FFC000FFF800000007FFC0007FF800000007FF80003FFC0000000FFF00001FFF0 +000003FFE00000FFF8000007FFC000007FFE00001FFF8000003FFF80007FFF0000001FFF +F003FFFE00000007FFFFFFFFF800000001FFFFFFFFE0000000007FFFFFFF80000000001F +FFFFFE000000000003FFFFF00000000000001FFE0000000042367BB34D>I<7FFFFFFF00 +0000FFFFFFFFF00000FFFFFFFFFE0000FFFFFFFFFF8000FFFFFFFFFFE000FFFFFFFFFFF0 +00FFFFFFFFFFF800FFFFFFFFFFFC00FFF00001FFFE00FFF000003FFF00FFF000000FFF00 +FFF0000007FF80FFF0000007FF80FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FF +F0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000003FFC0FFF0000007FF80FFF0 +000007FF80FFF000000FFF00FFF000003FFE00FFF00001FFFE00FFFFFFFFFFFC00FFFFFF +FFFFF000FFFFFFFFFFE000FFFFFFFFFF8000FFFFFFFFFE0000FFFFFFFFF00000FFFFFFFF +000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF0000000 +0000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF000000000 +00FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000 +FFF00000000000FFF000000000007FE00000000000323279B13F>I<7FFFFFFF800000FF +FFFFFFF80000FFFFFFFFFF0000FFFFFFFFFFE000FFFFFFFFFFF000FFFFFFFFFFFC00FFFF +FFFFFFFE00FFFFFFFFFFFF00FFF000007FFF80FFF0000007FFC0FFF0000003FFE0FFF000 +0001FFE0FFF0000000FFF0FFF0000000FFF0FFF0000000FFF0FFF0000000FFF0FFF00000 +00FFF0FFF0000000FFF0FFF0000001FFE0FFF0000003FFC0FFF000000FFFC0FFF000007F +FF80FFFFFFFFFFFE00FFFFFFFFFFFC00FFFFFFFFFFF000FFFFFFFFFF8000FFFFFFFFFC00 +00FFFFFFFFF00000FFF0007FF80000FFF0003FFC0000FFF0001FFE0000FFF0000FFE0000 +FFF0000FFF0000FFF00007FF8000FFF00003FFC000FFF00001FFE000FFF00000FFE000FF +F00000FFF000FFF000007FF800FFF000003FFC00FFF000001FFE00FFF000001FFE00FFF0 +00000FFF00FFF0000007FF80FFF0000003FFC0FFF0000001FFC0FFF0000001FFE0FFF000 +0000FFF0FFF00000007FF07FE00000003FF0343279B141>82 D<00003FFC00000003FFFF +E000001FFFFFFC00007FFFFFFF0000FFFFFFFFC003FFFFFFFFC007FFFFFFFFC00FFFC007 +FFC01FFE0000FF801FFC00003F803FF000001F803FF000000F807FE0000007807FE00000 +03807FE0000001007FF0000000007FF8000000007FFC000000007FFF000000007FFFF800 +00003FFFFFE000003FFFFFFE00001FFFFFFFC0000FFFFFFFF0000FFFFFFFFC0003FFFFFF +FF0001FFFFFFFF8000FFFFFFFFC0003FFFFFFFE0000FFFFFFFF00001FFFFFFF000000FFF +FFF80000003FFFF800000003FFFC00000000FFFC000000003FFC000000001FFC00000000 +1FFC200000000FFC700000000FFC780000000FFC7E0000001FF87F0000001FF87FC00000 +3FF07FF000007FF0FFFC0001FFE0FFFFC00FFFC0FFFFFFFFFF80FFFFFFFFFF003FFFFFFF +FE0007FFFFFFF80001FFFFFFE000001FFFFF80000000FFF800002E367CB338>I<7FFFFF +FFFFFFFFF8FFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFCFFFFFFFFFFFFFF +FC7FFFFFFFFFFFFFF80000007FF80000000000007FF80000000000007FF8000000000000 +7FF80000000000007FF80000000000007FF80000000000007FF80000000000007FF80000 +000000007FF80000000000007FF80000000000007FF80000000000007FF8000000000000 +7FF80000000000007FF80000000000007FF80000000000007FF80000000000007FF80000 +000000007FF80000000000007FF80000000000007FF80000000000007FF8000000000000 +7FF80000000000007FF80000000000007FF80000000000007FF80000000000007FF80000 +000000007FF80000000000007FF80000000000007FF80000000000007FF8000000000000 +7FF80000000000007FF80000000000007FF80000000000007FF80000000000007FF80000 +000000007FF80000000000007FF80000000000007FF80000000000007FF8000000000000 +7FF80000000000007FF80000000000007FF80000000000007FF80000000000003FF00000 +003E327CB147>I<7FE0000000FF80FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0 +FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FF +F0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0 +000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF000 +0001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF00000 +01FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001 +FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FFC0FFF0000001FF +C0FFF0000001FFC0FFF0000001FFC07FF8000003FF807FF8000003FF807FFC000007FF80 +3FFE00000FFF001FFF00001FFF001FFFC0007FFE000FFFF803FFFC0007FFFFFFFFF80003 +FFFFFFFFF00001FFFFFFFFE000007FFFFFFF8000001FFFFFFF00000007FFFFFC00000001 +FFFFE0000000001FFE000000323479B141>I<7F80000003FFC0000001FCFFC0000007FF +E0000003FEFFE0000007FFE0000003FE7FE000000FFFF0000007FC7FE000000FFFF00000 +07FC7FF000000FFFF0000007FC3FF000001FFFF800000FF83FF000001FFFF800000FF83F +F800001FFFF800000FF81FF800003FEFFC00001FF01FF800003FEFFC00001FF01FFC0000 +3FCFFC00001FF00FFC00007FC7FE00003FE00FFC00007FC7FE00003FE00FFE00007F87FE +00003FE007FE0000FF83FF00007FC007FE0000FF83FF00007FC007FF0001FF03FF00007F +C003FF0001FF01FF8000FF8003FF0001FF01FF8000FF8003FF8003FE01FF8000FF8001FF +8003FE00FFC001FF0001FF8003FE00FFC001FF0001FFC007FC00FFC001FF0000FFC007FC +007FE003FE0000FFC007FC007FE003FE0000FFE00FF8007FE007FE00007FE00FF8003FF0 +07FC00007FE00FF8003FF007FC00007FF01FF0003FF00FFC00003FF01FF0001FF80FF800 +003FF01FF0001FF80FF800003FF83FE0001FF81FF800001FF83FE0000FFC1FF000001FF8 +3FE0000FFC1FF000001FFC7FC0000FFC3FF000000FFC7FC00007FE3FE000000FFC7FC000 +07FE3FE000000FFEFF800007FE7FE0000007FEFF800003FF7FC0000007FEFF800003FF7F +C0000007FFFF000003FFFFC0000003FFFF000001FFFF80000003FFFF000001FFFF800000 +03FFFE000001FFFF80000001FFFE000000FFFF00000001FFFE000000FFFF00000001FFFC +000000FFFF00000000FFFC0000007FFE00000000FFFC0000007FFE000000007FF0000000 +3FFC000057337EB15C>87 D<3FFF0000007FF8003FFF800000FFFC003FFFC00001FFF800 +1FFFC00003FFF0000FFFE00007FFE00007FFF0000FFFE00003FFF8001FFFC00001FFFC00 +1FFF800000FFFE003FFF0000007FFF007FFE0000003FFF00FFFC0000001FFF81FFF80000 +000FFFC3FFF00000000FFFE7FFF000000007FFF7FFE000000003FFFFFFC000000001FFFF +FF8000000000FFFFFF00000000007FFFFE00000000003FFFFC00000000001FFFF8000000 +00000FFFF0000000000007FFF0000000000003FFE0000000000007FFF000000000000FFF +F800000000001FFFFC00000000003FFFFE00000000007FFFFF0000000000FFFFFF000000 +0000FFFFFF8000000001FFF7FFC000000003FFE7FFE000000007FFC3FFF00000000FFF81 +FFF80000001FFF80FFFC0000003FFF007FFE0000007FFE003FFF0000007FFC003FFF8000 +00FFF8001FFFC00001FFF8000FFFE00003FFF00007FFF00007FFE00003FFF8000FFFC000 +01FFFC001FFF800001FFFC003FFF800000FFFE007FFF0000007FFF007FFE0000003FFF80 +FFFC0000001FFFC07FF80000000FFF803A327DB141>II +E /Fz 49 124 df<00000FF8000000007FFE00000001F80780000007E001C000001F8000 +E000003F0007E000007E000FF000007E000FF00000FC000FF00000FC000FF00001F8000F +F00001F80007E00001F80001800001F80000000001F80000000001F80000000001F80000 +000001F80000000001F80000000001F80000000001F80000000001F80000000001F80003 +F000FFFFFFFFF000FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003 +F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 +F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 +F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 +F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 +F00001F80003F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FF +FFC02A3B7FBA2E>12 D<7800FC00FC00FE00FF007F801F800FC007E003F000F00078003C +001E00060F0F77B92A>18 D<003C007E007E00FE01FE03FC03F007E00FC01F801E003C00 +7800F000C0000F0F6FB92A>I<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000 +C000C001C00180018003800300070006000E001C003800700060000A1979B917>39 +D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C001C001800180038003 +00070006000E001C003800700060000A19798817>44 DI<1C007F00FF80FF80FF80FF80FF807F001C000909798817>I<0003F8 +0000001FFF0000007E0FC00000F803E00001E000F00003C000780007C0007C000F80003E +000F80003E001F00001F001F00001F003F00001F803F00001F803F00001F807E00000FC0 +7E00000FC07E00000FC07E00000FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE +00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00 +000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE0000 +0FE0FE00000FE0FE00000FE07E00000FC07E00000FC07E00000FC07E00000FC07F00001F +C03F00001F803F00001F803F00001F801F00001F001F80003F000F80003E000F80003E00 +07C0007C0003E000F80001F001F00000F803E000007E0FC000001FFF00000003F8000023 +3A7DB72A>48 D<000FF00000007FFE000001FFFF800003E03FE0000F000FF0000E0007F8 +001C0003FC00380001FE00300001FE00700000FF00600000FF00FC0000FF00FF00007F80 +FF80007F80FF80007F80FF80007F80FF80007F80FF80007F807F00007F801C00007F8000 +00007F80000000FF00000000FF00000000FF00000001FE00000001FC00000003FC000000 +03F800000007F000000007E00000000FE00000001FC00000003F800000003F000000007C +00000000F800000001F000000003E000000007C00000000F800000000F000000001E0001 +80003C000180007800018000F000038001E000030003C000030007800003000E00000700 +0FFFFFFF001FFFFFFF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE0021 +387CB72A>50 D<0007F80000003FFF0000007FFFC00001F80FF00003C007F800078003FC +000E0001FC000F0001FE001FE000FE001FF000FF001FF000FF001FF000FF001FF000FF00 +1FF000FF000FE000FF0007C000FF00000000FE00000001FE00000001FE00000001FC0000 +0003F800000003F800000007F000000007E00000000F800000007E0000001FFC0000001F +FF800000000FE000000007F000000001FC00000001FE00000000FF000000007F80000000 +7F800000007FC00000007FC00000003FC00000003FE00000003FE01E00003FE07F80003F +E0FFC0003FE0FFC0003FE0FFC0003FE0FFC0003FE0FFC0003FC0FF80007FC07F80007F80 +7E00007F80700000FF00380001FE001E0001FE000F8003F80007F00FF00001FFFFC00000 +7FFF0000000FF80000233A7DB72A>I<000000380000000038000000007800000000F800 +000000F800000001F800000003F800000007F800000007F80000000FF80000001FF80000 +001BF800000033F800000073F800000063F8000000C3F8000001C3F800000183F8000003 +03F800000703F800000603F800000C03F800001C03F800001803F800003003F800007003 +F800006003F80000C003F80001C003F800038003F800030003F800070003F8000E0003F8 +000C0003F800180003F800380003F800300003F800600003F800E00003F800FFFFFFFFF8 +FFFFFFFFF8FFFFFFFFF8000003F800000003F800000003F800000003F800000003F80000 +0003F800000003F800000003F800000003F800000003F800000003F800000007FC000003 +FFFFF80003FFFFF80003FFFFF825397EB82A>I<0003F80000001FFF0000007FFFC00000 +FC07F00001E001F80003C000FC000780007C000700003E000F00001E000E00001F001E00 +000F001E00000F001E00000F001F00000F001F00000F001F80000F001F80001F001FE000 +1E000FF0003E000FFC003C000FFE00780007FF80F00007FFC1E00003FFF3C00001FFFF00 +0000FFFE0000003FFF0000001FFFC000001FFFE000007FFFF80000F0FFFC0003E07FFE00 +07801FFF000F000FFF801F0003FF803E0001FFC03C00007FC07C00003FC07800000FE0F8 +000007E0F0000007E0F0000003E0F0000003E0F0000001E0F0000001E0F0000001E0F800 +0001C078000001C078000003C07C000003803E000007001F00000F000F80001E0007E000 +7C0003F803F00000FFFFE000003FFF80000007FC0000233A7DB72A>56 +D<0003F80000001FFF0000007FFFC00000FC07E00003F803F00007F001F8000FE000FC00 +0FC0007E001FC0007E003F80003F003F80003F007F80003F807F00003F807F00003F80FF +00001FC0FF00001FC0FF00001FC0FF00001FC0FF00001FC0FF00001FC0FF00001FE0FF00 +001FE0FF00001FE0FF00001FE0FF00001FE07F00003FE07F00003FE07F80003FE03F8000 +3FE01F80007FE01F80007FE00FC000FFE007E000DFE003E001DFE001F0039FE000FC0F1F +E0003FFC1FC00007F01FC00000001FC00000003FC00000003F800000003F800000003F80 +0000003F000000007F000F00007E001F80007E003FC000FC003FC000FC003FC001F8003F +C003F0003F8007E0001F000FC0001C001F80000F807F000007FFFC000001FFF00000003F +C00000233A7DB72A>I<7FFFFFFFFFFFF8FFFFFFFFFFFFFCFFFFFFFFFFFFFCFFFFFFFFFF +FFFC00000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFCFF +FFFFFFFFFFFCFFFFFFFFFFFFFC7FFFFFFFFFFFF836167B9F41>61 +D<0000003800000000000038000000000000380000000000007C0000000000007C000000 +0000007C000000000000FE000000000000FE000000000000FE000000000001FF00000000 +0001FF000000000001FF0000000000037F8000000000037F8000000000077FC000000000 +063FC000000000063FC0000000000E3FE0000000000C1FE0000000000C1FE0000000001C +1FF000000000180FF000000000180FF000000000380FF8000000003007F8000000003007 +F8000000007007FC000000006003FC000000006003FC00000000C003FE00000000C001FE +00000000C001FE000000018001FF000000018000FF000000018000FF000000030000FF80 +00000300007F8000000300007F8000000600007FC0000007FFFFFFC0000007FFFFFFC000 +000FFFFFFFE000000C00001FE000000C00001FE000001800000FF000001800000FF00000 +1800000FF0000030000007F8000030000007F8000030000007F8000060000003FC000060 +000003FC0000E0000003FC0000E0000001FE0001E0000001FE0003F0000001FF000FFC00 +0007FF80FFFF8000FFFFFEFFFF8000FFFFFEFFFF8000FFFFFE373C7DBB3E>65 +D<000001FF80018000000FFFE0038000007FFFF803800001FF807E07800003FC000F0F80 +000FF000039F80001FE00001DF80003F800000FF80007F0000007F8000FE0000003F8001 +FE0000003F8003FC0000001F8007F80000000F8007F80000000F800FF000000007800FF0 +00000007801FE000000007801FE000000003803FE000000003803FC000000003807FC000 +000001807FC000000001807FC000000001807F800000000180FF800000000000FF800000 +000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000 +0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000 +00FF8000000000007F8000000000007FC000000001807FC000000001807FC00000000180 +3FC000000001803FE000000001801FE000000003801FE000000003000FF000000003000F +F0000000070007F8000000070007F8000000060003FC0000000E0001FE0000001C0000FE +0000001800007F0000003800003F8000007000001FE00000E000000FF00003C0000003FC +000F80000001FF803F000000007FFFFC000000000FFFF00000000001FF800000313D7BBA +3C>67 DI70 D72 DI<003F +FFFFE0003FFFFFE0003FFFFFE000001FFC00000007F800000007F800000007F800000007 +F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8 +00000007F800000007F800000007F800000007F800000007F800000007F800000007F800 +000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 +0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000 +07F800000007F800000007F800000007F800000007F800000007F800000007F8003F0007 +F8007F8007F800FFC007F800FFC007F800FFC007F800FFC007F800FFC00FF000FF800FF0 +007F000FE00070001FE00038001FC0001C003F80000E007F00000781FC000001FFF00000 +007F800000233B7DB82B>I78 D80 D82 D<000FF800C0003FFE01C000 +FFFF81C003F807E3C007E000F7C00FC0007FC01F80003FC03F00001FC03E00000FC07E00 +0007C07E000007C07C000003C0FC000003C0FC000001C0FC000001C0FC000001C0FE0000 +00C0FE000000C0FE000000C0FF000000C0FF800000007FC00000007FE00000007FF80000 +003FFF8000001FFFF800001FFFFF80000FFFFFE00007FFFFF80003FFFFFE0000FFFFFF00 +003FFFFF800007FFFFC000007FFFC0000007FFE00000007FE00000003FF00000001FF000 +00000FF000000007F800000007F8C0000003F8C0000003F8C0000001F8C0000001F8C000 +0001F8E0000001F8E0000001F8E0000001F0F0000001F0F0000003F0F8000003E0FC0000 +07E0FE000007C0FF00000FC0FF80001F80FBF0003F00F0FE00FE00E03FFFF800E00FFFE0 +00C001FF0000253D7CBA2E>I +85 DII91 +D93 +D<001FE0000000FFFC000003E03F000007000F80000F8007E0001FC003F0001FE003F000 +1FE001F8001FE001F8001FE000FC000FC000FC00078000FC00000000FC00000000FC0000 +0000FC00000000FC0000007FFC000007FFFC00003FE0FC0000FE00FC0003F800FC000FF0 +00FC001FC000FC003FC000FC007F8000FC007F0000FC007F0000FC0CFE0000FC0CFE0000 +FC0CFE0000FC0CFE0001FC0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183FC01E3E +180FE0781FF003FFF00FE0007F8007C026277DA52A>97 D<0003FC00001FFF80007E03E0 +01F8007003F000F807E001FC0FC003FC0FC003FC1F8003FC3F8003FC3F0001F87F0000F0 +7F0000007F0000007E000000FE000000FE000000FE000000FE000000FE000000FE000000 +FE000000FE000000FE000000FE0000007E0000007F0000007F0000003F0000063F800006 +1F80000E1FC0000C0FC0001C07E0003803F0007001F800E0007C07C0001FFF000007F800 +1F277DA525>99 D<0000000FC0000003FFC0000003FFC0000003FFC00000003FC0000000 +0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F +C00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0 +0000000FC00003F80FC0001FFF0FC0007E078FC000F801EFC003F0007FC007E0003FC00F +C0001FC00FC0001FC01F80000FC03F80000FC03F00000FC07F00000FC07F00000FC07E00 +000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE0000 +0FC0FE00000FC0FE00000FC0FE00000FC07E00000FC07F00000FC07F00000FC03F00000F +C03F00000FC01F80001FC01F80001FC00FC0003FC007E0007FC003F000EFF001F801CFFF +007C078FFF001FFE0FFF0007F80FC0283B7DB92E>I<0007F800001FFF00007C0FC001F8 +03E003F001F007E001F80FC000F81F80007C1F80007C3F00007E3F00003E7F00003E7F00 +003F7E00003FFE00003FFE00003FFE00003FFFFFFFFFFFFFFFFFFE000000FE000000FE00 +0000FE000000FE0000007E0000007E0000007F0000007F0000003F0000033F8000031F80 +00070FC0000607C0000E07E0001C01F0003800F80070007E03E0001FFF800003FC002027 +7EA525>I<00000003F0000FF00FF8003FFC3C3C00F81F707C01F00FE07C03E007C07C07 +C003E0100FC003F0000FC003F0001F8001F8001F8001F8001F8001F8001F8001F8001F80 +01F8001F8001F8001F8001F8001F8001F8000FC003F0000FC003F00007C003E00003E007 +C00003F00F800003F81F0000073FFC0000060FF000000E000000000E000000000E000000 +000E000000000F000000000F000000000FC000000007FFFFC00007FFFFF80003FFFFFE00 +01FFFFFF8003FFFFFFC00F80007FE01F00000FF03E000003F07C000001F07C000001F8F8 +000000F8F8000000F8F8000000F8F8000000F8F8000000F8FC000001F87C000001F03E00 +0003E03F000007E00F80000F8007E0003F0001FC01FC00007FFFF0000007FF000026387E +A52A>103 D<03F000000000FFF000000000FFF000000000FFF0000000000FF000000000 +03F00000000003F00000000003F00000000003F00000000003F00000000003F000000000 +03F00000000003F00000000003F00000000003F00000000003F00000000003F000000000 +03F00000000003F00000000003F00000000003F00000000003F00FF0000003F03FFC0000 +03F0F03F000003F1C01F800003F3800FC00003F7000FC00003FE000FC00003FC0007E000 +03FC0007E00003F80007E00003F80007E00003F80007E00003F00007E00003F00007E000 +03F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E000 +03F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E000 +03F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E000 +03F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF80293A7EB92E> +I<0380000FE0001FF0001FF0001FF0001FF0001FF0000FE0000380000000000000000000 +0000000000000000000000000000000000000000000003F000FFF000FFF000FFF00007F0 +0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 +0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 +0003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC012387EB717>I<03F000FF +F000FFF000FFF0000FF00003F00003F00003F00003F00003F00003F00003F00003F00003 +F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 +F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 +F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 +F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC0123A7EB917>108 +D<03F00FF00000FFF03FFC0000FFF0F03F0000FFF1C01F80000FF3800FC00003F7000FC0 +0003FE000FC00003FC0007E00003FC0007E00003F80007E00003F80007E00003F80007E0 +0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F00007E00003F00007E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF +80FFFFC1FFFF8029257EA42E>110 D<0003FE0000000FFF8000003E03E00000F800F800 +01F0007C0003E0003E0007C0001F000F80000F801F80000FC01F000007C03F000007E03F +000007E07E000003F07E000003F07E000003F07E000003F0FE000003F8FE000003F8FE00 +0003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F87E0000 +03F07E000003F07F000007F03F000007E03F000007E01F80000FC00F80000F800FC0001F +8007E0003F0003F0007E0000F800F800007E03F000001FFFC0000003FE000025277EA52A +>I<03F01FE000FFF07FF800FFF1E07E00FFF3801F8007F7000FC003FE0007E003FC0003 +F003F80003F803F00001F803F00001FC03F00000FC03F00000FE03F00000FE03F00000FE +03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03 +F000007F03F000007F03F000007F03F00000FE03F00000FE03F00000FE03F00001FC03F0 +0001FC03F80003F803F80003F003FC0007F003FE000FE003F6000FC003F7803F0003F1E0 +7E0003F0FFF80003F01FC00003F000000003F000000003F000000003F000000003F00000 +0003F000000003F000000003F000000003F000000003F000000003F000000007F8000000 +FFFFC00000FFFFC00000FFFFC0000028357EA42E>I<07E01F00FFE07FC0FFE1E3E0FFE3 +87F00FE707F003E607F003EE07F003EC03E003FC008003F8000003F8000003F8000003F8 +000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0 +000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0 +000003F0000003F0000007F80000FFFFF000FFFFF000FFFFF0001C257EA421>114 +D<00FF030003FFE7000F80FF001E003F003C001F0078000F0070000700F0000700F00007 +00F0000300F8000300F8000300FC000300FF0000007FE000007FFF00003FFFE0001FFFF8 +000FFFFC0003FFFE0000FFFF000007FF8000007F8000001F80C0000FC0C00007C0C00007 +C0E00003C0E00003C0E00003C0F00003C0F0000380F8000780FC000780FC000F00FF001E +00F3C07C00E1FFF000C03F80001A277DA521>I<00180000001800000018000000180000 +0018000000380000003800000038000000780000007800000078000000F8000001F80000 +03F8000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8000001F80000 +01F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80000 +01F8000001F8000001F8000001F8000001F8000001F800C001F800C001F800C001F800C0 +01F800C001F800C001F800C001F800C001F800C000FC01C000FC0180007C0380007E0300 +003F0700000FFE000001F8001A347FB220>I<03F00007E000FFF001FFE000FFF001FFE0 +00FFF001FFE0000FF0001FE00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 +0003F0000FE00003F0000FE00003F0000FE00003F0001FE00001F0001FE00001F8003FE0 +0000F80077F80000FC00E7FF80003F03C7FF80001FFF87FF800003FC07E00029267EA42E +>III121 D123 +D E /FA 23 121 df<00000000000F00000000000000000000000F000000000000000000 +00000F00000000000000000000001F80000000000000000000001F800000000000000000 +00003FC0000000000000000000003FC0000000000000000000003FC00000000000000000 +00007FE0000000000000000000007FE0000000000000000000007FE00000000000000000 +0000FFF000000000000000000000FFF000000000000000000000FFF00000000000000000 +0001FFF800000000000000000001DFF800000000000000000001DFF80000000000000000 +00039FFC000000000000000000038FFC000000000000000000038FFC0000000000000000 +00070FFE0000000000000000000707FE0000000000000000000F07FF0000000000000000 +000E03FF0000000000000000000E03FF0000000000000000001E03FF8000000000000000 +001C01FF8000000000000000001C01FF8000000000000000003C01FFC000000000000000 +003800FFC000000000000000003800FFC000000000000000007000FFE000000000000000 +0070007FE0000000000000000070007FE00000000000000000E0007FF000000000000000 +00E0003FF00000000000000000E0003FF00000000000000001C0003FF800000000000000 +01C0001FF80000000000000003C0001FFC000000000000000380000FFC00000000000000 +0380000FFC000000000000000780000FFE0000000000000007000007FE00000000000000 +07000007FE000000000000000F000007FF000000000000000E000003FF00000000000000 +0E000003FF000000000000001C000003FF800000000000001C000001FF80000000000000 +1C000001FF8000000000000038000001FFC000000000000038000000FFC0000000000000 +38000000FFC000000000000070000000FFE0000000000000700000007FE0000000000000 +F00000007FF0000000000000E00000003FF0000000000000E00000003FF0000000000001 +E00000003FF8000000000001C00000001FF8000000000001C00000001FF8000000000003 +C00000001FFC000000000003FFFFFFFFFFFC000000000003FFFFFFFFFFFC000000000007 +FFFFFFFFFFFE000000000007FFFFFFFFFFFE0000000000070000000007FE00000000000E +0000000007FF00000000000E0000000003FF00000000000E0000000003FF00000000001C +0000000003FF80000000001C0000000001FF80000000003C0000000001FFC00000000038 +0000000000FFC000000000380000000000FFC000000000780000000000FFE00000000070 +00000000007FE0000000007000000000007FE000000000F000000000007FF000000000E0 +00000000003FF000000000E000000000003FF000000001C000000000003FF800000001C0 +00000000001FF800000001C000000000001FF8000000038000000000001FFC0000000380 +00000000000FFC000000038000000000000FFC000000070000000000000FFE0000000700 +000000000007FE0000000F00000000000007FF0000000F00000000000003FF0000001F00 +000000000003FF0000003F80000000000003FF8000007FC0000000000003FF800001FFE0 +000000000007FFC0000FFFF800000000001FFFF000FFFFFF0000000007FFFFFFF0FFFFFF +0000000007FFFFFFF0FFFFFF0000000007FFFFFFF0FFFFFF0000000007FFFFFFF05C657D +E463>65 DI68 D +77 D<000007FF0000030000003FFFF00007000001FFFFFC0007000007FFFFFF000F0000 +0FFC00FFC00F00003FE0000FF01F00007F800003F81F0000FE000000FC3F0001FC000000 +7E3F0003F80000001F7F0007F00000000FFF000FE000000007FF000FC000000007FF001F +C000000003FF001F8000000001FF003F8000000000FF003F0000000000FF007F00000000 +007F007F00000000007F007E00000000003F007E00000000003F00FE00000000003F00FE +00000000001F00FE00000000001F00FE00000000001F00FE00000000000F00FE00000000 +000F00FF00000000000F00FF00000000000F00FF00000000000F00FF80000000000700FF +800000000007007FC00000000007007FC00000000007007FE00000000000003FF0000000 +0000003FF80000000000003FFC0000000000001FFE0000000000001FFF8000000000000F +FFE0000000000007FFFC000000000007FFFFC00000000003FFFFF80000000001FFFFFF80 +00000000FFFFFFF8000000007FFFFFFF800000001FFFFFFFE00000000FFFFFFFF8000000 +03FFFFFFFE00000000FFFFFFFF800000001FFFFFFFC000000001FFFFFFE0000000003FFF +FFF00000000003FFFFF800000000003FFFFC000000000003FFFE0000000000007FFE0000 +000000001FFF0000000000000FFF80000000000003FF80000000000001FFC00000000000 +00FFC0000000000000FFC00000000000007FE00000000000003FE00000000000003FE000 +00000000001FE0E000000000001FF0E000000000000FF0E000000000000FF0E000000000 +000FF0E000000000000FF0E0000000000007F0E0000000000007F0F0000000000007F0F0 +000000000007F0F0000000000007F0F0000000000007F0F8000000000007F0F800000000 +0007E0F800000000000FE0FC00000000000FE0FC00000000000FC0FE00000000000FC0FF +00000000001FC0FF00000000001F80FF80000000003F80FFC0000000003F00FFE0000000 +007F00FFF000000000FE00FEF800000000FC00FEFC00000001F800FC7F00000003F800FC +1F8000000FF000F80FE000001FE000F807FC00007F8000F001FFE003FF0000F0007FFFFF +FC0000E0001FFFFFF00000E00003FFFFC00000C000001FFE0000003C667AE349>83 +D<3FFFFFFFFFFFFFFFFFFFF83FFFFFFFFFFFFFFFFFFFF83FFFFFFFFFFFFFFFFFFFF83FFF +FFFFFFFFFFFFFFFFF83FFFC00003FFC00003FFF83FFC000001FF8000007FF83FF0000001 +FF8000000FF83FC0000001FF80000007F87F80000001FF80000003FC7F00000001FF8000 +0001FC7E00000001FF80000000FC7C00000001FF800000007C7C00000001FF800000007C +7C00000001FF800000007C7800000001FF800000003C7800000001FF800000003C780000 +0001FF800000003C7800000001FF800000003C7000000001FF800000001C7000000001FF +800000001C7000000001FF800000001C7000000001FF800000001C7000000001FF800000 +001C7000000001FF800000001CF000000001FF800000001EE000000001FF800000000EE0 +00000001FF800000000EE000000001FF800000000EE000000001FF800000000EE0000000 +01FF800000000EE000000001FF800000000EE000000001FF800000000E0000000001FF80 +000000000000000001FF80000000000000000001FF80000000000000000001FF80000000 +000000000001FF80000000000000000001FF80000000000000000001FF80000000000000 +000001FF80000000000000000001FF80000000000000000001FF80000000000000000001 +FF80000000000000000001FF80000000000000000001FF80000000000000000001FF8000 +0000000000000001FF80000000000000000001FF80000000000000000001FF8000000000 +0000000001FF80000000000000000001FF80000000000000000001FF8000000000000000 +0001FF80000000000000000001FF80000000000000000001FF80000000000000000001FF +80000000000000000001FF80000000000000000001FF80000000000000000001FF800000 +00000000000001FF80000000000000000001FF80000000000000000001FF800000000000 +00000001FF80000000000000000001FF80000000000000000001FF800000000000000000 +01FF80000000000000000001FF80000000000000000001FF80000000000000000001FF80 +000000000000000001FF80000000000000000001FF80000000000000000001FF80000000 +000000000001FF80000000000000000001FF80000000000000000001FF80000000000000 +000001FF80000000000000000001FF80000000000000000001FF80000000000000000001 +FF80000000000000000001FF80000000000000000001FF80000000000000000001FF8000 +0000000000000001FF80000000000000000001FF80000000000000000001FF8000000000 +0000000001FF80000000000000000001FF80000000000000000001FF8000000000000000 +0001FF80000000000000000001FF80000000000000000001FF80000000000000000003FF +C0000000000000000003FFC000000000000000001FFFF800000000000001FFFFFFFFFF80 +0000000001FFFFFFFFFF800000000001FFFFFFFFFF800000000001FFFFFFFFFF80000057 +627CE160>I<00003FF0000000000003FFFE00000000000FFFFF80000000003FC03FE000 +0000007E0007F800000000F80003FC00000001E00001FE00000003C00000FF0000000780 +00007F8000000F0000003FC000000F8000003FC000000FF000001FE000001FF800001FE0 +00001FFC00000FF000001FFC00000FF000001FFC00000FF000001FFC000007F800001FFC +000007F800001FFC000007F800000FF8000007F8000003E0000007F800000000000007F8 +00000000000007F800000000000007F800000000000007F800000000000007F800000000 +000007F80000000000007FF800000000007FFFF8000000000FFFFFF8000000007FF807F8 +00000001FF8007F800000007FC0007F80000001FF00007F80000007FC00007F8000000FF +800007F8000003FE000007F8000007FC000007F800000FFC000007F800000FF8000007F8 +00001FF0000007F800003FE0000007F800003FE0000007F800007FC0000007F800E07FC0 +000007F800E07FC0000007F800E0FFC0000007F800E0FF80000007F800E0FF80000007F8 +00E0FF8000000FF800E0FF8000000FF800E0FF8000000FF800E0FF8000001FF800E0FFC0 +00001BF800E07FC000003BF800E07FC0000073F800E07FE0000071FC01C03FF00000E1FC +01C01FF00001C1FC01C00FFC000780FE038007FE000F00FF070001FF807E007FFF00007F +FFF8003FFE00001FFFE0001FF8000001FF000007E0003B417ABF42>97 +D<0003C000000000000007FFC0000000000000FFFFC0000000000000FFFFC00000000000 +00FFFFC0000000000000FFFFC000000000000001FFC0000000000000007FC00000000000 +00007FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0000000000000003FC0000000000000003FC00000000000 +00003FC0000000000000003FC0007FC0000000003FC007FFFC000000003FC01FFFFF0000 +00003FC07F007FC00000003FC0F8000FF00000003FC3E00007F80000003FC7800001FC00 +00003FCF000000FE0000003FDE0000007F0000003FFC0000003F8000003FF80000003FC0 +00003FF00000001FE000003FF00000000FE000003FE00000000FF000003FE000000007F8 +00003FC000000007F800003FC000000003FC00003FC000000003FC00003FC000000003FE +00003FC000000001FE00003FC000000001FE00003FC000000001FF00003FC000000001FF +00003FC000000001FF00003FC000000000FF00003FC000000000FF80003FC000000000FF +80003FC000000000FF80003FC000000000FF80003FC000000000FF80003FC000000000FF +80003FC000000000FF80003FC000000000FF80003FC000000000FF80003FC000000000FF +80003FC000000000FF80003FC000000000FF80003FC000000000FF80003FC000000000FF +00003FC000000001FF00003FC000000001FF00003FC000000001FF00003FC000000001FF +00003FC000000001FE00003FC000000003FE00003FC000000003FC00003FC000000003FC +00003FC000000007FC00003FC000000007F800003FE000000007F000003FE00000000FF0 +00003FF00000001FE000003FF80000001FC000003FB80000003FC000003F3C0000007F80 +00003F1E000000FF0000003F0F000001FE0000003E07800003FC0000003E03C0000FF000 +00003C01F0001FE00000003C007E00FF800000003C003FFFFE0000000038000FFFF80000 +0000000000FF8000000041657DE349>I<000001FF80000000000FFFF8000000003FFFFE +00000000FF007F80000003FC0007E0000007F00001F000001FE000007800003FC000003C +00007F8000001E0000FF0000000F0001FE0000001F0001FC000000FF0003FC000001FF80 +07F8000003FF8007F8000003FF800FF0000003FF800FF0000003FF801FE0000003FF801F +E0000003FF803FE0000001FF003FC00000007C003FC000000000007FC000000000007FC0 +00000000007FC000000000007F800000000000FF800000000000FF800000000000FF8000 +00000000FF800000000000FF800000000000FF800000000000FF800000000000FF800000 +000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000 +00007F8000000000007FC000000000007FC000000000007FC000000000007FC000000000 +003FC000000000003FE000000000003FE000000000001FE000000001C01FF000000001C0 +0FF000000003C00FF8000000038007F8000000038003FC000000078003FE000000070001 +FE0000000F0000FF0000001E00007F8000003C00003FC000007800001FE00000F000000F +F80001E0000003FC0007C0000000FF803F800000003FFFFE000000000FFFF80000000001 +FF80000032417CBF3A>I<0000000000001E000000000000003FFE00000000000007FFFE +00000000000007FFFE00000000000007FFFE00000000000007FFFE000000000000000FFE +0000000000000003FE0000000000000003FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE +0000000000000001FE0000000000000001FE0000000000FF8001FE000000000FFFF801FE +000000003FFFFE01FE00000000FF803F81FE00000003FC0007C1FE00000007F80001E1FE +0000001FE00000F9FE0000003FC000007DFE0000007F8000003DFE000000FF0000001FFE +000001FE0000000FFE000001FC00000007FE000003FC00000007FE000007F800000003FE +000007F000000001FE00000FF000000001FE00001FF000000001FE00001FE000000001FE +00001FE000000001FE00003FE000000001FE00003FC000000001FE00007FC000000001FE +00007FC000000001FE00007FC000000001FE00007FC000000001FE00007F8000000001FE +0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE +0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE +0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE +0000FF8000000001FE00007F8000000001FE00007FC000000001FE00007FC000000001FE +00007FC000000001FE00003FC000000001FE00003FC000000001FE00003FE000000001FE +00001FE000000001FE00001FE000000001FE00000FF000000003FE00000FF000000003FE +000007F800000007FE000003F800000007FE000003FC0000000FFE000001FE0000001FFE +000000FE0000003DFE0000007F0000003DFE0000003F800000F9FF0000001FC00001F1FF +0000000FF00003C1FFC0000007F8000F81FFFF800001FF007F01FFFF8000007FFFFC01FF +FF8000001FFFE001FFFF80000001FF0001FF000041657CE349>I<000003FE0000000000 +1FFFE000000000FFFFF800000001FE03FE00000007F0007F8000000FE0003FC000003FC0 +001FE000007F00000FF00000FF000007F80000FE000003F80001FC000003FC0003F80000 +01FC0007F8000001FE0007F0000000FE000FF0000000FF000FF00000007F001FE0000000 +7F001FE00000007F803FE00000007F803FC00000003F803FC00000003F807FC00000003F +C07FC00000003FC07FC00000003FC07F800000003FC07F800000003FC0FF800000003FC0 +FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FF800000000000FF800000000000FF +800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80 +0000000000FF8000000000007F8000000000007FC000000000007FC000000000007FC000 +000000003FC000000000003FC000000000003FE000000000001FE000000000001FE00000 +0001C00FF000000001C00FF000000003C007F8000000038007F8000000038003FC000000 +078001FC0000000F0001FE0000000E0000FF0000001E00007F8000003C00003FC0000078 +00001FE00000F0000007F00003E0000003FC0007C0000000FF803F000000003FFFFC0000 +00000FFFF00000000001FF80000032417CBF3A>I<0000000000003F80000003FC0001FF +E000003FFFC007FFF00000FFFFF01FC1F80003FC03FC3E03F80007F000FE7803F8000FE0 +007FE003F8001FC0003FC003F8003F80001FC001F0007F00000FE0000000FE000007F000 +0000FE000007F0000001FC000003F8000001FC000003F8000003FC000003FC000003FC00 +0003FC000003F8000001FC000007F8000001FE000007F8000001FE000007F8000001FE00 +0007F8000001FE000007F8000001FE000007F8000001FE000007F8000001FE000007F800 +0001FE000007F8000001FE000007F8000001FE000003F8000001FC000003FC000003FC00 +0003FC000003FC000001FC000003F8000001FC000003F8000000FE000007F0000000FE00 +0007F00000007F00000FE00000003F80001FC00000001FC0003F800000003FE0007F0000 +000037F000FE0000000073FC03FC0000000060FFFFF000000000E03FFFC000000000E003 +FC0000000001C000000000000001C000000000000001C000000000000001C00000000000 +0001C000000000000001E000000000000001E000000000000001F000000000000001F000 +000000000001F800000000000000FC00000000000000FF00000000000000FFFFFFFE0000 +00007FFFFFFFF00000003FFFFFFFFE0000001FFFFFFFFF8000000FFFFFFFFFE000000FFF +FFFFFFF000003FFFFFFFFFFC0000FE000001FFFE0003F80000001FFE0007E000000003FF +000FC000000000FF801F80000000007F803F80000000003FC03F00000000001FC07E0000 +0000001FC07E00000000000FE0FE00000000000FE0FC000000000007E0FC000000000007 +E0FC000000000007E0FC000000000007E0FC000000000007E0FC000000000007E0FE0000 +0000000FE07E00000000000FC07E00000000000FC07F00000000001FC03F80000000003F +801FC0000000007F000FC0000000007E0007F000000001FC0003F800000003F80001FC00 +000007F000007F0000001FC000003FE00000FF8000000FFE000FFE00000001FFFFFFF000 +0000003FFFFF800000000001FFF00000003D5E7DBF42>103 D<0003C000000000000007 +FFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FF +FFC000000000000001FFC0000000000000007FC0000000000000007FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000 +3FC0007FE0000000003FC003FFFC000000003FC00FFFFF000000003FC03F00FFC0000000 +3FC078001FE00000003FC0F0000FF00000003FC1C00007F80000003FC3800007FC000000 +3FC7000003FC0000003FCE000003FE0000003FCE000001FE0000003FDC000001FE000000 +3FD8000001FE0000003FF8000000FF0000003FF0000000FF0000003FF0000000FF000000 +3FF0000000FF0000003FE0000000FF0000003FE0000000FF0000003FE0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000007FE0000001FF800000FFF0000003FFC000FFFFFFF003FFFFFFC0FF +FFFFF003FFFFFFC0FFFFFFF003FFFFFFC0FFFFFFF003FFFFFFC042647DE349>I<003C00 +0000FF000001FF800003FFC00003FFC00003FFC00003FFC00003FFC00003FFC00001FF80 +0000FF0000003C0000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000003C00007FFC0007FFFC0007FFFC0007FFFC0 +007FFFC00001FFC000007FC000007FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 +00003FC000003FC000003FC000003FC000003FC000003FC000003FC000007FE00000FFF0 +00FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B5F7DDE23>I<0003C00007FFC000FFFFC000 +FFFFC000FFFFC000FFFFC00001FFC000007FC000007FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 +003FC000007FE00000FFF000FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF01C647DE323>108 +D<0003C000FFC0000007FE00000007FFC003FFF800001FFFC00000FFFFC00FFFFE00007F +FFF00000FFFFC03F00FF8001F807FC0000FFFFC078003FC003C001FE0000FFFFC1E0001F +E00F0000FF000001FFC3C0000FF01E00007F8000007FC3800007F81C00003FC000007FC7 +000007F83800003FC000003FCE000003FC7000001FE000003FCC000003FC6000001FE000 +003FDC000003FCE000001FE000003FD8000003FCC000001FE000003FF8000001FFC00000 +0FF000003FF0000001FF8000000FF000003FF0000001FF8000000FF000003FE0000001FF +0000000FF000003FE0000001FF0000000FF000003FE0000001FF0000000FF000003FE000 +0001FF0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF00000 +3FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000F +F000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE00 +00000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC00000 +01FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003F +C0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF0 +00003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000 +000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001 +FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0 +000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000 +003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE000000 +0FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE +0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC000 +0001FE0000000FF000003FC0000001FE0000000FF000007FE0000003FF0000001FF80000 +FFF0000007FF8000003FFC00FFFFFFF007FFFFFF803FFFFFFCFFFFFFF007FFFFFF803FFF +FFFCFFFFFFF007FFFFFF803FFFFFFCFFFFFFF007FFFFFF803FFFFFFC663F7CBE6F>I<00 +03C0007FE000000007FFC003FFFC000000FFFFC00FFFFF000000FFFFC03F00FFC00000FF +FFC078001FE00000FFFFC0F0000FF0000001FFC1C00007F80000007FC3800007FC000000 +7FC7000003FC0000003FCE000003FE0000003FCE000001FE0000003FDC000001FE000000 +3FD8000001FE0000003FF8000000FF0000003FF0000000FF0000003FF0000000FF000000 +3FF0000000FF0000003FE0000000FF0000003FE0000000FF0000003FE0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF000000 +3FC0000000FF0000007FE0000001FF800000FFF0000003FFC000FFFFFFF003FFFFFFC0FF +FFFFF003FFFFFFC0FFFFFFF003FFFFFFC0FFFFFFF003FFFFFFC0423F7DBE49>I<000000 +FF8000000000000FFFF800000000003FFFFE0000000000FF007F8000000003FC001FE000 +000007F00007F00000000FC00001F80000003F800000FE0000007F0000007F0000007E00 +00003F000000FC0000001F800001F80000000FC00003F80000000FE00003F000000007E0 +0007F000000007F0000FE000000003F8000FE000000003F8001FE000000003FC001FC000 +000001FC001FC000000001FC003FC000000001FE003FC000000001FE003FC000000001FE +007F8000000000FF007F8000000000FF007F8000000000FF007F8000000000FF00FF8000 +000000FF80FF8000000000FF80FF8000000000FF80FF8000000000FF80FF8000000000FF +80FF8000000000FF80FF8000000000FF80FF8000000000FF80FF8000000000FF80FF8000 +000000FF80FF8000000000FF80FF8000000000FF807F8000000000FF007F8000000000FF +007FC000000001FF007FC000000001FF003FC000000001FE003FC000000001FE003FC000 +000001FE001FE000000003FC001FE000000003FC001FE000000003FC000FF000000007F8 +0007F000000007F00007F000000007F00003F80000000FE00001FC0000001FC00001FC00 +00001FC00000FE0000003F8000007F0000007F0000003F800000FE0000001FC00001FC00 +00000FF00007F800000003FC001FE000000000FF007F80000000007FFFFF00000000000F +FFF8000000000001FFC000000039417CBF42>I<00078003F80007FF800FFF00FFFF803F +FFC0FFFF807C0FE0FFFF81F01FE0FFFF81E03FF001FF83803FF0007F87003FF0007F8F00 +3FF0003F8E003FF0003F9C001FE0003F9C000FC0003F98000300003FB8000000003FB800 +0000003FB0000000003FF0000000003FF0000000003FE0000000003FE0000000003FE000 +0000003FE0000000003FE0000000003FC0000000003FC0000000003FC0000000003FC000 +0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 +0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 +0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 +0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 +0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 +0000007FE000000000FFF8000000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC +00002C3F7CBE33>114 D<0000FFE00180000FFFFC0380007FFFFF078001FF001FCF8003 +F80003EF8007E00001FF800FC00000FF801F8000007F803F0000003F803E0000001F807E +0000000F807C0000000F807C0000000F80FC0000000780FC0000000780FC0000000780FC +0000000380FE0000000380FE0000000380FF0000000380FF80000003807FC0000003807F +E0000000007FF8000000003FFE000000001FFFF00000000FFFFF80000007FFFFF8000003 +FFFFFF000001FFFFFFC000007FFFFFF000001FFFFFF8000007FFFFFE0000007FFFFF0000 +0003FFFF800000003FFFC000000003FFC000000000FFE0000000007FE0E00000001FF0E0 +0000000FF0E00000000FF8F000000007F8F000000003F8F000000003F8F000000003F8F8 +00000001F8F800000001F8F800000001F8FC00000001F8FC00000001F8FE00000001F0FE +00000003F0FF00000003F0FF00000003E0FF80000007E0FFC000000FC0FFE000000F80FD +F000001F80F8F800007F00F83E0000FC00F01FC00FF800F007FFFFE000E001FFFF8000C0 +003FF800002D417DBF34>I<000038000000000038000000000038000000000038000000 +000038000000000038000000000038000000000078000000000078000000000078000000 +0000780000000000F80000000000F80000000000F80000000001F80000000001F8000000 +0001F80000000003F80000000003F80000000007F8000000000FF8000000001FF8000000 +001FF8000000007FF800000000FFF800000003FFF80000000FFFFFFFFF00FFFFFFFFFF00 +FFFFFFFFFF00FFFFFFFFFF000007F80000000007F80000000007F80000000007F8000000 +0007F80000000007F80000000007F80000000007F80000000007F80000000007F8000000 +0007F80000000007F80000000007F80000000007F80000000007F80000000007F8000000 +0007F80000000007F80000000007F80000000007F80000000007F80000000007F8000000 +0007F80000000007F80000000007F80000000007F80000000007F80000000007F8000000 +0007F80000000007F80000000007F80000000007F80000000007F80000E00007F80000E0 +0007F80000E00007F80000E00007F80000E00007F80000E00007F80000E00007F80000E0 +0007F80000E00007F80000E00007F80000E00007F80000E00007F80000E00007F80000E0 +0003FC0001C00003FC0001C00003FC0001C00003FC0003C00001FE0003800001FE000780 +0000FF00070000007F800F0000003FC01E0000001FF07C0000000FFFF800000003FFE000 +0000007F80002B597FD733>I<0003C00000000F000007FFC000001FFF0000FFFFC00003 +FFFF0000FFFFC00003FFFF0000FFFFC00003FFFF0000FFFFC00003FFFF000001FFC00000 +07FF0000007FC0000001FF0000007FC0000001FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC00000 +00FF0000003FC0000000FF0000003FC0000000FF0000003FC0000001FF0000003FC00000 +01FF0000003FC0000001FF0000003FC0000003FF0000003FC0000003FF0000003FC00000 +03FF0000003FC0000007FF0000001FC0000006FF0000001FE000000EFF0000001FE00000 +1CFF0000000FE000001CFF0000000FF0000038FF80000007F0000070FF80000003F80001 +E0FFE0000001FE0003C0FFFFC00000FFC01F80FFFFC000003FFFFE00FFFFC000000FFFF8 +00FFFFC0000000FFC000FF800042407DBE49>I<7FFFFFC0000FFFFFE07FFFFFC0000FFF +FFE07FFFFFC0000FFFFFE07FFFFFC0000FFFFFE000FFFF000003FFFC00003FFE000001FF +E000000FFC000001FF8000000FFC000000FE00000007FC000000FC00000003FE000001F8 +00000001FF000001F000000000FF800003E000000000FF800003C0000000007FC0000780 +000000003FE0000F00000000001FF0000E00000000001FF0001E00000000000FF8003C00 +0000000007FC0078000000000003FE00F0000000000003FE00E0000000000001FF01E000 +0000000000FF83C00000000000007FC7800000000000003FC7000000000000003FEF0000 +00000000001FFE000000000000000FFC0000000000000007F80000000000000007FC0000 +000000000003FE0000000000000001FF0000000000000003FF0000000000000003FF8000 +000000000007FFC00000000000000F3FE00000000000001E1FE00000000000003C1FF000 +0000000000380FF80000000000007807FC000000000000F003FC000000000001E003FE00 +0000000003C001FF000000000003C000FF80000000000780007FC0000000000F00007FC0 +000000001E00003FE0000000001C00001FF0000000003C00000FF8000000007800000FF8 +00000000F0000007FC00000001F0000003FE00000003E0000001FF00000007E0000001FF +0000000FE0000000FF8000003FE0000000FFC00000FFF0000001FFE00007FFF8000003FF +FC00FFFFFC00000FFFFFF8FFFFFC00000FFFFFF8FFFFFC00000FFFFFF8FFFFFC00000FFF +FFF8453E80BD46>120 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 368 335 a FA(The)44 b(ABD)l(AD)l(A)i(Distributed)f(Minimax)f +(Searc)l(h)h(Algorithm)1548 550 y Fz(Jean-Christophe)26 +b(W)-7 b(eill)1357 649 y(Institut)29 b(d'In)n(telligence)e +(Arti\014cielle)1082 749 y(Univ)n(ersit)n(\023)-39 b(e)26 +b(de)h(P)n(aris)f(8)h({)h(Vincennes)f(\022)-42 b(a)28 +b(Sain)n(t-Denis)1484 849 y(24,)f(a)n(v)n(en)n(ue)f(du)i(P)n(on)n(t)e +(Ro)n(y)n(al)1649 948 y(94230)f(CA)n(CHAN)1829 1048 y(F)-7 +b(rance)-150 1501 y Fy(ABSTRA)m(CT)-150 1723 y Fx(This)19 +b(pap)r(er)e(presen)n(ts)h(a)g(new)g(metho)r(d)f(to)h(parallelize)i +(the)e(minimax)-150 1806 y(tree)37 b(searc)n(h)g(algorithm.)67 +b(This)38 b(metho)r(d)d(is)i(then)f(compared)g(to)-150 +1889 y(the)23 b(\\Y)-6 b(oung)23 b(Brother)i(W)-6 b(ait)23 +b(Concept")h(algorithm)g(in)g(an)g(Othello)-150 1972 +y(program)30 b(implemen)n(tation)f(and)h(in)g(a)h(Chess)g(program.)48 +b(Results)-150 2055 y(of)23 b(tests)g(done)f(on)g(a)h(32-no)r(de)f(CM5) +i(and)e(a)g(128-no)r(de)i(CRA)-6 b(Y)20 b(T3D)-150 2138 +y(computers)25 b(are)h(giv)n(en.)-150 2400 y Fy(1)100 +b(INTRODUCTION)-150 2621 y Fx(In)30 b(the)g(searc)n(h)h(for)h(p)r(o)n +(w)n(er)f(to)g(run)f(our)g(game-pla)n(ying)h(programs)-150 +2704 y(as)c(fast)g(as)f(p)r(ossible,)i(the)e(use)g(of)h(parallel)g +(computers)e(is)i(a)f(stim)n(u-)-150 2787 y(lating)e(c)n(hoice.)34 +b(During)23 b(the)g(past)g(few)h(y)n(ears,)h(parallel)f(algorithms)-150 +2870 y(ha)n(v)n(e)17 b(ev)n(olv)n(ed)g(from)h(\014xed)f(master-sla)n(v) +n(e)g(relationships,)k(where)d(the)-150 2953 y(master)32 +b(lo)r(ok)n(ed)h(for)g(sla)n(v)n(es)g(to)f(complete)g(its)h(task,)h(to) +e(more)g(dy-)-150 3036 y(namic)21 b(master-sla)n(v)n(e)h +(relationships,)i(where)f(unemplo)n(y)n(ed)d(pro)r(ces-)-150 +3119 y(sors)26 b(lo)r(ok)g(for)g(a)f(master)g(in)g(order)h(to)f(\014nd) +f(some)h(task)g(to)h(do.)34 b(But)-150 3202 y(those)h(master-sla)n(v)n +(e)g(relationships,)k(whic)n(h)d(are)f(exempli\014ed)f(b)n(y)-150 +3285 y(the)26 b(w)n(ork-stealing)i(sc)n(hedulers)e(of)i(Jam)n(b)r +(oree[12)q(])f(and)f(YBW)n(C[7)q(])-150 3368 y(still)h(su\013er)e(from) +h(sync)n(hronization)g(o)n(v)n(erheads.)-35 3516 y(In)35 +b(this)i(pap)r(er,)h(w)n(e)f(describ)r(e)f(a)h(non-sync)n(hronized)d +(parallel)-150 3599 y(algorithm)26 b(named)e(ABD)n(AD)n(A.)-35 +3746 y(After)k(a)g(formal)g(description)g(and)f(pseudo)g(co)r(de)h(for) +g(the)f(AB-)-150 3829 y(D)n(AD)n(A)19 b(parallel)k(sc)n(heme,)f(w)n(e)g +(presen)n(t)f(an)g(exp)r(erimen)n(tal)g(compar-)-150 +3912 y(ison)26 b(of)h(ABD)n(AD)n(A)d(to)h(YBW)n(C.)-150 +4174 y Fy(2)100 b(THE)34 b(ABD)m(AD)m(A)f(ALGORITHM)-150 +4395 y Fx(The)62 b(ABD)n(AD)n(A)e(searc)n(h)i(algorithm)h(is)f(based)g +(up)r(on)f(b)r(oth)-150 4478 y(YBW)n(C[9)q(,)33 b(7])g(and)f +Fw(\013\014)p Fx(*)q([6].)55 b(F)-6 b(rom)32 b(YBW)n(C,)h(it)f(k)n +(eeps)g(the)g(basic)-150 4561 y(concept:)h(parallel)25 +b(ev)l(aluation)e(of)h(successor)g(p)r(ositions)h(of)f(a)f(game)-150 +4645 y(p)r(osition)k(is)g(allo)n(w)n(ed)h(if)e(and)g(only)g(if)h(the)f +(eldest)h(brother)f(\(i.e.)36 b(the)-150 4728 y(\014rst)26 +b(visited)h(brother\))f(is)h(fully)g(ev)l(aluated.)36 +b(The)27 b Fw(\013\014)p Fx(*)g(algorithm,)-150 4811 +y(lik)n(e)38 b(the)f(algorithm)h(from)g(Otto)f(and)h(F)-6 +b(elten)37 b([18)r(],)k(relies)e(on)f(a)-150 4894 y(shared)32 +b(transp)r(osition)h(table.)53 b(All)32 b(pro)r(cessors)i(start)e(the)f +(searc)n(h)-150 4977 y(sim)n(ultaneously)26 b(at)g(the)g(ro)r(ot.)37 +b(With)26 b(the)f(help)h(of)h(the)f(additional)-150 5060 +y(transp)r(osition)32 b(table)f(information)g(\(e.g.)50 +b(ho)n(w)31 b(man)n(y)e(pro)r(cessors)2049 1501 y(are)i(exploring)g(a)h +(subtree)e(ro)r(oted)h(at)g(a)g(no)r(de\),)i(it)d(is)i(p)r(ossible)g +(to)2049 1584 y(con)n(trol)k(sp)r(eculativ)n(e)f(parallelism.)65 +b Fw(\013\014)p Fx(*)36 b(w)n(as)g(originally)h(imple-)2049 +1667 y(men)n(ted)24 b(using)i(a)h(complex)e(and)g(ine\016cien)n(t)i +(con)n(trol,)g(so)f(w)n(e)g(c)n(hose)2049 1750 y(to)g(mix)e(YBW)n(C)i +(and)f Fw(\013\014)p Fx(*)q(.)2164 1898 y(The)h(ABD)n(AD)n(A)2664 +1866 y Fv(1)2722 1898 y Fx(algorithm)g(can)g(b)r(e)g(describ)r(ed)g(as) +g(follo)n(ws:)2143 2073 y(1.)39 b(Let)19 b Fu(T)38 b +Fx(b)r(e)20 b(a)f(shared)g(transp)r(osition)i(table.)33 +b(T)-6 b(o)19 b(the)g(standard)2241 2156 y(de\014nition)f(of)h(the)e +(table[13)r(],)j(w)n(e)f(add,)g(for)g(eac)n(h)g(en)n(try)-6 +b(,)18 b(a)h(new)2241 2239 y(\014eld)h Ft(nproc)h Fx(whic)n(h)f(is)g +(the)g(n)n(um)n(b)r(er)e(of)j(pro)r(cessors)h(curren)n(tly)2241 +2322 y(ev)l(aluating)27 b(the)g(no)r(de)g(related)h(to)f(the)f(transp)r +(osition)j(table)2241 2405 y(en)n(try)-6 b(.)2143 2520 +y(2.)39 b(All)29 b(the)g(pro)r(cessors)h(b)r(egin)f(the)g(searc)n(h)g +(sim)n(ultaneously)g(at)2241 2603 y(the)c(ro)r(ot)i(of)f(the)f(game)h +(tree.)2143 2718 y(3.)39 b(When)30 b(a)h(pro)r(cessor)h(en)n(ters)f +(the)f(ev)l(aluation)h(of)h(a)f(p)r(osition)2241 2801 +y Fw(P)11 b Fx(,)34 b(it)f(incremen)n(ts)f(the)g(\014eld)h +Ft(tt[P].nproc)41 b Fx(in)33 b(the)f(trans-)2241 2884 +y(p)r(osition)27 b(table.)2143 2999 y(4.)39 b(When)19 +b(a)i(pro)r(cessor)g(lea)n(v)n(es)g(a)g(p)r(osition)g +Fw(P)30 b Fx(\(b)r(ecause)21 b(this)f(p)r(o-)2241 3082 +y(sition)27 b(is)f(fully)g(ev)l(aluated)g(or)g(has)h(b)r(een)e +(pruned\),)g(it)h(decre-)2241 3165 y(men)n(ts)e Ft(tt[P].nproc)p +Fx(.)2143 3279 y(5.)39 b(The)26 b(analysis)h(of)f(a)g(p)r(osition)h(is) +f(done)g(in)f(three)h(phases:)2273 3407 y(\(a\))39 b(The)30 +b(eldest)f(son)h(is)g(analysed,)h(regardless)g(of)f(the)f(p)r(o-)2410 +3490 y(sition)d(of)h(the)e(other)h(pro)r(cessors;)2269 +3605 y(\(b\))38 b(the)31 b(other)g(sons)g(whic)n(h)h(are)f(not)g +(curren)n(tly)g(analysed)2410 3688 y(b)n(y)25 b(other)g(pro)r(cessors)j +(are)e(analysed;)2278 3803 y(\(c\))38 b(then)22 b(the)g(sons)h(whic)n +(h)f(are)h(not)f(completely)g(ev)l(aluated)2410 3886 +y(are)28 b(analysed)f(\(i.e.)39 b(the)27 b(corresp)r(onding)h(en)n(try) +e(in)h(the)2410 3969 y(transp)r(osition)d(table)g(has)g(not)f(b)r(een)g +(ev)l(aluated)g(to)g(full)2410 4052 y(depth\).)2654 4020 +y Fv(2)2164 4227 y Fx(Figure)31 b(1)f(sho)n(ws)h(the)e(ABD)n(AD)n(A)f +(algorithm.)47 b(It)30 b(can)g(b)r(e)f(ob-)2049 4310 +y(tained)j(b)n(y)f(mo)r(difying)h(a)g(sequen)n(tial)h +Fw(\013\014)j Fx(using)c(a)h(transp)r(osition)2049 4393 +y(table)26 b(in)g(the)f(follo)n(wing)j(w)n(a)n(y:)2164 +4568 y Fu(\017)39 b Fx(W)-6 b(e)35 b(add)g(to)h(the)f(usual)h +(parameters)f(of)h(the)f(pro)r(cedure)h(a)2241 4651 y(Bo)r(olean)28 +b Ft(exclusiveP)f Fx(whic)n(h)f(indicates)h(whether)e(the)h(cor-)2241 +4734 y(resp)r(onding)33 b(no)r(de)h(should)f(b)r(e)g(ev)l(aluated)g +Fs(exclusively)p Fx(,)j(i.e.)2241 4817 y(the)30 b(pro)r(cessor)h(is)g +(allo)n(w)n(ed)h(to)e(ev)l(aluate)h(the)e(curren)n(t)h(no)r(de)2241 +4900 y(if)j(no)f(other)g(pro)r(cessor)h(is)g(curren)n(tly)e(ev)l +(aluating)i(it.)53 b(This)2241 4983 y(parameter)22 b(will)i(b)r(e)f +(passed)g(to)g(the)f(transp)r(osition)i(table)f(re-)2241 +5066 y(triev)n(e)j(pro)r(cedure)f Ft(RetrieveAsk)68 b +Fx(as)26 b(sho)n(wn)g(on)f(\014gure)h(2.)p 2049 5124 +801 4 v 2134 5178 a Fv(1)2168 5203 y Fr(ABD)n(AD)n(A)h(is)f(the)f +(acron)n(ym)g(of)g(the)g(F)-5 b(renc)n(h)24 b(name)h(\\Alpha-B)n(^)-31 +b(eta)26 b(Dis-)2049 5267 y(tribu)n(\023)-31 b(e)16 b(a)n(v)n(ec)i +(Droit)f(d'Anesse")g(whic)n(h)g(can)g(b)r(e)g(translated)g(in)n(to)h +(\\Distributed)2049 5330 y(Alpha-Beta)k(Searc)n(h)f(with)h(Eldest)f +(Son)h(Righ)n(t".)2134 5382 y Fv(2)2168 5407 y Fr(This)e(p)r(oin)n(t)g +(is)g(analogous)g(to)g(the)g(\\Helpful)e(Master)i(Concept"[8)o(],)g +(if,)g(in)2049 5471 y(the)c(second)g(phase,)h(the)e(pro)r(cessor)h(has) +h(found)f(some)g(no)r(de,)h(other)f(pro)r(cessors)2049 +5535 y(are)26 b(not)f(allo)n(w)n(ed)h(to)g(w)n(ork)h(on)e(this)h(no)r +(de)f(unless)g(there)g(is)h(nothing)f(else)g(to)2049 +5599 y(do.)44 b(Lik)n(e)27 b(in)g(the)f(\\Helpful)g(Master)h(Concept")f +(when)h(a)g(master)g(w)n(aits)h(for)2049 5663 y(the)22 +b(completion)e(of)i(its)g(sla)n(v)n(e)g(c)n(hildren,)e(it)i(b)r(ecomes) +f(their)g(sla)n(v)n(e.)p eop +%%Page: 2 2 +2 1 bop -25 1359 a Fq(1)39 b Fp(funct)p 42 1372 152 4 +v 25 w(ab)r(dada)q Fo(\()p Fp(P)n(osition)r Fn(;)11 b(\013;)h(\014)s(;) +f Fp(depth)r Fn(;)h Fp(exclusiveP)p Fo(\))43 b Fm(\021)-25 +1433 y Fq(2)214 b Fp(va)n(r)p 217 1446 89 4 v 23 w(exclusive)p +Fn(;)12 b Fp(iteration)q Fn(;)g Fp(alldone)q Fo(;)-25 +1508 y Fq(4)326 b Fp(if)p 329 1521 39 4 v 23 w(depth)22 +b Fo(=)d(0)24 b Fp(then)p 710 1521 130 4 v 25 w(exit)p +863 1521 107 4 v 24 w(evaluate)q Fo(\()p Fp(P)n(osition)q +Fo(\);)44 b Fp(\014)p 1589 1521 38 4 v -25 1583 a Fq(5)326 +b Fp(Best)20 b Fm( )g(\0001)p Fo(;)-25 1658 y Fq(6)326 +b Fp(RetrieveAsk)q Fo(\()p Fp(P)n(osition)r Fn(;)11 b(\013;)h(\014)s(;) +f Fp(depth)s Fn(;)g Fp(exclusiveP)p Fo(\);)-25 1732 y +Fq(8)326 b Fo(Generate)25 b(Mo)n(v)n(e)f(when)h(w)n(aiting)f(for)e(the) +j(answ)n(er)-53 1807 y Fq(10)326 b Fp(GenMove)p Fo(\()p +Fp(P)n(osition)r Fo(\);)-53 1882 y Fq(12)g Fp(RetrieveAnsw)n(er)s +Fo(\(&)p Fn(\013;)12 b Fo(&)p Fn(\014)s(;)f Fo(&)p Fp(Best)q +Fo(\);)-53 1956 y Fq(14)326 b Fo(The)24 b(curren)n(t)g(mo)n(v)n(e)f(is) +g(not)i(ev)l(aluated)g(if)e(causing)-53 2031 y Fq(15)326 +b Fo(a)24 b(cuto\013)h(or)e(if)g(w)n(e)h(are)f(in)h(exclusiv)n(e)g(mo)r +(de)f(and)-53 2106 y Fq(16)326 b Fo(another)25 b(pro)r(cessor)e(is)g +(curren)n(tly)h(ev)l(aluating)h(it.)-53 2181 y Fq(18)326 +b Fp(if)p 329 2194 39 4 v 23 w Fo(\()p Fn(\013)20 b Fm(\025)g +Fn(\014)s Fo(\))31 b Fm(_)h Fo(\()p Fp(Best)21 b Fo(=)e +Fp(ON)p 1096 2181 22 4 v 26 w(EV)-6 b(ALUA)g(TION)q Fo(\))-53 +2255 y Fq(19)388 b Fp(then)p 391 2268 130 4 v 25 w(exit)p +544 2268 107 4 v 24 w(Best)q Fo(;)42 b Fp(\014)p 867 +2268 38 4 v -53 2330 a Fq(21)326 b Fp(iteration)21 b +Fm( )e Fo(0;)-53 2405 y Fq(22)326 b Fp(alldone)21 b Fm( )e +Fl(false)o Fo(;)-53 2479 y Fq(24)326 b Fp(while)p 329 +2492 150 4 v 24 w Fo(\()p Fp(iteration)22 b Fn(<)d Fo(2\))32 +b Fm(^)g Fo(\()p Fn(\013)20 b(<)g(\014)s Fo(\))32 b Fm(^)f(:)p +Fp(alldone)25 b(do)p 1667 2492 72 4 v -53 2554 a Fq(25)499 +b Fp(iteration)21 b Fm( )f Fp(iteration)d Fo(+)f(1;)-53 +2629 y Fq(26)499 b Fp(alldone)21 b Fm( )e Fl(true)p Fo(;)-53 +2704 y Fq(28)499 b Fn(M)27 b Fm( )19 b Fp(FirstMove)p +Fo(\()p Fp(P)n(osition)r Fo(\);)-53 2778 y Fq(30)499 +b Fp(while)p 502 2791 150 4 v 24 w Fo(\()p Fn(M)27 b +Fm(6)p Fo(=)20 b(0)31 b Fm(^)h Fn(\013)20 b(<)f(\014)s +Fo(\))24 b Fp(do)p 1250 2791 72 4 v -53 2853 a Fq(31)672 +b Fp(exclusive)20 b Fm( )f Fo(\()p Fp(iteration)j Fo(=)e(1\))-53 +2928 y Fq(32)684 b Fm(^)31 b Fo(\()p Fp(NotFirstMove)r +Fo(\()p Fn(M)7 b Fo(\)\);)-53 3002 y Fq(34)672 b Fo(On)24 +b(the)g(\014rst)g(iteration,)g(w)n(e)g(w)n(an)n(t)-53 +3077 y Fq(35)672 b Fo(to)25 b(b)r(e)f(the)g(only)g(pro)r(cessor)-53 +3152 y Fq(36)672 b Fo(to)25 b(ev)l(aluate)g(y)n(oung)g(sons.)-53 +3227 y Fq(38)672 b Fp(value)20 b Fm( )f(\000)p Fp(ab)r(dada)q +Fo(\()p Fp(P)n(osition)e Fm(\017)f Fn(M)s(;)c Fm(\000)p +Fn(\014)s(;)-53 3301 y Fq(39)672 b Fm(\000)12 b Fo(max)o(\()p +Fn(\013;)g Fp(Best)q Fo(\))p Fn(;)g Fp(depth)18 b Fm(\000)e +Fo(1)p Fn(;)11 b Fp(exclusive)p Fo(\);)-53 3376 y Fq(40)672 +b Fp(if)p 675 3389 39 4 v 23 w(value)20 b Fo(=)f Fm(\000)p +Fp(ON)p 1143 3376 22 4 v 26 w(EV)-6 b(ALUA)g(TION)-53 +3451 y Fq(41)734 b Fp(then)p 737 3464 130 4 v 25 w(alldone)21 +b Fm( )e Fl(false)p Fo(;)-53 3526 y Fq(42)672 b Fp(elsif)p +675 3539 114 4 v 23 w(value)20 b Fn(>)g Fp(Best)-53 3600 +y Fq(43)809 b Fp(then)p 812 3613 130 4 v 26 w(Best)20 +b Fm( )f Fp(value)p Fo(;)-53 3675 y Fq(44)963 b Fp(if)p +966 3688 39 4 v 23 w(Best)20 b Fm(\025)g Fn(\014)-53 +3750 y Fq(45)1025 b Fp(then)p 1028 3763 130 4 v 25 w +Fl(skip)23 b Fp(endsea)n(rch)s Fo(;)42 b Fp(\014)p 1696 +3763 38 4 v -53 3824 a Fq(46)672 b Fp(\014)p 675 3837 +V -53 3899 a Fq(47)g Fn(M)27 b Fm( )19 b Fp(NextMove)p +Fo(\()p Fp(P)n(osition)r Fo(\))24 b Fp(o)r(d)p 1475 3912 +74 4 v Fo(;)-53 3974 y Fq(49)326 b Fp(o)r(d)p 329 3987 +V -53 4049 a Fq(50)g Fp(endsea)n(rch:)-53 4123 y Fq(51)g +Fp(Sto)n(reHash)r Fo(\()p Fp(P)n(osition)q Fn(;)12 b(\013;)f(\014)s(;)h +Fp(Best)q Fo(\);)-53 4198 y Fq(52)326 b Fp(exit)p 329 +4211 107 4 v 24 w(Best)q Fl(.)-138 4426 y Fx(Figure)26 +b(1:)35 b(The)26 b(ABD)n(AD)n(A)e(parallel)j(sc)n(heme)e(on)h(the)f +Fw(\013\014)30 b Fx(Searc)n(h)2164 83 y Fu(\017)39 b +Fx(W)-6 b(e)31 b(ha)n(v)n(e)g(to)g(de\014ne)g(a)g(new)h(v)l(alue)f +Ft(ON)p 3409 83 24 4 v 28 w(EVALUATION)j Fx(whic)n(h)2241 +166 y(is)27 b(di\013eren)n(t)g(from)f(an)n(y)h(v)l(alue)f(returned)g(b) +n(y)g(the)h(ev)l(aluation)2241 249 y(function.)2164 376 +y Fu(\017)39 b Fx(The)33 b Ft(RetrieveAsk)i Fx(pro)r(cedure)e(has)g(to) +f(return)g(this)h(v)l(alue)2241 459 y(as)25 b(a)g Ft(score)h +Fx(if)f(there)g(are)g(other)g(pro)r(cessors)h(ev)l(aluating)f(the)2241 +542 y(no)r(de)32 b(and)f Ft(exclusiveP)j Fx(is)f Ft(true)p +Fx(.)54 b(Otherwise,)34 b(if)f(there)e(is)2241 625 y(no)23 +b(forw)n(ard)h(pruning)f(due)f(to)h(the)g(transp)r(osition)h(table,)g +(the)2241 708 y(en)n(try)h Ft(nproc)h Fx(is)h(incremen)n(ted.)2164 +834 y Fu(\017)39 b Fx(Using)29 b(the)f(same)g(metho)r(d,)h(the)f +(storing)i(pro)r(cedure)e(decre-)2241 918 y(men)n(ts)20 +b(the)i(en)n(try)e Ft(nproc)j Fx(when)e(a)h(pro)r(cessor)i(lea)n(v)n +(es)e(a)g(no)r(de.)2164 1044 y Fu(\017)39 b Fx(The)30 +b(three)h(phases)f(are)h(implemen)n(ted)d(using)j(the)e(v)l(ariable) +2241 1127 y Ft(iteration)37 b Fx(whic)n(h)f(can)f(tak)n(e)h(the)f(v)l +(alue)g Ft(1)g Fx(and)g Ft(2)h Fx(in)f(the)2241 1210 +y(inner)f(lo)r(op)i(\(lines)f(29)g(to)g(42\).)62 b(The)35 +b(\014rst)f(time)g(w)n(e)h(en)n(ter)2241 1293 y(the)g(inner)g(lo)r(op,) +j(w)n(e)e(reset)g(the)e Ft(exclusive)j Fx(\015ag)f(only)f(on)2241 +1376 y(the)29 b(\014rst)g(mo)n(v)n(e)f(while)j(w)n(e)e(reset)h(it)g(on) +f(ev)n(ery)g(mo)n(v)n(e)f(in)h(the)2241 1459 y(second)34 +b(iteration.)60 b(When)33 b(the)g Ft(exclusive)j Fx(\015ag)e(is)g(set,) +j(a)2241 1542 y(son)26 b(whic)n(h)f(has)g(b)r(een)g(pruned)f(b)r +(ecause)i(another)f(pro)r(cessor)2241 1625 y(is)35 b(curren)n(tly)e(ev) +l(aluating)h(it)h(will)g(ha)n(v)n(e)f(a)g(return)f(v)l(alue)h(of)2241 +1708 y Ft(-ON)p 2363 1708 V 29 w(EVALUATION)p Fx(.)e(If)e(w)n(e)g +(\014nd)f(suc)n(h)h(a)g(son,)h(then)e(w)n(e)h(reset)2241 +1791 y(the)i Ft(alldone)h Fx(\015ag)g(meaning)e(that)h(another)g +(iteration)i(will)2241 1874 y(b)r(e)26 b(necessary)g(to)g(kno)n(w)f +(the)g(v)l(alue)h(of)g(this)g(son.)2164 2061 y(With)g(this)f +(de\014nition,)h(w)n(e)g(can)g(easily)h(see)f(that)g(compared)f(to)2049 +2144 y(a)h(YBW)n(C)g(searc)n(h,)h(the)f(ABD)n(AD)n(A)e(searc)n(h)i +(will)i(attempt)d(to)h(read)2049 2227 y(the)34 b(transp)r(osition)h +(table)g(at)f(most)g(t)n(wice)h(as)g(man)n(y)d(times,)k(and)2049 +2310 y(write)26 b(roughly)g(the)f(same)h(n)n(um)n(b)r(er)d(of)k(times.) +2049 2590 y Fy(3)100 b(RESUL)-8 b(TS)33 b(FROM)h(EXPERIMENTS)2049 +2816 y Fx(T)-6 b(o)22 b(analyse)f(the)g(b)r(eha)n(viour)g(of)h(the)f +(parallel)h(sc)n(heme,)g(w)n(e)f(used)g(the)2049 2899 +y(parallelization)26 b(of)e(t)n(w)n(o)g(sequen)n(tial)g(game)f +(programs:)34 b(a)24 b(comp)r(eti-)2049 2982 y(tiv)n(e)g(Othello)g +(program)2750 2950 y Fv(3)2809 2982 y Fx(and)g(an)g(early)g(v)n(ersion) +h(of)g(the)e Fs(F)-6 b(r)l(enchess)2049 3065 y Fx(c)n(hess)26 +b(program.)2164 3212 y(The)34 b(Othello)h(program)f(has)g(an)g +(unstable)g(ev)l(aluation)g(func-)2049 3295 y(tion)c(as)h(the)e(searc)n +(h)h(is)h(extended.)46 b(Most)30 b(Othello)h(programmers)2049 +3378 y(kno)n(w)k(of)h(the)e(o)r(dd{ev)n(en)h(problem)f(whic)n(h)h +(results)h(in)f(an)g(ev)l(alu-)2049 3461 y(ation)i(at)g(o)r(dd)f(depth) +f(b)r(eing)i(far)h(b)r(etter)e(than)g(one)g(at)h(an)g(ev)n(en)2049 +3544 y(depth)29 b(b)r(ecause)i(who)r(ev)n(er)g(just)g(mo)n(v)n(ed)e +(has)i(just)f(giv)n(en)h(mobilit)n(y)2049 3627 y(to)h(their)f(opp)r +(onen)n(t.)51 b(\(Othello)32 b(is)g(a)g(game)f(of)h(zugzw)n(ang.\))53 +b(F)-6 b(ur-)2049 3710 y(thermore,)38 b(the)e(Othello)g(program)g(sho)n +(ws)g(some)g(v)n(ery)f(unstable)2049 3793 y(principal)24 +b(v)l(ariations.)35 b(This)24 b(has)g(the)g(uncommon)d(e\013ect)j(that) +f(the)2049 3876 y Fw(\013\014)37 b Fx(searc)n(h)c(is)g(b)r(etter)f +(than)g(NegaScout[19)q(,)h(20)q(])g(searc)n(h)g(for)g(this)2049 +3960 y(program.)2164 4107 y(In)f(con)n(trast,)k(the)c(c)n(hess)h +(program)g(used)f(a)i(fast)f(incremen)n(tal)2049 4190 +y(ev)l(aluation)38 b(function)h(based)f(on)g(an)g(Oracle[3)q(])h(com)n +(bined)e(with)2049 4273 y(Piece/Color/Square)48 b(tables,)j(and)44 +b(pro)r(duced)h(a)g(fairly)h(stable)2049 4356 y(ev)l(aluation)32 +b(function)f(and)g(also)h(stable)g(principal)g(v)l(ariations)g(as-)2049 +4439 y(so)r(ciated)27 b(with)f(optimised)f(k)n(ey)g(mo)n(v)n(e)f +(ordering)j(tec)n(hniques.)2164 4586 y(Whatev)n(er)20 +b(the)g(n)n(um)n(b)r(er)e(of)j(pro)r(cessors)h(is,)g(the)d(global)j(n)n +(um)n(b)r(er)2049 4669 y(of)k(en)n(tries)g(in)g(the)f(transp)r(osition) +i(table)f(is)g(k)n(ept)f(constan)n(t.)2049 4941 y Fy(3.1)100 +b(DEFINITIONS)2049 5141 y Fx(Before)35 b(giving)f(some)f(results)g +(from)g(the)g(exp)r(erimen)n(ts)f(w)n(e)i(made)2049 5224 +y(on)20 b(a)g(CM5)i(Thinking)e(Mac)n(hine)g(Corp)r(oration)i(Computer)d +(with)h(32)2049 5307 y(SP)-6 b(AR)n(C)30 b(no)r(des,)j(w)n(e)f(need)f +(some)g(basic)h(de\014nitions)f(of)h(the)f(mea-)2049 +5390 y(sures)26 b(w)n(e)g(used.)p 2049 5456 801 4 v 2134 +5510 a Fv(3)2168 5535 y Fr(The)i(sequen)n(tial)f(Othello)g(program)h +(named)f Fk(Bugs)33 b Fr(\014nished)26 b(fourth)i(in)2049 +5599 y(the)21 b(W)-5 b(aterlo)r(o)22 b(Othello)f(tournamen)n(t)f(in)i +(1994,)h(and)e(\014nished)g(second)g(of)h(the)2049 5663 +y(P)n(aderb)r(orn)f(Othello)g(tournamen)n(t)f(in)i(1995.)p +eop +%%Page: 3 3 +3 2 bop -150 540 a Fp(p)n(ro)r(c)p -150 553 128 4 v 25 +w(RetrieveAsk)q Fo(\()p Fp(P)n(osition)r Fn(;)11 b(\013;)h(\014)s(;)f +Fp(depth)r Fn(;)h Fp(exclusiveP)p Fo(\))44 b Fm(\021)1 +615 y Fp(va)n(r)p 1 628 89 4 v 23 w(entry)r Fn(;)11 b +Fp(answ)n(er)r Fo(;)43 b Fp(end)p 558 628 105 4 v 1 689 +a(entry)21 b Fm( )e(T)f Fo(\()p Fp(P)n(osition)q Fo(\);)1 +764 y Fp(answ)n(er)r Fn(:\013)h Fm( )g Fn(\013)p Fo(;)32 +b Fp(answ)n(er)r Fn(:\014)22 b Fm( )d Fn(\014)s Fo(;)1 +839 y Fp(answ)n(er)r Fn(:)p Fp(sco)n(re)h Fm( )f(\0001)p +Fo(;)1 913 y Fp(if)p 1 926 39 4 v 23 w(entry)i Fo(=)f(0)j +Fp(then)p 366 926 130 4 v 520 988 a Fo(If)g(not)i(exists)e(then)i(exit) +520 1063 y Fl(skip)e Fp(endp)n(rob)r(e)s Fo(;)1 1138 +y Fp(\014)p 1 1151 38 4 v 1 1212 a(if)p 1 1225 39 4 v +23 w(entry)r Fn(:)p Fp(height)e Fo(=)e Fp(depth)34 b +Fm(^)d Fp(exclusiveP)h Fm(^)f Fp(entry)r Fn(:)p Fp(np)n(ro)r(c)21 +b Fn(>)e Fo(0)63 1287 y Fp(then)p 63 1300 130 4 v 239 +1362 a Fo(Only)24 b(one)g(pro)r(cessor)g(allo)n(w)n(ed)g(if)f +(exclusivit)n(y)216 1436 y(is)g(required)216 1511 y Fp(answ)n(er)r +Fn(:)p Fp(sco)n(re)d Fm( )g Fp(ON)p 799 1511 22 4 v 25 +w(EV)-6 b(ALUA)g(TION)q Fo(;)216 1586 y Fl(skip)23 b +Fp(endp)n(rob)r(e)1 1661 y(\014)p 1 1674 38 4 v 1 1735 +a(if)p 1 1748 39 4 v 23 w(entry)r Fn(:)p Fp(height)e +Fm(\025)e Fp(depth)63 1810 y(then)p 63 1823 130 4 v 216 +1885 a(if)p 216 1898 39 4 v 23 w(entry)r Fn(:)p Fp(\015ag)h +Fo(=)f Fp(V)-6 b(ALID)278 1960 y(then)p 278 1973 130 +4 v 25 w(answ)n(er)r Fn(:)p Fp(sco)n(re)21 b Fm( )e Fp(entry)r +Fn(:)p Fp(sco)n(re)p Fo(;)431 2034 y Fp(answ)n(er)r Fn(:)p +Fp(alpha)h Fm( )f Fp(entry)r Fn(:)p Fp(sco)n(re)q Fo(;)431 +2109 y Fp(answ)n(er)r Fn(:\014)j Fm( )e Fp(entry)q Fn(:)p +Fp(sco)n(re)216 2184 y(elsif)p 216 2197 114 4 v 23 w(entry)r +Fn(:)p Fp(\015ag)g Fo(=)g Fp(UBOUND)32 b Fm(^)f Fp(entry)r +Fn(:)p Fp(sco)n(re)20 b Fn(<)g(\014)353 2258 y Fp(then)p +353 2271 130 4 v 25 w(answ)n(er)r Fn(:)p Fp(sco)n(re)h +Fm( )e Fp(entry)r Fn(:)p Fp(sco)n(re)q Fo(;)506 2333 +y Fp(answ)n(er)r Fn(:\014)k Fm( )c Fp(entry)r Fn(:)p +Fp(sco)n(re)216 2408 y(elsif)p 216 2421 114 4 v 23 w(entry)r +Fn(:)p Fp(\015ag)h Fo(=)g Fp(LBOUND)32 b Fm(^)f Fp(entry)r +Fn(:)p Fp(sco)n(re)20 b Fn(>)g(\013)353 2483 y Fp(then)p +353 2496 130 4 v 25 w(answ)n(er)r Fn(:)p Fp(sco)n(re)h +Fm( )e Fp(entry)r Fn(:)p Fp(sco)n(re)q Fo(;)506 2557 +y Fp(answ)n(er)r Fn(:\013)h Fm( )f Fp(entry)r Fn(:)p +Fp(sco)n(re)216 2632 y(\014)p 216 2645 38 4 v 216 2707 +a(if)p 216 2720 39 4 v 23 w(entry)r Fn(:)p Fp(depth)i +Fo(=)f Fp(depth)33 b Fm(^)e Fp(answ)n(er)s Fn(:\013)19 +b(<)h Fp(answ)n(er)r Fn(:\014)278 2781 y Fp(then)p 278 +2794 130 4 v 431 2856 a Fo(Incremen)n(t)k(the)h(n)n(um)n(b)r(er)e(of)g +(pro)r(cessors)431 2931 y(ev)l(aluating)i(this)f(no)r(de)431 +3006 y Fp(entry)r Fn(:)p Fp(np)n(ro)r(c)d Fm( )e Fp(entry)r +Fn(:)p Fp(np)n(ro)r(c)e Fo(+)e(1)216 3080 y Fp(\014)p +216 3093 38 4 v 86 3155 a(else)p 86 3168 107 4 v 216 +3230 a Fo(This)23 b(is)g(the)i(\014rst)e(pro)r(cessor)h(to)g(ev)l +(aluate)h(this)f(no)r(de)216 3304 y Fp(entry)r Fn(:)p +Fp(depth)d Fm( )e Fp(depth)r Fo(;)216 3379 y Fp(entry)r +Fn(:)p Fp(\015ag)h Fm( )f Fp(UNSET)q Fo(;)216 3454 y +Fp(entry)r Fn(:)p Fp(np)n(ro)r(c)i Fm( )e Fo(1;)1 3529 +y Fp(\014)p 1 3542 38 4 v 1 3603 a(endp)n(rob)r(e:)1 +3678 y Fo(No)n(w)k(send)i(the)f(answ)n(er)1 3753 y Fp(Send.ttableansw)n +(er)t Fo(\()p Fp(answ)n(er)s Fn(:\013;)11 b Fp(answ)n(er)r +Fn(:\014)s(;)g Fp(answ)n(er)r Fn(:)p Fp(sco)n(re)q Fo(\);)-150 +3828 y Fl(.)-150 3902 y Fp(p)n(ro)r(c)p -150 3915 128 +4 v 25 w(Sto)n(reHash)q Fo(\()p Fp(P)n(osition)r Fn(;)h(\013;)f(\014)s +(;)h Fp(sco)n(re)q Fn(;)f Fp(depth)r Fo(\))44 b Fm(\021)1 +3977 y Fp(va)n(r)p 1 3990 89 4 v 23 w Fn(entr)r(y)r Fo(;)f +Fp(end)p 348 3990 105 4 v 1 4052 a(entry)21 b Fm( )e(T)f +Fo(\()p Fp(P)n(osition)q Fo(\);)1 4126 y Fp(if)p 1 4139 +39 4 v 23 w(entry)j Fo(=)f(0)31 b Fm(_)h Fp(entry)r Fn(:)p +Fp(height)21 b Fn(>)e Fp(depth)26 b(then)p 1089 4139 +130 4 v 25 w(exit)p 1242 4139 107 4 v 24 w(\014)p 1372 +4139 38 4 v 1 4201 a(if)p 1 4214 39 4 v 23 w(entry)r +Fn(:)p Fp(height)21 b Fo(=)e Fp(depth)63 4276 y(then)p +63 4289 130 4 v 25 w(entry)r Fn(:)p Fp(np)n(ro)r(c)i +Fm( )e Fp(entry)r Fn(:)p Fp(np)n(ro)r(c)e Fm(\000)e Fo(1)86 +4351 y Fp(else)p 86 4364 107 4 v 24 w(entry)r Fn(:)p +Fp(np)n(ro)r(c)21 b Fm( )e Fo(0)1 4425 y Fp(\014)p 1 +4438 38 4 v 1 4500 a(if)p 1 4513 39 4 v 23 w(sco)n(re)h +Fm(\025)g Fn(\014)26 b Fp(then)p 370 4513 130 4 v 26 +w(entry)r Fn(:)p Fp(\015ag)20 b Fm( )f Fp(LBOUND)1 4575 +y(elsif)p 1 4588 114 4 v 23 w(sco)n(re)i Fm(\024)e Fn(\013)24 +b Fp(then)p 448 4588 130 4 v 25 w(entry)r Fn(:)p Fp(\015ag)c +Fm( )g Fp(UBOUND)471 4649 y(else)p 471 4662 107 4 v 24 +w(entry)r Fn(:)p Fp(\015ag)g Fm( )g Fp(V)-6 b(ALID)1 +4724 y(\014)p 1 4737 38 4 v 1 4799 a(entry)r Fn(:)p Fp(sco)n(re)20 +b Fm( )f Fp(sco)n(re)q Fo(;)1 4874 y Fp(entry)r Fn(:)p +Fp(depth)i Fm( )e Fp(depth)r Fo(;)-150 4948 y Fl(.)-150 +5177 y Fx(Figure)28 b(2:)38 b(The)27 b(transp)r(osition)h(table)g +(managemen)n(t)e(for)i(the)e(AB-)-150 5260 y(D)n(AD)n(A)e(sc)n(heme) +2164 83 y(These)60 b(de\014nitions)f(follo)n(w)j(those)d(giv)n(en)g(in) +g(a)h(previous)2049 166 y(pap)r(er[15)q(]:)2049 362 y +Fj(The)29 b(Comm)n(unication)h(Ov)n(erhead)f(\(CO\))69 +b Fx(is)31 b(the)e(o)n(v)n(erhead)2241 445 y(that)i(is)h(caused)f(when) +g(the)g(parallel)i(program)e(sends)g(mes-)2241 528 y(sages)j(bac)n(k)f +(and)g(forth)g(b)r(et)n(w)n(een)g(pro)r(cessors.)58 b(It)33 +b(also)h(in-)2241 611 y(cludes)21 b(the)g(time)g(sp)r(en)n(t)f(to)i +(enco)r(de)f(and)g(deco)r(de)g(a)h(message.)2241 694 +y(It)j(is)h(dep)r(enden)n(t)f(on)g(b)r(oth)h(hardw)n(are)g(and)f(soft)n +(w)n(are.)2049 829 y Fj(The)k(Searc)n(h)g(Ov)n(erhead)g(\(SO\))69 +b Fx(is)32 b(the)f(cost)g(attributable)h(to)2241 912 +y(the)57 b(extra)g(no)r(des)h(searc)n(hed)g(in)f(the)g(parallel)i(v)n +(ersion)2241 995 y(compared)2566 963 y Fv(4)2630 995 +y Fx(to)30 b(the)g(sequen)n(tial)g(v)n(ersion.)47 b(It)30 +b(is)g(de\014ned)f(b)n(y)2241 1078 y(the)c(form)n(ula)2453 +1287 y Fw(S)t(O)f Fx(=)2677 1238 y(\(No)r(des)i(searc)n(hed)g(for)h(N)e +(CPUs\))p 2677 1270 997 4 v 2702 1337 a(\(No)r(des)h(searc)n(hed)g(for) +g(1)g(CPU\))3701 1287 y Fu(\000)17 b Fx(1)p Fw(:)2049 +1542 y Fj(The)29 b(Sync)n(hronization)j(Ov)n(erhead)d(\(SY\))68 +b Fx(is)46 b(the)f(cost)g(at-)2241 1625 y(tributed)20 +b(when)g(a)h(pro)r(cessor)i(b)r(ecomes)d(idle.)33 b(This)22 +b(can)f(hap-)2241 1708 y(p)r(en)k(when)h(it)f(has)h(no)g(job)g(to)f(do) +h(or)g(when)f(it)h(is)g(w)n(aiting)h(for)2241 1791 y(a)f(result)g +(\(comm)n(unication\))e(from)i(another)f(pro)r(cessor.)2049 +1926 y Fj(The)k(Time)f(Ov)n(erhead)h(\(TO\))69 b Fx(is)22 +b(the)f(observ)l(able)g(measure)g(of)2241 2009 y(o)n(v)n(erhead.)34 +b(It)25 b(is)i(de\014ned)d(as)2241 2212 y Fw(T)11 b(O)23 +b Fx(=)e(\(Time)26 b(using)g(N)f(Cpus\))r Fu(\002)3548 +2164 y Fw(N)p 3250 2195 667 4 v 3250 2263 a Fx(\(Time)g(using)h(1)g +(Cpu\))3928 2212 y Fu(\000)r Fx(1)p Fw(:)2241 2437 y +Fx(and)20 b(is)i(appro)n(ximately)d(related)i(to)g(the)g(other)f(o)n(v) +n(erheads)h(b)n(y)2766 2615 y Fw(T)11 b(O)23 b Fx(=)e +Fw(S)t(O)f Fx(+)d Fw(C)5 b(O)19 b Fx(+)e Fw(S)t(Y)t(:)2049 +2820 y Fj(The)29 b(Relativ)n(e)g(Sp)r(eedup)h(\(RS\))69 +b Fx(is)26 b(de\014ned)f(b)n(y)2649 3047 y Fw(R)q(S)g +Fx(=)2896 2998 y(\(Time)g(using)h(1)g(CPU\))p 2871 3030 +741 4 v 2871 3097 a(\(Time)f(using)h(N)f(CPUs\))3621 +3047 y Fw(:)2241 3272 y Fx(for)31 b(the)f(same)g(algorithm,)j(i.e.)49 +b(using)31 b(only)f(one)h(CPU,)g(w)n(e)2241 3355 y(use)19 +b(the)f(same)h(algorithm)g(as)h(for)g(the)e(parallel)j(v)n(ersion.)32 +b(This)2241 3438 y(enables)i(us)f(to)g(measure)g(the)g(p)r(erformance)g +(of)h(the)f(paral-)2241 3521 y(lelization)28 b(sc)n(heme.)2049 +3656 y Fj(The)h(Absolute)h(Sp)r(eedup)f(\(AS\))69 b Fx(is,)23 +b(in)e(con)n(trast,)i(de\014ned)d(b)n(y)2355 3883 y Fw(AS)25 +b Fx(=)2576 3834 y(\(Time)h(of)g(the)g(b)r(est)f(sequen)n(tial)h +(algorithm\))p 2576 3866 1329 4 v 2870 3934 a(\(Time)g(using)g(N)f +(CPUs\))3914 3883 y Fw(:)2241 4108 y Fx(This)41 b(measure)f(is)h +(suited)f(for)h(comparing)f(parallel)i(algo-)2241 4191 +y(rithms.)73 b(Some)38 b(sc)n(hemes)g(can)h(parallelize)i(p)r(o)r(or)e +(sequen-)2241 4274 y(tial)21 b(algorithms)f(w)n(ell,)j(ac)n(hieving)d +(a)g(go)r(o)r(d)h(relativ)n(e)f(sp)r(eedup.)2241 4357 +y(Ho)n(w)n(ev)n(er,)26 b(they)f(ma)n(y)g(b)r(e)h(slo)n(w)n(er)h(on)f +Fw(N)34 b Fx(CPUs)27 b(than)e(a)i(b)r(et-)2241 4440 y(ter)e(sequen)n +(tial)g(algorithm)g(and)g(a)g(parallel)h(algorithm)g(with)2241 +4523 y(a)j(smaller)g(relativ)n(e)h(sp)r(eedup.)43 b(In)28 +b(our)h(problems,)g(w)n(e)h(ha)n(v)n(e)2241 4606 y(used)e(the)g +(recursiv)n(e)g Fw(\013\014)33 b Fx(searc)n(h)c(for)g(the)e(Othello)i +(program)2241 4689 y(as)24 b(a)f("b)r(est)h(sequen)n(tial)g(algorithm") +g(and)e(the)h(recursiv)n(e)h(Ne-)2241 4772 y(gascout)j(searc)n(h)f(for) +g(the)g(c)n(hess)g(program.)2049 4908 y Fj(The)j(E\016ciency)68 +b Fx(is)26 b(de\014ned)f(b)n(y)2680 5131 y Fw(E)t(F)32 +b Fx(=)2913 5082 y(\(Absolute)26 b(Sp)r(eedup\))p 2913 +5114 667 4 v 3212 5181 a Fw(N)3589 5131 y(:)2241 5309 +y Fx(.)p 2049 5392 801 4 v 2134 5446 a Fv(4)2168 5471 +y Fr(In)15 b(the)g(case)g(of)g(the)g(ABD)n(AD)n(A)h(searc)n(h,)g(w)n(e) +g(coun)n(t)f(as)h(a)f(no)r(de)f(a)i(no)r(de)e(that)2049 +5535 y(is)24 b(not)g(immediately)e(pruned)g(b)n(y)i(the)g(sp)r +(eculativ)n(e)e(searc)n(h)h(con)n(trol.)34 b(In)24 b(this)2049 +5599 y(case,)d(the)g(searc)n(h)f(o)n(v)n(erhead)h(is)g(created)f(b)n(y) +h(the)g(fact)f(that)i(man)n(y)f(pro)r(cessors)2049 5663 +y(are)h(searc)n(hing)f(the)h(same)f(no)r(des.)p eop +%%Page: 4 4 +4 3 bop 37 970 a @beginspecial 50 @llx 50 @lly 302 @urx +226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph3.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +LTb +840 655 M +63 0 V +3905 0 R +-63 0 V +756 655 M +(5) Rshow +840 1035 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(10) Rshow +840 1415 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(15) Rshow +840 1795 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 2176 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(25) Rshow +840 2556 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2936 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(35) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Relative Speedup) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Othello : Young Brothers Wait Concept) Cshow +LT0 +4325 3113 M +(ideal) Rshow +4409 3113 M +252 0 V +1552 883 M +814 608 V +814 609 V +814 608 V +4493 3113 D +1552 883 D +2366 1491 D +3180 2100 D +3994 2708 D +LT1 +4325 2973 M +(11) Rshow +4409 2973 M +252 0 V +1552 803 M +814 380 V +814 337 V +814 327 V +4493 2973 A +1552 803 A +2366 1183 A +3180 1520 A +3994 1847 A +LT2 +4325 2833 M +(10) Rshow +4409 2833 M +252 0 V +1552 790 M +814 319 V +814 294 V +814 206 V +4493 2833 B +1552 790 B +2366 1109 B +3180 1403 B +3994 1609 B +LT3 +4325 2693 M +(9) Rshow +4409 2693 M +252 0 V +1552 762 M +814 275 V +814 160 V +814 76 V +4493 2693 C +1552 762 C +2366 1037 C +3180 1197 C +3994 1273 C +LT4 +4325 2553 M +(8) Rshow +4409 2553 M +252 0 V +1552 696 M +814 151 V +814 21 V +814 -19 V +4493 2553 T +1552 696 T +2366 847 T +3180 868 T +3994 849 T +LT5 +4325 2413 M +(7) Rshow +4409 2413 M +252 0 V +1552 606 M +814 47 V +814 -59 V +814 -10 V +4493 2413 S +1552 606 S +2366 653 S +3180 594 S +3994 584 S +LT6 +4325 2273 M +(6) Rshow +4409 2273 M +252 0 V +1552 487 M +814 -9 V +814 -37 V +814 -21 V +4493 2273 D +1552 487 D +2366 478 D +3180 441 D +3994 420 D +LT7 +4325 2133 M +(5) Rshow +4409 2133 M +252 0 V +1552 411 M +814 -24 V +814 -25 V +718 -11 V +4493 2133 A +1552 411 A +2366 387 A +3180 362 A +LT8 +4325 1993 M +(4) Rshow +4409 1993 M +252 0 V +1552 356 M +204 -5 V +4493 1993 B +1552 356 B +LT0 +4325 1853 M +(3) Rshow +4409 1853 M +252 0 V +4493 1853 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1275 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph19.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +LTb +840 655 M +63 0 V +3905 0 R +-63 0 V +756 655 M +(5) Rshow +840 1035 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(10) Rshow +840 1415 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(15) Rshow +840 1795 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 2176 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(25) Rshow +840 2556 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2936 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(35) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Relative Speedup) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : Young Brothers Wait Concept) Cshow +LT0 +4325 3113 M +(ideal) Rshow +4409 3113 M +252 0 V +1552 883 M +814 608 V +814 609 V +814 608 V +4493 3113 D +1552 883 D +2366 1491 D +3180 2100 D +3994 2708 D +LT1 +4325 2973 M +(8) Rshow +4409 2973 M +252 0 V +1552 760 M +814 319 V +814 264 V +814 333 V +4493 2973 A +1552 760 A +2366 1079 A +3180 1343 A +3994 1676 A +LT2 +4325 2833 M +(7) Rshow +4409 2833 M +252 0 V +1552 740 M +814 305 V +814 227 V +814 244 V +4493 2833 B +1552 740 B +2366 1045 B +3180 1272 B +3994 1516 B +LT3 +4325 2693 M +(6) Rshow +4409 2693 M +252 0 V +1552 717 M +814 267 V +814 172 V +814 153 V +4493 2693 C +1552 717 C +2366 984 C +3180 1156 C +3994 1309 C +LT4 +4325 2553 M +(5) Rshow +4409 2553 M +252 0 V +1552 600 M +814 133 V +814 62 V +814 41 V +4493 2553 T +1552 600 T +2366 733 T +3180 795 T +3994 836 T +LT5 +4325 2413 M +(4) Rshow +4409 2413 M +252 0 V +1552 552 M +814 96 V +814 25 V +814 121 V +4493 2413 S +1552 552 S +2366 648 S +3180 673 S +3994 794 S +LT6 +4325 2273 M +(3) Rshow +4409 2273 M +252 0 V +1552 492 M +814 36 V +814 0 V +814 0 V +4493 2273 D +1552 492 D +2366 528 D +3180 528 D +3994 528 D +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1276 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph25.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +LTb +840 655 M +63 0 V +3905 0 R +-63 0 V +756 655 M +(5) Rshow +840 1035 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(10) Rshow +840 1415 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(15) Rshow +840 1795 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 2176 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(25) Rshow +840 2556 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2936 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(35) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Relative Speedup) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : Negascout YBWC) Cshow +LT0 +4325 3113 M +(ideal) Rshow +4409 3113 M +252 0 V +1552 883 M +814 608 V +814 609 V +814 608 V +4493 3113 D +1552 883 D +2366 1491 D +3180 2100 D +3994 2708 D +LT1 +4325 2973 M +(8) Rshow +4409 2973 M +252 0 V +1552 672 M +814 282 V +814 248 V +814 166 V +4493 2973 A +1552 672 A +2366 954 A +3180 1202 A +3994 1368 A +LT2 +4325 2833 M +(7) Rshow +4409 2833 M +252 0 V +1552 673 M +814 208 V +814 201 V +814 62 V +4493 2833 B +1552 673 B +2366 881 B +3180 1082 B +3994 1144 B +LT3 +4325 2693 M +(6) Rshow +4409 2693 M +252 0 V +1552 632 M +814 146 V +814 134 V +814 28 V +4493 2693 C +1552 632 C +2366 778 C +3180 912 C +3994 940 C +LT4 +4325 2553 M +(5) Rshow +4409 2553 M +252 0 V +1552 532 M +814 54 V +814 62 V +814 24 V +4493 2553 T +1552 532 T +2366 586 T +3180 648 T +3994 672 T +LT5 +4325 2413 M +(4) Rshow +4409 2413 M +252 0 V +1552 486 M +814 49 V +814 0 V +814 39 V +4493 2413 S +1552 486 S +2366 535 S +3180 535 S +3994 574 S +LT6 +4325 2273 M +(3) Rshow +4409 2273 M +252 0 V +1552 416 M +814 70 V +814 0 V +814 42 V +4493 2273 D +1552 416 D +2366 486 D +3180 486 D +3994 528 D +stroke +grestore +end +showpage +%%EndDocument + @endspecial 37 1948 a @beginspecial 50 @llx 50 @lly +302 @urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph4.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +3968 0 V +LTb +840 351 M +63 0 V +3905 0 R +-63 0 V +756 351 M +(0) Rshow +840 845 M +63 0 V +3905 0 R +-63 0 V +756 845 M +(10) Rshow +840 1339 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 1833 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2328 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +840 2822 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(50) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(60) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Overheads) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Othello : Young Brothers Wait Concept) Cshow +LT0 +4325 3113 M +(TO) Rshow +4409 3113 M +252 0 V +1552 1097 M +814 931 V +814 625 V +814 402 V +4493 3113 D +1552 1097 D +2366 2028 D +3180 2653 D +3994 3055 D +LT1 +4325 2973 M +(SO) Rshow +4409 2973 M +252 0 V +1552 663 M +814 663 V +814 211 V +814 138 V +4493 2973 A +1552 663 A +2366 1326 A +3180 1537 A +3994 1675 A +LT2 +4325 2833 M +(CO) Rshow +4409 2833 M +252 0 V +1552 686 M +814 147 V +814 219 V +814 12 V +4493 2833 B +1552 686 B +2366 833 B +3180 1052 B +3994 1064 B +LT3 +4325 2693 M +(SY) Rshow +4409 2693 M +252 0 V +1552 451 M +814 119 V +814 196 V +814 252 V +4493 2693 C +1552 451 C +2366 570 C +3180 766 C +3994 1018 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1275 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph20.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +3968 0 V +LTb +840 351 M +63 0 V +3905 0 R +-63 0 V +756 351 M +(0) Rshow +840 722 M +63 0 V +3905 0 R +-63 0 V +756 722 M +(10) Rshow +840 1092 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 1463 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 1834 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +840 2204 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(50) Rshow +840 2575 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(60) Rshow +840 2945 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(70) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(80) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Overheads) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : Young Brothers Wait Concept) Cshow +LT0 +4325 3113 M +(TO) Rshow +4409 3113 M +252 0 V +1552 1294 M +814 955 V +814 728 V +814 103 V +4493 3113 D +1552 1294 D +2366 2249 D +3180 2977 D +3994 3080 D +LT1 +4325 2973 M +(SO) Rshow +4409 2973 M +252 0 V +1552 793 M +814 736 V +814 593 V +814 -29 V +4493 2973 A +1552 793 A +2366 1529 A +3180 2122 A +3994 2093 A +LT2 +4325 2833 M +(SY) Rshow +4409 2833 M +252 0 V +1552 409 M +814 171 V +814 278 V +814 290 V +4493 2833 B +1552 409 B +2366 580 B +3180 858 B +3994 1148 B +LT3 +4325 2693 M +(CO) Rshow +4409 2693 M +252 0 V +1552 794 M +814 48 V +3180 699 L +3994 540 L +4493 2693 C +1552 794 C +2366 842 C +3180 699 C +3994 540 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1276 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph26.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +3968 0 V +LTb +840 351 M +63 0 V +3905 0 R +-63 0 V +756 351 M +(0) Rshow +840 775 M +63 0 V +3905 0 R +-63 0 V +756 775 M +(20) Rshow +840 1198 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +840 1622 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(60) Rshow +840 2045 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(80) Rshow +840 2469 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(100) Rshow +840 2892 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(120) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(140) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Overheads) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : Negascout YBWC) Cshow +LT0 +4325 3113 M +(TO) Rshow +4409 3113 M +252 0 V +1552 1477 M +814 549 V +814 378 V +814 542 V +4493 3113 D +1552 1477 D +2366 2026 D +3180 2404 D +3994 2946 D +LT1 +4325 2973 M +(SO) Rshow +4409 2973 M +252 0 V +1552 1013 M +814 306 V +814 132 V +814 247 V +4493 2973 A +1552 1013 A +2366 1319 A +3180 1451 A +3994 1698 A +LT2 +4325 2833 M +(SY) Rshow +4409 2833 M +252 0 V +1552 395 M +814 128 V +814 204 V +814 310 V +4493 2833 B +1552 395 B +2366 523 B +3180 727 B +3994 1037 B +LT3 +4325 2693 M +(CO) Rshow +4409 2693 M +252 0 V +1552 772 M +814 115 V +814 42 V +814 -16 V +4493 2693 C +1552 772 C +2366 887 C +3180 929 C +3994 913 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 319 2193 a Fx(Figure)27 b(3:)34 b(Results)26 +b(with)g(the)f(\\Y)-6 b(oung)26 b(Brothers)g(W)-6 b(ait)26 +b(Concept")g(sc)n(heme)f(applied)h(to)g(the)f Fw(\013\014)30 +b Fx(algorithm.)-150 2359 y Fs(The)d(top)h(gr)l(aphs)g(show)g(the)g(r)l +(elative)g(sp)l(e)l(e)l(dup)h(versus)f(the)g(numb)l(er)g(of)e(pr)l(o)l +(c)l(essors)k(and)e(the)g(b)l(ottom)g(gr)l(aphs)g(show)g(the)g +(di\013er)l(ent)g(overhe)l(ads.)-150 2442 y(Chess)i(r)l(esults)g(r)l +(epr)l(esent)h(the)f(aver)l(age)g(on)f(the)h(24)f(Br)l(atko-Kop)l(e)l +(c[4)s(])f(p)l(ositions.)39 b(One)29 b(pr)l(o)l(c)l(essor)i(using)e(Ne) +l(gasc)l(out)i(ne)l(e)l(ds)f(52045)g(se)l(c)l(onds)-150 +2525 y(to)j(se)l(ar)l(ch)h(al)t(l)d(these)j(p)l(ositions)f(at)g(depth)g +(8,)g(the)g(minimum)e(time)h(is)g(achieve)l(d)i(by)e(the)h(p)l(osition) +g(8)f(in)g(25)h(se)l(c)l(onds.)50 b(Position)33 b(5)f(r)l(e)l(quir)l +(es)-150 2608 y(13827)c(se)l(c)l(onds.)36 b(Othel)t(lo)27 +b(r)l(esults)i(r)l(epr)l(esent)h(the)d(aver)l(age)i(on)e(the)h(\014rst) +g(50)f(moves)h(of)f(a)g(high)g(level)f(c)l(omputer)j(Othel)t(lo)e +(tournament)i(game.)-150 2691 y(A)n(t)g(depth)h(11,)g(on)f(one)g(pr)l +(o)l(c)l(essor,)i(the)f(Othel)t(lo)f(pr)l(o)l(gr)l(am)h(se)l(ar)l(ches) +i(al)t(l)c(the)i(game)f(in)f(38205)i(se)l(c)l(onds.)41 +b(T)-6 b(op)29 b(gr)l(aphs)i(ar)l(e)e(curves)i(for)e(depth)-150 +2774 y(3)f(to)g(11)g(for)f(Othel)t(lo)h(and)g(depth)h(3)e(to)h(8)g(for) +f(chess.)37 b(Bottom)28 b(gr)l(aphs)h(ar)l(e)g(for)e(depth)i(11)f(for)g +(Othel)t(lo)f(and)h(depth)h(8)f(for)f(chess.)-150 3037 +y Fy(3.2)100 b(YOUNG)33 b(BROTHERS)h(W)-8 b(AIT)34 b(CONCEPT)78 +3121 y(RESUL)-8 b(TS)-150 3316 y Fx(W)i(e)23 b(implemen)n(ted)f(the)h +(YBW)n(C)h(searc)n(h)h(on)e(the)h(Othello)g(program)-150 +3399 y(and)34 b(on)h(the)f(c)n(hess)h(program.)60 b(As)35 +b(this)f(sc)n(heme)g(w)n(as)h(primarily)-150 3482 y(c)n(hosen)28 +b(for)h(the)e(de\014nition)h(of)h Fs(F)-6 b(r)l(enchess)6 +b Fx(,)1134 3450 y Fv(5)1199 3482 y Fx(w)n(e)29 b(tried)f(man)n(y)e(p)r +(os-)-150 3565 y(sible)j(optimisations)h(to)e(ensure)h(that)f(the)g +(results)h(w)n(ere)h(the)e(b)r(est)-150 3648 y(p)r(ossible.)36 +b(The)26 b(results)g(are)g(sho)n(wn)g(on)g(\014gure)f(3.)-35 +3796 y(As)20 b(it)h(can)f(b)r(e)g(seen,)i(for)f(the)f(Othello)h +(program,)h(w)n(e)e(obtained)h(a)-150 3879 y(relativ)n(e)k(sp)r(eedup)e +(of)i(20.7)g(for)g(depth)e(11)i(trees.)35 b(F)-6 b(or)24 +b(on)g(the)g(c)n(hess)-150 3962 y(program)f(at)h(depth)e(8)i(trees,)g +(w)n(e)g(obtained)f(a)h(sp)r(eedup)f(of)h(18.4)g(us-)-150 +4045 y(ing)c Fw(\013\014)k Fx(and)19 b(14.3)j(using)e(Negascout)926 +4013 y Fv(6)981 4045 y Fx(\(In)e(our)i(c)n(hess)g(program,)h(the)-150 +4128 y(sequen)n(tial)j(Negascout)h(v)n(ersion)g(is)f(1.5)h(times)f +(faster)h(than)f(the)g Fw(\013\014)-150 4211 y Fx(v)n(ersion\).)43 +b(These)29 b(sp)r(eedups)g(are)g(relativ)n(e)g(to)g(the)f(same)g +(program)-150 4294 y(used)22 b(on)g(a)h(one)f(pro)r(cessor)i(computer)d +(\(with)h(the)g(same)g(n)n(um)n(b)r(er)e(of)-150 4377 +y(en)n(tries)30 b(in)g(the)g(transp)r(osition)h(table\),)h(so)f(as)f +(YBW)n(C)g(requires)h(a)-150 4460 y(non-recursiv)n(e)e(minimax)f(searc) +n(h,)874 4428 y Fv(7)940 4460 y Fx(these)h(sp)r(eedups)g(are)h(relativ) +n(e)-150 4543 y(to)e(a)g(non-recursiv)n(e)f Fw(\013\014)32 +b Fx(searc)n(h)c(\(or)g(a)g(non-recursiv)n(e)f(Negascout)p +-150 4600 801 4 v -65 4654 a Fv(5)-31 4679 y Fr(F)-5 +b(renc)n(hess)39 b(running)g(ABD)n(AD)n(A)i(on)g(a)f(128)h(pro)r +(cessors)f(Cra)n(y)i(T3D)-150 4743 y(\014nished)36 b(fourth)h(at)h(the) +e(8th)i(W)-5 b(orld)37 b(Computer-Chess)g(Championship.)-150 +4807 y(The)27 b(v)n(ersion)f(used)g(for)h(this)f(article)g(includes)f +(less)h(searc)n(h)h(and)f(ev)l(aluation)-150 4871 y(heuristics.)-65 +4922 y Fv(6)-31 4947 y Fr(Of)18 b(course,)f(Negascout's)h(relativ)n(e)e +(sp)r(eedup)g(is)i(less)g(than)f Fi(\013\014)s Fr('s)h(since)f(the)-150 +5011 y(relativ)n(e)23 b(tree)f(searc)n(hing)h(ine\016ciency)e(of)j +Fi(\013\014)j Fr(pro)n(vides)c(a)h(greater)e(p)r(oten)n(tial)-150 +5075 y(for)g(impro)n(v)n(emen)n(t)e(b)n(y)i(a)h(parallel)e(sc)n(heme.) +-65 5126 y Fv(7)-31 5151 y Fr(It)32 b(is)f(di\016cult)g(to)g(implemen)n +(t)e(YBW)n(C)j(on)g(a)f(recursiv)n(e)f(searc)n(h)h(since)-150 +5215 y(when)19 b(a)h(pro)r(cessor)f(receiv)n(es)f(an)i(ev)l +(aluation-answ)n(er)f(from)g(one)g(of)h(its)g(sla)n(v)n(es,)-150 +5279 y(it)c(m)n(ust)f(b)r(e)g(able)g(to)h(pro)r(duce)d(a)j(jump)f(in)g +(the)g(searc)n(h)g(depth)f(if)h(this)h(ev)l(aluation)-150 +5343 y(pro)r(duces)22 b(a)i(pruning)e(of)h(the)g(curren)n(t)f(master)h +(no)r(de.)32 b(So)24 b(the)e(v)l(alues)i Fi(\013)g Fr(and)-150 +5407 y Fi(\014)32 b Fr(m)n(ust)c(at)i(least)e(b)r(e)g(k)n(ept)h(in)f +(arra)n(ys)i(indexed)d(b)n(y)h(no)r(des)h(depths)e(\(in)i(the)-150 +5471 y("normal")e(v)n(ersion)h(of)f Fi(\013\014)k Fr(searc)n(h,)d(they) +f(are)h(k)n(ept)f(on)g(stac)n(k\))h(and)g(sp)r(ecial)-150 +5535 y(arrangemen)n(ts)20 b(m)n(ust)i(b)r(e)f(made)g(in)g(order)g(to)h +(prev)n(en)n(t)f(the)g(disruptiv)n(e)f(use)h(of)-150 +5599 y(depth)g(that)h(can)g(b)r(e)f(caused)g(b)n(y)i(this)f(pruning.)28 +b(So)22 b(YBW)n(C)h(needs)f(a)g(h)n(ugely)-150 5662 y(mo)r(di\014ed)e +(searc)n(h)i(algorithm)f(compared)f(to)j(ABD)n(AD)n(A.)2049 +3037 y Fx(searc)n(h)j(when)g(applicable\)[7)q(,)g(23)q(].)2164 +3185 y(F)-6 b(or)19 b(b)r(oth)g(programs)g(the)f(main)h(o)n(v)n(erhead) +f(is)i(the)e(Searc)n(h)h(Ov)n(er-)2049 3268 y(head)39 +b(com)n(bined)g(with)g(a)h(relativ)n(ely)g(reduced)f(Comm)n(unication) +2049 3351 y(Ov)n(erhead)30 b(\(b)n(y)f(the)h(fact)i(of)f(our)g +(optimisations)g(see)g([23)r(]\))f(and)h(a)2049 3434 +y(greater)20 b(Sync)n(hronization)f(Ov)n(erhead)f(in)h(the)f(c)n(hess)i +(program)e(than)2049 3517 y(in)26 b(the)f(Othello)h(program.)2049 +3778 y Fy(3.3)100 b(ABD)m(AD)m(A)33 b(RESUL)-8 b(TS)2049 +3975 y Fx(The)22 b(ABD)n(AD)n(A)e(sc)n(heme)i(w)n(as)h(p)r(erformed)e +(on)h(the)g(same)g(p)r(ositions)2049 4058 y(for)k(b)r(oth)e(games)h(as) +h(YBW)n(C.)f(Figure)g(4)h(summarizes)e(the)g(results.)2164 +4206 y(Here)45 b(the)f(Sync)n(hronization)g(Ov)n(erheads)g(are)h +(non-existen)n(t)2049 4289 y(since)21 b(all)g(pro)r(cessors)h(are)f +(busy)-6 b(.)31 b(The)21 b(Comm)n(unication-Ov)n(erhead)2049 +4372 y(represen)n(ts)i(the)f(time)g(sp)r(en)n(t)g(w)n(aiting)i(for)f +(the)g(transp)r(osition)h(table)2049 4455 y(answ)n(ers)35 +b(\(i.e.)59 b(the)33 b(sim)n(ulation)h(of)g(the)g(shared)f(memory\).)57 +b(The)2049 4538 y(main)28 b(o)n(v)n(erhead)h(is)h(the)f(Searc)n(h-Ov)n +(erhead.)43 b(W)-6 b(e)29 b(m)n(ust)e(also)k(note)2049 +4621 y(that)e(this)g(time)g(the)g(reference)h(sequen)n(tial)g(programs) +f(use)g(recur-)2049 4704 y(siv)n(e)24 b(implemen)n(tations)f(of)h(b)r +(oth)g Fw(\013\014)k Fx(and)23 b(Negascout)i(algorithms.)2049 +4787 y(Th)n(us)33 b(the)f(sp)r(eedup)g(for)i(Othello)f(using)g +Fw(\013\014)k Fx(searc)n(h)d(is)f(an)g(abso-)2049 4870 +y(lute)24 b(sp)r(eedup)f(lik)n(e)i(the)e(sp)r(eedup)h(for)g(Chess)h +(using)g(Negascout.)34 b(It)2049 4953 y(should)29 b(also)i(b)r(e)e +(noted)f(that)h(the)g(ABD)n(AD)n(A)e(sp)r(eedup)i(for)h(small)2049 +5036 y(depths)25 b(is)h(in)n(trinsically)h(m)n(uc)n(h)d(b)r(etter)h +(than)g(for)i(YBW)n(C.)2164 5183 y(W)-6 b(e)27 b(also)j(measured)c(the) +i(n)n(um)n(b)r(er)d(of)k(messages)f(used)g(to)g(read)2049 +5266 y(and)35 b(write)g(the)g(transp)r(osition)h(table.)63 +b(The)35 b(ratio)g(b)r(et)n(w)n(een)g(the)2049 5349 y(n)n(um)n(b)r(er)e +(of)j(reads)g(and)e(writes)i(tells)g(us)f(that)g(ABD)n(AD)n(A)e(is)j +(far)2049 5432 y(from)29 b(doubling)g(the)g(n)n(um)n(b)r(er)e(of)j +(read)g(messages.)46 b(F)-6 b(or)29 b(the)g(c)n(hess)2049 +5515 y(program,)k(on)e(the)g(Bratk)n(o-Kop)r(ec)h(p)r(ositions,)3485 +5483 y Fv(8)3552 5515 y Fx(YBW)n(C's)g(read-)p 2049 5584 +V 2134 5637 a Fv(8)2168 5662 y Fr(The)24 b(c)n(hoice)f(of)h(the)g +(Bratk)n(o-Kop)r(ec)g(p)r(ositions)g(ma)n(y)g(b)r(e)g(criticised,)f +(but)p eop +%%Page: 5 5 +5 4 bop 37 970 a @beginspecial 50 @llx 50 @lly 302 @urx +226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph5.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +LTb +840 655 M +63 0 V +3905 0 R +-63 0 V +756 655 M +(5) Rshow +840 1035 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(10) Rshow +840 1415 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(15) Rshow +840 1795 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 2176 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(25) Rshow +840 2556 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2936 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(35) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Relative Speedup) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Othello : ABDADA) Cshow +LT0 +4325 3113 M +(ideal) Rshow +4409 3113 M +252 0 V +1552 883 M +814 608 V +814 609 V +814 608 V +4493 3113 D +1552 883 D +2366 1491 D +3180 2100 D +3994 2708 D +LT1 +4325 2973 M +(11) Rshow +4409 2973 M +252 0 V +3994 1313 M +-814 -76 V +2366 1091 L +1552 803 L +4493 2973 A +3994 1313 A +3180 1237 A +2366 1091 A +1552 803 A +LT2 +4325 2833 M +(10) Rshow +4409 2833 M +252 0 V +3994 1174 M +-814 -11 V +2366 1023 L +1552 795 L +4493 2833 B +3994 1174 B +3180 1163 B +2366 1023 B +1552 795 B +LT3 +4325 2693 M +(9) Rshow +4409 2693 M +252 0 V +3994 1172 M +-814 -15 V +2366 1027 L +1552 796 L +4493 2693 C +3994 1172 C +3180 1157 C +2366 1027 C +1552 796 C +LT4 +4325 2553 M +(8) Rshow +4409 2553 M +252 0 V +3994 1006 M +3180 987 L +2366 933 L +1552 746 L +4493 2553 T +3994 1006 T +3180 987 T +2366 933 T +1552 746 T +LT5 +4325 2413 M +(7) Rshow +4409 2413 M +252 0 V +3994 890 M +3180 867 L +2366 831 L +1552 707 L +4493 2413 S +3994 890 S +3180 867 S +2366 831 S +1552 707 S +LT6 +4325 2273 M +(6) Rshow +4409 2273 M +252 0 V +3994 750 M +3180 717 L +-814 -3 V +1552 622 L +4493 2273 D +3994 750 D +3180 717 D +2366 714 D +1552 622 D +LT7 +4325 2133 M +(5) Rshow +4409 2133 M +252 0 V +3994 657 M +3180 625 L +-814 -3 V +1552 559 L +4493 2133 A +3994 657 A +3180 625 A +2366 622 A +1552 559 A +LT8 +4325 1993 M +(4) Rshow +4409 1993 M +252 0 V +3994 599 M +3180 550 L +-814 -3 V +1552 490 L +4493 1993 B +3994 599 B +3180 550 B +2366 547 B +1552 490 B +LT0 +4325 1853 M +(3) Rshow +4409 1853 M +252 0 V +3994 501 M +-814 -1 V +-814 -1 V +-814 -1 V +4493 1853 C +3994 501 C +3180 500 C +2366 499 C +1552 498 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1275 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph23.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +LTb +840 655 M +63 0 V +3905 0 R +-63 0 V +756 655 M +(5) Rshow +840 1035 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(10) Rshow +840 1415 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(15) Rshow +840 1795 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 2176 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(25) Rshow +840 2556 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2936 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(35) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Relative Speedup) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : ABDADA) Cshow +LT0 +4325 3113 M +(ideal) Rshow +4409 3113 M +252 0 V +1552 883 M +814 608 V +814 609 V +814 608 V +4493 3113 D +1552 883 D +2366 1491 D +3180 2100 D +3994 2708 D +LT1 +4325 2973 M +(8) Rshow +4409 2973 M +252 0 V +1552 763 M +814 394 V +814 297 V +814 217 V +4493 2973 A +1552 763 A +2366 1157 A +3180 1454 A +3994 1671 A +LT2 +4325 2833 M +(7) Rshow +4409 2833 M +252 0 V +1552 720 M +814 339 V +814 201 V +814 194 V +4493 2833 B +1552 720 B +2366 1059 B +3180 1260 B +3994 1454 B +LT3 +4325 2693 M +(6) Rshow +4409 2693 M +252 0 V +1552 673 M +814 353 V +814 180 V +814 170 V +4493 2693 C +1552 673 C +2366 1026 C +3180 1206 C +3994 1376 C +LT4 +4325 2553 M +(5) Rshow +4409 2553 M +252 0 V +1552 724 M +814 169 V +814 92 V +814 124 V +4493 2553 T +1552 724 T +2366 893 T +3180 985 T +3994 1109 T +LT5 +4325 2413 M +(4) Rshow +4409 2413 M +252 0 V +1552 723 M +814 172 V +814 113 V +814 35 V +4493 2413 S +1552 723 S +2366 895 S +3180 1008 S +3994 1043 S +LT6 +4325 2273 M +(3) Rshow +4409 2273 M +252 0 V +1552 769 M +814 0 V +814 0 V +814 0 V +4493 2273 D +1552 769 D +2366 769 D +3180 769 D +3994 769 D +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1276 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph27.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +LTb +840 655 M +63 0 V +3905 0 R +-63 0 V +756 655 M +(5) Rshow +840 1035 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(10) Rshow +840 1415 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(15) Rshow +840 1795 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 2176 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(25) Rshow +840 2556 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 2936 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(35) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Relative Speedup) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : Negascout ABDADA) Cshow +LT0 +4325 3113 M +(ideal) Rshow +4409 3113 M +252 0 V +1552 883 M +814 608 V +814 609 V +814 608 V +4493 3113 D +1552 883 D +2366 1491 D +3180 2100 D +3994 2708 D +LT1 +4325 2973 M +(8) Rshow +4409 2973 M +252 0 V +1552 724 M +814 310 V +814 237 V +814 199 V +4493 2973 A +1552 724 A +2366 1034 A +3180 1271 A +3994 1470 A +LT2 +4325 2833 M +(7) Rshow +4409 2833 M +252 0 V +1552 683 M +814 228 V +814 163 V +814 164 V +4493 2833 B +1552 683 B +2366 911 B +3180 1074 B +3994 1238 B +LT3 +4325 2693 M +(6) Rshow +4409 2693 M +252 0 V +1552 619 M +814 187 V +814 141 V +814 86 V +4493 2693 C +1552 619 C +2366 806 C +3180 947 C +3994 1033 C +LT4 +4325 2553 M +(5) Rshow +4409 2553 M +252 0 V +1552 654 M +814 57 V +814 92 V +814 0 V +4493 2553 T +1552 654 T +2366 711 T +3180 803 T +3994 803 T +LT5 +4325 2413 M +(4) Rshow +4409 2413 M +252 0 V +1552 686 M +814 -26 V +814 89 V +814 19 V +4493 2413 S +1552 686 S +2366 660 S +3180 749 S +3994 768 S +LT6 +4325 2273 M +(3) Rshow +4409 2273 M +252 0 V +1552 655 M +814 0 V +814 0 V +814 0 V +4493 2273 D +1552 655 D +2366 655 D +3180 655 D +3994 655 D +stroke +grestore +end +showpage +%%EndDocument + @endspecial 37 1948 a @beginspecial 50 @llx 50 @lly +302 @urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph6.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +3968 0 V +LTb +840 351 M +63 0 V +3905 0 R +-63 0 V +756 351 M +(0) Rshow +840 775 M +63 0 V +3905 0 R +-63 0 V +756 775 M +(20) Rshow +840 1198 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +840 1622 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(60) Rshow +840 2045 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(80) Rshow +840 2469 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(100) Rshow +840 2892 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(120) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(140) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Overheads) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Othello : ABDADA) Cshow +LT0 +4325 3113 M +( TO) Rshow +4409 3113 M +252 0 V +-667 80 R +3180 2249 L +2366 1391 L +1552 672 L +4493 3113 D +3994 3193 D +3180 2249 D +2366 1391 D +1552 672 D +LT1 +4325 2973 M +( SO) Rshow +4409 2973 M +252 0 V +3994 2271 M +3180 1619 L +2366 1016 L +1552 460 L +4493 2973 A +3994 2271 A +3180 1619 A +2366 1016 A +1552 460 A +LT2 +4325 2833 M +( CO) Rshow +4409 2833 M +252 0 V +3994 1273 M +3180 981 L +2366 726 L +1552 563 L +4493 2833 B +3994 1273 B +3180 981 B +2366 726 B +1552 563 B +LT3 +4325 2693 M +( SY) Rshow +4409 2693 M +252 0 V +3994 351 M +-814 0 V +-814 0 V +-814 0 V +4493 2693 C +3994 351 C +3180 351 C +2366 351 C +1552 351 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1275 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph24.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +3968 0 V +LTb +840 351 M +63 0 V +3905 0 R +-63 0 V +756 351 M +(0) Rshow +840 722 M +63 0 V +3905 0 R +-63 0 V +756 722 M +(10) Rshow +840 1092 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(20) Rshow +840 1463 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(30) Rshow +840 1834 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +840 2204 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(50) Rshow +840 2575 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(60) Rshow +840 2945 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(70) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(80) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Overheads) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : ABDADA) Cshow +LT0 +4325 3113 M +(TO) Rshow +4409 3113 M +252 0 V +1552 1263 M +814 496 V +814 622 V +814 725 V +4493 3113 D +1552 1263 D +2366 1759 D +3180 2381 D +3994 3106 D +LT1 +4325 2973 M +(SO) Rshow +4409 2973 M +252 0 V +1552 971 M +814 439 V +814 558 V +814 688 V +4493 2973 A +1552 971 A +2366 1410 A +3180 1968 A +3994 2656 A +LT2 +4325 2833 M +(CO) Rshow +4409 2833 M +252 0 V +1552 643 M +814 57 V +814 64 V +814 37 V +4493 2833 B +1552 643 B +2366 700 B +3180 764 B +3994 801 B +LT3 +4325 2693 M +(SY) Rshow +4409 2693 M +252 0 V +1552 351 M +814 0 V +814 0 V +814 0 V +4493 2693 C +1552 351 C +2366 351 C +3180 351 C +3994 351 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1276 w @beginspecial 50 @llx 50 @lly 302 +@urx 226 @ury 1530 @rwi @setspecial +%%BeginDocument: tgraph28.eps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.050 0.050 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +3968 0 V +LTb +840 351 M +63 0 V +3905 0 R +-63 0 V +756 351 M +(0) Rshow +840 845 M +63 0 V +3905 0 R +-63 0 V +756 845 M +(20) Rshow +840 1339 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(40) Rshow +840 1833 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(60) Rshow +840 2328 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(80) Rshow +840 2822 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(100) Rshow +840 3316 M +63 0 V +3905 0 R +-63 0 V +-3989 0 R +(120) Rshow +1247 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(5) Cshow +1756 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(10) Cshow +2264 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(15) Cshow +2773 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(20) Cshow +3282 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(25) Cshow +3791 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(30) Cshow +4299 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(35) Cshow +4808 351 M +0 63 V +0 2902 R +0 -63 V +0 -3042 R +(40) Cshow +840 351 M +3968 0 V +0 2965 V +-3968 0 V +840 351 L +140 1833 M +currentpoint gsave translate 90 rotate 0 0 M +(Overheads) Cshow +grestore +2824 71 M +(Number of processors) Cshow +2824 3456 M +(Chess : Negascout ABDADA) Cshow +LT0 +4325 3113 M +(TO) Rshow +4409 3113 M +252 0 V +1552 1231 M +814 607 V +814 568 V +814 503 V +4493 3113 D +1552 1231 D +2366 1838 D +3180 2406 D +3994 2909 D +LT1 +4325 2973 M +(SO) Rshow +4409 2973 M +252 0 V +1552 926 M +814 554 V +814 501 V +814 415 V +4493 2973 A +1552 926 A +2366 1480 A +3180 1981 A +3994 2396 A +LT2 +4325 2833 M +(CO) Rshow +4409 2833 M +252 0 V +1552 656 M +814 53 V +814 67 V +814 87 V +4493 2833 B +1552 656 B +2366 709 B +3180 776 B +3994 863 B +LT3 +4325 2693 M +(SY) Rshow +4409 2693 M +252 0 V +1552 351 M +814 0 V +814 0 V +814 0 V +4493 2693 C +1552 351 C +2366 351 C +3180 351 C +3994 351 C +stroke +grestore +end +showpage +%%EndDocument + @endspecial 1279 2193 a Fx(Figure)27 b(4:)34 b(The)26 +b(ABD)n(AD)n(A)e(sc)n(heme)h(results)-150 2456 y(write)34 +b(ratio)g(is)g(1.35)g(and)f(ABD)n(AD)n(A's)f(read-write)i(ratio)g(is)g +(1.7.)-150 2539 y(Th)n(us)e(the)f(o)n(v)n(erhead)h(of)g(the)g +(non-optimised,)1246 2508 y Fv(9)1313 2539 y Fx(v)n(ersion)g(giv)n(en)g +(in)-150 2622 y(part)23 b(2)g(in)g(term)g(of)g(n)n(um)n(b)r(er)f(of)h +(read)h(messages,)h(is)e(ab)r(out)g(25)h(\045)f(as)-150 +2705 y(compared)i(to)h(YBW)n(C.)-150 2966 y Fy(4)100 +b(DISCUSSION)-150 3188 y Fx(It)40 b(is)i(di\016cult)e(to)h(compare)g +(the)f(sho)n(wn)h(results)h(with)f(the)f(re-)-150 3271 +y(sults)27 b(from)f(di\013eren)n(t)g(pap)r(ers.)38 b(So)26 +b(w)n(e)h(ha)n(v)n(e)f(to)h(compare)f(the)h(t)n(w)n(o)-150 +3354 y(sc)n(hemes)e(on)h(absolute)g(sp)r(eedup.)-150 +4376 y @beginspecial 65 @llx 328 @lly 528 @urx 582 @ury +1984 @rwi @setspecial +%%BeginDocument: othello.eps + +/AutoFlatness false def +% -------------- POSTSCRIPT PROLOG FOR CORELDRAW 3.X ------ +% Copyright 1992 Corel Corporation. All rights reserved. +/wCorelDict 300 dict def wCorelDict begin/bd{bind def}bind def +/ld{load def}bd/xd{exch def}bd/_ null def +/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def +/$n _ def/$o 0 def/$fil 0 def/$bkg false def +/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def +/$N _ def/$O 0 def/$PF false def/$ctm matrix currentmatrix def +/$ptm matrix def/$ttm matrix def/$stm matrix def +/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def +currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd +/$dsf xd/$sdf false def/$SDF false def/$Scra 0.0 def +/$sv 0 def/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld +/@np/newpath ld/@sv{/$sv save def}bd/@rs{$sv restore}bd +/@ss{exch $Scra add exch load setscreen}bd +AutoFlatness{/$cpx ([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n) def +/@err1{$cpx print flush newpath}bd/@ifl{dup currentflat exch sub 10 gt +{@err1 exit}{currentflat 2 add setflat}ifelse}bd +/@fill/fill ld/fill{currentflat{{@fill}stopped{@ifl}{exit}ifelse +}bind loop setflat}bd/@eofill/eofill ld/eofill{currentflat{{@eofill} +stopped{@ifl}{exit}ifelse}bind loop setflat}bd +/@clip/clip ld/clip{currentflat{{@clip}stopped{initclip @ifl}{exit +}ifelse}bind loop setflat}bd/@eoclip/eoclip ld +/eoclip{currentflat{{@eoclip}stopped{initclip @ifl}{exit}ifelse +}bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke} +stopped{@ifl}{exit}ifelse}bind loop setflat}bd}if +/InRange{3 -1 roll 2 copy le{pop}{exch pop}ifelse +2 copy ge{pop}{exch pop}ifelse}bd/wDstChck{2 1 roll dup 3 -1 roll +eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub 2 div}bd +/@lin{exch pop abs 1 exch sub}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd +/setcmykcolor where{pop}{/setcmykcolor{4 1 roll +3{3 index add 1 @MN 1 exch sub 3 1 roll}repeat +setrgbcolor pop}bd}ifelse/setoverprint{/$op xd}bd +/currentoverprint{$op}bd/setsepcolor{1 exch sub setgray}bd +/checksepcolor{1 exch sub dup setgray 1 eq exch 1 eq and not}bd +/setprocesscolor{ColorSeparationMode 0 eq{setcmykcolor}{ +0 4 $ink sub index exch pop 5 1 roll 4{pop}repeat +setsepcolor}ifelse}bd/findcmykcustomcolor{5 array astore}bd +/setcustomcolor where{pop}{/setcustomcolor{ColorSeparationMode 0 eq{ +exch aload pop pop 4{4 index mul 4 1 roll}repeat +5 -1 roll pop setcmykcolor}{exch aload pop +CurrentInkName eq{4 index}{0}ifelse 6 1 roll +5{pop}repeat setsepcolor}ifelse}bd}ifelse/colorimage where{pop}{ +/colorimage{pop pop pop pop pop{currentfile $dat readhexstring pop pop} +repeat pop}bd}ifelse/@tc{dup 1 ge{pop}{4{dup +6 -1 roll mul exch}repeat pop}ifelse}bd/@scc{1 eq setoverprint +dup _ eq{pop setprocesscolor pop}{findcmykcustomcolor +exch setcustomcolor}ifelse ColorSeparationMode 0 eq{true}{ +currentgray 1 eq currentoverprint and not}ifelse}bd +/@sft{/$tx $tllx $pxf add dup $tllx gt{$pwid sub}if def +/$ty $tury $pyf sub dup $tury lt{$phei add}if def}bd +/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd +/@ep{{cvx exec}forall}bd/@tp{@sv/$in true def +2 copy dup $lly le{/$in false def}if $phei sub $ury ge{/$in false def}if +dup $urx ge{/$in false def}if $pwid add $llx le{/$in false def}if +$in{@np 2 copy moveto $pwid 0 rlineto 0 $phei neg rlineto +$pwid neg 0 rlineto 0 $phei rlineto clip @np +$pn cvlit load aload pop 7 -1 roll 5 index sub +7 -1 roll 3 index sub translate/$ctm matrix currentmatrix def +@ep pop pop pop pop}{pop pop}ifelse @rs}bd/@th{@sft +0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}ifelse +}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul +3 copy 3 -1 roll add exch @tp pop}for pop pop}for}bd +/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul $tx add +exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop +0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for +pop pop}for}bd/@pf{@gs $ctm setmatrix $pm concat +@stb @gs $vectpat{1 0 0 0 0 _ $o @scc{eofill}if}{ +$t $c $m $y $k $n $o @scc{eofill/$bkg true def}if}ifelse +@gr eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd +Bbllx Bblly $pm itransform/$tlly xd/$tllx xd +/$wid $turx $tllx sub def/$hei $tury $tlly sub def +$wid 0 gt $hei 0 gt and{$pn cvlit load aload pop +/$pd xd 3 -1 roll sub/$phei xd exch sub/$pwid xd +/$tlx $wid $pwid div ceiling 1 add def/$tly $hei $phei div ceiling 1 add def +$psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd +/@dlt{ColorSeparationMode 0 eq{/$dc $toc $tot mul $frc $frt mul dup/$c xd sub $fst 1 sub div def +/$dm $tom $tot mul $frm $frt mul dup/$m xd sub $fst 1 sub div def +/$dy $toy $tot mul $fry $frt mul dup/$y xd sub $fst 1 sub div def +/$dk $tok $tot mul $frk $frt mul dup/$k xd sub $fst 1 sub div def +true}{$frt $frc $frm $fry $frk $frn $o @scc +dup{/$frk 1 currentgray sub def}{/$frk 0 def}ifelse +$tot $toc $tom $toy $tok $ton $o @scc dup{/$tok 1 currentgray sub def}{ +/$tok 0 def}ifelse or dup{/$c 0 def/$m 0 def/$y 0 def/$k $frk def +/$dc 0 def/$dm 0 def/$dy 0 def/$dk $tok $frk sub $fst 1 sub div def}if +}ifelse}bd/@ftl{1 index 4 index sub dup $pad mul dup/$pdw xd +2 mul sub $fst div/$wid xd 2 index sub/$hei xd +pop translate $c $m $y $k 4 copy ColorSeparationMode 0 ne +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse +0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill +$pdw 0 translate $fst{4 copy ColorSeparationMode 0 ne +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse +0 0 moveto 0 $hei lineto $wid $hei lineto $wid 0 lineto 0 0 lineto fill +$wid 0 translate $dk add 4 1 roll $dy add 4 1 roll +$dm add 4 1 roll $dc add 4 1 roll}repeat $dk sub 4 1 roll +$dy sub 4 1 roll $dm sub 4 1 roll $dc sub 4 1 roll +ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} +{setcmykcolor}ifelse 0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill +}bd/@ftr{1 index 4 index sub dup $rox mul/$row xd +2 div 1 index 4 index sub dup $roy mul/$roh xd +2 div 2 copy dup mul exch dup mul add sqrt +$row dup mul $roh dup mul add sqrt add dup/$hei xd $fst div/$wid xd +4 index add $roh add exch 5 index add $row add +exch translate pop pop pop pop currentflat dup 5 mul setflat +$c $m $y $k 4 copy ColorSeparationMode 0 ne +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse +$wid 0 moveto 0 0 $hei 0 360 arc fill 1.0 $pad 2 mul sub dup scale +$fst{4 copy ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} +{setcmykcolor}ifelse $wid 0 moveto 0 0 $hei 0 360 arc fill +/$hei $hei $wid sub def $dk add 4 1 roll $dy add 4 1 roll +$dm add 4 1 roll $dc add 4 1 roll}repeat pop pop pop pop +setflat}bd/@ff{@gs @dlt{$ctm setmatrix eoclip +newpath Bbllx Bblly moveto Bbllx Bbury lineto +Bburx Bbury lineto Bburx Bblly lineto $fan rotate +pathbbox newpath $fty 1 eq{@ftr}{@ftl}ifelse}if +@gr @np}bd/@Pf{@sv ColorSeparationMode 0 eq $ink 3 eq or{0 J 0 j [] 0 d +$t $c $m $y $k $n $o @scc pop $ctm setmatrix +72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform +ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform +floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop +$Psn load exec}{1 setgray eofill}ifelse @rs +@np}bd/g{1 exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def +}bd/G{1 exch sub/$K xd/$C 0 def/$M 0 def/$Y 0 def/$T 1 def/$N _ def}bd +/k{/$k xd/$y xd/$m xd/$c xd/$t 1 def/$n _ def/$fil 0 def}bd +/K{/$K xd/$Y xd/$M xd/$C xd/$T 1 def/$N _ def}bd +/x{/$t xd/$n xd/$k xd/$y xd/$m xd/$c xd/$fil 0 def}bd +/X{/$T xd/$N xd/$K xd/$Y xd/$M xd/$C xd}bd +/d/setdash ld/i{dup 0 ne{setflat}{pop}ifelse}bd +/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit ld +/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd +/c/curveto ld/C/c ld/v{4 -2 roll 2 copy 6 -2 roll curveto}bd +/V/v ld/y{2 copy curveto}bd/Y/y ld/l/lineto ld +/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld +/N/newpath ld/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if +$fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc +{eofill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if +setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix +$ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc{ +matrix currentmatrix $ptm concat stroke setmatrix}{@np}ifelse +$SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp +S}bd/B{@gs F @gr S}bd/b{@cp B}bd/W{eoclip}bd +/p{/$pm xd 7{pop}repeat/$pyf xd/$pxf xd/$pn xd +/$fil 1 def}bd/P{11{pop}repeat}bd/u{}bd/U{}bd +/A{pop}bd/q/@gs ld/Q/@gr ld/E{5 array astore +exch cvlit exch def}bd/`{}bd/~{}bd/@{}bd/&{}bd +/CorelDrawReencodeVect [ 16#80/grave/circumflex/tilde/dotlessi/florin/quotedblleft/quotedblright/guilsinglleft +16#88/guilsinglright/fi/fl/dagger/daggerdbl/endash/periodcentered/breve +16#90/quotedblbase/ellipsis/perthousand/trademark/Pt/fractionbar +16#98/divide 16#a1/exclamdown/cent/sterling/currency/yen/bar/section +16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/emdash/registered/overbar +16#b0/ring/plusminus/twosuperior/threesuperior/acute/mu/paragraph/bullet +16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown +16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE +16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe +16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis +] def/@cc{currentfile $dat readhexstring pop}bd +/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd +/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def +1 eq/$vectpat xd/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd +/$pn xd}bd/@P{/$fil 3 def/$Psn xd array astore +/$Prm xd}bd/@k{/$fil 2 def/$roy xd/$rox xd/$pad xd +/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$tok xd/$toy xd/$tom xd/$toc xd +/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def/$ton _ def/$tot 1 def +}bd/@x{/$fil 2 def/$roy xd/$rox xd/$pad xd +/$fty xd/$fan xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd/$toc xd +/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd}bd +/@ii{concat 3 index 3 index m 3 index 1 index l +2 copy l 1 index 3 index l 3 index 3 index l +clip pop pop pop pop}bd/@i{@sm @gs @ii 6 index 1 ne{/$frg true def +pop pop}{1 eq{$T $C $M $Y $K $N $O @scc/$frg xd}{/$frg false def +}ifelse 1 eq{@gs $ctm setmatrix $t $c $m $y $k $n $o @scc{eofill}if +@gr}if}ifelse/$frg $frg $bkg or def @np/$ury xd/$urx xd/$lly xd/$llx xd +/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string def +$frg{$SDF{$SCF $SCA $SCP @ss}if $llx $lly translate +$urx $llx sub $ury $lly sub scale $wid $hei abs +$bts 1 eq{false}{$bts}ifelse [ $wid 0 0 $hei neg 0 +$hei 0 gt{$hei}{0}ifelse]/@cc load $bts 1 eq{imagemask}{image}ifelse +$SDF{$dsf $dsa $dsp @ss}if}{$hei abs{@cc pop}repeat}ifelse +@gr $ctm setmatrix}def/@M{@sv}bd/@N{/@cc{}def +1 eq{12 -1 roll neg 12 1 roll @I}{13 -1 roll neg 13 1 roll +@i}ifelse @rs}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd +/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi string def +$llx $lly translate $urx $llx sub $ury $lly sub scale +$wid $hei abs $bts [ $wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse] +/@cc load false $ncl colorimage @gr $ctm setmatrix}bd +/z{exch findfont exch scalefont setfont}bd +/ZB{9 dict dup begin 4 1 roll/FontType 3 def +/FontMatrix xd/FontBBox xd/Encoding 256 array def +0 1 255{Encoding exch/.notdef put}for/CharStrings 256 dict def +CharStrings/.notdef{}put/Metrics 256 dict def +Metrics/.notdef 3 -1 roll put/BuildChar{exch +dup/$char exch/Encoding get 3 index get def +dup/Metrics get $char get aload pop setcachedevice +begin Encoding exch get CharStrings exch get +end exec}def end definefont pop}bd/ZBAddChar{findfont begin +dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put +CharStrings 3 1 roll put Metrics 3 1 roll put +end}bd/Z{findfont dup maxlength 2 add dict exch +dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall +pop dup dup/Encoding get 256 array copy dup/$fe xd +/Encoding exch put dup/Fontname 3 index put +3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch pop}{ +$fe exch 2 index exch put 1 add}ifelse}forall +pop}if dup 256 dict dup/$met xd/Metrics exch put +dup/FontMatrix get 0 get 1000 mul 1 exch div +3 index length 256 eq{0 1 255{dup $fe exch get +dup/.notdef eq{pop pop}{5 index 3 -1 roll get +2 index mul $met 3 1 roll put}ifelse}for}if +pop definefont pop pop}bd/@ftx{{(0) dup 3 -1 roll 0 exch put +@gs true charpath $ctm setmatrix @@txt @gr @np}forall}bd +/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if +$fil 1 eq{/@@txt/@pf ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq +{/@@txt/@Pf ld @ftx}{$t $c $m $y $k $n $o @scc{show}{pop}ifelse}ifelse +}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}bd +/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if +$T $C $M $Y $K $N $O @scc{{(0) dup 3 -1 roll 0 exch put +@gs true charpath $ctm setmatrix $ptm concat +stroke @gr}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if +setmatrix}bd/@te{@ft}bd/@tr{@st}bd/@ta{dup +@gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd +/@tm{/$textsave save def @sm concat}bd/e{/t{@te}def}bd +/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}def}bd +/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix +/$ttm matrix def $textsave restore}bd/@t{/$stm $stm currentmatrix def +3 1 roll moveto $ttm concat t $stm setmatrix}def +/@n{/$ttm exch matrix rotate def}bd/@s{}bd +/@l{}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@w{matrix rotate/$ptm xd +matrix scale $ptm dup concatmatrix/$ptm xd +1 eq{$ptm exch dup concatmatrix/$ptm xd}if +1 w}bd/@g{1 eq dup/$sdf xd{/$scp xd/$sca xd +/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd +/$SCA xd/$SCF xd}if}bd/@D{3 copy @ss/$dsp xd +/$dsa xd/$dsf xd}bd/@j{@sv @np}bind def/@J{@rs}bind def +/@sep{/ColorSeparationMode where{pop}{/ColorSeparationMode 0 def +/CurrentInkName (Composite) def}ifelse ColorSeparationMode 0 eq{ +/CurrentInkName (Composite) def}if/CurrentInkName where{pop}{ +/CurrentInkName (Composite) def}ifelse CurrentInkName (Composite) eq +{/$ink -1 def}{CurrentInkName (Cyan) eq{/$ink 0 def}{ +CurrentInkName (Magenta) eq{/$ink 1 def}{CurrentInkName (Yellow) eq +{/$ink 2 def}{CurrentInkName (Black) eq{/$ink 3 def}{/$ink 4 def +}ifelse}ifelse}ifelse}ifelse}ifelse}bd @sep +/@whi{@gs -72000 dup moveto -72000 72000 lineto +72000 dup lineto 72000 -72000 lineto closepath 1 setgray fill +@gr}bd/@neg{ [{1 exch sub}/exec cvx currenttransfer/exec cvx] cvx settransfer +@whi}bd/@reg{[] 0 d 0 setgray .3 setlinewidth +2 copy 5.4 0 360 arc closepath 2 copy moveto 9 0 rlineto +2 copy moveto -9 0 rlineto 2 copy moveto 0 9 rlineto +moveto 0 -9 rlineto stroke}bd/leftbracket{(\050)}def +/rightbracket{(\051)}def + +11.4737 setmiterlimit +1.00 setflat +/$fst 128 def + +@sv +/$ctm matrix currentmatrix def +@sv +95.47 404.78 448.70 405.07 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 404.93 m +448.70 404.93 L +S +95.47 426.46 448.70 426.74 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 426.60 m +448.70 426.60 L +S +95.47 448.13 448.70 448.42 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 448.27 m +448.70 448.27 L +S +95.47 469.80 448.70 470.09 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 469.94 m +448.70 469.94 L +S +95.47 491.54 448.70 491.83 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 491.69 m +448.70 491.69 L +S +95.47 513.22 448.70 513.50 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 513.36 m +448.70 513.36 L +S +95.47 534.89 448.70 535.18 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 535.03 m +448.70 535.03 L +S +95.47 556.63 448.70 556.92 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 556.78 m +448.70 556.78 L +S +95.47 578.30 448.70 578.59 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +95.47 578.45 m +448.70 578.45 L +S +96.62 383.26 101.23 404.64 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +96.62 404.64 m +101.23 404.64 L +101.23 383.26 L +96.62 383.26 L +96.62 404.64 L +@c +B +135.86 383.26 140.47 402.05 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +135.86 402.05 m +140.47 402.05 L +140.47 383.26 L +135.86 383.26 L +135.86 402.05 L +@c +B +175.10 383.26 179.71 407.88 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +175.10 407.88 m +179.71 407.88 L +179.71 383.26 L +175.10 383.26 L +175.10 407.88 L +@c +B +214.34 383.26 218.95 416.23 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +214.34 416.23 m +218.95 416.23 L +218.95 383.26 L +214.34 383.26 L +214.34 416.23 L +@c +B +253.66 383.26 258.26 433.51 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +253.66 433.51 m +258.26 433.51 L +258.26 383.26 L +253.66 383.26 L +253.66 433.51 L +@c +B +292.75 383.26 297.36 439.49 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +292.75 439.49 m +297.36 439.49 L +297.36 383.26 L +292.75 383.26 L +292.75 439.49 L +@c +B +332.06 383.26 336.67 449.14 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +332.06 449.14 m +336.67 449.14 L +336.67 383.26 L +332.06 383.26 L +332.06 449.14 L +@c +B +371.30 383.26 375.91 443.52 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +371.30 443.52 m +375.91 443.52 L +375.91 383.26 L +371.30 383.26 L +371.30 443.52 L +@c +B +410.54 383.26 415.15 443.59 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +410.54 443.59 m +415.15 443.59 L +415.15 383.26 L +410.54 383.26 L +410.54 443.59 L +@c +B +101.23 383.26 105.84 415.08 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +101.23 415.08 m +105.84 415.08 L +105.84 383.26 L +101.23 383.26 L +101.23 415.08 L +@c +B +140.47 383.26 145.01 414.00 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +140.47 414.00 m +145.01 414.00 L +145.01 383.26 L +140.47 383.26 L +140.47 414.00 L +@c +B +179.71 383.26 184.32 423.65 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +179.71 423.65 m +184.32 423.65 L +184.32 383.26 L +179.71 383.26 L +179.71 423.65 L +@c +B +218.95 383.26 223.56 432.72 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +218.95 432.72 m +223.56 432.72 L +223.56 383.26 L +218.95 383.26 L +218.95 432.72 L +@c +B +258.26 383.26 262.87 444.82 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +258.26 444.82 m +262.87 444.82 L +262.87 383.26 L +258.26 383.26 L +258.26 444.82 L +@c +B +297.36 383.26 301.97 450.43 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +297.36 450.43 m +301.97 450.43 L +301.97 383.26 L +297.36 383.26 L +297.36 450.43 L +@c +B +336.67 383.26 341.21 457.49 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +336.67 457.49 m +341.21 457.49 L +341.21 383.26 L +336.67 383.26 L +336.67 457.49 L +@c +B +375.91 383.26 380.52 457.34 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +375.91 457.34 m +380.52 457.34 L +380.52 383.26 L +375.91 383.26 L +375.91 457.34 L +@c +B +415.15 383.26 419.76 458.57 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +415.15 458.57 m +419.76 458.57 L +419.76 383.26 L +415.15 383.26 L +415.15 458.57 L +@c +B +105.84 383.26 110.45 398.74 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +105.84 398.74 m +110.45 398.74 L +110.45 383.26 L +105.84 383.26 L +105.84 398.74 L +@c +B +145.01 383.26 149.62 397.73 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +145.01 397.73 m +149.62 397.73 L +149.62 383.26 L +145.01 383.26 L +145.01 397.73 L +@c +B +184.32 383.26 188.93 403.42 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +184.32 403.42 m +188.93 403.42 L +188.93 383.26 L +184.32 383.26 L +184.32 403.42 L +@c +B +223.56 383.26 228.17 414.72 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +223.56 414.72 m +228.17 414.72 L +228.17 383.26 L +223.56 383.26 L +223.56 414.72 L +@c +B +262.87 383.26 267.41 440.57 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +262.87 440.57 m +267.41 440.57 L +267.41 383.26 L +262.87 383.26 L +262.87 440.57 L +@c +B +301.97 383.26 306.58 459.65 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +301.97 459.65 m +306.58 459.65 L +306.58 383.26 L +301.97 383.26 L +301.97 459.65 L +@c +B +341.21 383.26 345.82 486.36 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +341.21 486.36 m +345.82 486.36 L +345.82 383.26 L +341.21 383.26 L +341.21 486.36 L +@c +B +380.52 383.26 385.13 480.89 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +380.52 480.89 m +385.13 480.89 L +385.13 383.26 L +380.52 383.26 L +380.52 480.89 L +@c +B +419.76 383.26 424.37 487.01 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +419.76 487.01 m +424.37 487.01 L +424.37 383.26 L +419.76 383.26 L +419.76 487.01 L +@c +B +110.45 383.26 114.98 415.22 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +110.45 415.22 m +114.98 415.22 L +114.98 383.26 L +110.45 383.26 L +110.45 415.22 L +@c +B +149.62 383.26 154.22 417.96 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +149.62 417.96 m +154.22 417.96 L +154.22 383.26 L +149.62 383.26 L +149.62 417.96 L +@c +B +188.93 383.26 193.54 428.76 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +188.93 428.76 m +193.54 428.76 L +193.54 383.26 L +188.93 383.26 L +188.93 428.76 L +@c +B +228.17 383.26 232.78 445.90 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +228.17 445.90 m +232.78 445.90 L +232.78 383.26 L +228.17 383.26 L +228.17 445.90 L +@c +B +267.41 383.26 271.94 462.60 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +267.41 462.60 m +271.94 462.60 L +271.94 383.26 L +267.41 383.26 L +267.41 462.60 L +@c +B +306.58 383.26 311.18 476.93 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +306.58 476.93 m +311.18 476.93 L +311.18 383.26 L +306.58 383.26 L +306.58 476.93 L +@c +B +345.82 383.26 350.42 490.46 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +345.82 490.46 m +350.42 490.46 L +350.42 383.26 L +345.82 383.26 L +345.82 490.46 L +@c +B +385.13 383.26 389.66 489.89 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +385.13 489.89 m +389.66 489.89 L +389.66 383.26 L +385.13 383.26 L +385.13 489.89 L +@c +B +424.37 383.26 428.98 499.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +424.37 499.54 m +428.98 499.54 L +428.98 383.26 L +424.37 383.26 L +424.37 499.54 L +@c +B +114.98 383.26 119.59 395.28 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +114.98 395.28 m +119.59 395.28 L +119.59 383.26 L +114.98 383.26 L +114.98 395.28 L +@c +B +154.22 383.26 158.83 394.13 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +154.22 394.13 m +158.83 394.13 L +158.83 383.26 L +154.22 383.26 L +154.22 394.13 L +@c +B +193.54 383.26 198.07 399.10 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +193.54 399.10 m +198.07 399.10 L +198.07 383.26 L +193.54 383.26 L +193.54 399.10 L +@c +B +232.78 383.26 237.38 409.18 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +232.78 409.18 m +237.38 409.18 L +237.38 383.26 L +232.78 383.26 L +232.78 409.18 L +@c +B +271.94 383.26 276.55 435.02 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +271.94 435.02 m +276.55 435.02 L +276.55 383.26 L +271.94 383.26 L +271.94 435.02 L +@c +B +311.18 383.26 315.79 462.46 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +311.18 462.46 m +315.79 462.46 L +315.79 383.26 L +311.18 383.26 L +311.18 462.46 L +@c +B +350.42 383.26 355.03 508.03 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +350.42 508.03 m +355.03 508.03 L +355.03 383.26 L +350.42 383.26 L +350.42 508.03 L +@c +B +389.66 383.26 394.27 515.23 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +389.66 515.23 m +394.27 515.23 L +394.27 383.26 L +389.66 383.26 L +389.66 515.23 L +@c +B +428.98 383.26 433.58 525.53 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +428.98 525.53 m +433.58 525.53 L +433.58 383.26 L +428.98 383.26 L +428.98 525.53 L +@c +B +119.59 383.26 124.13 415.37 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +119.59 415.37 m +124.13 415.37 L +124.13 383.26 L +119.59 383.26 L +119.59 415.37 L +@c +B +158.83 383.26 163.44 418.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +158.83 418.54 m +163.44 418.54 L +163.44 383.26 L +158.83 383.26 L +158.83 418.54 L +@c +B +198.07 383.26 202.68 429.12 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +198.07 429.12 m +202.68 429.12 L +202.68 383.26 L +198.07 383.26 L +198.07 429.12 L +@c +B +237.38 383.26 241.99 445.25 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +237.38 445.25 m +241.99 445.25 L +241.99 383.26 L +237.38 383.26 L +237.38 445.25 L +@c +B +276.55 383.26 281.16 467.71 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +276.55 467.71 m +281.16 467.71 L +281.16 383.26 L +276.55 383.26 L +276.55 467.71 L +@c +B +315.79 383.26 320.33 484.78 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +315.79 484.78 m +320.33 484.78 L +320.33 383.26 L +315.79 383.26 L +315.79 484.78 L +@c +B +355.03 383.26 359.64 509.04 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +355.03 509.04 m +359.64 509.04 L +359.64 383.26 L +355.03 383.26 L +355.03 509.04 L +@c +B +394.27 383.26 398.88 509.90 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +394.27 509.90 m +398.88 509.90 L +398.88 383.26 L +394.27 383.26 L +394.27 509.90 L +@c +B +433.58 383.26 438.19 520.49 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +433.58 520.49 m +438.19 520.49 L +438.19 383.26 L +433.58 383.26 L +433.58 520.49 L +@c +B +124.13 383.26 128.74 393.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +124.13 393.48 m +128.74 393.48 L +128.74 383.26 L +124.13 383.26 L +124.13 393.48 L +@c +B +163.44 383.26 168.05 392.69 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +163.44 392.69 m +168.05 392.69 L +168.05 383.26 L +163.44 383.26 L +163.44 392.69 L +@c +B +202.68 383.26 207.29 396.65 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +202.68 396.65 m +207.29 396.65 L +207.29 383.26 L +202.68 383.26 L +202.68 396.65 L +@c +B +241.99 383.26 246.53 405.72 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +241.99 405.72 m +246.53 405.72 L +246.53 383.26 L +241.99 383.26 L +241.99 405.72 L +@c +B +281.16 383.26 285.77 430.13 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +281.16 430.13 m +285.77 430.13 L +285.77 383.26 L +281.16 383.26 L +281.16 430.13 L +@c +B +320.33 383.26 324.94 460.01 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +320.33 460.01 m +324.94 460.01 L +324.94 383.26 L +320.33 383.26 L +320.33 460.01 L +@c +B +359.64 383.26 364.25 518.33 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +359.64 518.33 m +364.25 518.33 L +364.25 383.26 L +359.64 383.26 L +359.64 518.33 L +@c +B +398.88 383.26 403.49 539.35 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +398.88 539.35 m +403.49 539.35 L +403.49 383.26 L +398.88 383.26 L +398.88 539.35 L +@c +B +438.19 383.26 442.73 562.97 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +438.19 562.97 m +442.73 562.97 L +442.73 383.26 L +438.19 383.26 L +438.19 562.97 L +@c +B +128.74 383.26 133.34 421.20 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +128.74 421.20 m +133.34 421.20 L +133.34 383.26 L +128.74 383.26 L +128.74 421.20 L +@c +B +168.05 383.26 172.66 429.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +168.05 429.48 m +172.66 429.48 L +172.66 383.26 L +168.05 383.26 L +168.05 429.48 L +@c +B +207.29 383.26 211.90 437.76 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +207.29 437.76 m +211.90 437.76 L +211.90 383.26 L +207.29 383.26 L +207.29 437.76 L +@c +B +246.53 383.26 251.14 451.01 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +246.53 451.01 m +251.14 451.01 L +251.14 383.26 L +246.53 383.26 L +246.53 451.01 L +@c +B +285.77 383.26 290.38 470.95 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +285.77 470.95 m +290.38 470.95 L +290.38 383.26 L +285.77 383.26 L +285.77 470.95 L +@c +B +324.94 383.26 329.54 487.44 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +324.94 487.44 m +329.54 487.44 L +329.54 383.26 L +324.94 383.26 L +324.94 487.44 L +@c +B +364.25 383.26 368.78 511.20 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +364.25 511.20 m +368.78 511.20 L +368.78 383.26 L +364.25 383.26 L +364.25 511.20 L +@c +B +403.49 383.26 408.10 511.34 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +403.49 511.34 m +408.10 511.34 L +408.10 383.26 L +403.49 383.26 L +403.49 511.34 L +@c +B +442.73 383.26 447.34 531.43 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +442.73 531.43 m +447.34 531.43 L +447.34 383.26 L +442.73 383.26 L +442.73 531.43 L +@c +B +95.33 383.26 95.62 578.45 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +95.47 383.26 m +95.47 578.45 L +S +92.66 383.11 98.21 383.40 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 383.26 m +98.21 383.26 L +S +92.66 404.78 98.21 405.07 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 404.93 m +98.21 404.93 L +S +92.66 426.46 98.21 426.74 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 426.60 m +98.21 426.60 L +S +92.66 448.13 98.21 448.42 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 448.27 m +98.21 448.27 L +S +92.66 469.80 98.21 470.09 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 469.94 m +98.21 469.94 L +S +92.66 491.54 98.21 491.83 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 491.69 m +98.21 491.69 L +S +92.66 513.22 98.21 513.50 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 513.36 m +98.21 513.36 L +S +92.66 534.89 98.21 535.18 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 535.03 m +98.21 535.03 L +S +92.66 556.63 98.21 556.92 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 556.78 m +98.21 556.78 L +S +92.66 578.30 98.21 578.59 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +92.66 578.45 m +98.21 578.45 L +S +95.47 383.11 448.70 383.40 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +95.47 383.26 m +448.70 383.26 L +S +95.33 380.52 95.62 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +95.47 380.52 m +95.47 386.06 L +S +134.64 380.52 134.93 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +134.78 380.52 m +134.78 386.06 L +S +173.88 380.52 174.17 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +174.02 380.52 m +174.02 386.06 L +S +213.12 380.52 213.41 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +213.26 380.52 m +213.26 386.06 L +S +252.36 380.52 252.65 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +252.50 380.52 m +252.50 386.06 L +S +291.53 380.52 291.82 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +291.67 380.52 m +291.67 386.06 L +S +@rs +@sv +330.77 380.52 331.06 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +330.91 380.52 m +330.91 386.06 L +S +370.01 380.52 370.30 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +370.15 380.52 m +370.15 386.06 L +S +409.25 380.52 409.54 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +409.39 380.52 m +409.39 386.06 L +S +448.56 380.52 448.85 386.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +448.70 380.52 m +448.70 386.06 L +S +235.94 350.86 302.26 358.70 @E +[0.04030 0.00000 0.00000 0.04030 237 352] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (Depth of Search) @t +T +65.38 440.86 75.02 520.85 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +0 0.22 0.22 0.00 @w +%Bitmap +16 129 1 0 0 1269 -10231 0 1 0 0 1269 -10231 [0.00761 0.00000 0.00000 0.00781 65 520] @i +ffe7 +ff87 +fe1f +f83f +e1bf +e1bf +f83f +fe1f +ff87 +ffe7 +ffff +e007 +e007 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe6f +fc27 +fdb7 +fdb7 +fc87 +fecf +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +fdff +f00f +f007 +fdf7 +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +ffff +ffff +ffff +ffff +f1cf +e0c7 +eef7 +eef7 +ee77 +ef77 +e307 +f38f +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fce7 +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +65.38 440.86 75.02 520.85 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +0 0.22 0.22 0.00 @w +%Bitmap +16 129 1 0 0 1269 -10231 0 1 0 0 1269 -10231 [0.00761 0.00000 0.00000 0.00781 65 520] @i +ffe7 +ff87 +fe1f +f83f +e1bf +e1bf +f83f +fe1f +ff87 +ffe7 +ffff +e007 +e007 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe6f +fc27 +fdb7 +fdb7 +fc87 +fecf +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +fdff +f00f +f007 +fdf7 +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +ffff +ffff +ffff +ffff +f1cf +e0c7 +eef7 +eef7 +ee77 +ef77 +e307 +f38f +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fce7 +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +82.87 380.09 87.26 386.50 @E +[0.04030 0.00000 0.00000 0.04030 83 380] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (0) @t +T +82.87 401.90 87.05 408.24 @E +[0.04030 0.00000 0.00000 0.04030 83 402] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (2) @t +T +82.87 423.58 87.26 429.77 @E +[0.04030 0.00000 0.00000 0.04030 83 423] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (4) @t +T +82.87 445.18 87.34 451.51 @E +[0.04030 0.00000 0.00000 0.04030 83 445] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (6) @t +T +82.87 466.78 87.19 473.18 @E +[0.04030 0.00000 0.00000 0.04030 83 467] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (8) @t +T +78.48 488.52 87.55 495.00 @E +[0.04030 0.00000 0.00000 0.04030 78 488] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (10) @t +T +78.55 510.34 87.34 516.60 @E +[0.04030 0.00000 0.00000 0.04030 78 510] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (12) @t +T +78.48 532.08 87.55 538.27 @E +[0.04030 0.00000 0.00000 0.04030 78 532] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (14) @t +T +78.48 553.61 87.70 560.02 @E +[0.04030 0.00000 0.00000 0.04030 78 553] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (16) @t +T +78.55 575.35 87.41 581.83 @E +[0.04030 0.00000 0.00000 0.04030 78 575] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (18) @t +T +112.82 366.26 117.07 372.67 @E +[0.04030 0.00000 0.00000 0.04030 113 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (3) @t +T +152.14 366.34 156.46 372.53 @E +[0.04030 0.00000 0.00000 0.04030 152 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (4) @t +T +191.38 366.26 195.77 372.53 @E +[0.04030 0.00000 0.00000 0.04030 191 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (5) @t +T +230.69 366.26 235.08 372.53 @E +[0.04030 0.00000 0.00000 0.04030 230 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (6) @t +T +269.93 366.34 273.96 372.53 @E +[0.04030 0.00000 0.00000 0.04030 270 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (7) @t +T +309.02 366.19 313.27 372.67 @E +[0.04030 0.00000 0.00000 0.04030 309 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (8) @t +T +348.34 366.34 352.66 372.67 @E +[0.04030 0.00000 0.00000 0.04030 348 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (9) @t +T +385.27 366.19 394.42 372.67 @E +[0.04030 0.00000 0.00000 0.04030 385 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (10) @t +T +424.58 366.34 432.22 372.53 @E +[0.04030 0.00000 0.00000 0.04030 424 366] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (11) @t +T +457.99 403.27 527.18 558.65 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +457.99 558.65 m +527.18 558.65 L +527.18 403.27 L +457.99 403.27 L +457.99 558.65 L +@c +B +464.69 544.10 472.61 551.95 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +464.69 551.95 m +472.61 551.95 L +472.61 544.10 L +464.69 544.10 L +464.69 551.95 L +@c +B +475.20 543.67 506.59 550.08 @E +[0.04030 0.00000 0.00000 0.04030 475 543] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 8) @t +T +464.69 525.38 472.61 533.23 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +464.69 533.23 m +472.61 533.23 L +472.61 525.38 L +464.69 525.38 L +464.69 533.23 L +@c +B +474.91 524.88 517.75 531.36 @E +[0.04030 0.00000 0.00000 0.04030 475 525] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 8) @t +T +464.69 506.66 472.61 514.51 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +464.69 514.51 m +472.61 514.51 L +472.61 506.66 L +464.69 506.66 L +464.69 514.51 L +@c +B +475.06 506.16 511.34 512.64 @E +[0.04030 0.00000 0.00000 0.04030 475 506] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 16) @t +T +464.69 487.87 472.61 495.72 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +464.69 495.72 m +472.61 495.72 L +472.61 487.87 L +464.69 487.87 L +464.69 495.72 L +@c +B +474.84 487.51 522.43 493.78 @E +[0.04030 0.00000 0.00000 0.04030 475 487] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 16) @t +T +464.69 469.15 472.61 477.00 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +464.69 477.00 m +472.61 477.00 L +472.61 469.15 L +464.69 469.15 L +464.69 477.00 L +@c +B +475.06 468.72 513.50 475.13 @E +[0.04030 0.00000 0.00000 0.04030 475 469] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 24) @t +T +464.69 450.43 472.61 458.28 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +464.69 458.28 m +472.61 458.28 L +472.61 450.43 L +464.69 450.43 L +464.69 458.28 L +@c +B +474.84 450.07 522.36 456.41 @E +[0.04030 0.00000 0.00000 0.04030 475 450] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 24) @t +T +464.69 431.78 472.61 439.56 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +464.69 439.56 m +472.61 439.56 L +472.61 431.78 L +464.69 431.78 L +464.69 439.56 L +@c +B +475.13 431.28 511.13 437.69 @E +[0.04030 0.00000 0.00000 0.04030 475 431] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 32) @t +T +464.69 412.99 472.61 420.84 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.55978 0.00000 0.00000 0.55978 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +464.69 420.84 m +472.61 420.84 L +472.61 412.99 L +464.69 412.99 L +464.69 420.84 L +@c +B +474.84 412.56 522.14 419.04 @E +[0.04030 0.00000 0.00000 0.04030 475 412] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 32) @t +T +@rs +@rs + end +%%EndDocument + @endspecial 166 x(Figure)20 b(5:)32 b(Comparison)20 +b(of)g(absolute)g(sp)r(eedups)f(for)h(b)r(oth)f(sc)n(hemes)-150 +4625 y(applied)26 b(to)g(Othello)g(for)g(8,)h(16,)f(24,)h(32)f(pro)r +(cessors)-35 4808 y(Figure)k(5)g(sho)n(ws)h(the)e(comparison)h(of)g(sp) +r(eed)g(on)f(the)h(Othello)-150 4891 y(program)20 b(compared)g(to)g +(the)g(fastest)h(sequen)n(tial)f(Othello)h(program)-150 +4974 y(w)n(e)35 b(ha)n(v)n(e,)j(the)c(recursiv)n(e)h +Fw(\013\014)t Fx(.)63 b(W)-6 b(e)35 b(can)g(see)h(that)e(up)h(to)g +(depth)-150 5057 y(8,)e(ABD)n(AD)n(A)c(is)j(more)e(e\016cien)n(t)h +(than)g(YBW)n(C)g(searc)n(h)h(but)e(this)-150 5140 y(c)n(hanges)c(in)g +(depths)f(greater)h(than)g(9.)p -150 5200 801 4 v -150 +5267 a Fr(there)21 b(is)h(no)g(go)r(o)r(d)g(c)n(hoice)e(and)i(w)n(e)g +(did)f(it)h(in)g(order)f(to)h(ha)n(v)n(e)g(results)g(compa-)-150 +5330 y(rable)f(with)i(those)e(from)h(previous)f(publications.)-65 +5382 y Fv(9)-31 5407 y Fr(In)k(the)e(pseudo)h(co)r(de)f(giv)n(en)h(in)h +(part)f(2)h(the)f(eldest)f(no)r(de)h(is)h(read)f(t)n(wice)-150 +5471 y(and)d(so)h(are)f(all)g(no)r(des)f(ev)l(aluated)h(in)g(the)f +(second)g(pass.)30 b(This)21 b(is)h(the)f(v)n(ersion)-150 +5535 y(w)n(e)h(used)e(in)h(our)g(exp)r(erimen)n(ts)e(for)i(simplicit)n +(y)e(of)i(co)r(de)f(but)h(it)g(is)h(really)e(easy)-150 +5599 y(to)27 b(impro)n(v)n(e)e(the)g(searc)n(h)h(b)n(y)g(searc)n(hing)g +(only)g(the)f(non-ev)l(aluated)g(no)r(des)h(in)-150 5662 +y(the)c(third)f(pass.)2049 3280 y @beginspecial 48 @llx +299 @lly 542 @urx 570 @ury 1984 @rwi @setspecial +%%BeginDocument: chess.eps + +/AutoFlatness false def +% -------------- POSTSCRIPT PROLOG FOR CORELDRAW 3.X ------ +% Copyright 1992 Corel Corporation. All rights reserved. +/wCorelDict 300 dict def wCorelDict begin/bd{bind def}bind def +/ld{load def}bd/xd{exch def}bd/_ null def +/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def +/$n _ def/$o 0 def/$fil 0 def/$bkg false def +/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def +/$N _ def/$O 0 def/$PF false def/$ctm matrix currentmatrix def +/$ptm matrix def/$ttm matrix def/$stm matrix def +/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def +currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd +/$dsf xd/$sdf false def/$SDF false def/$Scra 0.0 def +/$sv 0 def/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld +/@np/newpath ld/@sv{/$sv save def}bd/@rs{$sv restore}bd +/@ss{exch $Scra add exch load setscreen}bd +AutoFlatness{/$cpx ([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n) def +/@err1{$cpx print flush newpath}bd/@ifl{dup currentflat exch sub 10 gt +{@err1 exit}{currentflat 2 add setflat}ifelse}bd +/@fill/fill ld/fill{currentflat{{@fill}stopped{@ifl}{exit}ifelse +}bind loop setflat}bd/@eofill/eofill ld/eofill{currentflat{{@eofill} +stopped{@ifl}{exit}ifelse}bind loop setflat}bd +/@clip/clip ld/clip{currentflat{{@clip}stopped{initclip @ifl}{exit +}ifelse}bind loop setflat}bd/@eoclip/eoclip ld +/eoclip{currentflat{{@eoclip}stopped{initclip @ifl}{exit}ifelse +}bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke} +stopped{@ifl}{exit}ifelse}bind loop setflat}bd}if +/InRange{3 -1 roll 2 copy le{pop}{exch pop}ifelse +2 copy ge{pop}{exch pop}ifelse}bd/wDstChck{2 1 roll dup 3 -1 roll +eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub 2 div}bd +/@lin{exch pop abs 1 exch sub}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd +/setcmykcolor where{pop}{/setcmykcolor{4 1 roll +3{3 index add 1 @MN 1 exch sub 3 1 roll}repeat +setrgbcolor pop}bd}ifelse/setoverprint{/$op xd}bd +/currentoverprint{$op}bd/setsepcolor{1 exch sub setgray}bd +/checksepcolor{1 exch sub dup setgray 1 eq exch 1 eq and not}bd +/setprocesscolor{ColorSeparationMode 0 eq{setcmykcolor}{ +0 4 $ink sub index exch pop 5 1 roll 4{pop}repeat +setsepcolor}ifelse}bd/findcmykcustomcolor{5 array astore}bd +/setcustomcolor where{pop}{/setcustomcolor{ColorSeparationMode 0 eq{ +exch aload pop pop 4{4 index mul 4 1 roll}repeat +5 -1 roll pop setcmykcolor}{exch aload pop +CurrentInkName eq{4 index}{0}ifelse 6 1 roll +5{pop}repeat setsepcolor}ifelse}bd}ifelse/colorimage where{pop}{ +/colorimage{pop pop pop pop pop{currentfile $dat readhexstring pop pop} +repeat pop}bd}ifelse/@tc{dup 1 ge{pop}{4{dup +6 -1 roll mul exch}repeat pop}ifelse}bd/@scc{1 eq setoverprint +dup _ eq{pop setprocesscolor pop}{findcmykcustomcolor +exch setcustomcolor}ifelse ColorSeparationMode 0 eq{true}{ +currentgray 1 eq currentoverprint and not}ifelse}bd +/@sft{/$tx $tllx $pxf add dup $tllx gt{$pwid sub}if def +/$ty $tury $pyf sub dup $tury lt{$phei add}if def}bd +/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd +/@ep{{cvx exec}forall}bd/@tp{@sv/$in true def +2 copy dup $lly le{/$in false def}if $phei sub $ury ge{/$in false def}if +dup $urx ge{/$in false def}if $pwid add $llx le{/$in false def}if +$in{@np 2 copy moveto $pwid 0 rlineto 0 $phei neg rlineto +$pwid neg 0 rlineto 0 $phei rlineto clip @np +$pn cvlit load aload pop 7 -1 roll 5 index sub +7 -1 roll 3 index sub translate/$ctm matrix currentmatrix def +@ep pop pop pop pop}{pop pop}ifelse @rs}bd/@th{@sft +0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}ifelse +}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul +3 copy 3 -1 roll add exch @tp pop}for pop pop}for}bd +/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul $tx add +exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop +0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for +pop pop}for}bd/@pf{@gs $ctm setmatrix $pm concat +@stb @gs $vectpat{1 0 0 0 0 _ $o @scc{eofill}if}{ +$t $c $m $y $k $n $o @scc{eofill/$bkg true def}if}ifelse +@gr eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd +Bbllx Bblly $pm itransform/$tlly xd/$tllx xd +/$wid $turx $tllx sub def/$hei $tury $tlly sub def +$wid 0 gt $hei 0 gt and{$pn cvlit load aload pop +/$pd xd 3 -1 roll sub/$phei xd exch sub/$pwid xd +/$tlx $wid $pwid div ceiling 1 add def/$tly $hei $phei div ceiling 1 add def +$psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd +/@dlt{ColorSeparationMode 0 eq{/$dc $toc $tot mul $frc $frt mul dup/$c xd sub $fst 1 sub div def +/$dm $tom $tot mul $frm $frt mul dup/$m xd sub $fst 1 sub div def +/$dy $toy $tot mul $fry $frt mul dup/$y xd sub $fst 1 sub div def +/$dk $tok $tot mul $frk $frt mul dup/$k xd sub $fst 1 sub div def +true}{$frt $frc $frm $fry $frk $frn $o @scc +dup{/$frk 1 currentgray sub def}{/$frk 0 def}ifelse +$tot $toc $tom $toy $tok $ton $o @scc dup{/$tok 1 currentgray sub def}{ +/$tok 0 def}ifelse or dup{/$c 0 def/$m 0 def/$y 0 def/$k $frk def +/$dc 0 def/$dm 0 def/$dy 0 def/$dk $tok $frk sub $fst 1 sub div def}if +}ifelse}bd/@ftl{1 index 4 index sub dup $pad mul dup/$pdw xd +2 mul sub $fst div/$wid xd 2 index sub/$hei xd +pop translate $c $m $y $k 4 copy ColorSeparationMode 0 ne +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse +0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill +$pdw 0 translate $fst{4 copy ColorSeparationMode 0 ne +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse +0 0 moveto 0 $hei lineto $wid $hei lineto $wid 0 lineto 0 0 lineto fill +$wid 0 translate $dk add 4 1 roll $dy add 4 1 roll +$dm add 4 1 roll $dc add 4 1 roll}repeat $dk sub 4 1 roll +$dy sub 4 1 roll $dm sub 4 1 roll $dc sub 4 1 roll +ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} +{setcmykcolor}ifelse 0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill +}bd/@ftr{1 index 4 index sub dup $rox mul/$row xd +2 div 1 index 4 index sub dup $roy mul/$roh xd +2 div 2 copy dup mul exch dup mul add sqrt +$row dup mul $roh dup mul add sqrt add dup/$hei xd $fst div/$wid xd +4 index add $roh add exch 5 index add $row add +exch translate pop pop pop pop currentflat dup 5 mul setflat +$c $m $y $k 4 copy ColorSeparationMode 0 ne +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse +$wid 0 moveto 0 0 $hei 0 360 arc fill 1.0 $pad 2 mul sub dup scale +$fst{4 copy ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} +{setcmykcolor}ifelse $wid 0 moveto 0 0 $hei 0 360 arc fill +/$hei $hei $wid sub def $dk add 4 1 roll $dy add 4 1 roll +$dm add 4 1 roll $dc add 4 1 roll}repeat pop pop pop pop +setflat}bd/@ff{@gs @dlt{$ctm setmatrix eoclip +newpath Bbllx Bblly moveto Bbllx Bbury lineto +Bburx Bbury lineto Bburx Bblly lineto $fan rotate +pathbbox newpath $fty 1 eq{@ftr}{@ftl}ifelse}if +@gr @np}bd/@Pf{@sv ColorSeparationMode 0 eq $ink 3 eq or{0 J 0 j [] 0 d +$t $c $m $y $k $n $o @scc pop $ctm setmatrix +72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform +ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform +floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop +$Psn load exec}{1 setgray eofill}ifelse @rs +@np}bd/g{1 exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def +}bd/G{1 exch sub/$K xd/$C 0 def/$M 0 def/$Y 0 def/$T 1 def/$N _ def}bd +/k{/$k xd/$y xd/$m xd/$c xd/$t 1 def/$n _ def/$fil 0 def}bd +/K{/$K xd/$Y xd/$M xd/$C xd/$T 1 def/$N _ def}bd +/x{/$t xd/$n xd/$k xd/$y xd/$m xd/$c xd/$fil 0 def}bd +/X{/$T xd/$N xd/$K xd/$Y xd/$M xd/$C xd}bd +/d/setdash ld/i{dup 0 ne{setflat}{pop}ifelse}bd +/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit ld +/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd +/c/curveto ld/C/c ld/v{4 -2 roll 2 copy 6 -2 roll curveto}bd +/V/v ld/y{2 copy curveto}bd/Y/y ld/l/lineto ld +/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld +/N/newpath ld/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if +$fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc +{eofill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if +setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix +$ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc{ +matrix currentmatrix $ptm concat stroke setmatrix}{@np}ifelse +$SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp +S}bd/B{@gs F @gr S}bd/b{@cp B}bd/W{eoclip}bd +/p{/$pm xd 7{pop}repeat/$pyf xd/$pxf xd/$pn xd +/$fil 1 def}bd/P{11{pop}repeat}bd/u{}bd/U{}bd +/A{pop}bd/q/@gs ld/Q/@gr ld/E{5 array astore +exch cvlit exch def}bd/`{}bd/~{}bd/@{}bd/&{}bd +/CorelDrawReencodeVect [ 16#80/grave/circumflex/tilde/dotlessi/florin/quotedblleft/quotedblright/guilsinglleft +16#88/guilsinglright/fi/fl/dagger/daggerdbl/endash/periodcentered/breve +16#90/quotedblbase/ellipsis/perthousand/trademark/Pt/fractionbar +16#98/divide 16#a1/exclamdown/cent/sterling/currency/yen/bar/section +16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/emdash/registered/overbar +16#b0/ring/plusminus/twosuperior/threesuperior/acute/mu/paragraph/bullet +16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown +16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE +16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe +16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis +] def/@cc{currentfile $dat readhexstring pop}bd +/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd +/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def +1 eq/$vectpat xd/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd +/$pn xd}bd/@P{/$fil 3 def/$Psn xd array astore +/$Prm xd}bd/@k{/$fil 2 def/$roy xd/$rox xd/$pad xd +/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$tok xd/$toy xd/$tom xd/$toc xd +/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def/$ton _ def/$tot 1 def +}bd/@x{/$fil 2 def/$roy xd/$rox xd/$pad xd +/$fty xd/$fan xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd/$toc xd +/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd}bd +/@ii{concat 3 index 3 index m 3 index 1 index l +2 copy l 1 index 3 index l 3 index 3 index l +clip pop pop pop pop}bd/@i{@sm @gs @ii 6 index 1 ne{/$frg true def +pop pop}{1 eq{$T $C $M $Y $K $N $O @scc/$frg xd}{/$frg false def +}ifelse 1 eq{@gs $ctm setmatrix $t $c $m $y $k $n $o @scc{eofill}if +@gr}if}ifelse/$frg $frg $bkg or def @np/$ury xd/$urx xd/$lly xd/$llx xd +/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string def +$frg{$SDF{$SCF $SCA $SCP @ss}if $llx $lly translate +$urx $llx sub $ury $lly sub scale $wid $hei abs +$bts 1 eq{false}{$bts}ifelse [ $wid 0 0 $hei neg 0 +$hei 0 gt{$hei}{0}ifelse]/@cc load $bts 1 eq{imagemask}{image}ifelse +$SDF{$dsf $dsa $dsp @ss}if}{$hei abs{@cc pop}repeat}ifelse +@gr $ctm setmatrix}def/@M{@sv}bd/@N{/@cc{}def +1 eq{12 -1 roll neg 12 1 roll @I}{13 -1 roll neg 13 1 roll +@i}ifelse @rs}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd +/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi string def +$llx $lly translate $urx $llx sub $ury $lly sub scale +$wid $hei abs $bts [ $wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse] +/@cc load false $ncl colorimage @gr $ctm setmatrix}bd +/z{exch findfont exch scalefont setfont}bd +/ZB{9 dict dup begin 4 1 roll/FontType 3 def +/FontMatrix xd/FontBBox xd/Encoding 256 array def +0 1 255{Encoding exch/.notdef put}for/CharStrings 256 dict def +CharStrings/.notdef{}put/Metrics 256 dict def +Metrics/.notdef 3 -1 roll put/BuildChar{exch +dup/$char exch/Encoding get 3 index get def +dup/Metrics get $char get aload pop setcachedevice +begin Encoding exch get CharStrings exch get +end exec}def end definefont pop}bd/ZBAddChar{findfont begin +dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put +CharStrings 3 1 roll put Metrics 3 1 roll put +end}bd/Z{findfont dup maxlength 2 add dict exch +dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall +pop dup dup/Encoding get 256 array copy dup/$fe xd +/Encoding exch put dup/Fontname 3 index put +3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch pop}{ +$fe exch 2 index exch put 1 add}ifelse}forall +pop}if dup 256 dict dup/$met xd/Metrics exch put +dup/FontMatrix get 0 get 1000 mul 1 exch div +3 index length 256 eq{0 1 255{dup $fe exch get +dup/.notdef eq{pop pop}{5 index 3 -1 roll get +2 index mul $met 3 1 roll put}ifelse}for}if +pop definefont pop pop}bd/@ftx{{(0) dup 3 -1 roll 0 exch put +@gs true charpath $ctm setmatrix @@txt @gr @np}forall}bd +/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if +$fil 1 eq{/@@txt/@pf ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq +{/@@txt/@Pf ld @ftx}{$t $c $m $y $k $n $o @scc{show}{pop}ifelse}ifelse +}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}bd +/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if +$T $C $M $Y $K $N $O @scc{{(0) dup 3 -1 roll 0 exch put +@gs true charpath $ctm setmatrix $ptm concat +stroke @gr}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if +setmatrix}bd/@te{@ft}bd/@tr{@st}bd/@ta{dup +@gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd +/@tm{/$textsave save def @sm concat}bd/e{/t{@te}def}bd +/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}def}bd +/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix +/$ttm matrix def $textsave restore}bd/@t{/$stm $stm currentmatrix def +3 1 roll moveto $ttm concat t $stm setmatrix}def +/@n{/$ttm exch matrix rotate def}bd/@s{}bd +/@l{}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@w{matrix rotate/$ptm xd +matrix scale $ptm dup concatmatrix/$ptm xd +1 eq{$ptm exch dup concatmatrix/$ptm xd}if +1 w}bd/@g{1 eq dup/$sdf xd{/$scp xd/$sca xd +/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd +/$SCA xd/$SCF xd}if}bd/@D{3 copy @ss/$dsp xd +/$dsa xd/$dsf xd}bd/@j{@sv @np}bind def/@J{@rs}bind def +/@sep{/ColorSeparationMode where{pop}{/ColorSeparationMode 0 def +/CurrentInkName (Composite) def}ifelse ColorSeparationMode 0 eq{ +/CurrentInkName (Composite) def}if/CurrentInkName where{pop}{ +/CurrentInkName (Composite) def}ifelse CurrentInkName (Composite) eq +{/$ink -1 def}{CurrentInkName (Cyan) eq{/$ink 0 def}{ +CurrentInkName (Magenta) eq{/$ink 1 def}{CurrentInkName (Yellow) eq +{/$ink 2 def}{CurrentInkName (Black) eq{/$ink 3 def}{/$ink 4 def +}ifelse}ifelse}ifelse}ifelse}ifelse}bd @sep +/@whi{@gs -72000 dup moveto -72000 72000 lineto +72000 dup lineto 72000 -72000 lineto closepath 1 setgray fill +@gr}bd/@neg{ [{1 exch sub}/exec cvx currenttransfer/exec cvx] cvx settransfer +@whi}bd/@reg{[] 0 d 0 setgray .3 setlinewidth +2 copy 5.4 0 360 arc closepath 2 copy moveto 9 0 rlineto +2 copy moveto -9 0 rlineto 2 copy moveto 0 9 rlineto +moveto 0 -9 rlineto stroke}bd/leftbracket{(\050)}def +/rightbracket{(\051)}def + +11.4737 setmiterlimit +1.00 setflat +/$fst 128 def + +@sv +/$ctm matrix currentmatrix def +@sv +71.21 354.67 469.58 354.96 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 354.82 m +469.58 354.82 L +S +71.21 382.25 469.58 382.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 382.39 m +469.58 382.39 L +S +71.21 409.75 469.58 410.04 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 409.90 m +469.58 409.90 L +S +71.21 437.33 469.58 437.62 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 437.47 m +469.58 437.47 L +S +71.21 464.83 469.58 465.12 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 464.98 m +469.58 464.98 L +S +71.21 492.34 469.58 492.62 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 492.48 m +469.58 492.48 L +S +71.21 519.91 469.58 520.20 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 520.06 m +469.58 520.06 L +S +71.21 547.42 469.58 547.70 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +71.21 547.56 m +469.58 547.56 L +S +73.15 327.31 81.00 342.58 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +73.15 342.58 m +81.00 342.58 L +81.00 327.31 L +73.15 327.31 L +73.15 342.58 L +@c +B +139.54 327.31 147.38 357.05 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +139.54 357.05 m +147.38 357.05 L +147.38 327.31 L +139.54 327.31 L +139.54 357.05 L +@c +B +205.99 327.31 213.77 362.95 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +205.99 362.95 m +213.77 362.95 L +213.77 327.31 L +205.99 327.31 L +205.99 362.95 L +@c +B +272.38 327.31 280.22 377.42 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +272.38 377.42 m +280.22 377.42 L +280.22 327.31 L +272.38 327.31 L +272.38 377.42 L +@c +B +338.76 327.31 346.54 382.39 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +338.76 382.39 m +346.54 382.39 L +346.54 327.31 L +338.76 327.31 L +338.76 382.39 L +@c +B +405.14 327.31 412.92 388.01 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +405.14 388.01 m +412.92 388.01 L +412.92 327.31 L +405.14 327.31 L +405.14 388.01 L +@c +B +81.00 327.31 88.78 396.14 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +81.00 396.14 m +88.78 396.14 L +88.78 327.31 L +81.00 327.31 L +81.00 396.14 L +@c +B +147.38 327.31 155.23 401.62 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +147.38 401.62 m +155.23 401.62 L +155.23 327.31 L +147.38 327.31 L +147.38 401.62 L +@c +B +213.77 327.31 221.62 395.86 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +213.77 395.86 m +221.62 395.86 L +221.62 327.31 L +213.77 327.31 L +213.77 395.86 L +@c +B +280.22 327.31 288.00 389.66 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +280.22 389.66 m +288.00 389.66 L +288.00 327.31 L +280.22 327.31 L +280.22 389.66 L +@c +B +346.54 327.31 354.38 401.26 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +346.54 401.26 m +354.38 401.26 L +354.38 327.31 L +346.54 327.31 L +346.54 401.26 L +@c +B +412.92 327.31 420.77 408.53 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +412.92 408.53 m +420.77 408.53 L +420.77 327.31 L +412.92 327.31 L +412.92 408.53 L +@c +B +88.78 327.31 96.62 350.28 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +88.78 350.28 m +96.62 350.28 L +96.62 327.31 L +88.78 327.31 L +88.78 350.28 L +@c +B +155.23 327.31 163.01 363.89 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +155.23 363.89 m +163.01 363.89 L +163.01 327.31 L +155.23 327.31 L +155.23 363.89 L +@c +B +221.62 327.31 229.39 370.51 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +221.62 370.51 m +229.39 370.51 L +229.39 327.31 L +221.62 327.31 L +221.62 370.51 L +@c +B +288.00 327.31 295.85 397.87 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +288.00 397.87 m +295.85 397.87 L +295.85 327.31 L +288.00 327.31 L +288.00 397.87 L +@c +B +354.38 327.31 362.16 410.98 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +354.38 410.98 m +362.16 410.98 L +362.16 327.31 L +354.38 327.31 L +354.38 410.98 L +@c +B +420.77 327.31 428.62 431.21 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +420.77 431.21 m +428.62 431.21 L +428.62 327.31 L +420.77 327.31 L +420.77 431.21 L +@c +B +96.62 327.31 104.40 396.14 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +96.62 396.14 m +104.40 396.14 L +104.40 327.31 L +96.62 327.31 L +96.62 396.14 L +@c +B +163.01 327.31 170.86 396.94 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +163.01 396.94 m +170.86 396.94 L +170.86 327.31 L +163.01 327.31 L +163.01 396.94 L +@c +B +229.39 327.31 237.24 406.15 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +229.39 406.15 m +237.24 406.15 L +237.24 327.31 L +229.39 327.31 L +229.39 406.15 L +@c +B +295.85 327.31 303.62 423.58 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +295.85 423.58 m +303.62 423.58 L +303.62 327.31 L +295.85 327.31 L +295.85 423.58 L +@c +B +362.16 327.31 370.01 442.44 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +362.16 442.44 m +370.01 442.44 L +370.01 327.31 L +362.16 327.31 L +362.16 442.44 L +@c +B +428.62 327.31 436.39 464.83 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +428.62 464.83 m +436.39 464.83 L +436.39 327.31 L +428.62 327.31 L +428.62 464.83 L +@c +B +104.40 327.31 112.25 350.28 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +104.40 350.28 m +112.25 350.28 L +112.25 327.31 L +104.40 327.31 L +104.40 350.28 L +@c +B +170.86 327.31 178.63 363.89 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +170.86 363.89 m +178.63 363.89 L +178.63 327.31 L +170.86 327.31 L +170.86 363.89 L +@c +B +237.24 327.31 245.09 379.08 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +237.24 379.08 m +245.09 379.08 L +245.09 327.31 L +237.24 327.31 L +237.24 379.08 L +@c +B +303.62 327.31 311.47 416.74 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +303.62 416.74 m +311.47 416.74 L +311.47 327.31 L +303.62 327.31 L +303.62 416.74 L +@c +B +370.01 327.31 377.78 438.98 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +370.01 438.98 m +377.78 438.98 L +377.78 327.31 L +370.01 327.31 L +370.01 438.98 L +@c +B +436.39 327.31 444.24 469.08 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +436.39 469.08 m +444.24 469.08 L +444.24 327.31 L +436.39 327.31 L +436.39 469.08 L +@c +B +112.25 327.31 120.10 396.14 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +112.25 396.14 m +120.10 396.14 L +120.10 327.31 L +112.25 327.31 L +112.25 396.14 L +@c +B +178.63 327.31 186.48 413.06 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +178.63 413.06 m +186.48 413.06 L +186.48 327.31 L +178.63 327.31 L +178.63 413.06 L +@c +B +245.09 327.31 252.86 422.78 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +245.09 422.78 m +252.86 422.78 L +252.86 327.31 L +245.09 327.31 L +245.09 422.78 L +@c +B +311.47 327.31 319.25 448.99 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +311.47 448.99 m +319.25 448.99 L +319.25 327.31 L +311.47 327.31 L +311.47 448.99 L +@c +B +377.78 327.31 385.63 471.96 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +377.78 471.96 m +385.63 471.96 L +385.63 327.31 L +377.78 327.31 L +377.78 471.96 L +@c +B +444.24 327.31 452.02 507.60 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +444.24 507.60 m +452.02 507.60 L +452.02 327.31 L +444.24 327.31 L +444.24 507.60 L +@c +B +120.10 327.31 127.87 354.82 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +120.10 354.82 m +127.87 354.82 L +127.87 327.31 L +120.10 327.31 L +120.10 354.82 L +@c +B +186.48 327.31 194.26 369.43 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +186.48 369.43 m +194.26 369.43 L +194.26 327.31 L +186.48 327.31 L +186.48 369.43 L +@c +B +252.86 327.31 260.71 382.46 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +252.86 382.46 m +260.71 382.46 L +260.71 327.31 L +252.86 327.31 L +252.86 382.46 L +@c +B +319.25 327.31 327.10 420.77 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +319.25 420.77 m +327.10 420.77 L +327.10 327.31 L +319.25 327.31 L +319.25 420.77 L +@c +B +385.63 327.31 393.48 447.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +385.63 447.48 m +393.48 447.48 L +393.48 327.31 L +385.63 327.31 L +385.63 447.48 L +@c +B +452.02 327.31 459.86 494.57 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +452.02 494.57 m +459.86 494.57 L +459.86 327.31 L +452.02 327.31 L +452.02 494.57 L +@c +B +127.87 327.31 135.72 396.14 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +127.87 396.14 m +135.72 396.14 L +135.72 327.31 L +127.87 327.31 L +127.87 396.14 L +@c +B +194.26 327.31 202.10 416.52 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +194.26 416.52 m +202.10 416.52 L +202.10 327.31 L +194.26 327.31 L +194.26 416.52 L +@c +B +260.71 327.31 268.49 422.78 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +260.71 422.78 m +268.49 422.78 L +268.49 327.31 L +260.71 327.31 L +260.71 422.78 L +@c +B +327.10 327.31 334.94 464.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +327.10 464.54 m +334.94 464.54 L +334.94 327.31 L +327.10 327.31 L +327.10 464.54 L +@c +B +393.48 327.31 401.26 501.70 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +393.48 501.70 m +401.26 501.70 L +401.26 327.31 L +393.48 327.31 L +393.48 501.70 L +@c +B +459.86 327.31 467.71 543.74 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +459.86 543.74 m +467.71 543.74 L +467.71 327.31 L +459.86 327.31 L +459.86 543.74 L +@c +B +71.06 327.31 71.35 547.56 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +71.21 327.31 m +71.21 547.56 L +S +68.04 327.17 74.30 327.46 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 327.31 m +74.30 327.31 L +S +68.04 354.67 74.30 354.96 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 354.82 m +74.30 354.82 L +S +68.04 382.25 74.30 382.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 382.39 m +74.30 382.39 L +S +68.04 409.75 74.30 410.04 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 409.90 m +74.30 409.90 L +S +68.04 437.33 74.30 437.62 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 437.47 m +74.30 437.47 L +S +68.04 464.83 74.30 465.12 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 464.98 m +74.30 464.98 L +S +68.04 492.34 74.30 492.62 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 492.48 m +74.30 492.48 L +S +68.04 519.91 74.30 520.20 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 520.06 m +74.30 520.06 L +S +68.04 547.42 74.30 547.70 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +68.04 547.56 m +74.30 547.56 L +S +71.21 327.17 469.58 327.46 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +71.21 327.31 m +469.58 327.31 L +S +71.06 324.22 71.35 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +71.21 324.22 m +71.21 330.48 L +S +137.45 324.22 137.74 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +137.59 324.22 m +137.59 330.48 L +S +203.90 324.22 204.19 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +204.05 324.22 m +204.05 330.48 L +S +270.29 324.22 270.58 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +270.43 324.22 m +270.43 330.48 L +S +336.60 324.22 336.89 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +336.74 324.22 m +336.74 330.48 L +S +403.06 324.22 403.34 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +403.20 324.22 m +403.20 330.48 L +S +469.44 324.22 469.73 330.48 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +469.58 324.22 m +469.58 330.48 L +S +229.54 290.81 304.49 299.66 @E +[0.04544 0.00000 0.00000 0.04544 231 292] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (Depth of Search) @t +T +37.22 392.40 48.10 482.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +0 0.22 0.22 0.00 @w +%Bitmap +16 164 1 0 0 998 -10232 0 1 0 0 998 -10232 [0.01093 0.00000 0.00000 0.00880 37 482] @i +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffe7 +ff87 +fe1f +f83f +e1bf +e1bf +f83f +fe1f +ff87 +ffe7 +ffff +e007 +e007 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe6f +fc27 +fdb7 +fdb7 +fc87 +fecf +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +fdff +f00f +f007 +fdf7 +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +ffff +ffff +ffff +ffff +f1cf +e0c7 +eef7 +eef7 +ee77 +ef77 +e307 +f38f +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fce7 +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +37.22 392.40 48.10 482.54 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +0 0.22 0.22 0.00 @w +%Bitmap +16 164 1 0 0 998 -10232 0 1 0 0 998 -10232 [0.01093 0.00000 0.00000 0.00880 37 482] @i +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffe7 +ff87 +fe1f +f83f +e1bf +e1bf +f83f +fe1f +ff87 +ffe7 +ffff +e007 +e007 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe6f +fc27 +fdb7 +fdb7 +fc87 +fecf +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +fdff +f00f +f007 +fdf7 +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +ffff +ffff +ffff +ffff +f1cf +e0c7 +eef7 +eef7 +ee77 +ef77 +e307 +f38f +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdb7 +fdb7 +fdb7 +fc27 +fe2f +ffff +ffff +fe0f +fc07 +fdf7 +fdf7 +fce7 +e007 +e007 +ffff +ffff +fc0f +fc07 +fff7 +ffe7 +fc07 +fc07 +ffff +ffff +fc00 +fc00 +fce7 +fdf7 +fdf7 +fc07 +fe0f +ffff +ffff +57.02 323.78 61.92 330.98 @E +[0.04544 0.00000 0.00000 0.04544 57 324] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (0) @t +T +57.02 351.43 61.70 358.49 @E +[0.04544 0.00000 0.00000 0.04544 57 351] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (2) @t +T +57.02 378.94 61.92 385.99 @E +[0.04544 0.00000 0.00000 0.04544 57 379] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (4) @t +T +57.02 406.37 61.99 413.50 @E +[0.04544 0.00000 0.00000 0.04544 57 406] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (6) @t +T +57.02 433.87 61.85 441.14 @E +[0.04544 0.00000 0.00000 0.04544 57 434] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (8) @t +T +52.06 461.38 62.21 468.65 @E +[0.04544 0.00000 0.00000 0.04544 52 461] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (10) @t +T +52.06 489.10 62.06 496.15 @E +[0.04544 0.00000 0.00000 0.04544 52 489] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (12) @t +T +52.06 516.60 62.21 523.66 @E +[0.04544 0.00000 0.00000 0.04544 52 516] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (14) @t +T +52.06 544.10 62.35 551.16 @E +[0.04544 0.00000 0.00000 0.04544 52 544] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (16) @t +T +101.88 308.16 106.56 315.36 @E +[0.04544 0.00000 0.00000 0.04544 102 308] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (3) @t +T +168.26 308.23 173.16 315.22 @E +[0.04544 0.00000 0.00000 0.04544 168 308] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (4) @t +T +234.65 308.16 239.62 315.22 @E +[0.04544 0.00000 0.00000 0.04544 234 308] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (5) @t +T +301.10 308.16 306.00 315.22 @E +[0.04544 0.00000 0.00000 0.04544 301 308] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (6) @t +T +367.49 308.23 372.10 315.22 @E +[0.04544 0.00000 0.00000 0.04544 367 308] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (7) @t +T +433.87 308.09 438.70 315.36 @E +[0.04544 0.00000 0.00000 0.04544 433 308] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (8) @t +T +480.10 345.53 558.07 520.78 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +480.10 520.78 m +558.07 520.78 L +558.07 345.53 L +480.10 345.53 L +480.10 520.78 L +@c +B +487.66 504.43 496.51 513.29 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +487.66 513.29 m +496.51 513.29 L +496.51 504.43 L +487.66 504.43 L +487.66 513.29 L +@c +B +499.46 503.93 534.89 511.13 @E +[0.04544 0.00000 0.00000 0.04544 500 504] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 8) @t +T +487.66 483.26 496.51 492.12 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.00 k +487.66 492.12 m +496.51 492.12 L +496.51 483.26 L +487.66 483.26 L +487.66 492.12 L +@c +B +499.10 482.76 549.94 490.03 @E +[0.04544 0.00000 0.00000 0.04544 500 483] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 8) @t +T +487.66 462.10 496.51 471.02 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +487.66 471.02 m +496.51 471.02 L +496.51 462.10 L +487.66 462.10 L +487.66 471.02 L +@c +B +499.32 461.66 540.22 468.86 @E +[0.04544 0.00000 0.00000 0.04544 500 461] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 16) @t +T +@rs +@sv +487.66 441.00 496.51 449.86 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.74 k +487.66 449.86 m +496.51 449.86 L +496.51 441.00 L +487.66 441.00 L +487.66 449.86 L +@c +B +499.03 440.57 552.74 447.62 @E +[0.04544 0.00000 0.00000 0.04544 500 440] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 16) @t +T +487.66 419.83 496.51 428.69 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +487.66 428.69 m +496.51 428.69 L +496.51 419.83 L +487.66 419.83 L +487.66 428.69 L +@c +B +499.32 419.40 540.14 426.60 @E +[0.04544 0.00000 0.00000 0.04544 500 419] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 24) @t +T +487.66 398.74 496.51 407.59 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.49 k +487.66 407.59 m +496.51 407.59 L +496.51 398.74 L +487.66 398.74 L +487.66 407.59 L +@c +B +499.03 398.38 552.67 405.43 @E +[0.04544 0.00000 0.00000 0.04544 500 398] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 24) @t +T +487.66 377.57 496.51 386.42 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 0.07 0.07 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +487.66 386.42 m +496.51 386.42 L +496.51 377.57 L +487.66 377.57 L +487.66 386.42 L +@c +B +499.32 377.14 540.00 384.34 @E +[0.04544 0.00000 0.00000 0.04544 500 377] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (YBWC 32) @t +T +487.66 356.47 496.51 365.33 @E +0 J 0 j [] 0 d 0 R 0 @G +0.00 0.00 0.00 1.00 K +[0.63127 0.00000 0.00000 0.63127 0 0] 1 2.16 2.16 0.00 @w + 0 O 0 @g +0.00 0.00 0.00 0.25 k +487.66 365.33 m +496.51 365.33 L +496.51 356.47 L +487.66 356.47 L +487.66 365.33 L +@c +B +499.03 355.97 552.46 363.17 @E +[0.04544 0.00000 0.00000 0.04544 500 356] @tm + 0 O 0 @g +0.00 0.00 0.00 1.00 k +e +/_AvantGarde-Book 200.00 z +0 0 (ABDADA 32) @t +T +@rs +@rs + end +%%EndDocument + @endspecial 166 x Fx(Figure)f(6:)32 b(Comparison)20 +b(of)g(absolute)g(sp)r(eedups)f(for)h(b)r(oth)f(sc)n(hemes)2049 +3529 y(applied)26 b(to)g(c)n(hess)g(for)g(8,)h(16,)f(24,)h(32)f(pro)r +(cessors)2164 3764 y(Figure)21 b(6)f(giv)n(es)h(the)f(comparison)g(for) +h(the)f(game)g(of)h(c)n(hess)g(using)2049 3847 y(the)27 +b(recursiv)n(e)g(Negascout)h(\(whic)n(h)f(is)g(30\045)h(faster)g(than)f +(the)g(non-)2049 3930 y(recursiv)n(e)37 b(one)2496 3898 +y Fv(10)2562 3930 y Fx(\).)68 b(Here)38 b(w)n(e)f(can)g(see)h(that)f +(ABD)n(AD)n(A)e(searc)n(h)2049 4013 y(signi\014can)n(tly)26 +b(outp)r(erforms)g(the)f(YBW)n(C)h(whatev)n(er)g(the)f(depth.)2164 +4160 y(Some)g(explanations)h(can)g(b)r(e)g(adv)l(anced:)2164 +4331 y Fu(\017)39 b Fx(The)22 b(game)f(trees)h(are)g(not)g(of)g(the)f +(same)g(size,)j(the)d(branc)n(hing)2241 4414 y(factor)30 +b(for)f(Othello)g(is)g(10)h(in)e(midgame)f(p)r(ositions)j(while)g(it) +2241 4497 y(is)c(40)h(for)f(c)n(hess.)35 b(Th)n(us)26 +b(Othello)g(game)f(trees)h(are)g(deep)r(er;)2164 4607 +y Fu(\017)39 b Fx(Since)20 b(our)h(Othello)g(ev)l(aluation)g(function)f +(is)h(unstable,)h(Oth-)2241 4690 y(ello)27 b(game)e(trees)h(are)g(less) +g(ordered)g(than)f(c)n(hess)g(trees.)35 b(This)2241 4773 +y(mak)n(es)i(Negascout)j(less)f(e\016cien)n(t)f(than)g +Fw(\013\014)43 b Fx(and)38 b(YBW)n(C)2241 4856 y(searc)n(h)g(b)r +(ecomes)f(more)g(e\016cien)n(t)h(since)f(w)n(e)h(sho)n(w)g(in)g([23)q +(])2241 4939 y(that)28 b(YBW)n(C)g(is)g(more)g(e\016cien)n(t)g(in)g +(random)f(trees)h(than)g(in)2241 5022 y(strongly)e(ordered)g(trees.) +2164 5192 y(Without)31 b(more)g(data,)i(it)e(is)h(di\016cult)f(to)h +(\014nd)e(what)h(the)g(real)2049 5275 y(explanation)19 +b(is.)33 b(The)19 b(only)g(other)f(remark)g(w)n(e)i(ha)n(v)n(e)e(on)h +(our)f(results)p 2049 5328 V 2103 5382 a Fv(10)2168 5407 +y Fr(This)37 b(apparen)n(tly)e(strange)h(b)r(eha)n(viour)f(observ)n(ed) +h(indep)r(enden)n(tly)c(b)n(y)2049 5471 y(Bro)r(c)n(kington[5)o(])17 +b(can)g(b)r(e)f(explained)f(b)n(y)i(the)g(fact)f(that)h(w)n(e)h(use)e +(high)h(lev)n(el)f(lan-)2049 5535 y(guages)23 b(in)g(whic)n(h)g(pro)r +(cedure)e(stac)n(ks)j(use)f(are)h(m)n(uc)n(h)e(more)h(optimised)f(than) +2049 5599 y(indexed)d(arra)n(ys)j(use.)29 b(Similar)20 +b(results)h(can)g(b)r(e)f(observ)n(ed)h(for)g(the)g(Quic)n(ksort)2049 +5662 y(algorithms)h(\(see)f([24],)h(page)g(100\).)p eop +%%Page: 6 6 +6 5 bop -150 83 a Fx(is)21 b(that)g(the)f(searc)n(h)i(o)n(v)n(erheads)e +(are)i(greater)f(with)g(ABD)n(AD)n(A)e(than)-150 166 +y(with)h(YBW)n(C,)f(whic)n(h)h(is)f(easily)i(explained)e(b)n(y)f(the)h +(fact)h(that)f(in)g(the)-150 249 y(YBW)n(C)30 b(searc)n(h)g(there)f(is) +h(sharing)g(of)g Fw(\013\014)k Fx(windo)n(w)d(impro)n(v)n(emen)n(t)-150 +332 y(during)24 b(the)h(searc)n(h.)34 b(When)24 b(a)h(pro)r(cessor)i +(\014nishes)d(the)h(ev)l(aluation)-150 415 y(of)35 b(a)f(c)n(hild)g(of) +h(a)g(p)r(osition)g Fw(P)11 b Fx(,)36 b(the)e(o)n(wner)g(of)h(the)f(p)r +(osition)h(ma)n(y)-150 498 y(distribute,)28 b(if)g(needed,)f(the)g(new) +g(b)r(ounds)f(on)i(the)e Fw(\013\014)32 b Fx(windo)n(w)c(to)-150 +581 y(his)h(sla)n(v)n(es.)227 549 y Fv(11)334 581 y Fx(ABD)n(AD)n(A)d +(do)r(es)j(not)f(share)h(windo)n(ws,)h(so)f(in)f(the)-150 +664 y(situation)i(describ)r(ed)g(in)g(Figure)g(7,)h(YBW)n(C)f(will)h +(examine)e(few)n(er)-150 747 y(no)r(des)i(than)g(ABD)n(AD)n(A.)f(New)h +(b)r(ounds)g(are)g(distributed)g(only)g(if)-150 830 y(the)f(eldest)g +(mo)n(v)n(e)f(of)i(the)e(p)r(osition)i Fw(P)41 b Fx(is)31 +b(not)f(the)f(b)r(est)h(one,)i(\(i.e.)-150 913 y(the)25 +b(tree)h(is)g(not)g(v)n(ery)f(w)n(ell)h(ordered\).)150 +1118 y Fh(B)178 1201 y(B)205 1284 y(B)233 1367 y(B)261 +1450 y(B)288 1533 y(B)316 1616 y(B)344 1699 y(B)371 1782 +y(B)399 1865 y(B)422 1934 y(B)150 1118 y(E)164 1201 y(E)178 +1284 y(E)191 1367 y(E)205 1450 y(E)219 1533 y(E)233 1616 +y(E)247 1699 y(E)261 1782 y(E)274 1865 y(E)286 1934 y(E)140 +1037 y Fz(.)119 1101 y(.)97 1165 y(.)76 1229 y(.)54 1294 +y(.)33 1358 y(.)12 1422 y(.)-10 1486 y(.)-31 1551 y(.)-53 +1615 y(.)-74 1679 y(.)-96 1744 y(.)-117 1808 y(.)-138 +1872 y(.)-160 1936 y(.)136 1118 y Fh(\005)122 1201 y(\005)108 +1284 y(\005)95 1367 y(\005)81 1450 y(\005)67 1533 y(\005)53 +1616 y(\005)39 1699 y(\005)25 1782 y(\005)12 1865 y(\005)0 +1934 y(\005)p 147 1934 7 900 v 262 1147 a Fz(P)n(osition)h(P)-7 +b(,)27 b(windo)n(w)g(=)g([)p Fg(\013;)14 b(\014)t Fz(])-150 +2122 y Ff(Done)112 b Fg(P)203 2134 y Fi(i)263 2122 y +Fe(returns)32 b Fg(v)-150 2288 y Fx(Figure)18 b(7:)31 +b(Situation)18 b(where)f(YBW)n(C)h(examines)f(few)n(er)i(no)r(des)e +(than)-150 2371 y(ABD)n(AD)n(A.)-150 2537 y Fs(L)l(et's)35 +b(supp)l(ose)h(that)f(the)g(childr)l(en)g(of)f(the)h(p)l(osition)g +Fu(P)k Fs(ar)l(e)c(b)l(eing)-150 2620 y(evaluate)l(d)29 +b(by)g(some)f(pr)l(o)l(c)l(essors)j(\(the)d(eldest)h(son)g(of)e +Fu(P)33 b Fs(is)28 b(alr)l(e)l(ady)-150 2703 y(explor)l(e)l(d)35 +b(by)f(b)l(oth)h(YBWC)e(and)h(ABD)n(AD)n(A\))g(and)g(the)g(pr)l(o)l(c)l +(essor)-150 2786 y(examining)e Fw(P)272 2794 y Fd(i)329 +2786 y Fs(r)l(eturns)i(a)e(value)g Fw(v)i Fs(that)f(wil)t(l)d(c)l(ause) +j(the)f(pruning)-150 2869 y(of)21 b(the)i(p)l(osition)g +Fu(P)k Fs(\(i.e.)33 b(when)22 b Fw(v)i Fu(\025)d Fw(\014)t +Fs(\).)34 b(In)21 b(this)i(situation)g(YBWC)-150 2952 +y(wil)t(l)28 b(c)l(ause)j(the)f(pruning)g(\(making)g(them)g(id)t(le\))f +(of)g(the)h(other)h(pr)l(o-)-150 3035 y(c)l(essors)22 +b(examining)e(other)i(childr)l(en)e(of)g Fu(P)26 b Fs(wher)l(e)l(as)c +(ABD)n(AD)n(A)d(wil)t(l)-150 3118 y(c)l(ontinue)29 b(the)f(explor)l +(ation)h(of)e(these)i(childr)l(en.)-35 3300 y Fx(F)-6 +b(rom)38 b(these)h(results)h(and)e(our)h(exp)r(erience,)k(w)n(e)d(can)f +(de\014ne)-150 3383 y(when)f(to)f(c)n(ho)r(ose)i(eac)n(h)f(of)g(the)f +(algorithms)i(dep)r(ending)e(on)g(the)-150 3466 y(goal)27 +b(and)e(the)h(means:)-112 3645 y Fj(YBW)n(C:)80 3779 +y(Adv)-5 b(an)n(tages:)278 3898 y Fu(\017)39 b Fx(W)-6 +b(orks)25 b(without)h(transp)r(osition)h(table.)278 3999 +y Fu(\017)39 b Fx(W)-6 b(orks)25 b(with)h(global)h(transp)r(osition)g +(tables.)278 4101 y Fu(\017)39 b Fx(W)-6 b(orks)25 b(with)h(lo)r(cal)h +(transp)r(osition)g(tables.)278 4202 y Fu(\017)39 b Fx(E\016cien)n(t)25 +b(for)i(deep)e(problems.)278 4303 y Fu(\017)39 b Fx(Can)46 +b(b)r(e)g(optimised)f(as)i(function)f(of)h(mac)n(hine)355 +4386 y(top)r(ology[7)q(].)80 4505 y Fj(Dra)n(wbac)n(ks:)278 +4625 y Fu(\017)39 b Fx(Complex)18 b(to)h(implemen)n(t:)29 +b(Ev)n(en)19 b(with)g(the)g(de\014ni-)355 4708 y(tion)27 +b(giv)n(en)f(in)h([7)q(],)g(it)g(is)h(di\016cult)e(to)h(ensure)g(that) +355 4791 y(the)35 b(basic)h(master-sla)n(v)n(e)f(relationship)i(is)f(w) +n(ork-)355 4874 y(ing)45 b(prop)r(erly)-6 b(.)91 b(The)44 +b(debugging)h(part)g(of)g(the)355 4957 y(sc)n(heme)33 +b(is)i(long,)i(mainly)c(b)r(ecause)i(of)g(the)f(non-)355 +5040 y(deterministic)28 b(nature)g(of)i(W)-6 b(ork)28 +b(Stealing)h(based)355 5123 y(Pro)r(cess.[5)r(])278 5224 +y Fu(\017)39 b Fx(Since)48 b(the)g(searc)n(h)h(algorithm)f(m)n(ust)f(b) +r(e)i(non-)355 5307 y(recursiv)n(e,)20 b(it)e(is)g(di\016cult)g(to)h +(implemen)n(t)d(the)h(same)355 5390 y(heuristics)26 b(as)g(in)g(the)f +(sequen)n(tial)h(programs.)p -150 5456 801 4 v -96 5510 +a Fv(11)-31 5535 y Fr(It)20 b(should)f(b)r(e)f(noted)h(that)g(this)h +(feature)e(of)h(the)g(YBW)n(C)i(is,)f(in)f(m)n(y)h(mind,)-150 +5599 y(the)e(main)f(di\013erence)g(with)h(PVSplit)f(based)h(searc)n +(hes[14)o(,)h(16,)f(17,)h(15,)f(21)q(,)g(10])-150 5663 +y(or)k(Jam)n(b)r(oree[11)o(].)2477 83 y Fu(\017)39 b +Fx(Non-e\016cien)n(t)25 b(for)h(small)g(size)h(problems.)2087 +211 y Fj(ABD)n(AD)n(A:)2279 338 y(Adv)-5 b(an)n(tages:)2477 +453 y Fu(\017)39 b Fx(Easy)24 b(and)g(quic)n(k)g(to)g(implemen)n(t:)32 +b(As)24 b(w)n(e)h(can)f(see)2554 536 y(on)f(Figure)h(1,)h(the)e(main)g +(algorithm)h(is)g(v)n(ery)f(close)2554 620 y(to)18 b(sequen)n(tial)g +(algorithms,)i(so)f(few)g(mo)r(di\014cations)2554 703 +y(are)26 b(necessary)-6 b(.)2477 802 y Fu(\017)39 b Fx(E\016cien)n(t)25 +b(for)i(small)f(and)f(deep)g(problems.)2477 901 y Fu(\017)39 +b Fx(F)-6 b(ailure)19 b(resistan)n(t:)33 b(it)19 b(is)h(v)n(ery)e(easy) +i(to)g(c)n(hange)f(the)2554 984 y(algorithm)27 b(to)g(b)r(e)g(failure)h +(resistan)n(t)g(\(i.e.)39 b(to)28 b(giv)n(e)2554 1067 +y(an)c(answ)n(er)i(ev)n(en)e(if)i(one)f(or)g(more)g(pro)r(cessors)h +(are)2554 1150 y(dead\),)e(y)n(ou)f(only)h(ha)n(v)n(e)f(to)h(put)f(a)h +(time-out)f(when)2554 1233 y(w)n(aiting)35 b(for)g(transp)r(osition)h +(table)f(answ)n(ers)g(and)2554 1316 y(then)20 b(y)n(ou)h(ha)n(v)n(e)f +(an)h(algorithm)h(whic)n(h)f(will)i(return)2554 1399 +y(an)34 b(answ)n(er)i(ev)n(en)e(when)g(only)h(one)f(pro)r(cessor)i(is) +2554 1482 y(presen)n(t)25 b(!)2279 1597 y Fj(Dra)n(wbac)n(ks:)2477 +1712 y Fu(\017)39 b Fx(Needs)27 b(a)i(v)n(ery)e(fast)i(global)g(transp) +r(osition)g(table.)2554 1795 y(This)23 b(is)g(where)h(all)f(the)g +(implemen)n(tation)e(e\013ort)i(is)2554 1878 y(made)c(to)h(ensure)f +(that)h(transp)r(osition)h(table)f(man-)2554 1961 y(agemen)n(t)25 +b(is)h(fast)g(enough)g(for)h(this)e(algorithm.)2477 2060 +y Fu(\017)39 b Fx(Needs)33 b(to)h(b)r(e)f(rede\014ned)g(in)h(order)g +(to)f(tak)n(e)h(in)n(to)2554 2143 y(accoun)n(t)21 b(situations)h(suc)n +(h)e(as)i(those)f(of)h(\014gure)f(7.)3984 2112 y Fv(12)2164 +2319 y Fx(So)33 b(YBW)n(C)g(is)g(our)g(c)n(hoice)h(if)f(the)g(computer) +e(is)j(not)e(able)i(to)2049 2402 y(giv)n(e)27 b(us)g(v)n(ery)f(fast)i +(message)g(passing)g(\(for)f(small)h(messages\))f(suc)n(h)2049 +2485 y(as)33 b(a)f(net)n(w)n(ork)g(of)h(w)n(orkstations,)j(and)c(ABD)n +(AD)n(A)e(is)j(our)f(c)n(hoice)2049 2568 y(on)e(shared)f(memory)f(or)i +(real)g(fast)g(small)g(message)g(passing)h(com-)2049 +2651 y(puters.)66 b(On)36 b(those)h(computers)e(and)h(ha)n(ving)g +(enough)g(time)g(for)2049 2734 y(implemen)n(tation,)h(w)n(e)g(prop)r +(ose)f(to)g(\014rst)g(implemen)n(t)e(ABD)n(AD)n(A)2049 +2817 y(to)22 b(v)n(erify)g(its)g(e\016ciency)g(and,)h(if)f(it)g(is)g +(not)g(as)h(e\016cien)n(t)f(as)g(required,)2049 2900 +y(to)37 b(implemen)n(t)d(YBW)n(C,)j(not)g(b)r(eing)g(certain)g(that)f +(this)h(will)h(b)r(e)2049 2983 y(more)22 b(e\016cien)n(t)g(but)f(to)i +(ensure)f(y)n(ou)f(ha)n(v)n(e)h(not)g(ignored)h(reasonable)2049 +3066 y(alternativ)n(es)j(to)g(ABD)n(AD)n(A.)2049 3326 +y Fy(5)100 b(APPLICA)-8 b(TION)33 b(ON)h(A)f(128-PE)g(CRA)-8 +b(Y)33 b(T3D)2049 3547 y Fx(After)i(doing)g(this)g(comparison,)i(w)n(e) +f(had)e(to)h(implemen)n(t)e(a)i(new)2049 3630 y(c)n(hess)c(program)g +(named)f(F)-6 b(renc)n(hess)31 b(on)h(a)f(128-PE)h(CRA)-6 +b(Y)30 b(T3D.)2049 3713 y(This)c(program)f(\014nished)g(equal)g(third)g +(of)h(a)g(\014eld)f(of)h(24)h(at)e(the)g(8th)2049 3796 +y(W)-6 b(orld)27 b(Computer)e(Chess)j(Championship)e(in)h(Hong)f(Kong)h +(\(Ma)n(y)2049 3879 y(25)35 b({)f(Ma)n(y)g(30)g(1995\).)61 +b(Since)34 b(w)n(e)g(b)r(egan)g(to)g(p)r(ort)g(F)-6 b(renc)n(hess)34 +b(to)2049 3962 y(the)27 b(CRA)-6 b(Y)26 b(T3D)i(in)f(F)-6 +b(ebruary)g(,)27 b(w)n(e)h(had)f(v)n(ery)f(little)i(time)f(b)r(efore) +2049 4045 y(the)c(W)-6 b(orld)22 b(Championship,)i(so)f(w)n(e)h(c)n +(hose)f(to)g(use)g(ABD)n(AD)n(A)e(as)j(a)2049 4128 y(parallel)j(sc)n +(heme.)2164 4275 y(On)k(the)g(CM5)h(computer,)g(shared)g(memory)d(w)n +(as)j(sim)n(ulated,)2049 4358 y(eac)n(h)25 b(pro)r(cessor)i(b)r(eing)e +(in)g(c)n(harge)h(of)g(a)f(part)g(of)h(the)f(global)h(trans-)2049 +4442 y(p)r(osition)33 b(table;)k(w)n(e)c(had)f(to)g(rely)h(on)f(the)g +(activ)n(e)h(message)g(la)n(y)n(er)2049 4525 y(to)c(get)f(some)g(v)n +(ery)g(go)r(o)r(d)h(p)r(erformance)g(whic)n(h)f(pure)g(CMMD[22)r(])2049 +4608 y(could)e(not)f(giv)n(e)h(us)g(otherwise.)2164 4755 +y(This)33 b(metho)r(d)e(of)i(shared)g(memory)d(sim)n(ulation)j(has)f +(the)g(ad-)2049 4838 y(v)l(an)n(tage)k(of)h(making)f(sim)n(ultaneous)g +(accesses)i(to)e(a)h(same)f(en)n(try)p 2049 4896 V 2103 +4950 a Fv(12)2168 4975 y Fr(There)22 b(are)f(basically)h(t)n(w)n(o)h(w) +n(a)n(ys)g(to)g(solv)n(e)f(this:)2104 5055 y Fc({)38 +b Fr(T)-5 b(o)23 b(sto)r(c)n(k)g(in)f(the)h(transp)r(osition)f(table,)g +(not)h(only)f(the)h(n)n(um)n(b)r(er)e(of)i(pro-)2180 +5119 y(cessors)18 b(but)g(also)i(whic)n(h)e(pro)r(cessors)g(are)g +(curren)n(tly)f(ev)l(aluating)h(a)h(giv)n(en)2180 5183 +y(p)r(osition,)26 b(so)h(that)f(w)n(e)h(can)f(distribute)f(the)g(new)h +(windo)n(ws)i(b)r(ounds)d(to)2180 5247 y(all)d(concerned)d(pro)r +(cessors.)2104 5327 y Fc({)38 b Fr(T)-5 b(o)19 b(c)n(hec)n(k,)f(when)h +(\014nishing)f(the)g(ev)l(aluation)h(of)g(a)g(no)r(de,)g(that)g(its)g +(paren)n(t)2180 5391 y(no)r(de)j(has)h(not)g(b)r(een)f(pruned)g(\(i.e.) +31 b(b)n(y)23 b(lo)r(oking)g(up)g(the)f(corresp)r(onding)2180 +5455 y(en)n(try)f(in)h(the)f(transp)r(osition)h(table\).)2049 +5535 y(The)g(latter)f(metho)r(d)g(is)h(the)f(easiest)h(to)g(implemen)n +(t)e(but)h(this)h(only)g(partially)2049 5599 y(solv)n(es)30 +b(the)e(problem)g(while)g(the)h(former)f(will)h(require)f(more)h +(fundamen)n(tal)2049 5662 y(mo)r(di\014cations)20 b(of)i(the)g(searc)n +(h)f(pro)r(cess.)p eop +%%Page: 7 7 +7 6 bop -150 83 a Fx(imp)r(ossible)20 b(\(this)f(is)h(imp)r(ortan)n(t)e +(to)i(ensure)f(that)g(ABD)n(AD)n(A)e(w)n(orks)-150 166 +y(correctly)-6 b(,)28 b(i.e.)38 b(that)27 b(the)f(n)n(um)n(b)r(er)f(of) +j(pro)r(cessors)g(is)f(correct)h(for)g(a)-150 249 y(giv)n(en)e(transp)r +(osition)g(table)g(en)n(try\).)-35 396 y(In)20 b(an)h(adaptation)h(of)f +(F)-6 b(renc)n(hess)21 b(for)h(a)f(CRA)-6 b(Y)20 b(SUN)f(CS)i(6400,) +-150 479 y(w)n(e)e(used)g(shared)f(memory)f(with)i(m)n(utex)e(\(m)n +(utual)g(exclusion\))i(lo)r(c)n(ks)-150 562 y(to)k(guaran)n(tee)g(the)f +(exclusiv)n(e)h(access)h(to)f(eac)n(h)g(transp)r(osition)h(table)-150 +645 y(en)n(try)-6 b(.)32 b(Precise)25 b(measuremen)n(t)d(of)i(the)f(sp) +r(eedup)f(w)n(as)j(not)e(p)r(ossible)-150 729 y(on)h(this)f(mac)n(hine) +378 697 y Fv(13)466 729 y Fx(but)g(it)g(lo)r(ok)n(ed)h(v)n(ery)f(m)n +(uc)n(h)f(lik)n(e)h(what)h(w)n(e)g(had)-150 812 y(seen)35 +b(on)h(the)f(CM5)h(ev)n(en)f(though)g(single)h(pro)r(cessor)h(sp)r(eed) +e(w)n(as)-150 895 y(around)25 b(four)i(times)e(greater.)-35 +1042 y(On)20 b(the)g(CRA)-6 b(Y)19 b(T3D,)i(w)n(e)g(used)g(the)f(SHMEM) +g(library[1)q(])h(after)-150 1125 y(w)n(e)31 b(found)g(ho)n(w)g(to)f +(ensure)h(m)n(utual)e(exclusion)i(with)g(the)g(help)f(of)-150 +1208 y(the)25 b Ft(shmem)p 182 1208 24 4 v 30 w(swap)h +Fx(call[2)r(].)-35 1355 y(Single)c(PE)f(p)r(erformance)g(on)g(the)f +(T3D)i(w)n(as)g(a)f(big)g(disapp)r(oin)n(t-)-150 1438 +y(men)n(t)h(for)j(us)f(:)34 b(on)24 b(a)g(50)g(MHz)g(SP)-6 +b(AR)n(C)23 b(10)i(\(or)f(a)g(single)h(pro)r(cessor)-150 +1521 y(of)e(the)f(CRA)-6 b(Y)20 b(CS6400\),)25 b(the)d(sequen)n(tial)g +(algorithm)g(w)n(as)h(visiting)-150 1604 y(around)32 +b(20000-25000)k(p)r(ositions)e(p)r(er)f(second.)55 b(W)-6 +b(e)32 b(had)g(similar)-150 1687 y(b)r(enc)n(hmarks)22 +b(on)i(a)g(150)h(MHz)f(DEC)g(Alpha)f(station.)35 b(But,)25 +b(on)e(the)-150 1770 y(CRA)-6 b(Y)21 b(T3D,)i(the)f(sp)r(eed)g(on)h +(one)f(PE)h(w)n(as)g(only)f(in)g(the)g(7000-9000)-150 +1853 y(p)r(ositions/second)35 b(range)f(!)57 b(Probably)-6 +b(,)36 b(this)d(p)r(o)r(or)h(p)r(erformance)-150 1936 +y(w)n(as)27 b(due)e(to)h(t)n(w)n(o)g(problems)f(:)-56 +2104 y(1.)39 b(cac)n(he)30 b(problems)e(:)42 b(cac)n(he)30 +b(to)r(o)g(small)g(and)f(cac)n(he)g(in)n(v)l(alida-)42 +2187 y(tion,)-56 2295 y(2.)39 b(p)r(o)r(or)26 b(optimisations)h(from)e +(the)h(compiler.)-35 2462 y(Nev)n(ertheless)31 b(and)g(despite)g(the)g +(fact)h(that)f(w)n(e)h(did)e(not)i(ha)n(v)n(e)-150 2545 +y(enough)21 b(CPU)h(time)447 2513 y Fv(14)532 2545 y +Fx(to)g(complete)f(all)h(the)f(tests)h(to)f(compute)f(the)-150 +2628 y(sp)r(eedup,)28 b(parallel)i(p)r(erformances)e(w)n(ere)g(great)h +(:)39 b(to)28 b(ha)n(v)n(e)f(results)-150 2711 y(comparable)35 +b(to)f(those)h(w)n(e)g(obtained)g(on)f(the)g(CM5,)k(w)n(e)d(used)g(a) +-150 2794 y(searc)n(h)26 b(with)g(a)g(simple)f(ev)l(aluation,)i(no)f +(extensions)g(except)f(c)n(hec)n(k)-150 2877 y(extensions,)h(no)g +(futilit)n(y)g(cutt-o\013s)f(and)g(no)h(n)n(ull)f(mo)n(v)n(e)g +(pruning.)p -139 3065 1979 4 v -141 3139 4 75 v -89 3117 +a Fl(Depth)p 262 3139 V 272 w Fo(3)p 487 3139 V 190 w(4)p +712 3139 V 190 w(5)p 938 3139 V 190 w(6)p 1163 3139 V +190 w(7)p 1388 3139 V 190 w(8)p 1613 3139 V 190 w(9)p +1838 3139 V -139 3143 1979 4 v -141 3217 4 75 v -89 3195 +a Fl(Sp)r(eedup)p 262 3217 V 102 w Fo(1.36)p 487 3217 +V 100 w(3.07)p 712 3217 V 100 w(5.75)p 938 3217 V 100 +w(12.9)p 1163 3217 V 100 w(23.3)p 1388 3217 V 100 w(41.2)p +1613 3217 V 100 w(65.9)p 1838 3217 V -139 3221 1979 4 +v -150 3443 a Fx(T)-6 b(able)18 b(1:)31 b(Sp)r(eedup)16 +b(for)j(a)e(128-PE)i(CRA)-6 b(Y)16 b(T3D)i(compared)f(to)h(1PE)-150 +3526 y(with)34 b(128)h(times)e(smaller)i(transp)r(osition)g(table)f(on) +g(the)f(Bratk)n(o-)-150 3609 y(Kop)r(ec)26 b(p)r(ositions.)-35 +3783 y(Due)34 b(to)g(the)g(short)g(time,)i(w)n(e)f(did)e(the)h(\014rst) +g(test)g(without)h(a)-150 3866 y(constan)n(t)25 b(n)n(um)n(b)r(er)d(of) +j(transp)r(osition)h(table)f(en)n(tries)f(:)34 b(when)25 +b(using)-150 3949 y(128)f(pro)r(cessors)g(w)n(e)g(had)e(128)i(more)e +(en)n(tries)h(\(1M)h(en)n(tries)f(p)r(er)f(pro-)-150 +4032 y(cessor\))29 b(than)e(when)h(using)f(only)h(one)g(pro)r(cessor.) +42 b(T)-6 b(able)28 b(1)g(sho)n(ws)-150 4115 y(that)36 +b(in)g(those)h(conditions,)j(at)c(depth)g(9,)j(w)n(e)e(ha)n(v)n(e)f(an) +g(a)n(v)n(erage)-150 4198 y(absolute)26 b(sp)r(eedup)f(of)h(65.9)i(on)d +(the)g(24)i(Bratk)n(o-Kop)r(ec)e(p)r(ositions.)-150 4281 +y(During)d(real)i(games,)g(where)f(eac)n(h)g(pla)n(y)n(er)g(has)g(2)g +(hours)g(to)g(pla)n(y)f(40)-150 4364 y(mo)n(v)n(es,)i(F)-6 +b(renc)n(hess)25 b(searc)n(hes)g(most)f(p)r(ositions)i(to)f(depth)e +(10,)j(11)g(or)-150 4447 y(12)i(and)e(ev)n(en)g(more)g(in)h +(simpli\014ed)f(endgames.)38 b(W)-6 b(e)26 b(did)h(not)g(ha)n(v)n(e) +-150 4530 y(enough)k(time)f(to)i(compute)e(the)g(p)r(ositions)j(on)e +(one)g(pro)r(cessor)i(at)-150 4613 y(depth)28 b(10,)j(so)f(w)n(e)f +(compared)g(the)f(relativ)n(e)i(sp)r(eedup)e(of)i(128)g(pro-)-150 +4696 y(cessors)g(compared)e(to)h(32)g(with)f(a)h(constan)n(t)g(transp)r +(osition)h(table)-150 4779 y(in)c(table)g(2.)-35 4926 +y(Since)17 b(the)g(sp)r(eedup)g(for)h(32)g(pro)r(cessors)h(with)e(a)h +(constan)n(t)f(trans-)-150 5009 y(p)r(osition)42 b(table)g(size)h(is)f +(ab)r(out)f(28)h(at)g(depth)e(9)i(and)f(that)g(the)p +-150 5060 801 4 v -96 5114 a Fv(13)-31 5139 y Fr(The)16 +b(only)h(w)n(a)n(y)g(w)n(ould)f(ha)n(v)n(e)h(b)r(een)e(to)h(mak)n(e)g +(sure)g(that)h(nob)r(o)r(dy)e(else)h(used)-150 5203 y(the)23 +b(same)h(partition)f(as)h(F)-5 b(renc)n(hess.)32 b(W)-5 +b(e)23 b(did)h(not)f(try)h(to)g(negotiate)f(this)h(as)-150 +5267 y(w)n(e)h(knew)f(w)n(e)h(w)n(ould)f(b)r(e)g(mo)n(ving)g(to)h(the)f +(T3D)h(so)r(on)g(and)f(the)g(CS6400)h(w)n(as)-150 5330 +y(rather)c(hea)n(vily)h(used.)-96 5382 y Fv(14)-31 5407 +y Fr(T)-5 b(o)16 b(complete)d(our)i(test,)h(for)f(example)e(computing)h +(the)g(sp)r(eedup)f(at)j(depth)-150 5471 y(10,)j(w)n(e)g(w)n(ould)g(ha) +n(v)n(e)f(had)g(to)g(use)h(the)e(whole)h(mac)n(hine)f(for)h(sev)n(eral) +g(hours)h(just)-150 5535 y(to)f(measure)f(the)g(p)r(erformance)e(of)j +(one)f(pro)r(cessor.)27 b(Our)18 b(problem)e(\(the)h(w)n(orld)-150 +5599 y(Championship\))26 b(b)r(eing)g(a)i(short)f(term)g(practical)f +(one,)i(w)n(e)f(sp)r(en)n(t)g(mac)n(hine)-150 5663 y(time)21 +b(in)h(a)g(more)g(useful)f(w)n(a)n(y)-5 b(.)p 2079 82 +1942 4 v 2077 132 4 50 v 2128 117 a Fb(Depth)p 2410 132 +V 236 w Fq(3)p 2611 132 V 173 w(4)p 2812 132 V 173 w(5)p +3013 132 V 173 w(6)p 3214 132 V 173 w(7)p 3415 132 V +173 w(8)p 3616 132 V 173 w(9)p 3818 132 V 145 w(10)p +4019 132 V 2079 135 1942 4 v 2077 185 4 50 v 2128 170 +a Fb(Sp)r(eedup)p 2410 185 V 98 w Fq(1.05)p 2611 185 +V 100 w(1.13)p 2812 185 V 101 w(1.23)p 3013 185 V 100 +w(1.22)p 3214 185 V 100 w(1.49)p 3415 185 V 100 w(1.98)p +3616 185 V 100 w(2.62)p 3818 185 V 100 w(2.68)p 4019 +185 V 2079 188 1942 4 v 2049 411 a Fx(T)f(able)31 b(2:)44 +b(Relativ)n(e)31 b(Sp)r(eedup)e(for)i(a)g(128-PE)h(CRA)-6 +b(Y)29 b(T3D)i(com-)2049 494 y(pared)24 b(to)g(a)h(32-PE)g(CRA)-6 +b(Y)22 b(T3D)j(with)f(a)h(constan)n(t)f(transp)r(osition)2049 +577 y(table)i(size.)2049 851 y(sp)r(eedup)34 b(is)i(increasing)g(with)f +(searc)n(h)g(depth,)i(w)n(e)e(can)g(exp)r(ect)g(a)2049 +934 y(sp)r(eedup)40 b(sup)r(erior)g(to)h(75)g(for)g(128)g(PEs)g(for)g +(depth)e(10.)79 b(This)2049 1017 y(sho)n(ws)21 b(clearly)g(that)g(ABD)n +(AD)n(A)d(is)j(v)n(ery)e(e\016cien)n(t)i(on)f(the)g(program)2049 +1100 y(F)-6 b(renc)n(hess)26 b(for)g(a)g(128-PE)h(CRA)-6 +b(Y)24 b(T3D.)2049 1441 y Fy(6)100 b(CONCLUSION)2049 +1679 y Fx(W)-6 b(e)38 b(ha)n(v)n(e)g(describ)r(ed)h(a)f(new)h +(parallelism)h(sc)n(heme)e(e\016cien)n(t)g(for)2049 1762 +y(minimax)18 b(searc)n(h.)33 b(W)-6 b(e)20 b(ha)n(v)n(e)g(sho)n(wn)g +(that)g(under)f(some)h(conditions)2049 1845 y(this)26 +b(new)g(sc)n(heme)f(can)g(b)r(e)h(more)f(e\016cien)n(t)h(than)f(YBW)n +(C.)2164 1992 y(Doing)j(all)h(those)f(comparisons)g(on)f(the)g(same)h +(computers)e(us-)2049 2075 y(ing)g(the)f(same)h(co)r(de,)g(w)n(e)g(ha)n +(v)n(e)f(sho)n(wn)h(that)g(comparisons)g(of)g(par-)2049 +2158 y(allel)38 b(algorithms)f(are)h(only)e(v)l(alid)h(for)g(the)g(giv) +n(en)f(problem)g(\(i.e.)2049 2241 y(the)28 b(nature)g(of)h(the)f(game,) +h(the)f(algorithms,)i(and)e(the)g(ev)l(aluation)2049 +2324 y(function\))35 b(on)g(a)g(giv)n(en)g(computer.)62 +b(There)35 b(is)h(no)f(p)r(ossible)h(w)n(a)n(y)2049 2407 +y(to)29 b(sa)n(y)-6 b(,)29 b(giv)n(en)f(one)h(comparison,)g(on)g +(whatev)n(er)f(problem)g(and)g(on)2049 2490 y(whatev)n(er)i(computer)e +(an)i(algorithm)g(is)g(univ)n(ersally)g(b)r(etter)f(than)2049 +2573 y(all)e(others.)2164 2720 y(F)-6 b(urthermore,)32 +b(the)f(analysis)h(done)f(of)i(the)d(CRA)-6 b(Y)30 b(T3D,)j(de-)2049 +2803 y(spite)e(the)g(lac)n(k)g(of)h(CPU)f(time,)g(sho)n(w)n(ed)h(that)e +(ABD)n(AD)n(A)f(is)j(still)2049 2886 y(v)n(ery)25 b(e\016cien)n(t)g +(with)h(128)h(pro)r(cessors.)2164 3034 y(W)-6 b(e)32 +b(w)n(ould)g(lik)n(e)g(to)g(con)n(tin)n(ue)g(this)g(w)n(ork)g(in)g +(order)g(to)g(giv)n(e)h(a)2049 3117 y(comparison)i(of)h(ABD)n(AD)n(A)d +(and)h(YBW)n(C,)h(using)h(the)e(measures)2049 3200 y(of)24 +b Fs(critic)l(al-p)l(ath)j(length)k Fx(and)23 b Fs(work)j(p)l(erforme)l +(d)8 b Fx([12)r(],)24 b(to)g(ha)n(v)n(e)e(more)2049 3283 +y(predictiv)n(e)e(p)r(o)n(w)n(er)g(on)g(the)f(b)r(eha)n(viour)h(of)h +(those)f(algorithms.)33 b(This,)2049 3366 y(done)23 b(on)f(t)n(w)n(o)i +(di\013eren)n(t)e(games,)i(ma)n(y)d(help)i(us)f(understand)g(b)r(etter) +2049 3449 y(the)j(parallel)j(searc)n(hes.)2164 3596 y(Probably)e(ABD)n +(AD)n(A)e(is)i(only)g(a)g(small)g(step)g(to)n(w)n(ard)g(the)f(def-)2049 +3679 y(inition)42 b(of)g(future)f(parallel)i(algorithms,)j(but)41 +b(when)g(designing)2049 3762 y(them,)28 b(w)n(e)i(should)e(k)n(eep)g +(in)h(mind)f(the)g(p)r(o)n(w)n(er)h(of)h(a)f(global)h(trans-)2049 +3845 y(p)r(osition)d(table.)2049 4178 y Fy(6.1)100 b(A)m(CKNO)m +(WLEDGEMENTS)2049 4390 y Fx(Thanks)30 b(to)h(Marc-F)-6 +b(ran\030)-34 b(cois)32 b(Baudot)f(for)g(his)g(great)g(help)f(on)g(the) +2049 4473 y(de\014nition)44 b(and)h(the)f(implemen)n(tation)f(of)j(the) +e(c)n(hess)h(program)2049 4556 y Fs(F)-6 b(r)l(enchess)6 +b Fx(.)2164 4704 y(Marc-F)-6 b(ran\030)-34 b(cois)67 +b(Baudot,)76 b(Mark)66 b(Bro)r(c)n(kington,)76 b(W)-6 +b(arren)2049 4787 y(Smith)33 b(and)g(Mic)n(hael)j(Buro)e(should)g(also) +i(b)r(e)e(thank)n(ed)f(for)i(their)2049 4870 y(help)25 +b(in)h(editing)g(the)f(do)r(cumen)n(t.)2164 5017 y(Thanks)44 +b(also)i(to)f(m)n(y)d(thesis)j(review)n(ers,)51 b(T)-6 +b(on)n(y)44 b(Marsland,)2049 5100 y(Jacques)33 b(Pitrat)g(and)g(Mic)n +(hel)g(Gondran)g(for)g(all)h(their)e(construc-)2049 5183 +y(tiv)n(e)25 b(criticism)h(on)g(Chapter)g(4)g(of)g(m)n(y)e(thesis.)2164 +5330 y(The)k(presen)n(t)f(w)n(ork)g(has)h(b)r(een)f(p)r(erformed)g(in)g +(the)g(framew)n(ork)2049 5413 y(of)f(the)f Fs(F)-6 b(r)l(enchess)34 +b Fx(pro)t(ject,)26 b(part)f(of)h(a)g(join)n(t)f(researc)n(h)h +(e\013ort)g(with)2049 5496 y(Electricit)n(\023)-36 b(e)28 +b(de)f(F)-6 b(rance)27 b(\(departmen)n(t)e(EDF/DER/TIEM/IMA\))2049 +5579 y(and)35 b(the)f(Arti\014cial)i(In)n(telligence)g(Institut)e(of)i +(the)f(univ)n(ersit)n(y)f(of)2049 5662 y(P)n(aris)27 +b(8.)p eop +%%Page: 8 8 +8 7 bop -150 83 a Fy(REFERENCES)-112 254 y Fx([1])40 +b Fa(Barriuso,)29 b(R.,)h(and)f(Knies,)g(A.)38 b Fs(SHMEM)28 +b(User's)h(Guide)8 337 y(R)l(evision)f(1.08)p Fx(.)34 +b(CRA)-6 b(Y)25 b(Researc)n(h)g(Inc,)h(April)f(1994.)-112 +449 y([2])40 b Fa(Ba)n(udot,)47 b(M.-F.,)g(Weill,)g(J.-C.,)h(Seret,)e +(J.-L.,)i(and)8 532 y(Gondran,)d(M.)75 b Fx(F)-6 b(renc)n(hess:)63 +b(A)39 b(Cra)n(y)h(T3D)g(at)g(the)f(8th)8 615 y(W)-6 +b(orld)20 b(Computer)f(Chess)i(Championship.)k(In)20 +b Fs(1st)j(Eur)l(op)l(e)l(an)8 708 y(Cr)l(ay-T3D)i(Workshop)i +Fx(\(Sept.)22 b(1995\),)1186 690 y(\023)1179 708 y(Ecole)h(P)n(olytec)n +(hnique)8 792 y(F)n(\023)-36 b(ed)n(\023)g(erale)26 b(de)g(Lausanne)g +(and)f(CRA)-6 b(Y)24 b(Researc)n(h.)-112 903 y([3])40 +b Fa(Berliner,)35 b(H.,)i(and)d(Ebeling,)j(C.)54 b Fx(P)n(attern)32 +b(kno)n(wledge)8 986 y(and)d(searc)n(h:)43 b(The)30 b(SUPREM)g(arc)n +(hitecture.)47 b Fs(A)n(rti\014cial)31 b(In-)8 1069 y(tel)t(ligenc)l(e) +d(38)p Fx(,)e(2)g(\(Mar.)h(1989\),)g(161{198.)-112 1181 +y([4])40 b Fa(Bra)-5 b(tk)n(o,)41 b(I.,)e(and)e(K)n(opec,)j(D.)61 +b Fx(A)34 b(test)h(for)h(comparison)8 1264 y(of)31 b(h)n(uman)e(and)h +(computer)g(p)r(erformance.)49 b(In)30 b Fs(A)l(dvanc)l(es)j(in)8 +1347 y(Computer)28 b(Chess)h(III)35 b Fx(\(1982\),)27 +b(M.)f(Clark)n(e,)h(Ed.,)f(P)n(ergamon)8 1430 y(Press,)h(pp.)e(31{56.) +-112 1541 y([5])40 b Fa(Br)n(ockington,)g(M.)59 b Fx(An)34 +b(implemen)n(tation)f(of)i(the)e(y)n(oung)8 1624 y(brothers)j(w)n(ait)g +(concept.)65 b(In)n(ternal)35 b(rep)r(ort,)k(Univ)n(ersit)n(y)c(of)8 +1707 y(Alb)r(erta,)26 b(1994.)-112 1819 y([6])40 b Fa(D)n(a)-7 +b(vid,)43 b(V.)71 b Fs(A)n(lgorithmique)39 b(p)l(ar)l(al)t(l)n(\022)-37 +b(ele)40 b(sur)g(les)f(arbr)l(es)i(de)8 1917 y(d)n(\023)-37 +b(ecision)31 b(et)g(r)l(aisonnement)h(en)f(temps)h(c)l(ontr)l(aint.) +1578 1898 y(\023)1567 1917 y(Etude)f(et)8 2000 y(applic)l(ation)41 +b(au)g(Minimax)p Fx(.)75 b(PhD)40 b(thesis,)k(ENSAE,)39 +b(No)n(v.)8 2083 y(1993.)-112 2194 y([7])h Fa(Feldmann,)c(R.)53 +b Fs(Spielb)l(aumsuche)35 b(mit)e(massiv)h(p)l(ar)l(al)t(lelen)8 +2277 y(Systemen)p Fx(.)52 b(PhD)31 b(thesis,)i(F)-6 b(ac)n(h)n(b)r +(ereic)n(h)31 b(Mathematik)g(/)g(In-)8 2360 y(formatik)25 +b({)h(Univ)n(ersit\177)-38 b(at)26 b(GH)f(P)n(aderb)r(orn,)i(1993.)-112 +2472 y([8])40 b Fa(Feldmann,)g(R.,)g(Monien,)f(B.,)h(Mysliwietz,)g(P.,) +h(and)8 2555 y(V)n(ornber)n(ger,)h(O.)67 b Fx(Distributed)36 +b(game)h(tree)g(searc)n(h.)68 b(In)8 2638 y Fs(Par)l(al)t(lel)20 +b(A)n(lgorithms)i(for)e(Machine)h(Intel)t(ligenc)l(e)g(and)g(Vision)8 +2721 y Fx(\(1990\),)g(V.)c(Kumar,)i(K.)f(L.N.,)i(and)d(P)-6 +b(.)18 b(F)-6 b(opalkrishman,)19 b(Eds.,)8 2804 y(Springer)25 +b(V)-6 b(erlag,)27 b(pp.)e(66{101.)-112 2915 y([9])40 +b Fa(Feldmann,)32 b(R.,)h(Mysliwietz,)g(P.,)h(and)d(V)n(ornber)n(ger,)8 +2998 y(O.)24 b Fx(A)19 b(lo)r(cal)i(area)f(net)n(w)n(ork)g(used)f(as)h +(as)g(parallel)h(arc)n(hitecture.)8 3081 y(T)-6 b(ec)n(h.)26 +b(Rep.)f(31,)i(Univ)n(ersit)n(y)d(of)j(P)n(aderb)r(orn,)f(Sept.)f +(1986.)-150 3193 y([10])40 b Fa(Hy)-5 b(a)g(tt,)35 b(M.,)g(Suter,)g +(B.,)g(and)f(Nelson,)h(H.)51 b Fx(A)31 b(parallel)8 3276 +y(alpha/b)r(eta)19 b(searc)n(hing)f(algorithm.)k Fs(Par)l(al)t(lel)e +(Computing)h(10)p Fx(,)8 3359 y(3)26 b(\(1989\),)h(299{308.)-150 +3470 y([11])40 b Fa(Kuszma)n(ul,)31 b(B.)41 b Fs(Synchr)l(onize)l(d)32 +b(MIMD)d(Computing)p Fx(.)42 b(PhD)8 3553 y(thesis,)25 +b(Departmen)n(t)e(of)i(Electrical)i(Engineering)e(and)g(Com-)8 +3636 y(puter)35 b(Science,)j(Massac)n(h)n(usetts)f(Institute)d(of)i(T) +-6 b(ec)n(hnology)g(,)8 3720 y(Ma)n(y)26 b(1994.)-150 +3831 y([12])40 b Fa(Kuszma)n(ul,)35 b(B.)51 b Fx(The)31 +b(StarT)-6 b(ec)n(h)31 b(massiv)n(ely-parallel)i(c)n(hess)8 +3914 y(program.)h Fs(ICCA)27 b(Journal)h(18)p Fx(,)f(1)f(\(Mar.)g +(1995\),)i(3{19.)-150 4026 y([13])40 b Fa(Marsland,)30 +b(T.)39 b Fx(A)27 b(review)h(of)g(game-tree)f(pruning.)40 +b Fs(ICCA)8 4109 y(Journal)28 b(9)p Fx(,)e(1)g(\(1986\),)i(3{19.)-150 +4220 y([14])40 b Fa(Marsland,)26 b(T.,)h(and)f(Campbell,)h(M.)32 +b Fx(P)n(arallel)26 b(searc)n(h)f(of)8 4303 y(strongly)j(ordered)f +(game)g(trees.)40 b Fs(Computing)29 b(Surveys)i(14)p +Fx(,)e(4)8 4386 y(\(1982\),)e(553{562.)-150 4498 y([15])40 +b Fa(Marsland,)d(T.,)g(Olafsson,)i(M.,)e(and)e(Schaeffer,)i(J.)8 +4581 y Fx(Multipro)r(cessor)23 b(tree-searc)n(h)f(exp)r(erimen)n(ts.)27 +b(In)21 b Fs(A)l(dvanc)l(es)k(in)8 4664 y(Computer)38 +b(Chess)g(IV)50 b Fx(\(1986\),)40 b(D.)c(Beal,)41 b(Ed.,)e(P)n(ergamon) +8 4747 y(Press,)27 b(pp.)e(37{51.)-150 4858 y([16])40 +b Fa(Marsland,)25 b(T.,)g(and)f(Popo)n(wich,)j(F.)h Fx(P)n(arallel)d +(game)d(tree)8 4941 y(searc)n(h.)71 b Fs(IEEE)38 b(T)-6 +b(r)l(ansactions)41 b(on)e(Pattern)h(A)n(nalysis)f(and)8 +5024 y(Machine)28 b(Intel)t(ligenc)l(e)g(7)p Fx(,)e(4)g(\(1985\),)h +(442{452.)-150 5136 y([17])40 b Fa(Newborn,)g(M.)60 b +Fx(Unsync)n(hronized)33 b(iterativ)n(ely)i(deep)r(ening)8 +5219 y(parallel)27 b(alpha-b)r(eta)g(searc)n(h.)35 b +Fs(IEEE)28 b(T)-6 b(r)l(ansactions)30 b(on)e(Pat-)8 5302 +y(tern)46 b(A)n(nalysis)f(and)g(Machine)h(Intel)t(ligenc)l(e)f(P)-6 +b(AMI-10)p Fx(,)50 b(5)8 5385 y(\(Sept.)25 b(1988\),)i(687{694.)-150 +5496 y([18])40 b Fa(Otto,)31 b(S.,)e(and)g(Fel)-5 b(ten,)29 +b(E.)39 b Fx(Chess)27 b(on)g(a)h(h)n(yp)r(ercub)r(e.)37 +b(In)8 5579 y Fs(The)30 b(Thir)l(d)g(Confer)l(enc)l(e)h(on)f(Hyp)l(er)l +(cub)l(e)i(Concurr)l(ent)g(Com-)8 5663 y(puters)d(and)f(Applic)l +(ations)33 b Fx(\(1988\),)27 b(v)n(ol.)f(2,)g(pp.)g(1329{1341.)2049 +83 y([19])40 b Fa(Pearl,)26 b(J.)j Fx(Asymptotic)21 b(prop)r(erties)i +(of)g(minimax)d(trees)j(and)2207 166 y(game-searc)n(hing)40 +b(pro)r(cedures.)75 b Fs(A)n(rti\014cial)40 b(Intel)t(ligenc)l(e)h(14) +2207 249 y Fx(\(1980\),)27 b(113{138.)2049 365 y([20])40 +b Fa(Reinefeld,)k(A.)74 b Fx(An)39 b(impro)n(v)n(emen)n(t)d(to)k(the)f +(scout)g(tree-)2207 448 y(searc)n(h)26 b(algorithm.)35 +b Fs(ICCA)27 b(Journal)h(6)p Fx(,)e(4)g(\(1983\),)h(4{14.)2049 +565 y([21])40 b Fa(Schaeffer,)30 b(J.)40 b Fx(Distributed)27 +b(game-tree)h(searc)n(h.)41 b Fs(Journal)2207 648 y(of)28 +b(Par)l(al)t(lel)g(and)h(Distribute)l(d)h(Computing)f(6)p +Fx(,)e(2)g(\(1989\),)i(90{)2207 731 y(114.)2049 847 y([22])40 +b Fa(Thinking)f(Ma)n(chines)h(Corpora)-5 b(tion)p Fx(.)71 +b Fs(CMMD)38 b(R)l(efer-)2207 930 y(enc)l(e)i(Manual)g(V3.0)p +Fx(.)72 b(Cam)n(bridge,)42 b(Massac)n(h)n(usetts,)i(Ma)n(y)2207 +1013 y(1993.)2049 1129 y([23])c Fa(Weill,)73 b(J.-C.)141 +b Fs(Pr)l(o)l(gr)l(ammes)63 b(d')n(\023)-37 b(eche)l(cs)61 +b(de)g(champi-)2207 1212 y(onnat)37 b(:)52 b(ar)l(chite)l(chtur)l(e)40 +b(lo)l(giciel)t(le,)d(synth)n(\022)-37 b(ese)39 b(de)d(fonctions)2207 +1295 y(d')n(\023)-37 b(evaluation,)46 b(p)l(ar)l(al)t(l)n(\023)-37 +b(elisme)43 b(de)g(r)l(e)l(cher)l(che)p Fx(.)86 b(PhD)41 +b(thesis,)2207 1378 y(Univ)n(ersit)n(\023)-36 b(e)42 +b(de)g(P)n(aris)i(VI)r(I)r(I,)e(Sain)n(t-Denis)f(\(F)-6 +b(rance\),)47 b(Jan.)2207 1461 y(1995.)2049 1577 y([24])40 +b Fa(Wir)-5 b(th,)29 b(N.)37 b Fs(A)n(lgorithms)29 b(and)g(Data)g +(Structur)l(es)p Fx(.)41 b(Pren)n(tice-)2207 1660 y(Hall)26 +b(In)n(ternational)g(Editions,)h(1986.)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/parallel/brockington96aphid.ps b/parallel/brockington96aphid.ps new file mode 100755 index 0000000..7709d3e --- /dev/null +++ b/parallel/brockington96aphid.ps @@ -0,0 +1,34409 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: aphid_tr.dvi +%%Pages: 24 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips aphid_tr +%DVIPSParameters: dpi=300, compressed, comments removed +%DVIPSSource: TeX output 1996.08.20:2324 +%%BeginProcSet: texc.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]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /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 +%%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 300 300 (aphid_tr.dvi) +@start /Fa 1 49 df<1204120EA2121CA31238A212301270A21260A212C0A2070F7F8F +0A>48 D E /Fb 59 123 df35 D38 D<13E01201EA0380EA0700120E5AA25AA25AA35AA912 +70A37EA27EA27E7EEA0380EA01E012000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA +0380A3EA01C0A9EA0380A3EA0700A2120EA25A5A5A5A5A0A217B9C16>I +I<13E0A8B512E0A33800E000A813137F9516>I<1238127C127EA2123E120E121E121C12 +7812F01260070B798416>I<127012F8A312700505788416>46 D<12035AA25A5AB4FCA2 +12E71207AEEAFFF8A30D197B9816>49 DI<13E0487EA213B0A2EA03B8A31318EA071CA5EA0E0EA2EA0FFEA2487EEA +1C07A3387E0FC038FF1FE0387E0FC013197F9816>65 DI<3801F180EA07FBEA0FFFEA1F0FEA3C07EA38031270A200F0C7FC5AA77E +38700380A21238383C0700EA1F0FEA0FFE6C5AEA01F011197E9816>II<387FFFC0B5FC7EEA1C01A490C7FCA2131CA2EA1FFCA3EA1C1CA290 +C7FC14E0A5EA7FFFB5FC7E13197F9816>I<387FFFE0B5FC7EEA1C00A41400A2131CA2EA +1FFCA3EA1C1CA290C7FCA6EA7F80487E6C5A13197F9816>I<3801F180EA07FBEA0FFFEA +1F0FEA3C07EA38031270A200F0C7FC5AA4EB1FC014E014C038F00380127013071238123C +EA1E0FEA0FFFEA07FBEA01F313197F9816>I<387F07F038FF8FF8387F07F0381C01C0A7 +EA1FFFA3EA1C01A9387F07F038FF8FF8387F07F01519809816>II<387F0FE038FF8FF0387F0FE0381C0780 +EB0F00130E5B133C5B5B5BEA1DF0121F7F1338EA1E1C121C7FA27FA2EB0380387F07E038 +FF8FF0387F07E01419809816>75 DI<38FC07E0EAFE0FA2383A0B80EA3B1BA513BBEA39B3A413F3EA38E3A21303A538FE +0FE0A313197F9816>I<387E07F038FF0FF8387F07F0381D81C0A313C1121C13E1A21361 +1371A313311339A21319131D130DA3EA7F07EAFF87EA7F031519809816>III82 +DI<387FFFE0B5FCA2 +EAE0E0A400001300AFEA07FC487E6C5A13197F9816>I<387F07F038FF8FF8387F07F038 +1C01C0B0380E0380A23807070013FF6C5AEA00F81519809816>I<38FE0FE0A338380380 +EA3C07001C1300A3EA1E0FEA0E0EA46C5AA4EA031813B8A3EA01B013F0A26C5A13197F98 +16>I<387F1F80EB3FC0EB1F80380E1E00131C12075BEA03B813F012015B120012017F12 +0313B81207131C120FEA0E0EA2487E387E0FC038FF1FE0387E0FC013197F9816>88 +D<38FE0FE0EAFF1FEAFE0F381C0700A2EA0E0EA26C5AA3EA03B8A2EA01F0A26C5AA8EA03 +F8487E6C5A13197F9816>I<387FFF80B5FCA238E007005B131E131CEA003C5B137013F0 +485A5B1203485A90C7FC5A381E0380121C123C12781270B5FCA311197E9816>II +93 D97 D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E +03C0EA1C01EB00E0A6EB01C0EA1E03381F0780EBFF00EA1DFEEA0C7813197F9816>II<133FA31307A4EA03C7EA0FF748B4FCEA3C1F487EEA700712E0A6EA70 +0F12786C5A381FFFE0EA0FF7EA07C713197F9816>II<131E137F3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C +5A11197F9816>I<3803E3C03807F7E0EA0FFF381C1CC038380E00A56C5AEA0FF8485AEA +1BE00038C7FC1218EA1FFC13FF481380387003C038E000E0A4387001C0EA7C07383FFF80 +380FFE00EA03F8131C7F9116>I<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA +38FF8FE0139F138F13197F9816>I<1203EA0780A2EA0300C7FCA4EAFF80A31203ACEAFF +FC13FE13FC0F1A7C9916>I<127E12FE127E120EA4EB7FE0A3EB0F00131E5B5B5B120F7F +13BC131EEA0E0E7F1480387F87F0EAFFCFEA7F871419809816>107 +DI<38F9C38038FFEFC0EB +FFE0EA3C78A2EA3870AA38FE7CF8A31512809116>IIII<387F0FC038FF3FE0EA7F7F3807F040EBC0005BA290 +C7FCA8EA7FFC12FF127F13127F9116>114 DI<12035AA4EA7FFFB5FCA20007C7FCA75BEB0380A3EB8700EA03FE6C5A6C5A11177F96 +16>II<387F1FC038FF9F +E0387F1FC0381C0700A2EA0E0EA36C5AA4EA03B8A3EA01F0A26C5A13127F9116>I<38FF +1FE0A338380380A4EA39F3A20019130013B3A3EA1DB71317EA1F1FEA0F1EEA0E0E13127F +9116>I<387F1FC0133F131F380F1E006C5AEA03B813F012016C5A12017FEA03B8EA073C +131CEA0E0E387F1FC038FF3FE0387F1FC013127F9116>I<387F1FC038FF9FE0387F1FC0 +381C0700120E130EA212075BA2EA039CA21398EA01B8A2EA00F0A35BA3485A1279127BEA +7F8090C7FC123C131B7F9116>I<383FFFC05AA238700780EB0F00131EC65A5B485A485A +EA078048C7FC381E01C0123C1278B5FCA312127F9116>I E /Fc +2 101 df<13201360A213C0A3EA0180A3EA0300A31206A25AA35AA35AA35AA35AA30B1D +7E9511>61 D<133C130C1318A41330EA07B0EA0C701210EA30601260A3EAC0C013C8A212 +41EA62D0EA3C700E147E9311>100 D E /Fd 7 56 df<1218127812981218AC12FF0810 +7D8F0F>49 D<121FEA6180EA40C0EA806012C01200A213C0EA0180EA030012065AEA1020 +1220EA7FC012FF0B107F8F0F>I<121FEA2180EA60C0A212001380EA0100121FEA008013 +40136012C0A2EA8040EA6080EA1F000B107F8F0F>III +I<1240EA7FF013E0EA8040A2EA0080EA01001202A212061204A2120CA50C117F900F>I +E /Fe 7 56 df<120C121C12EC120CAFEAFFC00A137D9211>49 D<121FEA60C01360EAF0 +7013301260EA0070A2136013C012011380EA02005AEA08101210EA2020EA7FE012FF0C13 +7E9211>II<136013E0A2EA016012021206120C120812 +101220126012C0EAFFFCEA0060A5EA03FC0E137F9211>I +II<1240EA7FFC13F8EA4010EA80301320EA00401380 +EA0100A25A12021206A2120EA512040E147E9311>I E /Ff 19 123 +df<90380FE02090387018603801C00439030003E000061301000E13004814605A152012 +78127000F01400A80070142012781238A26C14407E000614806CEB01003801C006380070 +18EB0FE01B1E7D9C21>67 D<39FFF00FF0390F0003C0150014025C5C5C1460148049C7FC +13021307497E1317EB23C0EB43E01381EB00F08014788080141F80EC078015C015E039FF +F01FF81D1C7D9B23>75 D80 D<007FB512C038700F010060130000401440A200C01420 +1280A300001400B1497E3803FFFC1B1C7D9B21>84 D<387FFFFC387C00781270006013F0 +EB01E01240EB03C0EB0780A238000F00131EA25B5BA25B485A1404EA03C0EA0780A2380F +000C001E1308A248131848133814F8B5FC161C7D9B1C>90 D<13201370A313B8A3EA011C +A2EA031EEA020EA2487EEA07FFEA040738080380A2001813C01301123838FC07F815157F +9419>97 D101 D103 D<38FF8FF8381C01C0A9EA1FFFEA1C01A938FF8FF815157F9419>II<38FF81F8381C01E01480140013025B5B5B13301370 +13B8EA1D1C121EEA1C0E7F14801303EB01C014E014F038FF83FC16157F941A>107 +D<38FC03F8381E00E014401217EA138013C01211EA10E01370A21338131CA2130E130714 +C0130313011300123800FE134015157F9419>110 DI114 D<38FF83F8381C00E014 +40AE000C13C0000E138038060100EA0386EA00FC15157F9419>117 +D<39FF07F87E393C01E03C0038EBC018391C02E010A3390E047020A33907083840A33903 +901C80A33901E00F00A33800C006A31F157F9423>119 D<38FF07F0381E03C0000E1300 +EA0F02EA0706EA038413C8EA01D0EA00F0A21370137813BCEA011C487EEA020F487E380C +0380000813C0003C13E038FE07F815157F9419>I<38FF80FE381E0038000E1320000F13 +606C13403803808013C03801C10013E212001374137C1338A848B4FC1715809419>II E /Fg 58 123 df11 D<13FCEA0782EA0E07121C13 +0290C7FCA4B5FCEA1C07AC387F1FC01217809614>I34 D<126012F0A212701210A21220A21240A2040A7D960A +>39 D<120112021204120C1218A21230A212701260A312E0AA1260A312701230A21218A2 +120C12041202120108227D980E>I<12801240122012301218A2120CA2120E1206A31207 +AA1206A3120E120CA21218A2123012201240128008227E980E>I<126012F0A212701210 +A21220A21240A2040A7D830A>44 DI<126012F0A2126004047D +830A>I<1206120E12FE120EB1EAFFE00B157D9412>49 DII54 D56 DI<13101338A3135CA313 +8EA3EA0107A238020380A33807FFC0EA0401A2380800E0A2001813F0123838FE03FE1717 +7F961A>65 DIIII73 DI<38FF80FE381C0078146014401480EB0100130613085B133813 +78139CEA1D0E121EEA1C07EB0380EB01C0A2EB00E014701478147C38FF80FF18177F961B +>I<00FEEB03F8001E14C000171305A338138009A23811C011A33810E021A2EB7041A3EB +3881A2EB1D01A2130EA2123839FE040FF81D177F9620>77 D<00FC13FE001E1338001F13 +101217EA1380EA11C0A2EA10E013701338A2131C130E130F1307EB0390EB01D0A2EB00F0 +14701430123800FE131017177F961A>I<13FCEA0303380E01C0381C00E0481370003013 +30007013380060131800E0131CA700701338A200301330003813706C13E0380E01C03803 +0300EA00FC16177E961B>II83 D<387FFFF83860381800401308A200801304A300001300AF3803FF8016177F +9619>I86 D<12FCA212C0B3AB12FCA2 +06217D980A>91 D +I<12FCA2120CB3AB12FCA2062180980A>I97 D<12F81238A8EA39F0EA3E0C +EA380613077F1480A414005B1306EA361CEA21F011177F9614>II<133E130EA8EA07CE +EA1C3EEA300E1270126012E0A412601270EA301EEA182E3807CF8011177F9614>IIII<12F81238A813F8EA3B1CEA3C0E1238AA +38FE3F8011177F9614>I<12301278A212301200A512F81238AC12FE07177F960A>I<12F8 +1238A8133E13381330134013801239EA3FC0EA39E0123813F01378133CA2EAFE7F10177F +9613>107 D<12F81238B3A312FE07177F960A>I<38F8F83E383B1CC7393C0F0380EA380E +AA39FE3F8FE01B0E7F8D1E>IIIIIII<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F930E>III<38FEFE7C383838381410133C00 +1C1320134C381E4E60380ECE401387000713801303A200031300EA0201160E7F8D19>I< +EAFE3FEA3C1CEA1C10EA0E20EA074013C0EA0380EA01C0EA02E0EA04F0EA0870EA1838EA +383CEAFC7F100E7F8D13>III +E /Fh 5 50 df0 D<0040132000C01360006013C03830018038 +180300EA0C066C5A6C5AEA01B0EA00E0A2EA01B0EA0318EA060C487E487E383001803860 +00C04813600040132013147A9320>2 D<1203A4EAC30CEAE31CEA7338EA1FE0EA0780A2 +EA1FE0EA7338EAE31CEAC30CEA0300A40E127D9215>I15 +D49 D E /Fi 56 123 df<903801F03C9038071C47010C +13C7EC19C690381C0180140313181338A2EC0700A20003B512F03900700700A3140EA213 +E0A35CA2EA01C0A35CA2EA0380A21430EB0070A248136038C630E038E638C038CC3180D8 +781EC7FC2025819C19>11 D<14FE90380301801306EB0C03EB1C0191C7FC13181338A438 +03FFFE3800700EA35CA213E0A25CA3EA01C01472A438038034141891C7FC90C8FCA25A12 +C612E65A12781925819C17>I<12E0A3127012301210121812080508749C15>18 +D<12031207120E121C1238126012C012800808729C15>I<133C0163133001C113703801 +8080000314201301D807031340EC0080390E00010014025CEBE01A380F1021000E1341EC +8080EA1A203839C10038300160387000E0A248EB0100A31402A200605B00705B00305B6C +1360380E0380D801FCC7FC1C1F7B9D20>38 D<1218123CA31204A21208A2121012201240 +1280060C779C0D>I<12181238127812381208A21210A212201240A21280050C7D830D> +44 DI52 D54 D<131FEB60C0EBC060EA018038030030 +A200061360120714C013803803C10013E6EA01FCEA0078EA01BCEA061E487E487E383003 +801220EA6001A238C00300A21306EA60045BEA3830EA0FC0141D7D9B15>56 +D<133E13E138018180380300C01206120E120C121CA213011238A31303001813801307EA +080B380C3300EA03C7EA0007130E130C131C1318EAE0305BEA80C0EAC180003EC7FC121D +7C9B15>I<1206120FA212061200AA1230127812F0126008127C910D>I<1418A21438A214 +78A214B8EB0138A2EB023C141C1304130C13081310A21320A2EB7FFCEBC01C1380EA0100 +141E0002130EA25A120C001C131EB4EBFFC01A1D7E9C1F>65 D<48B5FC39003C03809038 +3801C0EC00E0A35B1401A2EC03C001E01380EC0F00141EEBFFFC3801C00E801580A2EA03 +80A43907000F00140E141E5C000E13F0B512C01B1C7E9B1D>I<903803F02090381E0C60 +90383002E09038E003C03801C001EA038048C7FC000E1480121E121C123C15005AA35AA4 +1404A35C12705C6C5B00185B6C485AD80706C7FCEA01F81B1E7A9C1E>I<48B5FC39003C +03C090383800E0A21570A24913781538A215785BA4484813F0A315E03803800115C01403 +15803907000700140E5C5C000E13E0B512801D1C7E9B1F>I<48B512F038003C00013813 +301520A35BA214081500495AA21430EBFFF03801C020A439038040801400A2EC0100EA07 +005C14021406000E133CB512FC1C1C7E9B1C>I<3A01FFC3FF803A003C00780001381370 +A4495BA449485AA390B5FC3901C00380A4484848C7FCA43807000EA448131E39FFE1FFC0 +211C7E9B1F>72 DII<3801FFC038003C001338A45BA4 +5BA4485AA438038002A31404EA0700140C14181438000E13F0B5FC171C7E9B1A>76 +DI79 +D<3801FFFE39003C038090383801C0EC00E0A3EB7001A315C0EBE0031580EC0700141C38 +01FFF001C0C7FCA3485AA448C8FCA45AEAFFE01B1C7E9B1C>I<3801FFFE39003C078090 +383801C015E01400A2EB7001A3EC03C001E01380EC0700141CEBFFE03801C03080141CA2 +EA0380A43807003C1520A348144039FFE01E80C7EA0F001B1D7E9B1E>82 +DI<001FB512C0381C070138300E0000201480126012405B1280A2000014005B +A45BA45BA4485AA41203EA7FFE1A1C799B1E>I<39FF801FC0393C000700001C1304A25C +5CA25CA25C5CA26C48C7FCA213025BA25BA25B5B120F6C5AA25B90C8FCA21206A21A1D77 +9B1F>86 D<3AFF83FF07F03A3C007001C00038158002F01300A290380170025D13025D13 +045D13085D131001305B1320D81C405BA2D98071C7FCA2381D0072A2001E1374A2001C13 +38A20018133014201210241D779B29>I<39FFC00FE0391E000380000EEB02005C000F13 +0C6C13086D5A00035B5CEBC0C000015B01C1C7FC13E2EA00E413EC13F81370A25BA4485A +A4485AEA3FF81B1C789B1F>89 D97 D<123F1207A2120EA45AA4EA39E0EA3A +18EA3C0C12381270130EA3EAE01CA31318133813301360EA60C0EA3180EA1E000F1D7C9C +13>I<13F8EA0304120EEA1C0EEA181CEA30001270A25AA51304EA60081310EA3060EA0F +800F127C9113>II<13F8EA0704120CEA +1802EA38041230EA7008EA7FF0EAE000A5EA60041308EA30101360EA0F800F127C9113> +IIII +I107 +DI< +391C1E078039266318C0394683A0E0384703C0008E1380A2120EA2391C0701C0A3EC0380 +D8380E1388A2EC0708151039701C032039300C01C01D127C9122>II<13F8EA030CEA0E06487E1218123000701380A238E00700A3130EA25BEA6018 +5BEA30E0EA0F8011127C9115>I<380387803804C860EBD03013E0EA09C014381201A238 +038070A31460380700E014C0EB0180EB8300EA0E86137890C7FCA25AA45AB4FC151A8091 +15>IIII< +12035AA3120EA4EAFFE0EA1C00A35AA45AA4EAE080A2EAE100A2126612380B1A7C990E> +I<381C0180EA2E03124EA2388E0700A2121CA2EA380EA438301C80A3EA383C38184D00EA +0F8611127C9116>II<381E0183382703871247148338870701A2120E +A2381C0E02A31404EA180C131C1408EA1C1E380C26303807C3C018127C911C>I<380387 +80380CC840380870E012103820E0C014001200A2485AA4EA03811263EAE38212C5EA8584 +EA787813127E9113>I<381C0180EA2E03124EA2388E0700A2121CA2EA380EA4EA301CA3 +EA383CEA1878EA0FB8EA003813301370EAE0605BEA81800043C7FC123C111A7C9114>I< +EA01C1EA07E1EA0FF6EA081CEA1008EA0010132013401380EA010012025AEA08041210EA +2C0CEA73F8EA41F0EA80E010127E9111>I E /Fj 9 120 df<13F8EA030C380E0604EA1C +07383803080030138800701390A200E013A0A214C01480A3EA6007EB0B8838307190380F +80E016127E911B>11 DI<126012F0A2126004047C830C>58 +D<130113031306A3130CA31318A31330A31360A213C0A3EA0180A3EA0300A31206A25AA3 +5AA35AA35AA35AA210297E9E15>61 D100 D107 +DI< +EA3C1F384E6180384681C0EA4701128F128E120EA2381C0380A3EB070000381310A2130E +1420387006403830038014127E9119>110 D<001CEBC080392701C1C0124714C0398703 +8040A2120EA2391C070080A3EC0100EA1806A2381C0E02EB0F04380E13083803E1F01A12 +7E911E>119 D E /Fk 83 128 df2 D11 D<137E3801C180EA0301380703C0120EEB0180 +90C7FCA5B512C0EA0E01B0387F87F8151D809C17>II<90383F07E03901C09C18380380F0D8070113 +3C000E13E00100131892C7FCA5B612FC390E00E01CB03A7FC7FCFF80211D809C23>I<12 +0EA2121E1238127012E012800707779C15>19 D34 D<000F14C0EA18803930600380397038 +0700386027FB38E010065CA25CA25C5CEA602000705B38304180EA1881390F0303C03900 +060620EC0C1090380C1C08EB1818EC380413301360A213C0A2EA01803903001808141C00 +06EB0C1048EB06200004EB03C01E217E9E23>37 D<126012F012F812681208A31210A212 +2012401280050C7C9C0C>39 D<1380EA0100120212065AA25AA25AA35AA412E0AC1260A4 +7EA37EA27EA27E12027EEA0080092A7C9E10>I<7E12407E12307EA27EA27EA37EA41380 +AC1300A41206A35AA25AA25A12205A5A092A7E9E10>I<1306ADB612E0A2D80006C7FCAD +1B1C7E9720>43 D<126012F0A212701210A41220A212401280040C7C830C>II<126012F0A2126004047C830C>I<130113031306A3130CA31318A31330A3 +1360A213C0A3EA0180A3EA0300A31206A25AA35AA35AA35AA35AA210297E9E15>II<5A1207123F12C71207B3A5EAFFF80D1C7C9B15>III<130CA2131C133C +A2135C13DC139CEA011C120312021204120C1208121012301220124012C0B512C038001C +00A73801FFC0121C7F9B15>II<13F0EA030CEA0404EA0C0EEA181E1230130CEA7000A21260EAE3E0EAE430EAE818 +EAF00C130EEAE0061307A51260A2EA7006EA300E130CEA1818EA0C30EA03E0101D7E9B15 +>I<1240387FFF801400A2EA4002485AA25B485AA25B1360134013C0A212015BA21203A4 +1207A66CC7FC111D7E9B15>III<126012F0A212601200AA126012F0A2126004127C91 +0C>I<126012F0A212601200AA126012F0A212701210A41220A212401280041A7C910C>I< +007FB512C0B612E0C9FCA8B612E06C14C01B0C7E8F20>61 D<1306A3130FA3EB1780A2EB +37C01323A2EB43E01341A2EB80F0A338010078A2EBFFF83802003CA3487FA2000C131F80 +001E5BB4EBFFF01C1D7F9C1F>65 DI<90381F8080EB +E0613801801938070007000E13035A14015A00781300A2127000F01400A8007014801278 +A212386CEB0100A26C13026C5B380180083800E030EB1FC0191E7E9C1E>IIII<90381F +8080EBE0613801801938070007000E13035A14015A00781300A2127000F01400A6ECFFF0 +EC0F80007013071278A212387EA27E6C130B380180113800E06090381F80001C1E7E9C21 +>I<39FFF0FFF0390F000F00AC90B5FCEB000FAD39FFF0FFF01C1C7F9B1F>II<3807FF8038007C00133CB3127012F8A21338EA7078EA40 +70EA30E0EA0F80111D7F9B15>I<39FFF01FE0390F000780EC060014045C5C5C5C5C49C7 +FC13021306130FEB17801327EB43C0EB81E013016D7E1478A280143E141E80158015C039 +FFF03FF01C1C7F9B20>III +III82 D<3807E080EA1C19EA30051303EA600112E01300A36C13007E127CEA7FC0EA3F +F8EA1FFEEA07FFC61380130FEB07C0130313011280A300C01380A238E00300EAD002EACC +0CEA83F8121E7E9C17>I<007FB512C038700F010060130000401440A200C014201280A3 +00001400B1497E3803FFFC1B1C7F9B1E>I<39FFF01FF0390F000380EC0100B3A26C1302 +138000035BEA01C03800E018EB7060EB0F801C1D7F9B1F>I<39FFE00FF0391F0003C0EC +01806C1400A238078002A213C000035BA2EBE00C00011308A26C6C5AA213F8EB7820A26D +5AA36D5AA2131F6DC7FCA21306A31C1D7F9B1F>I<3AFFE1FFC0FF3A1F003E003C001E01 +3C13186C6D1310A32607801F1320A33A03C0278040A33A01E043C080A33A00F081E100A3 +9038F900F3017913F2A2017E137E013E137CA2013C133C011C1338A20118131801081310 +281D7F9B2B>I<39FFF003FC390F8001E00007EB00C06D13800003EB01006D5A00011302 +6C6C5A13F8EB7808EB7C18EB3C10EB3E20131F6D5A14C06D5AABEB7FF81E1C809B1F>89 +D<12FEA212C0B3B312FEA207297C9E0C>91 DI<12FEA21206B3B312FEA20729809E0C>I97 D<12FC121CAA137CEA1D87381E0180381C00C014E01460 +1470A6146014E014C0381E018038190700EA10FC141D7F9C17>IIII<13F8EA018CEA071E1206EA0E +0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>II<12FC121CAA137C +1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123CA21218C7FCA712FC12 +1CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA00C01300A7EA07E01200B3A21260EAF0C0 +12F1EA6180EA3E000B25839C0D>I<12FC121CAAEB0FE0EB0780EB06005B13105B5B13E0 +121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16>I<12FC121CB3A9 +EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001EEBE01C001C13C0AD3A +FF8FF8FF8021127F9124>IIII<3803E080 +EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1BEA03E3EA0003A7EB1F +F0141A7F9116>III<1204A4120CA2121C123CEAFFE0EA1C00A91310A512 +0CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F +9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01 +D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB01801500130B000E +1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB8030000013201B127F91 +1E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012007F12011338EA02 +1C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E0383C0380381C0100A2 +EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC +12F312661238131A7F9116>III127 D E /Fl 38 121 +df<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49 +DII<140FA25C5C5C5C5BA2EB03 +BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8 +A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091 +C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218 +127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6 +22>II65 D<91387FE003903907FFFC07 +011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A16 +0F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C +14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831>67 +DIII72 DI80 D +82 D<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A24815 +01A5C791C7FCB3A490B612C0A32A287EA72F>84 D87 D<3803FF80000F13F038 +1F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E +5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21>97 +D99 DI< +EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2B6FC +A248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB3FE0 +1A1B7E9A1F>II<9038FF80F00003EBE3F8390FC1FE1C391F00 +7C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE000 +18138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01 +F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>I< +EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213E0B0 +39FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FC +A7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I107 DI<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039 +C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC0 +7E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA320 +1B7D9A25>II<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001F8 +01E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE090 +38EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E38 +0FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA +3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6 +FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B +>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000AD1470A73807F0E00003 +13C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA20007131739 +03F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390FF000F0000714E07F00 +03EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D +5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB03 +80A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600FE1C5B15FE9039FF387E +3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2EC800701075CA22E1B7F +9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB7F3814F8 +6D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0D803C013 +E0EB800F39FFF03FFFA3201B7F9A23>I E /Fm 1 1 df0 +D E /Fn 2 49 df<120CA2EACCC012EDEA7F80EA0C00EA7F80EAEDC012CCEA0C00A20A0B +7D8B10>3 D<1208121CA21238A312301270A21260A212C0A2060D7E8D09>48 +D E /Fo 3 101 df11 DI100 D E /Fp 7 117 df<1303497EA2497EA3EB1BE0A2EB3BF0 +1331A2EB60F8A2EBE0FCEBC07CA248487EEBFFFE487FEB001F4814800006130FA248EB07 +C039FF803FFCA21E1A7F9921>65 D97 D<12FCA2123CA713FE383F8780 +383E01C0003C13E0EB00F0A214F8A514F0A2EB01E0003E13C0383B07803830FE00151A7E +9919>II114 DI<1206A4120EA2121EEA3FF012FFEA1E +00A81318A5EA0F30EA03E00D187F9711>I E /Fq 47 123 df11 +D<126012F012F812681208A31210A212201240050B7D990B>39 D<1380EA010012025A12 +0C120812185AA35AA412E0AA1260A47EA37E1208120C12047E7EEA008009267D9B0F>I< +7E12407E7E12181208120C7EA37EA41380AA1300A41206A35A1208121812105A5A5A0926 +7E9B0F>I<126012F0A212701210A31220A21240A2040B7D830B>44 +DI<126012F0A2126004047D830B>I<12035AB4FC1207B3A2EA7F +F80D187D9713>49 DI54 +D<130CA3131EA2132F1327A2EB4380A3EB81C0A200017F1300A248B47E38020070A2487F +A3487FA2003C131EB4EBFFC01A1A7F991D>65 D67 DII71 +D<39FFE1FFC0390E001C00AB380FFFFC380E001CAC39FFE1FFC01A1A7F991D>II<137F3801C1C038070070000E7F487F003C131E0038 +130E0078130F00707F00F01480A80078EB0F00A20038130E003C131E001C131C6C5B6C5B +3801C1C0D8007FC7FC191A7E991E>79 DI83 D<007FB5FC38701C0700401301A200C0 +148000801300A300001400B13803FFE0191A7F991C>I<39FFE07FC0390E000E001404B2 +00065B12076C5B6C6C5A3800E0C0013FC7FC1A1A7F991D>I97 +D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906 +EA10F8131A809915>II<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A +EA1C373807C7E0131A7F9915>IIII<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218 +123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F00130C5B +13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107 +D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301 +AB39FF9FE7F81D107F8F20>I +IIIIII<1208A41218A21238EAFFC0 +EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E +0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2 +EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16 +081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C +1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0 +12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C +5AA248C7FCA212E112E212E4127811177F8F14>II +E /Fr 16 118 df<127012F8A212F012E005057A840F>46 D<14FE903807018090381800 +60012013105B49130848C71204380201F03804070839080C04023810180290383003C238 +2060019038E00382EA40C01241A23983800704A4EC0E08A20081131EEC2E103980C04E20 +9038618E6039403E078090C8FC7EA26C14E0000CEB07800003EB7C003800FF801F2379A2 +25>64 D97 DI<137EEA01C138030180EA0703EA0E07121C003CC7 +FC12381278A35AA45B12701302EA300CEA1830EA0FC011157B9416>I<13F8EA0384EA0E +02121C123C1238EA7804EAF018EAFFE0EAF000A25AA41302A2EA6004EA7018EA3060EA0F +800F157A9416>101 D<13F0EA0FE01200A3485AA4485AA448C7FC131FEB2180EBC0C038 +0F00E0A2120EA2381C01C0A438380380A3EB070400701308130E1410130600E013203860 +03C016237DA219>104 D<14E01301A2EB00C01400A8131E1323EB43801383A2EA0103A2 +38000700A4130EA45BA45BA45BA3EA70E0EAF0C0EAF1800063C7FC123C132B82A00F> +106 D<13F0EA07E01200A3485AA4485AA448C7FCEB01E0EB0210EB0470380E08F01310EB +2060EB4000EA1D80001EC7FCEA1FC0EA1C70487EA27F142038703840A3EB188012E03860 +0F0014237DA216>II<38380F80384C30C0384E4060388E8070EA8F00128E +A24813E0A4383801C0A3EB03840070138814081307EB031012E0386001E016157B941B> +110 D<137EEA01C338038180380701C0120E001C13E0123C12381278A338F003C0A21480 +130700701300130E130CEA3018EA1870EA07C013157B9419>I114 +D<13FCEA018338020080EA0401EA0C03140090C7FC120F13F0EA07FC6C7EEA003E130F7F +1270EAF006A2EAE004EA4008EA2030EA1FC011157D9414>I<13C01201A4EA0380A4EA07 +00EAFFF8EA0700A2120EA45AA45AA31310EA7020A213401380EA3100121E0D1F7C9E10> +I<001E1360002313E0EA4380EB81C01283EA8701A238070380120EA3381C0700A31408EB +0E101218121CEB1E20EA0C263807C3C015157B941A>I E /Fs 27 +118 df<90381FC1F090387037189038C03E3C3801807C000313783907003800A9B612C0 +3907003800B2143C397FE1FFC01E2380A21C>11 D<127012F812FCA212741204A41208A2 +1210A212201240060F7C840E>44 D<127012F8A3127005057C840E>46 +D48 D<13801203120F12F31203B3 +A9EA07C0EAFFFE0F217CA018>II<137EEA01C138030080380601C0 +EA0C03121C381801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380EB01C0 +12F014E0A51270A3003813C0A238180380001C1300EA0C06EA070CEA01F013227EA018> +54 D57 D<497EA3497EA3EB05E0A2EB09F01308A2EB1078A3497EA3497EA2 +EBC01F497EA248B51280EB0007A20002EB03C0A348EB01E0A348EB00F0121C003EEB01F8 +39FF800FFF20237EA225>65 DI<903807F00890383C0C18EBE00239 +01C001B839038000F848C71278481438121E15185AA2007C14081278A200F81400A7EC1F +FF0078EB00F81578127C123CA27EA27E7E6C6C13B86C7E3900E0031890383C0C08903807 +F00020247DA226>71 D<3803FFE038001F007FB3A6127012F8A2130EEAF01EEA401C6C5A +EA1870EA07C013237EA119>74 D77 D<3803F020380C0C60EA18 +02383001E0EA70000060136012E0A21420A36C1300A21278127FEA3FF0EA1FFE6C7E0003 +138038003FC0EB07E01301EB00F0A214707EA46C1360A26C13C07E38C8018038C60700EA +81FC14247DA21B>83 D97 +D99 D101 D<14703803F198380E1E18EA1C0E38380700A200781380A400381300 +A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381FFFC06C13E0383000F0481330 +481318A400601330A2003813E0380E03803803FE0015217F9518>103 +D<120E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF18237FA21B +>I<121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<120E12FE121E +120EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1CEA0E1E130E7F1480EB03 +C0130114E0EB00F014F838FFE3FE17237FA21A>107 D<380E1F8038FE60C0381E80E038 +0F0070A2120EAF38FFE7FF18157F941B>110 DI114 DI<1202A41206A312 +0E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E137038FE +07F0EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>I +E /Ft 1 4 df<13C0A538E0C1C0EAF0C33838C700EA0EDCEA03F0EA00C0EA03F0EA0EDC +EA38C738F0C3C0EAE0C13800C000A512157D9619>3 D E /Fu 18 +117 df<1403A34A7EA24A7EA3EC17E01413A2EC23F01421A2EC40F8A3EC807CA2903801 +007E153EA20102133F81A2496D7EA3496D7EA2011880011FB5FCA29039200003F01501A2 +496D7EA349147CA20001157E90C8123EA248153F825AD81F80EC3F80D8FFE0903801FFFC +A22E327EB132>65 D68 D72 DI80 +D<90387F80203801FFE03907C07860380F001C001EEB06E0481303003813010078130012 +70156012F0A21520A37E1500127C127E7E13C0EA1FF86CB47E6C13F06C13FCC613FF010F +1380010013C0EC1FE01407EC03F01401140015F8A26C1478A57E15706C14F015E07E6CEB +01C000ECEB038000C7EB070038C1F01E38807FFCEB0FF01D337CB125>83 +D<007FB712E0A23A7E000F800700781501007015000060166000401620A200C01630A248 +1610A6C71500B3AC4A7E010FB57EA22C317EB030>I<13FE380303C0380C00E000101370 +80003C133C003E131C141EA21208C7FCA3EB0FFEEBFC1EEA03E0EA0F80EA1F00123E123C +127C481404A3143EA21278007C135E6CEB8F08390F0307F03903FC03E01E1F7D9E21>97 +D99 D101 D<15F090387F03083901C1C41C380380E83907007008 +48EB7800001E7FA2003E133EA6001E133CA26C5B6C13706D5A3809C1C0D8087FC7FC0018 +C8FCA5121C7E380FFFF86C13FF6C1480390E000FC00018EB01E048EB00F0007014704814 +38A500701470A26C14E06CEB01C00007EB07003801C01C38003FE01E2F7E9F21>103 +DI<120FEA1F80A4EA0F00C7FCABEA0780 +127FA2120F1207B3A6EA0FC0EAFFF8A20D307EAF12>I108 D<260780FEEB1FC03BFF83078060F0903A8C03C180 +783B0F9001E2003CD807A013E4DA00F47F01C013F8A2495BB3A2486C486C133F3CFFFC1F +FF83FFF0A2341F7E9E38>I111 +D<380783E038FF8418EB887CEA0F90EA07A01438EBC000A35BB3487EEAFFFEA2161F7E9E +19>114 D<1340A513C0A31201A212031207120F381FFFE0B5FC3803C000B01410A80001 +132013E000001340EB78C0EB1F00142C7FAB19>116 D E /Fv 62 +124 df<90380FF83F90397FFDFFC03A01F81FE3E03903E03F87EA07C0D80F801307ED03 +C06EC7FCA6B612FCA2260F801FC7FCB2397FF0FFF0A223237FA221>11 +DI<38380380387C07C038FE0FE000FF13F0A2EA7F0738 +3B03B038030030A300061360A24813C0EA1C010018138038700700EA200214117EA21D> +34 D<13181330136013C01201EA0380EA0700A2120E121E121C123CA35AA412F85AAB7E +1278A47EA3121C121E120E7EA2EA0380EA01C012001360133013180D317BA416>40 +D<12C012607E7E121C7E7EA2EA038013C0120113E0A3EA00F0A413F81378AB13F813F0A4 +EA01E0A313C012031380EA0700A2120E5A12185A5A5A0D317DA416>I45 D<1238127C12FEA3127C123807077C8610>I<13FE3807FFC0380F83E0381F01 +F0383E00F8A248137CA312FC147EAD007C137CA36C13F8A2381F01F0380F83E03807FFC0 +3800FE0017207E9F1C>48 D<13181378EA01F812FFA21201B3A7387FFFE0A213207C9F1C +>II<13FE3807FFC0380F07E0381E03F0123FEB81F8A3EA +1F0314F0120014E0EB07C0EB1F803801FE007F380007C0EB01F014F8EB00FCA2003C13FE +127EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801FE0017207E9F1C>I<14E013 +011303A21307130F131FA21337137713E7EA01C71387EA03071207120E120C1218123812 +7012E0B6FCA2380007E0A790B5FCA218207E9F1C>I<00301320383E01E0383FFFC01480 +14005B13F8EA33C00030C7FCA4EA31FCEA37FF383E0FC0383807E0EA3003000013F0A214 +F8A21238127C12FEA200FC13F0A2387007E0003013C0383C1F80380FFF00EA03F815207D +9F1C>II<12601278387FFFFEA214FC14F8 +A214F038E0006014C038C00180EB0300A2EA00065B131C131813381378A25BA31201A312 +03A76C5A17227DA11C>I<13FE3803FFC0380703E0380E00F05A1478123C123E123F1380 +EBE0F0381FF9E0EBFFC06C13806C13C06C13E04813F0381E7FF8383C1FFCEA7807EB01FE +EAF000143E141EA36C131C007813387E001F13F0380FFFC00001130017207E9F1C>II<1470A214F8A3497EA2497EA3EB067FA2010C7F +143FA2496C7EA201307F140F01707FEB6007A201C07F90B5FC4880EB8001A2D803007F14 +004880000680A23AFFE007FFF8A225227EA12A>65 DIII70 DIII<48B51280A2390003F800B3A41218127E12FFA35C387E07E0387C0FC0381FFF +80D807FCC7FC192280A11D>IIII79 DI82 D<3801FE023807FF86381F01 +FE383C007E007C131E0078130EA200F81306A27E1400B4FC13E06CB4FC14C06C13F06C13 +F86C13FC000313FEEA003F1303EB007F143FA200C0131FA36C131EA26C133C12FCB413F8 +38C7FFE00080138018227DA11F>I<007FB61280A2397E03F80F00781407007014030060 +140100E015C0A200C01400A400001500B3A248B512F0A222227EA127>IIII<00041340000E13E038180180EA380300301300EA6006A2485AA338DC0DC038FE0FE0 +00FF13F0A2EA7F07383E03E0381C01C014117AA21D>92 D97 DIII<13FE3807FF80380F87C0381E01E0003E13F0EA7C0014F812FCA2 +B5FCA200FCC7FCA3127CA2127E003E13186C1330380FC0703803FFC0C6130015167E951A +>II<3801FE0F3907FFBF80380F87C7381F03E7391E01E000003E7FA500 +1E5BEA1F03380F87C0EBFF80D809FEC7FC0018C8FCA2121C381FFFE06C13F86C13FE001F +7F383C003F48EB0F80481307A40078EB0F006C131E001F137C6CB45A000113C019217F95 +1C>II<121C123E127FA3123E121CC7FCA7B4FCA2121FB2EAFFE0A20B247EA310>I107 DI<3AFF07F007F090391FFC1FFC3A1F303E303E01401340496C487EA20100 +1300AE3BFFE0FFE0FFE0A22B167E9530>I<38FF07E0EB1FF8381F307CEB403CEB803EA2 +1300AE39FFE1FFC0A21A167E951F>I<13FE3807FFC0380F83E0381E00F0003E13F84813 +7CA300FC137EA7007C137CA26C13F8381F01F0380F83E03807FFC03800FE0017167E951C +>I<38FF0FE0EB3FF8381FE07CEB803E497E1580A2EC0FC0A8EC1F80A29038803F00EBC0 +3EEBE0FCEB3FF8EB0FC090C8FCA8EAFFE0A21A207E951F>IIII<487EA41203A21207A2120F123FB5FCA2EA0F80ABEB8180A5EB8300EA07C3 +EA03FEEA00F811207F9F16>I<38FF01FEA2381F003EAF147E14FE380F81BE3907FF3FC0 +EA01FC1A167E951F>I<39FFE01FE0A2391F800700000F1306EBC00E0007130C13E00003 +5BA26C6C5AA26C6C5AA2EB7CC0A2137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFE3 +FF07F8A23A1F007800C09038807C01000F1580A23A07C07E030014DE5D3903E1DF06148F +D801F1138CEBF307A2D800FF13D8EBFE0315F890387C01F0A2013C5BEB3800A225167F95 +28>I<39FFE01FE0A2391F800700000F1306EBC00E0007130C13E000035BA26C6C5AA26C +6C5AA2EB7CC0A2137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F +80001FC8FC1B207F951E>121 D123 D E +/Fw 2 13 df11 DI E /Fx 18 117 df<1578A215FCA34A7EA24A7EA24A7F +A34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507010180ECC003 +A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138141FA2498116 +0F01F081491407A2484881486C1403B549B512FCA336317DB03D>65 +D68 D72 +DI80 D<90391FF8018090B51203000314C739 +07F007EF390F8000FF48C7127F003E141F150F5A150712FCA215037EA26C91C7FC13C0EA +7FF0EBFF806C13F8ECFF806C14F06C806C806C14FFC6FC013F1480010114C0D9001F13E0 +1401EC003FED1FF0150F1507126000E01403A316E07EA26CEC07C07EB4EC0F8001C0EB1F +00D8FBFC13FE00F1B512F8D8E03F5BD8C003138024317CB02D>83 +D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603 +A5C792C7FCB3AA017FB6FCA331307DAF38>I97 D99 D101 D<90391FF007C09039FFFE3FE03A01F83F79F03907E00F +C3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2000F5CEBE00F00075C2603 +F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C14F015FC6C806C80168000 +0F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC0FC0003E1580003F141FD8 +0FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F28>103 +DII108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC +02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500 +C3B5380FFFFCA33E207D9F43>I111 D<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07E0EC03 +C091C7FCA25BB2B512E0A31C207E9F21>114 D<131CA5133CA3137CA213FC1201120312 +07381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F019 +2E7FAD1F>116 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 0 1 +0 0 bop 369 0 a + 19142492 4341596 7893811 20787036 27036303 25128632 startTexFig + 369 0 a +%%BeginDocument: uofatop.ps +/CanvasDict where not{/CanvasDict 250 dict def}{pop}ifelse +CanvasDict begin +systemdict/setpacking known{/origpack currentpacking def true setpacking}if +/bdf{bind def}bind def +/xdf{exch bind def}bdf +/min{2 copy gt{exch}if pop}bdf +/edf{exch def}bdf +/max{2 copy lt{exch}if pop}bdf +/cvmtx matrix def +/tpmx matrix def +/currot 0 def +/rotmtx matrix def +/origmtx matrix def +/cvangle{360 exch sub 90 add 360 mod}bdf +/setrot{/currot edf rotmtx currentmatrix pop 2 copy translate currot rotate neg exch neg exch translate}bdf +/endrot{rotmtx setmatrix}bdf +/i systemdict/image get def/T true def/F false def/dbg F def +/ncolors 0 def/st0 ()def/st1 ()def/proc0 {}def +/penh 1 def/penv 1 def/penv2 0 def/penh2 0 def/samplesize 0 def/width 0 def/height 0 def +/setcmykcolor where not{/setcmykcolor{/b edf 3{b add 1.0 exch sub 0.0 max 1.0 min 3 1 roll}repeat systemdict begin setrgbcolor end}bdf}{pop}ifelse +/doeoclip{closepath{eoclip}stopped{currentflat dup 2 mul setflat eoclip setflat}if}bdf +/SpaceExtra 0 def/LetterSpace 0 def/StringLength 0 def/NumSpaces 0 def/JustOffset 0 def +/f0/fill load def +/s0{1 setlinewidth cvmtx currentmatrix pop penh penv scale stroke cvmtx setmatrix}bdf +/f1{_bp _fp impat}def +/s1{cvmtx currentmatrix pop 1 setlinewidth penh penv scale +{strokepath}stopped{currentflat dup 2 mul setflat strokepath setflat}if +_bp +cvmtx setmatrix _fp impat}def +/filltype 0 def +/stroketype 0 def +/f{filltype 0 eq{f0}{f1}ifelse}bdf +/s{stroketype 0 eq{s0}{s1}ifelse}bdf +/_fp{}def +/_bp{}def +/_fg 1 def +/_pg 0 def +/_bkg 1 def +/_frg 0 def +/_frgb 3 array def +/_frrgb [0 0 0] def +/_fcmyk 4 array def +/_frcmyk [0 0 0 1] def +/_prgb 3 array def +/_pcmyk 4 array def +/_bkrgb [1 1 1] def +/_bkcmyk [0 0 0 0] def +/fg{/_fg exch def /filltype 0 def/fills{_fg setgray}def}def +/frgb{_frgb astore pop /filltype 0 def/fills{_frgb aload pop setrgbcolor}def}def +/fcmyk{_fcmyk astore pop /filltype 0 def/fills{_fcmyk aload pop setcmykcolor}def}def +/pg{/_pg exch def /stroketype 0 def/pens{_pg setgray}def}def +/prgb{_prgb astore pop /stroketype 0 def/pens{_prgb aload pop setrgbcolor}def}def +/pcmyk{_pcmyk astore pop /stroketype 0 def/pens{_pcmyk aload pop setcmykcolor}def}def +/fpat{/fstr edf/filltype 1 def/fills{/patstr fstr def}bdf}bdf +/ppat{/sstr edf/stroketype 1 def/pens{/patstr sstr def}bdf}bdf +/bkg{ /_bkg exch def /_bp{gsave _bkg setgray fill grestore}def}def +/bkrgb{_bkrgb astore pop/_bp{gsave _bkrgb aload pop setrgbcolor fill grestore}def}def +/bkcmyk{_bkcmyk astore pop/_bp{gsave _bkcmyk aload pop setcmykcolor fill grestore}def}def +/frg{ /_frg exch def /_fp{_frg setgray}def}def +/frrgb{_frrgb astore pop/_fp{_frrgb aload pop setrgbcolor}def}def +/frcmyk{_frcmyk astore pop/_fp{_frcmyk aload pop setcmykcolor}def}def +/icomp{/ncolors edf +ncolors 1 gt{/proc0 edf +dup dup 0 get ncolors div cvi exch 0 3 -1 roll put +4 -1 roll ncolors div cvi 4 1 roll{proc0 dup/st0 edf +0 exch ncolors exch length +dup ncolors sub exch ncolors div cvi string/st1 edf +{dup 0 exch dup 1 exch +2 add{st0 exch get add}bind for +3 div ncolors 4 eq{exch dup 3 1 roll 3 add st0 exch get add 255 exch sub dup 0 lt{pop 0}if}if cvi +dup 255 gt{pop 255}if +exch ncolors div cvi exch +st1 3 1 roll put}bind for +st1}}if i}bdf +/ci +{/colorimage where +{pop false exch colorimage} +{icomp} +ifelse}bdf +/impat +{/cnt 0 def +/MySave save def +currot 0 ne{currot neg rotate}if +clip +flattenpath +pathbbox +3 -1 roll +8 div floor 8 mul dup/starty edf +sub abs 8 div ceiling 8 mul cvi/height edf +exch 8 div floor 8 mul dup/startx edf +sub abs 8 div ceiling 8 mul cvi/width edf +startx starty translate +width height scale +/height height 8 mul def +/st0 width string def +width height T [width 0 0 height neg 0 height] +{patstr +cnt 8 mod +get/st1 edf +0 1 +st0 length 1 sub dup 0 le{pop 1}if +{st0 exch +st1 +put}bind for/cnt cnt 1 add def +st0}bind +imagemask +MySave restore +newpath}bdf +/cm{/ncolors edf +translate +scale/height edf/colorimage where +{pop} +{ncolors mul}ifelse/width edf +/tbitstr width string def +width height 8 [width 0 0 height neg 0 height] +{currentfile tbitstr readhexstring pop}bind +ncolors +dup 3 eq {ci}{icomp}ifelse}bdf +/im{translate +scale +/height edf +/width edf +/tbitstr width 7 add 8 div cvi string def +width height 1 [width 0 0 height neg 0 height] +{currentfile tbitstr readhexstring pop}bind +i}bdf +/imk{/invFlag edf +translate +scale +/height edf +/width edf +/tbitstr width 7 add 8 div cvi string def +width height invFlag [width 0 0 height neg 0 height] +{currentfile tbitstr readhexstring pop}bind +imagemask}bdf +/BeginEPSF +{/MySave save def +/dict_count countdictstack def +/op_count count 1 sub def +userdict begin +/showpage {} def +0 setgray 0 setlinecap +1 setlinewidth 0 setlinejoin +10 setmiterlimit [] 0 setdash newpath +/languagelevel where +{pop languagelevel 1 ne{false setstrokeadjust false setoverprint}if}if +}bdf +/EndEPSF +{count op_count sub {pop}repeat +countdictstack dict_count sub {end}repeat +MySave restore}bdf +/rectpath {/cv_r edf/cv_b edf/cv_l edf/cv_t edf +cv_l cv_t moveto cv_r cv_t lineto cv_r cv_b lineto cv_l cv_b lineto cv_l cv_t lineto closepath}bdf +/setpen{/penh edf/penv edf/penv2 penv 2 div def/penh2 penh 2 div def}bdf +/dostroke{not pens 1.0 currentgray ne or {s}{newpath}ifelse}bdf +/dodashfill{not fills 1.0 currentgray ne or +{gsave f grestore gsave [] 0 setdash +stroketype/stroketype filltype def +s/stroketype edf grestore}{newpath}ifelse}bdf +/dofill{not fills 1.0 currentgray ne or {f}{newpath}ifelse}bdf +/dofillsave{not fills 1.0 currentgray ne or {gsave f grestore}if}bdf +/doline{not pens 1.0 currentgray ne or {filltype/filltype stroketype def f/filltype edf}{newpath}ifelse}bdf +/spx{SpaceExtra 0 32 4 -1 roll widthshow}bdf +/lsx{SpaceExtra 0 32 LetterSpace 0 6 -1 roll awidthshow}bdf +/Rjust{stringwidth pop JustOffset exch sub /JustOffset edf}bdf +/Cjust{stringwidth pop 2 div JustOffset exch sub /JustOffset edf}bdf +/adjfit{stringwidth pop LetterSpace StringLength 1 sub mul add SpaceExtra NumSpaces mul add dup /pw edf JustOffset exch +sub dup /wdif edf StringLength div dup abs 1.0 gt{pop 0}if LetterSpace add /LetterSpace edf}bdf +/ulb{currentpoint pop /underlinpt edf}bdf +/ule{gsave currentpoint newpath moveto currentfont dup /ft1 known{dup /ft1 get begin /FontMatrix get FontMatrix tpmx concatmatrix pop} +{begin FontMatrix tpmx copy pop}ifelse FontInfo begin UnderlinePosition UnderlineThickness end end dup tpmx +dtransform pop setlinewidth dup tpmx dtransform pop 0 exch rmoveto underlinpt currentpoint pop sub 0 rlineto stroke grestore}bdf +/fittext{ /SpaceExtra edf /LetterSpace edf /StringLength edf /NumSpaces edf /JustOffset edf not 1 currentgray ne or +{dup {ulb}if exch +dup adjfit +lsx {ule}if}{pop pop}ifelse}bdf +/cvRecFont{/encod edf FontDirectory 2 index known{cleartomark}{findfont dup length 1 add dict begin +{1 index/FID ne{def}{pop pop}ifelse}forall encod{/Encoding CVvec def}if +currentdict end definefont cleartomark}ifelse}bdf +/wrk1 ( ) def/wdict 16 dict def +/Work75 75 string def /Nmk{Work75 cvs dup}bdf /Npt{put cvn}bdf /dhOdh{Nmk 2 79 Npt}bdf /dhodh{Nmk 2 111 Npt}bdf /dhSdh{Nmk 2 83 Npt}bdf +/sfWidth{gsave 0 0 moveto 0 0 lineto 0 0 lineto 0 0 lineto closepath clip stringwidth grestore}bdf +/MakOF{dup dhodh FontDirectory 1 index known{exch pop}{exch findfont dup length 1 add dict begin +{1 index/FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall +/PaintType 2 def +/StrokeWidth .24 1000 mul ftSize div dup 12 lt{pop 12}if def +dup currentdict end definefont pop}ifelse}bdf +/fts{dup/ftSize edf}def +/mkFT{/tempFT 11 dict def tempFT begin +/FontMatrix [1 0 0 1 0 0] def/FontType 3 def +FontDirectory 3 index get /Encoding get/Encoding exch def +/proc2 edf/ft2 exch findfont def/ft1 exch findfont def/FontBBox [0 0 1 1] def +/BuildChar{wdict begin/chr edf/ftdt edf/chrst wrk1 dup 0 chr put def ftdt/proc2 get exec end}def +end tempFT definefont pop}bdf +/OLFt{dup dhOdh FontDirectory 1 index known{exch pop} +{dup 3 -1 roll dup MakOF {outproc} mkFT}ifelse}bdf +/mshw{moveto show}bdf +/outproc{ftdt/ft1 get setfont gsave chrst sfWidth grestore setcharwidth dblsh}bdf +/dblsh{currentgray 1 setgray chrst 0 0 mshw setgray ftdt/ft2 get setfont chrst 0 0 mshw}bdf +/ShadChar{ftdt/ft1 get setfont gsave chrst sfWidth 1 index 0 ne{exch .05 add exch}if grestore setcharwidth +chrst .06 0 mshw 0 .05 translate dblsh}bdf +/ShFt{dup dhSdh FontDirectory 1 index known{exch pop} +{dup 3 -1 roll dup MakOF {ShadChar} mkFT}ifelse}bdf +/LswUnits{72 75 div dup scale}bdf +/erasefill{_bp}def +/CVvec 256 array def +/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +CVvec 0 32 getinterval astore pop +CVvec 32/Times-Roman findfont/Encoding get +32 96 getinterval putinterval CVvec dup 39/quotesingle put 96/grave put +/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute +/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave +/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute +/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis +/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls +/registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash +/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation +/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash +/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft +/guillemotright/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe +/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge +/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl +/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand/Acircumflex/Ecircumflex/Aacute +/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex +/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde +/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron +CVvec 128 128 getinterval astore pop +end +CanvasDict begin +0 setlinecap +0 setlinejoin +4 setmiterlimit +/currot 0 def +origmtx currentmatrix pop +[] 0 setdash +1 1 setpen +1 fg +0 pg +0 frg +1 bkg +newpath +/dbg F def +% ---- Object #1:5 Obj Type: 99 +% ---- Object #2:6 Obj Type: 4 +save /MySave edf +381 122 318 185 rectpath +doeoclip newpath +0 setgray +189 189 63 63 122 318 false imk +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFC1FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFF0C7FFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFF1C3FFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFE3E3FFCFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9FFC3E1FF8FFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF87FC7F1FE0FFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF81FC7F8F80FFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF807CFF8704FFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9038FFC41CFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9E01FFC07CFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9F01FFE0FCFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9FC1FFF1FCFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9FE3FFF1FCFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9FFFFFFFFCFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9FFFFFFFFCFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF9FFFFFFFFC0001FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFC0001FFFFFFFFC0001FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFC0001FFFFFFFFC0001FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFE0001FFFFFFFFFFFE3FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFE3FFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFF0FFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFF8FFF8001C001FFF8FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFF87FF80000001FFF1FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFC7FF1FF00FF8FFF1FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFE3F01FFC3FF80FE3FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFE3F01FFE7FF80FE3FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFF1F01FFE7FF80FC7FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFF1F01FFE7FF98FCFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFF0F19FFE7FF98F87FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFE0F19FFE7FF98FC1FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFC1F19FFE7FF98FC0FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFF07F19FFE7FF98FF03FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFC1FF19FFE7FF98FFC0FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFF83FF19FFE7FF98FFF07FFFFFFFFFFFFFFF +FFFFFFFFFFFFFE0FFF19FFE7FF98FFF83FFFFFFFFFFFFFFF +FFFFFFFFFFFFFE1FFF1800C30018FFF07FFFFFFFFFFFFFFF +FFFFFFFFFFFFFE0FFF1800000018FFE0FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFF07FF187C007C18FFC1FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFF83FF1FFFC3FFF8FF83FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFE0FF1FC3E7C3F8FF07FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFF07F0000000000FE0FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFC3F0000000000FC1FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFE1F0000000000FC3FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFF00FFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FFDFFFFFE7FFFFFBFFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FF8FFFFFC3FFFFF1FFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FE03FFFF00FFFFC0FFE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3FC21FFFE107FFF847FE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3F871FFFC383FFF0C3FE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3F0F8FFFC7C1FFE1E1FE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3E1FC7FF8FE0FFC3F0FE3FFFFFFFFFFFFFF +FFFFFFFFFFFFC3C3FC3FF1FF07F87F87E3FFFFFFFFFFFFFF +FFFFFFFFFFFFC387FE1FE1FF83F0FFC3E3FFFFFFFFFFFFFF +FFFFFFFFFFFFC30FFF0FC3FFC1E1FFE1E3FFFFFFFFFFFFFF +FFFFFFFFFFFFC21FFF8787FFE1C3FFF0E3FFFFFFFFFFFFFF +FFFFFFFFFFFFC23FFFC30FFFF087FFF863FFFFFFFFFFFFFF +FFFFFFFFFFFFC07FFFE01FFFF80FFFFC23FFFFFFFFFFFFFF +FFFFFFFFFFFFC0FFFFF03FFFFC1FFFFE03FFFFFFFFFFFFFF +FFFFFFFFFFFFC0FF07F87F80FC3F803F03FFFFFFFFFFFFFF +FFFFFFFFFFFFC1F001FCFC003E7E000F83FFFFFFFFFFFFFF +FFFFFFFFFFFFC3E0007FF8000FFC0003C3FFFFFFFFFFFFFF +FFFFFFFFFFFFC380001FE00003F00001E3FFFFFFFFFFFFFF +FFFFFFFFFFFFC300000FC00001E00000E3FFFFFFFFFFFFFF +FFFFFFFFFFFFC2000007800001C0000063FFFFFFFFFFFFFF +FFFFFFFFFFFFC200000000000000000023FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFF +FFFFFFFFFFFFC1FFFFFFFFFFFFFFFFFF83FFFF8FFFFFFFFF +FFFFFFF3FFFFC1FFFFFFFFFFFFFFFFFF83FFFF87FFFFFFFF +FFFFFFE3FFFFE1FFFFFFFFFFFFFFFFFF87FFFF83FFFFFFFF +FFFFFFC1FFFFE0FFEFFF7FEFFEFFF7FF87FFFF81FFFFFFFF +FFFFFF81FFFFE0FFE7FE7FEFFE7FE3FF87FFFF887FFFFFFF +FFFFFE11FFFFE0FEE6FE77C77C7EE2FF0FFFFF1C3FFFFFFF +FFFFFE39FFFFF0FEE6EE77C77476E2FF0FFFFE3E1FFFFFFF +FFFFF8783FFFF0FE64EE66C6726634FE0FFFF03F07FFFFFF +FFFFF0FE1FFFF0FE3CE7E67C71CF1CFE1FFFC1FFC3FFFFFF +FFFFE1FF07FFF8FE3CE3C638718F89FC1FFF03FFE3FFFFFF +FFFFC3FFC0FFF87F19F18F18F997C9FC1FFC0FFFF1FFFFFF +FFFF8FFFF07FF87F99F9979975B6EBFC3FF07F1FF8FFFFFF +FFFE1FF8FC1FFC3EDAEFB6DF77E67EF83FC1FC07F87FFFFF +FFFC3FE07E0FFC3EFCE7E67E73C63CF07FC3F803FE7FFFFF +FFFC7FC03F87FE1E7CE3C63C718F1CF07F8FF1E1FE7FFFFF +FFF8FF871FE3FE1E3CE38E38F98F08E0FF1FE3E0FE7FFFFF +FFF8FF078FF1FE0F19F19799FD9F89E0FE3FE3E07E7FFFFF +FFF8FE0FC7F8FE0F99F9B79B75BFC9C1FE3FC7E03C7FFFFF +FFFC7E07C3F8FF07DBEFE6FE77E7FFC1FC7F8FE2187FFFFF +FFFC7C47E1FCFF03FFE7E67C73C7F783FC7F1FC708FFFFFF +FFFE38E3F0FC7F83EFE38E38718FF703FC7E3F8781FFFFFF +FFFE10F1F8FC7FC1EFF19F18F91FF707FE387F8FC3FFFFFF +FFFF01F1FC7CFFC0EFF99799753FFE0FFE00FF1FE3FFFFFF +FFFF83F87E00FFE07FE5A65E71C7FC1FFF03FC3FF0FFFFFF +FFFF8FFC3F83FFF83FE7C67C718FF83FFFC7F87FF87FFFFF +FFFF1FFE1FC3FFF81FE38E38F90FF07FFFE3F8FFFC3FFFFF +FFFE3FFF0FC7FFFC0FF19F19F91FF0FFFFF1F1FFFE1FFFFF +FFFC7FFF878FFFFE07F9BE9B7D3FC1FFFFF8E3FFFF1FFFFF +FFF8FFFFC31FFFFF03FFFEFF7FFF81FFFFF843FFFF8FFFFF +FFF1FF03E03FFFFF81FEFE7E7EFF03FFFFFC0783FF8FFFFF +FFF1FE09F07FFFFFC0FEFE3C7EFE07FFFFFE0FC0FF8FFFFF +FFF1FE3EF87FFFFFE07EFF18FEFC0FFFFFFE1FC41F8FFFFF +FFF9FE7E7C7FFFFFF03FFF99FFF01FFFFFFC3FEE0F1FFFFF +FFF8FCFE7E3FFFFFFC0FFFDBFFE03FFFFFF87FE48F1FFFFF +FFFC7CFE7E1FFFFFFC03FFFFFF80FFFFFFE0F9F1FE3FFFFF +FFFC3EFC7F87FFFFFE00FFEFFE01FFFFFFC3F079FC7FFFFF +FFFE3EF877C3FFFFFF807FEFFC03FFFFFF87E479F8FFFFFF +FFFE1EF0E3E1FFFFFFC01FEFF80FFFFFFE0FC679F8FFFFFF +FFFF0E01C7F07FFFFFF003FFC03FFFFFFC3FC07DF1FFFFFF +FFFF870787FC0FFFFFFC003800FFFFFFF07CE007C3FFFFFF +FFFFE37F1FBF83FFFFFFC00003FFFFFFC3F9F8CF87FFFFFF +FFFFE1FE3F3FC0FFFFFFF8001FFFFFFF07E3F87F8FFFFFFF +FFFFF8FE7E7FF0FFFFFFFC007FFFFFFC0FE3FC7F1FFFFFFF +FFFFFCFE7EFFFC1FFFFFFF83FFFFFFF03FF13E7C3FFFFFFF +FFFFFC7F7CF8FE07FFFFFFFFFFFFFFC0FFB87FF87FFFFFFF +FFFFFE3F39F0FF01FFFFFFFFFFFFFE03FFB87FF0FFFFFFFF +FFFFFF0FC3C1FFE03FFFFFFFFFFFF81FFFBC77E1FFFFFFFF +FFFFFF87FF11FFF803FFFFFFFFFF807FE3BE07C3FFFFFFFF +FFFFFF83FE31F3FE01FFFFFFFFFE01FFE39F0F87FFFFFFFF +FFFFFFE1FEC3F0FFC01FFFFFFFE007FFF19F3F0FFFFFFFFF +FFFFFFF0FFE3E2FFFC003FFFF0007FFFF89FFC3FFFFFFFFF +FFFFFFF83FE3E7FFFF8000000007FFFFFC1FF87FFFFFFFFF +FFFFFFFC1FE3C7FFFFF00000003FFF3FFE1FF8FFFFFFFFFF +FFFFFFFF0FE7C1E03FFFF0001FFFFCFFFF1FE1FFFFFFFFFF +FFFFFFFF81F70C879DFFFFFFFFFF8CFFFFFF03FFFFFFFFFF +FFFFFFFFF0FF1F9FFDFFFFFFFFCFCC1FFFFC1FFFFFFFFFFF +FFFFFFFFF87F8F1FF9F3FFFF83CFCC3FFFF83FFFFFFFFFFF +FFFFFFFFFE1FE71FF9F39F3E79C7CE7FFFE0FFFFFFFFFFFF +FFFFFFFFFE07FF9FF9F79F3C7CE7CE7FFF83FFFFFFFFFFFF +FFFFFFFFFF81FF9FF1E70E3CFCE7CE37FE07FFFFFFFFFFFF +FFFFFFFFFFC0FFCFF1E70C38FCE7CE07FC1FFFFFFFFFFFFF +FFFFFFFFFFF01FE0F1EF4538FCE7CF3FF07FFFFFFFFFFFFF +FFFFFFFFFFFC07FFF1CF453CFCE3CFFFC1FFFFFFFFFFFFFF +FFFFFFFFFFFF01FFF9CE613CFCF19FFF03FFFFFFFFFFFFFF +FFFFFFFFFFFFC0FFFC1EE33C7DF03FFC07FFFFFFFFFFFFFF +FFFFFFFFFFFFF81FFFFEE33E31FFFFC03FFFFFFFFFFFFFFF +FFFFFFFFFFFFFE03FFFEF73F81FFFE00FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFF007FFFFFFFF9FFF803FFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFE007FFFFFFFDFF801FFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFE003FFFFFFFF001FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFC0000000000007FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFC00000000FFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +MySave restore +% ---- Object #3:7 Obj Type: 2 +save +0 setgray +mark /|___Times-Bold /Times-Bold T cvRecFont +24 fts /|___Times-Bold findfont exch scalefont setfont +0 setgray +190 344 moveto +(University of Alberta) +F F 217.2422 2 21 0 0 fittext +restore +origmtx setmatrix +systemdict /setpacking known {origpack setpacking} if end + +%%EndDocument + + endTexFig + 227 633 a Fx(The)27 b(APHID)g(P)n(arallel)e Fw(\013\014)31 +b Fx(Searc)n(h)26 b(Algorithm)945 991 y Fv(b)n(y)414 +1109 y(Mark)18 b(G.)h(Bro)r(c)n(kington)e(and)i(Jonathan)h(Sc)n +(hae\013er)636 2067 y(T)-5 b(ec)n(hnical)18 b(Rep)r(ort)g(TR)g(96{07) +821 2126 y(August)i(1996)379 2430 y + 18813584 3223306 8025374 21313290 26838958 24536596 startTexFig + 379 2430 a +%%BeginDocument: uofabot.ps +/CanvasDict where not{/CanvasDict 250 dict def}{pop}ifelse +CanvasDict begin +systemdict/setpacking known{/origpack currentpacking def true setpacking}if +/bdf{bind def}bind def +/xdf{exch bind def}bdf +/min{2 copy gt{exch}if pop}bdf +/edf{exch def}bdf +/max{2 copy lt{exch}if pop}bdf +/cvmtx matrix def +/tpmx matrix def +/currot 0 def +/rotmtx matrix def +/origmtx matrix def +/cvangle{360 exch sub 90 add 360 mod}bdf +/setrot{/currot edf rotmtx currentmatrix pop 2 copy translate currot rotate neg exch neg exch translate}bdf +/endrot{rotmtx setmatrix}bdf +/i systemdict/image get def/T true def/F false def/dbg F def +/ncolors 0 def/st0 ()def/st1 ()def/proc0 {}def +/penh 1 def/penv 1 def/penv2 0 def/penh2 0 def/samplesize 0 def/width 0 def/height 0 def +/setcmykcolor where not{/setcmykcolor{/b edf 3{b add 1.0 exch sub 0.0 max 1.0 min 3 1 roll}repeat systemdict begin setrgbcolor end}bdf}{pop}ifelse +/doeoclip{closepath{eoclip}stopped{currentflat dup 2 mul setflat eoclip setflat}if}bdf +/SpaceExtra 0 def/LetterSpace 0 def/StringLength 0 def/NumSpaces 0 def/JustOffset 0 def +/f0/fill load def +/s0{1 setlinewidth cvmtx currentmatrix pop penh penv scale stroke cvmtx setmatrix}bdf +/f1{_bp _fp impat}def +/s1{cvmtx currentmatrix pop 1 setlinewidth penh penv scale +{strokepath}stopped{currentflat dup 2 mul setflat strokepath setflat}if +_bp +cvmtx setmatrix _fp impat}def +/filltype 0 def +/stroketype 0 def +/f{filltype 0 eq{f0}{f1}ifelse}bdf +/s{stroketype 0 eq{s0}{s1}ifelse}bdf +/_fp{}def +/_bp{}def +/_fg 1 def +/_pg 0 def +/_bkg 1 def +/_frg 0 def +/_frgb 3 array def +/_frrgb [0 0 0] def +/_fcmyk 4 array def +/_frcmyk [0 0 0 1] def +/_prgb 3 array def +/_pcmyk 4 array def +/_bkrgb [1 1 1] def +/_bkcmyk [0 0 0 0] def +/fg{/_fg exch def /filltype 0 def/fills{_fg setgray}def}def +/frgb{_frgb astore pop /filltype 0 def/fills{_frgb aload pop setrgbcolor}def}def +/fcmyk{_fcmyk astore pop /filltype 0 def/fills{_fcmyk aload pop setcmykcolor}def}def +/pg{/_pg exch def /stroketype 0 def/pens{_pg setgray}def}def +/prgb{_prgb astore pop /stroketype 0 def/pens{_prgb aload pop setrgbcolor}def}def +/pcmyk{_pcmyk astore pop /stroketype 0 def/pens{_pcmyk aload pop setcmykcolor}def}def +/fpat{/fstr edf/filltype 1 def/fills{/patstr fstr def}bdf}bdf +/ppat{/sstr edf/stroketype 1 def/pens{/patstr sstr def}bdf}bdf +/bkg{ /_bkg exch def /_bp{gsave _bkg setgray fill grestore}def}def +/bkrgb{_bkrgb astore pop/_bp{gsave _bkrgb aload pop setrgbcolor fill grestore}def}def +/bkcmyk{_bkcmyk astore pop/_bp{gsave _bkcmyk aload pop setcmykcolor fill grestore}def}def +/frg{ /_frg exch def /_fp{_frg setgray}def}def +/frrgb{_frrgb astore pop/_fp{_frrgb aload pop setrgbcolor}def}def +/frcmyk{_frcmyk astore pop/_fp{_frcmyk aload pop setcmykcolor}def}def +/icomp{/ncolors edf +ncolors 1 gt{/proc0 edf +dup dup 0 get ncolors div cvi exch 0 3 -1 roll put +4 -1 roll ncolors div cvi 4 1 roll{proc0 dup/st0 edf +0 exch ncolors exch length +dup ncolors sub exch ncolors div cvi string/st1 edf +{dup 0 exch dup 1 exch +2 add{st0 exch get add}bind for +3 div ncolors 4 eq{exch dup 3 1 roll 3 add st0 exch get add 255 exch sub dup 0 lt{pop 0}if}if cvi +dup 255 gt{pop 255}if +exch ncolors div cvi exch +st1 3 1 roll put}bind for +st1}}if i}bdf +/ci +{/colorimage where +{pop false exch colorimage} +{icomp} +ifelse}bdf +/impat +{/cnt 0 def +/MySave save def +currot 0 ne{currot neg rotate}if +clip +flattenpath +pathbbox +3 -1 roll +8 div floor 8 mul dup/starty edf +sub abs 8 div ceiling 8 mul cvi/height edf +exch 8 div floor 8 mul dup/startx edf +sub abs 8 div ceiling 8 mul cvi/width edf +startx starty translate +width height scale +/height height 8 mul def +/st0 width string def +width height T [width 0 0 height neg 0 height] +{patstr +cnt 8 mod +get/st1 edf +0 1 +st0 length 1 sub dup 0 le{pop 1}if +{st0 exch +st1 +put}bind for/cnt cnt 1 add def +st0}bind +imagemask +MySave restore +newpath}bdf +/cm{/ncolors edf +translate +scale/height edf/colorimage where +{pop} +{ncolors mul}ifelse/width edf +/tbitstr width string def +width height 8 [width 0 0 height neg 0 height] +{currentfile tbitstr readhexstring pop}bind +ncolors +dup 3 eq {ci}{icomp}ifelse}bdf +/im{translate +scale +/height edf +/width edf +/tbitstr width 7 add 8 div cvi string def +width height 1 [width 0 0 height neg 0 height] +{currentfile tbitstr readhexstring pop}bind +i}bdf +/imk{/invFlag edf +translate +scale +/height edf +/width edf +/tbitstr width 7 add 8 div cvi string def +width height invFlag [width 0 0 height neg 0 height] +{currentfile tbitstr readhexstring pop}bind +imagemask}bdf +/BeginEPSF +{/MySave save def +/dict_count countdictstack def +/op_count count 1 sub def +userdict begin +/showpage {} def +0 setgray 0 setlinecap +1 setlinewidth 0 setlinejoin +10 setmiterlimit [] 0 setdash newpath +/languagelevel where +{pop languagelevel 1 ne{false setstrokeadjust false setoverprint}if}if +}bdf +/EndEPSF +{count op_count sub {pop}repeat +countdictstack dict_count sub {end}repeat +MySave restore}bdf +/rectpath {/cv_r edf/cv_b edf/cv_l edf/cv_t edf +cv_l cv_t moveto cv_r cv_t lineto cv_r cv_b lineto cv_l cv_b lineto cv_l cv_t lineto closepath}bdf +/setpen{/penh edf/penv edf/penv2 penv 2 div def/penh2 penh 2 div def}bdf +/dostroke{not pens 1.0 currentgray ne or {s}{newpath}ifelse}bdf +/dodashfill{not fills 1.0 currentgray ne or +{gsave f grestore gsave [] 0 setdash +stroketype/stroketype filltype def +s/stroketype edf grestore}{newpath}ifelse}bdf +/dofill{not fills 1.0 currentgray ne or {f}{newpath}ifelse}bdf +/dofillsave{not fills 1.0 currentgray ne or {gsave f grestore}if}bdf +/doline{not pens 1.0 currentgray ne or {filltype/filltype stroketype def f/filltype edf}{newpath}ifelse}bdf +/spx{SpaceExtra 0 32 4 -1 roll widthshow}bdf +/lsx{SpaceExtra 0 32 LetterSpace 0 6 -1 roll awidthshow}bdf +/Rjust{stringwidth pop JustOffset exch sub /JustOffset edf}bdf +/Cjust{stringwidth pop 2 div JustOffset exch sub /JustOffset edf}bdf +/adjfit{stringwidth pop LetterSpace StringLength 1 sub mul add SpaceExtra NumSpaces mul add dup /pw edf JustOffset exch +sub dup /wdif edf StringLength div dup abs 1.0 gt{pop 0}if LetterSpace add /LetterSpace edf}bdf +/ulb{currentpoint pop /underlinpt edf}bdf +/ule{gsave currentpoint newpath moveto currentfont dup /ft1 known{dup /ft1 get begin /FontMatrix get FontMatrix tpmx concatmatrix pop} +{begin FontMatrix tpmx copy pop}ifelse FontInfo begin UnderlinePosition UnderlineThickness end end dup tpmx +dtransform pop setlinewidth dup tpmx dtransform pop 0 exch rmoveto underlinpt currentpoint pop sub 0 rlineto stroke grestore}bdf +/fittext{ /SpaceExtra edf /LetterSpace edf /StringLength edf /NumSpaces edf /JustOffset edf not 1 currentgray ne or +{dup {ulb}if exch +dup adjfit +lsx {ule}if}{pop pop}ifelse}bdf +/cvRecFont{/encod edf FontDirectory 2 index known{cleartomark}{findfont dup length 1 add dict begin +{1 index/FID ne{def}{pop pop}ifelse}forall encod{/Encoding CVvec def}if +currentdict end definefont cleartomark}ifelse}bdf +/wrk1 ( ) def/wdict 16 dict def +/Work75 75 string def /Nmk{Work75 cvs dup}bdf /Npt{put cvn}bdf /dhOdh{Nmk 2 79 Npt}bdf /dhodh{Nmk 2 111 Npt}bdf /dhSdh{Nmk 2 83 Npt}bdf +/sfWidth{gsave 0 0 moveto 0 0 lineto 0 0 lineto 0 0 lineto closepath clip stringwidth grestore}bdf +/MakOF{dup dhodh FontDirectory 1 index known{exch pop}{exch findfont dup length 1 add dict begin +{1 index/FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall +/PaintType 2 def +/StrokeWidth .24 1000 mul ftSize div dup 12 lt{pop 12}if def +dup currentdict end definefont pop}ifelse}bdf +/fts{dup/ftSize edf}def +/mkFT{/tempFT 11 dict def tempFT begin +/FontMatrix [1 0 0 1 0 0] def/FontType 3 def +FontDirectory 3 index get /Encoding get/Encoding exch def +/proc2 edf/ft2 exch findfont def/ft1 exch findfont def/FontBBox [0 0 1 1] def +/BuildChar{wdict begin/chr edf/ftdt edf/chrst wrk1 dup 0 chr put def ftdt/proc2 get exec end}def +end tempFT definefont pop}bdf +/OLFt{dup dhOdh FontDirectory 1 index known{exch pop} +{dup 3 -1 roll dup MakOF {outproc} mkFT}ifelse}bdf +/mshw{moveto show}bdf +/outproc{ftdt/ft1 get setfont gsave chrst sfWidth grestore setcharwidth dblsh}bdf +/dblsh{currentgray 1 setgray chrst 0 0 mshw setgray ftdt/ft2 get setfont chrst 0 0 mshw}bdf +/ShadChar{ftdt/ft1 get setfont gsave chrst sfWidth 1 index 0 ne{exch .05 add exch}if grestore setcharwidth +chrst .06 0 mshw 0 .05 translate dblsh}bdf +/ShFt{dup dhSdh FontDirectory 1 index known{exch pop} +{dup 3 -1 roll dup MakOF {ShadChar} mkFT}ifelse}bdf +/LswUnits{72 75 div dup scale}bdf +/erasefill{_bp}def +/CVvec 256 array def +/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +CVvec 0 32 getinterval astore pop +CVvec 32/Times-Roman findfont/Encoding get +32 96 getinterval putinterval CVvec dup 39/quotesingle put 96/grave put +/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute +/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave +/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute +/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis +/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls +/registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash +/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation +/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash +/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft +/guillemotright/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe +/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge +/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl +/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand/Acircumflex/Ecircumflex/Aacute +/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex +/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde +/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron +CVvec 128 128 getinterval astore pop +end +CanvasDict begin +0 setlinecap +0 setlinejoin +4 setmiterlimit +/currot 0 def +origmtx currentmatrix pop +[] 0 setdash +1 1 setpen +1 fg +0 pg +0 frg +1 bkg +newpath +/dbg F def +% ---- Object #1:5 Obj Type: 99 +% ---- Object #2:6 Obj Type: 2 +save +0 setgray +mark /|___Times-Bold /Times-Bold T cvRecFont +14 fts /|___Times-Bold findfont exch scalefont setfont +0 setgray +125 360 moveto +(DEPARTMENT OF COMPUTING SCIENCE) +F F 280.3589 3 31 0 0 fittext +restore +% ---- Object #3:7 Obj Type: 2 +save +0 setgray +mark /|___Times-Bold /Times-Bold T cvRecFont +12 fts /|___Times-Bold findfont exch scalefont setfont +0 setgray +197 344 moveto +(The University of Alberta) +F F 131.6221 3 25 0 0 fittext +restore +% ---- Object #4:8 Obj Type: 2 +save +0 setgray +mark /|___Times-Bold /Times-Bold T cvRecFont +12 fts /|___Times-Bold findfont exch scalefont setfont +0 setgray +194 328 moveto +(Edmonton, Alberta, Canada) +F F 145.3213 2 25 0 0 fittext +restore +origmtx setmatrix +systemdict /setpacking known {origpack setpacking} if end + +%%EndDocument + + endTexFig + eop +%%Page: 0 2 +0 1 bop eop +%%Page: 1 3 +1 2 bop 350 50 a Fu(The)21 b(APHID)g(P)n(arallel)h Fw(\013\014)k +Fu(Searc)n(h)21 b(Algorithm)1600 24 y Ft(\003)516 170 +y Fs(Mark)16 b(G.)g(Bro)q(c)o(kington,)g Fr(br)n(o)n(ck@cs.ualb)n +(erta.c)n(a)504 228 y Fs(Jonathan)i(Sc)o(hae\013er,)d +Fr(jonathan@cs.ualb)n(erta.c)n(a)685 286 y Fq(Departmen)o(t)f(of)f +(Computing)h(Science)797 345 y(Univ)o(ersit)o(y)h(of)d(Alb)q(erta)727 +403 y(Edmon)o(ton,)i(Alb)q(erta)g(T6G)f(2H1)911 461 y(Canada)802 +558 y Fs(August)k(20,)f(1996)890 749 y Fp(Abstract)161 +814 y Fq(This)g(pap)q(er)h(in)o(tro)q(duces)g(the)e(APHID)g(\(Async)o +(hronous)j(P)o(arallel)f(Hierarc)o(hical)h(Iterativ)o(e)e(Deep)q +(ening\))i(game-)104 860 y(tree)11 b(searc)o(h)i(algorithm.)18 +b(An)12 b(APHID)f(searc)o(h)h(is)h(a)e(hierarc)o(hical)k(searc)o(h)d +(with)g(a)g(master)g(con)o(trolling)j(the)d(top)f(of)h(the)104 +905 y(tree)i(\()p Fo(d)217 889 y Fn(0)242 905 y Fq(ply\),)h(and)g(the)f +(sla)o(v)o(es)h(searc)o(hing)h(the)e(rest)g(of)g(the)g(tree)g(\()p +Fo(d)c Fm(\000)f Fo(d)1192 889 y Fn(0)1217 905 y Fq(ply\).)21 +b(The)14 b(sla)o(v)o(es)h(async)o(hronously)j(read)104 +951 y(w)o(ork)d(lists)h(from)f(the)h(master)f(and)h(return)g(score)f +(information)i(to)f(the)f(master.)24 b(The)15 b(master)g(uses)h(the)f +(returned)104 997 y(score)e(information)i(to)d(generate)i(appro)o +(ximate)h(minimax)f(v)n(alues,)g(un)o(til)h(all)f(of)e(the)h(required)h +(score)g(information)g(is)104 1042 y(a)o(v)n(ailable.)161 +1088 y(APHID)e(has)g(b)q(een)g(programmed)h(as)e(an)h(easy)g(to)g +(implemen)o(t,)h(game-indep)q(enden)o(t)h Fo(\013\014)f +Fq(library)m(.)18 b(This)12 b(has)g(b)q(een)104 1134 +y(demonstrated)g(b)o(y)f(parallelizi)q(ng)j(three)c(programs)i(\(c)o +(hess,)f(c)o(hec)o(k)o(ers)g(and)g(Othello\))h(on)f(a)g(net)o(w)o(ork)g +(of)f(w)o(orkstations,)104 1179 y(eac)o(h)j(with)h(less)f(than)h(a)f +(da)o(y's)g(w)o(orth)g(of)g(e\013ort.)0 1316 y Fl(1)67 +b(In)n(tro)r(duction)0 1407 y Fk(The)18 b(alpha-b)q(eta)f(\()p +Fj(\013\014)r Fk(\))h(minim)o(ax)c(tree)19 b(searc)o(h)f(algorithm)d +(has)j(pro)o(v)o(en)f(to)g(b)q(e)h(a)f(di\016cult)g(algorithm)e(to)i +(parallelize.)0 1457 y(Although)e(sim)o(ulations)e(predict)k(excellen)o +(t)f(parallel)f(p)q(erformance,)g(man)o(y)f(of)h(these)i(results)g(are) +f(based)h(on)e(an)h(unrea-)0 1507 y(sonable)c(set)h(of)e(assumptions.) +17 b(In)12 b(practice,)h(kno)o(wing)e(where)i(to)f(initiate)f(parallel) +g(activit)o(y)g(is)h(di\016cult)g(since)h(the)f(result)0 +1557 y(of)h(searc)o(hing)i(one)f(no)q(de)h(at)f(a)f(branc)o(h)i(ma)o(y) +d(ob)o(viate)i(the)g(parallel)f(w)o(ork)h(of)f(the)i(other)g(branc)o +(hes)g(\(a)f(so-called)g Fi(cut-o\013)p Fk(\).)0 1607 +y(In)g(real-w)o(orld)g(implemen)o(tatio)o(ns,)e(suc)o(h)j(as)f(for)g +(high-p)q(erformance)g(c)o(hess,)h(c)o(hec)o(k)o(ers)i(and)d(Othello)g +(game-pla)o(ying)d(pro-)0 1656 y(grams,)h(the)j(programs)d(su\013er)j +(from)d(three)k(ma)r(jor)c(sources)j(of)e(parallel)g(ine\016ciency)h +(\(a)g(similar)d(mo)q(del)i(is)g(presen)o(ted)j(in)0 +1706 y([18)o(]\):)62 1789 y Fh(\017)21 b Fi(Synchr)n(onization)15 +b(Overhe)n(ad)p Fk(:)i(The)d(searc)o(h)g(t)o(ypically)d(has)i(man)o(y)e +(sync)o(hronization)i(p)q(oin)o(ts)f(that)h(result)h(in)e(a)h(high)104 +1839 y(p)q(ercen)o(tage)i(of)f(pro)q(cessor)h(idle)f(time.)62 +1922 y Fh(\017)21 b Fi(Par)n(al)r(lelization)14 b(Overhe)n(ad)p +Fk(:)k(This)c(is)g(the)g(o)o(v)o(erhead)h(of)e(incorp)q(orating)g(the)i +(parallel)e(algorithm,)e(whic)o(h)i(includes)104 1972 +y(the)h(handling)f(of)g(comm)o(unication)e(and)i(main)o(taining)e +(structures)16 b(to)e(allo)o(w)e(for)i(allo)q(cation)e(of)h(w)o(ork.)62 +2055 y Fh(\017)21 b Fi(Se)n(ar)n(ch)c(Overhe)n(ad)p Fk(:)22 +b(Searc)o(h)16 b(trees)i(are)e(really)f(directed)i(graphs.)24 +b(W)m(ork)15 b(p)q(erformed)g(on)h(one)g(pro)q(cessor)h(ma)o(y)d(b)q(e) +104 2105 y(useful)d(to)g(the)g(computations)f(of)g(another)i(pro)q +(cessor.)18 b(If)11 b(this)g(information)d(is)j(not)g(a)o(v)n(ailable,) +e(unnecessary)k(searc)o(h)104 2155 y(ma)o(y)f(b)q(e)i(done.)0 +2238 y(These)h(o)o(v)o(erheads)f(are)g(not)f(indep)q(enden)o(t)i(of)d +(eac)o(h)i(other.)19 b(F)m(or)13 b(example,)f(increased)i(comm)o +(unication)c(can)k(help)f(reduce)0 2287 y(the)j(searc)o(h)h(o)o(v)o +(erhead.)23 b(Reducing)15 b(the)h(n)o(um)o(b)q(er)f(of)f(sync)o +(hronization)i(p)q(oin)o(ts)f(can)h(increase)g(the)g(searc)o(h)h(o)o(v) +o(erhead.)23 b(In)0 2337 y(practice,)14 b(the)h(righ)o(t)e(balance)h(b) +q(et)o(w)o(een)h(these)g(sources)h(of)d(program)f(ine\016ciency)i(is)g +(di\016cult)f(to)h(\014nd,)f(and)h(one)g(usually)0 2387 +y(p)q(erforms)f(man)o(y)f(exp)q(erimen)o(ts)j(to)e(\014nd)h(the)h(righ) +o(t)e(trade-o\013s)i(to)f(maxim)o(ize)d(p)q(erformance.)62 +2437 y(Man)o(y)17 b(parallel)f Fj(\013\014)k Fk(algorithms)15 +b(ha)o(v)o(e)i(app)q(eared)h(in)f(the)h(literature)g(\(see)g([1])e(for) +h(a)g(comprehensiv)o(e)h(list)f(of)f(algo-)0 2487 y(rithms\).)h(The)12 +b(PV-Split)g(algorithm)e(recognized)k(that)e(some)g(no)q(des)h(exist)g +(in)e(the)i(searc)o(h)h(tree)g(where,)f(ha)o(ving)e(searc)o(hed)0 +2537 y(the)k(\014rst)h(branc)o(h)f(sequen)o(tially)m(,)e(the)i +(remaining)e(branc)o(hes)j(can)f(b)q(e)g(searc)o(hed)h(in)e(parallel)g +([17)o(].)20 b(Initiating)13 b(parallelism)p 0 2573 780 +2 v 46 2600 a Fn(\003)64 2612 y Fg(A)g(part)f(of)h(this)f(pap)q(er)g(w) +o(as)h(presen)o(ted)e(at)h(the)h(Adv)n(ances)e(in)i(Computer)e(Chess)i +(VI)q(I)q(I)g(conference)d(in)j(Maastric)o(h)o(t,)e(June)h(1996)g([2].) +20 b(A)0 2651 y(di\013eren)o(t)8 b(p)q(ortion)h(w)o(as)i(accepted)d +(for)i(publication)d(at)j(the)g(8th)g(IEEE)h(Symp)q(osium)c(on)j(P)o +(arallel)f(and)h(Distributed)e(Pro)q(cessing)g(\(SPDP)i('96\),)0 +2691 y(New)i(Orleans,)f(Octob)q(er)f(1996)g([3].)965 +2790 y Fk(1)p eop +%%Page: 2 4 +2 3 bop 0 42 a Fk(along)13 b(the)i(b)q(est)h(line)e(of)f(pla)o(y)m(,)g +(the)i Fi(princip)n(al)g(variation)p Fk(,)f(w)o(as)g(e\013ectiv)o(e)i +(for)e(a)g(small)e(n)o(um)o(b)q(er)i(of)g(pro)q(cessors,)i(although)0 +91 y(v)n(ariations)d(on)g(this)h(sc)o(heme)g(seem)g(to)g(b)q(e)g +(limited)e(to)i(sp)q(eedups)i(of)d(less)h(than)g(8)g([24)o(].)62 +141 y(The)e(idea)f(can)h(b)q(e)g(generalized)g(to)g(other)g(no)q(des)g +(in)f(the)h(tree.)18 b(A)o(t)12 b(no)q(des)g(where)h(the)f(\014rst)g +(branc)o(h)g(has)g(b)q(een)g(searc)o(hed)0 191 y(and)17 +b(no)g(cut-o\013)h(o)q(ccurs,)h(the)e(rest)i(can)e(lik)o(ely)f(b)q(e)i +(searc)o(hed)h(in)e(parallel.)26 b(It)18 b(is)f(a)g(trade-o\013)g({)g +(increased)i(parallelism)0 241 y(v)o(ersus)14 b(additional)e(searc)o(h) +i(o)o(v)o(erhead,)f(since)h(one)g(of)e(these)j(parallel)d(tasks)i +(could)f(cause)h(a)f(cut-o\013.)18 b(This)13 b(idea)g(has)h(b)q(een)0 +291 y(tried)e(b)o(y)g(a)f(n)o(um)o(b)q(er)h(of)f(researc)o(hers)k([6)o +(,)c(7,)g(10].)17 b(The)12 b(b)q(est-kno)o(wn)g(instance)h(of)e(this)h +(t)o(yp)q(e)h(of)e(algorithm)e(is)j(called)f Fi(Y)m(oung)0 +340 y(Br)n(others)k(Wait)f Fk(\(YBW\))h(and)f(w)o(as)g(implemen)o(ted)e +(b)o(y)i(F)m(eldmann)e(in)i(the)h Ff(Zugzw)l(ang)f Fk(c)o(hess)i +(program)d([5)o(].)19 b(F)m(eldmann)0 390 y(ac)o(hiev)o(ed)12 +b(a)f(344-fold)e(sp)q(eedup)k(using)e(YBW)h(on)f(1024)f(pro)q(cessors.) +20 b(V)m(ariations)10 b(of)h(this)g(algorithm)e(ha)o(v)o(e)i(app)q +(eared)h(with)0 440 y(comparable)g(exp)q(erimen)o(tal)g(results,)i(suc) +o(h)g(as)f(Kuszmaul's)f(Jam)o(b)q(oree)h(searc)o(h)h([14)o(])f(and)f(W) +m(eill's)g(ABD)o(AD)o(A)h(algorithm)0 490 y([29)o(].)62 +540 y(This)20 b(class)f(of)g(algorithms)e(cannot)j(ac)o(hiev)o(e)g(a)f +(linear)g(sp)q(eedup)i(primarily)c(due)i(to)h(sync)o(hronization)f(o)o +(v)o(erhead;)0 589 y(the)c(searc)o(h)h(tree)g(ma)o(y)d(ha)o(v)o(e)i +(thousands)g(of)f(sync)o(hronization)h(p)q(oin)o(ts)g(and)f(there)j +(are)e(n)o(umerous)f(o)q(ccasions)h(where)h(the)0 639 +y(pro)q(cesses)i(are)e(starv)o(ed)h(for)e(w)o(ork.)23 +b(The)16 b(algorithms)e(ha)o(v)o(e)h(lo)o(w)g(searc)o(h)i(o)o(v)o +(erhead,)f(but)f(this)h(is)g(primarily)d(due)j(to)f(the)0 +689 y(implemen)o(tatio)o(n)c(of)j(a)f(globally)f(shared)j(transp)q +(osition)e(table)h(to)g(share)h(information)c(and)i(impro)o(v)o(e)f(mo) +o(v)o(e)h(ordering.)62 739 y(This)h(pap)q(er)h(in)o(tro)q(duces)h(the)f +(Async)o(hronous)g(P)o(arallel)e(Hierarc)o(hical)h(Iterativ)o(e)h(Deep) +q(ening)g(\(APHID)1723 724 y Fe(1)1742 739 y Fk(\))f(game-tree)0 +789 y(searc)o(h)i(algorithm.)k(The)c(algorithm)d(represen)o(ts)18 +b(a)d(departure)i(from)c(the)j(approac)o(hes)g(used)h(in)d(practice.)24 +b(In)15 b(con)o(trast)0 839 y(to)d(other)h(sc)o(hemes,)g(APHID)g +(de\014nes)h(a)e(fron)o(tier)h(\(a)f(\014xed)h(n)o(um)o(b)q(er)f(of)f +(mo)o(v)o(es)h(a)o(w)o(a)o(y)f(from)g(the)i(ro)q(ot)f(of)g(the)h(searc) +o(h)h(tree\),)0 888 y(and)d(all)g(no)q(des)h(at)f(the)h(fron)o(tier)g +(are)f(done)h(in)f(parallel.)16 b(Eac)o(h)c(w)o(ork)o(er)g(pro)q(cess)h +(is)e(assigned)h(an)f(equal)g(n)o(um)o(b)q(er)g(of)g(fron)o(tier)0 +938 y(no)q(des)i(to)f(searc)o(h.)19 b(The)13 b(w)o(ork)o(ers)g(con)o +(tin)o(ually)d(searc)o(h)k(these)g(no)q(des)f(deep)q(er)h(and)e(deep)q +(er,)i(nev)o(er)f(ha)o(ving)f(to)g(sync)o(hronize)0 988 +y(with)j(a)g(con)o(trolling)f(master)h(pro)q(cess.)24 +b(The)16 b(master)f(pro)q(cess)i(rep)q(eatedly)f(searc)o(hes)i(to)d +(the)h(fron)o(tier)f(to)g(get)h(the)g(latest)0 1038 y(searc)o(h)g +(results.)k(In)15 b(this)f(w)o(a)o(y)m(,)f(there)j(is)e(e\013ectiv)o +(ely)i(no)e(idle)g(time;)f(searc)o(h)i(ine\016ciencies)h(are)f +(primarily)d(due)j(to)f(searc)o(h)0 1088 y(o)o(v)o(erhead.)29 +b(APHID's)18 b(p)q(erformance)f(do)q(es)h(not)g(rely)f(on)h(the)g +(implemen)o(tati)o(on)d(of)i(a)g(global)f(shared)i(memory)m(,)d(whic)o +(h)0 1137 y(mak)o(es)f(the)i(algorithm)d(suitable)i(for)g(lo)q +(osely-coupled)f(arc)o(hitectures)k(\(suc)o(h)e(as)f(a)g(net)o(w)o(ork) +h(of)e(w)o(orkstations\),)h(as)h(w)o(ell)0 1187 y(as)e(tigh)o +(tly-coupled)f(arc)o(hitectures.)62 1237 y(Unlik)o(e)f(most)f(parallel) +g Fj(\013\014)k Fk(algorithms,)9 b(APHID)k(is)f(designed)h(to)f(\014t)g +(in)o(to)g(a)g(sequen)o(tial)g Fj(\013\014)j Fk(structure.)k(APHID)13 +b(has)0 1287 y(b)q(een)i(implemen)o(ted)e(as)h(a)g(game-indep)q(enden)o +(t)g(library)g(of)f(routines.)20 b(These,)c(com)o(bined)d(with)h +(application-dep)q(enden)o(t)0 1337 y(routines)d(that)f(the)g(user)h +(supplies,)g(allo)o(w)d(a)i(sequen)o(tial)g Fj(\013\014)j +Fk(program)8 b(to)i(b)q(e)h(easily)e(con)o(v)o(erted)i(to)f(a)g +(parallel)f Fj(\013\014)j Fk(program.)0 1386 y(Although)i(most)f +(parallel)g Fj(\013\014)j Fk(programs)d(tak)o(e)h(mon)o(ths)f(to)h(dev) +o(elop,)g(the)h(game-indep)q(enden)o(t)f(library)g(allo)o(ws)e(users)k +(to)0 1436 y(in)o(tegrate)e(parallelism)d(in)o(to)j(their)g +(application)e(with)i(only)f(a)h(few)g(hours)g(of)f(w)o(ork.)62 +1486 y(This)j(pap)q(er)h(discusses)i(the)e(APHID)f(algorithm,)e(its)i +(application-indep)q(enden)o(t)g(in)o(terface)h(and)f(the)h(p)q +(erformance)0 1536 y(of)12 b(the)h(APHID)g(algorithm.)i(The)f(pap)q(er) +f(is)g(organized)f(in)o(to)g(\014v)o(e)h(sections.)19 +b(Section)13 b(2)g(is)f(a)h(brief)f(summary)e(of)j(previous)0 +1586 y(w)o(ork)i(in)g(sequen)o(tial)h(and)f(parallel)g(game-tree)g +(searc)o(h.)24 b(Section)16 b(3)f(is)g(primarily)e(concerned)18 +b(with)d(the)h(details)f(of)g(ho)o(w)0 1636 y(the)j(APHID)f(algorithm)d +(op)q(erates,)19 b(and)e(ho)o(w)f(the)i(library)e(in)o(tegrates)i(with) +e(an)h(existing)g(sequen)o(tial)g Fj(\013\014)i Fk(algorithm.)0 +1685 y(Section)11 b(4)g(describ)q(es)i(the)e(results)h(of)f(in)o +(tegrating)f(the)h(library)g(in)o(to)f(three)i(di\013eren)o(t)g +(game-pla)o(ying)c(programs:)15 b Ff(Key)m(ano)0 1735 +y Fk(\(Othello\),)h Ff(TheTurk)h Fk(\(c)o(hess\),)i(and)d +Ff(Chinook)h Fk(\(c)o(hec)o(k)o(ers\).)28 b(Section)17 +b(5)f(describ)q(es)i(some)e(conclusions)g(that)h(can)f(b)q(e)0 +1785 y(dra)o(wn)f(from)e(the)i(exp)q(erimen)o(ts,)g(and)f(a)h(glimpse)e +(at)h(some)g(of)g(the)i(things)e(w)o(e)h(in)o(tend)g(on)f(impro)o(ving) +e(b)q(efore)k(APHID's)0 1835 y(general)e(release.)0 1972 +y Fl(2)67 b(Previous)23 b(W)-6 b(ork)0 2063 y Fk(This)14 +b(section)g(is)g(divided)g(in)o(to)f(t)o(w)o(o)g(subsections,)i +(discussing)g(sequen)o(tial)f(and)f(parallel)g(searc)o(h)i(metho)q(ds.) +0 2179 y Fv(2.1)56 b(Sequen)n(tial)17 b(Game-T)-5 b(ree)16 +b(Searc)n(h)0 2256 y Fk(Most)g(common)d(games)i(of)g(though)o(t)h +(\(suc)o(h)h(as)f(c)o(hec)o(k)o(ers,)i(c)o(hess,)f(Othello)f(and)g +(Go\))f(\014t)h(in)o(to)f(the)i(class)f(of)f(t)o(w)o(o-pla)o(y)o(er,)0 +2306 y(zero-sum)d(games)g(with)g(p)q(erfect)i(information.)h(Giv)o(en)d +(su\016cien)o(t)h(time)e(and)h(assuming)f(that)i(b)q(oth)f(pla)o(y)o +(ers)h(w)o(an)o(t)f(to)g(win)0 2355 y(the)i(game,)d(it)i(is)h(easy)f +(to)g(determine)h(a)f(b)q(est)h(mo)o(v)o(e)e(in)h(an)o(y)g(p)q +(osition,)f(and)h(determine)g(whether)i(or)e(not)h(an)o(y)e(p)q +(osition)h(is)0 2405 y(a)h(win,)f(loss)g(or)h(dra)o(w.)62 +2455 y(An)h(initial)d(p)q(osition)i(in)g(a)g(game,)e(and)i(all)f(of)h +(its)g(p)q(ossible)h(outcomes,)f(can)g(b)q(e)h(represen)o(ted)i(as)e(a) +f(game-tree.)19 b(Eac)o(h)0 2505 y(no)q(de)d(in)f(the)h(game-tree)f +(represen)o(ts)j(a)e(p)q(osition)f(within)f(the)i(game.)22 +b(Eac)o(h)16 b(arc)g(joining)e(a)h(no)q(de)h(at)f(lev)o(el)g +Fj(l)i Fk(to)e(a)h(no)q(de)0 2555 y(at)d(lev)o(el)g Fj(l)c +Fk(+)g(1)k(represen)o(ts)j(the)e(mo)o(v)o(e)d(required)j(to)g(reac)o(h) +g(the)g(successor)h(p)q(osition.)j(The)13 b(v)n(arious)g(lev)o(els)g +(in)g(the)h(tree)h(are)0 2604 y(called)g Fi(plies)h Fk(b)o(y)f +(game-tree)h(researc)o(hers,)i(where)f(ply)e(0)h(is)f(the)i(curren)o(t) +g(p)q(osition)e(in)g(the)i(game,)d(ply)h(1)g(consists)i(of)e(all)p +0 2639 780 2 v 46 2666 a Fd(1)64 2678 y Fg(An)c(aphid)f(is)i(a)f +(soft-b)q(o)q(died)e(insect)h(that)g(suc)o(ks)h(the)g(sap)g(from)f +(plan)o(ts.)965 2790 y Fk(2)p eop +%%Page: 3 5 +3 4 bop 177 0 a + 10988180 9472573 7433338 16642785 31838371 37627166 startTexFig + 177 0 a +%%BeginDocument: candid21.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-Bold 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 Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -30 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 130 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 209 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -110 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 50 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 209 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 289 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 u + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 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 u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +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 23 -222 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -138 -222 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 261 -182 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -110 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 89 156 ] concat +%I +105 338 8 7 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 -40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +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 40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +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 40 -105 ] concat + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +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 -40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 149 115 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 50 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -40 -105 ] concat + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 229 155 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +Begin %I Elli +%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 309 115 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 388 155 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 289 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 488 155 ] concat +%I +105 338 8 7 Elli +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 +[ 1 -0 -0 1 118 226 ] concat +%I +106 227 166 227 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 118 226 ] concat +%I +266 227 326 227 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 0 -104 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -110 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 89 156 ] concat +%I +105 338 8 7 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 -40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +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 -104 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 50 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -40 -105 ] concat + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 229 155 ] concat +%I +105 338 8 7 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 -8 -112 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 217 -202 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -32 -97 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 396 163 ] concat +%I +105 338 8 7 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 0 -104 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 289 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 488 155 ] concat +%I +105 338 8 7 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 201 -182 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +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 +[ 1 -0 -0 1 118 226 ] concat +%I +56 173 56 113 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 222 226 ] concat +%I +351 173 351 113 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +40 383 180 418 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +200 418 200 383 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +220 418 359 383 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +52 278 82 313 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +52 209 52 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +102 313 132 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +212 278 242 313 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +262 313 292 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +212 209 212 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 226 230 ] concat +%I +297 313 267 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 226 230 ] concat +%I +317 313 347 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 226 230 ] concat +%I +267 209 267 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 226 230 ] concat +%I +347 209 347 174 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 169 332 ] concat +%I +[ +(1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 249 437 ] concat +%I +[ +(-1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 329 332 ] concat +%I +[ +(0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 409 437 ] concat +%I +[ +(-1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 488 332 ] concat +%I +[ +(0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 568 332 ] concat +%I +[ +(1) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 1077 0 a + 10988180 9472573 7367557 16577003 31838371 37627166 startTexFig + 1077 0 a +%%BeginDocument: candid22.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-Bold 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 Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -30 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 130 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 209 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -110 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 50 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 209 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 289 -314 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 u + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 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 u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +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 23 -222 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -138 -222 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 261 -182 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -110 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 89 156 ] concat +%I +105 338 8 7 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 -40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +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 40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +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 40 -105 ] concat + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +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 -40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 149 115 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 50 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -40 -105 ] concat + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 229 155 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +Begin %I Elli +%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 309 115 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 388 155 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t u + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 289 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 488 155 ] concat +%I +105 338 8 7 Elli +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 +[ 1 -0 -0 1 118 226 ] concat +%I +106 227 166 227 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 118 226 ] concat +%I +266 227 326 227 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 0 -104 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -110 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 89 156 ] concat +%I +105 338 8 7 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 -40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -70 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -98 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 -160 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +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 -104 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 50 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -40 -105 ] concat + +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 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 83 28 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 0 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 229 155 ] concat +%I +105 338 8 7 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 -8 -112 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 217 -202 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 -32 -97 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 396 163 ] concat +%I +105 338 8 7 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 0 -104 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 289 -210 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 40 -105 ] concat + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 249 -105 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 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 221 -12 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 159 -105 ] concat + +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 0 ] concat + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 483 100 433 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +100 433 100 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +120 483 120 423 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 463 140 463 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +80 443 140 443 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 290 326 ] concat +%I +105 338 8 7 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 83 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 62 113 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 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 42 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +End + +End %I eop + +Begin %I Elli +%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 248 325 ] concat +%I +105 338 8 7 Elli +End + +Begin %I Elli +%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 248 345 ] concat +%I +105 338 8 7 Elli +End + +End %I eop + +End %I eop + +Begin %I Elli +%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 488 155 ] concat +%I +105 338 8 7 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 201 -182 ] 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 174 230 ] concat +%I +145 348 130 333 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 144 230 ] concat +%I +160 348 175 333 Line +%I 1 +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 +[ 1 -0 -0 1 118 226 ] concat +%I +56 173 56 113 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 222 226 ] concat +%I +351 173 351 113 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 169 332 ] concat +%I +[ +(1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 249 437 ] concat +%I +[ +(-1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 329 332 ] concat +%I +[ +(0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 409 437 ] concat +%I +[ +(-1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 488 332 ] concat +%I +[ +(0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 568 332 ] concat +%I +[ +(1) +] Text +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +160 189 160 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +3 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 174 230 ] concat +%I +319 189 319 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +399 189 399 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +52 189 52 174 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +52 278 62 293 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +122 293 132 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +282 293 292 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 230 ] concat +%I +212 278 222 293 Line +%I 1 +End + +Begin %I Line +%I b 65535 +3 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 230 ] concat +%I +381 293 371 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 226 230 ] concat +%I +337 293 347 278 Line +%I 1 +End + +Begin %I Line +%I b 65535 +0 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 226 230 ] concat +%I +148 398 148 383 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 169 437 ] concat +%I +[ +(1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 164 541 ] concat +%I +[ +(min\(1,-1\) = -1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 329 437 ] concat +%I +[ +(0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 488 437 ] concat +%I +[ +(0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 568 437 ] concat +%I +[ +(1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 493 541 ] concat +%I +[ +(min\(0,1\) = 0) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 324 541 ] concat +%I +[ +(min\(0,-1\) = -1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 314 646 ] concat +%I +[ +(max\(-1,-1,0\) = 0) +] Text +End + +Begin %I Line +%I b 65535 +0 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 174 230 ] concat +%I +40 383 135 408 Line +%I 1 +End + +Begin %I Line +%I b 65535 +3 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 174 230 ] concat +%I +255 408 359 383 Line +%I 1 +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 286 691 a Fk(Figure)14 b(1:)j(\(a\))d(Tic-T)m(ac-T)m(o)q(e)f(Game-T)m +(ree,)g(\(b\))h(Game-T)m(ree)f(with)g(Minimax)e(V)m(alues)0 +826 y(successors)17 b(to)e(the)g(p)q(osition)e(at)i(ply)e(0,)h(and)h +(so)f(on.)19 b(A)o(t)c(the)g Fi(terminal)g(p)n(ositions)f +Fk(in)g(the)h(game-tree,)f(the)h(game)e(is)h(o)o(v)o(er)0 +876 y(and)f(a)h(v)n(alue)f(is)g(used)i(to)e(represen)o(t)j(the)e +(outcome)f(of)g(the)h(game.)j(F)m(or)c(example,)f(a)h(win)h(for)f(the)h +(pla)o(y)o(er)f(to)h(mo)o(v)o(e)e(w)o(ould)0 926 y(b)q(e)j(represen)o +(ted)i(as)d(1,)f(a)h(loss)g(as)g(-1,)f(and)h(a)g(dra)o(w)g(as)g(0.)19 +b(The)14 b(left)g(hand)g(tree)h(in)f(Figure)g(1)g(sho)o(ws)g(a)g(t)o +(ypical)f(game-tree)0 976 y(for)h(the)g(game)e(of)i(Tic-T)m(ac-T)m(o)q +(e.)62 1025 y(The)22 b(game-tree)e(represen)o(tation)i(allo)o(ws)e(us)h +(to)g(de\014ne)h(a)e(recursiv)o(e)i(depth-\014rst)h(tree)f(searc)o +(hing)f(algorithm)d(to)0 1075 y(determine)i(the)h Fi(minimax)f(value)g +Fk(of)g(eac)o(h)g(no)q(de)h(in)e(the)i(game-tree.)36 +b(The)20 b(minimax)c(v)n(alue)k(of)f(a)h(no)q(de)g(represen)o(ts)0 +1125 y(the)e(exp)q(ected)i(outcome)d(of)g(that)h(p)q(osition,)f(giv)o +(en)h(b)q(est)g(pla)o(y)f(b)o(y)h(b)q(oth)f(sides.)31 +b(The)18 b Fi(minimax)g(algorithm)f Fk(w)o(orks)h(b)o(y)0 +1175 y(searc)o(hing)c(the)g(tree)g(in)f(a)g(depth-\014rst)i(manner.)i +(W)m(e)c(tak)o(e)g(the)h(minim)n(um)9 b(of)j(all)h(the)g(v)n(alues)g +(for)g(successor)j(p)q(ositions)d(at)0 1225 y(o)q(dd-n)o(um)o(b)q(ered) +h(plies)g(in)g(the)h(tree,)g(since)g(this)g(is)f(where)h(the)g(opp)q +(onen)o(t)g(mo)o(v)o(es.)j(Con)o(v)o(ersely)m(,)13 b(w)o(e)i(tak)o(e)f +(the)h(maxim)n(um)0 1275 y(of)i(the)g(v)n(alues)g(of)g(successor)i(p)q +(ositions)e(at)g(ev)o(en-n)o(um)o(b)q(ered)h(plies)f(within)f(the)i +(game-tree.)28 b(The)17 b(righ)o(t)g(hand)g(tree)h(in)0 +1324 y(Figure)c(1)g(sho)o(ws)g(an)f(example)g(of)g(ho)o(w)h(to)g(deriv) +o(e)g(the)g(minima)o(x)d(v)n(alues)j(of)f(eac)o(h)h(no)q(de)h(in)e(the) +i(game-tree.)62 1374 y(A)f Fi(princip)n(al)f(variation)h +Fk(through)f(a)g(game-tree)g(is)g(a)g(series)i(of)d(mo)o(v)o(es)g(that) +i(yield)f(optimal)d(scores)15 b(for)e(b)q(oth)g(pla)o(y)o(ers.)0 +1424 y(F)m(or)k(example,)f(there)j(is)e(only)f(one)i(principal)e(v)n +(ariation)g(in)g(the)i(game)e(tree)i(giv)o(en)f(in)g(Figure)g(1,)g(sho) +o(wn)h(in)e(b)q(old.)28 b(In)0 1474 y(general,)15 b(once)h(the)g(tree)h +(is)e(completely)f(searc)o(hed,)j(an)e(\\optimal")d(mo)o(v)o(e)h(w)o +(ould)i(b)q(e)h(the)g(\014rst)g(mo)o(v)o(e)d(from)h(a)h(principal)0 +1524 y(v)n(ariation.)62 1573 y(F)m(or)d(games)f(suc)o(h)i(as)g(c)o +(hess,)g(some)f(game-trees)g(are)h(so)f(large,)g(the)h(determination)e +(of)g(a)h(minima)o(x)e(v)n(alue)h(for)h(the)h(ro)q(ot)0 +1623 y(is)h(e\013ectiv)o(ely)g(in)o(tractable.)k(Th)o(us,)c(a)g +(heuristic)g Fi(evaluation)i(function)e Fk(is)g(normally)d(used)k(to)f +(estimate)f(the)h(p)q(oten)o(tial)g(of)0 1673 y(winning)h(from)f(a)i(p) +q(osition)g(at)g(a)g(\014xed)g(ply)g(in)g(the)g(game-tree.)25 +b(These)17 b(are)g(the)g Fi(le)n(af)f(no)n(des)h Fk(of)f(the)g +(truncated)i(searc)o(h)0 1723 y(tree,)d(and)e(this)h(limit)d(is)j +(called)g(the)g Fi(horizon)g Fk(of)g(the)g(game-tree.)62 +1773 y(The)f Fi(alpha-b)n(eta)h Fk(\()p Fj(\013\014)r +Fk(\))f(algorithm)d(impro)o(v)o(es)h(the)j(minim)o(ax)c(algorithm)g(b)o +(y)i(prev)o(en)o(ting)h(exploration)f(of)g(mo)o(v)o(es)g(that)0 +1822 y(can)j(pro)o(v)n(ably)e(b)q(e)j(demonstrated)f(not)f(to)h +(a\013ect)h(the)f(minim)o(ax)d(v)n(alue)i(ab)q(o)o(v)o(e)g(the)i(giv)o +(en)e(no)q(de.)21 b(The)15 b(name)f(is)g(deriv)o(ed)0 +1872 y(from)f(the)i(t)o(w)o(o)f(b)q(ounds:)20 b Fj(\013)14 +b Fk(and)g Fj(\014)r Fk(,)h(whic)o(h)g(are)g(lo)o(w)o(er)f(and)g(upp)q +(er)i(b)q(ounds)f(on)f(the)h(minim)o(ax)d(v)n(alue)i(w)o(e)g(are)h(in)o +(terested)0 1922 y(in.)22 b(The)16 b(pair)f(of)g(b)q(ounds)h(is)g +(often)f(referred)j(to)d(as)h(the)g Fi(se)n(ar)n(ch)g(window)f +Fk(for)g(a)g(p)q(osition,)g(and)h(the)g Fj(\013\014)i +Fk(algorithm)12 b(will)0 1972 y(return)j(the)g(correct)g(minim)o(ax)c +(v)n(alue)i(if)g(the)i(ro)q(ot)f(is)f(searc)o(hed)j(with)d(the)i(windo) +o(w)e Fj(\013)e Fk(=)h Fh(\0001)i Fk(and)f Fj(\014)i +Fk(=)c(+)p Fh(1)p Fk(.)62 2022 y(An)17 b(example)e(of)h(ho)o(w)g(the)i +Fj(\013\014)h Fk(algorithm)13 b(w)o(ould)j(prune)i(a)e(tree)i(is)e(giv) +o(en)g(in)h(Figure)f(2.)26 b(W)m(e)16 b(kno)o(w)g(that)h(the)g(left)0 +2072 y(subtree)e(has)f(a)f(minim)o(ax)d(v)n(alue)j(of)g(4,)g(so)g(w)o +(e)h(set)g Fj(\013)d Fk(=)h(4)h(b)q(efore)i(w)o(e)e(searc)o(h)i(the)f +(righ)o(t)f(subtree.)20 b(Note)13 b(that)h(w)o(e)g(set)g +Fj(\013)f Fk(at)0 2121 y(ev)o(en)i(ply)m(,)f(and)g Fj(\014)j +Fk(at)e(o)q(dd)f(ply)h(from)d(the)k(ro)q(ot.)k(After)15 +b(lo)q(oking)e(at)i(the)g(\014rst)g(leaf)f(of)g(the)i(righ)o(t)e +(subtree,)i(w)o(e)f(kno)o(w)f(that)0 2171 y(the)g(minim)o(ax)c(v)n +(alue)i(of)g(the)i(righ)o(t)e(subtree)j(will)d(b)q(e)h(less)h(than)f +(1.)k(Since)d Fj(\013)d Fk(=)h(4,)g(w)o(e)i(do)e(not)h(searc)o(h)h(the) +g(other)g(mo)o(v)o(es)d(in)0 2221 y(the)j(righ)o(t)g(subtree.)62 +2271 y(If)j(w)o(e)g(searc)o(h)h(a)f(tree)h(of)e(depth)i +Fj(d)f Fk(whic)o(h)f(has)i Fj(w)f Fk(mo)o(v)o(es)f(from)f(an)o(y)i(p)q +(osition,)f(there)i(are)g(\002\()p Fj(w)1624 2256 y Fc(d)1643 +2271 y Fk(\))g(no)q(des)f(searc)o(hed)0 2321 y(with)d(the)h(minim)o(ax) +c(algorithm.)17 b(Ho)o(w)o(ev)o(er,)d(if)f(a)h(\\b)q(est")h(mo)o(v)o(e) +e(is)h(alw)o(a)o(ys)f(searc)o(hed)j(\014rst,)f Fj(\013\014)h +Fk(can)f(reduce)h(this)e(size)h(to)0 2370 y(\002\()p +Fj(w)79 2355 y Fc(d=)p Fe(2)132 2370 y Fk(\))g([13)o(].)k(The)c +(structure)i(of)d(the)h Fi(critic)n(al)f(tr)n(e)n(e)g +Fk(ev)n(aluated)g(in)g(the)i(optimal)11 b(case)1413 2355 +y Fe(2)1446 2370 y Fk(is)k(illustrated)f(in)g(in)g(Figure)h(3.)0 +2420 y(A)o(t)f Fb(ALL)g Fk(and)g Fb(PV)f Fk(\(Principal)h(V)m +(ariation\))f(no)q(des,)h(all)f(c)o(hildren)i(are)f(searc)o(hed,)i +(while)d(only)h(one)g(c)o(hild)g(of)f(eac)o(h)i Fb(CUT)f +Fk(no)q(de)0 2470 y(is)g(searc)o(hed.)19 b(Note)c(that)f(in)f +(practice,)i(y)o(ou)e(are)h(nev)o(er)h(certain)g(of)e(the)h(no)q(de's)h +(t)o(yp)q(e)f Fi(a)h(priori)p Fk(.)62 2520 y(If)d(a)f(p)q(osition)h(o)q +(ccurs)h(t)o(wice)f(within)f(the)i(tree,)g(w)o(e)f(can)g(sa)o(v)o(e)g +(the)h(w)o(ork)f(of)f(exploring)g(the)i(tree)g(underneath)g(the)g(no)q +(de)0 2570 y(through)f(the)h(use)g(of)e(a)h(large)g(hash)g(table)g +(whic)o(h)g(stores)h(previously)f(ev)n(aluated)g(p)q(ositions)g(and)g +(scores.)19 b(This)12 b(hash)g(table)p 0 2604 780 2 v +46 2631 a Fd(2)64 2643 y Fg(The)e(critical)e(tree)i(is)g(not)g +(necessarily)e(the)h(smallest)g(tree)g(that)h(can)f(b)q(e)h(searc)o +(hed)e(in)i(practice,)f(since)g(transp)q(osition)o(s)f(are)i(not)f(tak) +o(en)g(in)o(to)0 2682 y(accoun)o(t)g([21)o(].)965 2790 +y Fk(3)p eop +%%Page: 4 6 +4 5 bop 543 0 a + 13640505 7104430 9341009 26641612 30851645 37824512 startTexFig + 543 0 a +%%BeginDocument: candid23.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 +/Helvetica reencodeISO def +/Helvetica-Bold 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 2.49158 2.49158 + + +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 +none SetP %I p n +%I t +[ 1 -0 -0 1 174 230 ] concat +%I +65 368 20 293 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 174 230 ] concat +%I +65 368 65 293 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 174 230 ] concat +%I +65 368 110 293 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 85 230 ] concat +%I +304 368 260 293 Line +%I 1 +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 0 0 1 85 230 ] concat +%I +304 368 304 293 Line +%I 1 +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 0 0 1 85 230 ] concat +%I +304 368 349 293 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 174 230 ] concat +%I +65 368 140 443 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 174 230 ] concat +%I +140 443 215 368 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 174 230 ] concat +%I +20 293 15 15 Elli +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 174 230 ] concat +%I +65 293 15 15 Elli +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 174 230 ] concat +%I +110 293 15 15 Elli +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 174 230 ] concat +%I +170 293 15 15 Elli +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 174 230 ] concat +%I +215 293 15 15 Elli +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 174 230 ] concat +%I +260 293 14 15 Elli +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 174 230 ] concat +%I +65 368 15 15 Elli +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 174 230 ] concat +%I +215 368 15 15 Elli +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 174 230 ] concat +%I +140 443 15 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 237 601 ] concat +%I +[ +(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 192 526 ] concat +%I +[ +(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 236 526 ] concat +%I +[ +(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 282 527 ] concat +%I +[ +(6) +] 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 341 526 ] concat +%I +[ +(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 388 527 ] concat +%I +[ +(7) +] 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 423 527 ] concat +%I +[ +(-12) +] Text +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 +%I p +1 SetP +%I t +[ 1 -0 -0 1 122 228 ] concat +%I +272 480 326 480 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 199 651 ] concat +%I +[ +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 359 653 ] concat +%I +[ +(alpha = 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 379 603 ] concat +%I +[ +(1<4) +] 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 +%I p +1 SetP +%I t +[ 1 -0 -0 1 122 230 ] concat +%I +257 328 297 338 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* +Helvetica-Bold 14 SetF +%I t +[ 1 0 0 1 458 716 ] concat +%I +[ +(These branches) +(are never explored) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 648 541 a Fk(Figure)14 b(2:)k(Example)12 b(of)i(an)f +Fj(\013\014)k Fk(Cut-o\013)637 599 y + 10656645 7104430 5130977 18813583 31443681 36245749 startTexFig + 637 599 a +%%BeginDocument: candid24.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 + 557 1141 a Fk(Figure)d(3:)k(Structure)e(of)d(the)i(Critical)e(Game-T)m +(ree)0 1273 y(is)h(kno)o(wn)f(as)h(a)g Fi(tr)n(ansp)n(osition)g(table)p +Fk(.)62 1323 y(Most)e(comp)q(etitiv)o(e)e(game-tree)h(programs)f(use)i +Fi(iter)n(ative)f(de)n(ep)n(ening)h Fk(to)g(searc)o(h)g(the)g(tree)g +([26)o(].)17 b(After)12 b(a)f Fj(k)q Fk(-ply)f(searc)o(h,)0 +1373 y(a)i Fj(k)c Fk(+)g(1-ply)j(searc)o(h)j(is)f(executed)h(on)f(the)g +(same)f(p)q(osition.)17 b(Although)12 b(this)h(seems)g(w)o(asteful,)f +(a)h(transp)q(osition)f(table)h(and)0 1423 y(other)j(mo)o(v)o(e)d +(ordering)j(tec)o(hniques)g(can)f(often)h(pro)o(vide)f(a)g(v)o(ery)g +(accurate)i(guess)f(at)f(what)g(the)h(b)q(est)g(mo)o(v)o(e)d(is,)i(and) +g(the)0 1472 y(tree)h(searc)o(hed)h(is)e(close)g(to)g(the)h(critical)f +(tree)h(in)e(size.)23 b(Exp)q(erience)17 b(sho)o(ws)e(that)g(the)h(b)q +(ene\014ts)g(gained)f(b)o(y)g(a)f Fj(k)q Fk(-ply)h(tree)0 +1522 y(as)f(a)g(prelude)g(to)g(searc)o(hing)g(a)g Fj(k)c +Fk(+)g(1-ply)j(tree)i(out)o(w)o(eigh)e(the)h(costs)h([27)o(].)0 +1638 y Fv(2.2)56 b(P)n(arallel)18 b(Game-T)-5 b(ree)16 +b(Searc)n(h)0 1715 y Fk(The)e(idea)g(b)q(ehind)g(the)g(PV-Split)g +(algorithm)d(has)j(pro)o(v)o(en)g(to)g(b)q(e)g(a)g(fundamen)o(tal)d +(building)i(blo)q(c)o(k)g(in)h(dev)o(eloping)f(high-)0 +1765 y(p)q(erformance)i(parallel)e(game-tree)h(algorithms)f([17)o(].)20 +b(Simply)12 b(stated,)k(the)f(\014rst)g(mo)o(v)o(e)f(at)g(a)h +(principal)e(v)n(ariation)h(no)q(de)0 1815 y(m)o(ust)19 +b(b)q(e)h(completely)f(ev)n(aluated)g(b)q(efore)i(the)f(subsequen)o(t)i +(mo)o(v)o(es)c(can)i(b)q(e)g(handed)h(out)e(to)h(other)g(pro)q(cessors) +i(and)0 1864 y(ev)n(aluated)13 b(in)h(parallel.)i(P)o(arallelism)c(o)q +(ccurs)j(only)e(at)g(the)h Fb(PV)g Fk(no)q(des,)g(and)f(the)h(nature)h +(of)e(the)h(algorithm)d(ensures)16 b(that)0 1914 y(an)10 +b(accurate)i(searc)o(h)g(windo)o(w)e(is)g(determined)h(b)q(efore)g +(allo)q(cating)e(w)o(ork)i(to)f(the)h(sla)o(v)o(es)g(in)f(parallel,)g +(whic)o(h)g(reduces)j(searc)o(h)0 1964 y(o)o(v)o(erhead.)18 +b(Although)c(it)f(is)h(easy)g(to)g(con)o(trol)f(the)i(PV-Split)e +(algorithm)e(since)k(only)e(one)h Fb(PV)f Fk(no)q(de)h(can)g(b)q(e)h +(ev)n(aluated)e(in)0 2014 y(parallel)h(at)g(a)h(giv)o(en)f(momen)o(t)e +(in)i(time,)f(a)i(di\013eren)o(t)h(approac)o(h)e(is)h(needed)h(if)e(y)o +(ou)g(ha)o(v)o(e)h(more)f(pro)q(cessors)j(than)d(mo)o(v)o(es)0 +2064 y(at)g(the)g(curren)o(t)i Fb(PV)d Fk(no)q(de.)62 +2114 y(Newb)q(orn's)k(UIDP)m(ABS)f(algorithm)d([19)o(])i(w)o(as)h(the)g +(\014rst)g(attempt)f(to)h(async)o(hronously)g(start)g(the)g(next)h(lev) +o(el)e(of)g(an)0 2163 y(iterativ)o(ely)e(deep)q(ened)k(searc)o(h)e +(instead)f(of)g(sync)o(hronizing)g(at)g(the)g(ro)q(ot)g(of)g(the)h +(game-tree.)j(The)c(mo)o(v)o(es)f(from)f(the)j(ro)q(ot)0 +2213 y(p)q(osition)d(are)h(partitioned)f(among)f(the)i(pro)q(cessors,)i +(and)d(the)i(pro)q(cessors)g(searc)o(h)g(their)f(o)o(wn)g(subset)h(of)e +(the)h(mo)o(v)o(es)e(with)0 2263 y(iterativ)o(e)k(deep)q(ening.)21 +b(Eac)o(h)15 b(pro)q(cessor)h(is)f(giv)o(en)f(the)h(same)f(initial)e +(windo)o(w,)i(but)h(some)e(of)h(the)i(pro)q(cessors)g(ma)o(y)d(ha)o(v)o +(e)0 2313 y(c)o(hanged)g(their)h(windo)o(ws,)e(based)i(on)f(the)g +(searc)o(h)i(results)f(of)e(their)i(mo)o(v)o(es.)i(The)e(UIDP)m(ABS)f +(algorithm)d(then)k(com)o(bines)0 2363 y(the)f(results)h(once)g(a)e +(predetermined)h(time)f(limit)e(has)j(b)q(een)h(reac)o(hed.)k(The)c +(APHID)f(algorithm)d(uses)j(the)h(basic)f(concept)0 2412 +y(of)g(ho)o(w)h(to)f(implemen)o(t)f(async)o(hronous)i(searc)o(h)h(from) +d(UIDP)m(ABS,)i(as)g(w)o(e)g(shall)f(see)i(in)f(Section)g(3.)62 +2462 y(Hsu's)g(family)c(of)i(algorithms)f([9)o(])i(are)g(similar)e(in)i +(design)g(to)g(the)g(APHID)h(algorithm.)h(A)e(host)g(pro)q(cessor)i(is) +e(resp)q(on-)0 2512 y(sible)i(for)g(main)o(taining)d(a)k(queue)g(of)f +(critical)g(tree)i(and)e(non-critical)g(tree)h(w)o(ork)g(to)f(do)g(for) +g(a)g Fj(d)1548 2497 y Fa(0)1575 2512 y Fk(ply)g(searc)o(h)i(tree.)24 +b(The)0 2562 y(sp)q(ecial-purp)q(ose)18 b(pro)q(cessors)h(are)e(resp)q +(onsible)h(for)f(the)g Fj(d)11 b Fh(\000)g Fj(d)1023 +2547 y Fa(0)1051 2562 y Fk(ply)16 b(at)h(the)g(b)q(ottom)f(of)g(the)h +(tree,)i(b)o(y)d(con)o(tin)o(ually)f(re-)0 2612 y(questing)e(pieces)g +(of)f(w)o(ork)g(from)f(the)i(t)o(w)o(o)f(queues.)18 b(As)13 +b(the)g(w)o(ork)f(is)h(completed)e(and)i(sen)o(t)g(bac)o(k)f(to)g(the)h +(main)e(pro)q(cessor,)0 2661 y(the)j(tree)h(is)e(incremen)o(tally)f(up) +q(dated)i(up)f(from)f(the)i(leaf)f(no)q(de,)g(and)g(new)h(w)o(ork)f(is) +h(added)f(to)h(the)g(non-critical)e(tree)j(list,)965 +2790 y(4)p eop +%%Page: 5 7 +5 6 bop 0 42 a Fk(as)15 b(necessary)m(.)21 b(Hsu)15 b(has)g(not)f +(published)h(results)h(with)e(the)h(v)o(ersion)g(of)e(Deep)j(Blue)f +(that)f(pla)o(y)o(ed)g(against)g(Kasparo)o(v)g(in)0 91 +y(F)m(ebruary)i(1996.)21 b(The)16 b(sim)o(ulation)d(results)j(presen)o +(ted)i(in)d(his)g(thesis)h(predict)h(a)e(sp)q(eedup)i(of)e(350)f(on)h +(1000)g(pro)q(cessors)0 141 y(although)e(these)i(results)g(ha)o(v)o(e)f +(not)g(b)q(een)h(b)q(orne)f(out)g(in)g(practice)h([8)o(].)62 +191 y(Although)h(APHID)g(is)g(similar)d(to)j(Hsu's)g(family)d(of)i +(algorithms,)f(there)j(are)g(imp)q(ortan)o(t)d(di\013erences)k(b)q(et)o +(w)o(een)f(the)0 241 y(t)o(w)o(o)j(approac)o(hes.)37 +b(It)20 b(is)g(imp)q(ortan)o(t)f(to)h(note)g(that)g(the)h +Fj(d)986 226 y Fa(0)1017 241 y Fk(ply)f(critical)f(tree)j(is)e(only)f +(generated)i(once,)h(and)e(then)0 291 y(incremen)o(tally)12 +b(c)o(hanged)i(as)g(results)h(come)e(in)g(from)f(the)j(pro)q(cessors.) +20 b(F)m(urthermore,)13 b(although)g(iterativ)o(e)g(deep)q(ening)i(is)0 +340 y(used)f(to)g(accomplish)e(the)i Fj(d)8 b Fh(\000)g +Fj(d)520 325 y Fa(0)545 340 y Fk(ply)13 b(searc)o(h)i(on)e(the)h(sp)q +(ecialized)g(pro)q(cessors,)i(there)e(is)g(no)f(concept)i(of)e(o)o +(wnership)g(of)g(a)0 390 y(subtree)j(b)o(y)e(a)g(pro)q(cessor)i(in)d +(Hsu's)i(algorithm.)h(Hsu's)e(original)f(design)h(did)g(not)g(include)g +(a)g(concept)h(of)f(a)g(m)o(ulti-tiered)0 440 y(hierarc)o(h)o(y)e(of)e +(pro)q(cessors.)20 b(Hsu's)11 b(w)o(ork)g(priorit)o(y)g(sc)o(heme)g(is) +h(sligh)o(tly)d(di\013eren)o(t)k(than)e(the)h(one)f(implemen)o(ted)e +(in)i(APHID.)0 490 y(Finally)m(,)f(Hsu's)i(algorithm)d(giv)o(es)j(no)g +(sp)q(eculativ)o(e)g(w)o(ork)g(to)f(the)i(sp)q(ecialized)f(pro)q +(cessors)i(in)e(when)g(the)h(t)o(w)o(o)e(w)o(ork)h(queues)0 +540 y(are)i(empt)o(y)m(.)62 589 y(The)f(Y)m(oung)f(Brothers)i(W)m(ait)c +(\(YBW\))j(algorithm)d(extends)k(PV-Split)d(to)h(state)i(that)e(the)h +(other)g(mo)o(v)o(es)e(\(the)i(\\y)o(oung)0 639 y(brothers"\))19 +b(can)e(b)q(e)h(searc)o(hed)h(in)e(parallel)f(only)g(if)h(the)h +(\014rst)g(mo)o(v)o(e)e(of)g(a)h(no)q(de)h(has)g(b)q(een)g(completely)e +(searc)o(hed)j(and)0 689 y(has)e(not)f(caused)h(the)g +Fj(\013\014)i Fk(searc)o(h)f(to)e(b)q(e)h(pruned)g([5].)25 +b(Assuming)15 b(w)o(e)h(start)i(with)e(an)g(in\014nite)g(searc)o(h)i +(windo)o(w)d(at)h(the)0 739 y(ro)q(ot)f(p)q(osition,)f(this)h(is)f(alw) +o(a)o(ys)g(true)i(at)f Fb(PV)f Fk(no)q(des,)i(and)e(is)h(generally)f +(true)i(at)f Fb(ALL)f Fk(no)q(des.)22 b(Th)o(us,)15 b(there)h(are)f(m)o +(ultiple)0 789 y(p)q(oten)o(tial)d(parallel)g(no)q(des)i(at)f(an)o(y)f +(giv)o(en)g(time)g(when)h(searc)o(hing)h(the)f(tree.)19 +b(Ho)o(w)o(ev)o(er,)13 b(the)h(searc)o(h)g(is)f(still)f(sync)o +(hronized)0 839 y(in)f(the)i(same)e(w)o(a)o(y)g(that)g(PV-Split)h(is)f +(sync)o(hronized.)19 b(Un)o(til)11 b(a)g(searc)o(h)i(of)e(all)g(c)o +(hildren)h(of)f(a)h(giv)o(en)f Fb(PV)g Fk(no)q(de)h(is)g(completed,)0 +888 y(the)i(other)h(c)o(hildren)f(of)f(the)i Fb(PV)e +Fk(no)q(de's)h(paren)o(t)h(cannot)f(b)q(e)g(searc)o(hed.)62 +938 y(Although)i(the)i Fi(synchr)n(onization)g(overhe)n(ad)f +Fk(in)f(YBW)h(is)g(a)f(lot)g(smaller)f(than)i(in)f(PV-Split,)h(w)o(ork) +o(ers)g(still)f(searc)o(h)0 988 y(for)e(a)h(pro)q(cessor)h(that)f(has)g +(w)o(ork)g(to)f(do)h(\(according)g(to)f(the)i(YBW)e(criterion\))i(b)o +(y)e(sending)h(a)g(message)f(to)h(a)f(pro)q(cessor)0 +1038 y(at)f(random.)j(This)e(dynamic)d(load-balancing)h(metho)q(d,)g +(\\w)o(ork-stealing")g([14)o(],)g(is)h(e\013ectiv)o(e)i(in)e(balancing) +f(the)i(share)h(of)0 1088 y(w)o(ork)f(done)g(on)f(eac)o(h)i(pro)q +(cessor,)g(but)f(p)q(erio)q(dically)f(imp)q(oses)g(a)h(hea)o(vy)g(comm) +o(unicati)o(on)d(load.)62 1137 y(In)h(the)g(implemen)o(tatio)o(n)d(of)i +Ff(Zugzw)l(ang)h Fk(presen)o(ted)i(in)d(F)m(eldmann's)e(thesis)k([5)o +(],)e(a)g(distributed)i(transp)q(osition)e(table)0 1187 +y(w)o(as)g(implemen)o(ted)e(with)j(message)f(passing)g(across)h(a)f +(series)i(of)e(T)m(ransputers)i(to)e(impro)o(v)o(e)f(the)i(results)g +(of)f(the)h(algorithm.)0 1237 y(On)j(a)g(system)f(where)i(only)e(a)h +(small)d(n)o(um)o(b)q(er)i(of)h(no)q(des)g(can)g(b)q(e)h(pro)q(cessed)h +(p)q(er)f(a)o(v)o(erage)e(message)h(latency)g(ratio,)f(this)0 +1287 y(t)o(yp)q(e)g(of)g(distributed)g(transp)q(osition)g(table)g(is)g +(practical)f(and)h(is)g(useful)g(in)f(con)o(trolling)g(the)h(searc)o(h) +h(o)o(v)o(erhead.)62 1337 y(An)i(alternativ)o(e)g(to)f(a)g(shared)i +(transp)q(osition)f(table)f(is)h(the)g(idea)f(of)g(recursiv)o(e)j +(iterativ)o(e)d(deep)q(ening)i(to)e(ac)o(hiev)o(e)h(a)0 +1386 y(b)q(etter)d(mo)o(v)o(e)c(ordering)i([14)o(].)17 +b(The)c(additional)d(searc)o(h)j(o)o(v)o(erhead)g(of)e(recursiv)o(e)j +(iterativ)o(e)e(deep)q(ening)h(in)f(a)g(w)o(ork-stealing)0 +1436 y(algorithm)j(with)j(only)e(lo)q(cal)h(transp)q(osition)h(tables)g +(is)g(strongly)f(dep)q(enden)o(t)j(on)d(the)i(branc)o(hing)e(factor)h +(of)f(the)h(trees)0 1486 y(b)q(eing)13 b(searc)o(hed.)19 +b(Although)12 b(he)h(did)f(not)h(in)o(v)o(en)o(t)f(the)i(idea)953 +1471 y Fe(3)972 1486 y Fk(,)e(Kuszmaul)g(ac)o(hiev)o(ed)h(reasonable)g +(success)i(with)d(recursiv)o(e)0 1536 y(iterativ)o(e)g(deep)q(ening)h +(in)e(the)i(StarT)m(ec)o(h)f(c)o(hess)h(program,)e(b)q(oth)h(in)f(the)i +(sequen)o(tial)f(program)e(with)h(a)h(lo)q(cal)f(transp)q(osition)0 +1586 y(table)j(and)g(the)g(parallel)f(program)f(with)i(a)f(shared)i +(transp)q(osition)f(table.)k(This)c(is)f(partially)g(due)h(to)g(the)g +(test)h(set)g(b)q(eing)0 1636 y(used:)k(Kaufman's)11 +b(test)j(set)g(of)e(tactical)h(p)q(ositions)g([11)o(,)g(12)o(])g +(yields)g(p)q(ositions)f(whic)o(h)h(ha)o(v)o(e)g(rapidly)f(c)o(hanging) +h(principal)0 1685 y(v)n(ariations,)i(and)h(is)g(more)f(susceptible)j +(to)e(sho)o(wing)f(the)i(adv)n(an)o(tages)f(of)f(recursiv)o(e)j +(iterativ)o(e)e(deep)q(ening.)26 b(It)16 b(remains)0 +1735 y(to)f(b)q(e)h(sho)o(wn)f(whether)i(recursiv)o(e)g(iterativ)o(e)e +(deep)q(ening)h(or)f(a)g(shared)h(transp)q(osition)f(table)h(b)o(y)f +(themselv)o(es)g(is)g(a)g(more)0 1785 y(e\013ectiv)o(e)g(heuristic)g +(in)e(sp)q(eeding)i(up)f(a)g(w)o(ork-stealing)f(algorithm)e(on)j(a)f +(\\fair")g(test)i(set.)62 1835 y(Da)o(vid's)k Fj(\013\014)r +Fh(\003)i Fk(framew)o(ork)e(uses)j(a)e(global)f(transp)q(osition)h +(table)h(to)f(con)o(trol)g(where)i(the)f(pro)q(cessors)i(should)d(b)q +(e)0 1885 y(searc)o(hing)g([4].)35 b(By)20 b(adding)f(a)h(\014eld)g(to) +g(the)g(global)f(transp)q(osition)g(table)h(to)g(indicate)g(the)g(n)o +(um)o(b)q(er)f(of)h(pro)q(cessors)0 1934 y(searc)o(hing)15 +b(that)f(no)q(de,)g(eac)o(h)g(pro)q(cessor)i(can)e(pretend)i(it)d(is)h +(searc)o(hing)h(the)f(tree)i(sequen)o(tially)m(,)c(and)i(mak)o(e)f +(decisions)h(on)0 1984 y(where)h(to)f(searc)o(h)h(based)f(on)g(the)g(n) +o(um)o(b)q(er)f(of)g(pro)q(cessors)j(searc)o(hing)e(the)h(c)o(hildren)f +(of)f(the)h(no)q(de.)19 b(When)14 b(an)o(y)f(pro)q(cessor)0 +2034 y(generates)j(a)e(v)n(alue)g(for)f(the)i(ro)q(ot)g(p)q(osition,)e +(the)i(searc)o(h)g(is)f(\014nished.)20 b(Unfortunately)m(,)13 +b(Da)o(vid's)g(metho)q(d)h(of)f(con)o(trolling)0 2084 +y(where)h(the)f(pro)q(cessors)i(should)e(b)q(e)h(searc)o(hing)f(w)o(as) +g(ine\016cien)o(t,)f(and)h(the)g(sc)o(heme)g(w)o(as)g(hamp)q(ered)g(b)o +(y)f(the)i(use)g(of)e(half)g(of)0 2134 y(the)h(T)m(ransputers)g(as)f +(transp)q(osition)g(table)g(storage)g(units,)g(limiting)d(the)j(sp)q +(eedup)i(rep)q(orted)f(to)f(6.5)f(on)h(16)f(T)m(ransputers.)0 +2183 y(Regrettably)m(,)i(no)h(w)o(ork)f(is)h(rep)q(orted)h(that)f +(addresses)i(these)g(shortcomings.)62 2233 y(W)m(eill)h([29)o(])g +(recognized)j(that)e(the)h(YBW)f(criterion)h(could)f(b)q(e)h(used)g(in) +f(conjunction)g(with)g(the)h Fj(\013\014)r Fh(\003)f +Fk(framew)o(ork.)0 2283 y(W)m(eill)c(sho)o(w)o(ed)h(the)h(com)o +(bination,)d(ABD)o(AD)o(A,)h(yields)i(comparable)e(p)q(erformance)h(to) +g(a)g(YBW)g(implemen)o(tation)d(on)j(a)0 2333 y(CM-5.)k(On)14 +b(16)g(pro)q(cessors,)i(ABD)o(AD)o(A)e(yielded)g(an)g(10-fold)f(sp)q +(eedup)j(for)e(a)g(c)o(hess)h(program,)d(while)i(YBW)h(generated)0 +2383 y(a)f(sp)q(eedup)h(of)e(just)h(under)h(8.)62 2433 +y(Unfortunately)m(,)k(neither)h(of)e(these)j(sc)o(heduling)e(metho)q +(ds)f(deal)h(adequately)g(with)f(arc)o(hitectures)j(that)e(ha)o(v)o(e)g +(can)0 2482 y(pro)q(cess)h(a)e(high)g(n)o(um)o(b)q(er)g(of)g(no)q(des)h +(p)q(er)h(a)o(v)o(erage)e(message)g(latency)m(,)h(suc)o(h)g(as)g(a)f +(net)o(w)o(ork)h(of)f(w)o(orkstations.)31 b(Using)0 2532 +y(YBW)12 b(on)f(a)h(system)f(with)h(only)e(transp)q(osition)i(tables)g +(lo)q(cal)f(to)g(eac)o(h)i(pro)q(cess)g(will)d(yield)i(large)f(searc)o +(h)i(o)o(v)o(erheads,)f(since)0 2582 y(there)18 b(is)f(no)f(guaran)o +(tee)h(of)f(where)i(a)f(giv)o(en)f(no)q(de)h(will)e(end)i(up)g(when)g +(w)o(e)g(use)h(the)f(c)o(haotic)g(w)o(ork-stealing)e(sc)o(heduler)p +0 2617 780 2 v 46 2643 a Fd(3)64 2655 y Fg(Kuszmaul)9 +b(states)i(that)f(b)q(oth)g(T)m(ruscott)h(and)f(Berliner)g(ha)o(v)o(e)h +(used)f(recursiv)o(e)f(iterativ)o(e)h(deep)q(ening)e(in)j(the)g(past.) +965 2790 y Fk(5)p eop +%%Page: 6 8 +6 7 bop 444 0 a + 16766447 9472573 9669918 31246336 22892052 38679674 startTexFig + 444 0 a +%%BeginDocument: draw1b.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 373 608 ] concat +%I +[ +(YBW) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 334 691 a Fk(Figure)14 b(4:)k(Lo)q(cation)13 b(of)h(P)o(arallelism)d +(in)i(T)o(ypical)g(APHID)h(and)g(YBW)g(Searc)o(h)0 824 +y(in)i(com)o(bination)e(with)i(iterativ)o(e)g(deep)q(ening.)26 +b(Using)16 b(ABD)o(AD)o(A)g(is)h(infeasible)e(since)i(the)g(system)f +(requires)i(a)e(shared)0 874 y(transp)q(osition)f(table,)h(whic)o(h)f +(w)o(ould)g(b)q(e)h(extremely)f(slo)o(w)g(on)g(a)g(parallel)g(arc)o +(hitecture)i(with)e(a)g(high)g(n)o(um)o(b)q(er)g(of)g(CPU)0 +924 y(cycles)g(p)q(er)g(a)o(v)o(erage)f(message)f(latency)m(.)0 +1061 y Fl(3)67 b(The)22 b(APHID)f(Algorithm)0 1152 y +Fk(Y)m(oung)c(Brothers)i(W)m(ait)e(and)g(other)i(parallel)d(searc)o(h)j +(algorithms)d(su\013er)j(from)d(three)j(serious)f(problems.)29 +b(First,)18 b(the)0 1202 y(n)o(umerous)g(sync)o(hronization)g(p)q(oin)o +(ts)g(result)i(in)e(idle)g(time.)30 b(This)18 b(suggests)i(that)e(a)g +(new)h(algorithm)d(m)o(ust)h(striv)o(e)i(to)0 1251 y(reduce)i(or)e +(eliminate)f(sync)o(hronization)h(altogether.)34 b(Second,)21 +b(the)f(c)o(haotic)f(nature)h(of)f(a)g(w)o(ork-stealing)f(sc)o(heduler) +0 1301 y(requires)12 b(algorithms)c(suc)o(h)k(as)f(YBW)g(and)f(Jam)o(b) +q(oree)h(to)f(use)i(a)e(shared)i(transp)q(osition)f(table)f(and/or)h +(recursiv)o(e)h(iterativ)o(e)0 1351 y(deep)q(ening)20 +b(to)f(ac)o(hiev)o(e)g(a)g(go)q(o)q(d)f(mo)o(v)o(e)g(ordering)h(and)f +(reasonable)i(p)q(erformance.)33 b(Algorithms)17 b(based)j(on)e(the)i +Fj(\013\014)r Fh(\003)0 1401 y Fk(framew)o(ork)14 b(cannot)h(w)o(ork)g +(without)g(a)g(shared)h(transp)q(osition)f(table.)22 +b(Third,)15 b(the)g(program)f(ma)o(y)f(initiate)i(parallelism)0 +1451 y(at)h(no)q(des)g(whic)o(h)g(are)g(b)q(etter)h(done)f(sequen)o +(tially)m(.)23 b(F)m(or)15 b(example,)f(ha)o(ving)h(searc)o(hed)i(the)f +(\014rst)h(branc)o(h)f(at)g(a)f(no)q(de)h(and)0 1500 +y(not)e(ac)o(hiev)o(ed)g(a)g(cut-o\013,)g(Y)m(oung)f(Brothers)j(W)m +(ait)c(\(in)i(its)g(simplest)f(form\))g(p)q(ermits)g(all)g(of)g(the)i +(remaining)d(branc)o(hes)j(to)0 1550 y(b)q(e)h(searc)o(hed)h(in)e +(parallel.)22 b(Ho)o(w)o(ev)o(er,)16 b(if)f(the)h(second)h(branc)o(h)f +(causes)h(a)e(cut-o\013,)h(then)g(all)f(the)h(parallel)e(w)o(ork)h +(done)h(on)0 1600 y(the)f(third)f(\(and)g(subsequen)o(t\))h(branc)o +(hes)h(has)e(b)q(een)h(w)o(asted.)k(This)14 b(suggests)h(parallelism)c +(should)j(only)f(b)q(e)i(initiated)e(at)0 1650 y(no)q(des)i(where)g +(there)g(is)f(a)f(v)o(ery)h(high)g(probabilit)o(y)e(that)i(all)f(branc) +o(hes)i(m)o(ust)e(b)q(e)h(considered.)62 1700 y(This)g(section)h(in)o +(tro)q(duces)g(the)f(Async)o(hronous)h(P)o(arallel)e(Hierarc)o(hical)h +(Iterativ)o(e)g(Deep)q(ening)h(\(APHID\))f(game-tree)0 +1750 y(searc)o(hing)i(algorithm.)21 b(APHID)15 b(has)h(b)q(een)h +(designed)f(to)g(address)h(the)f(ab)q(o)o(v)o(e)f(three)i(issues.)25 +b(The)16 b(algorithm)d(is)i(asyn-)0 1799 y(c)o(hronous)g(in)f(nature;)h +(it)e(remo)o(v)o(es)h(all)f(sync)o(hronization)i(p)q(oin)o(ts)f(from)e +(the)j Fj(\013\014)i Fk(searc)o(h)e(and)g(from)d(iterativ)o(e)i(deep)q +(ening.)0 1849 y(Also,)f(parallelism)e(is)j(only)f(applied)g(at)h(no)q +(des)g(that)g(ha)o(v)o(e)g(a)f(high)g(probabilit)o(y)g(of)g(needing)h +(parallelism.)h(The)f(top)g(plies)0 1899 y(of)k(a)g(game-tree)g(\(near) +g(the)h(ro)q(ot\))g(v)n(ary)f(infrequen)o(tly)g(b)q(et)o(w)o(een)h +(steps)h(of)e(iterativ)o(e)g(deep)q(ening)h([22)o(].)31 +b(This)18 b(relativ)o(e)0 1949 y(in)o(v)n(ariance)13 +b(of)g(the)i(top)f(p)q(ortion)f(of)h(the)g(game-tree)g(is)f(exploited)h +(b)o(y)g(the)g(APHID)g(algorithm.)62 1999 y(In)e(its)f(simplest)g +(form,)f(APHID)i(can)g(b)q(e)g(view)o(ed)g(as)f(a)h(master/sla)o(v)o(e) +e(program)g(although,)h(as)h(discussed)h(later,)e(it)h(can)0 +2048 y(b)q(e)k(generalized)g(to)g(a)f(hierarc)o(hical)g(pro)q(cessor)i +(tree.)24 b(F)m(or)15 b(a)g(depth)i Fj(d)e Fk(searc)o(h,)h(the)g +(master)f(is)g(resp)q(onsible)i(for)e(the)h(top)0 2098 +y Fj(d)22 2083 y Fa(0)47 2098 y Fk(ply)d(of)g(the)i(tree,)f(and)g(the)g +(remaining)e Fj(d)d Fh(\000)g Fj(d)770 2083 y Fa(0)795 +2098 y Fk(ply)k(are)h(searc)o(hed)i(in)d(parallel)f(b)o(y)i(the)g(sla)o +(v)o(es.)k(Figure)c(4)g(sho)o(ws)g(where)0 2148 y(parallel)f +(activities)g(o)q(ccur)j(in)d(APHID)h(and)g(YBW.)g(Eac)o(h)g(lo)q +(cation)f(mark)o(ed)g(with)g(an)h Fb(x)g Fk(sho)o(ws)g(where)h(the)g +(parallelism)0 2198 y(t)o(ypically)10 b(tak)o(es)i(place.)18 +b(Although)11 b(more)f(parallelism)f(could)j(b)q(e)g(generated)h(in)e +(YBW,)g(eac)o(h)h Fb(x)g Fk(represen)o(ts)i(a)d(p)q(oten)o(tially)0 +2248 y(costly)16 b(sync)o(hronization)g(p)q(oin)o(t.)23 +b(The)17 b(parallelism)c(is)j(more)f(constrained)h(in)g(APHID)g(and,)g +(hence,)h(is)f(more)f(lik)o(ely)f(to)0 2297 y(su\013er)h(from)d(load)h +(im)o(balances)g(than)g(other)i(dynamic)d(sc)o(heduling)i(routines)h +(\(suc)o(h)f(as)g(YBW,)g(Jam)o(b)q(oree,)f(or)h Fj(\013\014)r +Fh(\003)p Fk(\).)0 2414 y Fv(3.1)56 b(Op)r(eration)17 +b(of)i(the)f(Master)h(in)f(APHID)0 2490 y Fk(The)d(master)e(is)h(resp)q +(onsible)i(for)d(searc)o(hing)i(the)g(top)f Fj(d)892 +2475 y Fa(0)918 2490 y Fk(ply)f(of)h(the)h(tree.)20 b(It)14 +b(rep)q(eatedly)h(tra)o(v)o(erses)h(this)f(tree)g(un)o(til)e(the)0 +2540 y(correct)g(minim)o(ax)8 b(v)n(alue)j(has)g(b)q(een)i(determined.) +k(The)12 b(master)f(is)g(executing)h(a)f(normal)e Fj(\013\014)14 +b Fk(searc)o(h,)e(with)f(the)h(exception)0 2590 y(that)i(APHID)g +(enforces)h(an)f(arti\014cial)f(searc)o(h)i(horizon)f(at)f +Fj(d)967 2575 y Fa(0)992 2590 y Fk(ply)h(from)e(the)i(ro)q(ot.)62 +2640 y(Eac)o(h)i(leaf)e(no)q(de)i(in)f(the)h(master's)e +Fj(d)657 2625 y Fa(0)684 2640 y Fk(ply)h(game-tree)f(is)i(b)q(eing)f +(async)o(hronously)g(searc)o(hed)i(b)o(y)e(the)h(sla)o(v)o(es.)22 +b(Before)0 2690 y(describing)15 b(ho)o(w)e(the)i(master)f(kno)o(ws)f +(when)i(the)g Fj(d)e Fk(ply)h(searc)o(h)h(is)f(complete,)f(w)o(e)h(m)o +(ust)f(\014rst)i(describ)q(e)h(ho)o(w)e(the)g(master)965 +2790 y(6)p eop +%%Page: 7 9 +7 8 bop 0 42 a Fk(searc)o(hes)16 b(the)e Fj(d)254 26 +y Fa(0)279 42 y Fk(ply)g(tree.)62 91 y(When)j(the)g(master)f(reac)o +(hes)i(a)f(leaf)f(of)f(the)j Fj(d)810 76 y Fa(0)837 91 +y Fk(ply)e(tree,)i(it)f(uses)g(a)g(reliable)f(or)g(appro)o(ximate)f(v)n +(alue)h(for)g(the)h(leaf,)0 141 y(dep)q(ending)g(on)f(the)h +(information)d(a)o(v)n(ailable.)24 b(If)16 b(a)g Fj(d)10 +b Fh(\000)i Fj(d)938 126 y Fa(0)965 141 y Fk(ply)k(searc)o(h)i(result)f +(is)g(a)o(v)n(ailable)d(from)g(the)k(sla)o(v)o(e,)e(that)g(will)0 +191 y(b)q(e)g(used.)22 b(\(In)15 b(the)h(curren)o(t)g(implemen)o +(tation,)11 b(w)o(e)16 b(do)e(not)h(use)h(deep)q(er)h(ply)e(v)n(alues,) +f(ev)o(en)i(if)e(they)h(are)h(a)o(v)n(ailable.)j(This)0 +241 y(will)12 b(b)q(e)h(discussed)i(in)e(Section)g(4.\))18 +b(Ho)o(w)o(ev)o(er,)13 b(if)f(the)i Fj(d)7 b Fh(\000)h +Fj(d)949 226 y Fa(0)973 241 y Fk(ply)k(result)i(is)f(not)g(a)o(v)n +(ailable,)d(then)k(the)g(algorithm)c(uses)k(the)0 291 +y(\\b)q(est)h(a)o(v)n(ailable")d(ply)h(result)i(that)g(had)e(b)q(een)j +(returned)g(b)o(y)e(the)g(sla)o(v)o(e)g(to)g(generate)i(a)d(guessed)j +(minim)o(ax)11 b(v)n(alue)1826 276 y Fe(4)1844 291 y +Fk(.)19 b(An)o(y)0 340 y(no)q(de)14 b(where)h(w)o(e)f(are)h(forced)f +(to)g(guess)h(is)f(mark)o(ed)e(as)i Fi(unc)n(ertain)p +Fk(.)62 390 y(As)g(v)n(alues)g(get)g(bac)o(k)o(ed)g(up)f(the)h(tree,)h +(the)f(master)f(main)o(tains)e(a)j(coun)o(t)g(of)f(ho)o(w)g(man)o(y)f +(uncertain)i(no)q(des)g(ha)o(v)o(e)g(b)q(een)0 440 y(visited)d(in)f(a)h +(pass)h(of)e(the)i(tree.)18 b(As)11 b(long)g(as)g(the)g(score)h(at)f +(an)o(y)g(of)f(the)i(lea)o(v)o(es)f(is)g(uncertain,)h(the)f(master)g(m) +o(ust)f(do)h(another)0 490 y(pass)j(of)g(the)g(tree.)19 +b(Once)c(the)g(master)e(has)h(a)f(reliable)h(v)n(alue)f(for)g(all)g +(the)h(lea)o(v)o(es)g(in)g(its)g Fj(d)1423 475 y Fa(0)1448 +490 y Fk(ply)f(tree,)h(the)h(searc)o(h)g(of)e(the)h Fj(d)0 +540 y Fk(ply)h(tree)h(is)f(complete.)22 b(The)16 b(con)o(trolling)d +(program)h(w)o(ould)h(then)h(pro)q(ceed)g(to)f(the)h(next)g(iteration)f +(b)o(y)g(incremen)o(ting)f Fj(d)0 589 y Fk(and)g(asking)f(the)h(master) +g(to)g(searc)o(h)h(the)f(tree)h(again.)62 639 y(Note)e(that)f(this)g +(de\014nition)f(of)h(the)g(master)g(solv)o(es)g(one)g(of)g(the)g +(problems)f(that)h(some)f(algorithms)f(ha)o(v)o(e)i(with)g(resp)q(ect)0 +689 y(to)k(initializing)d(parallelism)g(to)q(o)j(quic)o(kly)f(at)g(a)h +(p)q(oten)o(tial)f Fb(CUT)g Fk(no)q(de.)24 b(By)17 b(using)e(the)i +(guessed)g(scores)g(when)g(accurate)0 739 y(information)9 +b(is)j(not)f(a)o(v)n(ailable,)f(the)i(APHID)g(algorithm)e +(automatically)e(determines)k(if)f(a)h(subsequen)o(t)i(c)o(hild)d(is)h +(lik)o(ely)e(to)0 789 y(generate)k(a)e(cut-o\013)h(at)f(a)g(failed)g +Fb(CUT)g Fk(no)q(de.)18 b(If)12 b(it)g(seems)g(lik)o(ely)g(that)g(a)g +(c)o(hild)g(will)f(generate)j(a)e(cut-o\013)h(based)g(on)f(guessed)0 +839 y(v)n(alues,)f(the)g(c)o(hildren)g(of)f(the)h(failed)e +Fb(CUT)h Fk(no)q(de)h(are)g(ev)n(aluated)g(sequen)o(tially)m(.)16 +b(If)10 b(it)g(seems)h(unlik)o(ely)e(that)i(the)g(no)q(de)g(will)e(b)q +(e)0 888 y(pruned)j(due)g(to)f(lo)o(w)f(minim)o(ax)e(v)n(alues,)j(the)h +(searc)o(h)g(w)o(ould)e(con)o(tin)o(ue)i(for)f(a)f(promising)f(no)q(de) +j(at)f(that)g(branc)o(h)h(in)f(parallel.)0 938 y(This)k(is)g(all)f +(handled)i(automatically)c(b)o(y)j(the)h Fj(\013\014)i +Fk(routine.)k(The)16 b(handling)e(of)h(a)g(h)o(yp)q(othesized)h +Fb(CUT)f Fk(no)q(de)h(is)f(stronger)0 988 y(than)g(the)g(equiv)n(alen)o +(t)f(scenario)i(in)e(the)h(YBW)g(algorithm,)d(whic)o(h)j(ignores)g +(previous)g(score)h(information)c(a)o(v)n(ailable)g(for)0 +1038 y(some)f(branc)o(hes)i(of)f(the)h(failed)e Fb(CUT)g +Fk(no)q(de.)18 b(In)12 b(the)h(full)d(v)o(ersion)j(of)e(YBW,)h +(application-dep)q(enden)o(t)g(information)d(is)j(used)0 +1088 y(to)i(do)f(what)h(APHID)g(handles)g(automatically)d(with)j(the)g +Fj(\013\014)i Fk(searc)o(h)f(windo)o(w.)62 1137 y(The)g(sla)o(v)o(es)g +(are)g(resp)q(onsible)g(for)f(setting)h(their)g(o)o(wn)f(searc)o(h)i +(windo)o(ws,)e(based)h(on)f(information)e(from)h(the)i(master.)0 +1187 y(Sometimes,)10 b(the)j(information)d(returned)k(b)o(y)e(the)h +(sla)o(v)o(e)f(ma)o(y)f(not)h(b)q(e)h(useful)g(to)f(the)h(master.)k(F)m +(or)12 b(example,)f(a)i(sla)o(v)o(e)f(can)0 1237 y(tell)h(the)i(master) +e(that)h(the)g(score)h(of)f(a)f(giv)o(en)g(no)q(de)i(is)e(less)i(than)f +(30,)e(but)i(the)h(master)e(ma)o(y)f(w)o(an)o(t)h(to)h(kno)o(w)f(if)g +(the)i(score)0 1287 y(is)e(in)g(b)q(et)o(w)o(een)i(-5)e(and)g(5.)18 +b(In)13 b(this)h(case,)g(a)f(\\bad)g(b)q(ound")h(searc)o(h)g(is)f +(generated,)i(and)e(the)h(searc)o(h)h(windo)o(w)d(parameters,)0 +1337 y Fj(\013)j Fk(and)f Fj(\014)r Fk(,)h(m)o(ust)f(b)q(e)i(comm)o +(unicated)c(to)j(the)h(sla)o(v)o(e)e(pro)q(cessor.)23 +b(An)o(y)15 b(no)q(des)g(where)h(w)o(e)f(are)h(w)o(aiting)d(for)i +(\\bad)f(b)q(ound")0 1386 y(information)g(to)j(b)q(e)h(up)q(dated)g(b)o +(y)f(the)h(sla)o(v)o(e)f(are)h(considered)g(as)g(uncertain)g(b)o(y)f +(the)g(master.)28 b(Ev)o(en)o(tually)m(,)16 b(the)i(sla)o(v)o(e)0 +1436 y(will)11 b(return)j(up)q(dated)f(information)c(that)k(is)f +(consisten)o(t)h(with)f(b)q(oth)h(the)g(original)e(information)e(and)j +(the)h(searc)o(h)h(windo)o(w)0 1486 y(requested)170 1471 +y Fe(5)191 1486 y Fk(.)0 1602 y Fv(3.2)56 b(The)18 b(APHID)h(T)-5 +b(able)0 1679 y Fk(If)15 b(a)f(leaf)h(no)q(de)g(is)g(visited)g(b)o(y)g +(the)g(master)g(for)g(the)g(\014rst)h(time,)d(it)i(is)g(statically)f +(allo)q(cated)h(to)f(a)h(sla)o(v)o(e)g(pro)q(cessor.)23 +b(This)0 1729 y(information)14 b(is)j(recorded)h(in)f(a)f(table,)i(the) +f Fi(APHID)h(table)p Fk(,)f(that)g(is)g(shared)h(b)o(y)e(all)g(pro)q +(cessors.)29 b(Figure)17 b(5)g(sho)o(ws)g(an)0 1779 y(example)c(of)g +(ho)o(w)g(the)i(APHID)f(table)g(w)o(ould)f(b)q(e)h(organized)g(at)g(a)f +(giv)o(en)h(p)q(oin)o(t)f(in)h(time.)62 1828 y(The)h(APHID)f(table)g +(is)g(partitioned)g(in)o(to)g(t)o(w)o(o)f(parts:)20 b(one)14 +b(whic)o(h)g(only)g(the)g(master)g(can)g(write)h(to,)f(and)g(one)g +(whic)o(h)0 1878 y(only)g(the)h(sla)o(v)o(e)g(that)f(has)h(b)q(een)h +(assigned)f(that)g(piece)h(of)e(w)o(ork)g(can)h(write)g(to.)21 +b(An)o(y)14 b(attempt)g(to)h(write)g(in)o(to)f(the)h(table)0 +1928 y(generates)k(a)e(message)g(that)g(informs)f(the)i(sla)o(v)o(e)f +(or)g(the)h(master)f(pro)q(cess)i(of)e(the)h(up)q(date)g(to)f(the)h +(information.)26 b(The)0 1978 y(master)13 b(and)f(sla)o(v)o(e)h(only)f +(read)i(their)f(lo)q(cal)f(copies)i(of)e(the)i(information;)c(there)k +(are)f(no)g(explicit)g(messages)g(sen)o(t)h(b)q(et)o(w)o(een)0 +2028 y(the)g(master)g(and)g(the)g(sla)o(v)o(e)g(asking)f(for)g +(information.)62 2077 y(The)g(master's)f(half)f(of)h(the)h(table)f(is)h +(illustrated)f(ab)q(o)o(v)o(e)g(the)h(dotted)g(line)f(in)g(Figure)g(5.) +17 b(F)m(or)12 b(eac)o(h)h(leaf)f(that)g(has)h(b)q(een)0 +2127 y(visited)h(b)o(y)f(the)h(master,)f(there)i(is)f(an)f(en)o(try)i +(in)e(the)h(APHID)g(table.)k(Information)11 b(main)o(tained)h(on)h(the) +i(lea)o(v)o(es)e(includes)0 2177 y(the)g(mo)o(v)o(es)e(required)j(to)e +(generate)i(the)f(leaf)f(p)q(ositions)g(from)f(the)i(ro)q(ot)g +Fb(R)p Fk(,)f(the)h(appro)o(ximate)e(lo)q(cation)g(of)h(the)h(leaf)f +(in)g(the)0 2227 y(tree)17 b(\(whic)o(h)e(is)h(used)g(b)o(y)f(the)h +(sla)o(v)o(e)f(to)h(prioritize)f(w)o(ork\),)g(whether)i(this)f(leaf)f +(w)o(as)g(visited)g(on)h(the)g(last)f(pass)h(that)f(the)0 +2277 y(master)e(executed,)j(and)d(the)i(n)o(um)o(b)q(er)e(of)g(the)i +(sla)o(v)o(e)e(that)h(the)h(leaf)e(w)o(as)h(allo)q(cated)f(to.)62 +2326 y(In)h(our)f(example,)f(w)o(e)i(can)g(see)g(that)g(the)g(same)f(n) +o(um)o(b)q(er)f(of)h(lea)o(v)o(es)h(ha)o(v)o(e)f(b)q(een)i(allo)q +(cated)e(to)g(eac)o(h)h(sla)o(v)o(e.)k(Note)c(that)0 +2376 y(there)i(is)f(an)g(additional)f(leaf,)g(8,)h(that)g(is)g(not)g +(represen)o(ted)j(in)c(the)i(master's)f Fj(d)1286 2361 +y Fa(0)1312 2376 y Fk(ply)f(searc)o(h)j(tree.)23 b(This)15 +b(leaf)f(no)q(de)i(has)0 2426 y(b)q(een)h(visited)e(on)g(a)g(previous)h +(pass)g(of)e(the)i Fj(d)731 2411 y Fa(0)758 2426 y Fk(ply)f(searc)o(h)h +(tree,)h(and)e(w)o(as)g(not)h(visited)f(on)g(the)h(latest)g(pass.)23 +b(Ho)o(w)o(ev)o(er,)p 0 2461 780 2 v 46 2488 a Fd(4)64 +2499 y Fg(Man)o(y)12 b(game-tree)f(searc)o(h)h(programs)e(exhibit)i(an) +g(e\013ect)g(based)g(on)h(the)g(parit)o(y)e(of)i(the)g(searc)o(h)f +(depth)f(\(o)q(dd)h(or)h(ev)o(en)f(n)o(um)o(b)q(er)g(of)g(ply\).)0 +2539 y(Scores)d(are)g(stable)g(when)h(y)o(ou)f(lo)q(ok)h(at)f(results)g +(from)g(the)h(o)q(dd)f(plies)g(only)m(,)h(or)g(ev)o(en)f(plies)g(only)m +(,)g(but)h(are)f(sometimes)f(unstable)g(when)i(y)o(ou)f(mix)0 +2578 y(the)i(t)o(w)o(o.)k(Th)o(us,)c(w)o(e)h(use)f(the)g(deep)q(est)f +(ply)g(v)n(alue)h(with)g(the)g(same)f(parit)o(y)m(,)g(instead)g(of)h +(alw)o(a)o(ys)g(using)f(the)h(deep)q(est)e(ply)i(v)n(alue)f(a)o(v)n +(ailable.)46 2606 y Fd(5)64 2618 y Fg(It)j(ma)o(y)g(happ)q(en)f(that)h +(the)g(original)f(searc)o(h)g(and)h(the)h(\\bad)e(b)q(ound")g(searc)o +(h)h(are)g(inconsisten)o(t)e(with)j(one)f(another,)f(through)g(the)h +(use)0 2657 y(of)h(searc)o(h)e(extensions)f(that)i(ma)o(y)g(or)h(ma)o +(y)f(not)g(b)q(e)g(triggered)f(based)g(on)i(the)f(searc)o(h)g(windo)o +(w)g(used.)22 b(In)13 b(this)h(case,)f(the)g(searc)o(h)g(explicitly)0 +2697 y(requested)c(b)o(y)i(the)g(master)f(o)o(v)o(errides)f(the)i +(informatio)o(n)e(that)h(had)h(b)q(een)f(previously)f(stored.)965 +2790 y Fk(7)p eop +%%Page: 8 10 +8 9 bop 489 0 a + 15345564 14208860 8420065 17234821 28417720 35653713 startTexFig + 489 0 a +%%BeginDocument: draw2.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 + 490 991 a Fk(Figure)14 b(5:)k(A)c(Snapshot)g(of)f(APHID)h(Searc)o(h)h +(in)e(Op)q(eration)0 1124 y(the)h(information)c(that)k(the)g(sla)o(v)o +(e)f(has)g(generated)i(ma)o(y)c(b)q(e)j(needed)h(in)e(a)g(later)g(pass) +h(of)f(the)h(tree)g(and)f(is)h(not)f(deleted)h(b)o(y)0 +1174 y(the)g(master.)k(Lea)o(v)o(es)c(are)g(initially)e(allo)q(cated)h +(to)h(the)g(sla)o(v)o(es)g(in)f(a)h(round-robin)f(manner,)f(and)i(ma)o +(y)e(mo)o(v)o(e)g(due)i(to)g(load)0 1224 y(balancing)g(\(as)h(describ)q +(ed)i(in)e(Section)h(3.4\).)k(Although)15 b(there)i(ma)o(y)c(b)q(e)i(b) +q(etter)i(metho)q(ds)e(of)f(allo)q(cating)g(lea)o(v)o(es,)h(it)g(has)0 +1273 y(b)q(een)f(found)f(that)h(this)f(is)g(a)g(reasonable)h(metho)q(d) +f(of)f(initially)f(balancing)h(the)i(load)f(on)g(a)g(small)e(n)o(um)o +(b)q(er)h(of)h(pro)q(cessors.)62 1323 y(The)j(sla)o(v)o(e's)e(part)h +(of)g(the)g(table,)g(illustrated)f(b)o(y)h(the)h(area)f(b)q(elo)o(w)f +(the)i(dotted)g(line,)e(con)o(tains)h(information)d(on)i(the)0 +1373 y(result)f(of)e(searc)o(hing)i(the)g(p)q(osition)e(to)h(v)n +(arious)f(depths)j(of)d(searc)o(h.)19 b(The)12 b(\\b)q(est")h +(information)c(and)j(the)h(ply)e(to)h(whic)o(h)g(the)0 +1423 y(leaf)j(w)o(as)g(examined)f(is)i(giv)o(en)f(underneath)h(eac)o(h) +g(leaf)f(no)q(de)h(in)f(the)h(tree.)24 b(F)m(or)15 b(leaf)g(1,)g(the)h +(score)h(returned)g(is)e(-1)g(with)0 1473 y(a)f(searc)o(h)h(depth)f(of) +g(4.)j(Leaf)d(3)g(illustrates)g(that)g(the)g(score)h(information)c +(returned)16 b(b)o(y)e(the)g(sla)o(v)o(e)g(is)f(not)h(necessarily)h(an) +0 1522 y(exact)h(n)o(um)o(b)q(er.)k(The)15 b(sla)o(v)o(es)g(main)o +(tain)d(an)j(upp)q(er)h(b)q(ound)e(and)h(a)g(lo)o(w)o(er)f(b)q(ound)h +(on)g(the)g(score)h(for)f(eac)o(h)g(ply)g(of)f(searc)o(h)0 +1572 y(depth.)19 b(The)14 b(score)h(is)f(kno)o(wn)f(to)h(b)q(e)h(exact) +f(when)h(the)f(upp)q(er)h(and)f(lo)o(w)o(er)f(b)q(ounds)i(are)f(the)g +(same.)0 1688 y Fv(3.3)56 b(Op)r(eration)17 b(of)i(Sla)n(v)n(e)g(in)f +(APHID)0 1765 y Fk(A)c(sla)o(v)o(e)f(pro)q(cess)i(essen)o(tially)e +(executes)j(the)e(same)e(co)q(de)j(that)e(a)g(sequen)o(tial)h +Fj(\013\014)i Fk(searc)o(her)f(w)o(ould.)i(The)d(pro)q(cess)h(simply)0 +1815 y(rep)q(eats)g(the)g(follo)o(wing)c(three)k(steps)h(un)o(til)d +(the)h(master)g(tells)f(it)h(that)g(the)g(searc)o(h)h(is)f(complete:)51 +1898 y(1.)20 b(Lo)q(ok)13 b(in)h(its)f(p)q(ortion)h(of)f(its)h(lo)q +(cal)f(cop)o(y)h(of)f(the)i(APHID)f(table,)f(and)h(\014nd)g(the)g +(highest)h(priorit)o(y)e(no)q(de)h(to)g(searc)o(h.)51 +1981 y(2.)20 b(Execute)15 b(the)g(searc)o(h.)51 2064 +y(3.)20 b(Rep)q(ort)14 b(the)g(result)h(bac)o(k)f(to)g(the)g(master)g +(\(getting)f(an)h(up)q(date)h(to)e(its)h(APHID)g(table)g(in)g +(return\).)62 2147 y(The)19 b(w)o(ork)e(selection)i(criterion)f(is)g +(primarily)d(based)k(on)f(the)g(depth)h(to)f(whic)o(h)f(the)i(sla)o(v)o +(e)f(has)g(already)f(searc)o(hed)0 2197 y(a)h(no)q(de.)31 +b(As)18 b(w)o(e)g(can)h(see)g(for)e(Sla)o(v)o(e)h(1)g(in)f(Figure)h(5,) +h(lea)o(v)o(es)f(1,)g(4)g(and)g(7)f(ha)o(v)o(e)h(b)q(een)h(searc)o(hed) +h(to)e(4,)g(3)g(and)g(0)f(ply)m(,)0 2247 y(resp)q(ectiv)o(ely)m(.)i(Th) +o(us,)14 b(Sla)o(v)o(e)f(1)g(is)h(attempting)e(to)i(searc)o(h)h(leaf)e +(7)h(to)f(1)h(ply)m(,)e(and)i(will)e(con)o(tin)o(ue)i(to)g(searc)o(h)h +(leaf)e(7)h(up)g(to)f(3)0 2296 y(ply)g(b)o(y)h(using)g(iterativ)o(e)f +(deep)q(ening,)i(if)e(no)h(new)g(w)o(ork)f(arriv)o(es)i(from)d(the)i +(master.)62 2346 y(The)c(secondary)h(criterion)f(is)g(the)g(lo)q +(cation)f(of)g(the)h(no)q(de)h(within)d(the)j(master's)e(game-tree.)16 +b(This)10 b(secondary)h(criterion)0 2396 y(is)f(necessary)i(since)f(it) +f(is)f(usually)h(b)q(ene\014cial)g(to)g(generate)h(the)g(results)g(in)f +(a)g(left-to-righ)o(t)f(order)h(for)g(the)h(master.)16 +b(Children)0 2446 y(of)e(no)q(des)h(are)g(usually)f(considered)h(in)g +(a)f(b)q(est-to-w)o(orst)h(ordering,)f(implying)e(that)i(the)h +(left-most)e(branc)o(hes)j(at)e(a)h(no)q(de)0 2496 y(ha)o(v)o(e)g(a)g +(higher)g(probabilit)o(y)e(of)i(b)q(eing)g(useful)g(than)g(the)h(righ)o +(t-most)d(ones.)22 b(F)m(or)15 b(Sla)o(v)o(e)f(2)h(in)g(Figure)g(5,)f +(lea)o(v)o(es)i(2)e(and)h(5)0 2545 y(ha)o(v)o(e)f(b)q(oth)h(b)q(een)g +(searc)o(hed)h(to)e(5)g(ply)m(,)f(but)h(leaf)g(2)g(is)g(b)q(eing)h +(searc)o(hed)g(in)f(the)h(sla)o(v)o(e)f(to)g(6)g(ply)g(since)h(it)f(is) +g(further)h(left)f(in)0 2595 y(the)g(tree)i(than)d(leaf)h(5.)62 +2645 y(A)g(no)q(de)h(that)f(has)g(a)f(priorit)o(y)h(of)f(zero)i(\(b)q +(ecause)h(it)d(is)h(no)g(longer)f(part)i(of)e(the)h(master's)g(tree\))h +(will)e(not)h(b)q(e)g(selected)0 2695 y(for)f(further)h(searc)o(h.)19 +b(F)m(or)13 b(Sla)o(v)o(e)g(3,)g(w)o(e)g(notice)h(that)f(Leaf)g(8)g(w)o +(ould)g(b)q(e)h(searc)o(hed)h(if)d(it)h(had)h(b)q(een)g(visited)f(b)o +(y)g(the)h(master)965 2790 y(8)p eop +%%Page: 9 11 +9 10 bop 0 42 a Fk(on)18 b(the)g(latest)g(pass.)30 b(Leaf)18 +b(8)f(is)h(ignored)f(b)o(y)h(the)g(sc)o(heduling)g(algorithm)d(b)q +(ecause)20 b(it)d(is)h(not)g(curren)o(tly)g(part)g(of)f(the)0 +91 y(master's)c(tree.)62 141 y(Before)19 b(a)f(searc)o(h)h(can)f(b)q(e) +h(executed,)h(an)e Fj(\013\014)i Fk(searc)o(h)f(windo)o(w)e(m)o(ust)g +(b)q(e)i(generated)g(b)o(y)f(the)g(sla)o(v)o(e.)30 b(The)18 +b(master)0 191 y(con)o(tin)o(ually)f(advises)j(the)f(sla)o(v)o(es)g(of) +g(the)g(leaf)s('s)f(lo)q(cation)h(within)f(the)h(master's)g(tree,)i +(and)d(the)i(h)o(yp)q(othetical)f(v)n(alue)0 241 y(of)e(the)g(ro)q(ot)h +(of)e(the)i(master's)f(tree.)29 b(Although)17 b(the)h(width)f(of)f(the) +i(searc)o(h)g(windo)o(w)f(is)g(application-dep)q(enden)o(t,)h(one)0 +291 y(normally)12 b(w)o(an)o(ts)i(to)g(cen)o(ter)i(the)f(windo)o(w)f +(around)g(this)h(h)o(yp)q(othesized)g(ro)q(ot)g(v)n(alue,)e(plus)h(or)h +(min)o(us)d(a)j(factor)f(to)g(re\015ect)0 340 y(the)g(uncertain)o(t)o +(y)h(in)e(it.)62 390 y(There)19 b(are)e(three)h(t)o(yp)q(es)g(of)f(up)q +(date)h(messages)f(that)g(a)g(sla)o(v)o(e)g(receiv)o(es)h(from)e(the)h +(master:)24 b(a)17 b(new)h(piece)g(of)e(w)o(ork)0 440 +y(has)g(b)q(een)h(added)f(to)f(the)i(sla)o(v)o(e)e(pro)q(cessor's)j +(APHID)e(table,)f(the)i(lo)q(cation)d(of)h(a)h(leaf)f(no)q(de)h(within) +f(the)i(master's)e(tree)0 490 y(has)g(c)o(hanged)h(\(c)o(hanging)e(the) +i(secondary)g(w)o(ork)e(sc)o(heduling)i(criterion\),)f(and)g(a)g +(noti\014cation)f(of)g(a)h(\\bad)g(b)q(ound")f(on)h(a)0 +540 y(no)q(de.)21 b(The)15 b(bad)g(b)q(ound)g(message)f(alerts)i(the)f +(sla)o(v)o(e)f(that)h(a)g(p)q(osition's)f(searc)o(h)i(information)c(is) +i(not)h(su\016cien)o(t)g(to)g(sa)o(v)o(e)0 589 y(the)g(no)q(de)h(from)d +(b)q(eing)h(uncertain.)22 b(In)15 b(this)g(case,)g(the)h(sla)o(v)o(e)e +(m)o(ust)g(re-searc)o(h)i(the)g(no)q(de)f(with)f(the)i +Fj(\013\014)h Fk(searc)o(h)f(windo)o(w)0 639 y(sen)o(t)f(b)o(y)e(the)i +(master)e(to)h(the)g(ply)g(requested.)62 689 y(As)19 +b(a)g(p)q(erformance)f(impro)o(v)o(emen)o(t,)f(w)o(e)i(w)o(an)o(t)f(to) +h(force)g(the)g(sla)o(v)o(e)f(to)h(alw)o(a)o(ys)f(w)o(ork)g(on)g(no)q +(des)i(for)e(the)h(curren)o(t)0 739 y(searc)o(h)c(depth)f(of)f(the)h +(master.)j(When)d(all)e(the)i(sla)o(v)o(e's)f(w)o(ork)h(has)f(b)q(een)i +(searc)o(hed)g(to)e(the)h(required)h(depth,)f(rather)g(than)0 +789 y(b)q(ecoming)h(idle,)g(it)g(starts)i(re-searc)o(hing)g(its)f(w)o +(ork)f(sp)q(eculativ)o(ely)h(an)g(additional)e(ply)h(deep)q(er,)i(in)f +(an)o(ticipation)e(of)h(the)0 839 y(next)g(iteration)f(\(depth)h +Fj(d)9 b Fk(+)h(1\).)20 b(When)14 b(sp)q(eculativ)o(e)h(searc)o(h)h(is) +e(running)g(on)g(a)h(pro)q(cessor,)g(the)g(sla)o(v)o(e)g(routinely)f(c) +o(hec)o(ks)0 888 y(the)j(comm)o(unicati)o(on)c(c)o(hannel)j(for)g +(messages)g(from)f(the)h(master.)24 b(If)16 b(the)h(sla)o(v)o(e)e +(receiv)o(es)j(a)e(new)g(piece)h(of)f(w)o(ork)f(to)h(do)0 +938 y(at)h Fj(d)11 b Fh(\000)h Fj(d)153 923 y Fa(0)181 +938 y Fk(ply)17 b(or)g(less,)h(the)g(sp)q(eculativ)o(e)f(searc)o(h)i +(is)e(imm)o(ediately)d(ab)q(orted)k(and)f(con)o(trol)g(is)g(returned)i +(to)e(the)g(sla)o(v)o(e's)0 988 y(sc)o(heduling)d(algorithm.)0 +1104 y Fv(3.4)56 b(Load)18 b(Balancing)0 1181 y Fk(Although)13 +b(the)h(master)e(attempts)h(to)h(giv)o(e)e(an)h(equal)g(amoun)o(t)f(of) +h(w)o(ork)g(to)g(eac)o(h)g(sla)o(v)o(e)g(in)g(APHID,)g(neither)i(the)e +(master)0 1231 y(nor)i(the)h(sla)o(v)o(e)e(can)i(predict)g(the)f(amoun) +o(t)f(of)g(e\013ort)i(required)g(to)f(complete)f(a)h +Fj(d)9 b Fh(\000)i Fj(d)1377 1216 y Fa(0)1403 1231 y +Fk(ply)j(searc)o(h)j(for)d(a)h(giv)o(en)g(piece)h(of)0 +1280 y(w)o(ork.)i(In)13 b(games)f(suc)o(h)i(as)f(c)o(hess,)i(there)f +(are)g(no)f(completely)f(reliable)h(indicators)g(of)g(the)h +(\\e\013ort")f(required)i(for)d(a)h(giv)o(en)0 1330 y(searc)o(h.)19 +b(Th)o(us,)14 b(load)f(im)o(balances)f(can)i(o)q(ccur)h(based)g(on)e +(the)i(allo)q(cation)d(of)h(w)o(ork)h(to)g(sla)o(v)o(es.)62 +1380 y(The)j(master)g(kno)o(ws)f(all)g(of)g(the)i(information)13 +b(ab)q(out)k(ho)o(w)g(man)o(y)d(uncertain)k(no)q(des)g(it)e(is)h(w)o +(aiting)e(for)h(from)f(eac)o(h)0 1430 y(sla)o(v)o(e.)24 +b(Th)o(us,)16 b(the)g(master)g(has)g(information)d(on)i(when)i(to)e(mo) +o(v)o(e)g(lea)o(v)o(es)h(from)e(the)i Fj(d)1405 1415 +y Fa(0)1432 1430 y Fk(ply)g(tree)h(from)d(an)i Fi(overworke)n(d)0 +1480 y(slave)f Fk(\(a)g(sla)o(v)o(e)g(with)g(a)g(large)h(n)o(um)o(b)q +(er)e(of)h(uncertain)h(no)q(des\))g(to)f(an)g Fi(underworke)n(d)i +(slave)e Fk(\(a)g(sla)o(v)o(e)g(with)g(no)g(uncertain)0 +1529 y(no)q(des\).)24 b(This)15 b(yields)g(a)g(tradeo\013)h(b)q(et)o(w) +o(een)h(faster)f(con)o(v)o(ergence)h(for)e(a)h(giv)o(en)f(ply)f(searc)o +(h)j(of)e(the)h(tree)h(and)e(additional)0 1579 y(searc)o(h)g(o)o(v)o +(erhead.)0 1695 y Fv(3.5)56 b(Implem)o(en)n(tation)0 +1772 y Fk(The)17 b(APHID)f(algorithm)e(has)j(b)q(een)g(written)g(as)g +(an)f(application-indep)q(enden)o(t)g(library)g(of)f(C)i(routines.)26 +b(The)17 b(library)0 1822 y(w)o(as)12 b(written)g(to)f(pro)o(vide)h +(minim)o(al)c(in)o(terv)o(en)o(tion)j(in)o(to)g(a)h(w)o(orking)e(v)o +(ersion)i(of)f(sequen)o(tial)h Fj(\013\014)i Fk(\(or)e(its)f(common)e +(v)n(arian)o(ts:)0 1872 y(NegaScout[20,)k(23)o(])g(and)g(Principal)g(V) +m(ariation)f(Searc)o(h)i(\(PVS\))g([17)o(]\).)k(Since)c(the)g(library)e +(is)i(application-indep)q(enden)o(t,)0 1922 y(a)c(p)q(oten)o(tial)g +(user)i(m)o(ust)e(write)g(a)h(few)f(application-dep)q(enden)o(t)h +(routines)g(\(suc)o(h)h(as)f(mo)o(v)o(e)d(format,)h(ho)o(w)i(to)f(mak)o +(e/unmak)o(e)0 1971 y(mo)o(v)o(es,)j(p)q(osition)i(format,)e(setting)i +(a)g(windo)o(w)f(for)g(a)h(sla)o(v)o(e's)f(searc)o(h,)i +Fi(etc)p Fk(.\).)21 b(APHID's)15 b(message)g(passing)g(w)o(as)f +(written)0 2021 y(using)g(PVM)g([28)o(])f(to)h(allo)o(w)e(for)i(the)g +(maxim)o(um)9 b(p)q(ortabilit)o(y)k(among)e(a)o(v)n(ailable)h(hardw)o +(are.)62 2071 y(T)m(o)h(parallelize)f(a)i(sequen)o(tial)f +Fj(\013\014)j Fk(program,)11 b(the)j(user)g(mo)q(di\014es)f(his)g(or)g +(her)h(searc)o(h)h(routine)f(as)f(sho)o(wn)g(in)g(Figure)h(6.)0 +2121 y(The)h(APHID)f(c)o(hanges)h(are)f(mark)o(ed)f(b)o(y)h(shading,)f +(and)h(easily)g(\014t)g(in)o(to)g(standard)g Fj(\013\014)j +Fk(framew)o(orks.)g(This)d(one)h(piece)g(of)0 2171 y(co)q(de)g +(functions)f(as)g(the)g(searc)o(h)h(algorithm)c(for)j(b)q(oth)g(the)g +(master)g(and)g(the)g(sla)o(v)o(e)g(pro)q(cesses.)62 +2220 y(There)i(are)f(a)g(few)f(additional)f(calls)i(that)f(ha)o(v)o(e)h +(to)f(b)q(e)i(added)f(to)f(the)i(iterativ)o(e)e(deep)q(ening)i(routine) +f(that)g(calls)f Fj(\013\014)r Fk(,)0 2270 y(outlined)f(in)h(Figure)g +(7.)62 2320 y(Initially)m(,)c(it)i(w)o(as)g(an)o(ticipated)g(that)h +(all)e(users)j(w)o(ould)d(w)o(an)o(t)h(to)h(searc)o(h)g(in)f(parallel)f +(from)g(the)i(ro)q(ot)f(of)g(the)h(game)e(tree.)0 2370 +y(Ho)o(w)o(ev)o(er,)i(there)i(are)e(some)f(programs)g(that)h(wish)g(to) +g(handle)g(the)h(ro)q(ot)f(of)f(the)i(game)d(tree)k(in)d(a)h +(di\013eren)o(t)h(w)o(a)o(y)e(than)h(the)0 2420 y(other)j(lea)o(v)o(es) +f(of)f(the)i(searc)o(h)g(tree)g(\(b)o(y)f(adding)f(calls)h(to)g(the)g +(time-con)o(trol)f(mec)o(hanism,)e(and)j(sp)q(ecial)g(handling)f(of)g +(the)0 2470 y Fj(\013\014)19 b Fk(searc)o(h)f(windo)o(w\).)25 +b(APHID)17 b(has)g(b)q(een)h(generalized)f(to)g(in)o(tegrate)g(with)f +(this)h(st)o(yle)g(of)f(searc)o(hing)h(the)g(game)e(tree;)0 +2519 y(Figure)e(8)f(illustrates)g(the)h(c)o(hanges)g(necessary)m(.)20 +b(The)12 b(only)g(signi\014can)o(t)g(c)o(hange)h(from)d(Figure)j(7)f +(is)g(the)h(addition)f(of)g(a)g(call)0 2569 y(to)i Fb(aphid)p +164 2569 14 2 v 14 w(intnode)p 332 2569 V 15 w(premove)p +Fk(.)62 2619 y(There)h(are)g(t)o(w)o(o)e(calls)g(that)h(are)h(inserted) +g(in)o(to)e(the)i(main)c(program,)h(whic)o(h)i(are)g(illustrated)g(in)f +(Figure)h(9.)965 2790 y(9)p eop +%%Page: 10 12 +10 11 bop 482 17 a + 15582380 33154007 1184071 3025960 24010342 51178209 startTexFig + 482 17 a +%%BeginDocument: code4.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 +/Courier 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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 0.99763 -0 -0 3.92857 18.0284 -414.643 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 0.99763 -0 -0 3.07143 18.0284 -128.357 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 477 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 -57 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 -27 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 177 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 219 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 81 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 957 ] concat +%I +[ +(int PVS\(p, alpha, beta, depth, plytogo\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 945 ] concat +%I +[ +(position p;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 933 ] concat +%I +[ +(int alpha, beta;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 921 ] concat +%I +[ +(int depth, plytogo;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 909 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 873 ] concat +%I +[ +(int h_length; /* ply position previously searched to */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 897 ] concat +%I +[ +(char *p_hash; /* pointer to hash value */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 885 ] concat +%I +[ +(char *p_key; /* pointer to hash table "lock" */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 861 ] concat +%I +[ +(int h_score; /* score for h_length ply */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 849 ] concat +%I +[ +(int h_flag; /* VALID, LBOUND or UBOUND */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 837 ] concat +%I +[ +(move *h_move; /* recommended move for h_length ply */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 825 ] concat +%I +[ +(int width; /* number of moves in move list */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 813 ] concat +%I +[ +(int i; /* move counter */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 801 ] concat +%I +[ +(int value; /* score of child PVS call */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 783 ] concat +%I +[ +(/* Generate hash value and key for this position */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 771 ] concat +%I +[ +(generate_hash\(p, p_hash, p_key\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 759 ] concat +%I +[ +(/* Fetch information from local transposition table */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 747 ] concat +%I +[ +(retrieve\(p_hash, p_kley, h_length, h_score, h_flag, h_move\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 729 ] concat +%I +[ +(/* If we have searched position deep enough, use score info */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 705 ] concat +%I +[ +(if \(flag == VALID\) { return\(h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 669 ] concat +%I +[ +(if \(alpha >= beta\) { return\(h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 657 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 639 ] concat +%I +[ +(/* Evaluate position if at bottom of the tree */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 591 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 573 ] concat +%I +[ +(/* Generate move list, evaluate position if no moves */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 549 ] concat +%I +[ +(if \(width == 0\) { return\(evaluate\(p\)\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 501 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 681 ] concat +%I +[ +(if \(flag == UBOUND\) { beta = min\(beta,h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 693 ] concat +%I +[ +(if \(flag == LBOUND\) { alpha = max\(alpha,h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 483 ] concat +%I +[ +(score = -INFINITY;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 471 ] concat +%I +[ +(lower = alpha; upper = beta;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 441 ] concat +%I +[ +(/* Loop through moves in move list */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 429 ] concat +%I +[ +(for\(i=1; \(i <= width && score <= beta\); i++ \) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 405 ] concat +%I +[ +(make_move\(p, move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 387 ] concat +%I +[ +(value = -PVS\(p, -upper, -lower, depth+1, plytogo-1\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 375 ] concat +%I +[ +(if \(value > score && i > 1\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 363 ] concat +%I +[ +(value = -PVS\(p, -beta, -value, depth+1, plytogo-1\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 351 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 333 ] concat +%I +[ +(unmake_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 309 ] concat +%I +[ +(if \(value > score\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 297 ] concat +%I +[ +(score = value;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 285 ] concat +%I +[ +(move_opt = move[i];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 273 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 255 ] concat +%I +[ +(/* Set bounds for next search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 243 ] concat +%I +[ +(lower = max\(alpha, score\); upper = lower+1;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 231 ] concat +%I +[ +(} /* for all moves */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 195 ] concat +%I +[ +(/* Write information into local trans. table */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 171 ] concat +%I +[ +(h_flag = VALID;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 561 ] concat +%I +[ +(width = generate\(p, h_move\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 159 ] concat +%I +[ +(if \(score <= alpha\) { h_flag = UBOUND; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 147 ] concat +%I +[ +(if \(score >= beta\) { h_flag = LBOUND; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 135 ] concat +%I +[ +(if \(h_length <= plytogo\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 123 ] concat +%I +[ +(store\(p_hash, p_key, plytogo, score, h_flag, move_opt\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 111 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 99 ] concat +%I +[ +(return\(score\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 48 87 ] concat +%I +[ +(} /* function PVS */) +] 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 +[ 2 -0 -0 2 -190 -34 ] concat +%I +107 47 323 503 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 627 ] concat +%I +[ +(if \(plytogo <= 0\) { return\(evaluate\(p\)\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 717 ] concat +%I +[ +(if \(aphid_master\(\) == FALSE && h_length == plytogo\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 615 ] concat +%I +[ +(if \(aphid_horizon\(depth\)\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 537 ] concat +%I +[ +(if \(aphid_checkalarm\(\) != FALSE\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 459 ] concat +%I +[ +(aphid_intnode_start\(depth, p_hash, p_key\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 417 ] concat +%I +[ +(aphid_intnode_move\(depth, &\(move[i]\)\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 321 ] concat +%I +[ +(aphid_intnode_update\(depth, value\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 213 ] concat +%I +[ +(if \(score >= beta\) { aphid_intnode_fixbound\(depth\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 183 ] concat +%I +[ +(aphid_intnode_end\(depth, &score\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 525 ] concat +%I +[ +(terminate_search = TRUE;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 603 ] concat +%I +[ +(return\(aphid_eval_leaf\(alpha,beta,depth,p_hash,p_key\)\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 513 ] concat +%I +[ +(return\(0\); /* Should exit PVS quickly when alarm on */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 395 2208 a Fk(Figure)14 b(6:)k(Ho)o(w)13 b(APHID)h(Mo)q(di\014es)g(a)g +(T)o(ypical)f(PVS)h(Implemen)o(tation)459 2284 y + 16292818 4736286 1184071 44665815 23615651 51178209 startTexFig + 459 +2284 a +%%BeginDocument: code5.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 +/Courier 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 8 8 + + +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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +155 342 563 354 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 951 ] concat +%I +[ +(for\(plytogo=1;\(plytogo <= MAXDEPTH && done == FALSE\); plytogo++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 939 ] concat +%I +[ +(/* Set up search */) +] 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 +[ 1.00951 -0 -0 1.12603 -126.417 566.628 ] concat +%I +149 252 569 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 963 ] concat +%I +[ +(aphid_initsearch\(MAXDEPTH\);) +] Text +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 596 ] concat +%I +155 294 563 318 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 596 ] concat +%I +155 258 563 270 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 887 ] concat +%I +[ +(/* Print out results of search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 875 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 911 ] concat +%I +[ +(/* Call to aphid_rootsearch replaces call to PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 899 ] concat +%I +[ +(score = aphid_rootsearch\(0,plytogo,guess-eps,guess+eps\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 863 ] concat +%I +[ +(aphid_endsearch\(\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 61 925 ] concat +%I +[ +(/* Search at root around value \(guess\) with small error \(eps\) */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 385 2675 a Fk(Figure)g(7:)k(Ho)o(w)c(APHID)g(Mo)q(di\014es)g(the)g +(Iterativ)o(e)h(Deep)q(ening)f(Routine)954 2790 y(10)p +eop +%%Page: 11 13 +11 12 bop 465 197 a + 16117604 19418804 1184071 24405032 23549870 51178209 startTexFig + 465 197 a +%%BeginDocument: code6.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 +/Courier 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 8 8 + + +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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 173 563 197 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 209 563 221 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 323 563 335 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +155 342 563 354 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 951 ] concat +%I +[ +(for\(plytogo=1;\(plytogo <= MAXDEPTH && done == FALSE\); plytogo++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 903 ] concat +%I +[ +(}) +] 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 +[ 1.00711 -0 -0 4.68604 -126.059 -714.975 ] concat +%I +149 252 569 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 915 ] concat +%I +[ +(/* Print out results of search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 927 ] concat +%I +[ +(score = ROOT_PVS\(root_pos,guess-eps,guess+eps,0,plytogo\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 867 ] concat +%I +[ +(ROOT_PVS\(root_pos, alpha, beta, depth, plytogo\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 855 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 843 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 831 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 819 ] concat +%I +[ +(/* Search PV Move */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 807 ] concat +%I +[ +(lower = alpha;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 789 ] concat +%I +[ +(search_best_move:) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 765 ] concat +%I +[ +(make_move\(p,bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 729 ] concat +%I +[ +(unmake_move\(p,bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 963 ] concat +%I +[ +(aphid_initsearch\(MAXDEPTH\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 891 ] concat +%I +[ +(aphid_endsearch\(\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 777 ] concat +%I +[ +(aphid_intnode_premove\(depth, &bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 753 ] concat +%I +[ +(/* aphid_rootsearch replaces typical call to PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 939 ] concat +%I +[ +(/* Set up search with small window \(eps\) around guess */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 741 ] concat +%I +[ +(oldscore = -aphid_rootsearch\(depth+1,plytogo-1,-beta,-lower\);) +] Text +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 437 ] concat +%I +155 159 563 183 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 437 ] concat +%I +155 207 563 219 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 641 ] concat +%I +[ +(make_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 629 ] concat +%I +[ +(/* Check if move beats PV move by more than delta */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 581 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 539 ] concat +%I +[ +(bestmove = move[i];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 527 ] concat +%I +[ +(lower = newscore;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 503 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 491 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 479 ] concat +%I +[ +(} /* function ROOT_PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 653 ] concat +%I +[ +(aphid_intnode_premove\(depth,&move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 593 ] concat +%I +[ +(unmake_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 210 605 ] concat +%I +[ +(-oldscore-delta-1, -oldscore-delta\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 617 ] concat +%I +[ +(newscore = -aphid_rootsearch\(depth+1, plytogo-1,) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 515 ] concat +%I +[ +(if \(newscore < beta\) { goto search_best_move; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 551 ] concat +%I +[ +(/* set new best move and score and research \(if necc.\) */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 665 ] concat +%I +[ +(for\(i=2;\(i<=width && newscore <= oldscore+delta; i++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 677 ] concat +%I +[ +(newscore = oldscore;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 563 ] concat +%I +[ +(if \(newscore > oldscore+delta\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 711 ] concat +%I +[ +(/* Search other moves at root, and only switch if move beats */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 59 698 ] concat +%I +[ +(/* PV score \(oldscore\) by a small margin \(delta\) */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 248 1518 a Fk(Figure)14 b(8:)j(Ho)o(w)d(APHID)g(Mo)q(di\014es)g(Sp)q +(ecial)g(Handling)f(of)g(the)i(Ro)q(ot)e(of)g(the)i(Game)d(T)m(ree)489 +1954 y + 15345567 7104430 1447198 41639854 22102671 51178209 startTexFig + 489 1954 a +%%BeginDocument: code7.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 +/Courier 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 8 8 + + +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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +161 216 539 228 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +161 276 539 288 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 963 ] concat +%I +[ +(int main\(argc, argv\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 951 ] concat +%I +[ +(int argc;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 939 ] concat +%I +[ +(char *argv[];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 927 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 915 ] concat +%I +[ +(/* Initialization required by any process in system */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 867 ] concat +%I +[ +(/* Initialization required only by the master process */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 825 ] concat +%I +[ +(exit\(0\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 813 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 855 ] concat +%I +[ +(/* Play game */) +] 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.997449 -0 -0 0.962766 -124.605 625.404 ] concat +%I +155 174 545 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 885 ] concat +%I +[ +(/* Only the absolute master process gets here */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 897 ] concat +%I +[ +(aphid_startup\(argv\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 837 ] concat +%I +[ +(aphid_exit\(\);) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 510 2495 a Fk(Figure)i(9:)k(Ho)o(w)13 b(APHID)h(Mo)q(di\014es)h(the)f +(Main)f(Program)954 2790 y(11)p eop +%%Page: 12 14 +12 13 bop 62 42 a Fk(A)18 b(brief)g(explanation)f(of)g(the)i +(parameters)f(and)g(function)f(of)h(eac)o(h)g(of)g(these)h +Fb(aphid)p 1461 42 14 2 v 33 w Fk(routines)f(can)g(b)q(e)h(found)e(in)0 +91 y(App)q(endix)d(A.)62 141 y(Along)h(with)g(the)i(additional)c(calls) +j(added)g(to)f(PVS,)h(the)g(iterativ)o(e)f(deep)q(ening)i(routine,)f +(and)f(the)i(main)c(program,)0 191 y(roughly)d(100)f(lines)h(of)g +(application-dep)q(enden)o(t)h(co)q(de)g(ha)o(v)o(e)f(to)g(b)q(e)h +(de\014ned)h(for)e(the)h Fb(aphid)p 1432 191 V 14 w(stub)p +1534 191 V 26 w Fk(routines.)17 b(The)11 b(APHID)0 241 +y(library)i(is)h(game-indep)q(enden)o(t,)g(but)g(it)g(needs)h(to)f(kno) +o(w)g(some)f(game-dep)q(enden)o(t)h(prop)q(erties)i(suc)o(h)e(as)g +(what)g(the)h(name)0 291 y(of)f(the)h(ev)n(aluation)e(function)h(is,)g +(what)g(the)h(name)e(of)h(the)h(searc)o(h)g(routine)g(is,)f(ho)o(w)g +(to)g(mak)o(e)f(and)h(unmak)o(e)f(mo)o(v)o(es,)f Fi(etc)p +Fk(.)0 340 y(The)i Fb(aphid)p 198 340 V 15 w(stub)p 301 +340 V 29 w Fk(routines)g(are)g(also)g(brie\015y)g(describ)q(ed)i(in)d +(App)q(endix)h(A.)0 478 y Fl(4)67 b(Exp)r(erimen)n(ts)0 +569 y Fk(The)20 b(APHID)g(game-indep)q(enden)o(t)f(library)g(has)h(b)q +(een)g(inserted)h(in)o(to)e(three)i(di\013eren)o(t)g(programs)d(o)o(v)o +(er)i(the)g(last)f(six)0 618 y(mon)o(ths.)e(F)m(or)c(this)h(initial)d +(exp)q(erimen)o(t,)i(eac)o(h)i(of)e(the)h(programs)e(c)o(hosen)j(w)o +(ere)f(written)h(at)e(the)h(Univ)o(ersit)o(y)g(of)f(Alb)q(erta,)0 +668 y(and)g(the)h(authors)g(of)f(the)h(program)e(w)o(ere)j(assisted)f +(in)f(implemen)o(ting)d(the)15 b(APHID)e(library)g(in)o(to)g(their)h +(programs.)j(The)0 718 y(\014rst)g(program)f(w)o(as)g +Ff(Key)m(ano)p Fk(,)j(an)e(Othello)f(program)f(written)i(b)o(y)g(Mark)f +(Bro)q(c)o(kington.)27 b(The)17 b(second)h(program)d(w)o(as)0 +768 y Ff(TheTurk)p Fk(,)i(a)e(c)o(hess)i(program)e(written)h(b)o(y)g +(Yngvi)f(Bjornsson)h(and)g(Andreas)h(Junghanns.)24 b(The)17 +b(\014nal)e(program)f(w)o(as)0 818 y(the)k(curren)o(t)i(Man-Mac)o(hine) +d(w)o(orld)h(c)o(hampion)d(c)o(hec)o(k)o(ers)20 b(program,)d +Ff(Chinook)p Fk(,)i(written)g(b)o(y)e(a)h(team)f(that)g(includes)0 +867 y(Martin)d(Bry)o(an)o(t,)f(Rob)g(Lak)o(e,)h(P)o(aul)f(Lu,)g +(Jonathan)h(Sc)o(hae\013er,)h(and)f(Norman)e(T)m(reloar)i([25)o(].)62 +917 y(P)o(arallel)h(tests)i(w)o(ere)g(run)f(on)f(up)h(to)g(16)f(w)o +(orkstations)h(on)f(a)g(net)o(w)o(ork)h(of)g(SparcStation)f(IPC)h +(computers)g(with)f(12)0 967 y(MB)h(of)f(RAM,)g(running)g(the)h(SunOS)g +(4.1.4)e(op)q(erating)h(system.)23 b(The)16 b(SparcStations)g(are)g +(link)o(ed)f(with)g(1)g(segmen)o(t)h(of)0 1017 y(10)e(base)g(2)g +(\(thin)g(net\))h(Ethernet.)20 b(One)15 b(w)o(orkstation)e(in)h(eac)o +(h)g(exp)q(erimen)o(t)g(w)o(as)g(completely)f(o)q(ccupied)i(b)o(y)f +(the)g(master)0 1067 y(pro)q(cess,)h(while)f(the)g(other)h(w)o +(orkstations)e(eac)o(h)i(ran)f(a)f(single)h(sla)o(v)o(e)f(pro)q(cess.) +62 1117 y(More)18 b(sp)q(eci\014c)g(details)f(will)f(follo)o(w)f(in)h +(the)i(subsequen)o(t)h(sections)f(ab)q(out)f(the)g(exp)q(erimen)o(ts)h +(with)e(eac)o(h)i(program.)0 1166 y(Ho)o(w)o(ev)o(er,)j(w)o(e)f(m)o +(ust)f(discuss)i(the)f(general)g(metho)q(dology)e(used)i(for)g(ev)n +(aluating)e(the)j(p)q(erformance)e(of)g(the)i(APHID)0 +1216 y(algorithm.)62 1266 y(P)o(arallel)16 b(and)h(sequen)o(tial)g +(algorithms)d(often)j(do)g(not)f(agree)i(with)e(eac)o(h)i(other)f(ab)q +(out)g(minim)o(ax)d(v)n(alues)i(and)h(b)q(est)0 1316 +y(mo)o(v)o(es)10 b(when)h(the)g(full)f(v)o(ersion)h(of)f(the)h(program) +e(is)i(used)h([15)o(].)k(F)m(or)11 b(example,)e(di\013eren)o(t)j(searc) +o(h)g(windo)o(ws)e(cause)i(di\013eren)o(t)0 1366 y(searc)o(h)k +(extensions)h(to)e(b)q(e)h(turned)g(on,)f(causing)g(di\013eren)o(t)h +(alpha-b)q(eta)f(results.)24 b(Th)o(us,)15 b(all)f(searc)o(h)j +(extensions,)f(searc)o(h)0 1415 y(reductions)h(and)f(n)o(ull)g(mo)o(v)o +(e)e(searc)o(hing)j(w)o(ere)g(turned)g(o\013)f(for)g(the)h(purp)q(oses) +h(of)d(this)h(exp)q(erimen)o(t.)25 b(Since)17 b(some)e(w)o(ork)0 +1465 y(could)g(b)q(e)g(ev)n(aluated)f(to)h Fj(d)9 b Fk(+)h(1-ply)k(b)q +(efore)h(the)h Fj(d)p Fk(-ply)d(result)j(is)e(\014nished,)h(w)o(e)g +(also)f(forced)i(the)f(transp)q(osition)g(table)f(to)0 +1515 y(rep)q(ort)g(only)f(transp)q(osition)g(table)g(scores)i(that)e +(had)g(b)q(een)i(searc)o(hed)f(to)g(the)f(exact)h(depth)g(\(as)g(in)e +(Figure)i(6\).)j(Although)0 1565 y(a)12 b(\014xed)h(depth)h(is)e +(enforced)i(on)e(the)h(programs,)f(quiescence)i(searc)o(h)g(w)o(as)f +(left)f(in)g Ff(TheTurk)h Fk(and)g Ff(Chinook)h Fk(to)e(prev)o(en)o(t)0 +1615 y(the)h(ev)n(aluations)e(from)g(b)q(eing)i(signi\014can)o(tly)e +(unstable.)18 b(This)12 b(forced)h(the)g(parallel)f(and)g(sequen)o +(tial)g(programs)f(to)i(return)0 1664 y(iden)o(tical)g(minima)o(x)e(v)n +(alues,)i(allo)o(wing)f(for)h(a)h(fair)f(comparison.)62 +1714 y(A)k(suitable)f(b)q(enc)o(hmark)g(set)h(w)o(as)f(c)o(hosen)h(for) +f(eac)o(h)h(program)e(\(see)i(appropriate)g(section\).)26 +b(Eac)o(h)16 b(game)f(also)h(has)0 1764 y(di\013eren)o(t)g(time)e +(constrain)o(ts)i(in)f(t)o(ypical)f(p)q(ositions.)22 +b(F)m(or)15 b(example,)f(an)h(Othello)f(program)g(should)h(tak)o(e)g +(an)g(a)o(v)o(erage)h(of)0 1814 y(90)f(seconds)j(to)e(mak)o(e)e(a)i(mo) +o(v)o(e)e(for)i(a)f(midgam)o(e)f(searc)o(h,)j(and)f(a)f(c)o(hess)j +(program)c(should)i(tak)o(e)g(ab)q(out)g(150)f(seconds)i(to)0 +1864 y(complete)c(a)h(searc)o(h.)19 b(The)14 b(searc)o(h)h(depth)g(w)o +(as)f(c)o(hosen)g(so)g(that)g(the)h(a)o(v)o(erage)e(of)h(the)g +(parallel)f(results)i(on)e(16)h(pro)q(cessors)0 1914 +y(did)f(not)h(exceed)i(this)e(time)e(constrain)o(t.)62 +1963 y(The)j Fi(sp)n(e)n(e)n(dup)f Fk(giv)o(en)g(in)g(this)g(section)h +(compares)e(the)i(\014xed)f(depth)h(v)o(ersion)f(of)g(the)g(sequen)o +(tial)h(program)d(v)o(ersus)j(the)0 2013 y(time)e(required)h(to)g +(\014nd)g(the)h(result)f(in)g(parallel:)728 2124 y(sp)q(eedup)f(=)935 +2096 y(sequen)o(tial)d(time)p 935 2114 271 2 v 958 2152 +a(parallel)e(time)1210 2124 y Fj(:)0 2235 y Fk(It)17 +b(is)f(imp)q(ortan)o(t)f(to)h(note)h(that)f(neither)h(the)g(sequen)o +(tial)g(nor)f(the)h(parallel)f(algorithm)d(b)q(eing)k(tested)h(is)e +(the)h(one)g(that)0 2285 y(w)o(ould)11 b(b)q(e)i(used)g(under)f +(tournamen)o(t)f(conditions,)h(b)q(ecause)i(the)e(searc)o(h)h +(extension/reduction)g(algorithms)d(w)o(ere)j(turned)0 +2334 y(o\013.)k(F)m(or)9 b(the)i(purp)q(oses)h(of)d(the)i(exp)q(erimen) +o(t,)f(the)h(parallel)e(and)h(sequen)o(tial)g(times)f(for)h(eac)o(h)h +(searc)o(h)g(are)g(summed)d(together)0 2384 y(to)14 b(determine)g(the)g +(aggregate)g(sp)q(eedup.)62 2434 y(The)f(aggregate)f(sp)q(eedups)i +(will)d(b)q(e)i(illustrated)f(in)f(t)o(w)o(o)h(graphs.)18 +b(The)12 b(\014rst)h(graph)f(will)f(sho)o(w)h(the)h(breakdo)o(wn)f(of)f +(the)0 2484 y(aggregate)i(sp)q(eedup)h(at)f(the)g(p)q(oin)o(t)f(where)i +(the)f(depth)h Fj(d)e Fk(searc)o(h)i(has)e(b)q(een)i(completed.)j(The)c +(second)h(graph)f(divides)f(the)0 2534 y(test)k(set)g(in)o(to)f(three)h +(or)f(four)g(disjoin)o(t)f(subsets)j(\(based)f(on)f(size)h(of)f(the)h +(sequen)o(tial)f(searc)o(h\),)h(and)f(giv)o(es)g(the)h(aggregate)0 +2584 y(sp)q(eedup)g(for)d(eac)o(h)i(subset.)k(F)m(or)14 +b(ev)o(ery)g(program)f(tested,)i(b)q(oth)f(graphs)g(illustrate)g(that)g +(larger)g(searc)o(hes)i(yield)d(greater)0 2633 y(parallelism)e(than)i +(smaller)f(searc)o(hes.)20 b(The)14 b(second)h(graph)f(also)e +(illustrates)i(some)f(of)g(the)h(v)n(ariance)f(to)h(b)q(e)g(found)f(in) +g(the)0 2683 y(aggregate)h(sp)q(eedup.)954 2790 y(12)p +eop +%%Page: 13 15 +13 14 bop 62 42 a Fk(The)14 b(o)o(v)o(erheads)f(in)g(the)g(algorithm)d +(will)i(b)q(e)h(illustrated)g(in)g(a)f(third)h(graph.)18 +b(The)13 b(third)g(graph)g(represen)o(ts)i(the)f(same)0 +91 y(scale)h(across)h(all)e(programs.)19 b(F)m(or)14 +b Ff(Key)m(ano)j Fk(and)e Ff(TheTurk)p Fk(,)g(a)g(fourth)f(graph)h(is)g +(giv)o(en)f(to)g(illustrate)h(the)g(same)f(data)0 141 +y(on)g(a)f(magni\014ed)f(scale.)62 191 y(The)g Fi(total)g(overhe)n(ad)g +Fk(represen)o(ts)i(the)d(additional)f(computing)f(time)h(required)i(b)o +(y)f(the)h(parallel)e(algorithm)f(to)i(ac)o(hiev)o(e)0 +241 y(the)j(same)f(result:)480 343 y(total)c(o)o(v)o(erhead)j(=)796 +315 y(\(parallel)c(time)17 b Fh(\002)i Fk(n\))9 b Fh(\000)h +Fk(sequen)o(tial)f(time)p 796 334 670 2 v 995 372 a(sequen)o(tial)g +(time)0 452 y(where)14 b Fj(n)f Fk(is)f(the)i(n)o(um)o(b)q(er)e(of)g +(pro)q(cessors.)20 b(The)13 b(total)f(o)o(v)o(erhead)h(can)g(also)g(b)q +(e)g(computed)f(b)o(y)h(examining)d(the)k(o)o(v)o(erheads.)0 +502 y(The)19 b(three)i(main)16 b(o)o(v)o(erheads)k(are)f(using)g(a)f +(pro)q(cessor)j(exclusiv)o(ely)e(as)g(a)g(master,)g(the)g(e\013ectiv)o +(e)i(decrease)g(in)d(no)q(des)0 551 y(p)q(er)e(second)h(examined,)d +(and)h(the)h(additional)e(n)o(um)o(b)q(er)g(of)h(no)q(des)h(searc)o +(hed)h(b)o(y)e(the)h(parallel)f(algorithm.)k(There)e(is)e(no)0 +601 y(sync)o(hronization)c(o)o(v)o(erhead)h(in)f(the)h(APHID)g +(algorithm,)c(since)13 b(the)f(algorithm)c(op)q(erates)13 +b(in)e(an)g(async)o(hronous)h(manner.)0 651 y(This)i(can)g(b)q(e)g +(expressed)j(in)c(the)i(follo)o(wing)c(form)o(ula)850 +636 y Fe(6)880 651 y Fk(for)i(total)g(o)o(v)o(erhead:)302 +740 y(total)8 b(o)o(v)o(erhead)42 b(=)g(\(1)9 b(+)h(master)e(o)o(v)o +(erhead)q(\))h Fh(\002)h Fk(\(1)f(+)g(parallelization)f(o)o(v)o +(erhead\))681 802 y Fh(\002)i Fk(\(1)f(+)g(searc)o(h)i(o)o(v)o(erhead)e +(+)h(sp)q(eculativ)o(e)g(searc)o(h)q(\))p Fj(:)62 891 +y Fk(The)17 b Fi(master)f(overhe)n(ad)h Fk(is)f(the)g(appro)o(ximate)e +(p)q(enalt)o(y)i(incurred)h(b)o(y)f(ha)o(ving)f(a)h(single)g(pro)q +(cessor)h(b)q(eing)f(allo)q(cated)0 941 y(completely)e(to)h(the)h +(handling)e(of)h(the)h(master.)22 b(This)15 b(is)h(simply)d(1)p +Fj(=)p Fk(\()p Fj(n)d Fh(\000)g Fk(1\),)15 b(the)h(b)q(ene\014t)h(of)e +(adding)f(another)i(sla)o(v)o(e)f(to)0 991 y(the)f(other)h +Fj(n)9 b Fh(\000)h Fk(1)j(sla)o(v)o(es.)62 1041 y(The)18 +b Fi(p)n(ar)n(al)r(lelization)e(overhe)n(ad)i Fk(is)f(the)g(p)q(enalt)o +(y)g(incurred)h(b)o(y)f(the)g(APHID-library)g(on)f(the)i(sp)q(eed)g(of) +f(the)g(sla)o(v)o(es.)0 1090 y(The)12 b(di\013erence)i(b)q(et)o(w)o +(een)f(the)g(rate)f(at)g(whic)o(h)g(the)g(parallel)f(sla)o(v)o(es)h +(explore)g(no)q(des)h(and)f(the)g(sequen)o(tial)g(program's)f(no)q(de)0 +1140 y(rate)17 b(is)f(assumed)g(to)g(b)q(e)h(the)g(parallelization)e(o) +o(v)o(erhead.)25 b(This)17 b(parallelization)d(o)o(v)o(erhead)j(is)f +(deriv)o(ed)h(partially)e(from)0 1190 y(the)h(o)o(v)o(erhead)f(of)f +(using)h(PVM,)g(and)f(partially)g(from)f(the)i(w)o(ork-sc)o(heduling)g +(algorithm)d(on)j(eac)o(h)h(sla)o(v)o(e.)k(In)15 b(e\013ect)i(this)0 +1240 y(includes)f(sync)o(hronization)g(o)o(v)o(erhead,)g(complexit)o(y) +d(o)o(v)o(erhead)j(and)g(comm)o(unicatio)o(n)d(o)o(v)o(erhead,)j(as)g +(used)g(in)g(previous)0 1290 y(parallel)d Fj(\013\014)j +Fk(mo)q(dels)d([15)o(,)g(18,)g(24)o(].)62 1339 y(The)i +Fi(se)n(ar)n(ch)g(overhe)n(ad)g Fk(represen)o(ts)i(the)f(additional)c +(no)q(des)j(searc)o(hed)i(to)d(ac)o(hiev)o(e)h(the)g +Fj(d)f Fk(ply)g(minim)o(ax)d(v)n(alue.)19 b(This)0 1389 +y(can)e(b)q(e)h(computed)e(b)o(y)h(dividing)e(the)j(no)q(des)f(searc)o +(hed)i(to)e(generate)h Fj(d)e Fk(ply)h(searc)o(h)h(results)g(in)e(the)i +(parallel)e(program)0 1439 y(b)o(y)g(the)h(no)q(des)g(searc)o(hed)h(b)o +(y)e(the)h(sequen)o(tial)f(program.)24 b(Most)16 b(of)g(the)h(searc)o +(h)g(o)o(v)o(erhead)g(is)f(incurred)h(b)o(y)f(attempting)0 +1489 y(to)f(do)g(searc)o(hes)j(b)q(efore)e(the)g(correct)h(searc)o(h)f +(windo)o(w)f(is)g(a)o(v)n(ailable.)20 b(Th)o(us,)15 b(the)h(sla)o(v)o +(es)g(use)g Fj(\013\014)i Fk(searc)o(h)e(windo)o(ws)f(that)0 +1539 y(are)j(larger)g(than)g(those)h(in)e(the)i(sequen)o(tial)e +(program.)29 b(Most)18 b(of)f(the)i(increase)g(in)e(searc)o(h)i(o)o(v)o +(erhead)g(as)f(w)o(e)g(increase)0 1589 y(the)c(n)o(um)o(b)q(er)f(of)f +(pro)q(cessors)k(can)d(b)q(e)h(attributed)g(to)f(information)e +(de\014ciency)m(,)j(since)g(there)g(is)f(no)h(common)c(shared)k(data)0 +1638 y(b)q(et)o(w)o(een)h(the)g(pro)q(cesses)h(\(suc)o(h)f(as)f(a)g +(shared)g(transp)q(osition)g(table\).)62 1688 y(Since)e(w)o(e)g(only)f +(searc)o(h)h(eac)o(h)g(p)q(osition)f(to)h Fj(d)f Fk(ply)m(,)f(the)i +(async)o(hronous)g(nature)h(of)e(the)h(sla)o(v)o(es)f(will)f(result)j +(in)e(some)f(w)o(ork)0 1738 y(b)q(eing)j(done)f(at)h +Fj(d)7 b Fk(+)g(1)k(ply)h(\(or)h(more\).)j(The)d Fi(sp)n(e)n(culative)h +(se)n(ar)n(ch)e Fk(represen)o(ts)k(the)d(amoun)o(t)d(of)i(additional)f +(searc)o(h)j(b)q(ey)o(ond)0 1788 y(what)k(the)g(sequen)o(tial)g +(algorithm)d(w)o(ould)i(ha)o(v)o(e)h(done.)30 b(The)18 +b(sp)q(eculativ)o(e)h(searc)o(h)g(can)f(b)q(e)g(computed)g(b)o(y)f +(taking)g(the)0 1838 y(n)o(um)o(b)q(er)d(of)g(sp)q(eculativ)o(e)h(no)q +(des)g(searc)o(hed)i(and)d(dividing)f(that)i(b)o(y)f(the)h(n)o(um)o(b)q +(er)f(of)g(no)q(des)h(searc)o(hed)i(in)d(the)h(sequen)o(tial)0 +1887 y(case.)k(In)12 b(our)h(exp)q(erimen)o(ts,)g(the)g(sp)q(eculativ)o +(e)g(searc)o(h)h(results)g(w)o(ere)g(not)e(used)i(so)f(that)f(the)i +(parallel)d(program)g(pro)q(duces)0 1937 y(the)17 b(iden)o(tical)e +(results)i(as)f(the)g(sequen)o(tial)g(v)o(ersion,)h(v)o(erifying)d +(APHID's)i(correctness.)27 b(In)16 b(a)g(real)g(tournamen)o(t)f(game,)0 +1987 y(this)f(sp)q(eculativ)o(e)g(searc)o(h)h(could)f(b)q(e)g(used)h +(to)f(lo)q(ok)f(an)g(extra)i(mo)o(v)o(e)d(ahead)i(on)f(some)g(k)o(ey)h +(v)n(ariations,)e(since)j(it)e(is)h(highly)0 2037 y(lik)o(ely)f(that)h +(the)h(mo)o(v)o(es)e(extended)j(a)e(ply)f(ahead)i(w)o(ould)e(b)q(e)i +(in)f(the)g(left-most)f(branc)o(hes)j(of)d(the)i(tree.)20 +b(Note)15 b(that)f(other)0 2087 y(algorithms,)f(suc)o(h)k(as)f(Y)m +(oung)f(Brothers)i(W)m(ait,)d(ha)o(v)o(e)i(pro)q(cessors)i(go)d(idle)g +(when)i(there)g(is)e(no)h(w)o(ork)f(left)h(to)f(do)h(on)f(the)0 +2136 y(curren)o(t)g(iteration.)0 2252 y Fv(4.1)56 b(Key)n(ano)18 +b(\(F)-5 b(ebruary)19 b(1996\))0 2329 y Fk(The)13 b(\014rst)g(program)e +(that)i(the)g(APHID)f(library)g(w)o(as)g(implemen)o(ted)e(in)i(w)o(as)h +Ff(Key)m(ano)p Fk(,)h(an)e(Othello)h(program)d(whic)o(h)j(has)0 +2379 y(comp)q(eted)h(in)f(in)o(ternational)g(Othello)h(tournamen)o(ts)f +(for)h(the)g(last)g(three)h(y)o(ears.)62 2429 y(APHID)k(did)e(not)h(ha) +o(v)o(e)g(load)f(balancing)g(at)h(the)h(time)e(the)h(algorithm)e(w)o +(as)i(originally)e(b)q(enc)o(hmark)o(ed;)j(the)g(load)0 +2478 y(balancing)13 b(w)o(as)h(in)o(tro)q(duced)h(to)e(the)i(ev)o +(olving)e(APHID)h(library)f(in)h(Marc)o(h.)k(T)m(o)13 +b(b)q(e)i(consisten)o(t)g(with)f(results)h(presen)o(ted)0 +2528 y(elsewhere)h([3)o(],)d(the)i(F)m(ebruary)f(1996)f(results)i(are)f +(giv)o(en)f(here.)62 2578 y(T)m(o)g(test)h(the)g(algorithm,)c(Key)o +(ano)j(w)o(as)h(programmed)c(to)k(searc)o(h)g(with)f(its)g(midgam)o(e)e +(searc)o(h)k(algorithm)10 b(to)j(a)g(depth)0 2628 y(of)g +Fj(d)e Fk(=)h(12)i(ply)m(,)e(with)i(the)g(master)f(con)o(trolling)g +(the)h(top)g Fj(d)934 2613 y Fa(0)957 2628 y Fk(=)e(4)h(ply)h(of)f(the) +i(tree.)p 0 2661 780 2 v 46 2688 a Fd(6)64 2700 y Fg(This)c(form)o(ula) +e(is)j(not)f(the)f(same)h(as)g(the)g(form)o(ula)e(presen)o(ted)g(in)j +(earlier)d(v)o(ersions)h(of)h(this)g(pap)q(er.)954 2790 +y Fk(13)p eop +%%Page: 14 16 +14 15 bop 38 0 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 38 0 a +%%BeginDocument: graph2.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 813 M +63 0 V +6066 0 R +-63 0 V +756 813 M +(1) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 1736 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 3584 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4507 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(9) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +840 351 M +2066 2198 L +3292 4045 L +613 924 V +LT1 +6486 4626 M +(d=7) Rshow +6570 4626 M +252 0 V +2066 610 M +1226 55 V +5743 605 L +6654 4626 D +2066 610 D +3292 665 D +5743 605 D +LT2 +6486 4486 M +(d=8) Rshow +6570 4486 M +252 0 V +2066 785 M +3292 993 L +5743 868 L +6654 4486 A +2066 785 A +3292 993 A +5743 868 A +LT3 +6486 4346 M +(d=9) Rshow +6570 4346 M +252 0 V +2066 1048 M +1226 554 V +2451 0 V +6654 4346 B +2066 1048 B +3292 1602 B +5743 1602 B +LT4 +6486 4206 M +(d=10) Rshow +6570 4206 M +252 0 V +2066 1159 M +1226 804 V +2451 600 V +6654 4206 C +2066 1159 C +3292 1963 C +5743 2563 C +LT5 +6486 4066 M +(d=11) Rshow +6570 4066 M +252 0 V +2066 1298 M +1226 909 V +5743 3681 L +6654 4066 T +2066 1298 T +3292 2207 T +5743 3681 T +LT6 +6486 3926 M +(d=12) Rshow +6570 3926 M +252 0 V +2066 1307 M +3292 2420 L +5743 4235 L +6654 3926 S +2066 1307 S +3292 2420 S +5743 4235 S +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 975 0 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 975 0 a +%%BeginDocument: graph3.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 813 M +63 0 V +6066 0 R +-63 0 V +756 813 M +(1) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 1736 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 3584 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4507 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(9) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +840 351 M +2066 2198 L +3292 4045 L +613 924 V +LT1 +6486 4626 M +(Quartile 1) Rshow +6570 4626 M +252 0 V +2066 1159 M +1226 818 V +2451 748 V +6654 4626 D +2066 1159 D +3292 1977 D +5743 2725 D +LT2 +6486 4486 M +(Quartile 2) Rshow +6570 4486 M +252 0 V +2066 1270 M +3292 2332 L +5743 3953 L +6654 4486 A +2066 1270 A +3292 2332 A +5743 3953 A +LT3 +6486 4346 M +(Quartile 3) Rshow +6570 4346 M +252 0 V +2066 1284 M +3292 2420 L +5743 4110 L +6654 4346 B +2066 1284 B +3292 2420 B +5743 4110 B +LT4 +6486 4206 M +(Quartile 4) Rshow +6570 4206 M +252 0 V +2066 1312 M +3292 2415 L +5743 4475 L +6654 4206 C +2066 1312 C +3292 2415 C +5743 4475 C +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 277 751 a Fk(Figure)14 b(10:)j Ff(Key)m(ano)f Fk(-)e(Sp)q(eedups)i(b)o +(y)d(Depth)i(of)e(Searc)o(h)i(and)e(Sequen)o(tial)h(T)m(ree)g(Size)38 +809 y + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 38 809 a +%%BeginDocument: graph1.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(50) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(150) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(200) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(250) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(300) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(350) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(400) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 597 M +1226 28 V +2451 32 V +6654 4766 D +2066 597 D +3292 625 D +5743 657 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 413 M +1226 75 V +5743 658 L +6654 4626 A +2066 413 A +3292 488 A +5743 658 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 516 M +1226 12 V +2451 13 V +6654 4486 B +2066 516 B +3292 528 B +5743 541 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 735 M +3292 515 L +5743 428 L +6654 4346 C +2066 735 C +3292 515 C +5743 428 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 1427 M +3292 1258 L +2451 134 V +6654 4206 T +2066 1427 T +3292 1258 T +5743 1392 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 975 809 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 975 809 a +%%BeginDocument: graph1c.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 1121 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(20) Rshow +840 1890 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(40) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(60) Rshow +840 3430 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(80) Rshow +840 4199 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(120) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 1171 M +1226 92 V +2451 108 V +6654 4766 D +2066 1171 D +3292 1263 D +5743 1371 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 559 M +3292 809 L +2451 566 V +6654 4626 A +2066 559 A +3292 809 A +5743 1375 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 901 M +1226 39 V +2451 46 V +6654 4486 B +2066 901 B +3292 940 B +5743 986 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 1632 M +3292 897 L +5743 609 L +6654 4346 C +2066 1632 C +3292 897 C +5743 609 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 3938 M +3292 3376 L +2451 446 V +6654 4206 T +2066 3938 T +3292 3376 T +5743 3822 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 365 1561 a Fk(Figure)g(11:)j Ff(Key)m(ano)f Fk(-)e(Ov)o(erheads)h(and) +f(Magni\014ed)g(View)f(of)h(Ov)o(erheads)62 1693 y(The)k(74)f(p)q +(ositions)g(examined)f(w)o(ere)j(the)f(p)q(ositions)f(from)e(mo)o(v)o +(e)h(2)h(to)g(mo)o(v)o(e)f(38)h(in)g(the)h(t)o(w)o(o)f(games)f(of)h +(the)h(1994)0 1743 y(W)m(orld)13 b(Championship)e(\014nal)j(b)q(et)o(w) +o(een)h(Da)o(vid)d(Shaman)h(and)g(Emman)o(uel)e(Caspard)1384 +1728 y Fe(7)1403 1743 y Fk(.)62 1793 y(In)j(Figure)g(10,)f(w)o(e)i(see) +g(the)g(graph)e(on)h(the)h(left)f(con)o(tains)f(the)i(sp)q(eedups)h +(brok)o(en)e(do)o(wn)g(b)o(y)g(ply)m(.)j(The)e(graph)f(on)f(the)0 +1843 y(righ)o(t)h(con)o(tains)h(the)h(12)e(ply)g(results)i(brok)o(en)g +(do)o(wn)e(in)o(to)g(four)h(quartiles.)21 b(The)15 b(\014rst)h +(quartile)e(represen)o(ts)k(the)d(smallest)0 1892 y(sequen)o(tial)f +(searc)o(hes,)h(while)f(the)g(fourth)g(quartile)f(represen)o(ts)k(the)e +(largest)f(sequen)o(tial)g(searc)o(hes.)62 1942 y(In)h(Figure)g(11,)f +(w)o(e)h(see)h(the)f(relativ)o(e)g(size)g(of)g(eac)o(h)g(of)f(the)h(o)o +(v)o(erheads)h(describ)q(ed)g(earlier.)21 b(The)16 b(results)g(for)e +(Key)o(ano)0 1992 y(are,)g(in)f(man)o(y)f(w)o(a)o(ys,)h(the)i(most)e +(encouraging)g(of)h(the)g(three)h(programs)e(tested.)62 +2042 y(There)19 b(is)e(a)g(lo)o(w)f(searc)o(h)i(o)o(v)o(erhead)g(whic)o +(h)f(increases)i(sligh)o(tly)d(as)h(w)o(e)g(go)g(from)e(4)i(to)g(16)g +(pro)q(cessors.)30 b(The)18 b(paral-)0 2092 y(lelization)e(o)o(v)o +(erhead)h(is)g(not)g(large.)27 b(Key)o(ano)17 b(w)o(en)o(t)h(from)d(in) +o(v)o(estigating)h(8700)g(no)q(des)i(p)q(er)f(second)i(in)d(the)i +(sequen)o(tial)0 2141 y(program)11 b(to)h(in)o(v)o(estigating)f(b)q(et) +o(w)o(een)j(7400)e(to)g(7600)f(no)q(des)j(p)q(er)f(second)g(in)f(the)h +(APHID)g(v)o(ersion)g(of)f(the)h(program.)j(The)0 2191 +y(only)f(o)o(v)o(erhead)h(that)f(increases)i(rapidly)e(is)h(the)g(sp)q +(eculativ)o(e)g(searc)o(h)h(o)o(v)o(erhead,)e(but)h(this)g(is)f(not)h +(a)f(concern)i(during)e(a)0 2241 y(tournamen)o(t)e(game)f(\(as)i +(previously)g(stated\).)62 2291 y(W)m(eill)g(tested)k(YBW)e(and)f(ABD)o +(AD)o(A)h(on)f(a)h(CM-5)f(using)h(a)f(di\013eren)o(t)i(Othello)f +(program)e([29)o(].)23 b(YBW)16 b(ac)o(hiev)o(ed)g(a)0 +2341 y(9.5-fold)c(sp)q(eedup)17 b(and)d(ABD)o(AD)o(A)h(ac)o(hiev)o(ed)f +(a)h(11-fold)e(sp)q(eedup)j(on)e(16)g(pro)q(cessors.)23 +b(Although)14 b(the)h(APHID)g(results)0 2391 y(are)d(not)f(as)h(go)q(o) +q(d,)f(they)h(w)o(ere)h(ac)o(hiev)o(ed)f(without)f(a)g(shared)i(transp) +q(osition)e(table.)17 b(Both)12 b(ABD)o(AD)o(A)f(and)h(YBW)g(will)e +(get)0 2440 y(p)q(o)q(or)16 b(p)q(erformance)f(on)h(a)f(net)o(w)o(ork)h +(of)f(w)o(orkstations,)g(since)i(the)f(shared)g(transp)q(osition)g +(table)f(is)h(critical)f(to)h(e\013ectiv)o(e)0 2490 y(mo)o(v)o +(e-ordering)c(and)i(limiting)c(the)15 b(searc)o(h)g(o)o(v)o(erhead.)p +0 2525 780 2 v 46 2552 a Fd(7)64 2563 y Fg(Bey)o(ond)d(mo)o(v)o(e)h +(38,)h(Key)o(ano)f(w)o(ould)h(attempt)e(endgame)g(searc)o(hes)g(b)q +(efore)h(completing)e(a)j(12-ply)e(sequen)o(tial)g(searc)o(h.)22 +b(Mo)o(v)o(e)14 b(1)g(in)g(an)0 2603 y(Othello)c(game)h(is)g +(completely)d(symmetric,)h(and)i(Key)o(ano)f(do)q(es)h(not)f(searc)o(h) +g(for)h(the)g(\014rst)g(mo)o(v)o(e)f(in)h(the)g(game.)954 +2790 y Fk(14)p eop +%%Page: 15 17 +15 16 bop 38 0 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 38 0 a +%%BeginDocument: graph5.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 813 M +63 0 V +6066 0 R +-63 0 V +756 813 M +(1) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 1736 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 3584 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4507 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(9) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +840 351 M +2066 2198 L +3292 4045 L +613 924 V +LT1 +6486 4626 M +(d=5) Rshow +6570 4626 M +252 0 V +2066 702 M +3292 854 L +1225 33 V +1226 60 V +6654 4626 D +2066 702 D +3292 854 D +4517 887 D +5743 947 D +LT2 +6486 4486 M +(d=6) Rshow +6570 4486 M +252 0 V +2066 924 M +1226 374 V +1225 212 V +1226 240 V +6654 4486 A +2066 924 A +3292 1298 A +4517 1510 A +5743 1750 A +LT3 +6486 4346 M +(d=7) Rshow +6570 4346 M +252 0 V +2066 914 M +1226 531 V +1225 393 V +1226 439 V +6654 4346 B +2066 914 B +3292 1445 B +4517 1838 B +5743 2277 B +LT4 +6486 4206 M +(d=8) Rshow +6570 4206 M +252 0 V +2066 1011 M +1226 804 V +1225 702 V +1226 614 V +6654 4206 C +2066 1011 C +3292 1815 C +4517 2517 C +5743 3131 C +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 975 0 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 975 0 a +%%BeginDocument: graph6.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 813 M +63 0 V +6066 0 R +-63 0 V +756 813 M +(1) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 1736 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 3584 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4507 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(9) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +840 351 M +2066 2198 L +3292 4045 L +613 924 V +LT1 +6486 4626 M +(Small) Rshow +6570 4626 M +252 0 V +2066 979 M +1226 637 V +1225 559 V +1226 513 V +6654 4626 D +2066 979 D +3292 1616 D +4517 2175 D +5743 2688 D +LT2 +6486 4486 M +(Medium) Rshow +6570 4486 M +252 0 V +2066 951 M +1226 836 V +1225 545 V +1226 647 V +6654 4486 A +2066 951 A +3292 1787 A +4517 2332 A +5743 2979 A +LT3 +6486 4346 M +(Large) Rshow +6570 4346 M +252 0 V +2066 1058 M +1226 803 V +1225 827 V +1226 605 V +6654 4346 B +2066 1058 B +3292 1861 B +4517 2688 B +5743 3293 B +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 261 751 a Fk(Figure)14 b(12:)j Ff(TheTurk)e Fk(-)e(Sp)q(eedups)j(b)o +(y)e(Depth)g(of)f(Searc)o(h)i(and)f(Sequen)o(tial)f(T)m(ree)i(Size)38 +809 y + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 38 809 a +%%BeginDocument: graph4.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(50) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(150) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(200) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(250) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(300) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(350) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(400) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 1367 M +1226 91 V +1225 72 V +1226 69 V +6654 4766 D +2066 1367 D +3292 1458 D +4517 1530 D +5743 1599 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 515 M +1226 24 V +1225 53 V +1226 66 V +6654 4626 A +2066 515 A +3292 539 A +4517 592 A +5743 658 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 387 M +1226 9 V +1225 15 V +1226 10 V +6654 4486 B +2066 387 B +3292 396 B +4517 411 B +5743 421 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 735 M +3292 516 L +4517 456 L +5743 428 L +6654 4346 C +2066 735 C +3292 516 C +4517 456 C +5743 428 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 2416 M +3292 2107 L +1225 45 V +1226 113 V +6654 4206 T +2066 2416 T +3292 2107 T +4517 2152 T +5743 2265 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 975 809 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 975 809 a +%%BeginDocument: graph4c.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 771 M +63 0 V +6066 0 R +-63 0 V +756 771 M +(20) Rshow +840 1191 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(40) Rshow +840 1610 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(60) Rshow +840 2030 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(80) Rshow +840 2450 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 2870 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(120) Rshow +840 3290 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(140) Rshow +840 3710 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(160) Rshow +840 4129 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(180) Rshow +840 4549 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(200) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(220) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 2198 M +1226 166 V +1225 130 V +1226 126 V +6654 4766 D +2066 2198 D +3292 2364 D +4517 2494 D +5743 2620 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 649 M +1226 44 V +1225 97 V +5743 909 L +6654 4626 A +2066 649 A +3292 693 A +4517 790 A +5743 909 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 416 M +1226 17 V +1225 27 V +1226 19 V +6654 4486 B +2066 416 B +3292 433 B +4517 460 B +5743 479 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 1050 M +3292 651 L +4517 542 L +5743 492 L +6654 4346 C +2066 1050 C +3292 651 C +4517 542 C +5743 492 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 4106 M +3292 3544 L +1225 82 V +1226 205 V +6654 4206 T +2066 4106 T +3292 3544 T +4517 3626 T +5743 3831 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 349 1561 a Fk(Figure)f(13:)j Ff(TheTurk)e Fk(-)e(Ov)o(erheads)j(and)d +(Magni\014ed)h(View)g(of)f(Ov)o(erheads)0 1693 y Fv(4.2)56 +b(TheT)-5 b(urk)18 b(\(April)g(1996\))0 1770 y Fk(The)13 +b(exp)q(erimen)o(ts)g(with)g Ff(TheTurk)p Fk(,)g(the)g(c)o(hess)h +(program)e(b)o(y)g(Andreas)i(Junghanns)f(and)g(Yngvi)f(Bjornsson,)h(w)o +(ere)h(run)0 1820 y(so)q(on)i(after)f(the)i(load)d(balancing)h(w)o(as)g +(inserted)i(in)o(to)e(the)h(APHID)g(library)m(.)22 b(Although)15 +b(it)g(w)o(as)h(unclear)g(whether)h(load)0 1869 y(balancing)10 +b(w)o(ould)g(b)q(e)i(necessary)h(with)e(the)g(APHID)g(library)g(when)g +(testing)h(the)f(program)f(with)h Ff(Key)m(ano)p Fk(,)i(the)e(necessit) +o(y)0 1919 y(for)j(load)e(balancing)h(in)h(other)g(games)f(suc)o(h)i +(as)f(c)o(hess)h(w)o(as)f(clear)g(to)g(the)g(authors.)62 +1969 y(T)m(o)d(test)j(the)e(program,)e(the)j(24)f(Bratk)o(o-Kop)q(ec)h +(p)q(ositions)e(w)o(ere)i(used.)18 b(Although)12 b(there)h(are)g(kno)o +(wn)e(problems)g(with)0 2019 y(these)18 b(p)q(ositions,)e(using)h(this) +f(test)i(set)g(allo)o(ws)d(for)h(comparison)f(with)i(other)g(w)o(ork.) +26 b(Eac)o(h)16 b(p)q(osition)g(w)o(as)h(searc)o(hed)h(to)0 +2069 y(depth)e Fj(d)c Fk(=)i(8,)g(while)h(the)g(master)g(con)o(trolled) +f(the)i(top)e Fj(d)928 2054 y Fa(0)953 2069 y Fk(=)f(3)i(ply)f(of)h +(the)g(tree,)h(since)g Fj(d)1447 2054 y Fa(0)1471 2069 +y Fk(=)e(4)g(w)o(as)h(not)g(feasible)f(giv)o(en)0 2118 +y(the)i(amoun)o(t)f(of)g(memory)e(on)j(the)g(SparcStations.)25 +b(Figure)16 b(12)f(represen)o(ts)k(the)d(sp)q(eedups)i(generated)f(b)o +(y)f Ff(TheTurk)p Fk(,)0 2168 y(while)d(Figure)h(13)g(giv)o(es)f(the)i +(o)o(v)o(erheads)g(in)e(the)h(parallel)f(program.)62 +2218 y(Although)d(the)h(results)g(presen)o(ted)h(here)g(for)e(c)o(hess) +h(are)g(promising,)d(w)o(e)j(b)q(eliev)o(e)f(that)h(b)q(etter)g +(results)h(can)e(b)q(e)h(ac)o(hiev)o(ed.)0 2268 y(The)16 +b(main)e(di\013erence)j(b)q(et)o(w)o(een)g(the)f(results)h(for)e +Ff(Key)m(ano)j Fk(and)e Ff(TheTurk)g Fk(rev)o(olv)o(e)f(around)h(the)g +(size)h(of)e(the)h(searc)o(h)0 2318 y(o)o(v)o(erhead.)62 +2368 y(W)m(e)e(ha)o(v)o(e)h(come)e(up)i(with)f(three)i(p)q(ossible)f(h) +o(yp)q(otheses)h(for)e(this)g(di\013erence.)22 b(The)15 +b(\014rst)g(is)g(that)f Ff(Key)m(ano)j Fk(do)q(es)e(not)0 +2417 y(use)g(quiescen)o(t)g(searc)o(h.)20 b(As)15 b(a)f(consequence,)i +(the)f(sizes)g(of)e(the)i(v)n(arious)f(pieces)h(of)f(w)o(ork)f(are)i +(more)e(predictable)i(in)f(size,)0 2467 y(and)h(Key)o(ano's)g(results)i +(did)e(not)g(need)h(load)e(balancing.)21 b(Load)15 b(balancing)f +(causes)j(searc)o(h)f(o)o(v)o(erhead)g(since)g(it)f(forces)h(a)0 +2517 y(new)11 b(pro)q(cessor)i(to)e(rep)q(eat)h(searc)o(hes)h(done)e(b) +o(y)g(a)g(di\013eren)o(t)h(pro)q(cessor.)19 b(The)11 +b(load)f(balancing)g(is)h(partially)e(resp)q(onsible)j(for)0 +2567 y(the)h(di\013erence)g(in)f(searc)o(h)h(o)o(v)o(erhead.)18 +b(The)12 b(second)h(p)q(ossible)g(reason)f(is)g(that)g(the)h(searc)o(h) +g(windo)o(ws)e(in)h(the)g(sla)o(v)o(es)g(can,)g(in)0 +2617 y(some)f(cases,)i(b)q(e)f(larger)f(than)h(the)g(minim)o(al)c +(windo)o(w)j(used)h(in)f(the)h(sequen)o(tial)g(program.)k(Although)11 +b(this)g(larger)h(windo)o(w)0 2666 y(is)i(common)d(to)j(b)q(oth)h +(parallel)e(implem)o(en)o(tations,)e(it)j(has)g(a)g(m)o(uc)o(h)f +(larger)h(e\013ect)i(on)e(the)h(size)g(of)e(the)i(trees)h(searc)o(hed)f +(in)954 2790 y(15)p eop +%%Page: 16 18 +16 17 bop 38 0 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 38 0 a +%%BeginDocument: graph8.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 813 M +63 0 V +6066 0 R +-63 0 V +756 813 M +(1) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 1736 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 3584 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4507 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(9) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +840 351 M +2066 2198 L +3292 4045 L +613 924 V +LT1 +6486 4626 M +(d=11) Rshow +6570 4626 M +252 0 V +2066 577 M +1226 28 V +1225 -5 V +1226 -4 V +6654 4626 D +2066 577 D +3292 605 D +4517 600 D +5743 596 D +LT2 +6486 4486 M +(d=13) Rshow +6570 4486 M +252 0 V +2066 739 M +3292 854 L +1225 10 V +5743 850 L +6654 4486 A +2066 739 A +3292 854 A +4517 864 A +5743 850 A +LT3 +6486 4346 M +(d=15) Rshow +6570 4346 M +252 0 V +2066 905 M +1226 291 V +1225 92 V +1226 107 V +6654 4346 B +2066 905 B +3292 1196 B +4517 1288 B +5743 1395 B +LT4 +6486 4206 M +(d=17) Rshow +6570 4206 M +252 0 V +2066 1034 M +1226 453 V +1225 277 V +1226 328 V +6654 4206 C +2066 1034 C +3292 1487 C +4517 1764 C +5743 2092 C +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 975 0 a + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 975 0 a +%%BeginDocument: graph9.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 813 M +63 0 V +6066 0 R +-63 0 V +756 813 M +(1) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 1736 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 3584 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4507 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(9) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +840 351 M +2066 2198 L +3292 4045 L +613 924 V +LT1 +6486 4626 M +(Small) Rshow +6570 4626 M +252 0 V +2066 434 M +3292 559 L +4517 790 L +1226 392 V +6654 4626 D +2066 434 D +3292 559 D +4517 790 D +5743 1182 D +LT2 +6486 4486 M +(Medium) Rshow +6570 4486 M +252 0 V +2066 683 M +3292 854 L +1225 407 V +1226 563 V +6654 4486 A +2066 683 A +3292 854 A +4517 1261 A +5743 1824 A +LT3 +6486 4346 M +(Large) Rshow +6570 4346 M +252 0 V +2066 605 M +3292 965 L +1225 665 V +1226 730 V +6654 4346 B +2066 605 B +3292 965 B +4517 1630 B +5743 2360 B +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 268 751 a Fk(Figure)14 b(14:)k Ff(Chinook)d Fk(-)f(Sp)q(eedups)h(b)o +(y)f(Depth)g(of)f(Searc)o(h)i(and)f(Sequen)o(tial)g(T)m(ree)g(Size)506 +809 y + 14796136 10419816 3289088 3289088 50651955 36443095 startTexFig + 506 809 a +%%BeginDocument: graph7.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(50) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(150) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(200) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(250) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(300) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(350) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(400) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +392 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 -69 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 1260 M +1226 407 V +1225 366 V +1226 29 V +6654 4766 D +2066 1260 D +3292 1667 D +4517 2033 D +5743 2062 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 485 M +3292 948 L +1225 411 V +1226 347 V +6654 4626 A +2066 485 A +3292 948 A +4517 1359 A +5743 1706 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 425 M +1226 8 V +1225 9 V +1226 9 V +6654 4486 B +2066 425 B +3292 433 B +4517 442 B +5743 451 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 735 M +3292 516 L +4517 456 L +5743 428 L +6654 4346 C +2066 735 C +3292 516 C +4517 456 C +5743 428 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 2314 M +1226 636 V +1225 772 V +1226 371 V +6654 4206 T +2066 2314 T +3292 2950 T +4517 3722 T +5743 4093 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 671 1561 a Fk(Figure)g(15:)j Ff(Chinook)e Fk(-)f(Ov)o(erheads)0 +1693 y Ff(TheTurk)i Fk(than)f(in)g Ff(Key)m(ano)p Fk(.)25 +b(The)15 b(third)h(h)o(yp)q(othesis)g(is)f(that)g(the)h(game)e(of)h(c)o +(hess)i(has)e(more)f(transp)q(ositions)i(than)0 1743 +y(the)f(game)e(of)g(Othello.)19 b(Th)o(us,)14 b(the)h(information)d +(de\014ciency)j(caused)h(b)o(y)e(doing)f(the)i(searc)o(h)h(on)e(m)o +(ultiple)e(pro)q(cessors)k(is)0 1793 y(greater)f(in)e(c)o(hess)j(than)e +(in)f(Othello.)62 1843 y(Other)f(results)f(for)f(parallel)f(searc)o(h)j +(algorithms)c(on)i(a)g(net)o(w)o(ork)h(of)e(w)o(orkstations)h(ha)o(v)o +(e)h(b)q(een)g(presen)o(ted)i(for)d(the)g(game)0 1892 +y(of)k(c)o(hess)h([24].)j(A)d(distributed)g(transp)q(osition)f(table)g +(w)o(as)g(used)h(to)g(impro)o(v)o(e)d(the)j(p)q(erformance)f(of)g(the)h +Ff(P)l(araPhoenix)0 1942 y Fk(c)o(hess)c(searc)o(hes,)h(and)e(a)f(sp)q +(eedup)j(of)d(7)g(w)o(as)h(ac)o(hiev)o(ed)g(on)f(16)h(pro)q(cessors.)19 +b(Although)9 b(these)i(results)g(are)f(marginally)c(b)q(etter)0 +1992 y(than)14 b(the)g(results)h(presen)o(ted)h(here,)e(the)h +(scalabilit)o(y)d(of)h(the)h(algorithm)e(w)o(as)h(extrap)q(olated)h(to) +g(a)f(sp)q(eedup)j(of)d(at)h(most)e(8)0 2042 y(on)g(32)f(pro)q +(cessors.)20 b(Based)13 b(on)f(the)g(graphs)h(presen)o(ted)h(earlier)e +(in)g(this)g(section,)h(w)o(e)f(b)q(eliev)o(e)g(the)h(APHID)f +(algorithm)d(will)0 2092 y(outp)q(erform)16 b(on)g(a)g(larger)h(n)o(um) +o(b)q(er)f(of)g(pro)q(cessors.)28 b(The)17 b(b)q(ene\014cial)g +(e\013ects)i(of)d(the)h(distributed)h(transp)q(osition)e(table)0 +2141 y(are)i(deriv)o(ed)g(primarily)d(in)j(the)g(top)g(plies)f(of)g +(the)i(searc)o(h)g(tree,)g(and)f(these)h(b)q(ene\014ts)g(are)f +(duplicated)g(in)f(APHID)h(b)o(y)0 2191 y(main)o(taining)10 +b(the)15 b(top)f Fj(d)397 2176 y Fa(0)422 2191 y Fk(ply)f(exclusiv)o +(ely)h(on)g(the)g(master)g(pro)q(cessor.)0 2307 y Fv(4.3)56 +b(Chino)r(ok)18 b(\(June)g(1996\))0 2384 y Fk(Due)10 +b(to)g(resource)i(limitations,)c(w)o(e)i(could)g(not)g(run)g(the)h(exp) +q(erimen)o(ts)f(with)g Ff(Chinook)h Fk(un)o(til)e(late)h(June.)18 +b(The)10 b(b)q(enc)o(hmark)0 2434 y(p)q(ositions)g(used)h(are)f(a)g +(series)h(of)f(p)q(ositions)f(whic)o(h)h Ff(Chinook)i +Fk(has)e(misev)n(aluated)e(in)i(previous)g(tournamen)o(t)f(games.)16 +b(Eac)o(h)0 2484 y(of)d(these)j(p)q(ositions)d(w)o(as)h(searc)o(hed)i +(to)d Fj(d)e Fk(=)h(17)i(ply)m(,)e(while)h(the)i(master)e(con)o +(trolled)h(the)g(top)g Fj(d)1513 2469 y Fa(0)1536 2484 +y Fk(=)e(6)h(ply)h(of)f(the)i(tree.)62 2534 y(Figures)g(14)e(and)h(15)f +(sho)o(w)h(the)g(sp)q(eedups)i(and)e(o)o(v)o(erheads)h(for)e +(parallelism)e(in)j Ff(Chinook)p Fk(.)62 2583 y(This)f(o)o(v)o(erhead)h +(mo)q(del)d(hea)o(vily)i(relies)g(on)g(the)h(fact)f(that)g(the)h(a)o(v) +o(erage)f(no)q(de)h(cost)f(is)g(constan)o(t)h(o)o(v)o(er)f(the)h(en)o +(tire)g(test)0 2633 y(set.)19 b(F)m(or)12 b Ff(Key)m(ano)j +Fk(and)e Ff(TheTurk)p Fk(,)g(this)g(is)g(generally)f(true;)i(the)f(n)o +(um)o(b)q(er)f(of)h(no)q(des)g(p)q(er)h(second)g(visited)f(v)n(aries)g +(b)o(y)f(no)0 2683 y(more)g(than)h(5\045.)j(Ho)o(w)o(ev)o(er,)d(this)g +(is)g(not)g(true)g(for)g Ff(Chinook)p Fk(.)19 b(The)13 +b(n)o(um)o(b)q(er)f(of)g(no)q(des)i(p)q(er)f(second)h(visited)f(v)n +(aries)g(b)o(y)f(at)954 2790 y(16)p eop +%%Page: 17 19 +17 18 bop 0 42 a Fk(least)13 b(30\045,)e(due)i(to)f(n)o(umerous)f +(time-sa)o(ving)f(tric)o(ks)j(in)f(the)h(co)q(de.)18 +b(Th)o(us,)13 b(the)g(analysis)e(of)h(the)h(o)o(v)o(erheads)g(for)f +Ff(Chinook)0 91 y Fk(is)i(not)g(as)g(reliable)f(as)h(it)f(is)h(for)g +(the)g(other)h(programs)d(giv)o(en)i(in)f(this)h(tec)o(hnical)g(rep)q +(ort.)62 141 y(In)i(an)o(y)f(case,)i(there)g(are)g(ob)o(vious)e +(problems)f(with)i(the)g(parallelization)e(in)i Ff(Chinook)p +Fk(.)25 b(Unlik)o(e)15 b(the)h(previous)g(t)o(w)o(o)0 +191 y(programs,)d(w)o(e)h(see)i(that)e(the)h(APHID)g(algorithm)c(in)j +Ff(Chinook)i Fk(incurs)f(a)f(lot)g(of)f(additional)g(sp)q(eculativ)o(e) +i(searc)o(h,)g(and)0 241 y(a)e(rapidly)g(increasing)h(searc)o(h)h(o)o +(v)o(erhead.)k(The)14 b(n)o(um)o(b)q(er)f(of)g(pieces)i(of)e(w)o(ork)h +(at)f(depth)i Fj(d)1429 226 y Fa(0)1452 241 y Fk(=)d(6)h(w)o(as)h +(insu\016cien)o(t)g(to)f(k)o(eep)0 291 y(a)j(large)g(n)o(um)o(b)q(er)f +(of)g(sla)o(v)o(es)h(busy)m(.)25 b(Ho)o(w)o(ev)o(er,)16 +b(when)h(testing)f Fj(d)1032 276 y Fa(0)1059 291 y Fk(=)f(8)h(ply)m(,)f +(w)o(e)h(disco)o(v)o(ered)h(that)f(serious)h(in\015exibilities)0 +340 y(w)o(ere)h(encoun)o(tered,)i(prev)o(en)o(ting)e(us)f(from)f +(running)h(a)g(full)f(test)i(set)h(without)e(remo)o(ving)e(the)j +(transp)q(osition)f(table)g(in)0 390 y Ff(Chinook)p Fk(.)26 +b(As)16 b(w)o(ell,)g(the)g(impact)f(of)g(transp)q(ositions)i(in)e(the)i +(game)e(of)g(c)o(hec)o(k)o(ers)j(is)e(m)o(uc)o(h)f(more)g(imp)q(ortan)o +(t)f(than)i(in)0 440 y(either)e(c)o(hess)g(or)e(Othello.)18 +b(This)12 b(causes)i(the)g(searc)o(h)f(o)o(v)o(erhead)g(to)g(increase)h +(at)e(a)h(m)o(uc)o(h)e(faster)j(rate)f(for)f Ff(Chinook)i +Fk(than)0 490 y(either)h(of)e(the)h(previous)h(test)g(programs.)62 +540 y(Although)d(the)i(sp)q(eedups)h(are)e(v)o(ery)g(lo)o(w)f(in)g +(magnitude,)f(parallelizing)g(a)h(high-p)q(erformance)g(c)o(hec)o(k)o +(ers)j(programs)c(is)0 589 y(a)h(v)o(ery)i(di\016cult)e(task.)17 +b(P)o(aul)c(Lu)f(sp)q(en)o(t)i(o)o(v)o(er)f(a)f(y)o(ear)h(w)o(orking)f +(on)g(the)i(tournamen)o(t)e(v)o(ersion)g(of)h(parallel)e +Ff(Chinook)j Fk(and)0 639 y(ac)o(hiev)o(ed)g(sp)q(eedups)i(of)d(3.32)f +(using)i(a)f(shared-memory)f(system)i(with)f(16)g(pro)q(cessors)j([16)o +(].)i(The)c(v)o(ery)g(thin)f(game)f(trees)0 689 y(of)i(c)o(hec)o(k)o +(ers)j(do)e(not)g(yield)f(easily)h(to)g(parallelism)d(based)k(on)f(the) +g(critical)g(tree.)23 b(The)15 b(authors)g(b)q(eliev)o(e)h(that)f(when) +g(the)0 739 y(APHID)f(library)f(is)h(mo)q(di\014ed)e(to)i(address)h +(these)h(problems,)c(the)j(APHID)f(library)f(should)g(yield)h(a)f(b)q +(etter)j(sp)q(eedup)f(for)0 789 y(Chino)q(ok.)0 926 y +Fl(5)67 b(Conclusions)22 b(and)h(F)-6 b(uture)24 b(W)-6 +b(ork)0 1017 y Fk(The)14 b(APHID)f(algorithm)e(yields)i(go)q(o)q(d)g +(sp)q(eedups)i(on)e(a)g(net)o(w)o(ork)g(of)g(w)o(orkstations)g(without) +g(the)h(necessit)o(y)g(of)f(a)g(shared)0 1067 y(transp)q(osition)g +(table.)18 b(Although)13 b(the)i(authors)f(are)g(pleased)g(with)f +(these)i(preliminary)c(results,)k(a)e(lot)g(of)g(w)o(ork)g(is)h(left)f +(to)0 1117 y(b)q(e)i(done.)62 1166 y(As)d(men)o(tioned)e(in)h(Section)h +(4.3,)e(the)i(secondary)g(in)o(terface)g(and)f(underlying)g(co)q(de)h +(within)e(the)i(APHID)f(library)g(m)o(ust)0 1216 y(b)q(e)k(\014xed)f +(to)g(allo)o(w)e(for)h(greater)i(parallelism.)62 1266 +y(Our)e(curren)o(t)h(implemen)o(tation)9 b(of)j(APHID)g(uses)i(a)e +(\014xed-depth)h(horizon)g(for)f(the)h(master's)e(tree.)19 +b(As)13 b(men)o(tioned)e(in)0 1316 y(our)i(discussion)h(of)f(load)f +(balancing,)g(all)g(p)q(ositions)h(are)h(not)f(equal)g(in)g(the)h +(amoun)o(t)e(of)h(searc)o(h)h(e\013ort)g(they)g(require)g(for)f(a)0 +1366 y(\014xed)h(depth)h(of)e(searc)o(h.)19 b(APHID)14 +b(will)f(b)q(e)h(generalized)h(to)f(supp)q(ort)g(a)g(more)f(dynamic)f +(searc)o(h)j(horizon)f(in)f(the)i(master.)62 1415 y(Instead)f(of)e +(basing)h(the)g(results)i(of)d(the)i(algorithm)c(on)j(the)g(sp)q +(eedup,)i(w)o(e)e(are)g(also)g(in)o(terested)h(in)f(the)g(qualit)o(y)f +(of)g(the)0 1465 y(results)g(returned)g(b)o(y)e(the)h(algorithm.)j +(This)d(will)e(b)q(e)i(necessary)i(when)e(the)g(algorithm)d(is)i +(tested)i(b)q(ey)o(ond)f(the)g(\014xed-depth)0 1515 y(limitations)f +(giv)o(en)i(here.)18 b(The)13 b(b)q(ene\014ts)i(and)d(disadv)n(an)o +(tages)g(of)g(these)i(alternativ)o(e)f(views)g(of)f(parallel)f(p)q +(erformance)i(are)0 1565 y(curren)o(tly)i(b)q(eing)f(explored.)62 +1615 y(The)h(results)g(rep)q(orted)h(here)f(are)g(based)g(on)e(a)h +(simple)f(master/sla)o(v)o(e)g(relationship.)18 b(As)d(the)g(n)o(um)o +(b)q(er)e(of)h(pro)q(cessors)0 1664 y(increases,)f(the)f(master)f +(increasingly)h(b)q(ecomes)f(a)h(b)q(ottlenec)o(k.)18 +b(APHID)11 b(has)h(b)q(een)h(generalized)f(to)f(w)o(ork)h(in)f(a)g +(hierarc)o(hi-)0 1714 y(cal)j(pro)q(cess)j(tree,)e(although)f(this)h +(asp)q(ect)h(of)e(the)h(algorithm)d(has)j(not)f(b)q(een)i(tested)g +(here.)22 b(Mid-lev)o(el)13 b(pro)q(cesses)18 b(w)o(ould)0 +1764 y(b)q(eha)o(v)o(e)c(as)f(a)g(sla)o(v)o(e)g(to)o(w)o(ard)g(their)h +(master,)e(and)i(as)f(a)g(master)g(to)o(w)o(ard)g(their)h(sla)o(v)o +(es.)j(The)d(scalabilit)o(y)e(of)h(the)h(algorithm)0 +1814 y(has)g(y)o(et)h(to)f(b)q(e)h(demonstrated)f(on)g(arc)o +(hitectures)i(of)e(more)f(than)h(16)g(pro)q(cessors,)i(due)f(to)f +(resource)i(limitations)11 b(during)0 1864 y(the)j(academic)f(y)o(ear.) +62 1914 y(P)o(erhaps)i(the)e(biggest)h(con)o(tribution)f(of)f(APHID)i +(is)f(that)g(it)g(easily)g(\014ts)h(in)f(to)g(an)g(existing)g(sequen)o +(tial)g Fj(\013\014)j Fk(program.)0 1963 y(Although)e(the)h(\014rst)h +(stage)f(of)f(the)h(exp)q(erimen)o(t)f(uses)i(programs)d(written)j(at)e +(the)h(Univ)o(ersit)o(y)g(of)f(Alb)q(erta,)g(the)i(authors)0 +2013 y(b)q(eliev)o(e)e(that)h(the)f(same)g(ease)h(of)e(in)o(tegration)h +(will)e(b)q(e)j(demonstrated)f(in)g(the)h(second)g(stage)g(of)e(the)i +(exp)q(erimen)o(t,)e(when)0 2063 y(the)h(APHID)h(library)e(is)g(giv)o +(en)h(to)g(b)q(eta-testers)i(outside)e(of)f(the)i(Univ)o(ersit)o(y)f +(of)f(Alb)q(erta.)0 2200 y Fl(6)67 b(Ac)n(kno)n(wledgemen)n(ts)0 +2291 y Fk(Man)o(y)10 b(p)q(eople)h(ha)o(v)o(e)f(con)o(tributed)h(to)f +(the)h(success)i(of)d(this)h(pro)r(ject.)18 b(W)m(e)10 +b(w)o(ould)f(lik)o(e)h(to)g(thank)g(the)h(other)g(mem)o(b)q(ers)f(of)f +(the)0 2341 y(Univ)o(ersit)o(y)k(of)f(Alb)q(erta)h(GAMES)g(group)f(for) +h(n)o(umerous)f(discussions)h(and)g(impro)o(v)o(emen)o(ts)d(to)j(the)g +(presen)o(tation)h(of)e(this)0 2391 y(pap)q(er)h(and)f(the)h(library:)k +(Yngvi)12 b(Bjornsson,)h(Y)m(ao)q(qing)e(Gao,)g(Andreas)i(Junghanns,)g +(T)m(on)o(y)e(Marsland)i(and)f(Ask)o(e)h(Plaat.)0 2441 +y(W)m(e)i(w)o(ould)f(also)g(lik)o(e)h(to)g(thank)g(P)o(aul)f(Lu)h(for)g +(his)g(commen)o(ts)e(on)i(the)h(APHID)f(library)m(,)f(and)h(the)h +(Computing)d(Science)0 2490 y(Instructional)20 b(Supp)q(ort)h(Group)f +(at)h(the)g(Univ)o(ersit)o(y)f(of)g(Alb)q(erta)g(for)g(giving)f(us)i +(the)g(computer)f(time)f(for)h(running)0 2540 y(the)f(exp)q(erimen)o +(ts.)32 b(W)m(e)19 b(w)o(ould)e(also)h(lik)o(e)g(to)g(thank)h(the)g +(anon)o(ymous)e(referees)j(that)f(ha)o(v)o(e)f(help)q(ed)i(us)f(impro)o +(v)o(e)d(the)0 2590 y(presen)o(tation)f(of)e(p)q(ortions)h(of)f(this)h +(do)q(cumen)o(t.)62 2640 y(This)g(w)o(ork)g(w)o(as)f(supp)q(orted)j(b)o +(y)d(the)i(Natural)e(Sciences)j(and)e(Engineering)g(Researc)o(h)h +(Council)e(of)g(Canada.)954 2790 y(17)p eop +%%Page: 18 20 +18 19 bop 0 42 a Fl(References)21 124 y Fk([1])19 b(M.)f(G.)f(Bro)q(c)o +(kington.)30 b(A)19 b(Taxonom)o(y)c(of)j(Parallel)f(Game-Tree)g(Searc)o +(h)i(Algorithms.)28 b Fi(ICCA)18 b(Journal)p Fk(,)h(19\(3\),)85 +166 y(1996.)e(In)d(press.)21 240 y([2])19 b(M.)13 b(G.)f(Bro)q(c)o +(kington)h(and)f(J.)h(Sc)o(hae\013er.)18 b(APHID)13 b(Game)e(Tree)j +(Searc)o(h.)j(In)c Fi(A)n(dvanc)n(es)i(in)f(Computer)g(Chess)g(VIII)p +Fk(,)85 282 y(Maastric)o(h)o(t,)g(The)g(Netherlands,)h(June)g(1996.)i +(In)c(press.)21 357 y([3])19 b(M.)11 b(G.)g(Bro)q(c)o(kington)g(and)h +(J.)f(Sc)o(hae\013er.)16 b(The)c(APHID)f(Parallel)g Fj(\013\014)j +Fk(Searc)o(h)e(Algorithm.)g(In)f Fi(Pr)n(o)n(c)n(e)n(e)n(dings)i(of)g +(IEEE)85 398 y(SPDP)j('96)p Fk(,)e(New)g(Orleans,)g(Louisiana,)e(Octob) +q(er)k(1996.)h(In)d(press.)21 473 y([4])19 b(V.)12 b(Da)o(vid.)h +Fi(A)o(lgorithmique)f(p)n(ar)n(al)r(l)o(\022)-20 b(ele)12 +b(sur)h(les)g(arbr)n(es)f(de)i(d)o(\023)-20 b(ecision)13 +b(et)g(r)n(aisonnement)g(en)h(temps)f(c)n(ontr)n(aint)g(-)f(Etude)85 +514 y(et)j(applic)n(ation)g(au)h(minimax)p Fk(.)i(PhD)13 +b(thesis,)i(ENSAE,)f(T)m(oulouse,)f(F)m(rance,)h(1993.)21 +589 y([5])19 b(R.)34 b(F)m(eldmann.)78 b Fi(Spielb)n(aumsuche)35 +b(mit)e(massiv)h(p)n(ar)n(al)r(lelen)g(Systemen)p Fk(.)80 +b(PhD)35 b(thesis,)40 b(Univ)o(ersit\177)-21 b(at-)85 +631 y(Gesam)o(tho)q(c)o(hsc)o(h)o(ule)13 b(P)o(aderb)q(orn,)h(P)o +(aderb)q(orn,)g(German)o(y)m(,)c(Ma)o(y)j(1993.)j(In)d(German)f({)h +(English)g(translation)f(a)o(v)n(ail-)85 672 y(able.)21 +747 y([6])19 b(E.)f(W.)e(F)m(elten)i(and)f(S.)h(W.)e(Otto.)29 +b(Chess)19 b(on)f(a)f(Hyp)q(ercub)q(e.)31 b(In)17 b(G.)g(F)m(o)o(x,)g +(editor,)h Fi(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(The)f(Thir)n(d)85 +788 y(Confer)n(enc)n(e)13 b(on)g(Hyp)n(er)n(cub)n(e)f(Concurr)n(ent)h +(Computers)f(and)h(Applic)n(ations)p Fk(,)e(v)o(olume)f(I)q +(I-Applications,)h(pages)g(1329{)85 830 y(1341,)i(P)o(assadena,)h(CA,)f +(1988.)21 905 y([7])19 b(C.)c(F)m(erguson)h(and)g(R.)f(E.)g(Korf.)23 +b(Distributed)16 b(T)m(ree)g(Searc)o(h)h(and)e(its)h(Application)f(to)g +(Alpha-Beta)h(Pruning.)23 b(In)85 946 y Fi(Pr)n(o)n(c)n(e)n(e)n(dings) +15 b(of)g(AAAI-88)p Fk(,)e(pages)h(128{132,)e(Sain)o(t)h(P)o(aul,)g +(MN,)h(August)g(1988.)21 1021 y([8])19 b(F.)14 b(Hsu.)k(Priv)n(ate)c +(comm)o(unication,)c(1996.)21 1095 y([9])19 b(F.-h.)c(Hsu.)22 +b Fi(L)n(ar)n(ge)16 b(Sc)n(ale)g(Par)n(al)r(lelization)f(of)h(A)o +(lpha-Beta)h(Se)n(ar)n(ch:)k(A)o(n)c(A)o(lgorithmic)d(and)j(A)o(r)n +(chite)n(ctur)n(al)e(Study)p Fk(.)85 1137 y(PhD)g(thesis,)h(Carnegie)g +(Mellon)e(Univ)o(ersit)o(y)m(,)g(Pittsburgh,)i(U.S.A.,)e(1990.)20 +b(Also)15 b(T)m(ec)o(h.)g(Rept.)g(CMU-CS-90-108,)85 1179 +y(Carnegie)f(Mellon)g(Univ)o(ersit)o(y)m(,)f(F)m(eb.)g(1990.)0 +1253 y([10])19 b(R.)11 b(M.)h(Hy)o(att,)g(B.)g(W.)f(Suter,)i(and)e(H.)h +(L.)f(Nelson.)16 b(A)c(P)o(arallel)f(Alpha/Beta)h(T)m(ree)g(Searc)o +(hing)g(Algorithm.)h Fi(Par)n(al)r(lel)85 1295 y(Computing)p +Fk(,)h(10\(3\):299{308,)d(1989.)0 1369 y([11])19 b(L.)d(Kaufman.)24 +b(Rate)16 b(Your)h(Own)g(Computer.)24 b Fi(Computer)17 +b(Chess)h(R)n(ep)n(orts)p Fk(,)e(3\(1\):17{19,)f(1992.)24 +b(\(Published)17 b(b)o(y)85 1411 y(ICD,)c(21)h(W)m(alt)e(Whitman)g +(Rd.,)g(Hun)o(tington)i(Station,)f(NY)h(11746.\).)0 1486 +y([12])19 b(L.)14 b(Kaufman.)i(Rate)e(Your)g(Own)g(Computer)f(-)h(Part) +g(I)q(I.)k Fi(Computer)c(Chess)h(R)n(ep)n(orts)p Fk(,)e(3\(2\):13{15,)f +(1993.)0 1560 y([13])19 b(D.)10 b(E.)g(Kn)o(uth)g(and)g(R.)g(W.)f(Mo)q +(ore.)j(An)f(Analysis)e(of)h(Alpha-Beta)g(Pruning.)i +Fi(A)o(rti\014cial)f(Intel)r(ligenc)n(e)p Fk(,)f(6\(3\):293{326,)85 +1602 y(1975.)0 1677 y([14])19 b(B.)14 b(C.)g(Kuszmaul.)k +Fi(Synchr)n(onize)n(d)e(MIMD)g(Computing)p Fk(.)k(PhD)14 +b(thesis,)h(Massac)o(h)o(usetts)h(Institute)f(of)f(T)m(ec)o(hnology)m +(,)85 1718 y(Cam)o(bridge,)e(MA,)i(1994.)0 1793 y([15])19 +b(C.-P)m(.)11 b(P)m(.)g(Lu.)j(P)o(arallel)d(Searc)o(h)h(of)f(Narro)o(w) +h(Game)e(Trees.)16 b(Master's)d(thesis,)f(Departmen)o(t)f(of)g +(Computing)f(Science,)85 1834 y(Univ)o(ersit)o(y)k(of)f(Alb)q(erta,)h +(Edmon)o(ton,)e(Canada,)h(1993.)0 1909 y([16])19 b(P)m(.)13 +b(Lu.)18 b(Priv)n(ate)c(comm)o(unication,)c(1996.)0 1984 +y([17])19 b(T.)11 b(A.)f(Marsland)h(and)g(M.)f(S.)h(Campb)q(ell.)g +(Parallel)f(Searc)o(h)i(of)e(Strongly)g(Ordered)j(Game)c(Trees.)15 +b Fi(A)o(CM)d(Computing)85 2025 y(Surveys)p Fk(,)i(14\(4\):533{551,)d +(1982.)0 2100 y([18])19 b(T.)c(A.)g(Marsland,)g(M.)g(Olafsson,)g(and)g +(J.)g(Sc)o(hae\013er.)24 b(Multipro)q(cessor)17 b(Tree-Searc)o(h)g(Exp) +q(erimen)o(ts.)22 b(In)16 b(D.)e(Beal,)85 2142 y(editor,)g +Fi(A)n(dvanc)n(es)h(in)g(Computer)g(Chess)g(4)p Fk(,)e(pages)i(37{51.)d +(P)o(ermagon)g(Press,)j(Oxford,)f(1985.)0 2216 y([19])19 +b(M.)14 b(M.)f(Newb)q(orn.)20 b(Unsync)o(hronized)15 +b(Iterativ)o(e)g(Deep)q(ening)f(P)o(arallel)f(Alpha-Beta)h(Searc)o(h.) +20 b Fi(IEEE)15 b(T)m(r)n(ansactions)85 2258 y(on)h(Pattern)e(A)o +(nalysis)h(and)h(Machine)g(Intel)r(ligenc)n(e)p Fk(,)d(P)m +(AMI-10\(5\):687{694,)d(1988.)0 2333 y([20])19 b(J.)c(P)o(earl.)21 +b(Asymptotic)14 b(Prop)q(erties)j(of)d(Minimax)e(Trees)17 +b(and)d(Game-Searc)o(hing)g(Pro)q(cedures.)23 b Fi(A)o(rti\014cial)15 +b(Intel)r(li-)85 2374 y(genc)n(e)p Fk(,)f(14:113{138,)d(1980.)0 +2449 y([21])19 b(A.)14 b(Plaat.)j Fi(R)n(ese)n(ar)n(ch)e(R)n(e:)7 +b(se)n(ar)n(ch)15 b(&)g(R)n(e-se)n(ar)n(ch)p Fk(.)i(PhD)d(thesis,)h +(Erasm)o(us)e(Univ)o(ersit)o(y)m(,)g(Rotterdam,)f(NL,)h(1996.)0 +2523 y([22])19 b(A.)f(Plaat,)g(J.)g(Sc)o(hae\013er,)i(W.)d(Pijls,)h +(and)f(A.)h(de)g(Bruin.)31 b(Exploiting)16 b(Graph)i(Prop)q(erties)i +(of)d(Game)f(Trees.)32 b(In)85 2565 y Fi(Pr)n(o)n(c)n(e)n(e)n(dings)15 +b(of)g(AAAI)f('96)p Fk(,)g(v)o(olume)e(1,)h(pages)h(234{239,)e(P)o +(ortland,)h(Oregon,)h(August)g(1996.)0 2640 y([23])19 +b(A.)14 b(Reinefeld.)k(An)c(Impro)o(v)o(emen)o(t)d(to)j(the)g(Scout)h +(Tree-Searc)o(h)g(Algorithm.)h Fi(ICCA)e(Journal)p Fk(,)g(6\(4\):4{14,) +d(1983.)954 2790 y(18)p eop +%%Page: 19 21 +19 20 bop 0 42 a Fk([24])19 b(J.)11 b(Sc)o(hae\013er.)k(Distributed)d +(Game-T)m(ree)e(Searc)o(hing.)j Fi(Journal)g(of)f(Par)n(al)r(lel)f(and) +i(Distribute)n(d)f(Computing)p Fk(,)f(6\(2\):90{)85 83 +y(114,)i(1989.)0 158 y([25])19 b(J.)11 b(Sc)o(hae\013er,)i(J.)d(Culb)q +(erson,)i(N.)e(T)m(reloar,)h(B.)g(Knigh)o(t,)f(P)m(.)g(Lu,)h(and)g(D.)f +(Szafron.)j(A)e(W)m(orld)f(Championship)e(Calib)q(er)85 +199 y(Chec)o(k)o(ers)16 b(Program.)g Fi(A)o(rti\014cial)e(Intel)r +(ligenc)n(e)p Fk(,)f(53\(2-3\):273{290,)e(1992.)0 274 +y([26])19 b(J.)d(J.)f(Scott.)24 b(A)16 b(Chess-Pla)o(ying)f(Program.)22 +b(In)16 b(B.)f(Meltzer)i(and)f(D.)f(Mic)o(hie,)g(editors,)h +Fi(Machine)i(Intel)r(ligenc)n(e)e(4)p Fk(,)85 315 y(pages)f(255{265.)c +(Edin)o(burgh)j(Univ)o(ersit)o(y)g(Press,)h(1969.)0 390 +y([27])k(D.)c(J.)g(Slate)g(and)h(L.)e(R.)h(A)o(tkin.)22 +b(Chess)16 b(4.5)f(-)g(The)h(North)o(w)o(estern)h(Univ)o(ersit)o(y)e +(Chess)i(Program.)j(In)c(P)m(.W.)e(F)m(rey)m(,)85 432 +y(editor,)g Fi(Chess)h(Skil)r(l)f(in)h(Man)h(and)f(Machine)p +Fk(,)g(pages)f(82{118.)e(Springer-V)m(erlag,)h(New)h(Y)m(ork,)f(1977.)0 +506 y([28])19 b(V.)e(Sunderam.)28 b(PVM:)17 b(A)h(F)m(ramew)o(ork)d +(for)i(P)o(arallel)g(Distributed)g(Computing.)26 b Fi(Concurr)n(ency:)g +(Pr)n(actic)n(e)17 b(and)85 548 y(Exp)n(erienc)n(e)p +Fk(,)d(2\(4\):315{339,)d(Decem)o(b)q(er)j(1990.)0 623 +y([29])19 b(J.-C.)25 b(W)m(eill.)51 b Fi(Pr)n(o)n(gr)n(ammes)25 +b(d')o(\023)-20 b(eche)n(cs)26 b(de)g(championnat:)41 +b(ar)n(chite)n(ctur)n(e)25 b(lo)n(giciel)r(le)f(synth)o(\022)-20 +b(ese)27 b(de)f(fonctions)85 664 y(d')o(\023)-20 b(evaluations,)15 +b(p)n(ar)n(al)r(l)o(\023)-20 b(elisme)14 b(de)h(r)n(e)n(cher)n(che)p +Fk(.)j(PhD)13 b(thesis,)i(Univ)o(ersit)o(\023)-20 b(e)14 +b(P)o(aris)g(8,)f(Jan)o(uary)h(1995.)954 2790 y(19)p +eop +%%Page: 20 22 +20 21 bop 0 42 a Fl(A)67 b(Description)23 b(of)f(APHID)f(In)n(terface)0 +141 y Fv(A.1)56 b(T)n(yp)r(es)18 b(of)h(Pro)r(cesses)f(within)g(APHID) +62 209 y Fh(\017)j Fb(absolute)f(master)p Fk(:)25 b(The)18 +b(single)g(pro)q(cess)h(whic)o(h)f(in)o(v)o(ok)o(es)g(all)e(other)j +(pro)q(cesses)h(within)e(the)g(APHID)g(pro)q(cess)104 +251 y(hierarc)o(h)o(y)m(,)13 b(whic)o(h)h(o)q(ccupies)h(the)f(highest)h +(lev)o(el)e(in)h(the)g(pro)q(cess)i(hierarc)o(h)o(y)m(.)62 +325 y Fh(\017)21 b Fb(slave)p Fk(:)g(An)o(y)16 b(pro)q(cess)i(that)e(m) +o(ust)f(rep)q(ort)i(its)f(searc)o(h)h(results)g(to)f(a)g(pro)q(cess)i +(ab)q(o)o(v)o(e)d(it)h(in)g(the)g(hierarc)o(h)o(y)m(.)25 +b(With)104 367 y(this)14 b(de\014nition,)f(a)g(pro)q(cess)j(is)e +(either)h(the)f(absolute)g(master)f(or)h(a)g(sla)o(v)o(e,)f(and)h +(cannot)g(b)q(e)g(b)q(oth.)62 442 y Fh(\017)21 b Fb(master)p +Fk(:)e(An)o(y)14 b(pro)q(cess)j(that)e(has)g(pro)q(cesses)j(underneath) +e(it)e(in)h(the)g(hierarc)o(h)o(y)m(.)21 b(Note)15 b(that)g(it)g(is)g +(p)q(ossible)g(for)f(a)104 483 y(pro)q(cess)h(to)f(b)q(e)h(b)q(oth)f(a) +f(master)h(and)f(a)h(sla)o(v)o(e)g(if)f(the)h(pro)q(cess)i(hierarc)o(h) +o(y)e(has)g(m)o(ultiple)e(lev)o(els.)0 599 y Fv(A.2)56 +b(Constan)n(ts)20 b(T)-5 b(o)19 b(Be)f(De\014ned)0 668 +y Fk(Since)c(the)h(library)e(is)h(application-indep)q(enden)o(t,)f +(some)g(de\014nitions)h(of)f(ho)o(w)g(things)h(are)h(implem)o(en)o(ted) +d(m)o(ust)h(b)q(e)h(giv)o(en)0 709 y(to)g(the)g(APHID)g(library)m(.)62 +792 y Fh(\017)21 b Fb(APHID)p 217 792 14 2 v 14 w(HASHTYPESIZE)p +Fk(:)11 b(The)k(size)f(\(in)g(b)o(ytes\))h(of)e(the)h(hash)g(v)n(alue)g +(used)h(in)e(y)o(our)h(program.)62 867 y Fh(\017)21 b +Fb(APHID)p 217 867 V 14 w(HASHKEYSIZE)p Fk(:)10 b(The)i(size)h(\(in)f +(b)o(ytes\))h(of)f(the)h(\\lo)q(c)o(k")e(used)i(to)f(guaran)o(tee)h +(that)f(t)o(w)o(o)g(p)q(ositions)f(sharing)h(the)104 +908 y(same)h(hash)h(v)n(alue)f(are)h(the)h(same.)62 983 +y Fh(\017)21 b Fb(APHID)p 217 983 V 14 w(MOVESIZE)p Fk(:)12 +b(The)i(size)h(\(in)f(b)o(ytes\))g(of)g(the)g(represen)o(tation)i(of)d +(a)h(mo)o(v)o(e)e(in)h(the)i(application.)62 1058 y Fh(\017)21 +b Fb(APHID)p 217 1058 V 14 w(MINUSINF)15 b Fk(and)h Fb(APHID)p +615 1058 V 15 w(PLUSINF)p Fk(:)e(Sp)q(eci\014cations)j(of)e(v)n(alues)h +(smaller)f(than)h(the)h(minim)n(um)o(,)c(and)j(larger)104 +1099 y(than)e(the)g(maxim)n(um)o(,)c(that)k(the)h(\\ev)n(aluation")d +(could)i(p)q(ossibly)f(return,)i(resp)q(ectiv)o(ely)m(.)62 +1174 y Fh(\017)21 b Fb(APHID)p 217 1174 V 14 w(INVALIDSCORE)p +Fk(:)13 b(A)j(v)n(alue)g(that)g(is)g(outside)g(the)g(range)h(represen)o +(ted)h(b)o(y)e(the)h(minim)n(um)11 b(and)16 b(maxim)n(um)104 +1215 y(v)n(alues)d(sp)q(eci\014ed)j(previously)m(.)62 +1290 y Fh(\017)21 b Fb(APHID)p 217 1290 V 14 w(LOG2)p +319 1290 V 15 w(TABSIZE)p Fk(:)16 b(The)j(size)g(of)e(the)i(APHID)f +(table)g(that)g(y)o(ou)g(in)o(tend)g(on)g(using)g(to)g(share)h(b)q(et)o +(w)o(een)g(the)104 1332 y(master)c(and)h(the)g(sla)o(v)o(es,)g(tak)o +(en)f(to)h(a)f(base)i(2)e(logarithm.)21 b(F)m(or)15 b(example,)g(a)g(v) +n(alue)g(of)g(14)g(indicates)h(an)g(APHID)104 1378 y(table)e(with)f(2) +323 1363 y Fe(14)370 1378 y Fk(=)e(16384)i(en)o(tries.)62 +1452 y Fh(\017)21 b Fb(APHID)p 217 1452 V 14 w(MAXSLAVEPLYSEARCH)p +Fk(:)7 b(The)j(maxim)o(um)c("plytogo")i(v)n(alue)i(that)g(y)o(ou)g +(could)g(p)q(ossibly)g(exp)q(ect)i(to)e(hand)g(to)g(a)104 +1494 y(sla)o(v)o(e)g(to)g(searc)o(h.)18 b(Note)10 b(that)g(this)h(v)n +(alue)e(should)h(not)g(b)q(e)h(excessiv)o(ely)g(large,)g(since)g(this)f +(and)g Fb(APHID)p 1683 1494 V 15 w(LOG2)p 1786 1494 V +14 w(TABSIZE)104 1535 y Fk(are)k(the)h(leading)e(determinan)o(ts)g(in)h +(the)g(amoun)o(t)e(of)h(memory)f(used)j(b)o(y)e(the)i(APHID)f(library)m +(.)62 1610 y Fh(\017)21 b Fb(APHID)p 217 1610 V 14 w +(MAXMASTERPLYSEARCH)p Fk(:)10 b(The)k(maxim)o(um)9 b(depth)15 +b(that)f(w)o(e)g(exp)q(ect)h(the)g(master)e(should)h(reac)o(h.)62 +1685 y Fh(\017)21 b Fb(APHID)p 217 1685 V 14 w(SLAVENODESTOCOMM)p +Fk(:)15 b(This)j(should)g(b)q(e)g(set)h(to)f(the)h(n)o(um)o(b)q(er)e +(of)h(no)q(des)h(that)f(the)g(sequen)o(tial)h(program)104 +1726 y(visits)13 b(on)h(the)h(t)o(yp)q(e)f(of)f(pro)q(cessor)j(b)q +(eing)e(used,)g(divided)g(b)o(y)f(10.)0 1843 y Fv(A.3)56 +b(Standard)19 b(V)-5 b(ariables)19 b(Used)62 1911 y Fh(\017)i +Fb(argv)p Fk(:)e(Standard)c(argumen)o(t)e(list.)20 b(Used)c(to)f +(instan)o(tiate)f(the)h(sla)o(v)o(es)g(with)g(the)g(same)f(parameters)h +(as)g(the)g(initial)104 1952 y(program.)62 2027 y Fh(\017)21 +b Fb(depth)p Fk(:)c(The)d(n)o(um)o(b)q(er)f(of)g(ply)h(the)g(curren)o +(t)i(no)q(de)e(is)g(a)o(w)o(a)o(y)f(from)f(the)i(ro)q(ot)g(of)f(the)i +(game)d(tree.)62 2102 y Fh(\017)21 b Fb(plytogo)p Fk(:)15 +b(The)c(n)o(um)o(b)q(er)f(of)g(ply)h(un)o(til)f(w)o(e)h(reac)o(h)g(the) +h(b)q(ottom)d(of)h(the)i(game)d(tree.)18 b(In)11 b(a)g(searc)o(h)h +(with)e(no)h(extensions)104 2143 y(or)j(forw)o(ard)f(pruning,)g +Fb(plytogo)21 b(+)g(depth)13 b Fk(should)h(b)q(e)g(constan)o(t.)62 +2218 y Fh(\017)21 b Fb(&move[i])10 b Fk(or)i Fb(&bestmove)p +Fk(:)j(A)d(p)q(oin)o(ter)g(to)f(an)h(area)g(of)f Fb(APHID)p +1098 2218 V 15 w(MOVESIZE)f Fk(b)o(ytes)i(whic)o(h)g(sp)q(eci\014es)h +(the)g(mo)o(v)o(e)d(b)q(eing)104 2260 y(pla)o(y)o(ed.)62 +2334 y Fh(\017)21 b Fb(p)p 129 2334 V 15 w(hash)p Fk(:)c(A)d(p)q(oin)o +(ter)g(to)g(an)g(area)g(of)f Fb(APHID)p 805 2334 V 15 +w(HASHTYPESIZE)e Fk(b)o(ytes)k(that)f(con)o(tains)g(the)g(curren)o(t)h +(hash)g(v)n(alue.)62 2409 y Fh(\017)21 b Fb(p)p 129 2409 +V 15 w(key)p Fk(:)c(A)c(p)q(oin)o(ter)g(to)f(an)g(area)h +Fb(APHID)p 729 2409 V 15 w(HASHKEYSIZE)d Fk(b)o(ytes)k(that)e(con)o +(tains)h(a)f(lo)q(c)o(k)g(whic)o(h)h(can)g(\\guaran)o(tee")f(the)104 +2451 y(b)q(oard)i(stored)h(in)e(the)h(lo)q(cation)f(of)h(the)g(hash)g +(table)g(is)g(correct.)62 2525 y Fh(\017)21 b Fb(alpha)13 +b Fk(and)g Fb(beta)p Fk(:)k(Searc)o(h)e(windo)o(w)e(used)i(b)o(y)f +Fj(\013\014)i Fk(implemen)o(tatio)o(n;)11 b(they)j(are)g(exp)q(ected)i +(to)e(b)q(e)h(32-bit)e(in)o(tegers.)62 2600 y Fh(\017)21 +b Fb(value)13 b Fk(and)g Fb(score)p Fk(:)k(V)m(alues)d(of)f(leaf)g(no)q +(des;)i(they)f(are)g(exp)q(ected)i(to)e(b)q(e)h(32-bit)e(in)o(tegers)h +(for)g(this)g(library)m(.)954 2790 y(20)p eop +%%Page: 21 23 +21 22 bop 0 42 a Fv(A.4)56 b(Stubs)19 b(T)-5 b(o)19 b(Be)f(W)-5 +b(ritten)62 110 y Fh(\017)21 b Fb(int)g(aphid)p 304 110 +14 2 v 15 w(stub)p 407 110 V 14 w(encodeinit\(char)e(*msg\))p +Fk(:)k(Pro)o(vides)17 b(the)g(absolute)g(master)f(with)h(a)f(4000-b)o +(yte)g(bu\013er)i(to)104 151 y(store)g(all)e(p)q(ertinen)o(t)j +(information)14 b(ab)q(out)j(the)h(ro)q(ot)g(of)e(the)i(game)e(tree,)j +(suc)o(h)f(as)g(the)g(p)q(osition)e(and)h(the)h(game)104 +193 y(history)d(\(if)g(this)h(is)f(relev)n(an)o(t)h(to)f(the)h(searc)o +(h)h(algorithm\).)k(The)16 b(return)g(v)n(alue)f(is)h(the)g(n)o(um)o(b) +q(er)f(of)g(b)o(ytes)h(used)g(in)104 234 y(the)e(string)g +Fb(msg)p Fk(.)62 309 y Fh(\017)21 b Fb(int)g(aphid)p +304 309 V 15 w(stub)p 407 309 V 14 w(decodeinit\(int)e(msg)p +814 309 V 15 w(ln,)j(char)f(*msg\))p Fk(:)15 b(All)9 +b(other)i(pro)q(cesses)j(in)c(the)h(system,)f(aside)h(from)104 +351 y(the)i(absolute)f(master,)g(receiv)o(e)i(the)f(message)f(length)g +(and)g(the)h(message)f(enco)q(ded)i(b)o(y)e Fb(aphid)p +1606 351 V 15 w(stub)p 1709 351 V 15 w(encodeinit)p Fk(,)104 +392 y(and)h(should)h(set)h(the)f(ro)q(ot)g(of)g(their)g(game)e(tree,)j +(accordingly)m(.)62 467 y Fh(\017)21 b Fb(void)g(aphid)p +326 467 V 14 w(stub)p 428 467 V 15 w(movedownpath\(int)e(num)p +880 467 V 15 w(moves,)h(char)h(*movepath\))p Fk(:)15 +b(Called)10 b(b)o(y)h(the)h(sla)o(v)o(es,)f(a)g(series)i(of)104 +508 y Fb(num)p 173 508 V 15 w(moves)d Fk(mo)o(v)o(es)h(is)g(giv)o(en)h +(in)f Fb(movepath)p Fk(,)f(with)h(eac)o(h)h(mo)o(v)o(e)e(b)q(eing)i +Fb(APHID)p 1328 508 V 15 w(MOVESIZE)e Fk(b)o(ytes)i(long.)17 +b(The)12 b(routine)104 550 y(should)h(pla)o(y)g(through)h(the)h(mo)o(v) +o(es)d(giv)o(en)i(in)f Fb(movepath)f Fk(from)h(the)h(ro)q(ot)g(of)f +(the)i(game)d(tree.)62 625 y Fh(\017)21 b Fb(void)g(aphid)p +326 625 V 14 w(stub)p 428 625 V 15 w(moveuppath\(int)e(num)p +836 625 V 15 w(moves,)i(char)g(*movepath\))p Fk(:)14 +b(Called)d(b)o(y)g(the)h(sla)o(v)o(es,)f(should)g(com-)104 +666 y(pletely)j(undo)f(an)o(y)h(c)o(hanges)g(made)f(b)o(y)h +Fb(aphid)p 856 666 V 14 w(stub)p 958 666 V 15 w(movedownpath)p +Fk(.)62 741 y Fh(\017)21 b Fb(int)g(aphid)p 304 741 V +15 w(stub)p 407 741 V 14 w(iterativedeepening\(i)o(nt)e(depth,)h(int)h +(last,)g(int)g(max\))p Fk(:)d(Called)13 b(b)o(y)h(the)h(sla)o(v)o(es,)f +(this)104 782 y(routine)i(should)f(return)i(the)g(searc)o(h)g(depth)f +(for)g(the)g(subsequen)o(t)i(searc)o(h)f(of)e(a)h(leaf)f(no)q(de.)24 +b(F)m(or)16 b(most)e(programs)104 824 y(that)g(do)f(iterativ)o(e)h +(deep)q(ening)h(in)f(1)f(ply)g(steps,)i(this)f(should)g(simply)e +(return)j Fb(last)21 b(+)g(1)p Fk(.)62 899 y Fh(\017)g +Fb(void)g(aphid)p 326 899 V 14 w(stub)p 428 899 V 15 +w(preparesearch\(int)e(depth,)h(int)h(plytogo,)f(int)i(winstats[],)d +(int)i(*alpha,)104 940 y(int)g(*beta\))p Fk(:)16 b(Called)10 +b(b)o(y)i(the)g(sla)o(v)o(es,)f(this)h(routine)g(sets)g(the)g(initial)e +(windo)o(w)h(searc)o(hed)i(b)o(y)e(the)h(sla)o(v)o(es.)17 +b(Statistics)104 982 y(on)12 b(previous)h(searc)o(hes)h(and)f(the)g +(curren)o(t)h(guessed)g(score)g(at)e(the)h(ro)q(ot)g(are)f(passed)i(in) +e(via)g(the)h Fb(winstats[])d Fk(arra)o(y)m(.)104 1023 +y(The)j(routine)f(should)h(set)g Fb(*alpha)e Fk(and)h +Fb(*beta)g Fk(b)q(efore)h(terminating.)j(F)m(urthermore,)c(this)g +(routine)h(should)f(ensure)104 1065 y(that)i(an)o(y)f(global)f +(\\alarm")g(states)j(ha)o(v)o(e)e(b)q(een)i(turned)g(o\013.)62 +1139 y Fh(\017)21 b Fb(int)g(aphid)p 304 1139 V 15 w(stub)p +407 1139 V 14 w(alphabeta\(int)f(depth,)g(int)h(plytogo,)f(int)i +(alpha,)e(int)h(beta\))p Fk(:)c(Called)c(b)o(y)h(b)q(oth)104 +1181 y(the)f(master)e(and)h(the)h(sla)o(v)o(es,)f(this)g(routine)g +(should)g(call)g(y)o(our)g(implem)o(en)o(tation)d(of)j +Fj(\013\014)r Fk(,)g(and)g(return)h(the)g(minim)o(ax)104 +1222 y(v)n(alue)g(bac)o(k)h(to)g(the)g(APHID)g(library)m(.)62 +1297 y Fh(\017)21 b Fb(int)g(aphid)p 304 1297 V 15 w(stub)p +407 1297 V 14 w(evaluate\(int)f(depth,)g(int)i(alpha,)e(int)h(beta\))p +Fk(:)c(Called)c(b)o(y)g(the)h(master)f(the)h(\014rst)g(time)104 +1339 y(it)g(visits)h(a)f(leaf)g(of)g(its)h(tree,)g(this)g(routine)g +(should)f(simply)f(call)h(y)o(our)g(ev)n(aluation)f(routine)i(and)g +(return)g(the)h(score)104 1380 y(for)d(the)i(p)q(osition)e(reac)o(hed)i +(at)f Fb(depth)f Fk(ply)g(within)g(the)i(tree.)62 1455 +y Fh(\017)21 b Fb(int)g(aphid)p 304 1455 V 15 w(stub)p +407 1455 V 14 w(stopsearch\(int)e(pass)p 836 1455 V 15 +w(stats[]\))p Fk(:)j(Called)16 b(only)f(b)o(y)i(the)g(absolute)f +(master)g(pro)q(cess,)j(this)104 1496 y(routine)12 b(should)g(c)o(hec)o +(k)h(y)o(our)f(timer)f(and)g(determine)h(if)f(y)o(our)h(time)f(limit)e +(has)j(b)q(een)i(exceeded)g(for)d(a)h(searc)o(h.)19 b(If)11 +b(the)104 1538 y(time)i(limit)e(has)j(b)q(een)i(exceeded,)g(this)e +(routine)g(should)g(return)h(1;)f(otherwise,)h(0.)j(A)c(n)o(um)o(b)q +(er)g(of)f(parameters)i(are)104 1579 y(passed)h(in)e(to)g(this)h +(routine)g(via)f(the)h(pass)p 782 1579 13 2 v 16 w(stats)g(arra)o(y)m +(,)f(suc)o(h)h(as)g(the)g(n)o(um)o(b)q(er)f(of)g(uncertain)i(no)q(des)f +(outstanding)104 1621 y(for)e(a)h(giv)o(en)f(searc)o(h,)i(to)f(mak)o(e) +e(the)i(decision)h(to)e(terminate)g(a)h(searc)o(h)h(more)e(robust.)62 +1696 y Fh(\017)21 b Fb(int)g(aphid)p 304 1696 14 2 v +15 w(stub)p 407 1696 V 14 w(visited\(\))p Fk(:)c(Called)d(b)o(y)g(the)g +(sla)o(v)o(es,)g(this)g(should)g(return)i(a)e(global)e(coun)o(t)j(of)e +(the)i(n)o(um)o(b)q(er)f(of)104 1737 y(no)q(des)g(visited)g(b)o(y)g +(the)g(pro)q(cess.)0 1853 y Fv(A.5)56 b(In)n(terface)18 +b(Calls)h(Used)f(b)n(y)h(Master)g(and)g(Sla)n(v)n(e)62 +1922 y Fh(\017)i Fb(void)g(aphid)p 326 1922 V 14 w(startup\(argv\))p +Fk(:)k(In)19 b(the)g(\014rst)h(pro)q(cess)g(run,)g(PVM)f(is)g(spa)o +(wned)g(on)g(the)g(mac)o(hines)f(sp)q(eci\014ed,)104 +1963 y(and)c(a)f(sla)o(v)o(e)h(pro)q(cess)i(is)e(spa)o(wned)g(with)g +(the)h(same)e(argumen)o(t)g(list)g Fb(\(argv\))g Fk(as)h(the)h(master,) +e(as)h(sp)q(eci\014ed)i(b)o(y)d(the)104 2005 y Fb(aphid.config)e +Fk(\014le.)18 b(In)c(a)g(spa)o(wned)g(pro)q(cess,)h(the)g(APHID)f +(library)f(nev)o(er)i(exits)f(this)g(function)g(call.)62 +2079 y Fh(\017)21 b Fb(void)g(aphid)p 326 2079 V 14 w(exit\(\))p +Fk(:)j(This)17 b(routine)h(remo)o(v)o(es)e(a)h(pro)q(cess)j(from)15 +b(the)j(PVM)g(group,)f(and)g(it)g(should)g(b)q(e)h(called)104 +2121 y(b)q(efore)e(an)o(y)f(pro)q(cess)j(exits)e(\(due)g(to)g(errors)h +(or)e(normal)f(completion\).)21 b(If)16 b(the)g(pro)q(cess)h(is)f(the)g +(absolute)g(master,)104 2162 y(completion)11 b(of)i(this)h(routine)f +(ensures)j(that)d(all)f(of)h(the)h(spa)o(wned)g(pro)q(cesses)i(ha)o(v)o +(e)d(b)q(een)i(sh)o(ut)f(do)o(wn)f(successfully)m(.)62 +2237 y Fh(\017)21 b Fb(int)g(aphid)p 304 2237 V 15 w(master\(\))p +Fk(:)16 b(Returns)f(1)e(if)g(the)i(pro)q(cess)h(is)d(a)h(master)f(in)h +(the)g(hierarc)o(h)o(y)m(,)g(and)f(0)h(otherwise.)62 +2312 y Fh(\017)21 b Fb(int)g(aphid)p 304 2312 V 15 w(slave\(\))p +Fk(:)14 b(Returns)d(1)f(if)g(the)h(pro)q(cess)h(w)o(as)e(spa)o(wned,)h +(returns)h(0)e(if)f(it)h(is)g(the)h(absolute)f(master)g(pro)q(cess)104 +2353 y(whic)o(h)k(spa)o(wned)h(the)g(other)g(pro)q(cesses.)23 +b(Note)15 b(that)f(a)h(pro)q(cess)h(can)f(b)q(e)g(b)q(oth)f(a)h(sla)o +(v)o(e)f(and)g(a)g(master)g(dep)q(ending)104 2395 y(on)f(the)i(hierarc) +o(h)o(y)f(sp)q(eci\014ed)i(in)d Fb(aphid.config)p Fk(.)954 +2790 y(21)p eop +%%Page: 22 24 +22 23 bop 0 42 a Fv(A.6)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h +(Masters)g(Only)62 110 y Fh(\017)i Fb(void)g(aphid)p +326 110 14 2 v 14 w(initserach\(int)e(maxdepth\))p Fk(:)d(Called)d(b)o +(y)h(the)g(absolute)g(master)g(pro)q(cess,)h(this)f(pro)q(cedure)h +(pre-)104 151 y(pares)i(to)g(start)g(a)f(searc)o(h)i(in)e(parallel.)26 +b(This)16 b(routine)h(calls)f Fb(aphid)p 1212 151 V 15 +w(stub)p 1315 151 V 15 w(encodeinit)p Fk(,)f(and)h(then)h(informs)e +(all)104 193 y(of)e(the)i(other)g(pro)q(cesses)i(of)c(the)i(curren)o(t) +h(state)f(of)e(the)i(game.)i(The)e(parameter)f(indicates)g(the)h(maxim) +n(um)10 b(depth)104 234 y(that)k(an)o(y)f(pro)q(cess)j(is)e(nominall)o +(y)d(allo)o(w)o(ed)i(to)g(searc)o(h,)i Fi(not)g(including)h(se)n(ar)n +(ch)e(extensions)p Fk(.)62 309 y Fh(\017)21 b Fb(int)g(aphid)p +304 309 V 15 w(rootsearch\(int)e(depth,)h(int)h(plytogo,)f(int)i +(alpha,)e(int)h(beta\))p Fk(:)26 b(This)18 b(routine)h(is)f(called)104 +350 y(b)o(y)d(the)h(absolute)g(master,)e(instead)i(of)f(calling)f(the)i +(t)o(ypical)f Fj(\013\014)i Fk(implemen)o(taiton.)i(It)d(allo)o(ws)e(a) +h(master)g(pro)q(cess)104 392 y(to)i(do)g(m)o(ultiple)e(passes)k(of)e +(the)h(tree)g(un)o(til)f(the)h(searc)o(h)g(is)g(completed,)f(or)g(the)h +(alarm)d(has)j(b)q(een)g(signalled)f(via)104 433 y Fb(aphid)p +217 433 V 14 w(stub)p 319 433 V 15 w(stopsearch)p Fk(.)f(If)e(the)g +(searc)o(h)i(is)d(allo)o(w)o(ed)g(to)h(complete,)f(this)h(routine)g +(returns)h(the)g(minim)o(ax)c(v)n(alue)104 475 y(of)i(the)i(tree)g +(that)f(it)f(has)h(b)q(een)h(ask)o(ed)f(to)g(searc)o(h.)62 +549 y Fh(\017)21 b Fb(int)g(aphid)p 304 549 V 15 w(intnode)p +473 549 V 14 w(premove\(int)e(depth,)i(char)g(*moveptr\))p +Fk(:)15 b(Called)d(b)o(y)h(the)g(absolute)g(master,)e(this)i(rou-)104 +591 y(tine)h(stores)h(mo)o(v)o(es)e(made)f(b)q(efore)j(a)f(call)f(to)g +Fb(aphid)p 938 591 V 15 w(rootsearch)f Fk(in)h(the)i(mo)o(v)o(e)d +(list.)62 665 y Fh(\017)21 b Fb(void)g(aphid)p 326 665 +V 14 w(endsearch\(\))p Fk(:)15 b(The)e(absolute)f(master)g(should)g +(call)f(this)i(routine)f(when)h(it)f(is)g(\014nished)h(searc)o(hing)f +(a)104 707 y(tree)i(that)e(has)h(b)q(een)h(called)e(;)h(it)f(stops)h +(the)g(sla)o(v)o(es)g(from)e(w)o(orking)g(on)i(the)g(lea)o(v)o(es)g(of) +f(the)h(game)e(tree)j(and)e(prepares)104 748 y(the)i(sla)o(v)o(es)g(to) +g(receiv)o(e)h(a)f(new)g(ro)q(ot)g(p)q(osition.)62 823 +y Fh(\017)21 b Fb(void)g(aphid)p 326 823 V 14 w(horizon\(int)f(depth\)) +p Fk(:)f(A)14 b(master)h(pro)q(cess)h(calls)f(this)g(routine)g(to)f +(determine)h(if)f(it)h(has)g(reac)o(hed)104 864 y(its)f(arti\014cial)f +(horizon.)62 939 y Fh(\017)21 b Fb(void)g(aphid)p 326 +939 V 14 w(eval)p 428 939 V 15 w(leaf\(int)f(alpha,)h(int)g(beta,)g +(int)g(depth,)g(char)g(*p)p 1403 939 V 15 w(hash,)g(char)g(*p)p +1702 939 V 15 w(key\))p Fk(:)104 980 y(This)10 b(routine)h(determines)g +(a)f(score)i(v)n(alue)d(for)h(the)i(leaf,)e(based)h(on)f(the)h(b)q(est) +h(information)7 b(a)o(v)n(ailable)h(to)j(the)g(master.)104 +1022 y Fb(p)p 129 1022 V 15 w(hash)i Fk(and)h Fb(p)p +348 1022 V 15 w(key)g Fk(are)g(required)h(to)f(determine)f(if)g(this)h +(no)q(de)h(has)f(b)q(een)h(previously)e(visited.)62 1096 +y Fh(\017)21 b Fb(void)g(aphid)p 326 1096 V 14 w(intnode)p +494 1096 V 15 w(start\(int)f(depth,)g(char)h(*p)p 1032 +1096 V 15 w(hash,)g(char)g(*p)p 1331 1096 V 15 w(key\))p +Fk(:)16 b(Called)11 b(b)o(y)g(a)h(master)f(pro)q(cess,)104 +1138 y(this)j(routine)g(initializes)e(b)q(ound)i(gathering)g +(information)d(for)i(an)h(in)o(terior)f(no)q(de)h(within)f(the)i(game)d +(tree.)19 b Fb(p)p 1850 1138 V 16 w(hash)104 1179 y Fk(and)13 +b Fb(p)p 209 1179 V 16 w(key)g Fk(are)h(required)h(to)f(determine)g(if) +f(this)h(no)q(de)g(has)g(b)q(een)h(previously)f(visited.)62 +1254 y Fh(\017)21 b Fb(void)g(aphid)p 326 1254 V 14 w(intnode)p +494 1254 V 15 w(move\(int)f(depth,)g(char)h(*moveptr\))p +Fk(:)k(Called)18 b(b)o(y)g(a)g(master)g(pro)q(cess,)i(this)f(routine) +104 1295 y(inserts)c(the)f(mo)o(v)o(e)e(p)q(oin)o(ted)i(to)f(b)o(y)h +Fb(moveptr)e Fk(in)o(to)h(a)h(hidden)g(mo)o(v)o(e)e(list)h(that)h(will) +e(ev)o(en)o(tually)h(b)q(e)i(sen)o(t)f(to)g(a)f(sla)o(v)o(e)104 +1337 y(in)g Fb(aphid)p 265 1337 V 15 w(eval)p 368 1337 +V 15 w(leaf)p Fk(.)62 1411 y Fh(\017)21 b Fb(void)g(aphid)p +326 1411 V 14 w(intnode)p 494 1411 V 15 w(update\(int)e(depth,)i(int)g +(value\))p Fk(:)27 b(Called)19 b(b)o(y)f(the)i(master)f(pro)q(cess,)j +(this)d(routine)104 1453 y(tak)o(es)d(the)g(v)n(alue)f(returned)j(b)o +(y)d(the)i(c)o(hild)e Fj(\013\014)j Fk(call)d(and)h(uses)h(it)e(to)h +(up)q(date)g(the)h(hidden)e(\\b)q(ound")h(information)104 +1494 y(gathered)f(for)e(ev)o(ery)i(no)q(de)f(in)f(the)i(master's)e +(tree.)62 1569 y Fh(\017)21 b Fb(void)g(aphid)p 326 1569 +V 14 w(intnode)p 494 1569 V 15 w(fixbound\(int)e(depth\))p +Fk(:)f(In)d(the)g(case)h(of)e(a)g(cut-o\013,)h(this)g(routine)g(will)e +(\014x)h(the)i(hidden)104 1610 y(b)q(ound)e(information)d(when)j(not)g +(all)f(mo)o(v)o(es)f(ha)o(v)o(e)i(b)q(een)h(fully)d(explored.)62 +1685 y Fh(\017)21 b Fb(void)g(aphid)p 326 1685 V 14 w(intnode)p +494 1685 V 15 w(end\(int)f(depth,)h(int)g(*score\))p +Fk(;)12 b(This)j(routine)f(is)g(called)g(b)o(y)h(a)f(master)f(for)h(ev) +o(ery)i(in-)104 1726 y(ternal)d(no)q(de)g(within)f(the)i(tree,)g(and)e +(ensures)j(that)e(the)g(score)i(returned)f(is)f(consisten)o(t)h(with)e +(previously)h(gathered)104 1768 y(information)e(ab)q(out)j(the)g(no)q +(de.)0 1884 y Fv(A.7)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h(Sla) +n(v)n(es)g(Only)62 1952 y Fh(\017)i Fb(int)g(aphid)p +304 1952 V 15 w(checkalarm\(\))p Fk(:)e(This)d(routine)h(c)o(hec)o(ks)g +(to)f(see)h(if)f(a)f(searc)o(h)j(should)e(b)q(e)g(terminated.)24 +b(If)16 b(the)h(v)n(alue)104 1994 y(returned)f(is)e(equal)f(to)h(0,)g +(the)h(searc)o(h)g(should)f(con)o(tin)o(ue.)19 b(If)13 +b(the)i(v)n(alue)f(returned)h(is)f(not)h(equal)e(to)h(0,)g(the)g +(curren)o(t)104 2035 y(searc)o(h)h(has)f(b)q(een)h(in)o(terrupted,)g +(and)e(w)o(e)h(should)g(terminate)f(it)h(in)f(a)h(\\nice")g(w)o(a)o(y)m +(.)0 2151 y Fv(A.8)56 b(The)18 b(\\aphid.con\014g")h(File)e +(Description)62 2220 y Fh(\017)k Fk(The)15 b(\014rst)g(line)f(con)o +(tains)h(t)o(w)o(o)f(in)o(tegers:)21 b(The)15 b(n)o(um)o(b)q(er)f(of)g +(lev)o(els)g(in)g(the)i(pro)q(cess)g(hierarc)o(h)o(y)m(,)e(and)h(the)g +(minim)n(um)104 2261 y(depth)f(of)g(w)o(ork)f(that)h(can)g(b)q(e)h +(handed)f(out)g(to)g(a)f(sla)o(v)o(e.)62 2336 y Fh(\017)21 +b Fk(The)d(next)g(lines)g(eac)o(h)g(con)o(tain)g(one)g(in)o(teger,)g +(eac)o(h)g(in)o(teger)h(represen)o(ting)g(the)f(v)n(alue)g(of)f +Fj(d)1607 2321 y Fa(0)1636 2336 y Fk(for)g(a)h(lev)o(el)f(in)g(the)104 +2377 y(pro)q(cess)e(hierarc)o(h)o(y)m(.)62 2452 y Fh(\017)21 +b Fk(The)14 b(last)g(lines)g(indicate)h(what)f(mac)o(hines)f(the)i(pro) +q(cesses)i(should)c(b)q(e)i(spa)o(wned)g(on,)f(and)g(what)g(executable) +h(is)f(to)104 2493 y(b)q(e)j(run,)g(one)g(line)f(p)q(er)i(pro)q(cess)g +(to)f(b)q(e)g(spa)o(wned.)27 b(By)17 b(default,)f(APHID)h(will)e(spa)o +(wn)i(an)f(executable)i(with)e(the)104 2535 y(same)d(program)f(name)h +(as)h(the)h(original)d(program)g(unless)j(a)f Fb(#)f +Fk(c)o(haracter)j(app)q(ears)e(on)g(the)h(line,)e(whic)o(h)h(indicates) +104 2576 y(a)h(separation)h(b)q(et)o(w)o(een)h(the)f(mac)o(hine)e(name) +g(and)i(the)g(program)e(name.)22 b(The)16 b(absolute)f(master)g(pro)q +(cess)j(is)d(not)104 2618 y(listed)c(in)f(this)h(hierarc)o(h)o(y)m(.)17 +b(A)10 b(pro)q(cess)j(hierarc)o(h)o(y)e(can)g(b)q(e)g(sp)q(eci\014ed)i +(using)d(tabs)h(to)g(mo)o(v)o(e)e(the)i(start)h(of)e(the)h(mac)o(hine) +104 2659 y(name)h(o)o(v)o(er)i(in)g(the)g(\014le.)954 +2790 y(22)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/parallel/brockington96taxonomy.ps b/parallel/brockington96taxonomy.ps new file mode 100755 index 0000000..bc73cc7 --- /dev/null +++ b/parallel/brockington96taxonomy.ps @@ -0,0 +1,2428 @@ +%!PS-Adobe-2.0 +%%Creator: dvips 5.55 Copyright 1986, 1994 Radical Eye Software +%%Title: taxonomy.dvi +%%CreationDate: Wed Jun 12 00:05:43 1996 +%%Pages: 14 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips taxonomy +%DVIPSParameters: dpi=300, comments removed +%DVIPSSource: TeX output 1996.06.12:0003 +%%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 showpage +userdict /eop-hook known{eop-hook}if}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 +TeXDict begin 40258431 52099146 1000 300 300 +(/usr/maligne2/grad/brock/Writing/taxonomy/taxonomy.dvi) +@start /Fa 2 101 df<00200060006000C000C000C00180018001800300030003000600 +06000C000C000C00180018001800300030003000600060006000C000C000C0000B1D7E95 +11>61 D<007C000C0018001800180018003007B00C7010703060606060606060C0C0C0C8 +C0C841C862D03C700E147E9311>100 D E /Fb 4 81 df<7FFFC0FFFFC07FFFC01C01C0 +1C01C01C01C01C01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C00 +1C00001C00E01C00E01C00E01C00E01C00E07FFFE0FFFFE07FFFE013197F9816>69 +D<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001CE7 +001CE7001CE7001C67001C67001C77001C77001C37001C37001C37001C17007F1F00FF9F +007F0F0013197F9816>78 D<1FFC003FFE007FFF00780F00F00780E00380E00380E00380 +E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780 +F00780780F007FFF003FFE001FFC0011197E9816>I<7FF800FFFE007FFF001C0F801C03 +801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF8001C00001C00 +001C00001C00001C00001C00001C00007F0000FF80007F000012197F9816>I +E /Fc 21 123 df<000FE0200070186001C00460030003E0060001E00E0000E01C000060 +38000060380000207800002070000020F0000000F0000000F0000000F0000000F0000000 +F0000000F0000000F0000000700000207800002038000020380000201C0000400E000040 +060000800300010001C0060000701800000FE0001B1E7D9C21>67 +D75 D80 D<7FFFFFC0700F01C0600F00 +C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7D9B21>84 +D87 D<7FFFFC7C00787000786000F06001E04001E04003C0400780400780000F00001E00 +001E00003C0000780000780000F00001E00001E00403C0040780040780040F000C1E0008 +1E00083C00187800387800F8FFFFF8161C7D9B1C>90 D<00200000700000700000700000 +B80000B80000B800011C00011C00011C00020E00020E0004070004070007FF0008038008 +03800803801801C03803C0FE0FF815157F9419>97 D101 D<00FC200782600E01E01C00E03800 +60780020700020F00020F00000F00000F00000F00FF8F000E0F000E07000E07800E03800 +E01C00E00E00E007836000FC2015157E941B>103 DII107 +DI110 +D<01F800070E000C03001C03803801C07801E07000E0F000F0F000F0F000F0F000F0F000 +F0F000F0F000F07000E07801E03801C01C03801E0780070E0001F80014157E941A>I114 +D117 +D119 DIII +E /Fd 2 26 df<0000300000F00001C0000700001E0000780001E0000380000E00003C00 +00F00000F000003800000E000007800001E000007800001C000007000003C00000F00000 +300000000000000000000000000000000000007FFFE0FFFFF0141E7D951B>20 +D<0F00043FC0047FE004F0F00CC03C3C801FF8800FF08003C00000000F00043FC0047FE0 +04F0F00CC03C3C801FF8800FF08003C016117E901B>25 D E /Fe +22 122 df<7FF0FFE00C027F890E>45 D<000020000000300000007000000070000000F0 +000000F0000001F00000037800000278000006780000047800000C780000087C0000183C +0000103C0000203C0000203C0000403C0000403E0000FFFE0000801E0001001E0001001E +0002001E0002000F0004000F0004000F001E001F00FF80FFF01C1D7F9C1F>65 +D<0007F010001C0C300070026000C001E0038000E0070000E00E0000600E0000601C0000 +403C00004038000040780000007800000078000000F0000000F0000000F0000000F000FF +F0F0000F80F0000780F0000F0070000F0070000F0038000F0038000F001C001F000C001E +000600660003818200007E00001C1E7C9C21>71 D<0FFFFC0000F80F0000F0038000F003 +C000F001C000F001C000F001C001E003C001E003C001E003C001E0038001E0070001E00E +0003C03C0003FFE00003C0000003C0000003C0000003C000000780000007800000078000 +000780000007800000078000000F0000000F800000FFF000001A1C7E9B1C>80 +D<003F0400C0CC0180380300380600180E00180E00180E00181E00101E00001F00000F80 +000FF80007FF0003FF8001FFC0003FE00003E00001E00000E00000E04000E04000E04000 +E04000C06001C0E00180F00300CC0E0083F800161E7E9C17>83 D<1FFFFFF03C07C0F030 +07803020078020600780204007802040078020400F0020800F0020000F0000000F000000 +0F0000000F0000001E0000001E0000001E0000001E0000001E0000001E0000003C000000 +3C0000003C0000003C0000003C0000003C000000780000007C00001FFFE0001C1C7C9B1E +>I<07F0001C18001E0C001C0E00180E00000E00000E0001FE000F0E001C1C00301C0070 +1C00E01C40E01C40E03C40E05C80709D803F0E0012127D9115>97 +D<01F8071C0C1E181C38183000700070007000E000E000E000600060047008301018200F +C00F127D9112>99 D<01F8070C0C061C073803300370037FFF7000E000E000E000600060 +02300430081C3007C010127E9112>101 D<000F800039C00061C000E3C001C18001C000 +01C00001C0000380000380000380003FF800038000038000070000070000070000070000 +0700000700000E00000E00000E00000E00000E00000E00001C00001E0000FFC000121D7F +9C0D>I<000038003CCC00C69C0183080383800703800703800703800703800707000306 +00038C0004F0000400000C00000C00000FFE0007FF800FFFC01801C02000C06000E0C000 +C0C000C0600180200300180E0007F000161C809215>I<07E00001E00001C00001C00001 +C00001C00001C00001C000038000038000038000038F8003B0C003C0E00780E00780E007 +00E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF +9FF0141D7F9C17>I<00C001C001C0018000000000000000000000000000001F80078003 +800700070007000700070007000E000E000E000E000E000E001C001E00FF800A1D7F9C0C +>I<07E001E001C001C001C001C001C001C0038003800380038003800380070007000700 +0700070007000E000E000E000E000E000E001C001E00FF800B1D7F9C0C>108 +D<1F8FC0FC00079061060003E07607000780780700078078070007007007000700700700 +070070070007007007000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E +00E00E001C01C01C001E01E01E00FF8FF8FF8021127F9124>I<1F8F8007B0C003C0E007 +80E00780E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C +03801E03C0FF9FF014127F9117>I<00FC000307000E01801C01C03800C03000C07000E0 +7000E07000E0E001C0E001C0E001C0600180600380700700380E001C180007E00013127E +9115>I<1F9C07EE03CF078E078C07000700070007000E000E000E000E000E000E001C00 +1E00FFC010127F9110>114 D<03F20C0E18061004300438043E001FE00FF007F8003C40 +1C400C400C6018E010D0608FC00F127F9110>I<020002000200060006000C001C003C00 +FFE01C001C00380038003800380038003800700070407040704070407080708031001E00 +0B1A7C9910>I<1FE3FC07C1E003818001C10001C20000E40000EC000078000070000038 +00007800009C00011E00020E000407000C07003C0780FE1FF016127F9116>120 +D<0FF0FE03C03801C03001C02001C06001C04001E08000E08000E10000E10000E2000072 +00007400007C00007800007000003000002000002000004000004000708000F10000F100 +00E60000780000171A809116>I E /Ff 2 13 df<07C0000C3040101040201880601880 +C00C80C00D00C00E00800E00800C00C01C00C02C0060C4803F0300120E7E8D17>11 +D<000F0000308000C0C00080400100600200C00400C0040080040180083F00083E000801 +00080180100180100180100180100180300300300300300600280C0044180043E0004000 +00400000800000800000800000800000131D7F9614>I E /Fg 13 +118 df<60F0F0600404798312>46 D<03E007F01E18381C30FC71FE739EE30EE70EE70E +E70EE70EE30C739C71F830F038001E0E07FE03F80F147F9312>64 +D<3F807FC070E0207000700FF03FF07870E070E070E07070F03FFE1F3E0F0E7E8D12>97 +DI<07F01FF8383870106000E000E000E000E000600070383838 +1FF007E00D0E7E8D12>I<07801FE0387070706038E038FFF8FFF8E0006000703838381F +F007C00D0E7E8D12>101 D107 DI< +0F803FE038E07070E038E038E038E038E038F078707038E03FE00F800D0E7E8D12>111 +D +114 D<1FF03FF06070C070E0007F003FE00FF000786018E018F030FFE0DFC00D0E7E8D12 +>I<06000E000E000E007FF8FFF80E000E000E000E000E000E000E000E380E380E3807F0 +03C00D127F9112>II E /Fh 73 123 df<00FCF807839C0E079C1C07081C07001C07001C07 +001C07001C0700FFFFE01C07001C07001C07001C07001C07001C07001C07001C07001C07 +001C07001C07001C0700FF1FE01617809615>11 D<00FC000782000E07001C07001C0200 +1C00001C00001C00001C0000FFFF001C07001C07001C07001C07001C07001C07001C0700 +1C07001C07001C07001C07001C0700FF1FE01317809614>I<60C0F1E0F1E070E0102010 +2020402040408040800B0A7F9612>34 D<01C0000320000610000E10000E10000E10000E +20000E40000E80000780FE0700380700200B802013804031C04061E08060E100E07100E0 +3A00E01C02700E0238370C0FC1F817177F961B>38 D<0102040C1818303070606060E0E0 +E0E0E0E0E0E0E0E060606070303018180C04020108227D980E>40 +D<8040203018180C0C0E060606070707070707070707070606060E0C0C18183020408008 +227E980E>I<020002000200C218F2783AE00F800F803AE0F278C2180200020002000D0E +7E9812>I<00300000300000300000300000300000300000300000300000300000300000 +3000FFFFFCFFFFFC00300000300000300000300000300000300000300000300000300000 +300000300016187E931B>I<60F0F070101020204040040A7D830A>II<60F0F06004047D830A>I<0008001800300030003000600060006000C000C000C001 +8001800180030003000600060006000C000C000C00180018001800300030003000600060 +006000C000C0000D217E9812>I<07C018303018701C600C600CE00EE00EE00EE00EE00E +E00EE00EE00EE00E600C600C701C30181C7007C00F157F9412>I<03000700FF00070007 +000700070007000700070007000700070007000700070007000700070007007FF00C157E +9412>I<0F8030E040708030C038E0384038003800700070006000C00180030006000C08 +080810183FF07FF0FFF00D157E9412>I<0FE030306018701C701C001C00180038006007 +E000300018000C000E000EE00EE00EC00C401830300FE00F157F9412>I<003000300070 +00F001F001700270047008701870107020704070C070FFFE0070007000700070007003FE +0F157F9412>I<20303FE03FC0240020002000200020002F8030E0207000300038003840 +38E038E0388030406020C01F000D157E9412>I<01F00608080C181C301C70006000E000 +E3E0EC30F018F00CE00EE00EE00E600E600E300C3018183007C00F157F9412>I<40007F +FE7FFC7FF8C008801080200040008000800100010003000200060006000E000E000E000E +000E0004000F167E9512>I<07E018302018600C600C700C78183E101F600FC00FF018F8 +607C601EC00EC006C006C004600C38300FE00F157F9412>I<07C0183030186018E00CE0 +0CE00EE00EE00E601E301E186E0F8E000E000C001C70187018603020C01F800F157F9412 +>I<60F0F06000000000000060F0F060040E7D8D0A>I61 D<001000003800003800003800 +005C00005C00005C00008E00008E00008E0001070001070003078002038002038007FFC0 +0401C00401C00800E00800E01800E03800F0FE03FE17177F961A>65 +DI<00FC100383300E00B01C0070380030300030700010600010E00010E00000E0 +0000E00000E00000E00000E000106000107000103000203800201C00400E008003830000 +FC0014177E9619>IIII<007E080381980600580C0038180018 +300018700008700008E00008E00000E00000E00000E00000E003FEE00038700038700038 +3000381800380C00380600380380D8007F0817177E961C>III<0FFC00E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E000E000E0E0E0E0E0C1C061801F000E177E9612>IIIII<00FC00030300 +0E01C01C00E0380070300030700038600018E0001CE0001CE0001CE0001CE0001CE0001C +E0001C7000387000383000303800701C00E00E01C003030000FC0016177E961B>II82 D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C00 +0E0006800680068006C004E008D81087E00F177E9614>I<7FFFF8603818403808403808 +803804803804803804003800003800003800003800003800003800003800003800003800 +00380000380000380000380000380000380007FFC016177F9619>III< +FF07FC3F803C01E00E001C00E004001C00E004001C017004000E017008000E017008000E +023808000702381000070238100007041C100003841C200003841C200003880E200001C8 +0E400001C80E400001D80F400000F007800000F007800000F00780000060030000006003 +0000006003000021177F9624>I89 D<204020404080408081008100E1C0F1E0F1E060C00B0A7B9612>92 +D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97 +DI<07F01838303870106000E000E000E000E000600070083008183007C00D0E7F +8D10>I<007E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C3E +00300E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007CF +C012177F9614>I<0FC0186030307038E018FFF8E000E000E000600070083010183007C0 +0D0E7F8D10>I<03E006700E701C201C001C001C001C001C00FF801C001C001C001C001C +001C001C001C001C001C001C001C00FF800C1780960B>I<0F9E18E33060707070707070 +306018C02F80200060003FE03FF83FFC600EC006C006C006600C38380FE010157F8D12> +II<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1CFF081780960A>I107 DIII<07C018303018600C600CE0 +0EE00EE00EE00EE00E701C3018183007C00F0E7F8D12>II<07C2001C2600381E00700E00600E00E00E +00E00E00E00E00E00E00600E00700E00301E001C2E0007CE00000E00000E00000E00000E +00000E00007FC012147F8D13>II<1F4060C0C040C040E000FF007F801FC001E080608060C0 +60E0C09F000B0E7F8D0E>I<080008000800180018003800FF8038003800380038003800 +3800380038403840384038401C800F000A147F930E>II< +FE1F3C0E3C0C1C081C080E100E100720072003C003C003C001800180100E7F8D13>IIIII E /Fi 1 50 df<0C003C00CC000C00 +0C000C000C000C000C000C000C000C000C000C000C00FF8009107E8F0F>49 +D E /Fj 1 4 df<01800180018001804182F18F399C0FF003C003C00FF0399CF18F4182 +018001800180018010127E9215>3 D E /Fk 12 113 df<00F000030C000E06041C0704 +380708300708700790700790E003A0E003A0E003C0E00380E00380E00380600780601B88 +3061900F80E016127E911B>11 D<0001F000061800080C00100C00200E00400E00800E00 +801C01001C010018010038020FF00210C0020FE002003004003004003004003804003808 +00700800700800700800E01800E01800C0140180140300230E0020F80020000020000040 +000040000040000040000080000080000017257F9C17>I<01FFFF80003C01E000380070 +003800380038001C0038001C0070001C0070001E0070001E0070001E00E0001E00E0001E +00E0001E00E0001E01C0003C01C0003C01C0003C01C000380380007803800070038000F0 +038000E0070001C0070003800700070007001C000E007800FFFFC0001F1C7E9B22>68 +D<01FFFFF8003C0078003800180038001000380010003800100070001000700010007010 +100070100000E0200000E0200000E0600000FFE00001C0400001C0400001C0400001C040 +0003808040038000400380008003800080070001000700010007000300070006000E003E +00FFFFFC001D1C7E9B1F>I<01FC00FF80001C001C00002E001800002E001000002E0010 +00002700100000470020000043002000004380200000438020000081C040000081C04000 +0081C040000080E040000100E08000010070800001007080000100708000020039000002 +00390000020039000002001D000004001E000004000E000004000E00000C000E00001C00 +040000FF80040000211C7E9B21>78 D<0003F800000E0E000038038000E001C001C001C0 +038000E0070000E00F0000F01E0000F01C0000F03C0000F03C0000F0780000F0780000F0 +780000F0F00001E0F00001E0F00001E0F00003C0F00003C0F0000780F0000780F0000F00 +70000E0070001C00380038003C0070001C01C0000707800001FC00001C1E7E9C20>I<01 +FFFE00003C03C0003800E0003800F00038007000380070007000F0007000F0007000F000 +7001E000E001C000E0078000E01E0000FFF00001C0300001C0180001C01C0001C01C0003 +801C0003801C0003801C0003801C0007003C0007003C0807003C0807003C100F001E10FF +E00E20000007C01D1D7E9B20>82 D<000FC100303300400F008006018006030006030006 +06000406000407000007000007800003F00001FF0000FFC0003FE00003E00000F0000070 +0000300000302000302000306000606000606000C0600080F00300CC060083F800181E7E +9C19>I<3F00070007000E000E000E000E001C001C001C001C0039E03A303C1838187018 +701C701C701CE038E038E038E030E070E060E0C061C023001E000E1D7E9C12>98 +D<0007E00000E00000E00001C00001C00001C00001C000038000038000038000038001E7 +000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E01C00E01C00E038 +80E03880E038806078803199001E0E00131D7E9C16>100 D<0FC00001C00001C0000380 +000380000380000380000700000700000700000700000E07000E18800E21C00E23C01C47 +801C83001D00001E00003F800039C00038E00038E00070E10070E10070E10070E200E062 +00603C00121D7E9C16>107 D<07078009C86008D03008E03011C03011C03801C03801C0 +380380700380700380700380600700E00700C00701800783000E86000E78000E00000E00 +001C00001C00001C00001C00003C0000FF8000151A819115>112 +D E /Fl 53 122 df<0020004001800380030006000E001C001C003C0038003800780078 +007800F800F000F000F000F000F000F000F000F000F000F800780078007800380038003C +001C001C000E000600030003800180004000200B297C9E13>40 D<800040003000380018 +000C000E000700070007800380038003C003C003C003E001E001E001E001E001E001E001 +E001E001E003E003C003C003C0038003800780070007000E000C00180038003000400080 +000B297D9E13>I45 D<78FCFCFCFC7806067D850D>I< +00600001E0000FE000FFE000F3E00003E00003E00003E00003E00003E00003E00003E000 +03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000 +03E0007FFF807FFF80111B7D9A18>49 D<07F8001FFE00383F80780FC0FC07C0FC07E0FC +03E0FC03E07803E00007E00007C00007C0000F80001F00001E0000380000700000E00001 +80600300600600600800E01FFFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18>I<03F800 +1FFE003C1F003C0F807C07C07E07C07C07C03807C0000F80000F80001E00003C0003F800 +001E00000F800007C00007C00007E03007E07807E0FC07E0FC07E0FC07C0780F80781F00 +1FFE0007F800131B7E9A18>I<000180000380000780000F80001F80003F80006F8000CF +80008F80018F80030F80060F800C0F80180F80300F80600F80C00F80FFFFF8FFFFF8000F +80000F80000F80000F80000F80000F8001FFF801FFF8151B7F9A18>I<1801801FFF001F +FE001FFC001FF8001FC00018000018000018000018000019F8001E0E00180F8010078000 +07C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0600F80381F001FFE0007 +F000131B7E9A18>I<6000007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00 +C0180000300000300000600000E00000E00001E00001C00003C00003C00003C00003C000 +07C00007C00007C00007C00007C00007C000038000131C7D9B18>55 +D<03F8000FFE001E0F803807803803C07803C07803C07E03C07F83807FC7003FFE001FFC +000FFE0007FF801DFF80387FC0781FE0F007E0F003E0F001E0F001E0F001E07801C07803 +803E07801FFE0003F800131B7E9A18>I<03F8000FFE001E0F003C07807807807803C0F8 +03C0F803C0F803E0F803E0F803E0F803E07807E03807E03C0BE00E1BE003E3E00003E000 +03C00003C03807C07C07807C0700780F00383C001FF8000FE000131B7E9A18>I<000380 +00000380000007C0000007C0000007C000000FE000000FE000001FF000001BF000001BF0 +000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E0001803F0001FFFF +0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07FFEFFC07F +FE1F1C7E9B24>65 DI<001FE02000FFF8E003F80FE007C003E0 +0F8001E01F0000E03E0000E03E0000607E0000607C000060FC000000FC000000FC000000 +FC000000FC000000FC000000FC000000FC0000007C0000607E0000603E0000603E0000C0 +1F0000C00F80018007C0030003F80E0000FFFC00001FE0001B1C7D9B22>IIII<000FF008007FFE38 +01FC07F807E001F80F8000781F0000783F0000383E0000387E0000187C000018FC000000 +FC000000FC000000FC000000FC000000FC000000FC007FFFFC007FFF7C0001F87E0001F8 +3E0001F83F0001F81F0001F80F8001F807E001F801FC07F8007FFE78000FF818201C7D9B +26>III<07FFF007FFF0001F80001F80001F80001F80001F80001F80001F80001F8000 +1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80301F80781F80FC +1F80FC1F80FC1F00783E00387C000FF000141C7F9B19>IIIII<003FE000 +01F07C0003C01E000F800F801F0007C01E0003C03E0003E07E0003F07C0001F07C0001F0 +FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F0 +7E0003F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E0001F07C00003FE000 +1D1C7D9B24>II82 D<07F8201FFEE03C07E07801E07000 +E0F000E0F00060F00060F80000FE0000FFE0007FFE003FFF003FFF800FFFC007FFE0007F +E00003F00001F00000F0C000F0C000F0C000E0E000E0F001C0FC03C0EFFF0083FC00141C +7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C01F8030C01F80 +30C01F8030C01F8030001F8000001F8000001F8000001F8000001F8000001F8000001F80 +00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 +0007FFFE0007FFFE001C1C7E9B21>II87 D<0FF8001C1E003E0F803E07803E +07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC03E +13F80FE1F815127F9117>97 DI<03 +FC000E0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F80000F8000078 +00007801803C01801C03000E0E0003F80011127E9115>I<000FF0000FF00001F00001F0 +0001F00001F00001F00001F00001F00001F00001F001F9F00F07F01C03F03C01F07801F0 +7801F0F801F0F801F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F0FFE +03F9FE171D7E9C1B>I<01FC000F07001C03803C01C07801C07801E0F801E0F801E0FFFF +E0F80000F80000F800007800007C00603C00601E00C00F038001FC0013127F9116>I<00 +7F0001E38003C7C00787C00F87C00F83800F80000F80000F80000F80000F8000FFF800FF +F8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F +80000F80000F80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07303C0780 +3C07803C07803C07801C07001E0F000E0E001BF8001000001800001800001FFF001FFFC0 +0FFFE01FFFF07801F8F00078F00078F000787000707800F01E03C007FF00151B7F9118> +II<1E003F003F003F003F001E0000 +0000000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F +001F001F001F00FFE0FFE00B1E7F9D0E>I108 DII<01FC000F07801C01C0 +3C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E0 +1E03C00F078001FC0015127F9118>II114 D<1FD830786018E018E018F000FF807FE0 +7FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>I<030003000300030007 +0007000F000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F +0C0F08079803F00E1A7F9913>III121 D E /Fm 2 51 df<0C001C00EC000C000C000C000C000C000C000C000C00 +0C000C000C000C000C000C000C00FFC00A137D9211>49 D<1F0060C06060F070F0306030 +00700070006000C001C00180020004000810101020207FE0FFE00C137E9211>I +E /Fn 68 123 df<0001FC000703000C03001C07001C0300180000380000380000380000 +380000700007FFFC00701C00701C00701C00E03800E03800E03800E03800E07001C07001 +C07001C07001C0E201C0E201C0E20380E4038064038038038000030000070000060000C6 +0000E40000CC00007000001825819C17>12 D18 +D<03070E1C3860C0800808729C15>I<183C3C3C0404080810204080060C779C0D>39 +D<00030006000800180030006000C000C0018003000300060006000C000C001C00180018 +00380030003000700070006000600060006000E000E000E000E000E00060006000600060 +00600020003000100008000800102A7B9E11>I<001000100008000C0004000600060006 +00060006000700070007000700070006000600060006000E000E000C000C001C00180018 +0038003000300060006000C000C001800300030006000C00180010006000C000102A809E +11>I<0030000060000060000060001841803C47000ECE0007B80001E00003C0000EF000 +39B800711E00C10C000300000300000300000600001112799E15>I<1838783808081010 +20404080050C7D830D>44 DI<3078F06005047C830D>I<00 +3C0000C6000183000303000603000603800E03800C03801C03801C030038070038070038 +0700380700700E00700E00700E00700E00E01C00E01C00E01C00E03800E03800E03000C0 +6000E0600060C0007180001E0000111D7B9B15>48 D<00020006000C001C007C039C0038 +003800380038007000700070007000E000E000E000E001C001C001C001C0038003800380 +03800780FFF00F1C7C9B15>I<003C0000C3000101800201800201C00441C00441C00841 +C00841C00841C01083801083801107000E0600000C0000180000300000C0000100000600 +000800001001001002002002004006007E0C00C7F80083F80080E000121D7C9B15>I<00 +3E0000C1800101800200C00400C00440C00841C00841C00841C008838007038000070000 +0E0001F800003800000C00000C00000E00000E00000E00000E00700E00E01C00801C0080 +380080300040600021C0001F0000121D7C9B15>I<0001800001C0000380000380000380 +000300000700000700000600000E00000C00001C00001800001800003000003000006000 +00400000C600018E00010E00020E00061C000C1C00181C003F1C0040F800803F00003800 +00380000700000700000700000700000E00000600012247E9B15>I<00C06000FFC001FF +8001FE00010000010000020000020000020000020000047800058C000606000406000806 +00000700000700000600000E00000E00700E00700C00E01C008018008038004030004060 +0021C0001F0000131D7C9B15>I<001E000061000081800180800300C00300C006018006 +018006018007030007860003CC0003F00001F000037800063C00081E00180E00300E0060 +0600600600600600C00C00C00C00C0180060100060200030C0000F0000121D7C9B15>56 +D<003C0000C6000183000303000603000E03000C03801C03801C03001C03003807003807 +00380700380F00380E00181E00181E000C6C00079C00001C000018000038000030000060 +00E0C000E0C0008180008600007C0000111D7B9B15>I<060F0F06000000000000000000 +003078F06008127C910D>I<000018000000180000003800000038000000780000007800 +0000B8000001B800000138000002380000023C0000041C0000041C0000081C0000181C00 +00101C0000201C0000201C00007FFC0000401C0000801C0001801C0001001C0002001C00 +02001C0004000E000C000E001C001E00FF00FFC01A1D7E9C1F>65 +D<01FFFE00003C0780003803C0003801C0003801C0003801C0007001C0007003C0007003 +C00070078000E0070000E00E0000E03C0000FFF80001C01C0001C00E0001C00F0001C00F +0003800F0003800F0003800F0003800F0007001E0007001C0007003C00070078000E01E0 +00FFFF80001A1C7D9B1D>I<0003F020001E0C60003002E000E003C001C001C0038001C0 +070000C00E0000801E0000801C0000803C0000803C000000780000007800000078000000 +F0000000F0000000F0000000F0000000F0000400F0000400F0000400F000080070000800 +7000100038002000180040000C0180000706000001F800001B1E7A9C1E>I<01FFFE0000 +3C0780003801C0003801C0003800E0003800E0007000F00070007000700070007000F000 +E000F000E000F000E000F000E000F001C001E001C001E001C001E001C001C0038003C003 +800380038007800380070007000E0007001C0007003800070070000E01C000FFFF00001C +1C7D9B1F>I<01FFFFE0003C00E000380060003800400038004000380040007000400070 +0040007020400070200000E0400000E0400000E0C00000FFC00001C0800001C0800001C0 +800001C0800003810100038001000380020003800200070004000700040007000C000700 +18000E007800FFFFF0001B1C7D9B1C>I<01FFFFC0003C01C0003800C000380080003800 +80003800800070008000700080007020800070200000E0400000E0400000E0C00000FFC0 +0001C0800001C0800001C0800001C0800003810000038000000380000003800000070000 +000700000007000000070000000F000000FFF000001A1C7D9B1B>I<0003F020001E0C60 +003002E000E003C001C001C0038001C0070000C00E0000801E0000801C0000803C000080 +3C000000780000007800000078000000F0000000F0000000F001FFC0F0001E00F0001C00 +F0001C00F0001C00F0001C00700038007000380038003800180078000C00900007071000 +01F800001B1E7A9C20>I<01FFCFFE003C01E0003801C0003801C0003801C0003801C000 +70038000700380007003800070038000E0070000E0070000E0070000FFFF0001C00E0001 +C00E0001C00E0001C00E0003801C0003801C0003801C0003801C00070038000700380007 +003800070038000F007800FFE7FF001F1C7D9B1F>I<01FFC0003C000038000038000038 +0000380000700000700000700000700000E00000E00000E00000E00001C00001C00001C0 +0001C0000380000380000380000380000700000700000700000700000F0000FFE000121C +7E9B10>I<007FF0000780000700000700000700000700000E00000E00000E00000E0000 +1C00001C00001C00001C0000380000380000380000380000700000700000700000700060 +E000E0E000C0C00081C0008380004700003C0000141D7B9B16>I<01FFC0FF003C003C00 +3800300038004000380080003801000070020000700400007010000070200000E0400000 +E0C00000E1C00000E5C00001C8E00001D0E00001E0E00001C07000038070000380700003 +803800038038000700380007001C0007001C0007001C000F001E00FFE0FF80201C7D9B20 +>I<01FFE0003C0000380000380000380000380000700000700000700000700000E00000 +E00000E00000E00001C00001C00001C00001C00003800803800803800803801007001007 +00300700600700E00E03C0FFFFC0151C7D9B1A>I<01FE0007F8003E000780002E000F00 +002E001700002E001700002E002700004E002E00004E004E00004E004E00004E008E0000 +8E011C00008E011C00008E021C00008E021C000107043800010704380001070838000107 +1038000207107000020720700002072070000207407000040740E000040780E000040700 +E0000C0700E0001C0601E000FF861FFC00251C7D9B25>I<01FC03FE001C0070003C0060 +002E0040002E0040002E0040004700800047008000470080004380800083810000838100 +008181000081C1000101C2000101C2000100E2000100E2000200E4000200740002007400 +020074000400380004003800040038000C0018001C001000FF8010001F1C7D9B1F>I<01 +FFFC00003C070000380380003801C0003801C0003801C0007003C0007003C0007003C000 +70038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C0000003 +800000038000000380000003800000070000000700000007000000070000000F000000FF +E000001A1C7D9B1C>80 D<01FFF800003C0E000038070000380380003803800038038000 +700780007007800070078000700F0000E00E0000E01C0000E0700000FFC00001C0C00001 +C0600001C0700001C07000038070000380700003807000038070000700F0000700F04007 +00F0400700F0800F007880FFE0790000001E001A1D7D9B1E>82 D<000F8400304C00403C +00801801001803001803001806001006001006000007000007000003E00003FC0001FF00 +007F800007C00001C00001C00000C00000C02000C02000C0600180600180600300600200 +F00400CC180083E000161E7D9C17>I<1FFFFFC01C0701C0300E00C0200E0080600E0080 +400E0080401C0080801C0080801C0080001C000000380000003800000038000000380000 +0070000000700000007000000070000000E0000000E0000000E0000000E0000001C00000 +01C0000001C0000001C0000003C000007FFE00001A1C799B1E>I<7FF0FF800F001C000E +0018000E0010000E0010000E0010001C0020001C0020001C0020001C0020003800400038 +004000380040003800400070008000700080007000800070008000E0010000E0010000E0 +010000E0020000E0020000E0040000E00400006008000030300000104000000F80000019 +1D779B1F>III89 D<00FFFF8000F0070001C00E0001801E0001001C0001003800020070000200E0 +000201C0000001C0000003800000070000000E0000001C0000001C000000380000007000 +0000E0080001C0100001C0100003801000070020000E0020001C0060003C00C0003801C0 +0070078000FFFF8000191C7D9B19>I<020006001B0031006080C0800906759C15>94 +D<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C +380F127B9115>97 D<3F00070007000E000E000E000E001C001C001C001C0039C03E6038 +3038307038703870387038E070E070E070E060E0E0C0C0C1C0618063003C000D1D7B9C13 +>I<01F007080C08181C3838300070007000E000E000E000E000E000E008E010602030C0 +1F000E127B9113>I<001F80000380000380000700000700000700000700000E00000E00 +000E00000E0003DC00063C000C3C00181C00383800303800703800703800E07000E07000 +E07000E07000E0E200C0E200C0E20061E4006264003C3800111D7B9C15>I<01E007100C +1018083810701070607F80E000E000E000E000E000E0086010602030C01F000D127B9113 +>I<0003C0000670000C70001C60001C00001C0000380000380000380000380000380003 +FF8000700000700000700000700000700000E00000E00000E00000E00000E00001C00001 +C00001C00001C00001C000038000038000038000030000030000070000C60000E60000CC +00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C +383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D9113>I<0F +C00001C00001C0000380000380000380000380000700000700000700000700000E78000E +8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C0038380070388070 +3880707080707100E03200601C00111D7D9C15>I<018003800100000000000000000000 +00000000001C002600470047008E008E000E001C001C001C003800380071007100710072 +0072003C00091C7C9B0D>I<0FC00001C00001C000038000038000038000038000070000 +0700000700000700000E0F000E11000E23800E43801C83001C80001D00001E00003F8000 +39C00038E00038E00070E20070E20070E20070E400E06400603800111D7D9C13>107 +D<1F800380038007000700070007000E000E000E000E001C001C001C001C003800380038 +0038007000700070007000E400E400E400E40068003800091D7C9C0B>I<3C1E07802663 +18C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C0701C01C0701C01C07 +01C01C070380380E0388380E0388380E0708380E0710701C0320300C01C01D127C9122> +I<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E001C0E001C1C +00381C40381C40383840383880701900300E0012127C9117>I<01E007180C0C180C380C +300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>I<078700 +04D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C0038180070380 +0703000707000706000E8C000E70000E00000E00001C00001C00001C00001C00003C0000 +FF8000131A7F9115>I<03C4062C0C3C181C3838303870387038E070E070E070E070E0E0 +C0E0C0E061E063C03DC001C001C0038003800380038007803FF00E1A7B9113>I<3C3C26 +C2468747078E068E000E000E001C001C001C001C0038003800380038007000300010127C +9112>I<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C0308060 +60C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E +000E000E000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E03 +00270700470700470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C003838 +803838801838801839001C5900078E0011127C9116>I<1E06270E470E4706870287020E +020E021C041C041C041C0818083808181018200C4007800F127C9113>I<1E0183270387 +4703874703838707018707010E07010E07011C0E021C0E021C0E021C0E04180C04181C04 +181C081C1C100C263007C3C018127C911C>I<070E0019910010E38020E38041C30041C0 +0001C00001C000038000038000038000038000070200670200E70400CB04008B080070F0 +0011127D9113>I<1E03270747074707870E870E0E0E0E0E1C1C1C1C1C1C1C1C38383838 +183818381C7007F00070007000E0E0C0E1C0818047003C00101A7C9114>I<038207C20F +EC08381008001000200040008001000200040008081008383067F043E081C00F127D9111 +>I E /Fo 18 90 df45 D<0000700000000070000000 +00F800000000F800000000F800000001FC00000001FC00000003FE00000003FE00000003 +FE00000006FF000000067F0000000E7F8000000C3F8000000C3F800000183FC00000181F +C00000381FE00000300FE00000300FE00000600FF000006007F00000E007F80000FFFFF8 +0000FFFFF800018001FC00018001FC00038001FE00030000FE00030000FE000600007F00 +0600007F00FFE00FFFF8FFE00FFFF825227EA12A>65 D<0003FE0080001FFF818000FF01 +E38001F8003F8003E0001F8007C0000F800F800007801F800007803F000003803F000003 +807F000001807E000001807E00000180FE00000000FE00000000FE00000000FE00000000 +FE00000000FE00000000FE00000000FE000000007E000000007E000001807F000001803F +000001803F000003801F800003000F8000030007C000060003F0000C0001F800380000FF +00F000001FFFC0000003FE000021227DA128>67 D69 DI<0003FE0040001FFFC0C0007F00F1C001 +F8003FC003F0000FC007C00007C00FC00003C01F800003C03F000001C03F000001C07F00 +0000C07E000000C07E000000C0FE00000000FE00000000FE00000000FE00000000FE0000 +0000FE00000000FE00000000FE000FFFFC7E000FFFFC7F00001FC07F00001FC03F00001F +C03F00001FC01F80001FC00FC0001FC007E0001FC003F0001FC001FC003FC0007F80E7C0 +001FFFC3C00003FF00C026227DA12C>III76 DII<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E +001F80003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0 +FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE +00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80 +003F000FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC000023227D +A12A>II82 +D<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF00 +00FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F0000 +3FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F +>I<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003F801 +C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F80000 +0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 +03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 +F800000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127>I<7F +FFC1FFF07FFFC1FFF003FC000C0001FE00180000FE00380000FF007000007F806000003F +80C000003FC1C000001FE38000000FE30000000FF700000007FE00000003FC00000003FC +00000001FE00000000FE00000000FF00000000FF80000001FFC0000001BFC00000031FE0 +0000070FF000000E0FF000000C07F800001803FC00003803FC00003001FE00006000FF00 +00E000FF0001C0007F800180003FC0FFFC03FFFEFFFC03FFFE27227FA12A>88 +DI +E /Fp 83 128 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C0 +0E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C0 +0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 +7F87F8151D809C17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E01 +C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 +C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07E0 +0001C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00E00000 +0E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E +00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 +E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D80 +9C23>I18 D<1C1C3C3870C0800607779C15>I<6060F0F0 +F8F86868080808080808101010102020404080800D0C7F9C15>34 +D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018 +001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0 +00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D +9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0 +01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600 +06000C000C00180010002000400080000A2A7E9E10>I<01800180018001804182F18F39 +9C0FF003C003C00FF0399CF18F4182018001800180018010127E9E15>I<60F0F0701010 +101020204080040C7C830C>44 DI<60F0F06004047C830C>I<00 +010003000600060006000C000C000C0018001800180030003000300060006000C000C000 +C0018001800180030003000300060006000C000C000C0018001800180030003000300060 +0060006000C000C00010297E9E15>I<03C00C301818300C300C700E60066006E007E007 +E007E007E007E007E007E007E007E007E007E007E00760066006700E300C300C18180C30 +07E0101D7E9B15>I<030007003F00C70007000700070007000700070007000700070007 +000700070007000700070007000700070007000700070007000F80FFF80D1C7C9B15>I< +07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C003800700060 +00C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C78 +1E780E781E381E001C001C00180030006007E00030001C001C000E000F000F700FF80FF8 +0FF80FF00E401C201C183007E0101D7E9B15>I<000C00000C00001C00003C00003C0000 +5C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C00301C00201C0040 +1C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001FFC0121C7F9B +15>I<300C3FF83FF03FC020002000200020002000200023E024302818301C200E000E00 +0F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15>I<00F0030C +06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E007E007E007 +E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF807FFF007FFF +0040020080040080040080080000100000100000200000600000400000C00000C00001C0 +000180000180000380000380000380000380000780000780000780000780000780000780 +00030000111D7E9B15>I<03E00C301008200C20066006600660067006780C3E083FB01F +E007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C1007E0101D7E +9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E0076007700F300F +18170C2707C700060006000E300C780C78187010203030C00F80101D7E9B15>I<60F0F0 +600000000000000000000060F0F06004127C910C>I<60F0F06000000000000000000000 +60F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE0000000000000000000 +0000000000000000000000000000000000000000000000FFFFFFE07FFFFFC01B0C7E8F20 +>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C0008001800100010001 +000100010001000000000000000000000003000780078003000F1D7E9C14>63 +D<000600000006000000060000000F0000000F0000000F00000017800000178000001780 +000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F0000180F8 +000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F +001E001F00FF80FFF01C1D7F9C1F>65 DI< +001F808000E0618001801980070007800E0003801C0003801C0001803800018078000080 +7800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000 +F0000000700000807800008078000080380000801C0001001C0001000E00020007000400 +0180080000E03000001FC000191E7E9C1E>IIII<001F8080 +00E0618001801980070007800E0003801C0003801C000180380001807800008078000080 +70000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F80 +700007807800078078000780380007801C0007801C0007800E00078007000B8001801180 +00E06080001F80001C1E7E9C21>III<1FFF00F8007800780078007800780078007800 +78007800780078007800780078007800780078007800787078F878F878F878F0F040E021 +C01F00101D7F9B15>IIIII<003F800000E0E0000380380007001C000E00 +0E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F000 +01E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C03800 +03803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C20> +II<003F800000E0E0000380380007001C00 +0E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0 +F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0 +380003803C0E07801C1107000E208E0007205C0003A0780000F0E020003FE02000006020 +00003060000038E000003FC000003FC000001F8000000F001B257E9C20>II<07E0801C1980300580700380600180E00180E00080E00080E000 +80F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001 +C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7F +FFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F002000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003 +FFFC001B1C7F9B1E>IIII89 D<7FFFF07C01F07001E06003C0 +6003C0400780400F80400F00401E00001E00003C00007C0000780000F00000F00001E000 +03E00003C0100780100780100F00101F00301E00203C00203C00607800E0F803E0FFFFE0 +141C7E9B19>I<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15> +92 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00 +601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 +DI<07E00C301878307870306000E0 +00E000E000E000E000E00060007004300418080C3007C00E127E9112>I<003F00000700 +00070000070000070000070000070000070000070000070000070003E7000C1700180F00 +300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700 +180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000E000 +E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E +000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E +000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C +00381C00381C001818001C38000C300013C0001000003000001800001FF8001FFF001FFF +803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>II<18003C003C00180000000000000000 +00000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000000000000000000000 +0FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E060E0F0C0F1C061803E000B25839C0D>IIIII<03F0000E1C00180600300300700380600180E001 +C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F0001212 +7F9115>II<03C1000C3300180B00300F00700700700700 +E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007C700 +000700000700000700000700000700000700000700003FE0131A7E9116>II<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D060 +8FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C +001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIII<7F8FF00F03800F030007020003840001C80001 +D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF815 +12809116>II<7FFC70386038407040F040E041C003C003 +8007000F040E041C043C0C380870087038FFF80E127F9112>II<60 +60F0F0F0F060600C047C9C15>127 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 1929 50 a Fp(1)52 195 y Fo(A)19 b(T)-5 b(AX)n(ONOMY)20 +b(OF)f(P)-5 b(ARALLEL)19 b(GAME-TREE)f(SEAR)n(CH)h(ALGORITHMS)766 +274 y Fn(Mark)c(G.)g(Br)n(o)n(ckington)1165 259 y Fm(1)799 +353 y Fp(Edmon)o(ton,)d(Alb)q(erta)0 496 y Fl(1)48 b(INTR)o(ODUCTION)0 +617 y Fp(In)14 b(the)h(last)f(t)o(w)o(en)o(t)o(y)h(y)o(ears,)f(a)g(n)o +(um)o(b)q(er)g(of)g(articles)g(and)h(theses)h(ha)o(v)o(e)e(b)q(een)h +(written)g(that)f(con)o(tain)g(inno)o(v)n(ativ)o(e)f(parallel)0 +666 y(game-tree)i(searc)o(h)i(algorithms.)k(The)c(authors)f(of)f(the)h +(parallel)f(algorithms)e(ha)o(v)o(e)j(sho)o(wn)f(ho)o(w)h(their)g(w)o +(ork)f(is)h(unique)0 716 y(and)11 b(in)o(teresting.)18 +b(In)11 b(some)f(cases,)j(this)e(has)h(b)q(een)g(sho)o(wn)f(b)o(y)g +(classifying)g(other)g(algorithms)e(b)o(y)i(listing)f(implemen)o +(tation)0 766 y(details)h(\(Bal)g(and)g(v)n(an)f(Renesse,)j(1986;)d +(Ciancarini,)g(1994\).)17 b(T)m(o)10 b(the)i(author's)f(kno)o(wledge,)g +(no)f(attempt)h(has)g(b)q(een)h(made)0 816 y(to)j(classify)g(the)h +(algorithms)d(based)j(solely)e(on)h(their)h(algorithmic)d(prop)q +(erties.)23 b(A)15 b(taxonom)o(y)e(w)o(ould)i(mak)o(e)f(it)g(easy)i(to) +0 866 y(ascertain)i(what)e(has)h(and)g(has)g(not)g(b)q(een)g +(accomplished)f(in)h(parallel)e(game-tree)i(searc)o(h.)28 +b(The)17 b(presen)o(tation)h(of)e(this)0 916 y(t)o(yp)q(e)e(of)g +(taxonom)o(y)d(is)j(the)g(main)e(con)o(tribution)i(of)f(this)h(pap)q +(er.)0 994 y(The)19 b(taxonom)o(y)c(will)i(b)q(e)i(brok)o(en)f(in)o(to) +g(t)o(w)o(o)f(ma)r(jor)g(categories:)27 b Fk(\013\014)r +Fp(-based)19 b(algorithms,)e(and)h(algorithms)d(based)k(on)0 +1044 y(other)c(searc)o(h)h(paradigms)d(\()p Fk(S)r(S)r(S)r +Fj(\003)p Fp(,)j Fk(E)r(R)p Fp(,)e(and)h(theoretical)g(metho)q(ds\).)20 +b(F)m(or)14 b(the)h(former)f(category)m(,)g(a)g(table)h(is)f(giv)o(en)g +(to)0 1094 y(isolate)i(the)h(fundamen)o(tal)e(di\013erences)j(b)q(et)o +(w)o(een)g(the)g(algorithms.)23 b(The)17 b(table)g(is)f(divided)g(in)o +(to)g(t)o(w)o(o)g(parts:)24 b(the)17 b(\014rst)0 1144 +y(part)g(con)o(tains)g(c)o(haracteristics)i(of)e(the)h +Fk(\013\014)r Fp(-based)g(algorithms,)d(while)i(the)g(second)i(part)e +(con)o(tains)g(details)g(ab)q(out)g(an)0 1194 y(implemen)o(tatio)o(n)9 +b(of)i(eac)o(h)i(algorithm.)h(Section)f(2)e(describ)q(es)j(the)f(v)n +(arious)e(columns)f(giv)o(en)i(in)f(the)h(table,)g(and)g(then)g(giv)o +(es)0 1243 y(some)h(brief)h(details)g(on)f(the)i(algorithms)c(con)o +(tained)j(therein.)0 1322 y(The)j(algorithms)e(based)i(on)g(other)g +(searc)o(h)h(paradigms)d(are)j(giv)o(en)e(in)g(Section)h(3.)27 +b(Due)17 b(to)g(the)g(v)n(aried)g(nature)g(of)f(the)0 +1372 y(metho)q(ds,)c(a)h(brief)g(description)h(is)f(giv)o(en)f(for)h +(eac)o(h)h(of)e(the)i(algorithms)d(and)i(no)f(attempt)h(has)g(b)q(een)h +(made)e(to)h(categorize)0 1422 y(them)h(to)g(the)h(same)f(exten)o(t)h +(as)g(the)g Fk(\013\014)r Fp(-based)h(algorithms.)h(The)e(implemen)o +(tation)c(details)j(ha)o(v)o(e)h(not)f(b)q(een)i(organized)0 +1472 y(in)o(to)e(a)g(table,)g(since)h(some)e(of)h(the)h(algorithms)d +(giv)o(en)i(are)h(of)f(a)g(theoretical)h(nature)g(and)f(ha)o(v)o(e)g +(not)h(b)q(een)g(implemen)o(ted)0 1522 y(or)f(sim)o(ulated.)0 +1600 y(The)g(\014nal)g(section)g(deals)g(with)g(some)f(conclusions)h +(that)g(can)g(b)q(e)h(dra)o(wn)e(from)f(the)j(taxonom)o(y)m(.)0 +1744 y Fl(2)48 b Fk(\013\014)r Fl(-BASED)15 b(P)l(ARALLEL)g(GAME-TREE)i +(SEAR)o(CH)0 1864 y Fp(This)e(section)h(discusses)h(algorithms)c(based) +i(on)g Fk(\013\014)j Fp(and)d(will)e(b)q(e)j(split)f(in)o(to)f(four)h +(subsections.)23 b(Sections)16 b(2.1)e(and)h(2.2)0 1914 +y(will)e(b)q(e)i(used)h(to)e(describ)q(e)j(the)e(columns)e(in)h(T)m +(ables)g(1)h(and)f(2,)g(resp)q(ectiv)o(ely)m(.)21 b(The)15 +b(description)g(of)f(the)i(algorithms)c(has)0 1964 y(b)q(een)i(divided) +e(in)o(to)g(t)o(w)o(o)g(eras.)18 b(Section)13 b(2.3)f(co)o(v)o(ers)h(w) +o(ork)f(\014rst)i(submitted)e(up)g(to)h(June,)g(1987.)j(Most)d(of)f +(the)h(w)o(ork)g(from)0 2014 y(this)k(era)g(describ)q(es)i(algorithms)c +(to)h(b)q(e)i(used)f(on)g(a)g(limited)d(n)o(um)o(b)q(er)i(of)h(pro)q +(cessors.)29 b(Section)17 b(2.4)f(co)o(v)o(ers)h(w)o(ork)g(that)0 +2064 y(w)o(as)f(\014rst)i(submitted)e(on)g(or)g(after)h(July)m(,)f +(1987.)25 b(The)17 b(ma)r(jorit)o(y)d(of)i(the)i(algorithms)c(from)h +(this)h(era)h(are)g(designed)g(for)0 2113 y(implemen)o(tatio)o(n)12 +b(on)j(massiv)o(ely-parallel)c(hardw)o(are)k(systems,)g(whic)o(h)f(w)o +(ere)i(una)o(v)n(ailable)d(to)h(most)g(researc)o(hers)j(b)q(efore)0 +2163 y(1987.)0 2302 y Fl(2.1)48 b(Comparison)14 b(of)h(the)g +Fk(\013\014)j Fl(Algorithms)0 2408 y Fp(T)m(able)13 b(1)h(summarizes)e +(and)i(classi\014es)g(the)h(v)n(arious)e Fk(\013\014)r +Fp(-based)i(algorithms,)c(and)j(is)f(divided)h(in)o(to)f(\014v)o(e)h +(columns.)0 2487 y(The)j(\014rst)g(column)d(giv)o(es)j(the)f(name)g(of) +f(the)i(algorithm,)d(and)i(the)h(reference)h(that)f(con)o(tains)f(the)h +(most)e(details)h(ab)q(out)0 2537 y(the)f(algorithm.)k(F)m(or)14 +b(example,)g(the)h(Y)m(oung)f(Brothers)j(W)m(ait)c(concept)j(has)f(b)q +(een)h(describ)q(ed)h(in)d(man)o(y)f(pap)q(ers,)j(but)f(all)0 +2587 y(of)e(the)i(algorithm's)c(details)j(are)g(lo)q(cated)g(in)f(F)m +(eldmann's)f(thesis)j(\(1993\).)p 0 2626 780 2 v 46 2652 +a Fi(1)64 2664 y Fh(Departmen)o(t)8 b(of)j(Computing)e(Science,)h(Univ) +o(ersit)o(y)g(of)h(Alb)q(erta,)f(Edmon)o(ton,)f(Alb)q(erta,)h(Canada,)g +(T6G)i(2H1.)0 2704 y(Email:)i Fg(brock@cs.ua)o(lb)o(ert)o(a.c)o(a)p +eop +%%Page: 2 2 +2 1 bop 0 50 a Fp(2)603 b(ICCA)14 b(Journal)f(Submission)601 +b(June)15 b(12,)e(1996)p 56 488 1827 2 v 56 498 V 55 +538 2 40 v 317 526 a Fh(Algorithm)p 735 538 V 283 w(Date)e(First)p +944 538 V 70 w(Pro)q(cessor)p 1182 538 V 1182 538 V 133 +w(P)o(arallelism)p 1532 538 V 1532 538 V 138 w(Sync)o(hroniza)o(tion)p +1882 538 V 55 577 V 308 565 a(\(Reference\))p 735 577 +V 278 w(Describ)q(ed)p 944 577 V 62 w(Hierarc)o(h)o(y/)p +1182 577 V 1182 577 V 121 w(P)o(ossible)f(A)o(t)p 1532 +577 V 1532 577 V 146 w(Done)h(A)o(t)h(These)p 1882 577 +V 55 616 V 735 616 V 944 616 V 1006 605 a(Con)o(trol)p +1182 616 V 1182 616 V 136 w(These)f(No)q(des)p 1532 616 +V 1532 616 V 204 w(No)q(des)p 1882 616 V 55 656 V 735 +656 V 944 656 V 970 644 a(Distribution)p 1182 656 V 1532 +656 V 1882 656 V 56 658 1827 2 v 56 668 V 55 707 2 40 +v 81 695 a(P)o(arallel)e(Aspiration)h(Searc)o(h)p 735 +707 V 319 w(1978)p 944 707 V 133 w(Static/)p 1182 707 +V 88 w(Ro)q(ot)h(\()p Ff(\013\014)h Fh(windo)o(w\))p +1532 707 V 62 w(Ro)q(ot)p 1882 707 V 55 746 V 81 735 +a(\(Baudet,)d(1978\))p 735 746 V 944 746 V 663 w(Cen)o(tralized)p +1182 746 V 1532 746 V 1882 746 V 56 748 1827 2 v 55 787 +2 40 v 81 776 a(Mandatory)g(W)m(ork)i(First)p 735 787 +V 372 w(1979)p 944 787 V 133 w(Static/)p 1182 787 V 88 +w(T)o(yp)q(e)g(1+3+Left-)p 1532 787 V 94 w(Bad)g(T)o(yp)q(e)g(2)p +1882 787 V 55 827 V 81 815 a(\(Akl,)g(Barnard)e(and)i(Doran,)f(1982\))p +735 827 V 944 827 V 395 w(Cen)o(tralized)p 1182 827 V +54 w(most)g(c)o(hild)h(of)g(3)p 1532 827 V 1882 827 V +56 829 1827 2 v 55 868 2 40 v 81 856 a(T)m(ree)g(Splitting)p +735 868 V 509 w(1980)p 944 868 V 133 w(Static/)p 1182 +868 V 88 w(T)m(op)g(k-ply)p 1532 868 V 199 w(Ro)q(ot)p +1882 868 V 55 907 V 81 896 a(\(Fink)o(el)f(and)g(Fish)o(burn,)g(1982\)) +p 735 907 V 944 907 V 460 w(Cen)o(tralized)p 1182 907 +V 1532 907 V 1882 907 V 56 909 1827 2 v 55 949 2 40 v +81 937 a(PV-Split)p 735 949 V 588 w(1981)p 944 949 V +133 w(Static/)p 1182 949 V 88 w(T)o(yp)q(e)h(1)p 1532 +949 V 241 w(T)o(yp)q(e)g(1)p 1882 949 V 55 988 V 81 976 +a(\(Marsland)e(and)i(Campb)q(ell,)e(1982\))p 735 988 +V 944 988 V 402 w(Cen)o(tralized)p 1182 988 V 1532 988 +V 1882 988 V 56 990 1827 2 v 55 1029 2 40 v 81 1017 a(Key)i(No)q(de)p +735 1029 V 570 w(1983)p 944 1029 V 133 w(Static/)p 1182 +1029 V 88 w(T)o(yp)q(e)g(1+3+Left-)p 1532 1029 V 94 w(Bad)g(T)o(yp)q(e) +g(2)p 1882 1029 V 55 1069 V 81 1057 a(\(Lindstrom,)d(1983\))p +735 1069 V 944 1069 V 615 w(Cen)o(tralized)p 1182 1069 +V 54 w(most)i(c)o(hild)h(of)g(3)p 1532 1069 V 1882 1069 +V 56 1070 1827 2 v 55 1110 2 40 v 81 1098 a(UIDP)m(ABS)p +735 1110 V 566 w(1986)p 944 1110 V 133 w(Static/)p 1182 +1110 V 88 w(Ro)q(ot)p 1532 1110 V 273 w(None)p 1882 1110 +V 55 1149 V 81 1137 a(\(Newb)q(orn,)f(1988\))p 735 1149 +V 944 1149 V 635 w(Cen)o(tralized)p 1182 1149 V 1532 +1149 V 1882 1149 V 56 1151 1827 2 v 55 1190 2 40 v 81 +1178 a(DPVS)p 735 1190 V 601 w(01/1987)p 944 1190 V 81 +w(Dynamic/)p 1182 1190 V 64 w(T)o(yp)q(e)h(1+3+2)p 1532 +1190 V 151 w(T)o(yp)q(e)g(1+3+Bad)g(2)p 1882 1190 V 55 +1230 V 81 1218 a(\(Sc)o(hae\013er,)d(1989\))p 735 1230 +V 944 1230 V 637 w(Cen)o(tralized)p 1182 1230 V 1532 +1230 V 1882 1230 V 56 1231 1827 2 v 55 1271 2 40 v 81 +1259 a(EPVS)p 735 1271 V 604 w(06/1987)p 944 1271 V 81 +w(Dynamic/)p 1182 1271 V 64 w(T)o(yp)q(e)j(1+3)p 1532 +1271 V 196 w(T)o(yp)q(e)g(1+3)p 1882 1271 V 55 1310 V +81 1298 a(\(Hy)o(att,)f(Suter)g(and)h(Nelson,)f(1989\))p +735 1310 V 944 1310 V 398 w(Cen)o(tralized)p 1182 1310 +V 1532 1310 V 1882 1310 V 56 1312 1827 2 v 55 1351 2 +40 v 81 1339 a(W)m(a)o(yco)q(ol)p 735 1351 V 592 w(1987)p +944 1351 V 109 w(Dynamic/)p 1182 1351 V 64 w(All,)h(except)f(T)o(yp)q +(e)h(2)p 1532 1351 V 63 w(No)q(des)g(with)g(TT)p 1882 +1351 V 55 1391 V 81 1379 a(\(F)m(elten)f(and)g(Otto,)h(1988\))p +735 1391 V 944 1391 V 527 w(Distributed)p 1182 1391 V +53 w(with)g(no)g(TT)i(en)o(try)p 1532 1391 V 76 w(&)f(no)f(cuto\013)p +1882 1391 V 56 1392 1827 2 v 55 1432 2 40 v 81 1420 a(Y)m(oung)f +(Brothers)g(W)m(ait)p 735 1432 V 369 w(10/1987)p 944 +1432 V 81 w(Dynamic/)p 1182 1432 V 64 w(T)o(yp)q(e)h(1+3+Bad)g(2)p +1532 1432 V 77 w(T)o(yp)q(e)g(1+Bad)g(2)p 1882 1432 V +55 1471 V 81 1459 a(\(F)m(eldmann,)d(1993\))p 735 1471 +V 944 1471 V 623 w(Distributed)p 1182 1471 V 1532 1471 +V 1882 1471 V 56 1473 1827 2 v 55 1512 2 40 v 81 1500 +a(Dynamic)h(T)m(ree)i(Splitting)p 735 1512 V 360 w(1988)p +944 1512 V 109 w(Dynamic/)p 1182 1512 V 64 w(T)o(yp)q(e)g(1+3+Bad)g(2)p +1532 1512 V 77 w(T)o(yp)q(e)g(1+Bad)g(2)p 1882 1512 V +55 1552 V 81 1540 a(\(Hy)o(att,)f(1988\))p 735 1552 V +944 1552 V 685 w(Distributed)p 1182 1552 V 1532 1552 +V 1882 1552 V 56 1553 1827 2 v 55 1593 2 40 v 81 1581 +a(Bound-and-)o(Bran)o(c)o(h)p 735 1593 V 403 w(08/1988)p +944 1593 V 81 w(Dynamic/)p 1182 1593 V 64 w(T)o(yp)q(e)h(1+3+Bad)g(2)p +1532 1593 V 77 w(T)o(yp)q(e)g(1+Bad)g(2)p 1882 1593 V +55 1632 V 81 1620 a(\(F)m(erguson)e(and)i(Korf,)g(1988\))p +735 1632 V 944 1632 V 486 w(Distributed)p 1182 1632 V +1532 1632 V 1882 1632 V 56 1634 1827 2 v 55 1673 2 40 +v 81 1661 a(Dela)o(y)o(ed)e(Branc)o(h)h(T)m(ree)i(Expansion)p +735 1673 V 226 w(1990)p 944 1673 V 133 w(Static/)p 1182 +1673 V 88 w(T)o(yp)q(e)f(1+3)p 1532 1673 V 196 w(Bad)g(T)o(yp)q(e)g(2)p +1882 1673 V 55 1713 V 81 1701 a(\(Hsu,)g(1990\))p 735 +1713 V 944 1713 V 714 w(Cen)o(tralized)p 1182 1713 V +1532 1713 V 1882 1713 V 56 1714 1827 2 v 55 1754 2 40 +v 81 1742 a(F)m(ron)o(tier)e(Splitting)p 735 1754 V 454 +w(1993)p 944 1754 V 109 w(Dynamic/)p 1182 1754 V 64 w(All)p +1532 1754 V 304 w(Ro)q(ot)p 1882 1754 V 55 1793 V 81 +1781 a(\(Lu,)h(1993\))p 735 1793 V 944 1793 V 733 w(Distributed)p +1182 1793 V 1532 1793 V 1882 1793 V 56 1795 1827 2 v +55 1834 2 40 v 81 1823 a Ff(\013\014)r Fh(*)p 735 1834 +V 661 w(1993)p 944 1834 V 109 w(Dynamic/)p 1182 1834 +V 64 w(T)o(yp)q(e)h(1+3)p 1532 1834 V 196 w(T)o(yp)q(e)g(1+3+Bad)g(2)p +1882 1834 V 55 1874 V 81 1862 a(\(Da)o(vid,)e(1993\))p +735 1874 V 944 1874 V 683 w(Distributed)p 1182 1874 V +1532 1874 V 1882 1874 V 56 1875 1827 2 v 55 1915 2 40 +v 81 1903 a(CABP)p 735 1915 V 624 w(1994)p 944 1915 V +133 w(Static/)p 1182 1915 V 88 w(T)o(yp)q(e)i(1+3)p 1532 +1915 V 196 w(Bad)g(T)o(yp)q(e)g(2)p 1882 1915 V 55 1954 +V 81 1943 a(\(Cung,)f(1994\))p 735 1954 V 944 1954 V +692 w(Cen)o(tralized)p 1182 1954 V 1532 1954 V 1882 1954 +V 56 1956 1827 2 v 55 1995 2 40 v 81 1984 a(Jam)o(b)q(oree)p +735 1995 V 574 w(1994)p 944 1995 V 109 w(Dynamic/)p 1182 +1995 V 64 w(T)o(yp)q(e)h(1+3+Bad)g(2)p 1532 1995 V 77 +w(T)o(yp)q(e)g(1+Bad)g(2)p 1882 1995 V 55 2035 V 81 2023 +a(\(Kuszmaul,)e(1994\))p 735 2035 V 944 2035 V 621 w(Distributed)p +1182 2035 V 1532 2035 V 1882 2035 V 56 2037 1827 2 v +55 2076 2 40 v 81 2064 a(ABD)o(AD)o(A)p 735 2076 V 569 +w(1995)p 944 2076 V 109 w(Dynamic/)p 1182 2076 V 64 w(T)o(yp)q(e)i +(1+3+Bad)g(2)p 1532 2076 V 77 w(T)o(yp)q(e)g(1+Bad)g(2)p +1882 2076 V 55 2115 V 81 2104 a(\(W)m(eill,)f(1995\))p +735 2115 V 944 2115 V 696 w(Distributed)p 1182 2115 V +1532 2115 V 1882 2115 V 56 2117 1827 2 v 55 2157 2 40 +v 81 2145 a(Dynamic)f(Multiple)h(PV-Split)p 735 2157 +V 297 w(1995)p 944 2157 V 109 w(Dynamic/)p 1182 2157 +V 64 w(No)q(des)h(within)p 1532 2157 V 145 w(No)q(des)g(within)p +1882 2157 V 55 2196 V 81 2184 a(\(Marsland)e(and)i(Gao,)f(1995\))p +735 2196 V 944 2196 V 487 w(Distributed)p 1182 2196 V +53 w(PV)i(set)p 1532 2196 V 244 w(PV)g(set)p 1882 2196 +V 56 2198 1827 2 v 55 2237 2 40 v 81 2225 a(APHID)p 735 +2237 V 608 w(1996)p 944 2237 V 133 w(Static/)p 1182 2237 +V 88 w(T)m(op)f(k-ply)p 1532 2237 V 199 w(None)p 1882 +2237 V 55 2276 V 81 2265 a(\(Bro)q(c)o(kingto)o(n)e(and)h(Sc)o +(hae\013er,)f(1996\))p 735 2276 V 944 2276 V 368 w(Cen)o(tralized)p +1182 2276 V 1532 2276 V 1882 2276 V 56 2278 1827 2 v +56 2288 V 312 2363 a Fp(T)m(able)14 b(1:)j(Comparison)12 +b(of)i(P)o(arallel)e Fk(\013\014)r Fp(-based)j(Game-T)m(ree)e(Searc)o +(h)h(Algorithms)p eop +%%Page: 3 3 +3 2 bop 467 50 a Fe(A)14 b(T)m(axonom)o(y)d(of)i(P)o(arallel)g(Game-T)m +(ree)g(Searc)o(h)h(Algorithms)465 b Fp(3)0 195 y(The)18 +b(second)h(column)e(giv)o(es)g(the)i(date)f(that)g(the)g(algorithm)d(w) +o(as)j(\014rst)h(published)f(or)g(receiv)o(ed)h(b)o(y)e(a)h(journal.)29 +b(This)0 245 y(information)11 b(has)j(b)q(een)h(used)g(to)f(order)g +(the)h(algorithms)c(in)o(to)i(c)o(hronological)g(order.)0 +324 y(The)20 b(third)g(column)f(con)o(tains)h(information)d(on)j(b)q +(oth)g(the)h(pro)q(cessor)g(hierarc)o(h)o(y)g(and)f(the)g(distribution) +g(of)f(con)o(trol)0 374 y(within)12 b(the)h(algorithm.)i +Fn(Pr)n(o)n(c)n(essor)e(Hier)n(ar)n(chy)e Fp(categorizes)j(algorithms)c +(based)j(on)g(the)g(rigidit)o(y)e(of)h(the)h(pro)q(cessor)h(tree.)0 +423 y(If)g(the)g(pro)q(cessor)i(tree)f(is)f Fn(static)p +Fp(,)f(one)h(or)g(more)f(pro)q(cessors)j(are)f(designated)f(as)g +(masters,)g(and)f(con)o(trol)h(the)h(other)f(sla)o(v)o(e)0 +473 y(pro)q(cessors.)20 b(This)14 b(hierarc)o(h)o(y)g(is)g(\014xed)g +(throughout)g(a)f(searc)o(h)i(of)e(the)i(game-tree.)i(A)d +Fn(dynamic)h Fp(pro)q(cessor)g(tree)g(c)o(hanges)0 523 +y(based)f(on)g(the)g(distribution)f(of)h(busy)g(and)f(idle)g(pro)q +(cessors.)21 b Fn(Contr)n(ol)14 b(Distribution)f Fp(describ)q(es)j +(whether)f(the)f(con)o(trol)g(of)0 573 y(the)i(algorithm)c(is)j +Fn(c)n(entr)n(alize)n(d)g Fp(on)g(a)g(small)e(n)o(um)o(b)q(er)h(of)h +(masters)g(\(e.g.)21 b(PV-Split\),)15 b(or)g(could)g(b)q(e)h +Fn(distribute)n(d)f Fp(amongst)0 623 y(all)e(pro)q(cessors)j(\(e.g.)i +(Y)m(oung)13 b(Brothers)i(W)m(ait\).)0 702 y(The)e(fourth)g(column)f +(describ)q(es)j(the)e(t)o(ypical)f(no)q(des)i(of)e(the)i(game-tree)f +(where)h(parallelism)c(could)j(o)q(ccur.)19 b(The)13 +b(descrip-)0 751 y(tion)f(is)h(based)g(on)g(the)g(classi\014cation)f +(of)g(the)i(minim)o(al)9 b(game-tree)j(b)o(y)h(Kn)o(uth)g(and)f(Mo)q +(ore)h(\(1975\).)k(Note)c(that)g(the)g(t)o(yp)q(e)0 801 +y(2)h(\(cut)h(no)q(des\))g(ha)o(v)o(e)f(b)q(een)h(di\013eren)o(tiated)g +(in)o(to)f(t)o(w)o(o)f(sub-classes.)21 b(When)14 b(a)g(t)o(yp)q(e)h(2)e +(no)q(de)i(has)f(not)g(b)q(een)i(pruned)f(after)0 851 +y(searc)o(hing)f(the)h(\014rst)g(mo)o(v)o(e,)d(this)i(no)q(de)g(is)g +(called)g(a)g Fn(b)n(ad)h(typ)n(e)g(2)f Fp(no)q(de)h(due)f(to)g(its)g +(incorrect)h(mo)o(v)o(e)e(ordering.)18 b(Similarly)l(,)0 +901 y Fn(go)n(o)n(d)e(typ)n(e)f(2)g Fp(no)q(des)g(are)g(considered)h +(to)e(b)q(e)h(t)o(yp)q(e)g(2)f(no)q(des)h(that)g(cause)g(a)f(cuto\013)h +(after)g(examining)d(the)j(\014rst)g(mo)o(v)o(e)e(\(i.e.)0 +951 y(the)h(mo)o(v)o(e)f(ordering)h(is)f(correct\).)0 +1029 y(F)m(or)i(example,)g(PV-Split)g(only)g(implem)o(en)o(ts)f +(parallelism)f(at)i(t)o(yp)q(e)h(1)g(\(principal)f(v)n(ariation\))f(no) +q(des,)i(while)f(the)i(Y)m(oung)0 1079 y(Brothers)e(W)m(ait)e +(algorithms)e(allo)o(w)h(for)h(parallelism)e(at)j(t)o(yp)q(e)g(1,)f(t)o +(yp)q(e)h(3)g(\(all)e(no)q(des\))j(and)f(bad)f(t)o(yp)q(e)h(2)g(no)q +(des.)19 b(A)o(t)13 b(go)q(o)q(d)0 1129 y(t)o(yp)q(e)j(2)f(no)q(des,)i +(the)f(Y)m(oung)f(Brothers)i(W)m(ait)d(algorithm)f(will)h(searc)o(h)j +(the)f(\014rst)g(mo)o(v)o(e,)e(ac)o(hiev)o(e)i(a)f(cuto\013,)h(and)g +(none)g(of)0 1179 y(the)e(other)h(c)o(hildren)f(will)e(b)q(e)j(ev)n +(aluated.)0 1258 y(The)g(\014fth)g(column)e(indicates)i(whic)o(h)f(no)q +(des)i(of)e(the)h(game-tree)f(migh)o(t)f(ha)o(v)o(e)h(parallelism)e +(constrained)k(b)o(y)e(w)o(aiting)f(for)0 1308 y(the)f(\014rst)h +Fk(k)f Fp(c)o(hildren)g(to)g(b)q(e)g(ev)n(aluated.)17 +b(F)m(or)12 b(example,)e(bad)i(t)o(yp)q(e)g(2)f(no)q(des)i(are)f(sync)o +(hronization)g(p)q(oin)o(ts)f(for)h(Akl)f Fn(et.)h(al)p +Fp('s)0 1357 y(Mandatory)f(W)m(ork)g(First)g(algorithm,)e(while)i(t)o +(yp)q(e)h(1)f(and)g(bad)h(t)o(yp)q(e)g(2)f(no)q(des)h(are)g(sync)o +(hronization)f(p)q(oin)o(ts)h(for)f(F)m(erguson)0 1407 +y(and)j(Korf)s('s)g(Bound-and-Branc)o(h)g(algorithm.)0 +1554 y Fl(2.2)48 b(Comparison)14 b(of)h(the)g Fk(\013\014)j +Fl(Implemen)o(tati)o(ons)0 1662 y Fp(T)m(able)13 b(2)h(summarizes)e(an) +i(implem)o(en)o(tation)d(of)i(eac)o(h)i(algorithm)c(giv)o(en)i(in)h(T)m +(able)f(1.)0 1741 y(The)j(\014rst)g(column)d(giv)o(es)i(the)h(name)e +(of)g(the)i(algorithm,)c(and)j(the)h(reference)i(to)d(the)g(pap)q(er)h +(that)f(con)o(tains)g(the)h(details)0 1790 y(ab)q(out)e(the)i(implem)o +(en)o(tation.)h(In)e(some)e(cases,)j(this)e(pap)q(er)i(ma)o(y)c(b)q(e)j +(di\013eren)o(t)h(than)e(the)i(pap)q(er)f(whic)o(h)f(b)q(est)i(describ) +q(es)0 1840 y(the)e(algorithm.)0 1919 y(The)f(second)g(column)e +(describ)q(es)k(the)e(underlying)f(hardw)o(are)h(used)g(to)f(host)h +(the)g(selected)h(implemen)o(tation.)g(A)f(soft)o(w)o(are)0 +1969 y Fn(simulation)h Fp(of)f(hardw)o(are)h(is)g(denoted)h(in)e(this)h +(column.)0 2048 y(The)k(third)g(column)e(describ)q(es)j(the)f(t)o(yp)q +(e)h(of)e(game-trees)g(explored)h(b)o(y)f(the)i(algorithm.)26 +b(If)17 b(the)h(game-trees)g(are)g(not)0 2098 y(generated)12 +b(b)o(y)f(game-pla)o(ying)d(programs,)i(they)i(are)f(considered)h(to)f +(b)q(e)h Fn(arti\014cial)g(tr)n(e)n(es)p Fp(.)k(In)11 +b(terms)g(of)f(a)o(v)o(erage)h(branc)o(hing)0 2147 y(factor,)i(c)o +(hess)j(trees)f(are)g(wider)f(than)g(Othello)f(trees,)i(and)f(b)q(oth)g +(are)g(wider)g(than)g(c)o(hec)o(k)o(ers)i(trees.)0 2226 +y(The)j(fourth)g(column)e(denotes)i(whic)o(h)g(of)f(the)h(sequen)o +(tial)g(game-tree)f(searc)o(hing)h(algorithms)d(w)o(as)j(parallelized:) +27 b Fk(\013\014)0 2276 y Fp(\(Brudno,)21 b(1963;)g(Kn)o(uth)f(and)f +(Mo)q(ore,)i(1975\),)e(PVS)h(\(Marsland,)g(1983\))f(or)g(NegaScout)h +(\(Reinfeld,)g(1983\).)34 b(Some)0 2326 y(programs)17 +b(are)i(more)e(e\016cien)o(t)h(when)h(using)f(a)g(di\013eren)o(t)h +(sequen)o(tial)f(algorithm,)e(dep)q(ending)j(on)f(the)h(nature)g(of)e +(the)0 2376 y(ev)n(aluation)g(function)i(and)g(the)g(strength)h(of)e +(the)i(mo)o(v)o(e)d(ordering)i(tec)o(hniques)h(in)e(the)i(sequen)o +(tial)f(program.)31 b(Th)o(us,)0 2425 y(the)18 b(c)o(hoice)g(of)e +(sequen)o(tial)i(algorithm)c(to)j(compare)g(the)h(parallel)e(algorithm) +e(against)j(is)g(a)g(factor)g(to)g(consider)h(when)0 +2475 y(ev)n(aluating)12 b(a)i(parallel)f(algorithm's)e(results.)0 +2554 y(The)k(\014fth)g(column)f(describ)q(es)j(what)e(t)o(yp)q(e)h(of)e +(transp)q(osition)h(table)g(has)g(b)q(een)h(implemen)o(ted)d(for)i(the) +g(algorithm.)k(E\016-)0 2604 y(cien)o(t)c(sharing)f(of)g(transp)q +(osition)g(table)h(information)c(is)j(crucial)h(to)f(the)h(p)q +(erformance)f(of)g(a)g(parallel)g(game-tree)g(searc)o(h)0 +2654 y(algorithm.)g(The)d(t)o(w)o(o)f(main)e(metho)q(ds)h(are)i(a)f +Fn(distribute)n(d)f Fp(message-passing)h(transp)q(osition)g(table)g +(and)g(a)g Fn(shar)n(e)n(d-memory)0 2704 y Fp(transp)q(osition)k +(table.)k(Sp)q(ecial)c(hardw)o(are)g(is)g(required)g(to)g(implemen)o(t) +d(a)j(shared-memory)e(transp)q(osition)i(table,)f(but)h(is)p +eop +%%Page: 4 4 +4 3 bop 0 50 a Fp(4)603 b(ICCA)14 b(Journal)f(Submission)601 +b(June)15 b(12,)e(1996)p 9 508 1921 2 v 9 518 V 8 557 +2 40 v 270 545 a Fh(Algorithm)p 688 557 V 321 w(Hardw)o(are)p +961 557 V 143 w(T)m(est)p 1192 557 V 110 w(Sequen)o(tial)p +1405 557 V 84 w(T)m(rans-)p 1624 557 V 1624 557 V 146 +w(Sp)q(eedup)p 1928 557 V 8 597 V 261 585 a(\(Reference\))p +688 597 V 348 w(Used)p 961 597 V 153 w(Domain)p 1192 +597 V 80 w(Algorithm)p 1405 597 V 73 w(P)o(osition)p +1624 597 V 1624 597 V 125 w(Obtained)p 1928 597 V 8 636 +V 688 636 V 961 636 V 1192 636 V 1405 636 V 1473 624 +a(T)m(able)p 1624 636 V 1928 636 V 9 638 1921 2 v 9 648 +V 8 687 2 40 v 34 675 a(P)o(arallel)d(Aspiration)f(Searc)o(h)p +688 687 V 304 w(Sim)o(ulation)p 961 687 V 97 w(Arti\014cial)p +1192 687 V 130 w Ff(\013\014)p 1405 687 V 159 w Fh(none)p +1624 687 V 96 w Fd(\024)i Fh(6)g(for)g(large)f(n)p 1928 +687 V 8 727 V 34 715 a(\(Baudet,)f(1978\))p 688 727 V +961 727 V 771 w(T)m(rees)p 1192 727 V 1405 727 V 1624 +727 V 530 w(\(sim)o(ulated\))p 1928 727 V 9 728 1921 +2 v 8 768 2 40 v 34 756 a(Mandatory)g(W)m(ork)i(First)p +688 768 V 357 w(Sim)o(ulation)p 961 768 V 97 w(Arti\014cial)p +1192 768 V 130 w Ff(\013\014)p 1405 768 V 148 w Fh(\\score)p +1624 768 V 85 w Fd(\024)g Fh(6)g(for)g(large)f(n)p 1928 +768 V 8 807 V 34 795 a(\(Akl,)h(Barnard)f(and)g(Doran,)g(1982\))p +688 807 V 961 807 V 503 w(T)m(rees)p 1192 807 V 1405 +807 V 349 w(table")p 1624 807 V 85 w(\(sim)o(ulated\))p +1928 807 V 9 809 1921 2 v 8 848 2 40 v 34 836 a(T)m(ree)h(Splitting)p +688 848 V 506 w(LSI-11)f(&)p 961 848 V 114 w(Chec)o(k)o(ers)p +1192 848 V 130 w Ff(\013\014)p 1405 848 V 159 w Fh(none)p +1624 848 V 96 w(2.34)h(\(n=3\))p 1928 848 V 8 888 V 34 +876 a(\(Fink)o(el)f(and)g(Fish)o(burn,)g(1982\))p 688 +888 V 274 w(Sim)o(ulation)p 961 888 V 1192 888 V 1405 +888 V 1624 888 V 737 w(5.12)h(\(n=27,sim\))p 1928 888 +V 9 889 1921 2 v 8 929 2 40 v 34 917 a(PV-Split)p 688 +929 V 611 w(Sun)g(3)p 961 929 V 163 w(Chess)p 1192 929 +V 142 w(PVS)p 1405 929 V 145 w(lo)q(cal)p 1624 929 V +97 w(3.75)g(\(n=5\))p 1928 929 V 8 968 V 34 956 a(\(Marsland,)e +(Olafsson)g(and)h(Sc)o(hae\013er,)e(1985\))p 688 968 +V 95 w(Net)o(w)o(ork)p 961 968 V 1192 968 V 1405 968 +V 1624 968 V 1928 968 V 9 970 1921 2 v 8 1009 2 40 v +34 998 a(Key)j(No)q(de)p 688 1009 V 555 w(Sim)o(ulation)p +961 1009 V 97 w(Arti\014cial)p 1192 1009 V 130 w Ff(\013\014)p +1405 1009 V 159 w Fh(none)p 1624 1009 V 96 w(12.57)g(\(n=20\))p +1928 1009 V 8 1049 V 34 1037 a(\(Lindstrom,)e(1983\))p +688 1049 V 961 1049 V 722 w(T)m(rees)p 1192 1049 V 1405 +1049 V 1624 1049 V 1928 1049 V 9 1050 1921 2 v 8 1090 +2 40 v 34 1078 a(UIDP)m(ABS)p 688 1090 V 530 w(Data)h(General)p +961 1090 V 102 w(Chess)p 1192 1090 V 155 w Ff(\013\014)p +1405 1090 V 159 w Fh(lo)q(cal)p 1624 1090 V 97 w(3.94)h(\(n=8\))p +1928 1090 V 8 1129 V 34 1117 a(\(Newb)q(orn,)f(1988\))p +688 1129 V 420 w(\(mixed)f(pro)q(cs.\))p 961 1129 V 1192 +1129 V 1405 1129 V 1624 1129 V 1928 1129 V 9 1131 1921 +2 v 8 1170 2 40 v 34 1159 a(DPVS)p 688 1170 V 650 w(Sun)i(3)p +961 1170 V 163 w(Chess)p 1192 1170 V 95 w(NegaScout)p +1405 1170 V 52 w(TT.)i(Mgr)e(-)p 1624 1170 V 54 w(7.64)g(\(n=19\))p +1928 1170 V 8 1210 V 34 1198 a(\(Sc)o(hae\013er,)d(1989\))p +688 1210 V 469 w(Net)o(w)o(ork)p 961 1210 V 1192 1210 +V 1405 1210 V 555 w(messages)p 1624 1210 V 1928 1210 +V 9 1212 1921 2 v 8 1251 2 40 v 34 1239 a(EPVS)p 688 +1251 V 637 w(Sequen)o(t)p 961 1251 V 144 w(Chess)p 1192 +1251 V 155 w Ff(\013\014)p 1405 1251 V 145 w Fh(shared)p +1624 1251 V 82 w(5.93)j(\(n=16\))p 1928 1251 V 8 1290 +V 34 1279 a(\(Hy)o(att,)f(Suter)g(and)h(Nelson,)g(1989\))p +688 1290 V 233 w(Balance)p 961 1290 V 1192 1290 V 1405 +1290 V 565 w(memory)p 1624 1290 V 1928 1290 V 9 1292 +1921 2 v 8 1331 2 40 v 34 1320 a(W)m(a)o(yco)q(ol)p 688 +1331 V 576 w(Hyp)q(ercub)q(e)p 961 1331 V 122 w(Chess)p +1192 1331 V 155 w Ff(\013\014)p 1405 1331 V 111 w Fh(distributed)p +1624 1331 V 46 w(101)g(\(n=256\))p 1928 1331 V 8 1371 +V 34 1359 a(\(F)m(elten)f(and)g(Otto,)i(1988\))p 688 +1371 V 961 1371 V 1192 1371 V 1405 1371 V 1043 w(messages)p +1624 1371 V 1928 1371 V 9 1373 1921 2 v 8 1412 2 40 v +34 1400 a(Y)m(oung)f(Brothers)e(W)m(ait)p 688 1412 V +371 w(T)m(ransputers)p 961 1412 V 113 w(Chess)p 1192 +1412 V 95 w(NegaScout)p 1405 1412 V 48 w(distributed)p +1624 1412 V 46 w(142)i(\(n=256\))p 1928 1412 V 8 1451 +V 34 1440 a(\(F)m(eldmann,)e(1993\))p 688 1451 V 961 +1451 V 1192 1451 V 1405 1451 V 1139 w(messages)p 1624 +1451 V 63 w(344)i(\(n=1024\))p 1928 1451 V 9 1453 1921 +2 v 8 1493 2 40 v 34 1481 a(Dynamic)e(T)m(ree)j(Splitting)p +688 1493 V 366 w(Sequen)o(t)p 961 1493 V 144 w(Chess)p +1192 1493 V 155 w Ff(\013\014)p 1405 1493 V 145 w Fh(shared)p +1624 1493 V 82 w(8.81)f(\(n=16\))p 1928 1493 V 8 1532 +V 34 1520 a(\(Hy)o(att,)f(1988\))p 688 1532 V 521 w(Balance)p +961 1532 V 1192 1532 V 1405 1532 V 565 w(memory)p 1624 +1532 V 1928 1532 V 9 1534 1921 2 v 8 1573 2 40 v 34 1561 +a(Bound-and-Br)o(anc)n(h)p 688 1573 V 413 w(Hyp)q(ercub)q(e)p +961 1573 V 109 w(Othello)p 1192 1573 V 142 w Ff(\013\014)p +1405 1573 V 111 w Fh(distributed)p 1624 1573 V 46 w(12)h(\(n=32\))p +1928 1573 V 8 1613 V 34 1601 a(\(F)m(erguson)e(and)i(Korf,)g(1988\))p +688 1613 V 961 1613 V 1192 1613 V 1405 1613 V 1003 w(messages)p +1624 1613 V 1928 1613 V 9 1614 1921 2 v 8 1654 2 40 v +34 1642 a(Dela)o(y)o(ed)f(Branc)o(h)g(T)m(ree)h(Expansion)p +688 1654 V 211 w(Sim)o(ulation)p 961 1654 V 121 w(Chess)p +1192 1654 V 155 w Ff(\013\014)p 1405 1654 V 159 w Fh(none)p +1624 1654 V 96 w(350)g(\(n=1000,)p 1928 1654 V 8 1693 +V 34 1681 a(\(Hsu,)g(1990\))p 688 1693 V 961 1693 V 1192 +1693 V 1405 1693 V 1624 1693 V 1434 w(sim)o(ulated\))p +1928 1693 V 9 1695 1921 2 v 8 1734 2 40 v 34 1722 a(F)m(ron)o(tier)f +(Splitting)p 688 1734 V 482 w(BBN)p 961 1734 V 146 w(Chec)o(k)o(ers)p +1192 1734 V 70 w(NegaScout)p 1405 1734 V 82 w(shared)p +1624 1734 V 82 w(3.32)h(\(n=16\))p 1928 1734 V 8 1774 +V 34 1762 a(\(Lu,)g(1993\))p 688 1774 V 568 w(TC2000)p +961 1774 V 1192 1774 V 1405 1774 V 566 w(memory)p 1624 +1774 V 1928 1774 V 9 1775 1921 2 v 8 1815 2 40 v 34 1803 +a Ff(\013\014)r Fh(*)p 688 1815 V 637 w(T)m(ransputers)p +961 1815 V 113 w(Chess)p 1192 1815 V 95 w(NegaScout)p +1405 1815 V 48 w(distributed)p 1624 1815 V 46 w(6.5)g(\(n=8+8TT\))p +1928 1815 V 8 1854 V 34 1842 a(\(Da)o(vid,)f(1993\))p +688 1854 V 961 1854 V 1192 1854 V 1405 1854 V 1199 w(messages)p +1624 1854 V 1928 1854 V 9 1856 1921 2 v 8 1895 2 40 v +34 1883 a(CABP)p 688 1895 V 631 w(Sequen)o(t)p 961 1895 +V 120 w(Arti\014cial)p 1192 1895 V 130 w Ff(\013\014)p +1405 1895 V 145 w Fh(shared)p 1624 1895 V 82 w(4.6)h(\(n=9\))p +1928 1895 V 8 1935 V 34 1923 a(\(Cung,)f(1994\))p 688 +1935 V 528 w(Balance)p 961 1935 V 149 w(T)m(rees)p 1192 +1935 V 1405 1935 V 334 w(memory)p 1624 1935 V 1928 1935 +V 9 1936 1921 2 v 8 1976 2 40 v 34 1964 a(Jam)o(b)q(oree)p +688 1976 V 598 w(CM-5)p 961 1976 V 164 w(Chess)p 1192 +1976 V 95 w(NegaScout)p 1405 1976 V 48 w(distributed)p +1624 1976 V 46 w Fd(\031)p Fh(50)i(\(n=512\))p 1928 1976 +V 8 2015 V 34 2003 a(\(Kuszmaul,)d(1994\))p 688 2015 +V 961 2015 V 1192 2015 V 1405 2015 V 1138 w(messages)p +1624 2015 V 1928 2015 V 9 2017 1921 2 v 8 2056 2 40 v +34 2044 a(ABD)o(AD)o(A)p 688 2056 V 593 w(CM-5)p 961 +2056 V 164 w(Chess)p 1192 2056 V 95 w(NegaScout)p 1405 +2056 V 48 w(distributed)p 1624 2056 V 46 w(15.85)i(\(n=32\))p +1928 2056 V 8 2096 V 34 2084 a(\(W)m(eill,)f(1996\))p +688 2096 V 961 2096 V 754 w(\(&)i(Othello\))p 1192 2096 +V 1405 2096 V 277 w(messages)p 1624 2096 V 1928 2096 +V 9 2097 1921 2 v 8 2137 2 40 v 34 2125 a(Dynamic)d(Multiple)h +(PV-Split)p 688 2137 V 298 w(AP-1000)p 961 2137 V 116 +w(Arti\014cial)p 1192 2137 V 117 w(PVS)p 1405 2137 V +145 w(none)p 1624 2137 V 96 w Fd(\031)p Fh(32)i(\(n=64\))p +1928 2137 V 8 2176 V 34 2164 a(\(Marsland)e(and)g(Gao,)h(1995\))p +688 2176 V 961 2176 V 594 w(T)m(rees)p 1192 2176 V 1405 +2176 V 1624 2176 V 1928 2176 V 9 2178 1921 2 v 8 2217 +2 40 v 34 2205 a(APHID)p 688 2217 V 618 w(Sparc)f(2)p +961 2217 V 149 w(Chess)p 1192 2217 V 95 w(NegaScout)p +1405 2217 V 96 w(lo)q(cal)p 1624 2217 V 97 w(6.04)h(\(n=16\))p +1928 2217 V 8 2257 V 34 2245 a(\(Bro)q(c)o(kington)d(and)j(Sc)o +(hae\013er,)d(1995\))p 688 2257 V 200 w(Net)o(w)o(ork)p +961 2257 V 1192 2257 V 1405 2257 V 1624 2257 V 1928 2257 +V 9 2258 1921 2 v 9 2268 V 262 2343 a Fp(T)m(able)13 +b(2:)18 b(Comparison)12 b(of)h(P)o(arallel)g Fk(\013\014)r +Fp(-based)i(Game-T)m(ree)e(Searc)o(h)h(Implemen)o(tations)p +eop +%%Page: 5 5 +5 4 bop 467 50 a Fe(A)14 b(T)m(axonom)o(y)d(of)i(P)o(arallel)g(Game-T)m +(ree)g(Searc)o(h)h(Algorithms)465 b Fp(5)0 195 y(generally)15 +b(faster)g(than)g(distributed)h(transp)q(osition)e(tables)i(based)f(on) +g(message)f(passing.)21 b(Lo)q(cal)15 b(transp)q(osition)g(tables)0 +245 y(are)h(main)o(tained)d(separately)i(on)g(eac)o(h)h(pro)q(cessor,)h +(but)e(no)g(transp)q(osition)g(table)g(information)e(is)i(shared)h(b)q +(et)o(w)o(een)g(the)0 295 y(pro)q(cessors.)0 374 y(The)h(\014nal)e +(column)g(giv)o(es)h(the)g Fn(sp)n(e)n(e)n(dup)h Fp(of)f(the)g +(implemen)o(tation)d(on)j(a)g(large)f(n)o(um)o(b)q(er)h(of)f(pro)q +(cessors.)27 b(There)18 b(will)c(b)q(e)0 423 y(a)19 b(tendency)h(to)f +(read)g(do)o(wn)f(this)h(column)f(and)g(use)i(the)f(absolute)g(sp)q +(eedup)i(or)e(relativ)o(e)f(e\016ciencies)i(to)f(determine)0 +473 y(something)d(ab)q(out)h(a)g(pair)g(of)g(algorithms.)26 +b(It)18 b(is)f(v)o(ery)h(hard)f(and)g(misleading)e(to)i(compare)g(t)o +(w)o(o)g(algorithms)e(in)i(this)0 523 y(manner.)g(There)e(are)f(\014v)o +(e)h(ma)r(jor)d(concerns)j(when)g(comparing)d(sp)q(eedup)j(n)o(um)o(b)q +(ers.)0 602 y(The)i(\014rst)g(concern)h(deals)e(with)g(sim)o(ulation)e +(results.)27 b(It)16 b(is)g(often)h(di\016cult)f(to)g(determine)g(ho)o +(w)g(a)g(parallel)g(algorithm)0 652 y(will)c(b)q(eha)o(v)o(e)j(on)e(a)h +(large)g(n)o(um)o(b)q(er)f(of)g(mac)o(hines,)g(due)h(to)g(o)o(v)o +(er-simpli\014cation)d(of)i(the)i(sim)o(ulation)c(mo)q(del)h(b)q(eing)i +(used.)0 731 y(The)j(second)g(ma)r(jor)d(concern)k(deals)e(with)g(the)g +(test)h(domain.)23 b(Arti\014cial)15 b(trees)j(rarely)e(re\015ect)i +(the)e(unique)h(prop)q(erties)0 780 y(of)12 b(searc)o(hing)i(a)f(real)g +(c)o(hess/c)o(hec)o(k)o(ers/Othe)q(llo)h(tree,)g(and)f(migh)o(t)e(b)q +(e)j(geared)f(to)o(w)o(ards)g(illustrating)f(the)i(strength)g(of)e(the) +0 830 y(parallel)h(algorithm)e(\(Plaat)i Fn(et.)19 b(al)p +Fp(,)13 b(1996\).)0 909 y(The)19 b(third)g(ma)r(jor)f(concern)i(is)f +(that)g(w)o(e)g(cannot)g(tak)o(e)g(the)g(real)g(trees)i(at)e(face)g(v)n +(alue)f(either,)j(since)e(the)h(sequen)o(tial)0 959 y(algorithm)11 +b(used)j(to)f(generate)i(the)f(tree)g(ma)o(y)e(not)h(b)q(e)h(an)f +(e\016cien)o(t)h(searc)o(her)h(\(with)e(resp)q(ect)j(to)d(the)h(minim)o +(al)c(tree)15 b(size\).)0 1009 y(This)f(could)f(b)q(e)h(caused)h(b)o(y) +e(lea)o(ving)g(out)g(k)o(ey)h(mo)o(v)o(e)e(ordering)h(tec)o(hniques,)i +(suc)o(h)f(as)g(a)f(su\016cien)o(tly)h(large)f(transp)q(osition)0 +1059 y(table,)g(iterativ)o(e)g(deep)q(ening)h(or)f(killer)f(mo)o(v)o +(es.)k(A)d(p)q(o)q(or)g(searc)o(her)i(will)d(yield)g(more)g(opp)q +(ortunities)h(for)g(parallelism,)d(and)0 1108 y(ma)o(y)i(increase)j +(the)g(sp)q(eedup)g(ac)o(hiev)o(ed)f(b)o(y)g(the)g(algorithm.)0 +1187 y(The)h(fourth)f(concern)i(deals)f(with)f(the)h(v)n(aried)f(branc) +o(hing)g(factor)h(of)e(the)i(game-trees)g(in)f(di\013eren)o(t)h(test)h +(domains.)i(The)0 1237 y(a)o(v)o(erage)f(branc)o(hing)f(factor)g(in)h +(c)o(hess)h(\(38\))e(is)g(higher)h(than)f(the)i(a)o(v)o(erage)e(branc)o +(hing)h(factor)f(in)g(c)o(hec)o(k)o(ers)j(\(8)d(for)g(non-)0 +1287 y(capture)h(p)q(ositions\).)25 b(T)m(aking)14 b(capture)j(p)q +(ositions)f(in)o(to)g(accoun)o(t,)g(the)h(a)o(v)o(erage)f(branc)o(hing) +g(factor)g(of)f(c)o(hec)o(k)o(ers)j(is)e(less)0 1337 +y(than)f(3)g(\(Lu,)g(1993\).)21 b(The)15 b(breadth)h(of)e(c)o(hec)o(k)o +(ers)j(trees)g(yield)e(sp)q(eedups)i(that)e(are)g(m)o(uc)o(h)f(smaller) +g(in)h(magnitude)e(than)0 1386 y(the)h(same)f(algorithm)f(implem)o(en)o +(ted)g(on)i(a)g(c)o(hess)h(program.)0 1465 y(The)h(\014nal)g(concern)h +(deals)f(with)g(the)h(sp)q(eed)g(of)f(the)g(pro)q(cessor)i(v)o(ersus)f +(the)g(sp)q(eed)h(of)d(the)i(net)o(w)o(ork.)24 b(If)16 +b(the)h(algorithm)0 1515 y(w)o(as)i(tested)i(on)e(slo)o(w)g(pro)q +(cessors)i(with)e(a)g(fast)g(net)o(w)o(ork)h(linking)d(them,)i(the)h +(algorithm)d(ma)o(y)g(not)i(yield)g(the)h(same)0 1565 +y(p)q(erformance)14 b(when)g(using)g(faster)g(pro)q(cessors)i(and/or)e +(a)f(slo)o(w)o(er)h(net)o(w)o(ork.)0 1644 y(In)f(short,)g(it)g(is)g +(nearly)g(imp)q(ossible)e(to)i(ob)r(jectiv)o(ely)g(compare)f(sp)q +(eedups)j(or)e(e\016ciencies)i(for)d(the)i(di\013eren)o(t)g(implemen)o +(ta-)0 1694 y(tions)g(giv)o(en)f(in)h(T)m(able)f(2.)0 +1882 y Fl(2.3)48 b(Descriptio)o(ns)13 b(of)i(Earlier)f(Algorithms)f +(\(1979-June)g(1987\))0 1998 y Fp(Baudet's)20 b(w)o(ork)f(\(1978\))g +(describ)q(ed)i(a)e(metho)q(d)g(of)g(doing)f Fn(p)n(ar)n(al)r(lel)h +(aspir)n(ation)h(se)n(ar)n(ch)p Fp(.)34 b(Aspiration)19 +b(searc)o(h)i(can)e(b)q(e)0 2048 y(describ)q(ed)e(as)f(the)g(shrinking) +f(of)g(the)h(initial)d Fk(\013\014)18 b Fp(windo)o(w)d(to)g(a)g(small)e +(range.)23 b(If)15 b(the)h(minima)o(x)d(v)n(alue)h(lies)i(within)e(the) +0 2098 y(smaller)g(range,)i(the)h(correct)g(minima)o(x)c(v)n(alue)i +(could)h(b)q(e)g(returned)i(while)d(visiting)g(less)h(leaf)g(no)q(des)g +(than)g(w)o(ould)f(ha)o(v)o(e)0 2147 y(b)q(een)g(visited)f(b)o(y)g +(using)f(the)i(larger)e(range.)0 2226 y(In)k(Baudet's)g(w)o(ork,)g(the) +g(initial)e Fk(\013\014)k Fp(windo)o(w)d(is)h(sub)q(divided)g(in)o(to)f +Fk(p)h Fp(disjoin)o(t)e(windo)o(ws,)i(where)h Fk(p)e +Fp(is)h(the)g(n)o(um)o(b)q(er)g(of)0 2276 y(pro)q(cessors)h(used.)25 +b(Eac)o(h)16 b(pro)q(cessor)i(searc)o(hes)g(the)f(game-tree)e(with)h +(those)g(smaller)f(windo)o(ws.)24 b(When)16 b(a)f(pro)q(cessor)j(is)0 +2326 y(\014nished,)e(it)f(can)h(use)g(the)h(result)f(of)f(the)h(searc)o +(h)h(\(if)e(it)g(is)g(a)h(fail)e(lo)o(w)g(or)i(fail)e(high\))h(to)g +(further)i(reduce)g(the)f(size)g(of)f(the)0 2376 y(windo)o(ws)c +(examined.)16 b(Once)d(a)f(pro)q(cessor)i(determines)e(the)g(minim)o +(ax)d(v)n(alue,)i(all)f(pro)q(cessors)k(are)f(stopp)q(ed)f(immediately) +l(.)0 2455 y(Akl,)f(Barnard)g(and)g(Doran)f(\(1982\))g(w)o(ere)i(the)f +(\014rst)h(to)f(prop)q(ose)g(and)g(sim)o(ulate)e(a)i +Fn(mandatory)h(work)g(\014rst)e Fp(algorithm.)15 b(The)0 +2504 y(idea)f(of)g(the)h(algorithm)d(is)i(to)g(explore)h(in)f(parallel) +f(those)i(lea)o(v)o(es)g(that)f(w)o(ould)g(b)q(e)h(examined)e(if)h(the) +h(tree)h(w)o(as)e(p)q(erfectly)0 2554 y(ordered.)19 b(There)c(are)f(t)o +(w)o(o)g(categories)g(of)f(no)q(des)i(that)f(corresp)q(ond)h(to)f(the)g +(cut)h(and)e(all)g(no)q(des)h(from)e(the)j(minim)o(al)10 +b(tree.)0 2604 y(Left-hand)15 b(no)q(des)h(are)f(similar)d(to)j(all)f +(no)q(des,)i(and)e(all)g(of)g(their)i(successors)h(are)f(ev)n(aluated)f +(at)f(di\013eren)o(t)i(pro)q(cessors)h(in)0 2654 y(parallel.)23 +b(Righ)o(t-hand)15 b(no)q(des)i(are)f(similar)e(to)i(cut)g(no)q(des,)h +(and)f(only)g(one)g(successor)i(pro)q(cess)g(can)e(b)q(e)h(spa)o(wned)g +(from)0 2704 y(them)c(at)h(a)f(time.)p eop +%%Page: 6 6 +6 5 bop 0 50 a Fp(6)603 b(ICCA)14 b(Journal)f(Submission)601 +b(June)15 b(12,)e(1996)0 195 y(The)h(\014rst)h(branc)o(h)f(to)g(b)q(e)g +(ev)n(aluated)g(from)e(a)i(righ)o(t-hand)f(no)q(de)h(migh)o(t)e +(establish)i(a)f(score)j(that)d(signi\014es)h(a)g(cuto\013.)19 +b(The)0 245 y(pro)q(cess)d(con)o(trolling)e(a)g(righ)o(t-hand)g(no)q +(de)h(is)f(forced)h(to)g(stall)f(and)g(\014nd)h(out)f(the)h(v)n(alue)f +(of)g(the)i(sibling)d(left-hand)h(no)q(de.)0 295 y(Once)20 +b(this)f(sibling)f(left-hand)g(no)q(de)h(has)g(a)g(v)n(alue,)g(the)g(t) +o(w)o(o)f(v)n(alues)h(are)g(compared)f(and)h(the)g(program)f +(determines)0 345 y(whether)g(or)f(not)g(the)h(righ)o(t-hand)e(no)q(de) +h(can)h(b)q(e)f(pruned)h(based)g(on)e(the)i(\014rst)g(branc)o(h)f(that) +g(w)o(as)g(searc)o(hed.)29 b(If)17 b(there)0 394 y(is)e(no)f(cuto\013)i +(y)o(et)f(for)f(the)i(righ)o(t-hand)e(no)q(de,)h(the)g(subsequen)o(t)i +(branc)o(hes)f(in)e(the)i(righ)o(t-hand)e(no)q(de)h(are)g(examined)f +(one)0 444 y(after)i(the)g(other)h(sequen)o(tially)m(.)22 +b(This)16 b(will)e(stop)i(when)g(the)g(righ)o(t-hand)f(no)q(de)i(gets)f +(pruned,)h(or)e(the)h(righ)o(t-hand)g(no)q(de)0 494 y(establishes)c(a)f +(v)n(alue)f(higher)h(than)g(the)h(sibling)d(left-hand)i(no)q(de)g +(after)g(exploring)g(all)e(branc)o(hes.)19 b(This)11 +b(allo)o(ws)e(the)j(sc)o(heme)0 544 y(to)g(determine)f(most)g(of)g(the) +i(direct)f(shallo)o(w)f(cuto\013s)h(that)g(w)o(ould)f(o)q(ccur)i(in)e +(the)i(sequen)o(tial)f Fk(\013\014)i Fp(algorithm,)9 +b(but)j(neglects)0 594 y(some)h(of)g(the)i(deep)g(cuto\013s)f(p)q +(ossible.)0 672 y(Fink)o(el)k(and)h(Fish)o(burn)g(\(1982\))f(in)o(tro)q +(duced)h(the)h(concept)g(of)e Fn(tr)n(e)n(e)g(splitting)p +Fp(.)32 b(In)19 b(their)g(algorithm,)e(a)h(static)i(tree)g(of)0 +722 y(pro)q(cessors)c(is)e(o)o(v)o(erlaid)f(on)g(top)h(of)g(a)f +(game-tree.)18 b(The)c(ro)q(ot)g(of)g(the)g(game-tree)g(is)g(giv)o(en)f +(to)h(the)g(ro)q(ot)g(of)g(the)g(pro)q(cessor)0 772 y(tree.)19 +b(The)14 b(pro)q(cessor)h(ro)q(ot)f(generates)h(all)d(the)i(mo)o(v)o +(es)e(at)i(ply)f(1)g(of)g(the)h(game-tree,)f(and)g(hands)h(them)e(o)o +(v)o(er)i(to)f(the)h(\014rst)0 822 y(ply)h(of)f(the)i(pro)q(cessor)h +(tree.)23 b(This)15 b(pro)q(cess)i(con)o(tin)o(ues)f(un)o(til)e(w)o(e)h +(reac)o(h)h(the)g(lea)o(v)o(es)f(of)g(the)h(pro)q(cessor)h(tree,)f +(where)g(the)0 872 y(pro)q(cessors)g(execute)f(the)g(sequen)o(tial)e +Fk(\013\014)j Fp(algorithm)11 b(to)j(the)g(required)h(searc)o(h)f +(depth.)19 b(The)14 b(no)q(des)h(in)e(the)h(\014rst)g +Fk(k)h Fp(lev)o(els)0 922 y(of)c(the)i(tree,)g(where)g +Fk(k)f Fp(is)g(the)g(depth)h(of)e(the)i(pro)q(cessor)g(tree,)g(can)f(b) +q(e)h(ev)n(aluated)e(in)h(parallel.)k(The)c(only)f(sync)o(hronization)0 +971 y(p)q(oin)o(t)i(o)q(ccurs)j(at)d(the)i(ro)q(ot)f(of)f(the)i(tree)g +(b)q(et)o(w)o(een)g(searc)o(hes)h(at)e(di\013eren)o(t)g(depths.)0 +1050 y(The)20 b Fn(PV-Split)f Fp(algorithm)e(\(Campb)q(ell,)h(1981;)j +(Marsland)e(and)g(Campb)q(ell,)g(1982\))f(is)i(a)f(natural)g(extension) +h(of)f(tree)0 1100 y(splitting,)12 b(based)i(on)g(the)g(regular)g +(structure)h(of)e(the)h(minima)o(l)c(game-tree)k(as)f(w)o(e)h(tra)o(v)o +(el)f(along)g(the)h(principal)f(v)n(ariation)0 1150 y(\(PV\).)19 +b(The)g(\014rst)h(stage)f(of)g(the)g(algorithm)e(in)o(v)o(olv)o(es)h(a) +g(recursiv)o(e)j(call)d(to)h(itself)f(as)h(it)g(tra)o(v)o(els)g(do)o +(wn)f(the)i(principal)0 1200 y(v)n(ariation.)g(Once)c(the)g(left)f +(subtree)i(of)d(a)h(PV)g(no)q(de)h(has)f(b)q(een)h(examined,)e(all)g +(of)g(the)i(other)f(subtrees)j(b)q(elo)o(w)c(that)i(PV)0 +1249 y(no)q(de)d(are)g(searc)o(hed)h(in)e(parallel)f(using)h(tree)i +(splitting.)j(After)c(all)e(of)h(the)h(subtrees)i(ha)o(v)o(e)d(b)q(een) +h(explored,)g(that)g(PV)g(no)q(de)0 1299 y(can)h(return)i(a)e(score)h +(to)f(the)h(PV)f(no)q(de)h(ab)q(o)o(v)o(e)f(it.)k(A)o(t)c(an)o(y)g(one) +h(time,)d(only)h(one)i(no)q(de's)f(subtrees)i(are)f(b)q(eing)f +(examined)0 1349 y(in)f(parallel)g(b)o(y)h(the)g(PV-Split)g(algorithm.) +0 1428 y(In)e(the)h(original)e(implem)o(en)o(tation)e(\(Marsland)j(and) +h(Campb)q(ell,)d(1982\),)h(the)i(PV-Split)f(algorithm)d(did)j(not)g +(use)h(minima)o(l)0 1478 y(windo)o(ws)g(or)g(other)h(searc)o(h)h +(enhancemen)o(t)e(tec)o(hniques)i(common)c(in)h(game-pla)o(ying)f +(programs.)16 b(T)m(o)d(sim)o(ulate)e(these)k(or-)0 1528 +y(dering)f(tec)o(hniques,)g(strongly-ordered)g(game-trees)g(w)o(ere)g +(arti\014cially)e(created.)20 b(The)14 b(PV-Split)f(algorithm)e(w)o(as) +i(sho)o(wn)0 1577 y(to)i(ha)o(v)o(e)h(a)f(b)q(etter)i(sp)q(eedup)g +(than)f(tree)g(splitting)f(for)g(the)h(sim)o(ulated)e(strongly-ordered) +i(trees.)25 b(There)17 b(are)f(n)o(umerous)0 1627 y(published)f(exp)q +(erimen)o(ts)g(with)f(the)i(PV-Split)e(algorithm)e(\(Marsland)j(and)g +(P)o(op)q(o)o(wic)o(h,)f(1985;)g(Newb)q(orn,)h(1985;)f(Mars-)0 +1677 y(land,)h(Olafsson)h(and)g(Sc)o(hae\013er,)h(1985\).)23 +b(The)16 b(b)q(est)h(rep)q(orted)h(e\016ciency)f(in)e(these)i(implemen) +o(tations)c(w)o(as)j(a)f(sp)q(eedup)0 1727 y(of)f(3.75)g(on)h(5)g(pro)q +(cessors)i(for)d(Marsland,)h(Olafsson)g(and)f(Sc)o(hae\013er)j +(\(1985\).)j(The)c(ma)r(jor)d(problem)h(in)g(the)i(implemen-)0 +1777 y(tation)g(of)g(PV-Split)g(is)h(a)f(large)g(sync)o(hronization)h +(o)o(v)o(erhead,)g(since)g(man)o(y)e(pro)q(cessors)k(are)e(often)g +(forced)g(to)f(w)o(ait)g(for)0 1826 y(long)d(p)q(erio)q(ds)i(of)f(time) +e(while)i(the)h(last)f(unev)n(aluated)g(branc)o(h)g(of)g(a)g(PV)g(no)q +(de)h(is)f(ev)n(aluated.)k(Newb)q(orn)d(suggested)h(that)0 +1876 y(idle)f(pro)q(cessors)j(should)d(assist)h(those)g(pro)q(cessors)i +(that)e(are)g(still)e(busy)i(b)o(y)g(creating)f(a)h(new)g(split)f(no)q +(de)h(that)f(the)h(idle)0 1926 y(pro)q(cessors)g(can)e(w)o(ork)g(on)f +(\(Newb)q(orn,)i(1985\).)0 2005 y(The)c Fn(Key)h(No)n(de)g +Fp(metho)q(d)e(\(Lindstrom,)f(1983\))h(attempts)h(a)f(di\013eren)o(t)i +(metho)q(d)e(for)h(attac)o(king)f(the)h(tree.)18 b(The)12 +b(mandatory)0 2055 y(w)o(ork)g(\014rst)h(tree)g(is)f(dynamically)d(ev)o +(olv)o(ed)j(and)g(stored)h(within)e(a)h(cen)o(tralized)h(message)f +(queue.)18 b(Eac)o(h)13 b(pro)q(cessor)h(tak)o(es)e(a)0 +2105 y(message)h(from)e(the)j(queue,)g(creates)h(new)f(messages)f +(based)h(on)f(the)h(t)o(yp)q(e)g(of)e(message,)h(and)g(adds)g(the)h +(information)d(in)o(to)0 2154 y(the)j(tree,)g(as)g(required.)k(F)m(or) +13 b(example,)f(if)h(a)g(message)g(is)g(sen)o(t)h(to)f(a)g(leaf)g(no)q +(de)h(within)e(the)i(tree,)h(the)f(no)q(de)f(is)h(ev)n(aluated,)0 +2204 y(and)h(the)h(v)n(alue)f(is)h(sen)o(t)g(to)g(the)g(paren)o(t.)23 +b(A)o(t)16 b(t)o(yp)q(e)g(1)f(and)g(t)o(yp)q(e)h(3)g(no)q(des,)g +(messages)g(for)f(eac)o(h)h(of)f(the)h(c)o(hildren)g(can)f(b)q(e)0 +2254 y(sen)o(t)h(out)f(at)g(the)h(same)e(time)g(\(yielding)g(nearly)h +(ideal)f(parallelism\).)20 b(Sync)o(hronization)15 b(o)q(ccurs)h(at)f +(bad)g(t)o(yp)q(e)h(2)f(no)q(des,)0 2304 y(where)g(eac)o(h)f(mo)o(v)o +(e)f(is)g(tried)i(in)e(turn)h(in)g(an)g(attempt)f(to)g(\014nd)h(the)h +(cuto\013.)0 2383 y(The)j(Key)h(No)q(de)f(metho)q(d)f(w)o(as)h(sim)o +(ulated)e(using)i(arti\014cial)f(trees,)j(where)f(the)f(score)i(of)d +(the)h(paren)o(t)h(w)o(as)f(similar)d(to)0 2433 y(the)g(score)g(of)f +(the)h(c)o(hildren.)k(The)c(metho)q(d)e(w)o(as)h(compared)g(against)f +(the)i(classical)f Fk(\013\014)j Fp(algorithm.)f(In)e(the)h(sim)o +(ulation,)0 2482 y(eac)o(h)f(message)f(w)o(as)h(assumed)f(to)g(b)q(e)h +(pro)q(cessed)i(in)d(unit)g(time,)f(and)h(some)g(e\013orts)h(w)o(ere)h +(made)d(to)h(sim)o(ulate)f(con)o(ten)o(tion)0 2532 y(for)j(the)g(no)q +(des)h(within)e(the)h(tree.)22 b(Ov)o(er)16 b(10)e(test)i(runs,)g(the)f +(Key)h(No)q(de)f(metho)q(d)f(ac)o(hiev)o(ed)h(a)g(sp)q(eedup)h(of)e +(12.57)g(on)g(20)0 2582 y(pro)q(cessors,)i(using)d(a)h(tree)h(depth)g +(of)e(5)g(and)h(a)g(breadth)g(of)g(4.)0 2661 y(Newb)q(orn's)f(\(1988\)) +f(algorithm,)d Fn(Unsynchr)n(onize)n(d)15 b(Iter)n(atively)d(De)n(ep)n +(ening)j(Par)n(al)r(lel)e(A)o(lpha-Beta)g(Se)n(ar)n(ch)p +Fp(,)g(w)o(as)f(the)h(\014rst)p eop +%%Page: 7 7 +7 6 bop 467 50 a Fe(A)14 b(T)m(axonom)o(y)d(of)i(P)o(arallel)g(Game-T)m +(ree)g(Searc)o(h)h(Algorithms)465 b Fp(7)0 195 y(attempt)13 +b(to)g(async)o(hronously)h(start)g(the)g(next)g(lev)o(el)f(of)g(an)g +(iterativ)o(ely)g(deep)q(ened)i(searc)o(h)g(instead)f(of)f(sync)o +(hronizing)g(at)0 245 y(the)i(ro)q(ot)e(of)h(the)g(game-tree.)k(The)c +(mo)o(v)o(es)f(from)f(the)j(ro)q(ot)f(p)q(osition)f(are)h(partitioned)g +(among)d(the)k(pro)q(cessors,)h(and)d(the)0 295 y(pro)q(cessors)j +(searc)o(h)g(their)e(o)o(wn)g(subset)h(of)f(the)h(mo)o(v)o(es)d(with)i +(iterativ)o(e)g(deep)q(ening.)20 b(Eac)o(h)15 b(pro)q(cessor)g(is)f +(giv)o(en)g(the)h(same)0 345 y(initial)e(windo)o(w,)g(but)h(some)g(of)g +(the)h(pro)q(cessors)i(ma)o(y)12 b(ha)o(v)o(e)j(c)o(hanged)f(their)h +(windo)o(ws,)f(based)h(on)f(the)h(searc)o(h)h(results)g(of)0 +394 y(their)e(mo)o(v)o(es.)k(The)c(UIDP)m(ABS)h(algorithm)c(then)k(com) +o(bines)e(the)i(results)g(once)g(a)f(predetermined)g(time)f(limit)f +(has)i(b)q(een)0 444 y(reac)o(hed.)19 b(Some)11 b(of)g(the)i(mo)o(v)o +(es)e(ma)o(y)f(ha)o(v)o(e)i(b)q(een)h(ev)n(aluated)f(to)g(larger)g +(depths)h(than)f(those)h(on)f(other)h(pro)q(cessors,)h(whic)o(h)0 +494 y(ma)o(y)e(yield)h(a)h(b)q(etter)h(qualit)o(y)e(mo)o(v)o(e)f(c)o +(hoice.)0 573 y(Sc)o(hae\013er's)h Fn(Dynamic)h(PV-Split)e +Fp(algorithm)d(\(1989\))i(is)h(an)f(enhancemen)o(t)i(that)f(allo)o(ws)e +(for)i(dynamic)e(pro)q(cessor)k(trees)f(in)0 623 y(the)f(PV-Split)e +(framew)o(ork.)16 b(Instead)c(of)e(the)i(\014xed)f(pro)q(cessor)i(tree) +g(mec)o(hanism)8 b(that)j(w)o(as)g(used)h(in)f(PV-Split,)g(pro)q +(cessors)0 672 y(in)h(Dynamic)f(PV-Split)h(\(DPVS\))h(are)h(allo)o(w)o +(ed)d(to)i(dynamically)c(attac)o(h)k(themselv)o(es)g(to)g(other)g(busy) +g(pro)q(cessors,)i(whic)o(h)0 722 y(eac)o(h)21 b(run)g(the)g(PV-Split)e +(algorithm.)35 b(This)20 b(allo)o(ws)g(for)g(parallelism)d(along)i(the) +i(pseudo-principal)f(v)n(ariation)f(\(the)0 772 y(leftmost)g(branc)o +(h\))i(b)q(eing)f(searc)o(hed)h(b)o(y)f(an)o(y)g(pro)q(cessor,)j(and)d +(allo)o(ws)f(for)h(m)o(ultiple)e(split)h(no)q(des.)38 +b(The)21 b(pro)q(cess)h(of)0 822 y(c)o(ho)q(osing)11 +b(the)i(new)f(split)f(no)q(de)h(started)h(b)o(y)e(allo)q(cating)f +(branc)o(hes)j(at)f(t)o(yp)q(e)g(1)f(or)h(t)o(yp)q(e)g(3)f(no)q(des,)i +(and)e(allo)o(w)o(ed)g(parallelism)0 872 y(at)k(t)o(yp)q(e)h(2)f(no)q +(des)h(once)g(the)g(branc)o(hes)h(from)d(all)g(t)o(yp)q(e)i(1)f(and)g +(3)g(no)q(des)h(w)o(ere)h(allo)q(cated.)22 b(All)14 b(requests)k(for)d +(w)o(ork)g(w)o(en)o(t)0 922 y(through)e(a)g(Con)o(troller)f(pro)q +(cess,)i(whic)o(h)f(w)o(as)g(used)h(to)e(balance)h(the)h(dynamic)d(pro) +q(cessor)k(tree)f(amongst)d(the)j(pro)q(cessors)0 971 +y(that)g(had)g(the)g(most)f(w)o(ork)g(to)h(do,)f(as)h(w)o(ell)f(as)h +(assign)g(w)o(ork)g(from)e(the)i(curren)o(t)i(no)q(de)e(on)g(the)g +(principal)f(v)n(ariation.)0 1050 y(Unfortunately)m(,)j(the)h(increase) +h(in)d(searc)o(h)j(o)o(v)o(erhead)f(comp)q(ensated)f(for)g(the)h +(decrease)i(in)d(sync)o(hronization)g(o)o(v)o(erhead.)0 +1100 y(The)e(searc)o(h)h(o)o(v)o(erhead)g(arose)f(from)e(additional)g +(pro)q(cessors,)k(once)e(they)h(had)e(b)q(een)i(reassigned,)g +(attempting)d(to)i(searc)o(h)0 1150 y(some)c(subtrees)i(without)f(the)g +(b)q(ene\014t)h(of)d(the)j(ordering)e(information)e(from)h(the)i(searc) +o(hed)h(sibling)d(subtrees.)19 b(By)11 b(allo)o(wing)0 +1200 y(a)f(shared)h(T)m(able)f(Manager)g(to)g(handle)g(all)f(transp)q +(osition)h(table)g(requests,)j(along)c(with)h(a)g(mec)o(hanism)d(for)j +(rebroadcasting)0 1249 y(history)19 b(table)h(information,)d(the)j(sp)q +(eedup)h(for)e Fc(P)l(araPhoenix)j Fp(w)o(as)d(impro)o(v)o(ed)f(to)h +(7.64)g(on)g(19)g(pro)q(cessors.)37 b(The)0 1299 y(mec)o(hanism)12 +b(describ)q(ed)k(in)e(the)h(pap)q(er)g(tap)q(ered)h(o\013)e(once)h +(more)f(than)g(10)g(pro)q(cessors)j(w)o(ere)e(in)o(v)o(olv)o(ed;)e(the) +i(o)o(v)o(erhead)g(of)0 1349 y(going)e(through)h(a)f(single)h(T)m(able) +f(Manager)h(increased)h(linearly)e(as)h(more)f(pro)q(cessors)j(w)o(ere) +f(added.)0 1428 y(The)c Fn(Enhanc)n(e)n(d)i(PV-Split)d +Fp(algorithm)e(\(Hy)o(att,)i(1988;)g(Hy)o(att,)h(Suter)g(and)g(Nelson,) +g(1989\))e(is)h(a)g(di\013eren)o(t)i(t)o(yp)q(e)f(of)f(dynamic)0 +1478 y(allo)q(cation)f(to)h(the)h(PV-Split)f(algorithm.)k(In)d(the)g +(Enhanced)g(PV-Split)f(\(EPVS\))i(algorithm,)c(when)j(a)f(pro)q(cessor) +i(b)q(ecame)0 1528 y(idle,)j(all)e(of)i(the)h(other)g(pro)q(cessors)h +(w)o(ere)f(stopp)q(ed)g(and)f(a)g(new)h(split)f(no)q(de)g(w)o(ould)f(b) +q(e)i(created)h(t)o(w)o(o)e(ply)f(further)i(do)o(wn)0 +1577 y(the)f(tree)g(of)e(one)h(of)g(the)g(busy)g(pro)q(cessors.)21 +b(All)13 b(pro)q(cessors)j(w)o(ould)d(then)i(start)f(to)g(w)o(ork)g(on) +g(the)g(smaller)f(subtree.)20 b(The)0 1627 y(transp)q(osition)14 +b(table)g(ensured)h(that)f(the)h(smaller)d(subtree)k(had)d(not)h(b)q +(een)h(explored)f(y)o(et.)0 1706 y(Using)i(a)g(Sequen)o(t)h(Balance)f +(21000)f(computer,)h(the)h(sp)q(eedup)g(of)f(EPVS)h(w)o(as)f(5.93)e(on) +i(16)g(pro)q(cessors.)27 b(On)16 b(the)h(same)0 1756 +y(mac)o(hine)d(and)h(test)h(set,)g(PV-Split)f(ac)o(hiev)o(ed)g(a)g(sp)q +(eedup)i(of)e(4.57)f(on)h(16)f(pro)q(cessors.)24 b(The)16 +b(authors)g(p)q(oin)o(t)e(out)h(at)g(the)0 1806 y(end)e(of)f(their)h +(pap)q(er)g(that)f(the)h(a)o(v)o(erage)g(branc)o(hing)f(factor)h(of)e +(a)i(c)o(hess)h(tree)f(is)g(38;)e(their)i(algorithm)d(could)i(not)h +(use)g(64)f(or)0 1856 y(more)g(pro)q(cessors)j(e\013ectiv)o(ely)f +(since)g(all)e(pro)q(cessors)j(co-ordinate)e(at)g(one)h(split)e(no)q +(de)i(at)f(an)o(y)f(giv)o(en)h(time.)j(Th)o(us,)d(to)g(use)0 +1905 y(massiv)o(ely)e(parallel)h(arc)o(hitectures)k(\(with)d(h)o +(undreds)h(or)f(thousands)h(of)f(pro)q(cessors\),)i(a)e(greater)h(n)o +(um)o(b)q(er)f(of)f(split)h(no)q(des)0 1955 y(m)o(ust)g(b)q(e)h(a)o(v)n +(ailable)e(for)i(parallel)e(w)o(ork.)0 2116 y Fl(2.4)48 +b(The)15 b(Adv)o(en)o(t)f(Of)i(Massiv)o(e)f(P)o(aralleli)o(sm)e(\(July) +h(1987-presen)o(t\))0 2226 y Fp(F)m(elten)19 b(and)g(Otto)h(\(1988\))e +(implemen)o(ted)f(the)j(\014rst)g(parallel)e Fk(\013\014)j +Fp(algorithm)c(that)i(pla)o(y)o(ed)g(c)o(hess)h(on)f(more)f(than)h(32)0 +2276 y(pro)q(cessors.)k(Their)15 b Fc(W)-5 b(a)m(yCool)17 +b Fp(program)c(decided)j(on)f(the)h(t)o(yp)q(e)f(of)f(parallelism)e(to) +j(b)q(e)h(applied)e(at)h(a)f(no)q(de)i(based)f(on)0 2326 +y(whether)f(there)f(w)o(as)f(a)h(transp)q(osition)f(table)g(en)o(try)h +(in)f(the)h(system.)k(If)12 b(a)g(transp)q(osition)g(table)g(en)o(try)h +(w)o(as)f(a)o(v)n(ailable,)e(the)0 2376 y(mo)o(v)o(e)j(stored)i(w)o +(ould)e(lik)o(ely)g(b)q(e)i(the)g(b)q(est)g(mo)o(v)o(e,)e(and)h(it)g(w) +o(as)g(w)o(orth)g(w)o(aiting)f(for)h(a)g(b)q(ound)g(to)h(b)q(e)f +(returned)i(from)d(that)0 2425 y(transp)q(osition)h(table)g(mo)o(v)o +(e.)j(Once)f(that)e(b)q(ound)g(had)g(b)q(een)h(returned)h(\(assuming)d +(that)h(the)h(no)q(de)f(is)g(not)g(immediately)0 2475 +y(pruned\),)d(all)d(of)h(the)i(other)f(successors)i(could)e(b)q(e)g +(explored)g(in)f(parallel.)15 b(If)10 b(there)h(is)e(no)g(transp)q +(osition)h(table)f(information,)0 2525 y(all)k(subtrees)j(could)d(b)q +(e)i(computed)e(in)h(parallel.)0 2604 y(The)f(pro)q(cessors)h(are)f +(hierarc)o(hically)e(organized)h(in)o(to)g(a)g(tree)h(structure)h(at)e +(the)h(start)g(of)f(the)g(searc)o(h,)h(but)g(this)f(pro)q(cessor)0 +2654 y(tree)19 b(w)o(ould)e(b)q(e)h(restructured)j(as)c(necessary)m(.) +31 b(The)18 b(sc)o(heme)g(relied)g(on)g(a)f(globally)e(shared)k(transp) +q(osition)f(table)f(and)0 2704 y(a)f(load)f(balancing)g(sc)o(heme)i +(that)f(is)g(similar)e(to)i(the)g(one)h(used)g(in)f(EPVS.)g(The)h(load) +e(balancing)g(sc)o(heme)h(reorganized)p eop +%%Page: 8 8 +8 7 bop 0 50 a Fp(8)603 b(ICCA)14 b(Journal)f(Submission)601 +b(June)15 b(12,)e(1996)0 195 y(searc)o(hers)j(in)o(to)d(new)i(teams)e +(that)h(searc)o(h)h(a)e(\\hot)h(sp)q(ot")g(in)f(parallel.)0 +274 y(F)m(eldmann)8 b Fn(et.)17 b(al)k Fp(implem)o(en)o(ted)8 +b(a)h(parallel)g Fk(\013\014)j Fp(algorithm)7 b(on)i(a)h(large)f(net)o +(w)o(ork)h(of)f(T)m(ransputers)i(for)e(the)h(c)o(hess)i(program)0 +324 y Fc(Zugzw)l(ang)g Fp(\(V)m(orn)o(b)q(erger)g(and)g(Monien,)f +(1987;)g(F)m(eldmann)e Fn(et.)18 b(al)p Fp(,)11 b(1989;)g(F)m(eldmann,) +f(1993\).)16 b(The)c(algorithm)d(in)o(v)o(olv)o(es)0 +374 y(the)j(use)g(of)e(the)i Fn(Y)m(oung)h(Br)n(others)e(Wait)i(Conc)n +(ept)e Fp(\(YBW)o(C\))h(to)f(determine)g(when)g(no)q(des)h(can)f(b)q(e) +h(giv)o(en)f(out)g(in)f(a)h(parallel)0 423 y(manner.)0 +502 y(In)19 b(a)g(game-tree)g(that)g(has)h(near)f(p)q(erfect)i +(ordering,)f(there)h(is)e(a)g(high)g(probabilit)o(y)e(that)i(a)g(no)q +(de)h(is)f(an)g(all)f(no)q(de)i(if)0 552 y(w)o(e)e(ev)n(aluate)g(the)h +(leftmost)d(branc)o(h)j(and)f(w)o(e)g(ha)o(v)o(e)g(not)g(pruned)h(the)f +(searc)o(h)h(b)q(elo)o(w)f(that)g(no)q(de.)31 b(The)19 +b(basic)f(Y)m(oung)0 602 y(Brothers)g(W)m(ait)c(Concept)j(states)h +(that)e(the)h(leftmost)d(branc)o(h)j(\(the)g(eldest)g(brother\))g(m)o +(ust)e(b)q(e)i(ev)n(aluated)f(b)q(efore)g(an)o(y)0 652 +y(other)c(branc)o(hes)h(\(the)g(y)o(oung)e(brothers\))i(can)f(b)q(e)g +(distributed)g(to)g(other)g(pro)q(cessors.)19 b(This)12 +b(is)f(not)h(necessarily)h(limited)c(to)0 702 y(the)15 +b(principal)f(v)n(ariation)f(\(i.e.)20 b(PV-Split\))14 +b(or)h(a)f(pseudo-principal)h(v)n(ariation)e(\(i.e.)20 +b(DPVS)15 b(or)f(EPVS\);)h(it)g(can)f(happ)q(en)0 751 +y(at)h(an)o(y)g(no)q(de)g(within)g(the)g(game-tree.)22 +b(The)15 b(algorithm)e(giv)o(en)h(in)h(T)m(ables)g(1)g(and)f(2)h(is)g +(YBW)o(C*.)22 b(This)15 b(v)n(ariation)e(do)q(es)0 801 +y(not)j(w)o(ait)f(for)h(y)o(oung)g(brothers)h(at)f(t)o(yp)q(e)h(3)f(no) +q(des)h(and)f(forces)h(sequen)o(tial)f(ev)n(aluation)f(of)g(all)g +(\\reasonable")h(mo)o(v)o(es)f(at)0 851 y(t)o(yp)q(e)f(2)g(no)q(des,)g +(as)g(describ)q(ed)i(in)d(F)m(eldmann's)f(Ph.D.)h(thesis)i(\(1993\).)0 +930 y(Hy)o(att)f(in)o(tro)q(duced)g Fn(Dynamic)i(T)m(r)n(e)n(e)e +(Splitting)f Fp(\(DTS\))h(in)f(his)h(Ph.D.)f(thesis)h(\(1988\).)j(One)e +(pro)q(cessor)h(is)d(giv)o(en)h(the)g(ro)q(ot)0 980 y(p)q(osition)h +(and)g(the)h(others)g(m)o(ust)f(try)h(to)f(\014nd)g(a)h(pro)q(cessor)h +(that)e(has)h(w)o(ork)f(to)g(steal.)23 b(If)15 b(a)g(pro)q(cessor)j +(has)d(w)o(ork,)g(DTS)0 1029 y(hands)k(out)f(a)h(branc)o(h)g(from)d +(the)k(lo)o(w)o(est)e(t)o(yp)q(e)h(3)f(no)q(de.)33 b(T)o(yp)q(e)19 +b(1)f(no)q(des)h(that)g(ha)o(v)o(e)f(b)q(ound)h(information)d(\(i.e.)31 +b(the)0 1079 y(leftmost)13 b(c)o(hild)h(has)g(b)q(een)h(ev)n(aluated\)) +f(are)h(considered)h(as)e(t)o(yp)q(e)h(3)f(no)q(des.)19 +b(F)m(ailing)12 b(this,)i(the)h(pro)q(cessor)h(will)d(hand)h(out)0 +1129 y(an)o(y)f(no)q(de)h(from)e(a)i(t)o(yp)q(e)g(1)f(no)q(de)h(that)g +(do)q(es)g(not)g(ha)o(v)o(e)f(an)o(y)h(b)q(ound)f(information.)i +(Finally)m(,)c(the)k(pro)q(cessor)g(w)o(ould)e(hand)0 +1179 y(out)e(branc)o(hes)h(from)d(t)o(yp)q(e)i(2)f(no)q(des)i(that)f +(ha)o(v)o(e)f(not)h(b)q(een)h(pruned)f(after)g(the)h(\014rst)f(c)o +(hild)f(has)h(b)q(een)h(completely)e(ev)n(aluated.)0 +1229 y(This)17 b(mak)o(es)f(the)i(algorithm)d(similar)g(\(in)h +(parallelization)g(and)h(sync)o(hronization)g(c)o(haracteristics\))i +(to)e(YBW)o(C*,)h(but)0 1279 y(allo)q(cates)c(the)g(w)o(ork)g(in)f(a)h +(di\013eren)o(t)h(order)f(than)g(YBW)o(C*)g(w)o(ould.)0 +1357 y(In)c(the)g(implemen)o(tation,)d(split)i(p)q(oin)o(ts)h(w)o(ere)g +(placed)g(in)f(shared)i(memory)c(so)j(that)g(other)g(pro)q(cessors)i +(had)e(an)f(opp)q(ortunit)o(y)0 1407 y(to)16 b(tak)o(e)g(branc)o(hes)h +(without)f(a)g(pro)q(cessor)h(con)o(tin)o(ually)e(lo)q(oking)f(for)i(w) +o(ork)g(to)g(do.)24 b(Using)16 b(a)f(Sequen)o(t)i(Balance)g(21000,)0 +1457 y(DTS)d(generated)h(an)e(a)o(v)o(erage)h(sp)q(eed-up)i(of)d(8.81)g +(o)o(v)o(er)g(16)h(pro)q(cessors.)0 1536 y Fn(Bound-and-Br)n(anch)f +Fp(\(F)m(erguson)e(and)g(Korf,)g(1988\))e(is)i(a)f(pro)q(cessor)j(allo) +q(cation)c(sc)o(heme)i(in)f(the)i(Distributed)f(T)m(ree)g(Searc)o(h)0 +1586 y(framew)o(ork)d({)i(a)g(general)g(framew)o(ork)e(for)i +(distributed)h(searc)o(h)g({)f(to)f(searc)o(h)j Fk(\013\014)g +Fp(trees)f(generated)h(b)o(y)e(an)f(Othello)h(program.)0 +1636 y(If)k(no)h(cuto\013)g(b)q(ound)g(exists)g(at)f(a)h(no)q(de,)g +(all)e(pro)q(cessors)k(are)e(assigned)g(to)f(the)h(\014rst)h(c)o(hild)e +(to)g(generate)i(a)f(cuto\013)g(b)q(ound)0 1685 y(as)j(quic)o(kly)f(as) +h(p)q(ossible.)29 b(If)18 b(a)f(cuto\013)i(b)q(ound)e(exists,)i(or)f +(has)g(b)q(een)h(established)f(b)o(y)g(completing)e(the)i(searc)o(h)h +(of)e(the)0 1735 y(\014rst)e(c)o(hild,)f(the)h(pro)q(cessors)h(are)f +(allo)q(cated)f(in)g(a)g(breadth-\014rst)i(manner)d(to)h(all)g +(remaining)e(c)o(hildren.)20 b(E\013ectiv)o(ely)m(,)14 +b(this)0 1785 y(sc)o(heme)f(giv)o(es)g(the)g(same)f(parallelism)e(and)j +(sync)o(hronization)g(pattern)h(describ)q(ed)g(in)f(the)g(YBW)o(C*)g +(algorithm.)i(F)m(or)d(the)0 1835 y(Bound-and-Branc)o(h)f(pro)q(cessor) +h(allo)q(cation)d(sc)o(heme,)h(F)m(erguson)h(and)f(Korf)g(get)h(sp)q +(eedups)h(of)e(12)f(while)h(studying)g(Othello)0 1885 +y(trees)16 b(using)e(a)h(32-pro)q(cessor)g(h)o(yp)q(ercub)q(e.)22 +b(The)15 b(searc)o(h)h(is)e(facilitated)g(b)o(y)g(a)h(distributed)g +(\\game-tree)f(represen)o(tation")0 1934 y(whic)o(h)g(is)g(similar)d +(to)j(a)f(transp)q(osition)h(table,)f(and)h(iterativ)o(e)g(deep)q +(ening.)0 2013 y(Hsu)i(describ)q(ed)h(a)e Fn(queue)n(d)i(pr)n(o)n(c)n +(essor)f(arr)n(ay)g(mo)n(del)f Fp(for)g(implemen)o(ting)d(a)j(parallel) +g Fk(\013\014)i Fp(algorithm)c(within)i(the)h(second)0 +2063 y(v)o(ersion)g(of)f(Deep)h(Though)o(t)f(\(1990\).)23 +b(The)16 b(host)g(w)o(orkstation)f(tra)o(v)o(erses)i(the)g(tree)f +(according)g(to)g(the)g(algorithm)d(un)o(til)0 2113 y(the)h +(parallelization)e(horizon)i(is)f(reac)o(hed.)20 b(The)14 +b(subproblems)f(are)i(then)f(placed)g(on)g(to)f(a)h(queue)g(that)g(can) +g(b)q(e)h(accessed)0 2163 y(b)o(y)g(a)h(large)f(n)o(um)o(b)q(er)g(of)g +(sp)q(ecialized)h(VLSI)g(pro)q(cessors.)25 b(All)15 b(of)g(the)h(pro)q +(cessors)i(are)e(connected)h(b)o(y)e(the)h(same)f(bus)h(to)0 +2213 y(this)i(queue.)31 b(The)18 b(pro)q(cessors)i(tak)o(e)e(a)o(w)o(a) +o(y)f(the)i(subproblems)e(placed)h(on)g(the)g(queue,)i(run)e(the)g +(silicon-enco)q(ded)h Fk(\013\014)0 2262 y Fp(routine)c(on)f(the)i(c)o +(hip,)e(and)h(return)h(the)f(results)h(to)f(another)g(queue)g(on)g(the) +g(bus)g(that)g(go)q(es)g(in)g(to)f(the)i(host)f(pro)q(cessor.)0 +2312 y(The)f(results)h(are)g(then)f(added)g(to)g(the)h(tree)g(represen) +o(tation)g(in)f(the)g(host)g(computer.)0 2391 y(Hsu)i(also)f(in)o(tro)q +(duced)h(the)g Fn(delaye)n(d)h(br)n(anch)g(tr)n(e)n(e)e(exp)n(ansion)i +Fp(\(DBTE\))f(algorithms)d(in)i(his)h(thesis.)23 b(These)17 +b(algorithms)0 2441 y(generate)f(t)o(w)o(o)e(queues)i(of)e(no)q(des.)20 +b(The)15 b(\014rst)h(queue)f(is)g(a)f(set)h(of)f(no)q(des)i(that)e +(corresp)q(ond)i(to)f(the)g Fk(\013\014)i Fp(minim)o(al)11 +b(tree,)k(in)0 2491 y(a)e(left-to-righ)o(t)f(order.)19 +b(The)14 b(second)g(queue)g(con)o(tains)f(no)q(des)h(that)g(are)g(not)f +(in)g(the)g Fk(\013\014)j Fp(minim)o(al)10 b(tree,)k(b)q(ecause)h(of)e +(p)q(o)q(or)0 2540 y(mo)o(v)o(e)g(ordering)h(at)g(t)o(yp)q(e)h(2)f(no)q +(des.)21 b(The)15 b(minim)o(al)c(tree)k(queue)g(is)g(used)g(only)f +(when)g(the)h(queue)h(of)d(additional)g(w)o(ork)h(at)0 +2590 y(failed)f(t)o(yp)q(e)h(2)g(no)q(des)h(is)e(empt)o(y)m(.)k(This)d +(setup)h(allo)o(ws)d(for)i(parallelism)d(at)j(t)o(yp)q(e)g(1)g(and)f(3) +h(no)q(des.)0 2669 y(There)d(is)g(a)f(family)d(of)j(DBTE)g(algorithms)e +(based)j(on)f(the)h(c)o(hoice)g(of)f(CUT)g(no)q(des)h(to)f(re-expand.) +18 b(One)11 b(of)f(the)h(algorithms,)p eop +%%Page: 9 9 +9 8 bop 467 50 a Fe(A)14 b(T)m(axonom)o(y)d(of)i(P)o(arallel)g(Game-T)m +(ree)g(Searc)o(h)h(Algorithms)465 b Fp(9)0 195 y(the)13 +b(Leftmost)e(First)h(algorithm,)e(is)i(sho)o(wn)g(to)g(b)q(e)g +(asymptotically)e(optimal)f(on)j(b)q(est-\014rst)i(trees)g(as)e(w)o +(ell)g(as)g(dominating)0 245 y(w)o(eak)f Fk(\013\014)i +Fp(\(a)e(v)o(ersion)h(of)e(the)i Fk(\013\014)h Fp(algorithm)c(whic)o(h) +h(only)h(has)g(shallo)o(w)f(cuto\013s\).)18 b(The)12 +b(Leftmost)e(First)h(algorithm)e(causes)0 295 y(sync)o(hronization)j +(to)f(o)q(ccur)i(at)e(bad)g(t)o(yp)q(e)h(2)g(no)q(des.)18 +b(Sim)o(ulations)9 b(rep)q(ort)j(that)g(a)f(sp)q(eedup)i(of)e(350)g +(with)g(1000)g(pro)q(cessors)0 345 y(is)j(p)q(ossible,)f(once)i(the)f +(mac)o(hine)f(is)h(completely)e(constructed.)0 423 y(Lu)19 +b(\(1993\))g(implemen)o(ted)e(a)i(pair)g(of)g(impro)o(v)o(emen)o(ts)e +(to)i(the)i(basic)e(PV-Split)g(algorithm)e(for)i(use)h(in)f(the)h(c)o +(hec)o(k)o(ers)0 473 y(program)13 b Fc(Chinook)p Fp(.)21 +b(T)m(o)14 b(prev)o(en)o(t)i(starv)n(ation)e(when)h(exploring)f(c)o +(hec)o(k)o(ers)i(trees,)g(whic)o(h)f(ha)o(v)o(e)f(an)h(a)o(v)o(erage)f +(branc)o(hing)0 523 y(factor)d(of)g(3)g(instead)h(of)f(the)h(38)e +(found)h(in)g(c)o(hess)i(trees,)g Fn(fr)n(ontier)f(splitting)e +Fp(w)o(as)h(prop)q(osed)i(and)e(tested.)19 b(F)m(ron)o(tier)11 +b(splitting)0 573 y(creates)18 b(m)o(ultiple)d(split)h(no)q(des)h +(further)h(up)f(the)g(v)n(ariation)e(b)q(eing)h(explored)h(b)o(y)g(the) +g(Con)o(troller)f(pro)q(cess)j(as)d(they)i(are)0 623 +y(required.)33 b(This)18 b(is)h(di\013eren)o(t)g(than)f(algorithms)f +(lik)o(e)g(YBW)o(C*,)i(whic)o(h)g(concen)o(trate)h(on)e(creating)h(new) +g(split)f(no)q(des)0 672 y(underneath)g(the)g(curren)o(t)g(split)e(no)q +(de.)28 b(Split)16 b(no)q(des)i(are)f(created)h(\014rst)g(at)f(all)e +(no)q(des)j(and)f(only)f(at)g(cut)i(no)q(des)f(when)0 +722 y(there)e(is)g(no)e(parallelism)f(left)i(at)g(an)o(y)g(all)f(no)q +(des.)19 b(The)c(dra)o(wbac)o(k)f(is)g(that)g(the)h(searc)o(h)g(migh)o +(t)d(b)q(e)j(started)h(without)d(an)o(y)0 772 y(b)q(ound)j +(information.)23 b(Essen)o(tially)m(,)15 b(this)i(remo)o(v)o(es)f(the)g +(sync)o(hronization)h(for)f(a)g(giv)o(en)g(depth)h(searc)o(h,)g(and)f +(allo)o(ws)f(for)0 822 y(parallelism)c(at)j(an)o(y)f(no)q(de)i(within)e +(the)h(tree.)0 901 y(An)h(implemen)o(tati)o(on)d(of)i(dynamic)f(load)h +(balancing,)f(similar)f(to)j(the)g(EPVS)g(metho)q(d,)f(w)o(as)g(also)g +(presen)o(ted.)23 b Fn(Str)n(aggler)0 951 y(pr)n(e)n(emption)13 +b Fp(gathers)g(a)f(group)h(of)f(idle)g(pro)q(cessors)j(and)e(assigns)f +(them)g(to)h(a)f(subtree)j(that)d(has)h(b)q(een)h(w)o(ork)o(ed)f(on)f +(b)o(y)h(one)0 1000 y(pro)q(cessor)j(for)f(a)f(long)f(p)q(erio)q(d)i +(of)f(time.)19 b(Both)c(of)f(the)h(impro)o(v)o(em)o(en)o(ts)e(w)o(ere)i +(tested)h(and)f(the)g(sp)q(eedup)h(on)e(the)h(test)h(set)0 +1050 y(impro)o(v)o(ed)11 b(from)g(1.92)h(on)h(16)f(pro)q(cessors)k(for) +c(the)i(basic)f(PV-Split)f(algorithm)f(to)i(3.31)e(on)i(16)g(pro)q +(cessors.)20 b(The)13 b(a)o(v)o(erage)0 1100 y(branc)o(hing)f(factor)h +(of)f(the)h(trees)h(b)q(eing)f(explored)g(w)o(as)f(2.78;)g(although)f +(the)j(magnitude)d(of)h(the)h(increase)h(w)o(as)e(small,)e(the)0 +1150 y(fact)k(that)g(the)g(sp)q(eedup)i(is)e(larger)f(than)h(the)h +(branc)o(hing)e(factor)h(is)g(signi\014can)o(t.)0 1229 +y(Da)o(vid's)d Fk(\013\014)r Fp(*)i(\(1993\))f(is)g(a)h(new)g(t)o(yp)q +(e)g(of)f(arc)o(hitecture)i(for)f(dealing)e(whic)o(h)i(requires)h(a)e +(shared)i(transp)q(osition)e(table.)18 b(All)0 1279 y(pro)q(cessors)f +(start)e(at)g(the)g(ro)q(ot)g(of)f(the)i(tree)g(and)e(start)h(tra)o(v)o +(elling)f(do)o(wn)g(the)i(tree.)21 b(Ho)o(w)o(ev)o(er,)15 +b(the)h(pro)q(cessors)h(explore)0 1328 y(di\013eren)o(t)12 +b(parts)g(of)f(the)g(tree)i(based)f(on)f(results)h(from)d(the)j(shared) +g(transp)q(osition)g(table.)17 b(Eac)o(h)11 b(en)o(try)h(con)o(tains)f +(a)g(coun)o(ter)0 1378 y(of)17 b(ho)o(w)f(man)o(y)g(pro)q(cessors)j +(are)e(exploring)g(the)h(subtree)h(ro)q(oted)e(at)g(that)g(no)q(de.)29 +b(Th)o(us,)17 b(the)h(pro)q(cessor)h(can)f(disco)o(v)o(er)0 +1428 y(whic)o(h)c(no)q(des)g(ha)o(v)o(e)g(b)q(een)h(ev)n(aluated.)0 +1507 y(A)h(depth-limited)f(searc)o(h)i(is)f(executed)i(at)d(non-PV)i +(no)q(des)f(to)g(determine)g(whether)i(the)e(no)q(de)h(is)f(a)f(t)o(yp) +q(e)i(2)f(or)g(a)f(t)o(yp)q(e)0 1557 y(3)i(no)q(de.)27 +b(T)o(yp)q(e)17 b(2)g(no)q(des)g(are)g(searc)o(hed)i(sequen)o(tially)m +(,)d(as)h(in)f(other)i(algorithms.)24 b(A)o(t)17 b(t)o(yp)q(e)h(3)e(no) +q(des,)i(the)f(n)o(um)o(b)q(er)g(of)0 1606 y(pro)q(cessors)g(allo)o(w)o +(ed)c(to)h(explore)g(a)g(subtree)i(is)f(limited)d(b)o(y)i(a)g(constan)o +(t)h(factor)f(of)g(the)g(n)o(um)o(b)q(er)g(of)g(pro)q(cessors)i(that)f +(are)0 1656 y(curren)o(tly)i(at)f(the)g(t)o(yp)q(e)g(3)g(no)q(de.)24 +b(F)m(or)16 b(the)g(purp)q(oses)i(of)d Fk(\013\014)r +Fp(*,)h(once)g(the)h(leftmost)d(c)o(hild)i(of)f(a)h(t)o(yp)q(e)g(1)g +(no)q(de)g(has)g(b)q(een)0 1706 y(ev)n(aluated,)e(the)i(t)o(yp)q(e)f(1) +g(no)q(de)g(e\013ectiv)o(ely)h(b)q(ecomes)f(a)g(t)o(yp)q(e)g(3)g(no)q +(de.)21 b(Once)16 b(a)f(pro)q(cessor)i(has)e(visited)g(a)f(no)q(de,)h +(it)g(ma)o(y)0 1756 y(not)h(go)g(bac)o(k)h(ab)q(o)o(v)o(e)f(that)h(no)q +(de)f(un)o(til)g(the)h(no)q(de)g(is)f(ev)n(aluated)h(\(i.e.)25 +b(the)17 b(correct)h Fk(\013\014)h Fp(information)14 +b(is)i(kno)o(wn)g(ab)q(out)0 1806 y(the)g(v)n(alue)f(at)g(that)g(no)q +(de\).)24 b(This)15 b(means)f(that)i(as)f(so)q(on)h(as)f(one)h(pro)q +(cessor)h(has)f(\\ev)n(aluated")e(the)i(ro)q(ot,)g(the)g(searc)o(h)g +(is)0 1856 y(completed.)h(One)c(adv)n(an)o(tage)e(of)h(the)g +Fk(\013\014)r Fp(*)h(algorithm)c(is)j(the)h(parallel)e(co)q(de)i(in)o +(v)o(olv)o(es)e(only)g(a)h(small)e(n)o(um)o(b)q(er)i(of)f(c)o(hanges)0 +1905 y(to)16 b(the)h(sequen)o(tial)f(co)q(de)h(\(W)m(eill,)e(1995\).)24 +b(In)16 b(his)h(thesis,)g(Da)o(vid)e(ac)o(hiev)o(ed)h(a)g(sp)q(eedup)i +(of)e(6.5)f(on)h(16)g(T)m(ransputers.)26 b(8)0 1955 y(of)14 +b(the)i(T)m(ransputers)g(w)o(ere)f(used)h(to)f(con)o(trol)f(the)i +(shared)g(transp)q(osition)e(table,)h(while)f(the)h(other)h(8)e(w)o +(ere)i(used)g(as)f(tree)0 2005 y(searc)o(hers.)0 2084 +y Fn(CABP)g Fp(is)h(an)f(algorithm)d(b)o(y)k(Cung)f(\(1994\),)f(based)i +(on)g(the)g(Deep)g(Though)o(t)f(design)g(presen)o(ted)j(b)o(y)d(Hsu)h +(\(1990\).)22 b(The)0 2134 y(algorithm)8 b(w)o(as)j(designed)g(for)f(a) +h(shared)g(memory)e(system,)h(and)h(main)o(tains)d(a)j(shared)g +(\\score)h(tree")g(for)e(the)h(en)o(tire)h(game-)0 2183 +y(tree)18 b(and)f(the)h(t)o(w)o(o)e(lists)h(of)g(w)o(ork:)24 +b(critical)17 b(no)q(des)g(one)h(ply)e(ab)q(o)o(v)o(e)h(the)h(lea)o(v)o +(es,)f(and)g(non-critical)f(c)o(hildren)i(of)e(failed)0 +2233 y(cut-no)q(des.)j(A)o(t)13 b(failed)f(cut-no)q(des,)h(the)h +(non-critical)e(c)o(hildren)h(are)g(added)g(to)g(the)g(list)f +Fk(k)i Fp(at)f(a)f(time.)17 b(\(In)12 b(the)i(sim)o(ulation)0 +2283 y(results)e(giv)o(en)e(in)g(the)h(thesis,)g Fk(k)i +Fp(=)f(1.\))k(In)11 b(his)f(Ph.D.)g(thesis,)h(Cung)g(sho)o(ws)f(the)h +(CABP)h(algorithm)7 b(generating)k(a)f(sp)q(eedup)0 2333 +y(of)i(4.6)g(on)h(strongly-ordered)h(trees)g(with)f(a)g(branc)o(hing)g +(factor)f(of)h(40)f(using)h(9)g(pro)q(cessors)i(on)e(a)f(Sequen)o(t)i +(Balance)f(8000.)0 2412 y(Kuszmaul)f(\(1994\))h(presen)o(ts)i +Fn(Jamb)n(or)n(e)n(e)e(se)n(ar)n(ch)g Fp(in)g(his)g(Ph.D.)f(thesis)i +(as)f(an)g(algorithm)e(for)h(testing)i(MIMD)f(sc)o(heduling)0 +2462 y(algorithms)e(on)j(the)g(CM-5.)k(Jam)o(b)q(oree)13 +b(searc)o(h)i(is)f(a)f(parallelization)f(of)h(NegaScout)h(searc)o(h)h +(whic)o(h)f(b)q(eha)o(v)o(es)g(with)g(only)0 2511 y(a)f(few)g(minor)f +(di\013erences)j(to)f(the)g(w)o(ork)f(done)g(b)o(y)g(F)m(eldmann)f +Fn(et.)18 b(al)13 b Fp(on)g(the)h(Y)m(oung)f(Brothers)i(W)m(ait)d +(algorithm.)j(In)e(the)0 2561 y(Y)m(oung)h(Brothers)i(W)m(ait)e +(algorithm,)d(when)16 b(a)e(subtree)j(is)d(giv)o(en)g(to)h(a)f(pro)q +(cessor)j(and)d(the)i(searc)o(h)g(fails)d(high,)h(the)h(sla)o(v)o(e)0 +2611 y(pro)q(cessor)j(immediately)c(pro)q(ceeds)k(to)f(w)o(ork)f(out)h +(the)g(v)n(alue)f(with)g(the)h(full)f(searc)o(h)h(windo)o(w)f(without)h +(informing)c(the)0 2661 y(master)h(pro)q(cessor.)23 b(In)15 +b(Jam)o(b)q(oree)g(searc)o(h,)h(a)f(fail)e(high)h(v)n(alue)g(is)h +(returned)i(to)e(the)g(master)g(pro)q(cessor.)23 b(This)15 +b(prev)o(en)o(ts)p eop +%%Page: 10 10 +10 9 bop 0 50 a Fp(10)592 b(ICCA)14 b(Journal)f(Submission)591 +b(June)15 b(12,)e(1996)0 195 y(an)o(y)i(y)o(ounger)i(subtrees)h(from)c +(executing)j(a)e(full)g(windo)o(w)g(searc)o(h)i(un)o(til)e(the)i(new)f +(b)q(ound)g Fk(\013)g Fp(can)g(b)q(e)h(established)g(b)o(y)e(a)0 +245 y(full)e(windo)o(w)g(searc)o(h.)0 324 y(W)m(eill)c(in)o(tro)q +(duced)j(an)e(impro)o(v)o(emen)o(t)f(to)h(the)i Fk(\013\014)r +Fp(*)f(algorithm)d(in)i(his)h(Ph.D.)f(thesis)i(\(1995\).)k(W)m(eill)9 +b(suggested)k(and)d(tested)0 374 y(a)g(decision)h(metho)q(d)f(based)i +(on)e(the)i(Y)m(oung)e(Brothers)i(W)m(ait,)d(instead)j(of)e(the)h +(depth-limited)e(searc)o(h)j(and)f(constan)o(t)g(factor)0 +423 y(at)i(t)o(yp)q(e)h(3)f(no)q(des)h(tested)g(b)o(y)f(Da)o(vid.)k(A)o +(t)c(an)o(y)g(no)q(de)g(in)g(the)h Fk(\013\014)r Fp(*)f(algorithm,)d +(if)j(the)g(leftmost)f(c)o(hild)h(isn't)g(ev)n(aluated,)f(all)0 +473 y(pro)q(cessors)18 b(m)o(ust)d(ev)n(aluate)g(the)i(leftmost)d(c)o +(hild.)23 b(Once)17 b(the)f(leftmost)f(c)o(hild)g(is)h(ev)n(aluated,)f +(pro)q(cessors)j(are)e(allo)q(cated)0 523 y(to)i(non-ev)n(aluated)f +(idle)g(c)o(hildren)h(\014rst,)h(and)e(then)i(allo)q(cated)e(in)g(a)h +(balanced)f(manner)g(to)h(the)g(other)g(non-ev)n(aluated)0 +573 y(c)o(hildren)13 b(in)g(the)g(tree.)19 b(Although)12 +b(b)q(oth)h Fk(\013\014)r Fp(*)g(and)g(YBW)o(C*)g(use)h(the)f(same)f +(decision)h(metho)q(d)f(for)h(allo)o(wing)d(or)j(den)o(ying)0 +623 y(parallelism,)g Fk(\013\014)r Fp(*)j(uses)g(a)g(shared)g(transp)q +(osition)g(table)f(to)g(k)o(eep)i(the)f(pro)q(cessors)i(w)o(orking)c +(on)i(di\013eren)o(t)g(parts)g(of)f(the)0 672 y(tree,)g(while)e(YBW)o +(C*)h(uses)h(master-sla)o(v)o(e)e(relationships.)0 751 +y(In)g(a)g(later)g(pap)q(er)h(\(W)m(eill,)d(1996\),)h(the)i(com)o +(bined)e(metho)q(d)g(w)o(as)h(called)g Fn(A)o(lpha-B)o(^)-20 +b(eta)15 b(Distribut)o(\023)-20 b(e)13 b(ave)n(c)i(Dr)n(oit)e(d'A)1828 +742 y(^)1830 751 y(inesse)p Fp(,)0 801 y(or)k(ABD)o(AD)o(A.)f(He)i(sho) +o(w)o(ed)f(that)g(ABD)o(AD)o(A)g(yields)f(greater)i(sp)q(eedups)h(than) +e(YBW)o(C)g(on)g(a)f(CM-5)h(when)g(studying)0 851 y(c)o(hess)j(trees.) +35 b(ABD)o(AD)o(A)19 b(also)g(yields)f(similar)f(sp)q(eedups)k(to)e +(YBW)o(C)g(when)g(studying)g Fk(\013\014)i Fp(trees)g(generated)f(b)o +(y)f(an)0 901 y(Othello)14 b(program.)0 980 y Fn(Dynamic)i(Multiple)e +(Princip)n(al)g(V)m(ariation)g(Splitting)g Fp(\(DM-PVSplit\))f(is)h(a)g +(v)n(ariation)e(of)h(the)h(PV-Split)g(algorithm)d(that)0 +1029 y(allo)o(ws)18 b(for)h(greater)h(parallelism)c(near)k(the)f(start) +h(of)f(a)g(searc)o(h)h(\(Marsland)f(and)g(Gao,)g(1995\).)33 +b(T)m(o)18 b(understand)i(the)0 1079 y(algorithm,)12 +b(it)i(is)h(necessary)i(to)d(de\014ne)i(the)g Fn(PV)f(set)p +Fp(.)21 b(The)15 b(ro)q(ot)g(is)g(a)f(mem)o(b)q(er)f(of)i(the)g(PV)g +(set.)22 b(A)o(t)15 b(subsequen)o(t)h(lev)o(els,)0 1129 +y(no)q(des)f(are)f(part)g(of)g(the)g(PV)h(set)g(if)e(the)h(paren)o(t)h +(is)f(a)g(mem)o(b)q(er)e(of)h(the)i(PV)f(set,)h(and)f(they)g(are)h +(generated)g(b)o(y)f(the)g(\014rst)h Fk(k)0 1179 y Fp(candidate)g(mo)o +(v)o(es)f(in)h(the)g(mo)o(v)o(e)f(list)h(of)f(the)i(paren)o(t.)22 +b(The)16 b(determination)d(of)i Fk(k)h Fp(is)f(giv)o(en)f(b)o(y)h(a)g +(function,)g(not)g(a)g(\014xed)0 1229 y(n)o(um)o(b)q(er.)i(Th)o(us,)c +(the)g(PV)g(set)h(is)e(a)h(righ)o(t-pruned)g(v)o(ersion)g(of)f(the)h +(game-tree.)18 b(An)13 b(appropriate)f(c)o(hoice)i(of)e(the)h +(heuristic)0 1279 y(guess)h(allo)o(ws)d(for)i(greater)g(parallelism)d +(without)j(adv)o(ersely)g(increasing)g(the)g(searc)o(h)h(o)o(v)o +(erhead,)f(since)h(the)f(correct)i(mo)o(v)o(e)0 1328 +y(at)g(a)g(PV)h(set)g(no)q(de)g(is)g(highly)e(lik)o(ely)g(to)h(app)q +(ear)h(in)f(its)g(PV)h(set)g(c)o(hildren.)23 b(By)16 +b(alw)o(a)o(ys)e(selecting)i(only)f(one)h(candidate)0 +1378 y(mo)o(v)o(e,)10 b(DM-PVSplit)h(generalizes)h(in)o(to)f(PV-Split.) +17 b(Since)12 b(the)g(PV)g(set)h(do)q(es)f(not)f(resp)q(ect)j(the)f +(structure)g(of)e(the)h(minima)o(l)0 1428 y(tree,)18 +b(the)f(last)g(t)o(w)o(o)f(columns)f(in)i(T)m(able)e(2)i(re\015ect)h +(this)f(b)o(y)f(referring)i(to)e(the)h(PV)g(set,)h(and)f(not)f(Kn)o +(uth)h(and)g(Mo)q(ore's)0 1478 y(classi\014cation)d(of)f(minim)o(al)d +(tree)15 b(no)q(des.)0 1557 y(The)c(algorithm)e(is)h(designed)i(for)f +(use)g(on)g(strongly)g(ordered)h(trees.)19 b(In)11 b(the)g(pap)q(er,)h +(Marsland)f(and)f(Gao)g(sho)o(w)h(the)h(results)0 1606 +y(of)i(an)g(exp)q(erimen)o(t)g(where)i(DM-PVSplit)d(generates)j(a)e(sp) +q(eedup)i(of)e(appro)o(ximately)e(32)i(o)o(v)o(er)g(64)g(pro)q +(cessors,)i(using)e(an)0 1656 y(arti\014cially)e(generated)k(tree)f(of) +e(width)h(32)f(and)h(depth)g(8.)0 1735 y Fn(Asynchr)n(onous)21 +b(Par)n(al)r(lel)f(Hier)n(ar)n(chic)n(al)f(Iter)n(ative)g(De)n(ep)n +(ening)i Fp(is)f(an)g(attempt)f(to)h(extend)g(the)h(ideas)f(of)f(Newb)q +(orn's)0 1785 y(UIDP)m(ABS)c(algorithm)e(for)i(use)h(on)f(a)g(net)o(w)o +(ork)h(of)f(w)o(orkstations,)g(where)h(the)g(cost)g(of)f(comm)o +(unicatio)o(n)e(is)i(prohibitiv)o(e)0 1835 y(\(Bro)q(c)o(kington)j(and) +f(Sc)o(hae\013er,)i(1996\).)28 b(Instead)19 b(of)e(using)g(a)g(single)g +(ply)g(of)g(the)h(game-tree)f(to)h(generate)g(w)o(ork)g(lists,)0 +1885 y(APHID)h(uses)h(a)f(truncated)h(game-tree)e(of)h(user-de\014ned)i +(depth,)f(and)f(all)e(lea)o(v)o(es)i(of)f(the)i(truncated)g(game-tree)f +(are)0 1934 y(allo)q(cated)c(to)g(sla)o(v)o(e)g(pro)q(cessors.)24 +b(The)16 b(master)e(pro)q(cessors)k(within)c(the)i(hierarc)o(h)o(y)g +(con)o(tin)o(ually)d(searc)o(h)k(the)f(truncated)0 1984 +y(game-tree)g(to)g(add,)f(delete)j(and)d(up)q(date)i(the)g(priorit)o(y) +e(of)g(w)o(ork)h(for)g(the)g(sla)o(v)o(es.)25 b(The)16 +b(sla)o(v)o(e)g(pro)q(cessors)i(searc)o(h)g(their)0 2034 +y(w)o(ork)12 b(lists)f(with)h(minim)o(al)c(sync)o(hronization)k(from)e +(the)j(master.)k(The)12 b(sla)o(v)o(es)g(determine)g(their)g(o)o(wn)f +(w)o(ork)h(sc)o(hedule)h(and)0 2084 y(inform)e(the)k(master)e(pro)q +(cessors)j(of)d(the)h(searc)o(h)h(results.)k(Sla)o(v)o(e)13 +b(pro)q(cessors)j(can)e(con)o(tin)o(ue)g(searc)o(hing)g(the)g(next)g +(lev)o(el)g(of)0 2134 y(the)g(iterativ)o(e)g(deep)q(ening)h(searc)o(h)g +(sp)q(eculativ)o(ely)f(if)f(they)i(ha)o(v)o(e)e(no)h(w)o(ork)g(left)f +(to)h(do)g(at)f(the)i(curren)o(t)g(lev)o(el.)0 2213 y(The)e(APHID)f +(algorithm)e(has)j(b)q(een)g(implemen)o(ted)d(as)j(a)f(game-indep)q +(enden)o(t)g(library)g(that)g(can)h(b)q(e)g(easily)f(inserted)i(in)o +(to)0 2262 y(a)e(sequen)o(tial)g(game-pla)o(ying)c(program.)16 +b(The)d(library)e(has)h(b)q(een)h(tested)g(on)f(b)q(oth)g +Fc(Key)m(ano)i Fp(\(an)e(Othello)g(program\))e(and)0 +2312 y Fc(TheTurk)k Fp(\(a)g(c)o(hess)h(program\).)h(A)o(t)e(time)e(of) +h(writing,)g(the)h(APHID)g(algorithm)d(ac)o(hiev)o(es)j(sp)q(eedups)h +(of)e(8.41)g(and)g(6.02)0 2362 y(for)h Fc(Key)m(ano)i +Fp(and)d Fc(TheTurk)i Fp(\(resp)q(ectiv)o(ely\))g(on)f(a)g(net)o(w)o +(ork)g(of)f(16)g(Sparc-2)h(w)o(orkstations.)0 2529 y +Fl(3)48 b(OTHER)16 b(SEAR)o(CH)g(P)l(ARADIGMS)f(F)o(OR)g(P)l(ARALLEL)g +(GAME-TREE)i(SEAR)o(CH)0 2654 y Fp(Although)e(the)h(emphasis)f(has)h(b) +q(een)h(on)e Fk(\013\014)r Fp(-based)h(metho)q(ds,)g(there)g(are)h +(other)f(searc)o(h)h(strategies)f(that)g(can)g(b)q(e)g(used)0 +2704 y(to)e(generate)i(the)f(minima)o(x)d(v)n(alue.)19 +b(They)c(ha)o(v)o(e)g(b)q(een)g(sub)q(divided)g(in)o(to)f(three)i +(subsections.)22 b(The)15 b(\014rst)g(will)e(deal)h(with)p +eop +%%Page: 11 11 +11 10 bop 456 50 a Fe(A)14 b(T)m(axonom)o(y)d(of)j(P)o(arallel)e +(Game-T)m(ree)h(Searc)o(h)i(Algorithms)454 b Fp(11)0 +195 y(parallel)11 b(algorithms)g(based)i(on)f(the)h(original)e(form)o +(ulation)e(of)j Fk(S)r(S)r(S)r Fj(\003)p Fp(.)20 b(The)13 +b(second)h(subsection)f(will)f(deal)g(with)g(the)h Fk(E)r(R)0 +245 y Fp(metho)q(d,)f(while)g(the)h(\014nal)f(subsection)i(will)d(deal) +i(v)o(ery)g(brie\015y)g(with)f(purely)h(theoretical)g(mo)q(dels)f(for)g +(game-tree)g(searc)o(h.)0 450 y Fl(3.1)48 b(P)o(arallel)13 +b(Searc)o(h)h(based)h(on)g Fk(S)r(S)r(S)r Fj(\003)0 569 +y Fp(Sto)q(c)o(kman)g(\(1979\))h(in)o(tro)q(duced)h(the)g +Fk(S)r(S)r(S)r Fj(\003)h Fp(algorithm.)23 b(Initially)m(,)14 +b(it)i(w)o(as)g(b)q(eliev)o(ed)h(that)f(the)h(algorithm)d(dominated)0 +619 y Fk(\013\014)19 b Fp(in)d(the)h(sense)h(that)f Fk(S)r(S)r(S)r +Fj(\003)i Fp(will)c(not)h(searc)o(h)i(a)e(no)q(de)h(if)f +Fk(\013\014)i Fp(did)f(not)f(searc)o(h)i(it.)25 b(A)17 +b(p)q(erceiv)o(ed)h(problem)d(with)h(the)0 669 y(algorithm)e(is)j(that) +g(a)g(list)f(structure)k(\(the)d Fb(OPEN)f Fp(list\))h(m)o(ust)f(b)q(e) +i(main)o(tained,)d(whic)o(h)i(could)f(gro)o(w)h(to)g +Fk(b)1713 654 y Fa(d=)p Fm(2)1783 669 y Fp(elemen)o(ts,)0 +719 y(where)f Fk(b)e Fp(is)h(the)g(branc)o(hing)g(factor)g(and)f +Fk(d)h Fp(is)f(the)i(depth)f(of)f(the)i(tree)g(to)f(b)q(e)g(searc)o +(hed.)22 b(This)15 b(space)h(requiremen)o(t)f(w)o(as,)0 +769 y(at)e(the)g(time,)e(considered)j(to)f(b)q(e)g(to)q(o)g(large)f +(for)g(a)h(practical)f(c)o(hess-pla)o(ying)h(program.)j(F)m +(urthermore,)c(ev)o(en)i(if)e(the)h(space)0 818 y(requiremen)o(t)18 +b(w)o(as)f(not)h(a)g(problem,)f(the)h(main)o(tenance)f(of)g(the)i +Fb(OPEN)d Fp(list)i(slo)o(w)o(ed)f(do)o(wn)h(the)g(algorithm)d(to)j +(mak)o(e)e(it)0 868 y(slo)o(w)o(er)e(than)g Fk(\013\014)i +Fp(in)d(practice.)0 947 y(A)f(theoretical)g(parallel)f +Fk(S)r(S)r(S)r Fj(\003)j Fp(algorithm)9 b(w)o(as)i(prop)q(osed)i +(\(Campb)q(ell,)d(1981;)h(Campb)q(ell)e(and)j(Marsland,)f(1983\),)g +(based)0 997 y(on)i(breaking)g(the)g(tree)i(in)o(to)d(stages)i(to)f +(reduce)i(the)e(cost)h(of)f(main)o(taini)o(ng)d(the)k +Fb(OPEN)e Fp(list.)17 b(A)o(t)d(the)f(end)h(of)e(a)h(stage)h(in)e(the)0 +1047 y(searc)o(h,)j(the)f(no)q(de)h(w)o(ould)e(b)q(e)i(handed)f(to)g(a) +g(sla)o(v)o(e)g(pro)q(cessor)i(in)d(the)i(tree)g(hierarc)o(h)o(y)m(.)k +(This)14 b(limited)e(the)i(depth)h Fk(d)p Fp(,)f(th)o(us)0 +1097 y(prev)o(en)o(ting)i(the)h Fb(OPEN)e Fp(list)h(from)e(b)q(ecoming) +h(to)q(o)h(large.)25 b(The)16 b(staged)h Fk(S)r(S)r(S)r +Fj(\003)h Fp(algorithm)c(is)h(sho)o(wn)i(to)f(b)q(e)g(marginally)0 +1146 y(faster)f(than)e(either)i(tree)g(splitting)e(or)h(PV-Split)f(on)h +(randomly)e(ordered)j(trees)g(in)f(Campb)q(ell's)e(w)o(ork.)0 +1225 y(Leifk)o(er)k(and)g(Kanal)f(\(1985\))g(prop)q(ose)i(the)f(HYBRID) +g(algorithm)d(that)j(is)g(based)g(on)g(the)g(problem)f(heap)h(from)e +Fk(S)r(S)r(S)r Fj(\003)p Fp(,)0 1275 y(but)20 b(con)o(tains)f(no)g +(details)g(p)q(ertaining)g(to)g(an)g(implemen)o(tation.)31 +b(V)m(orn)o(b)q(erger)20 b(and)f(Monien)g(presen)o(ted)j(the)e(results) +0 1325 y(of)14 b(a)h(parallel)f Fk(S)r(S)r(S)r Fj(\003)j +Fp(algorithm)c(\(1987\),)h(but)h(the)h(results)g(w)o(ere)g(disapp)q +(oin)o(ting)d(when)j(compared)e(to)h(the)h(parallel)e +Fk(\013\014)0 1375 y Fp(algorithm)9 b(\(later)i(to)g(b)q(e)h(called)f +(\\Y)m(oung)f(Brothers)j(W)m(ait"\).)i(Their)d(implemen)o(tatio)o(n)d +(of)h(parallel)g Fk(S)r(S)r(S)r Fj(\003)k Fp(on)d(a)f(lo)q(cal)h(area)0 +1424 y(net)o(w)o(ork)j(of)f(PCs)i(had)e(a)h(searc)o(h)h(o)o(v)o(erhead) +f(of)g(o)o(v)o(er)f(300)h(p)q(ercen)o(t)h(when)g(using)e(16)h(pro)q +(cessors.)20 b(Dideric)o(h)14 b(describ)q(ed)h(an)0 1474 +y(implemen)o(tatio)o(n)c(of)j(Sync)o(hronized)h(Distributed)f(State)g +(Space)h(Searc)o(h)g(\()p Fk(S)r(D)q(S)r(S)r(S)s Fj(\003)p +Fp(\))h(\(1992\))e(and)f(ac)o(hiev)o(ed)i(a)e(sp)q(eedup)0 +1524 y(of)g(11.40)g(using)g(32)h(pro)q(cessors,)h(searc)o(hing)g(a)e(5) +h(ply)f(tree)i(with)f(a)f(branc)o(hing)h(factor)g(of)f(16.)0 +1603 y(There)k(are)f(some)e(other)i Fk(S)r(S)r(S)r Fj(\003)i +Fp(algorithms)13 b(b)o(y)i(Hiromoto)f Fn(et)i(al.)23 +b Fp(\(1987\),)14 b(Kraas)i(\(1990\),)f(and)g(Shinghal)f(and)i(Sh)o(v)o +(ed)0 1653 y(\(1991\),)f(and)h(all)f(of)g(the)i(w)o(ork)e(deals)h(with) +g(ho)o(w)f(to)h(parallelize)f(w)o(ork)h(based)g(on)g(the)h +Fb(OPEN)e Fp(list.)23 b(Although)16 b(the)g(w)o(ork)0 +1703 y(has)g(sho)o(wn)f(some)g(promise)f(in)i(eliminating)c(the)k +(di\016culties)f(of)g(dealing)g(with)g(an)g(ordered)i(problem)d(heap,)i +(all)e(of)h(the)0 1752 y(w)o(ork)i(on)f(handling)g(the)i +Fb(OPEN)e Fp(list)g(has)h(b)q(een)h(made)e(obsolete.)28 +b(This)17 b(is)g(due)g(to)g(the)g(rev)o(elation)g(that)g +Fk(S)r(S)r(S)r Fj(\003)i Fp(can)e(b)q(e)0 1802 y(implemen)o(ted)e(as)i +(a)g(series)h(of)f(n)o(ull-windo)o(w)e Fk(\013\014)k +Fp(calls,)e(using)g(a)g(transp)q(osition)g(table)g(in)f(the)i(place)f +(of)g(the)g Fb(OPEN)f Fp(list)0 1852 y(\(Plaat,)d(1995\).)0 +2057 y Fl(3.2)48 b(P)o(arallel)13 b(Searc)o(h)h(based)h(on)g +Fk(E)r(R)0 2176 y Fp(Stein)o(b)q(erg)g(and)f(Solomon)d(\(1990\))j +(presen)o(ted)i(the)e Fk(E)r(R)g Fp(metho)q(d)g(of)f(searc)o(hing)i +(game-trees.)j Fk(E)r(R)c Fp(stands)h(for)f(Ev)n(aluate-)0 +2226 y(Refute,)20 b(and)f(it)g(attempts)f(to)h(ev)n(aluate)g(some)f +(mandatory)g(w)o(ork)g(b)q(efore)i(attempting)e(to)h(refute)h(the)g +(other)f(mo)o(v)o(es)0 2276 y(within)e(the)g(tree.)30 +b(A)o(t)17 b(a)g(no)q(de)h(to)f(b)q(e)h(ev)n(aluated)f(\(an)g(e-no)q +(de\))h(within)f(the)h(tree,)g(the)g Fk(E)r(R)f Fp(algorithm)e(ev)n +(aluates)i(the)0 2326 y(elder)g(grandc)o(hildren)f(\(concurren)o(tly)m +(,)h(if)f(p)q(ossible\),)h(and)f(then)g(c)o(ho)q(oses)i(the)f(c)o(hild) +e(with)h(largest)h(elder)g(grandc)o(hild)e(to)0 2376 +y(b)q(e)f(the)g(e-c)o(hild.)k(This)13 b(e-c)o(hild)g(is)g(ev)n +(aluated,)g(and)g(then)i(the)f(other)g(c)o(hildren)f(of)g(the)h(e-no)q +(de)g(are)g(refuted.)19 b(The)14 b(metho)q(d)0 2425 y(is)f(less)h +(e\016cien)o(t)g(at)g(searc)o(hing)f(trees)i(than)f(the)g +Fk(\013\014)i Fp(algorithm)10 b(since)15 b(it)e(misses)g(some)f(deep)j +(cuto\013s.)j(F)m(urthermore,)13 b(the)0 2475 y(algorithm)e(w)o(as)j +(not)g(tested)h(with)f(iterativ)o(e)g(deep)q(ening)h(or)e(minima)o(l)e +(windo)o(ws)i(when)i(refuting)e(e-no)q(des.)0 2554 y(The)21 +b Fk(E)r(R)f Fp(metho)q(d)g(and)h(PV-Split)f(w)o(ere)h(implemen)o(ted)e +(as)h(problem-heap)g(algorithms)e(on)i(a)h(Sequen)o(t)g(Symmetry)0 +2604 y(m)o(ultipro)q(cessor.)k(Stein)o(b)q(erg)17 b(and)f(Solomon)e +(found)i(that)h(they)g(ac)o(hiev)o(ed)f(a)h(b)q(etter)h(e\016ciency)f +(with)f(the)h(parallel)e Fk(E)r(R)0 2654 y Fp(algorithm)10 +b(than)j(with)f(PV-Split.)17 b(The)c Fk(E)r(R)f Fp(metho)q(d)g(ac)o +(hiev)o(ed)h(a)f(sp)q(eedup)j(of)d(10)g(with)g(16)g(pro)q(cessors,)j +(and)d(a)g(sp)q(eedup)0 2704 y(of)h(14.7)g(with)g(27)h(pro)q(cessors.)p +eop +%%Page: 12 12 +12 11 bop 0 50 a Fp(12)592 b(ICCA)14 b(Journal)f(Submission)591 +b(June)15 b(12,)e(1996)0 195 y Fl(3.3)48 b(Theoretical)13 +b(P)o(arallel)g(Searc)o(h)i(Metho)q(ds)0 303 y Fp(There)i(are)g(a)f(n)o +(um)o(b)q(er)g(of)f(theoretical)i(algorithms)d(that,)i(to)h(the)f +(author's)h(kno)o(wledge,)f(ha)o(v)o(en't)g(b)q(een)h(programmed.)0 +353 y(Karp)c(and)g(Zhang)h(\(1989\))e(and)h(Alth\177)-21 +b(ofer)13 b(\(1993\))f(ha)o(v)o(e)h(prop)q(osed)h(algorithms)d(that)j +(will)d(yield)i(linear)g(sp)q(eedups)i(in)d(the)0 402 +y(n)o(um)o(b)q(er)17 b(of)f(pro)q(cessors,)k(giv)o(en)d(trees)i(of)e +Fk(O)q Fp(\()p Fk(N)12 b Fp(log)6 b Fk(N)f Fp(\))18 b(or)f +Fk(O)q Fp(\()p Fk(N)5 b Fp(\))17 b(depth,)i(resp)q(ectiv)o(ely)m(.)29 +b(Bro)q(der)19 b Fn(et)f(al.)28 b Fp(\(1990\))17 b(ha)o(v)o(e)0 +452 y(sho)o(wn)12 b(that)g(for)g(an)o(y)f(parallel)g(tree)i(searc)o +(hing)f(algorithm,)e(there)j(exists)g(a)e(tree)i(instance)g(that)f(do)q +(es)h(not)f(run)g(in)g(p)q(olylog)0 502 y(parallel)18 +b(run-time.)32 b(Bro)q(der)20 b Fn(et)f(al.)33 b Fp(also)18 +b(sho)o(w)h(and)g(pro)o(v)o(e)g(an)g(upp)q(er)h(b)q(ound)f(on)f(the)i +(run-time)e(of)g(the)h(P)o(arHop)q(e)0 552 y(algorithm.)0 +703 y Fl(4)48 b(CONCLUSIONS)0 825 y Fp(The)19 b(taxonom)o(y)d(giv)o(en) +i(in)g(section)h(2)f(sho)o(ws)h(that)f(there)i(are)f(a)f(n)o(um)o(b)q +(er)g(of)f(algorithms)f(whic)o(h)j(are)g(similar)c(to)k(one)0 +875 y(another.)29 b(There)19 b(are)f(only)e(subtle)i(di\013erences)i(b) +q(et)o(w)o(een)f(a)e(large)g(n)o(um)o(b)q(er)g(of)g(the)h +Fk(\013\014)r Fp(-based)g(algorithms.)27 b(Most)18 b(of)0 +925 y(these)h(di\013erences)g(are)e(due)h(to)f(the)h(di\013eren)o(t)g +(arc)o(hitectures)h(and)e(game)f(trees)i(studied.)29 +b(This)17 b(comparison)e(is)i(easily)0 974 y(made)c(through)h(the)g +(separation)g(of)f(the)i(implemen)o(tatio)o(n)c(and)j(algorithmic)d +(details.)0 1053 y(As)17 b(the)h(n)o(um)o(b)q(er)e(of)g(pro)q(cessors)j +(a)o(v)n(ailable)c(to)i(the)g(programmers)e(has)i(increased,)h(dynamic) +e(algorithms)e(ha)o(v)o(e)j(tak)o(en)0 1103 y(the)i(place)f(of)g(the)h +(earlier)f(algorithms)e(whic)o(h)i(o\013ered)i(limited)c(parallelism)f +(on)j(a)g(large)g(n)o(um)o(b)q(er)g(of)g(pro)q(cessors.)33 +b(It)0 1153 y(is)16 b(the)h(author's)g(b)q(elief)f(that)h(sp)q +(eculativ)o(e)g(parallelism)d(is)i(necessary)j(to)d(yield)g +(near-linear)g(p)q(erformance)h(on)f(parallel)0 1203 +y(arc)o(hitectures,)g(and)d(is)h(the)h(sub)r(ject)g(of)e(on-going)g +(researc)o(h)i(at)f(the)h(Univ)o(ersit)o(y)e(of)h(Alb)q(erta.)0 +1354 y Fl(5)48 b(A)o(CKNO)o(WLEDGEMENTS)0 1476 y Fp(The)19 +b(author)g(w)o(ould)g(lik)o(e)f(to)h(thank)f(Yngvi)h(Bjornsson,)h +(Rainer)f(F)m(eldmann,)f(Y)m(ao)q(qing)f(Gao,)i(Andreas)h(Junghanns,)0 +1526 y(T)m(on)o(y)14 b(Marsland,)f(Ask)o(e)j(Plaat,)d(Jonathan)h(Sc)o +(hae\013er,)i(Jean-Christophe)g(W)m(eill)c(and)j(the)g(editorial)e +(sta\013)i(of)f(the)h(ICCA)0 1575 y(Journal)d(for)g(their)h(helpful)f +(commen)o(ts)f(on)h(the)i(revisions)e(of)g(this)h(pap)q(er.)18 +b(The)13 b(author)g(is)f(b)q(eing)h(funded)g(b)o(y)f(an)g(NSER)o(C)0 +1625 y(P)o(ostgraduate)i(Sc)o(holarship,)g(for)f(whic)o(h)h(the)g +(author)g(is)g(extremely)g(grateful.)0 1704 y(The)g(author)g(w)o(ould)f +(appreciate)i(an)o(y)e(corrections,)i(suggestions)g(and)e(impro)o(v)o +(emen)o(ts)f(that)i(y)o(ou)f(ma)o(y)f(ha)o(v)o(e.)0 1847 +y Fl(References)21 1953 y Fp(Akl,)j(S.)h(G.,)f(Barnard,)h(D.)f(T.,)h +(and)g(Doran,)f(R.)g(J.)h(\(1982\).)23 b(Design,)16 b(Analysis)g(and)f +(Implemen)o(tation)e(of)i(a)h(P)o(arallel)21 1994 y(T)m(ree)g(Searc)o +(h)h(Algorithm.)k Fn(IEEE)c(T)m(r)n(ansactions)g(on)g(Pattern)g(A)o +(nalysis)f(and)h(Machine)h(Intel)r(ligenc)n(e)p Fp(,)e(V)m(ol.)e(P)m +(AMI-4,)21 2036 y(No.)f(2,)g(pp.)h(192{203.)21 2119 y(Alth\177)-21 +b(ofer,)13 b(I.)f(\(1993\).)17 b(A)c(P)o(arallel)f(Game)g(T)m(ree)i +(Searc)o(h)g(Algorithm)d(with)i(a)g(Linear)g(Sp)q(eedup.)18 +b Fn(Journal)c(of)h(A)o(lgorithm)p Fp(,)21 2161 y(V)m(ol.)d(15,)h(pp.)g +(175{198.)21 2245 y(Bal,)f(H.)h(E.)g(and)f(v)n(an)h(Renesse,)h(R.)e +(\(1986\).)k(A)d(Summary)e(of)h(P)o(arallel)g(Alpha-Beta)h(Searc)o(h)h +(Results.)j Fn(ICCA)d(Journal)p Fp(,)21 2286 y(V)m(ol.)e(9,)h(No.)g(3,) +h(pp.)f(146{149.)21 2370 y(Baudet,)j(G.)f(M.)g(\(1978\).)22 +b Fn(The)16 b(Design)h(and)g(Analysis)f(of)h(Algorithms)e(for)h +(Asynchr)n(onous)h(Multipr)n(o)n(c)n(essors)p Fp(.)22 +b(Ph.D.)21 2412 y(thesis,)14 b(Carnegie)g(Mellon)f(Univ)o(ersit)o(y)m +(,)g(Pittsburgh,)h(P)m(A.)k(Av)n(ailable)12 b(as)i(T)m(ec)o(h.)g(Rept.) +g(CMU-CS-78-116.)21 2495 y(Bro)q(c)o(kington,)g(M.)g(G.)f(and)i(Sc)o +(hae\013er,)g(J.)f(\(1996\).)19 b(APHID)c(Game-Tree)e(Searc)o(h.)21 +b(Presen)o(ted)c(at)d Fn(A)n(dvanc)n(es)i(in)f(Com-)21 +2537 y(puter)f(Chess)h(8)p Fp(,)f(Maastric)o(h)o(t.)21 +2621 y(Bro)q(der,)19 b(A.,)f(Karlin,)g(A.,)g(Ragha)o(v)n(an,)e(P)m(.,)i +(and)g(Upfal,)f(E.)h(\(1990\).)29 b(On)18 b(the)g(Parallel)f(Complexit) +o(y)e(of)j(Ev)n(aluating)21 2662 y(Game-Trees.)g(T)m(ec)o(hnical)c(Rep) +q(ort)h(RR)e(RJ)h(7729,)f(IBM)h(T.)g(J.)g(W)m(atson)g(Researc)o(h)h +(Cen)o(ter,)g(Y)m(orkto)o(wn)e(Heigh)o(ts,)h(New)21 2704 +y(Y)m(ork.)p eop +%%Page: 13 13 +13 12 bop 456 50 a Fe(A)14 b(T)m(axonom)o(y)d(of)j(P)o(arallel)e +(Game-T)m(ree)h(Searc)o(h)i(Algorithms)454 b Fp(13)21 +195 y(Brudno,)17 b(A.)f(L.)g(\(1963\).)26 b(Bounds)17 +b(and)f(V)m(aluations)g(for)g(Abridging)g(the)h(Searc)o(h)g(for)g +(Estimates.)25 b Fn(Pr)n(oblems)17 b(of)g(Cy-)21 237 +y(b)n(ernetics)p Fp(,)d(V)m(ol.)f(10,)h(pp.)g(225{241.)19 +b(T)m(ranslation)14 b(of)g(Russian)h(original)d(in)j +Fn(Pr)n(oblemy)g(Kib)n(ernetiki)p Fp(,)f(10:141{150,)d(Ma)o(y)21 +278 y(1963.)21 356 y(Campb)q(ell,)i(M.)j(S.)f(\(1981\).)22 +b Fn(A)o(lgorithms)16 b(for)g(the)g(Par)n(al)r(lel)g(Se)n(ar)n(ch)g(of) +h(Game)g(Tr)n(e)n(es)p Fp(.)22 b(M.Sc.)15 b(thesis,)h(Departmen)o(t)g +(of)21 397 y(Computing)f(Science,)k(Univ)o(ersit)o(y)e(of)f(Alb)q +(erta,)i(Edmon)o(ton,)e(Alta.)28 b(Av)n(ailable)15 b(as)j(T)m(ec)o(h.)f +(Rep.)f(TR)h(81-8,)g(Dept.)g(of)21 439 y(Computing)12 +b(Science.)21 516 y(Campb)q(ell,)e(M.)h(S.)g(and)h(Marsland,)g(T.)f(A.) +g(\(1983\).)j(A)e(Comparison)e(of)h(Minimax)e(T)m(ree)k(Searc)o(h)f +(Algorithms.)h Fn(A)o(rti\014cial)21 557 y(Intel)r(ligenc)n(e)p +Fp(,)g(V)m(ol.)f(20,)h(pp.)h(347{367.)21 635 y(Ciancarini,)g(P)m(.)h +(\(1994\).)22 b(Distributed)16 b(Searc)o(hes:)23 b(A)16 +b(Basis)g(for)f(Comparison.)21 b Fn(ICCA)16 b(Journal)p +Fp(,)f(V)m(ol.)f(17,)h(No.)g(4,)g(pp.)21 676 y(194{206.)21 +754 y(Cung,)h(V.-D.)f(\(1994\).)24 b Fn(Contribution)17 +b(\022)-21 b(a)18 b(l'A)o(lgorithmique)d(Non)j(Num)o(\023)-20 +b(erique)17 b(Par)n(al)r(l)o(\022)-20 b(ele:)22 b(Explor)n(ation)17 +b(d'Esp)n(ac)n(es)h(de)21 795 y(R)n(e)n(cher)n(che)p +Fp(.)g(Ph.D.)13 b(thesis,)h(Univ)o(ersit)o(\023)-20 b(e)15 +b(P)o(aris)f(VI.)21 873 y(Da)o(vid,)f(V.)h(\(1993\).)20 +b Fn(A)o(lgorithmique)15 b(p)n(ar)n(al)r(l)o(\022)-20 +b(ele)15 b(sur)g(les)g(arbr)n(es)g(de)h(d)o(\023)-20 +b(ecision)16 b(et)g(r)n(aisonnement)g(en)g(temps)g(c)n(ontr)n(aint)f(-) +21 914 y(Etude)g(et)g(applic)n(ation)g(au)g(minimax)p +Fp(.)j(Ph.D.)13 b(thesis,)i(ENSAE,)f(T)m(oulouse,)f(F)m(rance.)21 +992 y(Dideric)o(h,)f(C.)g(G.)g(\(1992\).)j(Ev)n(aluation)c(des)i(P)o +(erformances)g(de)g(l'Algorithm)o(e)d(SSS*)j(a)o(v)o(ec)g(Phases)g(de)g +(Sync)o(hronisation)21 1033 y(sur)j(une)g(Mac)o(hine)f(P)o(arall)o +(\022)-20 b(ele)15 b(\022)-21 b(a)15 b(M)o(\023)-20 b(emoires)14 +b(Distribu)o(\023)-20 b(ees.)23 b(T)m(ec)o(hnical)15 +b(Rep)q(ort)h(LITH-99,)e(Swiss)i(F)m(ederal)f(Institute)i(of)21 +1075 y(T)m(ec)o(hnology)m(,)12 b(Lausanne,)i(Switzerland.)21 +1152 y(F)m(eldmann,)26 b(R.)f(\(1993\).)53 b Fn(Spielb)n(aumsuche)27 +b(mit)e(massiv)h(p)n(ar)n(al)r(lelen)f(Systemen)p Fp(.)54 +b(Ph.D.)25 b(thesis,)k(Univ)o(ersit\177)-21 b(at-)21 +1194 y(Gesam)o(tho)q(c)o(hsc)o(h)o(ule)13 b(P)o(aderb)q(orn,)i(P)o +(aderb)q(orn,)f(German)o(y)m(.)21 1271 y(F)m(eldmann,)j(R.,)h(Monien,)h +(B.,)g(Mysliwietz,)g(P)m(.,)f(and)g(V)m(orn)o(b)q(erger,)i(O.)e +(\(1989\).)31 b(Distributed)19 b(Game)e(T)m(ree)i(Searc)o(h.)21 +1312 y Fn(ICCA)14 b(Journal)p Fp(,)f(V)m(ol.)g(12,)f(No.)i(2,)f(pp.)g +(65{73.)21 1390 y(F)m(elten,)g(E.)g(W.)g(and)h(Otto,)f(S.)g(W.)g +(\(1988\).)k(Chess)d(on)g(a)f(Hyp)q(ercub)q(e.)19 b(In)14 +b(G.)f(F)m(o)o(x,)f(editor,)h Fn(Pr)n(o)n(c)n(e)n(e)n(dings)i(of)f(The) +h(Thir)n(d)21 1431 y(Confer)n(enc)n(e)e(on)i(Hyp)n(er)n(cub)n(e)e +(Concurr)n(ent)h(Computers)f(and)i(Applic)n(ations)p +Fp(,)d(v)o(olume)f(I)q(I-Applications,)g(pp.)i(1329{1341,)21 +1473 y(P)o(assadena,)h(CA.)21 1550 y(F)m(erguson,)g(C.)f(and)h(Korf,)f +(R.)h(E.)f(\(1988\).)18 b(Distributed)c(T)m(ree)h(Searc)o(h)g(and)f +(its)g(Application)f(to)g(Alpha-Beta)h(Pruning.)21 1592 +y(In)g Fn(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(AAAI-88)p +Fp(,)e(pp.)h(128{132,)e(Sain)o(t)h(P)o(aul,)g(MN.)21 +1669 y(Fink)o(el,)f(R.)g(A.)h(and)g(Fish)o(burn,)g(J.)g(P)m(.)g +(\(1982\).)j(P)o(arallelism)11 b(in)h(Alpha-Beta)i(Searc)o(h.)k +Fn(A)o(rti\014cial)13 b(Intel)r(ligenc)n(e)p Fp(,)f(V)m(ol.)g(19,)21 +1711 y(No.)h(1,)g(pp.)h(89{106.)21 1788 y(Hiromoto,)i(U.,)j(Masafumi,)d +(Y.,)j(Masaharu,)g(I.,)f(and)g(T)m(oshihide,)g(I.)f(\(1987\).)30 +b(P)o(arallel)18 b(Searc)o(hes)h(of)f(Game)e(T)m(rees.)21 +1830 y Fn(Systems)f(and)h(Computers)e(in)h(Jap)n(an)p +Fp(,)f(V)m(ol.)e(18,)h(No.)g(8,)h(pp.)f(97{109.)21 1907 +y(Hsu,)20 b(F.-h.)e(\(1990\).)31 b Fn(L)n(ar)n(ge)19 +b(Sc)n(ale)h(Par)n(al)r(lelization)e(of)h(A)o(lpha-Beta)h(Se)n(ar)n +(ch:)28 b(A)o(n)19 b(A)o(lgorithmic)g(and)h(A)o(r)n(chite)n(ctur)n(al) +21 1949 y(Study)p Fp(.)28 b(Ph.D.)16 b(thesis,)i(Carnegie)f(Mellon)f +(Univ)o(ersit)o(y)m(,)h(Pittsburgh,)h(U.S.A.)26 b(Also)17 +b(T)m(ec)o(h.)f(Rept.)h(CMU-CS-90-108,)21 1990 y(Carnegie)d(Mellon)f +(Univ)o(ersit)o(y)m(,)g(F)m(eb.)g(1990.)21 2067 y(Hy)o(att,)i(R.)g(M.)g +(\(1988\).)22 b Fn(A)16 b(High-Performanc)n(e)g(Par)n(al)r(lel)g(A)o +(lgorithm)f(T)m(o)h(Se)n(ar)n(ch)h(Depth-F)m(rist)e(Game)i(T)m(r)n(e)n +(es)p Fp(.)22 b(Ph.D.)21 2109 y(thesis,)14 b(Univ)o(ersit)o(y)g(of)f +(Alabama,)e(Birmingham,)f(U.S.A.)21 2186 y(Hy)o(att,)15 +b(R.)f(M.,)h(Suter,)h(B.)f(W.,)f(and)h(Nelson,)h(H.)f(L.)f(\(1989\).)22 +b(A)15 b(P)o(arallel)f(Alpha/Beta)h(T)m(ree)h(Searc)o(hing)g +(Algorithm.)21 2228 y Fn(Par)n(al)r(lel)e(Computing)p +Fp(,)f(V)m(ol.)g(10,)g(No.)g(3,)g(pp.)g(299{308.)21 2305 +y(Karp,)i(R.)f(M.)h(and)g(Zhang,)g(Y.)g(\(1989\).)22 +b(On)15 b(Parallel)f(Ev)n(aluation)g(of)h(Game)e(Trees.)24 +b(In)15 b Fn(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)g(SP)m(AA)g('89)p +Fp(,)21 2347 y(pp.)d(409{420,)f(New)i(Y)m(ork,)f(NY.)h(A)o(CM)g(Press.) +21 2424 y(Kn)o(uth,)f(D.)f(E.)g(and)h(Mo)q(ore,)g(R.)f(W.)f(\(1975\).) +16 b(An)d(Analysis)f(of)g(Alpha-Beta)h(Pruning.)j Fn(A)o(rti\014cial)d +(Intel)r(ligenc)n(e)p Fp(,)f(V)m(ol.)g(6,)21 2466 y(No.)h(3,)g(pp.)h +(293{326.)21 2543 y(Kraas,)e(H.-J.)f(\(1990\).)j Fn(Zur)f(Par)n(al)r +(lelisierung)f(des)h(SSS*-A)o(lgorithmus)p Fp(.)i(Ph.D.)c(thesis,)i(TU) +f(of)f(Braunsc)o(h)o(w)o(eig,)i(Braun-)21 2585 y(sc)o(h)o(w)o(eig,)g +(German)o(y)m(.)21 2662 y(Kuszmaul,)h(B.)h(C.)f(\(1994\).)21 +b Fn(Synchr)n(onize)n(d)c(MIMD)g(Computing)p Fp(.)k(Ph.D.)15 +b(thesis,)g(Massac)o(h)o(usetts)i(Institute)f(of)f(T)m(ec)o(h-)21 +2704 y(nology)m(,)c(Cam)o(bridge,)h(MA.)p eop +%%Page: 14 14 +14 13 bop 0 50 a Fp(14)592 b(ICCA)14 b(Journal)f(Submission)591 +b(June)15 b(12,)e(1996)21 195 y(Leifk)o(er,)f(D.)g(B.)h(and)f(Kanal,)g +(L.)g(N.)h(\(1985\).)i(A)e(Hybrid)f(SSS*/Alpha-Beta)h(Algorithm)d(for)i +(P)o(arallel)g(Searc)o(h)i(of)e(Game)21 237 y(T)m(rees.)19 +b(In)14 b Fn(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(IJCAI-85)p +Fp(,)e(pp.)h(1044{1046.)21 311 y(Lindstrom,)d(G.)g(\(1983\).)k(The)e +(Key)h(No)q(de)f(Metho)q(d:)18 b(A)12 b(Highly-P)o(arallel)e +(Alpha-Beta)j(Algorithm.)g(T)m(ec)o(hnical)g(Rep)q(ort)21 +353 y(UUCS)h(83-101,)e(Univ)o(ersit)o(y)i(of)f(Utah,)g(Departmen)o(t)h +(of)f(Computer)g(Science,)i(Salt)e(Lak)o(e)h(Cit)o(y)m(,)e(UT.)21 +428 y(Lu,)20 b(C.-P)m(.)e(P)m(.)g(\(1993\).)33 b Fn(Par)n(al)r(lel)19 +b(Se)n(ar)n(ch)h(of)g(Narr)n(ow)e(Game)i(Tr)n(e)n(es)p +Fp(.)33 b(M.Sc.)19 b(thesis,)i(Departmen)o(t)d(of)h(Computing)21 +469 y(Science,)c(Univ)o(ersit)o(y)e(of)h(Alb)q(erta,)g(Edmon)o(ton,)d +(Canada.)21 544 y(Marsland,)j(T.)h(A.)g(\(1983\).)21 +b(Relativ)o(e)14 b(E\016ciency)h(of)g(Alpha-Beta)g(Implemen)o(tations.) +k(In)c Fn(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)g(IJCAI-83)p +Fp(,)21 585 y(pp.)d(763{766,)f(Karlsruhe,)i(German)o(y)m(.)21 +660 y(Marsland,)k(T.)f(A.)h(and)f(Campb)q(ell,)g(M.)g(S.)g(\(1982\).)29 +b(Parallel)17 b(Searc)o(h)i(of)e(Strongly)g(Ordered)j(Game)c(Trees.)31 +b Fn(A)o(CM)21 702 y(Computing)15 b(Surveys)p Fp(,)f(V)m(ol.)e(14,)h +(No.)g(4,)g(pp.)h(533{551.)21 776 y(Marsland,)h(T.)f(A.)h(and)g(Gao,)f +(Y.)h(\(1995\).)22 b(Sp)q(eculativ)o(e)15 b(P)o(arallelism)e(Impro)o(v) +o(es)h(Searc)o(h?)30 b(T)m(ec)o(hnical)15 b(Rep)q(ort)h(95{05,)21 +818 y(Departmen)o(t)d(of)g(Computing)f(Science,)j(Univ)o(ersit)o(y)f +(of)f(Alb)q(erta,)h(Edmon)o(ton,)e(Alta.)21 892 y(Marsland,)19 +b(T.)g(A.,)g(Olafsson,)h(M.,)g(and)e(Sc)o(hae\013er,)k(J.)d(\(1985\).) +32 b(Multipro)q(cessor)21 b(Tree-Searc)o(h)g(Exp)q(erimen)o(ts.)33 +b(In)21 934 y(D.)13 b(Beal,)g(editor,)h Fn(A)n(dvanc)n(es)h(in)g +(Computer)g(Chess)g(4)p Fp(,)e(pp.)h(37{51.)e(P)o(ermagon)h(Press,)i +(Oxford.)21 1009 y(Marsland,)j(T.)f(A.)h(and)f(P)o(op)q(o)o(wic)o(h,)h +(F.)f(\(1985\).)29 b(Parallel)17 b(Game-Tree)g(Searc)o(h.)31 +b Fn(IEEE)19 b(T)m(r)n(ansactions)f(on)h(Pattern)21 1050 +y(A)o(nalysis)14 b(and)i(Machine)g(Intel)r(ligenc)n(e)p +Fp(,)d(V)m(ol.)f(P)m(AMI-7,)h(No.)h(4,)f(pp.)g(442{452.)21 +1125 y(Newb)q(orn,)g(M.)e(M.)h(\(1985\).)i(A)f(P)o(arallel)e(Searc)o(h) +i(Chess)g(Program.)h(In)e Fn(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)g(the)h(A) +o(CM)f(A)o(nnual)h(Confer)n(enc)n(e)p Fp(,)21 1166 y(pp.)f(272{277.)21 +1241 y(Newb)q(orn,)h(M.)f(M.)h(\(1988\).)j(Unsync)o(hronized)e +(Iterativ)o(e)f(Deep)q(ening)h(P)o(arallel)d(Alpha-Beta)i(Searc)o(h.)19 +b Fn(IEEE)c(T)m(r)n(ansac-)21 1283 y(tions)g(on)g(Pattern)g(A)o +(nalysis)f(and)i(Machine)g(Intel)r(ligenc)n(e)p Fp(,)d(V)m(ol.)f(P)m +(AMI-10,)h(No.)g(5,)g(pp.)h(687{694.)21 1357 y(Plaat,)g(A.,)h(Sc)o +(hae\013er,)h(J.,)f(Pijls,)f(W.,)g(and)h(de)h(Bruin,)f(A.)g(\(1995\).) +20 b(Best-First)d(Fixed-Depth)f(Game-T)m(ree)d(Searc)o(h)j(in)21 +1399 y(Practice.)j(In)14 b Fn(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)f +(IJCAI-95)p Fp(,)f(v)o(olume)f(1,)i(pp.)f(273{279,)f(Mon)o(treal,)h +(Queb)q(ec.)21 1474 y(Plaat,)h(A.,)g(Sc)o(hae\013er,)i(J.,)e(Pijls,)g +(W.,)f(and)i(de)g(Bruin,)g(A.)f(\(1996\).)20 b(Best-First)c +(Fixed-Depth)f(Minimax)d(Algorithms.)21 1515 y(T)m(o)h(app)q(ear)h(in)g +Fn(A)o(rti\014cial)f(Intel)r(ligenc)n(e)p Fp(.)21 1590 +y(Reinefeld,)g(A.)h(\(1983\).)k(An)c(Impro)o(v)o(emen)o(t)e(to)i(the)h +(Scout)g(Tree-Searc)o(h)h(Algorithm.)g Fn(ICCA)e(Journal)p +Fp(,)g(V)m(ol.)f(6,)g(No.)h(4,)21 1631 y(pp.)f(4{14.)21 +1706 y(Sc)o(hae\013er,)19 b(J.)e(\(1989\).)28 b(Distributed)18 +b(Game-T)m(ree)e(Searc)o(hing.)29 b Fn(Journal)18 b(of)g(Par)n(al)r +(lel)g(and)h(Distribute)n(d)e(Computing)p Fp(,)21 1748 +y(V)m(ol.)12 b(6,)h(No.)g(2,)h(pp.)f(90{114.)21 1822 +y(Shinghal,)f(R.)i(and)g(Sh)o(v)o(ed,)g(S.)g(\(1991\).)k(Prop)q(osed)e +(Mo)q(di\014cations)e(to)g(P)o(arallel)f(State)i(Space)g(Searc)o(h)g +(of)f(Game)e(T)m(rees.)21 1864 y Fn(International)j(Journal)g(of)f +(Pattern)h(R)n(e)n(c)n(o)n(gnition)g(and)h(A)o(rti\014cial)e(Intel)r +(ligenc)n(e)p Fp(,)f(V)m(ol.)f(5,)h(No.)h(5,)f(pp.)g(809{833.)21 +1939 y(Stein)o(b)q(erg,)e(I.)e(R.)h(and)g(Solomon,)d(M.)j(\(1990\).)h +(Searc)o(hing)g(Game)d(Trees)k(in)d(P)o(arallel.)i(In)f +Fn(Pr)n(o)n(c)n(c)n(e)n(dings)h(of)h(the)f(1990)h(Inter-)21 +1980 y(national)j(Confer)n(enc)n(e)f(on)h(Par)n(al)r(lel)e(Pr)n(o)n(c)n +(essing)h(\(vol.)g(3\))p Fp(,)g(pp.)f(9{17,)f(Univ)o(ersit)o(y)h(P)o +(ark,)g(P)m(A.)g(P)o(enn.)g(State)h(Univ)o(ersit)o(y)21 +2022 y(Press.)21 2096 y(Sto)q(c)o(kman,)f(G.)i(C.)f(\(1979\).)21 +b(A)16 b(Minimax)c(Algorithm)h(Better)k(than)e(Alpha-Beta?)30 +b Fn(A)o(rti\014cial)14 b(Intel)r(ligenc)n(e)p Fp(,)h(V)m(ol.)f(12,)21 +2138 y(pp.)f(179{196.)21 2213 y(V)m(orn)o(b)q(erger,)18 +b(O.)f(and)f(Monien,)i(B.)e(\(1987\).)27 b(P)o(arallel)16 +b(Alpha-Beta)h(v)o(ersus)h(Parallel)e(SSS*.)27 b(In)17 +b Fn(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(the)21 2254 y(IFIP)d(Confer)n +(enc)n(e)g(on)g(Distribute)n(d)f(Pr)n(o)n(c)n(essing)p +Fp(,)g(pp.)f(613{625.)f(North)i(Holland.)21 2329 y(W)m(eill,)k(J.-C.)g +(\(1995\).)32 b Fn(Pr)n(o)n(gr)n(ammes)18 b(d')o(\023)-20 +b(eche)n(cs)20 b(de)g(championnat:)29 b(ar)n(chite)n(ctur)n(e)19 +b(lo)n(giciel)r(le)f(synth)o(\022)-20 b(ese)20 b(de)g(fonctions)21 +2370 y(d')o(\023)-20 b(evaluations,)15 b(p)n(ar)n(al)r(l)o(\023)-20 +b(elisme)13 b(de)j(r)n(e)n(cher)n(che)p Fp(.)h(Ph.D.)c(thesis,)h(Univ)o +(ersit)o(\023)-20 b(e)15 b(P)o(aris)f(8.)21 2445 y(W)m(eill,)d(J.-C.)h +(\(1996\).)k(The)e(ABD)o(AD)o(A)f(Distributed)g(Minimax-Searc)o(h)f +(Algorithm.)i Fn(ICCA)g(Journal)p Fp(,)e(V)m(ol.)g(19,)g(No.)h(1,)21 +2487 y(pp.)g(3{16.)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/parallel/brockington97aphid.ps b/parallel/brockington97aphid.ps new file mode 100755 index 0000000..0198d77 --- /dev/null +++ b/parallel/brockington97aphid.ps @@ -0,0 +1,12648 @@ +%!PS-Adobe-2.0 +%%Creator: dvips 5.55 Copyright 1986, 1994 Radical Eye Software +%%Title: aphidacc.dvi +%%CreationDate: Thu Jun 13 23:50:30 1996 +%%Pages: 20 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips aphidacc +%DVIPSParameters: dpi=300, comments removed +%DVIPSSource: TeX output 1996.06.13:2350 +%%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 showpage +userdict /eop-hook known{eop-hook}if}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 +%%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 false 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 300 300 +(/usr/maligne2/grad/brock/Writing/aphid/aphidacc.dvi) +@start /Fa 6 112 df<00FC100383300E00B01C0070380030300030700010600010E000 +10E00000E00000E00000E00000E00000E000106000107000103000203800201C00400E00 +8003830000FC0014177E961A>67 D +104 DI107 D +110 D<03F0000C0C00180600300300600180400080C000C0C000C0C000C0C000C0C000C0 +6001806001803003001806000C0C0003F00012117F9015>I E /Fb +1 111 df<30F8590C4E0C9C0C980C180C180C30183019303130316032601C100D7F8C15> +110 D E /Fc 49 122 df<000FF000007FFC0001F80E0003E01F0007C03F000F803F000F +803F000F801E000F800C000F8000000F8000000F8000000F800000FFFFFF00FFFFFF000F +801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F +801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F007F +F0FFE07FF0FFE01B237FA21F>12 D<3803807C07C0FE0FE0FF0FF0FF0FF07F07F03B03B0 +0300300300300700700600600600600C00C01C01C018018070070020020014117EA21D> +34 D<387CFEFEFE7C3807077C8610>46 D<00180000780001F800FFF800FFF80001F800 +01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 +01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 +7FFFE07FFFE013207C9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE +03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F80001F00003E0000 +380000700000E01801C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FF +FFF015207D9F1C>I<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F8 +1F03F00003F00003E00007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC +3C00FE7E00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E +9F1C>I<0000E00001E00003E00003E00007E0000FE0001FE0001FE00037E00077E000E7 +E001C7E00187E00307E00707E00E07E00C07E01807E03807E07007E0E007E0FFFFFEFFFF +FE0007E00007E00007E00007E00007E00007E00007E000FFFE00FFFE17207E9F1C>I<10 +00201E01E01FFFC01FFF801FFF001FFE001FF8001BC00018000018000018000018000019 +FC001FFF001E0FC01807E01803E00003F00003F00003F80003F83803F87C03F8FE03F8FE +03F8FC03F0FC03F07007E03007C01C1F800FFF0003F80015207D9F1C>I<001F8000FFE0 +03F07007C0F00F01F81F01F83E01F83E01F87E00F07C00007C0000FC0800FC7FC0FCFFE0 +FD80F0FF00F8FE007CFE007CFC007EFC007EFC007EFC007E7C007E7C007E7C007E3C007C +3E007C1E00F80F00F00783E003FFC000FF0017207E9F1C>I<6000007800007FFFFE7FFF +FE7FFFFC7FFFF87FFFF87FFFF0E00060E000C0C00180C00300C00300000600000C00001C +0000180000380000780000780000F00000F00000F00001F00001F00001F00003F00003F0 +0003F00003F00003F00003F00003F00001E00017227DA11C>I<00FE0003FFC00703E00E +00F01C00F01C00783C00783E00783F00783F80783FE0F01FF9E01FFFC00FFF8007FFC003 +FFE007FFF01E7FF83C1FFC7807FC7801FEF000FEF0003EF0001EF0001EF0001CF8001C78 +00383C00381F01F00FFFC001FF0017207E9F1C>I<000070000000007000000000F80000 +0000F800000000F800000001FC00000001FC00000003FE00000003FE00000003FE000000 +06FF000000067F0000000E7F8000000C3F8000000C3F800000183FC00000181FC0000038 +1FE00000300FE00000300FE00000600FF000006007F00000E007F80000FFFFF80000FFFF +F800018001FC00018001FC00038001FE00030000FE00030000FE000600007F000600007F +00FFE00FFFF8FFE00FFFF825227EA12A>65 DI<0003FE0080001FFF818000FF01E38001F8003F80 +03E0001F8007C0000F800F800007801F800007803F000003803F000003807F000001807E +000001807E00000180FE00000000FE00000000FE00000000FE00000000FE00000000FE00 +000000FE00000000FE000000007E000000007E000001807F000001803F000001803F0000 +03801F800003000F8000030007C000060003F0000C0001F800380000FF00F000001FFFC0 +000003FE000021227DA128>II70 D72 DI76 DI<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80 +003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE0000 +0FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000F +E0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80003F00 +0FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC000023227DA12A> +79 DI<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF +0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F00 +003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA1 +1F>83 D<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003 +F801C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F8 +00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 +000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 +0003F800000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127> +IIII<0400400E00E0180180380380 +300300600600600600E00E00C00C00C00C00DC0DC0FE0FE0FF0FF0FF0FF07F07F03E03E0 +1C01C014117AA21D>92 D<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F000 +01F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81F +F87F07E03F18167E951B>97 DI<00FF8007FFE00F83F01F03F03E03F07E03F07C01 +E07C0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00301F00 +600FC0E007FF8000FE0014167E9519>I<0001FE000001FE0000003E0000003E0000003E +0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0001FC3E +0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC003E00FC003E00FC003E +00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E003E007E001E00FE +000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C +00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E +00181F00300FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E0 +0F87E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F8000 +0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000 +0F80000F80000F80000F80007FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F3E07 +CF3C03C07C03E07C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF0013FC003000 +003000003800003FFF801FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF000 +1E78003C7C007C3F01F80FFFE001FF0018217E951C>II<1C003E007F007F007F00 +3E001C000000000000000000000000000000FF00FF001F001F001F001F001F001F001F00 +1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B247EA310>I108 DII<00FE0007FFC00F83E01E00F03E00 +F87C007C7C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C00 +7C3E00F81F01F00F83E007FFC000FE0017167E951C>II114 D<0FF3003FFF00781F00600700E00300E00300F0 +0300FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F0 +0700FC0E00EFFC00C7F00011167E9516>I<018000018000018000018000038000038000 +0780000780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F8000 +0F80000F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C300 +03FE0000F80011207F9F16>II< +FFE01FE0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E01800 +01F0300001F0300000F8600000F86000007CC000007CC000007FC000003F8000003F8000 +001F0000001F0000000E0000000E00001B167F951E>II121 D E /Fd +1 49 df<040E0E1C1C1C38383070706060C0C0070F7F8F0A>48 D +E /Fe 59 123 df<0387000387000387000387000387000387007FFFC0FFFFE0FFFFE007 +0E00070E00070E000E1C000E1C000E1C000E1C00FFFFE0FFFFE07FFFC01C38001C38001C +38001C38001C38001C380013197F9816>35 D<03800007E0000FE0001E70001C70001C70 +001C70001C77E01CE7E01DE7E00FC7000F8E000F0E001E0E003F1C007F1C00739C00E3F8 +00E1F800E0F1C0E0F1C071F9C07FFFC03F9F801E070013197F9816>38 +D<00E001E0038007000E001C001C0038003800700070007000E000E000E000E000E000E0 +00E000E000E000700070007000380038001C001C000E000700038001E000E00B217A9C16 +>40 DI<01C00001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC +007FFF00F9CF8071C70001C00001C00001C00001C00011127E9516>I<01C00001C00001 +C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8001C00001C00001C00001 +C00001C00001C00001C00001C00011137E9516>I<387C7E7E3E0E1E1C78F060070B7984 +16>I<70F8F8F8700505788416>46 D<01800380038007800F807F80FF80738003800380 +0380038003800380038003800380038003800380038003807FF87FFC7FF80E197C9816> +49 D<07E0001FF8003FFC00783E00E00700F00780F00380600380000380000380000700 +000700000E00001C0000380000700000E00001C0000380000F00001E03803803807FFF80 +FFFF807FFF8011197E9816>I<00E00001F00001F00001B00001B00003B80003B80003B8 +00031800071C00071C00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07 +001C07001C07007F1FC0FF1FE07F1FC013197F9816>65 D<7FF800FFFE007FFF001C0F00 +1C07801C03801C03801C03801C07801C07001FFF001FFE001FFE001C1F001C03801C03C0 +1C01C01C01C01C01C01C01C01C03C01C07807FFF80FFFF007FFC0012197F9816>I<01F1 +8007FB800FFF801F0F803C0780380380700380700380F00000E00000E00000E00000E000 +00E00000E00000E00000F000007003807003803803803C07001F0F000FFE0007FC0001F0 +0011197E9816>I<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E01C +00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C +0F807FFF00FFFE007FF8001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C0 +1C01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E0 +1C00E01C00E01C00E01C00E07FFFE0FFFFE07FFFE013197F9816>II<03E30007FF000FFF001E1F003C0F00380700700700700700F00000E00000E00000E0 +0000E00000E03F80E07FC0E03F80F00700700700700700380F003C0F001E1F000FFF0007 +F70003E70012197E9816>I<7F1FC0FFBFE07F1FC01C07001C07001C07001C07001C0700 +1C07001C07001FFF001FFF001FFF001C07001C07001C07001C07001C07001C07001C0700 +1C07001C07007F1FC0FFBFE07F1FC013197F9816>II<7F0FE0FF8FF07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0 +001CE0001DF0001FF0001FF8001F38001E1C001C1C001C0E001C0E001C07001C07001C03 +807F07E0FF8FF07F07E01419809816>75 DII<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001C +E7001CE7001CE7001C67001C67001C77001C77001C37001C37001C37001C17007F1F00FF +9F007F0F0013197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380 +E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780 +F00780780F007FFF003FFE001FFC0011197E9816>I<7FF800FFFE007FFF001C0F801C03 +801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF8001C00001C00 +001C00001C00001C00001C00001C00007F0000FF80007F000012197F9816>I<7FE000FF +F8007FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC001FF8001F +FC001C1C001C0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87E07F03C014 +197F9816>82 D<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800 +003F80001FF00007FC0000FE00000F00000700000380000380600380E00380E00700F80F +00FFFE00FFFC00C7F00011197E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0 +E0E000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 +E00000E00000E00000E00007FC000FFE0007FC0013197F9816>I<7F07F0FF8FF87F07F0 +1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C0 +1C01C01C01C01C01C01C01C00E03800E038007070007FF0003FE0000F8001519809816> +II<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003 +F00001F00001E00000E00001E00001F00003F00003B80007B800071C00071C000E0E000E +0E001C07007F1FC0FF1FE07F1FC013197F9816>88 DI<7FFF80FF +FF80FFFF80E00700E00F00E01E00E01C00003C0000780000700000F00001E00001C00003 +C0000780000700000F00001E03801C03803C0380780380700380FFFF80FFFF80FFFF8011 +197E9816>II93 D<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE003E0E0070 +0E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>97 +D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C00F00 +E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF +00063C001419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F00070 +0778073E0E1FFC0FF803F010127D9116>I<003F00007F00003F00000700000700000700 +00070003C7000FF7001FFF003C1F00780F00700700E00700E00700E00700E00700E00700 +E00700700F00700F003C1F001FFFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E +780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03F010127D9116>I<00 +1F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF0001C00001C00001 +C00001C00001C00001C00001C00001C00001C00001C00001C00001C0003FFE007FFF003F +FE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00380E00 +1C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807803C0E000E0E000E0 +E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00 +000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E03800E03 +800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816 +>I<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C0 +01C001C001C001C001C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE00007E00000E00 +000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0 +000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCFF07F87F01419809816>107 +DII< +7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E0380 +0E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E +00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC +000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E +00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E +00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>I114 D<0FEC3FFC7FFCF03CE01CE01C70007F +801FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700 +000700000700007FFF00FFFF00FFFF000700000700000700000700000700000700000700 +0007010007038007038007038007870003FE0001FC0000F80011177F9616>I<7E1F80FE +3F807E1F800E03800E03800E03800E03800E03800E03800E03800E03800E03800E03800E +03800E0F800FFFF007FBF803E3F01512809116>I<7F1FC0FF1FE07F1FC01C07001E0F00 +0E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003B80001F00001F000 +00E00013127F9116>II<7F +1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E00001F00003B80007 +3C00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF9FE07F1FC01C0700 +0E07000E0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F000 +00F00000F00000E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F +9116>I<3FFFC07FFFC07FFFC0700780700F00701E00003C0000780001F00003E0000780 +000F00001E01C03C01C07801C0FFFFC0FFFFC0FFFFC012127F9116>I +E /Ff 2 13 df<0007E00000003838000000E00C004001C00E0040038007008007000780 +800F000780801E000381003E0003C1003C0003C2007C0003C2007C0003C400F80003C400 +F80003C800F80003D000F80003D000F80003E000F00003C000F00003C000F00003C00078 +0003C00078000FC000380011C1001C0061C2000E0380E60001FC003800221A7E9926>11 +D<000003F80000000C0C0000003006000000400700000080038000010003800002000380 +000400038000040007800008000780000800078000100007000010000F000020000E0000 +20001C00002000380000403FF000004040E00000403F300000400038000080001C000080 +001E000080001E000080001E000100001F000100001F000100001F000100001F00020000 +3E000200003E000200003E000200003C000600007C000600007800060000F800060000F0 +00090001E000090003C000088007800008400E000010303C0000100FE000001000000000 +100000000020000000002000000000200000000020000000004000000000400000000040 +0000000040000000008000000000800000000021367FA922>I E +/Fg 37 122 df<00FCF807839C0E079C1C07081C07001C07001C07001C07001C0700FFFF +E01C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07 +00FF1FE01617809615>11 D<60C0F1E0F1E070E01020102020402040408040800B0A7F96 +12>34 D<0102040C1818303070606060E0E0E0E0E0E0E0E0E0E060606070303018180C04 +020108227D980E>40 D<8040203018180C0C0E060606070707070707070707070606060E +0C0C18183020408008227E980E>I<60F0F070101020204040040A7D830A>44 +DI<60F0F06004047D830A>I<001000003800003800003800005C +00005C00005C00008E00008E00008E0001070001070003078002038002038007FFC00401 +C00401C00800E00800E01800E03800F0FE03FE17177F961A>65 D73 D77 +D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C000E0006800680 +068006C004E008D81087E00F177E9614>83 D<7FFFF86038184038084038088038048038 +048038040038000038000038000038000038000038000038000038000038000038000038 +0000380000380000380000380007FFC016177F9619>I<204020404080408081008100E1 +C0F1E0F1E060C00B0A7B9612>92 D<1FC0386038301038003803F81E3830387038E039E0 +39E07970FF1F1E100E7F8D12>97 DI<07F01838303870106000E000E000E000E0 +00600070083008183007C00D0E7F8D10>I<007E00000E00000E00000E00000E00000E00 +000E00000E00000E0007CE001C3E00300E00700E00600E00E00E00E00E00E00E00E00E00 +600E00700E00301E00182E0007CFC012177F9614>I<0FC0186030307038E018FFF8E000 +E000E000600070083010183007C00D0E7F8D10>I<03E006700E701C201C001C001C001C +001C00FF801C001C001C001C001C001C001C001C001C001C001C001C00FF800C1780960B +>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600EC006C006 +C006600C38380FE010157F8D12>II<183C3C1800000000007C1C1C1C1C1C1C1C +1C1C1C1C1CFF081780960A>I107 DI< +FC7C1F001D8E63801E0781C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0 +1C0701C01C0701C01C0701C01C0701C0FF9FE7F81D0E808D1E>II<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007C00F0E7F8D +12>II<07C2 +001C2600381E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E001C2E +0007CE00000E00000E00000E00000E00000E00007FC012147F8D13>II<1F4060C0C040C040 +E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<080008000800180018 +003800FF80380038003800380038003800380038403840384038401C800F000A147F930E +>IIIII +I E /Fh 4 53 df<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C00 +0C00FF8009107E8F0F>49 D<1F00618040C08060C0600060006000C00180030006000C00 +102020207FC0FFC00B107F8F0F>I<1F00218060C060C000C0008001800F000080004000 +60C060C060804060801F000B107F8F0F>I<0300030007000F000B001300330023004300 +C300FFE003000300030003001FE00B107F8F0F>I E /Fi 4 53 df<0C001C00EC000C00 +0C000C000C000C000C000C000C000C000C000C000C000C000C000C00FFC00A137D9211> +49 D<1F0060C06060F070F030603000700070006000C001C00180020004000810101020 +207FE0FFE00C137E9211>I<0FC030707038703870380038003000E00FC0007000380018 +001C601CF01CF018E03860701FC00E137F9211>I<006000E000E00160026006600C6008 +60106020606060C060FFFC0060006000600060006003FC0E137F9211>I +E /Fj 19 123 df<000FE0200070186001C00460030003E0060001E00E0000E01C000060 +38000060380000207800002070000020F0000000F0000000F0000000F0000000F0000000 +F0000000F0000000F0000000700000207800002038000020380000201C0000400E000040 +060000800300010001C0060000701800000FE0001B1E7D9C21>67 +D75 D80 D<7FFFFFC0700F01C0600F00 +C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7D9B21>84 +D<7FFFFC7C00787000786000F06001E04001E04003C0400780400780000F00001E00001E +00003C0000780000780000F00001E00001E00403C0040780040780040F000C1E00081E00 +083C00187800387800F8FFFFF8161C7D9B1C>90 D<00200000700000700000700000B800 +00B80000B800011C00011C00011C00020E00020E0004070004070007FF00080380080380 +0803801801C03803C0FE0FF815157F9419>97 D101 D<00FC200782600E01E01C00E038006078 +0020700020F00020F00000F00000F00000F00FF8F000E0F000E07000E07800E03800E01C +00E00E00E007836000FC2015157E941B>103 DII107 +D110 +D<01F800070E000C03001C03803801C07801E07000E0F000F0F000F0F000F0F000F0F000 +F0F000F0F000F07000E07801E03801C01C03801E0780070E0001F80014157E941A>I114 +D117 +D119 DIII +E /Fk 3 16 df0 D<01800180018001804182F18F39 +9C0FF003C003C00FF0399CF18F4182018001800180018010127E9215>3 +D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E +9115>15 D E /Fl 60 123 df<0001FC3C00060E67000C0EC7001C0DC6001C01C0003801 +C0003803800038038000380380003803800070038007FFFFF80070070000700700007007 +0000E0070000E00E0000E00E0000E00E0000E00E0001C00E0001C01C0001C01C0001C01C +0001C01C0003801C00038038000380380003803800030038000700300007007000060060 +00C6606000E470C000C8618000703E00002025819C19>11 D<0001FC000703000C03001C +07001C0300180000380000380000380000380000700007FFFC00701C00701C00701C00E0 +3800E03800E03800E03800E07001C07001C07001C07001C0E201C0E201C0E20380E40380 +64038038038000030000070000060000C60000E40000CC00007000001825819C17>I18 D<03070E1C3860C0800808729C15>I<183C3C3C0404 +080810204080060C779C0D>39 D<00030006000800180030006000C000C0018003000300 +060006000C000C001C0018001800380030003000700070006000600060006000E000E000 +E000E000E0006000600060006000600020003000100008000800102A7B9E11>I<001000 +100008000C00040006000600060006000600070007000700070007000600060006000600 +0E000E000C000C001C001800180038003000300060006000C000C001800300030006000C +00180010006000C000102A809E11>I<183878380808101020404080050C7D830D>44 +DI<3078F06005047C830D>I<003C0000C600018300030300 +0603000603800E03800C03801C03801C0300380700380700380700380700700E00700E00 +700E00700E00E01C00E01C00E01C00E03800E03800E03000C06000E0600060C000718000 +1E0000111D7B9B15>48 D<00020006000C001C007C039C00380038003800380070007000 +70007000E000E000E000E001C001C001C001C003800380038003800780FFF00F1C7C9B15 +>I<003E0000C1800101800200C00400C00440C00841C00841C00841C008838007038000 +0700000E0001F800003800000C00000C00000E00000E00000E00000E00700E00E01C0080 +1C0080380080300040600021C0001F0000121D7C9B15>51 D<001E000061000081800180 +800300C00300C006018006018006018007030007860003CC0003F00001F000037800063C +00081E00180E00300E00600600600600600600C00C00C00C00C0180060100060200030C0 +000F0000121D7C9B15>56 D<003C0000C6000183000303000603000E03000C03801C0380 +1C03001C0300380700380700380700380F00380E00181E00181E000C6C00079C00001C00 +001800003800003000006000E0C000E0C0008180008600007C0000111D7B9B15>I<060F +0F06000000000000000000003078F06008127C910D>I<00001800000018000000380000 +00380000007800000078000000B8000001B800000138000002380000023C0000041C0000 +041C0000081C0000181C0000101C0000201C0000201C00007FFC0000401C0000801C0001 +801C0001001C0002001C0002001C0004000E000C000E001C001E00FF00FFC01A1D7E9C1F +>65 D<01FFFE00003C0780003803C0003801C0003801C0003801C0007001C0007003C000 +7003C00070078000E0070000E00E0000E03C0000FFF80001C01C0001C00E0001C00F0001 +C00F0003800F0003800F0003800F0003800F0007001E0007001C0007003C00070078000E +01E000FFFF80001A1C7D9B1D>I<0003F020001E0C60003002E000E003C001C001C00380 +01C0070000C00E0000801E0000801C0000803C0000803C00000078000000780000007800 +0000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F00008007000 +08007000100038002000180040000C0180000706000001F800001B1E7A9C1E>I<01FFFE +00003C0780003801C0003801C0003800E0003800E0007000F00070007000700070007000 +F000E000F000E000F000E000F000E000F001C001E001C001E001C001E001C001C0038003 +C003800380038007800380070007000E0007001C0007003800070070000E01C000FFFF00 +001C1C7D9B1F>I<01FFFFE0003C00E00038006000380040003800400038004000700040 +00700040007020400070200000E0400000E0400000E0C00000FFC00001C0800001C08000 +01C0800001C0800003810100038001000380020003800200070004000700040007000C00 +070018000E007800FFFFF0001B1C7D9B1C>I<01FFFFC0003C01C0003800C00038008000 +380080003800800070008000700080007020800070200000E0400000E0400000E0C00000 +FFC00001C0800001C0800001C0800001C080000381000003800000038000000380000007 +0000000700000007000000070000000F000000FFF000001A1C7D9B1B>I<01FFCFFE003C +01E0003801C0003801C0003801C0003801C00070038000700380007003800070038000E0 +070000E0070000E0070000FFFF0001C00E0001C00E0001C00E0001C00E0003801C000380 +1C0003801C0003801C00070038000700380007003800070038000F007800FFE7FF001F1C +7D9B1F>72 D<01FFC0003C00003800003800003800003800007000007000007000007000 +00E00000E00000E00000E00001C00001C00001C00001C000038000038000038000038000 +0700000700000700000700000F0000FFE000121C7E9B10>I<007FF00007800007000007 +00000700000700000E00000E00000E00000E00001C00001C00001C00001C000038000038 +0000380000380000700000700000700000700060E000E0E000C0C00081C0008380004700 +003C0000141D7B9B16>I<01FFE0003C0000380000380000380000380000700000700000 +700000700000E00000E00000E00000E00001C00001C00001C00001C00003800803800803 +80080380100700100700300700600700E00E03C0FFFFC0151C7D9B1A>76 +D<01FE0007F8003E000780002E000F00002E001700002E001700002E002700004E002E00 +004E004E00004E004E00004E008E00008E011C00008E011C00008E021C00008E021C0001 +070438000107043800010708380001071038000207107000020720700002072070000207 +407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC00251C7D +9B25>I<01FC03FE001C0070003C0060002E0040002E0040002E00400047008000470080 +00470080004380800083810000838100008181000081C1000101C2000101C2000100E200 +0100E2000200E4000200740002007400020074000400380004003800040038000C001800 +1C001000FF8010001F1C7D9B1F>I<0007F000001C1C0000700E0000E0070001C0038003 +800380070003800E0003C01E0003C01C0003C03C0003C03C0003C0780003C0780003C078 +0003C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F0001E00F0003C0070 +003800700070007800E0003801C0001C0380000E0E000003F800001A1E7A9C20>I<01FF +FC00003C070000380380003801C0003801C0003801C0007003C0007003C0007003C00070 +038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C000000380 +0000038000000380000003800000070000000700000007000000070000000F000000FFE0 +00001A1C7D9B1C>I<01FFF800003C0E0000380700003803800038038000380380007007 +80007007800070078000700F0000E00E0000E01C0000E0700000FFC00001C0C00001C060 +0001C0700001C07000038070000380700003807000038070000700F0000700F0400700F0 +400700F0800F007880FFE0790000001E001A1D7D9B1E>82 D<000F8400304C00403C0080 +1801001803001803001806001006001006000007000007000003E00003FC0001FF00007F +800007C00001C00001C00000C00000C02000C02000C0600180600180600300600200F004 +00CC180083E000161E7D9C17>I<1FFFFFC01C0701C0300E00C0200E0080600E0080400E +0080401C0080801C0080801C0080001C0000003800000038000000380000003800000070 +000000700000007000000070000000E0000000E0000000E0000000E0000001C0000001C0 +000001C0000001C0000003C000007FFE00001A1C799B1E>I87 +D89 D<03CC063C0C3C181C3838303870387038E070E070E070E0 +70E0E2C0E2C0E261E462643C380F127B9115>97 D<3F00070007000E000E000E000E001C +001C001C001C0039C03E60383038307038703870387038E070E070E070E060E0E0C0C0C1 +C0618063003C000D1D7B9C13>I<01F007080C08181C3838300070007000E000E000E000 +E000E000E008E010602030C01F000E127B9113>I<001F80000380000380000700000700 +000700000700000E00000E00000E00000E0003DC00063C000C3C00181C00383800303800 +703800703800E07000E07000E07000E07000E0E200C0E200C0E20061E4006264003C3800 +111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000E000E000E00860 +10602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C0000380000 +380000380000380000380003FF8000700000700000700000700000700000E00000E00000 +E00000E00000E00001C00001C00001C00001C00001C00003800003800003800003000003 +0000070000C60000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E +1C0E1C0E381C381C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0 +C3007E00101A7D9113>I<0FC00001C00001C00003800003800003800003800007000007 +00000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C0038 +1C00381C00383800703880703880707080707100E03200601C00111D7D9C15>I<018003 +80010000000000000000000000000000001C002600470047008E008E000E001C001C001C +0038003800710071007100720072003C00091C7C9B0D>I<0FC00001C00001C000038000 +0380000380000380000700000700000700000700000E0F000E11000E23800E43801C8300 +1C80001D00001E00003F800039C00038E00038E00070E20070E20070E20070E400E06400 +603800111D7D9C13>107 D<1F800380038007000700070007000E000E000E000E001C00 +1C001C001C0038003800380038007000700070007000E400E400E400E40068003800091D +7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380 +E01C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C03 +20300C01C01D127C9122>I<3C3C002646004687004707008E07008E07000E07000E0700 +1C0E001C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C9117> +I<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E +000F127B9115>I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C003 +81C00381C00381800703800703000707000706000E8C000E70000E00000E00001C00001C +00001C00001C00003C0000FF8000131A7F9115>I<03C4062C0C3C181C38383038703870 +38E070E070E070E070E0E0C0E0C0E061E063C03DC001C001C0038003800380038007803F +F00E1A7B9113>I<3C3C26C2468747078E068E000E000E001C001C001C001C0038003800 +380038007000300010127C9112>I<01F006080C080C1C18181C001F001FC00FF007F000 +7800386030E030C030806060C01F000E127D9111>I<00C001C001C001C0038003800380 +0380FFE00700070007000E000E000E000E001C001C001C001C0038403840384038801900 +0E000B1A7D990E>I<1E0300270700470700470700870E00870E000E0E000E0E001C1C00 +1C1C001C1C001C1C003838803838801838801839001C5900078E0011127C9116>I<1E06 +270E470E4706870287020E020E021C041C041C041C0818083808181018200C4007800F12 +7C9113>I<1E01832703874703874703838707018707010E07010E07011C0E021C0E021C +0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C>I<070E00199100 +10E38020E38041C30041C00001C00001C000038000038000038000038000070200670200 +E70400CB04008B080070F00011127D9113>I<1E03270747074707870E870E0E0E0E0E1C +1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C0010 +1A7C9114>I<038207C20FEC083810080010002000400080010002000400080810083830 +67F043E081C00F127D9111>I E /Fm 5 111 df<00F000030C000E06041C070438070830 +0708700790700790E003A0E003A0E003C0E00380E00380E00380600780601B883061900F +80E016127E911B>11 D<0001F000061800080C00100C00200E00400E00800E00801C0100 +1C010018010038020FF00210C0020FE00200300400300400300400380400380800700800 +700800700800E01800E01800C0140180140300230E0020F8002000002000004000004000 +0040000040000080000080000017257F9C17>I<60F0F06004047C830C>58 +D<0007E00000E00000E00001C00001C00001C00001C000038000038000038000038001E7 +000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E01C00E01C00E038 +80E03880E038806078803199001E0E00131D7E9C16>100 D<381F004E61804681C04701 +C08F01C08E01C00E01C00E01C01C03801C03801C03801C0700380710380710380E10380E +2070064030038014127E9119>110 D E /Fn 84 128 df<007E1F0001C1B1800303E3C0 +0703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC00 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C +18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E00 +00FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 +C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C007 +03C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E +01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E +01C07FCFF8151D809C17>I<003F07E00001C09C18000380F018000701F03C000E01E03C +000E00E018000E00E000000E00E000000E00E000000E00E000000E00E00000FFFFFFFC00 +0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E +00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 +E01C000E00E01C007FC7FCFF80211D809C23>I<1C1C3C3870C0800607779C15>19 +D<6060F0F0F8F86868080808080808101010102020404080800D0C7F9C15>34 +D<0F0000C0188000C030600380703807006027FB00E0100600E0100C00E0100C00E01018 +00E0101800E0103000E0106000602060007020C00030418000188180000F0303C0000606 +2000060C10000C1C08001818080018380400303804006038040060380400C0380400C038 +04018038040300180803001C0806000C100C000620040003C01E217E9E23>37 +D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018 +001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0 +00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D +9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0 +01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600 +06000C000C00180010002000400080000A2A7E9E10>I<00060000000600000006000000 +060000000600000006000000060000000600000006000000060000000600000006000000 +060000FFFFFFE0FFFFFFE000060000000600000006000000060000000600000006000000 +0600000006000000060000000600000006000000060000000600001B1C7E9720>43 +D<60F0F0701010101020204080040C7C830C>II<60F0F0600404 +7C830C>I<00010003000600060006000C000C000C001800180018003000300030006000 +6000C000C000C0018001800180030003000300060006000C000C000C0018001800180030 +0030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E6006 +6006E007E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C +300C18180C3007E0101D7E9B15>I<030007003F00C70007000700070007000700070007 +000700070007000700070007000700070007000700070007000700070007000F80FFF80D +1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C +00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E018 +30201C201C781E780E781E381E001C001C00180030006007E00030001C001C000E000F00 +0F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<000C00000C00001C0000 +3C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C0030 +1C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001 +FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02430281830 +1C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15 +>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007 +E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF +807FFF007FFF0040020080040080040080080000100000100000200000600000400000C0 +0000C00001C0000180000180000380000380000380000380000780000780000780000780 +00078000078000030000111D7E9B15>I<03E00C301008200C2006600660066006700678 +0C3E083FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C +1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E007 +6007700F300F18170C2707C700060006000E300C780C78187010203030C00F80101D7E9B +15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000000000 +000000000060F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE000000000 +00000000000000000000000000000000000000000000000000000000FFFFFFE07FFFFFC0 +1B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C000800180 +0100010001000100010001000000000000000000000003000780078003000F1D7E9C14> +63 D<000600000006000000060000000F0000000F0000000F0000001780000017800000 +1780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F00001 +80F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C +001F001E001F00FF80FFF01C1D7F9C1F>65 DI<001F808000E0618001801980070007800E0003801C0003801C000180380001807800 +00807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000 +0000F0000000700000807800008078000080380000801C0001001C0001000E0002000700 +04000180080000E03000001FC000191E7E9C1E>IIII<001F +808000E0618001801980070007800E0003801C0003801C00018038000180780000807800 +008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F000 +0F80700007807800078078000780380007801C0007801C0007800E00078007000B800180 +118000E06080001F80001C1E7E9C21>III<1FFF00F800780078007800780078007800 +780078007800780078007800780078007800780078007800787078F878F878F878F0F040 +E021C01F00101D7F9B15>IIIII<003F800000E0E0000380380007001C00 +0E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0 +F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0 +380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C +20>II<003F800000E0E000038038000700 +1C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F000 +01E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C07800 +03C0380003803C0E07801C1107000E208E0007205C0003A0780000F0E020003FE0200000 +602000003060000038E000003FC000003FC000001F8000000F001B257E9C20>II<07E0801C1980300580700380600180E00180E00080E00080 +E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C0 +0001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17> +I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F00 +20000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F80 +0003FFFC001B1C7F9B1E>IIII89 D91 D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>II<1FC000307000783800781C00301C00001C00001C0001FC000F1C +00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 +DI<07E00C301878307870306000E0 +00E000E000E000E000E00060007004300418080C3007C00E127E9112>I<003F00000700 +00070000070000070000070000070000070000070000070000070003E7000C1700180F00 +300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700 +180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000E000 +E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E +000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E +000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C +00381C00381C001818001C38000C300013C0001000003000001800001FF8001FFF001FFF +803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>II<18003C003C00180000000000000000 +00000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000000000000000000000 +0FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E060E0F0C0F1C061803E000B25839C0D>IIIII<03F0000E1C00180600300300700380600180E001 +C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F0001212 +7F9115>II<03C1000C3300180B00300F00700700700700 +E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007C700 +000700000700000700000700000700000700000700003FE0131A7E9116>II<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D060 +8FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C +001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIII<7F8FF00F03800F030007020003840001C80001 +D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF815 +12809116>II<7FFC70386038407040F040E041C003C003 +8007000F040E041C043C0C380870087038FFF80E127F9112>II<60 +60F0F0F0F060600C047C9C15>127 D E /Fo 38 121 df<000E00001E00007E0007FE00 +FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277B +A622>49 D<00FF800003FFF0000FFFFC001F03FE003800FF007C007F80FE003FC0FF003F +C0FF003FE0FF001FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F +8000007F000000FE000000FC000001F8000003F0000003E00000078000000F0000001E00 +00003C00E0007000E000E000E001C001C0038001C0070001C00FFFFFC01FFFFFC03FFFFF +C07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC00 +0F81FE001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F800000FF00 +0000FF000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC0000007E00 +00007F0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0 +FF003FE0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF8000 +1B277DA622>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE0000 +03FE0000077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001 +C07E0003807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FF +FFFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE0000 +00FE000000FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFF +FE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000000E0000000E00 +00000E0000000E0000000E0000000E7FC0000FFFF8000F80FC000E003E000C003F000000 +1F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE00 +1FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF80003FFF00000FF +80001B277DA622>I<0007F000003FFC0000FFFE0001FC0F0003F01F8007E03F800FC03F +801FC03F801F803F803F801F003F8000007F0000007F0000007F000000FF000000FF0FC0 +00FF3FF800FF707C00FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001F +E0FF001FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001FC01F801FC01F803F +800FC03F0007E07E0003FFFC0000FFF000003FC0001B277DA622>I<0000038000000000 +07C00000000007C0000000000FE0000000000FE0000000000FE0000000001FF000000000 +1FF0000000003FF8000000003FF8000000003FF80000000073FC0000000073FC00000000 +F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0FF00000003C0FF80000003 +807F80000007807FC0000007003FC0000007003FC000000E003FE000000E001FE000001E +001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000780007FC000070 +0003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000FF0001C0 +0000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65 +D<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F +8003FC00003F8007F000001F800FF000000F801FE0000007801FE0000007803FC0000007 +803FC0000003807FC0000003807F80000003807F8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF80000000007F80000000007F80000000007FC0000003803FC0000003803FC0000003 +801FE0000003801FE0000007000FF00000070007F000000E0003FC00001E0001FE00003C +0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF8000029297CA832 +>67 DII< +FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC0003E003FC0001E003 +FC0001E003FC0000E003FC0000E003FC0000E003FC0000F003FC03807003FC03807003FC +03807003FC03800003FC07800003FC07800003FC1F800003FFFF800003FFFF800003FFFF +800003FC1F800003FC07800003FC07800003FC03800003FC03800003FC03800003FC0380 +0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297DA82B>I72 +DI80 D82 D<7FFFFFFFFFC07FFFFFFFFFC07FFF +FFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC003C070003FC001C0F000 +3FC001E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E000 +3FC000E000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 +3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 +3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 +3FC0000000003FC0000000003FC0000000003FC0000000003FC00000007FFFFFE000007F +FFFFE000007FFFFFE0002B287EA730>84 D87 +D<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F8000003F +8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F +80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03 +FC1E1B7E9A21>97 D<001FF80000FFFE0003F01F0007E03F800FC03F801F803F803F801F +007F800E007F0000007F000000FF000000FF000000FF000000FF000000FF000000FF0000 +00FF0000007F0000007F0000007F8000003F8001C01F8001C00FC0038007E0070003F01E +0000FFFC00001FE0001A1B7E9A1F>99 D<00003FF80000003FF80000003FF800000003F8 +00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 +000003F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF80007 +E00FF8000FC007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003F800FF00 +03F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003 +F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF +8000FFF3FF80003FC3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F000F80 +1F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFF +FFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC0 +01C007E0038003F81F0000FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01F8 +7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFF +C0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 +0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF +807FFF807FFF80182A7EA915>I<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F00 +7E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80 +FC000FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFF +FF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F800 +00F8F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22> +II<07000F801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0 +FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I107 DIII<003FE00001FFFC0003F07E000FC01F801F800F +C03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007 +F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F800F +C00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>II114 +D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE007FFF +803FFFE01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC00 +70FF01E0F7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000 +F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007 +F00007F00007F00007F00007F00007F00007F00007F00007F00007F03807F03807F03807 +F03807F03807F03803F03803F87001F86000FFC0001F8015267FA51B>IIIII E /Fp 1 49 df<081C1C3838383070706060C0C0060D7E +8D09>48 D E /Fq 3 101 df<03E0000638101C1820381C20300E20700E40600E40E00E +80E00E80E00F00E00E00C00E00E00E00603E0020C6401F038014107E8F19>11 +D<0007800018600020600040700080700080700100700100700200E00200C0023F800223 +00043F800401C00400C00401C00801C00801C00801C0080180180380180300180700140E +0022180021F00020000020000040000040000040000040000080000014217F9916>I<00 +3F000700070007000E000E000E000E001C001C039C0C5C1838383830387038E070E070E0 +70E070C0E2C0E2C0E2E1E262643C38101A7E9914>100 D E /Fr +7 117 df<00030000000780000007800000078000000FC000000FC000001BE000001BE0 +00001BE0000031F0000031F0000060F8000060F80000E0FC0000C07C0000C07C0001803E +0001FFFE0003FFFF0003001F0003001F0006000F8006000F800E000FC0FFC07FFCFFC07F +FC1E1A7F9921>65 D<0FF0001C3C003E1E003E0E003E0F001C0F00000F0000FF000FCF00 +3E0F007C0F00F80F00F80F00F80F00F817007C27E01FC3E013117F9015>97 +DI<03FC000F0E001C1F003C1F00781F00780E00F80000F8 +0000F80000F80000F800007800007800003C01801C03000F060003FC0011117F9014>I< +FC78FC9C1D3E1D3E1E3E1E1C1E001E001E001E001E001E001E001E001E00FFC0FFC00F11 +7F9012>114 D<1FB020704030C030C030F000FF807FE03FF807F8003CC00CC00CE00CE0 +08F830CFE00E117F9011>I<06000600060006000E000E001E003FF0FFF01E001E001E00 +1E001E001E001E001E001E181E181E181E181E180F3003E00D187F9711>I +E /Fs 46 122 df<00FC7C0183C607078E0607040E07000E07000E07000E07000E07000E +0700FFFFF00E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E +07000E07000E07000E07007F0FF0171A809916>11 D<00FC000182000703000607000E02 +000E00000E00000E00000E00000E0000FFFF000E07000E07000E07000E07000E07000E07 +000E07000E07000E07000E07000E07000E07000E07000E07007F0FE0131A809915>I<00 +7E1F8001C170400703C060060380E00E0380400E0380000E0380000E0380000E0380000E +038000FFFFFFE00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E +0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E07F8FE3FC1E1A809920 +>14 D<00800100020004000C00080018003000300030006000600060006000E000E000E0 +00E000E000E000E000E000E000E0006000600060006000300030003000180008000C0004 +0002000100008009267D9B0F>40 D<8000400020001000180008000C0006000600060003 +000300030003000380038003800380038003800380038003800380030003000300030006 +00060006000C0008001800100020004000800009267E9B0F>I<60F0F070101010202040 +80040B7D830B>44 DI<60F0F06004047D830B>I<03000700FF00 +070007000700070007000700070007000700070007000700070007000700070007000700 +07000700FFF00C187D9713>49 D<0F80106020304038803CC01CE01C401C003C00380038 +0070006000C001800100020004040804100430083FF87FF8FFF80E187E9713>I<01E006 +100C1818383038300070006000E000E7C0E860F030F018E018E01CE01CE01C601C601C70 +1830183030186007C00E187E9713>54 D<000C0000000C0000000C0000001E0000001E00 +00003F000000270000002700000043800000438000004380000081C0000081C0000081C0 +000100E0000100E00001FFE000020070000200700006007800040038000400380008001C +0008001C001C001E00FF00FFC01A1A7F991D>65 D<003F0201C0C603002E0E001E1C000E +1C0006380006780002700002700002F00000F00000F00000F00000F00000F00000700002 +7000027800023800041C00041C00080E000803003001C0C0003F00171A7E991C>67 +DII<003F020001C0C60003 +002E000E001E001C000E001C00060038000600780002007000020070000200F0000000F0 +000000F0000000F0000000F0000000F001FFC070000E0070000E0078000E0038000E001C +000E001C000E000E000E000300160001C06600003F82001A1A7E991E>71 +DI +I80 D<0FC21836200E6006C006C002C002C002E00070007E +003FE01FF807FC003E000E00070003800380038003C002C006E004D81887E0101A7E9915 +>83 D<7FFFFF00701C0700401C0100401C0100C01C0180801C0080801C0080801C008000 +1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000 +1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000003FFE00019 +1A7F991C>II<3F8070C070E020700070007007F01C7030 +707070E070E071E071E0F171FB1E3C10107E8F13>97 DI< +07F80C1C381C30087000E000E000E000E000E000E0007000300438080C1807E00E107F8F +11>I<007E00000E00000E00000E00000E00000E00000E00000E00000E00000E0003CE00 +0C3E00380E00300E00700E00E00E00E00E00E00E00E00E00E00E00E00E00600E00700E00 +381E001C2E0007CFC0121A7F9915>I<07C01C3030187018600CE00CFFFCE000E000E000 +E0006000300438080C1807E00E107F8F11>I<01F0031807380E100E000E000E000E000E +000E00FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE00D +1A80990C>I<0FCE187330307038703870387038303018602FC02000600070003FF03FFC +1FFE600FC003C003C003C0036006381C07E010187F8F13>II<18003C003C001800000000000000000000000000FC001C001C001C001C001C001C00 +1C001C001C001C001C001C001C001C00FF80091A80990A>I107 DIII<07E01C38300C700E6006E007E007E007E007E007E0076006700E38 +1C1C3807E010107F8F13>II<03C2000C2600381E00300E00700E00E00E00E00E +00E00E00E00E00E00E00E00E00700E00700E00381E001C2E0007CE00000E00000E00000E +00000E00000E00000E00007FC012177F8F14>II<1F2060E04020C020C020F0007F +003FC01FE000F080708030C030C020F0408F800C107F8F0F>I<0400040004000C000C00 +1C003C00FFC01C001C001C001C001C001C001C001C001C201C201C201C201C200E400380 +0B177F960F>IIIIII +E /Ft 16 118 df<70F8F8F0E005057A840F>46 D<0000FE000007018000180060002000 +100040001000800008010000040201F00404070804080C040210180202103003C2206001 +C220E0038240C0038241C0038241C003828380070483800704838007048380070483800E +0883800E0881801E0881802E1080C04E2080618E60403E07804000000020000000200000 +00100000E00C00078003007C0000FF80001F2379A225>64 D<00F8C00185C00705C00E03 +800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E10F01C +20701C20703C20305C40308C400F078014157B9419>97 D<03C03F800380038003800700 +0700070007000E000E000E000E001C001CF81D0C1E0E3C0638073807380F700F700F700F +700FE01EE01EE01EE03CE038E038607060E031C01F0010237BA216>I<007E0001C10003 +01800703800E07801C07803C0000380000780000780000780000F00000F00000F00000F0 +0000F00100700100700200300C001830000FC00011157B9416>I<00F803840E021C023C +0238027804F018FFE0F000F000E000E000E000E000E002E0026004701830600F800F157A +9416>101 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C000038000 +038000038000038000070000071F0007218007C0C00F00E00F00E00E00E00E00E01C01C0 +1C01C01C01C01C01C0380380380380380380380704700708700E08700E10700610E00620 +6003C016237DA219>104 D<0000E00001E00001E00000C0000000000000000000000000 +000000000000000000000000001E00002300004380008380008380010380010380000700 +000700000700000700000E00000E00000E00000E00001C00001C00001C00001C00003800 +00380000380000380000700000700000700070E000F0C000F180006300003C0000132B82 +A00F>106 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C000038000 +0380000380000380000700000701E0070210070C700E10F00E10F00E20600E40001D8000 +1E00001FC0001C7000383800383800381C00381C20703840703840703840701880E01880 +600F0014237DA216>I<01E01FC001C001C001C003800380038003800700070007000700 +0E000E000E000E001C001C001C001C0038003800380038007000700070007100E200E200 +E200E200640038000B237CA20C>I<1C0F002631C04740C08780E08780E08700E08700E0 +0E01C00E01C00E01C00E01C01C03801C03801C03801C0704380708380E08380E10380610 +7006203003C016157B941B>110 D<007E0001C3000381800701C00E01C01C01E03C01E0 +3801E07801E07801E07801E0F003C0F003C0F00380F00780700700700E00700C00301800 +18700007C00013157B9419>I<1C1F002620804741C08783C08703C08701808700000E00 +000E00000E00000E00001C00001C00001C00001C00003800003800003800003800007000 +0030000012157B9415>114 D<00FC000183000200800401800C03800C03000C00000F00 +000FF00007FC0003FE00003E00000F00000700700700F00600F00600E004004008002030 +001FC00011157D9414>I<00C001C001C001C001C003800380038003800700FFF8070007 +000E000E000E000E001C001C001C001C003800380038003810702070207040708031001E +000D1F7C9E10>I<1E00602300E04380E04381C08381C08701C08701C00703800E03800E +03800E03801C07001C07001C07001C07081C0E10180E101C0E101C1E200C262007C3C015 +157B941A>I E /Fu 24 118 df<001F83E000706E3000C07C780180F8780380F0780700 +70000700700007007000070070000700700007007000070070000700700007007000FFFF +FFC007007000070070000700700007007000070070000700700007007000070070000700 +700007007000070070000700700007007000070070000700700007007000070070000700 +7000070078007FE3FF801D2380A21C>11 D<70F8FCFC7404040404080810102040060F7C +840E>44 D<70F8F8F87005057C840E>46 D<008003800F80F38003800380038003800380 +038003800380038003800380038003800380038003800380038003800380038003800380 +038003800380038007C0FFFE0F217CA018>49 D<03F8000C1E001007002007804007C078 +07C07803C07807C03807C0000780000780000700000F00000E0000380003F000001C0000 +0F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F003C04003C040 +0780200780100F000C1C0003F00013227EA018>51 D<007E0001C1000300800601C00E03 +C01C03C0180180380000380000780000700000700000F0F800F30C00F40600F40300F803 +80F801C0F001C0F001E0F001E0F001E0F001E0F001E07001E07001E07001E03801C03801 +C01803801C03000C0600070C0001F00013227EA018>54 D<01F000060C000C0600180700 +380380700380700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E0 +7003E03803E01805E00C05E00619E003E1E00001C00001C00001C0000380000380300300 +780700780600700C002018001030000FC00013227EA018>57 D66 D<0007F008003C0C1800E0 +021801C001B8038000F8070000780F0000381E0000381E0000183C0000183C0000187C00 +00087800000878000008F8000000F8000000F8000000F8000000F8000000F8000000F800 +0000F8001FFF780000F8780000787C0000783C0000783C0000781E0000781E0000780F00 +007807000078038000B801C000B800E00318003C0C080007F00020247DA226>71 +D<03FFF0001F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F +00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F +00000F00000F00700F00F80F00F80F00F80E00F01E00401C0020380018700007C0001423 +7EA119>74 D77 D<03F0200C0C601802603001E07000E0600060E00060E00060E00020E00020E000 +20F00000F000007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000 +F00000F0000070800070800070800070800070C00060C00060E000C0F000C0C80180C607 +0081FC0014247DA21B>83 D<0FE0001838003C0C003C0E00180700000700000700000700 +00FF0007C7001E07003C0700780700700700F00708F00708F00708F00F087817083C2390 +0FC1E015157E9418>97 D<01FE000703000C07801C0780380300780000700000F00000F0 +0000F00000F00000F00000F00000F000007000007800403800401C00800C010007060001 +F80012157E9416>99 D<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFF +E0F00000F00000F00000F00000F000007000007800203800201C00400E008007030000FC +0013157F9416>101 D<00007001F198071E180E0E181C07001C07003C07803C07803C07 +803C07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFF +C00FFFE03800F0600030400018C00018C00018C000186000306000303800E00E038003FE +0015217F9518>103 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00 +000E00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00 +700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00 +700E0070FFE7FF18237FA21B>I<1C001E003E001E001C00000000000000000000000000 +000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E00 +0E000E000E000E00FFC00A227FA10E>I<0E0000FE00001E00000E00000E00000E00000E +00000E00000E00000E00000E00000E00000E00000E00000E03FC0E01F00E01C00E01800E +02000E04000E08000E10000E38000EF8000F1C000E1E000E0E000E07000E07800E03C00E +01C00E01E00E00F00E00F8FFE3FE17237FA21A>107 D<0E1F80FE60C01E80E00F00700F +00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E +00700E00700E00700E0070FFE7FF18157F941B>110 D<01FC000707000C01801800C038 +00E0700070700070F00078F00078F00078F00078F00078F00078F000787000707800F038 +00E01C01C00E038007070001FC0015157F9418>I<0E3CFE461E8F0F0F0F060F000E000E +000E000E000E000E000E000E000E000E000E000E000E000F00FFF010157F9413>114 +D<02000200020002000600060006000E001E003E00FFF80E000E000E000E000E000E000E +000E000E000E000E000E040E040E040E040E040E040708030801F00E1F7F9E13>116 +D<0E0070FE07F01E00F00E00700E00700E00700E00700E00700E00700E00700E00700E00 +700E00700E00700E00700E00700E00F00E00F006017003827800FC7F18157F941B>I +E /Fv 15 115 df45 D<0000030000000000030000 +0000000300000000000780000000000780000000000FC0000000000FC0000000000FC000 +00000017E00000000013E00000000013E00000000023F00000000021F00000000021F000 +00000040F80000000040F80000000040F800000000807C00000000807C00000001807E00 +000001003E00000001003E00000002003F00000002001F00000002001F00000004000F80 +000004000F80000004000F800000080007C00000080007C00000180007E000001FFFFFE0 +00001FFFFFE00000200003F00000200001F00000200001F00000400001F80000400000F8 +0000400000F800008000007C00008000007C00008000007C00010000003E00010000003E +00030000003F00030000001F00070000001F001F8000003F80FFE00003FFFCFFE00003FF +FC2E327EB132>65 D68 D<00001FE000800000FFFC018000 +07F00F0180000F80018380003E0000C38000780000278000F00000178001E000000F8003 +C000000F800780000007800780000003800F00000003801F00000001801E00000001803E +00000001803C00000001803C00000000807C00000000807C0000000080780000000000F8 +0000000000F80000000000F80000000000F80000000000F80000000000F80000000000F8 +0000000000F80000000000F80000000000F80000000000F800000FFFFC7800000FFFFC7C +0000001FC07C0000000F803C0000000F803C0000000F803E0000000F801E0000000F801F +0000000F800F0000000F80078000000F8007C000000F8003C000000F8001E000000F8000 +F000001780007C00001780003E00006380000F8000C3800007F00781800000FFFE008000 +001FF000002E337CB134>71 DII< +FFFFFFC000FFFFFFF80007E0007E0003E0001F0003E000078003E00003C003E00001E003 +E00001F003E00001F003E00000F003E00000F803E00000F803E00000F803E00000F803E0 +0000F803E00000F803E00000F003E00001F003E00001E003E00003E003E00003C003E000 +078003E0001F0003E0007C0003FFFFF00003E000000003E000000003E000000003E00000 +0003E000000003E000000003E000000003E000000003E000000003E000000003E0000000 +03E000000003E000000003E000000003E000000003E000000003E000000003E000000003 +E000000003E000000003E000000007F0000000FFFF800000FFFF80000025317CB02D>80 +D<007F802001FFE02007C078600F001C601E0006E03C0003E0380001E0780000E0700000 +E070000060F0000060F0000060F0000020F0000020F0000020F8000020F80000007C0000 +007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000FFFF00000FFF +800000FFC000001FE0000007E0000003F0000001F0000000F0000000F8000000F8800000 +7880000078800000788000007880000078C0000078C0000070E00000F0E00000E0F00000 +E0F80001C0EC000380C7000700C1F01E00807FFC00800FF0001D337CB125>83 +D<7FFFFFFFFFE07FFFFFFFFFE07E000F8007E078000F8001E070000F8000E060000F8000 +6040000F80002040000F800020C0000F800030C0000F80003080000F80001080000F8000 +1080000F80001080000F80001080000F80001080000F80001000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000001FC00000000FFFFF80 +00000FFFFF80002C317EB030>I<00FE00000303C0000C00E00010007000100038003C00 +3C003E001C003E001E003E001E0008001E0000001E0000001E0000001E00000FFE0000FC +1E0003E01E000F801E001F001E003E001E003C001E007C001E00F8001E04F8001E04F800 +1E04F8003E04F8003E0478003E047C005E043E008F080F0307F003FC03E01E1F7D9E21> +97 D<003F8000E0600380180700040F00041E001E1C003E3C003E7C003E7C0008780000 +F80000F80000F80000F80000F80000F80000F80000F80000F800007800007C00007C0000 +3C00011E00011E00020F000207000403801800E060003F80181F7D9E1D>99 +D<003F800000E0E0000380380007003C000E001E001E001E001C000F003C000F007C000F +0078000F8078000780F8000780F8000780FFFFFF80F8000000F8000000F8000000F80000 +00F8000000F8000000780000007C0000003C0000003C0000801E0000800E0001000F0002 +000780020001C00C0000F03000001FC000191F7E9E1D>101 D<0780000000FF80000000 +FF800000000F800000000780000000078000000007800000000780000000078000000007 +800000000780000000078000000007800000000780000000078000000007800000000780 +000000078000000007800000000780FE00000783078000078C03C000079001E00007A001 +E00007A000F00007C000F00007C000F000078000F000078000F000078000F000078000F0 +00078000F000078000F000078000F000078000F000078000F000078000F000078000F000 +078000F000078000F000078000F000078000F000078000F000078000F000078000F00007 +8000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF8021327EB125>104 +D<0780FE001FC000FF83078060F000FF8C03C18078000F9001E2003C0007A001E4003C00 +07A000F4001E0007C000F8001E0007C000F8001E00078000F0001E00078000F0001E0007 +8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E000780 +00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000 +F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 +001E00078000F0001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83 +FFF0341F7E9E38>109 D<0783E0FF8C18FF907C0F907C07A07C07C03807C00007C00007 +C00007800007800007800007800007800007800007800007800007800007800007800007 +80000780000780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E +19>114 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 591 369 a Fv(APHID)22 b(Game-T)-6 b(ree)22 b(Searc)n(h)516 +490 y Fu(Mark)16 b(G.)g(Bro)q(c)o(kington,)g Ft(br)n(o)n(ck@cs.ualb)n +(erta.c)n(a)504 548 y Fu(Jonathan)i(Sc)o(hae\013er,)d +Ft(jonathan@cs.ualb)n(erta.c)n(a)685 606 y Fs(Departmen)o(t)f(of)f +(Computing)h(Science)797 664 y(Univ)o(ersit)o(y)h(of)d(Alb)q(erta)727 +722 y(Edmon)o(ton,)i(Alb)q(erta)g(T6G)f(2H1)911 780 y(Canada)828 +878 y Fu(June)k(13,)f(1996)890 1017 y Fr(Abstract)161 +1073 y Fs(This)g(pap)q(er)h(in)o(tro)q(duces)g(the)e(APHID)g(\(Async)o +(hronous)j(P)o(arallel)f(Hierarc)o(hical)h(Iterativ)o(e)e(Deep)q +(ening\))i(game-)104 1118 y(tree)13 b(searc)o(h)g(algorithm.)19 +b(An)13 b(APHID)g(searc)o(h)h(is)f(con)o(trolled)j(b)o(y)d(a)g(master)g +(and)h(a)f(series)h(of)f(sla)o(v)o(e)h(pro)q(cessors.)k(The)104 +1164 y(master)d(searc)o(hes)g(the)g(\014rst)g Fq(d)551 +1148 y Fp(0)576 1164 y Fs(ply)h(of)e(the)h(game-tree)g(rep)q(eatedly)m +(.)24 b(The)14 b(sla)o(v)o(es)i(are)f(resp)q(onsible)i(for)e(the)g(b)q +(ottom)104 1210 y(plies)k(of)f(the)f(game-tree.)32 b(The)17 +b(sla)o(v)o(es)i(async)o(hronously)i(read)d(w)o(ork)g(lists)h(from)e +(the)h(master)g(and)g(return)h(score)104 1255 y(information)g(to)d(the) +h(master.)29 b(The)17 b(master)g(uses)g(the)g(returned)h(score)f +(information)i(to)e(generate)g(appro)o(ximate)104 1301 +y(minimax)e(v)n(alues,)f(un)o(til)g(all)h(of)d(the)i(required)g(score)f +(information)j(is)d(a)o(v)n(ailable.)161 1346 y(APHID)e(has)g(b)q(een)g +(programmed)g(as)g(an)g(easy)g(to)f(implemen)o(t,)j(game-indep)q(enden) +o(t)g Fq(\013\014)f Fs(library)m(,)g(and)f(w)o(as)g(imple-)104 +1392 y(men)o(ted)g(in)o(to)h(a)g(c)o(hess)f(program)h(with)g(one)f(da)o +(y)h(of)f(programming)i(e\013ort.)k(APHID)11 b(yields)i(reasonable)g(p) +q(erformance)104 1438 y(on)e(a)h(net)o(w)o(ork)f(of)g(w)o(orkstations,) +i(an)f(arc)o(hitecture)h(where)e(it)h(is)g(extremely)g(di\016cult)h(to) +f(use)f(a)h(shared)g(transp)q(osition)104 1483 y(table)i(e\013fectiv)o +(ely)m(.)0 1619 y Fo(1)69 b(In)n(tro)r(duction)0 1722 +y Fn(The)18 b(alpha-b)q(eta)f(\()p Fm(\013\014)r Fn(\))h(minim)o(ax)c +(tree)19 b(searc)o(h)f(algorithm)d(has)j(pro)o(v)o(en)f(to)g(b)q(e)h(a) +f(di\016cult)g(algorithm)e(to)i(parallelize.)0 1785 y(Although)e(sim)o +(ulations)e(predict)k(excellen)o(t)f(parallel)f(p)q(erformance,)g(man)o +(y)f(of)h(these)i(results)g(are)f(based)h(on)e(an)h(unrea-)0 +1847 y(sonable)c(set)h(of)e(assumptions.)17 b(In)12 b(practice,)h(kno)o +(wing)e(where)i(to)f(initiate)f(parallel)g(activit)o(y)g(is)h +(di\016cult)g(since)h(the)f(result)0 1909 y(of)18 b(searc)o(hing)g(one) +h(no)q(de)f(at)g(a)g(branc)o(h)h(ma)o(y)d(ob)o(viate)i(the)h(parallel)e +(w)o(ork)g(of)h(the)h(other)g(branc)o(hes)g(\(a)f(so-called)g +Fl(cut-)0 1972 y(o\013)p Fn(\).)h(In)14 b(real-w)o(orld)f(implemen)o +(tations,)d(suc)o(h)15 b(as)f(for)g(high-p)q(erformance)f(c)o(hess,)i +(c)o(hec)o(k)o(ers)h(and)d(Othello)h(game-pla)o(ying)0 +2034 y(programs,)e(the)j(programs)d(su\013er)k(from)c(three)j(ma)r(jor) +d(sources)k(of)d(parallel)g(ine\016ciency:)62 2121 y +Fk(\017)21 b Fl(Synchr)n(onization)15 b(Overhe)n(ad)p +Fn(:)i(The)d(searc)o(h)g(t)o(ypically)d(has)i(man)o(y)e(sync)o +(hronization)i(p)q(oin)o(ts)f(that)h(result)h(in)e(a)h(high)104 +2184 y(p)q(ercen)o(tage)i(of)f(pro)q(cessor)h(idle)f(time.)62 +2275 y Fk(\017)21 b Fl(Communic)n(ation)f(Overhe)n(ad)p +Fn(:)29 b(Pro)q(cesses)22 b(m)o(ust)c(comm)o(unicate)f(information)f(b) +q(et)o(w)o(een)21 b(them;)f(the)g(impact)e(of)104 2338 +y(comm)o(unicatio)o(n)11 b(dep)q(ends)16 b(on)d(the)i(frequency)g(of)e +(messages)h(and)g(the)g(comm)o(unication)d(latency)m(.)62 +2429 y Fk(\017)21 b Fl(Se)n(ar)n(ch)c(Overhe)n(ad)p Fn(:)22 +b(Searc)o(h)16 b(trees)i(are)e(really)f(directed)i(graphs.)24 +b(W)m(ork)15 b(p)q(erformed)g(on)h(one)g(pro)q(cessor)h(ma)o(y)d(b)q(e) +104 2491 y(useful)d(to)g(the)g(computations)f(of)g(another)i(pro)q +(cessor.)18 b(If)11 b(this)g(information)d(is)j(not)g(a)o(v)n(ailable,) +e(unnecessary)k(searc)o(h)104 2554 y(ma)o(y)f(b)q(e)i(done.)0 +2641 y(These)h(o)o(v)o(erheads)f(are)g(not)f(indep)q(enden)o(t)i(of)d +(eac)o(h)i(other.)19 b(F)m(or)13 b(example,)f(increased)i(comm)o +(unication)c(can)k(help)f(reduce)0 2704 y(the)j(searc)o(h)h(o)o(v)o +(erhead.)23 b(Reducing)15 b(the)h(n)o(um)o(b)q(er)f(of)f(sync)o +(hronization)i(p)q(oin)o(ts)f(can)h(increase)g(the)g(searc)o(h)h(o)o(v) +o(erhead.)23 b(In)965 2828 y(1)p eop +%%Page: 2 2 +2 1 bop 0 195 a Fn(practice,)14 b(the)h(righ)o(t)e(balance)h(b)q(et)o +(w)o(een)h(these)g(sources)h(of)d(program)f(ine\016ciency)i(is)g +(di\016cult)f(to)h(\014nd,)f(and)h(one)g(usually)0 257 +y(p)q(erforms)f(man)o(y)f(exp)q(erimen)o(ts)j(to)e(\014nd)h(the)h(righ) +o(t)e(trade-o\013s)i(to)f(maxim)o(ize)d(p)q(erformance.)62 +320 y(Man)o(y)i(parallel)g Fm(\013\014)j Fn(algorithms)11 +b(ha)o(v)o(e)j(app)q(eared)g(in)f(the)i(literature)f([1)o(,)f(2,)g(3,)g +(9,)g(13)o(,)g(22].)k(The)d(PV-Split)g(algorithm)0 382 +y(recognized)19 b(that)f(some)f(no)q(des)h(exist)h(in)e(the)h(searc)o +(h)h(tree)g(where,)h(ha)o(ving)d(searc)o(hed)i(the)g(\014rst)f(branc)o +(h)g(sequen)o(tially)m(,)0 444 y(the)f(remaining)e(branc)o(hes)i(can)g +(b)q(e)g(searc)o(hed)h(in)e(parallel)g([16)o(].)25 b(Initiating)15 +b(parallelism)f(along)h(the)i(b)q(est)h(line)e(of)g(pla)o(y)m(,)0 +506 y(the)h Fl(princip)n(al)f(variation)p Fn(,)g(w)o(as)g(e\013ectiv)o +(e)h(for)f(a)f(small)f(n)o(um)o(b)q(er)h(of)h(pro)q(cessors,)i +(although)d(v)n(ariations)g(on)h(this)g(sc)o(heme)0 569 +y(seemed)e(limited)e(to)i(sp)q(eedups)i(of)d(less)h(than)g(8)g([21)o +(].)62 631 y(The)e(idea)f(can)h(b)q(e)g(generalized)g(to)g(other)g(no)q +(des)g(in)f(the)h(tree.)18 b(A)o(t)12 b(no)q(des)g(where)h(the)f +(\014rst)g(branc)o(h)g(has)g(b)q(een)g(searc)o(hed)0 +693 y(and)17 b(no)g(cut-o\013)h(o)q(ccurs,)h(the)e(rest)i(can)e(lik)o +(ely)f(b)q(e)i(searc)o(hed)h(in)e(parallel.)26 b(It)18 +b(is)f(a)g(trade-o\013)g({)g(increased)i(parallelism)0 +756 y(v)o(ersus)c(additional)d(searc)o(h)k(o)o(v)o(erhead,)e(since)g +(one)h(of)e(these)j(parallel)d(tasks)h(could)g(cause)h(a)f(cuto\013.)19 +b(This)14 b(idea)g(has)g(b)q(een)0 818 y(tried)e(b)o(y)g(a)f(n)o(um)o +(b)q(er)h(of)f(researc)o(hers)k([6)o(,)c(7,)g(10].)17 +b(The)12 b(b)q(est-kno)o(wn)g(instance)h(of)e(this)h(t)o(yp)q(e)h(of)e +(algorithm)e(is)j(called)f Fl(Y)m(oung)0 880 y(Br)n(others)k(Wait)f +Fn(\(YBW\))h(and)f(w)o(as)g(implemen)o(ted)e(b)o(y)i(F)m(eldmann)e(in)i +(the)h Fj(Zugzw)l(ang)f Fn(c)o(hess)i(program)d([5)o(].)19 +b(F)m(eldmann)0 942 y(ac)o(hiev)o(ed)f(a)f(344-fold)f(sp)q(eedup)j +(using)e(YBW)h(on)f(1024)g(pro)q(cessors.)31 b(V)m(ariations)16 +b(of)h(this)h(algorithm)d(ha)o(v)o(e)i(app)q(eared)0 +1005 y(with)d(comparable)e(exp)q(erimen)o(tal)h(results,)i(suc)o(h)f +(as)g(Jam)o(b)q(oree)g(searc)o(h)h([12)o(])e(and)h(ABD)o(AD)o(A)g([24)o +(].)62 1067 y(This)20 b(class)f(of)g(algorithms)e(cannot)j(ac)o(hiev)o +(e)g(a)f(linear)g(sp)q(eedup)i(primarily)c(due)i(to)h(sync)o +(hronization)f(o)o(v)o(erhead;)0 1129 y(the)c(searc)o(h)h(tree)g(ma)o +(y)d(ha)o(v)o(e)i(thousands)g(of)f(sync)o(hronization)h(p)q(oin)o(ts)g +(and)f(there)j(are)e(n)o(umerous)f(o)q(ccasions)h(where)h(the)0 +1191 y(pro)q(cesses)i(are)e(starv)o(ed)h(for)e(w)o(ork.)23 +b(The)16 b(algorithms)e(ha)o(v)o(e)h(lo)o(w)g(searc)o(h)i(o)o(v)o +(erhead,)f(but)f(this)h(is)g(primarily)d(due)j(to)f(the)0 +1254 y(implemen)o(tatio)o(n)c(of)j(a)f(globally)f(shared)j(transp)q +(osition)e(table)h([8].)62 1316 y(This)g(pap)q(er)h(in)o(tro)q(duces)h +(the)f(Async)o(hronous)g(P)o(arallel)e(Hierarc)o(hical)h(Iterativ)o(e)h +(Deep)q(ening)g(\(APHID)1723 1301 y Fi(1)1742 1316 y +Fn(\))f(game-tree)0 1378 y(searc)o(h)i(algorithm.)k(The)c(algorithm)d +(represen)o(ts)18 b(a)d(departure)i(from)c(the)j(approac)o(hes)g(used)h +(in)d(practice.)24 b(In)15 b(con)o(trast)0 1440 y(to)d(other)h(sc)o +(hemes,)g(APHID)g(de\014nes)h(a)e(fron)o(tier)h(\(a)f(\014xed)h(n)o(um) +o(b)q(er)f(of)f(mo)o(v)o(es)h(a)o(w)o(a)o(y)f(from)g(the)i(ro)q(ot)f +(of)g(the)h(searc)o(h)h(tree\),)0 1503 y(and)d(all)g(no)q(des)h(at)f +(the)h(fron)o(tier)g(are)f(done)h(in)f(parallel.)16 b(Eac)o(h)c(w)o +(ork)o(er)g(pro)q(cess)h(is)e(assigned)h(an)f(equal)g(n)o(um)o(b)q(er)g +(of)g(fron)o(tier)0 1565 y(no)q(des)i(to)f(searc)o(h.)19 +b(The)13 b(w)o(ork)o(ers)g(con)o(tin)o(ually)d(searc)o(h)k(these)g(no)q +(des)f(deep)q(er)h(and)e(deep)q(er,)i(nev)o(er)f(ha)o(ving)f(to)g(sync) +o(hronize)0 1627 y(with)j(a)g(con)o(trolling)f(master)h(pro)q(cess.)24 +b(The)16 b(master)f(pro)q(cess)i(rep)q(eatedly)f(searc)o(hes)i(to)d +(the)h(fron)o(tier)f(to)g(get)h(the)g(latest)0 1689 y(searc)o(h)g +(results.)k(In)15 b(this)f(w)o(a)o(y)m(,)f(there)j(is)e(e\013ectiv)o +(ely)i(no)e(idle)g(time;)f(searc)o(h)i(ine\016ciencies)h(are)f +(primarily)d(due)j(to)f(searc)o(h)0 1752 y(o)o(v)o(erhead.)29 +b(APHID's)18 b(p)q(erformance)f(do)q(es)h(not)g(rely)f(on)h(the)g +(implemen)o(tati)o(on)d(of)i(a)g(global)f(shared)i(memory)m(,)d(whic)o +(h)0 1814 y(mak)o(es)f(the)i(algorithm)d(suitable)i(for)g(lo)q +(osely-coupled)f(arc)o(hitectures)k(\(suc)o(h)e(as)f(a)g(net)o(w)o(ork) +h(of)e(w)o(orkstations\),)h(as)h(w)o(ell)0 1876 y(as)e(tigh)o +(tly-coupled)f(arc)o(hitectures.)62 1939 y(Unlik)o(e)f(most)f(parallel) +g Fm(\013\014)k Fn(algorithms,)9 b(APHID)k(is)f(designed)h(to)f(\014t)g +(in)o(to)g(a)g(sequen)o(tial)g Fm(\013\014)j Fn(structure.)k(APHID)13 +b(has)0 2001 y(b)q(een)i(implemen)o(ted)e(as)h(a)g(game-indep)q(enden)o +(t)g(library)g(of)f(routines.)20 b(These,)c(com)o(bined)d(with)h +(application-dep)q(enden)o(t)0 2063 y(routines)d(that)f(the)g(user)h +(supplies,)g(allo)o(w)d(a)i(sequen)o(tial)g Fm(\013\014)j +Fn(program)8 b(to)i(b)q(e)h(easily)e(con)o(v)o(erted)i(to)f(a)g +(parallel)f Fm(\013\014)j Fn(program.)0 2125 y(Although)i(most)f +(parallel)g Fm(\013\014)j Fn(programs)d(tak)o(e)h(mon)o(ths)f(to)h(dev) +o(elop,)g(the)h(game-indep)q(enden)o(t)f(library)g(allo)o(ws)e(users)k +(to)0 2188 y(in)o(tegrate)e(parallelism)d(in)o(to)j(their)g +(application)e(with)i(only)f(a)h(few)g(hours)g(of)f(w)o(ork.)62 +2250 y(This)j(pap)q(er)h(discusses)i(the)e(APHID)f(algorithm,)e(its)i +(application-indep)q(enden)o(t)g(in)o(terface)h(and)f(the)h(p)q +(erformance)0 2312 y(of)12 b(the)h(APHID)g(algorithm.)i(The)f(pap)q(er) +f(is)g(organized)f(in)o(to)g(\014v)o(e)h(sections.)19 +b(Section)13 b(2)g(is)f(a)h(brief)f(summary)e(of)j(previous)0 +2374 y(w)o(ork)18 b(in)g(parallel)f(game-tree)h(searc)o(h.)33 +b(Section)19 b(3)f(is)g(primarily)e(concerned)21 b(with)d(the)h +(details)f(of)g(ho)o(w)g(the)h(APHID)0 2437 y(algorithm)d(op)q(erates,) +21 b(and)e(ho)o(w)g(the)g(library)f(in)o(tegrates)i(with)f(an)f +(existing)h(sequen)o(tial)g Fm(\013\014)i Fn(algorithm.)31 +b(Section)19 b(4)0 2499 y(describ)q(es)h(the)e(preliminary)d(results)k +(of)e(in)o(tegrating)g(the)h(library)f(in)o(to)g(a)g(c)o(hess)i +(program,)d(and)i(Section)g(5)f(describ)q(es)0 2561 y(some)c(of)g(the)i +(researc)o(h)h(directions)e(that)g(w)o(e)g(are)g(curren)o(tly)h(w)o +(orking)e(on.)p 0 2596 780 2 v 46 2623 a Fh(1)64 2634 +y Fg(An)e(aphid)f(is)i(a)f(soft-b)q(o)q(died)e(insect)h(that)g(suc)o +(ks)h(the)g(sap)g(from)f(plan)o(ts.)965 2828 y Fn(2)p +eop +%%Page: 3 3 +3 2 bop 0 195 a Fo(2)69 b(Previous)23 b(W)-6 b(ork)24 +b(on)g(P)n(arallel)d Ff(\013\014)26 b Fo(Algorithms)0 +298 y Fn(The)14 b(idea)g(b)q(ehind)g(the)g(PV-Split)g(algorithm)d(has)j +(pro)o(v)o(en)g(to)g(b)q(e)g(a)g(fundamen)o(tal)d(building)i(blo)q(c)o +(k)g(in)h(dev)o(eloping)f(high-)0 361 y(p)q(erformance)i(parallel)e +(game-tree)h(algorithms)f([16)o(].)20 b(Simply)12 b(stated,)k(the)f +(\014rst)g(mo)o(v)o(e)f(at)g(a)h(principal)e(v)n(ariation)h(no)q(de)0 +423 y(m)o(ust)19 b(b)q(e)h(completely)f(ev)n(aluated)g(b)q(efore)i(the) +f(subsequen)o(t)i(mo)o(v)o(es)c(can)i(b)q(e)g(handed)h(out)e(to)h +(other)g(pro)q(cessors)i(and)0 485 y(ev)n(aluated)13 +b(in)h(parallel.)i(P)o(arallelism)c(o)q(ccurs)j(only)e(at)g(the)h +Fe(PV)g Fn(no)q(des,)g(and)f(the)h(nature)h(of)e(the)h(algorithm)d +(ensures)16 b(that)0 548 y(an)10 b(accurate)i(searc)o(h)g(windo)o(w)e +(is)g(determined)h(b)q(efore)g(allo)q(cating)e(w)o(ork)i(to)f(the)h +(sla)o(v)o(es)g(in)f(parallel,)g(whic)o(h)g(reduces)j(searc)o(h)0 +610 y(o)o(v)o(erhead.)18 b(Although)c(it)f(is)h(easy)g(to)g(con)o(trol) +f(the)i(PV-Split)e(algorithm)e(since)k(only)e(one)h Fe(PV)f +Fn(no)q(de)h(can)g(b)q(e)h(ev)n(aluated)e(in)0 672 y(parallel)h(at)g(a) +h(giv)o(en)f(momen)o(t)e(in)i(time,)f(a)i(di\013eren)o(t)h(approac)o(h) +e(is)h(needed)h(if)e(y)o(ou)g(ha)o(v)o(e)h(more)f(pro)q(cessors)j(than) +d(mo)o(v)o(es)0 734 y(at)g(the)g(curren)o(t)i Fe(PV)d +Fn(no)q(de.)62 797 y(Newb)q(orn's)k(UIDP)m(ABS)f(algorithm)d([17)o(])i +(w)o(as)h(the)g(\014rst)g(attempt)f(to)h(async)o(hronously)g(start)g +(the)g(next)h(lev)o(el)e(of)g(an)0 859 y(iterativ)o(ely)e(deep)q(ened)k +(searc)o(h)e(instead)f(of)g(sync)o(hronizing)g(at)g(the)g(ro)q(ot)g(of) +g(the)h(game-tree.)j(The)c(mo)o(v)o(es)f(from)f(the)j(ro)q(ot)0 +921 y(p)q(osition)d(are)h(partitioned)f(among)f(the)i(pro)q(cessors,)i +(and)d(the)i(pro)q(cessors)g(searc)o(h)g(their)f(o)o(wn)g(subset)h(of)e +(the)h(mo)o(v)o(es)e(with)0 983 y(iterativ)o(e)k(deep)q(ening.)21 +b(Eac)o(h)15 b(pro)q(cessor)h(is)f(giv)o(en)f(the)h(same)f(initial)e +(windo)o(w,)i(but)h(some)e(of)h(the)i(pro)q(cessors)g(ma)o(y)d(ha)o(v)o +(e)0 1046 y(c)o(hanged)g(their)h(windo)o(ws,)e(based)i(on)f(the)g +(searc)o(h)i(results)f(of)e(their)i(mo)o(v)o(es.)i(The)e(UIDP)m(ABS)f +(algorithm)d(then)k(com)o(bines)0 1108 y(the)f(results)h(once)g(a)e +(predetermined)h(time)f(limit)e(has)j(b)q(een)h(reac)o(hed.)k(The)c +(APHID)f(algorithm)d(uses)j(the)h(basic)f(concept)0 1170 +y(of)g(ho)o(w)h(to)f(implemen)o(t)f(async)o(hronous)i(searc)o(h)h(from) +d(UIDP)m(ABS,)i(as)g(w)o(e)g(shall)f(see)i(in)f(Section)g(3.)62 +1232 y(The)f(Y)m(oung)f(Brothers)i(W)m(ait)c(\(YBW\))j(algorithm)d +(extends)k(PV-Split)d(to)h(state)i(that)e(the)h(other)g(mo)o(v)o(es)e +(\(the)i(\\y)o(oung)0 1295 y(brothers"\))19 b(can)e(b)q(e)h(searc)o +(hed)h(in)e(parallel)f(only)g(if)h(the)h(\014rst)g(mo)o(v)o(e)e(of)g(a) +h(no)q(de)h(has)g(b)q(een)g(completely)e(searc)o(hed)j(and)0 +1357 y(has)d(not)g(caused)h(the)g Fm(\013\014)h Fn(windo)o(w)d(to)h(b)q +(e)h(cut)f(o\013)g([5)o(].)24 b(This)16 b(is)g(alw)o(a)o(ys)f(true)i +(at)f Fe(PV)f Fn(no)q(des,)i(and)f(is)g(generally)f(true)i(at)0 +1419 y Fe(ALL)c Fn(no)q(des,)i(assuming)e(w)o(e)h(start)h(with)f(an)g +(in\014nite)f(searc)o(h)j(windo)o(w)d(at)h(the)h(ro)q(ot)f(p)q +(osition.)k(Th)o(us,)c(there)i(are)e(m)o(ultiple)0 1482 +y(p)q(oten)o(tial)e(parallel)g(no)q(des)i(at)f(an)o(y)f(giv)o(en)g +(time)g(when)h(searc)o(hing)h(the)f(tree.)19 b(Ho)o(w)o(ev)o(er,)13 +b(the)h(searc)o(h)g(is)f(still)f(sync)o(hronized)0 1544 +y(in)f(the)i(same)e(w)o(a)o(y)g(that)g(PV-Split)h(is)f(sync)o +(hronized.)19 b(Un)o(til)11 b(a)g(searc)o(h)i(of)e(all)g(c)o(hildren)h +(of)f(a)h(giv)o(en)f Fe(PV)g Fn(no)q(de)h(is)g(completed,)0 +1606 y(the)i(other)h(c)o(hildren)f(of)f(the)i Fe(PV)e +Fn(no)q(de's)h(paren)o(t)h(cannot)f(b)q(e)g(searc)o(hed.)62 +1668 y(Although)i(the)i Fl(synchr)n(onization)g(overhe)n(ad)f +Fn(in)f(YBW)h(is)g(a)f(lot)g(smaller)f(than)i(in)f(PV-Split,)h(w)o(ork) +o(ers)g(still)f(searc)o(h)0 1731 y(for)e(a)h(pro)q(cessor)h(that)f(has) +g(w)o(ork)g(to)f(do)h(\(according)g(to)f(the)i(YBW)e(criterion\))i(b)o +(y)e(sending)h(a)g(message)f(to)h(a)f(pro)q(cessor)0 +1793 y(at)f(random.)j(This)e(dynamic)d(load-balancing)h(metho)q(d,)g +(\\w)o(ork-stealing")g([12)o(],)g(is)h(e\013ectiv)o(e)i(in)e(balancing) +f(the)i(share)h(of)0 1855 y(w)o(ork)f(done)g(on)f(eac)o(h)i(pro)q +(cessor,)g(but)f(p)q(erio)q(dically)f(imp)q(oses)g(a)h(hea)o(vy)g(comm) +o(unicati)o(on)d(load.)62 1917 y(In)h(the)g(implemen)o(tatio)o(n)d(of)i +Fj(Zugzw)l(ang)h Fn(presen)o(ted)i(in)d(F)m(eldmann's)e(thesis)k([5)o +(],)e(a)g(distributed)i(transp)q(osition)e(table)0 1980 +y(w)o(as)g(implemen)o(ted)e(with)j(message)f(passing)g(across)h(a)f +(series)i(of)e(T)m(ransputers)i(to)e(impro)o(v)o(e)f(the)i(results)g +(of)f(the)h(algorithm.)0 2042 y(On)j(a)g(system)f(with)h(a)f(lo)o(w)g +(CPU)h(cycle)h(to)e(message)h(latency)g(ratio,)f(this)h(t)o(yp)q(e)g +(of)f(distributed)i(transp)q(osition)e(table)h(is)0 2104 +y(practical)f(and)f(is)h(useful)g(in)g(con)o(trolling)e(the)j(searc)o +(h)g(o)o(v)o(erhead.)62 2166 y(Da)o(vid's)k Fm(\013\014)r +Fk(\003)i Fn(framew)o(ork)e(uses)j(a)e(global)f(transp)q(osition)h +(table)h(to)f(con)o(trol)g(where)i(the)f(pro)q(cessors)i(should)d(b)q +(e)0 2229 y(searc)o(hing)g([4].)35 b(By)20 b(adding)f(a)h(\014eld)g(to) +g(the)g(global)f(transp)q(osition)g(table)h(to)g(indicate)g(the)g(n)o +(um)o(b)q(er)f(of)h(pro)q(cessors)0 2291 y(searc)o(hing)15 +b(that)f(no)q(de,)g(eac)o(h)g(pro)q(cessor)i(can)e(pretend)i(it)d(is)h +(searc)o(hing)h(the)f(tree)i(sequen)o(tially)m(,)c(and)i(mak)o(e)f +(decisions)h(on)0 2353 y(where)h(to)f(searc)o(h)h(based)f(on)g(the)g(n) +o(um)o(b)q(er)f(of)g(pro)q(cessors)j(searc)o(hing)e(the)h(c)o(hildren)f +(of)f(the)h(no)q(de.)19 b(When)14 b(an)o(y)f(pro)q(cessor)0 +2416 y(generates)j(a)e(v)n(alue)g(for)f(the)i(ro)q(ot)g(p)q(osition,)e +(the)i(searc)o(h)g(is)f(\014nished.)20 b(Unfortunately)m(,)13 +b(Da)o(vid's)g(metho)q(d)h(of)f(con)o(trolling)0 2478 +y(where)h(the)f(pro)q(cessors)i(should)e(b)q(e)h(searc)o(hing)f(w)o(as) +g(ine\016cien)o(t,)f(and)h(the)g(sc)o(heme)g(w)o(as)g(hamp)q(ered)g(b)o +(y)f(the)i(use)g(of)e(half)g(of)0 2540 y(the)h(T)m(ransputers)g(as)f +(transp)q(osition)g(table)g(storage)g(units,)g(limiting)d(the)j(sp)q +(eedup)i(rep)q(orted)f(to)f(6.5)f(on)h(16)f(T)m(ransputers.)0 +2602 y(Regrettably)m(,)i(no)h(w)o(ork)f(is)h(rep)q(orted)h(that)f +(addresses)i(these)g(shortcomings.)62 2665 y(W)m(eill)h([24)o(])g +(recognized)j(that)e(the)h(YBW)f(criterion)h(could)f(b)q(e)h(used)g(in) +f(conjunction)g(with)g(the)h Fm(\013\014)r Fk(\003)f +Fn(framew)o(ork.)965 2828 y(3)p eop +%%Page: 4 4 +4 3 bop 0 195 a Fn(W)m(eill)14 b(sho)o(w)o(ed)h(the)h(com)o(bination,)d +(ABD)o(AD)o(A,)h(yields)i(comparable)e(p)q(erformance)h(to)g(a)g(YBW)g +(implemen)o(tation)d(on)j(a)0 257 y(CM-5.)k(On)14 b(16)g(pro)q +(cessors,)i(ABD)o(AD)o(A)e(yielded)g(an)g(10-fold)f(sp)q(eedup)j(for)e +(a)g(c)o(hess)h(program,)d(while)i(YBW)h(generated)0 +320 y(a)f(sp)q(eedup)h(of)e(just)h(under)h(8.)62 382 +y(Unfortunately)m(,)j(neither)g(of)f(these)i(sc)o(heduling)f(metho)q +(ds)f(deal)g(adequately)h(with)f(arc)o(hitectures)j(that)d(ha)o(v)o(e)h +(high)0 444 y(CPU)e(cycle/message)f(latency)h(ratios,)f(suc)o(h)h(as)g +(a)f(net)o(w)o(ork)g(of)g(w)o(orkstations.)23 b(Using)15 +b(YBW)g(on)g(a)h(system)f(with)g(only)0 506 y(transp)q(osition)i +(tables)g(lo)q(cal)g(to)g(eac)o(h)g(pro)q(cess)i(will)d(yield)g(large)h +(searc)o(h)i(o)o(v)o(erheads,)f(since)g(there)g(is)f(no)g(guaran)o(tee) +h(of)0 569 y(where)12 b(a)f(giv)o(en)f(no)q(de)i(will)d(end)j(up)f +(when)g(w)o(e)g(use)h(the)g(c)o(haotic)f(w)o(ork-stealing)f(sc)o +(heduler)i(in)f(com)o(bination)d(with)j(iterativ)o(e)0 +631 y(deep)q(ening.)18 b(Using)12 b(ABD)o(AD)o(A)g(is)g(infeasible)g +(since)g(the)h(system)f(requires)h(a)f(shared)h(transp)q(osition)f +(table,)g(whic)o(h)g(w)o(ould)0 693 y(b)q(e)j(extremely)e(slo)o(w)g(on) +h(a)g(parallel)e(arc)o(hitecture)k(with)e(a)f(high)g(CPU)i +(cycle/message)f(latency)g(ratio.)0 831 y Fo(3)69 b(The)23 +b(APHID)f(Algorithm)0 934 y Fn(Y)m(oung)12 b(Brothers)i(W)m(ait)d(and)h +(other)h(algorithms)e(su\013er)i(from)e(three)j(serious)f(problems.)k +(First,)12 b(the)i(n)o(umerous)d(sync)o(hro-)0 996 y(nization)k(p)q +(oin)o(ts)h(result)h(in)f(idle)f(time.)24 b(This)16 b(suggests)h(that)f +(a)g(new)g(algorithm)e(m)o(ust)h(striv)o(e)h(to)g(reduce)i(or)e +(eliminate)0 1058 y(sync)o(hronization)c(altogether.)18 +b(Second,)13 b(the)g(c)o(haotic)g(nature)g(of)f(a)g(w)o(ork-stealing)f +(sc)o(heduler)j(requires)g(algorithms)c(suc)o(h)0 1121 +y(as)15 b(YBW)g(and)g(Jam)o(b)q(oree)f(to)h(use)h(a)e(shared)i(transp)q +(osition)f(table)g(to)f(ac)o(hiev)o(e)i(reasonable)f(p)q(erformance.)21 +b(Algorithms)0 1183 y(based)13 b(on)f(the)i Fm(\013\014)r +Fk(\003)e Fn(framew)o(ork)f(require)j(a)e(shared)h(transp)q(osition)g +(table)f(to)g(function.)18 b(Third,)12 b(the)h(program)e(ma)o(y)f +(initi-)0 1245 y(ate)i(parallelism)e(at)h(no)q(des)i(whic)o(h)f(are)g +(b)q(etter)i(done)e(sequen)o(tially)m(.)17 b(F)m(or)11 +b(example,)g(ha)o(ving)g(searc)o(hed)i(the)g(\014rst)g(branc)o(h)f(at)0 +1307 y(a)i(no)q(de)h(and)f(not)g(ac)o(hiev)o(ed)h(a)f(cut-o\013,)h(Y)m +(oung)e(Brothers)j(W)m(ait)d(\(in)i(its)f(simplest)f(form\))g(p)q +(ermits)h(all)f(of)h(the)h(remaining)0 1370 y(branc)o(hes)f(to)f(b)q(e) +g(searc)o(hed)i(in)d(parallel.)17 b(Ho)o(w)o(ev)o(er,)c(if)f(the)h +(second)h(branc)o(h)f(causes)h(a)f(cuto\013,)g(then)h(all)d(the)j +(parallel)d(w)o(ork)0 1432 y(done)18 b(on)f(the)h(third)g(\(and)f +(subsequen)o(t\))j(branc)o(hes)e(has)g(b)q(een)h(w)o(asted.)29 +b(This)18 b(suggests)g(parallelism)d(should)j(only)e(b)q(e)0 +1494 y(initiated)d(at)h(no)q(des)g(where)i(there)f(is)e(a)h(v)o(ery)g +(high)f(probabilit)o(y)g(that)h(all)e(branc)o(hes)k(m)o(ust)c(b)q(e)j +(considered.)62 1557 y(This)f(section)h(in)o(tro)q(duces)g(the)f(Async) +o(hronous)h(P)o(arallel)e(Hierarc)o(hical)h(Iterativ)o(e)g(Deep)q +(ening)h(\(APHID\))f(game-tree)0 1619 y(searc)o(hing)i(algorithm.)21 +b(APHID)15 b(has)h(b)q(een)h(designed)f(to)g(address)h(the)f(ab)q(o)o +(v)o(e)f(three)i(issues.)25 b(The)16 b(algorithm)d(is)i(asyn-)0 +1681 y(c)o(hronous)g(in)f(nature;)h(it)e(remo)o(v)o(es)h(all)f(sync)o +(hronization)i(p)q(oin)o(ts)f(from)e(the)j Fm(\013\014)i +Fn(searc)o(h)e(and)g(from)d(iterativ)o(e)i(deep)q(ening.)0 +1743 y(Also,)f(parallelism)e(is)j(only)f(applied)g(at)h(no)q(des)g +(that)g(ha)o(v)o(e)g(a)f(high)g(probabilit)o(y)g(of)g(needing)h +(parallelism.)h(The)f(top)g(plies)0 1806 y(of)k(a)g(game-tree)g(\(near) +g(the)h(ro)q(ot\))g(v)n(ary)f(infrequen)o(tly)g(b)q(et)o(w)o(een)h +(steps)h(of)e(iterativ)o(e)g(deep)q(ening)h([19)o(].)31 +b(This)18 b(relativ)o(e)0 1868 y(in)o(v)n(ariance)13 +b(of)g(the)i(top)f(p)q(ortion)f(of)h(the)g(game-tree)g(is)f(exploited)h +(b)o(y)g(the)g(APHID)g(algorithm.)62 1930 y(In)e(its)f(simplest)g +(form,)f(APHID)i(can)g(b)q(e)g(view)o(ed)g(as)f(a)h(master/sla)o(v)o(e) +e(program)g(although,)h(as)h(discussed)h(later,)e(it)h(can)0 +1992 y(b)q(e)k(generalized)g(to)g(a)f(hierarc)o(hical)g(pro)q(cessor)i +(tree.)24 b(F)m(or)15 b(a)g(depth)i Fm(d)e Fn(searc)o(h,)h(the)g +(master)f(is)g(resp)q(onsible)i(for)e(the)h(top)0 2055 +y Fm(d)22 2040 y Fd(0)47 2055 y Fn(ply)d(of)g(the)i(tree,)f(and)g(the)g +(remaining)e Fm(d)d Fk(\000)g Fm(d)770 2040 y Fd(0)795 +2055 y Fn(ply)k(are)h(searc)o(hed)i(in)d(parallel)f(b)o(y)i(the)g(sla)o +(v)o(es.)k(Figure)c(1)g(sho)o(ws)g(where)0 2117 y(parallel)f +(activities)g(o)q(ccur)j(in)d(APHID)h(and)g(YBW.)g(Eac)o(h)g(lo)q +(cation)f(mark)o(ed)g(with)g(an)h Fe(x)g Fn(sho)o(ws)g(where)h(the)g +(parallelism)0 2179 y(t)o(ypically)10 b(tak)o(es)h(place.)17 +b(Although)11 b(more)f(w)o(ork)h(could)g(b)q(e)g(generated)i(in)d(YBW,) +h(eac)o(h)h Fe(x)e Fn(represen)o(ts)k(a)d(p)q(oten)o(tially)f(costly)0 +2241 y(sync)o(hronization)16 b(p)q(oin)o(t.)25 b(The)17 +b(parallelism)c(is)j(more)g(constrained)h(in)f(APHID)g(and,)g(hence,)i +(is)e(more)g(lik)o(ely)f(to)h(su\013er)0 2304 y(from)c(load)h(im)o +(balances)f(than)i(other)h(dynamic)d(sc)o(heduling)i(routines)g(\(suc)o +(h)h(as)f(YBW,)g(Jam)o(b)q(oree,)f(or)h Fm(\013\014)r +Fk(\003)p Fn(\).)0 2420 y Fc(3.1)56 b(Op)r(eration)17 +b(of)i(the)f(Master)h(in)f(APHID)0 2509 y Fn(The)d(master)e(is)h(resp)q +(onsible)i(for)d(searc)o(hing)i(the)g(top)f Fm(d)892 +2494 y Fd(0)918 2509 y Fn(ply)f(of)h(the)h(tree.)20 b(It)14 +b(rep)q(eatedly)h(tra)o(v)o(erses)h(this)f(tree)g(un)o(til)e(the)0 +2571 y(correct)g(minim)o(ax)8 b(v)n(alue)j(has)g(b)q(een)i(determined.) +k(The)12 b(master)f(is)g(executing)h(a)f(normal)e Fm(\013\014)14 +b Fn(searc)o(h,)e(with)f(the)h(exception)0 2634 y(that)j(APHID)f +(enforces)i(an)f(arti\014cial)e(searc)o(h)j(horizon)e(at)h +Fm(d)973 2618 y Fd(0)999 2634 y Fn(ply)f(from)e(the)k(ro)q(ot.)k(Eac)o +(h)15 b(leaf)e(no)q(de)i(in)g(the)g(master's)f Fm(d)1939 +2618 y Fd(0)965 2828 y Fn(4)p eop +%%Page: 5 5 +5 4 bop 444 154 a + 16766447 9472573 9669918 31246336 22892052 38679674 startTexFig + 444 154 a +%%BeginDocument: draw1b.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 373 608 ] concat +%I +[ +(YBW) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 334 845 a Fn(Figure)14 b(1:)k(Lo)q(cation)13 b(of)h(P)o(arallelism)d +(in)i(T)o(ypical)g(APHID)h(and)g(YBW)g(Searc)o(h)0 978 +y(ply)e(game-tree)f(is)h(b)q(eing)g(async)o(hronously)h(searc)o(hed)g +(b)o(y)f(the)h(sla)o(v)o(es.)18 b(Before)13 b(describing)f(ho)o(w)g +(the)h(master)e(kno)o(ws)h(when)0 1040 y(the)i Fm(d)g +Fn(ply)f(searc)o(h)i(is)f(complete,)f(w)o(e)h(m)o(ust)f(\014rst)h +(describ)q(e)i(ho)o(w)e(the)g(master)f(searc)o(hes)j(the)f +Fm(d)1491 1025 y Fd(0)1516 1040 y Fn(ply)e(tree.)62 1102 +y(When)k(the)g(master)f(reac)o(hes)i(a)f(leaf)f(of)f(the)j +Fm(d)810 1087 y Fd(0)837 1102 y Fn(ply)e(tree,)i(it)f(uses)g(a)g +(reliable)f(or)g(appro)o(ximate)f(v)n(alue)h(for)g(the)h(leaf,)0 +1164 y(dep)q(ending)g(on)f(the)h(information)d(a)o(v)n(ailable.)24 +b(If)16 b(a)g Fm(d)10 b Fk(\000)i Fm(d)938 1149 y Fd(0)965 +1164 y Fn(ply)k(searc)o(h)i(result)f(is)g(a)o(v)n(ailable)d(from)g(the) +k(sla)o(v)o(e,)e(that)g(will)0 1227 y(b)q(e)g(used.)22 +b(\(In)15 b(the)h(curren)o(t)g(implemen)o(tation,)11 +b(w)o(e)16 b(do)e(not)h(use)h(deep)q(er)h(ply)e(v)n(alues,)f(ev)o(en)i +(if)e(they)h(are)h(a)o(v)n(ailable.)j(This)0 1289 y(will)12 +b(b)q(e)h(discussed)i(in)e(Section)g(4.\))18 b(Ho)o(w)o(ev)o(er,)13 +b(if)f(the)i Fm(d)7 b Fk(\000)h Fm(d)949 1274 y Fd(0)973 +1289 y Fn(ply)k(result)i(is)f(not)g(a)o(v)n(ailable,)d(then)k(the)g +(algorithm)c(uses)k(the)0 1351 y(\\b)q(est)h(a)o(v)n(ailable")d(ply)h +(result)i(that)g(had)e(b)q(een)j(returned)g(b)o(y)e(the)g(sla)o(v)o(e)g +(to)g(generate)i(a)d(guessed)j(minim)o(ax)11 b(v)n(alue)1826 +1336 y Fi(2)1844 1351 y Fn(.)19 b(An)o(y)0 1413 y(no)q(de)14 +b(where)h(w)o(e)f(are)h(forced)f(to)g(guess)h(are)f(mark)o(ed)f(as)h +Fl(unc)n(ertain)p Fn(.)62 1476 y(As)g(v)n(alues)g(get)g(bac)o(k)o(ed)g +(up)f(the)h(tree,)h(the)f(master)f(main)o(tains)e(a)j(coun)o(t)g(of)f +(ho)o(w)g(man)o(y)f(uncertain)i(no)q(des)g(ha)o(v)o(e)g(b)q(een)0 +1538 y(visited)d(in)f(a)h(pass)h(of)e(the)i(tree.)18 +b(As)11 b(long)g(as)g(the)g(score)h(at)f(an)o(y)g(of)f(the)i(lea)o(v)o +(es)f(is)g(uncertain,)h(the)f(master)g(m)o(ust)f(do)h(another)0 +1600 y(pass)j(of)g(the)g(tree.)19 b(Once)c(the)g(master)e(has)h(a)f +(reliable)h(v)n(alue)f(for)g(all)g(the)h(lea)o(v)o(es)g(in)g(its)g +Fm(d)1423 1585 y Fd(0)1448 1600 y Fn(ply)f(tree,)h(the)h(searc)o(h)g +(of)e(the)h Fm(d)0 1662 y Fn(ply)h(tree)h(is)f(complete.)22 +b(The)16 b(con)o(trolling)d(program)h(w)o(ould)h(then)h(pro)q(ceed)g +(to)f(the)h(next)g(iteration)f(b)o(y)g(incremen)o(ting)f +Fm(d)0 1725 y Fn(and)g(asking)f(the)h(master)g(to)g(searc)o(h)h(the)f +(tree)h(again.)62 1787 y(Note)e(that)f(this)g(de\014nition)f(of)h(the)g +(master)g(solv)o(es)g(one)g(of)g(the)g(problems)f(that)h(some)f +(algorithms)f(ha)o(v)o(e)i(with)g(resp)q(ect)0 1849 y(to)k +(initializing)d(parallelism)g(to)q(o)j(quic)o(kly)f(at)g(a)h(p)q(oten)o +(tial)f Fe(CUT)g Fn(no)q(de.)24 b(By)17 b(using)e(the)i(guessed)g +(scores)g(when)g(accurate)0 1912 y(information)9 b(is)j(not)f(a)o(v)n +(ailable,)f(the)i(APHID)g(algorithm)e(automatically)e(determines)k(if)f +(a)h(subsequen)o(t)i(c)o(hild)d(is)h(lik)o(ely)e(to)0 +1974 y(generate)15 b(a)f(cuto\013)g(at)g(a)f(failed)g +Fe(CUT)g Fn(no)q(de.)19 b(If)13 b(it)h(seems)g(lik)o(ely)e(that)i(a)g +(c)o(hild)f(will)f(generate)j(a)f(cuto\013)g(based)h(on)e(guessed)0 +2036 y(v)n(alues,)e(the)g(c)o(hildren)g(of)f(the)h(failed)e +Fe(CUT)h Fn(no)q(de)h(are)g(ev)n(aluated)g(sequen)o(tially)m(.)16 +b(If)10 b(it)g(seems)h(unlik)o(ely)e(that)i(the)g(no)q(de)g(will)e(b)q +(e)0 2098 y(cut)j(o\013)g(due)h(to)e(lo)o(w)g(minima)o(x)e(v)n(alues,)j +(the)g(searc)o(h)h(w)o(ould)e(con)o(tin)o(ue)h(for)g(a)f(promising)f +(no)q(de)i(at)g(that)g(branc)o(h)g(in)g(parallel.)0 2161 +y(This)j(is)g(all)f(handled)i(automatically)c(b)o(y)j(the)h +Fm(\013\014)i Fn(routine.)k(The)16 b(handling)e(of)h(a)g(h)o(yp)q +(othesized)h Fe(CUT)f Fn(no)q(de)h(is)f(stronger)0 2223 +y(than)g(the)g(equiv)n(alen)o(t)f(scenario)i(in)e(the)h(YBW)g +(algorithm,)d(whic)o(h)j(ignores)g(previous)g(score)h(information)c(a)o +(v)n(ailable)g(for)0 2285 y(some)f(branc)o(hes)i(of)f(the)h(failed)e +Fe(CUT)g Fn(no)q(de.)18 b(In)12 b(the)h(full)d(v)o(ersion)j(of)e(YBW,)h +(application-dep)q(enden)o(t)g(information)d(is)j(used)0 +2347 y(to)i(do)f(what)h(APHID)g(handles)g(automatically)d(with)j(the)g +Fm(\013\014)i Fn(searc)o(h)f(windo)o(w.)62 2410 y(The)g(sla)o(v)o(es)g +(are)g(resp)q(onsible)g(for)f(setting)h(their)g(o)o(wn)f(searc)o(h)i +(windo)o(ws,)e(based)h(on)f(information)e(from)h(the)i(master.)0 +2472 y(Sometimes,)10 b(the)j(information)d(returned)k(b)o(y)e(the)h +(sla)o(v)o(e)f(ma)o(y)f(not)h(b)q(e)h(useful)g(to)f(the)h(master.)k(F)m +(or)12 b(example,)f(a)i(sla)o(v)o(e)f(can)0 2534 y(tell)h(the)i(master) +e(that)h(the)g(score)h(of)f(a)f(giv)o(en)g(no)q(de)i(is)e(less)i(than)f +(30,)e(but)i(the)h(master)e(ma)o(y)f(w)o(an)o(t)h(to)h(kno)o(w)f(if)g +(the)i(score)p 0 2569 780 2 v 46 2596 a Fh(2)64 2607 +y Fg(Man)o(y)d(game-tree)f(searc)o(h)h(programs)e(exhibit)i(an)g +(e\013ect)g(based)g(on)h(the)g(parit)o(y)e(of)i(the)g(searc)o(h)f +(depth)f(\(o)q(dd)h(or)h(ev)o(en)f(n)o(um)o(b)q(er)g(of)g(ply\).)0 +2647 y(Scores)d(are)g(stable)g(when)h(y)o(ou)f(lo)q(ok)h(at)f(results)g +(from)g(the)h(o)q(dd)f(plies)g(only)m(,)h(or)g(ev)o(en)f(plies)g(only)m +(,)g(but)h(are)f(sometimes)f(unstable)g(when)i(y)o(ou)f(mix)0 +2686 y(the)i(t)o(w)o(o.)k(Th)o(us,)c(w)o(e)h(use)f(the)g(largest)f(ply) +h(v)n(alue)f(with)h(the)g(same)f(parit)o(y)m(,)g(instead)g(of)h(alw)o +(a)o(ys)g(using)f(the)h(largest)f(ply)h(v)n(alue)f(a)o(v)n(ailable.)965 +2828 y Fn(5)p eop +%%Page: 6 6 +6 5 bop 165 154 a + 25575945 23681433 8420065 17234821 28417720 35653713 startTexFig + 165 154 a +%%BeginDocument: draw2.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 + 488 1745 a Fn(Figure)14 b(2:)k(A)c(Snapshot)g(of)f(APHID)i(Searc)o(h)f +(In)g(Op)q(eration)0 1878 y(is)f(in)g(b)q(et)o(w)o(een)i(-5)e(and)g(5.) +18 b(In)13 b(this)h(case,)g(a)f(\\bad)g(b)q(ound")h(searc)o(h)g(is)f +(generated,)i(and)e(the)h(searc)o(h)h(windo)o(w)d(parameters,)0 +1940 y Fm(\013)j Fn(and)f Fm(\014)r Fn(,)h(m)o(ust)f(b)q(e)i(comm)o +(unicated)c(to)j(the)h(sla)o(v)o(e)e(pro)q(cessor.)23 +b(An)o(y)15 b(no)q(des)g(where)h(w)o(e)f(are)h(w)o(aiting)d(for)i +(\\bad)f(b)q(ound")0 2002 y(information)f(are)k(considered)g(as)f +(uncertain)h(b)o(y)f(the)g(master,)g(ev)o(en)h(though)f(w)o(e)g(ha)o(v) +o(e)g(a)g(score)h(b)q(ound)f(for)g(the)h Fm(d)10 b Fk(\000)h +Fm(d)1939 1987 y Fd(0)0 2064 y Fn(ply)k(searc)o(h.)25 +b(Ev)o(en)o(tually)m(,)14 b(the)j(sla)o(v)o(e)e(will)f(return)j(up)q +(dated)f(information)d(that)j(is)f(consisten)o(t)i(with)f(b)q(oth)g +(the)g(original)0 2127 y(information)11 b(and)j(the)g(searc)o(h)h +(windo)o(w)e(requested)824 2112 y Fi(3)845 2127 y Fn(.)0 +2243 y Fc(3.2)56 b(The)18 b(APHID)h(T)-5 b(able)0 2332 +y Fn(If)15 b(a)f(leaf)h(no)q(de)g(is)g(visited)g(b)o(y)g(the)g(master)g +(for)g(the)g(\014rst)h(time,)d(it)i(is)g(statically)f(allo)q(cated)h +(to)f(a)h(sla)o(v)o(e)g(pro)q(cessor.)23 b(This)0 2394 +y(information)14 b(is)j(recorded)h(in)f(a)f(table,)i(the)f +Fl(APHID)h(table)p Fn(,)f(that)g(is)g(shared)h(b)o(y)e(all)g(pro)q +(cessors.)29 b(Figure)17 b(2)g(sho)o(ws)g(an)0 2456 y(example)c(of)g +(ho)o(w)g(the)i(APHID)f(table)g(w)o(ould)f(b)q(e)h(organized)g(at)g(a)f +(giv)o(en)h(p)q(oin)o(t)f(in)h(time.)62 2519 y(The)h(APHID)f(table)g +(is)g(partitioned)g(in)o(to)g(t)o(w)o(o)f(parts:)20 b(one)14 +b(whic)o(h)g(only)g(the)g(master)g(can)g(write)h(to,)f(and)g(one)g +(whic)o(h)p 0 2553 780 2 v 46 2580 a Fh(3)64 2592 y Fg(It)f(ma)o(y)g +(happ)q(en)f(that)h(the)g(original)f(searc)o(h)g(and)h(the)h(\\bad)e(b) +q(ound")g(searc)o(h)h(are)g(inconsisten)o(t)e(with)j(one)f(another,)f +(through)g(the)h(use)0 2631 y(of)h(searc)o(h)e(extensions)f(that)i(ma)o +(y)g(or)h(ma)o(y)f(not)g(b)q(e)g(triggered)f(based)g(on)i(the)f(searc)o +(h)g(windo)o(w)g(used.)22 b(In)13 b(this)h(case,)f(the)g(searc)o(h)g +(explicitly)0 2671 y(requested)c(b)o(y)i(the)g(master)f(o)o(v)o +(errides)f(the)i(informatio)o(n)e(that)h(had)h(b)q(een)f(previously)f +(stored.)965 2828 y Fn(6)p eop +%%Page: 7 7 +7 6 bop 0 195 a Fn(only)14 b(the)h(sla)o(v)o(e)g(that)f(has)h(b)q(een)h +(assigned)f(that)g(piece)h(of)e(w)o(ork)g(can)h(write)g(to.)21 +b(An)o(y)14 b(attempt)g(to)h(write)g(in)o(to)f(the)h(table)0 +257 y(generates)k(a)e(message)g(that)g(informs)f(the)i(sla)o(v)o(e)f +(or)g(the)h(master)f(pro)q(cess)i(of)e(the)h(up)q(date)g(to)f(the)h +(information.)26 b(The)0 320 y(master)13 b(and)f(sla)o(v)o(e)h(only)f +(read)i(their)f(lo)q(cal)f(copies)i(of)e(the)i(information;)c(there)k +(are)f(no)g(explicit)g(messages)g(sen)o(t)h(b)q(et)o(w)o(een)0 +382 y(the)g(master)g(and)g(the)g(sla)o(v)o(e)g(asking)f(for)g +(information.)62 444 y(The)g(master's)f(half)f(of)h(the)h(table)f(is)h +(illustrated)f(ab)q(o)o(v)o(e)g(the)h(dotted)g(line)f(in)g(Figure)g(2.) +17 b(F)m(or)12 b(eac)o(h)h(leaf)f(that)g(has)h(b)q(een)0 +506 y(visited)h(b)o(y)f(the)h(master,)f(there)i(is)f(an)f(en)o(try)i +(in)e(the)h(APHID)g(table.)k(Information)11 b(main)o(tained)h(on)h(the) +i(lea)o(v)o(es)e(includes)0 569 y(the)g(mo)o(v)o(es)e(required)j(to)e +(generate)i(the)f(leaf)f(p)q(ositions)g(from)f(the)i(ro)q(ot)g +Fe(R)p Fn(,)f(the)h(appro)o(ximate)e(lo)q(cation)g(of)h(the)h(leaf)f +(in)g(the)0 631 y(tree)k(\(whic)o(h)e(is)g(used)h(b)o(y)g(the)f(sla)o +(v)o(e)g(to)h(prioritize)f(w)o(ork\),)g(whether)h(this)g(leaf)f(w)o(as) +g(touc)o(hed)h(on)f(the)h(last)f(pass)h(that)f(the)0 +693 y(master)f(executed,)j(and)d(the)i(n)o(um)o(b)q(er)e(of)g(the)i +(sla)o(v)o(e)e(that)h(the)h(leaf)e(w)o(as)h(allo)q(cated)f(to.)62 +756 y(In)h(our)f(example,)f(w)o(e)i(can)g(see)g(that)g(the)g(same)f(n)o +(um)o(b)q(er)f(of)h(lea)o(v)o(es)h(ha)o(v)o(e)f(b)q(een)i(allo)q(cated) +e(to)g(eac)o(h)h(sla)o(v)o(e.)k(Note)c(that)0 818 y(there)i(is)f(an)g +(additional)f(leaf,)g(8,)h(that)g(is)g(not)g(represen)o(ted)j(in)c(the) +i(master's)f Fm(d)1286 803 y Fd(0)1312 818 y Fn(ply)f(searc)o(h)j +(tree.)23 b(This)15 b(leaf)f(no)q(de)i(has)0 880 y(b)q(een)f(visited)g +(on)f(a)g(previous)h(pass)g(of)e(the)i Fm(d)723 865 y +Fd(0)749 880 y Fn(ply)f(searc)o(h)h(tree,)g(and)g(w)o(as)f(not)g(touc)o +(hed)h(on)f(the)h(latest)g(pass.)20 b(Ho)o(w)o(ev)o(er,)0 +942 y(the)14 b(information)c(that)k(the)g(sla)o(v)o(e)f(has)g +(generated)i(ma)o(y)c(b)q(e)j(needed)h(in)e(a)g(later)g(pass)h(of)f +(the)h(tree)g(and)f(is)h(not)f(deleted)h(b)o(y)0 1005 +y(the)g(master.)k(Lea)o(v)o(es)c(are)g(initially)e(allo)q(cated)h(to)h +(the)g(sla)o(v)o(es)g(in)f(a)h(round-robin)f(manner,)f(and)i(ma)o(y)e +(mo)o(v)o(e)g(due)i(to)g(load)0 1067 y(balancing)g(\(as)h(describ)q(ed) +i(in)e(Section)h(3.4\).)k(Although)15 b(there)i(ma)o(y)c(b)q(e)i(b)q +(etter)i(metho)q(ds)e(of)f(allo)q(cating)g(lea)o(v)o(es,)h(it)g(has)0 +1129 y(b)q(een)f(found)f(that)h(this)f(is)g(a)g(reasonable)h(metho)q(d) +f(of)f(initially)f(balancing)h(the)i(load)f(on)g(a)g(small)e(n)o(um)o +(b)q(er)h(of)h(pro)q(cessors.)62 1191 y(The)j(sla)o(v)o(e's)e(part)h +(of)g(the)g(table,)g(illustrated)f(b)o(y)h(the)h(area)f(b)q(elo)o(w)f +(the)i(dotted)g(line,)e(con)o(tains)h(information)d(on)i(the)0 +1254 y(result)f(of)e(searc)o(hing)i(the)g(p)q(osition)e(to)h(v)n +(arious)f(depths)j(of)d(searc)o(h.)19 b(The)12 b(\\b)q(est")h +(information)c(and)j(the)h(ply)e(to)h(whic)o(h)g(the)0 +1316 y(leaf)j(w)o(as)g(examined)f(is)i(giv)o(en)f(underneath)h(eac)o(h) +g(leaf)f(no)q(de)h(in)f(the)h(tree.)24 b(F)m(or)15 b(leaf)g(1,)g(the)h +(score)h(returned)g(is)e(-1)g(with)0 1378 y(a)f(searc)o(h)h(depth)f(of) +g(4.)j(Leaf)d(3)g(illustrates)g(that)g(the)g(score)h(information)c +(returned)16 b(b)o(y)e(the)g(sla)o(v)o(e)g(is)f(not)h(necessarily)h(an) +0 1440 y(exact)h(n)o(um)o(b)q(er.)k(The)15 b(sla)o(v)o(es)g(main)o +(tain)d(an)j(upp)q(er)h(b)q(ound)e(and)h(a)g(lo)o(w)o(er)f(b)q(ound)h +(on)g(the)g(score)h(for)f(eac)o(h)g(ply)g(of)f(searc)o(h)0 +1503 y(depth.)19 b(The)14 b(score)h(is)f(kno)o(wn)f(to)h(b)q(e)h(exact) +f(when)h(the)f(upp)q(er)h(and)f(lo)o(w)o(er)f(b)q(ounds)i(are)f(the)g +(same.)0 1618 y Fc(3.3)56 b(Op)r(eration)17 b(of)i(Sla)n(v)n(e)g(in)f +(APHID)0 1707 y Fn(A)c(sla)o(v)o(e)f(pro)q(cess)i(essen)o(tially)e +(executes)j(the)e(same)e(co)q(de)j(that)e(a)g(sequen)o(tial)h +Fm(\013\014)i Fn(searc)o(her)f(w)o(ould.)i(The)d(pro)q(cess)h(simply)0 +1770 y(rep)q(eats)g(the)g(follo)o(wing)c(three)k(steps)h(un)o(til)d +(the)h(master)g(tells)f(it)h(that)g(the)g(searc)o(h)h(is)f(complete:)51 +1862 y(1.)20 b(Lo)q(ok)13 b(in)h(its)f(p)q(ortion)h(of)f(its)h(lo)q +(cal)f(cop)o(y)h(of)f(the)i(APHID)f(table,)f(and)h(\014nd)g(the)g +(highest)h(priorit)o(y)e(no)q(de)h(to)g(searc)o(h.)51 +1956 y(2.)20 b(Execute)15 b(the)g(searc)o(h.)51 2051 +y(3.)20 b(Rep)q(ort)14 b(the)g(result)h(bac)o(k)f(to)g(the)g(master)g +(\(getting)f(an)h(up)q(date)h(to)e(its)h(APHID)g(table)g(in)g +(return\).)62 2143 y(The)19 b(w)o(ork)e(selection)i(criterion)f(is)g +(primarily)d(based)k(on)f(the)g(depth)h(to)f(whic)o(h)f(the)i(sla)o(v)o +(e)f(has)g(already)f(searc)o(hed)0 2205 y(a)h(no)q(de.)31 +b(As)18 b(w)o(e)g(can)h(see)g(for)e(Sla)o(v)o(e)h(1)g(in)f(Figure)h(2,) +h(lea)o(v)o(es)f(1,)g(4)g(and)g(7)f(ha)o(v)o(e)h(b)q(een)h(searc)o(hed) +h(to)e(4,)g(3)g(and)g(0)f(ply)m(,)0 2268 y(resp)q(ectiv)o(ely)m(.)i(Th) +o(us,)14 b(Sla)o(v)o(e)f(1)g(is)h(attempting)e(to)i(searc)o(h)h(leaf)e +(7)h(to)f(1)h(ply)m(,)e(and)i(will)e(con)o(tin)o(ue)i(to)g(searc)o(h)h +(leaf)e(7)h(up)g(to)f(3)0 2330 y(ply)g(b)o(y)h(using)g(iterativ)o(e)f +(deep)q(ening,)i(if)e(no)h(new)g(w)o(ork)f(arriv)o(es)i(from)d(the)i +(master.)62 2392 y(The)c(secondary)h(criterion)f(is)g(the)g(lo)q +(cation)f(of)g(the)h(no)q(de)h(within)d(the)j(master's)e(game-tree.)16 +b(This)10 b(secondary)h(criterion)0 2455 y(is)f(necessary)j(since)e(it) +f(is)g(usually)g(b)q(ene\014cial)h(to)f(generate)i(the)f(results)h(in)e +(a)g(left)g(to)g(righ)o(t)g(order)h(for)g(the)g(master.)16 +b(Children)0 2517 y(of)e(no)q(des)h(are)g(usually)f(considered)h(in)g +(a)f(b)q(est-to-w)o(orst)h(ordering,)f(implying)e(that)i(the)h +(left-most)e(branc)o(hes)j(at)e(a)h(no)q(de)0 2579 y(ha)o(v)o(e)g(a)g +(higher)g(probabilit)o(y)e(of)i(b)q(eing)g(useful)g(than)g(the)h(righ)o +(t-most)d(ones.)22 b(F)m(or)15 b(Sla)o(v)o(e)f(2)h(in)g(Figure)g(2,)f +(lea)o(v)o(es)i(2)e(and)h(5)0 2641 y(ha)o(v)o(e)f(b)q(oth)h(b)q(een)g +(searc)o(hed)h(to)e(5)g(ply)m(,)f(but)h(leaf)g(2)g(is)g(b)q(eing)h +(searc)o(hed)g(in)f(the)h(sla)o(v)o(e)f(to)g(6)g(ply)g(since)h(it)f(is) +g(further)h(left)f(in)0 2704 y(the)g(tree)i(than)d(leaf)h(5.)965 +2828 y(7)p eop +%%Page: 8 8 +8 7 bop 62 195 a Fn(A)14 b(no)q(de)h(that)f(has)g(a)f(priorit)o(y)h(of) +f(zero)i(\(b)q(ecause)h(it)d(is)h(no)g(longer)f(part)i(of)e(the)h +(master's)g(tree\))h(will)e(not)h(b)q(e)g(selected)0 +257 y(for)d(further)i(searc)o(h.)18 b(F)m(or)11 b(Sla)o(v)o(e)g(3,)h(w) +o(e)g(notice)g(that)f(Leaf)h(8)f(w)o(ould)g(b)q(e)h(searc)o(hed)i(if)c +(it)i(had)f(b)q(een)i(touc)o(hed)f(b)o(y)g(the)g(master.)0 +320 y(Leaf)i(8)f(is)h(ignored)g(b)o(y)f(the)i(sc)o(heduling)f +(algorithm)d(b)q(ecause)16 b(it)d(is)h(not)g(curren)o(tly)h(part)f(of)f +(the)h(master's)g(tree.)62 382 y(Before)19 b(a)f(searc)o(h)h(can)f(b)q +(e)h(executed,)h(an)e Fm(\013\014)i Fn(searc)o(h)f(windo)o(w)e(m)o(ust) +g(b)q(e)i(generated)g(b)o(y)f(the)g(sla)o(v)o(e.)30 b(The)18 +b(master)0 444 y(con)o(tin)o(ually)f(advises)j(the)f(sla)o(v)o(es)g(of) +g(the)g(leaf)s('s)f(lo)q(cation)h(within)f(the)h(master's)g(tree,)i +(and)d(the)i(h)o(yp)q(othetical)f(v)n(alue)0 506 y(of)e(the)g(ro)q(ot)h +(of)e(the)i(master's)f(tree.)29 b(Although)17 b(the)h(width)f(of)f(the) +i(searc)o(h)g(windo)o(w)f(is)g(application-dep)q(enden)o(t,)h(one)0 +569 y(normally)12 b(w)o(an)o(ts)i(to)g(cen)o(ter)i(the)f(windo)o(w)f +(around)g(this)h(h)o(yp)q(othesized)g(ro)q(ot)g(v)n(alue,)e(plus)h(or)h +(min)o(us)d(a)j(factor)f(to)g(re\015ect)0 631 y(the)g(uncertain)o(t)o +(y)h(in)e(it.)62 693 y(There)19 b(are)e(three)h(t)o(yp)q(es)g(of)f(up)q +(date)h(messages)f(that)g(a)g(sla)o(v)o(e)g(receiv)o(es)h(from)e(the)h +(master:)24 b(a)17 b(new)h(piece)g(of)e(w)o(ork)0 756 +y(has)g(b)q(een)h(added)f(to)f(the)i(sla)o(v)o(e)e(pro)q(cessor's)j +(APHID)e(table,)f(the)i(lo)q(cation)d(of)h(a)h(leaf)f(no)q(de)h(within) +f(the)i(master's)e(tree)0 818 y(has)g(c)o(hanged)h(\(c)o(hanging)e(the) +i(secondary)g(w)o(ork)e(sc)o(heduling)i(criterion\),)f(and)g(a)g +(noti\014cation)f(of)g(a)h(\\bad)g(b)q(ound")f(on)h(a)0 +880 y(no)q(de.)21 b(The)15 b(bad)g(b)q(ound)g(message)f(alerts)i(the)f +(sla)o(v)o(e)f(that)h(a)g(p)q(osition's)f(searc)o(h)i(information)c(is) +i(not)h(su\016cien)o(t)g(to)g(sa)o(v)o(e)0 942 y(the)g(no)q(de)h(from)d +(b)q(eing)h(uncertain.)22 b(In)15 b(this)g(case,)g(the)h(sla)o(v)o(e)e +(m)o(ust)g(re-searc)o(h)i(the)g(no)q(de)f(with)f(the)i +Fm(\013\014)h Fn(searc)o(h)f(windo)o(w)0 1005 y(sen)o(t)f(b)o(y)e(the)i +(master)e(to)h(the)g(ply)g(requested.)62 1067 y(As)19 +b(a)g(p)q(erformance)f(impro)o(v)o(emen)o(t,)f(w)o(e)i(w)o(an)o(t)f(to) +h(force)g(the)g(sla)o(v)o(e)f(to)h(alw)o(a)o(ys)f(w)o(ork)g(on)g(no)q +(des)i(for)e(the)h(curren)o(t)0 1129 y(searc)o(h)c(depth)f(of)f(the)h +(master.)j(When)d(all)e(the)i(sla)o(v)o(e's)f(w)o(ork)h(has)f(b)q(een)i +(searc)o(hed)g(to)e(the)h(required)h(depth,)f(rather)g(than)0 +1191 y(b)q(ecoming)g(idle,)g(it)g(starts)i(re-searc)o(hing)g(its)e(w)o +(ork)h(an)f(additional)f(ply)i(deep)q(er,)h(in)e(an)o(ticipation)g(of)g +(the)h(next)g(iteration)0 1254 y(\(depth)g Fm(d)9 b Fn(+)h(1\).)19 +b(When)14 b(this)g(is)g(happ)q(ening,)g(the)h(sla)o(v)o(e)f(routinely)g +(c)o(hec)o(ks)h(the)g(comm)o(unicatio)o(n)d(c)o(hannel)i(for)g +(messages)0 1316 y(from)c(the)i(master.)17 b(If)11 b(the)h(sla)o(v)o(e) +f(receiv)o(es)i(a)e(new)h(piece)h(of)d(w)o(ork)i(to)f(do)g(at)g +Fm(d)t Fk(\000)t Fm(d)1269 1301 y Fd(0)1293 1316 y Fn(ply)g(or)g(less,) +h(the)g(searc)o(h)h(is)e(immediately)0 1378 y(ab)q(orted)j(and)g(con)o +(trol)g(is)g(returned)h(to)f(the)g(sla)o(v)o(e's)g(sc)o(heduling)g +(algorithm.)0 1494 y Fc(3.4)56 b(Load)18 b(Balancing)0 +1583 y Fn(Although)c(the)g(master)g(attemps)g(to)g(giv)o(e)g(an)g +(equal)f(amoun)o(t)g(of)g(w)o(ork)h(to)g(eac)o(h)h(sla)o(v)o(e)f(in)g +(APHID,)g(neither)h(the)f(master)0 1646 y(nor)h(the)h(sla)o(v)o(e)e +(can)i(predict)g(the)f(amoun)o(t)f(of)g(e\013ort)i(required)g(to)f +(complete)f(a)h Fm(d)9 b Fk(\000)i Fm(d)1377 1631 y Fd(0)1403 +1646 y Fn(ply)j(searc)o(h)j(for)d(a)h(giv)o(en)g(piece)h(of)0 +1708 y(w)o(ork.)i(In)13 b(games)f(suc)o(h)i(as)f(c)o(hess,)i(there)f +(are)g(no)f(completely)f(reliable)h(indicators)g(of)g(the)h +(\\e\013ort")f(required)i(for)d(a)h(giv)o(en)0 1770 y(searc)o(h.)19 +b(Th)o(us,)14 b(load)f(im)o(balances)f(can)i(o)q(ccur)h(based)g(on)e +(the)i(allo)q(cation)d(of)h(w)o(ork)h(to)g(sla)o(v)o(es.)62 +1833 y(The)j(master)g(kno)o(ws)f(all)g(of)g(the)i(information)13 +b(ab)q(out)k(ho)o(w)g(man)o(y)d(uncertain)k(no)q(des)g(it)e(is)h(w)o +(aiting)e(for)h(from)f(eac)o(h)0 1895 y(sla)o(v)o(e.)24 +b(Th)o(us,)16 b(the)g(master)g(has)g(information)d(on)i(when)i(to)e(mo) +o(v)o(e)g(lea)o(v)o(es)h(from)e(the)i Fm(d)1405 1880 +y Fd(0)1432 1895 y Fn(ply)g(tree)h(from)d(an)i Fl(overworke)n(d)0 +1957 y(slave)f Fn(\(a)g(sla)o(v)o(e)g(with)g(a)g(large)h(n)o(um)o(b)q +(er)e(of)h(uncertain)h(no)q(des\))g(to)f(an)g Fl(underworke)n(d)i +(slave)e Fn(\(a)g(sla)o(v)o(e)g(with)g(no)g(uncertain)0 +2019 y(no)q(des\).)24 b(This)15 b(yields)g(a)g(tradeo\013)h(b)q(et)o(w) +o(een)h(faster)f(con)o(v)o(ergence)h(for)e(a)h(giv)o(en)f(ply)f(searc)o +(h)j(of)e(the)h(tree)h(and)e(additional)0 2082 y(searc)o(h)g(o)o(v)o +(erhead,)f(as)g(discussed)h(in)f(Section)g(4.)0 2198 +y Fc(3.5)56 b(Implem)o(en)n(tation)0 2287 y Fn(The)17 +b(APHID)f(algorithm)e(has)j(b)q(een)g(written)g(as)g(an)f +(application-indep)q(enden)o(t)g(library)g(of)f(C)i(routines.)26 +b(The)17 b(library)0 2349 y(w)o(as)12 b(written)g(to)f(pro)o(vide)h +(minim)o(al)c(in)o(terv)o(en)o(tion)j(in)o(to)g(a)h(w)o(orking)e(v)o +(ersion)i(of)f(sequen)o(tial)h Fm(\013\014)i Fn(\(or)e(its)f(common)e +(v)n(arian)o(ts:)0 2411 y(NegaScout[18,)k(20)o(])g(and)g(Principal)g(V) +m(ariation)f(Searc)o(h)i(\(PVS\))g([16)o(]\).)k(Since)c(the)g(library)e +(is)i(application-indep)q(enden)o(t,)0 2474 y(a)c(p)q(oten)o(tial)g +(user)i(m)o(ust)e(write)g(a)h(few)f(application-dep)q(enden)o(t)h +(routines)g(\(suc)o(h)h(as)f(mo)o(v)o(e)d(format,)h(ho)o(w)i(to)f(mak)o +(e/unmak)o(e)0 2536 y(mo)o(v)o(es,)j(p)q(osition)i(format,)e(setting)i +(a)g(windo)o(w)f(for)g(a)h(sla)o(v)o(e's)f(searc)o(h,)i +Fl(etc)p Fn(.\).)21 b(APHID's)15 b(message)g(passing)g(w)o(as)f +(written)0 2598 y(using)g(PVM)g([23)o(])f(to)h(allo)o(w)e(for)i(the)g +(maxim)o(um)9 b(p)q(ortabilit)o(y)k(among)e(a)o(v)n(ailable)h(hardw)o +(are.)62 2660 y(T)m(o)h(parallelize)f(a)i(sequen)o(tial)f +Fm(\013\014)j Fn(program,)11 b(the)j(user)g(mo)q(di\014es)f(his)g(or)g +(her)h(searc)o(h)h(routine)f(as)f(sho)o(wn)g(in)g(Figure)h(3.)965 +2828 y(8)p eop +%%Page: 9 9 +9 8 bop 0 195 a Fn(The)15 b(APHID)f(c)o(hanges)h(are)f(mark)o(ed)f(b)o +(y)h(shading,)f(and)h(easily)g(\014t)g(in)o(to)g(standard)g +Fm(\013\014)j Fn(framew)o(orks.)g(This)d(one)h(piece)g(of)0 +257 y(co)q(de)g(functions)f(as)g(the)g(searc)o(h)h(algorithm)c(for)j(b) +q(oth)g(the)g(master)g(and)g(the)g(sla)o(v)o(e)g(pro)q(cesses.)62 +320 y(There)i(are)f(a)g(few)f(additional)f(calls)i(that)f(ha)o(v)o(e)h +(to)f(b)q(e)i(added)f(to)f(the)i(iterativ)o(e)e(deep)q(ening)i(routine) +f(that)g(calls)f Fm(\013\014)r Fn(,)0 382 y(outlined)f(in)h(Figure)g +(4.)62 444 y(Initially)m(,)c(it)i(w)o(as)g(an)o(ticipated)g(that)h(all) +e(users)j(w)o(ould)d(w)o(an)o(t)h(to)h(searc)o(h)g(in)f(parallel)f +(from)g(the)i(ro)q(ot)f(of)g(the)h(game)e(tree.)0 506 +y(Ho)o(w)o(ev)o(er,)i(there)i(are)e(some)f(programs)g(that)h(wish)g(to) +g(handle)g(the)h(ro)q(ot)f(of)f(the)i(game)d(tree)k(in)d(a)h +(di\013eren)o(t)h(w)o(a)o(y)e(than)h(the)0 569 y(other)j(lea)o(v)o(es)f +(of)f(the)i(searc)o(h)g(tree)g(\(b)o(y)f(adding)f(calls)h(to)g(the)g +(time-con)o(trol)f(mec)o(hanism,)e(and)j(sp)q(ecial)g(handling)f(of)g +(the)0 631 y Fm(\013\014)19 b Fn(searc)o(h)f(windo)o(w\).)25 +b(APHID)17 b(has)g(b)q(een)h(generalized)f(to)g(in)o(tegrate)g(with)f +(this)h(st)o(yle)g(of)f(searc)o(hing)h(the)g(game)e(tree;)0 +693 y(Figure)e(5)f(illustrates)g(the)h(c)o(hanges)g(necessary)m(.)20 +b(The)12 b(only)g(signi\014can)o(t)g(c)o(hange)h(from)d(Figure)j(4)f +(is)g(the)h(addition)f(of)g(a)g(call)0 756 y(to)i Fe(aphid)p +164 756 14 2 v 14 w(intnode)p 332 756 V 15 w(premove)p +Fn(.)62 818 y(There)h(are)g(t)o(w)o(o)e(calls)g(that)h(are)h(inserted)g +(in)o(to)e(the)i(main)c(program,)h(whic)o(h)i(are)g(illustrated)g(in)f +(Figure)h(6.)62 880 y(A)k(brief)g(explanation)f(of)g(the)i(parameters)f +(and)g(function)f(of)h(eac)o(h)g(of)g(these)h Fe(aphid)p +1461 880 V 33 w Fn(routines)f(can)g(b)q(e)h(found)e(in)0 +942 y(App)q(endix)d(A.)0 1080 y Fo(4)69 b(Exp)r(erimen)n(ts)0 +1183 y Fn(The)12 b(APHID)f(game-indep)q(enden)o(t)h(library)e(w)o(as)i +(inserted)g(in)o(to)f Fj(TheTurk)h Fn(c)o(hess)h(program,)d(written)i +(b)o(y)f(Yngvi)g(Bjorns-)0 1245 y(son)16 b(and)g(Andreas)h(Junghanns)g +(at)f(the)h(Univ)o(ersit)o(y)f(of)f(Alb)q(erta.)25 b(With)16 +b(less)h(than)f(one)g(da)o(y)g(of)f(programming)e(e\013ort,)0 +1307 y(w)o(e)j(had)g(a)g(running)f(parallel)g(program)g(based)h(on)g +(the)g(APHID)h(algorithm)c(that)j(could)g(run)g(on)g(a)f(series)j(of)d +(w)o(orksta-)0 1370 y(tions.)i(Along)11 b(with)h(the)h(additional)d +(calls)h(added)i(to)e(PVS,)h(the)h(iterativ)o(e)f(deep)q(ening)h +(routine,)f(and)g(the)g(main)e(program,)0 1432 y(roughly)15 +b(100)g(lines)h(of)f(co)q(de)i(w)o(ere)g(de\014ned)g(for)e(the)i +Fe(aphid)p 970 1432 V 14 w(stub)p 1072 1432 V 31 w Fn(routines,)g +(whose)f(purp)q(ose)h(is)f(brie\015y)g(describ)q(ed)h(in)0 +1494 y(App)q(endix)d(A.)62 1557 y(T)m(o)j(test)h(the)g(algorithm,)d +Fj(TheTurk)j Fn(w)o(as)g(programmed)c(to)k(searc)o(h)g(the)g(24)f +(Bratk)o(o-Kop)q(ec)h(p)q(ositions)f([11)o(])g(to)g(a)0 +1619 y(depth)e(of)e Fm(d)e Fn(=)h(8)h(ply)m(,)g(with)g(the)i(master)e +(con)o(trolling)g(the)h(top)g Fm(d)1031 1604 y Fd(0)1054 +1619 y Fn(=)e(3)h(ply)h(of)f(the)h(tree.)62 1681 y(P)o(arallel)e(tests) +i(w)o(ere)f(run)g(on)g(4,)f(8,)g(12)g(and)h(16)f(w)o(orkstations)g(on)h +(a)f(net)o(w)o(ork)h(of)f(SUN)h(4s.)18 b(One)13 b(w)o(orkstation)f(in)g +(eac)o(h)0 1743 y(exp)q(erimen)o(t)i(w)o(as)g(completely)f(o)q(ccupied) +i(b)o(y)e(the)i Fe(master)e Fn(pro)q(cess,)i(while)f(the)g(other)h(w)o +(orkstations)f(eac)o(h)g(ran)g(a)g Fe(slave)0 1806 y +Fn(pro)q(cess.)20 b(On)14 b(the)h(a)o(v)n(ailable)c(hardw)o(are,)j +Fj(TheTurk)h Fn(visits)e(appro)o(ximately)f(2500)g(no)q(des)j(p)q(er)g +(second.)62 1868 y(P)o(arallel)c(and)h(sequen)o(tial)g(algorithms)e +(are)i(notoriously)g(p)q(o)q(or)g(when)g(it)g(comes)g(to)g(exact)g(con) +o(v)o(ergence)i(when)f(the)f(full)0 1930 y(v)o(ersion)i(of)f(the)i +(program)d(is)i(used)h([14)o(].)i(F)m(or)d(example,)e(di\013eren)o(t)j +(searc)o(h)g(windo)o(ws)e(cause)i(di\013eren)o(t)g(searc)o(h)g +(extensions)0 1992 y(to)h(b)q(e)g(turned)h(on,)f(causing)g(di\013eren)o +(t)h(alpha-b)q(eta)e(results.)25 b(Th)o(us,)17 b(all)d(searc)o(h)k +(extensions)f(and)e(n)o(ull)g(mo)o(v)o(e)f(searc)o(hing)0 +2055 y(w)o(ere)20 b(turned)g(o\013)f(for)g(this)g(exp)q(erimen)o(t.)34 +b(Since)20 b(some)e(w)o(ork)h(could)g(b)q(e)h(ev)n(aluated)f(to)g +Fm(d)12 b Fn(+)h(1-ply)18 b(b)q(efore)i(the)g Fm(d)p +Fn(-ply)0 2117 y(result)d(is)f(\014nished,)g(w)o(e)h(also)e(forced)i +(the)f(transp)q(osition)g(table)g(to)g(rep)q(ort)h(only)e(transp)q +(osition)h(table)g(scores)i(that)e(had)0 2179 y(b)q(een)g(searc)o(hed)h +(to)d(the)i(exact)f(depth)h(\(as)f(in)g(Figure)g(3\).)21 +b(Quiescence)c(searc)o(h)f(w)o(as)f(left)g(in)f Fj(TheTurk)i +Fn(to)e(prev)o(en)o(t)i(the)0 2241 y(ev)n(aluations)d(from)f(b)q(eing)i +(signi\014can)o(tly)f(unstable.)62 2304 y(Although)g(this)f(list)h(of)f +(c)o(hanges)i(is)e(incomplete)g(to)h(guaran)o(tee)g(the)h(same)e(minim) +o(ax)d(v)n(alue)k(is)f(returned)j(b)o(y)d(b)q(oth)h(the)0 +2366 y(sequen)o(tial)g(and)g(parallel)f(programs,)g(this)h(list)g +(constitutes)i(the)f(c)o(hanges)g(made)e(to)h Fj(TheTurk)h +Fn(without)f(doing)f(serious)0 2428 y(damage)f(to)h(the)h(p)q +(erformance)g(of)e(the)j(program.)h(In)e(the)g(v)o(ersion)g(tested,)h +(o)o(v)o(er)e(90\045)g(of)f(the)j(parallel)d(searc)o(hes)j(returned)0 +2491 y(the)g(same)e(minim)o(ax)e(v)n(alue)j(as)g(the)h(sequen)o(tial)f +(searc)o(h,)h(and)f(the)h(principal)e(v)n(ariation)g(w)o(as)h(correct)i +(for)e(all)e(but)j(1)f(of)f(the)0 2553 y(96)h(searc)o(hes)j(executed)g +(in)d(parallel.)62 2615 y(Figure)e(7)f(illustrates)h(the)g(a)o(v)o +(erage)g(sp)q(eedups)i(for)d(5)g(to)h(8)f(ply)g(searc)o(hes,)j(whic)o +(h)e(are)g(the)g(searc)o(hes)i(that)d(w)o(ere)i(executed)0 +2677 y(in)h(parallel.)k(The)e(graph)e(sho)o(ws)i(that)f(as)f(the)i +(depth)g(of)e(the)h(searc)o(h)h(increases,)g(so)f(do)q(es)h(the)g(sp)q +(eedup.)965 2828 y(9)p eop +%%Page: 10 10 +10 9 bop 482 329 a + 15582380 33154007 1184071 3025960 24010342 51178209 startTexFig + 482 329 a +%%BeginDocument: code4.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 +/Courier 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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 0.99763 -0 -0 3.92857 18.0284 -414.643 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 0.99763 -0 -0 3.07143 18.0284 -128.357 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 477 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 -57 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 -27 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 177 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 219 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 81 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 957 ] concat +%I +[ +(int PVS\(p, alpha, beta, depth, plytogo\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 945 ] concat +%I +[ +(position p;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 933 ] concat +%I +[ +(int alpha, beta;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 921 ] concat +%I +[ +(int depth, plytogo;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 909 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 873 ] concat +%I +[ +(int h_length; /* ply position previously searched to */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 897 ] concat +%I +[ +(char *p_hash; /* pointer to hash value */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 885 ] concat +%I +[ +(char *p_key; /* pointer to hash table "lock" */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 861 ] concat +%I +[ +(int h_score; /* score for h_length ply */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 849 ] concat +%I +[ +(int h_flag; /* VALID, LBOUND or UBOUND */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 837 ] concat +%I +[ +(move *h_move; /* recommended move for h_length ply */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 825 ] concat +%I +[ +(int width; /* number of moves in move list */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 813 ] concat +%I +[ +(int i; /* move counter */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 801 ] concat +%I +[ +(int value; /* score of child PVS call */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 783 ] concat +%I +[ +(/* Generate hash value and key for this position */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 771 ] concat +%I +[ +(generate_hash\(p, p_hash, p_key\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 759 ] concat +%I +[ +(/* Fetch information from local transposition table */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 747 ] concat +%I +[ +(retrieve\(p_hash, p_kley, h_length, h_score, h_flag, h_move\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 729 ] concat +%I +[ +(/* If we have searched position deep enough, use score info */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 705 ] concat +%I +[ +(if \(flag == VALID\) { return\(h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 669 ] concat +%I +[ +(if \(alpha >= beta\) { return\(h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 657 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 639 ] concat +%I +[ +(/* Evaluate position if at bottom of the tree */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 591 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 573 ] concat +%I +[ +(/* Generate move list, evaluate position if no moves */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 549 ] concat +%I +[ +(if \(width == 0\) { return\(evaluate\(p\)\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 501 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 681 ] concat +%I +[ +(if \(flag == UBOUND\) { beta = min\(beta,h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 693 ] concat +%I +[ +(if \(flag == LBOUND\) { alpha = max\(alpha,h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 483 ] concat +%I +[ +(score = -INFINITY;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 471 ] concat +%I +[ +(lower = alpha; upper = beta;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 441 ] concat +%I +[ +(/* Loop through moves in move list */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 429 ] concat +%I +[ +(for\(i=1; \(i <= width && score <= beta\); i++ \) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 405 ] concat +%I +[ +(make_move\(p, move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 387 ] concat +%I +[ +(value = -PVS\(p, -upper, -lower, depth+1, plytogo-1\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 375 ] concat +%I +[ +(if \(value > score && i > 1\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 363 ] concat +%I +[ +(value = -PVS\(p, -beta, -value, depth+1, plytogo-1\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 351 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 333 ] concat +%I +[ +(unmake_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 309 ] concat +%I +[ +(if \(value > score\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 297 ] concat +%I +[ +(score = value;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 285 ] concat +%I +[ +(move_opt = move[i];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 273 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 255 ] concat +%I +[ +(/* Set bounds for next search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 243 ] concat +%I +[ +(lower = max\(alpha, score\); upper = lower+1;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 231 ] concat +%I +[ +(} /* for all moves */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 195 ] concat +%I +[ +(/* Write information into local trans. table */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 171 ] concat +%I +[ +(h_flag = VALID;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 561 ] concat +%I +[ +(width = generate\(p, h_move\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 159 ] concat +%I +[ +(if \(score <= alpha\) { h_flag = UBOUND; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 147 ] concat +%I +[ +(if \(score >= beta\) { h_flag = LBOUND; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 135 ] concat +%I +[ +(if \(h_length <= plytogo\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 123 ] concat +%I +[ +(store\(p_hash, p_key, plytogo, score, h_flag, move_opt\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 111 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 99 ] concat +%I +[ +(return\(score\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 48 87 ] concat +%I +[ +(} /* function PVS */) +] 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 +[ 2 -0 -0 2 -190 -34 ] concat +%I +107 47 323 503 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 627 ] concat +%I +[ +(if \(plytogo <= 0\) { return\(evaluate\(p\)\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 717 ] concat +%I +[ +(if \(aphid_master\(\) == FALSE && h_length == plytogo\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 615 ] concat +%I +[ +(if \(aphid_horizon\(depth\)\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 537 ] concat +%I +[ +(if \(aphid_checkalarm\(\) != FALSE\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 459 ] concat +%I +[ +(aphid_intnode_start\(depth, p_hash, p_key\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 417 ] concat +%I +[ +(aphid_intnode_move\(depth, &\(move[i]\)\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 321 ] concat +%I +[ +(aphid_intnode_update\(depth, value\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 213 ] concat +%I +[ +(if \(score >= beta\) { aphid_intnode_fixbound\(depth\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 183 ] concat +%I +[ +(aphid_intnode_end\(depth, &score\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 525 ] concat +%I +[ +(terminate_search = TRUE;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 603 ] concat +%I +[ +(return\(aphid_eval_leaf\(alpha,beta,depth,p_hash,p_key\)\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 513 ] concat +%I +[ +(return\(0\); /* Should exit PVS quickly when alarm on */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 390 2520 a Fn(Figure)14 b(3:)j(Ho)o(w)d(APHID)g(Mo)q(di\014es)g(A)g(T) +o(ypical)f(PVS)h(Implemen)o(tation)954 2828 y(10)p eop +%%Page: 11 11 +11 10 bop 459 188 a + 16292818 4736286 1184071 44665815 23615651 51178209 startTexFig + 459 188 a +%%BeginDocument: code5.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 +/Courier 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 8 8 + + +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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +155 342 563 354 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 951 ] concat +%I +[ +(for\(plytogo=1;\(plytogo <= MAXDEPTH && done == FALSE\); plytogo++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 939 ] concat +%I +[ +(/* Set up search */) +] 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 +[ 1.00951 -0 -0 1.12603 -126.417 566.628 ] concat +%I +149 252 569 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 963 ] concat +%I +[ +(aphid_initsearch\(MAXDEPTH\);) +] Text +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 596 ] concat +%I +155 294 563 318 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 596 ] concat +%I +155 258 563 270 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 887 ] concat +%I +[ +(/* Print out results of search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 875 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 911 ] concat +%I +[ +(/* Call to aphid_rootsearch replaces call to PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 899 ] concat +%I +[ +(score = aphid_rootsearch\(0,plytogo,guess-eps,guess+eps\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 863 ] concat +%I +[ +(aphid_endsearch\(\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 61 925 ] concat +%I +[ +(/* Search at root around value \(guess\) with small error \(eps\) */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 385 579 a Fn(Figure)14 b(4:)k(Ho)o(w)c(APHID)g(Mo)q(di\014es)g(the)g +(Iterativ)o(e)h(Deep)q(ening)f(Routine)465 689 y + 16117604 19418804 1184071 24405032 23549870 51178209 startTexFig + 465 +689 a +%%BeginDocument: code6.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 +/Courier 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 8 8 + + +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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 173 563 197 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 209 563 221 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 323 563 335 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +155 342 563 354 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 951 ] concat +%I +[ +(for\(plytogo=1;\(plytogo <= MAXDEPTH && done == FALSE\); plytogo++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 903 ] concat +%I +[ +(}) +] 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 +[ 1.00711 -0 -0 4.68604 -126.059 -714.975 ] concat +%I +149 252 569 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 915 ] concat +%I +[ +(/* Print out results of search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 927 ] concat +%I +[ +(score = ROOT_PVS\(root_pos,guess-eps,guess+eps,0,plytogo\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 867 ] concat +%I +[ +(ROOT_PVS\(root_pos, alpha, beta, depth, plytogo\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 855 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 843 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 831 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 819 ] concat +%I +[ +(/* Search PV Move */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 807 ] concat +%I +[ +(lower = alpha;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 789 ] concat +%I +[ +(search_best_move:) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 765 ] concat +%I +[ +(make_move\(p,bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 729 ] concat +%I +[ +(unmake_move\(p,bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 963 ] concat +%I +[ +(aphid_initsearch\(MAXDEPTH\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 891 ] concat +%I +[ +(aphid_endsearch\(\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 777 ] concat +%I +[ +(aphid_intnode_premove\(depth, &bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 753 ] concat +%I +[ +(/* aphid_rootsearch replaces typical call to PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 939 ] concat +%I +[ +(/* Set up search with small window \(eps\) around guess */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 741 ] concat +%I +[ +(oldscore = -aphid_rootsearch\(depth+1,plytogo-1,-beta,-lower\);) +] Text +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 437 ] concat +%I +155 159 563 183 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 437 ] concat +%I +155 207 563 219 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 641 ] concat +%I +[ +(make_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 629 ] concat +%I +[ +(/* Check if move beats PV move by more than delta */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 581 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 539 ] concat +%I +[ +(bestmove = move[i];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 527 ] concat +%I +[ +(lower = newscore;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 503 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 491 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 479 ] concat +%I +[ +(} /* function ROOT_PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 653 ] concat +%I +[ +(aphid_intnode_premove\(depth,&move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 593 ] concat +%I +[ +(unmake_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 210 605 ] concat +%I +[ +(-oldscore-delta-1, -oldscore-delta\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 617 ] concat +%I +[ +(newscore = -aphid_rootsearch\(depth+1, plytogo-1,) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 515 ] concat +%I +[ +(if \(newscore < beta\) { goto search_best_move; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 551 ] concat +%I +[ +(/* set new best move and score and research \(if necc.\) */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 665 ] concat +%I +[ +(for\(i=2;\(i<=width && newscore <= oldscore+delta; i++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 677 ] concat +%I +[ +(newscore = oldscore;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 563 ] concat +%I +[ +(if \(newscore > oldscore+delta\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 711 ] concat +%I +[ +(/* Search other moves at root, and only switch if move beats */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 59 698 ] concat +%I +[ +(/* PV score \(oldscore\) by a small margin \(delta\) */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 222 2010 a Fn(Figure)g(5:)k(Ho)o(w)c(APHID)g(Mo)q(di\014es)g(Sp)q +(ecial)g(Handling)e(Of)i(The)h(Ro)q(ot)e(Of)h(The)g(Game)e(T)m(ree)489 +2120 y + 15345567 7104430 1447198 41639854 22102671 51178209 startTexFig + 489 2120 a +%%BeginDocument: code7.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 +/Courier 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 8 8 + + +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 Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +161 216 539 228 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +161 276 539 288 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 963 ] concat +%I +[ +(int main\(argc, argv\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 951 ] concat +%I +[ +(int argc;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 939 ] concat +%I +[ +(char *argv[];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 927 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 915 ] concat +%I +[ +(/* Initialization required by any process in system */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 867 ] concat +%I +[ +(/* Initialization required only by the master process */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 825 ] concat +%I +[ +(exit\(0\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 813 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 855 ] concat +%I +[ +(/* Play game */) +] 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.997449 -0 -0 0.962766 -124.605 625.404 ] concat +%I +155 174 545 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 885 ] concat +%I +[ +(/* Only the absolute master process gets here */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 897 ] concat +%I +[ +(aphid_startup\(argv\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 837 ] concat +%I +[ +(aphid_exit\(\);) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 503 2661 a Fn(Figure)i(6:)k(Ho)o(w)13 b(APHID)h(Mo)q(di\014es)h(The)f +(Main)f(Program)954 2828 y(11)p eop +%%Page: 12 12 +12 11 bop 336 154 a + 20176580 14208860 3289088 3289088 50651955 36443095 startTexFig + 336 154 a +%%BeginDocument: graph5.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(1) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(5 ply) Rshow +6570 4766 M +252 0 V +2066 790 M +3292 980 L +1225 41 V +1226 75 V +6654 4766 D +2066 790 D +3292 980 D +4517 1021 D +5743 1096 D +LT1 +6486 4626 M +(6 ply) Rshow +6570 4626 M +252 0 V +2066 1067 M +1226 467 V +1225 266 V +1226 300 V +6654 4626 A +2066 1067 A +3292 1534 A +4517 1800 A +5743 2100 A +LT2 +6486 4486 M +(7 ply) Rshow +6570 4486 M +252 0 V +2066 1055 M +1226 664 V +1225 491 V +1226 548 V +6654 4486 B +2066 1055 B +3292 1719 B +4517 2210 B +5743 2758 B +LT3 +6486 4346 M +(8 ply) Rshow +6570 4346 M +252 0 V +2066 1176 M +3292 2181 L +1225 877 V +1226 768 V +6654 4346 C +2066 1176 C +3292 2181 C +4517 3058 C +5743 3826 C +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 394 1145 a Fn(Figure)14 b(7:)j(Sp)q(eedups)f(at)e(V)m(arious)f(Depths) +i(for)e(APHID)h(in)g Fj(TheTurk)62 1278 y Fn(The)f(24)f(p)q(ositions)g +(ha)o(v)o(e)h(b)q(een)g(sorted)h(b)o(y)e(the)h(size)g(of)f(the)h +(sequen)o(tial)g(searc)o(h)g(tree,)h(and)e(divided)g(in)o(to)g(three)i +(groups)0 1340 y(of)f(equal)h(size.)19 b(Figure)14 b(8)f(illustrates)h +(the)h(a)o(v)o(erage)f(sp)q(eedup)h(at)f(8)f(ply)h(for)f(eac)o(h)i +(third)f(of)f(the)h(complete)g(test)h(set.)62 1402 y(The)f(o)o(v)o +(erheads)g(in)f(the)g(algorithm)e(are)j(illustrated)f(in)f(Figure)i(9)f +(as)g(p)q(ercen)o(tages)i(of)e(the)h(sequen)o(tial)f(time)f(required)0 +1464 y(to)18 b(searc)o(h)i(all)d(24)h(p)q(ositions.)31 +b(The)19 b Fl(total)g(overhe)n(ad)f Fn(represen)o(ts)j(the)e +(additional)e(computing)g(time)g(required)i(b)o(y)f(the)0 +1527 y(parallel)13 b(algorithm)e(to)j(ac)o(hiev)o(e)g(the)g(same)f +(result:)486 1638 y(total)c(o)o(v)o(erhead)j(=)801 1610 +y(\(parallel)d(time)17 b Fk(\003)h Fn(n\))9 b Fk(\000)h +Fn(sequen)o(tial)f(time)p 801 1629 658 2 v 995 1667 a(sequen)o(tial)g +(time)0 1749 y(where)15 b Fm(n)f Fn(is)g(the)g(n)o(um)o(b)q(er)f(of)g +(pro)q(cessors.)21 b(The)14 b(total)f(o)o(v)o(erhead)h(is)g(also)f(a)h +(sum)f(of)g(the)i(four)e(o)o(v)o(erheads:)78 1853 y(total)8 +b(o)o(v)o(erhead)k(=)g(master)d(o)o(v)o(erhead)g(+)h(parallelization)d +(o)o(v)o(erhead)j(+)f(sp)q(eculativ)o(e)h(searc)o(h)h(+)e(searc)o(h)i +(o)o(v)o(erhead)p Fm(:)62 1957 y Fn(The)17 b Fl(master)f(overhe)n(ad)h +Fn(is)f(the)g(appro)o(ximate)e(p)q(enalt)o(y)i(incurred)h(b)o(y)f(ha)o +(ving)f(a)h(single)g(pro)q(cessor)h(b)q(eing)f(allo)q(cated)0 +2019 y(completely)d(to)g(the)i(handling)e(of)g(the)h(master.)k(This)c +(is)f(not)h(simply)1123 2003 y Fi(1)p 1121 2010 21 2 +v 1121 2034 a Fb(n)1147 2019 y Fn(,)f(but)h(is)g(the)g(time)f(tak)o(en) +h(a)o(w)o(a)o(y)f(b)o(y)g(the)i(master:)655 2137 y(master)9 +b(o)o(v)o(erhead)j(=)1031 2109 y(parallel)c(time)p 1008 +2128 271 2 v 1008 2166 a(sequen)o(tial)h(time)1283 2137 +y Fm(:)62 2248 y Fn(The)18 b Fl(p)n(ar)n(al)r(lelization)e(overhe)n(ad) +i Fn(is)f(the)g(p)q(enalt)o(y)g(incurred)h(b)o(y)f(the)g(APHID-library) +g(on)f(the)i(sp)q(eed)g(of)f(the)g(sla)o(v)o(es.)0 2311 +y(In)e(the)h(parallel)f(algorithm,)d(the)k(sla)o(v)o(es)f(w)o(ere)i +(visiting)d(2000)g(no)q(des)i(p)q(er)h(second.)23 b(The)16 +b(di\013erence)h(b)q(et)o(w)o(een)g(this)e(rate)0 2373 +y(and)g(the)g(sequen)o(tial)g(program's)e(no)q(de)i(rate)g(is)f(deriv)o +(ed)i(partially)d(from)g(the)i(o)o(v)o(erhead)g(of)f(using)g(PVM,)h +(and)g(partially)0 2435 y(from)f(the)i(w)o(ork-sc)o(heduling)f +(algorithm)e(on)i(eac)o(h)h(sla)o(v)o(e.)23 b(In)15 b(the)h(authors')g +(exp)q(erience,)h(this)f(complexit)o(y)d(o)o(v)o(erhead)j(is)0 +2497 y(appro)o(ximately)11 b(the)k(same)e(as)h(implemen)o(tatio)o(ns)e +(of)h(YBW)h(on)g(similar)d(hardw)o(are.)62 2560 y(The)16 +b Fl(se)n(ar)n(ch)f(overhe)n(ad)g Fn(starts)h(at)f(70\045)f(and)g +(increases)j(v)o(ery)e(gradually)f(as)g(w)o(e)i(increase)g(from)d(4)h +(to)h(16)f(pro)q(cessors.)0 2622 y(Most)i(of)g(the)h(searc)o(h)g(o)o(v) +o(erhead)g(is)f(incurred)h(b)o(y)f(attempting)f(to)h(do)g(searc)o(hes)i +(b)q(efore)f(the)g(correct)g(searc)o(h)h(windo)o(w)d(is)0 +2684 y(a)o(v)n(ailable.)g(Th)o(us,)c(the)h(sla)o(v)o(es)f(use)h +Fm(\013\014)h Fn(searc)o(h)g(windo)o(ws)d(that)h(are)h(larger)f(than)g +(those)h(in)e(the)i(sequen)o(tial)f(program.)16 b(Most)954 +2828 y(12)p eop +%%Page: 13 13 +13 12 bop 336 283 a + 20176580 14208860 3289088 3289088 50651955 36443095 startTexFig + 336 283 a +%%BeginDocument: graph6.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(1) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Small) Rshow +6570 4766 M +252 0 V +2066 1136 M +1226 797 V +1225 698 V +1226 641 V +6654 4766 D +2066 1136 D +3292 1933 D +4517 2631 D +5743 3272 D +LT1 +6486 4626 M +(Medium) Rshow +6570 4626 M +252 0 V +2066 1101 M +3292 2146 L +1225 681 V +1226 809 V +6654 4626 A +2066 1101 A +3292 2146 A +4517 2827 A +5743 3636 A +LT2 +6486 4486 M +(Large) Rshow +6570 4486 M +252 0 V +2066 1234 M +3292 2239 L +4517 3272 L +1226 756 V +6654 4486 B +2066 1234 B +3292 2239 B +4517 3272 B +5743 4028 B +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 340 1274 a Fn(Figure)14 b(8:)k(Sp)q(eedups)d(for)f(Di\013eren)o(t)g +(Size)h(Problems)e(at)h(8)f(Ply)h(in)f Fj(TheTurk)336 +1575 y + 20176580 14208860 3289088 3289088 50651955 36443095 startTexFig + 336 1575 a +%%BeginDocument: graph4.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(50) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(150) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(200) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(250) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 1699 M +1226 113 V +1225 94 V +1226 96 V +6654 4766 D +2066 1699 D +3292 1812 D +4517 1906 D +5743 2002 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 567 M +1226 33 V +1225 71 V +1226 85 V +6654 4626 A +2066 567 A +3292 600 A +4517 671 A +5743 756 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 802 M +1226 66 V +1225 96 V +1226 87 V +6654 4486 B +2066 802 B +3292 868 B +4517 964 B +5743 1051 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 1638 M +3292 933 L +4517 744 L +5743 658 L +6654 4346 C +2066 1638 C +3292 933 C +4517 744 C +5743 658 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 3656 M +3292 3161 L +1225 72 V +1226 181 V +6654 4206 T +2066 3656 T +3292 3161 T +4517 3233 T +5743 3414 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 475 2566 a Fn(Figure)h(9:)k(Ov)o(erheads)d(at)f(8)g(Ply)f(for)h(APHID) +g(in)f Fj(TheTurk)954 2828 y Fn(13)p eop +%%Page: 14 14 +14 13 bop 0 195 a Fn(of)13 b(the)h(increase)h(in)e(searc)o(h)i(o)o(v)o +(erhead)f(as)g(w)o(e)f(increase)i(the)g(n)o(um)o(b)q(er)d(of)h(pro)q +(cessors)j(can)e(b)q(e)g(attributed)g(to)g(information)0 +257 y(de\014ciency)m(,)21 b(since)e(there)i(is)d(no)h(common)d(shared)k +(data)e(b)q(et)o(w)o(een)j(the)e(pro)q(cesses)j(\(suc)o(h)e(as)f(a)f +(shared)i(transp)q(osition)0 320 y(table\).)62 382 y(Since)e(w)o(e)f +(only)f(searc)o(h)j(eac)o(h)e(p)q(osition)f(to)h(8)g(ply)m(,)g(the)g +(async)o(hronous)h(nature)g(of)e(the)i(sla)o(v)o(es)f(will)e(result)j +(in)f(some)0 444 y(w)o(ork)d(b)q(eing)h(done)f(at)h(9)f(ply)g(\(or)g +(more\).)19 b(The)c Fl(sp)n(e)n(culative)g(se)n(ar)n(ch)g +Fn(line)f(represen)o(ts)j(the)e(amoun)o(t)d(of)i(additional)f(searc)o +(h)0 506 y(b)q(ey)o(ond)f(what)g(the)g(sequen)o(tial)g(algorithm)d(w)o +(ould)i(ha)o(v)o(e)h(done.)18 b(Ho)o(w)o(ev)o(er,)12 +b(in)f(our)h(exp)q(erimen)o(ts,)g(the)g(sp)q(eculativ)o(e)h(searc)o(h)0 +569 y(results)k(w)o(ere)f(not)g(used)g(so)g(that)f(the)i(parallel)d +(program)g(pro)q(duces)j(the)f(iden)o(tical)f(results)i(as)e(the)i +(sequen)o(tial)e(v)o(ersion,)0 631 y(v)o(erifying)h(APHID's)g +(correctness)q(.)29 b(In)17 b(a)f(real)h(tournamen)o(t)f(game,)f(this)i +(sp)q(eculativ)o(e)h(searc)o(h)g(could)e(b)q(e)i(used)f(to)g(lo)q(ok)0 +693 y(an)e(extra)h(mo)o(v)o(e)d(ahead)j(on)f(some)f(k)o(ey)h(v)n +(ariations,)f(since)i(it)f(is)g(highly)f(lik)o(ely)g(that)i(the)f(mo)o +(v)o(es)f(extended)j(a)e(ply)g(ahead)0 756 y(w)o(ould)g(b)q(e)h(in)e +(the)i(left-most)e(branc)o(hes)j(of)e(the)h(tree.)23 +b(Note)16 b(that)g(other)g(algorithms,)d(suc)o(h)j(as)f(Y)m(oung)g +(Brothers)i(W)m(ait,)0 818 y(ha)o(v)o(e)d(pro)q(cessors)i(go)d(idle)h +(when)g(there)h(is)f(no)g(w)o(ork)f(left)h(to)g(do)f(on)h(the)g(curren) +o(t)i(iteration.)62 880 y(As)f(discussed)h(earlier,)d(load)h(balancing) +f(w)o(as)h(used)h(for)e(generating)i(the)f(results)h(giv)o(en)f(here.) +20 b(This)14 b(is)g(based)g(on)g(the)0 942 y(assumption)e(that)h(the)h +(primary)e(metric)g(to)h(measuring)g(a)g(parallel)f(program's)f(p)q +(erformance)i(is)g(the)h(sp)q(eed)h(with)e(whic)o(h)0 +1005 y(it)k(ac)o(hiev)o(es)g(a)g Fm(d)p Fn(-ply)e(result.)28 +b(Ho)o(w)o(ev)o(er,)18 b(one)f(could)g(argue)g(that)g(the)g(qualit)o(y) +f(of)g(the)i(result)f(ac)o(hiev)o(ed)g(is)g(equiv)n(alen)o(t,)0 +1067 y(irresp)q(ectiv)o(e)22 b(of)d(the)h(sp)q(eedup.)38 +b(The)20 b(additional)e(sp)q(eculativ)o(e)j(searc)o(h)g(done)f(in)g +(cases)h(where)g(the)f(load)f(balance)h(is)0 1129 y(incorrect)15 +b(could)f(b)q(e)g(used)h(to)f(impro)o(v)o(e)e(the)i(qualit)o(y)f(of)g +(the)i(result)f(returned.)62 1191 y(Other)e(results)f(for)f(parallel)f +(searc)o(h)j(algorithms)c(on)i(a)g(net)o(w)o(ork)h(of)e(w)o +(orkstations)h(ha)o(v)o(e)h(b)q(een)g(presen)o(ted)i(for)d(the)g(game)0 +1254 y(of)k(c)o(hess)h([21].)j(A)d(distributed)g(transp)q(osition)f +(table)g(w)o(as)g(used)h(to)g(impro)o(v)o(e)d(the)j(p)q(erformance)f +(of)g(the)h Fj(P)l(araPhoenix)0 1316 y Fn(c)o(hess)c(searc)o(hes,)h +(and)e(a)f(sp)q(eedup)j(of)d(7)g(w)o(as)h(ac)o(hiev)o(ed)g(on)f(16)h +(pro)q(cessors.)19 b(Although)9 b(these)i(results)g(are)f(marginally)c +(b)q(etter)0 1378 y(than)14 b(the)g(results)h(presen)o(ted)h(here,)e +(the)h(scalabilit)o(y)d(of)h(the)h(algorithm)e(w)o(as)h(extrap)q +(olated)h(to)g(a)f(sp)q(eedup)j(of)d(at)h(most)e(8)0 +1440 y(on)g(32)f(pro)q(cessors.)20 b(Based)13 b(on)f(the)g(graphs)h +(presen)o(ted)h(earlier)e(in)g(this)g(section,)h(w)o(e)f(b)q(eliev)o(e) +g(the)h(APHID)f(algorithm)d(will)0 1503 y(outp)q(erform)16 +b(on)g(a)g(larger)h(n)o(um)o(b)q(er)f(of)g(pro)q(cessors.)28 +b(The)17 b(b)q(ene\014cial)g(e\013ects)i(of)d(the)h(distributed)h +(transp)q(osition)e(table)0 1565 y(are)i(deriv)o(ed)g(primarily)d(in)j +(the)g(top)g(plies)f(of)g(the)i(searc)o(h)g(tree,)g(and)f(these)h(b)q +(ene\014ts)g(are)f(duplicated)g(in)f(APHID)h(b)o(y)0 +1627 y(main)o(taining)10 b(the)15 b(top)f Fm(d)397 1612 +y Fd(0)422 1627 y Fn(ply)f(exclusiv)o(ely)h(on)g(the)g(master)g(pro)q +(cessor.)62 1689 y(Although)c(the)h(results)g(presen)o(ted)h(here)g +(for)e(c)o(hess)h(are)g(promising,)d(w)o(e)j(b)q(eliev)o(e)f(that)h(b)q +(etter)g(results)h(can)e(b)q(e)h(ac)o(hiev)o(ed.)0 1752 +y(The)16 b(results)g(for)f(parallelizing)e Fj(Key)m(ano)p +Fn(,)k(an)e(Othello)g(program,)e(yield)i(a)f(9-fold)g(sp)q(eedup)j +(with)e(the)g(APHID)h(library)0 1814 y(without)f(the)g(use)h(of)e(load) +g(balancing.)20 b(The)c(main)d(di\013erence)k(b)q(et)o(w)o(een)f(the)f +(results)i(is)d(that)h(the)h(searc)o(h)g(o)o(v)o(erhead)f(for)0 +1876 y Fj(Key)m(ano)h Fn(is)e(less)g(than)g(half)f(of)g(the)i +Fj(TheTurk)p Fn('s)f(70\045)f(searc)o(h)i(o)o(v)o(erhead.)62 +1939 y(The)g(authors)g(ha)o(v)o(e)f(come)f(up)h(with)g(t)o(w)o(o)g(p)q +(ossible)h(h)o(yp)q(otheses)g(for)f(this)h(discrepancy)m(.)20 +b(The)14 b(\014rst)h(is)g(that)f Fj(Key)m(ano)0 2001 +y Fn(do)q(es)f(not)e(use)i(quiescen)o(t)g(searc)o(h.)19 +b(As)12 b(a)f(consequence,)k(the)d(sizes)h(of)e(the)i(v)n(arious)e +(pieces)i(of)e(w)o(ork)h(are)g(more)f(predictable;)0 +2063 y(hence,)i(load)e(balancing)g(is)g(not)h(necessary)m(.)19 +b(Load)11 b(balancing)g(causes)i(searc)o(h)g(o)o(v)o(erhead)f(since)g +(it)g(forces)g(a)g(new)g(pro)q(cessor)0 2125 y(to)f(rep)q(eat)i(searc)o +(hes)h(done)e(b)o(y)f(a)g(di\013eren)o(t)i(pro)q(cessor.)19 +b(The)12 b(load)f(balancing)f(is)i(partially)e(resp)q(onsible)j(for)e +(the)h(di\013erence)0 2188 y(in)i(searc)o(h)h(o)o(v)o(erhead.)k(The)c +(second)g(p)q(ossible)f(reason)h(is)f(that)g(the)h(searc)o(h)g(windo)o +(ws)f(in)f(the)i(sla)o(v)o(es)f(can,)g(in)g(some)f(cases,)0 +2250 y(b)q(e)g(larger)f(than)h(the)g(minim)o(al)c(windo)o(w)i(used)i +(in)f(the)h(sequen)o(tial)g(program.)i(Although)d(this)h(larger)f +(windo)o(w)g(is)g(common)0 2312 y(to)i(b)q(oth)h(parallel)e(implemen)o +(tatio)o(ns,)f(it)i(has)g(a)g(m)o(uc)o(h)f(larger)i(e\013ect)h(on)e +(the)h(size)g(of)e(the)i(trees)h(searc)o(hed)g(in)e Fj(TheTurk)0 +2374 y Fn(than)g(in)f Fj(Key)m(ano)p Fn(.)62 2437 y(The)i(APHID)g +(algorithm)c(can)k(supp)q(ort)g(a)f(shared)i(transp)q(osition)e(table,) +g(but)g(the)h(algorithm)d(do)q(es)j(not)g(dep)q(end)g(on)0 +2499 y(its)g(presence.)22 b(Th)o(us,)15 b(the)g(algorithm)d(gets)j(go)q +(o)q(d)f(p)q(erformance)h(on)f(a)h(lo)q(osely-coupled)f(net)o(w)o(ork)h +(of)f(w)o(orkstations)g(and)0 2561 y(will)e(p)q(erform)h(ev)o(en)i(b)q +(etter)h(on)d(tigh)o(tly-coupled)g(pro)q(cessors.)954 +2828 y(14)p eop +%%Page: 15 15 +15 14 bop 0 195 a Fo(5)69 b(Conclusions)22 b(and)i(F)-6 +b(uture)23 b(W)-6 b(ork)0 298 y Fn(The)14 b(APHID)f(algorithm)e(yields) +i(go)q(o)q(d)g(sp)q(eedups)i(on)e(a)g(net)o(w)o(ork)g(of)g(w)o +(orkstations)g(without)g(the)h(necessit)o(y)g(of)f(a)g(shared)0 +361 y(transp)q(osition)g(table.)18 b(Although)13 b(the)i(authors)f(are) +g(pleased)g(with)f(these)i(preliminary)c(results,)k(a)e(lot)g(of)g(w)o +(ork)g(is)h(left)f(to)0 423 y(b)q(e)i(done.)62 485 y(Our)e(curren)o(t)h +(implemen)o(tation)9 b(of)j(APHID)g(uses)i(a)e(\014xed-depth)h(horizon) +g(for)f(the)h(master's)e(tree.)19 b(As)13 b(men)o(tioned)e(in)0 +548 y(our)i(discussion)h(of)f(load)f(balancing,)g(all)g(p)q(ositions)h +(are)h(not)f(equal)g(in)g(the)h(amoun)o(t)e(of)h(searc)o(h)h(e\013ort)g +(they)g(require)g(for)f(a)0 610 y(\014xed)g(depth)g(of)e(searc)o(h.)19 +b(APHID)13 b(is)f(b)q(eing)g(generalized)h(to)f(supp)q(ort)h(a)f +(dynamically)e(c)o(hanging)h(horizon)h(in)g(the)h(master.)62 +672 y(Instead)h(of)e(basing)h(the)g(results)i(of)d(the)i(algorithm)c +(on)j(the)g(sp)q(eedup,)i(w)o(e)e(are)g(also)g(in)o(terested)h(in)f +(the)g(qualit)o(y)f(of)g(the)0 734 y(results)i(returned)h(b)o(y)d(the)i +(algorithm.)h(This)e(alternativ)o(e)g(view)f(of)h(parallel)f(p)q +(erformance)g(is)h(curren)o(tly)h(b)q(eing)f(explored.)62 +797 y(The)i(results)g(rep)q(orted)h(here)f(are)g(based)g(on)e(a)h +(simple)f(master/sla)o(v)o(e)g(relationship.)18 b(As)d(the)g(n)o(um)o +(b)q(er)e(of)h(pro)q(cessors)0 859 y(increases,)f(the)f(master)f +(increasingly)h(b)q(ecomes)f(a)h(b)q(ottlenec)o(k.)18 +b(APHID)11 b(has)h(b)q(een)h(generalized)f(to)f(w)o(ork)h(in)f(a)g +(hierarc)o(hi-)0 921 y(cal)j(pro)q(cess)j(tree,)e(although)f(this)h +(asp)q(ect)h(of)e(the)h(algorithm)d(has)j(not)f(b)q(een)i(tested)g +(here.)22 b(Mid-lev)o(el)13 b(pro)q(cesses)18 b(w)o(ould)0 +983 y(b)q(eha)o(v)o(e)c(as)f(a)g(sla)o(v)o(e)g(to)o(w)o(ard)g(their)h +(master,)e(and)i(as)f(a)g(master)g(to)o(w)o(ard)g(their)h(sla)o(v)o +(es.)j(The)d(scalabilit)o(y)e(of)h(the)h(algorithm)0 +1046 y(has)g(y)o(et)h(to)f(b)q(e)h(demonstrated)f(on)g(arc)o +(hitectures)i(of)e(more)f(than)h(16)g(pro)q(cessors,)i(due)f(to)f +(resource)i(limitations)11 b(during)0 1108 y(the)j(academic)f(y)o(ear.) +62 1170 y(P)o(erhaps)i(the)e(biggest)h(con)o(tribution)f(of)f(APHID)i +(is)f(that)g(it)g(easily)g(\014ts)h(in)f(to)g(an)g(existing)g(sequen)o +(tial)g Fm(\013\014)j Fn(program.)0 1232 y(Not)h(only)e(has)i(APHID)g +(b)q(een)h(in)o(tegrated)f(in)o(to)f Fj(TheTurk)h Fn(and)f +Fj(Key)m(ano)p Fn(,)j(APHID)e(has)g(b)q(een)g(in)o(tegrated)g(in)o(to)f +(the)0 1295 y(c)o(hec)o(k)o(ers)g(program)d Fj(Chinook)j +Fn(with)e(one)g(afterno)q(on)h(of)f(e\013ort.)1033 1280 +y Fi(4)1072 1295 y Fn(In)g(con)o(trast,)h(the)g(v)o(ersion)g(of)e +Fj(Chinook)j Fn(used)f(in)f(the)0 1357 y(1994)f(matc)o(h)g(v)o(ersus)i +(Tinsley)e(to)q(ok)h(4)f(to)h(6)g(w)o(eeks)h(to)e(implemen)o(t)e([15].) +0 1494 y Fo(6)69 b(Ac)n(kno)n(wledgemen)n(ts)0 1598 y +Fn(This)14 b(w)o(ork)f(w)o(as)h(supp)q(orted)h(b)o(y)f(the)h(Natural)e +(Sciences)j(and)d(Engineering)h(Researc)o(h)h(Council)f(of)f(Canada.)0 +1735 y Fo(References)21 1818 y Fn([1])19 b(S.)d(G.)g(Akl,)f(D.)h(T.)g +(Barnard,)h(and)f(R.)f(J.)h(Doran.)25 b(Design,)16 b(Analysis)g(and)g +(Implemen)o(tation)d(of)j(a)g(P)o(arallel)f(T)m(ree)85 +1859 y(Searc)o(h)g(Algorithm.)i Fl(IEEE)f(T)m(r)n(ansactions)f(on)h +(Pattern)f(A)o(nalysis)g(and)h(Machine)g(Intel)r(ligenc)n(e)p +Fn(,)e(P)m(AMI-4\(2\):192{)85 1901 y(203,)f(1982.)21 +1975 y([2])19 b(G.)13 b(M.)h(Baudet.)k Fl(The)d(Design)g(and)h +(Analysis)e(of)h(Algorithms)f(for)g(Asynchr)n(onous)i(Multipr)n(o)n(c)n +(essors)p Fn(.)h(PhD)d(thesis,)85 2017 y(Carnegie)g(Mellon)g(Univ)o +(ersit)o(y)m(,)f(Pittsburgh,)h(P)m(A,)f(1978.)k(Av)n(ailable)12 +b(as)i(T)m(ec)o(h.)g(Rept.)f(CMU-CS-78-116.)21 2092 y([3])19 +b(V.-D.)j(Cung.)44 b Fl(Contribution)23 b(\022)-21 b(a)23 +b(l'A)o(lgorithmique)e(Non)j(Num)o(\023)-20 b(erique)23 +b(Par)n(al)r(l)o(\022)-20 b(ele:)34 b(Explor)n(ation)23 +b(d'Esp)n(ac)n(es)h(de)85 2133 y(R)n(e)n(cher)n(che)p +Fn(.)19 b(PhD)13 b(thesis,)i(Univ)o(ersit)o(\023)-20 +b(e)14 b(P)o(aris)g(VI,)g(April)f(1994.)21 2208 y([4])19 +b(V.)12 b(Da)o(vid.)h Fl(A)o(lgorithmique)f(p)n(ar)n(al)r(l)o(\022)-20 +b(ele)12 b(sur)h(les)g(arbr)n(es)f(de)i(d)o(\023)-20 +b(ecision)13 b(et)g(r)n(aisonnement)g(en)h(temps)f(c)n(ontr)n(aint)g(-) +f(Etude)85 2249 y(et)j(applic)n(ation)g(au)h(minimax)p +Fn(.)i(PhD)13 b(thesis,)i(ENSAE,)f(T)m(oulouse,)f(F)m(rance,)h(1993.)21 +2324 y([5])19 b(R.)34 b(F)m(eldmann.)78 b Fl(Spielb)n(aumsuche)35 +b(mit)e(massiv)h(p)n(ar)n(al)r(lelen)g(Systemen)p Fn(.)80 +b(PhD)35 b(thesis,)40 b(Univ)o(ersit\177)-21 b(at-)85 +2365 y(Gesam)o(tho)q(c)o(hsc)o(h)o(ule)13 b(P)o(aderb)q(orn,)h(P)o +(aderb)q(orn,)g(German)o(y)m(,)c(Ma)o(y)j(1993.)j(In)d(German)f({)h +(English)g(translation)f(a)o(v)n(ail-)85 2407 y(able.)21 +2482 y([6])19 b(E.)f(W.)e(F)m(elten)i(and)f(S.)h(W.)e(Otto.)29 +b(Chess)19 b(on)f(a)f(Hyp)q(ercub)q(e.)31 b(In)17 b(G.)g(F)m(o)o(x,)g +(editor,)h Fl(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(The)f(Thir)n(d)85 +2523 y(Confer)n(enc)n(e)13 b(on)g(Hyp)n(er)n(cub)n(e)f(Concurr)n(ent)h +(Computers)f(and)h(Applic)n(ations)p Fn(,)e(v)o(olume)f(I)q +(I-Applications,)h(pages)g(1329{)85 2565 y(1341,)i(P)o(assadena,)h(CA,) +f(1988.)p 0 2599 780 2 v 46 2626 a Fh(4)64 2638 y Fg(The)e(results)f +(for)h Fa(Chinook)i Fg(w)o(ere)e(not)g(a)o(v)n(ailable)e(at)i(the)g +(time)g(of)g(writing.)954 2828 y Fn(15)p eop +%%Page: 16 16 +16 15 bop 21 195 a Fn([7])19 b(C.)c(F)m(erguson)h(and)g(R.)f(E.)g +(Korf.)23 b(Distributed)16 b(T)m(ree)g(Searc)o(h)h(and)e(its)h +(Application)f(to)g(Alpha-Beta)h(Pruning.)23 b(In)85 +237 y Fl(Pr)n(o)n(c)n(e)n(e)n(dings)15 b(of)g(AAAI-88)p +Fn(,)e(pages)h(128{132,)e(Sain)o(t)h(P)o(aul,)g(MN,)h(August)g(1988.)21 +311 y([8])19 b(R.D.)14 b(Green)o(blatt,)h(D.E.)e(Eastlak)o(e,)i(and)g +(S.D.)f(Cro)q(c)o(k)o(er.)22 b(The)15 b(Green)o(blatt)g(Chess)i +(Program.)i(In)c Fl(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)85 +353 y(the)f(F)m(al)r(l)g(Joint)f(Computer)h(Confer)n(enc)n(e)p +Fn(,)e(pages)h(801{810,)e(1967.)21 428 y([9])19 b(F.-h.)c(Hsu.)22 +b Fl(L)n(ar)n(ge)16 b(Sc)n(ale)g(Par)n(al)r(lelization)f(of)h(A)o +(lpha-Beta)h(Se)n(ar)n(ch:)k(A)o(n)c(A)o(lgorithmic)d(and)j(A)o(r)n +(chite)n(ctur)n(al)e(Study)p Fn(.)85 469 y(PhD)g(thesis,)h(Carnegie)g +(Mellon)e(Univ)o(ersit)o(y)m(,)g(Pittsburgh,)i(U.S.A.,)e(1990.)20 +b(Also)15 b(T)m(ec)o(h.)g(Rept.)g(CMU-CS-90-108,)85 511 +y(Carnegie)f(Mellon)g(Univ)o(ersit)o(y)m(,)f(F)m(eb.)g(1990.)0 +585 y([10])19 b(R.)11 b(M.)h(Hy)o(att,)g(B.)g(W.)f(Suter,)i(and)e(H.)h +(L.)f(Nelson.)16 b(A)c(P)o(arallel)f(Alpha/Beta)h(T)m(ree)g(Searc)o +(hing)g(Algorithm.)h Fl(Par)n(al)r(lel)85 627 y(Computing)p +Fn(,)h(10\(3\):299{308,)d(1989.)0 702 y([11])19 b(D.)f(Kop)q(ec)i(and)f +(I.)f(Bratk)o(o.)33 b(The)19 b(Bratk)o(o-Kop)q(ec)h(Exp)q(erimen)o(t:) +28 b(A)19 b(Comparison)d(of)j(Human)e(and)i(Computer)85 +743 y(Performance)11 b(in)f(Chess.)j(In)d(M.R.B.)f(Clark)o(e,)i +(editor,)f Fl(A)n(dvanc)n(es)j(in)e(Computer)h(Chess)f(3)p +Fn(,)g(pages)g(57{72.)d(P)o(ermagon)85 785 y(Press,)15 +b(Oxford,)f(1982.)0 859 y([12])19 b(B.)14 b(C.)g(Kuszmaul.)k +Fl(Synchr)n(onize)n(d)e(MIMD)g(Computing)p Fn(.)k(PhD)14 +b(thesis,)h(Massac)o(h)o(usetts)h(Institute)f(of)f(T)m(ec)o(hnology)m +(,)85 901 y(Cam)o(bridge,)e(MA,)i(1994.)0 976 y([13])19 +b(G.)e(Lindstrom.)28 b(The)18 b(Key)g(No)q(de)g(Metho)q(d:)26 +b(A)18 b(Highly-P)o(arallel)d(Alpha-Beta)j(Algorithm.)26 +b(T)m(ec)o(hnical)18 b(Rep)q(ort)85 1017 y(UUCS)c(83-101,)e(Univ)o +(ersit)o(y)i(of)g(Utah,)f(Departmen)o(t)g(of)h(Computer)f(Science,)i +(Salt)e(Lak)o(e)h(Cit)o(y)m(,)e(UT,)h(Marc)o(h)i(1983.)0 +1092 y([14])k(C.-P)m(.)11 b(P)m(.)g(Lu.)j(P)o(arallel)d(Searc)o(h)h(of) +f(Narro)o(w)h(Game)e(Trees.)16 b(Master's)d(thesis,)f(Departmen)o(t)f +(of)g(Computing)f(Science,)85 1133 y(Univ)o(ersit)o(y)k(of)f(Alb)q +(erta,)h(Edmon)o(ton,)e(Canada,)h(1993.)0 1208 y([15])19 +b(P)m(.)13 b(Lu.)18 b(Priv)n(ate)c(comm)o(unication.)o(,)d(1996.)0 +1283 y([16])19 b(T.)11 b(A.)f(Marsland)h(and)g(M.)f(S.)h(Campb)q(ell.)g +(Parallel)f(Searc)o(h)i(of)e(Strongly)g(Ordered)j(Game)c(Trees.)15 +b Fl(A)o(CM)d(Computing)85 1324 y(Surveys)p Fn(,)i(14\(4\):533{551,)d +(1982.)0 1399 y([17])19 b(M.)14 b(M.)f(Newb)q(orn.)20 +b(Unsync)o(hronized)15 b(Iterativ)o(e)g(Deep)q(ening)f(P)o(arallel)f +(Alpha-Beta)h(Searc)o(h.)20 b Fl(IEEE)15 b(T)m(r)n(ansactions)85 +1440 y(on)h(Pattern)e(A)o(nalysis)h(and)h(Machine)g(Intel)r(ligenc)n(e) +p Fn(,)d(P)m(AMI-10\(5\):687{694,)d(1988.)0 1515 y([18])19 +b(J.)c(P)o(earl.)21 b(Asymptotic)14 b(Prop)q(erties)j(of)d(Minimax)e +(Trees)17 b(and)d(Game-Searc)o(hing)g(Pro)q(cedures.)23 +b Fl(A)o(rti\014cial)15 b(Intel)r(li-)85 1557 y(genc)n(e)p +Fn(,)f(14:113{138,)d(1980.)0 1631 y([19])19 b(A.)d(Plaat,)g(J.)g(Sc)o +(hae\013er,)i(W.)e(Pijls,)g(and)g(A.)g(de)h(Bruin.)25 +b(Nearly)17 b(Optimal)d(Minimax)g(T)m(ree)j(Searc)o(h?)35 +b(T)m(ec)o(hnical)85 1673 y(Rep)q(ort)17 b(94-19,)e(Departmen)o(t)h(of) +g(Computing)e(Science,)k(Univ)o(ersit)o(y)e(of)f(Alb)q(erta,)i(Edmon)o +(ton,)e(Alta.,)h(Decem)o(b)q(er)85 1714 y(1994.)0 1789 +y([20])j(A.)14 b(Reinefeld.)k(An)c(Impro)o(v)o(emen)o(t)d(to)j(the)g +(Scout)h(Tree-Searc)o(h)g(Algorithm.)h Fl(ICCA)e(Journal)p +Fn(,)g(6\(4\):4{14,)d(1983.)0 1864 y([21])19 b(J.)11 +b(Sc)o(hae\013er.)k(Distributed)d(Game-T)m(ree)e(Searc)o(hing.)j +Fl(Journal)g(of)f(Par)n(al)r(lel)f(and)i(Distribute)n(d)f(Computing)p +Fn(,)f(6\(2\):90{)85 1905 y(114,)i(1989.)0 1980 y([22])19 +b(I.)12 b(R.)g(Stein)o(b)q(erg)h(and)g(M.)f(Solomon.)h(Searc)o(hing)g +(Game)d(Trees)k(in)e(P)o(arallel.)j(In)e Fl(Pr)n(o)n(c)n(c)n(e)n(dings) +g(of)h(the)f(1990)i(Interna-)85 2022 y(tional)i(Confer)n(enc)n(e)f(on)h +(Par)n(al)r(lel)e(Pr)n(o)n(c)n(essing)h(\(vol.)g(3\))p +Fn(,)g(pages)g(9{17,)e(Univ)o(ersit)o(y)h(P)o(ark,)h(P)m(A,)f(1990.)f +(P)o(enn.)h(State)85 2063 y(Univ)o(ersit)o(y)f(Press.)0 +2138 y([23])19 b(V.)e(Sunderam.)28 b(PVM:)17 b(A)h(F)m(ramew)o(ork)d +(for)i(P)o(arallel)g(Distributed)g(Computing.)26 b Fl(Concurr)n(ency:)g +(Pr)n(actic)n(e)17 b(and)85 2179 y(Exp)n(erienc)n(e)p +Fn(,)d(2\(4\):315{339,)d(Decem)o(b)q(er)j(1990.)0 2254 +y([24])19 b(J.-C.)25 b(W)m(eill.)51 b Fl(Pr)n(o)n(gr)n(ammes)25 +b(d')o(\023)-20 b(eche)n(cs)26 b(de)g(championnat:)41 +b(ar)n(chite)n(ctur)n(e)25 b(lo)n(giciel)r(le)f(synth)o(\022)-20 +b(ese)27 b(de)f(fonctions)85 2296 y(d')o(\023)-20 b(evaluations,)15 +b(p)n(ar)n(al)r(l)o(\023)-20 b(elisme)14 b(de)h(r)n(e)n(cher)n(che)p +Fn(.)j(PhD)13 b(thesis,)i(Univ)o(ersit)o(\023)-20 b(e)14 +b(P)o(aris)g(8,)f(Jan)o(uary)h(1995.)954 2828 y(16)p +eop +%%Page: 17 17 +17 16 bop 0 195 a Fo(A)69 b(Description)21 b(of)i(APHID)f(In)n(terface) +0 294 y Fc(A.1)56 b(T)n(yp)r(es)18 b(of)h(Pro)r(cesses)f(within)g +(APHID)62 363 y Fk(\017)j Fe(absolute)f(master)p Fn(:)25 +b(The)18 b(single)g(pro)q(cess)h(whic)o(h)f(in)o(v)o(ok)o(es)g(all)e +(other)j(pro)q(cesses)h(within)e(the)g(APHID)g(pro)q(cess)104 +404 y(hierarc)o(h)o(y)m(,)13 b(whic)o(h)h(o)q(ccupies)h(the)f(highest)h +(lev)o(el)e(in)h(the)g(pro)q(cess)i(hierarc)o(h)o(y)m(.)62 +476 y Fk(\017)21 b Fe(slave)p Fn(:)g(An)o(y)16 b(pro)q(cess)i(that)e(m) +o(ust)f(rep)q(ort)i(its)f(searc)o(h)h(results)g(to)f(a)g(pro)q(cess)i +(ab)q(o)o(v)o(e)d(it)h(in)g(the)g(hierarc)o(h)o(y)m(.)25 +b(With)104 518 y(this)14 b(de\014nition,)f(a)g(pro)q(cess)j(is)e +(either)h(the)f(absolute)g(master)f(or)h(a)g(sla)o(v)o(e,)f(and)h(can)g +(not)g(b)q(e)g(b)q(oth.)62 589 y Fk(\017)21 b Fe(master)p +Fn(:)e(An)o(y)14 b(pro)q(cess)j(that)e(has)g(pro)q(cesses)j(underneath) +e(it)e(in)h(the)g(hierarc)o(h)o(y)m(.)21 b(Note)15 b(that)g(it)g(is)g +(p)q(ossible)g(for)f(a)104 631 y(pro)q(cess)h(to)f(b)q(e)h(b)q(oth)f(a) +f(master)h(and)f(a)h(sla)o(v)o(e)g(if)f(the)h(pro)q(cess)i(hierarc)o(h) +o(y)e(has)g(m)o(ultiple)e(lev)o(els.)0 746 y Fc(A.2)56 +b(Constan)n(ts)20 b(T)-5 b(o)19 b(Be)f(De\014ned)0 814 +y Fn(Since)c(the)h(library)e(is)h(application-indep)q(enden)o(t,)f +(some)g(de\014nitions)h(of)f(ho)o(w)g(things)h(are)h(implem)o(en)o(ted) +d(m)o(ust)h(b)q(e)h(giv)o(en)0 856 y(to)g(the)g(APHID)g(library)m(.)62 +932 y Fk(\017)21 b Fe(APHID)p 217 932 14 2 v 14 w(HASHTYPESIZE)p +Fn(:)11 b(The)k(size)f(\(in)g(b)o(ytes\))h(of)e(the)h(hash)g(v)n(alue)g +(used)h(in)e(y)o(our)h(program.)62 1003 y Fk(\017)21 +b Fe(APHID)p 217 1003 V 14 w(HASHKEYSIZE)p Fn(:)10 b(The)i(size)h(\(in) +f(b)o(ytes\))h(of)f(the)h(\\lo)q(c)o(k")e(used)i(to)f(guaran)o(tee)h +(that)f(t)o(w)o(o)g(p)q(ositions)f(sharing)h(the)104 +1045 y(same)h(hash)h(v)n(alue)f(are)h(the)h(same.)62 +1117 y Fk(\017)21 b Fe(APHID)p 217 1117 V 14 w(MOVESIZE)p +Fn(:)12 b(The)i(size)h(\(in)f(b)o(ytes\))g(of)g(the)g(represen)o +(tation)i(of)d(a)h(mo)o(v)o(e)e(in)h(the)i(application.)62 +1189 y Fk(\017)21 b Fe(APHID)p 217 1189 V 14 w(MINUSINF)15 +b Fn(and)h Fe(APHID)p 615 1189 V 15 w(PLUSINF)p Fn(:)e(Sp)q +(eci\014cations)j(of)e(v)n(alues)h(smaller)f(than)h(the)h(minim)n(um)o +(,)c(and)j(larger)104 1230 y(than)e(the)g(maxim)n(um)o(,)c(that)k(the)h +(\\ev)n(aluation")d(could)i(p)q(ossibly)f(return,)i(resp)q(ectiv)o(ely) +m(.)62 1302 y Fk(\017)21 b Fe(APHID)p 217 1302 V 14 w(INVALIDSCORE)p +Fn(:)13 b(A)j(v)n(alue)g(that)g(is)g(outside)g(the)g(range)h(represen)o +(ted)h(b)o(y)e(the)h(minim)n(um)11 b(and)16 b(maxim)n(um)104 +1344 y(v)n(alues)d(sp)q(eci\014ed)j(previously)m(.)62 +1415 y Fk(\017)21 b Fe(APHID)p 217 1415 V 14 w(LOG2)p +319 1415 V 15 w(TABSIZE)p Fn(:)16 b(The)j(size)g(of)e(the)i(APHID)f +(table)g(that)g(y)o(ou)g(in)o(tend)g(on)g(using)g(to)g(share)h(b)q(et)o +(w)o(een)g(the)104 1457 y(master)c(and)h(the)g(sla)o(v)o(es,)g(tak)o +(en)f(to)h(a)f(base)i(2)e(logarithm.)21 b(F)m(or)15 b(example,)g(a)g(v) +n(alue)g(of)g(14)g(indicates)h(an)g(APHID)104 1503 y(table)e(with)f(2) +323 1488 y Fi(14)370 1503 y Fn(=)e(16384)i(en)o(tries.)62 +1575 y Fk(\017)21 b Fe(APHID)p 217 1575 V 14 w(MAXSLAVEPLYSEARCH)p +Fn(:)7 b(The)j(maxim)o(um)c("plytogo")i(v)n(alue)i(that)g(y)o(ou)g +(could)g(p)q(ossibly)g(exp)q(ect)i(to)e(hand)g(to)g(a)104 +1616 y(sla)o(v)o(e)g(to)g(searc)o(h.)18 b(Note)10 b(that)g(this)h(v)n +(alue)e(should)h(not)g(b)q(e)h(excessiv)o(ely)g(large,)g(since)g(this)f +(and)g Fe(APHID)p 1683 1616 V 15 w(LOG2)p 1786 1616 V +14 w(TABSIZE)104 1658 y Fn(are)k(the)h(leading)e(determinan)o(ts)g(in)h +(the)g(amoun)o(t)e(of)h(memory)f(used)j(b)o(y)e(the)i(APHID)f(library)m +(.)62 1730 y Fk(\017)21 b Fe(APHID)p 217 1730 V 14 w +(MAXMASTERPLYSEARCH)p Fn(:)10 b(The)k(maxim)o(um)9 b(depth)15 +b(that)f(w)o(e)g(exp)q(ect)h(the)g(master)e(should)h(reac)o(h.)62 +1802 y Fk(\017)21 b Fe(APHID)p 217 1802 V 14 w(SLAVENODESTOCOMM)p +Fn(:)15 b(This)j(should)g(b)q(e)g(set)h(to)f(the)h(n)o(um)o(b)q(er)e +(of)h(no)q(des)h(that)f(the)g(sequen)o(tial)h(program)104 +1843 y(visits)13 b(on)h(the)h(t)o(yp)q(e)f(of)f(pro)q(cessor)j(b)q +(eing)e(used,)g(divided)g(b)o(y)f(10.)0 1958 y Fc(A.3)56 +b(Standard)19 b(V)-5 b(ariables)19 b(Used)62 2026 y Fk(\017)i +Fe(argv)p Fn(:)e(Standard)c(argumen)o(t)e(list.)20 b(Used)c(to)f +(instan)o(tiate)f(the)h(sla)o(v)o(es)g(with)g(the)g(same)f(parameters)h +(as)g(the)g(initial)104 2068 y(program.)62 2140 y Fk(\017)21 +b Fe(depth)p Fn(:)c(The)d(n)o(um)o(b)q(er)f(of)g(ply)h(the)g(curren)o +(t)i(no)q(de)e(is)g(a)o(w)o(a)o(y)f(from)f(the)i(ro)q(ot)g(of)f(the)i +(game)d(tree.)62 2212 y Fk(\017)21 b Fe(plytogo)p Fn(:)15 +b(The)c(n)o(um)o(b)q(er)f(of)g(ply)h(un)o(til)f(w)o(e)h(reac)o(h)g(the) +h(b)q(ottom)d(of)h(the)i(game)d(tree.)18 b(In)11 b(a)g(searc)o(h)h +(with)e(no)h(extensions)104 2253 y(or)j(forw)o(ard)f(pruning,)g +Fe(plytogo)21 b(+)g(depth)13 b Fn(should)h(b)q(e)g(constan)o(t.)62 +2325 y Fk(\017)21 b Fe(&move[i])10 b Fn(or)i Fe(&bestmove)p +Fn(:)j(A)d(p)q(oin)o(ter)g(to)f(an)h(area)g(of)f Fe(APHID)p +1098 2325 V 15 w(MOVESIZE)f Fn(b)o(ytes)i(whic)o(h)g(sp)q(eci\014es)h +(the)g(mo)o(v)o(e)d(b)q(eing)104 2367 y(pla)o(y)o(ed.)62 +2438 y Fk(\017)21 b Fe(p)p 129 2438 V 15 w(hash)p Fn(:)c(A)d(p)q(oin)o +(ter)g(to)g(an)g(area)g(of)f Fe(APHID)p 805 2438 V 15 +w(HASHTYPESIZE)e Fn(b)o(ytes)k(that)f(con)o(tains)g(the)g(curren)o(t)h +(hash)g(v)n(alue.)62 2510 y Fk(\017)21 b Fe(p)p 129 2510 +V 15 w(key)p Fn(:)c(A)c(p)q(oin)o(ter)g(to)f(an)g(area)h +Fe(APHID)p 729 2510 V 15 w(HASHKEYSIZE)d Fn(b)o(ytes)k(that)e(con)o +(tains)h(a)f(lo)q(c)o(k)g(whic)o(h)h(can)g(\\guaran)o(tee")f(the)104 +2552 y(b)q(oard)i(stored)h(in)e(the)h(lo)q(cation)f(of)h(the)g(hash)g +(table)g(is)g(correct.)62 2624 y Fk(\017)21 b Fe(alpha)13 +b Fn(and)g Fe(beta)p Fn(:)k(Searc)o(h)e(windo)o(w)e(used)i(b)o(y)f +Fm(\013\014)i Fn(implemen)o(tatio)o(n;)11 b(they)j(are)g(exp)q(ected)i +(to)e(b)q(e)h(32-bit)e(in)o(tegers.)62 2696 y Fk(\017)21 +b Fe(value)13 b Fn(and)g Fe(score)p Fn(:)k(V)m(alues)d(of)f(leaf)g(no)q +(des;)i(they)f(are)g(exp)q(ected)i(to)e(b)q(e)h(32-bit)e(in)o(tegers)h +(for)g(this)g(library)m(.)954 2828 y(17)p eop +%%Page: 18 18 +18 17 bop 0 195 a Fc(A.4)56 b(Stubs)19 b(T)-5 b(o)19 +b(Be)f(W)-5 b(ritten)62 263 y Fk(\017)21 b Fe(int)g(aphid)p +304 263 14 2 v 15 w(stub)p 407 263 V 14 w(encodeinit\(char)e(*msg\))p +Fn(:)k(Pro)o(vides)17 b(the)g(absolute)g(master)f(with)h(a)f(4000-b)o +(yte)g(bu\013er)i(to)104 305 y(store)g(all)d(p)q(ertinen)o(t)k +(information)14 b(ab)q(out)i(the)i(ro)q(ot)f(of)f(the)i(game)d(tree.)29 +b(The)17 b(return)i(v)n(alue)d(is)h(the)g(n)o(um)o(b)q(er)g(of)104 +346 y(b)o(ytes)d(used)h(in)f(the)g(string)g Fe(msg)p +Fn(.)62 421 y Fk(\017)21 b Fe(int)g(aphid)p 304 421 V +15 w(stub)p 407 421 V 14 w(decodeinit\(int)e(msg)p 814 +421 V 15 w(ln,)j(char)f(*msg\))p Fn(:)15 b(All)9 b(other)i(pro)q +(cesses)j(in)c(the)h(system,)f(aside)h(from)104 463 y(the)i(absolute)f +(master,)g(receiv)o(e)i(the)f(message)f(length)g(and)g(the)h(message)f +(enco)q(ded)i(b)o(y)e Fe(aphid)p 1606 463 V 15 w(stub)p +1709 463 V 15 w(encodeinit)p Fn(,)104 504 y(and)h(should)h(set)h(the)f +(ro)q(ot)g(of)g(their)g(game)e(tree,)j(accordingly)m(.)62 +579 y Fk(\017)21 b Fe(void)g(aphid)p 326 579 V 14 w(stub)p +428 579 V 15 w(movedownpath\(int)e(num)p 880 579 V 15 +w(moves,)h(char)h(*movepath\))p Fn(:)15 b(Called)10 b(b)o(y)h(the)h +(sla)o(v)o(es,)f(a)g(series)i(of)104 620 y Fe(num)p 173 +620 V 15 w(moves)d Fn(mo)o(v)o(es)h(is)g(giv)o(en)h(in)f +Fe(movepath)p Fn(,)f(with)h(eac)o(h)h(mo)o(v)o(e)e(b)q(eing)i +Fe(APHID)p 1328 620 V 15 w(MOVESIZE)e Fn(b)o(ytes)i(long.)17 +b(The)12 b(routine)104 662 y(should)h(pla)o(y)g(through)h(the)h(mo)o(v) +o(es)d(giv)o(en)i(in)f Fe(movepath)f Fn(from)h(the)h(ro)q(ot)g(of)f +(the)i(game)d(tree.)62 737 y Fk(\017)21 b Fe(void)g(aphid)p +326 737 V 14 w(stub)p 428 737 V 15 w(moveuppath\(int)e(num)p +836 737 V 15 w(moves,)i(char)g(*movepath\))p Fn(:)14 +b(Called)d(b)o(y)g(the)h(sla)o(v)o(es,)f(should)g(com-)104 +778 y(pletely)j(undo)f(an)o(y)h(c)o(hanges)g(made)f(b)o(y)h +Fe(aphid)p 856 778 V 14 w(stub)p 958 778 V 15 w(movedownpath)p +Fn(.)62 853 y Fk(\017)21 b Fe(int)g(aphid)p 304 853 V +15 w(stub)p 407 853 V 14 w(iterativedeepening\(i)o(nt)e(depth,)h(int)h +(last,)g(int)g(max\))p Fn(:)d(Called)13 b(b)o(y)h(the)h(sla)o(v)o(es,)f +(this)104 894 y(routine)j(should)f(return)i(the)g(searc)o(h)g(depth)f +(for)g(the)g(next)g(searc)o(h)h(of)f(a)f(leaf)g(no)q(de)i(from)d(a)h +(master's)g(tree.)28 b(F)m(or)104 936 y(most)12 b(programs)h(that)h(do) +g(iterativ)o(e)g(deep)q(ening)g(in)g(1)f(ply)h(steps,)h(this)f(should)f +(simply)f(return)j Fe(last)21 b(+)h(1)p Fn(.)62 1011 +y Fk(\017)f Fe(void)g(aphid)p 326 1011 V 14 w(stub)p +428 1011 V 15 w(preparesearch\(int)e(depth,)h(int)h(plytogo,)f(int)i +(winstats[],)d(int)i(*alpha,)104 1052 y(int)g(*beta\))p +Fn(:)16 b(Called)10 b(b)o(y)i(the)g(sla)o(v)o(es,)f(this)h(routine)g +(sets)g(the)g(initial)e(windo)o(w)h(searc)o(hed)i(b)o(y)e(the)h(sla)o +(v)o(es.)17 b(Statistics)104 1094 y(on)12 b(previous)h(searc)o(hes)h +(and)f(the)g(curren)o(t)h(guessed)g(score)g(at)e(the)h(ro)q(ot)g(are)f +(passed)i(in)e(via)g(the)h Fe(winstats[])d Fn(arra)o(y)m(.)104 +1135 y(The)j(routine)f(should)h(set)g Fe(*alpha)e Fn(and)h +Fe(*beta)g Fn(b)q(efore)h(terminating.)j(F)m(urthermore,)c(this)g +(routine)h(should)f(ensure)104 1177 y(that)i(an)o(y)f(global)f("alarm") +g(states)j(ha)o(v)o(e)e(b)q(een)i(turned)g(o\013.)62 +1251 y Fk(\017)21 b Fe(int)g(aphid)p 304 1251 V 15 w(stub)p +407 1251 V 14 w(alphabeta\(int)f(depth,)g(int)h(plytogo,)f(int)i +(alpha,)e(int)h(beta\))p Fn(:)c(Called)c(b)o(y)h(b)q(oth)104 +1293 y(the)f(master)e(and)h(the)h(sla)o(v)o(es,)f(this)g(routine)g +(should)g(call)g(y)o(our)g(implem)o(en)o(tation)d(of)j +Fm(\013\014)r Fn(,)g(and)g(return)h(the)g(minim)o(ax)104 +1334 y(v)n(alue)g(bac)o(k)h(to)g(the)g(APHID)g(library)m(.)62 +1409 y Fk(\017)21 b Fe(int)g(aphid)p 304 1409 V 15 w(stub)p +407 1409 V 14 w(evaluate\(int)f(depth,)g(int)i(alpha,)e(int)h(beta\))p +Fn(:)c(Called)c(b)o(y)g(the)h(master)f(the)h(\014rst)g(time)104 +1451 y(it)g(visits)h(a)f(leaf)g(of)g(its)h(tree,)g(this)g(routine)g +(should)f(simply)f(call)h(y)o(our)g(ev)n(aluation)f(routine)i(and)g +(return)g(the)h(score)104 1492 y(for)d(the)i(p)q(osition)e(reac)o(hed)i +(at)f Fe(depth)f Fn(ply)g(within)g(the)i(tree.)62 1567 +y Fk(\017)21 b Fe(int)g(aphid)p 304 1567 V 15 w(stub)p +407 1567 V 14 w(stopsearch\(int)e(pass)p 836 1567 V 15 +w(stats[]\))p Fn(:)j(Called)16 b(only)f(b)o(y)i(the)g(absolute)f +(master)g(pro)q(cess,)j(this)104 1608 y(routine)d(should)g(c)o(hec)o(k) +h(y)o(our)e(timer)g(and)h(determine)g(if)f(y)o(our)h(time)e(limit)f +(has)k(b)q(een)g(exceeded)h(for)d(a)h(searc)o(h.)25 b(If)104 +1650 y(the)14 b(time)f(limit)e(has)j(b)q(een)h(exceeded,)h(this)e +(routine)g(should)f(return)i(1;)f(otherwise,)g(0.)62 +1725 y Fk(\017)21 b Fe(int)g(aphid)p 304 1725 V 15 w(stub)p +407 1725 V 14 w(visited\(\))p Fn(:)c(Called)d(b)o(y)g(the)g(sla)o(v)o +(es,)g(this)g(should)g(return)i(a)e(global)e(coun)o(t)j(of)e(the)i(n)o +(um)o(b)q(er)f(of)104 1766 y(no)q(des)g(visited)g(b)o(y)g(the)g +(program.)0 1882 y Fc(A.5)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h +(Master)g(and)g(Sla)n(v)n(e)62 1951 y Fk(\017)i Fe(void)g(aphid)p +326 1951 V 14 w(startup\(argv\))p Fn(:)k(In)19 b(the)g(\014rst)h(pro)q +(cess)g(run,)g(PVM)f(is)g(spa)o(wned)g(on)g(the)g(mac)o(hines)f(sp)q +(eci\014ed,)104 1992 y(and)c(a)f(sla)o(v)o(e)h(pro)q(cess)i(is)e(spa)o +(wned)g(with)g(the)h(same)e(argumen)o(t)g(list)g Fe(\(argv\))g +Fn(as)h(the)h(master,)e(as)h(sp)q(eci\014ed)i(b)o(y)d(the)104 +2034 y Fe(aphid.config)e Fn(\014le.)18 b(In)c(a)g(spa)o(wned)g(pro)q +(cess,)h(the)g(APHID)f(library)f(nev)o(er)i(exits)f(this)g(function)g +(call.)62 2108 y Fk(\017)21 b Fe(void)g(aphid)p 326 2108 +V 14 w(exit\(\))p Fn(:)j(This)17 b(routine)h(remo)o(v)o(es)e(a)h(pro)q +(cess)j(from)15 b(the)j(PVM)g(group,)f(and)g(it)g(should)g(b)q(e)h +(called)104 2150 y(b)q(efore)e(an)o(y)f(pro)q(cess)j(exits)e(\(due)g +(to)g(errors)h(or)e(normal)f(completion\).)21 b(If)16 +b(the)g(pro)q(cess)h(is)f(the)g(absolute)g(master,)104 +2191 y(completion)11 b(of)i(this)h(routine)f(ensures)j(that)d(all)f(of) +h(the)h(spa)o(wned)g(pro)q(cesses)i(ha)o(v)o(e)d(b)q(een)i(sh)o(ut)f +(do)o(wn)f(successfully)m(.)62 2266 y Fk(\017)21 b Fe(int)g(aphid)p +304 2266 V 15 w(master\(\))p Fn(:)16 b(Returns)f(1)e(if)g(the)i(pro)q +(cess)h(is)d(a)h(master)f(in)h(the)g(hierarc)o(h)o(y)m(,)g(and)f(0)h +(otherwise.)62 2341 y Fk(\017)21 b Fe(int)g(aphid)p 304 +2341 V 15 w(slave\(\))p Fn(:)14 b(Returns)d(1)f(if)g(the)h(pro)q(cess)h +(w)o(as)e(spa)o(wned,)h(returns)h(0)e(if)f(it)h(is)g(the)h(absolute)f +(master)g(pro)q(cess)104 2382 y(whic)o(h)k(spa)o(wned)h(the)g(other)g +(pro)q(cesses.)23 b(Note)15 b(that)f(a)h(pro)q(cess)h(can)f(b)q(e)g(b)q +(oth)f(a)h(sla)o(v)o(e)f(and)g(a)g(master)g(dep)q(ending)104 +2424 y(on)f(the)i(hierarc)o(h)o(y)f(sp)q(eci\014ed)i(in)d +Fe(aphid.config)p Fn(.)954 2828 y(18)p eop +%%Page: 19 19 +19 18 bop 0 195 a Fc(A.6)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h +(Masters)g(Only)62 263 y Fk(\017)i Fe(void)g(aphid)p +326 263 14 2 v 14 w(initserach\(int)e(maxdepth\))p Fn(:)d(Called)d(b)o +(y)h(the)g(absolute)g(master)g(pro)q(cess,)h(this)f(pro)q(cedure)h +(pre-)104 305 y(pares)i(to)g(start)g(a)f(searc)o(h)i(in)e(parallel.)26 +b(This)16 b(routine)h(calls)f Fe(aphid)p 1212 305 V 15 +w(stub)p 1315 305 V 15 w(encodeinit)p Fn(,)f(and)h(then)h(informs)e +(all)104 346 y(of)e(the)i(other)g(pro)q(cesses)i(of)c(the)i(curren)o(t) +h(state)f(of)e(the)i(game.)i(The)e(parameter)f(indicates)g(the)h(maxim) +n(um)10 b(depth)104 388 y(that)k(an)o(y)f(pro)q(cess)j(is)e(nominall)o +(y)d(allo)o(w)o(ed)i(to)g(searc)o(h,)i Fl(not)g(including)h(se)n(ar)n +(ch)e(extensions)p Fn(.)62 463 y Fk(\017)21 b Fe(int)g(aphid)p +304 463 V 15 w(rootsearch\(int)e(depth,)h(int)h(plytogo,)f(int)i +(alpha,)e(int)h(beta\))p Fn(:)26 b(This)18 b(routine)h(is)f(called)104 +504 y(b)o(y)d(the)h(absolute)g(master,)e(instead)i(of)f(calling)f(the)i +(t)o(ypical)f Fm(\013\014)i Fn(implemen)o(taiton.)i(It)d(allo)o(ws)e(a) +h(master)g(pro)q(cess)104 546 y(to)i(do)g(m)o(ultiple)e(passes)k(of)e +(the)h(tree)g(un)o(til)f(the)h(searc)o(h)g(is)g(completed,)f(or)g(the)h +(alarm)d(has)j(b)q(een)g(signalled)f(via)104 587 y Fe(aphid)p +217 587 V 14 w(stub)p 319 587 V 15 w(stopsearch)p Fn(.)f(If)e(the)g +(searc)o(h)i(is)d(allo)o(w)o(ed)g(to)h(complete,)f(this)h(routine)g +(returns)h(the)g(minim)o(ax)c(v)n(alue)104 629 y(of)i(the)i(tree)g +(that)f(it)f(has)h(b)q(een)h(ask)o(ed)f(to)g(searc)o(h.)62 +703 y Fk(\017)21 b Fe(int)g(aphid)p 304 703 V 15 w(intnode)p +473 703 V 14 w(premove\(int)e(depth,)i(char)g(*moveptr\))p +Fn(:)15 b(Called)d(b)o(y)h(the)g(absolute)g(master,)e(this)i(rou-)104 +745 y(tine)h(stores)h(mo)o(v)o(es)e(made)f(b)q(efore)j(a)f(call)f(to)g +Fe(aphid)p 938 745 V 15 w(rootsearch)f Fn(in)h(the)i(mo)o(v)o(e)d +(list.)62 820 y Fk(\017)21 b Fe(void)g(aphid)p 326 820 +V 14 w(endsearch\(\))p Fn(:)15 b(The)e(absolute)f(master)g(should)g +(call)f(this)i(routine)f(when)h(it)f(is)g(\014nished)h(searc)o(hing)f +(a)104 861 y(tree)i(that)e(has)h(b)q(een)h(called)e(;)h(it)f(stops)h +(the)g(sla)o(v)o(es)g(from)e(w)o(orking)g(on)i(the)g(lea)o(v)o(es)g(of) +f(the)h(game)e(tree)j(and)e(prepares)104 903 y(the)i(sla)o(v)o(es)g(to) +g(receiv)o(e)h(a)f(new)g(ro)q(ot)g(p)q(osition.)62 977 +y Fk(\017)21 b Fe(void)g(aphid)p 326 977 V 14 w(horizon\(int)f(depth\)) +p Fn(:)15 b(A)d(\\master")e(pro)q(cess)j(calls)e(this)h(routine)f(to)g +(determine)h(if)e(it)h(has)h(reac)o(hed)104 1019 y(its)i(arti\014cial)f +(horizon.)62 1094 y Fk(\017)21 b Fe(void)g(aphid)p 326 +1094 V 14 w(eval)p 428 1094 V 15 w(leaf\(int)f(alpha,)h(int)g(beta,)g +(int)g(depth,)g(char)g(*p)p 1403 1094 V 15 w(hash,)g(char)g(*p)p +1702 1094 V 15 w(key\))p Fn(:)104 1135 y(This)10 b(routine)h +(determines)g(a)f(score)i(v)n(alue)d(for)h(the)i(leaf,)e(based)h(on)f +(the)h(b)q(est)h(information)7 b(a)o(v)n(ailable)h(to)j(the)g(master.) +104 1177 y Fe(p)p 129 1177 V 15 w(hash)i Fn(and)h Fe(p)p +348 1177 V 15 w(key)g Fn(are)g(required)h(to)f(determine)f(if)g(this)h +(no)q(de)h(has)f(b)q(een)h(previously)e(visited.)62 1251 +y Fk(\017)21 b Fe(void)g(aphid)p 326 1251 V 14 w(intnode)p +494 1251 V 15 w(start\(int)f(depth,)g(char)h(*p)p 1032 +1251 V 15 w(hash,)g(char)g(*p)p 1331 1251 V 15 w(key\))p +Fn(:)16 b(Called)11 b(b)o(y)g(a)h(master)f(pro)q(cess,)104 +1293 y(this)j(routine)g(initializes)e(b)q(ound)i(gathering)g +(information)d(for)i(an)h(in)o(terior)f(no)q(de)h(within)f(the)i(game)d +(tree.)19 b Fe(p)p 1850 1293 V 16 w(hash)104 1334 y Fn(and)13 +b Fe(p)p 209 1334 V 16 w(key)g Fn(are)h(required)h(to)f(determine)g(if) +f(this)h(no)q(de)g(has)g(b)q(een)h(previously)f(visited.)62 +1409 y Fk(\017)21 b Fe(void)g(aphid)p 326 1409 V 14 w(intnode)p +494 1409 V 15 w(move\(int)f(depth,)g(char)h(*moveptr\))p +Fn(:)k(Called)18 b(b)o(y)g(a)g(master)g(pro)q(cess,)i(this)f(routine) +104 1451 y(inserts)c(the)f(mo)o(v)o(e)e(p)q(oin)o(ted)i(to)f(b)o(y)h +Fe(moveptr)e Fn(in)o(to)h(a)h(hidden)g(mo)o(v)o(e)e(list)h(that)h(will) +e(ev)o(en)o(tually)h(b)q(e)i(sen)o(t)f(to)g(a)f(sla)o(v)o(e)104 +1492 y(in)g Fe(aphid)p 265 1492 V 15 w(eval)p 368 1492 +V 15 w(leaf)p Fn(.)62 1567 y Fk(\017)21 b Fe(void)g(aphid)p +326 1567 V 14 w(intnode)p 494 1567 V 15 w(update\(int)e(depth,)i(int)g +(value\))p Fn(:)27 b(Called)19 b(b)o(y)f(the)i(master)f(pro)q(cess,)j +(this)d(routine)104 1608 y(tak)o(es)d(the)g(v)n(alue)f(returned)j(b)o +(y)d(the)i(c)o(hild)e Fm(\013\014)j Fn(call)d(and)h(uses)h(it)e(to)h +(up)q(date)g(the)h(hidden)e(\\b)q(ound")h(information)104 +1650 y(gathered)f(for)e(ev)o(ery)i(no)q(de)f(in)f(the)i(master's)e +(tree.)62 1725 y Fk(\017)21 b Fe(void)g(aphid)p 326 1725 +V 14 w(intnode)p 494 1725 V 15 w(fixbound\(int)e(depth\))p +Fn(:)h(In)c(the)g(case)h(of)e(a)h(cuto\013,)g(this)g(routine)g(will)e +(\014x)h(the)i(hidden)104 1766 y(b)q(ound)d(information)d(when)j(not)g +(all)f(mo)o(v)o(es)f(ha)o(v)o(e)i(b)q(een)h(fully)d(explored.)62 +1841 y Fk(\017)21 b Fe(void)g(aphid)p 326 1841 V 14 w(intnode)p +494 1841 V 15 w(end\(int)f(depth,)h(int)g(*score\))p +Fn(;)12 b(This)j(routine)f(is)g(called)g(b)o(y)h(a)f(master)f(for)h(ev) +o(ery)i(in-)104 1882 y(ternal)d(no)q(de)g(within)f(the)i(tree,)g(and)e +(ensures)j(that)e(the)g(score)i(returned)f(is)f(consisten)o(t)h(with)e +(previously)h(gathered)104 1924 y(information)e(ab)q(out)j(the)g(no)q +(de.)0 2040 y Fc(A.7)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h(Sla) +n(v)n(es)g(Only)62 2108 y Fk(\017)i Fe(int)g(aphid)p +304 2108 V 15 w(checkalarm\(\))p Fn(:)e(This)d(routine)h(c)o(hec)o(ks)g +(to)f(see)h(if)f(a)f(searc)o(h)j(should)e(b)q(e)g(terminated.)24 +b(If)16 b(the)h(v)n(alue)104 2150 y(returned)f(is)e(equal)f(to)h(0,)g +(the)h(searc)o(h)g(should)f(con)o(tin)o(ue.)19 b(If)13 +b(the)i(v)n(alue)f(returned)h(is)f(not)h(equal)e(to)h(0,)g(the)g +(curren)o(t)104 2191 y(searc)o(h)h(has)f(b)q(een)h(in)o(terrupted,)g +(and)e(w)o(e)h(should)g(terminate)f(it)h(in)f(a)h(\\nice")g(w)o(a)o(y)m +(.)954 2828 y(19)p eop +%%Page: 20 20 +20 19 bop 0 195 a Fc(A.8)56 b(The)18 b(\\aphid.con\014g")h(File)e +(Description)62 263 y Fk(\017)k Fn(The)15 b(\014rst)g(line)f(con)o +(tains)h(t)o(w)o(o)f(in)o(tegers:)21 b(The)15 b(n)o(um)o(b)q(er)f(of)g +(lev)o(els)g(in)g(the)i(pro)q(cess)g(hierarc)o(h)o(y)m(,)e(and)h(the)g +(minim)n(um)104 305 y(gran)o(ularit)o(y)d(of)i(w)o(ork)f(that)h(w)o(e)g +(are)h(allo)q(cated)e(in)g(parallel.)62 380 y Fk(\017)21 +b Fn(The)d(next)g(lines)g(eac)o(h)g(con)o(tain)g(one)g(in)o(teger,)g +(eac)o(h)g(in)o(teger)h(represen)o(ting)g(the)f(v)n(alue)g(of)f +Fm(d)1607 365 y Fd(0)1636 380 y Fn(for)g(a)h(lev)o(el)f(in)g(the)104 +421 y(pro)q(cess)e(hierarc)o(h)o(y)m(.)62 496 y Fk(\017)21 +b Fn(The)14 b(last)g(lines)g(indicate)h(what)f(mac)o(hines)f(the)i(pro) +q(cesses)i(should)c(b)q(e)i(spa)o(wned)g(on,)f(and)g(what)g(executable) +h(is)f(to)104 537 y(b)q(e)j(run,)g(one)g(line)f(p)q(er)i(pro)q(cess)g +(to)f(b)q(e)g(spa)o(wned.)27 b(By)17 b(default,)f(APHID)h(will)e(spa)o +(wn)i(an)f(executable)i(with)e(the)104 579 y(same)d(program)f(name)h +(as)h(the)h(original)d(program)g(unless)j(a)f Fe(#)f +Fn(c)o(haracter)j(app)q(ears)e(on)g(the)h(line,)e(whic)o(h)h(indicates) +104 620 y(a)h(separation)h(b)q(et)o(w)o(een)h(the)f(mac)o(hine)e(name)g +(and)i(the)g(program)e(name.)22 b(The)16 b(absolute)f(master)g(pro)q +(cess)j(is)d(not)104 662 y(listed)c(in)f(this)h(hierarc)o(h)o(y)m(.)17 +b(A)10 b(pro)q(cess)j(hierarc)o(h)o(y)e(can)g(b)q(e)g(sp)q(eci\014ed)i +(using)d(tabs)h(to)g(mo)o(v)o(e)e(the)i(start)h(of)e(the)h(mac)o(hine) +104 703 y(name)h(o)o(v)o(er)i(in)g(the)g(\014le.)954 +2828 y(20)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/parallel/ciancarini94comparison.ps b/parallel/ciancarini94comparison.ps new file mode 100755 index 0000000..ec7f5d1 --- /dev/null +++ b/parallel/ciancarini94comparison.ps @@ -0,0 +1,24943 @@ +%!PS-Adobe-2.0 +%%Title: tr14 +%%Creator: PrintMonitor +%%CreationDate: Monday, May 23, 1994 +%%Pages: (atend) +%%BoundingBox: ? ? ? ? +%%PageBoundingBox: 28 30 566 811 +%%For: cianca +%%DocumentProcSets: "(AppleDict md)" 71 0 +%% © Copyright Apple Computer, Inc. 1989-91 All Rights Reserved. +%%EndComments +%%BeginProcSet: "(AppleDict md)" 71 0 +userdict/LW{save statusdict/product get(LaserWriter)anchorsearch +exch pop{dup length 0 eq{pop 1}{( Plus)eq{2}{3}ifelse}ifelse}{0}ifelse exch restore}bind put +userdict/downloadOK known not{userdict/downloadOK{systemdict dup/eexec known exch/cexec known and LW dup 1 ne exch 2 ne and and vmstatus exch sub exch pop 120000 gt and}bind put}if +userdict/type42known known not{userdict/type42known systemdict/resourcestatus known{42/FontType resourcestatus{pop pop true}{false}ifelse }{false}ifelse put}if +type42known not downloadOK and {userdict begin /*charpath /charpath load def/charpathflag false def/charpath{userdict/charpathflag true put userdict/*charpath get exec userdict/charpathflag false put}bind def end}if +userdict/checkload known not{userdict/checkload{{pop exec} {save 3 dict begin/mystring 6050 string def +exch/endstring exch def{currentfile mystring readline not{stop}if endstring eq{exit}if}loop end restore pop}ifelse}bind put}if +userdict/LW+{LW 2 eq}bind put +userdict/ok known not{userdict/ok{systemdict/statusdict known dup{LW 0 gt and}if}bind put}if +systemdict/currentpacking known{currentpacking true setpacking}if +/md 270 dict def md begin +/av 71 def +/T true def/F false def/mtx matrix def/s75 75 string def/sa8 8 string def/sb8 8 string def +/sc8 8 string def/sd8 8 string def/s1 ( ) def/pxs 1 def/pys 1 def +/ns false def +1 0 mtx defaultmatrix dtransform exch atan/pa exch def/nlw .24 def/ppr [-32 -29.52 762 582.48] def +/pgr [0 0 0 0] def +/pgs 1 def/por true def/xb 500 array def/so true def/tso true def/fillflag false def/pnm 1 def/fmv true def +/sfl false def/ma 0 def/invertflag false def/dbinvertflag false def/xflip false def/yflip false def/noflips true def/scaleby96 false def/fNote true def/fBitStretch true def +/4colors false def/fg (Rvd\001\001\000\000\177) def +/bdf{bind def}bind def +/xdf{exch def}bdf +/xl{neg exch neg translate}bdf +/fp{pnsh 0 ne pnsv 0 ne and}bdf +/nop{}bdf/lnop[/nop load]cvx bdf +/vrb[ +{fp{fg 6 get 0 ne{gsave stroke grestore}{gsave 1 setlinewidth pnsh pnsv scale stroke grestore}ifelse}if newpath}bind +/eofill load +dup +/newpath load +2 index +dup +{clip newpath}bind +{}bind +dup +2 copy +]def +/sgd systemdict/setpagedevice known{{2 dict begin/PreRenderingEnhance exch def/Policies 1 dict dup/PreRenderingEnhance 1 put def currentdict end setpagedevice}}{{pop}}ifelse bdf + +/svsc systemdict/currentcolorscreen known{{currentcolorscreen/dkspf xdf/dkrot xdf/dkfreq xdf/dyspf xdf/dyrot xdf/dyfreq xdf/dmspf xdf/dmrot xdf/dmfreq xdf +/dcspf xdf/dcrot xdf/dcfreq xdf}}{{currentscreen/spf xdf/rot xdf/freq xdf}}ifelse bdf +/doop{vrb exch get exec}bdf +/psu{/udf xdf/tso xdf /fNote xdf/fBitStretch xdf/scaleby96 xdf/yflip xdf/xflip xdf +/invertflag xdf/dbinvertflag invertflag statusdict begin version cvr 47.0 ge product (LaserWriter) eq not and end invertflag and {not}if def +xflip yflip or{/noflips false def}if +/pgs xdf 2 index .72 mul exch div/pys xdf div .72 mul/pxs xdf ppr astore pop pgr astore pop/por xdf sn and/so xdf}bdf +/tab{userdict /11x17 known{userdict begin /11x17 load exec end}{statusdict /setpage known{statusdict begin 792 1224 1 setpage end}{statusdict /setpageparams known{statusdict begin 792 1224 0 1 setpageparams end}if}ifelse}ifelse}bdf +/a3Size{userdict /a3 known{userdict begin /a3 load exec end}{statusdict /setpageparams known{statusdict begin 842 1191 0 1 setpageparams end}if}ifelse}bdf +/txpose{fNote{smalls}{bigs}ifelse pgs get exec pxs pys scale ppr aload pop por{noflips{pop exch neg exch translate pop 1 -1 scale}if +xflip yflip and{pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if +xflip yflip not and{pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{ppr 1 get neg ppr 0 get neg translate}if} +{noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and{translate 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 translate}if +xflip yflip not and{translate pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}if}ifelse +statusdict begin/waittimeout where{pop waittimeout 300 lt{statusdict/waittimeout 300 put}if}if end +scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy translate .96 dup scale neg exch neg exch translate}if}bdf +/fr{4 copy pgr aload pop 3 -1 roll add 3 1 roll exch add 6 2 roll 3 -1 roll +sub 3 1 roll exch sub 3 -1 roll exch div 3 1 roll div exch scale pop pop xl}bdf +/obl{{0.212557 mul}{pop 0}ifelse}bdf +/sfd{ps fg 5 -1 roll get mul 100 div 0 ps 5 -1 roll obl ps neg 0 0 6a astore makefont setfont}bdf +/fnt{findfont sfd}bdf +/bt{sa 3 1 roll 3 index and put}bdf +/sa(\000\000\000\000\000\000\000\000\000\000)def +/fs{0 1 bt 1 2 bt 2 4 bt 3 8 bt 4 16 bt 5 32 bt 6 64 bt 7 128 bt sa exch 8 exch put}bdf +/mx1 matrix def +/mx2 matrix def +/mx3 matrix def +/bu{currentpoint 4colors{currentcmykcolor}{currentrgbcolor}ifelse currentlinewidth currentlinecap currentlinejoin +currentdash exch aload length fg 5 sfl{1}{0}ifelse put pnsv pnsh +2t aload pop 3a aload pop mx2 aload pop mx1 aload pop mtx currentmatrix aload pop +mx3 aload pop ps pm restore/ps xdf mx3 astore pop}bdf +/bn{/pm save def mx3 setmatrix newpath 0 0 moveto ct dup 39 get 0 exch getinterval cvx exec mtx astore setmatrix mx1 astore pop mx2 astore pop 3a +astore pop 2t astore pop/pnsh xdf/pnsv xdf gw +/sfl fg 5 get 0 ne def array astore exch setdash setlinejoin setlinecap +setlinewidth 4colors{mysetcmykcolor}{setrgbcolor}ifelse moveto}bdf +/fc{save vmstatus exch sub 50000 lt +{(%%[|0|]%%)=print flush}if pop restore}bdf +/tc{32768 div add 3 1 roll 32768 div add 2t astore pop}bdf +/3a [0 0 0] def +/2t 2 array def +/tp{3a astore pop}bdf +/tt{mx2 currentmatrix pop currentpoint 2 copy 2t aload pop qa 2 copy translate 3a aload pop exch dup 0 eq +{pop}{1 eq{-1 1}{1 -1}ifelse scale}ifelse rotate pop neg exch neg exch translate moveto}bdf +/te{mx2 setmatrix}bdf +/th{3 -1 roll div 3 1 roll exch div 2 copy mx1 scale pop scale/sfl true def}bdf +/tu{1 1 mx1 itransform scale/sfl false def}bdf +/ts{1 1 mx1 transform scale/sfl true def}bdf +/fz{/ps xdf}bdf +/dv{dup 0 ne{div}{pop}ifelse}bdf +/pop4{pop pop pop pop}bdf +/it{sfl{mx1 itransform}if}bdf +/gm{exch it moveto}bdf/rm{it rmoveto}bdf +/lm{currentpoint sfl{mx1 transform}if exch pop sub 0 exch it rmoveto}bdf +/fm{statusdict/manualfeed known}bdf +/se{statusdict exch/manualfeed exch put}bdf +/mf{dup/ma exch def 0 gt{fm se/t1 5 st ok ma 1 gt and{/t2 0 st/t3 0 st +statusdict/manualfeedtimeout 3600 put +}if}if}bdf +/jn{/statusdict where exch pop{statusdict exch /jobname exch put}if}bdf +/pen{pnm mul/pnsh xdf pnm mul/pnsv xdf pnsh setlinewidth}bdf +/min{2 copy gt{exch}if pop}bdf +/max{2 copy lt{exch}if pop}bdf +/dh{fg 6 1 put array astore dup {1 pxs div mul exch}forall astore exch pop exch pop exch setdash}bdf +/ih[currentdash]def +/rh{fg 6 0 put ih aload pop setdash}bdf +/dl{gsave nlw pys div setlinewidth 0 setgray}bdf +/dlin{exch currentpoint currentlinewidth 2 div dup +translate newpath moveto lineto currentpoint stroke grestore moveto}bdf +/lin{fg 6 get 0 ne{exch lineto currentpoint 0 doop moveto} +{exch currentpoint/pnlv xdf/pnlh xdf gsave newpath/@1 xdf/@2 xdf fp{pnlh @2 lt{pnlv @1 ge +{pnlh pnlv moveto @2 @1 lineto pnsh 0 rlineto +0 pnsv rlineto pnlh pnsh add pnlv pnsv add lineto pnsh neg 0 rlineto} +{pnlh pnlv moveto pnsh 0 rlineto @2 pnsh add @1 lineto 0 pnsv rlineto +pnsh neg 0 rlineto pnlh pnlv pnsv add lineto}ifelse}{pnlv @1 gt +{@2 @1 moveto pnsh 0 rlineto pnlh pnsh add pnlv lineto 0 pnsv rlineto +pnsh neg 0 rlineto @2 @1 pnsv add lineto}{pnlh pnlv moveto pnsh 0 rlineto +0 pnsv rlineto @2 pnsh add @1 pnsv add lineto pnsh neg 0 rlineto +0 pnsv neg rlineto}ifelse}ifelse +closepath fill}if @2 @1 grestore moveto}ifelse}bdf +/gw{/pnm fg 3 get fg 4 get div def}bdf +/lw{fg exch 4 exch put fg exch 3 exch put gw pnsv pnsh pen}bdf +/barc{/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf +/@6 xdf/@7 xdf/@8 xdf gsave +@5 @7 add 2 div @6 @8 add 2 div translate newpath 0 0 moveto +@5 @7 sub @6 @8 sub mtx currentmatrix pop scale @1{newpath}if +0 0 0.5 @4 @3 arc @4 @3 sub abs 360 ge{closepath}if +mtx setmatrix @2 doop grestore}bdf +/ar{dup 0 eq barc}bdf +/ov{0 exch 360 exch true barc}bdf +/rc{dup/@t xdf 0 eq{4 copy 3 -1 roll eq 3 1 roll eq and{pnsv 2 div sub exch pnsh 2 div sub exch 4 2 roll pnsv 2 div add exch pnsh 2 div add exch +/@t 1 def}if}if currentpoint 6 2 roll newpath 4 copy 4 2 roll exch moveto 6 -1 roll lineto lineto lineto closepath @t doop moveto}bdf +/mup{dup pnsh 2 div le exch pnsv 2 div le or}bdf +/rr{/@1 xdf 2. div/@2 xdf 2. div/@3 xdf +/@4 xdf/@5 xdf/@6 xdf/@7 xdf +@7 @5 eq @6 @4 eq @2 mup or or{@7 @6 @5 @4 @1 rc} +{@4 @6 sub 2. div dup @2 lt{/@2 xdf}{pop}ifelse +@5 @7 sub 2. div dup @2 lt{/@2 xdf}{pop}ifelse +@1 0 eq{/@2 @2 pnsh 2 div 2 copy gt{sub def}{0 pop4}ifelse}if +currentpoint newpath +@4 @6 add 2. div @7 moveto +@4 @7 @4 @5 @2 arcto pop4 +@4 @5 @6 @5 @2 arcto pop4 +@6 @5 @6 @7 @2 arcto pop4 +@6 @7 @4 @7 @2 arcto pop4 +closepath @1 doop moveto}ifelse}bdf +/pr{gsave newpath/pl{exch moveto/pl{exch lineto}def}def}bdf +/pl{exch lineto}bdf +/ep{dup 0 eq{{moveto}{exch lin}{}{(%%[|1|]%%)= flush}pathforall +pop grestore}{doop grestore}ifelse currentpoint newpath moveto}bdf +/gr{64. div setgray}bdf +/savescreen{ns not{/ns true def systemdict/currentcolorscreen known{currentcolorscreen/pkspf xdf/pkrot xdf/pkfreq xdf/pyspf xdf/pyrot xdf/pyfreq xdf/pmspf xdf/pmrot xdf/pmfreq xdf +/pcspf xdf/pcrot xdf/pcfreq xdf}{currentscreen/sspf xdf/srot xdf/sfreq xdf}ifelse}if}bdf +/restorescreen{/ns false def systemdict/setcolorscreen known{pcfreq pcrot/pcspf load pmfreq pmrot/pmspf load pyfreq pyrot/pyspf load +pkfreq pkrot/pkspf load setcolorscreen}{sfreq srot/sspf load setscreen}ifelse}bdf +/pat{savescreen sa8 +copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sa8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}setscreen exch not{gr}{pop}ifelse}bdf +/sg{restorescreen gr}bdf +/cpat{savescreen 10 2 roll 7 -1 roll sa8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sa8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}8 -1 roll sb8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sb8 +exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}9 -1 roll sc8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sc8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}10 -1 roll sd8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sd8 +exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}psuedo1 dsc 4{4 -1 roll 1 exch 64 div sub}repeat mysetcmykcolor pop pop}bdf +systemdict/setcolorscreen known{/psuedo1 lnop bdf/dsc/setcolorscreen load def}{/psuedo1{16{pop}repeat sa8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sa8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}}bdf +/bwsc{setscreen dup gr 0 exch 0 exch 64 exch 64 exch 64 exch}bdf/dsc/bwsc load def +}ifelse +systemdict/setcmykcolor known{/mysetcmykcolor /setcmykcolor load def}{/mysetcmykcolor{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll}repeat setrgbcolor pop}bdf}ifelse +/dc{transform round .5 sub exch round .5 sub exch itransform}bdf +/sn{userdict/smooth4 known}bdf +/x8{3 bitshift}bdf +/x4{2 bitshift}bdf +/d4{-2 bitshift}bdf +/d8{-3 bitshift}bdf +/rb{15 add -4 bitshift 1 bitshift}bdf +/db{/@7 save def/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf/@6 @5 @3 4 add mul def +dc translate scale/xdbit 1 1 idtransform abs/ydbit exch def abs def{0 0 1 ydbit add 1 10 rc clip}if +@1 0 eq @1 4 eq or{currentrgbcolor 1 setgray ydbit 0 1 ydbit add 1 2 rc setrgbcolor}if +@1 3 eq @1 7 eq or{1 setgray}{currentrgbcolor 2 index eq exch 2 index eq and exch pop{0 setgray}if}ifelse/@9 @1 0 eq @1 1 eq @1 3 eq or or dbinvertflag xor def/@13 @6 def +@2 fBitStretch or{/@10 @4 x4 def/@11 @3 x4 def/@12 @10 rb def/@13 @12 @11 mul def/@15 1 1 dtransform abs/calcY 1 index def round cvi/@14 exch def +abs/calcX 1 index def round cvi scaleby96 not{1 add}if def/@16 @15 rb def/@17 @16 @14 mul def}if +sn @13 60000 lt and @2 fBitStretch or and{mtx currentmatrix dup 1 get exch 2 get 0. eq exch 0. eq and @17 60000 lt and fBitStretch and{@16 3 bitshift @14 @9 [calcX 0 0 calcY 0 0]{@17 string @13 string +currentfile @6 string readhexstring pop 1 index @4 @3 @5 @12 @2 smooth4 +@10 @11 @12 dup string 5 index @15 @14 @16 dup string stretch}imagemask}{@12 x8 @11 @9 [@10 0 0 @11 0 0]{@13 string +currentfile @6 string readhexstring pop 1 index @4 @3 @5 @12 @2 smooth4}imagemask}ifelse}{@5 3 bitshift @3 4 add @9 [@4 0 0 @3 0 2]{currentfile @6 string readhexstring pop}imagemask}ifelse +@7 restore}bdf +systemdict/setcmykcolor known{/psuedo lnop bdf/di/colorimage load def}{/routines[{.3 mul add 1}bind{.59 mul add 2}bind{.11 mul add round cvi str exch i exch put/i i 1 add def 0 0}bind]def +/psuedo{/i 0 def 0 exch 0 exch{exch routines exch get exec}forall pop pop str}bdf/bwi{pop pop image}bdf/di/bwi load def}ifelse +/cdb{/@7 save def/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf +systemdict/setcmykcolor known not{dc}if translate scale /@6 xdf +/@18 @5 dup 60000 ge{pop 60000}if string def @6 not{/str @18 0 @18 length 3 idiv getinterval def}if @4 @3 8 [@4 0 0 @3 0 0]@6{{currentfile @18 readhexstring pop}image}{{currentfile @18 readhexstring pop psuedo}false 3 di}ifelse @7 restore}bdf +/wd 16 dict def +/mfont 14 dict def +/mdf{mfont wcheck not{/mfont 14 dict def}if mfont begin xdf end}bdf +/cf{{1 index/FID ne{def}{pop pop}ifelse}forall}bdf/rf{/@1 exch def/@2 exch def +FontDirectory @2 known{cleartomark pop}{findfont dup begin dup length @1 add dict begin +cf{/Encoding macvec def}{Encoding dup length array copy/Encoding exch def +counttomark 2 idiv{Encoding 3 1 roll put}repeat}ifelse +pop +exec currentdict end end @2 exch definefont pop}ifelse}bdf +/bmbc{exch begin wd begin +/cr xdf +save +CharTable cr 6 mul 6 getinterval{}forall +/bitheight xdf/bitwidth xdf +.96 div/width xdf +Gkernmax add/XOffset xdf Gdescent add/YOffset xdf/rowbytes xdf +rowbytes 255 eq{0 0 0 0 0 0 setcachedevice} +{Gnormsize dup scale +width 0 XOffset YOffset bitwidth XOffset add bitheight YOffset add +setcachedevice +rowbytes 0 ne{ +XOffset YOffset translate newpath 0 0 moveto +bitwidth bitheight scale +sn{ +/xSmt bitwidth x4 def +/ySmt bitheight x4 def +/rSmt xSmt rb def +rSmt x8 ySmt true +[xSmt 0 0 ySmt neg 0 ySmt] +{rSmt ySmt mul string CharData cr get +1 index bitwidth bitheight rowbytes rSmt tso smooth4} +}{rowbytes 3 bitshift bitheight 4 add true +[bitwidth 0 0 bitheight neg 0 bitheight 2 add] +{CharData cr get} +}ifelse +imagemask +}if +}ifelse +restore +end end +}bdf +/bb{.96 exch div/Gnormsize mdf 2 index +/Gkernmax mdf 1 index/Gdescent mdf +3 index div 4 1 roll +2 index div 1. 5 2 roll +exch div 4 1 roll +4 array astore/FontBBox mdf +}bdf +/cdf{mfont/CharData get 3 1 roll put}bdf +/bf{ +mfont begin +/FontType 3 def +/FontMatrix [1 0 0 1 0 0] def +/Encoding macvec def +/MFontType 0 def +/BuildChar/bmbc load def +end +mfont definefont pop +}bdf +/wi LW 1 eq{{gsave 0 0 0 0 0 0 0 0 moveto lineto lineto lineto closepath clip stringwidth grestore}bind}{/stringwidth load}ifelse def +/aps{0 get 124 eq}bdf +/xc{s75 cvs dup}bdf +/xp{put cvn}bdf +/scs{xc 3 67 put dup 0 95 xp}bdf +/sos{xc 3 79 xp}bdf +/sbs{xc 1 66 xp}bdf +/sis{xc 2 73 xp}bdf +/sob{xc 2 79 xp}bdf +/sss{xc 4 83 xp}bdf +/dd{exch 1 index add 3 1 roll add exch}bdf +/smc{moveto dup show}bdf +/ndf2{udf{dup /FontType get 0 eq{/FDepVector get{dup /FontType get 0 eq{ndf2}{dup /df2 known{begin df2 0 null put end +}{pop}ifelse}ifelse}forall}{/df2 known{dup begin df2 0 null put end}if}ifelse}{pop}ifelse}bdf +/kwn{FontDirectory 1 index known{findfont dup ndf2 exch pop}}bdf +/gl{1 currentgray sub setgray}bdf +/newmm{dup /FontType get 0 eq{dup maxlength dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall currentdict end +dup /FDepVector 2 copy get[exch 6 index exch 6 index exch{newmm 3 1 roll}forall pop pop] put dup +}{/mfont 10 dict def mfont begin/FontMatrix [1 0 0 1 0 0] def +/FontType 3 def/Encoding macvec def/df 1 index def/df2 1 array def/FontBBox [0 0 1 1] def/StyleCode 2 index def +/mbc{bcarray StyleCode get}def/BuildChar{exch begin wd begin/cr exch def/cs s1 dup 0 cr put def df /MFontType known not{ +df2 0 get null eq{df dup length 2 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall +/StrokeWidth 1 0 FontMatrix idtransform pop dup nlw mul pys div ps div exch 0.012 mul 2 copy le{exch}if pop def/PaintType 2 def currentdict end +/q exch definefont df2 exch 0 exch put}if}if mbc exec end end}def end mfont}ifelse +3 index exch definefont exch pop}bdf +/mb{dup sbs kwn{0 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf +/mo{dup sos kwn{2 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf +/ms{dup sss kwn{4 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf +/ou{dup sos kwn{mfont/df2 known{mfont begin df2 0 null put end}if 3 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf +/su{dup sss kwn{mfont/df2 known{mfont begin df2 0 null put end}if 5 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf +/ao{/fmv true def ou}bdf/as{/fmv true def su}bdf +/vo{/fmv false def ou}bdf/vs{/fmv false def su}bdf +/c{currentrgbcolor dup 4 1 roll eq 3 1 roll eq and/gray xdf}bdf +/bcarray[{/da .03 def df setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth +cs 0 0 smc da 0 smc da da smc 0 da moveto show}bind dup{/da 1 ps div def df setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth +cs 0 0 smc da 0 smc da da smc 0 da smc c gray{gl}{1 setgray}ifelse da 2. div dup moveto show}bind +{df setfont gsave cs wi grestore setcharwidth c gray{gl}{currentrgbcolor 1 setgray}ifelse cs 0 0 smc df2 0 get setfont +gray{gl}{4 1 roll setrgbcolor}ifelse 0 0 moveto show}bind +{/da 1 ps div def/ds .05 def/da2 da 2. div def df setfont gsave cs wi 1 index 0 ne{exch ds add da2 add exch}if grestore setcharwidth +cs ds da2 add .01 add 0 smc 0 ds da2 sub translate 0 0 smc da 0 smc da da smc 0 da smc c gray{gl}{1 setgray}ifelse da 2. div dup moveto show}bind +{/da .05 def df setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth c cs da .01 add 0 smc 0 da translate +gray{gl}{currentrgbcolor 1 setgray 4 -1 roll}ifelse 0 0 smc gray{gl}{4 1 roll setrgbcolor}ifelse df2 0 get setfont 0 0 moveto show}bind]def +/st{1000 mul usertime add dup 2147483647 gt{2147483647 sub}if def}bdf +/the{usertime sub dup 0 lt exch -2147483648 gt and}bdf +/6a 6 array def +/2a 2 array def +/3q 3 array def +/qs{3 -1 roll sub exch 3 -1 roll sub exch}bdf +/qa{3 -1 roll add exch 3 -1 roll add exch}bdf +/qm{3 -1 roll 1 index mul 3 1 roll mul}bdf +/qn{6a exch get mul}bdf +/qA .166667 def/qB .833333 def/qC .5 def +/qx{6a astore pop +qA 0 qn qB 2 qn add qA 1 qn qB 3 qn add +qB 2 qn qA 4 qn add qB 3 qn qA 5 qn add +qC 2 qn qC 4 qn add qC 3 qn qC 5 qn add}bdf +/qp{6 copy 12 -2 roll pop pop}bdf +/qc{exch qp qx curveto}bdf +/qi{{exch 4 copy 2a astore aload pop qa .5 qm newpath moveto}{exch 2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}bdf +/qq{{qc 2a aload pop qx curveto}{exch 4 copy qs qa qx curveto}ifelse}bdf +/pt{currentpoint newpath moveto}bdf +/qf{/fillflag true def}bdf +/ec{dup 4 and 0 ne{closepath}if 1 and 0 ne{0 doop}if grestore currentpoint newpath moveto/fillflag false def}bdf +/eu{currentpoint fp{0 ep}{grestore newpath}ifelse moveto/fillflag false def}bdf +/bp{currentpoint newpath 2 copy moveto}bdf +/ef{gsave fillflag{gsave eofill grestore}if}bdf +/sm{0 exch{@1 eq{1 add}if}forall}bdf +/lshow{4 1 roll exch/@1 exch def{1 index wi pop sub 1 index sm dv 0 @1 4 -1 roll widthshow}{1 index wi pop sub +1 index dup sm 10 mul exch length 1 sub add dv dup 10. mul 0 @1 4 -1 roll 0 6 -1 roll awidthshow}ifelse}bdf +/setTxMode{sa 9 2 index put exch not{3 eq{1}{0}ifelse setgray}{pop}ifelse}bdf +/SwToSym{{}mark false/Symbol/|______Symbol 0 rf 0 sa 6 get 0 ne{pop 1}{sa 7 get 0 eq{pop 2}if}ifelse +sa 1 get 0 ne/|______Symbol +sa 4 get 0 ne{vs}{sa 3 get 0 ne{vo}{fnt}ifelse}ifelse}bdf +/mc{0 3 1 roll transform neg exch pop}bdf +/ul{dup 0 ne sa 2 get 0 ne and{gsave 0 0 +/UnderlinePosition kif{mc}{ps -10 div}ifelse/UnderlineThickness kif{mc}{ps 15 div}ifelse +abs setlinewidth neg rmoveto +sa 4 get 0 ne{gsave currentlinewidth 2. div dup rmoveto currentpoint newpath moveto +2 copy rlineto stroke grestore}if +sa 3 get sa 4 get or 0 ne{gsave currentrgbcolor dup 4 1 roll eq 3 1 roll eq and{gl}{1 setgray}ifelse 2 copy rlineto stroke grestore rlineto strokepath nlw pys div setlinewidth}{rlineto}ifelse +stroke grestore}{pop}ifelse}bdf +/sgt{2 copy known{get true}{pop pop false}ifelse}bdf +/kif{currentfont dup/FontMatrix get exch/FontInfo sgt{true}{currentfont/df sgt +{dup/FontInfo sgt{3 1 roll/FontMatrix get mtx concatmatrix exch true}{pop pop pop false} +ifelse}{pop pop false}ifelse}ifelse{3 -1 roll sgt{exch true}{pop false}ifelse}{false}ifelse}bdf +/blank/Times-Roman findfont/CharStrings get/space get def +/macvec 256 array def +/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI +/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +macvec 0 32 getinterval astore pop +macvec 32/Times-Roman findfont/Encoding get +32 96 getinterval putinterval macvec dup 39/quotesingle put 96/grave put +/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute +/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave +/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute +/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis +/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls +/registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash +/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation +/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash +/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft +/guillemotright/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe +/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge +/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl +/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand/Acircumflex/Ecircumflex/Aacute +/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex +/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde +/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron +macvec 128 128 getinterval astore pop +{}mark true/Courier/|______Courier 0 rf +{/Metrics 21 dict begin/zero 600 def/one 600 def/two 600 def/three 600 def/four 600 def/five 600 def/six 600 def/seven 600 def/eight 600 def +/nine 600 def/comma 600 def/period 600 def/dollar 600 def/numbersign 600 def/percent 600 def/plus 600 def/hyphen 600 def/E 600 def/parenleft 600 def/parenright 600 def/space 600 def +currentdict end def currentdict/UniqueID known{/UniqueID 16#800000 def}if/FontBBox FontBBox 4 array astore def}mark true/Helvetica/|______Seattle 1 rf +/oldsettransfer/settransfer load def +/concatprocs{/proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def +newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx}def +/settransfer{currenttransfer concatprocs oldsettransfer}def +/PaintBlack{{1 exch sub}settransfer gsave newpath clippath 1 setgray fill grestore}def +/od{(Rvd\001\001\000\000\177) fg copy pop txpose +1 0 mtx defaultmatrix dtransform exch atan/pa exch def +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 +statusdict/processcolors known{statusdict begin processcolors end 4 eq{/4colors true def}if}if}bdf +/cd{}bdf +/op{/sfl false def systemdict/currentcolorscreen known{dcfreq dcrot/dcspf load dmfreq dmrot/dmspf load dyfreq dyrot/dyspf load +dkfreq dkrot/dkspf load setcolorscreen}{freq rot/spf load setscreen}ifelse savescreen +/ns false def/pm save def}bdf +/cp{not{userdict/#copies 0 put}if ma 0 gt{{t1 the{exit}if}loop}if{/copypage load exec}{/showpage load exec}ifelse pm restore}bdf +/px{0 3 1 roll tp tt}bdf +/psb{/us save def}bdf +/pse{us restore}bdf +/ct 40 string def +/nc{currentpoint initclip newpath gc{dup type dup/arraytype eq exch/packedarraytype eq or{exec}if} +forall clip newpath moveto}def +/kp{ct 0 2 index length 2 index 39 2 index put getinterval copy cvx exec mx3 currentmatrix pop}bdf +end +LW 1 eq userdict/a4small known not and{/a4small +[[300 72 div 0 0 -300 72 div -120 3381] +280 3255 +{statusdict/jobstate (printing) put 0 setblink +margins +exch 196 add exch 304 add 8 div round cvi frametoroket +statusdict/jobstate (busy) put +1 setblink} +/framedevice load +60 45{dup mul exch dup mul add 1.0 exch sub}/setscreen load +{}/settransfer load/initgraphics load/erasepage load]cvx +statusdict begin bind end readonly def}if +md begin/bigs[lnop userdict/letter known{/letter load}{lnop}ifelse userdict/legal known{/legal load}{lnop}ifelse userdict/a4 known{/a4 load}{lnop}ifelse userdict/b5 known{/b5 load}{lnop}ifelse +lnop lnop lnop /tab load/a3Size load]def +/smalls[lnop userdict/lettersmall known{/lettersmall load}{userdict/note known{/note load}{lnop}ifelse}ifelse +userdict/legal known{/legal load}{lnop}ifelse userdict/a4small known{/a4small load}{lnop}ifelse +userdict/b5 known{/b5 load}{userdict/note known{/note load}{lnop}ifelse}ifelse lnop lnop lnop /tab load/a3Size load]def end +systemdict/currentpacking known{setpacking}if +{currentfile eexec} ( %endeexec) ok userdict/stretch known not and checkload +373A767D4B7FD94FE5903B7014B1B8D3BED02632C855D56F458B118ACF3AF73FC4EF5E81F5749042B5F9CF1016D093B75F250B7D8280B2EACE05A37037F7BDF6E12226D7D4E2DF2C52FAFD5FD40FE72A0D3AC4BD485D8369D4C87636E920D1DAF222D92155A9CB1667E715F0B82799B37CC8F5B32B74B39CF494536DC39C7EF04A7BCB29E2CEC79073CADCCFB23B4AA1363F876F5121B618071B7B4EB1E5DE75FAA2368A3E5DB2B198623AFE92AE9484270FE7F57A850E88C0D3EEA156611C91D8E480D4370B025CCA6929A2BF40AD3D01B2CB7EE6DFB46E12A830542337F7819B67F9765210F76DB06F34DA5B13A11759305C582E16D2B854939F6D9121F2A4F285282F5DCD3D15896D121E3D6F5BE79E087451BB0ED233CDBEF090D3B4AC2DC34B97E70C61D95FB072B8C12D2ABD843520949A39DCF99E2C1AA8FBCD025E47E0A82A8D96E75BAF40F52AD402495BBD4DE0F356C8B14E764874E639C9F045A0D1908EC6456EB6C5B8A6F826192F767EF2C55A21C58F5F9CC1F59247B55F2387828C7FE89D5E7D8484D1BC86CB6673BDBE4FE17DD9BDE95224FE645136F41330BF155A4DDE1B0A32233BF471CE58FBC660DC7E641B0A0D30018454E2191C414A3011FF3FED1C0D88FE1FF9F75DCC456D097947226FBEC92509146D3A4CFFC0471B31C53222ED9DD88566F60F6C0D705AD79DACF53B070026F083ED28B5CF757AAA0A169F6F320A75E9D2ED50ABD939AF85B6346C2ADB25D168F10508E1516D194C635E6B187FADEA0829DBF0390C0F003F0265E215BC96CA3CC13D4A8E01570BE193CA75A620728CD275ACF1986EFFB3A13419FE55EA7C4467B7E7EEDC1FC29C9F8C46A557D2CCDB914EF7B93E7530D555DFC2398AFC68CAD991F062EF85BAA1884EC166C7C5DF8543666D8C41BE267D706BD1588F1F662F705CAE4D29DC38EF66BFAA89470D8A099B6F1B4587F7B024412276106FCD3EB5AE17A5D1DF1781992DC40EA0A992F706F701304CEA9D9073E7A74F1E687D81C3E5841D31CF86855BAAAD9B5D30317C75150A857C6B114735315CDD1AEF36C26BBB0645499406DEE2F24B3B1C72FEC97C7BA31AA2CDAB25418BB1DC4C7E4757F1D625087B0FD0300C03A65F2A72CE734925735277E034CDCF599129679F70CC8B66E03878851DB75041F275E1E5761F3EC753BE1359CA364A22047AE4886217F9259FE19FF5B116E8019B98B143114B313E8BEF87EC949D85C82E0812E6F50525E73890AF362CC8EE8A85F4197E6AC18638EF12E56A808D439AF1BFD363F140314BF4E534485C42F1856688CC35288E8D770120A420FB9F1FCF8AE8BD6D6156CC23E6C51119FE4DE1B68C9DF3487E9974BF9ED31F8D3CE93FF101867319F2FF492D5D398B4F09A66F2F55BCAB34B99173B7EE89039D00DD21A7B3A52E9F028F8301B5FC12D409412E064513BC579AAC498F577EA8ECD1FE3E42DC3CC320786C7B00194FEDF344402C33FC492D4BA86992B01683F440220FFE756BC88A94223D316078D69D33560E8EAB76B24CB7AA4320CF435593D76F624324ABE00B5587A4F283C725EA24567133F25F472B5E2E4474DDB5A16AC5F2DF32350395D3E3892FE361F4D5C9A610C654C9227614FBBAFF3356A90A2266E00F66234061075491571A65616211257F160000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + %endeexec + +{currentfile eexec} ( %endeexec) ok userdict/smooth4 known not and checkload +F94E00EE41A71C59E5CAEED1EDBCF23D1DBA1EE99B9BB356492923BD8B1BA83A87CEB0E07377A31FD6241E814681118E17DC7CACE570399506E6E441B871B6043831BD03EFC11DBBD8001EE2FF8CFBD485065D455A2E15AC36F1A84AD8789FA6461199C7CD14CB9FD64D4B06452B7FC0A8FC263F70F1CCB893295D4DE70ADAB771C0F84396FA98C60B11DA02ABA157298DF0A23621853BEF167443A985ADC09BEFFD51CB4D29179E2B34609EF38A49DA61F4BFC256A3DE0732D7D29754A194857B9C9E9971227AA1DD0611FBB10E44E5FF66C062D9C24ED3290529330BC317825E876929582DB0E39B9FC5EFD20CC1D4F94920EB9C534D0DA90DE70D25BC7287319CF28602B3F46633C242CAFC8905E960317E3C2FA20AB8DB06ADBAF292FC7BA2CA14EE65DF28B99CC11666B70AD33E8E1D57D63D4B89ECC615AE5747C1CA752C833D8D6DE54CD4A0350B44310555CE3BD2C615ADD27B634CDB350AF3A432CE78AACD2909A5B586F666CD87919A36DB1CBE86B3CE281DFD01CD7E1B8A18A4B415CECBFF79A5C4390A15EA77D14D6BE12BAB5A8268C3F286D0590060647CABED674443CD258F11415E866AB330A251691B61F2422A61AFE59B6B4FBDCF85ED9BA0F8E483C034089E6877FF5923698D3A0DC0EED6B9CFD32DF0839BC4EA5F6D1FCB6DD0920391E57E84745131D02D100179F4E0A68EC0A5FF6680A6F463D038B04AF63FFA13D743B995A26A743C26D387209023C91DE43DF047A16F328AC9DDC08573B38BE9EA341EA16C78EC32F3A1B36B90D95A50610F4D050EC1C33497F3F3A81A1B4C8BEF0BA84EE2FAA32DC112DAC490AF53E1749C4A0D866CAF7B893E52383B0D38065C333FB122B700D7246F7EE87D942AE3DB5C1DD77E9E76C80CC5AD63D28DFED0E229CE604673F78CD47F258FDF5BF3A3EAEC5C9BC8E482D8DBA9D268A35DA8C095A690679ED2123E8B8F5E4826FA3B199EAA5D482D4B6AA86572E387CECEB7149C8947F41D6339328A748A17F8C4AD3B0555F1E409450BA0C564F1F488BB5096EB003568D4D5EF6489897E27409547D0EE4487D30184793B0F27BD265A64BDB3EA6761569DA955620C612E718677B77D6D81B999C6298877AFE0D1D6F6F358377A8BD2402F669C64B972B3A065EF7DD4BDEFFFE17E63DB8898FA6E69166B710AAD6BA2EA9AF61E4B8C8701638D4D6E4DFFFC192AEF6BC027095C4C72D748979675BA29FAF61E75343E14E61034602E5A79CD2519796ED6A9CC4EDEA46A9B59D4A807E786B5EE46F25B0360BC8E7C12D723122CDEEF247C9776F4C99C8EBED6828AA19744B5ADF0D07D95D98B3072372388D41B0FAB1CCE2775170679575ECDCA13B22A17FE9C6605C3445F58F1A829512DAB6C528F83580C8AA53C35D605F626F5AD0B7FC1EA87D69A835E3F53A1F450FB0AF42A5772F89D92A50D10F15BDBDA409F50C0B8AB93FE8A16D029DD8BB5C480D1466735ED4D9CAF637E5ECD6C2ECB6BF3B3EFBEE7AB936D2C568E3009D156B87CACB1FB3A48A70BC91B2EC35CC9147FFB1A524E2B2F2E4E2C1B12F1C1C63768BB95CD62FEC01CBA79B9FA282DD4DF49990F27FF8EE4E2DDE2F0ACD83BC9D4BE0090192C7A799967EC4DC2D63C0835E22D4C4B366D7FDCF3A05A4B53DF780F986EF25C79B665D5C00EFF7F17C0BB6D544F9D83A7FDAC47D9C5683A656011374253C918FF6EA64749DD971B2300DD5320033E01EC591F6318CCE94CE2B81C04322EC52B624E50643B52391CCD2AB56396A2AD8E2D3CA61B80D9D4CC363B2DF7863526958CDF3497E36648406C317E58EC563E7C26149A2A3C643ADFB39A8DD92974C6D2A2A9D7B71CDF3FEBBF32BB02E7B45CF53AAEAD5E963A4AA4AF9A149A08A4EC303D5F2369977E93F54897EEAD31B06C5845D63F49D65F8E5573962241A57CCD717CE6CA8C784A11192943616EA059B51BC38429E18D0121FCBB6FBD5D909B0D89E616C66DEF6A0F165A7030BD911A1B120468329CBB006C8D37720E531CF31E878CB4AAAC137633675C3D546F5162487AB35F470C042BDEB945E0F2532BF92AA6FD53434440221ECD3533A7AA89900CB19EFE2CD872DF8B7969AF0D3B72BF31DC5DD69CA6460966F61AB17CB507964098DBA3AF122EEC3128A9BAFE1034493F372B36BD1351205E9043A67C544402D8BCE24358C8A5CE33867A00794CF7097D59C88279A11EE9C854E7E7AAE881F9828C569D208F5F33375F59E9A3818CFA38AAD0CBFBA32F9F44A8BB79DE4C40E3886457C16DA4A27953AA1E99472E35F2323F0BAA5E37DC28CBA46FEFB73B190016055ADD4D27615D748499A0E1C4B8C7EC339C1C4D95A813A85918A8D01EEB485DDCDCEA6EA3F2C2A9D85C139CD90CCB352634F9AFE836BCAC0C274E352BA2071B5269D5DE4CCDE3FF990CBA974980C7332AE1545A9C60D5D1459D3AE95C1AC065733AF14FADB440A110DD539563B8D850CD0704C52F3F7CCCB53630D776560CBD22D8FF08F5B354487A171AEC15F5F54DE9CAB668BCAC573E788D92762EF63E76087005F4AC2D02E0CAC173C11BE62ACE5DC4D3374F2F9746C9981E125FF9AB8CAE76D13039E2C54DFD708E028A619EA1ED78E6B46F06DF0D0B74BBEDD8C190C7C0CEBDE8F7A4888CC36575313478DD2CFE392E9BB7B2416955D44B7024A3BA43FBF37293B386D64746D7748895411D243FAEC50638F2AA33337D7FA018ADDAC5835A0DDFAE99AD6299DFB4CA6872C59853E3AC12FC9E3D26629C5B49CF844C87B3C4BFBE3074E3A1CE6984758C20C661084381CD6B4582D84F19C0000B5FC0DCB42B567E396031601C095D7016283EBE5F13CD8A3A374A74DDBBABD36081149F8BC242085F2F7297CC97FD3B8BAD206D8AC9707A39ECCC7963B522E08DA391A1EF12DD4D746DBDDDCC0834F88160CF189A9645567CEC2F023A571AF0DFD15DB85B744C28C000DF53B05F8F210841F6E87A04F20C777B7C0BE6182BE2E90226E5301A12532A745F2FAAA81637CF11B78CD2B99A4D18B862D6C5DBD31793FB16A2D9AAD376D4484D75AA833D0068B1D34DB74E3302480854E3B5484D8A47E39A89A2FA927BC3641EA7F8E004FDE4C2F08D40D99F1ACB47CAF6887629BF6DFE12968D297596D28CE0CF148B12E7DCB49FB94F5ADBD214C3A6CE1E249831BA9EB8A189F2CE1ABE39A7B537253E369A508A2AF2ADB9463F9B56BBBFF31D535FF997F537C6675C196E7ECBD493F652FA7CC6D9C1CA3379BFDB5AF7513C6E834054494296B91A6EE800114363D5D5D0759F41B4DECB653B9DE3E94583579EF549ED5F3FAFB12661ABC0C57A332406517ED3454EDED34B386C60F78DC976266E0EAF54FC245FB0E3EFC8016236436B599C1C97A8C5E0AC8F7836161873C71F01ED9CC25C236420F41FD8277993D3959205912FA0927B59E3DAE7377D82079447D6E41EE5AEC0DFFF79AF8F4ED47F17EE708FEA45877860D56F8CBCE65A061E8E1CA4A5FBAF0E13429A7F0ADB6F178FA449F46CC539BBC0107E3A53B1C362A04B20E6D721E7E6E1E4976A11DDC98C7614D22B53DFBB6DAE533AC9BE882021A735C30DAA4A44AED09F49A390E8CFF59BD9C30667AF21B03EC5CEBD5C2C3AA2769E8D714191A48E7DDF50B13D1560E82EFB65FCE601AE9E8C351FBA1DED80B7351314E7F9F9A784BFE3759B7E322A84E7B51F9DC5F5D9C8050CD79B27C0A4B0DD68A3C27A948AD6858E35B960D2DEA838C479CAEA83B1A912174ACB2100E55E7A14892D7A9B3711FF0B20065C1995B49E1F23464A92DD140642E3A7B1973849E64D1A3CF60000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark + %endeexec + +%%EndProcSet + +%%EndProlog +%%BeginDocumentSetup +md begin +F sgd +svsc + +T T 0 0 781 538 -30 -28 811 566 100 72 72 3 F F F F T T T F psu +(cianca; document: tr14)jn +0 mf +od +%%EndDocumentSetup +%%Page: ? 1 +op +0 0 781 538 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 781 538 6 rc)kp +64 gr +-30 -28 -29 -27 4 rc +30 28 xl +psb +0 setgray + +1 -1 scale + +0 -841 translate + +/wp$xorig 0 def + +/wp$yorig 0 def + +/wp$y 841 def + +/wp$x 594 def + +/wp$page 1 def + +/wp$fpage (1) def + +/wp$date (5/23/94) def + +/wp$time (10:26 AM) def + +/wp$box { newpath 0 0 moveto wp$x 0 rlineto 0 wp$y rlineto wp$x neg 0 rlineto closepath } def + +wp$box clip newpath + +/wp$top 110 def + +/wp$bottom 85 def + +/wp$left 79 def + +/wp$right 70 def + +/wp$col 1 def + +/wp$colx 445 def + +/wp$colxb 0 def + +gsave + +initgraphics + +/cm {28.34646 mul} def + +%% Background gray level (1 is white) + +0.96 setgray + +%% lower-left corner of logo with respect to lower-left corner of page + +%% the following values are appropriate for A4 format + +1.5 cm 9 cm translate + +0 0 moveto + +%% magnification of logo (1 = 3cm) + +/lsize 6 def + +%% change scaling for the logo + +72 300 div lsize mul dup scale + +%%{1 eq {1} {0.96} ifelse} settransfer + +%% bitmap image of logo + +%% scanned from a letterhead of the rettore and edited by hand + +356 356 + +false + +[1 0 0 -1 0 356] + +< + +fffffffffffffffffffffffffffffffffffffffff80000007fffffffffffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffffffffc000000000001fffffffffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffffffff8000000000000003fffffffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffffffe000000000000000003ffffffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffffc00000000000000000001fffffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffffc0000000000000000000001ffffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffc0000000003fffe0000000001fffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffe00000000ffff01ffff00000003ffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffff0000003fff8000003fffc0000007fffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffff8000007ff80001ff8001ffe000000fffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffc000007fc007ffffffff001ff800001ffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffe000007f00fffffffffffff80ff800007fffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffff800003f01ffffffc01ffffff807f000007ffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffc00007e03fffffffc01fffffffe07f00001ffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffff00001f03ffffffffe73ffffffffe07f00003fffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffff80001f07ffffffffcf773ffffffffe0fe0000fffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffe0000f83fffffffffc6723fffffffffc0fc0003ffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffff80003c1ffffffffffc0703ffffffffffc3f0000ffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffe0001e0fffffffffffcfffbfffffffffff87c0003fffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffff8000707fffffffffffcfffbfffffeffffff0f8000fffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffe0003c3ffffffbfffffc0703fffffedfffffe1f0003ffffff + +fffffffffffffffff0 + +fffffffffffffffffffffff8001e0ffffffbbfffffc4723fffffedffffff87c000ffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffe000787ffffffbbfffffcf773fffffecfffffff1f0007fffff + +fffffffffffffffff0 + +ffffffffffffffffffffffc001e1fffffffb1ffffffe73ffffffc4fffffffc7c001fffff + +fffffffffffffffff0 + +ffffffffffffffffffffff000707fffffff31ffffffc01ffffffc47fffffff0f0007ffff + +fffffffffffffffff0 + +fffffffffffffffffffffc001c3ffffffff31ffffffc01ffffffc47fffffffc3c001ffff + +fffffffffffffffff0 + +fffffffffffffffffffff80078ffffffff631fffffffffffffffc45ffffffff8f0007fff + +fffffffffffffffff0 + +ffffffffffffffffffffe000e3f3ffffff631fffffffffffffffc45ffffffffc3c003fff + +fffffffffffffffff0 + +ffffffffffffffffffffc0038fe3ffffff231ffffffe03ffffffc44ffffffcff0f000fff + +fffffffffffffffff0 + +ffffffffffffffffffff000e1fc1fffffc231ffff8000000ffffc44efffffc7fc78007ff + +fffffffffffffffff0 + +fffffffffffffffffffe00387fc0fffffc231ff000000000007fc44cfffff83ff1e003ff + +fffffffffffffffff0 + +fffffffffffffffffffc0071ff807ffffc231c00000000000000c44cfffff03ff87800ff + +fffffffffffffffff0 + +fffffffffffffffffff001c7ff003ffffc211000000000000000c44cffffe01ffe1c007f + +fffffffffffffffff0 + +ffffffffffffffffffe0031ffe003ffff8211000000000000000444c7fffe00fff8f001f + +fffffffffffffffff0 + +ffffffffffffffffff800e3ffe001ffff821100000000000000044447fffc007ffe7800f + +fffffffffffffffff0 + +ffffffffffffffffff0038fffc000ffff821100000000000000044447fff8007fff1e003 + +fffffffffffffffff0 + +fffffffffffffffffc0071fff8404ffff861100000000000000044447fff8843fffc7001 + +fffffffffffffffff0 + +fffffffffffffffff800c7fff0c027ff08611000000000000000444447ff1041fffe3c00 + +fffffffffffffffff0 + +fffffffffffffffff0039ffff18127f80861100002fffffe0000c44440fe3049ffff8e00 + +3ffffffffffffffff0 + +ffffffffffffffffe0063fffe31133c008611003fffffffff800e444403e6264ffffc780 + +1ffffffffffffffff0 + +ffffffffffffffff801cffffc61119800861307ffffff37ffff0e444400cc6627ffff3c0 + +0ffffffffffffffff0 + +ffffffffffffffff0039fbff86311d8008653fffe200e00303ffc444400cc6733ffdf8e0 + +07fffffffffffffff0 + +fffffffffffffffe0063fbff8c319cc008453fe2cc1e663fe01fc4444019c671bff8fe78 + +03fffffffffffffff0 + +fffffffffffffffc00cfb1ff1c718e4008451e03fffe4e3fff01c44440338e78dff8df1c + +00fffffffffffffff0 + +fffffffffffffff0019f31fe3871c7600845187f860b4c3fffffc00540278e78cff8df8e + +007ffffffffffffff0 + +ffffffffffffffe0063f31fe78f1c7a0004583ae0f27088fffff000560679e7c67facfc7 + +003ffffffffffffff0 + +ffffffffffffffc00c7f35fcf8f1e3903045842f5f47018fffff010560cf1e7c77fecdf3 + +c01ffffffffffffff0 + +ffffffffffffff8019ff35f9f1f1e399f84586cf0f874107ffff0115788e3e7e3bfacdf9 + +e00ffffffffffffff0 + +ffffffffffffff0033fb25f9e1f1f1cfff45074fbfff4023ffff01357f9ffe7ffdfacdfc + +7007fffffffffffff0 + +fffffffffffffe00e7db2ef3e3f3f8c7ff45031fff045863ffff0135ffffffffffffcdff + +3803fffffffffffff0 + +fffffffffffffc018fd91effffffffffff4403fff87e5e01ffff01ffffffffffffffcddf + +9c01fffffffffffff0 + +fffffffffffff8031fd90e27ffffffffff4403e0f9ff7f907ffe01ff0ffffe3ffffe8ddf + +ce00fffffffffffff0 + +fffffffffffff0063fd93173f3ffcff99b44100079ff7fd43ffe110f0c5e781ce1c80cdf + +e7007ffffffffffff0 + +ffffffffffffe00c7fd130200191c6900144103f79ff7fe11ffe11040c00501c21c0089f + +f3803ffffffffffff0 + +ffffffffffffc018ffd1207801d0e690490411ff79ff6ff40ffe11840400811c0782009f + +f9c01ffffffffffff0 + +ffffffffffff8033ffd1205807b87610484419ff79fe6ff887fe11a60843838c01b7c09f + +fce00ffffffffffff0 + +ffffffffffff0067ffd1349c073c321c8c4c19ff79fc6ffcc3fe11200fc3c78f8035e09f + +fe7007fffffffffff0 + +fffffffffffe00cfffd1318c067e3219664d5cff7c04effe21fc91002643c447807a609f + +ff3803fffffffffff0 + +fffffffffffc019fffd171020ce3121b834c5cf87ffce7ff08fc901403038c23805b409f + +ff9c01fffffffffff0 + +fffffffffff8033fff917a0118e30e12830e5c00fffce7ff927c901e018389018431408f + +ffc600fffffffffff0 + +fffffffffff0067fff917c2110fb861b83ac5c7ffffce7ffc03d901e40c301c98468c08f + +ffe3007ffffffffff0 + +fffffffffff00cffff917807b1ff661dc1ac5e7ffffdf7ffe409901ce06312c800c0608f + +fff1807ffffffffff0 + +ffffffffffe019ffff917606833f701b01ad5e3ffff9f3fff253913920333e8c0180608f + +fff9c03ffffffffff0 + +ffffffffffc033ffff917402c73e783304ad5f3ffc03f3fff88391330a1b3f1e0103508f + +fffce01ffffffffff0 + +ffffffffff8023ffff93fc4a4f8ff83706ad5f003c3ffbfffc0791e39f0a783f02836c8f + +fffe700ffffffffff0 + +ffffffffff0067ffff93fcee7fc3fcd51fad5f981cfbf9fffe07938f9fc0fc7fa4c3e48f + +ffff3807fffffffff0 + +fffffffffe00cfffff93ffffffe7ffffffad5fcf9cf369ffff0f93bfdff4fe7fc623f48f + +ffff9c03fffffffff0 + +fffffffffe019fffff92000000000000000d5fef9cf66dffff9f987e7fe7fd7c7221f08f + +ffffce03fffffffff0 + +fffffffffc033fffff93000001e1c004d2005ff79ce664ffff3f9900000000000000188f + +ffffee01fffffffff0 + +fffffffff8067fffff9207c02200011412685ffb9cee66ffff7f9803218c19982702008f + +ffffe700fffffffff0 + +fffffffff00cffffff1318c003c849143a685dfddece66fffeffb907318c139c270215af + +fffff3807ffffffff0 + +fffffffff008ffffff1301e8138c4f12b4485dfede1a677ff9ffb907118c878ee7cb058f + +fffff9c03ffffffff0 + +ffffffffe019ffffff1317c93f063f13a7485dff1e38e7bff3ffb94e1f8ce787e7ad350f + +fffffcc03ffffffff0 + +ffffffffc033ffffff13933c06121b1c73084dff8c7ae6dfeff7b97ccc8ecc07e7a5f50f + +fffffee01ffffffff0 + +ffffffff8067ffffff131f3c0631011c5b004dffe070e6ef9ff7b95ccc888c22e644954f + +fffffe700ffffffff0 + +ffffffff804ffffffd121f1c34218f0cf9a04ceff9f4e3707ff3b909e78d87a0468ed54f + +ffffff380ffffffff0 + +ffffffff00dffffff9120e5e3845c70cbde24ceffff4e37fffd3b959e78f07c0c5a65444 + +ffffff9c07fffffff0 + +fffffffe019ffffff112840c38c7430f3ce24ceffff4e37fffd3b978278f23d0c7227444 + +fffcffcc03fffffff0 + +fffffffe033ff3ffe11384ed3180630fc0e24ceffff4e37fffd3b9f8138e211842207444 + +3ff27fee01fffffff0 + +fffffffc027fe1ffc1130ac60380e10e40604cefffece37fffd3b9f0938c380c46583544 + +3fe0bfe701fffffff0 + +fffffff8067f80ff81131bc203c1f00c48624cefffec01bfffd3b971f18838260c593544 + +1fe01ff300fffffff0 + +fffffff80cff00ff01131b8f05e1f80ed8224c6fffec01bfffd3b872e180844308ac3504 + +0fe21ff980fffffff0 + +fffffff009ff04fe0113130507e13818f0204c6fffec01bfffd3b862c081840019a43504 + +07e67ff9c07ffffff0 + +ffffffe011ff04fe011337940000181cf0304c6fffcc009fff93b866c8018c0003269504 + +03f8fffcc03ffffff0 + +ffffffe033ff81fc01037600001f000066104c67ffd8e09fff93b82e78007ff800129d04 + +01fffffee03ffffff0 + +ffffffc027fffff80103480003fff80068004c67ffd800dfff93b80e3801fffe00001c06 + +01fffffe701ffffff0 + +ffffffc04ffffff00103c0001ffffe007ae04c67ff9800dfff93b81f3007ffff0e004c06 + +00ffffff301ffffff0 + +ffffff80cffffff00103003f9ffffc7f0fe04c67ff9800cfff93b81f0387ffff3ff04402 + +007fffffb80ffffff0 + +ffffff009fffffe0010200ff8ffffcffe1e0cc67ff9810cfff93bc7e1fe3fffe7ffe4442 + +003fffff9c07fffff0 + +ffffff019fffffc0030007ffe7fff9fff840cc67ff38f04fff933c78fff9fffcffffe442 + +003fffffcc07fffff0 + +fffffe013fffff8007009ffffbfff3fffe02cc67ff39202fff933c73fffcfffbffffe043 + +001fffffce03fffff0 + +fffffe027fffff800f01fffffdffe7ffff82ec67ff380027ff933c5fffff7ffbfffff043 + +800fffffe603fffff0 + +fffffc067fffff001f01fffffeffcfffffe2ec67ff390007ff91381fffffdff7fffffd63 + +c007fffff701fffff0 + +fffffc04fffffe003f63ffffff7f9ffffffbcc67ff718037ff9139fffffff7effffffff3 + +c007fffff380fffff0 + +fffff80cfffffe003f73ffffffbfffffffffec67ff71f837ff91f9fffffffbdffe7ffe33 + +e003fffff980fffff0 + +fffff809fffffc007c03fffffff07ffffffce467ff41e037ff91f9fff03ffdbff98ffe01 + +f001fffff9c07ffff0 + +fffff01bfffff800fc03ffffffefcffffffc0467fe412013ff91c1ffefcffebff7f3fe03 + +f801fffffcc07ffff0 + +fffff013fffff001fc63ffffffdfe7fffffc0467fe41001bff91c0ff9fe7ffffeffdfe03 + +f800fffffce03ffff0 + +ffffe037c0fff001fc61ffffcfdc73fffffc0467fe81801bff9100ffb83bffffef0efe13 + +fc007ffffe603ffff0 + +ffffc027807fe003fce1fffe213013fffffc0447fe81f819ff9101ff700bfffffc06ffff + +fe007fffff701ffff0 + +ffffc04f001fe007fefffffcf8200bfffffffc47fc81fab9ff91ffff600bfffff8037fff + +fe003fffcf301ffff0 + +ffffc04f0009c007fefffffdcc0903fffffffc47fca1fa89ff91fdff6007fffff8037ff7 + +ff003fff01300ffff0 + +ffff809f0c01800ffe77fff80003e3fffffffc47fde1e105ff917dff600ffffff0037f77 + +ff801ffe01980ffff0 + +ffff009f0f01800ffe77fff800d7affffffefc47f9e1610cff917dff820ffffff4037f77 + +ff800fc6009c07fff0 + +ffff013e0f83001ffe67fff870cd4ffffffef447f981650cff917dffc30ffffffe06ef77 + +ffc00f8600cc07fff0 + +ffff013e0fc7003ffe67fffc21c72ffffffef047f9c12d0cff913dfff01ffffffc9ddf73 + +ffc0070610ce07fff0 + +fffe037c27fe003ffe67fffe41c50ffffffef047fbe1fd9efe913dfff01ffffffc9f9f73 + +ffe00704106603fff0 + +fffe027863fc007ffe67fffe438407fffffef047fba3fd967e913dfff80ffffffc9fbf73 + +fff00310306703fff0 + +fffe067800fc00787e67fffe430013fffffef057fb2bfc827e913df87807fffffd9f3f73 + +ff700300307301fff0 + +fffc04ff801800f03e67ffff0000f9fffffef053f3ab3c867e913dfc0003fffff30c7f73 + +fe38018e23f301fff0 + +fff804ffe01801f11c67fffe000678fffffef043f3ab0c873e913dfc0071ffffc2107f73 + +fc1801c06ffb80fff0 + +fff809fff81001e19067fffe001f20fffffef103f68b0cc33e913dfe03e0ffff0070ff73 + +f01c00e07ff980fff0 + +fff809fffe3003e08067fffc003f00fffffef107f64b9cc13e913dfe11c07ffe33f0ff73 + +e00c00fffffdc0fff0 + +fff013ffff6003f80267fff8087f883ffffcf103e643fcc13e903dff08887ffe77e0ff73 + +c08e007ffffcc07ff0 + +fff013ffffe007c40667fff813bfc23ffffcf113e653b4c1be903dfe0c1c3ffc7fc07f73 + +000e007ffffcc07ff0 + +ffe033c03fe007870267fff81f9fe03ffffcf317ec532441be903dfc0e3c3ff8ffc07f72 + +101f003ffffe607ff0 + +ffe027800fc00f87c267fff8078f203ffffcf317ec5326409e903df8c77c3ff8ffc03f73 + +3c3f803ffffe603ff0 + +ffe0270007c00f8c6267fffc0086000ffffcf313edd326409e903df8c7fc3ff1ef883f73 + +ffc7801fffff703ff0 + +ffc06f2303801f8c7e67fffc3c000207fffcf313edd3fe609e903df0e7f83ff1ef983f73 + +fe03801fffff301ff0 + +ffc04f27c3801f80c667fffc3c000383fffcf393ccd3fe60de903df863e09fe1cf183f73 + +f800c00fffff301ff0 + +ffc04f27e1801fc04667fffe080c0261fffcf39bdc13fe605e903df803c00fc1ce103f73 + +f818c00fffffb81ff0 + +ff809f27e1003e400e67fffe000c0601fffcf39bde93fe601e903df80198000000007f73 + +f01ce00fffff981ff0 + +ff809f03c3007c301e67fffe001c6610fffcf39bde1326600e903df87038000000267f73 + +f19d6007fa1f980ff0 + +ff809f8003007c383e67ffff003cf300fffcf39b921726602e903df870780000f8707f73 + +f1de7007f80fcc0ff0 + +ff013fc00200781ffe67fffe003cf8cc61fcf39b90970e702e923df823f84020f8003f73 + +f1fe3003f18fcc0ff0 + +ff013ff00600f803fe67fffe001cf8e07f7cf39bb0b7be702e823dfc01f87fe2f0003f73 + +f3e03003f19fcc07f0 + +ff013ff80c00f8c07e67fffe821cf8e18ffcf39bb9b7fe7026803dfd08f87ff1f0007f73 + +ff803803f81fe407f0 + +ff027ffffc00fcf07e67fffca31cf0f203fcf39b3fb7fe7077803dfc0cf83ff1f000ff73 + +fc001801fe3fe607f0 + +fe027ffff801f3fe7e67fffd279cc1fa01fcf39b33b72770b7c07dfc1cf83ff83801ff73 + +fc3e1801ffffe603f0 + +fe027ffff801e03ffe67fffd279c07fa00bcf3bfe337277097fffdfc10783ff01f01ff73 + +fcff3c00fffff603f0 + +fe067ffff803e00ffe67fffae41c1fff003cf3bfe137277017ff7dfc00783ff80101ff73 + +ffffc400fffff303f0 + +fc04f81ff003c301fe67fffb40387fffc07cf3bfe977bf781ffb3dfc02787ffc0101ff73 + +fe000400fffff303f0 + +fc04e00f7003c301fe27fffa4013ff7fc07cf3bfff7fff7e3ffb3dfe02383ffc0301ff73 + +fe00c600fffff301f0 + +fc04e0022007c01dfe27fff3c00ff63fc07cf3bfffffffffffef7dfe02383ffc8301ff73 + +ff1806007ffffb81f0 + +fc0de0002007f81ffe27fff1e003343fc000f3bc7ffffffff0ef7dff82383ffc9f01ff73 + +fff00f007ffff981f0 + +fc09c0802007fc03fe27fff1c001001f8000f3b8207ffff8e0ef3dff06383ffc1f01ff73 + +ffc01b007ffff981f0 + +f809c1e0600fff03fe27ffe1c010001f867cf3b8203e2ed140ef7dff06383ffc0f03ff7b + +ffc7e3007ffffd80f0 + +f81bc4f8e00f81fffe200001c000000e027cf3b8203e2c1840e77dff06203ffc0703ff7b + +ffcc03803ffffdc0f0 + +f813c47fc00f8007fe2003c1c00000ce107cf3b8203c040044e77dff06203ffc0123ff73 + +fff007803ffffcc0f0 + +f813800fc00f0407fe27ffc1c00007fc303cf3b8003c250481e73dff06203ffc2023ff7b + +fff078803ffffcc0f0 + +f0138000c01f07cffe27ffc3c80007fc303cf3b8103c23f091e73dff06303ffc2031ff7b + +ffe1f0801ffffcc070 + +f0138000801f003ffe27ffc3c800043c303cf3b8143823d202673dff06303ffc2030ff7b + +ffe180c01ffffee070 + +f037ff80801e000ffe27ffc780008c0d013cf3b8001871c890673dff06303ffc2030ff7b + +ffe000c01ffffe6070 + +f027ffe0803e000ffe27ffcf80188c41013cf3b8411871e110673dff04303ffc2030ff7b + +ffe01fc01ffffe6070 + +e027fff9803e0f1ffe27ffe7801c1e40007cf3b88110f1c454733dff00303ffc2010ff7b + +fff1fec00ffffe6030 + +e027ffff803f00fffe27ffe7c09e5e60007cf3b88910f8f080733dff30303ffc40107f73 + +fffff0400f1ffe6030 + +e02fffff003f803ffe27ffe7801ffe7c01fef398890088c641733dff30303ffc44107f73 + +fff060200e00077030 + +e06fffff007ffc3ffe67ffe7001fee6f9f3ef398ac0004402bf33dff30303ffc50107f73 + +fff0c0200e00033030 + +e04ff1ff007ffe3ffe67ffe7001fe403fe3ef398a48064d201f33dff30303ffc50107f73 + +fff886200e00113030 + +e04f80ff007fce3ffe67ffe7001fe0400e1ef398b40344114cf33dff30303ffc50107f73 + +fff80c300600093030 + +e04f003f007fcffffe67ffff001fe1c00f1ef3983403c00105f33dff36303ffc52187f73 + +fffc1ff007038d3030 + +c04e001e0073fffffe67ffff001fc0e0010ef3987047c0044ef33dff36303ffc51187f73 + +fffffff0078f8d3010 + +c04e400e00f00c7ffe67ffff103e06e0010ef39810e4d1900ef33dff34323ffc91187f73 + +fffff3f007ff093010 + +c0de440600f0007ffe67fffffffe0740030cf3da08cde30222733dff34323ffc91187f73 + +fffff3f00700199810 + +c0de4f8600f1c07ffe67ffffffff07c0030cf3d358cf630840f33dff20323ffc91107f73 + +ffffff900300399810 + +c09e4f8600f0c0fffe67ffbffffe13c0020cf3d730cb07c1e0f73dffa0323ff811107f73 + +fffff018031ff99810 + +c09e478600f007fffe67000003fe39c0000cf3df00db0f80c5ff3dffa0223ff811107f73 + +ffffc01803000c9810 + +c09e200400f800fffe67fffffff03c81000cf3dfe4ffffc9ffff3dff80207ff81110ff73 + +ffff00780300049810 + +c09f100400fff8fffe67fffffff81f82004cf3c38d9fff03fe0f3dff00007ff82010ff73 + +ffff0ff8039fc69810 + +809f800c01fffffffe67f0001ff84b06004cf3c1080186000c077dff00f8fff8201fff73 + +fffe1fc803ffe49800 + +809fe01c01f000fffe6000000000ff0010ccf3c180030300080f7dffe1c1fff4364fff73 + +fffe100803f004dc00 + +81bffffc01e000fffe67fffffff0ff8832e4fbc080030200680f7dffe0c1fff7264fff73 + +fffe000c03c008dc00 + +81bffffc01e003fffe67fffffff8ff907664fbc0c002004008cf7dffe1c1ffff066fff73 + +ffff800c01c011cc00 + +81bffffc01fffffffe67ffffffe00383fc64fbc2c000007870ef7dfffffffffffe7fff73 + +fffffffc01c003cc00 + +813ffffc01f019fffe67fffffff0ffa7fcf4fb86407030f8d00f7dfffffffffffe7fff73 + +ffff000c01c387cc00 + +813e187801e001fffe67fffffff1fffffcf4fb8440783078880f7dffffffffffffffff73 + +ffff000401e3ffcc00 + +813c003801e181fffe67fffffffffffffefcfb8060780879d20f7dffffffffffffffff73 + +ffff180401ffffcc00 + +8138c31801c3f3fffe67fffffffffffffffcfb8828700439f3dffdffffffffffffffff73 + +ffff18c401ffffcc00 + +8139041801c1fffffe07fffffffffffffffc3b882c600419e3dff9ffffffffffffffff01 + +ffff000401ffffcc00 + +8130001803c001fff8000000000000000000038c04602619e3ce00000000000000000001 + +ffff000c01f3f1cc00 + +8130401803e001fff803fffffffffffffffc000d0440c608f0ce00fffffffffffffffe01 + +ffff821e01c1e04c00 + +8132631803fffdfff800000000000000000003999e40050078ce00000000000000000201 + +ffffc7fe01c0004c00 + +0132631803f00ffff807fffffffffffffffec3d81a030180448e3dfffffffff800000331 + +fffffffe01c0024c00 + +0132001803e003fffe7ffffffffffffffffee3d800070180cc8ffdffffffffffffffff79 + +ffff000601c18e4c00 + +013a001803c1c3fffe7ffffffffffffffffec39c000703c08f8efdbe1fffeda60003ff79 + +ffff000601e0024c00 + +013bf01803c1c3fffe7623a08ff20011ec2ec380000f01c0cb8e1d005e4788821780eb79 + +ffff800e01fe3a4c00 + +0138001803c007fffe36131c0b03c32e04dec3a00000006040861d0dfd03089fe4d98f79 + +fffffffe01fe3a4c00 + +0138001803f81ffffe3711c38f3a22fde49ec3a00003ff80004e1d3ff507f88112680b79 + +ffffe01e01dd384c00 + +0138ff9803fffbfffe371ed0896f34d5d90ec3a0000fffc0004e1d3c3e0ffffde28c0b79 + +ffffc00601c1004c00 + +013ffff803e0e3fffe37397ccf87fd6479eee3c03fcfffc3804e1d1e2ef4689ff60c1379 + +ffff870601c1704c00 + +013ffff803c003fffe3631bbff00df60f866e3c3fff7ffbff80e1d01df0f88d483821379 + +ffff8fc601c000cc00 + +013ffff803c003fffe7613460d0072000396e3fffffbffffff061d801804288680822779 + +fffe000601c001cc00 + +013ffff803c7fffffe7701fa0f180f01063ee3ffffffffffffe39dc05bfffdfff3feff79 + +fffc000e01c3e1cc00 + +013ffff803c003fffe77fffffffffffffffee1fffd69c617fffbfdffffffffffffffff79 + +fffc701e01ffffcc00 + +813ffff803c003fffe7ffffffffffffffffee3ff6ffebbfc7ffffdffffffffffffffff71 + +ffffffe601ffffcc00 + +813ffff801c7fffffefffffffffffffffffee3fdffffb3ffd7ff09fffffffffffffe1101 + +ffffc00401ffffcc00 + +813ffff801f807fffc00000000000000000001f7ffff87fff9ff007ffffffffffc600001 + +ffff800401ffffcc00 + +813ffff801e003fffc03ffffffffffffffa003efffffffffff7f683f00000000000000f9 + +ffff8ffc01ffffcc00 + +813ffff801e3e1fffef00000000000000021ffbffffefdffffbffc0000000000000000f9 + +ffff8fe401f81fcc00 + +813ffffc01c3e1fffef20000000000000027ff7ffff9fc7fffef7c0000040000000000f9 + +ffff800401f007cc00 + +813ffffc01c183fffe7200001002000000eff7ffffe7ff3fffff580a4007c183a90000f9 + +ffff800401e003cc00 + +813ffffc01e007fffe721fad0ccf83fc23edf7ffffdfffdfffff1c1c6607418fad3d80f9 + +ffff9f0401c001cc00 + +81bffffc01f03ffffe7221a04e637d4ed32df3ffff9fffefffff1cbc770c076faf7ca0f9 + +fffffffc03c3c5c800 + +81bffffc01ffc7fffe7223625e1cc032b10df3ffffffffffffff1cacdf2d0e67ac5e78f1 + +fffffffc03c464c800 + +80bfe3fc01ff01fffe7213735e38413d910df3ffffffffffffff1ca0cb281c33a8de20f1 + +ffffe01c03c464d810 + +80bfc1fc01f800fffe7202f35e33e125110df3ffffffffffffff1ca0c72a3d19a9b730f1 + +ffff801c03c0649810 + +c09fc0fc01f00cfffe7207d95ceaf527e88df3ffffffcfffffff1ca1872a37088b3318f1 + +ffff000c03c1409810 + +c09f8c7c00e38cfffe726c1d59d9152ac8c9f3fffffe33ffffff5cb1032e718c831118f1 + +ffff000c03e0409810 + +c09f807c00e388fffe725f1f5bc9bd37a469f3fffffdfcffffff5cb1e12c7003863888f1 + +fffffffc03f0c09810 + +c09f807e00e000fffe7a5a0f436999292669f3fffffbff7fffff5cb32128dc0b046cc0f1 + +fffffffc03ffff9810 + +c09ff1fe00e000fffe7a380144c895292269f3fffff7ff3fffff5cb220a99c6188e4c2f1 + +fffffffc03ffff9810 + +c09ffffe00f3fffffe7a68014100e633216df3ffffe7ff3fffff5cb300a9dee48987e2f1 + +fffffffc07ffffb810 + +c0dffffe00ff8ffffe7c48414000133107edf3ffffef079fffff5cb7800bc0003101f2f1 + +fffff3f807ffffb010 + +c04ffffe007f8cfffe7cc3fe4000086002edf3ffffce039fffff1ca40002fff0230032f1 + +fffff3f807ffff3010 + +c04fffff007ff87ffe79a40203fffc40006df3ffffcc019fffff1cae4201ffff000026f1 + +fff87ff8078fff3030 + +e04fffff007f807ffe3960001ffffc00002df3ffffccf99fffff1caf07e1ffff1ffc3e71 + +fff803f807007f3030 + +e04fffff007e007ffe1800ff1ffffe3f800df3ffffcdf09fffff1cb87ff8fffe7ffffe71 + +fff800380720033030 + +e04fffff007c03bffe1807ffe7ffe3fff80df3ffffcc269fffff1c28fffe3ff8ffffe471 + +fffb00180f00c32030 + +e06fffff003c7c3ffe183ffff9ffc3fffe4df3ffffec00bfffff5c3fffff9ff1fffffc71 + +ffffc0180f00426030 + +e027ffff003c003ffe207ffffe7f8fffffcdf3ffffe5883fffff7c3fffffdfe7fffffe71 + +ffffc6180ffc026030 + +f027ffff803c003ffe60ffffff1fbfffffcdf3fffff1487ff8ff7d7fffffefcffffffe71 + +fffbc6181fff066070 + +f027ffff803e03fffe61ffffffcf7ffffffff3fffff8b4fc907f7ffffffff7dffffffe71 + +fff1c0181fff066070 + +f027ffff801e3e1ffff7ffffffe6fffffffdf3fffffc78fc007f7ffffffffbbffffffef1 + +fff8f0701fff064070 + +f033ffff801e3c0ffff7fffffffffffffffcf3fffffc00fc207ffc7ffffffffffffffef1 + +fff80ff01f0e24c070 + +f013ffffc01e000ffff7fffffffffffffff8f1ffffe601f8205c003ffffff97fffcffc00 + +fffc07e01e0024c0f0 + +f813fff1c01f00fff801fffffffffffffff801ffffce01f80014003ffff813a1ffb3fc00 + +fffe03e03c0064c0f0 + +f813fff8c00fc3c7f801ffffffe03ffffff801ffff9c10382024003fff87f7bf3f7cfc01 + +ffcc41e03c03ccc0f0 + +f819fff8c00fff07f801ffffff9fdffffff001fffe7810082062003fff7ff73feefefc00 + +ffc071c03c301d80f0 + +f809f000e00ff803f801ffffff3067fffff001fffc7810006060003fd87ff87ff1ff7c00 + +ffc001c07e3c7980f0 + +fc09e000e0070003f805ffffff6017fffff07ffff87000006061803f3e3ffffffd00ff38 + +ffdc01c07ffff981f0 + +fc09e401e00701c3fef7fffffe4017fffffffffff8c040007279fd3f703fffffff00ff38 + +ffff81807ffffb81f0 + +fc0de407f0079fc7fef7fffffec707fffffff7fff080c010fb38fc3cc01fffffff80ff78 + +ff3fff807ffffb01f0 + +fc04e4ff1007bf07fe63fffffec207fffffde7fff101c00088187c1dc05fffffffe01f78 + +ff07e780fffff301f0 + +fe04e4601003fc0ffe63fffffec007fffffde7ffe000c01080183cfc807fffffffe00f78 + +ff00e700ff7ef303f0 + +fe04f0001003f01ffe63fffffec80ffffffce7ffe000800800113cfe82fffffffff80f78 + +ff300700f81c7203f0 + +fe0670001801e0fffe63ffffff4c0ffffff8f7ffe038830c00013cfe03dfffffffdc6770 + +fffc0701f0002603f0 + +fe0271001801e3c1fe63ffffffc00ffffff8f7ffe070c3c180033cfe03dfffffffcf7730 + +ffff8e01e0002607f0 + +ff02780e1801e3c0fe63ffffffc00ffffff8f7ffc0b0c1f00203bcff03bfffffffc7f330 + +ffff8e03cc006407f0 + +ff03383fdc00ffc8fe63ffffffe00ffffff8f7ffc090c0000207bcff803fffffff807330 + +ffc79c03c8406c07f0 + +ff01387ffc00f8c8fe63ffffffa02ffffff8f7ffc093f0000787bcffc07ffff3ef802330 + +fe019c03c9f8cc07f0 + +ff813cfffc0070f8fe77ffffff07e7fffff8f7ff9c8bf0007cffbcffc07fffe0e7802170 + +fc00f807d8ffcc0ff0 + +ff81bff866007001fe77fffffe0071fffff8f1ff9c8ff1807cf7bcffc43f0fe1e7803170 + +f840f807983f980ff0 + +ff809ff846003801de77fffffc0038fffff8f1ff988ffbf9fce7bcffc01fcff1e7803170 + +f8c470078607981ff0 + +ffc09f0c63003c079e77fffff80038fffffcf0ff98cffffffe67bcffc00fcffff3803370 + +f0e4700f8101981ff0 + +ffc0ce0c63003fff0e77fffff000007ffffcf07fd879ffffffe7bcffc10f8fff70033b78 + +ffe4600ffc61301ff0 + +ffc04f0c61801e630e77fffff040303ffffcf001c3f83fffffc7bcffc10f9fff32031f78 + +e3fc601ffe11301ff0 + +ffe04f0c61801e630e77fffff0c8703ffffcf00003fcbf83ff07bcffc02e9ffb9e233c78 + +e026c01fff83303ff0 + +ffe0670c09c00e000e77ffffe0fc7018e3fcf601807ffe03fc07bcffc0001ff80f238738 + +e807c01fffc6603ff0 + +ffe0270001c00f001277ffffc0fc700041fcf601c000001ff8c7bcffc0003ff047e00639 + +f803803e3fe6603ff0 + +fff03380c3e007002277ffff00f8781000fcf6038c00003fe0c7bcffc0007ff0f7c00239 + +80e3003c1ffec07ff0 + +fff0138007e007c1e277ffff01fffc3020fcf7038fffffe60187bcffc200fff9f1100239 + +806300781ffcc07ff0 + +fff013c00ff003ffc277fc010fbff83c21fcf701c1e7f8c20107bcffe001fffff1388039 + +dc0200780ffcc0fff0 + +fff819f01ff003ff8277f8011e0a307821fcf711c183f0826607bcffe003fffff9f84139 + +fe0600f881f980fff0 + +fff809fffff001fe0677f0031cc000f03dfcf71fc001e001640fbcfff063c0fffff80339 + +fe0e00f800f980fff0 + +fffc0dfff07801e00677f00730c03ff01ffcf63fc000e001eccf3cfff0e3c07fff180139 + +ffbc01ef007301fff0 + +fffc0cfff01800e07e77e10fe0e03ff01ffcf63f8000e001fdcf3cfff871fe7fffd80138 + +fff801c1c13301fff0 + +fffc06fff00c00f1fe77e113c7e43ff0f5fcf61f0c00e000ef9f3cfff0f8f67ffffc0138 + +fff803c0712203fff0 + +fffe027c180c007bfe77e393c7e03fe0c03cf61f3c006000efff3cfff07272fffffc0138 + +fff003c0002603fff0 + +fffe0370198e007ffe77e383c1c01fe0c03cf61e7c204400ffff3cfff04260fffffc0138 + +ffe007c0002607fff0 + +ffff01301907003ffe77e203e04087e1801cf708fe304c00f7ffbcfff00020fffffec138 + +ffe007b0204c07fff0 + +ffff01b93907001ffe77c003e00083e3811cf701fe10080073ff9cffe00020fffffe6738 + +ffc00f0d004c07fff0 + +ffff80981f07801ffe778001e0008183811cf78ffe081020707f9cffe00000ffffff7f38 + +ff801e0280980ffff0 + +ffff80d8100f800ffe778001c00000c0011cf7ffe6006020700f9cffe00000ffffffed38 + +ff801e00c1980ffff0 + +ffffc04c000fc007fe770001c0020060173cf7be0600600030879cffe07000fffffff338 + +ff003e0401301ffff0 + +ffffc06e001fc007fe770831c00200639ffcf73c0e00202030479cffe03800fffffff838 + +ff003f0201301ffff0 + +ffffe026023fe003fe77083080000073f83cf7380e0f0020300f9cffe31c00ffffffff38 + +fe007ff102603ffff0 + +ffffe037807ff001fe77000180000063c83cf6383e0ff060180f9cffe31e00ffffffff38 + +fe00fff802603ffff0 + +fffff013e0fff001fe776403800c0003683cf600300ffce01b1f9cffe03c007fffffff38 + +fc00fffc04c07ffff0 + +fffff01bfffff800fe77cc03c01c0003683cf400000ff8e00fff9cffe070007fffffff38 + +f801fffff8c07ffff0 + +fffff809fffffc007e77cc03c0080000249cf660000ff8e20fff9cfff01c007fffffff38 + +f001fffff980fffff0 + +fffff80cfffffc007e778c018008020324dcf7f7f00ff1e20fff9cfff03f207fffffff38 + +e003fffffb80fffff0 + +fffffc06fffffe003e778d01887c82032edcf7fff003ffe21fff9ce0203e207fffffff38 + +c007fffff301fffff0 + +fffffc067fffff001e770d008c7da7032efcf7fff801ffffffff9cc0003e727fffffff38 + +c007ffffe601fffff0 + +fffffe037fffff000e7719008c7dee076ffcf7ffffffffffffff9cc0007ef27fffffff38 + +800fffffe603fffff0 + +fffffe013fffff80067719008e7fee07fffcf7ffffffffffffff9cc701fff27fffffff38 + +801fffffcc07fffff0 + +ffffff01bfffffc0067619008fffe007fffcf3ffffffffffffff9ce00ff3f27fffffff38 + +803fffffdc07fffff0 + +ffffff009fffffe0067619004fff83cffc7cf3ffffffffffffff9cc03fc7f27fffffff38 + +803fffff980ffffff0 + +ffffff80cfffffe0067638007ff07f8e0e3cf3ffffffffffffff9c80ff0ff27fffffff38 + +807fffff380ffffff0 + +ffffffc06ffffff0067438007fffff8c033cf204007fffc000079cfc7c3ff23fffffff38 + +80ffffff301ffffff0 + +ffffffc027ffdff806707a847fffff8003fcf307e1fffffe1fff9cf800ff001fffffff38 + +80ffc7fe601ffffff0 + +ffffffe037ff0cfc0670f0e47fffffc607fcf3ffffffffffffff9ce003e0001fffffff38 + +81ff03fee03ffffff0 + +ffffffe013ff0cfc0670c000ffffffff87fcf3ffffffffffffff9cc01fff67ffffffff38 + +83fc03fcc07ffffff0 + +fffffff019ff04fe06630009fffffffff7fcf3ffffffffffffff9cc7ffffffffffffff38 + +87fcc7f9807ffffff0 + +fffffff80dff60ff0662001ffffffffffffcf3ffffffffffffff9cdfffffffffffffff38 + +8ffc67fb80fffffff0 + +fffffff804ff60ff84620ffffffffffffffcf3ffffffffffffff9cffffffffffffffff38 + +9ffe07f300fffffff0 + +fffffffc027f81ffc467fffffffffffffffcf3ffffffffffffff9cffffffffffffffff38 + +bfffffe601fffffff0 + +fffffffc033fe3ffe5f7fffffffffffffffcf3ffffffffffffff9cffffffffffffffff3c + +ffffffee03fffffff0 + +fffffffe01bfffffe7fffffffffffffffffcf7ffffffffffffff9cffffffffffffffff38 + +ffffffcc03fffffff0 + +ffffffff009ffffffc7fffe0000000000000f0000000000000001c000000000000000000 + +7fffff9807fffffff0 + +ffffffff804ffffffc000000000000000000f0000000000000003dfc0000000000000000 + +7fffff300ffffffff0 + +ffffffff806ffffffc0ffffffffffffffffcf7ffffffffffffffbdffffffffffffffff00 + +7ffffe301ffffffff0 + +ffffffffc027fffffc000000000000000000f0000000000000003d000000000000000000 + +7ffffe601ffffffff0 + +ffffffffe033fffffefffffffffffffffffcf060007fffffffffbdffffffffffffffff1d + +fffffcc03ffffffff0 + +fffffffff019fffffef7fffffffffffffffcffffffffffffffffbdffffffffffffffff3d + +fffff9807ffffffff0 + +fffffffff00cfffffee7fffffffffffffffcffffffffffffffffbdffffffffffffffff39 + +fffff3807ffffffff0 + +fffffffff8067ffffee7fffffffffffffffcf7ffffffffffffffbdffffffffffffffff39 + +ffffe700fffffffff0 + +fffffffffc033ffffee7fffffffffffffffde7ffffffffffffffbdffffffffffffffff38 + +ffffe601fffffffff0 + +fffffffffe01bffffee7ffffffc3f0e6040de7c73cc7ffcf840fbdf7ffffffffffffff38 + +ffffcc03fffffffff0 + +fffffffffe009ffffee713279481f041030de7040cc7e0060407bd82323e6883e3252fb8 + +ffff9803fffffffff0 + +ffffffffff00cffffee611279481f141013de60404c7e0062447bd02123e4881c1252fb8 + +ffff3007fffffffff0 + +ffffffffff8067fffee4202794991049933de678c4c440643c67bd0a12724899cd252fb8 + +fffe700ffffffffff0 + +ffffffffffc033fffe644c2494811049933de678c4c444640c67bd1cd26248994d252fb8 + +fffce01ffffffffff0 + +ffffffffffe019fffe644c249481f080933de60444c7c4623c67bd1c927e48814f212bb8 + +fff8c03ffffffffff0 + +fffffffffff00cfffe6420079081f1c0931ce7040445c4623447bd0c120e4083c53123b8 + +fff9807ffffffffff0 + +fffffffffff0067ffe6611039088f1c0921ce7860c41c463040fbd82100e4081e13323b8 + +fff3007ffffffffff0 + +fffffffffff8033ffe671301908c71f3fe1ce7ffbc01ceff8c1fbdc2300c6188f33b2338 + +ffe600fffffffffff0 + +fffffffffffc019ffe77fffffffffffffffcefffffffffffffffbdffffffffffffffff38 + +ffcc01fffffffffff0 + +fffffffffffe00cffe77fffffffffffffffcefffffffffffffffbdffffffffffffffff38 + +ff9c03fffffffffff0 + +ffffffffffff0067fe77fffffffffffffffcefffffffffffffffbdffffffffffffffff38 + +ff3007fffffffffff0 + +ffffffffffff8033fe67fffffffffffffffcefffffffffffffffbd000000000000000039 + +fc600ffffffffffff0 + +ffffffffffffc019fc77fffffffffffffffcefe0401ff840c03fbdfffffffffffffffe01 + +f8c01ffffffffffff0 + +ffffffffffffe00cf837fffffffffffffffee7c0401fe040403fbd800000000000000001 + +f1803ffffffffffff0 + +fffffffffffff00678000000000000000000e48fc899e266513fbdc000000000000003fc + +e3007ffffffffffff0 + +fffffffffffff80338000001fffffffffff8e480f8f1c6627127bdffffffffffffffffff + +c600fffffffffffff0 + +fffffffffffffc019ffffffff8000ffffff8e580f8fbc06071e7bdfffffc0000ffffffff + +8c01fffffffffffff0 + +fffffffffffffe00cffffffff80000fffff8e787f8ffc06071ffbcfffff00001ffffffff + +3803fffffffffffff0 + +ffffffffffffff0067fffffffe00001ffff8e7c0787f042231ffbcffff800007fffffffe + +7007fffffffffffff0 + +ffffffffffffff8031ffffffff800007fff8e7e0787f062230ffb8fffe00001ffffffffc + +c00ffffffffffffff0 + +ffffffffffffffc01cffffffffc00001fff8efffffffffffffffb8fff800003ffffffff1 + +801ffffffffffffff0 + +ffffffffffffffe0067ffffffff000003ff8efffffffffffffffb8ffc00000ffffffffe7 + +003ffffffffffffff0 + +fffffffffffffff0033ffffffffc000007f8efffffffffffffffb8fe000003ffffffffce + +00fffffffffffffff0 + +fffffffffffffffc01cfffffffff000000f8fc0000000000000000f000000fffffffff9c + +01fffffffffffffff0 + +fffffffffffffffe0067ffffffffc000001c0000000000000000078000003ffffffffe30 + +03fffffffffffffff0 + +ffffffffffffffff0033fffffffff0000007f8fffffffffff8007c000000fffffffffc60 + +07fffffffffffffff0 + +ffffffffffffffff8019fffffffffc0000000fffffffffffffffc0000003fffffffff9c0 + +0ffffffffffffffff0 + +ffffffffffffffffc00c7ffffe3fff80000001fffffffffffff00000001fffc9ffffe300 + +1ffffffffffffffff0 + +fffffffffffffffff0073ffff307fff000000007fffffffffe000000007fff01ffffce00 + +7ffffffffffffffff0 + +fffffffffffffffff8018ffff007fffc0000000003fffffe0000000003ffff00ffff1c00 + +fffffffffffffffff0 + +fffffffffffffffffc00c7fff067ffff8000000000000000000000001fffff087ffe3801 + +fffffffffffffffff0 + +fffffffffffffffffe0033fff247fffff000000000000000000000007fffff28fff8e003 + +fffffffffffffffff0 + +ffffffffffffffffff0008fff98ffffffe0000000000000000000003ffffff31fff1800f + +fffffffffffffffff0 + +ffffffffffffffffffc0063ff81fffffffc00000000000000000001fffffff81ffc7001f + +fffffffffffffffff0 + +ffffffffffffffffffe0019ffffffffffffc000000000000000001ffffffffdfff1c003f + +fffffffffffffffff0 + +fffffffffffffffffff80047ffffffffffffc0000000000000001ffffffffffffe3800ff + +fffffffffffffffff0 + +fffffffffffffffffffc0021fffffffffe0fff00000000000003fa1ffffffffff8e001ff + +fffffffffffffffff0 + +ffffffffffffffffffff00187ffffffffe07fffc0000000001ffc01fffffffffe38007ff + +fffffffffffffffff0 + +ffffffffffffffffffff80061ffffffffe0707fffe000007ffff801fffffffff8f000fff + +fffffffffffffffff0 + +ffffffffffffffffffffe00187fffffffe4f03fffffffffff0ff001ffffffffe1c003fff + +fffffffffffffffff0 + +fffffffffffffffffffff80061fffffffe4f03fc07ffffff807e201ffffffffc7000ffff + +fffffffffffffffff0 + +fffffffffffffffffffffc0018fffffffe4f27f003c0c3ff80fe631ffffffff1c001ffff + +fffffffffffffffff0 + +ffffffffffffffffffffff00061ffffffe4f27c003c000ffccfe71ffffffff870007ffff + +fffffffffffffffff0 + +ffffffffffffffffffffffc00187fffffc5f678833c0067fccff00fffffffe1c001fffff + +fffffffffffffffff0 + +ffffffffffffffffffffffe00061fffffc9f47b123cc027fecff803ffffff870003fffff + +fffffffffffffffff0 + +fffffffffffffffffffffff800183ffff89f473383cc327fe4f3c01fffffe3c000ffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffe00060ffff89e476787ccf27ee6e3391fffff0e0003ffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffff8001c3fff83e476787ccf27c6663099ffff878000fffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffe000383ff03e4f6707ccf27c3643011fffc1e0003fffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffff8000f07fe3c4f2727ccf27e1241001ffe078000ffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffe0000c1fffc0f2327cce01e0201003ff03c0003ffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffff8000383ffc0f8027cce01e0201007fc1e0000fffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffe0000781ffcfc027cce01e0001bff81f00003fffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffc0000f01fffe003c0e01f0001ff80780001ffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffff00000f00fff80380e01f0037f80780000fffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffe00000f00fffe7fff03fffff007800003fffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffff800000f800fffffffffff000f800001ffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffff000000fc0003ffffff8003f8000007ffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffe0000007f00000000003fe0000003fffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffc0000000ffe000003ff00000003ffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffc000000003ffffff000000001fffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffffc0000000000000000000001ffffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffffe00000000000000000000fffffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffffffe000000000000000003ffffffffffffffffff + +fffffffffffffffff0 + +fffffffffffffffffffffffffffffffffffff8000000000000007fffffffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffffffffc000000000000fffffffffffffffffffff + +fffffffffffffffff0 + +ffffffffffffffffffffffffffffffffffffffffc00000003fffffffffffffffffffffff + +fffffffffffffffff0 + +> + +imagemask + +grestore + +pse +-30 -28 xl +196 69 gm +(nc 0 0 781 538 6 rc)kp +F 1 setTxMode +1 fs +bu fc +{}mark T /Times-Bold /|______Times-Bold 0 rf +bn +18 fz +bu fc +2 F /|______Times-Bold fnt +bn +(A Comparison of Parallel Search Algorithms based on)show +213 225 gm +(Tree Splitting)show +289 227 gm +14 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Paolo Ciancarini)show +410 182 gm +(Technical Report UBLCS-94-14)show +439 249 gm +0 fs +bu fc +{}mark T /Times-Roman /|______Times-Roman 0 rf +bn +bu fc +2 F /|______Times-Roman fnt +bn +(May 1994)show +633 183 gm +(Laboratory for Computer Science)show +651 215 gm +(University of Bologna)show +669 199 gm +(Piazza di Porta S. Donato, 5)show +687 216 gm +(40127 Bologna \(Italy\))show +F T cp +%%Page: ? 2 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +139 79 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.17721 0. 32 0.11772 0.(The University of Bologna Laboratory for Computer Science Research Technical Reports are available via)awidthshow +153 79 gm +0.77774 0. 32 0.07777 0.(anonymous FTP from the area )awidthshow +bu fc +{}mark T /Courier /|______Courier 0 rf +bn +bu fc +2 F /|______Courier fnt +bn +0.29316 0.(ftp.cs.unibo.it:/pub/TR/UBLCS)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.91796 0. 32 0.09179 0.( in compressed PostScript format.)awidthshow +167 79 gm +1.05239 0. 32 0.10523 0.(Abstracts are available from the same host in the directory )awidthshow +bu fc +2 F /|______Courier fnt +bn +0.42799 0.(/pub/TR/UBLCS/ABSTRACTS)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.83404 0. 32 0.08340 0.( in plain text)awidthshow +181 79 gm +(format. All local authors can be reached via e-mail at the address )show +2 fs +bu fc +{}mark T /Times-Italic /|______Times-Italic 0 rf +bn +bu fc +2 F /|______Times-Italic fnt +bn +(last-name)show +0 fs +bu fc +2 F /|______Courier fnt +bn +(@cs.unibo.it.)show +207 79 gm +1 fs +11 fz +bu fc +2 F /|______Times-Bold fnt +bn +(UBLCS Technical Report Series)show +232 80 gm +0 fs +10 fz +bu fc +2 F /|______Times-Roman fnt +bn +(93-1)show +232 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +2.19955 0. 32 0.21995 0.(Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanism)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.11801 0. 32 0.11180 0.(, by \205.)awidthshow +245 110 gm +(Babao)show +245 136 gm +(g;\371lu and K. Marzullo, January 1993.)show +258 80 gm +(93-2)show +258 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Understanding Non-Blocking Atomic Commitment)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by \205. Babao)show +258 368 gm +(g;\371lu and S. Toueg, January 1993.)show +271 80 gm +(93-3)show +271 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Anchors and Paths in a Hypertext Publishing System)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by C. Maioli and F. Vitali, February 1993.)show +284 80 gm +(93-4)show +284 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(A Formalization of Priority Inversion)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by \205. Babao)show +284 316 gm +(g;\371lu, K. Marzullo and F. Schneider, March 1993.)show +297 80 gm +(93-5)show +297 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.68313 0. 32 0.06831 0.(Some Modifications to the Dexter Model for the Formal Description of Hypertexts)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.52368 0. 32 0.05236 0.(, by S. Lamberti, C.)awidthshow +310 110 gm +(Maioli and F. Vitali, April 1993.)show +323 80 gm +(93-6)show +323 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.50613 0. 32 0.05061 0.(Versioning Issues in a Collaborative Distributed Hypertext)awidthshow +11 fz +bu fc +2 F /|______Times-Italic fnt +bn +( )show +323 354 gm +10 fz +bu fc +2 F /|______Times-Italic fnt +bn +0.18540 0.(System)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.49468 0. 32 0.04946 0.(, by C. Maioli, S. Sola and F. Vitali,)awidthshow +336 110 gm +(April 1993.)show +349 80 gm +(93-7)show +349 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Distributed Programming with Logic Tuple Spaces)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by P. Ciancarini, April 1993.)show +362 80 gm +(93-8)show +362 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Coordinating Rule-Based Software Processes with ESP)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by P. Ciancarini, April 1993.)show +375 80 gm +(93-9)show +375 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(What is Logic Programming good for in Software Engineering)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by P. Ciancarini and G. Levi, April 1993.)show +388 80 gm +(93-10)show +388 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.84320 0. 32 0.08432 0.(Scheduling Real Time Tasks: A Performance Study)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.59097 0. 32 0.05909 0.(, by F. Panzieri, L. Donatiello and L. Poretti, May)awidthshow +401 110 gm +(1993.)show +414 80 gm +(93-11)show +414 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.58334 0. 32 0.05833 0.(Specification and Detection of Behavioral Patterns in Distributed Computations)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.37704 0. 32 0.03770 0.(, by \205. Babao)awidthshow +414 498 gm +0.54534 0. 32 0.05453 0.(g;\371lu and)awidthshow +427 110 gm +(M. Raynal, May 1993.)show +440 80 gm +(93-12)show +440 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Interaction Systems II: The Practice of Optimal Reductions)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by A. Asperti and C. Laneve, May 1993.)show +453 80 gm +(93-13)show +453 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.00616 0. 32 0.10061 0.(Reliability Analysis of Tree-Based Structures and its Application to Fault-Tolerant VLSI Systems)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.61645 0. 32 0.06164 0.(, by)awidthshow +466 110 gm +(Marco Roccetti, June 1993.)show +479 80 gm +(93-14)show +479 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Guard Compilation in Logic Shared Dataspace Languages)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by M. Garpari, June 1993.)show +492 80 gm +(93-15)show +492 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.16424 0. 32 0.11642 0.(Data Algorithm: A Numerical Method to Extract Shape Information from Gray Scale Images)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.66116 0. 32 0.06611 0.(, by R.)awidthshow +505 110 gm +(Davoli and F. Tamburini, June 1993.)show +518 80 gm +(93-16)show +518 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Towards Performance Evaluation in Process Algebra)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by R. Gorrieri and M. Roccetti, July 1993.)show +531 80 gm +(93-17)show +531 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Split and ST Bisimulation Semantics)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by R. Gorrieri and C. Laneve, July 1993.)show +544 80 gm +(93-18)show +544 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Multilanguage Interoperability)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by G. Attardi and M. Gaspari, July 1993.)show +557 80 gm +(93-19)show +557 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.20431 0. 32 0.02043 0.(HERMES: an Expert System for the Prognosis of Hepatic Diseases)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.14709 0. 32 0.01470 0.(, by I. Bonf\210, C. Maioli, F. Sarti, G.L.)awidthshow +570 110 gm +(Milandri and P.R. Dal Monte, September 1993)show +583 80 gm +(93-20)show +583 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(An Information Flow Security Property for CCS)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by R. Focardi and R. Gorrieri, October 1993.)show +596 80 gm +(93-21)show +596 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(A Classification of Security Properties)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by R. Focardi and R. Gorrieri, October 1993.)show +609 80 gm +(93-22)show +609 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Real Time Systems: A Tutorial)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by F. Panzieri and R. Davoli, October 1993.)show +622 80 gm +(93-23)show +622 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +-0.00643 0.(A Scalable Architecture for Reliable Distributed Multimedia Applications)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +-0.00637 0.(, by F. Panzieri and M. Roccetti,)ashow +635 110 gm +(October 1993.)show +648 80 gm +(93-24)show +648 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Wide-Area Distribution Issues in Hypertext Systems)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by C. Maioli, S. Sola and F. Vitali, October 1993.)show +661 80 gm +(93-25)show +661 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(On Relating Some Models for Concurrency)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, by P. Degano, R. Gorrieri and S. Vigna, October 1993.)show +674 80 gm +(93-26)show +674 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.45263 0. 32 0.14526 0.(Axiomatising ST Bisimulation Equivalence)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.88378 0. 32 0.08837 0.(, by N. Busi, R. van Glabbeek and R. Gorrieri, December)awidthshow +687 110 gm +(1993.)show +700 80 gm +(93-27)show +700 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.48498 0. 32 0.14849 0.(A Theory of Processes with Durational Actions)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.30096 0. 32 0.13009 0.(, by R. Gorrieri, M. Roccetti and E. Stancampiano,)awidthshow +713 110 gm +(December 1993.)show +F T cp +%%Page: ? 3 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +801 525 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +146 79 gm +1 fs +18 fz +bu fc +2 F /|______Times-Bold fnt +bn +2.25738 0. 32 0.22573 0.(A Comparison of Parallel Search Algorithms based on)awidthshow +164 79 gm +(Tree Splitting)show +217 79 gm +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Paolo Ciancarini)show +0 -4 rm +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(1)show +294 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Technical Report UBLCS-94-14)show +322 79 gm +(May 1994)show +363 79 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Abstract)show +380 79 gm +2 fs +10 fz +bu fc +2 F /|______Times-Italic fnt +bn +0.01831 0. 32 0.00183 0.(We have used a distributed programming environment to compare a number of parallel search algorithms in the)awidthshow +394 79 gm +0.43136 0. 32 0.04313 0.(domain of chess. The environment runs on a network of workstations; it is based on Linda for coordination of)awidthshow +408 79 gm +0.84838 0. 32 0.08483 0.(the search and on GNUChess for chess knowledge. In order to make a practical comparison, we have built)awidthshow +422 79 gm +0.43441 0. 32 0.04344 0.(several parallel programs using different search algorithms. We have formalized and classified the concept of)awidthshow +436 79 gm +0.34042 0. 32 0.03404 0.(parallel search algorithms based game tree splitting. The algorithms have been classified in two main classes:)awidthshow +450 79 gm +0.46676 0. 32 0.04667 0.(static and dynamic. We show that on a workstation network static algorithms are more efficient than dynamic)awidthshow +464 79 gm +(ones. Our results confirm and broaden older works by Marsland, Campbell, Schaeffer, and others.)show +739 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\321\321\321)show +749 79 gm +1 fs +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(1)show +0 1 rm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(.)show +750 94 gm +(E-mail: cianca@cs.unibo.it)show +F T cp +%%Page: ? 4 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +bu fc +{}mark T /Helvetica /|______Helvetica 0 rf +bn +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(2)show +134 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(1. Introduction)show +147 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.81762 0. 32 0.18176 0.(The alphabeta algorithm is the basis of most sequential programs that search game trees. Its)awidthshow +158 79 gm +0.35644 0. 32 0.03564 0.(efficiency is decisive in chess playing programs, whose playing strength can be precisely measured)awidthshow +169 79 gm +1.08215 0. 32 0.10821 0.(using the Elo system [Elo86]. For instance, some experiments found that improving 5 times the)awidthshow +180 79 gm +0.24139 0. 32 0.02413 0.(running time of such an algorithm the playing strength of a chess programs improves about 200 Elo)awidthshow +191 79 gm +0.08392 0. 32 0.00839 0.(points [Tho82]. One could expect that multiprocessors and multicomputers should be very helpful in)awidthshow +202 79 gm +1.07360 0. 32 0.10736 0.(building stronger chess programs. However, it is well known that the efficient parallelization of)awidthshow +213 79 gm +0.75637 0. 32 0.07563 0.(alphabeta is a difficult problem [FinFis82]. Several different ways to parallelism in chess playing)awidthshow +224 79 gm +(programs have been explored; a short survey is found in [BalVRe86]. The main methods are:)show +236 88 gm +2.15698 0. 32 0.21569 0.(i\) Parallel aspiration search [Bau78]: the alphabeta window is partitioned in a number of)awidthshow +247 101 gm +0.00518 0. 32 0.00051 0.(contiguous segments, that are used by different processors to explore the same game tree; this is)awidthshow +258 101 gm +(a form of OR-parallelism.)show +271 88 gm +1.79580 0. 32 0.17958 0.(ii\) Parallel evaluation by special hardware; )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.39163 0.(e.g.)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.88949 0. 32 0.18894 0.(, HITECH uses parallel hardware for move)awidthshow +282 101 gm +2.09396 0. 32 0.20939 0.(generation [Ebe86], while Deep Thought [Hsu90] uses parallel hardware for evaluating)awidthshow +293 101 gm +(positions.)show +306 88 gm +0.44219 0. 32 0.04421 0.(iii\) Mapping the search space on the processor set by a hash function: this is advantageous if the)awidthshow +317 101 gm +1.15493 0. 32 0.11549 0.(search space contains several duplicate states; )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.24205 0.(e.g.)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.09634 0. 32 0.10963 0.(, [Sti91] describes how the whole search)awidthshow +328 101 gm +(space of some chess endings was mapped on a Connection Machine.)show +341 88 gm +0.93551 0. 32 0.09355 0.(iv\) Parallel search of \322splitted\323 game tree: the game tree is decomposed assigning its nodes to)awidthshow +352 101 gm +(different search processes.)show +364 79 gm +0.66818 0. 32 0.06681 0.(The last method is the most widely studied and used. For instance, in [MarCam82] several search)awidthshow +375 79 gm +0.26077 0. 32 0.02607 0.(algorithms were described and compared; other experiments with different algorithms are described)awidthshow +386 79 gm +0.56335 0. 32 0.05633 0.(in [MOS86]. However, after those seminal papers we found no newer survey works on comparing)awidthshow +397 79 gm +0.09002 0. 32 0.00900 0.(parallel algorithms, although new ones have been invented. We decided to test the flexibility and the)awidthshow +408 79 gm +0.59478 0. 32 0.05947 0.(performance of a modern parallel language in implementing such algorithms on a general purpose)awidthshow +419 79 gm +(network.)show +430 79 gm +2.87628 0. 32 0.28762 0.(Thus, in this paper we compare some parallel search algorithms based on tree splitting,)awidthshow +441 79 gm +1.16760 0. 32 0.11676 0.(implementing them all in the same hw/sw environment, )awidthshow +441 342 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(i.e.,)show +441 358 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.26510 0. 32 0.12651 0.( C-Linda [SCA90] on a network of)awidthshow +452 79 gm +0.90667 0. 32 0.09066 0.(workstations. We have developed a chess-oriented software library based on a publicly available)awidthshow +463 79 gm +0.73593 0. 32 0.07359 0.(program, namely GNUChess \(courtesy of Open Software Foundation\). Using these tools we have)awidthshow +474 79 gm +0.55084 0. 32 0.05508 0.(built several parallel playing programs, embedding different parallel search algorithms; in order to)awidthshow +485 79 gm +1.41540 0. 32 0.14154 0.(simplify comparison with results reported in other papers, our experiments were made using a)awidthshow +496 79 gm +(standard set of tests [BraKop82].)show +507 79 gm +0.30136 0. 32 0.03013 0.(This paper has the following structure: in Sect. 2 we define the concept of static and dynamic game)awidthshow +518 79 gm +0.22994 0. 32 0.02299 0.(tree splitting; in Sect. 3 we discuss how parallel search algorithms can be programmed in Linda; we)awidthshow +529 79 gm +0.27206 0. 32 0.02720 0.(summarise our experiments on static splitting algorithms in Sect.4, whereas Sect.5 contains data for)awidthshow +540 79 gm +0.39337 0. 32 0.03933 0.(dynamic splitting algorithms. In Sect.6 we make a number of comparisons with results obtained by)awidthshow +551 79 gm +(other researchers.)show +581 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(2. A classification of splitting criteria)show +594 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.18798 0. 32 0.01879 0.(There are several ways for handling a game tree during a parallel search, that basically differ for the)awidthshow +605 79 gm +0.64132 0. 32 0.06413 0.(splitting rules they use. We define some concepts in order to highlight properties of such splitting)awidthshow +616 79 gm +(rules. Consider the following definitions:)show +628 88 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Def)show +628 104 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.72631 0. 32 0.07263 0.(. )awidthshow +628 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.00660 0.(Splitting)ashow +628 147 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.59432 0. 32 0.05943 0.(: Let A be a game tree and N={N)awidthshow +628 300 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.20324 0.(1)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.50598 0. 32 0.05059 0.(, N)awidthshow +628 318 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.19212 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.49163 0. 32 0.04916 0.(, \311, N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.19212 0.(n)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.56747 0. 32 0.05674 0.(} its set of nodes; let P={P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.19212 0.(1)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.41320 0. 32 0.04132 0.(, P)awidthshow +628 494 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.15512 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.51040 0. 32 0.05104 0.(, \311,)awidthshow +643 101 gm +(P)show +643 107 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.10221 0.(m)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.17745 0. 32 0.01774 0.(} a set of processes. A )awidthshow +643 216 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.00639 0.(splitting)ashow +643 252 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.19348 0. 32 0.01934 0.( for A in P is a function D:N)awidthshow +643 379 gm +bu fc +{}mark F /Symbol /|______Symbol 0 rf +bn +bu fc +2 F /|______Symbol fnt +bn +0.12472 0.(\256)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.17547 0. 32 0.01754 0.(P which maps each node of A)awidthshow +655 101 gm +(to a process in P.)show +668 88 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Def)show +668 104 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.82168 0. 32 0.08216 0.(. )awidthshow +668 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.02569 0. 32 0.10256 0.(Explorer and supervisor processes)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.49407 0. 32 0.04940 0.(: Let D be a splitting for the game tree A to the set P of)awidthshow +683 101 gm +1.24938 0. 32 0.12493 0.(processes; let N be the nodes of A and N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.22651 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.26876 0. 32 0.12687 0.( a generic node \(N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.22651 0.(i)ashow +11 fz +bu fc +2 F /|______Symbol fnt +bn +0.71040 0.(\316)ashow +bu fc +2 F /|______Times-Roman fnt +bn +1.18743 0. 32 0.11874 0.(N\). We call )awidthshow +683 454 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.00755 0.(explorer)ashow +683 491 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.53289 0. 32 0.15328 0.( of N)awidthshow +683 517 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +699 101 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.35369 0. 32 0.03536 0.(\(according to D\) the process D\(N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.30151 0. 32 0.03015 0.(\). Moreover, let )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.10374 0.(father)ashow +699 351 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.48904 0. 32 0.04890 0.(: N)awidthshow +699 365 gm +bu fc +2 F /|______Symbol fnt +bn +0.25772 0.(\256)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.36575 0. 32 0.03657 0.(N be a function that associates a)awidthshow +711 101 gm +1.37420 0. 32 0.13742 0.(node with its predecessor node \(we define the root node as predecessor of itself\); we call)awidthshow +722 101 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(supervisor)show +722 147 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( of N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( \(according to D\) the process D\(father\(N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\)\).)show +734 79 gm +0.84487 0. 32 0.08448 0.(After a splitting the evaluation of a subtree is assigned to a specific process named )awidthshow +734 464 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.00755 0.(explorer)ashow +734 501 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.94177 0. 32 0.09417 0.(. For)awidthshow +745 79 gm +0.42999 0. 32 0.04299 0.(instance, let \(N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.05787 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.10260 0.(,P)ashow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.05787 0.(j)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.25680 0. 32 0.02568 0.(\) be a pair in D; since N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.05787 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.36682 0. 32 0.03668 0.( fully identifies the subtree S)awidthshow +745 397 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.07580 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.35919 0. 32 0.03591 0.( of which it is the root, the)awidthshow +F T cp +%%Page: ? 5 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(3)show +118 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.13336 0. 32 0.01333 0.(minimax value for subtree S)awidthshow +118 204 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.13778 0. 32 0.01377 0.( must be computed by explorer P)awidthshow +118 352 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(j)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.13641 0. 32 0.01364 0.(. To evaluate a subtree S)awidthshow +118 463 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12878 0. 32 0.01287 0.( the explorer)awidthshow +129 79 gm +(P)show +129 85 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.07980 0. 32 0.00798 0.(j )awidthshow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.32028 0. 32 0.03202 0.(has to know the minimax values of the subtrees whose roots are the successors of N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.05039 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.34561 0. 32 0.03456 0.(; function D)awidthshow +140 79 gm +0.05783 0. 32 0.00578 0.(defines an explorer for each of such subtrees as well. Let N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(s)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.03936 0. 32 0.00393 0.( be one of N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.06500 0. 32 0.00650 0.(\325s successors and P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(s)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.02426 0.(=D\(N)ashow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(s)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\))show +151 79 gm +0.24230 0. 32 0.02423 0.(the corresponding explorer. Which relation is established between P)awidthshow +151 382 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.06809 0.(j)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.29953 0. 32 0.02995 0.( and P)awidthshow +151 412 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.05468 0.(s)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.26626 0. 32 0.02662 0.(? There is a dependence)awidthshow +162 79 gm +0.83358 0. 32 0.08335 0.(of P)awidthshow +162 98 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.20744 0.(s)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.75210 0. 32 0.07521 0.( from P)awidthshow +162 136 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12579 0.(j)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.79711 0. 32 0.07971 0.( because the minimax value of the subtree assigned to P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.17608 0.(s)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.52780 0. 32 0.05278 0.( is used by P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12579 0.(j)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.56365 0. 32 0.05636 0.(, and P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.17608 0.(s)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.86746 0. 32 0.08674 0.( must)awidthshow +173 79 gm +(report to this process. We call P)show +173 219 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(j)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(supervisor)show +173 269 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( of N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(s)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( because it manages Ns\325minimax value.)show +184 79 gm +0.04608 0. 32 0.00460 0.(Thus, a game tree splitting establishes a hierarchic relationship among processes. Such a relationship)awidthshow +195 79 gm +-0.00288 0.(changes dynamically \(i.e., during the tree visit\) depending on the relationship among subtrees visited)ashow +206 79 gm +0.55511 0. 32 0.05551 0.(by the processes at any time. In fact, it may happen that, in a subsequent stage of the visit, P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.09809 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.55648 0. 32 0.05564 0.( will)awidthshow +217 79 gm +0.85998 0. 32 0.08599 0.(have to communicate to P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.16860 0.(s)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.69030 0. 32 0.06903 0.( the result of its search because the subtree it visited is included in the)awidthshow +228 79 gm +(subtree explored by P)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(s)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( .)show +(nc 252 109 454 494 6 rc)kp +0 gr +254.5 266.5 279.5 292.5 0 ov +270 270 gm +(nc 260 269 272 291 6 rc)kp +F 1 setTxMode + +%%BeginFont: Geneva +bu fc +22 0 -6 30 24 bb +218 array /CharData mdf +<001C00000000 +FF1CFFFF0000 +001C00000000 +001C00000000 +001C00000000 +001C00000000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +001C10100000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +001C00000000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +FF1CFFFF0000 +001C08080000 +020603060112 +0214020A0504 +020E02120E0A +0204020E0916 +020602120E12 +040602120F12 +021402060104 +0205020A0514 +0205030A0514 +020D01100E0B +020B020E0909 +020202080306 +020F020E0A01 +020602060102 +0206020E0912 +020602100C12 +020606100312 +020602100C12 +020602100C12 +020602100E12 +020602100C12 +020602100C12 +020602100C12 +020602100C12 +020602100C12 +02060206010C +020202080310 +0208030C070D +020D020E0A05 +0208020C070D +020603100B12 +040603140F10 +040602120F12 +020602100C12 +020602100C12 +020602100C12 +0206020E0A12 +0206020E0A12 +020602100C12 +020602100C12 +0206040A0112 +0206000E0C12 +020602100D12 +0206020E0A12 +040601120F12 +020602100C12 +020601100D12 +020603100B12 +020601100D12 +020602100C12 +020602100C12 +020601100D12 +020602100C12 +020603120D12 +040602161312 +0206010E0B12 +0206010E0B12 +0206020E0A12 +020402080416 +0206020E0A14 +020402080416 +021501080603 +040600101001 +021402080404 +0206020E0A0E +0206020E0A12 +0206020E0A0E +0206020E0A12 +0206020E0A0E +0206020C0812 +0200020E0A14 +0206020E0A12 +0206030A0312 +0200020C0618 +0206020E0A12 +0206030A0312 +04060216110E +0206020E0A0E +0206020E0A0E +0202020E0A12 +0202020E0A12 +0206020C090E +0206020E0A0E +0206020C0812 +0206020E0A0E +0206010E0B0E +04060216110E +0206020E0A0E +0200010E0B14 +0206020E0A0E +0204030A0516 +020402060116 +0204020A0516 +021502100C03 +001C00000000 +040602120F16 +040602120F16 +020102100C17 +0206020E0A16 +020602100C16 +020601100D16 +020602100C16 +0206020E0A13 +0206020E0A13 +0206020E0A13 +0206020E0A12 +0206020E0A12 +0206020E0A15 +0201020E0A13 +0206020E0A13 +0206020E0A13 +0206020E0A13 +0206020E0A12 +0206030A0413 +0206030A0313 +0206020A0613 +0206020A0512 +0206020E0A13 +0206020E0A13 +0206020E0A13 +0206020E0A13 +0206020E0A12 +0206020E0A12 +0206020E0A13 +0206020E0A13 +0206020E0A13 +0206020E0A12 +0211020A0509 +0213030C0505 +0206020E0A12 +020602100C12 +020603100A12 +020802100C0C +020602100C12 +020602120D12 +040602140F0F +040602140F0F +021102160E07 +021402080404 +0217020A0501 +020B01100D09 +040603181312 +020602100C12 +040A01161307 +0207020E090D +0206020C080F +0206020C080F +0206010E0B12 +020203120D12 +0206020E0A11 +020602100C12 +020602120E12 +040602140F0F +0200010A071B +020B020C070D +020B020C070D +020603140E12 +04060116130E +0206020E0A0E +020602100B12 +020604080112 +020B020E0A05 +040602141015 +0200010A071B +020B01100D08 +040601120F0F +020601100C0D +020603100C0D +040602140F02 +001C10100000 +040601120F16 +040601120F16 +020601100D16 +040602181412 +04060216120E +020D020C0801 +020D02120E01 +0213030E0605 +0213050E0605 +021303080205 +021303080205 +020B010E0B09 +020802120D0E +0200020E0B18 +0406021E1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +FFFFFFFF1810 +> +/CharTable mdf +217< +00000000 +00000000 +01C00000 +03800000 +07000400 +0C0FCC00 +383FEC00 +6CFFF800 +FFFFF000 +FFFFF000 +FFFFF000 +1FFFF300 +0FFFEF00 +0FE1FC00 +1E01F800 +7C00E000 +E0000000 +80000000 +00000000 +00000000 +>cdf +216< +0000 +0000 +2080 +2080 +0000 +0000 +8020 +8020 +8020 +4040 +4040 +4040 +2080 +2080 +1100 +1100 +0A00 +0A00 +0400 +0400 +0800 +0800 +1000 +1000 +2000 +2000 +0000 +0000 +>cdf +215< +0000 +0000 +0200 +0500 +0880 +1040 +2020 +4010 +8008 +8008 +4010 +2020 +1040 +0880 +0500 +0200 +0000 +0000 +>cdf +214< +0000 +0000 +0400 +0400 +0000 +0000 +FFE0 +0000 +0000 +0400 +0400 +0000 +0000 +>cdf +213< +0000 +0000 +C000 +4000 +4000 +4000 +8000 +0000 +0000 +>cdf +212< +0000 +0000 +4000 +8000 +8000 +8000 +C000 +0000 +0000 +>cdf +211< +0000 +0000 +CC00 +4400 +4400 +4400 +8800 +0000 +0000 +>cdf +210< +0000 +0000 +4400 +8800 +8800 +8800 +CC00 +0000 +0000 +>cdf +209< +0000 +0000 +FFFC +0000 +0000 +>cdf +208< +0000 +0000 +FF00 +0000 +0000 +>cdf +207< +00000000 +00000000 +1E0E0000 +21110000 +40A08000 +40408000 +80404000 +80404000 +807FC000 +80400000 +80400000 +80400000 +40400000 +40A08000 +21110000 +1E0E0000 +00000000 +00000000 +>cdf +206< +00000000 +00000000 +071FF000 +18D00000 +20300000 +40100000 +40100000 +80100000 +80100000 +80100000 +801FC000 +80100000 +80100000 +80100000 +80100000 +40100000 +40100000 +20300000 +18D00000 +071FF000 +00000000 +00000000 +>cdf +205< +0000 +0000 +1C40 +2380 +0000 +0000 +0700 +18C0 +2020 +4010 +4010 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +4010 +4010 +2020 +18C0 +0700 +0000 +0000 +>cdf +204< +00000000 +00000000 +07100000 +08E00000 +00000000 +00000000 +01000000 +01000000 +01000000 +02800000 +02800000 +04400000 +04400000 +08200000 +08200000 +10100000 +10100000 +3FF80000 +20080000 +20080000 +40040000 +40040000 +80020000 +80020000 +00000000 +00000000 +>cdf +203< +00000000 +00000000 +02000000 +01000000 +00800000 +00000000 +01000000 +01000000 +01000000 +02800000 +02800000 +04400000 +04400000 +08200000 +08200000 +10100000 +10100000 +3FF80000 +20080000 +20080000 +40040000 +40040000 +80020000 +80020000 +00000000 +00000000 +>cdf +201< +00000000 +00000000 +81020000 +81020000 +00000000 +00000000 +>cdf +200< +0000 +0000 +8400 +4200 +2100 +1080 +0840 +0420 +0210 +0420 +0840 +1080 +2100 +4200 +8400 +0000 +0000 +>cdf +199< +0000 +0000 +0210 +0420 +0840 +1080 +2100 +4200 +8400 +4200 +2100 +1080 +0840 +0420 +0210 +0000 +0000 +>cdf +198< +00000000 +00000000 +01000000 +01000000 +02800000 +02800000 +04400000 +04400000 +08200000 +08200000 +10100000 +10100000 +20080000 +20080000 +40040000 +40040000 +FFFE0000 +00000000 +00000000 +>cdf +197< +0000 +0000 +3C08 +4210 +81E0 +0000 +0000 +3C08 +4210 +81E0 +0000 +0000 +>cdf +196< +0000 +0000 +0600 +0800 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +7C00 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +2000 +C000 +0000 +0000 +>cdf +195< +00000000 +00000000 +000F0000 +00080000 +00080000 +00100000 +00100000 +00100000 +00200000 +00200000 +00200000 +00400000 +00400000 +00400000 +30800000 +50800000 +88800000 +09000000 +05000000 +05000000 +02000000 +02000000 +02000000 +00000000 +00000000 +>cdf +194< +0000 +0000 +FFC0 +0040 +0040 +0040 +0040 +0000 +0000 +>cdf +193< +0000 +0000 +8000 +8000 +0000 +0000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +192< +0000 +0000 +0400 +0400 +0000 +0000 +0400 +0400 +0400 +0800 +0800 +1000 +2000 +4000 +8000 +8020 +8020 +8040 +4080 +3F00 +0000 +0000 +>cdf +191< +0000 +0000 +1E40 +2140 +4080 +4080 +8140 +8240 +8440 +8840 +9040 +A040 +4080 +4080 +A100 +9E00 +0000 +0000 +>cdf +190< +00000000 +00000000 +1F0F0000 +60908000 +80604000 +00404000 +00C02000 +03402000 +0C7FE000 +30400000 +40400000 +80400000 +80400000 +80E04000 +43508000 +3C4F0000 +00000000 +00000000 +>cdf +189< +0000 +0000 +0FC0 +3030 +4008 +4008 +8004 +8004 +8004 +8004 +8004 +8004 +8004 +4008 +4008 +2010 +2010 +1020 +0840 +3870 +0000 +0000 +>cdf +188< +0000 +0000 +3800 +4400 +8200 +8200 +8200 +8200 +8200 +8200 +4400 +3800 +0000 +0000 +FE00 +0000 +0000 +>cdf +187< +0000 +0000 +3C00 +4200 +8200 +0E00 +3200 +4200 +8200 +8600 +8A00 +7200 +0000 +0000 +FE00 +0000 +0000 +>cdf +186< +0000 +0000 +0600 +0800 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +2000 +C000 +0000 +0000 +>cdf +185< +00000000 +00000000 +00020000 +3FFC0000 +48080000 +88080000 +08080000 +08080000 +08080000 +08080000 +08080000 +08080000 +08080000 +08080000 +08080000 +08080000 +10100000 +00000000 +00000000 +>cdf +184< +0000 +0000 +FFFC +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +2010 +0000 +0000 +>cdf +183< +0000 +0000 +FFF0 +4010 +2010 +1000 +0800 +0400 +0200 +0100 +0080 +0080 +0100 +0200 +0400 +0800 +1000 +2010 +4010 +FFF0 +0000 +0000 +>cdf +182< +0000 +0000 +3800 +0600 +0100 +0080 +0080 +0040 +07C0 +1840 +2040 +4040 +4040 +8040 +8080 +8080 +8100 +4200 +3C00 +0000 +0000 +>cdf +181< +0000 +0000 +4040 +4040 +4040 +4040 +4040 +4040 +4040 +4040 +4040 +4040 +4040 +6040 +50A0 +4F18 +4000 +4000 +4000 +8000 +0000 +0000 +>cdf +180< +0000 +0000 +8020 +4040 +2080 +1100 +7BC0 +0400 +0400 +0400 +0400 +7FC0 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0000 +0000 +>cdf +179< +0000 +0000 +4000 +2000 +1000 +0800 +0400 +0200 +0100 +0200 +0400 +0800 +1000 +2000 +4000 +0000 +FF00 +0000 +0000 +>cdf +178< +0000 +0000 +0200 +0400 +0800 +1000 +2000 +4000 +8000 +4000 +2000 +1000 +0800 +0400 +0200 +0000 +FF00 +0000 +0000 +>cdf +177< +0000 +0000 +0800 +0800 +0800 +0800 +FF80 +0800 +0800 +0800 +0800 +0000 +0000 +0000 +FF80 +0000 +0000 +>cdf +176< +00000000 +00000000 +3C078000 +43184000 +80A02000 +80402000 +80A02000 +43184000 +3C078000 +00000000 +00000000 +>cdf +175< +0000 +0000 +0F10 +30D0 +4020 +4020 +8050 +8090 +8090 +8110 +8210 +8410 +8810 +9010 +9010 +A010 +4020 +4020 +B0C0 +8F00 +0000 +0000 +>cdf +174< +00000000 +00000000 +00FFE000 +00C00000 +01400000 +01400000 +02400000 +02400000 +04400000 +04400000 +0FFF8000 +08400000 +10400000 +10400000 +20400000 +20400000 +40400000 +40400000 +80400000 +807FE000 +00000000 +00000000 +>cdf +173< +0000 +0000 +0020 +0040 +FFF8 +0100 +0200 +0400 +FFF8 +1000 +2000 +0000 +0000 +>cdf +172< +0000 +0000 +8800 +0000 +0000 +>cdf +171< +0000 +0000 +1000 +2000 +4000 +8000 +0000 +0000 +>cdf +170< +0000 +0000 +F904 +218C +2154 +2124 +2104 +2104 +2104 +0000 +0000 +>cdf +169< +00000000 +00000000 +0FE00000 +30180000 +600C0000 +40040000 +83820000 +84420000 +84020000 +84020000 +84020000 +84420000 +83820000 +40040000 +600C0000 +30180000 +0FE00000 +00000000 +00000000 +>cdf +168< +00000000 +00000000 +0FE00000 +30180000 +600C0000 +40040000 +87820000 +84420000 +84420000 +87820000 +85020000 +84820000 +84420000 +40040000 +600C0000 +30180000 +0FE00000 +00000000 +00000000 +>cdf +167< +0000 +0000 +0FC0 +1020 +2010 +2010 +2010 +2010 +2020 +20C0 +2020 +2010 +2008 +2008 +2008 +2008 +2008 +2010 +2060 +C380 +0000 +0000 +>cdf +166< +0000 +0000 +0F30 +3120 +4120 +4120 +8120 +8120 +8120 +8120 +4120 +4120 +3120 +0F20 +0120 +0120 +0120 +0120 +0120 +0120 +0000 +0000 +>cdf +165< +0000 +0000 +0F00 +3FC0 +7FE0 +7FE0 +FFF0 +FFF0 +FFF0 +FFF0 +7FE0 +7FE0 +3FC0 +0F00 +0000 +0000 +>cdf +164< +0000 +0000 +3F00 +4080 +8040 +8040 +8000 +6000 +9800 +8600 +8180 +6040 +1840 +0640 +0180 +0040 +8040 +8040 +4080 +3F00 +0000 +0000 +>cdf +163< +0000 +0000 +0F00 +1080 +2000 +2000 +2000 +2000 +2000 +2000 +FC00 +2000 +2000 +2000 +2000 +2000 +2010 +2010 +2020 +FFC0 +0000 +0000 +>cdf +162< +0000 +0000 +0400 +0400 +1F00 +2480 +4440 +4400 +8400 +8400 +8400 +8400 +8400 +8400 +4400 +4440 +2480 +1F00 +0400 +0400 +0000 +0000 +>cdf +161< +0000 +0000 +7000 +8800 +8800 +8800 +7000 +0000 +0000 +>cdf +160< +0000 +0000 +2000 +2000 +F800 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +159< +0000 +0000 +2100 +2100 +0000 +0000 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0000 +0000 +>cdf +158< +0000 +0000 +0C00 +1200 +2100 +0000 +0000 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0000 +0000 +>cdf +157< +0000 +0000 +1000 +0800 +0400 +0000 +0000 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0000 +0000 +>cdf +156< +0000 +0000 +0200 +0400 +0800 +0000 +0000 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0000 +0000 +>cdf +155< +0000 +0000 +3880 +4700 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +8040 +8040 +8040 +8040 +4080 +4080 +2100 +1E00 +0000 +0000 +>cdf +154< +0000 +0000 +2100 +2100 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +8040 +8040 +8040 +8040 +4080 +4080 +2100 +1E00 +0000 +0000 +>cdf +153< +0000 +0000 +0C00 +1200 +2100 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +8040 +8040 +8040 +8040 +4080 +4080 +2100 +1E00 +0000 +0000 +>cdf +152< +0000 +0000 +0800 +0400 +0200 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +8040 +8040 +8040 +8040 +4080 +4080 +2100 +1E00 +0000 +0000 +>cdf +151< +0000 +0000 +0200 +0400 +0800 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +8040 +8040 +8040 +8040 +4080 +4080 +2100 +1E00 +0000 +0000 +>cdf +150< +0000 +0000 +3880 +4700 +0000 +0000 +0000 +9E00 +A100 +C080 +8080 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +0000 +0000 +>cdf +149< +0000 +0000 +8800 +8800 +0000 +0000 +7000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +0000 +0000 +>cdf +148< +0000 +0000 +3000 +4800 +8400 +0000 +0000 +7000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +0000 +0000 +>cdf +147< +0000 +0000 +8000 +4000 +2000 +0000 +0000 +E000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +146< +0000 +0000 +1000 +2000 +4000 +0000 +0000 +E000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +145< +0000 +0000 +1100 +1100 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +FFC0 +8000 +8000 +8000 +4000 +4080 +2100 +1E00 +0000 +0000 +>cdf +144< +0000 +0000 +0C00 +1200 +2100 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +FFC0 +8000 +8000 +8000 +4000 +4080 +2100 +1E00 +0000 +0000 +>cdf +143< +0000 +0000 +1000 +0800 +0400 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +FFC0 +8000 +8000 +8000 +4000 +4080 +2100 +1E00 +0000 +0000 +>cdf +142< +0000 +0000 +0200 +0400 +0800 +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +FFC0 +8000 +8000 +8000 +4000 +4080 +2100 +1E00 +0000 +0000 +>cdf +141< +0000 +0000 +1F00 +2080 +4040 +4000 +8000 +8000 +8000 +8000 +8000 +8000 +4000 +4040 +2080 +1F00 +0400 +0600 +0200 +0400 +0800 +0000 +0000 +>cdf +140< +0000 +0000 +0E00 +1100 +1100 +1100 +0E00 +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +139< +0000 +0000 +3880 +4700 +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +138< +0000 +0000 +1100 +1100 +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +137< +0000 +0000 +0C00 +1200 +2100 +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +136< +0000 +0000 +0800 +0400 +0200 +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +135< +0000 +0000 +0200 +0400 +0800 +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +134< +0000 +0000 +1080 +1080 +0000 +0000 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +4020 +4020 +30C0 +0F00 +0000 +0000 +>cdf +133< +0000 +0000 +0880 +0880 +0000 +0000 +0700 +18C0 +2020 +4010 +4010 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +4010 +4010 +2020 +18C0 +0700 +0000 +0000 +>cdf +132< +0000 +0000 +3880 +4700 +0000 +0000 +8010 +C010 +C010 +A010 +A010 +9010 +8810 +8810 +8410 +8210 +8210 +8110 +8090 +8090 +8050 +8030 +8030 +8010 +0000 +0000 +>cdf +131< +0000 +0000 +0200 +0400 +0800 +0000 +FFC0 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FF00 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FFC0 +0000 +0000 +>cdf +130< +0000 +0000 +0FC0 +3020 +4010 +4000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +4000 +4010 +3020 +0FC0 +0200 +0300 +0100 +0100 +0200 +0000 +0000 +>cdf +129< +00000000 +00000000 +03800000 +04400000 +04400000 +03800000 +01000000 +01000000 +01000000 +02800000 +02800000 +04400000 +04400000 +08200000 +08200000 +10100000 +10100000 +3FF80000 +20080000 +20080000 +40040000 +40040000 +80020000 +80020000 +00000000 +00000000 +>cdf +128< +00000000 +00000000 +04400000 +04400000 +00000000 +00000000 +01000000 +01000000 +01000000 +02800000 +02800000 +04400000 +04400000 +08200000 +08200000 +10100000 +10100000 +3FF80000 +20080000 +20080000 +40040000 +40040000 +80020000 +80020000 +00000000 +00000000 +>cdf +126< +0000 +0000 +3810 +4420 +83C0 +0000 +0000 +>cdf +125< +0000 +0000 +C000 +2000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +0800 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +2000 +C000 +0000 +0000 +>cdf +124< +0000 +0000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +123< +0000 +0000 +1800 +2000 +4000 +4000 +4000 +4000 +4000 +4000 +4000 +4000 +8000 +4000 +4000 +4000 +4000 +4000 +4000 +4000 +4000 +4000 +2000 +1800 +0000 +0000 +>cdf +122< +0000 +0000 +FFC0 +0040 +0080 +0100 +0200 +0200 +0400 +0800 +1000 +1000 +2000 +4000 +8000 +FFC0 +0000 +0000 +>cdf +121< +0000 +0000 +8020 +8020 +4040 +4040 +4040 +2080 +2080 +1100 +1100 +1100 +0A00 +0A00 +0400 +0400 +0800 +0800 +1000 +1000 +2000 +2000 +0000 +0000 +>cdf +120< +0000 +0000 +8040 +8040 +4080 +2100 +2100 +1200 +0C00 +0C00 +1200 +2100 +2100 +4080 +8040 +8040 +0000 +0000 +>cdf +119< +00000000 +00000000 +80808000 +80808000 +80808000 +41410000 +41410000 +41410000 +22220000 +22220000 +22220000 +14140000 +14140000 +14140000 +08080000 +08080000 +00000000 +00000000 +>cdf +118< +0000 +0000 +8020 +8020 +4040 +4040 +4040 +2080 +2080 +1100 +1100 +1100 +0A00 +0A00 +0400 +0400 +0000 +0000 +>cdf +117< +0000 +0000 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0000 +0000 +>cdf +116< +0000 +0000 +2000 +2000 +2000 +2000 +FE00 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +1100 +0E00 +0000 +0000 +>cdf +115< +0000 +0000 +3F00 +4080 +8040 +8000 +8000 +4000 +3F00 +0080 +0040 +0040 +0040 +8040 +4080 +3F00 +0000 +0000 +>cdf +114< +0000 +0000 +9E00 +A100 +C080 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +113< +0000 +0000 +1E40 +2140 +40C0 +4040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0040 +0040 +0040 +0040 +0000 +0000 +>cdf +112< +0000 +0000 +9E00 +A100 +C080 +8080 +8040 +8040 +8040 +8040 +8040 +8040 +8080 +C080 +A100 +9E00 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +111< +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +8040 +8040 +8040 +8040 +4080 +4080 +2100 +1E00 +0000 +0000 +>cdf +110< +0000 +0000 +9E00 +A100 +C080 +8080 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +0000 +0000 +>cdf +109< +00000000 +00000000 +9C1E0000 +A2210000 +C1408000 +80808000 +80808000 +80808000 +80808000 +80808000 +80808000 +80808000 +80808000 +80808000 +80808000 +80808000 +00000000 +00000000 +>cdf +108< +0000 +0000 +E000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +107< +0000 +0000 +8000 +8000 +8000 +8000 +8080 +8100 +8200 +8400 +8800 +9000 +E000 +9000 +8800 +8400 +8200 +8100 +8080 +8040 +0000 +0000 +>cdf +106< +0000 +0000 +0400 +0400 +0000 +0000 +1C00 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +8800 +7000 +0000 +0000 +>cdf +105< +0000 +0000 +2000 +2000 +0000 +0000 +E000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +104< +0000 +0000 +8000 +8000 +8000 +8000 +9E00 +A100 +C080 +8080 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +8040 +0000 +0000 +>cdf +103< +0000 +0000 +1E40 +2140 +40C0 +4040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0040 +0040 +0040 +4080 +2100 +1E00 +0000 +0000 +>cdf +102< +0000 +0000 +0E00 +1100 +2000 +2000 +FC00 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +101< +0000 +0000 +1E00 +2100 +4080 +4080 +8040 +8040 +FFC0 +8000 +8000 +8000 +4000 +4080 +2100 +1E00 +0000 +0000 +>cdf +100< +0000 +0000 +0040 +0040 +0040 +0040 +1E40 +2140 +40C0 +4040 +8040 +8040 +8040 +8040 +8040 +8040 +4040 +40C0 +2140 +1E40 +0000 +0000 +>cdf +99< +0000 +0000 +1F00 +2080 +4040 +4000 +8000 +8000 +8000 +8000 +8000 +8000 +4000 +4040 +2080 +1F00 +0000 +0000 +>cdf +98< +0000 +0000 +8000 +8000 +8000 +8000 +9E00 +A100 +C080 +8080 +8040 +8040 +8040 +8040 +8040 +8040 +8080 +C080 +A100 +9E00 +0000 +0000 +>cdf +97< +0000 +0000 +1F00 +6080 +8040 +0040 +00C0 +0340 +0C40 +3040 +4040 +8040 +8040 +80C0 +4340 +3C40 +0000 +0000 +>cdf +96< +0000 +0000 +8000 +4000 +2000 +1000 +0000 +0000 +>cdf +95< +00000000 +00000000 +FFFF0000 +00000000 +00000000 +>cdf +94< +0000 +0000 +3000 +4800 +8400 +0000 +0000 +>cdf +93< +0000 +0000 +F000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +1000 +F000 +0000 +0000 +>cdf +92< +0000 +0000 +8000 +8000 +4000 +4000 +2000 +2000 +1000 +1000 +0800 +0800 +0400 +0400 +0200 +0200 +0100 +0100 +0080 +0080 +0040 +0040 +0000 +0000 +>cdf +91< +0000 +0000 +F000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +F000 +0000 +0000 +>cdf +90< +0000 +0000 +FFC0 +0040 +0080 +0080 +0100 +0200 +0200 +0400 +0400 +0800 +0800 +1000 +2000 +2000 +4000 +4000 +8000 +FFC0 +0000 +0000 +>cdf +89< +0000 +0000 +8020 +8020 +4040 +4040 +2080 +2080 +1100 +1100 +0A00 +0A00 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0400 +0000 +0000 +>cdf +88< +0000 +0000 +8020 +8020 +4040 +4040 +2080 +1100 +1100 +0A00 +0400 +0400 +0A00 +1100 +1100 +2080 +4040 +4040 +8020 +8020 +0000 +0000 +>cdf +87< +00000000 +00000000 +80002000 +80002000 +80002000 +40404000 +40404000 +40404000 +20A08000 +20A08000 +20A08000 +11110000 +11110000 +11110000 +0A0A0000 +0A0A0000 +0A0A0000 +04040000 +04040000 +04040000 +00000000 +00000000 +>cdf +86< +0000 +0000 +8008 +8008 +4010 +4010 +4010 +2020 +2020 +2020 +1040 +1040 +1040 +0880 +0880 +0880 +0500 +0500 +0200 +0200 +0000 +0000 +>cdf +85< +0000 +0000 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +4020 +4020 +30C0 +0F00 +0000 +0000 +>cdf +84< +0000 +0000 +FFF8 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0200 +0000 +0000 +>cdf +83< +0000 +0000 +3F80 +4040 +8020 +8000 +8000 +8000 +6000 +1F00 +00C0 +0020 +0020 +0010 +0010 +0010 +8020 +8020 +60C0 +1F00 +0000 +0000 +>cdf +82< +0000 +0000 +FF00 +80C0 +8020 +8020 +8010 +8010 +8010 +8020 +8020 +80C0 +FF80 +8080 +8040 +8040 +8020 +8020 +8010 +8010 +0000 +0000 +>cdf +81< +0000 +0000 +0700 +18C0 +2020 +4010 +4010 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +4090 +4050 +2020 +18D0 +0708 +0000 +0000 +>cdf +80< +0000 +0000 +FE00 +8180 +8040 +8040 +8020 +8020 +8020 +8020 +8040 +8040 +8180 +FE00 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +79< +0000 +0000 +0700 +18C0 +2020 +4010 +4010 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +8008 +4010 +4010 +2020 +18C0 +0700 +0000 +0000 +>cdf +78< +0000 +0000 +8010 +C010 +C010 +A010 +A010 +9010 +8810 +8810 +8410 +8210 +8210 +8110 +8090 +8090 +8050 +8030 +8030 +8010 +0000 +0000 +>cdf +77< +00000000 +00000000 +80020000 +C0060000 +A00A0000 +90120000 +88220000 +84420000 +82820000 +81020000 +80020000 +80020000 +80020000 +80020000 +80020000 +80020000 +80020000 +80020000 +80020000 +80020000 +00000000 +00000000 +>cdf +76< +0000 +0000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FFC0 +0000 +0000 +>cdf +75< +0000 +0000 +8010 +8020 +8040 +8080 +8100 +8200 +8400 +8800 +9000 +A800 +C400 +8200 +8100 +8080 +8040 +8020 +8010 +8008 +0000 +0000 +>cdf +74< +0000 +0000 +0010 +0010 +0010 +0010 +0010 +0010 +0010 +0010 +0010 +0010 +0010 +0010 +8010 +8010 +8020 +4020 +30C0 +0F00 +0000 +0000 +>cdf +73< +0000 +0000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +72< +0000 +0000 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +FFF0 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +0000 +0000 +>cdf +71< +0000 +0000 +0F80 +3040 +4020 +4000 +8000 +8000 +8000 +8000 +83F0 +8010 +8010 +8010 +8010 +8010 +4020 +4020 +30C0 +0F00 +0000 +0000 +>cdf +70< +0000 +0000 +FFC0 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FF00 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +69< +0000 +0000 +FFC0 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FF00 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +FFC0 +0000 +0000 +>cdf +68< +0000 +0000 +FE00 +8180 +8040 +8020 +8020 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8020 +8020 +8040 +8180 +FE00 +0000 +0000 +>cdf +67< +0000 +0000 +0FC0 +3020 +4010 +4000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +4000 +4010 +3020 +0FC0 +0000 +0000 +>cdf +66< +0000 +0000 +FF80 +8040 +8020 +8020 +8020 +8020 +8040 +FF80 +8040 +8020 +8010 +8010 +8010 +8010 +8010 +8020 +8040 +FF80 +0000 +0000 +>cdf +65< +00000000 +00000000 +01000000 +01000000 +01000000 +02800000 +02800000 +04400000 +04400000 +08200000 +08200000 +10100000 +10100000 +3FF80000 +20080000 +20080000 +40040000 +40040000 +80020000 +80020000 +00000000 +00000000 +>cdf +64< +00000000 +00000000 +07C00000 +18300000 +20080000 +40040000 +43C40000 +84220000 +88220000 +88220000 +88220000 +88220000 +84640000 +43980000 +40000000 +20000000 +18000000 +07C00000 +00000000 +00000000 +>cdf +63< +0000 +0000 +1F80 +2040 +4020 +8020 +8020 +0020 +0040 +0080 +0100 +0200 +0200 +0400 +0400 +0400 +0000 +0000 +0400 +0400 +0000 +0000 +>cdf +62< +0000 +0000 +8000 +4000 +2000 +1000 +0800 +0400 +0200 +0400 +0800 +1000 +2000 +4000 +8000 +0000 +0000 +>cdf +61< +0000 +0000 +FFC0 +0000 +0000 +0000 +FFC0 +0000 +0000 +>cdf +60< +0000 +0000 +0200 +0400 +0800 +1000 +2000 +4000 +8000 +4000 +2000 +1000 +0800 +0400 +0200 +0000 +0000 +>cdf +59< +0000 +0000 +2000 +2000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +6000 +2000 +2000 +2000 +4000 +8000 +0000 +0000 +>cdf +58< +0000 +0000 +8000 +8000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +8000 +8000 +0000 +0000 +>cdf +57< +0000 +0000 +0F00 +30C0 +4020 +4020 +8010 +8010 +8010 +8010 +4010 +4030 +30D0 +0F10 +0010 +0020 +0020 +0040 +0180 +1E00 +0000 +0000 +>cdf +56< +0000 +0000 +1F80 +2040 +4020 +4020 +4020 +4020 +2040 +1F80 +2040 +4020 +4020 +8010 +8010 +8010 +4020 +4020 +30C0 +0F00 +0000 +0000 +>cdf +55< +0000 +0000 +FFF0 +0010 +0010 +0020 +0020 +0040 +0040 +0080 +0080 +0100 +0100 +0200 +0200 +0400 +0400 +0800 +0800 +0800 +0000 +0000 +>cdf +54< +0000 +0000 +07C0 +1800 +2000 +4000 +4000 +8000 +8F00 +B0C0 +C020 +8020 +8010 +8010 +8010 +8010 +4020 +4020 +30C0 +0F00 +0000 +0000 +>cdf +53< +0000 +0000 +FFE0 +8000 +8000 +8000 +8000 +8000 +FF00 +00C0 +0020 +0020 +0010 +0010 +0010 +0010 +0020 +8020 +60C0 +1F00 +0000 +0000 +>cdf +52< +0000 +0000 +0010 +0030 +0050 +0090 +0110 +0210 +0410 +0810 +1010 +2010 +4010 +8010 +FFFC +0010 +0010 +0010 +0010 +0010 +0000 +0000 +>cdf +51< +0000 +0000 +FFF0 +0020 +0040 +0080 +0100 +0200 +0700 +0080 +0040 +0040 +0020 +0020 +0020 +0020 +0040 +8040 +6180 +1E00 +0000 +0000 +>cdf +50< +0000 +0000 +0F80 +3040 +4020 +8010 +8010 +0010 +0010 +0020 +0040 +0080 +0100 +0200 +0400 +0800 +1000 +2000 +4000 +FFF0 +0000 +0000 +>cdf +49< +0000 +0000 +2000 +6000 +A000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +2000 +0000 +0000 +>cdf +48< +0000 +0000 +0F00 +1080 +2040 +4020 +4020 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +8010 +4020 +4020 +2040 +1080 +0F00 +0000 +0000 +>cdf +47< +0000 +0000 +0080 +0080 +0100 +0100 +0200 +0200 +0400 +0400 +0800 +0800 +1000 +1000 +2000 +2000 +4000 +4000 +8000 +8000 +0000 +0000 +>cdf +46< +0000 +0000 +8000 +8000 +0000 +0000 +>cdf +45< +0000 +0000 +FFC0 +0000 +0000 +>cdf +44< +0000 +0000 +6000 +2000 +2000 +2000 +4000 +8000 +0000 +0000 +>cdf +43< +0000 +0000 +0800 +0800 +0800 +0800 +FF80 +0800 +0800 +0800 +0800 +0000 +0000 +>cdf +42< +0000 +0000 +2010 +1020 +0840 +0480 +0300 +FFFC +0300 +0480 +0840 +1020 +2010 +0000 +0000 +>cdf +41< +0000 +0000 +8000 +4000 +2000 +2000 +1000 +1000 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +0800 +1000 +1000 +2000 +2000 +4000 +8000 +0000 +0000 +>cdf +40< +0000 +0000 +0800 +1000 +2000 +2000 +4000 +4000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +4000 +4000 +2000 +2000 +1000 +0800 +0000 +0000 +>cdf +39< +0000 +0000 +8000 +8000 +8000 +8000 +0000 +0000 +>cdf +38< +00000000 +00000000 +0E000000 +11000000 +20800000 +20800000 +21000000 +22000000 +14000000 +08000000 +14000000 +22000000 +41040000 +40880000 +80500000 +80200000 +80500000 +40880000 +21040000 +1E020000 +00000000 +00000000 +>cdf +37< +0000 +0000 +37F8 +4804 +8404 +8408 +8410 +8420 +4840 +3080 +0100 +0200 +0430 +0848 +1084 +2084 +2084 +4084 +4048 +4030 +0000 +0000 +>cdf +36< +0000 +0000 +0800 +0800 +3E00 +4900 +8880 +8880 +8800 +4800 +2800 +1800 +0C00 +0A00 +0900 +0880 +0880 +0880 +8880 +8880 +4900 +3E00 +0800 +0800 +0000 +0000 +>cdf +35< +0000 +0000 +0220 +0220 +3FFC +0440 +0440 +0880 +0880 +FFF0 +1100 +1100 +0000 +0000 +>cdf +34< +0000 +0000 +8800 +8800 +8800 +8800 +0000 +0000 +>cdf +33< +0000 +0000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +8000 +0000 +0000 +8000 +8000 +0000 +0000 +>cdf +/|______Geneva bf +bn +%%EndFont +9 fz +bu fc +2 F /|______Geneva fnt +bn +-0.33325 0.(Root)ashow +(nc 252 109 454 494 6 rc)kp +0 gr +309.5 142.5 334.5 167.5 0 ov +365.5 111.5 391.5 136.5 0 ov +367.5 174.5 392.5 199.5 0 ov +365 123 gm +334 154 lin +367 186 lin +310.5 266.5 336.5 292.5 0 ov +426.5 391.5 452.5 417.5 0 ov +428.5 454.5 453.5 480.5 0 ov +426 403 gm +395 434 lin +428 467 lin +312.5 390.5 337.5 415.5 0 ov +368.5 359.5 394.5 384.5 0 ov +370.5 422.5 395.5 447.5 0 ov +368 371 gm +337 402 lin +370 434 lin +279 279 gm +310 279 lin +279 279 gm +311 402 lin +309 154 gm +279 279 lin +382 140 gm +(nc 374 139 385 150 6 rc)kp +F 1 setTxMode +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(4)show +383 203 gm +(nc 375 202 386 214 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +382 182 gm +(nc 374 181 385 197 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(32)show +381 118 gm +(nc 373 117 384 133 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(31)show +441 397 gm +(nc 433 396 444 412 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(41)show +442 461 gm +(nc 434 460 445 476 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(42)show +383 366 gm +(nc 375 365 386 381 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(35)show +384 428 gm +(nc 376 427 387 443 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(36)show +325 149 gm +(nc 317 148 328 164 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(21)show +326 273 gm +(nc 318 272 329 288 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(22)show +325 397 gm +(nc 317 396 328 412 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(23)show +269 297 gm +(nc 261 296 272 307 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +326 170 gm +(nc 318 169 329 180 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(4)show +443 483 gm +(nc 435 482 446 493 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +326 418 gm +(nc 318 417 329 429 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +383 450 gm +(nc 375 449 386 461 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +326 296 gm +(nc 318 295 329 307 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +443 420 gm +(nc 435 419 446 431 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +382 387 gm +(nc 374 386 385 398 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +(nc 252 109 454 494 6 rc)kp +0 gr +368.5 299.5 394.5 325.5 0 ov +367 248 gm +336 279 lin +368 312 lin +382 242 gm +(nc 374 241 385 257 6 rc)kp +F 1 setTxMode +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(33)show +383 306 gm +(nc 375 305 386 321 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(34)show +384 328 gm +(nc 376 327 387 338 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +383 265 gm +(nc 375 264 386 276 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +(nc 252 109 454 494 6 rc)kp +0 gr +367.5 235.5 392.5 261.5 0 ov +241 77 gm +(nc 30 28 811 566 6 rc)kp +241 525 lin +482 240 gm +F 1 setTxMode +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig.1 )show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Splitting a game tree)show +500 77 gm +0 gr +500 525 lin +519 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.25543 0. 32 0.02554 0.(Fig.1 shows a game tree splitting; nodes are labelled with the name of the explorer of the subtree of)awidthshow +530 79 gm +0.64910 0. 32 0.06491 0.(which they are root. Some processes are explorers of several subtrees; nevertheless, at any instant)awidthshow +541 79 gm +1.11099 0. 32 0.11109 0.(during the search, they will be engaged in the visit of no more than one subtree. Therefore, the)awidthshow +552 79 gm +0.66833 0. 32 0.06683 0.(description of a splitting should include the visit order followed by each process; this information)awidthshow +563 79 gm +0.02639 0. 32 0.00263 0.(represents the \322dynamic\323 component of the splitting. In Fig.2 it is shown an example \(with reference)awidthshow +574 79 gm +(to the game tree in Fig.1\).)show +614 228 gm +(nc 601 227 669 383 6 rc)kp +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(33)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +614 278 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +614 287 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(22)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +614 309 gm +bu fc +2 F /|______Helvetica fnt +bn +(Root)show +631 228 gm +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(35)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +631 278 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +631 287 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(41)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +631 309 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(23)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +631 339 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +631 348 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(34)show +648 228 gm +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(32)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +648 278 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +648 287 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(42)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +648 309 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(36)show +665 228 gm +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(4)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(31)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +665 278 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +665 287 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(21)show +(nc 598 218 671 384 6 rc)kp +0 gr +600.5 220.5 670.5 362.5 0 rc +587 77 gm +(nc 30 28 811 566 6 rc)kp +587 525 lin +699 186 gm +F 1 setTxMode +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig.2)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +( Splitting: evaluation order by every process)show +717 77 gm +0 gr +717 525 lin +736 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.19064 0. 32 0.11906 0.(In general, it is impossible to fix the visiting order of every subtree, because it depends on the)awidthshow +747 79 gm +0.00778 0. 32 0.00077 0.(processes\325 relative speeds. Nevertheless, there are some synchronisation points marking the stages of)awidthshow +F T cp +%%Page: ? 6 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(4)show +118 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.19485 0. 32 0.01948 0.(the visit: a process can completely search a subtree S only after having received the minimax values)awidthshow +129 79 gm +1.06338 0. 32 0.10633 0.(of all S\325subtrees. Fig.3 depicts a snapshot of the search of game tree in Fig.1, with the splitting)awidthshow +140 79 gm +(specified in Fig.2.)show +185 369 gm +(nc 172 368 240 502 6 rc)kp +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(33)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +185 419 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +185 428 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(22)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +185 450 gm +bu fc +2 F /|______Helvetica fnt +bn +(Root)show +202 369 gm +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(35)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +202 419 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +202 428 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(41)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +202 450 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(23)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +202 480 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +202 489 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(34)show +219 369 gm +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(32)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +219 419 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +219 428 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(42)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +219 450 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(36)show +236 369 gm +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(4)show +12 fz +bu fc +2 F /|______Helvetica fnt +bn +(: N)show +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(31)show +12 fz +bu fc +2 F /|______Symbol fnt +bn +(\256)show +236 419 gm +bu fc +2 F /|______Helvetica fnt +bn +(N)show +236 428 gm +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(21)show +(nc 164 97 366 505 6 rc)kp +0 gr +171.5 361.5 241.5 503.5 0 rc +2 2 pen +224 389 gm +237 402 lin +237 388 gm +224 401 lin +224 420 gm +237 432 lin +237 419 gm +224 432 lin +190 390 gm +203 403 lin +203 389 gm +190 402 lin +174 389 gm +187 402 lin +187 388 gm +174 401 lin +207 420 gm +219 432 lin +219 419 gm +207 432 lin +207 389 gm +219 402 lin +219 388 gm +207 401 lin +1 1 pen +166.5 169.5 191.5 195.5 0 ov +182 174 gm +(nc 172 173 184 195 6 rc)kp +F 1 setTxMode +bu fc +2 F /|______Geneva fnt +bn +-0.33325 0.(Root)ashow +2 2 pen +(nc 164 97 366 505 6 rc)kp +0 gr +222 169 248 195 0 ov +338 275 364 301 0 ov +1 1 pen +338 287 gm +307 318 lin +0 0 2 9 12 2 dh +340 351 lin +rh +psb +pse +224.5 274.5 249.5 299.5 0 ov +2 2 pen +282 306 307 331 0 ov +0 0 2 9 5 2 dh +1 1 pen +280 255 gm +249 286 lin +rh +psb +pse +282 318 lin +191 182 gm +222 182 lin +191 183 gm +223 286 lin +0 0 2 9 5 2 dh +232 99 gm +191 182 lin +rh +psb +pse +353 281 gm +(nc 345 280 356 296 6 rc)kp +F 1 setTxMode +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(41)show +296 312 gm +(nc 288 311 299 328 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(36)show +238 176 gm +(nc 230 175 241 191 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(22)show +237 281 gm +(nc 229 280 240 296 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(23)show +181 200 gm +(nc 173 199 184 210 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +238 302 gm +(nc 230 301 241 313 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +295 334 gm +(nc 287 333 298 345 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +238 199 gm +(nc 230 198 241 210 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +355 304 gm +(nc 347 303 358 315 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +(nc 164 97 366 505 6 rc)kp +0 gr +280.5 202.5 306.5 228.5 0 ov +0 0 2 9 5 2 dh +279 151 gm +248 182 lin +rh +psb +pse +280 215 lin +295 209 gm +(nc 287 208 298 225 6 rc)kp +F 1 setTxMode +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(34)show +296 231 gm +(nc 288 230 299 241 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +6 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +153 77 gm +(nc 30 28 811 566 6 rc)kp +0 gr +153 525 lin +394 202 gm +F 1 setTxMode +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig.3 )show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Snapshot of a splitting during search)show +412 77 gm +0 gr +412 525 lin +431 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.40029 0. 32 0.14002 0.(In Fig.3 process P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.38081 0.(4)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.14730 0. 32 0.11473 0.( is idle because it has completed its own list of tasks; P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.38081 0.(1)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.08932 0. 32 0.10893 0.( is waiting for N)awidthshow +431 512 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(34)show +442 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.39398 0. 32 0.03939 0.(minimax value from process P)awidthshow +442 216 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12751 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.46432 0. 32 0.04643 0.(; likewise, P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12751 0.(3)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.35842 0. 32 0.03584 0.( is waiting for N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12751 0.(41)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.40191 0. 32 0.04019 0.( value from P)awidthshow +442 423 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12092 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.47790 0. 32 0.04779 0.(. Therefore, P)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.12092 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.27145 0. 32 0.02714 0.( is the)awidthshow +453 79 gm +0.43975 0. 32 0.04397 0.(only process working at present: it is evaluating N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.11721 0.(41)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.42282 0. 32 0.04228 0.(. There is a hierarchic relation between P)awidthshow +453 499 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.13636 0.(3)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.43426 0. 32 0.04342 0.( and)awidthshow +464 79 gm +(P)show +464 85 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(2)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(: it will be reversed when, having completed N)show +464 295 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(36)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( evaluation, P)show +464 364 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(3)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( sends a message to P)show +464 463 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(2)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( .)show +475 79 gm +0.93658 0. 32 0.09365 0.(The main problem in searching a game tree by a splitting method is to decide when the subtree)awidthshow +475 520 gm +(-)show +486 79 gm +1.91757 0. 32 0.19175 0.(process association should be established. Usually, it makes no sense to allocate subtrees to)awidthshow +497 79 gm +(processes before search starts, because of the following reasons:)show +509 88 gm +(\245 it is necessary to know the whole tree;)show +526 88 gm +1.29272 0. 32 0.12927 0.(\245 the\312)awidthshow +526 112 gm +bu fc +2 F /|______Symbol fnt +bn +0.49502 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +1.19796 0. 32 0.11979 0.( algorithm property of cutting subtrees makes useless the visit of some of them. It is)awidthshow +538 101 gm +0.39840 0. 32 0.03984 0.(impossible to determine )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.39581 0. 32 0.03958 0.(a priori)awidthshow +538 245 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.45089 0. 32 0.04508 0.( the identity of these subtrees and then to obtain at run-time a)awidthshow +549 101 gm +(uniform load distribution.)show +561 79 gm +1.13494 0. 32 0.11349 0.(At search time we usually have the following scenery: some "lucky" processes complete search)awidthshow +572 79 gm +0.15518 0. 32 0.01551 0.(before others \()awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.03363 0.(e.g.)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.14312 0. 32 0.01431 0.(, because of better cuts\) and will remain idle. Every solution for avoiding idleness)awidthshow +583 79 gm +1.27334 0. 32 0.12733 0.(must be dynamic, )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.33239 0.(i.e.)ashow +583 179 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.44989 0. 32 0.14498 0.(, it must provide mechanisms able, during the search, to reassign to idle)awidthshow +594 79 gm +0.41198 0. 32 0.04119 0.(processes subtrees already assigned to overloaded processes. Therefore, a classification of splitting)awidthshow +605 79 gm +0.27206 0. 32 0.02720 0.(methods in static and dynamic is not really meaningful, because actually the only plausible solution)awidthshow +616 79 gm +0.58578 0. 32 0.05857 0.(is dynamic. On the other hand, it makes sense to distinguish different approaches according to the)awidthshow +627 79 gm +(time they establish nodes where it will occur a splitting.)show +639 88 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Def)show +639 104 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.78430 0. 32 0.07843 0.(. )awidthshow +639 110 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.40939 0. 32 0.04093 0.(Splitting node)awidthshow +639 172 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.72387 0. 32 0.07238 0.(: Let D be a splitting for game tree A; let N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.14743 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.61416 0. 32 0.06141 0.( be a node of A; N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.14743 0.(i)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.34484 0. 32 0.03448 0.( is a )awidthshow +639 484 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.00639 0.(splitting)ashow +654 101 gm +(node)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( \(according to D\) )show +bu fc +2 F /|______Symbol fnt +bn +(\333 $)show +bu fc +2 F /|______Times-Roman fnt +bn +(N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(j)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(: N)show +654 242 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(=father\(N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(j)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\) and D\(N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(j)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\))show +currentfont SwToSym +(\271)show +setfont +(D\(N)show +654 364 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(i)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\).)show +667 79 gm +0.38619 0. 32 0.03861 0.(A splitting node is one at which it is established the generation of a parallel search task, )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.11729 0.(i.e.)ashow +667 490 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.39413 0. 32 0.03941 0.(, where)awidthshow +678 79 gm +1.34124 0. 32 0.13412 0.(some of its subtrees are visited by processes different from its explorer. We can now state the)awidthshow +689 79 gm +(following classification:)show +701 88 gm +(\245 a )show +701 102 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(static)show +701 125 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( splitting algorithm decides all the splitting nodes before the search starts;)show +714 88 gm +(\245 a )show +714 102 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(dynamic)show +714 139 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( algorithm decides some splitting nodes only during the search.)show +745 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(3. Parallel search on a network of workstations)show +F T cp +%%Page: ? 7 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(5)show +118 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.48721 0. 32 0.04872 0.(High-level parallel programming languages are gaining momentum, because they simplify the task)awidthshow +129 79 gm +0.53451 0. 32 0.05345 0.(of building software for the novel architectures with several processors. Parallel search algorithms)awidthshow +140 79 gm +(are good tests for these new languages.)show +151 79 gm +0.06134 0. 32 0.00613 0.(Parallel search algorithms have been programmed in several languages; for instance, in [ABD82] we)awidthshow +162 79 gm +0.90576 0. 32 0.09057 0.(find an algorithm based on semaphore primitives; in [Eli90] the Orca language was used. In this)awidthshow +173 79 gm +2.62359 0. 32 0.26235 0.(paper we will use Linda, a coordination language that consists of a small set of parallel)awidthshow +184 79 gm +0.30395 0. 32 0.03039 0.(programming primitives that can be added to any sequential language [CarGel90]. These primitives)awidthshow +195 79 gm +(associatively access a )show +195 177 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(tuple space)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( shared among processes.)show +206 79 gm +0.74050 0. 32 0.07405 0.(There are several possible software architectures that can all be programmed in Linda; one of the)awidthshow +217 79 gm +0.73242 0. 32 0.07324 0.(most useful is the )awidthshow +217 163 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.15429 0.(master-worker)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.53817 0. 32 0.05381 0.( model. According to this model tasks created during the parallel)awidthshow +228 79 gm +0.18966 0. 32 0.01896 0.(evaluation of a program are dynamically distributed among processors. The parallel program should)awidthshow +239 79 gm +(be structured as follows:)show +251 88 gm +(\245 a )show +251 102 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(master)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( process generates tasks and coordinates the collection of solutions;)show +264 88 gm +0.61599 0. 32 0.06159 0.(\245 several identical )awidthshow +264 172 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(worker)show +264 203 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.63095 0. 32 0.06309 0.( processes pick and execute tasks and return task results to the master;)awidthshow +275 101 gm +(when a task is terminated, a new task can be chosen;)show +288 88 gm +0.14007 0. 32 0.01400 0.(\245 in the tuple space there are two main kinds of tuples: active tuples for tasks \(we call this multiset)awidthshow +299 101 gm +(the agenda\), and passive tuples that represent task results.)show +311 79 gm +1.13449 0. 32 0.11344 0.(The master)awidthshow +311 130 gm +1.33850 0. 32 0.13385 0.(-worker model allows to structure the supervisor of a node as a master process that)awidthshow +322 79 gm +0.12695 0. 32 0.01269 0.(coordinates several explorers as workers. This is simple to model: in the following program only the)awidthshow +333 79 gm +(root is a splitting node.)show +340 78 gm +(nc 336 79 348 525 6 rc)kp +0 gr +340 525 lin +368 97 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +10 fz +bu fc +2 F /|______Courier fnt +bn +(int\312master_main\(int\312n_worker,int\312depth\))show +379 97 gm +({)show +390 97 gm +(position\312*root,*successor;)show +401 97 gm +(int\312nmoves,minimax,i,master\(\),worker\(\);)show +412 97 gm +(for \(i=0;i0\)\))show +152 169 gm +(/* more tasks in agenda and a worker is idle? */)show +163 133 gm +({ out\("job",subtree\); /* insert search task in agenda */)show +174 133 gm +(free--;)show +185 133 gm +(subtree++;)show +196 133 gm +(})show +207 115 gm +(else /* wait completion of a task */)show +218 133 gm +({)show +229 133 gm +(in \("result",?value,?r_subtree\); /* get result */)show +240 133 gm +(if \(value>local_score\) /* improved score? */)show +251 151 gm +({ local_score=value; /* local update of score */)show +262 151 gm +(in \("score",?int\);)show +273 151 gm +(out\("score",local_score\); /* global update of score */)show +284 151 gm +(best=r_subtree;)show +295 151 gm +(})show +306 133 gm +(free++;})show +317 97 gm +(in \("score",?int\); /* to avoid interference with next search */)show +329 97 gm +(return \(local_score\);)show +340 97 gm +(})show +360 233 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(.)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(4)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +( Core algorithm: master)show +378 77 gm +0 gr +378 525 lin +397 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.75927 0. 32 0.07592 0.(Creating and terminating an active tuple for each task is an expensive activity in Network Linda,)awidthshow +408 79 gm +1.31683 0. 32 0.13168 0.(thus we have defined a general worker structure that can survive the end of a task and can be)awidthshow +419 79 gm +(specialized when it is necessary.)show +426 78 gm +(nc 422 79 434 525 6 rc)kp +0 gr +426 525 lin +455 97 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +10 fz +bu fc +2 F /|______Courier fnt +bn +(int\312worker\(int depth\))show +467 97 gm +({)show +479 97 gm +(position *root,*successor,*tree_pointer;)show +491 97 gm +(int nmoves,subtree,score,value,job_type,quit,s;)show +503 97 gm +(quit=false;)show +515 97 gm +(while\(!quit\))show +527 115 gm +({)show +539 115 gm +(in\("job",?job_type\);)show +551 115 gm +(switch\312\(job_type\))show +563 133 gm +({)show +575 133 gm +(case\312QUIT: /* terminate */)show +587 151 gm +(quit=true;)show +599 151 gm +(break;)show +611 133 gm +(case\312NEW_POSITION: /* new game tree */)show +623 151 gm +(in\("position",?*root\);)show +635 151 gm +(in\("sync",?s\);)show +647 151 gm +(out\("sync",s-1\);)show +659 151 gm +(nmoves=genmoves\(root,&successor\);)show +671 151 gm +(break;)show +683 133 gm +(default: /* sequential )show +bu fc +2 F /|______Symbol fnt +bn +(ab)show +bu fc +2 F /|______Courier fnt +bn +( */)show +695 151 gm +(subtree=job_type;)show +707 151 gm +(tree_pointer=successor+subtree-1;)show +719 151 gm +(makemove\(tree_pointer\);)show +731 151 gm +(rd\("score",?score\); /* update local score */)show +743 151 gm +(value=-alphabeta\(tree_pointer,-INFINITE,-score,depth\);)show +F T cp +%%Page: ? 9 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(7)show +119 151 gm +bu fc +2 F /|______Courier fnt +bn +(out\("result",value,subtree\);)show +131 151 gm +(undomove\(tree_pointer\);)show +143 151 gm +(break;)show +155 133 gm +(})show +167 115 gm +(})show +179 97 gm +(return\312\(0\);})show +199 232 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(.)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(5)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +( Core algorithm: worker)show +217 77 gm +0 gr +217 525 lin +236 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.33102 0. 32 0.13310 0.(Our goal is to compare some parallel search strategies with their sequential versions. We have)awidthshow +247 79 gm +1.65176 0. 32 0.16517 0.(developed and tested different programs all based on such an algorithm. The experiments we)awidthshow +258 79 gm +1.15219 0. 32 0.11521 0.(describe used the Bratko)awidthshow +258 193 gm +1.17324 0. 32 0.11732 0.(-Kopec positions [BraKop82] to measure the speedup on an increasing)awidthshow +269 79 gm +(number of workstations.)show +280 79 gm +0.13885 0. 32 0.01388 0.(The most important value we measured is time T to search a game tree. For sequential versions, this)awidthshow +295 79 gm +0.11901 0. 32 0.01190 0.(is defined as the interval between the root invocation of )awidthshow +295 328 gm +bu fc +2 F /|______Symbol fnt +bn +0.03961 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.11077 0. 32 0.01107 0.( and its termination \(we actually measure)awidthshow +307 79 gm +0.33569 0. 32 0.03356 0.(CPU time used for such an evaluation\). For the parallel versions, we let the master to measure time)awidthshow +318 79 gm +1.42822 0. 32 0.14282 0.(between the distribution of the root node and the collection of its minimax value \(for such an)awidthshow +329 79 gm +0.63201 0. 32 0.06320 0.(evaluation we used real time; the network was used during unloaded hours\). Other parameters we)awidthshow +340 79 gm +(recorded are shown in Fig.6.)show +369 110 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +369 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(processors used for the search \(master+workers\))show +355 80 gm +0 gr +355 82 lin +355 80 gm +357 80 lin +357 82 gm +357 82 lin +357 82 lin +355 83 gm +355 161 lin +357 83 gm +357 161 lin +355 162 gm +355 164 lin +357 162 gm +357 164 lin +355 165 gm +355 468 lin +357 165 gm +357 468 lin +355 469 gm +355 471 lin +357 471 lin +357 469 gm +357 469 lin +357 469 lin +358 80 gm +371 80 lin +358 82 gm +371 82 lin +358 162 gm +371 162 lin +358 469 gm +371 469 lin +358 471 gm +371 471 lin +390 119 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(T)show +386 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(total search time in seconds for all 24 positions)show +372 82 gm +0 gr +374 82 lin +372 80 gm +374 80 lin +372 83 gm +372 161 lin +374 83 gm +374 161 lin +372 162 gm +372 164 lin +374 162 gm +374 164 lin +372 165 gm +372 468 lin +374 165 gm +374 468 lin +372 471 gm +374 471 lin +372 469 gm +374 469 lin +375 80 gm +392 80 lin +375 82 gm +392 82 lin +375 162 gm +392 162 lin +375 469 gm +392 469 lin +375 471 gm +392 471 lin +411 119 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(N)show +407 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(total searched nodes for all 24 positions)show +393 82 gm +0 gr +395 82 lin +393 80 gm +395 80 lin +393 83 gm +393 161 lin +395 83 gm +395 161 lin +393 162 gm +393 164 lin +395 162 gm +395 164 lin +393 165 gm +393 468 lin +395 165 gm +395 468 lin +393 471 gm +395 471 lin +393 469 gm +395 469 lin +396 80 gm +413 80 lin +396 82 gm +413 82 lin +396 162 gm +413 162 lin +396 469 gm +413 469 lin +396 471 gm +413 471 lin +437 119 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(S)show +434 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(speedup )show +0 0 pen +445 254 gm +(nc 419 202 445 254 6 rc)kp +0 gr +445 254 lin +psb +currentpoint +pse +419 202 gm +419 202 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 1664 div 832 3 -1 roll exch div scale currentpoint translate 64 46 translate +-23 434 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +320 /Helvetica f1 +(\() show +99 434 moveto +320 /Symbol f1 +(=) show +760 233 moveto +320 /Helvetica f1 +(T) show +955 233 moveto +256 /Helvetica f1 +(1) show +392 679 moveto +320 /Helvetica f1 +(T) show +587 679 moveto +256 ns +(nr) show +821 679 moveto +256 /Helvetica f1 +(.) show +920 679 moveto +256 /Helvetica f1 +(proc) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 366 351 moveto 1077 0 rlineto stroke +1463 434 moveto +320 /Helvetica f1 +(\)) show +end +pse +1 1 pen +414 82 gm +(nc 30 28 811 566 6 rc)kp +416 82 lin +414 80 gm +416 80 lin +414 83 gm +414 161 lin +416 83 gm +416 161 lin +414 162 gm +414 164 lin +416 162 gm +416 164 lin +414 165 gm +414 468 lin +416 165 gm +416 468 lin +414 471 gm +416 471 lin +414 469 gm +416 469 lin +417 80 gm +445 80 lin +417 82 gm +445 82 lin +417 162 gm +445 162 lin +417 469 gm +445 469 lin +417 471 gm +445 471 lin +469 119 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(E)show +466 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(relative efficiency )show +0 0 pen +477 295 gm +(nc 451 244 477 295 6 rc)kp +0 gr +477 295 lin +psb +currentpoint +pse +451 244 gm +451 244 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 1632 div 832 3 -1 roll exch div scale currentpoint translate 64 42 translate +-23 438 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +320 /Helvetica f1 +(\() show +99 438 moveto +320 /Symbol f1 +(=) show +783 237 moveto +320 /Helvetica f1 +(S) show +376 683 moveto +(nr) show +660 683 moveto +320 /Helvetica f1 +(.) show +768 683 moveto +320 /Helvetica f1 +(proc) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 366 355 moveto 1046 0 rlineto stroke +1432 438 moveto +320 /Helvetica f1 +(\)) show +end +pse +1 1 pen +446 82 gm +(nc 30 28 811 566 6 rc)kp +448 82 lin +446 80 gm +448 80 lin +446 83 gm +446 161 lin +448 83 gm +448 161 lin +446 162 gm +446 164 lin +448 162 gm +448 164 lin +446 165 gm +446 468 lin +448 165 gm +448 468 lin +446 471 gm +448 471 lin +446 469 gm +448 469 lin +449 80 gm +477 80 lin +449 82 gm +477 82 lin +449 162 gm +477 162 lin +449 469 gm +477 469 lin +449 471 gm +477 471 lin +492 112 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fpm)show +492 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(average production factor)show +478 82 gm +0 gr +480 82 lin +478 80 gm +480 80 lin +478 83 gm +478 161 lin +480 83 gm +480 161 lin +478 162 gm +478 164 lin +480 162 gm +480 164 lin +478 165 gm +478 468 lin +480 165 gm +480 468 lin +478 471 gm +480 471 lin +478 469 gm +480 469 lin +481 80 gm +494 80 lin +481 82 gm +494 82 lin +481 162 gm +494 162 lin +481 469 gm +494 469 lin +481 471 gm +494 471 lin +509 109 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fpmw)show +509 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(average production factor for workers)show +495 82 gm +0 gr +497 82 lin +495 80 gm +497 80 lin +495 83 gm +495 161 lin +497 83 gm +497 161 lin +495 162 gm +495 164 lin +497 162 gm +497 164 lin +495 165 gm +495 468 lin +497 165 gm +497 468 lin +495 471 gm +497 471 lin +495 469 gm +497 469 lin +498 80 gm +511 80 lin +498 82 gm +511 82 lin +498 162 gm +511 162 lin +498 469 gm +511 469 lin +498 471 gm +511 471 lin +535 116 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(SO)show +532 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(search overhead )show +0 0 pen +541 299 gm +(nc 517 234 541 299 6 rc)kp +0 gr +541 299 lin +psb +currentpoint +pse +517 234 gm +517 234 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 2080 div 768 3 -1 roll exch div scale currentpoint translate 64 46 translate +-23 434 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +320 /Helvetica f1 +(\() show +99 434 moveto +320 /Symbol f1 +(=) show +374 233 moveto +320 /Helvetica f1 +(N) show +605 233 moveto +256 ns +(nr) show +839 233 moveto +256 /Helvetica f1 +(.) show +938 233 moveto +256 /Helvetica f1 +(proc) show +751 679 moveto +320 ns +(N) show +963 679 moveto +256 /Helvetica f1 +(1) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 366 351 moveto 1095 0 rlineto stroke +1538 434 moveto +320 /Symbol f1 +(-) show +1757 434 moveto +320 /Helvetica f1 +(1) show +1888 434 moveto +320 /Helvetica f1 +(\)) show +end +pse +1 1 pen +512 82 gm +(nc 30 28 811 566 6 rc)kp +514 82 lin +512 80 gm +514 80 lin +512 83 gm +512 161 lin +514 83 gm +514 161 lin +512 162 gm +512 164 lin +514 162 gm +514 164 lin +512 165 gm +512 468 lin +514 165 gm +514 468 lin +512 471 gm +514 471 lin +512 469 gm +514 469 lin +515 80 gm +541 80 lin +515 82 gm +541 82 lin +515 162 gm +541 162 lin +515 469 gm +541 469 lin +515 471 gm +541 471 lin +565 117 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(SS)show +562 167 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(search speed )show +0 0 pen +571 246 gm +(nc 547 220 571 246 6 rc)kp +0 gr +571 246 lin +psb +currentpoint +pse +547 220 gm +547 220 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 832 div 768 3 -1 roll exch div scale currentpoint translate 64 46 translate +-23 434 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +320 /Helvetica f1 +(\() show +99 434 moveto +320 /Symbol f1 +(=) show +374 233 moveto +320 /Helvetica f1 +(N) show +392 679 moveto +(T) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 366 351 moveto 247 0 rlineto stroke +633 434 moveto +320 /Helvetica f1 +(\)) show +end +pse +1 1 pen +542 82 gm +(nc 30 28 811 566 6 rc)kp +544 82 lin +542 80 gm +544 80 lin +542 83 gm +542 161 lin +544 83 gm +544 161 lin +542 162 gm +542 164 lin +544 162 gm +544 164 lin +542 165 gm +542 468 lin +544 165 gm +544 468 lin +542 471 gm +544 471 lin +542 469 gm +544 469 lin +545 80 gm +571 80 lin +545 82 gm +571 82 lin +545 162 gm +571 162 lin +545 469 gm +571 469 lin +545 471 gm +571 471 lin +595 114 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(S)show +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(SS)show +592 167 gm +0 fs +10 fz +bu fc +2 F /|______Times-Roman fnt +bn +(speed gain )show +0 0 pen +601 271 gm +(nc 577 211 601 271 6 rc)kp +0 gr +601 271 lin +psb +currentpoint +pse +577 211 gm +577 211 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 1920 div 768 3 -1 roll exch div scale currentpoint translate 64 46 translate +-23 434 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +320 /Helvetica f1 +(\() show +99 434 moveto +320 /Symbol f1 +(=) show +389 233 moveto +320 /Helvetica f1 +(VR) show +866 233 moveto +256 ns +(nr) show +1100 233 moveto +256 /Helvetica f1 +(.) show +1199 233 moveto +256 /Helvetica f1 +(proc) show +778 679 moveto +320 ns +(VR) show +1214 679 moveto +256 /Helvetica f1 +(1) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 366 351 moveto 1356 0 rlineto stroke +1742 434 moveto +320 /Helvetica f1 +(\)) show +end +pse +1 1 pen +572 82 gm +(nc 30 28 811 566 6 rc)kp +574 82 lin +572 80 gm +574 80 lin +572 83 gm +572 161 lin +574 83 gm +574 161 lin +572 162 gm +572 164 lin +574 162 gm +574 164 lin +572 165 gm +572 468 lin +574 165 gm +574 468 lin +572 471 gm +574 471 lin +572 469 gm +574 469 lin +575 80 gm +601 80 lin +575 82 gm +601 82 lin +604 80 gm +604 82 lin +602 80 gm +604 80 lin +602 82 gm +602 82 lin +602 82 lin +602 83 gm +602 161 lin +604 83 gm +604 161 lin +575 162 gm +601 162 lin +602 162 gm +602 164 lin +604 162 gm +604 164 lin +602 165 gm +602 468 lin +604 165 gm +604 468 lin +575 469 gm +601 469 lin +575 471 gm +601 471 lin +604 469 gm +604 471 lin +602 471 gm +604 471 lin +602 469 gm +602 469 lin +602 469 lin +616 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig 6)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Parameters we measured in the experiments)show +632 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.66162 0. 32 0.06616 0.(All experiments were done fixing a search depth of 5 plies, for comparison with other papers that)awidthshow +643 79 gm +0.46813 0. 32 0.04681 0.(used the same search depth. We have used 11 Sun Sparcstations in periods when they were free of)awidthshow +654 79 gm +(other tasks.)show +684 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(4. Static splitting)show +697 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.44723 0. 32 0.04472 0.(Let us discuss preliminarly a few results we can expect from our experiments. Let B the branching)awidthshow +708 79 gm +(factor typical of chess game trees, and N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(w )show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(the number of processors available for explorers:)show +720 88 gm +(\245\312the core algorithm efficiency should be proportional to the ratio B/N)show +720 396 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(w)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( [MarCam82];)show +737 88 gm +0.22293 0. 32 0.02229 0.(\245\312for a game tree with B=40, an )awidthshow +bu fc +2 F /|______Symbol fnt +bn +0.10455 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.24337 0. 32 0.02433 0.( search is equivalent to a minimax search of a tree with branch)awidthshow +749 101 gm +(factor B=7 [Gil72]. Thus, if we had N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(w)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(=40 explorers, the ideal average speedup should be 7.)show +F T cp +%%Page: ? 10 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(8)show +136 96 gm +1 fs +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +136 141 gm +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(T\(sec\))show +136 188 gm +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(N \(nodes\))show +136 249 gm +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(S)show +136 282 gm +(E)show +136 310 gm +(Fpm)show +136 344 gm +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Fpmw)show +136 385 gm +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(SO)show +136 425 gm +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(SS \(nodes/sec\))show +136 505 gm +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Sss)show +122 80 gm +0 gr +122 82 lin +122 80 gm +124 80 lin +124 82 gm +124 82 lin +124 82 lin +122 83 gm +122 128 lin +124 83 gm +124 128 lin +122 129 gm +122 131 lin +124 129 gm +124 131 lin +122 132 gm +122 175 lin +124 132 gm +124 175 lin +122 176 gm +122 178 lin +124 176 gm +124 178 lin +122 179 gm +122 232 lin +124 179 gm +124 232 lin +122 233 gm +122 235 lin +124 233 gm +124 235 lin +122 236 gm +122 266 lin +124 236 gm +124 266 lin +122 267 gm +122 269 lin +124 267 gm +124 269 lin +122 270 gm +122 300 lin +124 270 gm +124 300 lin +122 301 gm +122 303 lin +124 301 gm +124 303 lin +122 304 gm +122 334 lin +124 304 gm +124 334 lin +122 335 gm +122 337 lin +124 335 gm +124 337 lin +122 338 gm +122 372 lin +124 338 gm +124 372 lin +122 373 gm +122 375 lin +124 373 gm +124 375 lin +122 376 gm +122 406 lin +124 376 gm +124 406 lin +122 407 gm +122 409 lin +124 407 gm +124 409 lin +122 410 gm +122 492 lin +124 410 gm +124 492 lin +122 493 gm +122 495 lin +124 493 gm +124 495 lin +122 496 gm +122 526 lin +124 496 gm +124 526 lin +122 527 gm +122 529 lin +124 529 lin +124 527 gm +124 527 lin +124 527 lin +125 80 gm +138 80 lin +125 82 gm +138 82 lin +125 129 gm +138 129 lin +125 131 gm +138 131 lin +125 176 gm +138 176 lin +125 178 gm +138 178 lin +125 233 gm +138 233 lin +125 235 gm +138 235 lin +125 267 gm +138 267 lin +125 269 gm +138 269 lin +125 301 gm +138 301 lin +125 303 gm +138 303 lin +125 335 gm +138 335 lin +125 337 gm +138 337 lin +125 373 gm +138 373 lin +125 375 gm +138 375 lin +125 407 gm +138 407 lin +125 409 gm +138 409 lin +125 493 gm +138 493 lin +125 495 gm +138 495 lin +125 527 gm +138 527 lin +125 529 gm +138 529 lin +153 104 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +153 144 gm +(8301)show +153 189 gm +(5347545)show +153 247 gm +(---)show +153 281 gm +(---)show +153 315 gm +(---)show +153 351 gm +(---)show +153 387 gm +(---)show +153 444 gm +(644)show +153 507 gm +(---)show +139 82 gm +0 gr +141 82 lin +139 80 gm +141 80 lin +139 83 gm +139 128 lin +141 83 gm +141 128 lin +139 131 gm +139 131 lin +141 129 gm +141 129 lin +139 129 gm +139 129 lin +141 131 gm +141 131 lin +139 132 gm +139 175 lin +141 132 gm +141 175 lin +139 178 gm +139 178 lin +141 176 gm +141 176 lin +139 176 gm +139 176 lin +141 178 gm +141 178 lin +139 179 gm +139 232 lin +141 179 gm +141 232 lin +139 235 gm +139 235 lin +141 233 gm +141 233 lin +139 233 gm +139 233 lin +141 235 gm +141 235 lin +139 236 gm +139 266 lin +141 236 gm +141 266 lin +139 269 gm +139 269 lin +141 267 gm +141 267 lin +139 267 gm +139 267 lin +141 269 gm +141 269 lin +139 270 gm +139 300 lin +141 270 gm +141 300 lin +139 303 gm +139 303 lin +141 301 gm +141 301 lin +139 301 gm +139 301 lin +141 303 gm +141 303 lin +139 304 gm +139 334 lin +141 304 gm +141 334 lin +139 337 gm +139 337 lin +141 335 gm +141 335 lin +139 335 gm +139 335 lin +141 337 gm +141 337 lin +139 338 gm +139 372 lin +141 338 gm +141 372 lin +139 375 gm +139 375 lin +141 373 gm +141 373 lin +139 373 gm +139 373 lin +141 375 gm +141 375 lin +139 376 gm +139 406 lin +141 376 gm +141 406 lin +139 409 gm +139 409 lin +141 407 gm +141 407 lin +139 407 gm +139 407 lin +141 409 gm +141 409 lin +139 410 gm +139 492 lin +141 410 gm +141 492 lin +139 495 gm +139 495 lin +141 493 gm +141 493 lin +139 493 gm +139 493 lin +141 495 gm +141 495 lin +139 496 gm +139 526 lin +141 496 gm +141 526 lin +139 529 gm +141 529 lin +139 527 gm +141 527 lin +142 80 gm +155 80 lin +142 82 gm +155 82 lin +142 129 gm +155 129 lin +142 131 gm +155 131 lin +142 176 gm +155 176 lin +142 178 gm +155 178 lin +142 233 gm +155 233 lin +142 235 gm +155 235 lin +142 267 gm +155 267 lin +142 269 gm +155 269 lin +142 301 gm +155 301 lin +142 303 gm +155 303 lin +142 335 gm +155 335 lin +142 337 gm +155 337 lin +142 373 gm +155 373 lin +142 375 gm +155 375 lin +142 407 gm +155 407 lin +142 409 gm +155 409 lin +142 493 gm +155 493 lin +142 495 gm +155 495 lin +142 527 gm +155 527 lin +142 529 gm +155 529 lin +168 104 gm +F 1 setTxMode +(3)show +168 144 gm +(4571)show +168 189 gm +(5754203)show +168 243 gm +(1.82)show +168 277 gm +(0.61)show +168 311 gm +(0.66)show +168 347 gm +(0.98)show +168 383 gm +(0.08)show +168 442 gm +(1259)show +168 503 gm +(1.95)show +156 82 gm +0 gr +156 82 lin +156 80 gm +156 80 lin +156 83 gm +156 128 lin +156 131 gm +156 131 lin +156 129 gm +156 129 lin +156 132 gm +156 175 lin +156 178 gm +156 178 lin +156 176 gm +156 176 lin +156 179 gm +156 232 lin +156 235 gm +156 235 lin +156 233 gm +156 233 lin +156 236 gm +156 266 lin +156 269 gm +156 269 lin +156 267 gm +156 267 lin +156 270 gm +156 300 lin +156 303 gm +156 303 lin +156 301 gm +156 301 lin +156 304 gm +156 334 lin +156 337 gm +156 337 lin +156 335 gm +156 335 lin +156 338 gm +156 372 lin +156 375 gm +156 375 lin +156 373 gm +156 373 lin +156 376 gm +156 406 lin +156 409 gm +156 409 lin +156 407 gm +156 407 lin +156 410 gm +156 492 lin +156 495 gm +156 495 lin +156 493 gm +156 493 lin +156 496 gm +156 526 lin +156 529 gm +156 529 lin +156 527 gm +156 527 lin +157 80 gm +170 80 lin +157 82 gm +170 82 lin +157 129 gm +170 129 lin +157 131 gm +170 131 lin +157 176 gm +170 176 lin +157 178 gm +170 178 lin +157 233 gm +170 233 lin +157 235 gm +170 235 lin +157 267 gm +170 267 lin +157 269 gm +170 269 lin +157 301 gm +170 301 lin +157 303 gm +170 303 lin +157 335 gm +170 335 lin +157 337 gm +170 337 lin +157 373 gm +170 373 lin +157 375 gm +170 375 lin +157 407 gm +170 407 lin +157 409 gm +170 409 lin +157 493 gm +170 493 lin +157 495 gm +170 495 lin +157 527 gm +170 527 lin +157 529 gm +170 529 lin +183 104 gm +F 1 setTxMode +(5)show +183 144 gm +(2770)show +183 189 gm +(6599460)show +183 243 gm +(3.00)show +183 277 gm +(0.60)show +183 311 gm +(0.75)show +183 347 gm +(0.93)show +183 383 gm +(0.23)show +183 442 gm +(2382)show +183 503 gm +(3.70)show +171 82 gm +0 gr +171 82 lin +171 80 gm +171 80 lin +171 83 gm +171 128 lin +171 131 gm +171 131 lin +171 129 gm +171 129 lin +171 132 gm +171 175 lin +171 178 gm +171 178 lin +171 176 gm +171 176 lin +171 179 gm +171 232 lin +171 235 gm +171 235 lin +171 233 gm +171 233 lin +171 236 gm +171 266 lin +171 269 gm +171 269 lin +171 267 gm +171 267 lin +171 270 gm +171 300 lin +171 303 gm +171 303 lin +171 301 gm +171 301 lin +171 304 gm +171 334 lin +171 337 gm +171 337 lin +171 335 gm +171 335 lin +171 338 gm +171 372 lin +171 375 gm +171 375 lin +171 373 gm +171 373 lin +171 376 gm +171 406 lin +171 409 gm +171 409 lin +171 407 gm +171 407 lin +171 410 gm +171 492 lin +171 495 gm +171 495 lin +171 493 gm +171 493 lin +171 496 gm +171 526 lin +171 529 gm +171 529 lin +171 527 gm +171 527 lin +172 80 gm +185 80 lin +172 82 gm +185 82 lin +172 129 gm +185 129 lin +172 131 gm +185 131 lin +172 176 gm +185 176 lin +172 178 gm +185 178 lin +172 233 gm +185 233 lin +172 235 gm +185 235 lin +172 267 gm +185 267 lin +172 269 gm +185 269 lin +172 301 gm +185 301 lin +172 303 gm +185 303 lin +172 335 gm +185 335 lin +172 337 gm +185 337 lin +172 373 gm +185 373 lin +172 375 gm +185 375 lin +172 407 gm +185 407 lin +172 409 gm +185 409 lin +172 493 gm +185 493 lin +172 495 gm +185 495 lin +172 527 gm +185 527 lin +172 529 gm +185 529 lin +198 104 gm +F 1 setTxMode +(7)show +198 144 gm +(2242)show +198 189 gm +(7236560)show +198 243 gm +(3.70)show +198 277 gm +(0.53)show +198 311 gm +(0.71)show +198 347 gm +(0.83)show +198 383 gm +(0.35)show +198 442 gm +(3228)show +198 503 gm +(5.01)show +186 82 gm +0 gr +186 82 lin +186 80 gm +186 80 lin +186 83 gm +186 128 lin +186 131 gm +186 131 lin +186 129 gm +186 129 lin +186 132 gm +186 175 lin +186 178 gm +186 178 lin +186 176 gm +186 176 lin +186 179 gm +186 232 lin +186 235 gm +186 235 lin +186 233 gm +186 233 lin +186 236 gm +186 266 lin +186 269 gm +186 269 lin +186 267 gm +186 267 lin +186 270 gm +186 300 lin +186 303 gm +186 303 lin +186 301 gm +186 301 lin +186 304 gm +186 334 lin +186 337 gm +186 337 lin +186 335 gm +186 335 lin +186 338 gm +186 372 lin +186 375 gm +186 375 lin +186 373 gm +186 373 lin +186 376 gm +186 406 lin +186 409 gm +186 409 lin +186 407 gm +186 407 lin +186 410 gm +186 492 lin +186 495 gm +186 495 lin +186 493 gm +186 493 lin +186 496 gm +186 526 lin +186 529 gm +186 529 lin +186 527 gm +186 527 lin +187 80 gm +200 80 lin +187 82 gm +200 82 lin +187 129 gm +200 129 lin +187 131 gm +200 131 lin +187 176 gm +200 176 lin +187 178 gm +200 178 lin +187 233 gm +200 233 lin +187 235 gm +200 235 lin +187 267 gm +200 267 lin +187 269 gm +200 269 lin +187 301 gm +200 301 lin +187 303 gm +200 303 lin +187 335 gm +200 335 lin +187 337 gm +200 337 lin +187 373 gm +200 373 lin +187 375 gm +200 375 lin +187 407 gm +200 407 lin +187 409 gm +200 409 lin +187 493 gm +200 493 lin +187 495 gm +200 495 lin +187 527 gm +200 527 lin +187 529 gm +200 529 lin +213 104 gm +F 1 setTxMode +(9)show +213 144 gm +(1988)show +213 189 gm +(7876769)show +213 243 gm +(4.18)show +213 277 gm +(0.46)show +213 311 gm +(0.68)show +213 347 gm +(0.77)show +213 383 gm +(0.47)show +213 442 gm +(3962)show +213 503 gm +(6.15)show +201 82 gm +0 gr +201 82 lin +201 80 gm +201 80 lin +201 83 gm +201 128 lin +201 131 gm +201 131 lin +201 129 gm +201 129 lin +201 132 gm +201 175 lin +201 178 gm +201 178 lin +201 176 gm +201 176 lin +201 179 gm +201 232 lin +201 235 gm +201 235 lin +201 233 gm +201 233 lin +201 236 gm +201 266 lin +201 269 gm +201 269 lin +201 267 gm +201 267 lin +201 270 gm +201 300 lin +201 303 gm +201 303 lin +201 301 gm +201 301 lin +201 304 gm +201 334 lin +201 337 gm +201 337 lin +201 335 gm +201 335 lin +201 338 gm +201 372 lin +201 375 gm +201 375 lin +201 373 gm +201 373 lin +201 376 gm +201 406 lin +201 409 gm +201 409 lin +201 407 gm +201 407 lin +201 410 gm +201 492 lin +201 495 gm +201 495 lin +201 493 gm +201 493 lin +201 496 gm +201 526 lin +201 529 gm +201 529 lin +201 527 gm +201 527 lin +202 80 gm +215 80 lin +202 82 gm +215 82 lin +202 129 gm +215 129 lin +202 131 gm +215 131 lin +202 176 gm +215 176 lin +202 178 gm +215 178 lin +202 233 gm +215 233 lin +202 235 gm +215 235 lin +202 267 gm +215 267 lin +202 269 gm +215 269 lin +202 301 gm +215 301 lin +202 303 gm +215 303 lin +202 335 gm +215 335 lin +202 337 gm +215 337 lin +202 373 gm +215 373 lin +202 375 gm +215 375 lin +202 407 gm +215 407 lin +202 409 gm +215 409 lin +202 493 gm +215 493 lin +202 495 gm +215 495 lin +202 527 gm +215 527 lin +202 529 gm +215 529 lin +228 101 gm +F 1 setTxMode +(11)show +228 144 gm +(1786)show +228 189 gm +(8521288)show +228 243 gm +(4.65)show +228 277 gm +(0.42)show +228 311 gm +(0.66)show +228 347 gm +(0.73)show +228 383 gm +(0.59)show +228 442 gm +(4771)show +228 503 gm +(7.41)show +216 82 gm +0 gr +216 82 lin +216 80 gm +216 80 lin +216 83 gm +216 128 lin +216 131 gm +216 131 lin +216 129 gm +216 129 lin +216 132 gm +216 175 lin +216 178 gm +216 178 lin +216 176 gm +216 176 lin +216 179 gm +216 232 lin +216 235 gm +216 235 lin +216 233 gm +216 233 lin +216 236 gm +216 266 lin +216 269 gm +216 269 lin +216 267 gm +216 267 lin +216 270 gm +216 300 lin +216 303 gm +216 303 lin +216 301 gm +216 301 lin +216 304 gm +216 334 lin +216 337 gm +216 337 lin +216 335 gm +216 335 lin +216 338 gm +216 372 lin +216 375 gm +216 375 lin +216 373 gm +216 373 lin +216 376 gm +216 406 lin +216 409 gm +216 409 lin +216 407 gm +216 407 lin +216 410 gm +216 492 lin +216 495 gm +216 495 lin +216 493 gm +216 493 lin +216 496 gm +216 526 lin +216 529 gm +216 529 lin +216 527 gm +216 527 lin +217 80 gm +230 80 lin +217 82 gm +230 82 lin +233 80 gm +233 82 lin +231 80 gm +233 80 lin +231 82 gm +231 82 lin +231 82 lin +231 83 gm +231 128 lin +233 83 gm +233 128 lin +217 129 gm +230 129 lin +217 131 gm +230 131 lin +231 129 gm +231 131 lin +233 129 gm +233 131 lin +231 132 gm +231 175 lin +233 132 gm +233 175 lin +217 176 gm +230 176 lin +217 178 gm +230 178 lin +231 176 gm +231 178 lin +233 176 gm +233 178 lin +231 179 gm +231 232 lin +233 179 gm +233 232 lin +217 233 gm +230 233 lin +217 235 gm +230 235 lin +231 233 gm +231 235 lin +233 233 gm +233 235 lin +231 236 gm +231 266 lin +233 236 gm +233 266 lin +217 267 gm +230 267 lin +217 269 gm +230 269 lin +231 267 gm +231 269 lin +233 267 gm +233 269 lin +231 270 gm +231 300 lin +233 270 gm +233 300 lin +217 301 gm +230 301 lin +217 303 gm +230 303 lin +231 301 gm +231 303 lin +233 301 gm +233 303 lin +231 304 gm +231 334 lin +233 304 gm +233 334 lin +217 335 gm +230 335 lin +217 337 gm +230 337 lin +231 335 gm +231 337 lin +233 335 gm +233 337 lin +231 338 gm +231 372 lin +233 338 gm +233 372 lin +217 373 gm +230 373 lin +217 375 gm +230 375 lin +231 373 gm +231 375 lin +233 373 gm +233 375 lin +231 376 gm +231 406 lin +233 376 gm +233 406 lin +217 407 gm +230 407 lin +217 409 gm +230 409 lin +231 407 gm +231 409 lin +233 407 gm +233 409 lin +231 410 gm +231 492 lin +233 410 gm +233 492 lin +217 493 gm +230 493 lin +217 495 gm +230 495 lin +231 493 gm +231 495 lin +233 493 gm +233 495 lin +231 496 gm +231 526 lin +233 496 gm +233 526 lin +217 527 gm +230 527 lin +217 529 gm +230 529 lin +233 527 gm +233 529 lin +231 529 gm +233 529 lin +231 527 gm +231 527 lin +231 527 lin +245 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig. 7)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Results of experiments for core algorithm)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( \(basic master worker\))show +261 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.32440 0. 32 0.03244 0.(In Fig. 7 we show data for the core algorithm. The reported speedup is low; moreover, values for E)awidthshow +272 79 gm +(tell that adding processors we increase all overheads:)show +284 88 gm +2.20611 0. 32 0.22061 0.(\245\312search overhead: compare real speedup S with ideal speedup S)awidthshow +284 403 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.49050 0.(ss)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +2.22335 0. 32 0.22233 0.(. For instance, with 11)awidthshow +295 101 gm +2.43774 0. 32 0.24377 0.(processors we have a 37% loss \(S)awidthshow +295 271 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.33930 0.(ss)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +2.01950 0. 32 0.20195 0.(=7.41\312vs\312S=4.65\). This loss is caused by minimum)awidthshow +306 101 gm +0.54733 0. 32 0.05473 0.(cooperation. We also remark that search overhead increases with more processors because all)awidthshow +317 101 gm +0.40542 0. 32 0.04054 0.(workers start with value = -)awidthshow +currentfont SwToSym +0.40542 0. 32 0.04054 0.(\245)awidthshow +setfont +0.40542 0. 32 0.04054 0.( , whereas the sequential search has a good approximation of the)awidthshow +328 101 gm +(value starting from the second subtree.)show +341 88 gm +1.70776 0. 32 0.17077 0.(\245\312communication and synchronization overhead: F)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.38545 0.(pm)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.18698 0. 32 0.11869 0.( increases until 5 processors \(75%\) then)awidthshow +352 101 gm +0.20828 0. 32 0.02082 0.(decreases; for 11 processors the F)awidthshow +352 251 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.07923 0.(pm)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.21224 0. 32 0.02122 0.( value is almost the same as with 3 processors \(66%\). This)awidthshow +363 101 gm +0.66604 0. 32 0.06660 0.(is explained by the fact that the master is idle most of the time, so if we use one process per)awidthshow +374 101 gm +(processor a processor is idle as well.)show +404 96 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +404 145 gm +(T\312\(sec\))show +404 200 gm +(N\312\(nodes\))show +404 271 gm +(S)show +404 308 gm +(E)show +404 338 gm +(Fpm)show +404 378 gm +(SO)show +404 416 gm +(SS\312\(nodes/sec\))show +404 502 gm +(Sss)show +390 80 gm +0 gr +390 82 lin +390 80 gm +392 80 lin +392 82 gm +392 82 lin +392 82 lin +390 83 gm +390 131 lin +392 83 gm +392 131 lin +390 132 gm +390 134 lin +392 132 gm +392 134 lin +390 135 gm +390 182 lin +392 135 gm +392 182 lin +390 183 gm +390 185 lin +392 183 gm +392 185 lin +390 186 gm +390 253 lin +392 186 gm +392 253 lin +390 254 gm +390 256 lin +392 254 gm +392 256 lin +390 257 gm +390 290 lin +392 257 gm +392 290 lin +390 291 gm +390 293 lin +392 291 gm +392 293 lin +390 294 gm +390 327 lin +392 294 gm +392 327 lin +390 328 gm +390 330 lin +392 328 gm +392 330 lin +390 331 gm +390 364 lin +392 331 gm +392 364 lin +390 365 gm +390 367 lin +392 365 gm +392 367 lin +390 368 gm +390 400 lin +392 368 gm +392 400 lin +390 401 gm +390 403 lin +392 401 gm +392 403 lin +390 404 gm +390 487 lin +392 404 gm +392 487 lin +390 488 gm +390 490 lin +392 488 gm +392 490 lin +390 491 gm +390 524 lin +392 491 gm +392 524 lin +390 525 gm +390 527 lin +392 527 lin +392 525 gm +392 525 lin +392 525 lin +393 80 gm +406 80 lin +393 82 gm +406 82 lin +393 132 gm +406 132 lin +393 134 gm +406 134 lin +393 183 gm +406 183 lin +393 185 gm +406 185 lin +393 254 gm +406 254 lin +393 256 gm +406 256 lin +393 291 gm +406 291 lin +393 293 gm +406 293 lin +393 328 gm +406 328 lin +393 330 gm +406 330 lin +393 365 gm +406 365 lin +393 367 gm +406 367 lin +393 401 gm +406 401 lin +393 403 gm +406 403 lin +393 488 gm +406 488 lin +393 490 gm +406 490 lin +393 525 gm +406 525 lin +393 527 gm +406 527 lin +421 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +421 149 gm +(8301)show +421 203 gm +(5347545)show +421 269 gm +(---)show +421 306 gm +(---)show +421 343 gm +(---)show +421 380 gm +(---)show +421 439 gm +(644)show +421 503 gm +(---)show +407 82 gm +0 gr +409 82 lin +407 80 gm +409 80 lin +407 83 gm +407 131 lin +409 83 gm +409 131 lin +407 134 gm +407 134 lin +409 132 gm +409 132 lin +407 132 gm +407 132 lin +409 134 gm +409 134 lin +407 135 gm +407 182 lin +409 135 gm +409 182 lin +407 185 gm +407 185 lin +409 183 gm +409 183 lin +407 183 gm +407 183 lin +409 185 gm +409 185 lin +407 186 gm +407 253 lin +409 186 gm +409 253 lin +407 256 gm +407 256 lin +409 254 gm +409 254 lin +407 254 gm +407 254 lin +409 256 gm +409 256 lin +407 257 gm +407 290 lin +409 257 gm +409 290 lin +407 293 gm +407 293 lin +409 291 gm +409 291 lin +407 291 gm +407 291 lin +409 293 gm +409 293 lin +407 294 gm +407 327 lin +409 294 gm +409 327 lin +407 330 gm +407 330 lin +409 328 gm +409 328 lin +407 328 gm +407 328 lin +409 330 gm +409 330 lin +407 331 gm +407 364 lin +409 331 gm +409 364 lin +407 367 gm +407 367 lin +409 365 gm +409 365 lin +407 365 gm +407 365 lin +409 367 gm +409 367 lin +407 368 gm +407 400 lin +409 368 gm +409 400 lin +407 403 gm +407 403 lin +409 401 gm +409 401 lin +407 401 gm +407 401 lin +409 403 gm +409 403 lin +407 404 gm +407 487 lin +409 404 gm +409 487 lin +407 490 gm +407 490 lin +409 488 gm +409 488 lin +407 488 gm +407 488 lin +409 490 gm +409 490 lin +407 491 gm +407 524 lin +409 491 gm +409 524 lin +407 527 gm +409 527 lin +407 525 gm +409 525 lin +410 80 gm +423 80 lin +410 82 gm +423 82 lin +410 132 gm +423 132 lin +410 134 gm +423 134 lin +410 183 gm +423 183 lin +410 185 gm +423 185 lin +410 254 gm +423 254 lin +410 256 gm +423 256 lin +410 291 gm +423 291 lin +410 293 gm +423 293 lin +410 328 gm +423 328 lin +410 330 gm +423 330 lin +410 365 gm +423 365 lin +410 367 gm +423 367 lin +410 401 gm +423 401 lin +410 403 gm +423 403 lin +410 488 gm +423 488 lin +410 490 gm +423 490 lin +410 525 gm +423 525 lin +410 527 gm +423 527 lin +436 105 gm +F 1 setTxMode +(3)show +436 149 gm +(4544)show +436 203 gm +(5860668)show +436 265 gm +(1.83)show +436 302 gm +(0.61)show +436 339 gm +(0.70)show +436 376 gm +(0.10)show +436 436 gm +(1290)show +436 499 gm +(2.00)show +424 82 gm +0 gr +424 82 lin +424 80 gm +424 80 lin +424 83 gm +424 131 lin +424 134 gm +424 134 lin +424 132 gm +424 132 lin +424 135 gm +424 182 lin +424 185 gm +424 185 lin +424 183 gm +424 183 lin +424 186 gm +424 253 lin +424 256 gm +424 256 lin +424 254 gm +424 254 lin +424 257 gm +424 290 lin +424 293 gm +424 293 lin +424 291 gm +424 291 lin +424 294 gm +424 327 lin +424 330 gm +424 330 lin +424 328 gm +424 328 lin +424 331 gm +424 364 lin +424 367 gm +424 367 lin +424 365 gm +424 365 lin +424 368 gm +424 400 lin +424 403 gm +424 403 lin +424 401 gm +424 401 lin +424 404 gm +424 487 lin +424 490 gm +424 490 lin +424 488 gm +424 488 lin +424 491 gm +424 524 lin +424 527 gm +424 527 lin +424 525 gm +424 525 lin +425 80 gm +438 80 lin +425 82 gm +438 82 lin +425 132 gm +438 132 lin +425 134 gm +438 134 lin +425 183 gm +438 183 lin +425 185 gm +438 185 lin +425 254 gm +438 254 lin +425 256 gm +438 256 lin +425 291 gm +438 291 lin +425 293 gm +438 293 lin +425 328 gm +438 328 lin +425 330 gm +438 330 lin +425 365 gm +438 365 lin +425 367 gm +438 367 lin +425 401 gm +438 401 lin +425 403 gm +438 403 lin +425 488 gm +438 488 lin +425 490 gm +438 490 lin +425 525 gm +438 525 lin +425 527 gm +438 527 lin +451 105 gm +F 1 setTxMode +(5)show +451 149 gm +(3173)show +451 203 gm +(6330053)show +451 265 gm +(2.62)show +451 302 gm +(0.52)show +451 339 gm +(0.66)show +451 376 gm +(0.18)show +451 436 gm +(1995)show +451 499 gm +(3.10)show +439 82 gm +0 gr +439 82 lin +439 80 gm +439 80 lin +439 83 gm +439 131 lin +439 134 gm +439 134 lin +439 132 gm +439 132 lin +439 135 gm +439 182 lin +439 185 gm +439 185 lin +439 183 gm +439 183 lin +439 186 gm +439 253 lin +439 256 gm +439 256 lin +439 254 gm +439 254 lin +439 257 gm +439 290 lin +439 293 gm +439 293 lin +439 291 gm +439 291 lin +439 294 gm +439 327 lin +439 330 gm +439 330 lin +439 328 gm +439 328 lin +439 331 gm +439 364 lin +439 367 gm +439 367 lin +439 365 gm +439 365 lin +439 368 gm +439 400 lin +439 403 gm +439 403 lin +439 401 gm +439 401 lin +439 404 gm +439 487 lin +439 490 gm +439 490 lin +439 488 gm +439 488 lin +439 491 gm +439 524 lin +439 527 gm +439 527 lin +439 525 gm +439 525 lin +440 80 gm +453 80 lin +440 82 gm +453 82 lin +440 132 gm +453 132 lin +440 134 gm +453 134 lin +440 183 gm +453 183 lin +440 185 gm +453 185 lin +440 254 gm +453 254 lin +440 256 gm +453 256 lin +440 291 gm +453 291 lin +440 293 gm +453 293 lin +440 328 gm +453 328 lin +440 330 gm +453 330 lin +440 365 gm +453 365 lin +440 367 gm +453 367 lin +440 401 gm +453 401 lin +440 403 gm +453 403 lin +440 488 gm +453 488 lin +440 490 gm +453 490 lin +440 525 gm +453 525 lin +440 527 gm +453 527 lin +466 105 gm +F 1 setTxMode +(7)show +466 149 gm +(2779)show +466 203 gm +(6867688)show +466 265 gm +(2.99)show +466 302 gm +(0.43)show +466 339 gm +(0.61)show +466 376 gm +(0.28)show +466 436 gm +(2471)show +466 499 gm +(3.84)show +454 82 gm +0 gr +454 82 lin +454 80 gm +454 80 lin +454 83 gm +454 131 lin +454 134 gm +454 134 lin +454 132 gm +454 132 lin +454 135 gm +454 182 lin +454 185 gm +454 185 lin +454 183 gm +454 183 lin +454 186 gm +454 253 lin +454 256 gm +454 256 lin +454 254 gm +454 254 lin +454 257 gm +454 290 lin +454 293 gm +454 293 lin +454 291 gm +454 291 lin +454 294 gm +454 327 lin +454 330 gm +454 330 lin +454 328 gm +454 328 lin +454 331 gm +454 364 lin +454 367 gm +454 367 lin +454 365 gm +454 365 lin +454 368 gm +454 400 lin +454 403 gm +454 403 lin +454 401 gm +454 401 lin +454 404 gm +454 487 lin +454 490 gm +454 490 lin +454 488 gm +454 488 lin +454 491 gm +454 524 lin +454 527 gm +454 527 lin +454 525 gm +454 525 lin +455 80 gm +468 80 lin +455 82 gm +468 82 lin +455 132 gm +468 132 lin +455 134 gm +468 134 lin +455 183 gm +468 183 lin +455 185 gm +468 185 lin +455 254 gm +468 254 lin +455 256 gm +468 256 lin +455 291 gm +468 291 lin +455 293 gm +468 293 lin +455 328 gm +468 328 lin +455 330 gm +468 330 lin +455 365 gm +468 365 lin +455 367 gm +468 367 lin +455 401 gm +468 401 lin +455 403 gm +468 403 lin +455 488 gm +468 488 lin +455 490 gm +468 490 lin +455 525 gm +468 525 lin +455 527 gm +468 527 lin +481 105 gm +F 1 setTxMode +(9)show +481 149 gm +(2517)show +481 203 gm +(7310806)show +481 265 gm +(3.30)show +481 302 gm +(0.37)show +481 339 gm +(0.57)show +481 376 gm +(0.37)show +481 436 gm +(2905)show +481 499 gm +(4.51)show +469 82 gm +0 gr +469 82 lin +469 80 gm +469 80 lin +469 83 gm +469 131 lin +469 134 gm +469 134 lin +469 132 gm +469 132 lin +469 135 gm +469 182 lin +469 185 gm +469 185 lin +469 183 gm +469 183 lin +469 186 gm +469 253 lin +469 256 gm +469 256 lin +469 254 gm +469 254 lin +469 257 gm +469 290 lin +469 293 gm +469 293 lin +469 291 gm +469 291 lin +469 294 gm +469 327 lin +469 330 gm +469 330 lin +469 328 gm +469 328 lin +469 331 gm +469 364 lin +469 367 gm +469 367 lin +469 365 gm +469 365 lin +469 368 gm +469 400 lin +469 403 gm +469 403 lin +469 401 gm +469 401 lin +469 404 gm +469 487 lin +469 490 gm +469 490 lin +469 488 gm +469 488 lin +469 491 gm +469 524 lin +469 527 gm +469 527 lin +469 525 gm +469 525 lin +470 80 gm +483 80 lin +470 82 gm +483 82 lin +470 132 gm +483 132 lin +470 134 gm +483 134 lin +470 183 gm +483 183 lin +470 185 gm +483 185 lin +470 254 gm +483 254 lin +470 256 gm +483 256 lin +470 291 gm +483 291 lin +470 293 gm +483 293 lin +470 328 gm +483 328 lin +470 330 gm +483 330 lin +470 365 gm +483 365 lin +470 367 gm +483 367 lin +470 401 gm +483 401 lin +470 403 gm +483 403 lin +470 488 gm +483 488 lin +470 490 gm +483 490 lin +470 525 gm +483 525 lin +470 527 gm +483 527 lin +496 103 gm +F 1 setTxMode +(11)show +496 149 gm +(2310)show +496 203 gm +(7990369)show +496 265 gm +(3.59)show +496 302 gm +(0.33)show +496 339 gm +(0.54)show +496 376 gm +(0.49)show +496 436 gm +(3459)show +496 499 gm +(5.37)show +484 82 gm +0 gr +484 82 lin +484 80 gm +484 80 lin +484 83 gm +484 131 lin +484 134 gm +484 134 lin +484 132 gm +484 132 lin +484 135 gm +484 182 lin +484 185 gm +484 185 lin +484 183 gm +484 183 lin +484 186 gm +484 253 lin +484 256 gm +484 256 lin +484 254 gm +484 254 lin +484 257 gm +484 290 lin +484 293 gm +484 293 lin +484 291 gm +484 291 lin +484 294 gm +484 327 lin +484 330 gm +484 330 lin +484 328 gm +484 328 lin +484 331 gm +484 364 lin +484 367 gm +484 367 lin +484 365 gm +484 365 lin +484 368 gm +484 400 lin +484 403 gm +484 403 lin +484 401 gm +484 401 lin +484 404 gm +484 487 lin +484 490 gm +484 490 lin +484 488 gm +484 488 lin +484 491 gm +484 524 lin +484 527 gm +484 527 lin +484 525 gm +484 525 lin +485 80 gm +498 80 lin +485 82 gm +498 82 lin +501 80 gm +501 82 lin +499 80 gm +501 80 lin +499 82 gm +499 82 lin +499 82 lin +499 83 gm +499 131 lin +501 83 gm +501 131 lin +485 132 gm +498 132 lin +485 134 gm +498 134 lin +499 132 gm +499 134 lin +501 132 gm +501 134 lin +499 135 gm +499 182 lin +501 135 gm +501 182 lin +485 183 gm +498 183 lin +485 185 gm +498 185 lin +499 183 gm +499 185 lin +501 183 gm +501 185 lin +499 186 gm +499 253 lin +501 186 gm +501 253 lin +485 254 gm +498 254 lin +485 256 gm +498 256 lin +499 254 gm +499 256 lin +501 254 gm +501 256 lin +499 257 gm +499 290 lin +501 257 gm +501 290 lin +485 291 gm +498 291 lin +485 293 gm +498 293 lin +499 291 gm +499 293 lin +501 291 gm +501 293 lin +499 294 gm +499 327 lin +501 294 gm +501 327 lin +485 328 gm +498 328 lin +485 330 gm +498 330 lin +499 328 gm +499 330 lin +501 328 gm +501 330 lin +499 331 gm +499 364 lin +501 331 gm +501 364 lin +485 365 gm +498 365 lin +485 367 gm +498 367 lin +499 365 gm +499 367 lin +501 365 gm +501 367 lin +499 368 gm +499 400 lin +501 368 gm +501 400 lin +485 401 gm +498 401 lin +485 403 gm +498 403 lin +499 401 gm +499 403 lin +501 401 gm +501 403 lin +499 404 gm +499 487 lin +501 404 gm +501 487 lin +485 488 gm +498 488 lin +485 490 gm +498 490 lin +499 488 gm +499 490 lin +501 488 gm +501 490 lin +499 491 gm +499 524 lin +501 491 gm +501 524 lin +485 525 gm +498 525 lin +485 527 gm +498 527 lin +501 525 gm +501 527 lin +499 527 gm +501 527 lin +499 525 gm +499 525 lin +499 525 lin +513 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(.)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(8)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Static splitting, master does part of the search)show +530 101 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.02517 0. 32 0.00251 0.(We should allocate a worker on the master processor; unfortunately, Fig.8 shows that this is not)awidthshow +541 101 gm +0.28411 0. 32 0.02841 0.(a good idea, because a master process should be able to generate new tasks rapidly when other)awidthshow +552 101 gm +1.02462 0. 32 0.10246 0.(processors become idle: when a processor is shared by the master and a worker the answer)awidthshow +563 101 gm +(times for master become too slow.)show +593 96 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +593 145 gm +(T\312\(sec\))show +593 203 gm +(N\312\(nodi\))show +593 271 gm +(S)show +593 308 gm +(E)show +593 338 gm +(Fpm)show +593 378 gm +(SO)show +593 419 gm +(SS\312\(nodi/sec\))show +593 502 gm +(Sss)show +579 80 gm +0 gr +579 82 lin +579 80 gm +581 80 lin +581 82 gm +581 82 lin +581 82 lin +579 83 gm +579 131 lin +581 83 gm +581 131 lin +579 132 gm +579 134 lin +581 132 gm +581 134 lin +579 135 gm +579 182 lin +581 135 gm +581 182 lin +579 183 gm +579 185 lin +581 183 gm +581 185 lin +579 186 gm +579 253 lin +581 186 gm +581 253 lin +579 254 gm +579 256 lin +581 254 gm +581 256 lin +579 257 gm +579 290 lin +581 257 gm +581 290 lin +579 291 gm +579 293 lin +581 291 gm +581 293 lin +579 294 gm +579 327 lin +581 294 gm +581 327 lin +579 328 gm +579 330 lin +581 328 gm +581 330 lin +579 331 gm +579 364 lin +581 331 gm +581 364 lin +579 365 gm +579 367 lin +581 365 gm +581 367 lin +579 368 gm +579 400 lin +581 368 gm +581 400 lin +579 401 gm +579 403 lin +581 401 gm +581 403 lin +579 404 gm +579 487 lin +581 404 gm +581 487 lin +579 488 gm +579 490 lin +581 488 gm +581 490 lin +579 491 gm +579 524 lin +581 491 gm +581 524 lin +579 525 gm +579 527 lin +581 527 lin +581 525 gm +581 525 lin +581 525 lin +582 80 gm +595 80 lin +582 82 gm +595 82 lin +582 132 gm +595 132 lin +582 134 gm +595 134 lin +582 183 gm +595 183 lin +582 185 gm +595 185 lin +582 254 gm +595 254 lin +582 256 gm +595 256 lin +582 291 gm +595 291 lin +582 293 gm +595 293 lin +582 328 gm +595 328 lin +582 330 gm +595 330 lin +582 365 gm +595 365 lin +582 367 gm +595 367 lin +582 401 gm +595 401 lin +582 403 gm +595 403 lin +582 488 gm +595 488 lin +582 490 gm +595 490 lin +582 525 gm +595 525 lin +582 527 gm +595 527 lin +610 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +610 149 gm +(8301)show +610 203 gm +(5347545)show +610 269 gm +(---)show +610 306 gm +(---)show +610 343 gm +(---)show +610 380 gm +(---)show +610 439 gm +(644)show +610 503 gm +(---)show +596 82 gm +0 gr +598 82 lin +596 80 gm +598 80 lin +596 83 gm +596 131 lin +598 83 gm +598 131 lin +596 134 gm +596 134 lin +598 132 gm +598 132 lin +596 132 gm +596 132 lin +598 134 gm +598 134 lin +596 135 gm +596 182 lin +598 135 gm +598 182 lin +596 185 gm +596 185 lin +598 183 gm +598 183 lin +596 183 gm +596 183 lin +598 185 gm +598 185 lin +596 186 gm +596 253 lin +598 186 gm +598 253 lin +596 256 gm +596 256 lin +598 254 gm +598 254 lin +596 254 gm +596 254 lin +598 256 gm +598 256 lin +596 257 gm +596 290 lin +598 257 gm +598 290 lin +596 293 gm +596 293 lin +598 291 gm +598 291 lin +596 291 gm +596 291 lin +598 293 gm +598 293 lin +596 294 gm +596 327 lin +598 294 gm +598 327 lin +596 330 gm +596 330 lin +598 328 gm +598 328 lin +596 328 gm +596 328 lin +598 330 gm +598 330 lin +596 331 gm +596 364 lin +598 331 gm +598 364 lin +596 367 gm +596 367 lin +598 365 gm +598 365 lin +596 365 gm +596 365 lin +598 367 gm +598 367 lin +596 368 gm +596 400 lin +598 368 gm +598 400 lin +596 403 gm +596 403 lin +598 401 gm +598 401 lin +596 401 gm +596 401 lin +598 403 gm +598 403 lin +596 404 gm +596 487 lin +598 404 gm +598 487 lin +596 490 gm +596 490 lin +598 488 gm +598 488 lin +596 488 gm +596 488 lin +598 490 gm +598 490 lin +596 491 gm +596 524 lin +598 491 gm +598 524 lin +596 527 gm +598 527 lin +596 525 gm +598 525 lin +599 80 gm +612 80 lin +599 82 gm +612 82 lin +599 132 gm +612 132 lin +599 134 gm +612 134 lin +599 183 gm +612 183 lin +599 185 gm +612 185 lin +599 254 gm +612 254 lin +599 256 gm +612 256 lin +599 291 gm +612 291 lin +599 293 gm +612 293 lin +599 328 gm +612 328 lin +599 330 gm +612 330 lin +599 365 gm +612 365 lin +599 367 gm +612 367 lin +599 401 gm +612 401 lin +599 403 gm +612 403 lin +599 488 gm +612 488 lin +599 490 gm +612 490 lin +599 525 gm +612 525 lin +599 527 gm +612 527 lin +625 105 gm +F 1 setTxMode +(3)show +625 149 gm +(3298)show +625 203 gm +(6156027)show +625 265 gm +(2.52)show +625 302 gm +(0.84)show +625 339 gm +(0.96)show +625 376 gm +(0.15)show +625 436 gm +(1867)show +625 499 gm +(2.90)show +613 82 gm +0 gr +613 82 lin +613 80 gm +613 80 lin +613 83 gm +613 131 lin +613 134 gm +613 134 lin +613 132 gm +613 132 lin +613 135 gm +613 182 lin +613 185 gm +613 185 lin +613 183 gm +613 183 lin +613 186 gm +613 253 lin +613 256 gm +613 256 lin +613 254 gm +613 254 lin +613 257 gm +613 290 lin +613 293 gm +613 293 lin +613 291 gm +613 291 lin +613 294 gm +613 327 lin +613 330 gm +613 330 lin +613 328 gm +613 328 lin +613 331 gm +613 364 lin +613 367 gm +613 367 lin +613 365 gm +613 365 lin +613 368 gm +613 400 lin +613 403 gm +613 403 lin +613 401 gm +613 401 lin +613 404 gm +613 487 lin +613 490 gm +613 490 lin +613 488 gm +613 488 lin +613 491 gm +613 524 lin +613 527 gm +613 527 lin +613 525 gm +613 525 lin +614 80 gm +627 80 lin +614 82 gm +627 82 lin +614 132 gm +627 132 lin +614 134 gm +627 134 lin +614 183 gm +627 183 lin +614 185 gm +627 185 lin +614 254 gm +627 254 lin +614 256 gm +627 256 lin +614 291 gm +627 291 lin +614 293 gm +627 293 lin +614 328 gm +627 328 lin +614 330 gm +627 330 lin +614 365 gm +627 365 lin +614 367 gm +627 367 lin +614 401 gm +627 401 lin +614 403 gm +627 403 lin +614 488 gm +627 488 lin +614 490 gm +627 490 lin +614 525 gm +627 525 lin +614 527 gm +627 527 lin +640 105 gm +F 1 setTxMode +(5)show +640 149 gm +(2382)show +640 203 gm +(6945194)show +640 265 gm +(3.48)show +640 302 gm +(0.70)show +640 339 gm +(0.91)show +640 376 gm +(0.30)show +640 436 gm +(2916)show +640 499 gm +(4.53)show +628 82 gm +0 gr +628 82 lin +628 80 gm +628 80 lin +628 83 gm +628 131 lin +628 134 gm +628 134 lin +628 132 gm +628 132 lin +628 135 gm +628 182 lin +628 185 gm +628 185 lin +628 183 gm +628 183 lin +628 186 gm +628 253 lin +628 256 gm +628 256 lin +628 254 gm +628 254 lin +628 257 gm +628 290 lin +628 293 gm +628 293 lin +628 291 gm +628 291 lin +628 294 gm +628 327 lin +628 330 gm +628 330 lin +628 328 gm +628 328 lin +628 331 gm +628 364 lin +628 367 gm +628 367 lin +628 365 gm +628 365 lin +628 368 gm +628 400 lin +628 403 gm +628 403 lin +628 401 gm +628 401 lin +628 404 gm +628 487 lin +628 490 gm +628 490 lin +628 488 gm +628 488 lin +628 491 gm +628 524 lin +628 527 gm +628 527 lin +628 525 gm +628 525 lin +629 80 gm +642 80 lin +629 82 gm +642 82 lin +629 132 gm +642 132 lin +629 134 gm +642 134 lin +629 183 gm +642 183 lin +629 185 gm +642 185 lin +629 254 gm +642 254 lin +629 256 gm +642 256 lin +629 291 gm +642 291 lin +629 293 gm +642 293 lin +629 328 gm +642 328 lin +629 330 gm +642 330 lin +629 365 gm +642 365 lin +629 367 gm +642 367 lin +629 401 gm +642 401 lin +629 403 gm +642 403 lin +629 488 gm +642 488 lin +629 490 gm +642 490 lin +629 525 gm +642 525 lin +629 527 gm +642 527 lin +655 105 gm +F 1 setTxMode +(7)show +655 149 gm +(2064)show +655 203 gm +(7524137)show +655 265 gm +(4.02)show +655 302 gm +(0.57)show +655 339 gm +(0.81)show +655 376 gm +(0.41)show +655 436 gm +(3645)show +655 499 gm +(5.66)show +643 82 gm +0 gr +643 82 lin +643 80 gm +643 80 lin +643 83 gm +643 131 lin +643 134 gm +643 134 lin +643 132 gm +643 132 lin +643 135 gm +643 182 lin +643 185 gm +643 185 lin +643 183 gm +643 183 lin +643 186 gm +643 253 lin +643 256 gm +643 256 lin +643 254 gm +643 254 lin +643 257 gm +643 290 lin +643 293 gm +643 293 lin +643 291 gm +643 291 lin +643 294 gm +643 327 lin +643 330 gm +643 330 lin +643 328 gm +643 328 lin +643 331 gm +643 364 lin +643 367 gm +643 367 lin +643 365 gm +643 365 lin +643 368 gm +643 400 lin +643 403 gm +643 403 lin +643 401 gm +643 401 lin +643 404 gm +643 487 lin +643 490 gm +643 490 lin +643 488 gm +643 488 lin +643 491 gm +643 524 lin +643 527 gm +643 527 lin +643 525 gm +643 525 lin +644 80 gm +657 80 lin +644 82 gm +657 82 lin +644 132 gm +657 132 lin +644 134 gm +657 134 lin +644 183 gm +657 183 lin +644 185 gm +657 185 lin +644 254 gm +657 254 lin +644 256 gm +657 256 lin +644 291 gm +657 291 lin +644 293 gm +657 293 lin +644 328 gm +657 328 lin +644 330 gm +657 330 lin +644 365 gm +657 365 lin +644 367 gm +657 367 lin +644 401 gm +657 401 lin +644 403 gm +657 403 lin +644 488 gm +657 488 lin +644 490 gm +657 490 lin +644 525 gm +657 525 lin +644 527 gm +657 527 lin +670 105 gm +F 1 setTxMode +(9)show +670 149 gm +(1798)show +670 203 gm +(8186074)show +670 265 gm +(4.62)show +670 302 gm +(0.51)show +670 339 gm +(0.77)show +670 376 gm +(0.53)show +670 436 gm +(4553)show +670 499 gm +(7.07)show +658 82 gm +0 gr +658 82 lin +658 80 gm +658 80 lin +658 83 gm +658 131 lin +658 134 gm +658 134 lin +658 132 gm +658 132 lin +658 135 gm +658 182 lin +658 185 gm +658 185 lin +658 183 gm +658 183 lin +658 186 gm +658 253 lin +658 256 gm +658 256 lin +658 254 gm +658 254 lin +658 257 gm +658 290 lin +658 293 gm +658 293 lin +658 291 gm +658 291 lin +658 294 gm +658 327 lin +658 330 gm +658 330 lin +658 328 gm +658 328 lin +658 331 gm +658 364 lin +658 367 gm +658 367 lin +658 365 gm +658 365 lin +658 368 gm +658 400 lin +658 403 gm +658 403 lin +658 401 gm +658 401 lin +658 404 gm +658 487 lin +658 490 gm +658 490 lin +658 488 gm +658 488 lin +658 491 gm +658 524 lin +658 527 gm +658 527 lin +658 525 gm +658 525 lin +659 80 gm +672 80 lin +659 82 gm +672 82 lin +659 132 gm +672 132 lin +659 134 gm +672 134 lin +659 183 gm +672 183 lin +659 185 gm +672 185 lin +659 254 gm +672 254 lin +659 256 gm +672 256 lin +659 291 gm +672 291 lin +659 293 gm +672 293 lin +659 328 gm +672 328 lin +659 330 gm +672 330 lin +659 365 gm +672 365 lin +659 367 gm +672 367 lin +659 401 gm +672 401 lin +659 403 gm +672 403 lin +659 488 gm +672 488 lin +659 490 gm +672 490 lin +659 525 gm +672 525 lin +659 527 gm +672 527 lin +685 103 gm +F 1 setTxMode +(11)show +685 149 gm +(1751)show +685 203 gm +(8746752)show +685 265 gm +(4.74)show +685 302 gm +(0.43)show +685 339 gm +(0.71)show +685 376 gm +(0.64)show +685 436 gm +(4995)show +685 499 gm +(7.75)show +673 82 gm +0 gr +673 82 lin +673 80 gm +673 80 lin +673 83 gm +673 131 lin +673 134 gm +673 134 lin +673 132 gm +673 132 lin +673 135 gm +673 182 lin +673 185 gm +673 185 lin +673 183 gm +673 183 lin +673 186 gm +673 253 lin +673 256 gm +673 256 lin +673 254 gm +673 254 lin +673 257 gm +673 290 lin +673 293 gm +673 293 lin +673 291 gm +673 291 lin +673 294 gm +673 327 lin +673 330 gm +673 330 lin +673 328 gm +673 328 lin +673 331 gm +673 364 lin +673 367 gm +673 367 lin +673 365 gm +673 365 lin +673 368 gm +673 400 lin +673 403 gm +673 403 lin +673 401 gm +673 401 lin +673 404 gm +673 487 lin +673 490 gm +673 490 lin +673 488 gm +673 488 lin +673 491 gm +673 524 lin +673 527 gm +673 527 lin +673 525 gm +673 525 lin +674 80 gm +687 80 lin +674 82 gm +687 82 lin +690 80 gm +690 82 lin +688 80 gm +690 80 lin +688 82 gm +688 82 lin +688 82 lin +688 83 gm +688 131 lin +690 83 gm +690 131 lin +674 132 gm +687 132 lin +674 134 gm +687 134 lin +688 132 gm +688 134 lin +690 132 gm +690 134 lin +688 135 gm +688 182 lin +690 135 gm +690 182 lin +674 183 gm +687 183 lin +674 185 gm +687 185 lin +688 183 gm +688 185 lin +690 183 gm +690 185 lin +688 186 gm +688 253 lin +690 186 gm +690 253 lin +674 254 gm +687 254 lin +674 256 gm +687 256 lin +688 254 gm +688 256 lin +690 254 gm +690 256 lin +688 257 gm +688 290 lin +690 257 gm +690 290 lin +674 291 gm +687 291 lin +674 293 gm +687 293 lin +688 291 gm +688 293 lin +690 291 gm +690 293 lin +688 294 gm +688 327 lin +690 294 gm +690 327 lin +674 328 gm +687 328 lin +674 330 gm +687 330 lin +688 328 gm +688 330 lin +690 328 gm +690 330 lin +688 331 gm +688 364 lin +690 331 gm +690 364 lin +674 365 gm +687 365 lin +674 367 gm +687 367 lin +688 365 gm +688 367 lin +690 365 gm +690 367 lin +688 368 gm +688 400 lin +690 368 gm +690 400 lin +674 401 gm +687 401 lin +674 403 gm +687 403 lin +688 401 gm +688 403 lin +690 401 gm +690 403 lin +688 404 gm +688 487 lin +690 404 gm +690 487 lin +674 488 gm +687 488 lin +674 490 gm +687 490 lin +688 488 gm +688 490 lin +690 488 gm +690 490 lin +688 491 gm +688 524 lin +690 491 gm +690 524 lin +674 525 gm +687 525 lin +674 527 gm +687 527 lin +690 525 gm +690 527 lin +688 527 gm +690 527 lin +688 525 gm +688 525 lin +688 525 lin +702 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.9)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Static splitting, no master \(democratic cooperation\))show +718 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.72952 0. 32 0.07295 0.(The core algorithm can be rewritten to get a more efficient program: there is no need to maintain)awidthshow +729 79 gm +0.48248 0. 32 0.04824 0.(alive the master if the workers are able to handle the results. We call this variant of master-worker)awidthshow +740 79 gm +-0.00064 0.(\322democratic coperation\323. Data shown in Fig.9 show an improvement with respect to the pure master-)ashow +751 79 gm +0.28015 0. 32 0.02801 0.(worker paradigm. However, such data also show that search overhead increased, because a\) there is)awidthshow +F T cp +%%Page: ? 11 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 519 gm +(9)show +118 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.70068 0. 32 0.07006 0.(one more process cooperating in the search, and b\) each worker starts executing a new task more)awidthshow +129 79 gm +0.61386 0. 32 0.06138 0.(rapidly, so it is less likely that it can use data from other explorers that finish while it is idle. The)awidthshow +140 79 gm +0.40039 0. 32 0.04003 0.(most important consideration is that the algorithms get similar results as we increase processors. In)awidthshow +151 79 gm +0.63476 0. 32 0.06347 0.(fact, let P be the total number of processors and E\(P\) number of exploring processors; let C\(P\)be:)awidthshow +0 0 pen +185 223 gm +(nc 155 79 185 223 6 rc)kp +0 gr +185 223 lin +psb +currentpoint +pse +155 79 gm +155 79 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 4608 div 960 3 -1 roll exch div scale currentpoint translate 64 44 translate +-12 500 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +384 /Times-Roman f1 +(C) show +246 500 moveto +(\() show +390 500 moveto +(P) show +619 500 moveto +(\)) show +829 500 moveto +(=) show +1174 261 moveto +(E) show +1408 261 moveto +224 ns +(master) show +2091 261 moveto +(-) show +2247 261 moveto +(worker) show +2894 261 moveto +384 ns +(\() show +3038 261 moveto +(P) show +3267 261 moveto +(\)) show +1418 793 moveto +(E) show +1652 793 moveto +224 ns +(democratic) show +2651 793 moveto +384 ns +(\() show +2795 793 moveto +(P) show +3024 793 moveto +(\)) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 1146 401 moveto 2262 0 rlineto stroke +3509 500 moveto +(=) show +3854 261 moveto +(P) show +4142 261 moveto +(-) show +4306 261 moveto +(1) show +4051 793 moveto +(P) show +3826 401 moveto 663 0 rlineto stroke +end +pse +1 1 pen +172 223 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +2.31613 0. 32 0.23161 0.(. The ratio among production factors is proportional to C\(P\),)awidthshow +193 79 gm +4.52468 0. 32 0.45246 0.(whereas the ratio among value of search overhead is inversely proportional; since)awidthshow +0 0 pen +227 265 gm +(nc 197 79 227 265 6 rc)kp +0 gr +227 265 lin +psb +currentpoint +pse +197 79 gm +197 79 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 5952 div 960 3 -1 roll exch div scale currentpoint translate 64 44 translate +12 500 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +384 /Times-Roman f1 +(lim) show +16 724 moveto +224 /Times-Italic f1 +(p) show +142 724 moveto +224 /Symbol f1 +(\256) show +383 724 moveto +(\245) show +909 500 moveto +384 /Times-Italic f1 +(C) show +1173 500 moveto +384 /Times-Roman f1 +(\() show +1327 500 moveto +384 /Times-Italic f1 +(P) show +1571 500 moveto +384 /Times-Roman f1 +(\)) show +1788 500 moveto +384 /Symbol f1 +(=) show +2064 500 moveto +384 /Times-Roman f1 +(1) show +2594 500 moveto +384 /Times-Italic f1 +(and) show +3574 500 moveto +384 /Times-Roman f1 +(lim) show +3578 724 moveto +224 /Times-Italic f1 +(p) show +3704 724 moveto +224 /Symbol f1 +(\256) show +3945 724 moveto +(\245) show +4798 261 moveto +384 /Times-Roman f1 +(1) show +4503 793 moveto +384 /Times-Italic f1 +(C) show +4767 793 moveto +384 /Times-Roman f1 +(\() show +4921 793 moveto +384 /Times-Italic f1 +(P) show +5165 793 moveto +384 /Times-Roman f1 +(\)) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 4483 401 moveto 823 0 rlineto stroke +5414 500 moveto +384 /Symbol f1 +(=) show +5690 500 moveto +384 /Times-Roman f1 +(1) show +end +pse +1 1 pen +214 265 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +( the two algorithms are asyntotically equivalent.)show +254 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(4.1 Ordered game trees: iterative deepening and top level sorting)show +267 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.68984 0. 32 0.06898 0.(In the algorithms presented above there is no sorting of nodes; however, it is well known that the)awidthshow +282 79 gm +2.09381 0. 32 0.20938 0.(execution of )awidthshow +282 143 gm +bu fc +2 F /|______Symbol fnt +bn +0.69818 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +1.98272 0. 32 0.19827 0.( algorithm improves if game tree nodes are ordered [MarCam82]. We have)awidthshow +294 79 gm +0.63858 0. 32 0.06385 0.(implemented such a sorting, and the resulting search algorithm has been tested with the following)awidthshow +305 79 gm +0.10040 0. 32 0.01004 0.(parameters for iterative deepening: INIT=2-plies, MAX=5-plies; thresold for parallel search: 3)awidthshow +305 496 gm +(-plies.)show +320 79 gm +0.18295 0. 32 0.01829 0.(The sequential algorithm we used for comparison is )awidthshow +bu fc +2 F /|______Symbol fnt +bn +0.06732 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.18188 0. 32 0.01818 0.( with iterative deepening and same INIT and)awidthshow +332 79 gm +(MAX.)show +361 96 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +361 145 gm +(T\312\(sec\))show +361 200 gm +(N\312\(nodes\))show +361 271 gm +(S)show +361 308 gm +(E)show +361 338 gm +(Fpm)show +361 378 gm +(SO)show +361 418 gm +(SS )show +9 fz +bu fc +2 F /|______Times-Bold fnt +bn +(\(nodes/sec\))show +361 502 gm +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Sss)show +347 80 gm +0 gr +347 82 lin +347 80 gm +349 80 lin +349 82 gm +349 82 lin +349 82 lin +347 83 gm +347 131 lin +349 83 gm +349 131 lin +347 132 gm +347 134 lin +349 132 gm +349 134 lin +347 135 gm +347 182 lin +349 135 gm +349 182 lin +347 183 gm +347 185 lin +349 183 gm +349 185 lin +347 186 gm +347 253 lin +349 186 gm +349 253 lin +347 254 gm +347 256 lin +349 254 gm +349 256 lin +347 257 gm +347 290 lin +349 257 gm +349 290 lin +347 291 gm +347 293 lin +349 291 gm +349 293 lin +347 294 gm +347 327 lin +349 294 gm +349 327 lin +347 328 gm +347 330 lin +349 328 gm +349 330 lin +347 331 gm +347 364 lin +349 331 gm +349 364 lin +347 365 gm +347 367 lin +349 365 gm +349 367 lin +347 368 gm +347 400 lin +349 368 gm +349 400 lin +347 401 gm +347 403 lin +349 401 gm +349 403 lin +347 404 gm +347 487 lin +349 404 gm +349 487 lin +347 488 gm +347 490 lin +349 488 gm +349 490 lin +347 491 gm +347 524 lin +349 491 gm +349 524 lin +347 525 gm +347 527 lin +349 527 lin +349 525 gm +349 525 lin +349 525 lin +350 80 gm +363 80 lin +350 82 gm +363 82 lin +350 132 gm +363 132 lin +350 134 gm +363 134 lin +350 183 gm +363 183 lin +350 185 gm +363 185 lin +350 254 gm +363 254 lin +350 256 gm +363 256 lin +350 291 gm +363 291 lin +350 293 gm +363 293 lin +350 328 gm +363 328 lin +350 330 gm +363 330 lin +350 365 gm +363 365 lin +350 367 gm +363 367 lin +350 401 gm +363 401 lin +350 403 gm +363 403 lin +350 488 gm +363 488 lin +350 490 gm +363 490 lin +350 525 gm +363 525 lin +350 527 gm +363 527 lin +378 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +378 149 gm +(6740)show +378 203 gm +(4529971)show +378 269 gm +(---)show +378 306 gm +(---)show +378 343 gm +(---)show +378 380 gm +(---)show +378 439 gm +(672)show +378 503 gm +(---)show +364 82 gm +0 gr +366 82 lin +364 80 gm +366 80 lin +364 83 gm +364 131 lin +366 83 gm +366 131 lin +364 134 gm +364 134 lin +366 132 gm +366 132 lin +364 132 gm +364 132 lin +366 134 gm +366 134 lin +364 135 gm +364 182 lin +366 135 gm +366 182 lin +364 185 gm +364 185 lin +366 183 gm +366 183 lin +364 183 gm +364 183 lin +366 185 gm +366 185 lin +364 186 gm +364 253 lin +366 186 gm +366 253 lin +364 256 gm +364 256 lin +366 254 gm +366 254 lin +364 254 gm +364 254 lin +366 256 gm +366 256 lin +364 257 gm +364 290 lin +366 257 gm +366 290 lin +364 293 gm +364 293 lin +366 291 gm +366 291 lin +364 291 gm +364 291 lin +366 293 gm +366 293 lin +364 294 gm +364 327 lin +366 294 gm +366 327 lin +364 330 gm +364 330 lin +366 328 gm +366 328 lin +364 328 gm +364 328 lin +366 330 gm +366 330 lin +364 331 gm +364 364 lin +366 331 gm +366 364 lin +364 367 gm +364 367 lin +366 365 gm +366 365 lin +364 365 gm +364 365 lin +366 367 gm +366 367 lin +364 368 gm +364 400 lin +366 368 gm +366 400 lin +364 403 gm +364 403 lin +366 401 gm +366 401 lin +364 401 gm +364 401 lin +366 403 gm +366 403 lin +364 404 gm +364 487 lin +366 404 gm +366 487 lin +364 490 gm +364 490 lin +366 488 gm +366 488 lin +364 488 gm +364 488 lin +366 490 gm +366 490 lin +364 491 gm +364 524 lin +366 491 gm +366 524 lin +364 527 gm +366 527 lin +364 525 gm +366 525 lin +367 80 gm +380 80 lin +367 82 gm +380 82 lin +367 132 gm +380 132 lin +367 134 gm +380 134 lin +367 183 gm +380 183 lin +367 185 gm +380 185 lin +367 254 gm +380 254 lin +367 256 gm +380 256 lin +367 291 gm +380 291 lin +367 293 gm +380 293 lin +367 328 gm +380 328 lin +367 330 gm +380 330 lin +367 365 gm +380 365 lin +367 367 gm +380 367 lin +367 401 gm +380 401 lin +367 403 gm +380 403 lin +367 488 gm +380 488 lin +367 490 gm +380 490 lin +367 525 gm +380 525 lin +367 527 gm +380 527 lin +393 105 gm +F 1 setTxMode +(3)show +393 149 gm +(2884)show +393 203 gm +(5415125)show +393 265 gm +(2.34)show +393 302 gm +(0.78)show +393 339 gm +(0.94)show +393 376 gm +(0.20)show +393 436 gm +(1878)show +393 499 gm +(2.79)show +381 82 gm +0 gr +381 82 lin +381 80 gm +381 80 lin +381 83 gm +381 131 lin +381 134 gm +381 134 lin +381 132 gm +381 132 lin +381 135 gm +381 182 lin +381 185 gm +381 185 lin +381 183 gm +381 183 lin +381 186 gm +381 253 lin +381 256 gm +381 256 lin +381 254 gm +381 254 lin +381 257 gm +381 290 lin +381 293 gm +381 293 lin +381 291 gm +381 291 lin +381 294 gm +381 327 lin +381 330 gm +381 330 lin +381 328 gm +381 328 lin +381 331 gm +381 364 lin +381 367 gm +381 367 lin +381 365 gm +381 365 lin +381 368 gm +381 400 lin +381 403 gm +381 403 lin +381 401 gm +381 401 lin +381 404 gm +381 487 lin +381 490 gm +381 490 lin +381 488 gm +381 488 lin +381 491 gm +381 524 lin +381 527 gm +381 527 lin +381 525 gm +381 525 lin +382 80 gm +395 80 lin +382 82 gm +395 82 lin +382 132 gm +395 132 lin +382 134 gm +395 134 lin +382 183 gm +395 183 lin +382 185 gm +395 185 lin +382 254 gm +395 254 lin +382 256 gm +395 256 lin +382 291 gm +395 291 lin +382 293 gm +395 293 lin +382 328 gm +395 328 lin +382 330 gm +395 330 lin +382 365 gm +395 365 lin +382 367 gm +395 367 lin +382 401 gm +395 401 lin +382 403 gm +395 403 lin +382 488 gm +395 488 lin +382 490 gm +395 490 lin +382 525 gm +395 525 lin +382 527 gm +395 527 lin +408 105 gm +F 1 setTxMode +(5)show +408 149 gm +(2229)show +408 203 gm +(6307062)show +408 265 gm +(3.02)show +408 302 gm +(0.60)show +408 339 gm +(0.87)show +408 376 gm +(0.39)show +408 436 gm +(2830)show +408 499 gm +(4.21)show +396 82 gm +0 gr +396 82 lin +396 80 gm +396 80 lin +396 83 gm +396 131 lin +396 134 gm +396 134 lin +396 132 gm +396 132 lin +396 135 gm +396 182 lin +396 185 gm +396 185 lin +396 183 gm +396 183 lin +396 186 gm +396 253 lin +396 256 gm +396 256 lin +396 254 gm +396 254 lin +396 257 gm +396 290 lin +396 293 gm +396 293 lin +396 291 gm +396 291 lin +396 294 gm +396 327 lin +396 330 gm +396 330 lin +396 328 gm +396 328 lin +396 331 gm +396 364 lin +396 367 gm +396 367 lin +396 365 gm +396 365 lin +396 368 gm +396 400 lin +396 403 gm +396 403 lin +396 401 gm +396 401 lin +396 404 gm +396 487 lin +396 490 gm +396 490 lin +396 488 gm +396 488 lin +396 491 gm +396 524 lin +396 527 gm +396 527 lin +396 525 gm +396 525 lin +397 80 gm +410 80 lin +397 82 gm +410 82 lin +397 132 gm +410 132 lin +397 134 gm +410 134 lin +397 183 gm +410 183 lin +397 185 gm +410 185 lin +397 254 gm +410 254 lin +397 256 gm +410 256 lin +397 291 gm +410 291 lin +397 293 gm +410 293 lin +397 328 gm +410 328 lin +397 330 gm +410 330 lin +397 365 gm +410 365 lin +397 367 gm +410 367 lin +397 401 gm +410 401 lin +397 403 gm +410 403 lin +397 488 gm +410 488 lin +397 490 gm +410 490 lin +397 525 gm +410 525 lin +397 527 gm +410 527 lin +423 105 gm +F 1 setTxMode +(7)show +423 149 gm +(2007)show +423 203 gm +(7317370)show +423 265 gm +(3.36)show +423 302 gm +(0.48)show +423 339 gm +(0.80)show +423 376 gm +(0.62)show +423 436 gm +(3646)show +423 499 gm +(5.42)show +411 82 gm +0 gr +411 82 lin +411 80 gm +411 80 lin +411 83 gm +411 131 lin +411 134 gm +411 134 lin +411 132 gm +411 132 lin +411 135 gm +411 182 lin +411 185 gm +411 185 lin +411 183 gm +411 183 lin +411 186 gm +411 253 lin +411 256 gm +411 256 lin +411 254 gm +411 254 lin +411 257 gm +411 290 lin +411 293 gm +411 293 lin +411 291 gm +411 291 lin +411 294 gm +411 327 lin +411 330 gm +411 330 lin +411 328 gm +411 328 lin +411 331 gm +411 364 lin +411 367 gm +411 367 lin +411 365 gm +411 365 lin +411 368 gm +411 400 lin +411 403 gm +411 403 lin +411 401 gm +411 401 lin +411 404 gm +411 487 lin +411 490 gm +411 490 lin +411 488 gm +411 488 lin +411 491 gm +411 524 lin +411 527 gm +411 527 lin +411 525 gm +411 525 lin +412 80 gm +425 80 lin +412 82 gm +425 82 lin +412 132 gm +425 132 lin +412 134 gm +425 134 lin +412 183 gm +425 183 lin +412 185 gm +425 185 lin +412 254 gm +425 254 lin +412 256 gm +425 256 lin +412 291 gm +425 291 lin +412 293 gm +425 293 lin +412 328 gm +425 328 lin +412 330 gm +425 330 lin +412 365 gm +425 365 lin +412 367 gm +425 367 lin +412 401 gm +425 401 lin +412 403 gm +425 403 lin +412 488 gm +425 488 lin +412 490 gm +425 490 lin +412 525 gm +425 525 lin +412 527 gm +425 527 lin +438 105 gm +F 1 setTxMode +(9)show +438 149 gm +(1839)show +438 203 gm +(8187769)show +438 265 gm +(3.67)show +438 302 gm +(0.41)show +438 339 gm +(0.75)show +438 376 gm +(0.81)show +438 436 gm +(4452)show +438 499 gm +(6.62)show +426 82 gm +0 gr +426 82 lin +426 80 gm +426 80 lin +426 83 gm +426 131 lin +426 134 gm +426 134 lin +426 132 gm +426 132 lin +426 135 gm +426 182 lin +426 185 gm +426 185 lin +426 183 gm +426 183 lin +426 186 gm +426 253 lin +426 256 gm +426 256 lin +426 254 gm +426 254 lin +426 257 gm +426 290 lin +426 293 gm +426 293 lin +426 291 gm +426 291 lin +426 294 gm +426 327 lin +426 330 gm +426 330 lin +426 328 gm +426 328 lin +426 331 gm +426 364 lin +426 367 gm +426 367 lin +426 365 gm +426 365 lin +426 368 gm +426 400 lin +426 403 gm +426 403 lin +426 401 gm +426 401 lin +426 404 gm +426 487 lin +426 490 gm +426 490 lin +426 488 gm +426 488 lin +426 491 gm +426 524 lin +426 527 gm +426 527 lin +426 525 gm +426 525 lin +427 80 gm +440 80 lin +427 82 gm +440 82 lin +427 132 gm +440 132 lin +427 134 gm +440 134 lin +427 183 gm +440 183 lin +427 185 gm +440 185 lin +427 254 gm +440 254 lin +427 256 gm +440 256 lin +427 291 gm +440 291 lin +427 293 gm +440 293 lin +427 328 gm +440 328 lin +427 330 gm +440 330 lin +427 365 gm +440 365 lin +427 367 gm +440 367 lin +427 401 gm +440 401 lin +427 403 gm +440 403 lin +427 488 gm +440 488 lin +427 490 gm +440 490 lin +427 525 gm +440 525 lin +427 527 gm +440 527 lin +453 103 gm +F 1 setTxMode +(11)show +453 149 gm +(1825)show +453 203 gm +(8980505)show +453 265 gm +(3.69)show +453 302 gm +(0.34)show +453 339 gm +(0.71)show +453 376 gm +(0.98)show +453 436 gm +(4921)show +453 499 gm +(7.32)show +441 82 gm +0 gr +441 82 lin +441 80 gm +441 80 lin +441 83 gm +441 131 lin +441 134 gm +441 134 lin +441 132 gm +441 132 lin +441 135 gm +441 182 lin +441 185 gm +441 185 lin +441 183 gm +441 183 lin +441 186 gm +441 253 lin +441 256 gm +441 256 lin +441 254 gm +441 254 lin +441 257 gm +441 290 lin +441 293 gm +441 293 lin +441 291 gm +441 291 lin +441 294 gm +441 327 lin +441 330 gm +441 330 lin +441 328 gm +441 328 lin +441 331 gm +441 364 lin +441 367 gm +441 367 lin +441 365 gm +441 365 lin +441 368 gm +441 400 lin +441 403 gm +441 403 lin +441 401 gm +441 401 lin +441 404 gm +441 487 lin +441 490 gm +441 490 lin +441 488 gm +441 488 lin +441 491 gm +441 524 lin +441 527 gm +441 527 lin +441 525 gm +441 525 lin +442 80 gm +455 80 lin +442 82 gm +455 82 lin +458 80 gm +458 82 lin +456 80 gm +458 80 lin +456 82 gm +456 82 lin +456 82 lin +456 83 gm +456 131 lin +458 83 gm +458 131 lin +442 132 gm +455 132 lin +442 134 gm +455 134 lin +456 132 gm +456 134 lin +458 132 gm +458 134 lin +456 135 gm +456 182 lin +458 135 gm +458 182 lin +442 183 gm +455 183 lin +442 185 gm +455 185 lin +456 183 gm +456 185 lin +458 183 gm +458 185 lin +456 186 gm +456 253 lin +458 186 gm +458 253 lin +442 254 gm +455 254 lin +442 256 gm +455 256 lin +456 254 gm +456 256 lin +458 254 gm +458 256 lin +456 257 gm +456 290 lin +458 257 gm +458 290 lin +442 291 gm +455 291 lin +442 293 gm +455 293 lin +456 291 gm +456 293 lin +458 291 gm +458 293 lin +456 294 gm +456 327 lin +458 294 gm +458 327 lin +442 328 gm +455 328 lin +442 330 gm +455 330 lin +456 328 gm +456 330 lin +458 328 gm +458 330 lin +456 331 gm +456 364 lin +458 331 gm +458 364 lin +442 365 gm +455 365 lin +442 367 gm +455 367 lin +456 365 gm +456 367 lin +458 365 gm +458 367 lin +456 368 gm +456 400 lin +458 368 gm +458 400 lin +442 401 gm +455 401 lin +442 403 gm +455 403 lin +456 401 gm +456 403 lin +458 401 gm +458 403 lin +456 404 gm +456 487 lin +458 404 gm +458 487 lin +442 488 gm +455 488 lin +442 490 gm +455 490 lin +456 488 gm +456 490 lin +458 488 gm +458 490 lin +456 491 gm +456 524 lin +458 491 gm +458 524 lin +442 525 gm +455 525 lin +442 527 gm +455 527 lin +458 525 gm +458 527 lin +456 527 gm +458 527 lin +456 525 gm +456 525 lin +456 525 lin +470 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.10)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Basic algorithm, iterative deepening and top-level sorting)show +486 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.85195 0. 32 0.18519 0.(The most impressive result in Fig.10 is the increasing of search overhead SO \(98% with 11)awidthshow +497 79 gm +0.59921 0. 32 0.05992 0.(processors\). The number of visited nodes is larger for 9 and 11 processors. On the other hand, the)awidthshow +508 79 gm +1.22573 0. 32 0.12257 0.(sequential version benefits from the new heuristics: the visited nodes are decreasd of 17%. We)awidthshow +519 79 gm +1.15554 0. 32 0.11555 0.(explain this with the fact that parallel search initially cannot gain any advantage from top level)awidthshow +530 79 gm +(sorting, since all processes start simultaneously with initial score equal to -)show +currentfont SwToSym +(\245)show +setfont +(.)show +541 79 gm +0.40695 0. 32 0.04069 0.(Moreover, with respect to no iterative deepening, in this case visited nodes include also all internal)awidthshow +552 79 gm +0.11657 0. 32 0.01165 0.(nodes: this explains the total count with 11 processors. However, the average production factor Fpm)awidthshow +563 79 gm +(decreases of 2%: there is a larger synchronization overhead due to search in the internal tree.)show +593 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(4.2 Reducing the search overhead)show +606 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Search overhead is caused:)show +618 88 gm +(\245\312by lack of sharing of score during search;)show +631 88 gm +(\245\312initial score = -)show +currentfont SwToSym +(\245)show +setfont +( for the first N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(w)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( tasks \(N)show +631 277 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(w)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( = # explorers\).)show +643 79 gm +0.40771 0. 32 0.04077 0.(We try to overcome such problems introducing a tuple storing a global score that all local searches)awidthshow +654 79 gm +1.10519 0. 32 0.11051 0.(can query. The global score tuple that can be read at any moment, but we must be careful with)awidthshow +665 79 gm +1.13174 0. 32 0.11317 0.(reading such a tuple, because it may be a very expensive operation. Thus, we try to make only)awidthshow +676 79 gm +0.11413 0. 32 0.01141 0.("useful" readings: after each reading of the global score the explorer puts in the tuple space a private)awidthshow +687 79 gm +0.35781 0. 32 0.03578 0.(tuple. When a worker modifies the global score it removes all private tuples, so that they can know)awidthshow +699 79 gm +0.66818 0. 32 0.06681 0.(when an update was done. In C-Linda )awidthshow +bu fc +2 F /|______Courier fnt +bn +0.27516 0.(out)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.73806 0. 32 0.07380 0.( operations are local and inexpensive, whereas )awidthshow +bu fc +2 F /|______Courier fnt +bn +0.27517 0.(in)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.51879 0. 32 0.05187 0.( are)awidthshow +710 79 gm +0.23971 0. 32 0.02397 0.(based on broadcasting and are expensive. Deletion of private tuples is expensive as well, but it does)awidthshow +721 79 gm +(not happen frequently. Fig.11 shows the evaluation of such an algorithm.)show +F T cp +%%Page: ? 12 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(10)show +124 96 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +124 145 gm +(T\312\(sec\))show +124 200 gm +(N\312\(nodes\))show +124 271 gm +(S)show +124 308 gm +(E)show +124 338 gm +(Fpm)show +124 378 gm +(SO)show +124 416 gm +(SS\312\(nodes/sec\))show +124 502 gm +(Sss)show +110 80 gm +0 gr +110 82 lin +110 80 gm +112 80 lin +112 82 gm +112 82 lin +112 82 lin +110 83 gm +110 131 lin +112 83 gm +112 131 lin +110 132 gm +110 134 lin +112 132 gm +112 134 lin +110 135 gm +110 182 lin +112 135 gm +112 182 lin +110 183 gm +110 185 lin +112 183 gm +112 185 lin +110 186 gm +110 253 lin +112 186 gm +112 253 lin +110 254 gm +110 256 lin +112 254 gm +112 256 lin +110 257 gm +110 290 lin +112 257 gm +112 290 lin +110 291 gm +110 293 lin +112 291 gm +112 293 lin +110 294 gm +110 327 lin +112 294 gm +112 327 lin +110 328 gm +110 330 lin +112 328 gm +112 330 lin +110 331 gm +110 364 lin +112 331 gm +112 364 lin +110 365 gm +110 367 lin +112 365 gm +112 367 lin +110 368 gm +110 400 lin +112 368 gm +112 400 lin +110 401 gm +110 403 lin +112 401 gm +112 403 lin +110 404 gm +110 487 lin +112 404 gm +112 487 lin +110 488 gm +110 490 lin +112 488 gm +112 490 lin +110 491 gm +110 524 lin +112 491 gm +112 524 lin +110 525 gm +110 527 lin +112 527 lin +112 525 gm +112 525 lin +112 525 lin +113 80 gm +126 80 lin +113 82 gm +126 82 lin +113 132 gm +126 132 lin +113 134 gm +126 134 lin +113 183 gm +126 183 lin +113 185 gm +126 185 lin +113 254 gm +126 254 lin +113 256 gm +126 256 lin +113 291 gm +126 291 lin +113 293 gm +126 293 lin +113 328 gm +126 328 lin +113 330 gm +126 330 lin +113 365 gm +126 365 lin +113 367 gm +126 367 lin +113 401 gm +126 401 lin +113 403 gm +126 403 lin +113 488 gm +126 488 lin +113 490 gm +126 490 lin +113 525 gm +126 525 lin +113 527 gm +126 527 lin +141 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +141 149 gm +(6740)show +141 203 gm +(4529971)show +141 269 gm +(---)show +141 306 gm +(---)show +141 343 gm +(---)show +141 380 gm +(---)show +141 439 gm +(672)show +141 503 gm +(---)show +127 82 gm +0 gr +129 82 lin +127 80 gm +129 80 lin +127 83 gm +127 131 lin +129 83 gm +129 131 lin +127 134 gm +127 134 lin +129 132 gm +129 132 lin +127 132 gm +127 132 lin +129 134 gm +129 134 lin +127 135 gm +127 182 lin +129 135 gm +129 182 lin +127 185 gm +127 185 lin +129 183 gm +129 183 lin +127 183 gm +127 183 lin +129 185 gm +129 185 lin +127 186 gm +127 253 lin +129 186 gm +129 253 lin +127 256 gm +127 256 lin +129 254 gm +129 254 lin +127 254 gm +127 254 lin +129 256 gm +129 256 lin +127 257 gm +127 290 lin +129 257 gm +129 290 lin +127 293 gm +127 293 lin +129 291 gm +129 291 lin +127 291 gm +127 291 lin +129 293 gm +129 293 lin +127 294 gm +127 327 lin +129 294 gm +129 327 lin +127 330 gm +127 330 lin +129 328 gm +129 328 lin +127 328 gm +127 328 lin +129 330 gm +129 330 lin +127 331 gm +127 364 lin +129 331 gm +129 364 lin +127 367 gm +127 367 lin +129 365 gm +129 365 lin +127 365 gm +127 365 lin +129 367 gm +129 367 lin +127 368 gm +127 400 lin +129 368 gm +129 400 lin +127 403 gm +127 403 lin +129 401 gm +129 401 lin +127 401 gm +127 401 lin +129 403 gm +129 403 lin +127 404 gm +127 487 lin +129 404 gm +129 487 lin +127 490 gm +127 490 lin +129 488 gm +129 488 lin +127 488 gm +127 488 lin +129 490 gm +129 490 lin +127 491 gm +127 524 lin +129 491 gm +129 524 lin +127 527 gm +129 527 lin +127 525 gm +129 525 lin +130 80 gm +143 80 lin +130 82 gm +143 82 lin +130 132 gm +143 132 lin +130 134 gm +143 134 lin +130 183 gm +143 183 lin +130 185 gm +143 185 lin +130 254 gm +143 254 lin +130 256 gm +143 256 lin +130 291 gm +143 291 lin +130 293 gm +143 293 lin +130 328 gm +143 328 lin +130 330 gm +143 330 lin +130 365 gm +143 365 lin +130 367 gm +143 367 lin +130 401 gm +143 401 lin +130 403 gm +143 403 lin +130 488 gm +143 488 lin +130 490 gm +143 490 lin +130 525 gm +143 525 lin +130 527 gm +143 527 lin +156 105 gm +F 1 setTxMode +(3)show +156 149 gm +(2689)show +156 203 gm +(4995937)show +156 265 gm +(2.51)show +156 302 gm +(0.84)show +156 339 gm +(0.94)show +156 376 gm +(0.10)show +156 436 gm +(1858)show +156 499 gm +(2.76)show +144 82 gm +0 gr +144 82 lin +144 80 gm +144 80 lin +144 83 gm +144 131 lin +144 134 gm +144 134 lin +144 132 gm +144 132 lin +144 135 gm +144 182 lin +144 185 gm +144 185 lin +144 183 gm +144 183 lin +144 186 gm +144 253 lin +144 256 gm +144 256 lin +144 254 gm +144 254 lin +144 257 gm +144 290 lin +144 293 gm +144 293 lin +144 291 gm +144 291 lin +144 294 gm +144 327 lin +144 330 gm +144 330 lin +144 328 gm +144 328 lin +144 331 gm +144 364 lin +144 367 gm +144 367 lin +144 365 gm +144 365 lin +144 368 gm +144 400 lin +144 403 gm +144 403 lin +144 401 gm +144 401 lin +144 404 gm +144 487 lin +144 490 gm +144 490 lin +144 488 gm +144 488 lin +144 491 gm +144 524 lin +144 527 gm +144 527 lin +144 525 gm +144 525 lin +145 80 gm +158 80 lin +145 82 gm +158 82 lin +145 132 gm +158 132 lin +145 134 gm +158 134 lin +145 183 gm +158 183 lin +145 185 gm +158 185 lin +145 254 gm +158 254 lin +145 256 gm +158 256 lin +145 291 gm +158 291 lin +145 293 gm +158 293 lin +145 328 gm +158 328 lin +145 330 gm +158 330 lin +145 365 gm +158 365 lin +145 367 gm +158 367 lin +145 401 gm +158 401 lin +145 403 gm +158 403 lin +145 488 gm +158 488 lin +145 490 gm +158 490 lin +145 525 gm +158 525 lin +145 527 gm +158 527 lin +171 105 gm +F 1 setTxMode +(5)show +171 149 gm +(1854)show +171 203 gm +(5346599)show +171 265 gm +(3.64)show +171 302 gm +(0.73)show +171 339 gm +(0.88)show +171 376 gm +(0.18)show +171 436 gm +(2884)show +171 499 gm +(4.29)show +159 82 gm +0 gr +159 82 lin +159 80 gm +159 80 lin +159 83 gm +159 131 lin +159 134 gm +159 134 lin +159 132 gm +159 132 lin +159 135 gm +159 182 lin +159 185 gm +159 185 lin +159 183 gm +159 183 lin +159 186 gm +159 253 lin +159 256 gm +159 256 lin +159 254 gm +159 254 lin +159 257 gm +159 290 lin +159 293 gm +159 293 lin +159 291 gm +159 291 lin +159 294 gm +159 327 lin +159 330 gm +159 330 lin +159 328 gm +159 328 lin +159 331 gm +159 364 lin +159 367 gm +159 367 lin +159 365 gm +159 365 lin +159 368 gm +159 400 lin +159 403 gm +159 403 lin +159 401 gm +159 401 lin +159 404 gm +159 487 lin +159 490 gm +159 490 lin +159 488 gm +159 488 lin +159 491 gm +159 524 lin +159 527 gm +159 527 lin +159 525 gm +159 525 lin +160 80 gm +173 80 lin +160 82 gm +173 82 lin +160 132 gm +173 132 lin +160 134 gm +173 134 lin +160 183 gm +173 183 lin +160 185 gm +173 185 lin +160 254 gm +173 254 lin +160 256 gm +173 256 lin +160 291 gm +173 291 lin +160 293 gm +173 293 lin +160 328 gm +173 328 lin +160 330 gm +173 330 lin +160 365 gm +173 365 lin +160 367 gm +173 367 lin +160 401 gm +173 401 lin +160 403 gm +173 403 lin +160 488 gm +173 488 lin +160 490 gm +173 490 lin +160 525 gm +173 525 lin +160 527 gm +173 527 lin +186 105 gm +F 1 setTxMode +(7)show +186 149 gm +(1485)show +186 203 gm +(5634915)show +186 265 gm +(4.54)show +186 302 gm +(0.65)show +186 339 gm +(0.81)show +186 376 gm +(0.24)show +186 436 gm +(3795)show +186 499 gm +(5.65)show +174 82 gm +0 gr +174 82 lin +174 80 gm +174 80 lin +174 83 gm +174 131 lin +174 134 gm +174 134 lin +174 132 gm +174 132 lin +174 135 gm +174 182 lin +174 185 gm +174 185 lin +174 183 gm +174 183 lin +174 186 gm +174 253 lin +174 256 gm +174 256 lin +174 254 gm +174 254 lin +174 257 gm +174 290 lin +174 293 gm +174 293 lin +174 291 gm +174 291 lin +174 294 gm +174 327 lin +174 330 gm +174 330 lin +174 328 gm +174 328 lin +174 331 gm +174 364 lin +174 367 gm +174 367 lin +174 365 gm +174 365 lin +174 368 gm +174 400 lin +174 403 gm +174 403 lin +174 401 gm +174 401 lin +174 404 gm +174 487 lin +174 490 gm +174 490 lin +174 488 gm +174 488 lin +174 491 gm +174 524 lin +174 527 gm +174 527 lin +174 525 gm +174 525 lin +175 80 gm +188 80 lin +175 82 gm +188 82 lin +175 132 gm +188 132 lin +175 134 gm +188 134 lin +175 183 gm +188 183 lin +175 185 gm +188 185 lin +175 254 gm +188 254 lin +175 256 gm +188 256 lin +175 291 gm +188 291 lin +175 293 gm +188 293 lin +175 328 gm +188 328 lin +175 330 gm +188 330 lin +175 365 gm +188 365 lin +175 367 gm +188 367 lin +175 401 gm +188 401 lin +175 403 gm +188 403 lin +175 488 gm +188 488 lin +175 490 gm +188 490 lin +175 525 gm +188 525 lin +175 527 gm +188 527 lin +201 105 gm +F 1 setTxMode +(9)show +201 149 gm +(1315)show +201 203 gm +(5936185)show +201 265 gm +(5.13)show +201 302 gm +(0.57)show +201 339 gm +(0.77)show +201 376 gm +(0.31)show +201 436 gm +(4514)show +201 499 gm +(6.72)show +189 82 gm +0 gr +189 82 lin +189 80 gm +189 80 lin +189 83 gm +189 131 lin +189 134 gm +189 134 lin +189 132 gm +189 132 lin +189 135 gm +189 182 lin +189 185 gm +189 185 lin +189 183 gm +189 183 lin +189 186 gm +189 253 lin +189 256 gm +189 256 lin +189 254 gm +189 254 lin +189 257 gm +189 290 lin +189 293 gm +189 293 lin +189 291 gm +189 291 lin +189 294 gm +189 327 lin +189 330 gm +189 330 lin +189 328 gm +189 328 lin +189 331 gm +189 364 lin +189 367 gm +189 367 lin +189 365 gm +189 365 lin +189 368 gm +189 400 lin +189 403 gm +189 403 lin +189 401 gm +189 401 lin +189 404 gm +189 487 lin +189 490 gm +189 490 lin +189 488 gm +189 488 lin +189 491 gm +189 524 lin +189 527 gm +189 527 lin +189 525 gm +189 525 lin +190 80 gm +203 80 lin +190 82 gm +203 82 lin +190 132 gm +203 132 lin +190 134 gm +203 134 lin +190 183 gm +203 183 lin +190 185 gm +203 185 lin +190 254 gm +203 254 lin +190 256 gm +203 256 lin +190 291 gm +203 291 lin +190 293 gm +203 293 lin +190 328 gm +203 328 lin +190 330 gm +203 330 lin +190 365 gm +203 365 lin +190 367 gm +203 367 lin +190 401 gm +203 401 lin +190 403 gm +203 403 lin +190 488 gm +203 488 lin +190 490 gm +203 490 lin +190 525 gm +203 525 lin +190 527 gm +203 527 lin +216 103 gm +F 1 setTxMode +(11)show +216 149 gm +(1280)show +216 203 gm +(6726213)show +216 265 gm +(5.27)show +216 302 gm +(0.48)show +216 339 gm +(0.74)show +216 376 gm +(0.48)show +216 436 gm +(5255)show +216 499 gm +(7.82)show +204 82 gm +0 gr +204 82 lin +204 80 gm +204 80 lin +204 83 gm +204 131 lin +204 134 gm +204 134 lin +204 132 gm +204 132 lin +204 135 gm +204 182 lin +204 185 gm +204 185 lin +204 183 gm +204 183 lin +204 186 gm +204 253 lin +204 256 gm +204 256 lin +204 254 gm +204 254 lin +204 257 gm +204 290 lin +204 293 gm +204 293 lin +204 291 gm +204 291 lin +204 294 gm +204 327 lin +204 330 gm +204 330 lin +204 328 gm +204 328 lin +204 331 gm +204 364 lin +204 367 gm +204 367 lin +204 365 gm +204 365 lin +204 368 gm +204 400 lin +204 403 gm +204 403 lin +204 401 gm +204 401 lin +204 404 gm +204 487 lin +204 490 gm +204 490 lin +204 488 gm +204 488 lin +204 491 gm +204 524 lin +204 527 gm +204 527 lin +204 525 gm +204 525 lin +205 80 gm +218 80 lin +205 82 gm +218 82 lin +221 80 gm +221 82 lin +219 80 gm +221 80 lin +219 82 gm +219 82 lin +219 82 lin +219 83 gm +219 131 lin +221 83 gm +221 131 lin +205 132 gm +218 132 lin +205 134 gm +218 134 lin +219 132 gm +219 134 lin +221 132 gm +221 134 lin +219 135 gm +219 182 lin +221 135 gm +221 182 lin +205 183 gm +218 183 lin +205 185 gm +218 185 lin +219 183 gm +219 185 lin +221 183 gm +221 185 lin +219 186 gm +219 253 lin +221 186 gm +221 253 lin +205 254 gm +218 254 lin +205 256 gm +218 256 lin +219 254 gm +219 256 lin +221 254 gm +221 256 lin +219 257 gm +219 290 lin +221 257 gm +221 290 lin +205 291 gm +218 291 lin +205 293 gm +218 293 lin +219 291 gm +219 293 lin +221 291 gm +221 293 lin +219 294 gm +219 327 lin +221 294 gm +221 327 lin +205 328 gm +218 328 lin +205 330 gm +218 330 lin +219 328 gm +219 330 lin +221 328 gm +221 330 lin +219 331 gm +219 364 lin +221 331 gm +221 364 lin +205 365 gm +218 365 lin +205 367 gm +218 367 lin +219 365 gm +219 367 lin +221 365 gm +221 367 lin +219 368 gm +219 400 lin +221 368 gm +221 400 lin +205 401 gm +218 401 lin +205 403 gm +218 403 lin +219 401 gm +219 403 lin +221 401 gm +221 403 lin +219 404 gm +219 487 lin +221 404 gm +221 487 lin +205 488 gm +218 488 lin +205 490 gm +218 490 lin +219 488 gm +219 490 lin +221 488 gm +221 490 lin +219 491 gm +219 524 lin +221 491 gm +221 524 lin +205 525 gm +218 525 lin +205 527 gm +218 527 lin +221 525 gm +221 527 lin +219 527 gm +221 527 lin +219 525 gm +219 525 lin +219 525 lin +233 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.11)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Score sharing)show +249 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.28097 0. 32 0.12809 0.(This table shows that we have achieved the goal of reducing search overhead SO \(62% with 9)awidthshow +264 79 gm +0.64041 0. 32 0.06404 0.(processors\); the speedup with 11 processors was improved of 42% \(3.69 )awidthshow +bu fc +2 F /|______Symbol fnt +bn +0.38940 0.(\256)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.52368 0. 32 0.05236 0.( 5.27\). Values for F)awidthshow +264 511 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(pm)show +276 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.95855 0. 32 0.09585 0.(are approximated: they do not take in account overhead due to updating the local score. We can)awidthshow +287 79 gm +(evaluate such an overhead as follows:)show +298 79 gm +0.60348 0. 32 0.06034 0.(\245\312with P processors, let Fpmr be the real production factor and OC due to score sharing; we have)awidthshow +309 79 gm +(that:)show +0 0 pen +359 337 gm +(nc 313 164 359 337 6 rc)kp +0 gr +359 337 lin +psb +currentpoint +pse +313 164 gm +313 164 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 5536 div 1472 3 -1 roll exch div scale currentpoint translate 64 52 translate +-18 523 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +384 /Helvetica f1 +(S) show +238 523 moveto +224 ns +(VR) show +663 523 moveto +384 /Symbol f1 +(=) show +963 523 moveto +384 /Helvetica f1 +(P) show +1269 523 moveto +384 /Symbol f1 +(\327) show +1395 523 moveto +384 /Helvetica f1 +(F) show +1629 523 moveto +224 ns +(pmr) show +2121 523 moveto +384 /Symbol f1 +(\336) show +2581 523 moveto +384 /Helvetica f1 +(F) show +2815 523 moveto +224 ns +(pmr) show +3305 523 moveto +384 ns +(=) show +3652 284 moveto +(S) show +3908 284 moveto +224 ns +(VR) show +3804 816 moveto +384 ns +(P) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 3638 424 moveto 603 0 rlineto stroke +-34 1313 moveto +(F) show +200 1313 moveto +224 ns +(pm) show +618 1313 moveto +384 /Symbol f1 +(=) show +918 1313 moveto +384 /Helvetica f1 +(F) show +1152 1313 moveto +224 ns +(pmr) show +1626 1313 moveto +384 /Symbol f1 +(+) show +1914 1313 moveto +384 /Helvetica f1 +(OC) show +2582 1313 moveto +384 /Symbol f1 +(\336) show +3062 1313 moveto +384 /Helvetica f1 +(OC) show +3728 1313 moveto +(=) show +4027 1313 moveto +(F) show +4261 1313 moveto +224 ns +(pm) show +4634 1313 moveto +384 ns +(-) show +4805 1313 moveto +(F) show +5039 1313 moveto +224 ns +(pmr) show +end +pse +1 1 pen +368 79 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +(\245 in particular, with 11 processors:)show +0 0 pen +418 372 gm +(nc 372 164 418 372 6 rc)kp +0 gr +418 372 lin +psb +currentpoint +pse +372 164 gm +372 164 lin +psb +30 dict begin +currentpoint 3 -1 roll sub neg 3 1 roll sub 6656 div 1472 3 -1 roll exch div scale currentpoint translate 64 36 translate +-34 523 moveto +/fs 0 def +/sf {exch dup /fs exch def dup neg matrix scale makefont setfont} def +/f1 {findfont dup /cf exch def sf} def +/ns {cf sf} def +384 /Helvetica f1 +(F) show +200 523 moveto +224 ns +(pmr) show +601 523 moveto +384 /Helvetica f1 +(\() show +721 523 moveto +384 /Helvetica f1 +(11) show +1101 523 moveto +384 /Helvetica f1 +(\)) show +1323 523 moveto +384 /Symbol f1 +(=) show +1671 284 moveto +384 /Helvetica f1 +(S) show +1927 284 moveto +224 ns +(VR) show +1823 816 moveto +384 ns +(P) show +/thick 0 def +/th { dup setlinewidth /thick exch def } def +16 th 1657 424 moveto 603 0 rlineto stroke +2384 523 moveto +384 /Symbol f1 +(=) show +2733 284 moveto +384 /Helvetica f1 +(7) show +2947 284 moveto +384 /Helvetica f1 +(.) show +3086 284 moveto +384 /Helvetica f1 +(82) show +2930 816 moveto +(11) show +2718 424 moveto 809 0 rlineto stroke +3651 523 moveto +384 /Symbol f1 +(=) show +3969 523 moveto +384 /Helvetica f1 +(0) show +4178 523 moveto +384 /Helvetica f1 +(.) show +4314 523 moveto +384 /Helvetica f1 +(71) show +-14 1313 moveto +384 /Helvetica f1 +(OC) show +563 1313 moveto +384 /Helvetica f1 +(\() show +683 1313 moveto +384 /Helvetica f1 +(11) show +1063 1313 moveto +384 /Helvetica f1 +(\)) show +1285 1313 moveto +384 /Symbol f1 +(=) show +1585 1313 moveto +384 /Helvetica f1 +(F) show +1819 1313 moveto +224 ns +(pm) show +2205 1313 moveto +384 /Symbol f1 +(-) show +2472 1313 moveto +384 /Helvetica f1 +(F) show +2706 1313 moveto +224 ns +(pmr) show +3211 1313 moveto +384 /Symbol f1 +(=) show +3529 1313 moveto +384 /Helvetica f1 +(0) show +3738 1313 moveto +384 /Helvetica f1 +(.) show +3874 1313 moveto +384 /Helvetica f1 +(74) show +4378 1313 moveto +384 /Symbol f1 +(-) show +4663 1313 moveto +384 /Helvetica f1 +(0) show +4872 1313 moveto +384 /Helvetica f1 +(.) show +5008 1313 moveto +384 /Helvetica f1 +(71) show +5478 1313 moveto +384 /Symbol f1 +(=) show +5796 1313 moveto +384 /Helvetica f1 +(0) show +6005 1313 moveto +384 /Helvetica f1 +(.) show +6142 1313 moveto +384 /Helvetica f1 +(03) show +end +pse +1 1 pen +427 79 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0.10513 0. 32 0.01051 0.(Communication overhead is not negligible, however the improvements in search overhead are worth)awidthshow +438 79 gm +(such a price.)show +468 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(4.3 PVSplit)show +481 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.94223 0. 32 0.09422 0.(We have tested PVSplit with iterative deepening \(INIT=2-plies and MAX=5-plies\) and top-level)awidthshow +492 79 gm +0.78674 0. 32 0.07867 0.(sorting; moreover, THRESOLD=3-plies. We have made two sets of experiments, with or without)awidthshow +503 79 gm +(global score.)show +532 96 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(procs)show +532 145 gm +(T\312\(sec\))show +532 200 gm +(N\312\(nodes\))show +532 271 gm +(S)show +532 308 gm +(E)show +532 338 gm +(Fpm)show +532 378 gm +(SO)show +532 416 gm +(SS\312\(nodes/sec\))show +532 502 gm +(Sss)show +518 80 gm +0 gr +518 82 lin +518 80 gm +520 80 lin +520 82 gm +520 82 lin +520 82 lin +518 83 gm +518 131 lin +520 83 gm +520 131 lin +518 132 gm +518 134 lin +520 132 gm +520 134 lin +518 135 gm +518 182 lin +520 135 gm +520 182 lin +518 183 gm +518 185 lin +520 183 gm +520 185 lin +518 186 gm +518 253 lin +520 186 gm +520 253 lin +518 254 gm +518 256 lin +520 254 gm +520 256 lin +518 257 gm +518 290 lin +520 257 gm +520 290 lin +518 291 gm +518 293 lin +520 291 gm +520 293 lin +518 294 gm +518 327 lin +520 294 gm +520 327 lin +518 328 gm +518 330 lin +520 328 gm +520 330 lin +518 331 gm +518 364 lin +520 331 gm +520 364 lin +518 365 gm +518 367 lin +520 365 gm +520 367 lin +518 368 gm +518 400 lin +520 368 gm +520 400 lin +518 401 gm +518 403 lin +520 401 gm +520 403 lin +518 404 gm +518 487 lin +520 404 gm +520 487 lin +518 488 gm +518 490 lin +520 488 gm +520 490 lin +518 491 gm +518 524 lin +520 491 gm +520 524 lin +518 525 gm +518 527 lin +520 527 lin +520 525 gm +520 525 lin +520 525 lin +521 80 gm +534 80 lin +521 82 gm +534 82 lin +521 132 gm +534 132 lin +521 134 gm +534 134 lin +521 183 gm +534 183 lin +521 185 gm +534 185 lin +521 254 gm +534 254 lin +521 256 gm +534 256 lin +521 291 gm +534 291 lin +521 293 gm +534 293 lin +521 328 gm +534 328 lin +521 330 gm +534 330 lin +521 365 gm +534 365 lin +521 367 gm +534 367 lin +521 401 gm +534 401 lin +521 403 gm +534 403 lin +521 488 gm +534 488 lin +521 490 gm +534 490 lin +521 525 gm +534 525 lin +521 527 gm +534 527 lin +549 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +549 149 gm +(6740)show +549 203 gm +(4529971)show +549 269 gm +(---)show +549 306 gm +(---)show +549 343 gm +(---)show +549 380 gm +(---)show +549 439 gm +(672)show +549 503 gm +(---)show +535 82 gm +0 gr +537 82 lin +535 80 gm +537 80 lin +535 83 gm +535 131 lin +537 83 gm +537 131 lin +535 134 gm +535 134 lin +537 132 gm +537 132 lin +535 132 gm +535 132 lin +537 134 gm +537 134 lin +535 135 gm +535 182 lin +537 135 gm +537 182 lin +535 185 gm +535 185 lin +537 183 gm +537 183 lin +535 183 gm +535 183 lin +537 185 gm +537 185 lin +535 186 gm +535 253 lin +537 186 gm +537 253 lin +535 256 gm +535 256 lin +537 254 gm +537 254 lin +535 254 gm +535 254 lin +537 256 gm +537 256 lin +535 257 gm +535 290 lin +537 257 gm +537 290 lin +535 293 gm +535 293 lin +537 291 gm +537 291 lin +535 291 gm +535 291 lin +537 293 gm +537 293 lin +535 294 gm +535 327 lin +537 294 gm +537 327 lin +535 330 gm +535 330 lin +537 328 gm +537 328 lin +535 328 gm +535 328 lin +537 330 gm +537 330 lin +535 331 gm +535 364 lin +537 331 gm +537 364 lin +535 367 gm +535 367 lin +537 365 gm +537 365 lin +535 365 gm +535 365 lin +537 367 gm +537 367 lin +535 368 gm +535 400 lin +537 368 gm +537 400 lin +535 403 gm +535 403 lin +537 401 gm +537 401 lin +535 401 gm +535 401 lin +537 403 gm +537 403 lin +535 404 gm +535 487 lin +537 404 gm +537 487 lin +535 490 gm +535 490 lin +537 488 gm +537 488 lin +535 488 gm +535 488 lin +537 490 gm +537 490 lin +535 491 gm +535 524 lin +537 491 gm +537 524 lin +535 527 gm +537 527 lin +535 525 gm +537 525 lin +538 80 gm +551 80 lin +538 82 gm +551 82 lin +538 132 gm +551 132 lin +538 134 gm +551 134 lin +538 183 gm +551 183 lin +538 185 gm +551 185 lin +538 254 gm +551 254 lin +538 256 gm +551 256 lin +538 291 gm +551 291 lin +538 293 gm +551 293 lin +538 328 gm +551 328 lin +538 330 gm +551 330 lin +538 365 gm +551 365 lin +538 367 gm +551 367 lin +538 401 gm +551 401 lin +538 403 gm +551 403 lin +538 488 gm +551 488 lin +538 490 gm +551 490 lin +538 525 gm +551 525 lin +538 527 gm +551 527 lin +564 105 gm +F 1 setTxMode +(3)show +564 149 gm +(2693)show +564 203 gm +(4949981)show +564 265 gm +(2.50)show +564 302 gm +(0.83)show +564 339 gm +(0.91)show +564 376 gm +(0.09)show +564 436 gm +(1838)show +564 499 gm +(2.73)show +552 82 gm +0 gr +552 82 lin +552 80 gm +552 80 lin +552 83 gm +552 131 lin +552 134 gm +552 134 lin +552 132 gm +552 132 lin +552 135 gm +552 182 lin +552 185 gm +552 185 lin +552 183 gm +552 183 lin +552 186 gm +552 253 lin +552 256 gm +552 256 lin +552 254 gm +552 254 lin +552 257 gm +552 290 lin +552 293 gm +552 293 lin +552 291 gm +552 291 lin +552 294 gm +552 327 lin +552 330 gm +552 330 lin +552 328 gm +552 328 lin +552 331 gm +552 364 lin +552 367 gm +552 367 lin +552 365 gm +552 365 lin +552 368 gm +552 400 lin +552 403 gm +552 403 lin +552 401 gm +552 401 lin +552 404 gm +552 487 lin +552 490 gm +552 490 lin +552 488 gm +552 488 lin +552 491 gm +552 524 lin +552 527 gm +552 527 lin +552 525 gm +552 525 lin +553 80 gm +566 80 lin +553 82 gm +566 82 lin +553 132 gm +566 132 lin +553 134 gm +566 134 lin +553 183 gm +566 183 lin +553 185 gm +566 185 lin +553 254 gm +566 254 lin +553 256 gm +566 256 lin +553 291 gm +566 291 lin +553 293 gm +566 293 lin +553 328 gm +566 328 lin +553 330 gm +566 330 lin +553 365 gm +566 365 lin +553 367 gm +566 367 lin +553 401 gm +566 401 lin +553 403 gm +566 403 lin +553 488 gm +566 488 lin +553 490 gm +566 490 lin +553 525 gm +566 525 lin +553 527 gm +566 527 lin +579 105 gm +F 1 setTxMode +(5)show +579 149 gm +(1931)show +579 203 gm +(5349308)show +579 265 gm +(3.49)show +579 302 gm +(0.70)show +579 339 gm +(0.82)show +579 376 gm +(0.18)show +579 436 gm +(2770)show +579 499 gm +(4.12)show +567 82 gm +0 gr +567 82 lin +567 80 gm +567 80 lin +567 83 gm +567 131 lin +567 134 gm +567 134 lin +567 132 gm +567 132 lin +567 135 gm +567 182 lin +567 185 gm +567 185 lin +567 183 gm +567 183 lin +567 186 gm +567 253 lin +567 256 gm +567 256 lin +567 254 gm +567 254 lin +567 257 gm +567 290 lin +567 293 gm +567 293 lin +567 291 gm +567 291 lin +567 294 gm +567 327 lin +567 330 gm +567 330 lin +567 328 gm +567 328 lin +567 331 gm +567 364 lin +567 367 gm +567 367 lin +567 365 gm +567 365 lin +567 368 gm +567 400 lin +567 403 gm +567 403 lin +567 401 gm +567 401 lin +567 404 gm +567 487 lin +567 490 gm +567 490 lin +567 488 gm +567 488 lin +567 491 gm +567 524 lin +567 527 gm +567 527 lin +567 525 gm +567 525 lin +568 80 gm +581 80 lin +568 82 gm +581 82 lin +568 132 gm +581 132 lin +568 134 gm +581 134 lin +568 183 gm +581 183 lin +568 185 gm +581 185 lin +568 254 gm +581 254 lin +568 256 gm +581 256 lin +568 291 gm +581 291 lin +568 293 gm +581 293 lin +568 328 gm +581 328 lin +568 330 gm +581 330 lin +568 365 gm +581 365 lin +568 367 gm +581 367 lin +568 401 gm +581 401 lin +568 403 gm +581 403 lin +568 488 gm +581 488 lin +568 490 gm +581 490 lin +568 525 gm +581 525 lin +568 527 gm +581 527 lin +594 105 gm +F 1 setTxMode +(7)show +594 149 gm +(1659)show +594 203 gm +(5657469)show +594 265 gm +(4.06)show +594 302 gm +(0.58)show +594 339 gm +(0.75)show +594 376 gm +(0.25)show +594 436 gm +(3410)show +594 499 gm +(5.07)show +582 82 gm +0 gr +582 82 lin +582 80 gm +582 80 lin +582 83 gm +582 131 lin +582 134 gm +582 134 lin +582 132 gm +582 132 lin +582 135 gm +582 182 lin +582 185 gm +582 185 lin +582 183 gm +582 183 lin +582 186 gm +582 253 lin +582 256 gm +582 256 lin +582 254 gm +582 254 lin +582 257 gm +582 290 lin +582 293 gm +582 293 lin +582 291 gm +582 291 lin +582 294 gm +582 327 lin +582 330 gm +582 330 lin +582 328 gm +582 328 lin +582 331 gm +582 364 lin +582 367 gm +582 367 lin +582 365 gm +582 365 lin +582 368 gm +582 400 lin +582 403 gm +582 403 lin +582 401 gm +582 401 lin +582 404 gm +582 487 lin +582 490 gm +582 490 lin +582 488 gm +582 488 lin +582 491 gm +582 524 lin +582 527 gm +582 527 lin +582 525 gm +582 525 lin +583 80 gm +596 80 lin +583 82 gm +596 82 lin +583 132 gm +596 132 lin +583 134 gm +596 134 lin +583 183 gm +596 183 lin +583 185 gm +596 185 lin +583 254 gm +596 254 lin +583 256 gm +596 256 lin +583 291 gm +596 291 lin +583 293 gm +596 293 lin +583 328 gm +596 328 lin +583 330 gm +596 330 lin +583 365 gm +596 365 lin +583 367 gm +596 367 lin +583 401 gm +596 401 lin +583 403 gm +596 403 lin +583 488 gm +596 488 lin +583 490 gm +596 490 lin +583 525 gm +596 525 lin +583 527 gm +596 527 lin +609 105 gm +F 1 setTxMode +(9)show +609 149 gm +(1502)show +609 203 gm +(6130143)show +609 265 gm +(4.49)show +609 302 gm +(0.50)show +609 339 gm +(0.67)show +609 376 gm +(0.35)show +609 436 gm +(4081)show +609 499 gm +(6.07)show +597 82 gm +0 gr +597 82 lin +597 80 gm +597 80 lin +597 83 gm +597 131 lin +597 134 gm +597 134 lin +597 132 gm +597 132 lin +597 135 gm +597 182 lin +597 185 gm +597 185 lin +597 183 gm +597 183 lin +597 186 gm +597 253 lin +597 256 gm +597 256 lin +597 254 gm +597 254 lin +597 257 gm +597 290 lin +597 293 gm +597 293 lin +597 291 gm +597 291 lin +597 294 gm +597 327 lin +597 330 gm +597 330 lin +597 328 gm +597 328 lin +597 331 gm +597 364 lin +597 367 gm +597 367 lin +597 365 gm +597 365 lin +597 368 gm +597 400 lin +597 403 gm +597 403 lin +597 401 gm +597 401 lin +597 404 gm +597 487 lin +597 490 gm +597 490 lin +597 488 gm +597 488 lin +597 491 gm +597 524 lin +597 527 gm +597 527 lin +597 525 gm +597 525 lin +598 80 gm +611 80 lin +598 82 gm +611 82 lin +598 132 gm +611 132 lin +598 134 gm +611 134 lin +598 183 gm +611 183 lin +598 185 gm +611 185 lin +598 254 gm +611 254 lin +598 256 gm +611 256 lin +598 291 gm +611 291 lin +598 293 gm +611 293 lin +598 328 gm +611 328 lin +598 330 gm +611 330 lin +598 365 gm +611 365 lin +598 367 gm +611 367 lin +598 401 gm +611 401 lin +598 403 gm +611 403 lin +598 488 gm +611 488 lin +598 490 gm +611 490 lin +598 525 gm +611 525 lin +598 527 gm +611 527 lin +624 103 gm +F 1 setTxMode +(11)show +624 149 gm +(1446)show +624 203 gm +(6445828)show +624 265 gm +(4.66)show +624 302 gm +(0.42)show +624 339 gm +(0.60)show +624 376 gm +(0.42)show +624 436 gm +(4458)show +624 499 gm +(6.63)show +612 82 gm +0 gr +612 82 lin +612 80 gm +612 80 lin +612 83 gm +612 131 lin +612 134 gm +612 134 lin +612 132 gm +612 132 lin +612 135 gm +612 182 lin +612 185 gm +612 185 lin +612 183 gm +612 183 lin +612 186 gm +612 253 lin +612 256 gm +612 256 lin +612 254 gm +612 254 lin +612 257 gm +612 290 lin +612 293 gm +612 293 lin +612 291 gm +612 291 lin +612 294 gm +612 327 lin +612 330 gm +612 330 lin +612 328 gm +612 328 lin +612 331 gm +612 364 lin +612 367 gm +612 367 lin +612 365 gm +612 365 lin +612 368 gm +612 400 lin +612 403 gm +612 403 lin +612 401 gm +612 401 lin +612 404 gm +612 487 lin +612 490 gm +612 490 lin +612 488 gm +612 488 lin +612 491 gm +612 524 lin +612 527 gm +612 527 lin +612 525 gm +612 525 lin +613 80 gm +626 80 lin +613 82 gm +626 82 lin +629 80 gm +629 82 lin +627 80 gm +629 80 lin +627 82 gm +627 82 lin +627 82 lin +627 83 gm +627 131 lin +629 83 gm +629 131 lin +613 132 gm +626 132 lin +613 134 gm +626 134 lin +627 132 gm +627 134 lin +629 132 gm +629 134 lin +627 135 gm +627 182 lin +629 135 gm +629 182 lin +613 183 gm +626 183 lin +613 185 gm +626 185 lin +627 183 gm +627 185 lin +629 183 gm +629 185 lin +627 186 gm +627 253 lin +629 186 gm +629 253 lin +613 254 gm +626 254 lin +613 256 gm +626 256 lin +627 254 gm +627 256 lin +629 254 gm +629 256 lin +627 257 gm +627 290 lin +629 257 gm +629 290 lin +613 291 gm +626 291 lin +613 293 gm +626 293 lin +627 291 gm +627 293 lin +629 291 gm +629 293 lin +627 294 gm +627 327 lin +629 294 gm +629 327 lin +613 328 gm +626 328 lin +613 330 gm +626 330 lin +627 328 gm +627 330 lin +629 328 gm +629 330 lin +627 331 gm +627 364 lin +629 331 gm +629 364 lin +613 365 gm +626 365 lin +613 367 gm +626 367 lin +627 365 gm +627 367 lin +629 365 gm +629 367 lin +627 368 gm +627 400 lin +629 368 gm +629 400 lin +613 401 gm +626 401 lin +613 403 gm +626 403 lin +627 401 gm +627 403 lin +629 401 gm +629 403 lin +627 404 gm +627 487 lin +629 404 gm +629 487 lin +613 488 gm +626 488 lin +613 490 gm +626 490 lin +627 488 gm +627 490 lin +629 488 gm +629 490 lin +627 491 gm +627 524 lin +629 491 gm +629 524 lin +613 525 gm +626 525 lin +613 527 gm +626 527 lin +629 525 gm +629 527 lin +627 527 gm +629 527 lin +627 525 gm +627 525 lin +627 525 lin +641 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig. 12 )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(PVSplit without score sharing)show +657 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.10940 0. 32 0.01094 0.(PVSplit reduces search overhead with respect to score sharing \(see Fig.11\), however its efficiency is)awidthshow +668 79 gm +0.78536 0. 32 0.07853 0.(lower. Compare the production factors: PVSplit gives very low values \(14% with 11 processors\).)awidthshow +679 79 gm +0.79605 0. 32 0.07960 0.(The reason is the synchronization necessary along the principal variation; we can reduce such an)awidthshow +690 79 gm +(overhead with a more balanced load distribution.)show +701 79 gm +0.02395 0. 32 0.00239 0.(We also have to take into account the fixed cost of each splitting: communication overhead has to be)awidthshow +712 79 gm +(multiplied for each node in the principal variation that is used for parallel splitting.)show +F T cp +%%Page: ? 13 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(11)show +124 96 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +124 145 gm +(T\312\(sec\))show +124 200 gm +(N\312\(nodes\))show +124 271 gm +(S)show +124 308 gm +(E)show +124 338 gm +(Fpm)show +124 378 gm +(SO)show +124 416 gm +(SS\312\(nodes/sec\))show +124 502 gm +(Sss)show +110 80 gm +0 gr +110 82 lin +110 80 gm +112 80 lin +112 82 gm +112 82 lin +112 82 lin +110 83 gm +110 131 lin +112 83 gm +112 131 lin +110 132 gm +110 134 lin +112 132 gm +112 134 lin +110 135 gm +110 182 lin +112 135 gm +112 182 lin +110 183 gm +110 185 lin +112 183 gm +112 185 lin +110 186 gm +110 253 lin +112 186 gm +112 253 lin +110 254 gm +110 256 lin +112 254 gm +112 256 lin +110 257 gm +110 290 lin +112 257 gm +112 290 lin +110 291 gm +110 293 lin +112 291 gm +112 293 lin +110 294 gm +110 327 lin +112 294 gm +112 327 lin +110 328 gm +110 330 lin +112 328 gm +112 330 lin +110 331 gm +110 364 lin +112 331 gm +112 364 lin +110 365 gm +110 367 lin +112 365 gm +112 367 lin +110 368 gm +110 400 lin +112 368 gm +112 400 lin +110 401 gm +110 403 lin +112 401 gm +112 403 lin +110 404 gm +110 487 lin +112 404 gm +112 487 lin +110 488 gm +110 490 lin +112 488 gm +112 490 lin +110 491 gm +110 524 lin +112 491 gm +112 524 lin +110 525 gm +110 527 lin +112 527 lin +112 525 gm +112 525 lin +112 525 lin +113 80 gm +126 80 lin +113 82 gm +126 82 lin +113 132 gm +126 132 lin +113 134 gm +126 134 lin +113 183 gm +126 183 lin +113 185 gm +126 185 lin +113 254 gm +126 254 lin +113 256 gm +126 256 lin +113 291 gm +126 291 lin +113 293 gm +126 293 lin +113 328 gm +126 328 lin +113 330 gm +126 330 lin +113 365 gm +126 365 lin +113 367 gm +126 367 lin +113 401 gm +126 401 lin +113 403 gm +126 403 lin +113 488 gm +126 488 lin +113 490 gm +126 490 lin +113 525 gm +126 525 lin +113 527 gm +126 527 lin +141 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +141 149 gm +(6740)show +141 203 gm +(4529971)show +141 269 gm +(---)show +141 306 gm +(---)show +141 343 gm +(---)show +141 380 gm +(---)show +141 439 gm +(672)show +141 503 gm +(---)show +127 82 gm +0 gr +129 82 lin +127 80 gm +129 80 lin +127 83 gm +127 131 lin +129 83 gm +129 131 lin +127 134 gm +127 134 lin +129 132 gm +129 132 lin +127 132 gm +127 132 lin +129 134 gm +129 134 lin +127 135 gm +127 182 lin +129 135 gm +129 182 lin +127 185 gm +127 185 lin +129 183 gm +129 183 lin +127 183 gm +127 183 lin +129 185 gm +129 185 lin +127 186 gm +127 253 lin +129 186 gm +129 253 lin +127 256 gm +127 256 lin +129 254 gm +129 254 lin +127 254 gm +127 254 lin +129 256 gm +129 256 lin +127 257 gm +127 290 lin +129 257 gm +129 290 lin +127 293 gm +127 293 lin +129 291 gm +129 291 lin +127 291 gm +127 291 lin +129 293 gm +129 293 lin +127 294 gm +127 327 lin +129 294 gm +129 327 lin +127 330 gm +127 330 lin +129 328 gm +129 328 lin +127 328 gm +127 328 lin +129 330 gm +129 330 lin +127 331 gm +127 364 lin +129 331 gm +129 364 lin +127 367 gm +127 367 lin +129 365 gm +129 365 lin +127 365 gm +127 365 lin +129 367 gm +129 367 lin +127 368 gm +127 400 lin +129 368 gm +129 400 lin +127 403 gm +127 403 lin +129 401 gm +129 401 lin +127 401 gm +127 401 lin +129 403 gm +129 403 lin +127 404 gm +127 487 lin +129 404 gm +129 487 lin +127 490 gm +127 490 lin +129 488 gm +129 488 lin +127 488 gm +127 488 lin +129 490 gm +129 490 lin +127 491 gm +127 524 lin +129 491 gm +129 524 lin +127 527 gm +129 527 lin +127 525 gm +129 525 lin +130 80 gm +143 80 lin +130 82 gm +143 82 lin +130 132 gm +143 132 lin +130 134 gm +143 134 lin +130 183 gm +143 183 lin +130 185 gm +143 185 lin +130 254 gm +143 254 lin +130 256 gm +143 256 lin +130 291 gm +143 291 lin +130 293 gm +143 293 lin +130 328 gm +143 328 lin +130 330 gm +143 330 lin +130 365 gm +143 365 lin +130 367 gm +143 367 lin +130 401 gm +143 401 lin +130 403 gm +143 403 lin +130 488 gm +143 488 lin +130 490 gm +143 490 lin +130 525 gm +143 525 lin +130 527 gm +143 527 lin +156 105 gm +F 1 setTxMode +(3)show +156 149 gm +(2640)show +156 203 gm +(4770665)show +156 265 gm +(2.55)show +156 302 gm +(0.85)show +156 339 gm +(0.91)show +156 376 gm +(0.05)show +156 436 gm +(1807)show +156 499 gm +(2.69)show +144 82 gm +0 gr +144 82 lin +144 80 gm +144 80 lin +144 83 gm +144 131 lin +144 134 gm +144 134 lin +144 132 gm +144 132 lin +144 135 gm +144 182 lin +144 185 gm +144 185 lin +144 183 gm +144 183 lin +144 186 gm +144 253 lin +144 256 gm +144 256 lin +144 254 gm +144 254 lin +144 257 gm +144 290 lin +144 293 gm +144 293 lin +144 291 gm +144 291 lin +144 294 gm +144 327 lin +144 330 gm +144 330 lin +144 328 gm +144 328 lin +144 331 gm +144 364 lin +144 367 gm +144 367 lin +144 365 gm +144 365 lin +144 368 gm +144 400 lin +144 403 gm +144 403 lin +144 401 gm +144 401 lin +144 404 gm +144 487 lin +144 490 gm +144 490 lin +144 488 gm +144 488 lin +144 491 gm +144 524 lin +144 527 gm +144 527 lin +144 525 gm +144 525 lin +145 80 gm +158 80 lin +145 82 gm +158 82 lin +145 132 gm +158 132 lin +145 134 gm +158 134 lin +145 183 gm +158 183 lin +145 185 gm +158 185 lin +145 254 gm +158 254 lin +145 256 gm +158 256 lin +145 291 gm +158 291 lin +145 293 gm +158 293 lin +145 328 gm +158 328 lin +145 330 gm +158 330 lin +145 365 gm +158 365 lin +145 367 gm +158 367 lin +145 401 gm +158 401 lin +145 403 gm +158 403 lin +145 488 gm +158 488 lin +145 490 gm +158 490 lin +145 525 gm +158 525 lin +145 527 gm +158 527 lin +171 105 gm +F 1 setTxMode +(5)show +171 149 gm +(1797)show +171 203 gm +(5020905)show +171 265 gm +(3.75)show +171 302 gm +(0.75)show +171 339 gm +(0.84)show +171 376 gm +(0.11)show +171 436 gm +(2794)show +171 499 gm +(4.16)show +159 82 gm +0 gr +159 82 lin +159 80 gm +159 80 lin +159 83 gm +159 131 lin +159 134 gm +159 134 lin +159 132 gm +159 132 lin +159 135 gm +159 182 lin +159 185 gm +159 185 lin +159 183 gm +159 183 lin +159 186 gm +159 253 lin +159 256 gm +159 256 lin +159 254 gm +159 254 lin +159 257 gm +159 290 lin +159 293 gm +159 293 lin +159 291 gm +159 291 lin +159 294 gm +159 327 lin +159 330 gm +159 330 lin +159 328 gm +159 328 lin +159 331 gm +159 364 lin +159 367 gm +159 367 lin +159 365 gm +159 365 lin +159 368 gm +159 400 lin +159 403 gm +159 403 lin +159 401 gm +159 401 lin +159 404 gm +159 487 lin +159 490 gm +159 490 lin +159 488 gm +159 488 lin +159 491 gm +159 524 lin +159 527 gm +159 527 lin +159 525 gm +159 525 lin +160 80 gm +173 80 lin +160 82 gm +173 82 lin +160 132 gm +173 132 lin +160 134 gm +173 134 lin +160 183 gm +173 183 lin +160 185 gm +173 185 lin +160 254 gm +173 254 lin +160 256 gm +173 256 lin +160 291 gm +173 291 lin +160 293 gm +173 293 lin +160 328 gm +173 328 lin +160 330 gm +173 330 lin +160 365 gm +173 365 lin +160 367 gm +173 367 lin +160 401 gm +173 401 lin +160 403 gm +173 403 lin +160 488 gm +173 488 lin +160 490 gm +173 490 lin +160 525 gm +173 525 lin +160 527 gm +173 527 lin +186 105 gm +F 1 setTxMode +(7)show +186 149 gm +(1443)show +186 203 gm +(5228542)show +186 265 gm +(4.67)show +186 302 gm +(0.67)show +186 339 gm +(0.77)show +186 376 gm +(0.15)show +186 436 gm +(3623)show +186 499 gm +(5.39)show +174 82 gm +0 gr +174 82 lin +174 80 gm +174 80 lin +174 83 gm +174 131 lin +174 134 gm +174 134 lin +174 132 gm +174 132 lin +174 135 gm +174 182 lin +174 185 gm +174 185 lin +174 183 gm +174 183 lin +174 186 gm +174 253 lin +174 256 gm +174 256 lin +174 254 gm +174 254 lin +174 257 gm +174 290 lin +174 293 gm +174 293 lin +174 291 gm +174 291 lin +174 294 gm +174 327 lin +174 330 gm +174 330 lin +174 328 gm +174 328 lin +174 331 gm +174 364 lin +174 367 gm +174 367 lin +174 365 gm +174 365 lin +174 368 gm +174 400 lin +174 403 gm +174 403 lin +174 401 gm +174 401 lin +174 404 gm +174 487 lin +174 490 gm +174 490 lin +174 488 gm +174 488 lin +174 491 gm +174 524 lin +174 527 gm +174 527 lin +174 525 gm +174 525 lin +175 80 gm +188 80 lin +175 82 gm +188 82 lin +175 132 gm +188 132 lin +175 134 gm +188 134 lin +175 183 gm +188 183 lin +175 185 gm +188 185 lin +175 254 gm +188 254 lin +175 256 gm +188 256 lin +175 291 gm +188 291 lin +175 293 gm +188 293 lin +175 328 gm +188 328 lin +175 330 gm +188 330 lin +175 365 gm +188 365 lin +175 367 gm +188 367 lin +175 401 gm +188 401 lin +175 403 gm +188 403 lin +175 488 gm +188 488 lin +175 490 gm +188 490 lin +175 525 gm +188 525 lin +175 527 gm +188 527 lin +201 105 gm +F 1 setTxMode +(9)show +201 149 gm +(1255)show +201 203 gm +(5358664)show +201 265 gm +(5.37)show +201 302 gm +(0.60)show +201 339 gm +(0.71)show +201 376 gm +(0.18)show +201 436 gm +(4270)show +201 499 gm +(6.35)show +189 82 gm +0 gr +189 82 lin +189 80 gm +189 80 lin +189 83 gm +189 131 lin +189 134 gm +189 134 lin +189 132 gm +189 132 lin +189 135 gm +189 182 lin +189 185 gm +189 185 lin +189 183 gm +189 183 lin +189 186 gm +189 253 lin +189 256 gm +189 256 lin +189 254 gm +189 254 lin +189 257 gm +189 290 lin +189 293 gm +189 293 lin +189 291 gm +189 291 lin +189 294 gm +189 327 lin +189 330 gm +189 330 lin +189 328 gm +189 328 lin +189 331 gm +189 364 lin +189 367 gm +189 367 lin +189 365 gm +189 365 lin +189 368 gm +189 400 lin +189 403 gm +189 403 lin +189 401 gm +189 401 lin +189 404 gm +189 487 lin +189 490 gm +189 490 lin +189 488 gm +189 488 lin +189 491 gm +189 524 lin +189 527 gm +189 527 lin +189 525 gm +189 525 lin +190 80 gm +203 80 lin +190 82 gm +203 82 lin +190 132 gm +203 132 lin +190 134 gm +203 134 lin +190 183 gm +203 183 lin +190 185 gm +203 185 lin +190 254 gm +203 254 lin +190 256 gm +203 256 lin +190 291 gm +203 291 lin +190 293 gm +203 293 lin +190 328 gm +203 328 lin +190 330 gm +203 330 lin +190 365 gm +203 365 lin +190 367 gm +203 367 lin +190 401 gm +203 401 lin +190 403 gm +203 403 lin +190 488 gm +203 488 lin +190 490 gm +203 490 lin +190 525 gm +203 525 lin +190 527 gm +203 527 lin +216 103 gm +F 1 setTxMode +(11)show +216 149 gm +(1210)show +216 203 gm +(5704328)show +216 265 gm +(5.57)show +216 302 gm +(0.51)show +216 339 gm +(0.64)show +216 376 gm +(0.26)show +216 436 gm +(4714)show +216 499 gm +(7.01)show +204 82 gm +0 gr +204 82 lin +204 80 gm +204 80 lin +204 83 gm +204 131 lin +204 134 gm +204 134 lin +204 132 gm +204 132 lin +204 135 gm +204 182 lin +204 185 gm +204 185 lin +204 183 gm +204 183 lin +204 186 gm +204 253 lin +204 256 gm +204 256 lin +204 254 gm +204 254 lin +204 257 gm +204 290 lin +204 293 gm +204 293 lin +204 291 gm +204 291 lin +204 294 gm +204 327 lin +204 330 gm +204 330 lin +204 328 gm +204 328 lin +204 331 gm +204 364 lin +204 367 gm +204 367 lin +204 365 gm +204 365 lin +204 368 gm +204 400 lin +204 403 gm +204 403 lin +204 401 gm +204 401 lin +204 404 gm +204 487 lin +204 490 gm +204 490 lin +204 488 gm +204 488 lin +204 491 gm +204 524 lin +204 527 gm +204 527 lin +204 525 gm +204 525 lin +205 80 gm +218 80 lin +205 82 gm +218 82 lin +221 80 gm +221 82 lin +219 80 gm +221 80 lin +219 82 gm +219 82 lin +219 82 lin +219 83 gm +219 131 lin +221 83 gm +221 131 lin +205 132 gm +218 132 lin +205 134 gm +218 134 lin +219 132 gm +219 134 lin +221 132 gm +221 134 lin +219 135 gm +219 182 lin +221 135 gm +221 182 lin +205 183 gm +218 183 lin +205 185 gm +218 185 lin +219 183 gm +219 185 lin +221 183 gm +221 185 lin +219 186 gm +219 253 lin +221 186 gm +221 253 lin +205 254 gm +218 254 lin +205 256 gm +218 256 lin +219 254 gm +219 256 lin +221 254 gm +221 256 lin +219 257 gm +219 290 lin +221 257 gm +221 290 lin +205 291 gm +218 291 lin +205 293 gm +218 293 lin +219 291 gm +219 293 lin +221 291 gm +221 293 lin +219 294 gm +219 327 lin +221 294 gm +221 327 lin +205 328 gm +218 328 lin +205 330 gm +218 330 lin +219 328 gm +219 330 lin +221 328 gm +221 330 lin +219 331 gm +219 364 lin +221 331 gm +221 364 lin +205 365 gm +218 365 lin +205 367 gm +218 367 lin +219 365 gm +219 367 lin +221 365 gm +221 367 lin +219 368 gm +219 400 lin +221 368 gm +221 400 lin +205 401 gm +218 401 lin +205 403 gm +218 403 lin +219 401 gm +219 403 lin +221 401 gm +221 403 lin +219 404 gm +219 487 lin +221 404 gm +221 487 lin +205 488 gm +218 488 lin +205 490 gm +218 490 lin +219 488 gm +219 490 lin +221 488 gm +221 490 lin +219 491 gm +219 524 lin +221 491 gm +221 524 lin +205 525 gm +218 525 lin +205 527 gm +218 527 lin +221 525 gm +221 527 lin +219 527 gm +221 527 lin +219 525 gm +219 525 lin +219 525 lin +233 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.13)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(PVSplit with score sharing)show +249 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.65200 0. 32 0.06520 0.(Applying score sharing to PVSplit we reduce search overhead without loss \(Fig.13\): in fact, these)awidthshow +260 79 gm +(heuristics handle different parts of the game tree:)show +272 88 gm +(\245\312PVSplit is used in search of subtrees 2..P \(if we use P processors\))show +285 88 gm +(\245\312score sharing is used for subtrees after the Pth subtree.)show +297 79 gm +0.34881 0. 32 0.03488 0.(This algorithm gives the best speedups among those we have tested. We remark that there is a high)awidthshow +308 79 gm +(synchronization overhead caused by nodes along the principal variation.)show +338 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(5. Dynamic splitting)show +351 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.84838 0. 32 0.08483 0.(The main problem with static splitting is load distribution. The master-worker model is based on)awidthshow +362 79 gm +0.72189 0. 32 0.07218 0.(sequential jobs that are perfomed without attempting to parallelize them and are assigned without)awidthshow +377 79 gm +1.80435 0. 32 0.18043 0.(estimating the computational costs. Since for parallel )awidthshow +377 337 gm +bu fc +2 F /|______Symbol fnt +bn +0.74351 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +1.89697 0. 32 0.18969 0.( we cannot schedule jobs aiming at)awidthshow +389 79 gm +(minimizing idle times, there is no way of dynamically balancing the load.)show +419 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(5.1 Dynamic job allocation)show +432 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.39657 0. 32 0.03965 0.(A first solution to this problem consists of avoiding \322atomic\323 sequential jobs. We defined a variant)awidthshow +443 79 gm +0.75973 0. 32 0.07597 0.(of the core algorithm in which when there are no more jobs in the agenda the workers that finish)awidthshow +454 79 gm +0.38314 0. 32 0.03831 0.(their jobs help the busy ones. This means that a busy worker accepts help and splits its search tree,)awidthshow +465 79 gm +0.56610 0. 32 0.05661 0.(becoming a supervisor. We will apply this idea only to children of the root node. Since we cannot)awidthshow +476 79 gm +0.63034 0. 32 0.06303 0.(forecast how long the evaluation of a subtree will take, nor which nodes will be assigned to other)awidthshow +487 79 gm +(processors, we classify this a dynamic splitting algorithm.)show +498 79 gm +1.57165 0. 32 0.15716 0.(There are several choice to implement cooperation among workers: we have implemented the)awidthshow +509 79 gm +(following one.)show +521 88 gm +1.35116 0. 32 0.13511 0.(\245\312An explorer E)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.20555 0.(f)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.13021 0. 32 0.11302 0.( completes a search job and finds an empty agenda; however, there are other)awidthshow +532 101 gm +(workers still busy. E)show +532 191 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(f)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( notifies to be free to a busy worker E)show +532 359 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(r)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( ;)show +545 88 gm +(\245\312E)show +545 101 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(r)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( decomposes its subtree S, and sends tasks to free explorers;)show +557 79 gm +(Processes that cooperate to the search are dynamically partitioned in three sets:)show +569 88 gm +(\245\312set F of processes that completed their tasks and become free;)show +582 88 gm +(\245\312set R)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(p)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( of processes that distribute their subtrees;)show +595 88 gm +(\245\312set R)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(s)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( of processes that sequentially evaluate their subtrees.)show +F T cp +%%Page: ? 14 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(12)show +781 538 734 505 th +158 243 gm +tu +(nc 110 104 505 499 6 rc)kp +ts +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P1)show +tu +ts +157 270 gm +(P2)show +tu +ts +158 297 gm +(P3)show +tu +ts +158 322 gm +(P4)show +tu +0 gr +146.5 238.5 163.5 256.5 0 rc +146.5 266.5 163.5 284.5 0 rc +146.5 293.5 163.5 310.5 0 rc +146.5 318.5 163.5 335.5 0 rc +ts +238 253 gm +F 1 setTxMode +(P1)show +tu +ts +237 279 gm +(P2)show +tu +ts +238 306 gm +(P4)show +tu +ts +281 279 gm +(P3)show +tu +0 gr +226.5 248.5 243.5 266.5 0 rc +226.5 275.5 243.5 293.5 0 rc +226.5 302.5 243.5 319.5 0 rc +269.5 275.5 286.5 292.5 0 rc +244 284 gm +269 284 lin +ts +346 260 gm +F 1 setTxMode +(P1)show +tu +ts +345 295 gm +(P4)show +tu +ts +391 258 gm +(P2)show +tu +0 gr +334.5 255.5 352.5 272.5 0 rc +334.5 291.5 351.5 309.5 0 rc +379.5 254.5 396.5 272.5 0 rc +ts +390 295 gm +F 1 setTxMode +(P3)show +tu +0 gr +378.5 291.5 396.5 308.5 0 rc +352 263 gm +378 263 lin +ts +147 361 gm +F 1 setTxMode +(Rs={P1,P2,P3,P4})show +157 361 gm +(Rp=)show +167 361 gm +(F=)show +tu +ts +250 372 gm +(Rs={P1,P4})show +260 372 gm +(Rp={P2})show +271 372 gm +(F={P3})show +tu +352 263 gm +0 gr +378 300 lin +ts +356 374 gm +F 1 setTxMode +(Rs={P4})show +367 374 gm +(Rp={P1})show +377 374 gm +(F={P2,P3})show +tu +ts +465 371 gm +(Rs=)show +475 371 gm +(Rp={P4})show +485 371 gm +(F={P1,P2,P3})show +tu +0 gr +136.5 358.5 174.5 431.5 0 rc +239.5 358.5 276.5 431.5 0 rc +347.5 358.5 385.5 431.5 0 rc +453.5 358.5 491.5 431.5 0 rc +ts +498 249 gm +F 1 setTxMode +(P1)show +tu +ts +497 276 gm +(P2)show +tu +ts +498 302 gm +(P3)show +tu +0 gr +486.5 245.5 503.5 262.5 0 rc +486.5 272.5 503.5 289.5 0 rc +486.5 299.5 503.5 316.5 0 rc +459 280 gm +486 280 lin +459 281 gm +486 308 lin +459 280 gm +486 253 lin +ts +453 276 gm +F 1 setTxMode +(P4)show +tu +0 gr +442.5 271.5 459.5 288.5 0 rc +pr +226 396 pl +216 392 pl +216 396 pl +216 398 pl +226 396 pl +4 ep +188 396 gm +216 396 lin +pr +332 396 pl +323 392 pl +323 396 pl +323 398 pl +332 396 pl +4 ep +295 396 gm +323 396 lin +pr +439 396 pl +430 392 pl +430 396 pl +430 398 pl +439 396 pl +4 ep +402 396 gm +430 396 lin +ts +246 108 gm +F 1 setTxMode +(democratic cooperation)show +257 108 gm +(at first level;)show +267 108 gm +(master-worker)show +277 108 gm +(with second level)show +tu +0 gr +427.5 106.5 443.5 216.5 0 rc +239.5 106.5 290.5 206.5 0 rc +164.5 110.5 180.5 214.5 0 rc +pr +159 229 pl +165 222 pl +162 221 pl +158 220 pl +159 229 pl +4 ep +164 212 gm +158 234 lin +pr +259 247 pl +264 238 pl +260 238 pl +258 237 pl +259 247 pl +4 ep +266 207 gm +260 238 lin +pr +332 242 pl +325 236 pl +323 238 pl +322 241 pl +332 242 pl +4 ep +265 207 gm +323 238 lin +pr +458 245 pl +454 236 pl +451 238 pl +449 239 pl +458 245 pl +4 ep +434 216 gm +451 238 lin +ts +175 112 gm +F 1 setTxMode +(democratic cooperation)show +tu +ts +465 386 gm +bu fc +2 F /|______Symbol fnt +bn +(\306)show +tu +ts +167 371 gm +(\306)show +tu +ts +158 377 gm +(\306)show +tu +ts +194 405 gm +bu fc +2 F /|______Helvetica fnt +bn +(P3 terminates a search)show +204 405 gm +(and informs P2;)show +214 405 gm +(P2 distributes a subtree)show +tu +ts +302 408 gm +(P2 terminates;)show +312 408 gm +(P1 distributes)show +323 408 gm +(two subtrees)show +tu +ts +410 405 gm +(P1 terminates;)show +420 405 gm +(P4 distributes)show +431 405 gm +(three subtrees)show +tu +ts +438 114 gm +(pure master-worker)show +tu +99 77 gm +(nc 30 28 811 566 6 rc)kp +0 gr +99 525 lin +544 244 gm +F 1 setTxMode +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig.14)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +( Dynamic splitting)show +562 77 gm +0 gr +562 525 lin +581 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.55099 0. 32 0.05509 0.(In this way we put a limit to the splittings that can happen at run-time, that are expensive: at most)awidthshow +592 79 gm +0.97015 0. 32 0.09701 0.(they are #F. Thus, the algorithm executed by each worker on its own subtree amounts to classic)awidthshow +603 79 gm +0.13885 0. 32 0.01388 0.(alphabeta until another worker declares to be available to help, after that the master-worker model is)awidthshow +614 79 gm +(used. The following table summarizes the results obtained with this algorithm.)show +643 96 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +643 145 gm +(T\312\(sec\))show +643 200 gm +(N\312\(nodes\))show +643 271 gm +(S)show +643 308 gm +(E)show +643 338 gm +(Fpm)show +643 378 gm +(SO)show +643 416 gm +(SS\312\(nodes/sec\))show +643 502 gm +(Sss)show +629 80 gm +0 gr +629 82 lin +629 80 gm +631 80 lin +631 82 gm +631 82 lin +631 82 lin +629 83 gm +629 131 lin +631 83 gm +631 131 lin +629 132 gm +629 134 lin +631 132 gm +631 134 lin +629 135 gm +629 182 lin +631 135 gm +631 182 lin +629 183 gm +629 185 lin +631 183 gm +631 185 lin +629 186 gm +629 253 lin +631 186 gm +631 253 lin +629 254 gm +629 256 lin +631 254 gm +631 256 lin +629 257 gm +629 290 lin +631 257 gm +631 290 lin +629 291 gm +629 293 lin +631 291 gm +631 293 lin +629 294 gm +629 327 lin +631 294 gm +631 327 lin +629 328 gm +629 330 lin +631 328 gm +631 330 lin +629 331 gm +629 364 lin +631 331 gm +631 364 lin +629 365 gm +629 367 lin +631 365 gm +631 367 lin +629 368 gm +629 400 lin +631 368 gm +631 400 lin +629 401 gm +629 403 lin +631 401 gm +631 403 lin +629 404 gm +629 487 lin +631 404 gm +631 487 lin +629 488 gm +629 490 lin +631 488 gm +631 490 lin +629 491 gm +629 524 lin +631 491 gm +631 524 lin +629 525 gm +629 527 lin +631 527 lin +631 525 gm +631 525 lin +631 525 lin +632 80 gm +645 80 lin +632 82 gm +645 82 lin +632 132 gm +645 132 lin +632 134 gm +645 134 lin +632 183 gm +645 183 lin +632 185 gm +645 185 lin +632 254 gm +645 254 lin +632 256 gm +645 256 lin +632 291 gm +645 291 lin +632 293 gm +645 293 lin +632 328 gm +645 328 lin +632 330 gm +645 330 lin +632 365 gm +645 365 lin +632 367 gm +645 367 lin +632 401 gm +645 401 lin +632 403 gm +645 403 lin +632 488 gm +645 488 lin +632 490 gm +645 490 lin +632 525 gm +645 525 lin +632 527 gm +645 527 lin +660 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +660 149 gm +(6740)show +660 203 gm +(4529971)show +660 269 gm +(---)show +660 306 gm +(---)show +660 343 gm +(---)show +660 380 gm +(---)show +660 439 gm +(672)show +660 503 gm +(---)show +646 82 gm +0 gr +648 82 lin +646 80 gm +648 80 lin +646 83 gm +646 131 lin +648 83 gm +648 131 lin +646 134 gm +646 134 lin +648 132 gm +648 132 lin +646 132 gm +646 132 lin +648 134 gm +648 134 lin +646 135 gm +646 182 lin +648 135 gm +648 182 lin +646 185 gm +646 185 lin +648 183 gm +648 183 lin +646 183 gm +646 183 lin +648 185 gm +648 185 lin +646 186 gm +646 253 lin +648 186 gm +648 253 lin +646 256 gm +646 256 lin +648 254 gm +648 254 lin +646 254 gm +646 254 lin +648 256 gm +648 256 lin +646 257 gm +646 290 lin +648 257 gm +648 290 lin +646 293 gm +646 293 lin +648 291 gm +648 291 lin +646 291 gm +646 291 lin +648 293 gm +648 293 lin +646 294 gm +646 327 lin +648 294 gm +648 327 lin +646 330 gm +646 330 lin +648 328 gm +648 328 lin +646 328 gm +646 328 lin +648 330 gm +648 330 lin +646 331 gm +646 364 lin +648 331 gm +648 364 lin +646 367 gm +646 367 lin +648 365 gm +648 365 lin +646 365 gm +646 365 lin +648 367 gm +648 367 lin +646 368 gm +646 400 lin +648 368 gm +648 400 lin +646 403 gm +646 403 lin +648 401 gm +648 401 lin +646 401 gm +646 401 lin +648 403 gm +648 403 lin +646 404 gm +646 487 lin +648 404 gm +648 487 lin +646 490 gm +646 490 lin +648 488 gm +648 488 lin +646 488 gm +646 488 lin +648 490 gm +648 490 lin +646 491 gm +646 524 lin +648 491 gm +648 524 lin +646 527 gm +648 527 lin +646 525 gm +648 525 lin +649 80 gm +662 80 lin +649 82 gm +662 82 lin +649 132 gm +662 132 lin +649 134 gm +662 134 lin +649 183 gm +662 183 lin +649 185 gm +662 185 lin +649 254 gm +662 254 lin +649 256 gm +662 256 lin +649 291 gm +662 291 lin +649 293 gm +662 293 lin +649 328 gm +662 328 lin +649 330 gm +662 330 lin +649 365 gm +662 365 lin +649 367 gm +662 367 lin +649 401 gm +662 401 lin +649 403 gm +662 403 lin +649 488 gm +662 488 lin +649 490 gm +662 490 lin +649 525 gm +662 525 lin +649 527 gm +662 527 lin +675 105 gm +F 1 setTxMode +(3)show +675 149 gm +(3019)show +675 203 gm +(5251659)show +675 265 gm +(2.23)show +675 302 gm +(0.74)show +675 339 gm +(0.93)show +675 376 gm +(0.16)show +675 436 gm +(1740)show +675 499 gm +(2.59)show +663 82 gm +0 gr +663 82 lin +663 80 gm +663 80 lin +663 83 gm +663 131 lin +663 134 gm +663 134 lin +663 132 gm +663 132 lin +663 135 gm +663 182 lin +663 185 gm +663 185 lin +663 183 gm +663 183 lin +663 186 gm +663 253 lin +663 256 gm +663 256 lin +663 254 gm +663 254 lin +663 257 gm +663 290 lin +663 293 gm +663 293 lin +663 291 gm +663 291 lin +663 294 gm +663 327 lin +663 330 gm +663 330 lin +663 328 gm +663 328 lin +663 331 gm +663 364 lin +663 367 gm +663 367 lin +663 365 gm +663 365 lin +663 368 gm +663 400 lin +663 403 gm +663 403 lin +663 401 gm +663 401 lin +663 404 gm +663 487 lin +663 490 gm +663 490 lin +663 488 gm +663 488 lin +663 491 gm +663 524 lin +663 527 gm +663 527 lin +663 525 gm +663 525 lin +664 80 gm +677 80 lin +664 82 gm +677 82 lin +664 132 gm +677 132 lin +664 134 gm +677 134 lin +664 183 gm +677 183 lin +664 185 gm +677 185 lin +664 254 gm +677 254 lin +664 256 gm +677 256 lin +664 291 gm +677 291 lin +664 293 gm +677 293 lin +664 328 gm +677 328 lin +664 330 gm +677 330 lin +664 365 gm +677 365 lin +664 367 gm +677 367 lin +664 401 gm +677 401 lin +664 403 gm +677 403 lin +664 488 gm +677 488 lin +664 490 gm +677 490 lin +664 525 gm +677 525 lin +664 527 gm +677 527 lin +690 105 gm +F 1 setTxMode +(5)show +690 149 gm +(2216)show +690 203 gm +(6322002)show +690 265 gm +(3.04)show +690 302 gm +(0.61)show +690 339 gm +(0.92)show +690 376 gm +(0.40)show +690 436 gm +(2853)show +690 499 gm +(4.24)show +678 82 gm +0 gr +678 82 lin +678 80 gm +678 80 lin +678 83 gm +678 131 lin +678 134 gm +678 134 lin +678 132 gm +678 132 lin +678 135 gm +678 182 lin +678 185 gm +678 185 lin +678 183 gm +678 183 lin +678 186 gm +678 253 lin +678 256 gm +678 256 lin +678 254 gm +678 254 lin +678 257 gm +678 290 lin +678 293 gm +678 293 lin +678 291 gm +678 291 lin +678 294 gm +678 327 lin +678 330 gm +678 330 lin +678 328 gm +678 328 lin +678 331 gm +678 364 lin +678 367 gm +678 367 lin +678 365 gm +678 365 lin +678 368 gm +678 400 lin +678 403 gm +678 403 lin +678 401 gm +678 401 lin +678 404 gm +678 487 lin +678 490 gm +678 490 lin +678 488 gm +678 488 lin +678 491 gm +678 524 lin +678 527 gm +678 527 lin +678 525 gm +678 525 lin +679 80 gm +692 80 lin +679 82 gm +692 82 lin +679 132 gm +692 132 lin +679 134 gm +692 134 lin +679 183 gm +692 183 lin +679 185 gm +692 185 lin +679 254 gm +692 254 lin +679 256 gm +692 256 lin +679 291 gm +692 291 lin +679 293 gm +692 293 lin +679 328 gm +692 328 lin +679 330 gm +692 330 lin +679 365 gm +692 365 lin +679 367 gm +692 367 lin +679 401 gm +692 401 lin +679 403 gm +692 403 lin +679 488 gm +692 488 lin +679 490 gm +692 490 lin +679 525 gm +692 525 lin +679 527 gm +692 527 lin +705 105 gm +F 1 setTxMode +(7)show +705 149 gm +(1921)show +705 203 gm +(7291629)show +705 265 gm +(3.51)show +705 302 gm +(0.50)show +705 339 gm +(0.91)show +705 376 gm +(0.61)show +705 436 gm +(3796)show +705 499 gm +(5.65)show +693 82 gm +0 gr +693 82 lin +693 80 gm +693 80 lin +693 83 gm +693 131 lin +693 134 gm +693 134 lin +693 132 gm +693 132 lin +693 135 gm +693 182 lin +693 185 gm +693 185 lin +693 183 gm +693 183 lin +693 186 gm +693 253 lin +693 256 gm +693 256 lin +693 254 gm +693 254 lin +693 257 gm +693 290 lin +693 293 gm +693 293 lin +693 291 gm +693 291 lin +693 294 gm +693 327 lin +693 330 gm +693 330 lin +693 328 gm +693 328 lin +693 331 gm +693 364 lin +693 367 gm +693 367 lin +693 365 gm +693 365 lin +693 368 gm +693 400 lin +693 403 gm +693 403 lin +693 401 gm +693 401 lin +693 404 gm +693 487 lin +693 490 gm +693 490 lin +693 488 gm +693 488 lin +693 491 gm +693 524 lin +693 527 gm +693 527 lin +693 525 gm +693 525 lin +694 80 gm +707 80 lin +694 82 gm +707 82 lin +694 132 gm +707 132 lin +694 134 gm +707 134 lin +694 183 gm +707 183 lin +694 185 gm +707 185 lin +694 254 gm +707 254 lin +694 256 gm +707 256 lin +694 291 gm +707 291 lin +694 293 gm +707 293 lin +694 328 gm +707 328 lin +694 330 gm +707 330 lin +694 365 gm +707 365 lin +694 367 gm +707 367 lin +694 401 gm +707 401 lin +694 403 gm +707 403 lin +694 488 gm +707 488 lin +694 490 gm +707 490 lin +694 525 gm +707 525 lin +694 527 gm +707 527 lin +720 105 gm +F 1 setTxMode +(9)show +720 149 gm +(1721)show +720 203 gm +(8300115)show +720 265 gm +(3.92)show +720 302 gm +(0.44)show +720 339 gm +(0.91)show +720 376 gm +(0.83)show +720 436 gm +(4823)show +720 499 gm +(7.18)show +708 82 gm +0 gr +708 82 lin +708 80 gm +708 80 lin +708 83 gm +708 131 lin +708 134 gm +708 134 lin +708 132 gm +708 132 lin +708 135 gm +708 182 lin +708 185 gm +708 185 lin +708 183 gm +708 183 lin +708 186 gm +708 253 lin +708 256 gm +708 256 lin +708 254 gm +708 254 lin +708 257 gm +708 290 lin +708 293 gm +708 293 lin +708 291 gm +708 291 lin +708 294 gm +708 327 lin +708 330 gm +708 330 lin +708 328 gm +708 328 lin +708 331 gm +708 364 lin +708 367 gm +708 367 lin +708 365 gm +708 365 lin +708 368 gm +708 400 lin +708 403 gm +708 403 lin +708 401 gm +708 401 lin +708 404 gm +708 487 lin +708 490 gm +708 490 lin +708 488 gm +708 488 lin +708 491 gm +708 524 lin +708 527 gm +708 527 lin +708 525 gm +708 525 lin +709 80 gm +722 80 lin +709 82 gm +722 82 lin +709 132 gm +722 132 lin +709 134 gm +722 134 lin +709 183 gm +722 183 lin +709 185 gm +722 185 lin +709 254 gm +722 254 lin +709 256 gm +722 256 lin +709 291 gm +722 291 lin +709 293 gm +722 293 lin +709 328 gm +722 328 lin +709 330 gm +722 330 lin +709 365 gm +722 365 lin +709 367 gm +722 367 lin +709 401 gm +722 401 lin +709 403 gm +722 403 lin +709 488 gm +722 488 lin +709 490 gm +722 490 lin +709 525 gm +722 525 lin +709 527 gm +722 527 lin +735 103 gm +F 1 setTxMode +(11)show +735 149 gm +(1600)show +735 203 gm +(9439299)show +735 265 gm +(4.21)show +735 302 gm +(0.38)show +735 339 gm +(0.90)show +735 376 gm +(1.08)show +735 436 gm +(5900)show +735 499 gm +(8.78)show +723 82 gm +0 gr +723 82 lin +723 80 gm +723 80 lin +723 83 gm +723 131 lin +723 134 gm +723 134 lin +723 132 gm +723 132 lin +723 135 gm +723 182 lin +723 185 gm +723 185 lin +723 183 gm +723 183 lin +723 186 gm +723 253 lin +723 256 gm +723 256 lin +723 254 gm +723 254 lin +723 257 gm +723 290 lin +723 293 gm +723 293 lin +723 291 gm +723 291 lin +723 294 gm +723 327 lin +723 330 gm +723 330 lin +723 328 gm +723 328 lin +723 331 gm +723 364 lin +723 367 gm +723 367 lin +723 365 gm +723 365 lin +723 368 gm +723 400 lin +723 403 gm +723 403 lin +723 401 gm +723 401 lin +723 404 gm +723 487 lin +723 490 gm +723 490 lin +723 488 gm +723 488 lin +723 491 gm +723 524 lin +723 527 gm +723 527 lin +723 525 gm +723 525 lin +724 80 gm +737 80 lin +724 82 gm +737 82 lin +740 80 gm +740 82 lin +738 80 gm +740 80 lin +738 82 gm +738 82 lin +738 82 lin +738 83 gm +738 131 lin +740 83 gm +740 131 lin +724 132 gm +737 132 lin +724 134 gm +737 134 lin +738 132 gm +738 134 lin +740 132 gm +740 134 lin +738 135 gm +738 182 lin +740 135 gm +740 182 lin +724 183 gm +737 183 lin +724 185 gm +737 185 lin +738 183 gm +738 185 lin +740 183 gm +740 185 lin +738 186 gm +738 253 lin +740 186 gm +740 253 lin +724 254 gm +737 254 lin +724 256 gm +737 256 lin +738 254 gm +738 256 lin +740 254 gm +740 256 lin +738 257 gm +738 290 lin +740 257 gm +740 290 lin +724 291 gm +737 291 lin +724 293 gm +737 293 lin +738 291 gm +738 293 lin +740 291 gm +740 293 lin +738 294 gm +738 327 lin +740 294 gm +740 327 lin +724 328 gm +737 328 lin +724 330 gm +737 330 lin +738 328 gm +738 330 lin +740 328 gm +740 330 lin +738 331 gm +738 364 lin +740 331 gm +740 364 lin +724 365 gm +737 365 lin +724 367 gm +737 367 lin +738 365 gm +738 367 lin +740 365 gm +740 367 lin +738 368 gm +738 400 lin +740 368 gm +740 400 lin +724 401 gm +737 401 lin +724 403 gm +737 403 lin +738 401 gm +738 403 lin +740 401 gm +740 403 lin +738 404 gm +738 487 lin +740 404 gm +740 487 lin +724 488 gm +737 488 lin +724 490 gm +737 490 lin +738 488 gm +738 490 lin +740 488 gm +740 490 lin +738 491 gm +738 524 lin +740 491 gm +740 524 lin +724 525 gm +737 525 lin +724 527 gm +737 527 lin +740 525 gm +740 527 lin +738 527 gm +740 527 lin +738 525 gm +738 525 lin +738 525 lin +752 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.15)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Dynamic splitting of top level)show +F T cp +%%Page: ? 15 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(13)show +122 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.24938 0. 32 0.12493 0.(Compare this table with Fig.9. The average production factor is improved \(0.71)awidthshow +122 452 gm +bu fc +2 F /|______Symbol fnt +bn +0.69747 0.(\256)ashow +bu fc +2 F /|______Times-Roman fnt +bn +1.14624 0. 32 0.11462 0.(0.90 with 11)awidthshow +134 79 gm +1.77536 0. 32 0.17753 0.(processors\): this means that load balancing was better. More interestingly, such parameter is)awidthshow +145 79 gm +0.11734 0. 32 0.01173 0.(constant: the difference between 3 and 11 processors amounts only to 3%, so that there is little room)awidthshow +156 79 gm +0.57464 0. 32 0.05746 0.(to improve such values applying dynamic splitting also at lower levels of the game tree. Although)awidthshow +167 79 gm +0.54336 0. 32 0.05433 0.(search overhead is very high \(108% with 11 processors\), this waste does not overcome the gain in)awidthshow +178 79 gm +(synchronisation overhead.)show +189 79 gm +0.50170 0. 32 0.05017 0.(We have also tested a dynamic version of PVSplit, enriched with iterative deepening and top level)awidthshow +200 79 gm +(sorting; no global score is implemented \(Fig.16\).)show +229 96 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +229 145 gm +(T\312\(sec\))show +229 200 gm +(N\312\(nodes\))show +229 271 gm +(S)show +229 308 gm +(E)show +229 338 gm +(Fpm)show +229 378 gm +(SO)show +229 416 gm +(SS\312\(nodes/sec\))show +229 504 gm +(Ss)show +215 80 gm +0 gr +215 82 lin +215 80 gm +217 80 lin +217 82 gm +217 82 lin +217 82 lin +215 83 gm +215 131 lin +217 83 gm +217 131 lin +215 132 gm +215 134 lin +217 132 gm +217 134 lin +215 135 gm +215 182 lin +217 135 gm +217 182 lin +215 183 gm +215 185 lin +217 183 gm +217 185 lin +215 186 gm +215 253 lin +217 186 gm +217 253 lin +215 254 gm +215 256 lin +217 254 gm +217 256 lin +215 257 gm +215 290 lin +217 257 gm +217 290 lin +215 291 gm +215 293 lin +217 291 gm +217 293 lin +215 294 gm +215 327 lin +217 294 gm +217 327 lin +215 328 gm +215 330 lin +217 328 gm +217 330 lin +215 331 gm +215 364 lin +217 331 gm +217 364 lin +215 365 gm +215 367 lin +217 365 gm +217 367 lin +215 368 gm +215 400 lin +217 368 gm +217 400 lin +215 401 gm +215 403 lin +217 401 gm +217 403 lin +215 404 gm +215 487 lin +217 404 gm +217 487 lin +215 488 gm +215 490 lin +217 488 gm +217 490 lin +215 491 gm +215 524 lin +217 491 gm +217 524 lin +215 525 gm +215 527 lin +217 527 lin +217 525 gm +217 525 lin +217 525 lin +218 80 gm +231 80 lin +218 82 gm +231 82 lin +218 132 gm +231 132 lin +218 134 gm +231 134 lin +218 183 gm +231 183 lin +218 185 gm +231 185 lin +218 254 gm +231 254 lin +218 256 gm +231 256 lin +218 291 gm +231 291 lin +218 293 gm +231 293 lin +218 328 gm +231 328 lin +218 330 gm +231 330 lin +218 365 gm +231 365 lin +218 367 gm +231 367 lin +218 401 gm +231 401 lin +218 403 gm +231 403 lin +218 488 gm +231 488 lin +218 490 gm +231 490 lin +218 525 gm +231 525 lin +218 527 gm +231 527 lin +246 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +246 149 gm +(6740)show +246 203 gm +(4529971)show +246 269 gm +(---)show +246 306 gm +(---)show +246 343 gm +(---)show +246 380 gm +(---)show +246 439 gm +(672)show +246 503 gm +(---)show +232 82 gm +0 gr +234 82 lin +232 80 gm +234 80 lin +232 83 gm +232 131 lin +234 83 gm +234 131 lin +232 134 gm +232 134 lin +234 132 gm +234 132 lin +232 132 gm +232 132 lin +234 134 gm +234 134 lin +232 135 gm +232 182 lin +234 135 gm +234 182 lin +232 185 gm +232 185 lin +234 183 gm +234 183 lin +232 183 gm +232 183 lin +234 185 gm +234 185 lin +232 186 gm +232 253 lin +234 186 gm +234 253 lin +232 256 gm +232 256 lin +234 254 gm +234 254 lin +232 254 gm +232 254 lin +234 256 gm +234 256 lin +232 257 gm +232 290 lin +234 257 gm +234 290 lin +232 293 gm +232 293 lin +234 291 gm +234 291 lin +232 291 gm +232 291 lin +234 293 gm +234 293 lin +232 294 gm +232 327 lin +234 294 gm +234 327 lin +232 330 gm +232 330 lin +234 328 gm +234 328 lin +232 328 gm +232 328 lin +234 330 gm +234 330 lin +232 331 gm +232 364 lin +234 331 gm +234 364 lin +232 367 gm +232 367 lin +234 365 gm +234 365 lin +232 365 gm +232 365 lin +234 367 gm +234 367 lin +232 368 gm +232 400 lin +234 368 gm +234 400 lin +232 403 gm +232 403 lin +234 401 gm +234 401 lin +232 401 gm +232 401 lin +234 403 gm +234 403 lin +232 404 gm +232 487 lin +234 404 gm +234 487 lin +232 490 gm +232 490 lin +234 488 gm +234 488 lin +232 488 gm +232 488 lin +234 490 gm +234 490 lin +232 491 gm +232 524 lin +234 491 gm +234 524 lin +232 527 gm +234 527 lin +232 525 gm +234 525 lin +235 80 gm +248 80 lin +235 82 gm +248 82 lin +235 132 gm +248 132 lin +235 134 gm +248 134 lin +235 183 gm +248 183 lin +235 185 gm +248 185 lin +235 254 gm +248 254 lin +235 256 gm +248 256 lin +235 291 gm +248 291 lin +235 293 gm +248 293 lin +235 328 gm +248 328 lin +235 330 gm +248 330 lin +235 365 gm +248 365 lin +235 367 gm +248 367 lin +235 401 gm +248 401 lin +235 403 gm +248 403 lin +235 488 gm +248 488 lin +235 490 gm +248 490 lin +235 525 gm +248 525 lin +235 527 gm +248 527 lin +261 105 gm +F 1 setTxMode +(3)show +261 149 gm +(2532)show +261 203 gm +(4899016)show +261 265 gm +(2.66)show +261 302 gm +(0.89)show +261 339 gm +(0.90)show +261 376 gm +(0.08)show +261 436 gm +(1935)show +261 499 gm +(2.88)show +249 82 gm +0 gr +249 82 lin +249 80 gm +249 80 lin +249 83 gm +249 131 lin +249 134 gm +249 134 lin +249 132 gm +249 132 lin +249 135 gm +249 182 lin +249 185 gm +249 185 lin +249 183 gm +249 183 lin +249 186 gm +249 253 lin +249 256 gm +249 256 lin +249 254 gm +249 254 lin +249 257 gm +249 290 lin +249 293 gm +249 293 lin +249 291 gm +249 291 lin +249 294 gm +249 327 lin +249 330 gm +249 330 lin +249 328 gm +249 328 lin +249 331 gm +249 364 lin +249 367 gm +249 367 lin +249 365 gm +249 365 lin +249 368 gm +249 400 lin +249 403 gm +249 403 lin +249 401 gm +249 401 lin +249 404 gm +249 487 lin +249 490 gm +249 490 lin +249 488 gm +249 488 lin +249 491 gm +249 524 lin +249 527 gm +249 527 lin +249 525 gm +249 525 lin +250 80 gm +263 80 lin +250 82 gm +263 82 lin +250 132 gm +263 132 lin +250 134 gm +263 134 lin +250 183 gm +263 183 lin +250 185 gm +263 185 lin +250 254 gm +263 254 lin +250 256 gm +263 256 lin +250 291 gm +263 291 lin +250 293 gm +263 293 lin +250 328 gm +263 328 lin +250 330 gm +263 330 lin +250 365 gm +263 365 lin +250 367 gm +263 367 lin +250 401 gm +263 401 lin +250 403 gm +263 403 lin +250 488 gm +263 488 lin +250 490 gm +263 490 lin +250 525 gm +263 525 lin +250 527 gm +263 527 lin +276 105 gm +F 1 setTxMode +(5)show +276 149 gm +(1805)show +276 203 gm +(5453978)show +276 265 gm +(3.73)show +276 302 gm +(0.75)show +276 339 gm +(0.88)show +276 376 gm +(0.20)show +276 436 gm +(3022)show +276 499 gm +(4.50)show +264 82 gm +0 gr +264 82 lin +264 80 gm +264 80 lin +264 83 gm +264 131 lin +264 134 gm +264 134 lin +264 132 gm +264 132 lin +264 135 gm +264 182 lin +264 185 gm +264 185 lin +264 183 gm +264 183 lin +264 186 gm +264 253 lin +264 256 gm +264 256 lin +264 254 gm +264 254 lin +264 257 gm +264 290 lin +264 293 gm +264 293 lin +264 291 gm +264 291 lin +264 294 gm +264 327 lin +264 330 gm +264 330 lin +264 328 gm +264 328 lin +264 331 gm +264 364 lin +264 367 gm +264 367 lin +264 365 gm +264 365 lin +264 368 gm +264 400 lin +264 403 gm +264 403 lin +264 401 gm +264 401 lin +264 404 gm +264 487 lin +264 490 gm +264 490 lin +264 488 gm +264 488 lin +264 491 gm +264 524 lin +264 527 gm +264 527 lin +264 525 gm +264 525 lin +265 80 gm +278 80 lin +265 82 gm +278 82 lin +265 132 gm +278 132 lin +265 134 gm +278 134 lin +265 183 gm +278 183 lin +265 185 gm +278 185 lin +265 254 gm +278 254 lin +265 256 gm +278 256 lin +265 291 gm +278 291 lin +265 293 gm +278 293 lin +265 328 gm +278 328 lin +265 330 gm +278 330 lin +265 365 gm +278 365 lin +265 367 gm +278 367 lin +265 401 gm +278 401 lin +265 403 gm +278 403 lin +265 488 gm +278 488 lin +265 490 gm +278 490 lin +265 525 gm +278 525 lin +265 527 gm +278 527 lin +291 105 gm +F 1 setTxMode +(7)show +291 149 gm +(1486)show +291 203 gm +(5886412)show +291 265 gm +(4.54)show +291 302 gm +(0.65)show +291 339 gm +(0.87)show +291 376 gm +(0.30)show +291 436 gm +(3961)show +291 499 gm +(5.89)show +279 82 gm +0 gr +279 82 lin +279 80 gm +279 80 lin +279 83 gm +279 131 lin +279 134 gm +279 134 lin +279 132 gm +279 132 lin +279 135 gm +279 182 lin +279 185 gm +279 185 lin +279 183 gm +279 183 lin +279 186 gm +279 253 lin +279 256 gm +279 256 lin +279 254 gm +279 254 lin +279 257 gm +279 290 lin +279 293 gm +279 293 lin +279 291 gm +279 291 lin +279 294 gm +279 327 lin +279 330 gm +279 330 lin +279 328 gm +279 328 lin +279 331 gm +279 364 lin +279 367 gm +279 367 lin +279 365 gm +279 365 lin +279 368 gm +279 400 lin +279 403 gm +279 403 lin +279 401 gm +279 401 lin +279 404 gm +279 487 lin +279 490 gm +279 490 lin +279 488 gm +279 488 lin +279 491 gm +279 524 lin +279 527 gm +279 527 lin +279 525 gm +279 525 lin +280 80 gm +293 80 lin +280 82 gm +293 82 lin +280 132 gm +293 132 lin +280 134 gm +293 134 lin +280 183 gm +293 183 lin +280 185 gm +293 185 lin +280 254 gm +293 254 lin +280 256 gm +293 256 lin +280 291 gm +293 291 lin +280 293 gm +293 293 lin +280 328 gm +293 328 lin +280 330 gm +293 330 lin +280 365 gm +293 365 lin +280 367 gm +293 367 lin +280 401 gm +293 401 lin +280 403 gm +293 403 lin +280 488 gm +293 488 lin +280 490 gm +293 490 lin +280 525 gm +293 525 lin +280 527 gm +293 527 lin +306 105 gm +F 1 setTxMode +(9)show +306 149 gm +(1315)show +306 203 gm +(6386703)show +306 265 gm +(5.13)show +306 302 gm +(0.57)show +306 339 gm +(0.84)show +306 376 gm +(0.41)show +306 436 gm +(4857)show +306 499 gm +(7.23)show +294 82 gm +0 gr +294 82 lin +294 80 gm +294 80 lin +294 83 gm +294 131 lin +294 134 gm +294 134 lin +294 132 gm +294 132 lin +294 135 gm +294 182 lin +294 185 gm +294 185 lin +294 183 gm +294 183 lin +294 186 gm +294 253 lin +294 256 gm +294 256 lin +294 254 gm +294 254 lin +294 257 gm +294 290 lin +294 293 gm +294 293 lin +294 291 gm +294 291 lin +294 294 gm +294 327 lin +294 330 gm +294 330 lin +294 328 gm +294 328 lin +294 331 gm +294 364 lin +294 367 gm +294 367 lin +294 365 gm +294 365 lin +294 368 gm +294 400 lin +294 403 gm +294 403 lin +294 401 gm +294 401 lin +294 404 gm +294 487 lin +294 490 gm +294 490 lin +294 488 gm +294 488 lin +294 491 gm +294 524 lin +294 527 gm +294 527 lin +294 525 gm +294 525 lin +295 80 gm +308 80 lin +295 82 gm +308 82 lin +295 132 gm +308 132 lin +295 134 gm +308 134 lin +295 183 gm +308 183 lin +295 185 gm +308 185 lin +295 254 gm +308 254 lin +295 256 gm +308 256 lin +295 291 gm +308 291 lin +295 293 gm +308 293 lin +295 328 gm +308 328 lin +295 330 gm +308 330 lin +295 365 gm +308 365 lin +295 367 gm +308 367 lin +295 401 gm +308 401 lin +295 403 gm +308 403 lin +295 488 gm +308 488 lin +295 490 gm +308 490 lin +295 525 gm +308 525 lin +295 527 gm +308 527 lin +321 103 gm +F 1 setTxMode +(11)show +321 149 gm +(1208)show +321 203 gm +(6789922)show +321 265 gm +(5.58)show +321 302 gm +(0.51)show +321 339 gm +(0.80)show +321 376 gm +(0.50)show +321 436 gm +(5621)show +321 499 gm +(8.36)show +309 82 gm +0 gr +309 82 lin +309 80 gm +309 80 lin +309 83 gm +309 131 lin +309 134 gm +309 134 lin +309 132 gm +309 132 lin +309 135 gm +309 182 lin +309 185 gm +309 185 lin +309 183 gm +309 183 lin +309 186 gm +309 253 lin +309 256 gm +309 256 lin +309 254 gm +309 254 lin +309 257 gm +309 290 lin +309 293 gm +309 293 lin +309 291 gm +309 291 lin +309 294 gm +309 327 lin +309 330 gm +309 330 lin +309 328 gm +309 328 lin +309 331 gm +309 364 lin +309 367 gm +309 367 lin +309 365 gm +309 365 lin +309 368 gm +309 400 lin +309 403 gm +309 403 lin +309 401 gm +309 401 lin +309 404 gm +309 487 lin +309 490 gm +309 490 lin +309 488 gm +309 488 lin +309 491 gm +309 524 lin +309 527 gm +309 527 lin +309 525 gm +309 525 lin +310 80 gm +323 80 lin +310 82 gm +323 82 lin +326 80 gm +326 82 lin +324 80 gm +326 80 lin +324 82 gm +324 82 lin +324 82 lin +324 83 gm +324 131 lin +326 83 gm +326 131 lin +310 132 gm +323 132 lin +310 134 gm +323 134 lin +324 132 gm +324 134 lin +326 132 gm +326 134 lin +324 135 gm +324 182 lin +326 135 gm +326 182 lin +310 183 gm +323 183 lin +310 185 gm +323 185 lin +324 183 gm +324 185 lin +326 183 gm +326 185 lin +324 186 gm +324 253 lin +326 186 gm +326 253 lin +310 254 gm +323 254 lin +310 256 gm +323 256 lin +324 254 gm +324 256 lin +326 254 gm +326 256 lin +324 257 gm +324 290 lin +326 257 gm +326 290 lin +310 291 gm +323 291 lin +310 293 gm +323 293 lin +324 291 gm +324 293 lin +326 291 gm +326 293 lin +324 294 gm +324 327 lin +326 294 gm +326 327 lin +310 328 gm +323 328 lin +310 330 gm +323 330 lin +324 328 gm +324 330 lin +326 328 gm +326 330 lin +324 331 gm +324 364 lin +326 331 gm +326 364 lin +310 365 gm +323 365 lin +310 367 gm +323 367 lin +324 365 gm +324 367 lin +326 365 gm +326 367 lin +324 368 gm +324 400 lin +326 368 gm +326 400 lin +310 401 gm +323 401 lin +310 403 gm +323 403 lin +324 401 gm +324 403 lin +326 401 gm +326 403 lin +324 404 gm +324 487 lin +326 404 gm +326 487 lin +310 488 gm +323 488 lin +310 490 gm +323 490 lin +324 488 gm +324 490 lin +326 488 gm +326 490 lin +324 491 gm +324 524 lin +326 491 gm +326 524 lin +310 525 gm +323 525 lin +310 527 gm +323 527 lin +326 525 gm +326 527 lin +324 527 gm +326 527 lin +324 525 gm +324 525 lin +324 525 lin +338 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.16)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Dynamic PVSplit)show +354 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.38436 0. 32 0.03843 0.(Search overhead is low, and efficiency is good: the speedup S with 11 processors was improved of)awidthshow +365 79 gm +(24% with respect to data shown in\312Fig.11.)show +395 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(5.2 A discussion of dynamic splitting)show +408 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.89706 0. 32 0.08970 0.(The algorithm described in Sect. 5.1 is not really representative of dynamic splitting methods. A)awidthshow +419 79 gm +(more general definition of such a concept should answer to the following questions:)show +431 88 gm +(\245\312when a supervisor process P visiting a node N should create a new parallel task?)show +444 88 gm +(\245\312who executes the task?)show +457 88 gm +(\245\312which data can be use to make a splitting decision?)show +469 79 gm +0.21591 0. 32 0.02159 0.(Consider the game tree in Fig.17; process P is responsible of its evaluation because it was given the)awidthshow +484 79 gm +0.60699 0. 32 0.06069 0.(root. According to the depth)awidthshow +484 207 gm +0.67794 0. 32 0.06779 0.(-first rule used in )awidthshow +484 289 gm +bu fc +2 F /|______Symbol fnt +bn +0.20346 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.57464 0. 32 0.05746 0.(, we have the following sequence for successors:)awidthshow +496 79 gm +(N)show +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(, N)show +496 103 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(2)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(, N)show +496 120 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(3)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(.)show +(nc 520 237 675 366 6 rc)kp +0 gr +601.5 241.5 628.5 268.5 0 ov +601.5 285.5 628.5 312.5 0 ov +601.5 329.5 628.5 356.5 0 ov +522.5 285.5 548.5 312.5 0 ov +616 250 gm +(nc 608 249 619 261 6 rc)kp +F 1 setTxMode +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +617 295 gm +(nc 609 294 620 306 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +616 339 gm +(nc 608 338 619 350 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(N)show +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +538 316 gm +(nc 530 315 541 323 6 rc)kp +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(P)show +601 299 gm +(nc 520 237 675 366 6 rc)kp +0 gr +548 299 lin +601 343 lin +0 0 2 9 6 2 dh +548 299 gm +601 255 lin +rh +psb +pse +0 0 2 9 6 2 dh +599 239 gm +628 271 lin +rh +psb +pse +0 0 2 9 6 2 dh +628 240 gm +595 268 lin +rh +psb +pse +617 359 gm +(nc 608 358 620 365 6 rc)kp +F 1 setTxMode +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(?)show +616 315 gm +(nc 607 314 619 321 6 rc)kp +(?)show +628 299 gm +(nc 520 237 675 366 6 rc)kp +0 gr +673 282 lin +628 299 gm +673 311 lin +673 282 gm +673 311 lin +0 0 2 9 6 2 dh +628 255 gm +673 239 lin +rh +psb +pse +0 0 2 9 6 2 dh +628 255 gm +673 268 lin +rh +psb +pse +0 0 2 9 6 2 dh +673 239 gm +673 268 lin +rh +psb +pse +628 343 gm +673 326 lin +628 343 gm +673 355 lin +673 326 gm +673 355 lin +537 290 gm +(nc 529 289 540 310 6 rc)kp +F 1 setTxMode +9 fz +bu fc +2 F /|______Helvetica fnt +bn +(Root)show +509 77 gm +(nc 30 28 811 566 6 rc)kp +0 gr +509 525 lin +703 131 gm +F 1 setTxMode +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig.17)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +( Problems with dynamic splitting: who has to evaluate N2 and N3?)show +721 77 gm +0 gr +721 525 lin +740 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.05569 0. 32 0.00556 0.(Suppose the subtree with root N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.04531 0. 32 0.00453 0.( has been evaluated; if no cuts were produced P has to start the visit)awidthshow +751 79 gm +0.49194 0. 32 0.04919 0.(of N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.15614 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.47515 0. 32 0.04751 0.(, i.e. it generates the task of visiting N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.15614 0.(2)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.45867 0. 32 0.04586 0.(. It can happen that P itself is assigned to this task, so)awidthshow +F T cp +%%Page: ? 16 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(14)show +118 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.66665 0. 32 0.06666 0.(that only when such a visit is completed N)awidthshow +118 274 gm +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.20846 0.(3)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.66177 0. 32 0.06617 0.( will be evaluated, unless a cut is produced. If P were)awidthshow +129 79 gm +0.21484 0. 32 0.02148 0.(assigned all successors of the root node shown in Fig.17, then actually no splitting would have been)awidthshow +140 79 gm +0.04959 0. 32 0.00495 0.(done in the root. Instead, suppose that N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(2)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.04257 0. 32 0.00425 0.( is given to a process Q different from P; then, P should not)awidthshow +151 79 gm +0.30273 0. 32 0.03027 0.(block itself waiting for Q, but should continue the visit and allocate a task for the evaluation of N)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.08947 0.(3)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(.)show +162 79 gm +0.87707 0. 32 0.08770 0.(In this way we have a splitting only if this is really necessary; moreover, we improve control on)awidthshow +173 79 gm +(search overhead and load balancing.)show +184 79 gm +1.54342 0. 32 0.15434 0.(An important decision when using of this kind of algorithm is the knowledge necessary for a)awidthshow +195 79 gm +0.94299 0. 32 0.09429 0.(splitting. There are two kinds of knowledge that are necessary for a process P to take a splitting)awidthshow +206 79 gm +(decision on a node N:)show +218 88 gm +0.76568 0. 32 0.07656 0.(- local knowledge, )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.15858 0.(i.e)ashow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.63476 0. 32 0.06347 0.(. data owned by the process P itself that is going to decide a splitting. For)awidthshow +229 101 gm +0.12954 0. 32 0.01295 0.(instance, knowledge on the level of N in the game tree, or on the size of the subtree whose root)awidthshow +240 101 gm +(is N, is local.)show +253 88 gm +0.03265 0. 32 0.00326 0.(- global knowledge, )awidthshow +253 178 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(i.e)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.02944 0. 32 0.00294 0.(. data that have to be asked to the operating environment. For instance, how)awidthshow +264 101 gm +1.16287 0. 32 0.11628 0.(many processors are idle or how many tasks are still in the agenda are examples of global)awidthshow +275 101 gm +(knowledge.)show +287 79 gm +0.30563 0. 32 0.03056 0.(Suppose that in order to decide if N is a splitting node we only use knowledge local to P, assigning)awidthshow +298 79 gm +0.62866 0. 32 0.06286 0.(N and its subtree to P itself: the decision will be very rapid. However, load balancing will rapidly)awidthshow +309 79 gm +0.19454 0. 32 0.01945 0.(deteriorate. Thus, we need to combine both form of knowledge; we achieve this taking a decision in)awidthshow +320 79 gm +(two steps:)show +332 88 gm +(i\)\312let P be the supervisor of N; we make a local test to see if P itself can take charge of N;)show +345 88 gm +0.44586 0. 32 0.04458 0.(ii\)\312if not, we use global knowledge to choose a different supervisor. This implies communicating)awidthshow +356 101 gm +(with other processes.)show +368 79 gm +1.46865 0. 32 0.14686 0.(We put all global data in tuples: both the task to be assigned to a worker, corresponding to a)awidthshow +379 79 gm +0.64743 0. 32 0.06474 0.(splitting, and data to make splitting decisions. A node N becomes a splitting node when search of)awidthshow +390 79 gm +0.07965 0. 32 0.00796 0.(one of its children is given to another process. A splitting decision needs data that can be either local)awidthshow +401 79 gm +0.11535 0. 32 0.01153 0.(or non-local. In general non-local data are more expensive to acquire, thus we classify splitting rules)awidthshow +412 79 gm +0.48583 0. 32 0.04858 0.(built in the Boolean function as local or global. Local rules say when it is not convenient to start a)awidthshow +423 79 gm +(parallel task; if local rules require splitting, then global data are acquired.)show +434 79 gm +(This is a very partial list of criteria based on local data:)show +446 88 gm +1.15356 0. 32 0.11535 0.(\245\312subtree size: small subtrees are not distributed. Subtree size should be measured in terms of)awidthshow +457 101 gm +0.61340 0. 32 0.06134 0.(nodes, but this figure is not known before the visit; however, it is possible to estimate such a)awidthshow +472 101 gm +0.11322 0. 32 0.01132 0.(quantity knowing the tree depth and the wideness of the initial )awidthshow +bu fc +2 F /|______Symbol fnt +bn +0.04614 0.(ab)ashow +bu fc +2 F /|______Times-Roman fnt +bn +0.14205 0. 32 0.01420 0.( window [Bau78]. A measure)awidthshow +484 101 gm +(simpler to obtain is given by the tree depth [Eli90].)show +497 88 gm +0.10589 0. 32 0.01058 0.(\245\312"young-brothers-wait" [FMMV89]: aims at reducing search overhead if the game tree is ordered.)awidthshow +508 101 gm +0.99380 0. 32 0.09938 0.(The first successor of a node has to be completely evaluated before proceeding in the visit.)awidthshow +519 101 gm +2.21588 0. 32 0.22158 0.(Thus a node N has to be evaluated by its supervisor if it is the first to be visited. A)awidthshow +530 101 gm +2.09609 0. 32 0.20960 0.(generalisation of this method consists of avoiding the distribution of the first K \(K>1\))awidthshow +541 101 gm +0.37506 0. 32 0.03750 0.(successors. For ordered game trees the best moves are with high probability "on the left", thus)awidthshow +556 101 gm +(if we give priority to this side we get better )show +556 293 gm +bu fc +2 F /|______Symbol fnt +bn +(ab)show +bu fc +2 F /|______Times-Roman fnt +bn +( windows for continuing the search in parallel.)show +570 88 gm +1.08642 0. 32 0.10864 0.(\245\312limiting the max. number of children visited in parallel: the idea is to get a good amount of)awidthshow +581 101 gm +1.09680 0. 32 0.10968 0.(information from incomplete searches. The supervisor only need to know how many nodes)awidthshow +592 101 gm +(were distributed but not yet entirely searched.)show +604 79 gm +(The following criteria are based on global knowledge:)show +616 88 gm +0.44174 0. 32 0.04417 0.(\245\312limiting the number of tasks in agenda, aiming at reducing synchronisation overhead. In fact, if)awidthshow +627 101 gm +1.18713 0. 32 0.11871 0.(tasks were too many with respect to the available processors, the task originators could be)awidthshow +638 101 gm +1.72622 0. 32 0.17262 0.(strongly slowed. A typical value that can be chosen as maximum is the total number of)awidthshow +649 101 gm +0.63552 0. 32 0.06355 0.(processors. We put a counter in a single tuple; the counter is incremented by supervisors and)awidthshow +660 101 gm +(decremented by workers.)show +673 88 gm +0.15594 0. 32 0.01559 0.(\245\312splitting only in case of idle processor: we avoid that a task remains too much time in agenda, so)awidthshow +684 101 gm +1.12258 0. 32 0.11225 0.(that we reduce synchronisation overhead. We need to count how many processors are idle,)awidthshow +695 101 gm +(again with a counter tuple.)show +707 79 gm +(Now we are ready to describe a dynamic algorithm parametric wrt the splitting rules.)show +737 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(5.3 A general algorithm for dynamic splitting)show +F T cp +%%Page: ? 17 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(15)show +118 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +1.21017 0. 32 0.12101 0.(We have designed a software architecture that is easy to adapt to different splitting algorithms.)awidthshow +129 79 gm +0.08255 0. 32 0.00825 0.(Given a splitting criterion, we specialise the core algorithm aiming at maximising the efficiency. We)awidthshow +140 79 gm +0.30303 0. 32 0.03030 0.(note that we could treat most static splitting algorithms as special cases of trivial dynamic splitting,)awidthshow +151 79 gm +1.00021 0. 32 0.10002 0.(however we would lose most of the optimisations that were possible because the splitting nodes)awidthshow +162 79 gm +(were well known or in a small number.)show +173 79 gm +1.19873 0. 32 0.11987 0.(The core algorithm for dynamic splitting allows that any node can be a splitting node. Data on)awidthshow +184 79 gm +1.79733 0. 32 0.17973 0.(arbitrary nodes is much more expensive to transmit and to receive: communication overhead)awidthshow +195 79 gm +(increases, especially on a network of workstations.)show +206 79 gm +0.08758 0. 32 0.00875 0.(Moreover, each task has to be identified independently form the worker that executes it; thus to each)awidthshow +217 79 gm +1.59393 0. 32 0.15939 0.(node N we associate a signature that will be inherited by all N successors; such an idea was)awidthshow +228 79 gm +1.32034 0. 32 0.13203 0.(introduced in [Eli90]. When a cut occurs, all parallel search having the same signature will be)awidthshow +239 79 gm +(terminated, because they are now useless.)show +250 79 gm +0.01724 0. 32 0.00172 0.(Each new splitting node is associated to a new signature; since in the core algorithm a parallel search)awidthshow +261 79 gm +0.26687 0. 32 0.02668 0.(can be started at any level in the tree, nodes of the same subtree obtain different signatures. When a)awidthshow +272 79 gm +0.44692 0. 32 0.04469 0.(cut is generated for the top-level of a subtree all parallel searches of its branches should terminate,)awidthshow +283 79 gm +0.81695 0. 32 0.08169 0.(even if the signatures are different. The signature is a distributed data structure whose root is the)awidthshow +294 79 gm +0.65292 0. 32 0.06529 0.(signature of the game tree root. Suppose that a node N has a signature S inherited from its father;)awidthshow +305 79 gm +(suppose that N is chosen as splitting node: it get s a new signature T.)show +(nc 330 96 543 506 6 rc)kp +64 gr +412 146 435 169 1 ov +0 gr +412.5 146.5 434.5 168.5 0 ov +64 gr +468 113 490 135 1 ov +0 gr +468.5 113.5 489.5 134.5 0 ov +64 gr +519 98 542 120 1 ov +0 gr +519.5 98.5 541.5 119.5 0 ov +64 gr +519 126 542 148 1 ov +0 gr +519.5 126.5 541.5 147.5 0 ov +489 124 gm +519 136 lin +489 124 gm +519 108 lin +64 gr +468 175 490 198 1 ov +0 gr +468.5 175.5 489.5 197.5 0 ov +64 gr +519 160 542 182 1 ov +0 gr +519.5 160.5 541.5 181.5 0 ov +64 gr +519 188 542 210 1 ov +0 gr +519.5 188.5 541.5 209.5 0 ov +489 186 gm +519 199 lin +489 186 gm +519 170 lin +434 156 gm +468 187 lin +434 156 gm +468 123 lin +64 gr +412 278 435 300 1 ov +0 gr +412.5 278.5 434.5 299.5 0 ov +64 gr +468 245 490 267 1 ov +0 gr +468.5 245.5 489.5 266.5 0 ov +64 gr +519 229 542 252 1 ov +0 gr +519.5 229.5 541.5 251.5 0 ov +64 gr +519 258 542 280 1 ov +0 gr +519.5 258.5 541.5 279.5 0 ov +489 256 gm +519 268 lin +0 0 2 9 6 2 dh +489 256 gm +519 240 lin +rh +psb +pse +64 gr +468 307 490 330 1 ov +0 gr +468.5 307.5 489.5 329.5 0 ov +64 gr +519 292 542 314 1 ov +0 gr +519.5 292.5 541.5 313.5 0 ov +64 gr +519 320 542 342 1 ov +0 gr +519.5 320.5 541.5 341.5 0 ov +489 318 gm +519 331 lin +489 318 gm +519 302 lin +434 288 gm +468 319 lin +434 288 gm +468 256 lin +64 gr +413 410 436 432 1 ov +0 gr +413.5 410.5 435.5 431.5 0 ov +64 gr +468 377 490 399 1 ov +0 gr +468.5 377.5 489.5 398.5 0 ov +64 gr +519 361 542 383 1 ov +0 gr +519.5 361.5 541.5 382.5 0 ov +64 gr +519 389 542 412 1 ov +0 gr +519.5 389.5 541.5 411.5 0 ov +0 0 2 9 6 2 dh +489 387 gm +519 400 lin +rh +psb +pse +489 387 gm +519 372 lin +64 gr +469 439 491 461 1 ov +0 gr +469.5 439.5 490.5 460.5 0 ov +64 gr +520 423 543 446 1 ov +0 gr +520.5 423.5 542.5 445.5 0 ov +64 gr +519 452 542 474 1 ov +0 gr +519.5 452.5 541.5 473.5 0 ov +489 450 gm +519 462 lin +489 450 gm +519 434 lin +434 420 gm +468 450 lin +0 0 2 9 6 2 dh +434 420 gm +468 387 lin +rh +psb +pse +64 gr +353 278 375 300 1 ov +0 gr +353.5 278.5 374.5 299.5 0 ov +0 0 2 9 6 2 dh +374 290 gm +412 290 lin +rh +psb +pse +0 0 2 9 6 2 dh +374 290 gm +412 158 lin +rh +psb +pse +374 289 gm +412 420 lin +64 gr +361 282 368 300 1 rc +366 283 gm +(nc 361 282 368 300 6 rc)kp +F 1 setTxMode +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(0)show +366 287 gm +bu fc +2 F /|______Symbol fnt +bn +(\256)show +366 294 gm +bu fc +2 F /|______Helvetica fnt +bn +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +417 154 429 162 1 rc +426 155 gm +(nc 417 154 429 162 6 rc)kp +F 1 setTxMode +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +417 285 429 293 1 rc +426 286 gm +(nc 417 285 429 293 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +420 413 427 430 1 rc +425 414 gm +(nc 420 413 427 430 6 rc)kp +F 1 setTxMode +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(1)show +425 418 gm +bu fc +2 F /|______Symbol fnt +bn +(\256)show +425 425 gm +bu fc +2 F /|______Helvetica fnt +bn +(2)show +(nc 330 96 543 506 6 rc)kp +64 gr +475 250 482 267 1 rc +480 251 gm +(nc 475 250 482 267 6 rc)kp +F 1 setTxMode +(1)show +480 255 gm +bu fc +2 F /|______Symbol fnt +bn +(\256)show +480 262 gm +bu fc +2 F /|______Helvetica fnt +bn +(3)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 267 536 275 1 rc +533 268 gm +(nc 524 267 536 275 6 rc)kp +F 1 setTxMode +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(3)show +(nc 330 96 543 506 6 rc)kp +64 gr +525 329 537 337 1 rc +534 330 gm +(nc 525 329 537 337 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +523 301 535 309 1 rc +532 302 gm +(nc 523 301 535 309 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 239 536 247 1 rc +533 240 gm +(nc 524 239 536 247 6 rc)kp +F 1 setTxMode +(3)show +(nc 330 96 543 506 6 rc)kp +64 gr +473 185 485 193 1 rc +482 186 gm +(nc 473 185 485 193 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 198 536 206 1 rc +533 199 gm +(nc 524 198 536 206 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 169 536 177 1 rc +533 170 gm +(nc 524 169 536 177 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 136 536 144 1 rc +533 137 gm +(nc 524 136 536 144 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 107 536 115 1 rc +533 108 gm +(nc 524 107 536 115 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +472 122 484 130 1 rc +481 123 gm +(nc 472 122 484 130 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +471 317 483 325 1 rc +480 318 gm +(nc 471 317 483 325 6 rc)kp +F 1 setTxMode +(1)show +(nc 330 96 543 506 6 rc)kp +64 gr +474 382 481 399 1 rc +479 383 gm +(nc 474 382 481 399 6 rc)kp +F 1 setTxMode +7 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +479 387 gm +bu fc +2 F /|______Symbol fnt +bn +(\256)show +479 394 gm +bu fc +2 F /|______Helvetica fnt +bn +(4)show +(nc 330 96 543 506 6 rc)kp +64 gr +472 448 484 456 1 rc +481 449 gm +(nc 472 448 484 456 6 rc)kp +F 1 setTxMode +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(2)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 432 536 440 1 rc +533 433 gm +(nc 524 432 536 440 6 rc)kp +F 1 setTxMode +(2)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 461 536 469 1 rc +533 462 gm +(nc 524 461 536 469 6 rc)kp +F 1 setTxMode +(2)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 369 536 377 1 rc +533 370 gm +(nc 524 369 536 377 6 rc)kp +F 1 setTxMode +(4)show +(nc 330 96 543 506 6 rc)kp +64 gr +524 399 536 407 1 rc +533 400 gm +(nc 524 399 536 407 6 rc)kp +F 1 setTxMode +(4)show +(nc 330 96 543 506 6 rc)kp +64 gr +376 215 388 229 1 rc +385 216 gm +(nc 376 215 388 229 6 rc)kp +F 1 setTxMode +(\(a\))show +(nc 330 96 543 506 6 rc)kp +64 gr +437 388 449 402 1 rc +446 389 gm +(nc 437 388 449 402 6 rc)kp +F 1 setTxMode +(\(b\))show +(nc 330 96 543 506 6 rc)kp +64 gr +495 232 507 246 1 rc +504 233 gm +(nc 495 232 507 246 6 rc)kp +F 1 setTxMode +(\(c\))show +(nc 330 96 543 506 6 rc)kp +64 gr +492 364 504 378 1 rc +501 365 gm +(nc 492 364 504 378 6 rc)kp +F 1 setTxMode +(\(d\))show +0 0 pen +355 317 gm +(nc 330 96 543 506 6 rc)kp +64 gr +355 317 lin +nc ct 39 0 put +pr +360 308 pl +355 317 pl +358 318 pl +362 318 pl +360 308 pl +4 ep +360 308 gm +bp +355 317 T qi +355 317 qc +358 318 qc +358 318 qc +362 318 qc +362 318 qc +360 308 qc +360 308 T qq +qf +qf +ef +0 gr +15 ec +(nc 330 96 543 506 6 rc)kp +1 1 pen +358 318 gm +0 gr +350 376 lin +64 gr +332 377 382 506 1 rc +0 gr +332.5 377.5 381.5 505.5 0 rc +64 gr +333 386 381 494 1 rc +342 387 gm +(nc 333 386 381 494 6 rc)kp +F 1 setTxMode +(A decomposition node)show +354 387 gm +(defines a signature)show +366 387 gm +(different from that)show +378 387 gm +(inherited from the father)show +318 77 gm +(nc 30 28 811 566 6 rc)kp +0 gr +318 525 lin +572 235 gm +F 1 setTxMode +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(Fig.18)show +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +( Assigning a signature)show +590 77 gm +0 gr +590 525 lin +609 79 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.43762 0. 32 0.04376 0.(In Fig.18 it is shown a game tree; dotted lines represents subtrees distributed to other processors; a)awidthshow +620 79 gm +0.45349 0. 32 0.04534 0.(node label is the local signature. The depicted game tree includes four local splittings. Splitting \(a\))awidthshow +631 79 gm +(distributes tasks for searching leftmost subtrees; other splittings distribute a single task only.)show +661 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(5.4 Results)show +674 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.35888 0. 32 0.03588 0.(We tested the algorithm for dynamic splitting with several splitting criteria; we found that the most)awidthshow +685 79 gm +(interesting were the following:)show +697 88 gm +0.18385 0.(\245\312)ashow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.16302 0. 32 0.11630 0.(Policy A)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.10183 0. 32 0.11018 0.(: local condition: young)awidthshow +697 244 gm +0.95367 0. 32 0.09536 0.(-brothers-wait without distributing small subtrees \(depth)awidthshow +currentfont SwToSym +0.95367 0. 32 0.09536 0.(\243)awidthshow +setfont +0.95367 0. 32 0.09536 0.(2\);)awidthshow +708 101 gm +0.14068 0. 32 0.01406 0.(global condition: splitting is allowed only if there is an idle worker and the agenda contains \(P)awidthshow +708 519 gm +(-)show +719 101 gm +(1\) tasks.)show +732 88 gm +(\245\312)show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Policy B)show +732 131 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(: no signature tree; splitting is allowed even if there are no idle workers.)show +744 79 gm +(The corresponding tests are shown in Figg.19 and 20.)show +F T cp +%%Page: ? 18 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(16)show +136 96 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +136 145 gm +(T\312\(sec\))show +136 200 gm +(N\312\(nodes\))show +136 271 gm +(S)show +136 308 gm +(E)show +136 338 gm +(Fpm)show +136 378 gm +(SO)show +136 416 gm +(SS\312\(nodes/sec\))show +136 502 gm +(Sss)show +122 80 gm +0 gr +122 82 lin +122 80 gm +124 80 lin +124 82 gm +124 82 lin +124 82 lin +122 83 gm +122 131 lin +124 83 gm +124 131 lin +122 132 gm +122 134 lin +124 132 gm +124 134 lin +122 135 gm +122 182 lin +124 135 gm +124 182 lin +122 183 gm +122 185 lin +124 183 gm +124 185 lin +122 186 gm +122 253 lin +124 186 gm +124 253 lin +122 254 gm +122 256 lin +124 254 gm +124 256 lin +122 257 gm +122 290 lin +124 257 gm +124 290 lin +122 291 gm +122 293 lin +124 291 gm +124 293 lin +122 294 gm +122 327 lin +124 294 gm +124 327 lin +122 328 gm +122 330 lin +124 328 gm +124 330 lin +122 331 gm +122 364 lin +124 331 gm +124 364 lin +122 365 gm +122 367 lin +124 365 gm +124 367 lin +122 368 gm +122 400 lin +124 368 gm +124 400 lin +122 401 gm +122 403 lin +124 401 gm +124 403 lin +122 404 gm +122 487 lin +124 404 gm +124 487 lin +122 488 gm +122 490 lin +124 488 gm +124 490 lin +122 491 gm +122 524 lin +124 491 gm +124 524 lin +122 525 gm +122 527 lin +124 527 lin +124 525 gm +124 525 lin +124 525 lin +125 80 gm +138 80 lin +125 82 gm +138 82 lin +125 132 gm +138 132 lin +125 134 gm +138 134 lin +125 183 gm +138 183 lin +125 185 gm +138 185 lin +125 254 gm +138 254 lin +125 256 gm +138 256 lin +125 291 gm +138 291 lin +125 293 gm +138 293 lin +125 328 gm +138 328 lin +125 330 gm +138 330 lin +125 365 gm +138 365 lin +125 367 gm +138 367 lin +125 401 gm +138 401 lin +125 403 gm +138 403 lin +125 488 gm +138 488 lin +125 490 gm +138 490 lin +125 525 gm +138 525 lin +125 527 gm +138 527 lin +153 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +152 149 gm +(8301)show +152 203 gm +(5347545)show +152 269 gm +(---)show +152 306 gm +(---)show +152 343 gm +(---)show +152 380 gm +(---)show +152 439 gm +(644)show +152 503 gm +(---)show +139 82 gm +0 gr +141 82 lin +139 80 gm +141 80 lin +139 83 gm +139 131 lin +141 83 gm +141 131 lin +139 134 gm +139 134 lin +141 132 gm +141 132 lin +139 132 gm +139 132 lin +141 134 gm +141 134 lin +139 135 gm +139 182 lin +141 135 gm +141 182 lin +139 185 gm +139 185 lin +141 183 gm +141 183 lin +139 183 gm +139 183 lin +141 185 gm +141 185 lin +139 186 gm +139 253 lin +141 186 gm +141 253 lin +139 256 gm +139 256 lin +141 254 gm +141 254 lin +139 254 gm +139 254 lin +141 256 gm +141 256 lin +139 257 gm +139 290 lin +141 257 gm +141 290 lin +139 293 gm +139 293 lin +141 291 gm +141 291 lin +139 291 gm +139 291 lin +141 293 gm +141 293 lin +139 294 gm +139 327 lin +141 294 gm +141 327 lin +139 330 gm +139 330 lin +141 328 gm +141 328 lin +139 328 gm +139 328 lin +141 330 gm +141 330 lin +139 331 gm +139 364 lin +141 331 gm +141 364 lin +139 367 gm +139 367 lin +141 365 gm +141 365 lin +139 365 gm +139 365 lin +141 367 gm +141 367 lin +139 368 gm +139 400 lin +141 368 gm +141 400 lin +139 403 gm +139 403 lin +141 401 gm +141 401 lin +139 401 gm +139 401 lin +141 403 gm +141 403 lin +139 404 gm +139 487 lin +141 404 gm +141 487 lin +139 490 gm +139 490 lin +141 488 gm +141 488 lin +139 488 gm +139 488 lin +141 490 gm +141 490 lin +139 491 gm +139 524 lin +141 491 gm +141 524 lin +139 527 gm +141 527 lin +139 525 gm +141 525 lin +142 80 gm +155 80 lin +142 82 gm +155 82 lin +142 132 gm +155 132 lin +142 134 gm +155 134 lin +142 183 gm +155 183 lin +142 185 gm +155 185 lin +142 254 gm +155 254 lin +142 256 gm +155 256 lin +142 291 gm +155 291 lin +142 293 gm +155 293 lin +142 328 gm +155 328 lin +142 330 gm +155 330 lin +142 365 gm +155 365 lin +142 367 gm +155 367 lin +142 401 gm +155 401 lin +142 403 gm +155 403 lin +142 488 gm +155 488 lin +142 490 gm +155 490 lin +142 525 gm +155 525 lin +142 527 gm +155 527 lin +167 105 gm +F 1 setTxMode +(3)show +167 149 gm +(3797)show +167 203 gm +(6206534)show +167 265 gm +(2.19)show +167 302 gm +(0.73)show +167 339 gm +(0.85)show +167 376 gm +(0.16)show +167 436 gm +(1635)show +167 499 gm +(2.54)show +156 82 gm +0 gr +156 82 lin +156 80 gm +156 80 lin +156 83 gm +156 131 lin +156 134 gm +156 134 lin +156 132 gm +156 132 lin +156 135 gm +156 182 lin +156 185 gm +156 185 lin +156 183 gm +156 183 lin +156 186 gm +156 253 lin +156 256 gm +156 256 lin +156 254 gm +156 254 lin +156 257 gm +156 290 lin +156 293 gm +156 293 lin +156 291 gm +156 291 lin +156 294 gm +156 327 lin +156 330 gm +156 330 lin +156 328 gm +156 328 lin +156 331 gm +156 364 lin +156 367 gm +156 367 lin +156 365 gm +156 365 lin +156 368 gm +156 400 lin +156 403 gm +156 403 lin +156 401 gm +156 401 lin +156 404 gm +156 487 lin +156 490 gm +156 490 lin +156 488 gm +156 488 lin +156 491 gm +156 524 lin +156 527 gm +156 527 lin +156 525 gm +156 525 lin +157 80 gm +169 80 lin +157 82 gm +169 82 lin +157 132 gm +169 132 lin +157 134 gm +169 134 lin +157 183 gm +169 183 lin +157 185 gm +169 185 lin +157 254 gm +169 254 lin +157 256 gm +169 256 lin +157 291 gm +169 291 lin +157 293 gm +169 293 lin +157 328 gm +169 328 lin +157 330 gm +169 330 lin +157 365 gm +169 365 lin +157 367 gm +169 367 lin +157 401 gm +169 401 lin +157 403 gm +169 403 lin +157 488 gm +169 488 lin +157 490 gm +169 490 lin +157 525 gm +169 525 lin +157 527 gm +169 527 lin +181 105 gm +F 1 setTxMode +(5)show +181 149 gm +(2634)show +181 203 gm +(6829036)show +181 265 gm +(3.15)show +181 302 gm +(0.63)show +181 339 gm +(0.82)show +181 376 gm +(0.28)show +181 436 gm +(2593)show +181 499 gm +(4.02)show +170 82 gm +0 gr +170 82 lin +170 80 gm +170 80 lin +170 83 gm +170 131 lin +170 134 gm +170 134 lin +170 132 gm +170 132 lin +170 135 gm +170 182 lin +170 185 gm +170 185 lin +170 183 gm +170 183 lin +170 186 gm +170 253 lin +170 256 gm +170 256 lin +170 254 gm +170 254 lin +170 257 gm +170 290 lin +170 293 gm +170 293 lin +170 291 gm +170 291 lin +170 294 gm +170 327 lin +170 330 gm +170 330 lin +170 328 gm +170 328 lin +170 331 gm +170 364 lin +170 367 gm +170 367 lin +170 365 gm +170 365 lin +170 368 gm +170 400 lin +170 403 gm +170 403 lin +170 401 gm +170 401 lin +170 404 gm +170 487 lin +170 490 gm +170 490 lin +170 488 gm +170 488 lin +170 491 gm +170 524 lin +170 527 gm +170 527 lin +170 525 gm +170 525 lin +171 80 gm +183 80 lin +171 82 gm +183 82 lin +171 132 gm +183 132 lin +171 134 gm +183 134 lin +171 183 gm +183 183 lin +171 185 gm +183 185 lin +171 254 gm +183 254 lin +171 256 gm +183 256 lin +171 291 gm +183 291 lin +171 293 gm +183 293 lin +171 328 gm +183 328 lin +171 330 gm +183 330 lin +171 365 gm +183 365 lin +171 367 gm +183 367 lin +171 401 gm +183 401 lin +171 403 gm +183 403 lin +171 488 gm +183 488 lin +171 490 gm +183 490 lin +171 525 gm +183 525 lin +171 527 gm +183 527 lin +196 105 gm +F 1 setTxMode +(7)show +196 149 gm +(2133)show +196 203 gm +(7407997)show +196 265 gm +(3.89)show +196 302 gm +(0.56)show +196 339 gm +(0.77)show +196 376 gm +(0.39)show +196 436 gm +(3473)show +196 499 gm +(5.39)show +184 82 gm +0 gr +184 82 lin +184 80 gm +184 80 lin +184 83 gm +184 131 lin +184 134 gm +184 134 lin +184 132 gm +184 132 lin +184 135 gm +184 182 lin +184 185 gm +184 185 lin +184 183 gm +184 183 lin +184 186 gm +184 253 lin +184 256 gm +184 256 lin +184 254 gm +184 254 lin +184 257 gm +184 290 lin +184 293 gm +184 293 lin +184 291 gm +184 291 lin +184 294 gm +184 327 lin +184 330 gm +184 330 lin +184 328 gm +184 328 lin +184 331 gm +184 364 lin +184 367 gm +184 367 lin +184 365 gm +184 365 lin +184 368 gm +184 400 lin +184 403 gm +184 403 lin +184 401 gm +184 401 lin +184 404 gm +184 487 lin +184 490 gm +184 490 lin +184 488 gm +184 488 lin +184 491 gm +184 524 lin +184 527 gm +184 527 lin +184 525 gm +184 525 lin +185 80 gm +198 80 lin +185 82 gm +198 82 lin +185 132 gm +198 132 lin +185 134 gm +198 134 lin +185 183 gm +198 183 lin +185 185 gm +198 185 lin +185 254 gm +198 254 lin +185 256 gm +198 256 lin +185 291 gm +198 291 lin +185 293 gm +198 293 lin +185 328 gm +198 328 lin +185 330 gm +198 330 lin +185 365 gm +198 365 lin +185 367 gm +198 367 lin +185 401 gm +198 401 lin +185 403 gm +198 403 lin +185 488 gm +198 488 lin +185 490 gm +198 490 lin +185 525 gm +198 525 lin +185 527 gm +198 527 lin +211 105 gm +F 1 setTxMode +(9)show +211 149 gm +(1878)show +211 203 gm +(7810188)show +211 265 gm +(4.42)show +211 302 gm +(0.49)show +211 339 gm +(0.74)show +211 376 gm +(0.46)show +211 436 gm +(4159)show +211 499 gm +(6.46)show +199 82 gm +0 gr +199 82 lin +199 80 gm +199 80 lin +199 83 gm +199 131 lin +199 134 gm +199 134 lin +199 132 gm +199 132 lin +199 135 gm +199 182 lin +199 185 gm +199 185 lin +199 183 gm +199 183 lin +199 186 gm +199 253 lin +199 256 gm +199 256 lin +199 254 gm +199 254 lin +199 257 gm +199 290 lin +199 293 gm +199 293 lin +199 291 gm +199 291 lin +199 294 gm +199 327 lin +199 330 gm +199 330 lin +199 328 gm +199 328 lin +199 331 gm +199 364 lin +199 367 gm +199 367 lin +199 365 gm +199 365 lin +199 368 gm +199 400 lin +199 403 gm +199 403 lin +199 401 gm +199 401 lin +199 404 gm +199 487 lin +199 490 gm +199 490 lin +199 488 gm +199 488 lin +199 491 gm +199 524 lin +199 527 gm +199 527 lin +199 525 gm +199 525 lin +200 80 gm +213 80 lin +200 82 gm +213 82 lin +200 132 gm +213 132 lin +200 134 gm +213 134 lin +200 183 gm +213 183 lin +200 185 gm +213 185 lin +200 254 gm +213 254 lin +200 256 gm +213 256 lin +200 291 gm +213 291 lin +200 293 gm +213 293 lin +200 328 gm +213 328 lin +200 330 gm +213 330 lin +200 365 gm +213 365 lin +200 367 gm +213 367 lin +200 401 gm +213 401 lin +200 403 gm +213 403 lin +200 488 gm +213 488 lin +200 490 gm +213 490 lin +200 525 gm +213 525 lin +200 527 gm +213 527 lin +225 103 gm +F 1 setTxMode +(11)show +225 149 gm +(1699)show +225 203 gm +(8205839)show +225 265 gm +(4.89)show +225 302 gm +(0.44)show +225 339 gm +(0.70)show +225 376 gm +(0.53)show +225 436 gm +(4830)show +225 499 gm +(7.50)show +214 82 gm +0 gr +214 82 lin +214 80 gm +214 80 lin +214 83 gm +214 131 lin +214 134 gm +214 134 lin +214 132 gm +214 132 lin +214 135 gm +214 182 lin +214 185 gm +214 185 lin +214 183 gm +214 183 lin +214 186 gm +214 253 lin +214 256 gm +214 256 lin +214 254 gm +214 254 lin +214 257 gm +214 290 lin +214 293 gm +214 293 lin +214 291 gm +214 291 lin +214 294 gm +214 327 lin +214 330 gm +214 330 lin +214 328 gm +214 328 lin +214 331 gm +214 364 lin +214 367 gm +214 367 lin +214 365 gm +214 365 lin +214 368 gm +214 400 lin +214 403 gm +214 403 lin +214 401 gm +214 401 lin +214 404 gm +214 487 lin +214 490 gm +214 490 lin +214 488 gm +214 488 lin +214 491 gm +214 524 lin +214 527 gm +214 527 lin +214 525 gm +214 525 lin +215 80 gm +227 80 lin +215 82 gm +227 82 lin +230 80 gm +230 82 lin +228 80 gm +230 80 lin +228 82 gm +228 82 lin +228 82 lin +228 83 gm +228 131 lin +230 83 gm +230 131 lin +215 132 gm +227 132 lin +215 134 gm +227 134 lin +228 132 gm +228 134 lin +230 132 gm +230 134 lin +228 135 gm +228 182 lin +230 135 gm +230 182 lin +215 183 gm +227 183 lin +215 185 gm +227 185 lin +228 183 gm +228 185 lin +230 183 gm +230 185 lin +228 186 gm +228 253 lin +230 186 gm +230 253 lin +215 254 gm +227 254 lin +215 256 gm +227 256 lin +228 254 gm +228 256 lin +230 254 gm +230 256 lin +228 257 gm +228 290 lin +230 257 gm +230 290 lin +215 291 gm +227 291 lin +215 293 gm +227 293 lin +228 291 gm +228 293 lin +230 291 gm +230 293 lin +228 294 gm +228 327 lin +230 294 gm +230 327 lin +215 328 gm +227 328 lin +215 330 gm +227 330 lin +228 328 gm +228 330 lin +230 328 gm +230 330 lin +228 331 gm +228 364 lin +230 331 gm +230 364 lin +215 365 gm +227 365 lin +215 367 gm +227 367 lin +228 365 gm +228 367 lin +230 365 gm +230 367 lin +228 368 gm +228 400 lin +230 368 gm +230 400 lin +215 401 gm +227 401 lin +215 403 gm +227 403 lin +228 401 gm +228 403 lin +230 401 gm +230 403 lin +228 404 gm +228 487 lin +230 404 gm +230 487 lin +215 488 gm +227 488 lin +215 490 gm +227 490 lin +228 488 gm +228 490 lin +230 488 gm +230 490 lin +228 491 gm +228 524 lin +230 491 gm +230 524 lin +215 525 gm +227 525 lin +215 527 gm +227 527 lin +230 525 gm +230 527 lin +228 527 gm +230 527 lin +228 525 gm +228 525 lin +228 525 lin +242 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.19)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Young-brothers-wait \(Policy A\))show +276 96 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +276 145 gm +(T\312\(sec\))show +276 200 gm +(N\312\(nodes\))show +276 271 gm +(S)show +276 308 gm +(E)show +276 338 gm +(Fpm)show +276 378 gm +(SO)show +276 416 gm +(SS\312\(nodes/sec\))show +276 502 gm +(Sss)show +262 80 gm +0 gr +262 82 lin +262 80 gm +264 80 lin +264 82 gm +264 82 lin +264 82 lin +262 83 gm +262 131 lin +264 83 gm +264 131 lin +262 132 gm +262 134 lin +264 132 gm +264 134 lin +262 135 gm +262 182 lin +264 135 gm +264 182 lin +262 183 gm +262 185 lin +264 183 gm +264 185 lin +262 186 gm +262 253 lin +264 186 gm +264 253 lin +262 254 gm +262 256 lin +264 254 gm +264 256 lin +262 257 gm +262 290 lin +264 257 gm +264 290 lin +262 291 gm +262 293 lin +264 291 gm +264 293 lin +262 294 gm +262 327 lin +264 294 gm +264 327 lin +262 328 gm +262 330 lin +264 328 gm +264 330 lin +262 331 gm +262 364 lin +264 331 gm +264 364 lin +262 365 gm +262 367 lin +264 365 gm +264 367 lin +262 368 gm +262 400 lin +264 368 gm +264 400 lin +262 401 gm +262 403 lin +264 401 gm +264 403 lin +262 404 gm +262 487 lin +264 404 gm +264 487 lin +262 488 gm +262 490 lin +264 488 gm +264 490 lin +262 491 gm +262 524 lin +264 491 gm +264 524 lin +262 525 gm +262 527 lin +264 527 lin +264 525 gm +264 525 lin +264 525 lin +265 80 gm +278 80 lin +265 82 gm +278 82 lin +265 132 gm +278 132 lin +265 134 gm +278 134 lin +265 183 gm +278 183 lin +265 185 gm +278 185 lin +265 254 gm +278 254 lin +265 256 gm +278 256 lin +265 291 gm +278 291 lin +265 293 gm +278 293 lin +265 328 gm +278 328 lin +265 330 gm +278 330 lin +265 365 gm +278 365 lin +265 367 gm +278 367 lin +265 401 gm +278 401 lin +265 403 gm +278 403 lin +265 488 gm +278 488 lin +265 490 gm +278 490 lin +265 525 gm +278 525 lin +265 527 gm +278 527 lin +293 105 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(1)show +293 149 gm +(8301)show +293 203 gm +(5347545)show +293 269 gm +(---)show +293 306 gm +(---)show +293 343 gm +(---)show +293 380 gm +(---)show +293 439 gm +(644)show +293 503 gm +(---)show +279 82 gm +0 gr +281 82 lin +279 80 gm +281 80 lin +279 83 gm +279 131 lin +281 83 gm +281 131 lin +279 134 gm +279 134 lin +281 132 gm +281 132 lin +279 132 gm +279 132 lin +281 134 gm +281 134 lin +279 135 gm +279 182 lin +281 135 gm +281 182 lin +279 185 gm +279 185 lin +281 183 gm +281 183 lin +279 183 gm +279 183 lin +281 185 gm +281 185 lin +279 186 gm +279 253 lin +281 186 gm +281 253 lin +279 256 gm +279 256 lin +281 254 gm +281 254 lin +279 254 gm +279 254 lin +281 256 gm +281 256 lin +279 257 gm +279 290 lin +281 257 gm +281 290 lin +279 293 gm +279 293 lin +281 291 gm +281 291 lin +279 291 gm +279 291 lin +281 293 gm +281 293 lin +279 294 gm +279 327 lin +281 294 gm +281 327 lin +279 330 gm +279 330 lin +281 328 gm +281 328 lin +279 328 gm +279 328 lin +281 330 gm +281 330 lin +279 331 gm +279 364 lin +281 331 gm +281 364 lin +279 367 gm +279 367 lin +281 365 gm +281 365 lin +279 365 gm +279 365 lin +281 367 gm +281 367 lin +279 368 gm +279 400 lin +281 368 gm +281 400 lin +279 403 gm +279 403 lin +281 401 gm +281 401 lin +279 401 gm +279 401 lin +281 403 gm +281 403 lin +279 404 gm +279 487 lin +281 404 gm +281 487 lin +279 490 gm +279 490 lin +281 488 gm +281 488 lin +279 488 gm +279 488 lin +281 490 gm +281 490 lin +279 491 gm +279 524 lin +281 491 gm +281 524 lin +279 527 gm +281 527 lin +279 525 gm +281 525 lin +282 80 gm +295 80 lin +282 82 gm +295 82 lin +282 132 gm +295 132 lin +282 134 gm +295 134 lin +282 183 gm +295 183 lin +282 185 gm +295 185 lin +282 254 gm +295 254 lin +282 256 gm +295 256 lin +282 291 gm +295 291 lin +282 293 gm +295 293 lin +282 328 gm +295 328 lin +282 330 gm +295 330 lin +282 365 gm +295 365 lin +282 367 gm +295 367 lin +282 401 gm +295 401 lin +282 403 gm +295 403 lin +282 488 gm +295 488 lin +282 490 gm +295 490 lin +282 525 gm +295 525 lin +282 527 gm +295 527 lin +308 105 gm +F 1 setTxMode +(3)show +308 149 gm +(4629)show +308 203 gm +(6476838)show +308 265 gm +(1.79)show +308 302 gm +(0.60)show +308 339 gm +(0.84)show +308 376 gm +(0.21)show +308 436 gm +(1399)show +308 499 gm +(2.17)show +296 82 gm +0 gr +296 82 lin +296 80 gm +296 80 lin +296 83 gm +296 131 lin +296 134 gm +296 134 lin +296 132 gm +296 132 lin +296 135 gm +296 182 lin +296 185 gm +296 185 lin +296 183 gm +296 183 lin +296 186 gm +296 253 lin +296 256 gm +296 256 lin +296 254 gm +296 254 lin +296 257 gm +296 290 lin +296 293 gm +296 293 lin +296 291 gm +296 291 lin +296 294 gm +296 327 lin +296 330 gm +296 330 lin +296 328 gm +296 328 lin +296 331 gm +296 364 lin +296 367 gm +296 367 lin +296 365 gm +296 365 lin +296 368 gm +296 400 lin +296 403 gm +296 403 lin +296 401 gm +296 401 lin +296 404 gm +296 487 lin +296 490 gm +296 490 lin +296 488 gm +296 488 lin +296 491 gm +296 524 lin +296 527 gm +296 527 lin +296 525 gm +296 525 lin +297 80 gm +310 80 lin +297 82 gm +310 82 lin +297 132 gm +310 132 lin +297 134 gm +310 134 lin +297 183 gm +310 183 lin +297 185 gm +310 185 lin +297 254 gm +310 254 lin +297 256 gm +310 256 lin +297 291 gm +310 291 lin +297 293 gm +310 293 lin +297 328 gm +310 328 lin +297 330 gm +310 330 lin +297 365 gm +310 365 lin +297 367 gm +310 367 lin +297 401 gm +310 401 lin +297 403 gm +310 403 lin +297 488 gm +310 488 lin +297 490 gm +310 490 lin +297 525 gm +310 525 lin +297 527 gm +310 527 lin +323 105 gm +F 1 setTxMode +(5)show +323 149 gm +(2798)show +323 203 gm +(7280335)show +323 265 gm +(2.97)show +323 302 gm +(0.59)show +323 339 gm +(0.88)show +323 376 gm +(0.36)show +323 436 gm +(2602)show +323 499 gm +(4.04)show +311 82 gm +0 gr +311 82 lin +311 80 gm +311 80 lin +311 83 gm +311 131 lin +311 134 gm +311 134 lin +311 132 gm +311 132 lin +311 135 gm +311 182 lin +311 185 gm +311 185 lin +311 183 gm +311 183 lin +311 186 gm +311 253 lin +311 256 gm +311 256 lin +311 254 gm +311 254 lin +311 257 gm +311 290 lin +311 293 gm +311 293 lin +311 291 gm +311 291 lin +311 294 gm +311 327 lin +311 330 gm +311 330 lin +311 328 gm +311 328 lin +311 331 gm +311 364 lin +311 367 gm +311 367 lin +311 365 gm +311 365 lin +311 368 gm +311 400 lin +311 403 gm +311 403 lin +311 401 gm +311 401 lin +311 404 gm +311 487 lin +311 490 gm +311 490 lin +311 488 gm +311 488 lin +311 491 gm +311 524 lin +311 527 gm +311 527 lin +311 525 gm +311 525 lin +312 80 gm +325 80 lin +312 82 gm +325 82 lin +312 132 gm +325 132 lin +312 134 gm +325 134 lin +312 183 gm +325 183 lin +312 185 gm +325 185 lin +312 254 gm +325 254 lin +312 256 gm +325 256 lin +312 291 gm +325 291 lin +312 293 gm +325 293 lin +312 328 gm +325 328 lin +312 330 gm +325 330 lin +312 365 gm +325 365 lin +312 367 gm +325 367 lin +312 401 gm +325 401 lin +312 403 gm +325 403 lin +312 488 gm +325 488 lin +312 490 gm +325 490 lin +312 525 gm +325 525 lin +312 527 gm +325 527 lin +338 105 gm +F 1 setTxMode +(7)show +338 149 gm +(2223)show +338 203 gm +(8133582)show +338 265 gm +(3.73)show +338 302 gm +(0.53)show +338 339 gm +(0.89)show +338 376 gm +(0.52)show +338 436 gm +(3659)show +338 499 gm +(5.68)show +326 82 gm +0 gr +326 82 lin +326 80 gm +326 80 lin +326 83 gm +326 131 lin +326 134 gm +326 134 lin +326 132 gm +326 132 lin +326 135 gm +326 182 lin +326 185 gm +326 185 lin +326 183 gm +326 183 lin +326 186 gm +326 253 lin +326 256 gm +326 256 lin +326 254 gm +326 254 lin +326 257 gm +326 290 lin +326 293 gm +326 293 lin +326 291 gm +326 291 lin +326 294 gm +326 327 lin +326 330 gm +326 330 lin +326 328 gm +326 328 lin +326 331 gm +326 364 lin +326 367 gm +326 367 lin +326 365 gm +326 365 lin +326 368 gm +326 400 lin +326 403 gm +326 403 lin +326 401 gm +326 401 lin +326 404 gm +326 487 lin +326 490 gm +326 490 lin +326 488 gm +326 488 lin +326 491 gm +326 524 lin +326 527 gm +326 527 lin +326 525 gm +326 525 lin +327 80 gm +340 80 lin +327 82 gm +340 82 lin +327 132 gm +340 132 lin +327 134 gm +340 134 lin +327 183 gm +340 183 lin +327 185 gm +340 185 lin +327 254 gm +340 254 lin +327 256 gm +340 256 lin +327 291 gm +340 291 lin +327 293 gm +340 293 lin +327 328 gm +340 328 lin +327 330 gm +340 330 lin +327 365 gm +340 365 lin +327 367 gm +340 367 lin +327 401 gm +340 401 lin +327 403 gm +340 403 lin +327 488 gm +340 488 lin +327 490 gm +340 490 lin +327 525 gm +340 525 lin +327 527 gm +340 527 lin +353 105 gm +F 1 setTxMode +(9)show +353 149 gm +(1972)show +353 203 gm +(8541944)show +353 265 gm +(4.21)show +353 302 gm +(0.47)show +353 339 gm +(0.89)show +353 376 gm +(0.60)show +353 436 gm +(4332)show +353 499 gm +(6.72)show +341 82 gm +0 gr +341 82 lin +341 80 gm +341 80 lin +341 83 gm +341 131 lin +341 134 gm +341 134 lin +341 132 gm +341 132 lin +341 135 gm +341 182 lin +341 185 gm +341 185 lin +341 183 gm +341 183 lin +341 186 gm +341 253 lin +341 256 gm +341 256 lin +341 254 gm +341 254 lin +341 257 gm +341 290 lin +341 293 gm +341 293 lin +341 291 gm +341 291 lin +341 294 gm +341 327 lin +341 330 gm +341 330 lin +341 328 gm +341 328 lin +341 331 gm +341 364 lin +341 367 gm +341 367 lin +341 365 gm +341 365 lin +341 368 gm +341 400 lin +341 403 gm +341 403 lin +341 401 gm +341 401 lin +341 404 gm +341 487 lin +341 490 gm +341 490 lin +341 488 gm +341 488 lin +341 491 gm +341 524 lin +341 527 gm +341 527 lin +341 525 gm +341 525 lin +342 80 gm +355 80 lin +342 82 gm +355 82 lin +342 132 gm +355 132 lin +342 134 gm +355 134 lin +342 183 gm +355 183 lin +342 185 gm +355 185 lin +342 254 gm +355 254 lin +342 256 gm +355 256 lin +342 291 gm +355 291 lin +342 293 gm +355 293 lin +342 328 gm +355 328 lin +342 330 gm +355 330 lin +342 365 gm +355 365 lin +342 367 gm +355 367 lin +342 401 gm +355 401 lin +342 403 gm +355 403 lin +342 488 gm +355 488 lin +342 490 gm +355 490 lin +342 525 gm +355 525 lin +342 527 gm +355 527 lin +368 103 gm +F 1 setTxMode +(11)show +368 149 gm +(1663)show +368 203 gm +(8689459)show +368 265 gm +(4.99)show +368 302 gm +(0.45)show +368 339 gm +(0.89)show +368 376 gm +(0.62)show +368 436 gm +(5225)show +368 499 gm +(8.11)show +356 82 gm +0 gr +356 82 lin +356 80 gm +356 80 lin +356 83 gm +356 131 lin +356 134 gm +356 134 lin +356 132 gm +356 132 lin +356 135 gm +356 182 lin +356 185 gm +356 185 lin +356 183 gm +356 183 lin +356 186 gm +356 253 lin +356 256 gm +356 256 lin +356 254 gm +356 254 lin +356 257 gm +356 290 lin +356 293 gm +356 293 lin +356 291 gm +356 291 lin +356 294 gm +356 327 lin +356 330 gm +356 330 lin +356 328 gm +356 328 lin +356 331 gm +356 364 lin +356 367 gm +356 367 lin +356 365 gm +356 365 lin +356 368 gm +356 400 lin +356 403 gm +356 403 lin +356 401 gm +356 401 lin +356 404 gm +356 487 lin +356 490 gm +356 490 lin +356 488 gm +356 488 lin +356 491 gm +356 524 lin +356 527 gm +356 527 lin +356 525 gm +356 525 lin +357 80 gm +370 80 lin +357 82 gm +370 82 lin +373 80 gm +373 82 lin +371 80 gm +373 80 lin +371 82 gm +371 82 lin +371 82 lin +371 83 gm +371 131 lin +373 83 gm +373 131 lin +357 132 gm +370 132 lin +357 134 gm +370 134 lin +371 132 gm +371 134 lin +373 132 gm +373 134 lin +371 135 gm +371 182 lin +373 135 gm +373 182 lin +357 183 gm +370 183 lin +357 185 gm +370 185 lin +371 183 gm +371 185 lin +373 183 gm +373 185 lin +371 186 gm +371 253 lin +373 186 gm +373 253 lin +357 254 gm +370 254 lin +357 256 gm +370 256 lin +371 254 gm +371 256 lin +373 254 gm +373 256 lin +371 257 gm +371 290 lin +373 257 gm +373 290 lin +357 291 gm +370 291 lin +357 293 gm +370 293 lin +371 291 gm +371 293 lin +373 291 gm +373 293 lin +371 294 gm +371 327 lin +373 294 gm +373 327 lin +357 328 gm +370 328 lin +357 330 gm +370 330 lin +371 328 gm +371 330 lin +373 328 gm +373 330 lin +371 331 gm +371 364 lin +373 331 gm +373 364 lin +357 365 gm +370 365 lin +357 367 gm +370 367 lin +371 365 gm +371 367 lin +373 365 gm +373 367 lin +371 368 gm +371 400 lin +373 368 gm +373 400 lin +357 401 gm +370 401 lin +357 403 gm +370 403 lin +371 401 gm +371 403 lin +373 401 gm +373 403 lin +371 404 gm +371 487 lin +373 404 gm +373 487 lin +357 488 gm +370 488 lin +357 490 gm +370 490 lin +371 488 gm +371 490 lin +373 488 gm +373 490 lin +371 491 gm +371 524 lin +373 491 gm +373 524 lin +357 525 gm +370 525 lin +357 527 gm +370 527 lin +373 525 gm +373 527 lin +371 527 gm +373 527 lin +371 525 gm +371 525 lin +371 525 lin +385 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.20)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Young-brothers-wait \(Policy B\))show +401 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.80612 0. 32 0.08061 0.(These tables show several differences, although the policies are similar. Policy A gives a smaller)awidthshow +412 79 gm +0.13977 0. 32 0.01397 0.(search overhead, thanks to the signature tree; moreover, using less processors policy A is better than)awidthshow +423 79 gm +1.55426 0. 32 0.15542 0.(B. However, the production factor in A deteriorates with more processors, because the global)awidthshow +434 79 gm +0.20507 0. 32 0.02050 0.(condition it uses reduces the response time for each new task, even if there are "often" idle workers.)awidthshow +445 79 gm +0.20172 0. 32 0.02017 0.(On the other hand, policy B increments the average number of tasks in the agenda, and it lowers the)awidthshow +456 79 gm +0.15075 0. 32 0.01507 0.(coupling between the master and the workers. With 11 processors, we have a high production factor)awidthshow +467 79 gm +0.84869 0. 32 0.08486 0.(\(89%\). This algorithm results in a finer splitting and higher communication overhead due to task)awidthshow +478 79 gm +-0.00103 0.(distribution and collection of results. Let us try to analyze such an overhead. Look at the F)ashow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +(pm)show +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +( column)show +489 79 gm +0.65643 0. 32 0.06564 0.(in Fig.21: such values include also communication overhead. Thus, we should split F)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.20443 0.(pm)ashow +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.37826 0. 32 0.03782 0.( into F)awidthshow +9 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.25767 0.(pmr)ashow +500 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\(real productivity\) e OC \(communication overhead\):)show +529 98 gm +1 fs +10 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Procs)show +529 146 gm +(Fpm)show +529 181 gm +(Fpmr)show +529 223 gm +(OC)show +515 80 gm +0 gr +515 82 lin +515 80 gm +517 80 lin +517 82 gm +517 82 lin +517 82 lin +515 83 gm +515 135 lin +517 83 gm +517 135 lin +515 136 gm +515 138 lin +517 136 gm +517 138 lin +515 139 gm +515 172 lin +517 139 gm +517 172 lin +515 173 gm +515 175 lin +517 173 gm +517 175 lin +515 176 gm +515 209 lin +517 176 gm +517 209 lin +515 210 gm +515 212 lin +517 210 gm +517 212 lin +515 213 gm +515 246 lin +517 213 gm +517 246 lin +515 247 gm +515 249 lin +517 249 lin +517 247 gm +517 247 lin +517 247 lin +518 80 gm +531 80 lin +518 82 gm +531 82 lin +518 136 gm +531 136 lin +518 138 gm +531 138 lin +518 173 gm +531 173 lin +518 175 gm +531 175 lin +518 210 gm +531 210 lin +518 212 gm +531 212 lin +518 247 gm +531 247 lin +518 249 gm +531 249 lin +546 107 gm +F 1 setTxMode +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(3)show +546 147 gm +(0.85)show +546 184 gm +(0.84)show +546 221 gm +(0.01)show +532 82 gm +0 gr +534 82 lin +532 80 gm +534 80 lin +532 83 gm +532 135 lin +534 83 gm +534 135 lin +532 138 gm +532 138 lin +534 136 gm +534 136 lin +532 136 gm +532 136 lin +534 138 gm +534 138 lin +532 139 gm +532 172 lin +534 139 gm +534 172 lin +532 175 gm +532 175 lin +534 173 gm +534 173 lin +532 173 gm +532 173 lin +534 175 gm +534 175 lin +532 176 gm +532 209 lin +534 176 gm +534 209 lin +532 212 gm +532 212 lin +534 210 gm +534 210 lin +532 210 gm +532 210 lin +534 212 gm +534 212 lin +532 213 gm +532 246 lin +534 213 gm +534 246 lin +532 249 gm +534 249 lin +532 247 gm +534 247 lin +535 80 gm +548 80 lin +535 82 gm +548 82 lin +535 136 gm +548 136 lin +535 138 gm +548 138 lin +535 173 gm +548 173 lin +535 175 gm +548 175 lin +535 210 gm +548 210 lin +535 212 gm +548 212 lin +535 247 gm +548 247 lin +535 249 gm +548 249 lin +561 107 gm +F 1 setTxMode +(5)show +561 147 gm +(0.88)show +561 184 gm +(0.80)show +561 221 gm +(0.08)show +549 82 gm +0 gr +549 82 lin +549 80 gm +549 80 lin +549 83 gm +549 135 lin +549 138 gm +549 138 lin +549 136 gm +549 136 lin +549 139 gm +549 172 lin +549 175 gm +549 175 lin +549 173 gm +549 173 lin +549 176 gm +549 209 lin +549 212 gm +549 212 lin +549 210 gm +549 210 lin +549 213 gm +549 246 lin +549 249 gm +549 249 lin +549 247 gm +549 247 lin +550 80 gm +563 80 lin +550 82 gm +563 82 lin +550 136 gm +563 136 lin +550 138 gm +563 138 lin +550 173 gm +563 173 lin +550 175 gm +563 175 lin +550 210 gm +563 210 lin +550 212 gm +563 212 lin +550 247 gm +563 247 lin +550 249 gm +563 249 lin +576 107 gm +F 1 setTxMode +(7)show +576 147 gm +(0.89)show +576 184 gm +(0.80)show +576 221 gm +(0.09)show +564 82 gm +0 gr +564 82 lin +564 80 gm +564 80 lin +564 83 gm +564 135 lin +564 138 gm +564 138 lin +564 136 gm +564 136 lin +564 139 gm +564 172 lin +564 175 gm +564 175 lin +564 173 gm +564 173 lin +564 176 gm +564 209 lin +564 212 gm +564 212 lin +564 210 gm +564 210 lin +564 213 gm +564 246 lin +564 249 gm +564 249 lin +564 247 gm +564 247 lin +565 80 gm +578 80 lin +565 82 gm +578 82 lin +565 136 gm +578 136 lin +565 138 gm +578 138 lin +565 173 gm +578 173 lin +565 175 gm +578 175 lin +565 210 gm +578 210 lin +565 212 gm +578 212 lin +565 247 gm +578 247 lin +565 249 gm +578 249 lin +591 107 gm +F 1 setTxMode +(9)show +591 147 gm +(0.89)show +591 184 gm +(0.75)show +591 221 gm +(0.14)show +579 82 gm +0 gr +579 82 lin +579 80 gm +579 80 lin +579 83 gm +579 135 lin +579 138 gm +579 138 lin +579 136 gm +579 136 lin +579 139 gm +579 172 lin +579 175 gm +579 175 lin +579 173 gm +579 173 lin +579 176 gm +579 209 lin +579 212 gm +579 212 lin +579 210 gm +579 210 lin +579 213 gm +579 246 lin +579 249 gm +579 249 lin +579 247 gm +579 247 lin +580 80 gm +593 80 lin +580 82 gm +593 82 lin +580 136 gm +593 136 lin +580 138 gm +593 138 lin +580 173 gm +593 173 lin +580 175 gm +593 175 lin +580 210 gm +593 210 lin +580 212 gm +593 212 lin +580 247 gm +593 247 lin +580 249 gm +593 249 lin +606 105 gm +F 1 setTxMode +(11)show +606 147 gm +(0.89)show +606 184 gm +(0.73)show +606 221 gm +(0.16)show +594 82 gm +0 gr +594 82 lin +594 80 gm +594 80 lin +594 83 gm +594 135 lin +594 138 gm +594 138 lin +594 136 gm +594 136 lin +594 139 gm +594 172 lin +594 175 gm +594 175 lin +594 173 gm +594 173 lin +594 176 gm +594 209 lin +594 212 gm +594 212 lin +594 210 gm +594 210 lin +594 213 gm +594 246 lin +594 249 gm +594 249 lin +594 247 gm +594 247 lin +595 80 gm +608 80 lin +595 82 gm +608 82 lin +611 80 gm +611 82 lin +609 80 gm +611 80 lin +609 82 gm +609 82 lin +609 82 lin +609 83 gm +609 135 lin +611 83 gm +611 135 lin +595 136 gm +608 136 lin +595 138 gm +608 138 lin +609 136 gm +609 138 lin +611 136 gm +611 138 lin +609 139 gm +609 172 lin +611 139 gm +611 172 lin +595 173 gm +608 173 lin +595 175 gm +608 175 lin +609 173 gm +609 175 lin +611 173 gm +611 175 lin +609 176 gm +609 209 lin +611 176 gm +611 209 lin +595 210 gm +608 210 lin +595 212 gm +608 212 lin +609 210 gm +609 212 lin +611 210 gm +611 212 lin +609 213 gm +609 246 lin +611 213 gm +611 246 lin +595 247 gm +608 247 lin +595 249 gm +608 249 lin +611 247 gm +611 249 lin +609 249 gm +611 249 lin +609 247 gm +609 247 lin +609 247 lin +623 79 gm +F 1 setTxMode +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +(Fig.21)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Policy B: analyizing the average production factor)show +639 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +2.32254 0. 32 0.23225 0.(Such a table shows that the cost to be paid for communication overhead on a network of)awidthshow +650 79 gm +(workstations is high.)show +680 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(6. Conclusions)show +693 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.09750 0. 32 0.00975 0.(We have compared a number of parallel search algorithms in the domain of chess. We used Linda to)awidthshow +704 79 gm +2.65197 0. 32 0.26519 0.(develop two basic programs, one for static splitting and one for dynamic splitting. Their)awidthshow +715 79 gm +1.17568 0. 32 0.11756 0.(performances were progressively improved, especially using democratic cooperation with a low)awidthshow +726 79 gm +0.44967 0. 32 0.04496 0.(number of processors. For all algorithms we have sistematically measured the speedup S. We have)awidthshow +737 79 gm +0.63659 0. 32 0.06365 0.(seen that the theoretically optimum speedup S=N with N processors is impossible to reach for the)awidthshow +748 79 gm +(following reasons:)show +F T cp +%%Page: ? 19 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 336 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(A Comparison of Parallel Search Algorithms)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(17)show +118 88 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +(\245\312commmunication overhead, given by messages betwen processors;)show +131 88 gm +(\245\312search overhead, given by duplication of subtree evaluation;)show +144 88 gm +(\245\312synchronisation overhead, given by bad load balancing.)show +156 79 gm +0.64361 0. 32 0.06436 0.(The most annoying problem is the coupling among these overheads: if we tried to reduce one, we)awidthshow +167 79 gm +0.73684 0. 32 0.07368 0.(got always an increase in another. For instance, the algorithm with dynamic splitting of the game)awidthshow +178 79 gm +0.86013 0. 32 0.08601 0.(tree top level \(Fig.15\) gives the best load balancing \(Fpm=90% with 11 processors\), but also the)awidthshow +189 79 gm +(worst search overhead \(SO=108% with 11 processors\).)show +200 79 gm +0.15335 0. 32 0.01533 0.(Thus, we searched for a tradeoff among the overheads. Our results say that the best results are given)awidthshow +211 79 gm +1.15768 0. 32 0.11576 0.(by PVSplit combined either with score sharing \(S=5.57 with 11 processors; see Fig.13\) or with)awidthshow +222 79 gm +(dynamic distribution \(S=5.58 with 11 processors; see Fig.16\).)show +233 79 gm +1.33804 0. 32 0.13380 0.(Our results can easily be compared with results obtained by other researchers. For instance, in)awidthshow +244 79 gm +0.79193 0. 32 0.07919 0.([MOS86] a speedup of 3.66 with 5 workstations is reported; such a measure was obtained with a)awidthshow +255 79 gm +0.22323 0. 32 0.02232 0.(depth of 7 plies on the Bratko-Kopec test; with a shallower depth \(5 plies\) we got a speedup of 3.49)awidthshow +266 79 gm +1.10260 0. 32 0.11026 0.(\(3.75 with score sharing\). In [Sch89] a speedup of 4.78 with 7 processors, depth of 7 plies was)awidthshow +277 79 gm +0.07385 0. 32 0.00738 0.(obtained for DPVSplit; we got a speedup of 4.54 \(depth = 5 plies\). These results seem to say that the)awidthshow +288 79 gm +1.30981 0. 32 0.13098 0.(use of the Linda programming model does not introduce any special overhead for this class of)awidthshow +299 79 gm +(programs.)show +310 79 gm +0.55175 0. 32 0.05517 0.(On the other hand, we got bad comparison results for algorithms based on dynamic distribution of)awidthshow +321 79 gm +2.16812 0. 32 0.21681 0.(search. However, the problem seems to be the hardware architecture, not the programming)awidthshow +332 79 gm +(environment; in fact, we found the following results in literature:)show +345 88 gm +10 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.34454 0. 32 0.03445 0.(\245\312[Eli90] reports that the program Oracol, based on dynamic splitting and written in Orca, gets a maximum)awidthshow +356 101 gm +(speedup of 5.5 on a multiprocessor with shared memory and 10 processors.)show +369 88 gm +1.61331 0. 32 0.16133 0.(\245\312[FMM92] presents a dynamic algorithm based on "young-brothers-wait". On a transputer with 256)awidthshow +380 101 gm +(processors, the authors report a surprising speedup of 126 \(depth 8-plies\).)show +391 79 gm +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.74722 0. 32 0.07472 0.(These results suggest that dynamic splitting algorithms can offer good performances, but only on)awidthshow +402 79 gm +0.29296 0. 32 0.02929 0.(shared memory or on massive parallel systems where communication and fine-grain parallelism are)awidthshow +413 79 gm +0.30899 0. 32 0.03089 0.(cheap. It would be interesting to test out general dynamic splitting algorithm on these architectures.)awidthshow +424 79 gm +1.09130 0. 32 0.10913 0.(Also, it would be interesting to verify in massively parallel machines the asyntotic convergence)awidthshow +435 79 gm +(postulated in [MOS86] for static splitting methods .)show +457 79 gm +1 fs +bu fc +2 F /|______Times-Bold fnt +bn +0.00860 0.(Acknowledgements)ashow +457 170 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +3.80035 0. 32 0.38003 0.(. This paper has been partially supported by ESPRIT BRA Project)awidthshow +468 79 gm +0.03295 0. 32 0.00329 0.(BROADCAST and by Italian CNR.)awidthshow +F T cp +%%Page: ? 20 +op +30 28 811 566 fr +0 0 xl +1 1 pen +0 0 gm +(nc 0 0 0 0 6 rc)kp +91 476 gm +(nc 30 28 811 566 6 rc)kp +F 1 setTxMode +0 fs +10 fz +bu fc +2 F /|______Helvetica fnt +bn +(Bibliography)show +773 79 gm +(UBLCS-94-14)show +773 514 gm +(18)show +134 79 gm +1 fs +12 fz +bu fc +2 F /|______Times-Bold fnt +bn +(Bibliography)show +158 79 gm +0 fs +11 fz +bu fc +2 F /|______Times-Roman fnt +bn +0.00982 0.([ABD82])ashow +158 130 gm +0.88424 0. 32 0.08842 0.(S.Akl, D.Barnard, R.Doran, "Design, Analysis, and Implementation of a Parallel Tree)awidthshow +169 130 gm +0.81619 0. 32 0.08161 0.(Search Algorithm", )awidthshow +169 221 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.82031 0. 32 0.08203 0.(IEEE Transactions on Pattern Analysis and Machine Intelligence,)awidthshow +180 130 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(4\(2\), \(1982\), 192-203.)show +191 79 gm +0.11459 0. 32 0.01145 0.([BalvRe86] H.Bal, R.vanRenesse, "A summary of parallel alpha-beta search results", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.16403 0. 32 0.01640 0.(ICCA Journal)awidthshow +191 520 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(,)show +202 130 gm +(\(Sep.1986\), 146-149.)show +213 79 gm +0.00852 0.([Bau78])ashow +213 130 gm +0.95748 0. 32 0.09574 0.(G.Baudet, "The design and analysis of algorithms for asynchronous multiprocessors",)awidthshow +224 130 gm +(Ph.D. Thesis, CS Dept., Carnegie-Mellon Univ., \(Apr.1978\).)show +235 79 gm +1.93359 0. 32 0.19335 0.([BraKop82] I.Bratko, D.Kopec, "The Bratko-Kopec experiment: a comparison of human and)awidthshow +246 130 gm +1.90719 0. 32 0.19071 0.(computer performance in chess", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.87927 0. 32 0.18792 0.(Advances in Computer Chess 3)awidthshow +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.51840 0. 32 0.15184 0.(, M Clarke \(Ed.\),)awidthshow +257 130 gm +(\(1982\), 57)show +257 175 gm +(-72, Pergamon Press.)show +268 79 gm +0.81268 0. 32 0.08126 0.([CarGel90] N.Carriero, D.Gelernter, )awidthshow +268 247 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.04995 0. 32 0.10499 0.(How to write parallel programs. A first course)awidthshow +268 464 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.11068 0. 32 0.11106 0.(, MIT Press,)awidthshow +279 130 gm +(1990.)show +290 79 gm +([Ebe86])show +290 130 gm +(C.Ebeling, )show +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(All the Right Moves: A VLSI Architecture for Chess)show +290 406 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, MIT Press, 1986.)show +301 79 gm +([Eli90])show +301 130 gm +0.07461 0. 32 0.00746 0.(R.Elias, "Oracol, A Chess Problem Solver in Orca", Dept. of Mathematics and Computer)awidthshow +312 130 gm +(Science, Vrije Universiteit, Amsterdam, \(1990\).)show +323 79 gm +([Elo86])show +323 130 gm +(A.Elo, The Rating of Chessplayers: Past and Present, 2nd Ed., Arco, 1986.)show +334 79 gm +0.01040 0.([FMM91])ashow +334 130 gm +0.47592 0. 32 0.04759 0.(R.Feldmann, P.Mysliwietz, B.Monien, "A Fully Distributed Chess Program", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.12760 0.(Advances)ashow +345 130 gm +(in computer chess)show +345 209 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +( 6, D. Beal \(Ed.\), \(1991\), 1)show +345 330 gm +(-27.)show +356 79 gm +0.01040 0.([FMM92])ashow +356 130 gm +1.51596 0. 32 0.15159 0.(R.Feldmann, P.Mysliwietz, B.Monien, "Experiments with a Fully-Distributed Chess)awidthshow +367 130 gm +1.80343 0. 32 0.18034 0.(Program", )awidthshow +367 181 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.83212 0. 32 0.18321 0.(Heuristic Programming in AI)awidthshow +367 321 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.69158 0. 32 0.16915 0.(, J.VanDenHerik and\312V.Allis \(Eds.\), Hellis)awidthshow +378 130 gm +(Horwood, \(1992\), 72-87.)show +389 79 gm +0.00732 0.([FelOtt88])ashow +389 130 gm +2.39242 0. 32 0.23924 0.(E.Felten, S.Otto, "A Highly Parallel Chess Program", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +2.52624 0. 32 0.25262 0.(Proc. of the International)awidthshow +400 130 gm +(Conference on Fifth Generation Computer Systems)show +400 356 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, \(1988\), 1001-1009.)show +411 79 gm +0.00732 0.([FisFin80])ashow +411 130 gm +0.42098 0. 32 0.04209 0.(J.Fishburn, R.Finkel, "Parallelism in Alpha-Beta Search on Arachne", Technical Report)awidthshow +422 130 gm +(394, CS. Dept., Univ. of Wisconsin, Madison, \(Jul.1980\).)show +433 79 gm +0.00732 0.([FinFis82])ashow +433 130 gm +0.40954 0. 32 0.04095 0.(J.Fishburn, R.Finkel, "Parallelism in alpha-beta search", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.57022 0. 32 0.05702 0.(Artificial Intelligence)awidthshow +433 479 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +0.62805 0. 32 0.06280 0.(, Vol. 19,)awidthshow +444 130 gm +(\(1982\), 89)show +444 175 gm +(-106.)show +455 79 gm +0.21102 0. 32 0.02110 0.([FMMV89] R.Feldmann, P.Mysliwietz, B.Monien, O.Vornberger, "Distributed Game-Tree Search",)awidthshow +466 130 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(ICCA Journal)show +466 192 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, Vol.12, No.2, \(1989\), 65-73.)show +477 79 gm +([Gil72])show +477 130 gm +1.13174 0. 32 0.11317 0.(J.Gillogly, "The Technology Chess Program", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.52526 0. 32 0.15252 0.(Artificial Intelligence)awidthshow +477 445 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.66229 0. 32 0.16622 0.(, Vol. 3, \(1972\),)awidthshow +488 130 gm +(145-163.)show +499 79 gm +0.00852 0.([Hsu90])ashow +499 130 gm +0.22567 0. 32 0.02256 0.(F.Hsu, "Large scale parallelization of alpha)awidthshow +499 323 gm +0.22186 0. 32 0.02218 0.(-beta search: an algorithmic and architectural)awidthshow +510 130 gm +0.32073 0. 32 0.03207 0.(study with computer chess", Ph.D. thesis, Carnegie Mellon University, Pittsburgh, \(Feb.)awidthshow +521 130 gm +(1990\).)show +532 79 gm +0.00939 0.([SCA90])ashow +532 130 gm +2.24731 0. 32 0.22473 0.("C-Linda Reference Manual", Scientific Computing Associates Inc., New Haven,)awidthshow +543 130 gm +(Connecticut, \(1990\).)show +554 79 gm +0.00982 0.([MBS91])ashow +554 130 gm +1.20208 0. 32 0.12020 0.(T.Marsland, T.Breitkreutz, S.Sutphen, \322A network multiprocessor for experiments in)awidthshow +565 130 gm +(parallelism\323, )show +565 189 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Concurrency: Practice and Experience)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, 3\(3\), \(Jun.1991\), 203-219.)show +576 79 gm +0.81314 0. 32 0.08131 0.([MarCam82] T.Marsland, M.Campbell, "Parallel Search of Strongly Ordered Game Trees", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +0.43041 0.(ACM)ashow +587 130 gm +(Computing Surveys)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, Vol.14, No.4, \(Dec.1982\), 533-551.)show +598 79 gm +0.00996 0.([MOS86])ashow +598 130 gm +3.57879 0. 32 0.35787 0.(T.Marsland, M.Olafsson,J.Schaeffer, "Multiprocessor tree-search experiments",)awidthshow +609 130 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(Adavances in Computer Chess 4)show +609 273 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, Pergamon Press, \(1986\), 37-51.)show +620 79 gm +([Sch89])show +620 130 gm +1.27441 0. 32 0.12744 0.(J.Schaeffer, "Distributed Game-Tree Searching", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.08673 0. 32 0.10867 0.(Journal of Parallel and Distributed)awidthshow +631 130 gm +(Computing)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, 6, \(1989\), 90-114.)show +642 79 gm +([Sti91])show +642 130 gm +3.38684 0. 32 0.33868 0.(L.Stiller, "Group Graphs and Computational Symmetry on Massively Parallel)awidthshow +653 130 gm +(Architecture", )show +653 195 gm +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +(The Journal of Supercomputing)show +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +(, 5, \(1991\), 99-117.)show +664 79 gm +0.00852 0.([Tho82])ashow +664 130 gm +1.79061 0. 32 0.17906 0.(K.Thompson, "Computer Chess Strength", )awidthshow +2 fs +bu fc +2 F /|______Times-Italic fnt +bn +1.52160 0. 32 0.15216 0.(Advances in Computer Chess 3)awidthshow +664 481 gm +0 fs +bu fc +2 F /|______Times-Roman fnt +bn +1.78756 0. 32 0.17875 0.(, M.R.B.)awidthshow +675 130 gm +(Clarke \(Ed.\), Pergamon Press, \(1982\), 55-56.)show +F T cp +%%Trailer +cd +end +%%Pages: 20 0 +%%EOF diff --git a/parallel/dop7.ps b/parallel/dop7.ps new file mode 100755 index 0000000..eff0ac1 --- /dev/null +++ b/parallel/dop7.ps @@ -0,0 +1,1844 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: dop7.dvi +%%Pages: 14 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%DocumentFonts: Helvetica Courier Helvetica-Bold Helvetica-Oblique +%%DocumentPaperSizes: Letter +%%EndComments +%DVIPSCommandLine: dvips -o dop7.ps dop7 +%DVIPSParameters: dpi=600, comments removed +%DVIPSSource: TeX output 1998.10.27:1114 +%%BeginProcSet: fix-lj4si-ps-bug.pro +/fixcurrentmatrix { + statusdict /product known { + statusdict /product get (HP LaserJet 4Si) eq { + /version where { + /version get (2011.110) eq { + matrix currentmatrix + dup dup 0 get 32768 mul round 32768 div 0 exch put + dup dup 3 get 32768 mul round 32768 div 3 exch put + systemdict /setmatrix get exec + } if + } if + } if + } if +} bind def + +/setmatrix { + systemdict /setmatrix get exec + fixcurrentmatrix +} bind def +%%EndProcSet +%%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: Helvetica +% @@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 (dop7.dvi) +@start /Fa 134[45 1[45 45 45 45 45 45 45 45 45 45 45 +45 45 1[45 45 45 45 45 45 45 45 45 38[45 10[45 45 46[{ + TeXBase1Encoding ReEncodeFont }26 75.000000 /Courier +rf /Fb 82[25 50[37 37 1[54 37 42 21 37 25 42 42 42 42 +62 17 2[17 42 42 21 42 42 37 42 42 12[46 50 54 1[50 58 +54 62 42 1[37 21 54 58 46 50 54 54 50 50 6[21 42 42 1[42 +42 3[42 2[21 1[21 41[37 2[{ TeXBase1Encoding ReEncodeFont }51 +75.000000 /Helvetica-Oblique rf /Fc 3 50 df<7FFFFFFFFFFF80FFFFFFFFFFFFC0 +FFFFFFFFFFFFC07FFFFFFFFFFF803204799641>0 D<6000000006F80000000FFC000000 +1F7E0000003F3F0000007E1F800000FC0FC00001F807E00003F003F00007E001F8000FC0 +00FC001F80007E003F00003F007E00001F80FC00000FC1F8000007E3F0000003F7E00000 +01FFC0000000FF800000007F000000007F00000000FF80000001FFC0000003F7E0000007 +E3F000000FC1F800001F80FC00003F007E00007E003F0000FC001F8001F8000FC003F000 +07E007E00003F00FC00001F81F800000FC3F0000007E7E0000003FFC0000001FF8000000 +0F6000000006282874A841>2 D<000FF000000007F000003FFE0000003FFE0000FFFF80 +0000FFFF0003FFFFC00003F807C007F07FF00007C001E00F801FF8000F8000F00F0007FC +003E0000701E0003FE007C0000383C0001FF007800001C380000FF80F000001C7000007F +C1F000000E7000003FE3E000000E6000001FF3C00000066000001FF780000006E000000F +FF80000007C0000007FF00000003C0000003FE00000003C0000003FE00000003C0000001 +FF00000003C0000000FF80000003C00000007FC0000003C00000007FC0000003C0000000 +FFE0000003E0000001FFF000000760000001EFF800000660000003CFF800000670000007 +C7FC00000E7000000F83FE00000E3800000F01FF00001C3800001E00FF80003C1C00003E +007FC000780E00007C003FE000F00F0001F0001FF801F0078003E0000FFE0FE003E01FC0 +0003FFFFC000FFFF000001FFFF00007FFC0000007FFC00000FE00000000FF00048267BA4 +53>49 D E /Fd 82[28 56[28 46 32 1[51 51 51 74 23 2[23 +51 1[28 46 1[46 1[46 12[51 55 2[55 8[65 51 3[60 66[{ + TeXBase1Encoding ReEncodeFont }21 83.333336 /Helvetica-Bold +rf /Fe 7 121 df<387CFEFEFE7C3807077A8614>58 D<001F8000007FC00000F0E70003 +C03F0007803F000F001F000F001F001E001F003E003E003C003E007C003E007C003E00F8 +007C00F8007C00F8007C00F8007C00F000F800F000F830F000F830F000F830F001F060F0 +01F0607803F060780EF0C03C1CF9801FF07F8007C01E001C1B7C9924>97 +D<000FE0003FF800F81C01E00E03803E07807E0F007E1E007C3E007C3C00007C00007C00 +00F80000F80000F80000F80000F00000F00000F00000F00004F0000C7800187800303C00 +E01E07C00FFF0003F800171B7C991E>99 D<000FC0007FF000F03803C01C07801C0F001C +1F001C1E001C3E00387C00707C07E07FFF80FFFC00F80000F80000F80000F80000F00000 +F00000F0000478000C7800183800303C00E01E07C00FFF0003F800161B7C991F>101 +D<00F007C001FC1FF0031E7878061EE03C061FC01C0C1F801E0C1F001E0C3F001E183F00 +1F183E001F003E001F007E001F007E003E007C003E007C003E00FC003E00FC007C00F800 +7C00F8007801F800F001F800F001F801E001F803C003FC078003FE1F0003E7FC0003E1F0 +0007E0000007E0000007C0000007C000000FC000000FC000000F8000001F800000FFF800 +00FFF800002025809922>112 D<000FE0007FF800F03C01C00E03C01E07803E07803E07 +803C0F80180FE00007FF0007FFC003FFE001FFF000FFF80007F80001F83C00F87E00787E +0078FC00F0F800F07001E07003C03C0F801FFE0007F800171B7C991F>115 +D<007C03C001FF0FF007079C300E03B0780C03F0F81803E1F83003E1F83003E1F06007C0 +E06007C0000007C0000007C000000F8000000F8000000F8000000F8000001F0000001F00 +30381F00307C1F0060FC3E0060FC3E00C0F87E00C0F06F038070C707003F83FE001F01F8 +001D1B7D9926>120 D E /Ff 5 94 df<0000600000E00001C0000380000700000E0000 +1E00003C0000780000780000F00001E00001E00003C00003C00007C0000780000F80000F +00000F00001F00001E00001E00003E00003E00003E00007C00007C00007C00007C00007C +00007C0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8 +0000F80000F80000F80000F80000F80000F80000F800007C00007C00007C00007C00007C +00007C00003E00003E00003E00001E00001E00001F00000F00000F00000F800007800007 +C00003C00003C00001E00001E00000F000007800007800003C00001E00000E0000070000 +03800001C00000E0000060135278BD20>40 DI<00000030000000000000780000000000 +007800000000000078000000000000780000000000007800000000000078000000000000 +780000000000007800000000000078000000000000780000000000007800000000000078 +000000000000780000000000007800000000000078000000000000780000000000007800 +000000000078000000000000780000000000007800000000000078000000000000780000 +0000000078000000000000780000007FFFFFFFFFFFF8FFFFFFFFFFFFFCFFFFFFFFFFFFFC +7FFFFFFFFFFFF80000007800000000000078000000000000780000000000007800000000 +000078000000000000780000000000007800000000000078000000000000780000000000 +007800000000000078000000000000780000000000007800000000000078000000000000 +780000000000007800000000000078000000000000780000000000007800000000000078 +000000000000780000000000007800000000000078000000000000780000000000003000 +000036367BAF41>43 D91 D93 +D E /Fg 206[28 49[{ TeXBase1Encoding ReEncodeFont }1 +50.000000 /Helvetica rf /Fh 202[32 2[32 32 32 48[{ + TeXBase1Encoding ReEncodeFont }4 58.333336 /Helvetica +rf /Fi 12 117 df<00003FC000000000FFF800000007E07C0000000F801F0000003F00 +1F800C007E000F800C00FC0007C01C01F80007E01803F00007E01807E00003E0380FE000 +03F0300FC00003F0301FC00003F0703F800003F0603F800003F0E07F800003F0C07F0000 +03F1C07F000003F1807F000003F380FF000003F300FE000003F700FE000003FE00FE0000 +03FC00FE000003FC00FC000003F800FC000003F000FC000003F000FC000003F000FC0000 +03F0007E000007F0007E00000FF0003E00001DF8183F000079F8181F0000E1F8380F8007 +C0F83007E03F007CF001FFF8003FC0003FC0000F802E267DA435>11 +D<00000001FC0000000007FF800000001E07C00000007801E0000000E001F0000001C000 +F80000038000F80000070000F800000E0000FC00001C0000FC0000380000FC0000300000 +FC0000700001FC0000600001F80000E00001F80000C00001F80001C00003F80001800003 +F00003800003F00003000007E00003000007C0000700000FC0000600001F80000600FFBF +00000E01FFFC00000C0381F800000C03FFFE00000C00FF1F00001C00001F80001800000F +80001800000FC0001800000FC0003800000FC00030000007E00030000007E0003000000F +E0007000000FE0006000000FE0006000000FE0006000000FE000E000001FE000C000001F +C000C000001FC000C000001FC001C000003FC001C000003F8001C000003F8001C000007F +0003C000007F0003C00000FE0003C00000FC0003E00001F80007600003F00006700007E0 +000638000FC000061C001F80000E0E003F00000C0780FC00000C01FFF000000C007F8000 +001C00000000001800000000001800000000001800000000003800000000003000000000 +003000000000003000000000007000000000006000000000006000000000006000000000 +00E00000000000C00000000000C000000000002E4B7EBA2F>I<00003FF00001FFF0000F +FFE0003FC000007F000000FC000003F8000007F0000007E000000FE000001FC000001FC0 +00003F8000003F8000007FFFFE007FFFFF007FFFFF007F000000FF000000FE000000FE00 +0000FE000000FE000000FE0000007E0000007E0000007E0000007E0000003E0000003F00 +00001F0000000F8000600FC000E003E003C001F01F00007FFC00000FE0001C257DA322> +15 D<1C007F00FF80FF80FF80FF80FF807F001C000909798817>58 +D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C001C001800180038003 +00070006000E001C003800700060000A19798817>I<0000000C0000001E0000003E0000 +003E0000003C0000007C0000007C00000078000000F8000000F8000000F0000001F00000 +01F0000001E0000003E0000003E0000003C0000007C0000007C00000078000000F800000 +0F8000000F0000001F0000001F0000001E0000003E0000003E0000003C0000007C000000 +7C00000078000000F8000000F8000000F0000001F0000001F0000001E0000003E0000003 +E0000007C0000007C00000078000000F8000000F8000000F0000001F0000001F0000001E +0000003E0000003E0000003C0000007C0000007C00000078000000F8000000F8000000F0 +000001F0000001F0000001E0000003E0000003E0000003C0000007C0000007C000000780 +00000F8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000003C00 +00007C0000007C00000078000000F8000000F8000000F0000000600000001F537BBD2A> +61 D<00000001FF00000000001FFFF000000000FE01FC00000003F0007E00000007C000 +1F8000001F80000FC000003E000007E00000FC000003F00001F8000003F00003F0000001 +F80007E0000001F8000FC0000000FC001F80000000FC003F00000000FE007F000000007E +00FE000000007E00FC000000007F01FC000000007F03F8000000007F03F8000000007F07 +F0000000007F07F0000000007F0FF0000000007F0FE0000000007F1FE000000000FF1FE0 +00000000FF3FC000000000FF3FC000000000FF3FC000000000FF7F8000000001FE7F8000 +000001FE7F8000000001FE7F8000000001FEFF8000000003FCFF0000000003FCFF000000 +0003FCFF0000000007F8FF0000000007F8FF000000000FF0FF000000000FF0FF00000000 +0FE0FF000000001FE0FF000000001FC0FF000000003F807F000000007F807F000000007F +007F00000000FE007F00000001FC003F80000001F8003F80000003F8001F80000007F000 +1FC000000FE0000FC000001F800007E000003F000007F000007E000003F00001F8000001 +FC0003F00000007E000FC00000003F807F0000000007FFF80000000000FF80000000383D +7CBA3F>79 D<7FFFFC01FFFFF800FFFF80FFFFFC01FFFFF800FFFF80FFFFFC01FFFFF000 +FFFF8003FF000007FC00000FF80003FC000007F8000003E00001FC000007F8000003C000 +01FC000003F8000003800001FC000003F8000003000001FC000003F8000007000001FC00 +0003F8000006000001FC000007F800000C000001FC000007F800000C000001FC00000FF8 +000018000001FC00000FF8000018000001FC00001BF8000030000001FC00001BF8000060 +000001FC000033F8000060000001FE000073F80000C0000001FE000063F80000C0000000 +FE0000C3F8000180000000FE0000C3FC000180000000FE000183FC000300000000FE0001 +81FC000700000000FE000301FC000600000000FE000701FC000C00000000FE000601FC00 +0C00000000FE000C01FC001800000000FE000C01FC001800000000FE001801FC00300000 +0000FE001801FC007000000000FE003001FC006000000000FE003001FC00C000000000FE +006001FC00C000000000FF00E001FC018000000000FF00C001FC0180000000007F018001 +FC0300000000007F018001FE0300000000007F030001FE0600000000007F030000FE0E00 +000000007F060000FE0C00000000007F0E0000FE1800000000007F0C0000FE1800000000 +007F180000FE3000000000007F180000FE3000000000007F300000FE6000000000007F30 +0000FEE000000000007F600000FEC000000000007F600000FF8000000000007FC00000FF +8000000000007F800000FF0000000000007F800000FF0000000000003F000000FE000000 +0000003F000000FE0000000000003E0000007C0000000000003E00000078000000000000 +3C000000780000000000003C000000700000000000003800000070000000000000300000 +00600000000000513B7CB84E>87 D<0003F0000001FFF0000001FFF0000001FFF0000000 +07F000000007E000000007E000000007E00000000FE00000000FC00000000FC00000000F +C00000001FC00000001F800000001F800000001F800000003F800000003F000000003F00 +0000003F000000007F000000007E0007C0007E001FF0007E00783800FE00E0F800FC01C1 +FC00FC0383FC00FC0707FC01FC0E07FC01F81C07F801F83803F001F87001E003F8E00000 +03F1C0000003F380000003F700000007FE00000007FE00000007FFE0000007E7F800000F +E0FE00000FC07F00000FC03F80000FC01F80001FC01FC0001F800FC0301F800FC0301F80 +0FC0703F801FC0603F001F80603F001F80603F001F80E07F001F80C07E001F81C07E000F +81807E000F8380FE00078700FC0003FE00380000F800263B7CB92B>107 +D<03E0007F000007F801FFE0000E3C0781F0001C3E1E00F800383F3800FC00303F7000FC +00303FE0007C00703FC0007C00603F80007C00603F80007C00E03F0000FC00C07F0000FC +00C07E0000FC00C07E0000FC00007E0001FC0000FE0001F80000FC0001F80000FC0001F8 +0000FC0003F80001FC0003F00001F80003F00001F80007F00001F80007E00003F80007E0 +0003F0000FE03003F0000FC03003F0001FC07007F0001F806007E0001F806007E0001F80 +E007E0001F00C00FE0001F01C00FC0001F01800FC0001F03800FC0001F07001FC0000F0E +001F800007FC0007000001F0002C267EA432>110 D<000F8003F000001FE00FFC000039 +F03C1F000070F8700F8000E0FDE007C000C0FF8007C000C0FF0007E001C0FE0003E00180 +FE0003F00180FC0003F00381FC0003F00301FC0003F00301F80003F00301F80003F00003 +F80007F00003F80007F00003F00007F00003F00007F00007F0000FF00007F0000FF00007 +E0000FE00007E0000FE0000FE0001FE0000FE0001FC0000FC0001FC0000FC0003F80001F +C0003F80001FC0007F00001F80007E00001F8000FE00003F8000FC00003FC001F800003F +C003F000003FE007E000007F700F8000007F383F0000007E1FFC0000007E07E0000000FE +0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001F8 +0000000001F80000000003F80000000003F80000000003F00000000007F000000000FFFF +C0000000FFFFC0000000FFFFC00000002C3583A42A>112 D<0001C0000003E0000007E0 +000007E0000007E0000007E000000FE000000FC000000FC000000FC000001FC000001F80 +00001F8000001F8000003F8000003F00007FFFFF807FFFFF80FFFFFF80007E0000007E00 +00007E000000FE000000FC000000FC000000FC000001FC000001F8000001F8000001F800 +0003F8000003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE000 +000FC006000FC006000FC00E001FC00C001F801C001F8018001F8038001F8070001F8060 +001F80E0000F81C0000787800003FE000000F8000019357EB31E>116 +D E /Fj 82[39 53[90 65 71 39 65 45 71 71 71 71 103 32 +65 1[32 71 71 39 65 71 65 1[65 12[71 78 84 1[78 90 5[32 +84 90 71 1[84 84 84 84 8[65 65 65 65 65 65 65 65 49[{ + TeXBase1Encoding ReEncodeFont }43 116.666672 /Helvetica-Bold +rf /Fk 82[28 24[28 28 24[42 42 42 60 42 46 23 42 28 46 +46 46 46 69 18 42 18 18 46 46 23 46 46 42 46 46 3[23 +1[23 1[55 1[78 55 60 51 55 60 65 55 65 60 69 46 55 1[23 +60 65 51 55 60 60 55 55 5[23 23 46 46 46 46 46 46 46 +46 46 46 1[23 1[23 1[32 28 28 18 35[42 42 2[{ + TeXBase1Encoding ReEncodeFont }74 83.333336 /Helvetica +rf /Fl 82[22 51[33 1[48 33 37 18 33 22 1[37 37 37 55 +15 33 1[15 37 37 18 37 37 33 37 37 12[41 44 48 1[44 52 +48 1[37 2[18 48 52 41 44 48 48 1[44 7[37 37 37 37 37 +37 37 37 37 37 18 18 1[18 40[33 33 2[{ TeXBase1Encoding ReEncodeFont } +53 66.666664 /Helvetica rf /Fm 1 4 df<006000007000006000006000406020E060 +70F861F07E67E01FFF8007FE0000F00007FE001FFF807E67E0F861F0E060704060200060 +0000600000700000600014157B9620>3 D E /Fn 82[25 21[75 +42 25[19 1[37 37 37 54 37 42 21 37 25 42 42 42 42 62 +17 37 17 17 42 42 21 42 42 37 42 42 3[21 1[21 46 50 1[71 +50 54 46 50 54 58 50 58 54 62 42 50 37 21 54 58 46 50 +54 54 50 50 6[21 42 42 42 42 42 42 42 42 42 42 21 21 +1[21 1[29 25 25 17 35[37 37 2[{ TeXBase1Encoding ReEncodeFont }77 +75.000000 /Helvetica rf /Fo 139[25 42 29 14[42 46 42 +31[54 65[{ TeXBase1Encoding ReEncodeFont }7 75.000000 +/Helvetica-Bold rf /Fp 134[60 3[60 1[60 60 1[60 1[60 +60 1[60 3[60 1[60 60 60 1[60 32[60 17[60 46[{ + TeXBase1Encoding ReEncodeFont }15 100.000000 /Courier +rf /Fq 1 4 df<000C0000001E0000001E0000001E0000001E0000001E0000601E018078 +1E0780FC0C0FC07F0C3F803F8C7F0007CCF80001FFE000007F8000001E0000007F800001 +FFE00007CCF8003F8C7F007F0C3F80FC0C0FC0781E0780601E0180001E0000001E000000 +1E0000001E0000001E0000000C00001A1D7C9E23>3 D E /Fr 134[50 +2[50 55 28 50 33 1[55 55 55 83 22 2[22 55 1[28 55 55 +50 1[55 8[66 94 66 72 1[66 2[66 1[72 83 55 66 1[28 1[78 +61 1[72 72 1[66 6[28 55 55 55 55 55 55 55 55 55 55 3[28 +2[33 33 40[{ TeXBase1Encoding ReEncodeFont }48 100.000000 +/Helvetica rf /Fs 1 4 df<00007000000000F800000000F800000000F800000000F8 +00000000F800000000F800000000F800000000F80000000070000078007000F07C007001 +F0FF007007F87F80700FF03FE0703FE00FF0707F8003F870FE0000FE73F800003F77E000 +000FFF80000003FE00000000F800000003FE0000000FFF8000003F77E00000FE73F80003 +F870FE000FF0707F803FE0703FE07F80700FF0FF007007F87C007001F078007000F00000 +7000000000F800000000F800000000F800000000F800000000F800000000F800000000F8 +00000000F800000000700000252B7AAD32>3 D E /Ft 82[47 50[71 +4[78 39 71 47 78 78 78 78 118 31 2[31 78 1[39 78 1[71 +78 78 12[86 94 2[94 110 10[102 2[94 65[{ TeXBase1Encoding ReEncodeFont } +25 141.666672 /Helvetica rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: Letter + +%%EndSetup +%%Page: 1 1 +1 0 bop 181 739 a Ft(State\255of\255the\255Art)43 b(in)d(Parallel)i +(Search)e(T)-16 b(echniques)42 b(for)e(Discrete)1264 +967 y(Optimization)h(Problems)2722 915 y Fs(\003)1217 +1297 y Fr(Ananth)29 b(Grama)1864 1261 y Fq(\003)1904 +1297 y Fr(,)f(and)h(V)n(ipin)g(Kumar)2693 1261 y Fq(\003\003)1209 +1551 y(\003)1249 1587 y Fr(Department)g(of)f(Computer)h(Sciences)1015 +1733 y(Purdue)h(University)-7 b(,)27 b(W)n(est)h(Lafayette,)g(IN)f +(47907)538 1878 y Fp(ayg@cs.purdue.edu)p Fr(,)c(Ph:)40 +b(\(765\))29 b(494)g(6964,)g(F)-5 b(AX:)28 b(\(765\))h(494)g(0739)1216 +2132 y Fq(\003\003)1291 2169 y Fr(Department)g(of)f(Computer)h(Science) +924 2314 y(University)f(of)g(Minnesota,)h(Minneapolis,)h(MN)e(55455)568 +2459 y Fp(kumar@cs.umn.edu)p Fr(,)c(Ph:)39 b(\(612\))29 +b(624)g(8023,)g(F)-5 b(AX:)28 b(\(612\))h(625)g(0572)1842 +2916 y Fo(Abstract)363 3102 y Fn(Discrete)k(optimization)e(problems)h +(arise)i(in)f(a)h(variety)f(of)h(domains)f(such)h(as)g(VLSI)f(design,)j +(transportation,)251 3216 y(scheduling)18 b(and)j(management,)d(and)i +(design)g(optimization.)28 b(V)l(ery)21 b(often,)f(these)g(problems)g +(are)h(solved)f(using)g(state)251 3331 y(space)29 b(search)h +(techniques.)55 b(Due)30 b(to)g(the)f(high)g(computational)d +(requirements)i(and)h(inherent)f(parallel)f(nature)h(of)251 +3445 y(search)21 b(techniques,)f(there)h(has)g(been)g(a)h(great)e(deal) +h(of)h(interest)e(in)h(the)g(development)f(of)h(parallel)e(search)j +(methods)251 3559 y(since)33 b(the)h(dawn)f(of)h(parallel)d(computing.) +68 b(Signi\002cant)32 b(advances)h(have)g(been)g(made)g(in)h(the)f(use) +h(of)g(powerful)251 3673 y(heuristics)21 b(and)g(parallel)e(processing) +i(to)h(solve)g(large)f(scale)h(discrete)f(optimization)e(problems.)33 +b(Problem)21 b(instances)251 3787 y(that)j(were)g(considered)f +(computationally)f(intractable)g(only)j(a)g(few)g(years)g(back)g(are)g +(routinely)e(solved)h(currently)g(on)251 3901 y(server\255class)f +(symmetric)h(multi\255processors)d(and)h(small)h(workstation)f +(clusters.)36 b(Parallel)21 b(game\255playing)f(programs)251 +4015 y(are)d(challenging)c(the)k(best)g(human)g(minds)g(at)g(games)h +(like)f(chess.)28 b(In)17 b(this)g(paper)l(,)f(we)i(describe)e(the)h +(state)g(of)g(the)g(art)g(in)251 4130 y(parallel)d(algorithms)h(used)i +(for)g(solving)f(discrete)g(optimization)f(problems.)26 +b(W)o(e)16 b(address)h(heuristic)e(and)i(non\255heuristic)251 +4244 y(techniques)c(for)j(searching)e(graphs)h(as)h(well)f(as)h(trees,) +g(and)f(speedup)f(anomalies)g(in)i(parallel)d(search)i(that)g(are)h +(caused)251 4358 y(by)k(the)g(inherent)e(speculative)g(nature)h(of)h +(search)g(techniques.)p 43 4427 1560 4 v 127 4481 a Fm(\003)163 +4504 y Fl(This)f(work)h(is)g(sponsored)g(by)h(the)f(by)g(Army)h +(Research)f(Of)o(\002ce)h(contract)g(DA/DAAG55\25598\2551\2550441,)h +(NSF)d(Grant)i(EIA9876014,)g(and)f(by)g(Army)43 4603 +y(High)30 b(Performance)h(Computing)g(Research)f(Center)h(under)f(the)g +(auspices)h(of)f(the)h(Department)g(of)g(the)f(Army)-5 +b(,)35 b(Army)c(Research)g(Laboratory)43 4701 y(cooperative)20 +b(agreement)g(number)g(DAAH04\25595\2552\2550003/contract)h(number)f +(DAAH04\25595\255C\2550008,)g(the)g(content)g(of)g(which)g(does)f(not)h +(necessarily)43 4800 y(re\003ect)f(the)g(position)f(or)h(the)g(policy)f +(of)h(the)g(government,)g(and)g(no)f(of)o(\002cial)g(endorsement)h +(should)g(be)f(inferred.)1970 5610 y Fk(1)p eop +%%Page: 2 2 +2 1 bop 43 345 a Fj(1)116 b(Introduction)43 630 y Fk(The)21 +b(generalized)h(discrete)f(optimization)i(problem)f(\(DOP\))e(deals)h +(with)h(minimizing)h(an)e(objective)h(function)g(of)f(a)g(set)g(of)43 +755 y(variables)e(that)f(are)h(allowed)g(only)g(discrete)f(values.)31 +b(An)19 b(instance)f(of)h(this)f(class)g(is)g(the)h(integer)g +(programming)g(problem)43 879 y(in)26 b(which)g(only)g(integer)g +(solutions)g(are)g(admissible)h(for)e(a)h(linear)h(programming)f +(\(LP\))g(model.)41 b(Other)25 b(instances)g(arise)43 +1004 y(in)d(diverse)f(domains)h(such)e(as)h(VLSI)h(design)g +(\(placement)g(of)g(VLSI)g(components)f(on)h(a)f(die)h(to)g(minimize)g +(silicon)g(area\),)43 1128 y(robotics)k(\(robot)h(motion)g(planning\),) +i(and)e(logistics)g(\(visiting)g(all)g(vertices)f(of)g(a)h(graph)g +(while)g(minimizing)i(edge)e(cost\).)43 1253 y(Most)f(such)g(problems)h +(are)g(NP)f(complete;)k(hence)c(their)h(solution)h(time)f(increases)f +(exponentially)i(in)f(the)g(size)f(of)h(the)43 1377 y(problem)h(for)e +(all)i(known)f(algorithms.)44 b(One)27 b(may)f(argue)i(that)f(it)g(is)g +(pointless)g(to)g(apply)g(parallel)i(processing)d(to)h(these)43 +1502 y(problems)21 b(since)g(we)g(can)f(never)h(reduce)g(their)g +(worst\255case)e(run)i(time)h(to)f(a)g(polynomial)h(without)g(using)f +(an)g(exponential)43 1626 y(number)37 b(of)f(processors.)69 +b(However)-5 b(,)40 b(the)c(average\255time)h(complexity)f(of)h +(heuristic)f(search)f(algorithms)i(for)f(some)43 1751 +y(problems)31 b(is)f(polynomial)i([38)q(,)e(46)q(].)54 +b(Furthermore,)32 b(there)f(are)f(heuristic)h(search)e(algorithms)i +(that)g(\002nd)g(suboptimal)43 1875 y(solutions)25 b(for)g(speci\002c)f +(problems)h(in)g(polynomial)i(time.)38 b(In)25 b(such)f(cases,)g +(bigger)h(problem)h(instances)e(can)h(be)g(solved)43 +2000 y(using)31 b(parallel)h(computers.)55 b(Many)30 +b(DOPs)g(\(such)g(as)g(robot)h(motion)g(planning,)k(speech)30 +b(understanding,)k(and)d(task)43 2124 y(scheduling\))25 +b(require)f(real\255time)i(solutions.)36 b(For)24 b(these)g +(applications,)i(parallel)g(processing)e(may)g(be)h(the)f(only)h(way)f +(to)43 2249 y(obtain)j(acceptable)f(performance.)39 b(Problems)26 +b(for)g(which)f(optimal)i(solutions)f(are)g(highly)g(desirable)g(can)g +(sometimes)43 2374 y(be)c(solved)g(for)f(moderate)i(sized)e(instances)g +(in)i(a)f(reasonable)g(amount)h(of)e(time)i(by)e(using)h(parallel)i +(search)d(techniques)43 2498 y(\(for)i(example,)h(VLSI)g +(\003oor\255plan)f(optimization\).)43 2683 y(Due)32 b(to)f(the)h(high)g +(computational)h(requirement)f(and)g(inherent)g(parallel)h(nature)e(of) +h(search)e(techniques,)k(there)d(has)43 2807 y(been)f(great)g(interest) +g(in)g(the)g(development)h(of)f(parallel)h(search)e(methods)h(since)f +(the)h(dawn)g(of)g(parallel)h(computing.)43 2932 y(In)24 +b(fact,)g(parallel)h(search)e(programs)h(were)f(among)i(the)f(\002rst)f +(non\255numerical)i(programs)e(written)h(for)g(early)g(generation)43 +3056 y(parallel)c(machines)e(such)f(as)h(HEP)h(and)f(C.mmp.)31 +b(There)18 b(are)g(many)g(characteristics)f(of)h(search)f(techniques)i +(that)f(make)43 3181 y(their)28 b(parallel)i(formulations)f(very)d(dif) +o(ferent)j(from)e(those)h(of)g(traditional)i(numerical)f(algorithms,)h +(but)e(much)g(closer)f(to)43 3305 y(other)22 b(non\255numerical)g +(algorithms.)32 b(Parallel)24 b(search)c(algorithms)i(rely)f(on)h +(dynamic)f(data)h(structures,)e(which)i(makes)f(it)43 +3430 y(dif)o(\002cult)j(to)h(use)f(static)h(work)f(distribution)h +(techniques.)38 b(There)24 b(is)g(potential)j(for)d(speculative)h(work) +f(both)h(in)g(serial)g(and)43 3554 y(parallel)30 b(search)e +(algorithms.)49 b(Hence)28 b(load)i(balancing)f(algorithms)h(for)e +(parallel)i(search)e(must)g(consider)g(qualitative)43 +3679 y(information)34 b(as)e(well.)61 b(Some)33 b(search)e(algorithms)i +(require)g(use)f(of)g(large)h(global)h(hash)e(structures,)h(which)g +(can)f(be)43 3803 y(hard)27 b(to)g(implement)i(on)f(losely)f(coupled)h +(parallel)g(architectures.)44 b(T)m(remendous)27 b(advances)f(have)h +(been)h(made)f(both)43 3928 y(in)d(theoretical)h(and)f(applied)h +(aspects)e(of)h(parallel)h(search)e(techniques)h([11)q(].)34 +b(These)23 b(techniques)h(have)g(been)g(used)g(to)43 +4052 y(solve)19 b(problems)g(that)h(are)f(well)h(beyond)g(the)f(scope)g +(of)g(conventional)h(serial)g(processors.)29 b(In)19 +b(this)h(paper)-5 b(,)20 b(we)g(provide)f(a)43 4177 y(brief)i(overview) +g(of)g(commonly)g(used)g(sequential)h(search)e(methods,)h(and)h +(present)e(the)i(state\255of\255the\255art)e(in)h(the)g(parallel)43 +4302 y(formulations)j(of)g(various)e(search)g(techniques.)43 +4701 y Fj(2)116 b(Overview)32 b(of)g(Search)f(T)-9 b(echniques)43 +4986 y Fk(V)k(ery)24 b(often)h(a)f(discrete)g(optimization)i(problem)f +(is)f(formulated)h(as)f(the)h(problem)g(of)f(\002nding)h(a)f(path)g(in) +h(a)f(graph)h(from)f(a)43 5110 y(designated)j(initial)i(node)e(to)f +(one)h(of)g(several)f(possible)g(goals)h([38)q(,)f(20].)42 +b(Such)27 b(a)f(graph)h(is)f(called)h(a)g(state)f(space.)42 +b(In)43 5235 y(some)22 b(problems,)g(any)g(solution)h(path)f(between)g +(the)h(initial)g(node)g(and)f(a)g(goal)g(node)h(is)e(acceptable,)i +(whereas)f(in)g(other)43 5359 y(problems)f(a)g(cost)f(is)h(associated)g +(with)h(each)e(path)i(and)f(a)g(minimum)i(cost)d(solution)i(is)f +(desired.)32 b(In)21 b(many)g(applications,)1970 5610 +y(2)p eop +%%Page: 3 3 +3 2 bop 43 344 a Fk(it)29 b(is)g(possible)h(to)f(compute)g(a)g(lower)g +(bound)h(on)f(the)g(cost)f(of)i(a)f(solution)h(path)f(that)g(passes)f +(through)i(a)f(given)g(state.)43 469 y(This)23 b(cost)f(is)h(also)h +(called)g(a)f(heuristic)g(estimate.)43 653 y(T)-5 b(wo)31 +b(commonly)g(used)f(techniques)h(for)g(searching)f(state)h(spaces)e +(are)i(depth\255\002rst)e(and)i(best\255\002rst)e(search.)54 +b(Depth\255)43 778 y(\002rst)32 b(search)g(techniques)h(start)f(from)h +(an)g(initial)i(state)e(and)g(generate)h(a)f(set)f(of)i(successor)c +(states.)61 b(One)33 b(of)g(these)43 903 y(most)28 b(recently)g +(generated)g(states)g(is)g(then)g(selected)h(for)e(expansion)i(at)f +(each)g(step.)47 b(Many)28 b(variants)g(of)g(this)g(simple)43 +1027 y(DFS)34 b(technique)g(exist.)64 b(In)34 b(one)g(such)f(variant,)j +(the)e(successor)d(states)i(of)h(a)g(node)g(are)g(ordered)g(on)f(the)h +(basis)g(of)43 1152 y(their)i(likelihood)h(of)f(yielding)h(a)e +(solution.)70 b(This)36 b(search)e(technique)j(is)e(referred)g(to)g(as) +g(directed\255DFS)h(or)f(ordered)43 1276 y(backtracking.)c(In)20 +b(many)g(applications,)j(early)d(branches)g(explored)h(by)f(DFS)g +(techniques)h(may)f(lead)h(to)g(large)g(subtrees)43 1401 +y(containing)27 b(no)f(solutions)g(when)g(solutions)h(may)e(be)h +(available)i(close)d(to)h(the)g(root)g(on)g(alternate)g(branches.)40 +b(In)26 b(these)43 1525 y(cases,)33 b(it)f(is)g(useful)h(to)f(limit)h +(the)g(depth)f(in)h(terms)e(of)h(cost)g(or)f(number)i(of)f(edges,)i(to) +e(which)g(exhaustive)g(search)f(is)43 1650 y(performed.)j(If)23 +b(no)h(desirable)g(solution)h(is)e(found)h(in)g(this)f(limited)j +(search,)c(the)i(limit)h(is)e(revised)g(and)h(search)f(performed)43 +1774 y(again.)50 b(The)29 b(limit)h(can)f(be)g(de\002ned)g(in)g(terms)f +(of)h(tree)g(depth)g(\(depth\255bounded)h(DFS\),)e(or)h(in)g(terms)f +(of)h(solution)h(cost)43 1899 y(\(IDA*\).)39 b(In)25 +b(depth\255\002rst)f(search,)h(if)h(the)g(lower)f(bound)h(of)g(a)f +(node)h(is)f(larger)g(than)h(the)g(cost)e(of)h(the)h(best)f(solution)h +(found)43 2023 y(thus)17 b(far)-5 b(,)19 b(then)e(the)h(node)f(can)g +(be)g(pruned.)31 b(This)17 b(technique)h(is)f(referred)g(to)g(as)g +(depth\255\002rst)f(branch\255and\255bound)h(\(DFBB\).)43 +2208 y(In)j(all)h(algorithms)g(based)f(on)h(the)f(DFS)g(technique,)i +(once)e(a)g(successor)e(node)j Fi(n)e Fk(is)h(selected)h(for)f +(expansion,)h(its)f(sibling)43 2332 y(nodes)29 b(are)f(expanded)h(only) +g(after)g(the)f(entire)i(tree)e(rooted)h(at)g(node)g +Fi(n)f Fk(is)g(expanded,)j(even)d(if)h(successors)d(of)j +Fi(n)f Fk(are)43 2457 y(much)g(less)f(promising)h(than)g(the)g +(siblings)g(of)g Fi(n)p Fk(.)45 b(Thus,)28 b(these)g(algorithms)g(make) +g(use)f(of)h(the)g(heuristic)f(information)43 2581 y(only)21 +b(on)g(a)g(local)g(scale)f(to)h(order)g(the)g(successors)d(of)i(a)h +(node.)32 b(DFBB)21 b(and)h(IDA*)f(also)g(make)f(a)h(limited)i(use)d +(of)h(heuristic)43 2706 y(information)j(on)f(a)f(global)i(scale)f(as)f +(they)g(prune)h(a)f(node)h(if)g(it)g(is)g(less)f(promising)h(than)g(a)f +(previously)h(found)g(solution)g(or)43 2830 y(bound.)34 +b(As)23 b(we)h(will)g(discuss)f(later)-5 b(,)24 b(this)g(limited)h(use) +e(of)h(heuristics)f(makes)g(it)g(easy)g(to)h(develop)g(parallel)h +(formulations)43 2955 y(of)e(DFS)g(algorithms.)43 3140 +y(In)h(contrast)g(to)g(DFS,)g(best\255\002rst)f(search)g(algorithms)i +(expand)f(the)h(most)f(promising)g(node)h(currently)f(available)h(on)g +(the)43 3264 y(search)i(frontier)-5 b(,)30 b(and)f(thus)e(make)h +(complete)h(use)f(of)g(the)g(available)i(heuristic)e(information.)49 +b(The)28 b(search)f(frontier)h(is)43 3389 y(maintained)g(as)d(a)g +(priority)h(queue,)h(and)f(is)f(commonly)h(referred)f(to)g(as)g(the)h +(OPEN)g(list)2893 3359 y Fh(1)2930 3389 y Fk(.)39 b(A)26 +b(well)h(known)e(algorithm)i(of)43 3513 y(this)i(type)g(is)g(A*,)i +(also)e(referred)f(to)h(as)g(best\255\002rst)e(branch)h(and)i(bound)f +(\(BFBB\).)g(A)h(major)f(price)g(paid)g(for)g(this)g(use)g(of)43 +3638 y(heuristic)c(information)h(in)f(a)f(global)i(context)f(is)f(that) +h(BFS)g(requires)f(memory)h(proportional)h(to)e(the)h(size)f(of)h(the)g +(search)43 3762 y(frontier)-5 b(,)38 b(which)c(is)g(often)h +(exponential)h(in)e(the)h(depth)g(of)f(the)g(solution.)67 +b(In)34 b(contrast,)i(all)g(DFS)e(algorithms)h(require)43 +3887 y(memory)23 b(proportional)h(to)g(the)f(depth)h(of)f(the)h +(solution)g(path.)43 4071 y(In)19 b(many)g(applications,)i(identical)g +(states)d(can)h(be)g(reached)g(from)g(multiple)i(paths.)31 +b(Re\255expansion)19 b(of)g(these)g(states)f(can)43 4196 +y(be)26 b(avoided)f(if)h(the)g(search)e(technique)i(checks)e(every)g +(generated)i(node)f(for)g(possible)h(replications.)40 +b(BFS)25 b(strategies)43 4320 y(support)d(replication)h(checking)e(by)h +(maintaining)i(a)e(list)h(of)f(all)g(the)h(expanded)f(nodes)g(\(and)g +(their)g(costs\))f(on)h(a)g(list)g(called)43 4445 y(CLOSED)384 +4415 y Fh(1)421 4445 y Fk(.)31 b(DFS)19 b(based)g(techniques)g(do)h +(not)f(support)g(replication)h(checking,)g(and)f(thus)g(essentially)g +(unroll)h(the)g(graph)43 4569 y(into)28 b(a)f(tree.)44 +b(Unrolling)29 b(graphs)d(into)i(trees)f(can)f(have)h(overheads)g +(ranging)h(from)f(a)g(constant)g(factor)f(to)h(exponential)43 +4694 y(depending)d(on)f(the)g(structure)f(of)h(the)f(graph.)33 +b(In)23 b(the)g(latter)g(case,)f(DFS)h(techniques)g(may)f(be)h +(unsuitable,)h(as)e(they)h(will)43 4819 y(need)28 b(to)g(expand)h(many) +e(more)h(nodes)g(than)g(BFS.)h(Finally)-6 b(,)29 b(simple)g(and)f +(directed)g(DFS)g(are)g(generally)g(used)g(to)g(\002nd)43 +4943 y(the)e(\002rst)f(solution)i(that)f(they)g(encounter)g(in)g(the)h +(search)e(space,)h(whereas)f(DFBB,)i(IDA*,)g(and)g(BFS)f(\002nd)g(a)g +(least)g(cost)43 5068 y(solution.)34 b(This)22 b(taxonomy)h(of)h +(search)e(characteristics)g(is)h(illustrated)h(in)g(Figure)f(1.)p +43 5139 1560 4 v 131 5196 a Fg(1)163 5219 y Fl(OPEN)17 +b(and)g(CLOSED)g(data)h(structures)g(are)f(called)g(lists)h(for)f +(historical)g(reasons.)26 b(In)18 b(fact,)h(OPEN)e(list)h(is)f +(typically)g(implemented)g(using)g(a)g(heap)43 5318 y(and)h(CLOSED)h +(list)f(is)h(implemented)g(as)f(a)h(hash)f(table.)1970 +5610 y Fk(3)p eop +%%Page: 4 4 +4 3 bop 43 344 a Fk(Although)36 b(a)e(central)g(component)h(of)f(most)g +(parallel)i(search)d(algorithms)i(is)f(a)g(dynamic)g(load)h(balancing)g +(scheme,)43 469 y(the)j(parallel)g(formulation)h(is)e(impacted)h(by)f +(the)g(nature)h(of)f(the)h(search)e(space,)k(the)e(use)f(of)g +(heuristics,)j(memory)43 593 y(requirements,)20 b(and)f(the)f(desired)h +(solution)g(quality)-6 b(.)32 b(In)18 b(the)h(following)h(sections,)f +(we)f(discuss)f(the)i(parallel)h(formulations)43 718 +y(developed)k(for)f(various)g(search)f(algorithms.)205 +2054 y @beginspecial 0 @llx 0 @lly 455 @urx 154 @ury +4320 @rwi @setspecial +%%BeginDocument: search.eps +%Magnification: 0.80 +/$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 +-72.0 233.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.04800 0.04800 sc +7.500 slw +% Polyline +n 6600 2100 m 6675 2100 l 6675 4275 l 6600 4275 l gs col-1 s gr +% Polyline +n 6600 4500 m 6675 4500 l 6675 4800 l 6600 4800 l gs col-1 s gr +% Polyline +n 8400 2100 m 8475 2100 l 8475 2475 l 8400 2475 l gs col-1 s gr +% Polyline +n 8400 2700 m 8475 2700 l 8475 3075 l 8400 3075 l gs col-1 s gr +% Polyline +n 8400 3300 m 8475 3300 l 8475 4275 l 8400 4275 l gs col-1 s gr +% Polyline +n 8400 4500 m 8475 4500 l 8475 4800 l 8400 4800 l gs col-1 s gr +% Polyline +n 9900 2100 m 9975 2100 l 9975 3075 l 9900 3075 l gs col-1 s gr +% Polyline +n 9900 3300 m 9975 3300 l 9975 4800 l 9900 4800 l gs col-1 s gr +% Polyline +n 5025 2100 m 5100 2100 l 5100 4275 l 5025 4275 l gs col-1 s gr +% Polyline +n 5025 4500 m 5100 4500 l 5100 4800 l 5025 4800 l gs col-1 s gr +/Helvetica ff 180.00 scf sf +1500 2400 m +gs 1 -1 sc (Simple DFS \(Backtracking\)) col-1 sh gr +/Helvetica ff 180.00 scf sf +1500 3000 m +gs 1 -1 sc (Directed DFS \(Ordered Backtracking\)) col-1 sh gr +/Helvetica ff 180.00 scf sf +1500 3600 m +gs 1 -1 sc (Depth-First Branch and Bound) col-1 sh gr +/Helvetica ff 180.00 scf sf +1500 4200 m +gs 1 -1 sc (IDA*) col-1 sh gr +/Helvetica ff 180.00 scf sf +1500 4800 m +gs 1 -1 sc (Best-First Search / A*) col-1 sh gr +/Helvetica ff 180.00 scf sf +6975 3000 m +gs 1 -1 sc (Linear) col-1 sh gr +/Helvetica ff 180.00 scf sf +6975 3240 m +gs 1 -1 sc (in) col-1 sh gr +/Helvetica ff 180.00 scf sf +6975 3480 m +gs 1 -1 sc (Depth) col-1 sh gr +/Helvetica ff 180.00 scf sf +6975 4725 m +gs 1 -1 sc (Exponential) col-1 sh gr +/Helvetica ff 180.00 scf sf +6675 2040 m +gs 1 -1 sc (Requirement) col-1 sh gr +/Helvetica ff 180.00 scf sf +8775 2325 m +gs 1 -1 sc (None) col-1 sh gr +/Helvetica ff 180.00 scf sf +8775 2925 m +gs 1 -1 sc (Local) col-1 sh gr +/Helvetica ff 180.00 scf sf +8775 3750 m +gs 1 -1 sc (Partially) col-1 sh gr +/Helvetica ff 180.00 scf sf +8775 3990 m +gs 1 -1 sc (Global) col-1 sh gr +/Helvetica ff 180.00 scf sf +8775 4725 m +gs 1 -1 sc (Global) col-1 sh gr +/Helvetica ff 180.00 scf sf +8475 1800 m +gs 1 -1 sc (Heuristic) col-1 sh gr +/Helvetica ff 180.00 scf sf +9975 1800 m +gs 1 -1 sc (Solution) col-1 sh gr +/Helvetica ff 180.00 scf sf +9975 2040 m +gs 1 -1 sc (Quality) col-1 sh gr +/Helvetica ff 180.00 scf sf +10275 2625 m +gs 1 -1 sc (Any) col-1 sh gr +/Helvetica ff 180.00 scf sf +10275 2865 m +gs 1 -1 sc (Solution) col-1 sh gr +/Helvetica ff 180.00 scf sf +10275 4050 m +gs 1 -1 sc (Best) col-1 sh gr +/Helvetica ff 180.00 scf sf +10275 4290 m +gs 1 -1 sc (Solution) col-1 sh gr +/Helvetica ff 180.00 scf sf +6675 1800 m +gs 1 -1 sc (Memory) col-1 sh gr +/Helvetica ff 180.00 scf sf +5100 1800 m +gs 1 -1 sc (Nature of) col-1 sh gr +/Helvetica ff 180.00 scf sf +5100 2040 m +gs 1 -1 sc (Search Space) col-1 sh gr +/Helvetica ff 180.00 scf sf +5400 3075 m +gs 1 -1 sc (Tree) col-1 sh gr +/Helvetica ff 180.00 scf sf +5400 3315 m +gs 1 -1 sc (Search) col-1 sh gr +/Helvetica ff 180.00 scf sf +5400 4575 m +gs 1 -1 sc (Graph/Tree) col-1 sh gr +/Helvetica ff 180.00 scf sf +5400 4815 m +gs 1 -1 sc (Search) col-1 sh gr +$F2psEnd +rs +%%EndDocument + @endspecial 603 2262 a(Figure)h(1:)33 b(V)-6 b(arious)23 +b(enumerative)h(search)e(procedures)g(and)i(their)g(characteristics.)43 +2701 y Fj(3)116 b(Depth\255First)31 b(Search)43 2986 +y Fk(Depth\255\002rst)21 b(search)h(is)h(particularly)f(amenable)i(to)f +(parallel)h(processing)e(primarily)h(because)g(a)f(subtree)h(rooted)f +(at)h(any)43 3110 y(node)h(can)f(be)h(searched)f(relatively)h +(independently)h(of)e(the)h(search)f(at)g(other)h(nodes)f(or)h +(subtrees.)32 b(In)24 b(fact,)f(searching)43 3235 y(dif)o(ferent)39 +b(subtrees)g(concurrently)f(requires)h(either)g(no)h(communication)g +(\(e.g.,)j(backtracking,)f(IDA*\))d(or)g(minimal)43 3359 +y(communication)33 b(\(e.g.,)g(DFBB\).)f(This)f(is)h(due)g(to)f(the)h +(fact)f(that)h(DFS)g(techniques)g(do)f(not)h(make)g(use)f(of)g +(heuristics)43 3484 y(on)d(a)g(global)i(scale.)46 b(It)28 +b(would)h(therefore)f(seem)g(that)h(by)e(statically)h(assigning)h +(nodes)f(in)g(a)g(tree)g(to)h(processors,)e(it)h(is)43 +3608 y(possible)22 b(to)g(derive)g(parallel)i(formulations.)33 +b(However)-5 b(,)22 b(for)g(most)f(applications,)j(trees)d(generated)i +(by)e(DFS)h(tend)h(to)f(be)43 3733 y(highly)g(irregular)-5 +b(,)22 b(and)f(it)g(is)g(very)f(dif)o(\002cult)g(to)h(estimate)h(the)f +(work)f(associated)h(with)g(a)g(node)h(a\255priori.)31 +b(Hence,)22 b(any)e(static)43 3857 y(allocation)j(of)e(subtrees)g(to)g +(processors)f(is)h(bound)h(to)f(result)g(in)h(signi\002cant)g(load)g +(imbalance)g(among)g(processors.)30 b(The)43 3982 y(core)25 +b(of)g(parallel)i(formulations)g(of)e(DFS)h(algorithms)g(is)f(thus)g(a) +h(dynamic)f(load)h(balancing)h(technique)f(that)g(minimizes)43 +4106 y(inter\255processor)c(communication)i(and)g(processor)d(idling.) +43 4291 y(A)26 b(number)g(of)g(load)g(distribution)h(techniques)f(have) +g(been)g(developed)g(for)g(parallel)h(DFS)e([25)q(,)g(41)q(,)g(22)q(,)g +(17)q(,)g(21)q(].)39 b(Load)43 4415 y(balancing)26 b(techniques)f(may)f +(be)h(receiver)f(initiated)j(or)d(sender)g(initiated.)39 +b(In)25 b(receiver)f(initiated)i(techniques,)g(when)f(a)43 +4540 y(processor)g(becomes)h(idle,)i(it)f(requests)f(a)h(selected)f +(processor)f(for)h(work.)42 b(Many)26 b(dif)o(ferent)h(selection)g +(policies)g(have)43 4665 y(been)19 b(proposed)g(such)f(as)g(use)h(of)g +(a)f(centralized)h(server)-5 b(,)19 b(random)g(polling)i([12],)f +(nearest)e(neighbor)i([25],)g(global)g(round\255)43 4789 +y(robin)i([25)q(],)g(and)g(asynchronous)e(round)i(robin)g([12,)g(25].) +32 b(In)22 b(contrast)f(to)h(receiver)f(initiated)i(load)g(balancing,)g +(in)f(sender)43 4914 y(initiated)e(schemes,)e(a)g(processor)f(sends)g +(work)g(to)i(selected)f(processors)e(as)h(it)i(is)e(generated.)32 +b(Selection)19 b(strategies)f(for)43 5038 y(sender)h(initiated)i(work)e +(transfers)f(include)j(hierarchical)e(techniques)h(\(with)g +(super\255servers,)d(servers)h(and)h(clients\))g([13)q(],)43 +5163 y(random)k(sampling)h([25)q(],)f(and)g(near\255neighbor)h +(techniques)f([41].)33 b(The)22 b(quanta)i(of)f(work)f(farmed)h(out)h +(to)f(processors)d(in)43 5287 y(sender)27 b(and)h(receiver)e(initiated) +j(schemes)e(ranges)g(from)g(a)g(single)h(state)g(\(node)f(in)h(the)g +(tree\))e(to)i(forests)e(of)i(subtrees)1970 5610 y(4)p +eop +%%Page: 5 5 +5 4 bop 43 344 a Fk(resulting)21 b(from)g(stack)f(splitting)i([12,)f +(25].)32 b(Schemes)21 b(for)f(fault)i(tolerance)f(using)g +(acknowledgements)h(have)e(also)h(been)43 469 y(built)j(into)g(load)g +(balancing)h(techniques)e([12)q(].)43 653 y(The)34 b(performance)f(and) +h(scalability)g(of)g(these)f(techniques)h(is)f(often)i(dependent)f(on)g +(the)g(underlying)g(architecture.)43 778 y(Many)e(of)g(these)f +(techniques)h(are,)i(in)f(principle)f(scalable,)j(i.e.,)f(they)e +(result)g(in)g(linear)h(speedup)f(on)g(increasing)g(the)43 +903 y(number)c(of)f(processors)f Fi(p)h Fk(as)g(long)h(as)f(the)g(size) +g(of)h(the)g(search)e(space)h(grows)f(fast)i(enough)g(with)g +Fi(p)p Fk(.)45 b(It)27 b(is)g(desirable)43 1027 y(that)21 +b(this)f(required)h(rate)f(of)h(growth)f(of)h(problem)g(size)f(\(also)g +(referred)g(to)h(as)f(the)g(Isoef)o(\002ciency)f(metric)h([24)q(]\))g +(be)g(as)g(small)43 1152 y(as)k(possible)h(since)g(it)g(allows)g(the)g +(use)f(of)h(a)f(larger)h(number)g(of)g(processors)d(ef)o(fectively)i +(for)h(solving)g(a)f(given)h(problem)43 1276 y(instance.)43 +1461 y(The)17 b(irregular)h(and)g(dynamic)f(nature)g(of)h(the)f(search) +g(space)f(makes)h(it)h(dif)o(\002cult)f(to)g(precisely)g(compute)g(the) +h(performance)43 1585 y(and)34 b(scalability)h(of)f(parallel)i(DFS.)e +(However)-5 b(,)37 b(for)d(trees)f(with)i(branching)f(factor)g(greater) +g(than)g(1)25 b Ff(+)f Fi(\017)34 b Fk(\(for)f(a)h(small)43 +1710 y(constant)28 b Fi(\017)p Fk(\),)h(it)g(is)g(often)g(possible)g +(to)f(partition)i(the)f(computation)g(associated)g(with)g(a)f +(collection)h(of)g(nodes)g(into)g(two)43 1834 y(parts)21 +b(such)h(that)g(the)g(smaller)h(of)f(these)f(two)i(parts)e(can)h(be)g +(guaranteed)h(to)f(have)f(a)h(minimum)i(\002xed)d(constant)h(fraction) +43 1959 y(of)38 b(the)g(computation)h(associated)f(with)g(the)g +(original)i(node.)77 b(This)37 b(property)h(has)f(been)i(used)f(to)g +(derive)f(parallel)43 2083 y(formulations)c(of)g(DFS)f(with)h(isoef)o +(\002ciency)e(of)h Fi(O)r Ff(\()p Fi(p)14 b Fk(log)1856 +2043 y Fh(2)1906 2083 y Fi(p)p Ff(\))32 b Fk(on)h(hypercube)f(and)g +Fi(O)r Ff(\()p Fi(p)2866 2053 y Fh(1)p Fe(:)p Fh(5)2969 +2083 y Fk(log)15 b Fi(p)p Ff(\))32 b Fk(on)h(mesh)f(connected)43 +2208 y(parallel)25 b(computers)d([25)q(].)43 2392 y(The)27 +b(parallel)h(formulation)g(of)f(DFS)g(described)g(above)g(can)f(be)h +(applied)i(to)e(DFBB)g(with)g(one)g(minor)h(modi\002cation.)44 +b(In)43 2517 y(DFBB,)19 b(we)g(need)h(to)f(keep)g(all)h(the)f +(processors)e(informed)j(of)f(the)g(current)f(best)h(solution.)32 +b(On)19 b(a)g(shared)f(address)h(space)43 2641 y(architecture,)29 +b(this)f(can)f(be)h(done)h(easily)f(by)f(maintaining)k(a)d(global)h +(best)f(solution)g(in)h(globally)g(accessible)e(memory)-6 +b(.)43 2766 y(On)22 b(a)f(message)h(passing)g(computer)-5 +b(,)22 b(this)g(can)g(be)g(done)g(by)g(allowing)h(each)f(processor)e +(to)i(maintain)i(the)e(current)f(best)43 2891 y(solution)33 +b(known)f(to)g(it.)60 b(Whenever)32 b(a)g(processor)f(\002nds)g(a)h +(solution)h(path)g(better)f(than)h(the)f(current)f(best)h(known,)j(it) +43 3015 y(broadcasts)25 b(it)h(to)g(all)h(the)f(other)g(processors)d +(which)j(update)h(\(if)f(necessary\))d(their)j(current)g(best)f +(solution)i(path.)41 b(Note)43 3140 y(that)20 b(if)h(a)f(processor)s(') +o(s)e(current)h(best)h(solution)h(path)f(is)g(worse)g(than)g(the)g +(global)i(best)e(solution)h(path,)g(then)f(it)h(only)f(af)o(fects)43 +3264 y(the)25 b(ef)o(\002ciency)f(of)h(the)h(search)e(but)h(not)h(its)f +(correctness.)36 b(The)25 b(overhead)g(for)g(maintaining)i(the)f +(current)e(best)h(solution)43 3389 y(tends)20 b(to)g(be)h(a)f(small)h +(fraction)f(of)g(the)h(overhead)f(for)g(dynamic)g(load)h(balancing.)32 +b(Parallel)22 b(formulations)f(of)g(DFBB)f(have)43 3513 +y(been)k(shown)f(to)g(yield)h(near)f(linear)h(speedups)f(for)g(many)g +(problems)h(and)f(architectures)g([45,)g(27,)h(8,)f(7,)g(1].)43 +3839 y Fd(T)-6 b(ermination)22 b(of)h(Parallel)h(Search)43 +4089 y Fk(If)30 b(only)g(one)g(solution)h(is)f(desired)g(to)g(a)g +(problem)h(instance)f(being)h(solved)e(using)i(depth\255\002rst)d +(search,)j(then)g(as)e(soon)43 4214 y(as)g(any)f(processor)g(\002nds)g +(a)h(solution,)j(search)c(at)h(other)g(processors)e(needs)i(to)g(be)h +(terminated.)51 b(On)29 b(some)f(parallel)43 4338 y(architectures,)23 +b(it)h(is)g(possible)g(for)g(one)g(processor)e(to)i(interrupt)g(other)g +(processors)e(and)i(send)g(them)g(a)g(special)g(signal.)43 +4463 y(If)29 b(such)f(a)h(mechanism)h(is)e(not)i(available,)i(then)d +(each)g(processor)e(needs)i(to)g(perform)g(a)g(periodic)h(check)e(to)h +(see)f(if)i(a)43 4587 y(solution)24 b(has)f(been)h(found.)43 +4772 y(If)c(all)g(the)g(solutions)g(\(or)f(all)h(best)g(solutions\))f +(to)h(a)g(problem)g(instance)g(are)f(desired,)i(then)f(parallel)h(DFS)e +(searches)f(a)i(well)43 4896 y(de\002ned)28 b(portion)h(of)f(the)h +(entire)g(search)e(tree)h(\(determined)h(by)e(the)i(speci\002c)e +(algorithm)i(and)f(heuristic)h(used\).)46 b(Since)43 +5021 y(this)22 b(search)e(space)h(is)g(dynamically)h(allocated)h(to)e +(processors,)f(it)i(is)f(not)h(suf)o(\002cient)e(to)i(poll)g(each)f +(processor)f(serially)i(to)43 5146 y(check)f(if)i(they)g(have)f +(exhausted)g(their)h(work.)32 b(The)22 b(reason)g(is)h(that)g(a)f +(processor)f(may)h(pick)g(up)h(work)f(after)g(it)h(has)f(been)43 +5270 y(polled.)52 b(Hence)29 b(a)h(distributed)g(termination)h +(detection)f(algorithm)g(is)f(needed)i(to)e(ensure)g(that)h(all)g +(processors)d(have)1970 5610 y(5)p eop +%%Page: 6 6 +6 5 bop 43 344 a Fk(indeed)24 b(exhausted)f(the)h(search)e(space)h +([5].)43 744 y Fj(4)116 b(Best\255First)31 b(Search)43 +1029 y Fk(Best\255\002rst)k(search)g(techniques)i(are)f(more)g(dif)o +(\002cult)g(to)h(parallelize)h(for)e(the)h(following)h(two)e(reasons:) +58 b(\(i\))36 b(they)g(use)43 1153 y(heuristics)19 b(on)i(a)f(global)h +(scale,)f(making)h(it)f(harder)g(to)g(utilize)h(the)f(full)h(power)f +(of)g(heuristics)f(in)i(a)f(parallel)h(setting;)h(and)e(\(ii\))43 +1278 y(they)h(need)h(to)g(maintain)h(the)f(CLOSED)g(list)f(if)h(the)g +(search)f(space)f(is)i(a)f(graph.)32 b(W)o(e)22 b(\002rst)e(discuss)g +(parallel)j(formulations)43 1402 y(of)g(best\255\002rst)f(search)g(in)i +(the)f(context)g(of)g(state\255space)f(trees,)h(and)h(subsequently)f +(discuss)f(the)h(case)g(for)g(graphs.)43 1587 y(BFS)f(methods)g(may)f +(appear)h(inherently)g(serial)g(since)f(they)g(require)h(expansion)g +(of)g(the)f(most)h(promising)g(node)g(on)g(the)43 1711 +y(OPEN)27 b(list)h(at)f(each)g(step.)44 b(However)-5 +b(,)28 b(it)g(is)f(possible)g(that)h(many)f(nodes)g(on)g(the)g(OPEN)h +(list)f(are)g(equally)h(promising,)43 1836 y(in)f(which)g(case,)h(they) +e(can)h(all)h(be)f(expanded)g(concurrently)-6 b(.)43 +b(If)27 b(the)g(number)g(of)g(such)f(\(equally\))i(promising)f(nodes)g +(is)43 1960 y(fewer)22 b(than)h(the)g(number)f(of)h(available)h +(processors,)c(then)j(the)g(other)f(less)g(promising)h(nodes)g +(available)g(on)g(OPEN)g(list)43 2085 y(can)h(be)h(searched)f(by)h(the) +g(idle)g(processors.)35 b(These)25 b(less)f(promising)h(nodes)g(may)f +(not)h(be)g(searched)f(by)h(serial)f(BFS,)43 2209 y(and)29 +b(thus)f(form)h(speculative)f(work.)48 b(The)28 b(ef)o(fective)g +(degree)h(of)g(concurrency)d(of)j(such)f(a)g(formulation)i(is)e +(essentially)43 2334 y(equal)22 b(to)g(the)f(average)g(number)h(of)f +(nodes)g(available)i(on)f(the)f(OPEN)h(list)f(such)g(that)g(their)h +(cost)e(is)h(less)g(than)h(that)f(of)h(the)43 2458 y(optimal)f +(solution.)32 b(Since)20 b(the)g(cost)f(of)g(the)h(optimal)h(solution)f +(is)g(unknown,)g(a)g(good)f(strategy)g(is)g(to)h(always)f(expand)h +(only)43 2583 y(the)k Fi(p)p Fk(\255most)f(promising)i(nodes)f +(currently)f(available)j(on)e(the)g(OPEN)g(list;)h(where)f +Fi(p)f Fk(is)h(the)g(number)h(of)f(processors.)32 b(As)43 +2707 y(long)24 b(as)f Fi(p)g Fk(is)g(no)h(more)f(than)h(the)g(ef)o +(fective)f(degree)g(of)h(concurrency)-6 b(,)21 b(all)k(processors)c +(will)j(tend)g(to)g(search)e(nodes)i(that)43 2832 y(will)j(also)e(be)h +(searched)f(by)g(serial)h(BFS.)g(The)f(ef)o(fective)g(degree)h(of)g +(concurrency)d(is)i(usually)h(dependent)h(on)f(the)f(size)43 +2957 y(of)e(the)g(search)e(space)h(\(larger)h(spaces)e(have)i(higher)g +(degree)g(of)g(concurrency\))d(and)j(the)g(heuristic)g(function)g +(\(stronger)43 3081 y(heuristics)g(lead)h(to)f(smaller)h(degree)f(of)g +(concurrency\).)43 3266 y(The)28 b(basic)g(data)g(structure)f(of)h +(BFS,)h(the)f(OPEN)g(list,)i(is)e(a)g(priority)g(queue)g(that)h(must)f +(support)g(removal)g(of)g(the)g(best)43 3390 y(entry)i(in)g(the)h +(queue)g(and)g(insertion)f(of)h(nodes)f(into)h(the)g(queue.)54 +b(The)30 b(data)h(structure)e(most)h(often)h(used)f(for)g(this)g(is)43 +3515 y(a)h(heap.)56 b(The)31 b(simplest)g(parallel)i(formulation)f(of)f +(BFS)h(uses)e(multiple)j(processors)28 b(working)j(on)g(a)g(heap)h +(stored)e(in)43 3639 y(globally)h(addressable)e(memory)-6 +b(.)51 b(Each)29 b(processor)f(locks)g(the)i(heap)g(and)g(picks)e(out)i +(the)g(current)e(best)h(node.)52 b(The)43 3764 y(heap)32 +b(is)g(unlocked)g(and)g(the)g(node)g(is)g(expanded)g(to)g(yield)g(its)g +(children.)58 b(These)32 b(children)g(are)f(reinserted)h(into)h(the)43 +3888 y(heap)24 b(with)f(appropriate)h(locking.)32 b(The)23 +b(use)g(of)g(a)g(global)i(heap)e(is)g(a)g(source)f(of)h(contention.)33 +b(If)23 b(the)h(time)f(taken)g(to)g(lock,)43 4013 y(remove,)h(and)h +(unlock)f(the)g(top)g(element)i(of)e(the)g(heap)h(is)f +Fi(t)1947 4025 y Fe(access)2164 4013 y Fk(and)h(time)g(for)f(expansion) +g(is)g Fi(t)3145 4025 y Fe(exp)3252 4013 y Fk(,)h(then)f(the)h(speedup) +43 4137 y(of)e(the)h(formulation)h(is)e(bounded)h(by)f +Ff(\()p Fi(t)1310 4149 y Fe(access)1522 4137 y Ff(+)18 +b Fi(t)1635 4149 y Fe(exp)1742 4137 y Ff(\))p Fi(=t)1846 +4149 y Fe(access)2040 4137 y Fk(.)43 4322 y(Many)26 b(techniques)h +(have)g(been)g(developed)g(to)g(ef)o(fectively)f(reduce)g +Fi(t)2327 4334 y Fe(access)2547 4322 y Fk(and)h(thus)f(increase)g(the)h +(available)h(paral\255)43 4446 y(lelism.)33 b(These)22 +b(techniques)h(support)g(multiple)h(operations)f(on)g(heaps)f(stored)h +(in)g(shared)f(memory)g(while)i(maintaining)43 4571 y(the)35 +b(strict)e(deletion)j(and)f(insertion)g(ordering)g([42].)66 +b(The)34 b(performance)h(of)f(these)g(schemes)g(scales)f(to)i(dozens)f +(of)43 4695 y(processors)21 b(but)j(is)f(ultimately)h(limited)h(by)e +(the)g(locking)h(and)f(access)f(times)h(as)g(speci\002ed)g(above.)43 +4880 y(Another)k(way)e(of)i(alleviating)h(the)e(contention)h(overhead)f +(associated)g(with)h(a)f(single)h(global)g(heap)g(is)f(to)g(use)g +(multiple)43 5005 y(heaps.)38 b(The)24 b(concept)h(of)g +Fi(p)f Fk(processors)f(sharing)i(a)g(single)g(heap)h(can)e(be)h +(relaxed)g(to)g Fi(k)j Fk(processors)23 b(sharing)i(a)f(heap)43 +5129 y(with)g Fi(p=k)i Fk(heaps)d(in)h(all.)35 b(The)23 +b(number)h Fi(k)i Fk(is)d(selected)h(by)f(studying)h(the)f(overheads)h +(associated)f(with)h(communication)43 5254 y(and)18 b(locking,)i +(contention,)g(and)e(node)h(expansion)f(time.)32 b(In)18 +b(the)g(extreme)g(case,)g(each)g(processor)f(has)g(its)h(own)g(heap.)32 +b(A)1970 5610 y(6)p eop +%%Page: 7 7 +7 6 bop 43 344 a Fk(simple)20 b(parallel)g(formulation)g(based)f(on)g +(multiple)h(heaps)f(starts)f(with)h(the)g(initial)i(state)d(in)h(a)g +(single)h(heap.)31 b(As)19 b(additional)43 469 y(nodes)i(are)h +(generated,)g(they)f(are)g(farmed)h(out)g(to)f(other)g(heaps)h(\(using) +f(schemes)f(similar)i(to)g(load)g(balancing)g(in)g(DFS\).)43 +593 y(Once)17 b(all)i(the)g(heaps)f(have)g(been)g(populated,)j +(processors)16 b(can)h(perform)h(BFS)h(on)f(individual)i(heaps.)31 +b(This)17 b(formulation)43 718 y(has)g(a)g(signi\002cant)g(drawback)f +(in)h(that)h(although)g(it)g(balances)f(computation)h(among)f +(processors,)g(it)g(does)g(not)g(guarantee)43 842 y(the)k(quality)h(of) +f(nodes)g(individual)i(processors)c(explore.)32 b(Consequently)-6 +b(,)21 b(processors)e(may)i(spend)g(considerable)g(time)43 +967 y(exploring)j(parts)f(of)g(the)g(search)g(space)f(that)i(may)f(not) +g(be)h(explored)f(by)g(the)g(serial)h(formulation.)43 +1152 y(T)-9 b(o)27 b(alleviate)j(this)d(drawback)g(of)h(excess)e(work)h +(performed)h(by)g(the)g(parallel)h(formulation,)i(one)d(must)f(ensure)h +(that)g(all)43 1276 y(heaps)35 b(have)f(a)h(share)f(of)h(the)g(most)f +(promising)h(nodes)g(globally)h(available.)68 b(This)35 +b(process,)h(also)e(referred)h(to)f(as)43 1401 y(quality)22 +b(equalization,)i(ensures)d(that)h(the)g(best)f(nodes)h(available)h +(globally)g(are)e(evenly)h(distributed)g(across)e(the)i(heaps.)43 +1525 y(Since)27 b(the)g(quality)h(of)f(the)g(nodes)g(changes)f(as)h +(computation)h(proceeds,)f(quality)g(equalization)i(must)e(be)g +(performed)43 1650 y(periodically)-6 b(.)50 b(A)29 b(variety)f(of)h +(triggers)f(and)h(mechanisms)g(have)f(been)i(used)e(for)h(quality)g +(equalization)i([30,)e(6,)g(45,)g(4].)43 1774 y(A)k(simple)g +(triggering)g(mechanism)g(tracks)e(the)i(best)f(node)h(in)g(the)g +(system.)59 b(The)32 b(best)g(node)h(in)g(the)g(local)g(heap)g(is)43 +1899 y(compared)21 b(to)g(the)g(best)g(node)g(in)h(the)f(system)f(and)h +(if)g(it)g(is)g(considerably)g(worse,)g(an)g(equalization)i(process)c +(is)i(initiated.)43 2023 y(Alternately)-6 b(,)24 b(an)g(equalization)h +(process)c(may)i(be)h(initiated)h(periodically)-6 b(.)43 +2208 y(Quality)26 b(equalization)i(requires)e(movement)h(of)f(nodes)g +(between)h(heaps.)41 b(This)26 b(movement)h(of)f(nodes)g(can)g(be)g +(struc\255)43 2332 y(tured)33 b(\(into)f(a)h(ring,)i(or)d(via)h(a)f +(shared)g(blackboard\))h(or)f(randomized.)61 b(In)32 +b(randomized)h(equalization,)k(a)c(processor)43 2457 +y(periodically)i(selects)f(a)g(random)h(heap,)i(picks)c(up)i(the)f +(best)g(node)h(from)f(the)h(heap,)i(and)e(inserts)e(it)i(into)g(the)f +(local)43 2581 y(heap.)56 b(Alternately)-6 b(,)33 b(heaps)e(can)f(be)h +(organized)g(into)h(hierarchical)f(structures.)53 b(At)31 +b(the)g(lower)g(levels,)i(equalization)43 2706 y(is)28 +b(performed)h(more)g(frequently)g(than)g(the)g(higher)g(levels)f(in)h +(the)g(hierarchy)-6 b(.)48 b(Several)29 b(triggering)g(mechanisms)g +(and)43 2830 y(redistribution)c(strategies)f(have)g(been)g(explored)h +([6,)f(47].)35 b(It)24 b(has)g(been)g(shown)g(that)g(these)g(schemes)f +(are)h(capable)h(of)43 2955 y(providing)k(linearly)g(increasing)f +(speedups)h(with)f(number)h(of)f(processors)e(if)j(the)f(problem)h +(size)f(is)g(increased)g(appro\255)43 3080 y(priately)-6 +b(.)41 b(Speci\002cally)-6 b(,)26 b(scalable)g(parallel)i(formulations) +e(of)g(best\255\002rst)e(tree)i(search)f(with)h(isoef)o(\002ciency)e +(of)i Fi(O)r Ff(\()p Fi(p)14 b Fk(log)3819 3039 y Fh(2)3869 +3080 y Fi(p)p Ff(\))43 3204 y Fk(on)26 b(hypercube)f(architectures)g +(have)h(been)g(developed)h([30].)41 b(Using)25 b(these)h(schemes,)g +(speedups)f(in)i(excess)d(of)i(950)43 3329 y(have)20 +b(been)g(demonstrated)g(on)h(1024)f(processor)e(hypercubes)h(in)h(the)g +(context)g(of)g(TSPs)g(formulated)h(as)e(best\255\002rst)f(tree)43 +3453 y(search)k(problems)i([6].)43 3779 y Fd(Best\255First)f(Search)h +(of)e(State)h(Space)h(Graphs)43 4029 y Fk(Ef)o(\002cient)19 +b(parallel)j(implementation)g(of)e(BFS)g(on)g(state)g(space)f(graphs)g +(requires)h(a)g(distributed)g(mechanism)g(that)g(allows)43 +4154 y(many)h(processors)e(to)j(perform)f(duplicate)i(checking)d(or)h +(insertions)h(into)g(the)f(CLOSED)h(list)g(concurrently)-6 +b(.)30 b(The)22 b(nature)43 4278 y(of)h(implementation)j(of)e(this)f +(mechanism)g(is)g(dependent)i(on)e(the)h(underlying)g(parallel)g +(architecture.)43 4463 y(In)d(shared)f(address)g(space)g(machines,)h +(insertion)g(of)g(nodes)f(into)i(the)e(closed)h(list)g(requires)f +(locking)h(of)f(the)h(list.)32 b(If)21 b(there)43 4587 +y(is)26 b(a)h(single)g(lock)f(associated)g(with)h(the)f(entire)h(list,) +h(the)e(list)h(must)f(be)h(locked)f(approximately)h(as)f(many)g(times)h +(as)f(the)43 4712 y(total)32 b(number)g(of)f(nodes)g(expanded.)57 +b(This)31 b(represents)f(a)h(serial)h(bottleneck.)56 +b(The)32 b(bottleneck)f(can)g(be)g(alleviated)43 4836 +y(by)25 b(associating)g(multiple)i(locks)d(with)i(the)g(closed)f(list.) +38 b(Processors)24 b(lock)g(only)i(relevant)f(parts)g(of)g(the)h +(closed)f(list)g(into)43 4961 y(which)d(the)h(node)g(is)f(being)h +(inserted.)32 b(Message)22 b(passing)g(formulations)i(of)e(this)g +(parallel)i(search)d(technique)i(distribute)43 5086 y(the)35 +b(closed)f(list)h(across)e(the)i(processors.)65 b(Each)35 +b(processor)e(expands)h(a)h(node)g(and)g(hashes)f(the)h(successors)d +(to)43 5210 y(appropriate)38 b(processors)c(via)j(a)g(message.)73 +b(The)37 b(destination)h(processor)d(checks)g(for)i(replication)h(and)f +(sends)f(a)43 5335 y(message)19 b(back)g(specifying)h(whether)f(the)h +(node)g(exists)f(in)h(the)g(closed)f(list)h(or)g(not.)31 +b(Such)20 b(a)f(protocol)h(requires)g(two\255way)1970 +5610 y(7)p eop +%%Page: 8 8 +8 7 bop 43 344 a Fk(cooperation)24 b(between)f(various)f(processors.)31 +b(Each)23 b(processor)e(must)i(periodically)g(check)f(for)h(incoming)h +(messages,)43 469 y(process)e(them)h(and)h(send)f(appropriate)h +(responses.)43 653 y(A)29 b(simpler)g(parallel)h(formulation)g(uses)d +(the)i(hash)f(function)h(both)g(for)g(replication)g(checking)f(and)h +(for)f(qualitative)j(and)43 778 y(quantitative)26 b(load)g(balance.)38 +b(In)25 b(this)g(formulation,)i(the)e(successors)d(of)j(a)g(node)g(are) +g(hashed)g(to)g(appropriate)g(proces\255)43 903 y(sors.)36 +b(The)25 b(destination)h(processor)d(checks)g(for)h(replication)i(as)f +(before.)37 b(However)-5 b(,)25 b(instead)g(of)g(sending)h(a)f +(response)43 1027 y(back,)18 b(it)h(inserts)e(the)i(successor)c(nodes)j +(into)h(its)f(own)g(open)h(list.)31 b(This)17 b(has)h(two)g(main)h +(advantages:)30 b(\(i\))18 b(it)g(eliminates)i(the)43 +1152 y(need)f(for)f(a)g(return)g(message)g(and)h(wait)g(at)f(the)h +(source)e(processor;)h(and)h(\(ii\))f(the)h(randomized)g(hash)f +(function)h(serves)d(as)43 1276 y(the)24 b(method)g(for)g(balancing)h +(load)f(qualitatively)h(and)f(quantitatively)-6 b(.)35 +b(These)23 b(schemes)g(have)h(been)g(studied)g(by)f(many)43 +1401 y(researchers)g([33)q(,)i(30].)38 b(Assuming)26 +b(a)f(perfectly)g(random)g(hash)g(function,)i(it)e(has)g(been)h(shown)f +(that)g(if)h(the)f(number)h(of)43 1525 y(nodes)d(originating)i(at)f +(each)f(processor)e(grows)i(as)f Fi(O)r Ff(\()p Fk(log)16 +b Fi(p)p Ff(\))p Fk(,)23 b(then)h(each)f(processor)e(will)k(have)e +(asymptotically)g(equal)43 1650 y(number)h(of)f(nodes)g(after)g(the)h +(hash)f(operation)h([33].)43 1834 y(One)31 b(of)g(the)g(major)h +(drawbacks)e(of)h(graph)g(search)f(techniques)h(such)g(as)f(BFS)i(is)f +(that)g(their)g(memory)g(requirement)43 1959 y(grows)c(linearly)h(with) +g(the)g(search)f(space.)44 b(For)27 b(large)h(problems,)h(this)f +(memory)f(requirement)h(becomes)g(prohibitive.)43 2083 +y(Many)17 b(limited\255memory)i(variants)e(of)g(heuristic)g(search)g +(have)g(been)h(developed.)31 b(These)17 b(techniques)h(rely)f(on)g +(retraction)43 2208 y(or)28 b(delayed)h(expansion)f(of)g(less)g +(promising)h(nodes)f(to)g(reduce)g(memory)g(requirement.)48 +b(In)29 b(the)f(parallel)i(processing)43 2332 y(context,)23 +b(retractions)f(lead)i(to)g(additional)h(communication)g(and)e +(indexing)h(for)f(parent\255child)h(relationships)g([9].)43 +2732 y Fj(5)116 b(Game)32 b(T)-6 b(ree)32 b(Search)43 +3017 y Fk(Min\255max)27 b(techniques)g(such)f(as)h Fi(\013)21 +b Fc(\000)f Fi(\014)31 b Fk(game)c(tree)g(search)f(are)g(extensively)h +(used)g(in)g(game\255playing)h(programs.)43 b(In)43 3141 +y(this)28 b(algorithm,)j(the)d(minimax)h(value)g(of)f(a)g(node)h(is)f +(determined)h(for)f(a)g(given)h(search)e(window)h Ff([)p +Fi(\013;)14 b(\014)t Ff(])p Fk(.)48 b(This)28 b(window)43 +3266 y(serves)19 b(to)h(prune)g(signi\002cant)g(parts)g(of)g(the)g +(tree)g(that)h(do)f(not)g(ef)o(fect)g(the)g(minimax)h(evaluation)h(of)e +(the)g(root.)32 b(Initially)-6 b(,)22 b(this)43 3390 +y(window)27 b(is)f(set)g(to)g Ff([)p Fc(\0001)p Fi(;)14 +b Fc(1)p Ff(])p Fk(.)41 b(The)26 b(\002rst)e(child)j(of)f(a)g(node)h +(is)f(searched)g(with)g(the)h(same)f(window)g(as)g(the)g(parent.)42 +b(The)43 3515 y(window)26 b(of)f(other)h(children)g(is)f(narrowed)g(on) +h(the)f(basis)g(of)h(results)e(from)i(previously)e(visited)i(children.) +39 b(This)25 b(process)43 3639 y(is)f(continued)h(until)g(a)f +(speci\002ed)g(depth)g(is)g(reached,)g(or)g(the)g(branch)g(has)g(no)g +(successors.)32 b(V)-6 b(ariants)24 b(of)h(this)f(algorithm)43 +3764 y(are)f(based)g(on)h(iterative)f(deepening,)i(which)f(guides)f +(search)g(based)g(on)g(results)g(from)g(previous)g(iterations.)43 +3948 y(Min\255max)31 b(techniques)f(present)g(considerable)h +(challenges)h(for)e(parallel)i(processing.)53 b(Conceptually)-6 +b(,)33 b Fi(\013)23 b Fc(\000)f Fi(\014)34 b Fk(game)43 +4073 y(tree)20 b(search)f(algorithm)i(can)e(also)h(be)h(viewed)f(as)f +(a)h(depth\255\002rst)f(branch\255and\255bound)h(algorithm)h([23)q(])e +(that)i(searches)d(for)43 4197 y(a)25 b(maximum)g(payof)o(f)f(strategy) +g(among)h(all)h(strategies)f(represented)f(in)h(the)g(game)g(tree.)37 +b(However)-5 b(,)25 b(game)g(trees)f(tend)43 4322 y(to)30 +b(be)f(strongly)g(ordered.)51 b(Therefore,)31 b(naive)f(parallel)h +(formulations)f(may)f(expand)h(a)f(large)h(number)g(of)f(nodes)h(that) +43 4446 y(are)23 b(not)g(expanded)g(by)g(the)g(serial)g(formulation.)34 +b(Second,)24 b(the)f(information)h(about)g(the)f(current)f(best)h +(strategy)f(cannot)43 4571 y(be)27 b(captured)f(by)h(a)f(single)i +(node,)g(as)e(the)h(aim)g(is)g(to)f(\002nd)h(a)f(best)h(winning)h +(strategy)e(rather)g(than)h(a)g(winning)h(position.)43 +4695 y(Ef)o(fective)h(propagation)i(of)f(this)g(information)h(to)f +(other)f(processors)f(searching)h(disjoint)i(parts)e(of)h(the)g(search) +f(space)43 4820 y(is)e(much)g(harder)f(compared)h(to)g(sharing)g(of)g +(the)g(cost)f(of)h(current)g(best)f(solution)i(in)f(traditional)i(DFBB) +e(algorithms.)45 b(A)43 4945 y(number)22 b(of)g(researchers)e(have)i +(investigated)h(parallel)g(formulations)g(of)f Fi(\013)16 +b Fc(\000)f Fi(\014)26 b Fk([10,)c(34,)g(40].)32 b(The)22 +b(problem)h(of)f(excess)43 5069 y(node)f(expansions)g(is)f(handled)i +(by)e(using)h(a)g(prioritized)g(work)f(distribution)i(in)f(which)g(the) +g(tree)g(is)f(expanded)h(left)h(to)f(right)43 5194 y(in)30 +b(a)g(sweeping)h(pattern)f(also)g(referred)f(to)h(as)g(the)g(\223Y)-8 +b(oung)31 b(Brothers)e(W)m(ait)i(Concept\224.)52 b(Using)30 +b(these)g(optimizations)43 5318 y(along)24 b(with)f(dynamic)f(load)i +(balancing,)g(researchers)d(have)h(demonstrated)h(speedups)g(of)f(as)h +(much)f(as)g(two)h(orders)f(of)1970 5610 y(8)p eop +%%Page: 9 9 +9 8 bop 43 344 a Fk(magnitude)25 b(on)e(a)g(variety)g(of)g(parallel)i +(platforms.)43 529 y(The)36 b(utility)h(of)f(parallel)i(processing)d +(has)h(been)h(demonstrated)f(in)h(the)f(context)g(of)g(a)g(number)g(of) +h(games,)i(and)d(in)43 653 y(particular)-5 b(,)29 b(Chess.)44 +b(W)o(ork)26 b(on)h(large)h(scale)f(parallel)h Fi(\013)22 +b Fc(\000)e Fi(\014)31 b Fk(search)26 b(led)i(to)g(the)f(development)h +(of)g(deep)g(thought)g([15])43 778 y(in)37 b(1990.)73 +b(This)37 b(program)f(was)g(capable)h(of)g(playing)g(chess)f(at)g +(grandmaster)h(level.)73 b(Subsequent)38 b(advances)d(in)43 +903 y(the)30 b(use)f(of)g(dedicated)i(hardware,)g(parallel)f +(processing,)h(and)f(algorithms)g(resulted)f(in)h(the)g(development)g +(of)g(IBM')o(s)43 1027 y(Deep)c(Blue)g([16,)g(14])f(that)h(beat)g(the)g +(reigning)g(world)g(champion)g(Gary)e(Kasparov)-6 b(.)38 +b(Feldmann)27 b(et)e(al.)h([40)q(])f(developed)43 1152 +y(a)33 b(distributed)g(chess)e(program)i(that)f(is)h(acknowledged)g(to) +f(be)h(one)g(of)f(the)h(best)f(computer)h(chess)e(players)h(based)43 +1276 y(entirely)24 b(on)f(general)h(purpose)f(hardware.)43 +1675 y Fj(6)116 b(Speedup)31 b(Anomalies)h(in)h(Parallel)f +(Formulations)g(of)g(Search)f(Algorithms)43 1960 y Fk(In)21 +b(parallel)i(search)d(algorithms,)j(the)e(speedup)h(can)f(dif)o(fer)g +(greatly)g(from)g(one)h(execution)f(to)h(another)-5 b(.)32 +b(This)21 b(is)g(because)43 2085 y(the)32 b(portions)g(of)f(the)h +(search)f(space)g(examined)h(by)g(dif)o(ferent)f(processors)f(are)h +(determined)i(dynamically)f(and)g(can)43 2209 y(be)27 +b(dif)o(ferent)g(for)g(dif)o(ferent)g(executions.)44 +b(A)27 b(number)g(of)g(researchers)e(have)i(observed)f(and)h(analyzed)g +(the)g(existence)43 2334 y(of)j(these)h(speedup)f(anomalies.)55 +b(An)31 b(acceleration)g(anomaly)g(manifests)f(itself)h(in)g(the)f +(form)h(of)f(a)g(speedup)h(greater)43 2458 y(than)e Fi(p)g +Fk(on)g Fi(p)g Fk(processors)e(when)i(parallel)i(search)d(does)g(less)h +(work)f(than)h(the)h(serial)f(search)f(algorithm)i([26)q(,)f(29].)50 +b(A)43 2583 y(speedup)18 b(of)f(less)g(than)g Fi(p)p +Fk(,)h(attributed)g(to)g(excess)d(work)h(done)i(by)f(the)g(parallel)i +(formulation)g(compared)e(to)g(the)h(sequential)43 2707 +y(formulation,)34 b(is)c(termed)h(as)e(a)i(deceleration)g(anomaly)g +([26)q(,)f(28].)54 b(The)30 b(ratio)h Fi(W)2712 2719 +y Fe(p)2751 2707 y Fi(=W)2871 2719 y Fe(s)2906 2707 y +Fk(,)h(where)f Fi(W)3296 2719 y Fe(p)3365 2707 y Fk(and)f +Fi(W)3611 2719 y Fe(s)3677 2707 y Fk(are)h(the)43 2832 +y(number)24 b(of)f(nodes)g(searched)g(by)f(parallel)j(and)f(serial)f +(formulations,)h(is)f(called)h(the)g(search)e(overhead)h(factor)-5 +b(.)43 3017 y(Speedup)28 b(anomalies)h(can)e(easily)g(occur)f(in)i +(parallel)g(depth\255\002rst)f(search)f(for)h(\002nding)g(any)g +(solution,)j(as)c(certain)i(exe\255)43 3141 y(cution)i(sequences)f(may) +g(\002nd)g(a)h(solution)g(much)f(earlier)h(than)g(others.)51 +b(However)-5 b(,)31 b(it)f(appears)f(natural)h(that,)i(on)e(the)43 +3266 y(average,)22 b(the)f(search)f(overhead)i(factor)e(for)h(parallel) +i(DFS)e(should)h(always)f(be)g(greater)g(than)h(or)f(equal)h(to)g(one.) +32 b(Other\255)43 3390 y(wise)23 b(the)h(serial)f(search)g(algorithm)h +(is)f(not)h(optimal;)h(i.e.,)f(the)f(emulation)i(of)f(parallel)g(DFS)f +(on)h(a)f(single)h(processor)e(will)43 3515 y(be)k(faster)g(than)h +(sequential)g(DFS.)f(Surprisingly)-6 b(,)28 b(there)e(are)g +(situations,)h(in)g(which)f(parallel)i(DFS)e(can)g(have)g(a)g(search)43 +3639 y(overhead)i(factor)f(of)g(less)g(than)h(1)g(on)g(the)f(average,)i +(implying)g(that)f(the)g(serial)f(search)g(algorithm)i(in)f(the)g +(situation)g(is)43 3764 y(suboptimal.)43 b(Kumar)27 b(and)g(Rao)f([43]) +h(show)f(that)g(if)h(no)g(heuristic)f(information)i(is)e(available)i +(to)e(order)g(the)h(successors)43 3888 y(of)i(a)f(node,)j(then)d(on)h +(the)g(average,)h(the)e(speedup)h(obtained)h(by)e(parallel)i(DFS)e(is)g +(superlinear)h(if)g(the)g(distribution)h(of)43 4013 y(solutions)d(is)g +(non\255uniform.)43 b(This)27 b(model)g(is)g(validated)h(by)e +(experiments)g(on)h(synthetic)f(state\255space)g(trees)g(modeling)43 +4137 y(the)j(hackers)e(problem,)k(the)e(15\255puzzle)f(problem)i(and)f +(the)g Fi(n)p Fk(\255Queens)e(problem.)50 b(In)29 b(all)g(these)g +(experiments,)h(serial)43 4262 y(and)i(parallel)h(DFS)e(do)g(not)h(use) +f(any)g(heuristic)h(ordering,)i(and)d(select)g(successors)e +(arbitrarily)-6 b(.)57 b(The)31 b(basic)g(reason)43 4386 +y(for)23 b(this)h(phenomenon)h(is)e(that)h(parallel)h(search)e(can)g +(invest)g(resources)f(into)j(multiple)g(regions)f(of)f(the)h(search)f +(frontier)43 4511 y(concurrently)-6 b(.)35 b(When)26 +b(the)e(solution)i(density)e(in)h(dif)o(ferent)g(regions)g(of)f(the)h +(search)f(frontier)g(is)h(non\255uniform)g(and)g(these)43 +4635 y(non\255uniformities)32 b(are)f(not)g(known)g(a)g(priori,)i(then) +f(sequential)g(search)e(has)g(an)i(equal)f(chance)g(of)g(searching)g(a) +g(low)43 4760 y(density)19 b(region)h(\(and)f(thus)g(be)h(forced)f(to)g +(expand)h(many)f(nodes\))g(or)g(a)g(high)h(density)f(region.)32 +b(On)19 b(the)h(contrary)-6 b(,)18 b(parallel)43 4885 +y(search)25 b(can)h(search)f(all)h(regions)g(at)g(the)h(same)f(time,)h +(ensuring)f(that)g(at)g(least)h(some)e(processors)f(are)i(searching)g +(the)43 5009 y(high)e(density)f(regions.)43 5194 y(If)k(good)g +(heuristics)f(are)g(available)i(to)f(order)f(the)g(successors)e(of)j +(nodes)f(in)h(DFS,)g(then)g(the)f(search)g(overhead)g(factor)43 +5318 y(of)k(parallel)h(DFS)f(may)g(be)g(greater)g(than)g(one.)53 +b(The)30 b(reason)g(is)f(that)i(some)f(processors)d(may)j(search)f +(unpromising)1970 5610 y(9)p eop +%%Page: 10 10 +10 9 bop 43 344 a Fk(areas)25 b(of)g(the)h(search)e(space.)38 +b(This)25 b(phenomenon)i(is)e(most)g(visible)h(in)g(the)f(context)g(of) +g Fi(\013)20 b Fc(\000)g Fi(\014)29 b Fk(search)24 b(of)i(game)f(trees) +43 469 y(for)f(which)h(strong)e(ordering)i(heuristics)f(are)g +(available.)38 b(Kale)25 b(and)g(Saletore)g([19])g(present)f(a)g +(scheme)g(that)h(combines)43 593 y(the)h(information)h(about)f(the)g +(ordering)h(and)f(depth)g(of)g(nodes)f(to)h(perform)g(load)g(balancing) +h(among)f(processors.)38 b(This)43 718 y(scheme)15 b(largely)g +(maintains)h(the)f(depth\255\002rst)f(heuristic)h(order)f(of)i(search)d +(across)h(processors,)g(and)i(results)e(in)h(consistent)43 +842 y(linear)32 b(speedup.)55 b(Even)31 b(in)g(the)g(presence)f(of)h +(good)g(ordering)h(heuristics,)g(parallel)g(DFS)f(may)f(lead)i(to)e +(superlinear)43 967 y(speedup.)i(For)21 b(example,)h(this)f(can)f +(happen)i(if)f(there)g(is)g(a)g(non\255zero)g(probability)h(that)f(the) +g(heuristic)g(can)g(guide)h(search)43 1092 y(to)h(large)h(regions)f +(that)h(do)f(not)h(contain)f(any)g(solutions)h([43].)43 +1276 y(In)k(parallel)h(BFS,)g(the)f(search)f(overhead)g(can)h(be)g +(greater)g(than)g(one)g(if)h(some)e(processors)f(expand)i(nodes)g(that) +g(are)43 1401 y(never)f(expanded)h(by)f(serial)h(BFS)g(\(e.g.,)g(nodes) +g(that)g(have)f(higher)h(bound)g(than)g(the)g(cost)f(of)g(the)h +(optimal)h(solution\).)43 1525 y(In)j(fact,)h(it)f(can)f(be)h(shown)f +(that)h(for)f(any)h(given)g(BFS)f(instance,)j(there)e(exists)e(a)i +(constant)f Fi(k)j Fk(such)d(that)h(expanding)43 1650 +y(more)25 b(than)g Fi(k)j Fk(nodes)d(in)g(parallel)h(from)f(a)g(global) +h(open)g(list)f(leads)g(to)g(wasted)g(computation)h([26].)38 +b(This)24 b(situation)i(gets)43 1774 y(worse)j(with)i(distributed)g +(open)f(lists)g(since)g(expanded)g(nodes)h(have)e(locally)i(minimum)h +(heuristics)d(that)h(are)g(not)h(the)43 1899 y(best)23 +b(nodes)g(across)f(all)i(open)g(lists.)43 2083 y(The)29 +b(search)f(overhead)g(for)h(parallel)h(BFS)g(can)e(also)h(be)g(less)f +(than)i(one.)49 b(This)29 b(can)f(happen)i(when)f(multiple)i(nodes)43 +2208 y(on)c(the)g(open)g(list)h(have)e(identical)i(heuristic)f(values,) +h(but)f(require)g(dif)o(ferent)g(amount)h(of)f(search)e(to)i(detect)g +(a)g(solution)43 2332 y(\(or)h(to)h(\002nd)g(out)g(that)g(the)g(node)h +(does)e(not)i(lead)f(to)g(optimal)i(solution\).)50 b(Hence,)30 +b(if)f(a)g(parallel)h(algorithm)h(happens)e(to)43 2457 +y(explore)h(the)h(better)g(nodes)f(\002rst,)h(then)g(it)f(can)g(result) +h(in)f(acceleration)h(anomalies,)j(and)c(vice)g(versa.)53 +b(It)30 b(is)h(possible)43 2581 y(to)39 b(derive)g(properties)f(of)h +(the)g(heuristic)g(function)g(such)f(that)h(superlinearity)h(ef)o +(fects)d(in)j(parallel)g(BFS)f(are)f(made)43 2706 y(deterministic)24 +b([29,)g(32].)43 3105 y Fj(7)116 b(Role)32 b(of)g(Heuristics)43 +3390 y Fk(Heuristics)e(form)g(the)h(most)g(important)g(component)g(of)g +(search)f(techniques,)j(and)e(parallel)h(formulations)f(of)g(search)43 +3515 y(algorithms)22 b(must)f(be)h(viewed)g(in)g(the)f(context)g(of)h +(these)f(heuristics.)32 b(In)21 b(BFS)h(techniques,)g(heuristics)f +(focus)g(search)f(by)43 3639 y(lowering)j(the)f(ef)o(fective)g +(branching)g(factor)-5 b(.)32 b(In)22 b(DFBB)g(methods,)h(heuristics)e +(provide)h(better)h(bounds,)f(and)g(thus)g(serve)43 3764 +y(to)h(prune)h(the)f(search)f(space.)43 3948 y(Often,)f(there)g(is)g(a) +f(tradeof)o(f)h(between)g(the)g(strength)g(of)g(the)g(heuristic)f(and)h +(the)g(ef)o(fective)g(size)f(of)h(search)e(space.)32 +b(Better)43 4073 y(heuristics)21 b(result)g(in)h(smaller)g(search)f +(spaces)f(but)i(are)f(also)h(more)f(expensive)g(to)h(compute.)32 +b(For)21 b(example,)h(an)g(impor\255)43 4197 y(tant)27 +b(application)h(of)e(strong)g(heuristics)g(is)g(in)h(the)g(computation) +g(of)g(bounds)f(for)g(mixed)h(integer)g(programming)g(\(MIP\).)43 +4322 y(Mixed)36 b(integer)g(programming)h(has)e(seen)g(signi\002cant)h +(advances)f(over)g(the)g(years)g([18].)70 b(Whereas)35 +b(\002fteen)h(years)43 4446 y(back,)c(MIP)f(problems)f(with)h(100)g +(integer)g(variables)g(were)f(considered)g(challenging,)k(today)-6 +b(,)32 b(many)f(problems)f(with)43 4571 y(up)25 b(to)g(1000)h(integer)f +(variables)g(can)g(be)g(solved)g(on)g(workstation)f(class)g(machines)h +(using)g(branch\255and\255cut)g(methods.)43 4695 y(Largest)35 +b(known)h(instances)f(of)h(TSPs)g(and)g(QAPs)f(have)h(been)g(solved)f +(using)h(branch\255and\255bound)g(with)g(powerful)43 +4820 y(heuristics)e([3,)h(35].)66 b(The)34 b(presence)g(of)h(ef)o +(fective)f(heuristics)g(may)g(prune)h(the)f(search)g(space)g +(considerably)-6 b(.)66 b(For)43 4945 y(example,)24 b(when)f(Padberg)h +(and)f(Rinaldi)h(introduced)g(the)f(branch\255and\255cut)f(algorithm)i +(in)g(1987,)f(they)g(used)g(it)g(to)g(solve)43 5069 y(a)i(532)g(city)e +(TSP)-11 b(,)26 b(which)e(was)g(the)h(largest)g(TSP)g(solved)f +(optimally)i(at)f(that)g(time.)37 b(Subsequent)25 b(improvements)g(to)g +(the)43 5194 y(method)d(led)g(to)f(the)g(solution)i(of)e(a)g(a)g(2,392) +h(city)f(problem)g([36)q(].)32 b(More)21 b(recently)-6 +b(,)21 b(using)g(cutting)h(planes,)g(problems)f(with)43 +5318 y(over)f(7,000)h(cities)g(have)f(been)i(solved)e([18)q(])g(on)h +(serial)g(machines.)32 b(However)-5 b(,)21 b(for)f(many)h(problems)g +(of)f(interest,)i(the)f(re\255)1947 5610 y(10)p eop +%%Page: 11 11 +11 10 bop 43 344 a Fk(duced)21 b(search)f(space)g(still)i(requires)f +(the)g(use)g(of)g(parallelism)i([3,)e(35,)g(44,)g(31)q(].)31 +b(Use)21 b(of)g(powerful)h(heuristics)e(combined)43 469 +y(with)26 b(ef)o(fective)f(parallel)i(processing)d(has)h(enabled)i(the) +f(solution)g(of)g(extremely)f(large)g(problems)h([35].)39 +b(For)25 b(example,)43 593 y(QAP)k(problems)f(from)h(the)f(Nugent)h +(and)g(Eschermann)g(test)f(suites)g(with)h(up)f(to)h(4)p +Fi(:)p Fk(8)22 b Fc(\002)f Fk(10)3028 563 y Fh(10)3125 +593 y Fk(nodes)28 b(\(Nugent22)h(with)43 718 y(Gilmore\255Lawler)f +(bound\))g(were)f(solved)g(on)g(a)h(NEC)f(Cenju\2553)h(parallel)h +(computer)e(in)h(under)g(nine)g(days)e([3].)45 b(Another)43 +842 y(dazzling)31 b(demonstration)h(of)f(this)g(was)g(presented)g(by)f +(the)h(IBM)h(Deep)f(Blue.)57 b(Deep)31 b(blue)h(used)e(a)h(combination) +i(of)43 967 y(dedicated)h(hardware)e(for)h(generating)h(and)f +(evaluating)h(board)f(positions)g(and)h(parallel)g(search)e(of)h(the)g +(game)g(tree)43 1092 y(using)24 b(an)f(IBM)h(SP2)g(to)f(beat)h(the)f +(current)g(world)g(chess)f(champion,)i(Garry)e(Kasparov)g([16)q(,)h +(14].)43 1276 y(Heuristics)g(have)h(several)g(important)g(implications) +i(for)e(exploiting)h(parallelism.)36 b(Strong)25 b(heuristics)e(narrow) +h(the)g(state)43 1401 y(space)18 b(and)h(thus)g(reduce)f(the)h +(concurrency)e(available)j(in)f(the)g(search)f(space.)31 +b(Use)18 b(of)h(powerful)g(heuristics)f(pose)h(other)43 +1525 y(computational)30 b(challenges)f(for)e(parallel)j(processing)d +(as)h(well.)48 b(For)27 b(example,)j(in)e(branch\255and\255cut)g +(methods,)h(a)f(cut)43 1650 y(generated)e(at)g(a)g(certain)f(state)h +(may)f(be)h(required)g(by)f(other)h(states.)39 b(Therefore,)26 +b(in)g(addition)h(to)f(balancing)h(load,)g(the)43 1774 +y(parallel)g(branch\255and\255cut)e(formulation)i(must)e(also)h +(partition)h(cuts)e(among)h(processors)d(so)j(that)g(processors)d +(working)43 1899 y(in)h(certain)f(LP)h(domains)f(have)g(access)f(to)h +(the)h(desired)f(cuts)f([2)q(,)h(27,)g(8].)43 2083 y(In)35 +b(addition)h(to)f(inter\255node)g(parallelism)h(that)f(has)f(been)h +(discussed)f(until)i(this)e(point,)39 b(intra\255node)c(parallelism)h +(can)43 2208 y(become)21 b(a)h(viable)g(option)g(if)f(the)h(heuristic)f +(is)g(computationally)i(expensive.)31 b(For)21 b(example,)h(the)f +(assignment)h(heuristic)43 2332 y(of)27 b(Pekny)g(et)h(al.)45 +b(has)27 b(been)h(ef)o(fectively)f(parallelized)i(for)e(solving)g +(large)h(instances)f(of)g(TSPs)g([35)q(].)44 b(If)28 +b(the)f(degree)h(of)43 2457 y(inter\255node)h(parallelism)h(is)d +(small,)j(this)f(form)f(of)g(parallelism)i(provides)d(a)i(desirable)f +(alternative.)49 b(Another)28 b(example)43 2581 y(of)e(this)h(is)f(in)g +(the)h(solution)g(of)g(MIP)f(problems)h(using)f(branch\255and\255cut)g +(methods.)42 b(Branch\255and\255cut)25 b(methods)i(rely)f(on)43 +2706 y(LP)f(relaxation)h(for)f(generating)h(lower)f(bounds)g(of)g +(partially)h(instantiated)g(solutions)g(followed)g(by)e(generation)i +(of)f(valid)43 2830 y(inequalities)33 b([18].)55 b(These)30 +b(LP)h(relaxations)f(constitute)h(a)g(major)g(part)f(of)h(the)g +(overall)g(computation)g(time.)55 b(Many)31 b(of)43 2955 +y(the)25 b(industrial)i(codes)d(rely)h(on)g(Simplex)i(to)e(solve)g(the) +g(LP)h(problem)g(since)f(it)g(can)g(adapt)h(the)f(solution)i(to)e +(added)h(rows)43 3080 y(and)e(columns.)35 b(While)26 +b(interior)f(point)f(methods)h(are)f(better)g(suited)g(to)g +(parallelism,)i(they)e(tend)h(to)f(be)g(less)g(ef)o(\002cient)f(for)43 +3204 y(reoptimizing)k(LP)f(solutions)g(with)f(added)i(rows)d(and)i +(columns)f(\(in)h(branch\255and\255cut)e(methods\).)40 +b(LP)25 b(relaxation)i(using)43 3329 y(Simplex)j(has)e(been)i(shown)e +(to)h(parallelize)i(well)e(on)g(small)h(numbers)e(of)h(processors)e +(but)i(ef)o(forts)f(to)g(scale)h(to)g(larger)43 3453 +y(numbers)e(of)h(processors)d(have)i(not)h(been)f(successful.)44 +b(LP)27 b(based)h(branch)f(and)g(bound)h(methods)g(have)f(also)g(been) +43 3578 y(used)g(for)f(solving)h(quadratic)g(assignment)g(problems)g +(using)g(iterative)h(solvers)d(such)h(as)g(preconditioned)j(Conjugate) +43 3702 y(Gradient)37 b(to)h(approximately)f(compute)h(the)f(interior)h +(point)g(directions)f([37].)74 b(These)37 b(methods)g(have)g(been)h +(used)43 3827 y(to)30 b(compute)f(lower)h(bounds)g(using)g(linear)g +(programs)f(with)h(over)f(150,000)h(constraints)f(and)h(300,000)h +(variables)e(for)43 3951 y(solving)20 b(QAPs.)32 b(These)19 +b(and)i(other)f(iterative)h(solvers)e(parallelize)j(very)c(ef)o +(fectively)i(to)g(a)h(large)f(number)h(of)f(processors.)43 +4076 y(A)25 b(general)g(parallel)g(framework)f(for)g(computing)h +(heuristic)f(solutions)h(to)f(problems)h(is)f(presented)g(by)g +(Pramanick)h(and)43 4200 y(Kuhl)f([39)q(].)43 4600 y +Fj(8)116 b(Concluding)32 b(Remarks)43 4885 y Fk(Great)e(advances)g +(have)h(been)h(made)f(in)g(the)g(development)h(of)f(scalable)g +(parallel)i(formulations)f(of)f(various)f(search)43 5009 +y(methods)h(in)h(the)f(past)g(two)g(decades.)56 b(Performance)31 +b(and)g(scalability)h(of)f(load)h(balancing)g(techniques)g(for)e +(parallel)43 5134 y(depth\255\002rst)36 b(search)g(methods)i(is)f +(largely)g(understood,)k(and)d(it)g(is)f(unlikely)g(that)h(any)f(new)g +(methods)h(will)g(perform)43 5258 y(signi\002cantly)32 +b(better)g(than)g(the)g(existing)g(methods.)59 b(Parallel)34 +b(best\255\002rst)c(search)g(methods)j(require)f(qualitative)h(load) +1947 5610 y(11)p eop +%%Page: 12 12 +12 11 bop 43 344 a Fk(balancing)39 b(in)g(addition)h(to)e(quantitative) +h(load)g(balancing)g(used)f(in)h(depth\255\002rst)e(search,)k(and)d +(are)g(thus)g(harder)g(to)43 469 y(analyze.)h(However)-5 +b(,)25 b(many)g(methods)h(for)f(qualitative)i(load)f(balancing)g(have)f +(been)h(developed)g(and)g(shown)f(to)g(have)43 593 y(provably)h(good)i +(performance)e(under)h(a)g(reasonable)g(set)g(of)f(assumptions.)43 +b(For)27 b(a)f(wide)i(variety)e(of)h(problems,)g(both)43 +718 y(best\255\002rst)33 b(and)i(depth\255\002rst)e(search)h(methods)h +(have)f(shown)h(excellent)g(performance)g(and)g(scalability)g(up)g(to)f +(1024)43 842 y(processors)22 b([45)q(,)i(25)q(,)g(1,)h(40,)f(30)q(,)g +(44)q(].)36 b(Attention)26 b(has)e(now)h(shifted)g(to)g(the)f +(development)i(of)f(software)f(environments)43 967 y(that)g(allow)g +(practitioners)f(to)g(solve)g(real)h(problems)f(on)h(parallel)g +(machines)g([4].)43 1152 y(It)33 b(is)g(important)h(to)f(note)g(that)h +(parallel)g(processing)f(can)f(only)h(provide)h(speed)f(up)g +(proportional)h(to)f(the)g(number)h(of)43 1276 y(processors.)g(Hence,) +24 b(parallel)i(search)d(can)h(be)h(used)f(to)h(solve)f +(signi\002cantly)g(bigger)h(instances)f(of)g(the)h(problem)g(only)43 +1401 y(if)i(the)g(search)f(space)g(grows)g(as)h(a)g(small)g(exponent)g +(of)g(problem)h(size.)42 b(Hence,)28 b(challenges)g(remain)f(in)g +(discovering)43 1525 y(better)c(heuristics)g(that)h(reduce)f(the)g +(growth)g(of)h(the)f(search)g(space.)32 b(Indeed,)24 +b(for)f(many)g(problems,)g(gains)h(due)f(to)h(new)43 +1650 y(powerful)31 b(heuristics)e(may)g(be)i(much)e(higher)i(than)f +(those)g(due)g(to)g(massively)f(parallel)j(formulations)e(using)h +(existing)43 1774 y(heuristics.)h(These)23 b(powerful)h(heuristics)e +(may)h(also)h(of)o(fer)e(new)i(opportunities)g(for)f(exploiting)i +(parallelism.)43 2154 y Fj(References)85 2371 y Fn([1])40 +b(S.)19 b(Arvindam,)f(V)o(ipin)f(Kumar)l(,)h(and)g(V)-7 +b(.)18 b(Nageshwara)f(Rao.)25 b(Floorplan)16 b(optimization)f(on)k +(multiprocessors.)24 b(In)18 b Fb(Proceedings)f(of)209 +2486 y(the)j(1989)f(International)d(Conference)i(on)i(Computer)e +(Design)p Fn(,)h(1989.)85 2625 y([2])40 b(R.)17 b(E.)h(Bixby)-6 +b(,)18 b(W)l(.)f(Cook,)g(A.)g(Cox,)h(and)e(E.)h(Lee.)22 +b(Parallel)15 b(mixed)i(integer)e(programming.)20 b(T)-8 +b(echnical)15 b(Report)h(CRPC)h(TR)h(95554,)209 2739 +y(Center)h(for)h(Research)g(on)g(Parallel)d(Computation,)h(Research)h +(Monograph,)f(1995.)85 2878 y([3])40 b(Adrian)20 b(Brungger)l(,)f +(Ambros)i(Marzetta,)g(Jens)h(Clausen,)e(and)g(Michael)h(Perregaard.)28 +b(Solving)20 b(large\255scale)f(qap)i(problems)f(in)209 +2992 y(parallel)e(with)h(the)h(search)g(library)f(zram.)29 +b Fb(Journal)19 b(of)h(Parallel)e(and)h(Distributed)f(Computing)p +Fn(,)g(50:157\226169,)e(1998.)85 3131 y([4])40 b(B.)57 +b(L.)g(Cun)f(and)g(C.)i(Roucairol.)123 b(BOB:)57 b(A)g(uni\002ed)f +(platform)f(for)i(implementing)d(branch\255and\255bound)e(like)k +(al\255)209 3246 y(gorithms.)132 b(T)-8 b(echnical)58 +b(Report)g(N95/16,)68 b(Universiti)58 b(de)h(V)l(ersailles)f(Saint)h +(Quentin,)67 b(1995.)132 b(A)o(vailable)57 b(from)209 +3360 y Fa(http://www.prism.uvsq.fr/english/paralle)o(l/cr/b)o(ob)p +2371 3360 23 4 v 21 w(us.html)p Fn(.)85 3499 y([5])40 +b(E.)29 b(W)l(.)f(Dijkstra,)i(W)l(.)e(H.)g(Seijen,)h(and)e(A.)i(J.)g +(M.)g(V)-6 b(an)28 b(Gasteren.)49 b(Derivation)26 b(of)i(a)h +(termination)c(detection)h(algorithm)g(for)i(a)209 3613 +y(distributed)18 b(computation.)25 b Fb(Information)18 +b(Processing)h(Letters)p Fn(,)g(16\2555:217\226219,)d(1983.)85 +3752 y([6])40 b(S.)28 b(Dutt)f(and)f(N.)i(R.)f(Mahapatra.)45 +b(Scalable)25 b(load\255balancing)e(strategies)j(for)h(parallel)d(a*)k +(algorithms.)45 b Fb(Journal)26 b(of)h(Parallel)209 3866 +y(and)f(Distributed)e(Computing)p Fn(,)h(22\(3\):488\226505,)e(Sept.)i +(1994.)43 b(Special)25 b(Issue)i(on)e(Scalability)g(of)h(Parallel)e +(Algorithms)g(and)209 3981 y(Architectures.)85 4120 y([7])40 +b(Jonathan)13 b(Eckstein.)19 b(Parallel)13 b(branch\255and\255bound)d +(methods)k(for)h(mixed\255integer)d(programming)h(on)h(the)h(cm\2555.) +20 b Fb(SIAM)15 b(Journal)209 4234 y(on)20 b(Optimization)p +Fn(,)e(4\(4\):794\226814,)e(1994.)85 4373 y([8])40 b(Jonathan)14 +b(Eckstein.)22 b(Distributed)13 b(versus)k(centralized)d(storage)h(and) +g(control)g(for)h(parallel)e(branch)h(and)g(bound:)25 +b(Mixed)16 b(integer)209 4487 y(programming)i(on)i(the)g(cm\2555.)28 +b Fb(Computational)17 b(Optimization)h(and)h(Applications)p +Fn(,)f(7\(2\):199\226220,)e(1997.)85 4626 y([9])40 b(M.)22 +b(Evett,)f(James)h(Hendler)l(,)d(Ambujashka)h(Mahanti,)g(and)g(Dana)g +(Nau.)31 b(PRA*:)f(A)22 b(memory\255limited)d(heuristic)h(search)h +(proce\255)209 4741 y(dure)i(for)h(the)f(connection)e(machine.)37 +b(In)24 b Fb(Proceedings)d(of)j(the)f(Third)g(Symposium)g(on)h(the)f +(Frontiers)f(of)i(Massively)g(Parallel)209 4855 y(Computation)p +Fn(,)17 b(pages)j(145\226149,)d(1990.)43 4994 y([10])40 +b(Chris)17 b(Ferguson)e(and)h(Richard)g(Korf.)22 b(Distributed)15 +b(tree)h(search)h(and)f(its)h(application)d(to)j(alpha\255beta)d +(pruning.)20 b(In)d Fb(Proceedings)209 5108 y(of)j(the)g(1988)f +(National)f(Conference)g(on)i(Arti\002cial)f(Intelligence)p +Fn(,)d(August)k(1988.)43 5247 y([11])40 b(A.)33 b(Ferreira)d(and)i(P) +-10 b(.)33 b(Pardalos,)g(editors.)59 b Fb(Solving)31 +b(Combinatorial)e(Optimization)h(Problems)i(in)g(Parallel:)50 +b(Methods)31 b(and)209 5361 y(T)-7 b(echniques)p Fn(,)18 +b(volume)i(1054)f(of)h Fb(LNCS)g(State\255of\255the\255Art)c(Surveys)p +Fn(.)29 b(Springer\255V)l(erlag,)16 b(1996.)1947 5610 +y Fk(12)p eop +%%Page: 13 13 +13 12 bop 43 344 a Fn([12])40 b(Raphael)27 b(A.)i(Finkel)e(and)h(Udi)g +(Manber)l(.)50 b(DIB)29 b(\255)g(a)g(distributed)d(implementation)f(of) +j(backtracking.)50 b Fb(ACM)29 b(T)-6 b(ransactions)28 +b(of)209 459 y(Programming)18 b(Languages)g(and)h(Systems)p +Fn(,)i(9)g(No.)f(2:235\226256,)c(April)j(1987.)43 606 +y([13])40 b(M.)30 b(Furuichi,)f(K.)h(T)-8 b(aki,)31 b(and)d(N.)h +(Ichiyoshi.)52 b(A)29 b(multi\255level)e(load)h(balancing)f(scheme)i +(for)g(OR\255parallel)e(exhaustive)h(search)209 720 y(programs)20 +b(on)g(the)h(Multi\255PSI.)28 b(In)20 b Fb(Proceedings)f(of)i(the)f +(Second)g(ACM)h(SIGPLAN)f(Symposium)h(on)f(Principles)f(and)h(Practice) +209 834 y(of)g(Parallel)e(Programming)p Fn(,)g(pages)h(50\22659,)g +(1990.)43 982 y([14])40 b(Scott)19 b(Hamilton)d(and)i(Lee)g(Garber)l(.) +24 b(Deep)18 b(Blue')o(s)f(hardware\255software)e(synergy)-6 +b(.)26 b Fb(IEEE)18 b(Computer)p Fn(,)g(30\(10\):29\22635,)c(October) +209 1096 y(1997.)43 1243 y([15])40 b(F)-8 b(.\255H.)21 +b(Hsu.)33 b(Large)20 b(scale)i(parallelization)17 b(of)22 +b(alpha\255beta)c(search:)31 b(An)22 b(algorithmic)d(and)i +(architectural)f(study)h(with)h(computer)209 1357 y(chess.)29 +b(T)-8 b(echnical)18 b(report,)h(Carnegie)f(Mellon)h(University)-6 +b(,)20 b(Pittsburgh,)e(P)-6 b(A,)20 b(1990.)27 b(Ph.D.)20 +b(Thesis.)43 1505 y([16])40 b(F)-8 b(.\255H.)19 b(Hsu,)h(M.)f(S.)h +(Campbell,)d(and)i(A.)h(J.)g(Hoane.)25 b(Deep)19 b(Blue)f(system)j +(overview)l(.)26 b(In)19 b Fb(Conference)e(proceedings)g(of)i(the)g +(1995)209 1619 y(International)d(Conference)i(on)i(Supercomputing,)d +(Barcelona,)h(Spain)p Fn(,)g(pages)h(240\226244,)f(1995.)43 +1766 y([17])40 b(V)o(irendra)24 b(K.)i(Janakiram,)h(Dharma)e(P)-10 +b(.)27 b(Agrawal,)f(and)f(Ram)i(Mehrotra.)43 b(A)26 b(randomized)e +(parallel)g(backtracking)h(algorithm.)209 1880 y Fb(IEEE)20 +b(T)-6 b(ransactions)19 b(on)h(Computers)p Fn(,)f(C\25537)h(\(12\),)f +(1988.)43 2028 y([18])40 b(L.)28 b(Johnson,)h(G.)g(Nemhauser)l(,)f(and) +g(M.)g(Savelsbergh.)48 b(Progress)27 b(in)h(integer)e(programming:)42 +b(An)28 b(exposition.)48 b(T)-8 b(echnical)209 2142 y(report,)35 +b(School)c(of)i(Industrial)e(and)h(Systems)i(Engineering,)e(Georgia)f +(Institute)g(of)h(T)-8 b(echnology)i(,)34 b(1997.)60 +b(A)o(vailable)31 b(from)209 2256 y Fa(http://akula.isye.gatech.edu/)40 +b(mwps/mwps.html)p Fn(.)43 2403 y([19])g(L.)19 b(V)-7 +b(.)20 b(Kale)e(and)g(V)-7 b(.)20 b(Saletore.)k(Parallel)17 +b(state\255space)h(search)h(for)g(a)g(\002rst)h(solution)d(with)i +(consistent)f(linear)g(speedups.)25 b Fb(Interna\255)209 +2517 y(tional)19 b(Journal)f(of)i(Parallel)e(Programming)p +Fn(,)g(3,)i(August)g(1990.)43 2665 y([20])40 b(L.)20 +b(N.)h(Kanal)e(and)g(V)o(ipin)g(Kumar)l(.)27 b Fb(Search)20 +b(in)g(Arti\002cial)f(Intelligence)p Fn(.)25 b(Springer\255V)l(erlag,) +15 b(New)20 b(Y)-7 b(ork,)21 b(NY)-10 b(,)20 b(1988.)43 +2812 y([21])40 b(R.)21 b(Karp)f(and)g(Y)-10 b(.)21 b(Zhang.)28 +b(Randomized)18 b(parallel)g(algorithms)h(for)h(backtrack)h(search)g +(and)f(branch\255and\255bound)15 b(computation.)209 2926 +y Fb(Journal)k(of)h(ACM)p Fn(,)h(40:765\226789,)16 b(1993.)43 +3074 y([22])40 b(George)20 b(Karypis)g(and)g(V)o(ipin)e(Kumar)l(.)29 +b(Unstructured)19 b(T)m(ree)h(Search)g(on)g(SIMD)h(Parallel)d +(Computers.)28 b Fb(IEEE)21 b(T)-6 b(ransactions)19 b(on)209 +3188 y(Parallel)f(and)h(Distributed)f(Systems)p Fn(,)j(5\(10\),)e +(October)h(1994.)43 3335 y([23])40 b(V)-7 b(.)24 b(Kumar)f(and)g(L.)g +(N.)h(Kanal.)36 b(A)24 b(general)d(branch\255and\255bound)e +(formulations)i(for)j(understanding)19 b(and)k(synthesizing)f(and/or) +209 3449 y(tree)e(search)g(procedures.)26 b Fb(Arti\002cial)20 +b(Intelligence)p Fn(,)c(21:179\226198,)g(1983.)43 3597 +y([24])40 b(V)o(ipin)23 b(Kumar)l(,)h(Ananth)e(Grama,)j(Anshul)e +(Gupta,)h(and)g(George)e(Karypis.)39 b Fb(Introduction)21 +b(to)j(Parallel)e(Computing:)33 b(Algorithm)209 3711 +y(Design)19 b(and)h(Analysis)p Fn(.)28 b(Benjamin)18 +b(Cummings/)i(Addison)e(W)o(esley)i(\(ISBN)g(0\2558053\2553170\2550\),) +15 b(Redwod)k(City)-6 b(,)21 b(1994.)43 3858 y([25])40 +b(V)o(ipin)17 b(Kumar)l(,)h(Ananth)f(Grama,)h(and)g(V)-7 +b(.)19 b(Nageshwara)d(Rao.)25 b(Scalable)17 b(load)g(balancing)f +(techniques)g(for)j(parallel)c(computers.)209 3972 y +Fb(Journal)k(of)h(Parallel)e(and)h(Distributed)f(Computing)p +Fn(,)g(22\(1\):60\22679,)e(July)21 b(1994.)43 4120 y([26])40 +b(T)-8 b(.)27 b(H.)h(Lai)e(and)h(Sartaj)f(Sahni.)46 b(Anomalies)25 +b(in)i(parallel)e(branch)i(and)f(bound)g(algorithms.)45 +b Fb(Communications)25 b(of)i(the)g(ACM)p Fn(,)209 4234 +y(pages)19 b(594\226602,)f(1984.)43 4381 y([27])40 b(Eva)19 +b(K.)h(Lee)e(and)g(John)h(E.)g(Mitchell.)25 b(Computational)15 +b(experience)i(of)i(an)f(interior\255point)d(algorithm)i(in)i(a)g +(parallel)d(branch\255and\255)209 4495 y(cut)21 b(framework.)27 +b(In)20 b Fb(Proceedings)e(for)i(SIAM)h(Conference)d(on)i(Parallel)d +(Processing)j(for)g(Scienti\002c)f(Computing)p Fn(,)f(1997.)43 +4643 y([28])40 b(G.)28 b(J.)g(Li)f(and)g(B.)g(W)l(.)h(W)m(ah.)46 +b(Computational)24 b(ef)o(\002ciency)j(of)g(combinatorial)e(or\255tree) +h(searches.)47 b Fb(IEEE)27 b(T)-6 b(rans.)27 b(on)g(Software)209 +4757 y(Engineering)p Fn(,)16 b(16\(1\):13\22631,)h(Jan.)j(1990.)43 +4904 y([29])40 b(Guo\255Jie)22 b(Li)h(and)f(Benjamin)f(W)l(.)h(W)m(ah.) +35 b(Coping)21 b(with)i(anomalies)e(in)h(parallel)e +(branch\255and\255bound)e(algorithms.)34 b Fb(IEEE)23 +b(T)-6 b(rans\255)209 5019 y(actions)20 b(on)g(Computers)p +Fn(,)e(C\22635,)i(June)f(1986.)43 5166 y([30])40 b(N.)18 +b(R.)f(Mahapatra)e(and)i(S.)h(Dutt.)k(Scalable)16 b(global)f(and)i +(local)f(hashing)g(strategies)g(for)h(duplicate)e(pruning)g(in)i +(parallel)d(a*)k(graph)209 5280 y(search.)28 b Fb(IEEE)20 +b(T)-6 b(rans.)20 b(Parallel)e(and)i(Distributed)d(Systems)p +Fn(,)k(8\(7\),)f(July)g(1997.)1947 5610 y Fk(13)p eop +%%Page: 14 14 +14 13 bop 43 344 a Fn([31])40 b(B.)19 b(Mans,)g(T)-8 +b(.)18 b(Mautor)l(,)g(and)g(C.)h(Roucairol.)k(A)c(parallel)d(depth)i +(\002rst)h(search)g(branch)e(and)h(bound)f(for)h(the)g(quadratic)f +(assignment)209 459 y(problem.)27 b Fb(European)18 b(Journal)g(of)i +(Operational)d(Research)p Fn(,)j(81\(3\):617\226628,)15 +b(1995.)43 606 y([32])40 b(B.)21 b(Mans)g(and)e(C.)i(Roucairol.)27 +b(Performances)19 b(of)h(parallel)e(branch)i(and)f(bound)g(algorithms)g +(with)h(best\255\002rst)g(search.)29 b Fb(Discrete)209 +720 y(Applied)18 b(Mathematics)p Fn(,)h(66\(1\):57\22676,)e(April)i +(1996.)43 867 y([33])40 b(G.)19 b(Manzini)f(and)g(M.)h(Somalvico.)25 +b(Probabilistic)16 b(performance)h(analysis)h(of)h(heuristic)e(search)i +(using)f(parallel)e(hash)i(tables.)25 b(In)209 982 y +Fb(Proceedings)18 b(of)i(the)g(International)c(Symposium)k(on)g +(Arti\002cial)f(Intelligence)e(and)i(Mathematics)p Fn(,)g(1990.)43 +1129 y([34])40 b(T)-8 b(.)16 b(A.)g(Marsland)f(and)g(M.)h(Campbell.)j +(Parallel)14 b(search)h(of)h(strongly)f(ordered)f(game)h(trees.)21 +b Fb(Computing)14 b(Surveys)p Fn(,)j(14:533\226551,)209 +1243 y(1982.)43 1390 y([35])40 b(D.)24 b(L.)g(Miller)e(and)h(J.)h(F)-8 +b(.)24 b(Pekny)-6 b(.)38 b(The)23 b(role)f(of)i(performance)e(metrics)h +(for)h(parallel)d(mathematical)g(programming)h(algorithms.)209 +1505 y Fb(ORSA)f(Journal)d(on)i(Computing)p Fn(,)e(5\(1\),)i(1993.)43 +1652 y([36])40 b(M.)33 b(Padberg)e(and)g(G.)i(Rinaldi.)59 +b(A)33 b(branch\255and\255cut)c(algorithm)h(for)j(the)f(resolution)e +(of)i(large\255scale)e(symmetric)k(traveling)209 1766 +y(salesman)20 b(problems.)27 b Fb(SIAM)20 b(Rev)-6 b(.)p +Fn(,)21 b(33:60\226100,)16 b(1991.)43 1913 y([37])40 +b(P)-10 b(.)20 b(Pardalos,)e(Y)-10 b(.)20 b(Li,)f(K.G.)g(Ramakrishna,)f +(and)g(M.G.C.)i(Resende.)25 b(Lower)18 b(bounds)g(for)i(the)e +(quadratic)f(assignment)h(problem.)209 2028 y Fb(Annals)c(of)h +(Operations)f(Research)p Fn(,)h(50:387\226411,)d(1994.)18 +b(Special)c(V)l(olume)g(on)h(Applications)d(of)j(Combinatorial)d +(Optimization.)43 2175 y([38])40 b(Judea)23 b(Pearl.)38 +b Fb(Heuristics\255Intelligent)19 b(Search)24 b(Strategies)e(for)i +(Computer)f(Problem)f(Solving)p Fn(.)38 b(Addison\255W)o(esley)-6 +b(,)22 b(Reading,)209 2289 y(MA,)f(1984.)43 2437 y([39])40 +b(Ira)35 b(Pramanick)f(and)h(Jon)f(G.)i(Kuhl.)66 b(An)35 +b(inherently)e(parallel)f(method)i(for)g(heuristic)g +(problem\255solving:)55 b(Part)34 b(i\255general)209 +2551 y(framework.)28 b Fb(IEEE)20 b(T)-6 b(ransactions)19 +b(on)h(Parallel)d(and)j(Distributed)e(Systems)p Fn(,)j(6\(10\),)e +(October)g(1995.)43 2698 y([40])40 b(B.)18 b(Monien)e(R.)i(Feldmann,)e +(P)-10 b(.)18 b(Mysliwietz.)24 b(Studying)16 b(overheads)g(in)h +(massively)h(parallel)d(min/max\255tree)h(evaluation.)21 +b(In)d Fb(Proc.)209 2812 y(of)i(the)g(6th)g(ACM)g(Symposium)g(on)g +(Parallel)e(Algorithms)h(and)g(Architectures)p Fn(,)g(pages)g +(94\226103,)f(1994.)43 2960 y([41])40 b(A.)26 b(G.)g(Ranade.)40 +b(Optimal)24 b(speedup)f(for)j(backtrack)f(search)g(on)g(a)h +(butter\003y)e(network.)41 b(In)26 b Fb(Proceedings)d(of)i(the)g(Third) +f(ACM)209 3074 y(Symposium)c(on)g(Parallel)e(Algorithms)h(and)g +(Architectures)p Fn(,)g(1991.)43 3221 y([42])40 b(V)-7 +b(.)30 b(Nageshwara)e(Rao)h(and)g(V)-7 b(.)30 b(Kumar)l(.)53 +b(Concurrent)28 b(access)j(of)f(priority)e(queues.)52 +b Fb(IEEE)30 b(T)-6 b(ransactions)28 b(on)i(Computers)p +Fn(,)209 3335 y(C\25537\(12\),)18 b(1988.)43 3483 y([43])40 +b(V)-7 b(.)23 b(Nageshwara)d(Rao)i(and)g(V)o(ipin)f(Kumar)l(.)33 +b(On)23 b(the)f(ef)o(\002cicency)g(of)h(parallel)c(backtracking.)33 +b Fb(IEEE)23 b(T)-6 b(ransactions)21 b(on)h(Parallel)209 +3597 y(and)f(Distributed)f(Systems)p Fn(,)j(4\(4\):427\226437,)17 +b(April)k(1993.)31 b(Also)22 b(available)d(as)j(T)-8 +b(echnical)20 b(Report)h(TR)h(90\25555,)e(Department)g(of)209 +3711 y(Computer)f(Science,)g(University)h(of)g(Minnesota,)e +(Minneapolis,)g(MN.)43 3858 y([44])40 b(C.)26 b(Roucairol.)41 +b(A)26 b(parallel)d(branch)h(and)h(bound)f(algorithm)f(for)j(the)f +(quadratic)e(assignment)i(problem.)41 b Fb(Discr)m(.)26 +b(Appl.)e(Math.)p Fn(,)209 3972 y(18:211\226225,)16 b(1987.)43 +4120 y([45])40 b(B.)29 b(Monien)e(S.)i(T)-8 b(schvke,)31 +b(R.)e(L|ling.)50 b(Solving)27 b(the)h(traveling)f(salesman)h(problem)f +(with)h(a)h(distributed)d(branch\255and\255bound)209 +4234 y(algorithm)21 b(on)j(a)f(1024)f(processor)h(network.)36 +b(In)23 b Fb(Proc.)h(of)f(the)g(9th)g(International)c(Parallel)i +(Processing)i(Symposium)p Fn(,)g(pages)209 4348 y(182\226189,)18 +b(Santa)h(Barbara,)f(CA,)i(April)f(1995.)43 4495 y([46])40 +b(Benjamin)20 b(W)l(.)i(W)m(ah,)f(Gou\255Jie)g(Li,)h(and)f(C.)i(F)-8 +b(.)21 b(Y)l(u.)33 b(Multiprocessing)19 b(of)j(combinatorial)d(search)j +(problems.)31 b Fb(IEEE)22 b(Computer)p Fn(,)209 4610 +y(June)e(1985.)43 4757 y([47])40 b(Benjamin)20 b(W)l(.)i(W)m(ah)f(and)g +(Y)-10 b(.)22 b(W)l(.)g(Eva)g(Ma.)33 b(MANIP\227a)21 +b(multicomputer)f(architecture)g(for)h(solving)g(combinatorial)e +(extremum\255)209 4871 y(search)h(problems.)27 b Fb(IEEE)20 +b(T)-6 b(ransactions)19 b(on)h(Computers)p Fn(,)f(c\22633,)h(May)g +(1984.)1947 5610 y Fk(14)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF 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 +DI<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>II<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>II 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 diff --git a/parallel/mthesis.pdf b/parallel/mthesis.pdf new file mode 100644 index 0000000..4bbb8a3 Binary files /dev/null and b/parallel/mthesis.pdf differ diff --git a/parallel/p53-walczak.pdf b/parallel/p53-walczak.pdf new file mode 100644 index 0000000..34d9bda Binary files /dev/null and b/parallel/p53-walczak.pdf differ diff --git a/parallel/p533-marsland.pdf b/parallel/p533-marsland.pdf new file mode 100644 index 0000000..6f6b52b Binary files /dev/null and b/parallel/p533-marsland.pdf differ diff --git a/parallel/p65-campbell.pdf b/parallel/p65-campbell.pdf new file mode 100644 index 0000000..8a88033 Binary files /dev/null and b/parallel/p65-campbell.pdf differ diff --git a/parallel/pami.ps b/parallel/pami.ps new file mode 100755 index 0000000..bf1dafa --- /dev/null +++ b/parallel/pami.ps @@ -0,0 +1,3771 @@ +%!PS +%%Version: 3.3 +%%DocumentFonts: (atend) +%%Pages: (atend) +%%EndComments +% +% Version 3.3 prologue for troff files. +% + +/#copies 1 store +/aspectratio 1 def +/formsperpage 1 def +/landscape false def +/linewidth .3 def +/magnification 1 def +/margin 0 def +/orientation 0 def +/resolution 720 def +/rotation 1 def +/xoffset 0 def +/yoffset 0 def + +/roundpage true def +/useclippath true def +/pagebbox [0 0 612 792] def + +/R /Times-Roman def +/I /Times-Italic def +/B /Times-Bold def +/BI /Times-BoldItalic def +/H /Helvetica def +/HI /Helvetica-Oblique def +/HB /Helvetica-Bold def +/HX /Helvetica-BoldOblique def +/CW /Courier def +/CO /Courier def +/CI /Courier-Oblique def +/CB /Courier-Bold def +/CX /Courier-BoldOblique def +/PA /Palatino-Roman def +/PI /Palatino-Italic def +/PB /Palatino-Bold def +/PX /Palatino-BoldItalic def +/Hr /Helvetica-Narrow def +/Hi /Helvetica-Narrow-Oblique def +/Hb /Helvetica-Narrow-Bold def +/Hx /Helvetica-Narrow-BoldOblique def +/KR /Bookman-Light def +/KI /Bookman-LightItalic def +/KB /Bookman-Demi def +/KX /Bookman-DemiItalic def +/AR /AvantGarde-Book def +/AI /AvantGarde-BookOblique def +/AB /AvantGarde-Demi def +/AX /AvantGarde-DemiOblique def +/NR /NewCenturySchlbk-Roman def +/NI /NewCenturySchlbk-Italic def +/NB /NewCenturySchlbk-Bold def +/NX /NewCenturySchlbk-BoldItalic def +/ZD /ZapfDingbats def +/ZI /ZapfChancery-MediumItalic def +/S /S def +/S1 /S1 def +/GR /Symbol def + +/inch {72 mul} bind def +/min {2 copy gt {exch} if pop} bind def + +/setup { + counttomark 2 idiv {def} repeat pop + + landscape {/orientation 90 orientation add def} if + /scaling 72 resolution div def + linewidth setlinewidth + 1 setlinecap + + pagedimensions + xcenter ycenter translate + orientation rotation mul rotate + width 2 div neg height 2 div translate + xoffset inch yoffset inch neg translate + margin 2 div dup neg translate + magnification dup aspectratio mul scale + scaling scaling scale + + /Symbol /S Sdefs cf + /Times-Roman /S1 S1defs cf + 0 0 moveto +} def + +/pagedimensions { + useclippath userdict /gotpagebbox known not and { + /pagebbox [clippath pathbbox newpath] def + roundpage currentdict /roundpagebbox known and {roundpagebbox} if + } if + pagebbox aload pop + 4 -1 roll exch 4 1 roll 4 copy + landscape {4 2 roll} if + sub /width exch def + sub /height exch def + add 2 div /xcenter exch def + add 2 div /ycenter exch def + userdict /gotpagebbox true put +} def + +/pagesetup { + /page exch def + currentdict /pagedict known currentdict page known and { + page load pagedict exch get cvx exec + } if +} def + +/decodingdefs [ + {counttomark 2 idiv {y moveto show} repeat} + {neg /y exch def counttomark 2 idiv {y moveto show} repeat} + {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} + {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} + {counttomark 2 idiv {y moveto show} repeat} + {neg setfunnytext} +] def + +/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def + +/w {neg moveto show} bind def +/m {neg dup /y exch def moveto} bind def +/done {/lastpage where {pop lastpage} if} def + +/f { + dup /font exch def findfont exch + dup /ptsize exch def scaling div dup /size exch def scalefont setfont + linewidth ptsize mul scaling 10 mul div setlinewidth + /spacewidth ( ) stringwidth pop def +} bind def + +/changefont { + /fontheight exch def + /fontslant exch def + currentfont [ + 1 0 + fontheight ptsize div fontslant sin mul fontslant cos div + fontheight ptsize div + 0 0 + ] makefont setfont +} bind def + +/sf {f} bind def + +/cf { + dup length 2 idiv + /entries exch def + /chtab exch def + /newfont exch def + + findfont dup length 1 add dict + /newdict exch def + {1 index /FID ne {newdict 3 1 roll put} {pop pop} ifelse} forall + + newdict /Metrics entries dict put + newdict /Metrics get + begin + chtab aload pop + 1 1 entries {pop def} for + newfont newdict definefont pop + end +} bind def + +% +% A few arrays used to adjust reference points and character widths in some +% of the printer resident fonts. If square roots are too high try changing +% the lines describing /radical and /radicalex to, +% +% /radical [0 -75 550 0] +% /radicalex [-50 -75 500 0] +% +% Move braceleftbt a bit - default PostScript character is off a bit. +% + +/Sdefs [ + /bracketlefttp [201 500] + /bracketleftbt [201 500] + /bracketrighttp [-81 380] + /bracketrightbt [-83 380] + /braceleftbt [203 490] + /bracketrightex [220 -125 500 0] + /radical [0 0 550 0] + /radicalex [-50 0 500 0] + /parenleftex [-20 -170 0 0] + /integral [100 -50 500 0] + /infinity [10 -75 730 0] +] def + +/S1defs [ + /underscore [0 80 500 0] + /endash [7 90 650 0] +] def +%%EndProlog +%%BeginSetup +mark +/resolution 720 def +setup +2 setdecoding +%%EndSetup +%%Page: 1 1 +/saveobj save def +mark +1 pagesetup +10 B f +(The History Heuristic and)3 1120 1 2320 840 t +(Alpha-Beta Search Enhancements in Practice)4 1943 1 1908 1200 t +10 R f +(Jonathan Schaeffer)1 761 1 2499 1680 t +10 I f +(Abstract -)1 397 1 720 2160 t +10 R f +( have been proposed to help reduce the size of)9 1923(Many enhancements to the alpha-beta algorithm)5 1967 2 1150 2160 t +( recent enhancement, the history heuristic, is described that improves the order in which)13 3591( A)1 128(minimax trees.)1 601 3 720 2400 t +( comprehensive set of experiments is reported which tries all)9 2498( A)1 130( nodes.)1 291(branches are considered at interior)4 1401 4 720 2640 t +( work on)2 387( Previous)1 416( one yields the best performance.)5 1399(combinations of enhancements to determine which)5 2118 4 720 2880 t +( concentrated on the benefits of individual enhancements or a few combina-)11 3051(assessing their performance has)3 1269 2 720 3120 t +( each enhancement should not be taken in isolation; one would like to find the combination)15 3659(tions. However,)1 661 2 720 3360 t +( indicate that the history heuristic and transposition)7 2067( Results)1 348( the greatest reduction in tree size.)6 1384(that provides)1 521 4 720 3600 t +( For)1 202(tables significantly out-perform other alpha-beta enhancements in application generated game trees.)10 4118 2 720 3840 t +( 99% of the possible reductions in tree size,)8 1779(trees up to depth 8, when taken together, they account for over)11 2541 2 720 4080 t +(with the other enhancements yielding insignificant gains.)6 2284 1 720 4320 t +10 I f +( -)1 58(Index Terms)1 524 2 720 4800 t +10 R f +(Alpha-beta search, minimax search, game trees, history heuristic, transposition tables,)9 3685 1 1355 4800 t +(minimal window search, killer heuristic.)4 1615 1 720 5040 t +cleartomark +showpage +saveobj restore +%%EndPage: 1 1 +%%Page: 2 2 +/saveobj save def +mark +2 pagesetup +11 R f +(- 2 -)2 183 1 2788 490 t +11 B f +(1. Introduction)1 739 1 720 840 t +11 R f +(Many modifications and enhancements to the alpha-beta \()7 2546 1 970 1116 t +11 S f +(ab)3516 1116 w +11 R f +(\) algorithm have been proposed)4 1394 1 3646 1116 t +( in)1 119( of the more prominent ones)5 1273( Some)1 313(to increase the efficiency of minimax game tree searching.)8 2615 4 720 1356 t +( tables [2], refutation tables [3],)5 1563(the literature include iterative deepening [1], transposition)6 2757 2 720 1596 t +( of these)2 412( Some)1 327( aspiration search [5] and the killer heuristic [3].)8 2279(minimal window search [4],)3 1302 4 720 1836 t +( each)1 232( However,)1 489( others appear to have questionable merit.)6 1863(search aids seem to be beneficial while)6 1736 4 720 2076 t +( find the combination of features)5 1457(enhancement should not be taken in isolation; one would like to)10 2863 2 720 2316 t +( merits)1 307( experiments assessing the relative)4 1531( Several)1 387(that provides the greatest reduction in tree size.)7 2095 4 720 2556 t +( these features have been reported in the literature, using both artificially constructed)12 3830(of some of)2 490 2 720 2796 t +( trees.)1 262( 7, 8])2 210([6] and application generated [1,)4 1428 3 720 3036 t +(The size of the search tree built by a depth-first)9 2148 1 970 3312 t +11 S f +(ab)3154 3312 w +11 R f +( the order in)3 561(search largely depends on)3 1159 2 3320 3312 t +( minimal)1 398( The)1 228(which branches are considered at interior nodes.)6 2128 3 720 3552 t +11 S f +(ab)3503 3552 w +11 R f +(tree arises if the branch leading)5 1378 1 3662 3552 t +( them in worst to)4 796( Examining)1 551( at all interior nodes.)4 956(to the best minimax score is considered first)7 2017 4 720 3792 t +( it)1 95( the difference between the two extremes is large,)8 2225( Since)1 306(best order results in the maximal tree.)6 1694 4 720 4032 t +( application)1 538( Typically,)1 527( a good ordering of branches at interior nodes.)8 2204(is imperative to obtain)3 1051 4 720 4272 t +(dependent knowledge is applied to make a "best guess" decision on an order to consider them in.)16 4258 1 720 4512 t +( to the)2 294(In this paper, a recent enhancement)5 1592 2 970 4788 t +11 S f +(ab)2893 4788 w +11 R f +(algorithm, the history heuristic, is described)5 1980 1 3060 4788 t +( order in which branches are con-)6 1466( heuristic achieves its performance by improving the)7 2316( The)1 227([9, 10].)1 311 4 720 5028 t +( game trees, the same branch, or)6 1450( In)1 153(sidered at interior nodes.)3 1104 3 720 5268 t +10 I f +(move)3458 5268 w +11 R f +(, will occur many times at dif-)6 1372 1 3668 5268 t +(ferent nodes, or)2 703 1 720 5508 t +10 I f +(positions)1457 5508 w +11 R f +( move is in leading to)5 993( history is maintained of how successful each)7 2056(. A)1 172 3 1819 5508 t +( every different)2 684( information is maintained for)4 1336( This)1 256(the highest minimax score at an interior node.)7 2044 4 720 5748 t +( in)1 115( interior nodes of the tree, moves are examined)8 2080( At)1 168(move, regardless of the originating position.)5 1957 4 720 5988 t +( information is accumulated)3 1233( this manner, previous search)4 1284( In)1 147(order of their prior history of success.)6 1656 4 720 6228 t +(and distributed throughout the tree.)4 1549 1 720 6468 t +( heuristic and)2 608(A series of experiments is reported that assess the performance of the history)12 3462 2 970 6744 t +(the prominent)1 620 1 720 6984 t +11 S f +(ab)1374 6984 w +11 R f +( experiments consisted of trying all possible combi-)7 2312( The)1 231(search enhancements.)1 959 3 1538 6984 t +( The)1 243(nations of enhancements in a chess program to find out which provides the best results.)14 4077 2 720 7224 t +cleartomark +showpage +saveobj restore +%%EndPage: 2 2 +%%Page: 3 3 +/saveobj save def +mark +3 pagesetup +11 R f +(- 3 -)2 183 1 2788 490 t +( each of these enhancements is quantified, providing evidence)8 2722(reductions in tree size achievable by)5 1598 2 720 840 t +( is the first comprehensive test performed in this area; previous)10 2951( This)1 270(of their \(in\)significance.)2 1099 3 720 1080 t +( into account)2 568( this work takes)3 697( Further,)1 408( 7, 8].)2 238(work has been limited to a few select combinations [1,)9 2409 5 720 1320 t +( nodes, something not addressed by previous)6 1983(the effect on tree size of ordering branches at interior)9 2337 2 720 1560 t +(work.)720 1800 w +( with transposition tables provides more)5 1769(The results show that the history heuristic combined)7 2301 2 970 2076 t +(than 99% of the possible reductions in tree size; the others combining for an insignificant)14 4320 1 720 2316 t +( a simple, mechanical way to order branches at interior)9 2570( history heuristic is)3 893(improvement. The)1 857 3 720 2556 t +( time and space overheads of the)6 1456( has none of the implementation, debugging, execution)7 2452(nodes. It)1 412 3 720 2796 t +( of using explicit knowledge, the heuristic uses the implicit)9 2618( Instead)1 374(knowledge-based alternatives.)1 1328 3 720 3036 t +( gives rise)2 456( This)1 257( the tree.)2 391(knowledge of the "experience" it has gained from visiting other parts of)11 3216 4 720 3276 t +( knowledge is better in that an application dependent knowledge-)9 2892(to the apparent paradox that less)5 1428 2 720 3516 t +(based ordering method can be approximated by the history heuristic.)9 3015 1 720 3756 t +11 B f +(2.)720 4116 w +11 S f +(ab)859 4116 w +11 B f +(and its Enhancements)2 1036 1 1017 4116 t +11 R f +(An)970 4392 w +10 I f +(adversary)1135 4392 w +11 R f +(or)1569 4392 w +10 I f +(game)1692 4392 w +11 R f +( types)1 267( Two)1 264(tree is one in which two players alternate making moves.)9 2566 3 1943 4392 t +( at the bottom of the tree are called)8 1555( Nodes)1 339(of nodes in the tree are distinguished.)6 1670 3 720 4632 t +10 I f +(lea f)1 166 1 4312 4632 t +11 R f +(nodes while)1 531 1 4509 4632 t +(those with successors are)3 1118 1 720 4872 t +10 I f +(interior)1867 4872 w +11 R f +( may be referred to as a)6 1058( interior or leaf node)4 918(nodes. An)1 478 3 2205 4872 t +10 I f +(position)4689 4872 w +11 R f +(.)5012 4872 w +(An)720 5112 w +10 I f +(evaluator)882 5112 w +11 R f +( A)1 137( leaf nodes to assign a score measuring the merit of the position.)12 2850(is used at)2 416 3 1296 5112 t +10 I f +(move)4726 5112 w +11 R f +(is)4966 5112 w +(the operation by which a position is transformed into a successor position.)11 3264 1 720 5352 t +( subtree,)1 384(For each)1 391 2 970 5628 t +11 S f +(ab)1785 5628 w +11 R f +(maintains lower \()2 793 1 1955 5628 t +11 S f +(a)2748 5628 w +11 R f +(\) and upper \()3 599 1 2817 5628 t +11 S f +(b)3416 5628 w +11 R f +(\) bounds on the range of minimax)6 1563 1 3477 5628 t +( can be)2 322(values that)1 480 2 720 5868 t +11 I f +(backed-up)1556 5868 w +11 R f +( benefits of the algo-)4 933( The)1 232(to affect the value at the root of the root.)9 1830 3 2045 5868 t +( proven their value must lie)5 1222(rithm come from the elimination of sub-trees without search once it is)11 3098 2 720 6108 t +(outside the)1 481 1 720 6348 t +11 S f +(ab)1230 6348 w +11 R f +( eliminated in this manner are said to be)8 1768( Sub-trees)1 471(search window.)1 689 3 1389 6348 t +11 I f +(cutoff.)4346 6348 w +11 S f +(ab)4681 6348 w +11 R f +(does)4839 6348 w +( the optimal case, for)4 957( In)1 155( growth of the trees; it merely dampens it.)8 1907(not eliminate the exponential)3 1301 4 720 6588 t +(uniform trees of depth)3 994 1 720 6839 t +10 I f +(d)1744 6839 w +11 R f +(\(or)1827 6839 w +10 I f +(d ply)1 202 1 1984 6839 t +11 R f +( branching factor)2 756(\) and)1 227 2 2186 6839 t +10 I f +(w)3198 6839 w +11 R f +(,)3265 6839 w +10 I f +(w)3322 6839 w +7 S f +(\351)3405 6791 w +7 I f +(d /)1 60 1 3440 6782 t +7 R f +(2)3505 6782 w +7 S f +(\371)3540 6791 w +10 S f +(+)3624 6839 w +10 I f +(w)3728 6839 w +7 S f +(\353)3811 6791 w +7 I f +(d /)1 60 1 3846 6782 t +7 R f +(2)3911 6782 w +7 S f +(\373)3946 6791 w +10 S f +(-)4030 6839 w +10 R f +(1)4134 6839 w +11 R f +(leaf nodes need be)3 824 1 4216 6839 t +( the worst case,)3 689( In)1 151(considered [11].)1 716 3 720 7079 t +11 S f +(ab)2309 7079 w +11 R f +(becomes a full minimax search, evaluating)5 1904 1 2472 7079 t +10 I f +(w)4406 7079 w +7 I f +(d)4484 7039 w +11 R f +(leaf nodes.)1 480 1 4560 7079 t +( moves are examined at interior nodes.)6 1855(The size of the tree depends on the order in which)10 2465 2 720 7319 t +cleartomark +showpage +saveobj restore +%%EndPage: 3 3 +%%Page: 4 4 +/saveobj save def +mark +4 pagesetup +11 R f +(- 4 -)2 183 1 2788 490 t +( interior node in the tree pro-)6 1281(Considering the move producing the best minimax score first at each)10 3039 2 720 840 t +(duces the)1 411 1 720 1080 t +10 I f +(minimal)1156 1080 w +11 R f +(or)1512 1080 w +10 I f +(optimally)1628 1080 w +11 R f +(-)2006 1080 w +10 I f +(ordered)2042 1080 w +11 S f +(ab)2386 1080 w +11 R f +(tree.)2544 1080 w +(Many enhancements to)2 1022 1 970 1356 t +11 S f +(ab)2022 1356 w +11 R f +( are usually based on)4 933( They)1 284( in the literature.)3 736(have been suggested)2 905 4 2182 1356 t +(one or more of the following principals:)6 1759 1 720 1596 t +(1\))720 1872 w +11 I f +(ordering)839 1872 w +11 R f +(, improving the order in which moves are examined at interior nodes ,)12 3072 1 1224 1872 t +(2\))720 2148 w +11 I f +(window size)1 540 1 842 2148 t +11 R f +( window \(absolute difference between)4 1689(, the smaller the search)4 1021 2 1382 2148 t +11 S f +(a)4124 2148 w +11 R f +(and)4225 2148 w +11 S f +(b)4415 2148 w +11 R f +(\), the greater)2 564 1 4476 2148 t +(the chance for a cutoff to occur, and)7 1582 1 720 2388 t +(3\))720 2664 w +11 I f +(re-using information)1 927 1 851 2664 t +11 R f +(, saving the results of sub-trees examined in the event that this sub-tree)12 3262 1 1778 2664 t +(re-appears at a later time.)4 1110 1 720 2904 t +(Following is a brief discussion of the major)7 1918 1 720 3180 t +11 S f +(ab)2666 3180 w +11 R f +(enhancements used in practice.)3 1364 1 2824 3180 t +11 B f +(A\) Iterative deepening)2 1079 1 720 3576 t +11 R f +( used to increase the probability that the best)8 2089( technique is)2 586( This)1 267([1, 8].)1 256 4 1842 3576 t +( series of staged searches are carried out to succes-)9 2232( A)1 136(move is searched first at the root of the tree.)9 1952 3 720 3816 t +(sively larger search depths, using the best move found for a)10 2655 1 720 4056 t +10 I f +(d)3404 4056 w +10 S f +(-)3478 4056 w +10 R f +(1)3549 4056 w +11 R f +( first examined)2 669(ply search as the)3 740 2 3631 4056 t +(in a)1 174 1 720 4296 t +10 I f +(d)931 4296 w +11 R f +( gained in the)3 629( the search progresses deeper, more and more confidence is)9 2713( As)1 190(ply search.)1 487 4 1021 4296 t +( cost of an iteration is strongly influenced by the branching factor)11 2977( The)1 235(best move.)1 486 3 720 4536 t +10 I f +(w)4452 4536 w +11 R f +( chess)1 275(. For)1 246 2 4519 4536 t +(programs \(with)1 675 1 720 4776 t +10 I f +(w)1421 4776 w +11 R f +( odd depth is about 8)5 922(typically around 35\), the cost of iterating an extra ply to an)11 2601 2 1517 4776 t +( 3 times \(a consequence of)5 1197(times the cost of the previous search, whereas to an even depth, about)12 3123 2 720 5016 t +(the)720 5256 w +10 S f +(\353 \373)1 113 1 893 5269 t +11 R f +(and)1040 5256 w +10 S f +(\351 \371)1 113 1 1237 5269 t +11 R f +( the cost of performing iterations)5 1474( Thus)1 282(operators in the minimal tree formula\) [1].)6 1900 3 1384 5256 t +(to)720 5501 w +10 R f +( ,)1 33( 2)1 91(1 ,)1 83 3 834 5501 t +(. . .)2 125 1 1107 5476 t +(,)1298 5501 w +10 I f +(d)1364 5501 w +10 S f +(-)1438 5501 w +10 R f +(1)1509 5501 w +11 R f +( that the best move)4 848(ply is only a small price to pay for having high confidence)11 2602 2 1590 5501 t +(is being searched first for the larger)6 1559 1 720 5741 t +10 I f +(d)2304 5741 w +11 R f +(ply search.)1 475 1 2382 5741 t +( in a tourna-)3 546(Iterative deepening is useful when the search is constrained by time \(as, for example,)13 3774 2 720 6017 t +( any point, the search can be terminated with the best move \(to that point\) known.)15 3596( At)1 166(ment game\).)1 549 3 720 6257 t +11 B f +(B\) Transposition tables)2 1106 1 720 6533 t +11 R f +( trees are not necessarily distinct; it may)7 1803( nodes of game)3 680( Interior)1 388([2, 12].)1 311 4 1858 6533 t +( tables take advantage of this)5 1277( These)1 318( more than one path.)4 905(be possible to reach the same position by)7 1820 4 720 6773 t +( searched in the event that the identical position)8 2247(by recording information about each sub-tree)5 2073 2 720 7013 t +( move that leads)3 724( information saved would include the value of the sub-tree, the)10 2786( The)1 229(occurs again.)1 581 4 720 7253 t +cleartomark +showpage +saveobj restore +%%EndPage: 4 4 +%%Page: 5 5 +/saveobj save def +mark +5 pagesetup +11 R f +(- 5 -)2 183 1 2788 490 t +( searching a new sub-tree, the)5 1328( Before)1 358( which the tree was searched.)5 1309(to this value, and the depth to)6 1325 4 720 840 t +( so, depending on)3 777( If)1 128( the current node.)3 768(table is interrogated to see if there is information relevant to)10 2647 4 720 1080 t +(the quality of the information found, the entire sub-tree may not need to be searched.)14 3729 1 720 1320 t +( and it was previously)4 1046( the position is found in the table)7 1582( If)1 147(The tables are used in two ways.)6 1545 4 720 1596 t +( for the sub-tree can be retrieved from the)8 1922(searched to at least the desired depth, then the value)9 2398 2 720 1836 t +( trees)1 245( that this has the potential for building)7 1751(table. Note)1 520 3 720 2076 t +11 I f +(smaller)3275 2076 w +11 R f +(than the minimal game tree by)5 1396 1 3644 2076 t +( the information is not as reliable as)7 1728( If)1 150( without performing any search.)4 1494(eliminating sub-trees)1 948 4 720 2316 t +(desired \(was not previously searched deep enough\) the best move from the previous search can be)15 4320 1 720 2556 t +( a shallower search\) there is a high pro-)8 1754( this move was previously best \(albeit for)7 1846(retrieved. Since)1 720 3 720 2796 t +( transposition tables)2 907( Thus)1 289( tried first.)2 488(bability it is also best for the current depth and should be)11 2636 4 720 3036 t +(allow for the reuse of information and help improve ordering.)9 2709 1 720 3276 t +( the)1 170( As)1 186( are typically implemented as a hash table.)7 1924(To minimize access time, transposition tables)5 2040 4 720 3552 t +( reducing their effectiveness.)3 1278(table becomes full, collisions occur and information lost, potentially)8 3042 2 720 3792 t +(As a consequence, the tables are usually as large as possible.)10 2665 1 720 4032 t +11 B f +(C\) Refutation tables)2 946 1 720 4308 t +11 R f +( Refutation)1 521( is their size.)3 560( major disadvantage of transposition tables)5 1884([3]. The)1 381 4 1694 4308 t +( the advantages of transposition tables, when used with iterative)9 2935(tables attempt to retain one of)5 1385 2 720 4548 t +( each iteration, the search yields a path for)8 1864( For)1 210( memory requirements.)2 1024(deepening, but with smaller)3 1222 4 720 4788 t +( to a leaf node that results in either the correct minimax score or an upper)15 3233(each move from the root)4 1087 2 720 5028 t +( path from the)3 623( This)1 253(bound on its value.)3 842 3 720 5268 t +10 I f +(d)2464 5268 w +10 S f +(-)2538 5268 w +10 R f +(1)2609 5268 w +11 R f +(ply search can be used as the basis for the search to)11 2274 1 2689 5268 t +10 I f +(d)4990 5268 w +11 R f +( iteration's path or)3 857( searching the previous)3 1066(ply. Often,)1 519 3 720 5508 t +11 I f +(refutation)3206 5508 w +11 R f +(for a move as the initial path)6 1355 1 3685 5508 t +(examined for the current iteration will prove sufficient to refute the move one ply deeper.)14 3924 1 720 5748 t +11 B f +(D\) Minimal window)2 987 1 720 6024 t +11 R f +( window searching is a variant of)6 1590( Minimal)1 458([4, 8, 13].)2 412 3 1757 6024 t +11 S f +(ab)4267 6024 w +11 R f +(based on the)2 593 1 4447 6024 t +( remaining moves are inferior until pro-)6 1775(assumption that the first move considered is best and the)9 2545 2 720 6264 t +( that the first branch has been searched with a full win-)11 2467( an interior node, given)4 1039( At)1 170(ven otherwise.)1 644 4 720 6504 t +(dow \()1 256 1 720 6744 t +11 S f +(a)976 6744 w +11 R f +(,)1045 6744 w +11 S f +(b)1104 6744 w +11 R f +(\) and produced a value)4 1010 1 1165 6744 t +10 I f +(v)2203 6744 w +11 R f +( moves are searched with the)5 1280(inside the window, the remaining)4 1482 2 2278 6744 t +(minimal window \()2 830 1 720 6984 t +10 I f +(v)1550 6984 w +10 R f +(,)1602 6984 w +10 I f +(v)1635 6984 w +10 S f +(+)1703 6984 w +10 R f +(1)1774 6984 w +11 R f +( win-)1 238( motivation for minimal window searching is that a smaller)9 2680(\). The)1 298 3 1824 6984 t +( minimal window searching is a probabilistic gamble)7 2416( Essentially,)1 579( smaller tree.)2 594(dow generates a)2 731 4 720 7224 t +cleartomark +showpage +saveobj restore +%%EndPage: 5 5 +%%Page: 6 6 +/saveobj save def +mark +6 pagesetup +11 R f +(- 6 -)2 183 1 2788 490 t +( the gamble proves incorrect,)4 1333( If)1 142(that most moves can be shown to be inferior with little effort.)11 2845 3 720 840 t +( a re-search \(to encompass the range of values \()9 2156(then additional work is required to do)6 1710 2 720 1080 t +10 I f +(v)4586 1080 w +10 S f +(+)4654 1080 w +10 R f +(1 ,)1 83 1 4725 1080 t +10 S f +(b)4849 1080 w +11 R f +(\) \).)1 136 1 4904 1080 t +(At a node with)3 654 1 720 1320 t +10 I f +(w)1400 1320 w +11 R f +(successors,)1496 1320 w +11 S f +(ab)2015 1320 w +11 R f +(only recognizes only one best move, which implies)7 2269 1 2174 1320 t +10 I f +(w)4470 1320 w +10 S f +(-)4561 1320 w +10 R f +(1)4632 1320 w +11 R f +(inferior)4712 1320 w +(ones.)720 1560 w +11 B f +(E\) Aspiration search)2 972 1 720 1836 t +11 R f +( The)1 226([5, 14].)1 311 2 1720 1836 t +11 S f +(ab)2285 1836 w +11 R f +(search is usually started with a)5 1346 1 2443 1836 t +10 R f +(\()3814 1836 w +10 S f +(- \245)1 144 1 3863 1836 t +10 R f +(,)4015 1836 w +10 S f +(\245)4081 1836 w +10 R f +(\))4162 1836 w +11 R f +( If)1 129(search window.)1 688 2 4223 1836 t +( of the search will fall is available, then tighter bounds)10 2442(some idea of the range in which the value)8 1878 2 720 2076 t +( involves using a smaller initial search)6 1783( search)1 321( Aspiration)1 535(can be placed on the initial window.)6 1681 4 720 2316 t +( Other-)1 353( value falls within the window, then the original window was adequate.)11 3269( the)1 175(window. If)1 523 4 720 2556 t +(wise, one must re-search with a wider window.)7 2071 1 720 2796 t +11 B f +(F\) Killer Heuristic)2 915 1 720 3072 t +11 R f +( quickly)1 383( during a search, most moves tried in a position are)10 2486([3]. Often)1 484 3 1687 3072 t +( killer heuristic involves remembering at each depth of)8 2492( The)1 237(refuted, usually by the same move.)5 1591 3 720 3312 t +( next time the same)4 864( The)1 228( most cutoffs \("killers"\).)3 1074(search the move\(s\) which seem to be causing the)8 2154 4 720 3552 t +(depth in the tree is reached, the killer move is retrieved and used, if valid in the current position.)18 4230 1 720 3792 t +( a dramatic effect on tree size, it is)8 1565(Since searching the best move first at interior nodes has)9 2505 2 970 4224 t +( ordering usually)2 761( resources to achieving this)4 1232( Devoting)1 474(important to have a good move ordering.)6 1853 4 720 4464 t +( or refutation table can be used, they help order the)10 2285( positions where the transposition)4 1496( In)1 151(pays off.)1 388 4 720 4704 t +( information acquired from previ-)4 1497(moves by suggesting a likely candidate for best move based on)10 2823 2 720 4944 t +( any information on)3 883( they don't tell how to order the remaining moves, nor give)11 2637( But)1 219(ous searches.)1 581 4 720 5184 t +( method used by most game)5 1273( The)1 234( at nodes where the tables provide no clues.)8 1977(how to order them)3 836 4 720 5424 t +( to apply application dependent heuristic knowledge to each move indicating)10 3436(playing programs is)2 884 2 720 5664 t +( course, any ordering)3 941( Of)1 176( and sort based on these assessments.)6 1664(how good the move is likely to be)7 1539 4 720 5904 t +(is probabilistic guessing since the desirability of a move usually cannot be reliably determined)13 4320 1 720 6144 t +( the knowledge used, this approach)5 1554( on the quality of)4 765( Depending)1 540(without performing some search.)3 1461 4 720 6384 t +(is usually superior to a random ordering.)6 1787 1 720 6624 t +(Several studies have been performed investigating how close)7 2764 1 970 6900 t +11 S f +(ab)3774 6900 w +11 R f +(search with its enhance-)3 1095 1 3945 6900 t +( and Marsland [6] have investigated this)6 1770( Campbell)1 485( tree.)1 220(ments can come to achieving the minimal)6 1845 4 720 7140 t +cleartomark +showpage +saveobj restore +%%EndPage: 6 6 +%%Page: 7 7 +/saveobj save def +mark +7 pagesetup +11 R f +(- 7 -)2 183 1 2788 490 t +( experimented)1 631( 8])1 109(question using artificially-constructed trees, while Gillogly [1] and Marsland [7,)9 3580 3 720 840 t +( experiments considered trees of depths 2 through 6 ply [8].)10 2722( Marsland's)1 559( program.)1 437(using a chess)2 602 4 720 1080 t +(For even depths, the results showed that)6 1775 1 720 1320 t +11 S f +(ab)2526 1320 w +11 R f +(, enhanced with minimal window searching \(the Prin-)7 2384 1 2656 1320 t +( build trees)2 503(cipal Variation Search algorithm\) and refutation and transposition tables, was able to)11 3817 2 720 1560 t +( The)1 227( 1.5.)1 195( odd depths, this was reduced to a factor of)9 1886( For)1 209(within twice the size of the minimal tree.)7 1803 5 720 1800 t +(factor of 2 for even depths is roughly the same as in Campbell and Marsland [6], but these results)18 4320 1 720 2040 t +(were achieved)1 643 1 720 2280 t +11 I f +(without)1408 2280 w +11 R f +( illustrates the danger of)4 1130( This)1 269(using transposition and refutation tables.)4 1856 3 1785 2280 t +( gen-)1 229(using results from artificially-constructed trees as a guideline for how to search application)12 4091 2 720 2520 t +( refutation)1 476( study also showed that for shallow searches, the performance of)10 3048( The)1 247(erated trees.)1 549 4 720 2760 t +( comparable to that of transposition tables, but as the search depth increased, refutation)13 3862(tables was)1 458 2 720 3000 t +(tables out-performed transposition tables \(probably because of transposition table over-loading\).)9 4233 1 720 3240 t +( is usu-)2 321(A variety of studies have been performed demonstrating that minimal window search)11 3749 2 970 3516 t +(ally superior to just)3 866 1 720 3756 t +11 S f +(ab)1618 3756 w +11 R f +( artificially constructed game trees)4 1529( advantage is more pronounced in)5 1505(. The)1 258 3 1748 3756 t +( where the stronger ordering of moves at inte-)8 2044( 8],)1 137( trees [7,)2 389( than in application generated)4 1311([6, 13, 15])2 439 5 720 3996 t +(rior nodes results in smaller trees.)5 1484 1 720 4236 t +( observed no benefits)3 951( Gillogly)1 429( has been questioned.)3 955(The effectiveness of the killer heuristic)5 1735 4 970 4512 t +( is a)2 206( This)1 266( reductions in tree size - as much as 80% [16].)10 2169([1], whereas Hyatt claims significant)4 1679 4 720 4752 t +(popular)720 4992 w +11 S f +(ab)1083 4992 w +11 R f +(enhancement, yet no one really seems to know how effective it is.)11 2896 1 1241 4992 t +11 B f +( History Heuristic)2 843(3. The)1 323 2 720 5352 t +11 R f +(Using the terminology of Newell and Simon [17], a)8 2375 1 970 5628 t +11 I f +(problem space)1 657 1 3387 5628 t +11 R f +(is a set of)3 461 1 4086 5628 t +11 I f +(states)4589 5628 w +11 R f +(and)4882 5628 w +11 I f +(operators)720 5868 w +11 R f +( state of knowledge, one repeatedly)5 1584( from an initial)3 679( Starting)1 412(that map states into states.)4 1182 4 1183 5868 t +( as parameterized)2 793( can be viewed)3 693( Operators)1 500(applies operators to states, looking for a goal state.)8 2334 4 720 6108 t +( In)1 155( operator should do to the state.)6 1433(functions; the parameters providing the specifics of what the)8 2732 3 720 6348 t +( move operation could)3 1013( The)1 235(the context of game trees, states are positions and moves, operators.)10 3072 3 720 6588 t +( function of three parameters: the initial position and the from-square and to-square)12 3672(be viewed as a)3 648 2 720 6828 t +(of the move, producing a new successor position.)7 2171 1 720 7068 t +cleartomark +showpage +saveobj restore +%%EndPage: 7 7 +%%Page: 8 8 +/saveobj save def +mark +8 pagesetup +11 R f +(- 8 -)2 183 1 2788 490 t +( not unique within the tree:)5 1205(For many types of search trees, the parameters of an operator are)11 2865 2 970 840 t +( history heuristic)2 746( The)1 229( states can have the same operator applied yielding new states.)10 2772(two different)1 573 4 720 1080 t +( a correlation between an operator and any success that)9 2459(maintains information on whether there is)5 1861 2 720 1320 t +( an arbitrary state in the problem space, the history heuris-)10 2560( At)1 166( goal.)1 245(the operator has in achieving a)5 1349 4 720 1560 t +(tic prefers to explore operators with a history of success first.)10 2687 1 720 1800 t +( types of game trees, the making of a move from one position yields a successor)15 3638(For many)1 432 2 970 2076 t +( is quite likely that the impor-)6 1335( It)1 127(position that has many of the same properties as its predecessor.)10 2858 3 720 2316 t +( not significantly)2 755(tant features of the position, the ones that dictate what the good moves are, have)14 3565 2 720 2556 t +( the)1 171( Since)1 309( good in the previous position will still be good.)9 2197(changed and that a move considered)5 1643 4 720 2796 t +( analogies to show the)4 1006(two positions are similar, one could take a sophisticated approach and use)11 3314 2 720 3036 t +( this is an expensive proposition.)5 1445( However,)1 484(similarity \(for example [18]\).)3 1287 3 720 3276 t +( move)1 276( A)1 139(As an example, consider the trees built by chess programs.)9 2615 3 970 3552 t +10 I f +(M)4029 3552 w +11 R f +(may be shown to be)4 896 1 4144 3552 t +( similar position may occur, perhaps only differ-)7 2138( on in the search tree a)6 999( Later)1 288(best in one position.)3 895 4 720 3792 t +( difference may not change the position enough to)8 2299( minor)1 302( This)1 263(ing in the location of one piece.)6 1456 4 720 4032 t +(alter move)1 467 1 720 4272 t +10 I f +(M)1213 4272 w +11 R f +( best.)1 233(from still being)2 682 2 1325 4272 t +10 I f +(M)2290 4272 w +11 R f +(, with its prior history of success, may now be the first move)12 2667 1 2373 4272 t +( improves the ordering of moves, increasing the chances of a cut-)11 2877( This)1 253( this position.)2 602(considered in)1 588 4 720 4512 t +(off occurring.)1 602 1 720 4752 t +(In an)1 222 1 970 5028 t +11 S f +(ab)1220 5028 w +11 R f +(framework, a)1 583 1 1378 5028 t +10 I f +( icient)1 230(su ff)1 161 2 1986 5028 t +11 R f +(\(or good\) move at an interior node is defined as one that)11 2469 1 2405 5028 t +( a cutoff, or)3 512(1\) causes)1 535 2 720 5304 t +( no cutoff occurs, the one yielding the best minimax score.)10 2578(2\) if)1 317 2 720 5580 t +(Note that this does not imply that a)7 1547 1 720 5856 t +10 I f +( icient)1 230(su ff)1 161 2 2292 5856 t +11 R f +(move is the)2 508 1 2711 5856 t +10 I f +(best)3244 5856 w +11 R f +( cutoff was)2 489( move causing a)3 711(move. A)1 407 3 3433 5856 t +10 I f +( icient)1 230(su ff)1 161 2 720 6096 t +11 R f +( at that node, but there is no guarantee that had the search con-)13 2745(to cause the search to stop)5 1155 2 1140 6096 t +(tinued, a better \(but irrelevant\) score might have been obtained by a latter move.)13 3529 1 720 6336 t +(Every time a)2 615 1 970 6612 t +10 I f +( icient)1 230(su ff)1 161 2 1637 6612 t +11 R f +( score associated with that move is)6 1695(move is found, the history)4 1262 2 2083 6612 t +( reaching an inte-)3 770( Upon)1 302( scores.)1 331( that are consistently good quickly achieve high)7 2119(increased. Moves)1 798 5 720 6852 t +( a ran-)2 289( than using)2 492( Rather)1 352(rior node, moves are ordered according to their prior history of success.)11 3187 4 720 7092 t +cleartomark +showpage +saveobj restore +%%EndPage: 8 8 +%%Page: 9 9 +/saveobj save def +mark +9 pagesetup +11 R f +(- 9 -)2 183 1 2788 490 t +( in, a move's prior)4 854(dom or knowledge-based approach for deciding the order to consider moves)10 3466 2 720 840 t +( experienced-based, acquir-)2 1209( heuristic is)2 510( The)1 227(history of success can be used as the ordering criteria.)9 2374 4 720 1080 t +( In)1 156( future.)1 326(ing information on what has been seen as an indication of what will be useful in the)16 3838 3 720 1320 t +( This)1 253( tree.)1 220(effect, previous search information is being accumulated and distributed throughout the)10 3847 3 720 1560 t +( is)1 112(implies that the heuristic)3 1119 2 720 1800 t +10 I f +(dynamic)1986 1800 w +11 R f +(; the ordering of branches being adaptive to previous condi-)9 2716 1 2324 1800 t +(tions seen in the search tree.)5 1238 1 720 2040 t +( illustrates the history heuristic in the)6 1658(Figure 1)1 373 2 970 2316 t +11 S f +(ab)3033 2316 w +11 R f +( lines marked with a * are)6 1159(algorithm. The)1 686 2 3195 2316 t +( the sorting operation is not specific to the)8 1861( that)1 195( Note)1 271(those that differ from the standard algorithm.)6 1993 4 720 2556 t +( requires a)2 464(history heuristic; the usual technique of assigning a heuristic-based score to each move)12 3856 2 720 2796 t +( in some)2 384( some applications avoid the sort by generating moves as needed)10 2905( However,)1 490(sort as well.)2 541 4 720 3036 t +( the heuristic is applied at all interior nodes, since one can never)12 2877( note that)2 418( Also)1 268(reasonable order.)1 757 4 720 3276 t +(tell in advance with certainty whether a cutoff will occur or not.)11 2806 1 720 3516 t +( a)1 95( Assuming)1 522( an example of how the heuristic can affect tree searching.)10 2744(Figure 2 shows)2 709 4 970 3792 t +( tree, at interior node)4 950(depth-first, left to right, traversal of the)6 1776 2 720 4032 t +11 I f +(I1)3482 4032 w +11 R f +(, move)1 308 1 3573 4032 t +11 I f +(M)3917 4032 w +11 R f +(was found to be suffi-)4 996 1 4044 4032 t +( the search, at interior node)5 1270( on in)2 280(cient. Later)1 541 3 720 4272 t +11 I f +(I2,)2854 4272 w +11 R f +(move)3016 4272 w +11 I f +(M)3303 4272 w +11 R f +(was one of the successor branches.)5 1603 1 3437 4272 t +(Given no information, the successors of)5 1762 1 720 4512 t +11 I f +(I2)2512 4512 w +11 R f +( the prior)2 407( With)1 278(would be considered in arbitrary order.)5 1722 3 2633 4512 t +(history of success of)3 936 1 720 4752 t +11 I f +(M,)1696 4752 w +11 R f +( of)1 132(the successors)1 636 2 1855 4752 t +11 I f +(I2)2664 4752 w +11 R f +(are re-ordered, allowing)2 1080 1 2796 4752 t +11 I f +(M)3917 4752 w +11 R f +(to be considered first.)3 991 1 4049 4752 t +(Since nodes)1 532 1 720 4992 t +11 I f +(I1)1284 4992 w +11 R f +(and)1407 4992 w +11 I f +(I2)1597 4992 w +11 R f +( a high probability that)4 1016(are not dis-similar, there is)4 1192 2 1720 4992 t +11 I f +(M)3959 4992 w +11 R f +(will also be sufficient)3 959 1 4081 4992 t +(at)720 5232 w +11 I f +(I2,)827 5232 w +11 R f +(thereby reducing the size of tree traversed.)6 1865 1 974 5232 t +( based on two parameters; the)5 1368(The implementation is)2 1013 2 970 5508 t +10 I f +(mapping)3388 5508 w +11 R f +(of moves to history and the)5 1262 1 3778 5508 t +10 I f +(weight)720 5748 w +11 R f +(of a)1 177 1 1025 5748 t +10 I f +( icient)1 230(su ff)1 161 2 1237 5748 t +11 R f +(move. The)1 508 1 1666 5748 t +10 I f +(mapping)2209 5748 w +11 R f +( was to specify a move as a)7 1262(used in the chess program)4 1181 2 2597 5748 t +( the)1 173( Essentially,)1 578(12-bit number \(6-bits from-square, 6-bits to-square\).)5 2364 3 720 5988 t +10 I f +(mapping)3871 5988 w +11 R f +( viewed as)2 487(can be)1 293 2 4260 5988 t +( this simplistic representation hides a lot of the)8 2160( Although)1 485( to the move operator.)4 1020(the parameters)1 655 4 720 6228 t +( it allows for compact)4 963(move details in the operator \(for example, which piece is making the move\),)12 3357 2 720 6468 t +(tables \()1 323 1 720 6708 t +10 R f +(2)1043 6708 w +7 R f +(12)1098 6668 w +11 R f +( more context information \(for example, the)6 1943( Including)1 479( are easily accessed.)3 887(entries\) that)1 524 4 1207 6708 t +( performance \(for a complete discussion, see [9]\).)7 2303(piece moving\) did not significantly increase)5 2017 2 720 6948 t +( to the extreme, the result is a transposition)8 1981(Note that if you carry the idea of including context)9 2339 2 720 7188 t +cleartomark +showpage +saveobj restore +%%EndPage: 9 9 +%%Page: 10 10 +/saveobj save def +mark +10 pagesetup +11 R f +(- 10 -)2 238 1 2761 490 t +(table.)720 840 w +(What should be the history)4 1198 1 970 1116 t +10 I f +(weight)2196 1116 w +11 R f +(of a)1 170 1 2494 1116 t +10 I f +( icient)1 230(su ff)1 161 2 2692 1116 t +11 R f +( are two considerations: First,)4 1321(move? There)1 605 2 3114 1116 t +( sub-tree searched, the more reliable the minimax value \(except in)10 3068(the deeper the)2 650 2 720 1356 t +11 I f +(pathological)4483 1356 w +11 R f +( one idea is to associate higher history scores for)9 2241( Therefore,)1 525(trees, rarely seen in practice [19]\).)5 1554 3 720 1596 t +( deeper the search tree \(and)5 1239( the)1 171( Second,)1 416(moves successful on deep rather than shallow searches.)7 2494 4 720 1836 t +( between two arbitrary positions in the tree and the less)10 2514(hence larger\), the greater the differences)5 1806 2 720 2076 t +( sufficient moves near the root of the tree have more potential)11 2744( Hence,)1 365(they may have in common.)4 1211 3 720 2316 t +( considera-)1 491( These)1 325( than sufficient moves near the leaf nodes.)7 1910(for being useful throughout the tree)5 1594 4 720 2556 t +( the usage of a)4 678(tions led)1 389 2 720 2796 t +10 I f +(weight)1823 2796 w +11 R f +(of)2129 2796 w +10 R f +(2)2256 2796 w +7 I f +(depth)2311 2756 w +11 R f +(, where)1 333 1 2475 2796 t +10 I f +(depth)2844 2796 w +11 R f +( This)1 263(is the depth of the sub-tree searched.)6 1672 2 3105 2796 t +(scheme gives more weight to moves that are)7 1957 1 720 3036 t +10 I f +( icient)1 230(su ff)1 161 2 2703 3036 t +11 R f +( those near)2 479(closer to the root of the tree than)7 1438 2 3123 3036 t +( rather than smaller, sub-trees.)4 1389(the leaves of the tree and favors moves that are roots of larger,)12 2931 2 720 3276 t +(Several other)1 590 1 720 3516 t +10 I f +(weights)1344 3516 w +11 R f +(, such as 1 and)4 681 1 1650 3516 t +10 I f +(depth)2365 3516 w +11 R f +( to be experimentally inferior to)5 1451(, were tried and found)4 1002 2 2587 3516 t +10 R f +(2)720 3756 w +7 I f +(depth)775 3716 w +11 R f +(\(for a complete discussion, see [9]\).)5 1570 1 967 3756 t +( the killer)2 424( Whereas)1 438( the killer heuristic is just a special case of the history heuristic.)12 2802(Note that)1 406 4 970 4032 t +( two successful moves per depth of search, the history heuristic)10 2920(heuristic keeps track of one or)5 1400 2 720 4272 t +( heuristic, "killer" moves would)4 1406( the history)2 496( With)1 276(maintains the success for all moves at all depths.)8 2142 4 720 4512 t +( generality of the history mechanism provides valuable ordering)8 2949( The)1 243(earn high history scores.)3 1128 3 720 4752 t +(information at all nodes; not just those with "killer" moves.)9 2613 1 720 4992 t +( nothing particular to the history heuristic that restricts its usage)10 2846(A final point is that there is)6 1224 2 970 5268 t +(to the)1 259 1 720 5508 t +11 S f +(ab)1018 5508 w +11 R f +( types of search algorithms and applications may be able to use this)12 3083(algorithm. Other)1 771 2 1186 5508 t +( suitable \(operators are not unique to)6 1653( success depends on whether the tree type is)8 1981(technique. The)1 686 3 720 5748 t +( values\) and a suitable)4 984(each node and there is a correlation between using an operator and sub-tree)12 3336 2 720 5988 t +10 I f +(mapping)720 6228 w +11 R f +(and)1098 6228 w +10 I f +(weight)1281 6228 w +11 R f +(can be found.)2 594 1 1576 6228 t +11 B f +( Design)1 346(4. Experiment)1 694 2 720 6588 t +11 R f +( various search features, the chess program)6 2094(To assess the importance of)4 1356 2 970 6864 t +10 I f +(Phoenix)4480 6864 w +11 R f +(was)4870 6864 w +( base program that performs)4 1269( with a)2 318( Starting)1 414(enhanced to turn each one on or off selectively.)8 2153 4 720 7104 t +11 S f +(ab)4910 7104 w +cleartomark +showpage +saveobj restore +%%EndPage: 10 10 +%%Page: 11 11 +/saveobj save def +mark +11 pagesetup +11 R f +(- 11 -)2 238 1 2761 490 t +( combi-)1 342(with iterative deepening, a series of experiments was then performed whereby all possible)12 3978 2 720 840 t +( Bratko-Kopec positions [20])3 1306( The)1 233( search features were tried on a test set of positions.)10 2336(nations of)1 445 4 720 1080 t +( benchmarking of sequential and parallel tree search perfor-)8 2736(have been used extensively for the)5 1584 2 720 1320 t +( deepening is necessary to be able to properly)8 2184( Iterative)1 443( 21, 22].)2 348(mance in chess programs [6,)4 1345 4 720 1560 t +(evaluate refutation tables and hence is not one of the experiment parameters.)11 3364 1 720 1800 t +(The search features used were:)4 1348 1 970 2076 t +( Tables \()2 406(1\) Transposition)1 855 2 720 2352 t +10 I f +(T)1981 2352 w +11 R f +( table contained)2 717(\). The)1 301 2 2037 2352 t +10 R f +(2)3091 2352 w +7 R f +(13)3146 2312 w +10 S f +(=)3273 2352 w +10 R f +(8 , 192)2 241 1 3377 2352 t +11 R f +( through 6,)2 505(entries for depths 2)3 878 2 3657 2352 t +(and)970 2592 w +10 R f +(2)1153 2592 w +7 R f +(16)1208 2552 w +10 S f +(=)1335 2592 w +10 R f +(65 , 536)2 291 1 1439 2592 t +11 R f +(for depths 7 and 8 .)5 850 1 1758 2592 t +( Tables \()2 384(2\) Refutation)1 714 2 720 2868 t +10 I f +(R)1818 2868 w +11 R f +(\).)1879 2868 w +( Window Searching \()3 936(3\) Minimal)1 630 2 720 3144 t +10 I f +(N)2286 3144 w +11 R f +( NegaScout variant [13].)3 1079(\). The)1 290 2 2353 3144 t +( Searching \()2 540(4\) Aspiration)1 714 2 720 3420 t +10 I f +(S)1974 3420 w +11 R f +( result of the previous itera-)5 1247(\), using a one pawn window around the)7 1769 2 2024 3420 t +(tion.)970 3660 w +( using the History Heuristic \()5 1281(5\) Ordering)1 645 2 720 3936 t +10 I f +(H)2646 3936 w +11 R f +(\).)2718 3936 w +(A more detailed description of the implementation of each of these can be found in [9].)15 3832 1 720 4212 t +( some)1 266(To assess the history heuristic as a move ordering mechanism, it is necessary to have)14 3804 2 970 4488 t +( search programs apply application dependent heuristics to try and sug-)10 3130( Most)1 283(basis of comparison.)2 907 3 720 4728 t +( often)1 260( course, the heuristics are only guesses; their validity)8 2372( Of)1 177(gest which moves might be good.)5 1511 4 720 4968 t +( first is)2 317( The)1 231( two undesirable properties.)3 1235( approach has)2 614( This)1 258(cannot be ascertained without search.)4 1665 6 720 5208 t +( the board.)2 487(that the knowledge is \(usually\) static; it is unable to adapt to changing conditions on)14 3833 2 720 5448 t +( problems are)2 615( Both)1 280( the knowledge does not handle exceptions well.)7 2194(The second problem is that)4 1231 4 720 5688 t +( real problem is that there is too)7 1523( The)1 243(symptoms of the same problem: inadequate knowledge.)6 2554 3 720 5928 t +( Most)1 288( the designer must make important cost/benefit decisions.)7 2565(much knowledge to draw on and)5 1467 3 720 6168 t +( effective to implement and so the designer draws on)9 2394(of the knowledge one could use is not cost)8 1926 2 720 6408 t +( inte-)1 231( For)1 211( the time and accepts the resulting consequences.)7 2167(the heuristics that are effective 90% of)6 1711 4 720 6648 t +(rior node move ordering, the consequences can be a poor ordering resulting in a larger search tree.)16 4313 1 720 6888 t +(To have a means of comparison for the history heuristic,)9 2538 1 970 7164 t +10 I f +(Phoenix)3539 7164 w +11 R f +(also has a heuristic-based)3 1139 1 3901 7164 t +cleartomark +showpage +saveobj restore +%%EndPage: 11 11 +%%Page: 12 12 +/saveobj save def +mark +12 pagesetup +11 R f +(- 12 -)2 238 1 2761 490 t +( methods used for ordering the)5 1351( The)1 227( \(developed prior to the history heuristic\).)6 1841(ordering mechanism)1 901 4 720 840 t +( most chess programs, although it is probably more sophisticated than most.)11 3410(moves are similar to)3 910 2 720 1080 t +( move ordering method will)4 1241( This)1 255( 8].)1 137( in fact, superior to the ordering mechanisms used in [7,)10 2486(It is,)1 201 5 720 1320 t +(be referred to as the)4 957 1 720 1560 t +10 I f +(knowledge heuristics)1 857 1 1725 1560 t +11 R f +(since the ordering is based on well-known, human-)7 2407 1 2633 1560 t +( an integral value in the range -25)7 1535( heuristics usually give)3 1039( The)1 235(understandable, chess knowledge.)2 1511 4 720 1800 t +( are combined, but the larger)5 1322( used with the history heuristic, the scores)7 1923( When)1 328(to +25.)1 325 4 720 2040 t +10 I f +(H)4655 2040 w +11 R f +(scores)4767 2040 w +( detailed description of the routine can)6 1720( A)1 140( heuristic scores.)2 745(quickly swamp the smaller knowledge)4 1715 4 720 2280 t +( the experiments have another parameter:)5 1811( Thus,)1 304(be found in [9].)3 684 3 720 2520 t +( using Knowledge Heuristics \(K\).)4 1480(6\) Ordering)1 645 2 720 2796 t +(This implies that a program without)5 1627 1 720 3072 t +10 I f +(K)2381 3072 w +11 R f +(or)2485 3072 w +10 I f +(H)2610 3072 w +11 R f +( just searches the)3 777(has no explicit move ordering and)5 1544 2 2719 3072 t +( not a completely random order, since)6 1705( fact, this is)3 533( In)1 155(moves in the order they were generated in.)7 1927 4 720 3312 t +( the absence of a transposition or refuta-)7 1820( In)1 155( some bias in the order moves are generated.)8 2018(there is)1 327 4 720 3552 t +(tion table move, all program variants consider capture moves before non-capture ones.)11 3801 1 720 3792 t +( the killer)2 452(Finally, for comparison purposes, the experiment has been enhanced to include)10 3618 2 970 4068 t +( considerable doubt as to its effectiveness, a controlled experi-)9 2792( there seems to be)4 815(heuristic. Since)1 713 3 720 4308 t +(ment might provide insight into its effective behavior.)7 2379 1 720 4548 t +( Heuristic \(L\).)2 625(7\) Killer)1 506 2 720 4824 t +(Previous experiments with)2 1181 1 970 5136 t +11 S f +(ab)2183 5136 w +11 R f +(enhancements have neglected the issue of interior move ord-)8 2695 1 2345 5136 t +( using a chess program, it is reasonable to)8 1900( since the experiments were performed)5 1746( 8])1 109( [7,)1 156(ering. In)1 409 5 720 5376 t +( reduce)1 320(assume that some application specific knowledge was used to order the moves and thereby)13 4000 2 720 5616 t +( draw from their experiments, since the order-)7 2045( might question the conclusions they)5 1638( One)1 243(tree size.)1 394 4 720 5856 t +(ing will influence tree size, and tree size may influence the effectiveness of some enhancements.)14 4235 1 720 6096 t +(Excluding the killer heuristic, there are 6 parameters resulting in)9 2930 1 970 6372 t +10 R f +(2)3937 6372 w +7 R f +(6)3992 6332 w +10 S f +(=)4084 6372 w +10 R f +(64)4188 6372 w +11 R f +(different sets of)2 712 1 4328 6372 t +( possible combinations were searched to depths of 2, 3, 4, and)11 2736( All)1 198( be tried.)2 390(enhancements that can)2 996 4 720 6612 t +( killer heuristic is just a special case of the history heuristic, only a few of the)16 3576( the)1 172( Since)1 310(5 ply.)1 262 4 720 6852 t +( just to establish the relationship between)6 1900(combinations with it present were tried)5 1794 2 720 7092 t +10 I f +(L)4453 7092 w +11 R f +(and)4551 7092 w +10 I f +(H)4748 7092 w +11 R f +(. To)1 220 1 4820 7092 t +cleartomark +showpage +saveobj restore +%%EndPage: 12 12 +%%Page: 13 13 +/saveobj save def +mark +13 pagesetup +11 R f +(- 13 -)2 238 1 2761 490 t +( with only those combinations that showed signi-)7 2185(depths of 6, 7, and 8 ply, experiments continued)8 2135 2 720 840 t +( total of 2000 hours of VAX 11/780 equivalent time)9 2290( A)1 136(ficant reductions in tree size through 5 ply.)7 1894 3 720 1080 t +(was required to perform the experiments.)5 1810 1 720 1320 t +11 B f +( Results)1 370(5. Experiment)1 694 2 720 1680 t +11 R f +( the)1 170( From)1 303( search algorithm performance is elapsed CPU time.)7 2350(One measure for comparing)3 1247 4 970 1956 t +( timing)1 337( any)1 207( However,)1 505(implementor's point of view, this is the most important consideration.)9 3271 4 720 2196 t +( bottom)1 356( measure is the number of)5 1208( Another)1 429(results are machine and implementation dependent.)5 2327 4 720 2436 t +( in the literature)3 801(positions \(leaf nodes\) examined \(NBP\), which has been used extensively)9 3519 2 720 2676 t +( NBP is an inadequate measure since it treats all leaf nodes equally and)13 3258( However,)1 494([1, 6, 23, 24].)3 568 3 720 2916 t +( most applications, neither is a reason-)6 1737( fact, for)2 392( In)1 156(assumes interior nodes are of negligible cost.)6 2035 4 720 3156 t +( may be a good theoretical measure, but not a good practical one.)12 2862( NBP)1 271(able assumption.)1 740 3 720 3396 t +( in a manner that is corre-)6 1170(A better measure would be one that measures the size of the tree)12 2900 2 970 3672 t +( The)1 245(lated with program running time.)4 1534 2 720 3912 t +11 I f +(node count \(NC\))2 771 1 2546 3912 t +11 R f +(measure counts all nodes in the tree)6 1676 1 3364 3912 t +( of)1 122( includes interior, leaf, and any nodes in sub-trees built as part)11 2755( This)1 254(where computation occurs.)2 1189 4 720 4152 t +( least for)2 410( At)1 179(leaf node evaluation.)2 943 3 720 4392 t +10 I f +(Phoenix)2290 4392 w +11 R f +( be strongly correlated)3 1020(, this count has been shown to)6 1403 2 2617 4392 t +( execution time overhead of most of the)7 1903( that since the)3 671( Note)1 290(with program running time [9].)4 1456 4 720 4632 t +( dominated by leaf node evaluation\),)5 1696(enhancements is negligible \(the cost being)5 1955 2 720 4872 t +10 I f +(NC)4413 4872 w +11 R f +(accurately)4592 4872 w +( exception is the)3 736( The)1 231(reflects the relative running time of the program variants.)8 2556 3 720 5112 t +10 I f +(K)4274 5112 w +11 R f +(heuristic, since)1 665 1 4375 5112 t +( to it as you want.)5 810(you can add as much or as little knowledge)8 1947 2 720 5352 t +10 I f +(NC)3532 5352 w +11 R f +(has the advantage of factoring)4 1341 1 3699 5352 t +( you view the)3 617( If)1 135(this out of the results.)4 981 3 720 5592 t +10 I f +(NC)2485 5592 w +11 R f +( to note that)3 548(graphs as measuring time, it is important)6 1838 2 2654 5592 t +10 I f +(K)720 5832 w +11 R f +( it added an additional 5% on to the execution)9 2092('s relative time performance is over-stated since)6 2161 2 787 5832 t +( this paper, both the NBP and NC measures will be used.)11 2505(time. In)1 371 2 720 6072 t +( combination of search enhancements would be to)7 2227(The best measure of the performance of a)7 1843 2 970 6348 t +( to know the size)4 754( it is difficult)3 583( Unfortunately,)1 702(compare its tree sizes with that of the minimal tree.)9 2281 4 720 6588 t +( in the tree)3 470(of the minimal tree, due to the variable branching factor and presence of terminal nodes)14 3850 2 720 6828 t +( good method for approximating the minimal tree [25]\).)8 2501(\(although Ebeling has recently devised a)5 1819 2 720 7068 t +( improvement in search efficiency as)5 1712(Instead, performance will be measured as the percentage)7 2608 2 720 7308 t +cleartomark +showpage +saveobj restore +%%EndPage: 13 13 +%%Page: 14 14 +/saveobj save def +mark +14 pagesetup +11 R f +(- 14 -)2 238 1 2761 490 t +( all possi-)2 429( each depth,)2 529( For)1 210(compared to that achievable by the best combination of search features.)10 3152 4 720 840 t +( best result \(using the)4 954(ble combinations of enhancements were tried, with the one giving the)10 3082 2 720 1080 t +10 I f +(NC)4784 1080 w +11 R f +(or)4949 1080 w +10 I f +(NBP)720 1320 w +11 R f +(measure\) being labeled)2 1018 1 938 1320 t +10 I f +(N)1982 1320 w +7 I f +(best)2060 1340 w +11 R f +( program was also run with none of the enhancements \(just)10 2604(. The)1 255 2 2181 1320 t +11 S f +(ab)720 1560 w +11 R f +(with iterative deepening\) yielding)3 1525 1 891 1560 t +10 I f +(N)2454 1560 w +7 I f +(none)2532 1580 w +11 R f +( a given combination of enhancements)5 1758(. For)1 250 2 2676 1560 t +10 I f +(enh)4722 1560 w +11 R f +(, its)1 174 1 4866 1560 t +( of the reduction in tree size from)7 1530(percentage improvements reflects how much)4 2007 2 720 1800 t +10 I f +(N)4291 1800 w +7 I f +(none)4369 1820 w +11 R f +(to)4550 1800 w +10 I f +(N)4670 1800 w +7 I f +(best)4748 1820 w +11 R f +(the)4906 1800 w +(presence of)1 500 1 720 2040 t +10 I f +(enh)1245 2040 w +11 R f +( calculation is done using the formula:)6 1687(achieved. The)1 642 2 1417 2040 t +10 I f +(reduction)2096 2400 w +7 I f +(enh)2490 2420 w +10 S f +(=)2648 2400 w +10 I f +(N)2779 2470 w +7 I f +(none)2857 2490 w +10 S f +(-)3050 2470 w +10 I f +(N)3154 2470 w +7 I f +(best)3232 2490 w +10 I f +(N)2785 2320 w +7 I f +(none)2863 2340 w +10 S f +(-)3056 2320 w +10 I f +(N)3160 2320 w +7 I f +(enh)3238 2340 w +10 S1 f +(_ ____________)1 609 1 2762 2370 t +10 I f +(*)3422 2400 w +10 R f +(100)3513 2400 w +11 R f +( to the addition of a single search)7 1485(Figure 3 shows the percentage reduction in tree size attributable)9 2835 2 720 2686 t +( 4 shows all the combinations)5 1337( Figure)1 349( ply using NBP as a measure.)6 1336( - 8)2 147(enhancement for depths 3)3 1151 5 720 2926 t +(of two enhancements that exceed a 70% reduction.)7 2230 1 720 3166 t +( after)1 235(Figure 3 shows that history heuristic performs well, but its efficiency appears to drop)13 3835 2 970 3442 t +( knowledge heuristic's performance runs almost parallel to)7 2603( The)1 229(depth 7.)1 358 3 720 3682 t +10 I f +(H)3937 3682 w +11 R f +(, albeit with less search)4 1031 1 4009 3682 t +(efficiency. The effectiveness of transposition tables, on the other hand, increases with search)12 4320 1 720 3922 t +( constant performance, regardless of depth, and appear to)8 2509( tables seem to provide)4 1018(depth. Refutation)1 793 3 720 4162 t +( minimal window search provide)4 1531( and)1 206( Aspiration)1 540(be a poor substitute for transposition tables.)6 2043 4 720 4402 t +( 4\), the combination of transposition tables and)7 2150( two enhancements \(Figure)3 1228( With)1 288(small benefits.)1 654 4 720 4642 t +( transposition)1 601( Since)1 304( of the possible reduction in tree size.)7 1671(the history heuristic achieves over 99%)5 1744 4 720 4882 t +( type of search reduction than the history heuristic \(eliminating sub-trees)10 3212(tables provide a different)3 1108 2 720 5122 t +( limited move ordering, versus more comprehensive move ordering\),)8 3035(without search and providing)3 1285 2 720 5362 t +( of these two features indi-)5 1204( performance)1 586( The)1 233(it is not surprising that the two work well together.)9 2297 4 720 5602 t +( Com-)1 311(cates that the other enhancements can provide at most a small percentage of improvement.)13 4009 2 720 5842 t +(bining three or more enhancements does not change this observation \(details can be found in [9]\).)15 4289 1 720 6082 t +(Figures 5 and 6 present the same data using the)9 2116 1 970 6358 t +10 I f +(NC)3115 6358 w +11 R f +(measure and provide a better indication)5 1759 1 3281 6358 t +( and history)2 560( this measure, transposition tables)4 1573( Using)1 340(of how tree size effects execution time.)6 1847 4 720 6598 t +( the search towards)3 873( methods have the advantage of steering)6 1816( Both)1 280(heuristic show up even better.)4 1351 4 720 6838 t +(previously encountered parts of the tree, thereby increasing the computations that can be re-used.)13 4264 1 720 7078 t +cleartomark +showpage +saveobj restore +%%EndPage: 14 14 +%%Page: 15 15 +/saveobj save def +mark +15 pagesetup +11 R f +(- 15 -)2 238 1 2761 490 t +( to oscillate with)3 777(In both Figures 4 and 6, the performance of some enhancements appear)11 3293 2 970 840 t +( mentioned)1 498( As)1 184( to the odd/even depth of the alpha-beta search.)8 2124( is largely attributable)3 983(depth. This)1 531 5 720 1080 t +( to an odd depth is greater)6 1178(in section 2, the incremental cost of growing the tree an additional ply)12 3142 2 720 1320 t +( some combinations of enhancements are tied to search depth, it)10 2941( Since)1 314(than for an even depth.)4 1065 3 720 1560 t +( could)1 278( One)1 244(suggests that a different method for representing the data might be more informative.)12 3798 3 720 1800 t +( depth results, but given the paucity of depths for which results)11 2857(separately plot the odd and even)5 1463 2 720 2040 t +(are available, this was not done.)5 1407 1 720 2280 t +( 8 ply, the percentage improvement attributable to the history heuristic decreases)11 3622(From 7 to)2 448 2 970 2556 t +(\(although significantly less for)3 1356 1 720 2796 t +10 I f +(NC)2104 2796 w +11 R f +(than)2269 2796 w +10 I f +(NBP)2486 2796 w +11 R f +( first is that the)4 670( The)1 228( are two reasons for this.)5 1090(\). There)1 377 4 2675 2796 t +( before, its per-)3 691(trees are getting so large that, although the history heuristic is just as effective as)14 3629 2 720 3036 t +( that the percentage reduction is relative)6 1785( Recall)1 341( seems poorer.)2 647(formance relative to the larger tree)5 1547 4 720 3276 t +( enhancement starts to perform well \(in this case, the tran-)10 2563( an)1 131( If)1 128(to the maximum possible savings.)4 1498 4 720 3516 t +( percentage)1 518(sposition tables\), it can increase the possible savings and as a result, decrease the)13 3802 2 720 3756 t +(improvement attributable to the other enhancements.)5 2319 1 720 3996 t +( the search)2 472( As)1 180( are becoming over-loaded.)3 1205(A second reason is that the history heuristic tables)8 2213 4 970 4272 t +( entries)1 328( Table)1 313( variation in the positions that occur in the tree.)9 2151(becomes deeper, there is a greater)5 1528 4 720 4512 t +( flooded with scores from the lower depths that affect the orderings of moves near the root)16 4035(can be)1 285 2 720 4752 t +( results reported here were constrained to only save history information)10 3255( fact, the)2 407( In)1 160(of the tree.)2 498 4 720 4992 t +(within the first)2 651 1 720 5232 t +10 I f +(depth)1397 5232 w +10 S f +(-)1643 5232 w +10 R f +(1)1714 5232 w +11 R f +( This)1 254( information throughout the entire tree.)5 1726(ply of the tree, but to use the)7 1267 3 1793 5232 t +( can)1 204(constraint provided a small improvement in performance, confirming that history tables)10 4116 2 720 5472 t +(become flooded with information, decreasing their usefulness.)6 2739 1 720 5712 t +( the history heuristic dominates the knowledge heuris-)7 2392(As an interior node ordering heuristic,)5 1678 2 970 5988 t +( be a comment on the quality of the chess)9 1824( this result may)3 680( Again,)1 353(tics approach under all scenarios.)4 1463 4 720 6228 t +( order the moves and that a better routine might be written with)12 3062(specific knowledge used to)3 1258 2 720 6468 t +( interesting feature in the diagrams is that sometimes the combination of both)12 3417( An)1 191(increased effort.)1 712 3 720 6708 t +10 I f +(H)720 6948 w +11 R f +(and)822 6948 w +10 I f +(K degrades)1 461 1 1007 6948 t +11 R f +(the performance compared to)3 1295 1 1499 6948 t +10 I f +(H)2822 6948 w +11 R f +( condition is caused by the two ord-)7 1595(alone. This)1 520 2 2925 6948 t +(ering mechanisms disagreeing over the importance of a move.)8 2833 1 720 7188 t +10 I f +(K)3616 7188 w +11 R f +( highly)1 322(may rate some moves)3 994 2 3724 7188 t +cleartomark +showpage +saveobj restore +%%EndPage: 15 15 +%%Page: 16 16 +/saveobj save def +mark +16 pagesetup +11 R f +(- 16 -)2 238 1 2761 490 t +( the knowledge)2 679( that)1 196( Recall)1 339(that superficially appear to be good but in the current context, are not.)12 3106 4 720 840 t +( history heuristic)2 750( The)1 231(heuristics statically assign scores to moves without performing any search.)9 3339 3 720 1080 t +( his-)1 194( The)1 227( ordering.)1 428(also does not perform search, but makes use of previous search results to do its)14 3471 4 720 1320 t +(tory heuristic is)2 691 1 720 1560 t +10 I f +(adaptive)1439 1560 w +11 R f +( search tree and is)4 793(to the conditions in the)4 1023 2 1814 1560 t +10 I f +(insensitive)3657 1560 w +11 R f +(to application depen-)2 931 1 4109 1560 t +( heuristics fail under conditions of exception, where excep-)8 2632( knowledge)1 512( The)1 229(dent pre-conceptions.)1 947 4 720 1800 t +( inappropriate)1 629( Consequently,)1 706( the heuristics.)2 673(tion is defined as any condition not covered by)8 2203 4 720 2040 t +10 I f +(K)4973 2040 w +11 R f +(scores can decrease the effectiveness of ordering, resulting in larger trees.)10 3231 1 720 2280 t +( the history heuristic.)3 993(Not surprisingly, the killer heuristic shows up as being inferior to)10 3077 2 970 2556 t +( consideration is that there is less overhead in maintaining killer than history informa-)13 3812(However, a)1 508 2 720 2796 t +( high performance machines that implement)5 1957( For)1 213(tion; in particular, no sorting.)4 1308 3 720 3036 t +11 S f +(ab)4230 3036 w +11 R f +(in hardware or)2 648 1 4392 3036 t +(microcode, the simplicity of implementing the killer heuristic may make it preferable \(for exam-)13 4320 1 720 3276 t +(ple, [25]\).)1 436 1 720 3516 t +( the trees)2 440( As)1 200( of transposition tables consistently increases with depth.)7 2660(The performance)1 770 4 970 3792 t +( and therefore more savings to be found.)7 1824(become larger, there are potentially more transpositions)6 2496 2 720 4032 t +( 6 ply, it appears there were)6 1240(However, the savings are limited by the size of the tables used and to)13 3080 2 720 4272 t +( 8, over-loading became a seri-)5 1373( depths 7 and)3 596( For)1 213(few problems with table over-loading problems.)5 2138 4 720 4512 t +( further depths, if performance starts to)6 1848( At)1 188( be increased.)2 643(ous problem and table sizes had to)6 1641 4 720 4752 t +( the size of the tables, reducing the number of collisions that)11 2784(decrease, one can always increase)4 1536 2 720 4992 t +(occur.)720 5232 w +( is)1 114( This)1 264( out-performs the refutation table.)4 1533(In all cases, the transposition table significantly)6 2159 4 970 5508 t +( the refutation tables contain only a small subset of the information available)12 3444(not surprising since)2 876 2 720 5748 t +( refutation and transposi-)3 1116( [8] has published results comparing)5 1617( Marsland)1 474(with transposition tables.)2 1113 4 720 5988 t +( 6 ply searches using transposition tables of size)8 2162( experiments included 2 through)4 1451( His)1 216(tion tables.)1 491 4 720 6228 t +( in perfor-)2 468( all depths examined, refutation tables were found to be roughly comparable)11 3470(8K. For)1 382 3 720 6468 t +( with those reported here, it is)6 1455( comparing these results)3 1140( When)1 342(mance to transposition tables.)3 1383 4 720 6708 t +( program are 3-4 times larger than those)7 1815(important to note that tree sizes obtained by Marsland's)8 2505 2 720 6948 t +(generated by)1 568 1 720 7188 t +10 I f +(Phoenix)1319 7188 w +11 R f +( of)1 124( Because)1 425( \(the 24 Kopec-Bratko positions\).)4 1495(while using the same data set)5 1316 4 1680 7188 t +cleartomark +showpage +saveobj restore +%%EndPage: 16 16 +%%Page: 17 17 +/saveobj save def +mark +17 pagesetup +11 R f +(- 17 -)2 238 1 2761 490 t +( up more quickly and may become over-loaded, reducing its effec-)10 2932(this, the transposition table fills)4 1388 2 720 840 t +( an 8K tran-)3 545( concludes that)2 673( Marsland)1 477(tiveness and making refutation tables look more attractive.)7 2625 4 720 1080 t +( positions. In)2 582(sposition table is too small for 6 ply searches of complex middlegame)11 3111 2 720 1320 t +10 I f +(Phoenix)4442 1320 w +11 R f +(, refu-)1 271 1 4769 1320 t +( examined to 6 ply, again showing little justifi-)8 2091(tation tables and 8K entry transposition have been)7 2229 2 720 1560 t +( to remember an)3 782( main contribution of the refutation table is)7 2039( The)1 247(cation for refutation tables.)3 1252 4 720 1800 t +( is an important enhancement on a)6 1568( This)1 262( information.)1 585(important subset of the transposition table)5 1905 4 720 2040 t +( for machines with)3 854( But)1 227( transposition tables are not possible.)5 1682(memory constrained system where)3 1557 4 720 2280 t +( as the transposition table does not become over-loaded, refutation)9 3097(available memory, as long)3 1223 2 720 2520 t +(tables will always be of minimal benefit.)6 1794 1 720 2760 t +( and minimal window, usually provide a)6 1837(The two search window enhancements, aspiration)5 2233 2 970 3036 t +( with the history heuristic and transposition)6 2065( used)1 256( When)1 344(small improvement in performance.)3 1655 4 720 3276 t +( both)1 225( Since)1 301( and together provide a small reduction in tree size.)9 2261(tables, both enhancements singlely)3 1533 4 720 3516 t +( and cost nothing in additional storage or computation, one might as well)12 3323(are easy to implement)3 997 2 720 3756 t +( benefits, however, are probably going to be)7 1951( The)1 228(include them in any real tree searching program.)7 2141 3 720 3996 t +(small.)720 4236 w +( the his-)2 373( Clearly,)1 416(In conclusion, what is the best combination of alpha-beta enhancements?)9 3281 3 970 4512 t +( loses nothing and gains)4 1087( One)1 245( transposition tables provide most of the savings.)7 2203(tory heuristic and)2 785 4 720 4752 t +(slightly by also including aspiration and minimal window search.)8 2878 1 720 4992 t +( move ordering, it is difficult)5 1278(Since the experiments reported here illustrate the importance of)8 2792 2 970 5268 t +( having addressed the issue of)5 1360( Without)1 426( with those of other researchers.)5 1446(to compare these results)3 1088 4 720 5508 t +( move ordering, some reported results may be heavily biased by a good or poor ord-)15 3753(interior node)1 567 2 720 5748 t +( considering a range of)4 1005( By)1 185( but it is impossible for us to know.)8 1562( 7, 8]\))2 246(ering scheme \(for example [1,)4 1322 5 720 5988 t +( ordering to the knowledge and history heuristics\), the results reported)10 3126(ordering schemes \(from no)3 1194 2 720 6228 t +( used to)2 373(here illustrate the range of efficient versus inefficient alpha-beta searching and can be)12 3947 2 720 6468 t +(assess the effectiveness of interior node ordering methods.)7 2567 1 720 6708 t +( heuristic was added to the chess program)7 1861(The history)1 507 2 970 6984 t +11 I f +(TinkerBelle)3370 6984 w +11 R f +( program used tran-)3 874(. This)1 284 2 3882 6984 t +( the history heuristic)3 986( addition of)2 566( The)1 255(sposition tables and simple move ordering heuristics.)6 2513 4 720 7224 t +cleartomark +showpage +saveobj restore +%%EndPage: 17 17 +%%Page: 18 18 +/saveobj save def +mark +18 pagesetup +11 R f +(- 18 -)2 238 1 2761 490 t +(reduced the size of the average tree by 25%.)8 1938 1 720 840 t +( artificially constructed trees it is easy to calcu-)8 2122( For)1 215( are we to the minimal tree?)6 1262(How close)1 471 4 970 1116 t +( is not necessarily true for application gen-)7 1939( this)1 198( Unfortunately,)1 709(late the size of the minimal tree.)6 1474 4 720 1356 t +( an average branching factor, one can come up with a rough approximation of)13 3465( Using)1 323(erated trees.)1 532 3 720 1596 t +( transposition tables, the)3 1080( Eliminating)1 580(the minimal tree size.)3 956 3 720 1836 t +10 I f +(NBP)3364 1836 w +11 R f +(results show the trees being built)5 1456 1 3584 1836 t +( transposition tables, the trees)4 1357( With)1 289( of the minimal tree.)4 948(to be within a factor of 1.5 times that)8 1726 4 720 2076 t +(become smaller than the minimal tree.)5 1685 1 720 2316 t +11 B f +(6. Conclusions)1 710 1 720 2676 t +11 R f +( inexpensive method for ordering descendants of interior nodes)8 2879(The history heuristic is an)4 1191 2 970 2952 t +( has the advantage of being simple to implement, as)9 2415( It)1 138(that is largely application independent.)4 1767 3 720 3192 t +( algorithm sub-)2 679( The)1 229( consuming, trial-and-error, knowledge-based approach.)4 2475(compared to the time)3 937 4 720 3432 t +( knowledge and, at least in the case of)8 1669(stitutes "experience" for explicit)3 1419 2 720 3672 t +11 S f +(ab)3836 3672 w +11 R f +(searching applied to the)3 1046 1 3994 3672 t +(game of chess, provides a viable alternative.)6 1945 1 720 3912 t +(The heuristic has proven useful for parallel)6 1955 1 970 4188 t +11 S f +(ab)2964 4188 w +11 R f +( network of)2 530( [26] on a)3 457(implementations. In)1 920 3 3133 4188 t +( each processor would maintain its own)6 1776( First,)1 293( tables were used two ways.)5 1256(computers, the history)2 995 4 720 4428 t +( periodically all the local tables would be merged and broadcast to all)12 3088( Second,)1 410(local history table.)2 822 3 720 4668 t +( program per-)2 612( resulted in a noticeable improvement in)6 1807( This)1 258(processors to achieve global sharing.)4 1643 4 720 4908 t +(formance.)720 5148 w +( easy to build trees close to the minimal tree in size, there is noth-)14 2959(Given that it is relatively)4 1111 2 970 5424 t +(ing of interest left to explore in terms of)8 1808 1 720 5664 t +10 I f +( depth)1 263(f ixed)1 202 2 2559 5664 t +11 S f +(ab)3058 5664 w +11 R f +( research efforts are con-)4 1105(searching. New)1 714 2 3221 5664 t +(centrating on)1 609 1 720 5904 t +10 I f +(variable depth)1 596 1 1387 5904 t +11 R f +(searches, so called)2 878 1 2044 5904 t +10 I f +(selective deepening)1 794 1 2980 5904 t +11 R f +( moves)1 349(\(for example, null)2 856 2 3835 5904 t +( singular extensions [29] as enhancements to)6 1995( and)1 192([27, 28])1 338 3 720 6144 t +11 S f +(ab)3278 6144 w +11 R f +( as)1 124( 31])1 164(, and conspiracy numbers [30,)4 1344 3 3408 6144 t +(a new approach to minimax search\).)5 1590 1 720 6384 t +11 B f +(Acknowledgments)720 6744 w +11 R f +( Alexander)1 534( and constructive criticism.)3 1260(Many thanks to Tony Marsland for his guidance)7 2276 3 970 7020 t +(Reinefeld, Murray Campbell, and the anonymous referees provided valuable suggestions.)9 3935 1 720 7260 t +cleartomark +showpage +saveobj restore +%%EndPage: 18 18 +%%Page: 19 19 +/saveobj save def +mark +19 pagesetup +11 R f +(- 19 -)2 238 1 2761 490 t +11 B f +(References)720 840 w +11 R f +( Gillogly,)1 427(1. J.)1 346 2 720 1032 t +11 I f +( of the Technology Chess Program)5 1552(Performance Analysis)1 976 2 1524 1032 t +11 R f +(, Ph.D. thesis, Depart-)3 988 1 4052 1032 t +(ment of Computer Science, Carnegie-Mellon University, 1978.)6 2776 1 995 1152 t +( The Northwestern University Chess Program, in)6 2261( Slate and L.R. Atkin, Chess 4.5 -)7 1606(2. D.J.)1 453 3 720 1308 t +11 I f +(Chess Skill in Man and Machine)5 1479 1 995 1428 t +11 R f +( York, 1977, 82-)3 755(, P.W. Frey \(ed.\), Springer-Verlag, New)5 1811 2 2474 1428 t +(118.)995 1548 w +( and the Killer Heuristic,)4 1142( Akl and M.M. Newborn, The Principle Continuation)7 2433(3. S.G.)1 472 3 720 1704 t +11 I f +(ACM)4808 1704 w +(Annual Conference)1 851 1 995 1824 t +11 R f +(, 1977, 466-473.)2 726 1 1846 1824 t +( Optimal Properties,)2 938( Pearl, Scout: A Simple Game-Searching Algorithm with Proven)8 3036(4. J.)1 346 3 720 1980 t +11 I f +(First Annual National Conference on Artificial Intelligence)6 2619 1 995 2100 t +11 R f +(, Stanford, 1980.)2 738 1 3614 2100 t +( Baudet,)1 390(5. G.)1 382 2 720 2256 t +11 I f +( of Algorithms for Asynchronous Multiprocessors)5 2302(The Design and Analysis)3 1167 2 1543 2256 t +11 R f +(,)5012 2256 w +(Ph.D. thesis, Department of Computer Science, Carnegie-Mellon University, 1978.)8 3660 1 995 2376 t +( and T.A. Marsland, A Comparison of Minimax Tree Search Algorithms,)10 3360( Campbell)1 469(6. M.S.)1 491 3 720 2532 t +11 I f +(Artificial Intelligence 20)2 1082 1 995 2652 t +11 R f +(, \(1983\), 347-367.)2 798 1 2077 2652 t +( Marsland, A Review of Game-Tree Pruning,)6 2060(7. T.A.)1 477 2 720 2808 t +11 I f +(Journal of the International Computer)4 1743 1 3297 2808 t +(Chess Association 9)2 888 1 995 2928 t +11 R f +(, 1 \(1986\), 3-19.)3 716 1 1883 2928 t +( Marsland, Relative Efficiency of Alpha-Beta Implementations,)6 2938(8. T.A.)1 477 2 720 3084 t +11 I f +(International Joint)1 853 1 4187 3084 t +(Conference on Artificial Intelligence)3 1615 1 995 3204 t +11 R f +(, Karlsruhe, 1983, 763-766.)3 1213 1 2610 3204 t +( Schaeffer, Experiments in Search and Knowledge, Ph.D. thesis, Dept. of Computer Sci-)12 3974(9. J.)1 346 2 720 3360 t +(ence, University of Waterloo, 1986.)4 1577 1 995 3480 t +( Schaeffer, The History Heuristic,)4 1511(10. J.)1 346 2 720 3636 t +11 I f +( Associa-)1 413(Journal of the International Computer Chess)5 2016 2 2611 3636 t +(tion 6)1 255 1 995 3756 t +11 R f +(, 3 \(1983\), 16-19.)3 771 1 1250 3756 t +( of Alpha-Beta Pruning,)3 1066( Knuth and R.W. Moore, An Analysis)6 1685(11. D.E.)1 477 3 720 3912 t +11 I f +(Artificial Intelligence 6)2 1033 1 3979 3912 t +11 R f +(,)5012 3912 w +(\(1975\), 293-326.)1 742 1 995 4032 t +( Chess Program,)2 771( Greenblatt, D.E. Eastlake and S.D. Crocker, The Greenblatt)8 2830(12. R.D.)1 484 3 720 4188 t +11 I f +(Fall)4856 4188 w +(Joint Computer Conference 31)3 1359 1 995 4308 t +11 R f +(, \(1967\), 801-810.)2 798 1 2354 4308 t +( Reinefeld, An Improvement of the Scout Tree Search Algorithm,)9 2899(13. A.)1 382 2 720 4464 t +11 I f +( the Interna-)2 553(Journal of)1 457 2 4030 4464 t +(tional Computer Chess Association 6)4 1642 1 995 4584 t +11 R f +(, 4 \(1983\), 4-14.)3 716 1 2637 4584 t +( S.A. Lawless, Parallel Alpha-Beta Search on Arachne,)7 2480( Finkel, J. Fishburn and)4 1071(14. R.A.)1 484 3 720 4740 t +11 I f +(Inter-)4791 4740 w +(national Conference on Parallel Processing)4 1944 1 995 4860 t +11 R f +(, 1980, 235-243.)2 726 1 2939 4860 t +( Marsland, A. Reinefeld and J. Schaeffer, Low Overhead Alternatives to SSS*,)11 3539(15. T.A.)1 477 2 720 5016 t +11 I f +(Artifi-)4770 5016 w +(cial Intelligence 31)2 848 1 995 5136 t +11 R f +(, 1 \(1987\), 185-199.)3 881 1 1843 5136 t +( Hyatt,)1 306(16. R.M.)1 503 2 720 5292 t +11 I f +( A Computer Chess Playing Program)5 1684(Cray Blitz -)2 527 2 1563 5292 t +11 R f +(, M.Sc. thesis, University of)4 1266 1 3774 5292 t +(Southern Mississippi, 1983.)2 1233 1 995 5412 t +( Newell and H.A. Simon, in)5 1231(17. A.)1 382 2 720 5568 t +11 I f +(Human Problem Solving)2 1087 1 2361 5568 t +11 R f +(, Prentice-Hall, 1972.)2 944 1 3448 5568 t +( Adelson-Velskiy, V.L. Arlazarov and M.V. Donskoy, Some Methods of Controlling)10 3812(18. G.M.)1 508 2 720 5724 t +(the Tree Search in Chess Programs,)5 1568 1 995 5844 t +11 I f +(Artificial Intelligence 6)2 1027 1 2591 5844 t +11 R f +(, \(1975\), 361-371.)2 798 1 3618 5844 t +( on Game Trees, Ph.D. thesis, Dept.)6 1611( Nau, Quality of Decision Versus Depth of Search)8 2237(19. D.S.)1 472 3 720 6000 t +(of Computer Science, Duke University, 1979.)5 2016 1 995 6120 t +( Experiment: A Comparison of Human and)6 2026( Kopec and I. Bratko, The Bratko-Kopec)6 1912(20. D.)1 382 3 720 6276 t +(Computer Performance in Chess, in)4 1609 1 995 6396 t +11 I f +( 3)1 91(Advances in Computer Chess)3 1319 2 2641 6396 t +11 R f +(, M.R.B. Clarke \(ed.\),)3 989 1 4051 6396 t +(Pergamon Press, 1982, 57-72.)3 1321 1 995 6516 t +( Program,)1 447( Newborn, A Parallel Search Chess)5 1609(21. M.M.)1 527 3 720 6672 t +11 I f +(ACM Annual Conference)2 1137 1 3344 6672 t +11 R f +(, 1985, 272-)2 559 1 4481 6672 t +(277.)995 6792 w +( Schaeffer, Multiprocessor Tree-Search Experiments, in)5 2486( Marsland, M. Olafsson and J.)5 1357(22. T.A.)1 477 3 720 6948 t +11 I f +(Advances in Computer Chess 4)4 1375 1 995 7068 t +11 R f +(, D. Beal \(ed.\), Pergamon Press, 1985, 37-51.)7 2000 1 2370 7068 t +( and J. Dixon, Experiments with some Programs that Search Game Trees,)11 3292( Slagle)1 307(23. J.)1 346 3 720 7224 t +11 I f +(Journal)4698 7224 w +cleartomark +showpage +saveobj restore +%%EndPage: 19 19 +%%Page: 20 20 +/saveobj save def +mark +20 pagesetup +11 R f +(- 20 -)2 238 1 2761 490 t +11 I f +(of the ACM 2)3 591 1 995 840 t +11 R f +(, \(1969\), 189-207.)2 798 1 1586 840 t +( Strategies in Game)3 903( Muszycka and R. Shinghal, An Empirical Comparison of Pruning)9 3035(24. A.)1 382 3 720 996 t +(Trees,)995 1116 w +11 I f +(IEEE Transactions on Systems, Man, and Cybernetics SMC-15)7 2778 1 1293 1116 t +11 R f +(, 3 \(1985\), 389-399.)3 881 1 4071 1116 t +( A VLSI Architecture for Chess, Ph.D. thesis, Dept. of)9 2465( Ebeling, All the Right Moves:)5 1391(25. Carl)1 464 3 720 1272 t +(Computer Science, Carnegie-Mellon University, 1986.)4 2409 1 995 1392 t +( Schaeffer, Distributed Game-Tree Searching,)4 2050(26. J.)1 346 2 720 1548 t +11 I f +( Distributed Com-)2 822(Journal of Parallel and)3 1065 2 3153 1548 t +(puting)995 1668 w +11 R f +( appear.)1 346( To)1 178(, 1989.)1 304 3 1277 1668 t +( Beal, Null Moves,)3 836(27. D.)1 382 2 720 1824 t +11 I f +(Advances in Computer Chess V)4 1387 1 1966 1824 t +11 R f +(, 1987.)1 304 1 3353 1824 t +( the Null Move in Chess,)5 1108( Goetsch and M. Campbell, Experiments with)6 2018(28. G.)1 382 3 720 1980 t +11 I f +(AAAI Sprint Sym-)2 783 1 4257 1980 t +(posium)995 2100 w +11 R f +(, 1988, 14-18.)2 616 1 1313 2100 t +( Singular Extensions: Adding Selectivity to)5 1954( Anantharaman, M. Campbell and F.H. Hsu,)6 1996(29. T.)1 370 3 720 2256 t +(brute-Force Searching,)1 1004 1 995 2376 t +11 I f +(AAAI Spring Symposium)2 1087 1 2027 2376 t +11 R f +(, 1988, 8-13.)2 561 1 3114 2376 t +( Min-Max Search,)2 832( McAllester, Conspiracy Numbers for)4 1718(30. D.A.)1 489 3 720 2532 t +11 I f +(Artificial Intelligence 35)2 1112 1 3802 2532 t +11 R f +(, 3)1 126 1 4914 2532 t +(\(1988\), 287-310.)1 742 1 995 2652 t +( Schaeffer, Conspiracy Numbers,)3 1459(31. J.)1 346 2 720 2808 t +11 I f +(Artificial Intelligence)1 944 1 2553 2808 t +11 R f +( in)1 115( to appear)2 432( Also)1 264( press.)1 281( In)1 147(, 1989.)1 304 6 3497 2808 t +11 I f +(Advances in Computer Chess V,)4 1415 1 995 2928 t +11 R f +(D. Beal and H. Berliner \(ed.\), Elsevier Press, 1989.)8 2254 1 2438 2928 t +cleartomark +showpage +saveobj restore +%%EndPage: 20 20 +%%Page: 21 21 +/saveobj save def +mark +21 pagesetup +11 R f +(- 21 -)2 238 1 2761 490 t +(Affiliation of author:)2 922 1 995 840 t +( the Department of Computing Science, University of Alberta, Edmon-)9 3214(The author is with)3 831 2 995 1080 t +( work was supported by the National Science and)8 2316( This)1 270(ton, Alberta, Canada T6G 2H1.)4 1459 3 995 1200 t +(Engineering Research Council of Canada.)4 1844 1 995 1320 t +(Footnotes:)995 1680 w +( 1986 World Computer Chess Championship, Cologne, West Ger-)8 3027(1. A competitor in the)4 1018 2 995 1920 t +(many.)995 2040 w +( conducted through to depth 6 and showed minimal signs)9 2571(2. The original experiments were)4 1474 2 995 2280 t +( depths 7 and 8, table conflicts necessitated an increase)9 2460( extended to)2 549( When)1 323(of over-loading.)1 713 4 995 2400 t +(in table size.)2 553 1 995 2520 t +( software predecessor of the chess machine)6 1892(3. A)1 218 2 995 2760 t +11 I f +(Belle.)3133 2760 w +cleartomark +showpage +saveobj restore +%%EndPage: 21 21 +%%Page: 22 22 +/saveobj save def +mark +22 pagesetup +11 R f +(- 22 -)2 238 1 2761 490 t +cleartomark +saveobj restore +%%BeginGlobal +/C /Courier def +%%EndGlobal +/saveobj save def +mark +10 C f +(AlphaBeta\( p : position;)3 1440 1 995 820 t +10 S f +(a)2495 820 w +10 C f +(,)2558 820 w +10 S f +(b)2678 820 w +10 C f +(, depth : integer \) : integer;)6 1800 1 2733 820 t +(var)995 920 w +(bestmove, score, width, m, result : integer;)6 2640 1 1235 1020 t +(rating : array[ 1..MAX_WIDTH ] of integer;)6 2520 1 1235 1120 t +(begin)995 1320 w +( At a leaf node })5 1020( {)1 540(if depth = 0 then)4 1020 3 1235 1420 t +(return\( Evaluate\( p \) \);)4 1440 1 1475 1520 t +(width := GenerateMoves\( moves \);)4 1920 1 1235 1720 t +( No moves in this position })6 1680( {)1 540(if width = 0 then)4 1020 3 1235 1820 t +(return\( Evaluate\( p \) \);)4 1440 1 1475 1920 t +({ Assign history heuristic score to each move })8 2820 1 1235 2120 t +(for m := 1 to width do)6 1320 1 1235 2220 t +( m ] = HistoryTable[ moves[ m ] ];)8 2040(* rating[)1 900 2 995 2320 t +( Put highest rated moves first })6 1920( {)1 240(Sort\( moves, rating \);)3 1320 3 1235 2420 t +(score :=)1 480 1 1235 2620 t +10 S f +(-\245)1775 2620 w +10 R f +(4;)1903 2620 w +(for m := 1 to width do)6 884 1 1095 2720 t +(begin)1170 2820 w +({ Recurse using nega-max variant of)5 1464 1 1220 2920 t +10 S f +(ab)2709 2920 w +10 R f +(})2852 2920 w +(result := -AlphaBeta\( p.moves[m], -)4 1437 1 1220 3020 t +10 S f +(b)2657 3020 w +10 R f +(, -)1 83 1 2712 3020 t +10 S f +(a)2795 3020 w +10 R f +(, depth-1 \);)2 441 1 2858 3020 t +(if result)1 308 1 1220 3120 t +10 S f +(>)1553 3120 w +10 R f +(score then)1 407 1 1633 3120 t +(score := result;)2 594 1 1320 3220 t +({ Check for cut-off })4 838 1 1220 3420 t +(if score)1 296 1 1220 3520 t +10 S f +(>)1541 3520 w +10 R f +(=)1596 3520 w +10 S f +(b)1677 3520 w +10 R f +(then)1757 3520 w +(begin)1270 3620 w +({ Cut-off: no further sub-trees need be examined })8 2019 1 1320 3720 t +(bestmove := moves[ m ];)4 1000 1 1320 3820 t +(goto done;)1 425 1 1320 3920 t +(end;)1270 4020 w +10 S f +(a)1220 4220 w +10 R f +(:= MAX\()1 375 1 1308 4220 t +10 S f +(a)1708 4220 w +10 R f +(, score \);)2 346 1 1771 4220 t +(end;)1170 4320 w +(done:)1045 4520 w +({ Update history score for best move })7 1546 1 1095 4620 t +( bestmove ] = HistoryTable[ bestmove ] + 2)8 1754(* HistoryTable[)1 685 2 995 4720 t +7 I f +(depth)3434 4681 w +10 C f +(;)3606 4720 w +(return\( score \);)2 960 1 1235 4820 t +(end.)995 4920 w +10 B f +(Fig. 1. The History Heuristic and Alpha-Beta.)6 1948 1 2043 5120 t +cleartomark +showpage +saveobj restore +%%EndPage: 22 22 +%%Page: 23 23 +/saveobj save def +mark +23 pagesetup +11 R f +(- 23 -)2 238 1 2761 490 t +cleartomark +saveobj restore +%%BeginGlobal +% +% Version 3.3 drawing procedures for dpost. Automatically pulled in, but only +% when needed. +% + +/inpath false def +/savematrix matrix def + +/Dl { + inpath + {pop pop neg lineto} + {newpath neg moveto neg lineto stroke} + ifelse +} bind def + +/De { + /y1 exch 2 div def + /x1 exch 2 div def + /savematrix savematrix currentmatrix def + neg exch x1 add exch translate + x1 y1 scale + 0 0 1 0 360 + inpath + {1 0 moveto arc savematrix setmatrix} + {newpath arc savematrix setmatrix stroke} + ifelse +} bind def + +/Da { + /dy2 exch def + /dx2 exch def + /dy1 exch def + /dx1 exch def + dy1 add neg exch dx1 add exch + dx1 dx1 mul dy1 dy1 mul add sqrt + dy1 dx1 neg atan + dy2 neg dx2 atan + inpath + {arc} + {newpath arc stroke} + ifelse +} bind def + +/DA { + /dy2 exch def + /dx2 exch def + /dy1 exch def + /dx1 exch def + dy1 add neg exch dx1 add exch + dx1 dx1 mul dy1 dy1 mul add sqrt + dy1 dx1 neg atan + dy2 neg dx2 atan + inpath + {arcn} + {newpath arcn stroke} + ifelse +} bind def + +/Ds { + /y2 exch def + /x2 exch def + /y1 exch def + /x1 exch def + /y0 exch def + /x0 exch def + x0 5 x1 mul add 6 div + y0 5 y1 mul add -6 div + x2 5 x1 mul add 6 div + y2 5 y1 mul add -6 div + x1 x2 add 2 div + y1 y2 add -2 div + inpath + {curveto} + {newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke} + ifelse +} bind def +%%EndGlobal +/saveobj save def +mark +11 R f +2730 1031 300 300 De +(Root)2773 1053 w +1830 1632 300 300 De +3630 1632 300 300 De +(I2)3735 1654 w +3672 1526 2985 1138 Dl +2087 1526 2774 1138 Dl +1380 2232 300 300 De +1830 2232 300 300 De +2280 2232 300 300 De +1874 1738 1530 2082 Dl +1980 1782 1980 2082 Dl +2086 1738 2430 2082 Dl +2880 2232 300 300 De +(I2.M)2921 2254 w +3330 2232 300 300 De +3929 2232 300 300 De +4379 2232 300 300 De +3672 1738 3029 2082 Dl +(Move M)1 382 1 2882 1909 t +3779 1782 3479 2082 Dl +3780 1782 4080 2082 Dl +3887 1738 4530 2082 Dl +1830 2831 300 300 De +(I1)1935 2853 w +1980 2382 1980 2682 Dl +1380 3432 300 300 De +1830 3432 300 300 De +2280 3432 300 300 De +(I1.M)2322 3454 w +1874 2937 1530 3281 Dl +(Move M)1 382 1 2282 3110 t +1980 2981 1980 3281 Dl +2086 2937 2430 3281 Dl +11 B f +(Fig. 2. History Heuristic Example.)4 1607 1 2214 4325 t +cleartomark +showpage +saveobj restore +%%EndPage: 23 23 +%%Page: 24 24 +/saveobj save def +mark +24 pagesetup +11 R f +(- 24 -)2 238 1 2761 490 t +974 882 974 3422 Dl +5039 882 974 882 Dl +5040 3422 5040 882 Dl +975 3422 5040 3422 Dl +(%)629 2174 w +(depth)2884 3699 w +974 3473 974 3422 Dl +(2)947 3556 w +1482 3473 1482 3422 Dl +(3)1455 3556 w +1990 3473 1990 3422 Dl +(4)1963 3556 w +2499 3473 2499 3422 Dl +(5)2472 3556 w +3006 3473 3006 3422 Dl +(6)2979 3556 w +3515 3473 3515 3422 Dl +(7)3488 3556 w +4023 3473 4023 3422 Dl +(8)3996 3556 w +4531 3473 4531 3422 Dl +(9)4504 3556 w +5040 3473 5040 3422 Dl +(10)4985 3556 w +923 3422 974 3422 Dl +(0)868 3444 w +923 3168 974 3168 Dl +(10)813 3190 w +923 2915 974 2915 Dl +(20)813 2937 w +923 2661 974 2661 Dl +(30)813 2683 w +923 2406 974 2406 Dl +(40)813 2428 w +923 2152 974 2152 Dl +(50)813 2174 w +923 1898 974 1898 Dl +(60)813 1920 w +923 1644 974 1644 Dl +(70)813 1666 w +923 1390 974 1390 Dl +(80)813 1412 w +923 1136 974 1136 Dl +(90)813 1158 w +923 882 974 882 Dl +(100)758 904 w +1990 1262 1482 1161 Dl +2498 1313 1990 1262 Dl +3007 1415 2499 1314 Dl +3514 1126 3006 1415 Dl +4023 1817 3515 1126 Dl +4531 1447 4023 1817 Dl +(H)4582 1442 w +8 R f +(.)1471 1520 w +(.)1496 1525 w +(.)1521 1530 w +(.)1547 1535 w +(.)1573 1540 w +(.)1598 1545 w +(.)1624 1551 w +(.)1649 1556 w +(.)1674 1561 w +(.)1699 1566 w +(.)1725 1571 w +(.)1750 1576 w +(.)1776 1581 w +(.)1801 1586 w +(.)1827 1591 w +(.)1852 1596 w +(.)1878 1601 w +(.)1903 1606 w +(.)1928 1611 w +(.)1953 1616 w +(. .)1 20 1 1979 1622 t +(.)2005 1620 w +(.)2030 1619 w +(.)2056 1617 w +(.)2081 1616 w +(.)2106 1615 w +(.)2131 1614 w +(.)2157 1612 w +(.)2182 1611 w +(.)2208 1610 w +(.)2233 1609 w +(.)2259 1607 w +(.)2284 1606 w +(.)2310 1605 w +(.)2335 1604 w +(.)2360 1602 w +(.)2385 1601 w +(.)2411 1600 w +(.)2437 1599 w +(.)2462 1597 w +(. .)1 20 1 2488 1596 t +(.)2513 1600 w +(.)2538 1604 w +(.)2563 1607 w +(.)2589 1611 w +(.)2614 1615 w +(.)2640 1619 w +(.)2665 1623 w +(.)2691 1627 w +(.)2716 1630 w +(.)2742 1634 w +(.)2767 1638 w +(.)2792 1642 w +(.)2817 1646 w +(.)2843 1649 w +(.)2869 1653 w +(.)2894 1657 w +(.)2920 1661 w +(.)2945 1665 w +(.)2970 1669 w +(. .)1 20 1 2995 1672 t +(.)3015 1655 w +(.)3033 1637 w +(.)3052 1620 w +(.)3071 1602 w +(.)3090 1585 w +(.)3108 1567 w +(.)3127 1550 w +(.)3146 1533 w +(.)3165 1515 w +(.)3184 1497 w +(.)3203 1480 w +(.)3221 1462 w +(.)3240 1445 w +(.)3259 1427 w +(.)3278 1409 w +(.)3297 1392 w +(.)3316 1375 w +(.)3334 1357 w +(.)3353 1340 w +(.)3372 1322 w +(.)3391 1305 w +(.)3410 1287 w +(.)3429 1270 w +(.)3447 1252 w +(.)3466 1234 w +(.)3485 1217 w +(. .)1 20 1 3504 1200 t +(.)3519 1220 w +(.)3535 1241 w +(.)3550 1261 w +(.)3565 1281 w +(.)3581 1302 w +(.)3596 1322 w +(.)3612 1343 w +(.)3627 1363 w +(.)3643 1384 w +(.)3658 1404 w +(.)3673 1425 w +(.)3689 1445 w +(.)3704 1466 w +(.)3720 1486 w +(.)3735 1507 w +(.)3751 1527 w +(.)3766 1548 w +(.)3781 1569 w +(.)3797 1589 w +(.)3812 1610 w +(.)3828 1630 w +(.)3843 1651 w +(.)3858 1671 w +(.)3874 1691 w +(.)3889 1712 w +(.)3905 1732 w +(.)3920 1753 w +(.)3935 1773 w +(.)3951 1794 w +(.)3966 1814 w +(.)3981 1835 w +(.)3997 1855 w +(.)4012 1875 w +11 R f +(K)4074 1894 w +1506 2197 1482 2203 Dl +1554 2185 1530 2191 Dl +1602 2173 1578 2179 Dl +1651 2161 1627 2167 Dl +1699 2148 1675 2154 Dl +1748 2136 1724 2142 Dl +1796 2125 1772 2131 Dl +1844 2112 1820 2118 Dl +1893 2100 1869 2106 Dl +1941 2088 1917 2094 Dl +1989 2076 1965 2082 Dl +2009 2060 1990 2076 Dl +2047 2028 2028 2044 Dl +2084 1996 2065 2012 Dl +2122 1964 2103 1980 Dl +2160 1932 2141 1948 Dl +2197 1900 2178 1916 Dl +2235 1868 2216 1884 Dl +2272 1836 2253 1852 Dl +2310 1804 2291 1820 Dl +2348 1772 2329 1788 Dl +2385 1740 2366 1756 Dl +2423 1708 2404 1724 Dl +2460 1676 2441 1692 Dl +2498 1645 2479 1661 Dl +2522 1636 2499 1644 Dl +2570 1619 2547 1627 Dl +2618 1602 2595 1610 Dl +2666 1585 2643 1593 Dl +2715 1568 2692 1576 Dl +2764 1551 2741 1559 Dl +2812 1534 2789 1542 Dl +2860 1517 2837 1525 Dl +2909 1501 2886 1509 Dl +2957 1483 2934 1491 Dl +3005 1466 2982 1474 Dl +3028 1454 3006 1466 Dl +3073 1428 3051 1440 Dl +3117 1403 3095 1415 Dl +3161 1377 3139 1389 Dl +3205 1351 3183 1363 Dl +3249 1326 3227 1338 Dl +3294 1300 3272 1312 Dl +3338 1274 3316 1286 Dl +3382 1249 3360 1261 Dl +3426 1223 3404 1235 Dl +3470 1198 3448 1210 Dl +3515 1172 3493 1184 Dl +3540 1170 3515 1171 Dl +3588 1168 3563 1169 Dl +3636 1166 3611 1167 Dl +3685 1163 3660 1164 Dl +3733 1161 3708 1162 Dl +3781 1158 3756 1159 Dl +3830 1156 3805 1157 Dl +3878 1153 3853 1154 Dl +3926 1151 3901 1152 Dl +3974 1148 3949 1149 Dl +4023 1146 3998 1147 Dl +4047 1141 4023 1146 Dl +4095 1130 4071 1135 Dl +4144 1120 4120 1125 Dl +4192 1109 4168 1114 Dl +4241 1098 4217 1103 Dl +4289 1087 4265 1092 Dl +4337 1077 4313 1082 Dl +4385 1067 4361 1072 Dl +4434 1056 4410 1061 Dl +4482 1045 4458 1050 Dl +4531 1034 4507 1039 Dl +(T)4582 1081 w +1990 2481 1482 2304 Dl +2498 2382 1990 2483 Dl +3007 2406 2499 2381 Dl +(R)3057 2428 w +1507 3420 1482 3422 Dl +1555 3416 1530 3418 Dl +1603 3411 1578 3413 Dl +1652 3406 1627 3408 Dl +1700 3402 1675 3404 Dl +1748 3397 1723 3399 Dl +1796 3392 1771 3394 Dl +1845 3387 1820 3389 Dl +1893 3382 1868 3384 Dl +1942 3377 1917 3379 Dl +1990 3372 1965 3374 Dl +2015 3369 1990 3372 Dl +2064 3362 2039 3365 Dl +2112 3355 2087 3358 Dl +2160 3347 2135 3350 Dl +2208 3340 2183 3343 Dl +2257 3333 2232 3336 Dl +2305 3325 2280 3328 Dl +2353 3318 2328 3321 Dl +2401 3311 2376 3314 Dl +2450 3303 2425 3306 Dl +2498 3296 2473 3299 Dl +2524 3294 2499 3296 Dl +2572 3289 2547 3291 Dl +2620 3284 2595 3286 Dl +2668 3279 2643 3281 Dl +2717 3274 2692 3276 Dl +2765 3269 2740 3271 Dl +2813 3265 2788 3267 Dl +2861 3260 2836 3262 Dl +2910 3255 2885 3257 Dl +2958 3250 2933 3252 Dl +3006 3245 2981 3247 Dl +(S)3057 3318 w +1990 3397 1482 3422 Dl +2498 3194 1990 3397 Dl +3007 3245 2499 3194 Dl +(N)3057 3216 w +1990 1568 1482 1553 Dl +2498 1639 1990 1568 Dl +3007 1913 2499 1639 Dl +(L)3057 1935 w +11 B f +(Fig. 3. Single Search Enhancement \(NBP\).)5 1984 1 2025 3913 t +cleartomark +showpage +saveobj restore +%%EndPage: 24 24 +%%Page: 25 25 +/saveobj save def +mark +25 pagesetup +11 R f +(- 25 -)2 238 1 2761 490 t +974 882 974 3422 Dl +5039 882 974 882 Dl +5040 3422 5040 882 Dl +975 3422 5040 3422 Dl +(%)629 2174 w +(depth)2884 3699 w +974 3473 974 3422 Dl +(2)947 3556 w +1482 3473 1482 3422 Dl +(3)1455 3556 w +1990 3473 1990 3422 Dl +(4)1963 3556 w +2499 3473 2499 3422 Dl +(5)2472 3556 w +3006 3473 3006 3422 Dl +(6)2979 3556 w +3515 3473 3515 3422 Dl +(7)3488 3556 w +4023 3473 4023 3422 Dl +(8)3996 3556 w +4531 3473 4531 3422 Dl +(9)4504 3556 w +5040 3473 5040 3422 Dl +(10)4985 3556 w +923 3422 974 3422 Dl +(70)813 3444 w +923 2999 974 2999 Dl +(75)813 3021 w +923 2576 974 2576 Dl +(80)813 2598 w +923 2152 974 2152 Dl +(85)813 2174 w +923 1728 974 1728 Dl +(90)813 1750 w +923 1305 974 1305 Dl +(95)813 1327 w +923 882 974 882 Dl +(100)758 904 w +6 R f +1990 1221 1482 1221 Dl +2498 1137 1990 1221 Dl +3007 1052 2499 1136 Dl +3514 907 3006 1051 Dl +4023 907 3515 907 Dl +4531 892 4023 907 Dl +(HT)4612 955 w +4 R f +(.)1476 1645 w +(.)1499 1657 w +(.)1522 1668 w +(.)1545 1680 w +(.)1568 1691 w +(.)1591 1703 w +(.)1614 1714 w +(.)1637 1726 w +(.)1661 1737 w +(.)1684 1749 w +(.)1707 1760 w +(.)1730 1772 w +(.)1753 1783 w +(.)1776 1795 w +(.)1799 1806 w +(.)1822 1818 w +(.)1845 1830 w +(.)1868 1842 w +(.)1891 1853 w +(.)1914 1865 w +(.)1938 1876 w +(.)1961 1888 w +(. .)1 10 1 1984 1899 t +(.)2004 1883 w +(.)2023 1867 w +(.)2043 1850 w +(.)2062 1834 w +(.)2082 1818 w +(.)2102 1801 w +(.)2121 1785 w +(.)2141 1769 w +(.)2160 1752 w +(.)2179 1736 w +(.)2199 1720 w +(.)2218 1703 w +(.)2238 1687 w +(.)2258 1671 w +(.)2277 1654 w +(.)2297 1639 w +(.)2316 1622 w +(.)2336 1606 w +(.)2356 1590 w +(.)2375 1573 w +(.)2395 1557 w +(.)2414 1541 w +(.)2434 1524 w +(.)2453 1508 w +(.)2472 1492 w +(. .)1 10 1 2493 1476 t +(.)2516 1464 w +(.)2539 1452 w +(.)2562 1441 w +(.)2585 1429 w +(.)2608 1417 w +(.)2631 1406 w +(.)2654 1394 w +(.)2677 1383 w +(.)2700 1371 w +(.)2723 1360 w +(.)2747 1348 w +(.)2770 1337 w +(.)2793 1325 w +(.)2816 1314 w +(.)2839 1302 w +(.)2862 1291 w +(.)2885 1279 w +(.)2908 1268 w +(.)2931 1256 w +(.)2954 1245 w +(.)2977 1233 w +(. .)1 10 1 3000 1222 t +(.)3024 1211 w +(.)3047 1200 w +(.)3070 1189 w +(.)3093 1178 w +(.)3116 1168 w +(.)3139 1157 w +(.)3162 1146 w +(.)3185 1135 w +(.)3208 1124 w +(.)3231 1114 w +(.)3254 1103 w +(.)3277 1092 w +(.)3301 1081 w +(.)3324 1070 w +(.)3347 1060 w +(.)3370 1049 w +(.)3393 1038 w +(.)3416 1027 w +(.)3439 1016 w +(.)3462 1006 w +(.)3486 995 w +(. .)1 10 1 3509 984 t +(.)3534 983 w +(.)3560 981 w +(.)3585 980 w +(.)3611 978 w +(.)3636 977 w +(.)3661 975 w +(.)3686 973 w +(.)3712 972 w +(.)3738 970 w +(.)3763 969 w +(.)3789 967 w +(.)3814 966 w +(.)3839 965 w +(.)3864 963 w +(.)3890 961 w +(.)3915 960 w +(.)3941 958 w +(.)3966 957 w +(.)3992 955 w +(.)4017 954 w +6 R f +(KT)4104 965 w +1507 1817 1482 1813 Dl +1555 1825 1530 1821 Dl +1603 1833 1578 1829 Dl +1652 1842 1627 1838 Dl +1700 1850 1675 1846 Dl +1748 1858 1723 1854 Dl +1796 1865 1771 1861 Dl +1845 1873 1820 1869 Dl +1894 1882 1869 1878 Dl +1942 1890 1917 1886 Dl +1990 1898 1965 1894 Dl +2013 1905 1990 1898 Dl +2062 1921 2039 1914 Dl +2110 1938 2087 1931 Dl +2158 1953 2135 1946 Dl +2207 1969 2184 1962 Dl +2255 1986 2232 1979 Dl +2303 2002 2280 1995 Dl +2352 2018 2329 2011 Dl +2401 2034 2378 2027 Dl +2449 2050 2426 2043 Dl +2497 2066 2474 2059 Dl +2522 2078 2499 2067 Dl +2566 2101 2543 2090 Dl +2609 2122 2586 2111 Dl +2653 2145 2630 2134 Dl +2698 2167 2675 2156 Dl +2742 2189 2719 2178 Dl +2786 2211 2763 2200 Dl +2831 2233 2808 2222 Dl +2874 2255 2851 2244 Dl +2918 2277 2895 2266 Dl +2963 2299 2940 2288 Dl +3007 2321 2984 2310 Dl +(HS)3087 2334 w +1990 1983 1482 1475 Dl +2498 2236 1990 1982 Dl +3007 2406 2499 2237 Dl +(HR)3087 2418 w +4 R f +( .)1 0( .)1 26( . . .)3 75( .)1 26( .)1 25( .)1 26( .)1 25( .)1 26( .)1 25( .)1 26( . . .)3 75( .)1 26( .)1 25( . .)2 52(. . .)2 60 15 1476 2153 t +(.)2007 2165 w +(.)2030 2176 w +(.)2053 2188 w +(.)2076 2199 w +(.)2100 2211 w +(.)2123 2222 w +(.)2146 2234 w +(.)2169 2245 w +(.)2192 2257 w +(.)2215 2269 w +(.)2238 2280 w +(.)2262 2292 w +(.)2285 2303 w +(.)2308 2315 w +(.)2331 2326 w +(.)2354 2338 w +(.)2377 2349 w +(.)2400 2361 w +(.)2423 2373 w +(.)2446 2384 w +(.)2470 2396 w +(. .)1 10 1 2493 2407 t +(.)2516 2415 w +(.)2541 2423 w +(.)2565 2431 w +(.)2589 2439 w +(.)2614 2448 w +(.)2637 2456 w +(.)2662 2464 w +(.)2686 2472 w +(.)2710 2479 w +(.)2735 2488 w +(.)2758 2496 w +(.)2783 2504 w +(.)2807 2512 w +(.)2831 2521 w +(.)2856 2528 w +(.)2879 2536 w +(.)2904 2544 w +(.)2928 2552 w +(.)2952 2561 w +(.)2976 2569 w +(.)3000 2577 w +6 R f +(HN)3087 2588 w +2499 3253 2448 3422 Dl +3007 2660 2499 3253 Dl +(NT)3087 2673 w +1990 2659 1482 1982 Dl +2498 2577 1990 2661 Dl +3007 2745 2499 2576 Dl +(KR)3087 2732 w +2460 3401 2448 3422 Dl +2497 3339 2485 3360 Dl +2515 3319 2499 3338 Dl +2547 3281 2531 3300 Dl +2580 3243 2564 3262 Dl +2613 3204 2597 3223 Dl +2646 3166 2630 3185 Dl +2678 3128 2662 3147 Dl +2711 3089 2695 3108 Dl +2744 3051 2728 3070 Dl +2777 3013 2761 3032 Dl +2809 2975 2793 2994 Dl +2842 2937 2826 2956 Dl +2875 2898 2859 2917 Dl +2908 2860 2892 2879 Dl +2940 2822 2924 2841 Dl +2973 2783 2957 2802 Dl +3006 2745 2990 2764 Dl +(ST)3087 2788 w +4 R f +(.)2493 3423 w +(.)2508 3405 w +(.)2525 3385 w +(.)2542 3367 w +(.)2558 3347 w +(.)2574 3328 w +(.)2591 3309 w +(.)2607 3289 w +(.)2624 3271 w +(.)2640 3251 w +(.)2656 3233 w +(.)2673 3213 w +(.)2689 3194 w +(.)2706 3175 w +(.)2722 3156 w +(.)2738 3137 w +(.)2755 3117 w +(.)2771 3099 w +(.)2787 3079 w +(.)2804 3061 w +(.)2820 3041 w +(.)2837 3022 w +(.)2853 3003 w +(.)2869 2983 w +(.)2886 2965 w +(.)2902 2945 w +(.)2919 2927 w +(.)2935 2907 w +(.)2951 2888 w +(.)2968 2869 w +(.)2984 2850 w +(.)3000 2831 w +6 R f +(RT)3087 2842 w +1505 1909 1482 1898 Dl +1549 1931 1526 1920 Dl +1593 1953 1570 1942 Dl +1637 1975 1614 1964 Dl +1681 1997 1658 1986 Dl +1725 2019 1702 2008 Dl +1770 2042 1747 2031 Dl +1814 2063 1791 2052 Dl +1858 2086 1835 2075 Dl +1902 2108 1879 2097 Dl +1946 2129 1923 2118 Dl +1990 2152 1967 2141 Dl +2013 2163 1990 2152 Dl +2057 2185 2034 2174 Dl +2101 2207 2078 2196 Dl +2146 2230 2123 2219 Dl +2190 2251 2167 2240 Dl +2234 2273 2211 2262 Dl +2278 2296 2255 2285 Dl +2322 2317 2299 2306 Dl +2366 2340 2343 2329 Dl +2410 2362 2387 2351 Dl +2455 2384 2432 2373 Dl +2499 2406 2476 2395 Dl +2517 2424 2499 2406 Dl +2551 2459 2533 2441 Dl +2586 2494 2568 2476 Dl +2622 2530 2604 2512 Dl +2656 2564 2638 2546 Dl +2692 2599 2674 2581 Dl +2726 2634 2708 2616 Dl +2761 2669 2743 2651 Dl +2797 2705 2779 2687 Dl +2831 2739 2813 2721 Dl +2867 2774 2849 2756 Dl +2902 2810 2884 2792 Dl +2936 2844 2918 2826 Dl +2972 2880 2954 2862 Dl +3007 2915 2989 2897 Dl +(HK)3087 2927 w +4 R f +(.)1476 2746 w +(.)1499 2757 w +(.)1522 2769 w +(.)1545 2780 w +(.)1568 2792 w +(.)1591 2803 w +(.)1614 2815 w +(.)1637 2827 w +(.)1661 2839 w +(.)1684 2850 w +(.)1707 2862 w +(.)1730 2873 w +(.)1753 2885 w +(.)1776 2896 w +(.)1799 2908 w +(.)1822 2919 w +(.)1845 2931 w +(.)1868 2942 w +(.)1891 2954 w +(.)1914 2965 w +(.)1938 2977 w +(.)1961 2989 w +(. .)1 10 1 1984 3000 t +(.)2008 2992 w +(.)2033 2984 w +(.)2057 2976 w +(.)2081 2968 w +(.)2105 2960 w +(.)2129 2952 w +(.)2154 2944 w +(.)2178 2936 w +(.)2202 2927 w +(.)2226 2919 w +(.)2250 2911 w +(.)2274 2904 w +(.)2299 2896 w +(.)2323 2887 w +(.)2347 2879 w +(.)2372 2871 w +(.)2395 2863 w +(.)2420 2855 w +(.)2444 2847 w +(.)2468 2839 w +(. .)1 10 1 2493 2831 t +(.)2516 2842 w +(.)2539 2854 w +(.)2562 2865 w +(.)2585 2877 w +(.)2608 2888 w +(.)2631 2900 w +(.)2654 2911 w +(.)2677 2923 w +(.)2700 2935 w +(.)2723 2946 w +(.)2747 2958 w +(.)2770 2969 w +(.)2793 2981 w +(.)2816 2992 w +(.)2839 3004 w +(.)2862 3016 w +(.)2885 3027 w +(.)2908 3039 w +(.)2931 3050 w +(.)2954 3062 w +(.)2977 3073 w +(.)3000 3085 w +6 R f +(KS)3087 3096 w +1507 3422 1482 3422 Dl +1560 3422 1535 3422 Dl +1614 3422 1589 3422 Dl +1668 3422 1643 3422 Dl +1722 3422 1697 3422 Dl +1775 3422 1750 3422 Dl +1829 3422 1804 3422 Dl +1882 3422 1857 3422 Dl +1936 3422 1911 3422 Dl +1989 3422 1964 3422 Dl +2013 3411 1990 3422 Dl +2057 3390 2034 3401 Dl +2101 3367 2078 3378 Dl +2146 3345 2123 3356 Dl +2190 3324 2167 3335 Dl +2234 3301 2211 3312 Dl +2278 3280 2255 3291 Dl +2322 3257 2299 3268 Dl +2366 3235 2343 3246 Dl +2410 3213 2387 3224 Dl +2455 3191 2432 3202 Dl +2499 3169 2476 3180 Dl +2522 3179 2499 3168 Dl +2566 3202 2543 3191 Dl +2609 3224 2586 3213 Dl +2653 3245 2630 3234 Dl +2698 3268 2675 3257 Dl +2742 3290 2719 3279 Dl +2786 3312 2763 3301 Dl +2831 3334 2808 3323 Dl +2874 3356 2851 3345 Dl +2918 3378 2895 3367 Dl +2963 3400 2940 3389 Dl +3007 3423 2984 3412 Dl +(KN)3087 3409 w +10 B f +(Fig. 4. Two Search Enhancements \(NBP\).)5 1766 1 2134 3913 t +cleartomark +showpage +saveobj restore +%%EndPage: 25 25 +%%Page: 26 26 +/saveobj save def +mark +26 pagesetup +11 R f +(- 26 -)2 238 1 2761 490 t +974 882 974 3422 Dl +5039 882 974 882 Dl +5040 3422 5040 882 Dl +975 3422 5040 3422 Dl +(%)629 2174 w +(depth)2884 3699 w +974 3473 974 3422 Dl +(2)947 3556 w +1482 3473 1482 3422 Dl +(3)1455 3556 w +1990 3473 1990 3422 Dl +(4)1963 3556 w +2499 3473 2499 3422 Dl +(5)2472 3556 w +3006 3473 3006 3422 Dl +(6)2979 3556 w +3515 3473 3515 3422 Dl +(7)3488 3556 w +4023 3473 4023 3422 Dl +(8)3996 3556 w +4531 3473 4531 3422 Dl +(9)4504 3556 w +5040 3473 5040 3422 Dl +(10)4985 3556 w +923 3422 974 3422 Dl +(0)868 3444 w +923 3168 974 3168 Dl +(10)813 3190 w +923 2915 974 2915 Dl +(20)813 2937 w +923 2661 974 2661 Dl +(30)813 2683 w +923 2406 974 2406 Dl +(40)813 2428 w +923 2152 974 2152 Dl +(50)813 2174 w +923 1898 974 1898 Dl +(60)813 1920 w +923 1644 974 1644 Dl +(70)813 1666 w +923 1390 974 1390 Dl +(80)813 1412 w +923 1136 974 1136 Dl +(90)813 1158 w +923 882 974 882 Dl +(100)758 904 w +1990 1136 1482 1390 Dl +2498 1161 1990 1136 Dl +3007 1415 2499 1161 Dl +3514 1268 3006 1415 Dl +4023 1642 3515 1267 Dl +4531 1324 4023 1644 Dl +(H)4582 1346 w +8 R f +(.)1471 1520 w +(.)1495 1527 w +(.)1519 1535 w +(.)1544 1542 w +(.)1567 1549 w +(.)1592 1556 w +(.)1616 1563 w +(.)1640 1571 w +(.)1665 1578 w +(.)1688 1585 w +(.)1713 1592 w +(.)1737 1599 w +(.)1761 1607 w +(.)1786 1614 w +(.)1809 1622 w +(.)1834 1629 w +(.)1858 1636 w +(.)1882 1643 w +(.)1907 1651 w +(.)1930 1658 w +(.)1955 1665 w +(. .)1 20 1 1979 1672 t +(.)2003 1664 w +(.)2028 1656 w +(.)2052 1647 w +(.)2076 1638 w +(.)2100 1630 w +(.)2124 1622 w +(.)2149 1613 w +(.)2173 1605 w +(.)2197 1596 w +(.)2221 1587 w +(.)2245 1579 w +(.)2269 1571 w +(.)2294 1562 w +(.)2318 1553 w +(.)2342 1545 w +(.)2367 1537 w +(.)2390 1528 w +(.)2415 1520 w +(.)2439 1512 w +(.)2463 1503 w +(. .)1 20 1 2488 1494 t +(.)2513 1498 w +(.)2538 1502 w +(.)2563 1506 w +(.)2589 1509 w +(.)2614 1514 w +(.)2640 1517 w +(.)2665 1521 w +(.)2691 1525 w +(.)2716 1529 w +(.)2742 1533 w +(.)2767 1536 w +(.)2792 1540 w +(.)2817 1544 w +(.)2843 1548 w +(.)2869 1551 w +(.)2894 1556 w +(.)2920 1559 w +(.)2945 1563 w +(.)2970 1567 w +( .)1 26(. .)1 20 2 2995 1571 t +( .)1 25(. .)1 46 2 3046 1570 t +( . .)2 50( .)1 26(. .)1 45 3 3123 1569 t +(. . .)2 72 1 3249 1568 t +( .)1 25(. .)1 46 2 3326 1567 t +( .)1 0( .)1 26( .)1 25( .)1 26(. .)1 45 5 3402 1566 t +(.)3526 1579 w +(.)3548 1591 w +(.)3570 1604 w +(.)3592 1617 w +(.)3614 1630 w +(.)3636 1643 w +(.)3658 1655 w +(.)3681 1668 w +(.)3703 1681 w +(.)3725 1694 w +(.)3747 1707 w +(.)3769 1719 w +(.)3791 1732 w +(.)3813 1745 w +(.)3835 1758 w +(.)3857 1771 w +(.)3879 1783 w +(.)3902 1796 w +(.)3923 1809 w +(.)3946 1822 w +(.)3968 1835 w +(.)3990 1847 w +(.)4012 1860 w +11 R f +(K)4074 1905 w +1503 2598 1482 2610 Dl +1547 2571 1526 2583 Dl +1592 2544 1571 2556 Dl +1635 2518 1614 2530 Dl +1680 2492 1659 2504 Dl +1724 2465 1703 2477 Dl +1768 2438 1747 2450 Dl +1813 2412 1792 2424 Dl +1857 2385 1836 2397 Dl +1901 2358 1880 2370 Dl +1945 2332 1924 2344 Dl +1989 2306 1968 2318 Dl +2008 2286 1990 2304 Dl +2043 2252 2025 2270 Dl +2078 2216 2060 2234 Dl +2113 2182 2095 2200 Dl +2148 2147 2130 2165 Dl +2183 2111 2165 2129 Dl +2219 2077 2201 2095 Dl +2253 2041 2235 2059 Dl +2288 2006 2270 2024 Dl +2323 1972 2305 1990 Dl +2358 1936 2340 1954 Dl +2394 1901 2376 1919 Dl +2428 1866 2410 1884 Dl +2463 1831 2445 1849 Dl +2499 1797 2481 1815 Dl +2522 1786 2499 1797 Dl +2566 1763 2543 1774 Dl +2609 1741 2586 1752 Dl +2653 1719 2630 1730 Dl +2698 1697 2675 1708 Dl +2742 1675 2719 1686 Dl +2786 1653 2763 1664 Dl +2831 1631 2808 1642 Dl +2874 1609 2851 1620 Dl +2918 1587 2895 1598 Dl +2963 1565 2940 1576 Dl +3007 1542 2984 1553 Dl +3027 1530 3006 1542 Dl +3072 1504 3051 1516 Dl +3116 1477 3095 1489 Dl +3160 1451 3139 1463 Dl +3204 1424 3183 1436 Dl +3249 1397 3228 1409 Dl +3293 1371 3272 1383 Dl +3337 1345 3316 1357 Dl +3381 1318 3360 1330 Dl +3425 1291 3404 1303 Dl +3470 1265 3449 1277 Dl +3514 1238 3493 1250 Dl +3540 1235 3515 1237 Dl +3588 1230 3563 1232 Dl +3637 1224 3612 1226 Dl +3685 1219 3660 1221 Dl +3733 1214 3708 1216 Dl +3781 1209 3756 1211 Dl +3830 1204 3805 1206 Dl +3878 1198 3853 1200 Dl +3926 1193 3901 1195 Dl +3974 1188 3949 1190 Dl +4023 1182 3998 1184 Dl +4047 1174 4023 1181 Dl +4095 1161 4071 1168 Dl +4144 1147 4120 1154 Dl +4192 1134 4168 1141 Dl +4241 1120 4217 1127 Dl +4289 1106 4265 1113 Dl +4337 1093 4313 1100 Dl +4386 1080 4362 1087 Dl +4434 1066 4410 1073 Dl +4482 1052 4458 1059 Dl +4531 1039 4507 1046 Dl +(T)4582 1036 w +1990 2509 1482 2661 Dl +2498 2483 1990 2508 Dl +3007 2306 2499 2483 Dl +(R)3057 2326 w +1507 3371 1482 3372 Dl +1555 3368 1530 3369 Dl +1603 3366 1578 3367 Dl +1652 3364 1627 3365 Dl +1700 3361 1675 3362 Dl +1748 3359 1723 3360 Dl +1796 3357 1771 3358 Dl +1845 3354 1820 3355 Dl +1893 3352 1868 3353 Dl +1941 3349 1916 3350 Dl +1989 3347 1964 3348 Dl +2015 3344 1990 3347 Dl +2064 3336 2039 3339 Dl +2112 3329 2087 3332 Dl +2160 3321 2135 3324 Dl +2208 3314 2183 3317 Dl +2257 3307 2232 3310 Dl +2305 3300 2280 3303 Dl +2353 3293 2328 3296 Dl +2401 3285 2376 3288 Dl +2450 3278 2425 3281 Dl +2498 3271 2473 3274 Dl +2524 3269 2499 3270 Dl +2572 3267 2547 3268 Dl +2620 3264 2595 3265 Dl +2668 3262 2643 3263 Dl +2717 3259 2692 3260 Dl +2765 3257 2740 3258 Dl +2813 3255 2788 3256 Dl +2861 3252 2836 3253 Dl +2910 3250 2885 3251 Dl +2958 3247 2933 3248 Dl +3006 3245 2981 3246 Dl +(S)3057 3267 w +1990 3321 1482 3422 Dl +2498 3118 1990 3321 Dl +3007 3093 2499 3118 Dl +(N)3057 3115 w +1990 1523 1482 1802 Dl +2498 1562 1990 1522 Dl +3007 1715 2499 1563 Dl +(L)3057 1737 w +11 B f +(Fig. 5. Single Search Enhancement \(NC\).)5 1922 1 2056 3913 t +cleartomark +showpage +saveobj restore +%%EndPage: 26 26 +%%Page: 27 27 +/saveobj save def +mark +27 pagesetup +11 R f +(- 27 -)2 238 1 2761 490 t +974 882 974 3422 Dl +5039 882 974 882 Dl +5040 3422 5040 882 Dl +975 3422 5040 3422 Dl +(%)629 2174 w +(depth)2884 3699 w +974 3473 974 3422 Dl +(2)947 3556 w +1482 3473 1482 3422 Dl +(3)1455 3556 w +1990 3473 1990 3422 Dl +(4)1963 3556 w +2499 3473 2499 3422 Dl +(5)2472 3556 w +3006 3473 3006 3422 Dl +(6)2979 3556 w +3515 3473 3515 3422 Dl +(7)3488 3556 w +4023 3473 4023 3422 Dl +(8)3996 3556 w +4531 3473 4531 3422 Dl +(9)4504 3556 w +5040 3473 5040 3422 Dl +(10)4985 3556 w +923 3422 974 3422 Dl +(70)813 3444 w +923 2999 974 2999 Dl +(75)813 3021 w +923 2576 974 2576 Dl +(80)813 2598 w +923 2152 974 2152 Dl +(85)813 2174 w +923 1728 974 1728 Dl +(90)813 1750 w +923 1305 974 1305 Dl +(95)813 1327 w +923 882 974 882 Dl +(100)758 904 w +6 R f +1506 1532 1482 1525 Dl +1554 1547 1530 1540 Dl +1602 1561 1578 1554 Dl +1651 1576 1627 1569 Dl +1700 1591 1676 1584 Dl +1748 1605 1724 1598 Dl +1796 1619 1772 1612 Dl +1844 1634 1820 1627 Dl +1893 1648 1869 1641 Dl +1942 1663 1918 1656 Dl +1990 1678 1966 1671 Dl +2011 1690 1990 1678 Dl +2055 1716 2034 1704 Dl +2100 1742 2079 1730 Dl +2144 1767 2123 1755 Dl +2188 1793 2167 1781 Dl +2232 1819 2211 1807 Dl +2276 1845 2255 1833 Dl +2321 1871 2300 1859 Dl +2365 1896 2344 1884 Dl +2409 1922 2388 1910 Dl +2453 1948 2432 1936 Dl +2497 1974 2476 1962 Dl +2519 1989 2499 1974 Dl +2559 2018 2539 2003 Dl +2599 2048 2579 2033 Dl +2640 2077 2620 2062 Dl +2681 2105 2661 2090 Dl +2722 2135 2702 2120 Dl +2762 2164 2742 2149 Dl +2803 2193 2783 2178 Dl +2843 2222 2823 2207 Dl +2884 2252 2864 2237 Dl +2925 2280 2905 2265 Dl +2965 2310 2945 2295 Dl +3006 2339 2986 2324 Dl +(HK)3087 2351 w +1990 1594 1482 2466 Dl +2498 1728 1990 1593 Dl +3007 2473 2499 1728 Dl +(HN)3087 2460 w +4 R f +(.)1476 2593 w +(.)1488 2572 w +(.)1501 2550 w +(.)1514 2528 w +(.)1526 2506 w +(.)1539 2485 w +(.)1552 2463 w +(.)1565 2441 w +(.)1578 2419 w +(.)1590 2397 w +(.)1603 2376 w +(.)1616 2353 w +(.)1629 2332 w +(.)1641 2310 w +(.)1654 2288 w +(.)1667 2266 w +(.)1679 2245 w +(.)1692 2222 w +(.)1704 2201 w +(.)1717 2179 w +(.)1730 2158 w +(.)1742 2135 w +(.)1755 2114 w +(.)1768 2092 w +(.)1781 2070 w +(.)1794 2048 w +(.)1806 2027 w +(.)1819 2005 w +(.)1832 1983 w +(.)1845 1961 w +(.)1857 1939 w +(.)1870 1917 w +(.)1883 1896 w +(.)1895 1874 w +(.)1908 1852 w +(.)1920 1830 w +(.)1933 1808 w +(.)1946 1787 w +(.)1958 1765 w +(.)1971 1743 w +(. .)1 10 1 1984 1721 t +(.)2008 1729 w +(.)2033 1738 w +(.)2057 1747 w +(.)2081 1755 w +(.)2105 1764 w +(.)2129 1772 w +(.)2154 1780 w +(.)2178 1789 w +(.)2202 1798 w +(.)2226 1806 w +(.)2250 1814 w +(.)2274 1823 w +(.)2299 1831 w +(.)2323 1839 w +(.)2347 1848 w +(.)2372 1857 w +(.)2395 1865 w +(.)2420 1873 w +(.)2444 1882 w +(.)2468 1891 w +(. .)1 10 1 2493 1899 t +(.)2513 1914 w +(.)2533 1930 w +(.)2553 1946 w +(.)2574 1961 w +(.)2594 1977 w +(.)2614 1993 w +(.)2634 2008 w +(.)2655 2024 w +(.)2676 2040 w +(.)2696 2055 w +(.)2716 2071 w +(.)2736 2086 w +(.)2757 2101 w +(.)2777 2117 w +(.)2797 2132 w +(.)2817 2148 w +(.)2838 2164 w +(.)2858 2179 w +(.)2879 2195 w +(.)2899 2211 w +(.)2920 2226 w +(.)2940 2242 w +(.)2960 2258 w +(.)2980 2273 w +(.)3000 2289 w +6 R f +(HR)3087 2300 w +1494 2368 1482 2389 Dl +1520 2324 1508 2345 Dl +1546 2279 1534 2300 Dl +1572 2234 1560 2255 Dl +1598 2189 1586 2210 Dl +1624 2144 1612 2165 Dl +1650 2100 1638 2121 Dl +1676 2055 1664 2076 Dl +1703 2010 1691 2031 Dl +1729 1966 1717 1987 Dl +1755 1920 1743 1941 Dl +1781 1876 1769 1897 Dl +1806 1831 1794 1852 Dl +1833 1786 1821 1807 Dl +1859 1742 1847 1763 Dl +1885 1697 1873 1718 Dl +1911 1652 1899 1673 Dl +1938 1607 1926 1628 Dl +1963 1563 1951 1584 Dl +1989 1518 1977 1539 Dl +2015 1517 1990 1517 Dl +2069 1517 2044 1517 Dl +2123 1517 2098 1517 Dl +2176 1517 2151 1517 Dl +2230 1517 2205 1517 Dl +2283 1517 2258 1517 Dl +2337 1517 2312 1517 Dl +2390 1517 2365 1517 Dl +2444 1517 2419 1517 Dl +2498 1517 2473 1517 Dl +2513 1537 2499 1517 Dl +2541 1580 2527 1560 Dl +2570 1622 2556 1602 Dl +2600 1665 2586 1645 Dl +2629 1707 2615 1687 Dl +2657 1750 2643 1730 Dl +2687 1792 2673 1772 Dl +2716 1835 2702 1815 Dl +2744 1878 2730 1858 Dl +2774 1920 2760 1900 Dl +2803 1963 2789 1943 Dl +2832 2005 2818 1985 Dl +2861 2048 2847 2028 Dl +2890 2091 2876 2071 Dl +2919 2133 2905 2113 Dl +2948 2176 2934 2156 Dl +2977 2218 2963 2198 Dl +3007 2261 2993 2241 Dl +(HS)3087 2223 w +1501 2473 1482 2457 Dl +1538 2506 1519 2490 Dl +1576 2538 1557 2522 Dl +1614 2571 1595 2555 Dl +1651 2603 1632 2587 Dl +1689 2636 1670 2620 Dl +1726 2669 1707 2653 Dl +1765 2701 1746 2685 Dl +1802 2734 1783 2718 Dl +1839 2767 1820 2751 Dl +1877 2799 1858 2783 Dl +1915 2831 1896 2815 Dl +1952 2865 1933 2849 Dl +1990 2897 1971 2881 Dl +2006 2879 1990 2898 Dl +2039 2840 2023 2859 Dl +2072 2801 2056 2820 Dl +2104 2762 2088 2781 Dl +2137 2723 2121 2742 Dl +2170 2685 2154 2704 Dl +2203 2646 2187 2665 Dl +2235 2607 2219 2626 Dl +2268 2568 2252 2587 Dl +2302 2529 2286 2548 Dl +2334 2490 2318 2509 Dl +2367 2452 2351 2471 Dl +2399 2413 2383 2432 Dl +2433 2374 2417 2393 Dl +2465 2336 2449 2355 Dl +2498 2297 2482 2316 Dl +2522 2305 2499 2296 Dl +2570 2325 2547 2316 Dl +2618 2344 2595 2335 Dl +2667 2363 2644 2354 Dl +2715 2382 2692 2373 Dl +2764 2402 2741 2393 Dl +2812 2421 2789 2412 Dl +2861 2441 2838 2432 Dl +2909 2460 2886 2451 Dl +2957 2480 2934 2471 Dl +3006 2499 2983 2490 Dl +(KR)3087 2537 w +4 R f +(.)1476 2662 w +(.)1495 2678 w +(.)1515 2695 w +(.)1534 2711 w +(.)1554 2728 w +(.)1574 2744 w +(.)1593 2761 w +(.)1613 2778 w +(.)1632 2794 w +(.)1652 2811 w +(.)1671 2827 w +(.)1691 2844 w +(.)1711 2861 w +(.)1730 2878 w +(.)1750 2894 w +(.)1769 2911 w +(.)1788 2927 w +(.)1808 2944 w +(.)1828 2960 w +(.)1848 2977 w +(.)1867 2994 w +(.)1886 3010 w +(.)1906 3027 w +(.)1925 3043 w +(.)1945 3060 w +(.)1965 3077 w +(. .)1 10 1 1984 3094 t +(.)1999 3073 w +(.)2015 3054 w +(.)2030 3034 w +(.)2046 3014 w +(.)2061 2994 w +(.)2076 2975 w +(.)2092 2955 w +(.)2107 2935 w +(.)2123 2916 w +(.)2138 2896 w +(.)2154 2876 w +(.)2169 2856 w +(.)2184 2837 w +(.)2200 2816 w +(.)2215 2797 w +(.)2231 2777 w +(.)2246 2757 w +(.)2262 2737 w +(.)2277 2718 w +(.)2292 2698 w +(.)2308 2678 w +(.)2323 2659 w +(.)2339 2639 w +(.)2354 2619 w +(.)2369 2599 w +(.)2385 2580 w +(.)2400 2559 w +(.)2416 2540 w +(.)2431 2521 w +(.)2446 2500 w +(.)2462 2481 w +(.)2477 2461 w +(. .)1 10 1 2493 2441 t +(.)2514 2453 w +(.)2537 2464 w +(.)2559 2475 w +(.)2580 2487 w +(.)2603 2498 w +(.)2625 2510 w +(.)2647 2521 w +(.)2669 2533 w +(.)2691 2544 w +(.)2713 2555 w +(.)2735 2567 w +(.)2758 2578 w +(.)2780 2590 w +(.)2802 2601 w +(.)2824 2613 w +(.)2846 2623 w +(.)2868 2635 w +(.)2890 2647 w +(.)2912 2658 w +(.)2934 2670 w +(.)2956 2681 w +(.)2979 2693 w +(.)3000 2703 w +6 R f +(KS)3087 2714 w +1500 2907 1482 2889 Dl +1535 2943 1517 2925 Dl +1570 2978 1552 2960 Dl +1605 3014 1587 2996 Dl +1640 3049 1622 3031 Dl +1675 3085 1657 3067 Dl +1710 3121 1692 3103 Dl +1745 3156 1727 3138 Dl +1780 3192 1762 3174 Dl +1815 3227 1797 3209 Dl +1850 3263 1832 3245 Dl +1885 3299 1867 3281 Dl +1920 3335 1902 3317 Dl +1955 3370 1937 3352 Dl +1990 3406 1972 3388 Dl +2002 3385 1990 3406 Dl +2028 3342 2016 3363 Dl +2054 3298 2042 3319 Dl +2080 3256 2068 3277 Dl +2106 3213 2094 3234 Dl +2133 3170 2121 3191 Dl +2159 3127 2147 3148 Dl +2184 3084 2172 3105 Dl +2210 3041 2198 3062 Dl +2236 2997 2224 3018 Dl +2263 2955 2251 2976 Dl +2289 2912 2277 2933 Dl +2315 2869 2303 2890 Dl +2341 2826 2329 2847 Dl +2367 2783 2355 2804 Dl +2393 2740 2381 2761 Dl +2419 2697 2407 2718 Dl +2445 2654 2433 2675 Dl +2471 2611 2459 2632 Dl +2497 2568 2485 2589 Dl +2521 2578 2499 2567 Dl +2565 2601 2543 2590 Dl +2608 2624 2586 2613 Dl +2653 2646 2631 2635 Dl +2697 2669 2675 2658 Dl +2741 2693 2719 2682 Dl +2786 2715 2764 2704 Dl +2830 2738 2808 2727 Dl +2873 2761 2851 2750 Dl +2917 2783 2895 2772 Dl +2962 2806 2940 2795 Dl +3006 2829 2984 2818 Dl +(KN)3087 2842 w +1990 1357 1482 2483 Dl +2498 1043 1990 1356 Dl +3007 959 2499 1043 Dl +3514 892 3006 958 Dl +4023 907 3515 892 Dl +4531 887 4023 907 Dl +(HT)4612 950 w +4 R f +(.)1476 2271 w +(.)1499 2283 w +(.)1522 2294 w +(.)1545 2305 w +(.)1568 2316 w +(.)1591 2328 w +(.)1614 2338 w +(.)1637 2350 w +(.)1661 2361 w +(.)1684 2372 w +(.)1707 2383 w +(.)1730 2395 w +(.)1753 2406 w +(.)1776 2417 w +(.)1799 2428 w +(.)1822 2439 w +(.)1845 2451 w +(.)1868 2461 w +(.)1891 2473 w +(.)1914 2484 w +(.)1938 2495 w +(.)1961 2506 w +(. .)1 10 1 1984 2518 t +(.)1995 2495 w +(.)2007 2472 w +(.)2018 2449 w +(.)2029 2425 w +(.)2040 2402 w +(.)2052 2379 w +(.)2064 2356 w +(.)2074 2333 w +(.)2086 2311 w +(.)2097 2288 w +(.)2108 2265 w +(.)2120 2242 w +(.)2131 2219 w +(.)2142 2196 w +(.)2154 2173 w +(.)2165 2150 w +(.)2176 2127 w +(.)2187 2104 w +(.)2199 2081 w +(.)2210 2058 w +(.)2221 2035 w +(.)2233 2012 w +(.)2244 1989 w +(.)2255 1966 w +(.)2267 1943 w +(.)2278 1920 w +(.)2289 1897 w +(.)2300 1875 w +(.)2312 1852 w +(.)2323 1829 w +(.)2334 1806 w +(.)2346 1783 w +(.)2357 1759 w +(.)2368 1736 w +(.)2380 1713 w +(.)2390 1690 w +(.)2402 1667 w +(.)2413 1645 w +(.)2424 1622 w +(.)2436 1599 w +(.)2447 1576 w +(.)2459 1553 w +(.)2470 1530 w +(.)2481 1507 w +(. .)1 10 1 2493 1484 t +(.)2518 1481 w +(.)2543 1478 w +(.)2568 1475 w +(.)2594 1472 w +(.)2619 1469 w +(.)2645 1466 w +(.)2670 1463 w +(.)2696 1460 w +(.)2721 1457 w +(.)2747 1454 w +(.)2772 1451 w +(.)2797 1448 w +(.)2822 1446 w +(.)2848 1443 w +(.)2874 1440 w +(.)2899 1436 w +(.)2925 1433 w +(.)2950 1430 w +(.)2975 1428 w +(. .)1 10 1 3000 1425 t +(.)3020 1408 w +(.)3040 1392 w +(.)3059 1375 w +(.)3079 1358 w +(.)3098 1342 w +(.)3118 1325 w +(.)3138 1309 w +(.)3157 1292 w +(.)3177 1276 w +(.)3196 1259 w +(.)3216 1243 w +(.)3235 1226 w +(.)3254 1209 w +(.)3275 1193 w +(.)3294 1176 w +(.)3313 1160 w +(.)3333 1143 w +(.)3352 1127 w +(.)3372 1110 w +(.)3391 1093 w +(.)3411 1077 w +(.)3431 1060 w +(.)3450 1044 w +(.)3470 1027 w +(.)3489 1011 w +( .)1 25( .)1 26( .)1 25( .)1 26( .)1 25( .)1 26( . . .)3 75( .)1 26( .)1 25( . .)2 52( . . .)3 75( .)1 26( .)1 25( .)1 26( .)1 25(. .)1 10 16 3509 994 t +6 R f +(KT)4104 1005 w +3006 2754 2651 3422 Dl +(NT)3087 2766 w +4 R f +(.)2747 3423 w +(.)2760 3402 w +(.)2773 3380 w +(.)2786 3358 w +(.)2800 3336 w +(.)2813 3315 w +(.)2827 3292 w +(.)2840 3271 w +(.)2853 3249 w +(.)2867 3227 w +(.)2880 3205 w +(.)2894 3184 w +(.)2907 3161 w +(.)2920 3140 w +(.)2934 3118 w +(.)2947 3096 w +(.)2961 3074 w +(.)2974 3053 w +(.)2987 3030 w +(.)3000 3009 w +6 R f +(RT)3087 3020 w +2812 3399 2803 3422 Dl +2832 3353 2823 3376 Dl +2851 3306 2842 3329 Dl +2871 3259 2862 3282 Dl +2890 3213 2881 3236 Dl +2909 3166 2900 3189 Dl +2928 3119 2919 3142 Dl +2948 3073 2939 3096 Dl +2967 3026 2958 3049 Dl +2986 2979 2977 3002 Dl +3006 2932 2997 2955 Dl +(ST)3087 2943 w +10 B f +(Fig. 6. Two Search Enhancements \(NC\).)5 1710 1 2162 3913 t +cleartomark +showpage +saveobj restore +%%EndPage: 27 27 +%%Page: 28 28 +/saveobj save def +mark +28 pagesetup +11 R f +(- 28 -)2 238 1 2761 490 t +11 B f +(Fig. 1. The History Heuristic and Alpha-Beta.)6 2148 1 995 840 t +(Fig. 2. History Heuristic Example.)4 1607 1 995 1200 t +(Fig. 3. Single Search Enhancement \(NBP\).)5 1984 1 995 1560 t +(Fig. 4. Two Search Enhancements \(NBP\).)5 1946 1 995 1920 t +(Fig. 5. Single Search Enhancement \(NC\).)5 1922 1 995 2280 t +(Fig. 6. Two Search Enhancements \(NC\).)5 1884 1 995 2640 t +cleartomark +showpage +saveobj restore +%%EndPage: 28 28 +%%Trailer +done +%%Pages: 28 +%%DocumentFonts: Times-Bold Courier Times-Italic Times-Roman Symbol Times-Roman diff --git a/parallel/rbf-europar01.pdf b/parallel/rbf-europar01.pdf new file mode 100755 index 0000000..31b3ab9 --- /dev/null +++ b/parallel/rbf-europar01.pdf @@ -0,0 +1,1820 @@ +%PDF-1.2 +%ÐÓÔÌ +1 0 obj +<< +/Type /Catalog +/Pages 3 0 R +/Outlines 2 0 R +/Dests 5 0 R +/PageMode /UseNone +>> +endobj +2 0 obj +<< +/Type /Outlines +/Count 0 +>> +endobj +3 0 obj +<< +/Type /Pages +/MediaBox [ 0 0 596 842 ] +/Count 10 +/Kids [ 6 0 R 8 0 R 17 0 R 26 0 R 33 0 R 41 0 R 44 0 R 47 0 R 51 0 R 54 0 R ] +>> +endobj +4 0 obj +[ /PDF /Text /ImageC ] +endobj +5 0 obj +<< + +>> +endobj +6 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F1 56 0 R /F2 58 0 R /F3 60 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 7 0 R +>> +endobj +7 0 obj +<< +/Length 69 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gat=.gQL=2&UiQ?i1'*`&].dlMk;98W_si"@W*_f=ag?Blk0m9ci>J/rUoCUVRqVN+ma76Kpj<=l0d +#u:\W'd&-(G_o'lACiUo:;&Y$h=#GEB-Ch!1[T,pc=6:F4P)dPj#S8B;XRkOg3e`QCO%rmiRdX24!b +._\\WgVFL<2>4Rs.O6>h5UC]3_Y#qU/[u_:N*:BgqKid@@[=m,FrQGV]VtFT,'jp87`V3a(af24#ua +F[ZaHjU^s\2#oeZ5VKnu6S::0=goJY4Y?bp&)G>D7t.`o3[ +]]ip3.\sG3RD'M4`W^eY/I5o;K_W)sG1U9Esq-<0ZZYIeE]mFcG3g9WmWOm*"B.mJ3V@SM+L'>MmSV +%,KN8]<>P7WFQc]:ZlntC:8%ClT_*9R4]9+o?+i%gAXo]k`JY.4hfP[W]>_UX#D5\&g93%KFm:p09> +.'AZCXf!_?Ss("5%d?WQ=Kpb,,tC\\Kkhh7O,A;e^JN@1jbZkN)#s.ES5 +#+Ra-85n]A)Ab4^MolrTE@!_)l:D9/K[IK-_'SQ)F['WgW;FS=QMFac#e`WfWYooaV&\9AYr#GBAXjUd;QW<^SQ#D ++qmbMp!@#j4>HT6/L.%/Xl]`^$K[(@Lf +dacFm*G`9A9L1Ih]4=rCD0Z)NHcH.kI*8ifU"2?4GjrPE]op:qo=;]p]dkM"bds?85K#."t6"AG-kk +mJ>I/loE[aM,$$T<%V=9_.T.,a#PK/G)jO@R)R^Wf_+Bk:OoeL@lmFC@`9/6h.:I[nb#GZ^63pG#p# +K,DagY+&&1'>NN=Us]SY3Ym*D_=dC6B-+r/AV.L7'_jbhA)*TR)/I/*cuY@%h$gY]R9$*GTlt(&MpP6W']S)h='dA1[*Gq*4uP(Xca[)-27i5mR7DP*2CV2,6qo +oB4,"g;m+qE$"'P"*^mTZ!NA::RPQn`A/MXYl#LP7m#DdoekU!XR#BuMS95%%rFF=@]"f:X?3?8K"b +iX:([r8=PHtD7i[9iVam%,DaV?"T!`1+P]Y,]CtZ0^RgD,:C>]6ciM@S.Z*'G.6tW,/@,B%OpbYHg[jfbi4iu`Ta&eHt@Z:Y3Z\RhbJhUMR,NLX;0q#I,2Lu+?qUp5 +4t45@BlI@YqM`h(XIh;p0@u%"SK'`=?)s;l="4i'SJAVaR-,MWYJ.UJ03uP*(O,oU\)b< +_4hI;QI/:!p@\Tq10i:7#RocOKQ=6F%c#SPaqR#VmnJg`ceWnP&=Q6F#Zrc@j,E&2'-oBuXrRUiFa, +E+HkYbb,7`"9;Lg%!KuC8G;$ihh/WiPsSal#]<7ho`:2BV`UP^'.n,/OsD/I>cu.`eUY6Zcr%%J?'Z +Yq[.r[5]QL&kKI]O0Cn5/W,\2A5fbPa%8!WI&^Fs,ul2=H_@LSB@Js8fl0h-gh4-j;:\--hh=af-ZaWAmDV?Fca3S0IM.nVH:6WSb&7?`[B\MtQ[a.> +hVlGd"!,7Zi36qY^I!?FB22d/KI;bPXD""q7Fs]H`dW"(O,)&K;2&n0sbVt="1e;b)G^XLm_4sXF)2 +[pH!Kj9$m&/oW<%")=@aCSgB^1.d`s'ug@P]F2gS$a*TuHE/JBBm5$V2Bl/.$Z9AdnoZg5?7p9;h?U +B->MY\EP.F&V_*=eoJD^qe_ft"*Z-:OCMDCaVC_ZL3BS7Ol(ki_48sa;6b-hIf*[?8;#c\fp!u%e!W +hr,.*"QZ`e'si$-+1%8"6hU#SoKhl6O4eUMGihH\DccGED6r0KZ7gm,L_iL4AYW8hEY>).[&T`iMta +sML0^k7%!lQ'TP`[tLdSe!=9o02:,7Wg06rS.(ZGe-CKTk(_:_1s'*5"g]=$qC +R?_&\laIP+$TSo%-8cXd9o:[GOX;hZ]g;bBR`:E9V2A\'E.e]=MQrK88e:\No%r-S'?b +VRJ'-p6WrC.,(d"$FI2Il5-enjs^?\5s%4B(5<'MqO>cs`SD&=dnr8&VmSi,lqONpZ[+PL\f_Smdi@\dJ5X9#SHW;U3""R/M`6[T^2QKY[P64)k4C8ITh/KspI5B;*>o +u0WtKAL0H3!G>]`U!dShKrGL1mX.D:=XUUE+$i&i9lil[7jk\ED.g$^`@/&=t7&#'S32@j,4-s:+R$ +e4C(VD'Z!"J`O5(%),(g+*JCM]SflebM^`!97+rN +VKC"'/]0mN&!"Y)P4/S@FS@N"R8c('08Ya+580`>+94R3^$_&a=pe"efaCH.,jl90^pt((3Ea%^p$R +?u%g4$nTgt9SIbuR">]DS=3E\OLm'cp,iJ,fLdhO^XrJ7-^rF4#[Q:+#4V3(k!to%QUFQ\n&/(#hP4k#7I3,umNdR$#a`N +4Z]Kq-i2+'<7nDd6:.9Ra?'7:b8^Ski[")OA^YT-"KMJr4h:KJVBWO\ieRp3AD$Hlm9b88Oue&)`3W +X-:cbBPIkg]MXT-@5UCipOVkuEd1I^Vo/(d8^_[!\1ZQsm#C`8^3eh"qZ,Z+0S8,n7)/N6^1jaD/a1 +9^YpFJn1^$WA"54m[!:.seABie0C0AS%HEGF\p][_@M4#7n@MYb`9p<0m#UD-D3>7Vr.\TBp0UgVJk +B +rsKhFJ\1H;@J[lZ2O$k)D\nXP;Yo6kta.bhFeLD/pj6;inG(nHtYB=1M3G\8EoHKF9):?%>ia[Ofkm +2R-L"cCMqQs]qU90-^Mbkf+SfC"6^iHZ61?:`Rl=`N4 +:`%)oKA2;beD]bm8qD"ejk5$4E:^NL?L8X;G.,[FZ&,-#4s50W?q*0>crr7gnrS(i1,atm7`>eY]Y+ +D[bRM#RI;oicgDUa=5e3uE(UG>c>/@4Ob%&8$\J+Fa+%p+5i?R(T:)]dIm\kK%*\l+EGF;c.en3oVB +#4ce^)P3?N$2/-nrpiUuZ"rd0(fhgAV`jDh]6EVSY:[dD+J.dpYqsKh4&Ek4'keO//a&kGm?j5\n?: +qE-i8d/I3g/eZ/oP!]??tICJ)HSO:Ps_Mu%O5W2@W]E*2P`r3g$SDkKHlRSF,K,9Hgp?)TAg~> +endstream +endobj +8 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F2 58 0 R /F4 62 0 R /F1 56 0 R >> /XObject << /Im1 10 0 R /Im2 11 0 R /Im3 12 0 R /Im3 12 0 R /Im3 12 0 R /Im4 13 0 R /Im3 12 0 R /Im4 13 0 R /Im5 14 0 R /Im4 13 0 R /Im4 13 0 R /Im6 15 0 R /Im4 13 0 R /Im7 16 0 R /Im4 13 0 R /Im6 15 0 R /Im4 13 0 R /Im7 16 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 9 0 R +>> +endobj +9 0 obj +<< +/Length 70 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GatU8bECYh(#@2;oIa%,VF;-U.pgnhX*h<& +,Y&d(2O)9(XS)4'sDoXr%m^#UV*C$t'dB67!@Mrht:5sZM$@$e:L\pANmFqB*?(f8HJU?u6g<1\F:[ +Z"8#rc%;CS'>hZ'R6#h5]!ql*?rYY(7\ANojh]GH"rYMlVUF=-p^l_h2GCpp&E`ag/'3g1P!-\>5O) +4%:B$@jeL.P!_A0&,'1!fTprK-+W'?-j#Gg2-IM5&kM=TkJ9b!oD8sKbS +p\be?EXe\9g!ojq)'38<99]6]t)qdc>F)Ir%SfYgj$`%ZoTi(3eVCbmt!n%RHiU`&O11/C)_Opfo1qcmt8H`L"S[!>#3[i7i)icBNnGF8F +>'QfRW:8F$0m'.,WQd_;q(g]6#c-rppS!gFK-l2\Z7(]NSQF[h_$FJNl3P`R1JK#Q/)5;q]o+>Ca9% +R*U`[aZ;Gb1'Q_uNq<]ikOi)3H4L8/)DEDs0.Y'Yk-NU-DG`8]"V]j.=u=4]PjkPmH"?WE)1+c0/O_ +"8k+hbgeQcJ:`Fd4if?<$a7RcefbrP;t%rcc)A'NF^O"o+fo[t]AmK!@!IZO7@J7t+D+F]#S/@e.4pu%7,Bg\X?$jY> +M7Z[8?k-:7Lre(:k)&bG-l3$]+&R-kS5.V59XQE! +Aap2nk78#9b$cX$efqN<[=;3ECJUs^9fA*T4Y2\//_-Zf(RTa81g@9tMDPie2G+'W60boCCVUP+pMW +f4_#R/lEb"=#($,GIOOC?o[f:,$Qe"aVKFr:RF9FeL$93\d056[B83g9MK@RM%9FBKFG:p!",+`7Q. +?WNdR6f\GTlKr%bH)iP&#ai^dM&c5:UUb,c:NRnXaE?l'@\$p(^;JoN:;F,,QD*tjAqYOo+Rod!VRI +?CP>YA"si@FZ.4;3fd9j(etVtfT\O"fVsutk-:Ud$H^0"PQ*VT;%3j:6W +3KMiiCY=ahH!XeUR4OAZi,V9`H8<2)V0bCJ]ud+Y\[:@1iOB +A[=Me9MG2iQk(KV^@1_=\$u7;k+M'rh]gRpmV20;LU/@pa:6[uWf#\L,3tDaCt[&^Z)2_uEoa5Di=^ +C2/tMn52O]JOmp-[o>i>i`rnIGEC/@G*1CtM!eBtp6"p=Nt7WU0mEjI(6ao=C/$ +6:>5mHU;(,;`5#MUA.$^%W]+i=.<2S#4#JL1gnK=>21"Sd$>6%o76aq[KN?PiE9-RT]qS`!2>uhm([B_HEflEJ/"_UgnH`>?08>aRf6ibnY&PCHqYMlHdm-, +sKhP0mQic^MNY]ftD<3'j7aB!].u=lt?tGY/[]kHJL3XXOhCpD'+mB-45h]Gm%4n0XuS57FVAK(^&$ +Ri`DR,aP?DEX8[\h7r#C+3aM-MLF#bp/(^GU:(X,o8YoqkY>B+83ep,Y__J[f:;*l%klE;s)AOk21, +YcN2W)),]*GgMKrr(tV[Ed]FK4J+g5F35;ne*R!DkttW:3L0c6tK*HkQYaQDM$e729AE9t'_U5!q5, +LL2&3/Rr+_k$niCL!dBc5M#o +s0hJSnDlP^X@`#l8j"4iTi;;aEc5Xgq=g\6Y!4U1(b[[8a2p7)a8<3m?6&7*,>.6OhU+L-66;!d5+S +i+lO98VgLF#-itbY2,K'0+2h0M^4D\n$]#QT!R.Js)0KC4m:ucaEF\S080;ag9XE9;o&I(l)OS9V?G +Z;YS8KpE#7n1;6Z=S`j^$T4STp^KL)Hqj"2Y/O1);M^U?SE]H)k3qSg3GchcF&;jVaFXk(cVnqm3>r +h`IFqG-[84/j.#1P*QQNYXU(4hP6f`Tl6B?(F:?!L(@[bD`<8;"(WKj2`A:f\ZnWI^"@(EcB_FE$*X +NlFO-)^,5e/lpdZ(>Z7,^EaY'+PN,LmUk_XlWXpFgn>/_Ji;^!^S-;fn648[PEeL6[hC8l0k2su8@2 +Zl5P7[ua"UH)#]o6R^bcLCMe1^sP"bGBi+FcAk%U4mDk\(!IKV8?CXUa2=YpFlbNP9jq9HnDSG0Tm5 +rJ!so&S#BWpb+lf\-d8-mNsOYU:TJf]hMOqZ$OME_d&cejDnN3g\eHh^I\8qh5TK0V9T`gnr:Pk"`& +gg4lF-FMW083Dn>!NbBuM!Gf+"rKEts.d36JnhVcr%TMG+2L67.hqc''n9?D5TD/C;>&mJ@"\18Vtk +4#s=`XJ7&"pY`SX='*+P%aZuYX.POGPGpIem)q6V`+.83#1NcncId^k1;hMkA;,=rKlucmO*'_sXC6Sq`m^cbp5TZOD_P-,@mbVtn\+XI]iU8p""[G'pDu_[[CUo3V:H7 +i.1$KPoRjVER:OS;ip^]4MF(0QI1@Z9nQ(-S%[*peobVB]._&k:Jspb7m#%EqZc'h/5@M)jY2PN7Y+ +Og>$LCWe8]T1p:T0Wp`[=(q[J1JU&PEgk-*=lGE:m2=Q9^(1oh]O0<05D!5)4.^EEhB.*upQ(HdiL) +h-e_$)Varl"C;#48:Pmo=V\l=D`hJ;;&V5!=>44?G^s-sC\"boi*QKCU0gi8sIG[X"-d`k[emc]ZA8)_T"e0*M'Q^1QoSdA\' +L?57RV[oL]FRBDsSPE(Mm"Prc'gt*@l8QcZ\+'MJ[fY0XdL7[eOSHLV@fE?G"0u5eSG_JXJL\_F+=i +VOP73dLIPkG=U'G%5)gQ+_%g*4Na,adeAfgD2$QdE__/!BD__f?uBW(294l\gY%r`\BJp,>B`,`!&c +`t]L6&E$AYqI?_=Rng-`^IaUTMQ^uhGkoI-*3mi^+%[0!cQdnR/q$G1^MGZ.NgOX:K"FsO/_%h@It +[]1iK$)ZdN^iGHMPs=gG^i^&Y>RTWN15gQ#YK;YI(5O(Wlm/mA^Pd&)ZK\.W0QBA#o+V.cR4/j8B19 +m'?$OS^5fq@b.n;N/>=EPa7?I(/\RB.?Q\dQ[<6X>ccA&$n3[+3S+MUaWc#9!:_.rd"GioV0]PhhT] +-BYP3=Fnh/HV=4m1^g1H%OS2)hZjJknAE>2d$E1H80Ylb.`;E-'(1ohcpL;.RKk(U(D",*;C8Uk,^32r04QfV9)68\6M7Ml@Ai;J&,a1mmf2UYO<$\nJ\0"1 +g0:qh3S4j@;HuDXL&1pj_'AbnqG30`P"l\fh5Q(5'G-Jr02[lJ+cf/tt@uB#UJW^&,%2)hS^MS\G5Y +XMP4j;tkEPt\,LTtUY/<%rpH`=@Fh>D^hi@okqNg.&4rX=Sg"X9'HV^UF0,)U[1St4R74/Xb*gedZM +N,7dQLL-*L>m24jO6B;dZUKKQ,@fq:U'M#n7**%F?jqO`ThCB&31u-;*3g!V1g&fPDt%eA'l8<4''I +m!pks)[rC\`pN0D!k=->uYB3PUGTjIbFpV^stdH;ijaYP=F-s')H37kW1FKM'iT=NEURb"'I&-#-GF +=5$L0 +endstream +endobj +10 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 71 0 R +/Name /Im1 +/Width 35 +/Height 58 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Garp'Yn=kr&4Fpl-m5;fd=rlQ.k\XQ(eUP;8l2HOU[o\OJS4?1%E[Go!S/Cg!mrqtr=2jQ]Z@>A*EG +e'Q4L6Ye1jj2->WOtl5/Q46."U(^#HAqr>$1Habi:si*B4:[-sf*I*b9q:dY1Nq1flY["Ea7 +endstream +endobj +11 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 72 0 R +/Name /Im2 +/Width 37 +/Height 57 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gat&EYmGqG%#*X[#@;IbH_B:(JrSdr/g/eK$8*[8LgsNmRU>]g:%@bBj@)HTObXPB(BYFX,_H_MW*t +2d +endstream +endobj +12 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 73 0 R +/Name /Im3 +/Width 36 +/Height 38 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GapA1Yml=>&4"WmZ4o50f2<`r6:s:>aTtR*DD[F6&[$5,:jbP"b5Z1OP"p&BMUk'fI1!u%;9Sr99>8 +XtrdDTJC=KQ;q/t=3$>4>58 +endstream +endobj +13 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 74 0 R +/Name /Im4 +/Width 32 +/Height 38 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar'bYml4+&4"W]9Y:j)?k!M(XlKW+BK$8C=BZP;W/MLqJ"Xg>#>u@I#q/+eENp$%4s%454Ee`8N*- +O1HcO=!qrdeo)p'ck@>.-Y92K+1'@TuBl(nWe"XkP~> +endstream +endobj +14 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 75 0 R +/Name /Im5 +/Width 13 +/Height 30 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar8g_"`KV#7.Vb!5f'.&,779*rnV&"s@H +endstream +endobj +15 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 76 0 R +/Name /Im6 +/Width 14 +/Height 41 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar9BiW$gqLZ&KU%n7-._"`Hu" +endstream +endobj +16 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 77 0 R +/Name /Im7 +/Width 26 +/Height 27 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GaqLQYml4;$q/L(>e%ZjKLMW>('TC^b:"6ZdM9WT'^50a]'?L#HU(PrYp/"#=+@iXQ7CV7NsGC!`AY +,'dkR%Z3lN)N61X"9'-nRp~> +endstream +endobj +17 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F5 64 0 R /F1 56 0 R /F2 58 0 R /F4 62 0 R >> /XObject << /Im8 19 0 R /Im9 20 0 R /Im10 21 0 R /Im11 22 0 R /Im3 12 0 R /Im3 12 0 R /Im12 23 0 R /Im13 24 0 R /Im14 25 0 R /Im14 25 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 18 0 R +>> +endobj +18 0 obj +<< +/Length 78 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GauHP8U&rZP.pNheBsk#6FeJjI;6;EO"So-A%h'CW"6ik8Ck9dWg9M>^O@AXN!2bF6rImt68Au1'$D +(u6mhQjlBfJfKr\58)rha^KM$ObA\6=?W +iDUKM\'`:I#'Jf1T#2dW>D82X6>1e[su(@V=5bSWZ('rmI[4)VGc!c78sbm5)j9YY=oCpcjdYSq]Q= +j4Ql%Q>A*cfmQh$Belp8-o.9Rua[->1)I%oggi,L/JRT=l7ZKJlHQe(jUT1])S)K_AIU1_^\fX/S?b +Y*GF_u7(?.XBV%a%*O.^-_+W_aRCI2;S^-&u>:$!Gucnh(Fe)jH#pGe+gM]DIYi[i]!d8p/=1+$X,G +H05uin_roY=4Y5TeUi8GYeBV4C;B&eC@JF:pi*k?meZh"L]:)?A7Bih,V_rD=';iM&f])sjD?:?l,- +&/2Rj*Q'*`2<)6(`I.N0P=PQarVSOb\+8c:><-ttNkl]dWCXRQB=q7L!?f4,!J6:ht=5L(\!Bo'E8# +I21PDKd-a^StH@1U.-dd_2QBSpFPVP6fB-iNaH_i@r!.ilt-'9ha4&S>d1=)7*18KWKIZ9I`!I/ej@C;RC^=CZ +/ckC@F9E*>oKYnLhH&gq3Wa5$5]rHZ]UR;GoMlR4*@QbUW$R%:dLo2T9>+#r_L.HeMKY+7$]&Y2.0"P'V9ub%#cHlLe?+rqPXFk.Hfs8S=4kpp,QKr_uo:iB-1!S; +@63OC7A&3Qd@"U6W133N.WlB]MfkrSnZh9ZDZD9$]P* +?1Y9TmEE]ag#%&p;\+OqdmiC76;;'IGTT=b`U*fZL2I#gd/iK6Aos7:=,Tm+,MKg(BJM)"/E,,k;;A +-C/4#0iXj8KS7j>APT0Qq\Ns\1tsOg"Sg`MJX4BFrZ%4l&2Qio,XX0VTct=4"cq.Ga[Q8B`YeH8N4Z +N`Jt2cKM37u@NO9ZYDBVA)oscLh2dsAG'#HMAW?4[,bL(.0e.O$OYPr@01sckhNbD4N/3lOQ4Y[c:" +@7!Xr*#1e+KNpG(RU$7rk5Mq!X?.`A;+_M^hS0%(\l<0j>j1dP+e2.`kuh6N'l$!9&[n!h0R#MNV8VIFqD^U1u4?oPMBm%4\ue*Qp69IS()0k<0efOjOcHEOR]'oS0_4!A!S9"m`'6C9bKN/cLn +aWj8bfho.:o;*(_p"8VR[BeNdm!K(NW2PDP`>USs]=gTS`JJBtX.hi\nAQUi^5%(4T;M/9L2E!\*># +dK]lOdPd#VgG6r\]R46rlH2!@0Y.TG:bfU90*&3CQohdTMc+m_JYWU_D&/u:)DV1dUi_eLLd>ZD1*- +n/Xj+N&g\*$R/k)dOC97O:\Qmm"ATL.Q7)9X6_]Di*#rSE8e5RB+4' +Aq%M&iOoQ\flP*iKih)GTre21[ngm!Q]uTd+5PV5#6nPq:*=6[PamA$(FhHAP<5]dOn'@`laoGto7; +l!=[O.5HYf(%NC,a1e=g;/K%d9dHF.n]Toj>1T0e\mJ"^>;neF!Xf%/W(b?rn=qqo]CgS2Jd+\s#-6 +,"26K@AU,VO75Idl'V%r@f!(!B<[m[?;a?Q!Fa%\4qQ)+aI4Y0D)mCL;`p%Yc3-$cS>T8m(82=dpJe +C6Yu#09V%ro\\njnF&Vs8BAZN$24GY3.5e4ArcD++?FTq)KC547@18L2->QWBDe.lhsQs6rb6?IY(9 +Epoj9)rXnuKl'+Ik#6"gITgGjsX6nH,pY1#ap\iVqCfkbpYj",;%1N+9OkE"BD@9)Xp3SV],*.""W, ++m+c%JM-Qb2#G[\(Q^e+WeD`+W%A,G+`TYANY(q\h;hqfT%_eskD]]?@pNaAj;EcsAC[6r]n6WJ'RN +kONk&hs]:R4AK]2hY-f-/Z9VqoL!shXH0:P.R.9U>jK.DX(:VZk1l+5"R<%8+FQ0?no;(`b;MW=0mr +\=k^AFCN8Y^3@>nA!NA7C9#I0L!/Sj>CGe6)#&ea3e/Z`>g\*Mju2O@G=Inghsg5jjOXCZ8)=j-LBn +dZ\60t??Bj`^GiSktRAE8It#1/6G`j$pSuoA[d?F)b\@QoV%R0btHmERVQCDP/1kFf";K@YJIW5fqe]@f2^VQ9qt1;%XeA"nBh +qNANi#C?nYoONjc85-Zs+M\Ijk6fa,0s9k`uM4s4Z@na--_a(2i]I`3"$2>8D1ifqZW^kc)PO`'>aq +L"R!8GCopLcnc+KOODTHYo7RdbKti@>(Mfkp'tRL@"G31EaW)Q_9En#WZ5o`h0dL'1a`kd_c:'>_KIfg4=MF%GJedHLkXE8Z:8rC6JTrl*ib3j(,9Y8ml.d>:g; +SeNpKOZrZ=2/C]qhCr"UuCS.I52q68ILu<,BK0g5bE4c3mkZ1J?8oVRJ"ea#pE%miL5S/('5o,,pOU +[@TJ/T+OrdQ^GBT19kt68t(8@Hki1E=MPQe-[Yk&l3Sk)Zr/",$/ +Q->bioGik?CL%+e7 +mljIW:7Kg.^EdD%;#pB^3aB3,bG=1C4%Gg3I"/^(4=9^"'je,00n4i>$hKEtbG9RS&>UkC#u[B>;XC04>"kD_N> +D+$<.*RJOk^`34A'e;kJB1>asI3KJEj.J?-es +`DWQWVr62.D>3o;iIj@YfLG.uB$it=_.Ua&KZstBlh4$7[T'h4!XD.++k/q?E_m%RJ^t&,A'h(GJb4G@L,>l(l4(:%67\f,k)fmNeoIJ6DL6-NmAKmJVlgocT"6k9?ofnoTHL +ZWZpkZh.cost3<]uNE`)4->I(qc2=\8>:I7sdj>e9g@4Zt"b]Yaq(,?oup-fI4pK3469)*B'hq%hk[ +P4O3F@@>>FDo[e98Y)!.B;6O8*2ZP"UL?'BY"7p\c=r0NjC6/r]`LP4&l%n.I>WNi`UYJQ.Ig`c3rG +IUbb__#CnN3U%X?E5>fs!6hE$7]t-7U@4N+`k"ara:G:p`EuS)BqrL#eofK\HkpeZ!H>@fN5j)AH6e +kQL2XfqB#$>jdoIci;&1(\Z<(V$7U.9FVZt3ikE$@3?MBW56!DbD:GE&B`e+M,[(&0=Nt?9W& +K[EB(bAF@n\o/j\s(o5_0$IE$(u[1ITlZbCHkO8Iu6`51UVqT9i;Mkt%,`9WoSB;/Xn)A)75C(+ge4 +U,,bk/>Mu9FBmb12]\f'+c;AN.#u0^7:.`^>MXuOs3O[8fWnQqd$hOE9#jfP`[papRHK+1^tbA]0l! +=bnB@W#!GHso60DJUCjQD_>YSp1%W]RWI0K&`DEe +C/q&\_0L1^]CB":;uGYWUIGKnd]F$6&/e@=PUt\#<3`V^2bTp?0>u`CJTZ))gXbXT\H/la">s#(.WHVu$.R[,Gu%4$)Zb6]+I0?SI,1L\9q`m +%3eqipY(_*rRn'X[AFBdZq^D"HpagCkK80eG]XC/I7O+_3E1jd:oAAk4r*p99796Bt`<_B=W/kh>n+ +&RG#.=DGQkmAq.h#LM;H-.RK-5#qgg>GA>7rQjC.tF*m!+bXiG"P:^IdhHsm+0KQ;").@8UCpWHSX] +)=!0G51Ua7].GF/dAA>tio'jlgM54:mrtCJY@CSIYtLjH@4I&XsF<&P$Yi^'N"1g,sbU(CP!qiC)*& +%(JQ-9@QLc5K(sa!C$ +9_Y-^[JLqG06s$uh[EAYB(`i4+dpYn@n^5O3aTS-)iC*6#r]L3l7][q)@RTQGr\ei +/\mo0B%ZUgMPT8uFYRQM^+Q-K#J/&;NqCFZX\+N(sWQl!ZBKfrKcY$"S9kEV4o:'&9ogKF#.7`7Ui_ +c5dmG5'iBKi'\0k3O>n9at((gm3BD$+Sl\O(Y\ +QBL]&tuL/]@h/7ArOR_@D3j0)qT#SVd_9`>/I)iI=$foX,[VB^:Q,Zc@fUB\T<1uYWQn$?s@f!qH)` +kZ#&KAj;ca@RWX1$>Sf`L?Z.[Lg+&Ie`A^N*qaQq&h2dTm6C"mi=`:5nSO&"0?7$H'I=n$J'i]pX@. +u%C7at>"Q[n@!:Roo>H&#nA4N4,f1ZI]jr/=AmQ^8\ccXU!u?&\#6LR3^:&_2MWiXK5AZD'!-V'X6t +kWETbCL#UHWCW!Z8e+pc@1KIa).ocIqcnlsU_2'tTg/022E+(l&?9g,3/u!4 +S%RJ7%kDrJ((RIF;(%oeU_cQ<5Nt5!l@,,e'n\sPY1pf'*NU'8<[:h26CHo>[a$ZQ<%,KDjj;sRsA_bShl] +>'e+"f><<+;`.*)5nM%,&:p$^Hhem>-V5_Vh!c07CCePA+/E;enV#D`6MXGSMC.BmI2Gj*0ghXU7M< +7[rSaU)/2#FqtakQoFqJ]*+h%562c;LRERaR>?AbC-I-SI-SLKD"@3sjOO(SN2*Z#Sb#L)EnieS +;=ep(,?3ed9_5,N8gUc73"Ni.&GM[7+di2Lh^U\oq!)fu,`Ld4M:5`W]l+e`hci$+CH611WZ1VWZUc +-u9H!J\qD0(uT1m5U$g)o+41iX$L+j^M\p)pf9pU)'D$EpO:DEIP6Ci_2_2*qj,kDD)H_/(Im +8JQ)cJ7Zu-k(N'q$h]]/eX32Y'B_7@RHY0t_%BK9rh%*>$UL=>^='b'BC]8B"rsX&LLG\VOh;JUF/o. +A7]!&`Z$Vs`ETQ'rZSpu)'m,%dMM/BH\H2o#pMW78b`T-NngnqEo*(^V$V!EsHFBn"JVZKA'B#U`[( +!C\k+4i_?i)N(>7YaLu8oXW9:0\8N1eT2JY3YL3(t5["Zqin``^O)UZZL"m3pE[p5!PTVe]muI8KG6 +]HV6;4jr:L:q1o?cn'pS_I:CHl\sN0tE9/#/S59oJnOKPSlP@o(EW"f3dI>m=7-^5+Hou>GndEs,,? +NsG53-'#Gp&_J8^lBDb +?Y+5G)h9?s%umH(K"$O.2K]`pZX!GnYN*l=~> +endstream +endobj +19 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 79 0 R +/Name /Im8 +/Width 25 +/Height 50 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar8OB4,-*#@_s$Y%M-Ms3JLM+,'AE0`8-[M@ETkhnW(gs*k+Z!ruEd)?'~> +endstream +endobj +20 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 80 0 R +/Name /Im9 +/Width 29 +/Height 50 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gapq>Taemn(e!=!)&SeH7.gnA"];s*7gLY<4ISe1#_iL[s'?V?hufm(j9jIX[M+O<@k/5'hMH(m*;U +?+GPU1Sp>c-Qm9)FA;`HUioot@7X6_Mg*L&N0??aa:FZj9$(F,JjBT0*WHm&Ya'.hP4BA(5Ig>r\a` +'gs~> +endstream +endobj +21 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 81 0 R +/Name /Im10 +/Width 31 +/Height 52 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar?+Ymj&D$q)23T_&:_=9#TsJGP;hu1LKp:Nr-i)9e*,*@Cf&#"'d4ZcV`V&7&o:L#:pFT_B5*YTU=sR.tc!Il_+4Ti^^ +'-n'~> +endstream +endobj +22 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 82 0 R +/Name /Im11 +/Width 33 +/Height 51 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gasc=Yml4+'SKm#M)5?>$PQR6UiR80cjaLf=(285?k[t')Jm+HX7#)?;S":L@)+[H#`T-K=Ps`IQlR +SZnDI]-";+\5:^! +endstream +endobj +23 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 83 0 R +/Name /Im12 +/Width 28 +/Height 56 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar8O4M\bJ%)hKt/.]]!%l!p:@ +endstream +endobj +24 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 84 0 R +/Name /Im13 +/Width 35 +/Height 58 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gau1'Yml4+&4I\7Y[dkpdBtM61>7`)#aA +endstream +endobj +25 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 85 0 R +/Name /Im14 +/Width 31 +/Height 52 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar:%J&&irs+c0aLE-Kg"9&Mu"$kMSI"8t_q11X1is-.(B41W<_KJ1EFUS\.d.'=)L4@^gfZ]*'%Dj +gnJD:?P-P1mb%!"G^%m[l0!9Rlj#6~> +endstream +endobj +26 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F1 56 0 R /F2 58 0 R /F4 62 0 R >> /XObject << /Im12 23 0 R /Im13 24 0 R /Im15 28 0 R /Im16 29 0 R /Im17 30 0 R /Im18 31 0 R /Im19 32 0 R /Im19 32 0 R /Im19 32 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 27 0 R +>> +endobj +27 0 obj +<< +/Length 86 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GatU79on8p^c,WSWgY7F404tP.Ip'gXK=gq(e`N! +"C?BtP8pj)JO_oJ[1mlj10B_1lo:^1L>$.](F5G!lGOU+hsDXo2(_drAGhg?(BinM`,ruU/B:5+-fI +J1Q<290HH\ejt9,UfG3rop>00CA@&*nh.>DoQL)G4tM_LPO2Sds%S_pq'>l]WH#b#?d:-[^:ad_n9L +ojEY:N\sH@G[%gp4Le@Pis(ibdPJVboQb*t9CgaP!qeWNoe[^QHPD;F@g6Z-:,>DWr%^8ishVQD.-V +6^859".`_XV*>n6#DefMTSk@PtZ&hoi9*H]i`&3-n^`D^dN@\GcEiF5,P06BVP,Lq"$leO^6oCJb-, +&XZA&+pjDVes@2.WVOGmSUI:4^`Mpj&(@:Z6JqHVF(krPo,`f;EK%=ca_j=)Ka=su2V5hf6nVMHeu^ +oa:aShn9i_CB3?RUa3`^a`=+sN<\N"G_Ke&5s]Gj\`"*R8BV3CHta6*Ek@2Tm)[m]?KQs1_cUeLR&N +9B"R881j2AIq-phbVgm]U"@GEt;Dk[U\*5!_5a:YW[aZ3unGq$uc%@9a+nLi,ENj30Ee6lbu^22Rkp +N\mf_C[>b;BTN>,O**AFGX1#F]bb+fS`=IjZ&(p-%VWqplq-1H>*OtD.:1/DXF$B$Y0"/pKZ:sJ/d[ +,1f,6^J-I;%@5+?OhC#[M5cM/.;*Mb>iHm"_9bI2o<5g$e564t:5:dnQ,3U+EtSM@bY7J0IZ$dXFMJ +o[c[ci-?LX);OE)4(gUi?'=gZ$1!kuiXK%Q00C@-iMI.1$ebV_2_k7+gL)<3;Id-d`EW2B?!:InqXo ++8YIB>o4>r,V&+;eE+lMT`2,m(+a^MQ<:C#[g6Bi1'_ACnIJS.3YQ.u&8G$Vm2$KkH/0aUPs0M@r4Y +q^MeYV1r5f\S!f31[:/8<3nd:KI/)`e$hLA^"WbepatQe>^PN1kl_dml\I"A=sJ#ktl4].e3S`,tjP +A7U&ac`.lAE:PM)fJO6li_]Ql_>]rq[?A.H_"\!g$c6/>3lZ8i'h_tg4p$;OH,Og/JAkf,)QKZeV`?s.X/QFWM7),"MI8+0?^b9$'4f +'/.>(lV^](A93ef!]0TL/n)-ID3r2>.DIsCr4L2l%jY(!cc891&I(7mDQYn-4p5H&sK]I)WRog,#c' +)`%(+bV8\k7Fj*lqJ&;5pAUBrg/\'DA"`eTT0JHj7,HX1td: +NE:s>G0]f;i6h;oR-UALqX.b:G6]:l2r"]8dMq#Mc&tS:I +C+if5(nX;+4(.H/^c=C.'^OJcE)JS';P5N>r>=#lmju(Bm-VrRU(]WnHa5g0 +l1,4ln'>,1Ea\lR9LKllNg0L%0IMCc-/a9^E8M`pRIN"DOK'=J%$:^Tc%q:2TQG5U_\!#VE>*;LCr +O0gEDYm8QqN:Xp'E,I09AY'TE'l]%-%-o,FT\1%?4?D-WZCi.#g]X``Pq.:)2fgCPG%m/H,t@J[&%F +d%>kpPAi4sn_?mj8T[)Yqd]/83A_#7A9fLa?/Z$YR[E/-]g0+ha\`mQ@>?@L9,.H(O@or@-HY]HH>,\\_KI,MAb-A(^:S3)'&1BU60QoUOKV<^U1@EbcL-]49iUBV> +c8UB<,L_K9U=e]o$7?r^uQOZFlEm"b5R?h_;#Z4XhmU%66%oqT4hu(9P)$ioVPP3sg#[!;lgD9:@`( +8+kW5[tfe\oQW.SdL?sc#ZCG\Wnel3B6hYYr=$YO`3sX0gb9iebfq4UF-3A@N'=`TZ.9XuX*8Bl +Dt[-A;W@>BOj6jA;chJd89q'u3eCMO:^q(%[eUr8UlL/HH!$BD'dEM1bQc:F%.-np@1a'lTeNBO,\k +pFR>g#Y`r]=S*)hk_kU8WT]dc8iCrl!8VntRo;%@HlOVj"+G]XSV^T6>c\.TduZqRhuMYRWEFDlXlSKE)j)@+ei! +&ABnn)oSqI*9L-K'D7[:"!nCAp4QQo38K[JR_\p.KSpMOFQX^R)B=mFIbuX4I8Gdj7'2lZ?h4GR91a +/DG/5/?c=MD(?r`!o\Q+q>Tllu+[6nk'P=$oLiTh`.^.JkR:i3N/M^4X +C6=s=e7/e:jO5:tT,&mU`D_j0\ +*Fpfj`1@EWFnPu1.l&Qkbg1TFlmbd'2ph0gD-lKs9\Q2%(P*2rFYXMH@75SbJ,j*X*[se/)6R5!'l/ +[9\G<:/(jX%pCVg2FqPN*U2f7o3ZCA$h1#/?tR*O?toW,DK0Xp@g4Z/b?`ni2%L3IdBWJNN_$VU +J'D$pfcm,6JPM/IeJFZGZ+]@q7f"-l.dNR,bh/MY5Ob%Y_q>.nh.Jo+B:7Y+_f+`_*5s1-$.\!2.iB +)(fn.S?gVj`Y`%Qi,noN\o8tH>ODq,#;4M,cX_u6T#L?BgloqVXY6[/eQ`/U8%-hURVWT<*6l.j^;] +2pZgEPZS!9%*&3MVFpR6s`X^9$MhpF[Vm*te(VYjbYYu9,IA#.2\JR:M`td^I,EdIZ%oX]g\k)'ur2 +XWlf/9Z'N9hm\I1HY7MMK8Dhm0*?>u"QM3pu.4I'Jm$-N)LsYl$u#oRp3r:XG'\_j/a1&ai&b1GppmaT4akUdb$fUQo2l)7:hYQ:"4^s_5A +.I;5-k@Z!!=^fo-a4\LkmJ<)?r185'=??7;cbUXp;>Xsbr,M9@."&d6MECE1E1CubSB`O7TBB!HS,[ +aSM8K:P>u6P;+4H?G[nkrIch5M\9$W#Z$-gU%[&hVO +eo$AT+?!j/'^2InLg-8?j[;prAURCI!l?6rp5d)ZsYMs1g&aO[/Nk5)%VDpk-g>'GR=%cNeEa4:>:, +ng!U$>>]2Y[DtE9\c^UnFk%P^.Y.*M3!7d@'^Q=J*VG03U^e]BEC.gKsbQc8uO=lRkL'COUfA^K?RD +/F;9I]Q1=P06:?;dF@/nI940Cc:id$(WO&qPg2F#BIcuXB8$MDq.]&:eZNVU$&50&!Ki>&nTg:8:SV +3s7eA7G,FtM55NjXC/qB1t>8%/>YEYoE\]Z-@ZO=!/r2+?&tt:M,2FHb +a3;AO9#J?-`63LFhCZSVl#$h#4ndf_#m=B1)A)d*;f>(6NH=!.1J6fITD,?oFX/@Mr$pgqR+8$l1r> +D#%PfD3t$asf)GC[U`aCRXj#_hA#X]R@3Y8&T$=2`A.=jZ)$dt"hO!`'jZioJFOBh=C`K:-Qhm[qI9 +cMX&+Vh>,H+Lle^&$2i2rCd]m)ZcYM=qU?Td5F:!mFO>K5T7O;/50dqr.RpK'a.cG\:_N0"r4Pb$JE +$*Je>mq[R-[%@[EYjBsaYD&p*'oDZ(MOh9I(kD^=B-Om(&&7\oY6Z'Tt#)ZSu=cT'N2Nf!k$6k0dmleGGQmdZO$HP=LEuQ'#_tTb +7WI\bOkP#G"3J3H7$dGe0j4lsg%H;A\H'8FFn-6E57j6lkZJB+Wg@`i3QCre<([%Ul6Y310_$Hm$Gs +Yr0qU::M)!#AQI^VBuFI<<4X#]p-N?`sHC>dOsbVE.GOS/(H8T[9*/kl#^_ibO6;=(!fGGoJ"THkjT +nOV,5rje5nGbe\bX\c:R)D`p'95AA=7'STN&[GOl +W8JF7#l:]SP8#c$$L=@PW9fb%1ST\jLSl)#%ba=Y&N7lPM+/UbI,(Yn2D(&d-C~> +endstream +endobj +28 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 87 0 R +/Name /Im15 +/Width 13 +/Height 83 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gb"[2j$+B0?l4jl5LafU2(DW5~> +endstream +endobj +29 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 88 0 R +/Name /Im16 +/Width 50 +/Height 4 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gati7%g!2Jo)A_=<=]ZE!-//ZB`~> +endstream +endobj +30 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 89 0 R +/Name /Im17 +/Width 10 +/Height 25 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gast+W+Yn_!/(SBYl90s!`k]V;_dL;W^lZ>3!(1E3H2~> +endstream +endobj +31 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 90 0 R +/Name /Im18 +/Width 13 +/Height 83 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gb"[2j$+A9<")7k+6kleLb:IA~> +endstream +endobj +32 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 91 0 R +/Name /Im19 +/Width 30 +/Height 59 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GaqLR0b2)D$qB1t0mN="b!de"XUJ(Dd5VJ2LTZRW/;OULl0usd+Te>j36guk)-u#?M]_4N6W)42KAM +j'q82,@=!q5q+l>,P.1Z,nHCEm7CGT^jM2!K=/g"4-Os$V2&\Cd+2YsekLCGtL:nQV]'95hs~> +endstream +endobj +33 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F2 58 0 R /F1 56 0 R /F4 62 0 R >> /XObject << /Im20 35 0 R /Im13 24 0 R /Im21 36 0 R /Im22 37 0 R /Im12 23 0 R /Im23 38 0 R /Im13 24 0 R /Im22 37 0 R /Im23 38 0 R /Im23 38 0 R /Im16 29 0 R /Im24 39 0 R /Im13 24 0 R /Im13 24 0 R /Im12 23 0 R /Im25 40 0 R /Im16 29 0 R /Im12 23 0 R /Im23 38 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 34 0 R +>> +endobj +34 0 obj +<< +/Length 92 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gatm?>ArT2'n5n\R)]D5b7[8"qNbs/D1DV'[KcSic%E+VGgt87Z]ZZ\rqhimcUC3]eddQ;=^0JHE\? +8F^-g24]3f_gmXBDnHh\_,amS\<=%--'MtMSp_rKu68Y[hrG=<-EZ.qM1GCSk4]pb\aG)u[:'2b#$o +:CF/+8[=Dat.U0'Ker:pS8]':N7r*PM4d+a[i;WrG=a,PC8fdAR)a#UREgkm,lHjfKF][lJ>3me30h +$q,2FmnqUf$b9,#8rO)$bh/iG.F+$s0KV04 +R5WIAM2jqbm$D;S@L-TBbg/qW*h@D +(3S@?6:OD;bn*BjL-mMsZ%QQXP2C$I9B;/]pLLb\#7Bf8T)1"qM0tp+V +[]2eG*U3cINZ_^a"*=cKmB+>`=AAqA$E0f\;ZeN6;8m^!`(13mM7f(ujGRt.d;c0j]]Mr'JM@m+H=Z +[[#/&H,Cfaf%h>&+dr^@i=a(e(qo;-iN,HiU3&A$rfYa@%\bS%-0UY*iRR82?W&D,Vh;T->>mT%J4L +R.AEmloao]=l\I!dn&HX7&[T"+iBsopE1]XG/9^ce%gGH +ALA$tT?L?AYE/jge)%)oALoVbX7a?$L!ZQGCj$=cpRYptkQCSt=!]H)sdOlgbZhH^Oj773jZR6aA\d +MI[/N'gc^14H/ZT4M:jD(6D?E?r\+F1?NR@N-gmkHHH@12\3AlU8&m_Of&:3afC][Bg/mYVKCX"l@*tqbShD'Sc[OatP<\"#EEnZ4J+jj=^ah=+#Ntm"q:*oJ\ndu+%U=]kY@A.XKZh8Sr +MWg\1%kI,mGEVZ<3:+T'@]!.g/WklV@%2oZq9@h:ncZOo(ieDhc_4ND8_@`k>]W#pP[n%0I!\`@J/( +f8S^T2hXkJ\ZiI!`o[c+;B;.@+M95^3e_\OL?Fp@(P'/OdE*163:9Ln$I04#AS`JP$(`*\8:cj8qtS +9/G7I60h%#Y^2UM_L9-'))>VZ\7$^A`sQSQ(uCMG +Sip>pf;[.Ng`UZ@("',)p1$!jZ2?]gkM#m`s-o^+c@X18`A''SXm+E6Aj4@&5,AVZpmVZ:"CO9R\Y)u5IE8aPXk8Rn%>bcGmh67,U#`5D8gEs +=:;J&A,N'OpdBi+=t74>P#UquqIsol]T."a97,!&'OruI$'+nX=Bo'%+FHM9>bAJ +Go/g9MpQ$9OTUH%iMiYpgaD$;L]JFEQLJ[?Q%$q\F;d%m,(hgbJTEetBnj[)1#[0D,TIk+!Gc9dmlj +>G\A[?!lp!:@E&R\jV+L#pGcOR'W#;4]L!_<@XNA+5Of7>/LuTB4bP_r^]gJ1f3\.n,-hn'Ro15W-& +prokfO&0WbqIX_;&H&H?b^O\Gkla\n+1?te+TE*F[fWeME_+]Z-*?UQ^16Vj_#Ni.4$m"VBKbeqf`B)\5DVeNOh.ZGCj890@Y`th +^]bXUfR,@JG&hVb+c=7s(,L^U/d26n;5m.%la0]O%+[cOd-,p5.&JW+FmZ-CS7)WIB"b*mDr\XS?AG +M"`m!/1nO+1L2MfN*AI=sMeuQ-!srYC&2/rZb&lO;(>D/X)Y$Yo[$HqM_bW3QZAgceOC[C"E(Seui8 +O_pR@FYUd1COB*ZQZ9?QM\oME(9Nm9@`HDZ'e)Op.o83:sE=Q1aeQ!dR@DkTd;>j +Cn>q]eXs2DI3H67NO]nXk>01*^D',;$p^V<"^hU[s:q9S;T?*jGrFD+iG?^p5tk(#fD_7/;7V!\6KhRR"b +W"GH#@80pBd;uP)TD-Lf3N[\X4#/l)d\.&*g:n_9P4E=Rr7hq(GM(jT:M;/$a/6Q#^End./Qb?<'K' +hbU@+&ZQ1PZ^_W(k9`MPaLFa1@mD/`hqN1Y5EnRUAn>nm%c9DS$Bi']I+2#n31KniB*o`D=;BBmKZR +lep6#+K6QIV;*'":0M*BLduS*D9EuG(&:6rpJI]PgP"hRh-;WGcZ7Q6h(*VK]e4:Y3e:2E"1.8?cCs +L@QQ=tL7%uSI,e)td9=sPEr4)jV']S,9N`1a>;Du:U^Ho4LXAT2KSl#OIJjqRMC<#.8R",O*ha4#C? +]K/,293H0EcJ<-=hGld%22ZSX!QL\T'&qqSd#X/FFJ,-('CX<5tbWTXq*^)1LVHsX=R9POC3@ER/g> +W?-dgr?6W'58.Oo[^\$Au[%I8"gkTC5YiD,Rl:N2l)H!W"l^OT[S.IY/8a&bKPmRM1CcWCUnC0l.$C +a$05ES:Z_u[0*o+m,%DOgJXX`&FM7'1C=hsi1ID:k-8`'on-h&phC0tK$D\*A\l>PcTB(-4:dV&O=D +e>1;(h-a8_aZn\29<&h0A@M91,ektHk/r8s_/qVPd'[s;K0U+HW@OEtSN2.L.YJ' +Aimd&@hpekW,NY5qT\$p+/!<]c5T#[AuL"dGW9Eg=D5:W[gV2/]Q7e+3^i8o)l8D(o^t\LF#o9(mH+?Sm&blDf''fe4lX.pYe;gV#S[kaf/ckqR!r8i +sEE_#^/IW^Z9S%9IP:U;Nrd7W'1 +kh9Ir+SXcZVX\8J1e^`%:I_[q(Xh='*Na$fZEG_6/ro?t)T5XeGk?h>?h=?h#B*>:%UW5clUI]3L3GJ84&m4s/`Q!"6b`!_8[T!YWI&K5T>W4[n/"`FDEj:3^CSp"=V(H^LFc]%l*FK+(gr.X:Hd1f< +ON382+nT8Wfq%2,)1UDiADh8mKL(t8Y[4mpNg8)gs!k/_Tr*O=]SF(cdZBh1''RPjbkWeP14/a3$4` +N9h/gmmar7)6js.o_(hH*33uY[-j^VW2YRDR;FG'`E"ub.[DVeqC.5"ULfQec)@hGUerFi +LLc,f>_kkE!!Qp#p/)N0$--DOqa:N\CNV4dLOl$A-ap]L-@L_`3Tupf]q+I',n%"jAOfg(,DIp`f\$ +MsT";n&QFU$Kh$VWPAO=Z69`m`J52o%6 +%T$4glQ0YL?Gd3F@LRS="VEdK99%U#6\$*:\T];>OH^A`nc%W:'b@'ecF!gLh]K)uhe\4r!RrM:+;,m'9E0#A'BtBH-!AhrnlBf,fSFg5U/Pbc9&LHiZ06&e"*C +Xqg&q\TZ[U]^pu#Ol*U[\f;a9S^_[`Ok[[&31SL3`[4r.c;%J(O3k9SF3P*c2r=)QOT]M(hRN7*`a" +&K.gV%ip@T9jBD_O8!/EJ<2U&t&$U3^OV^VT6V%_gmp[-H=mS.GO#4Kq>$*39_,EQeRl>%4DB +8WpWYcV]O!:5N"l4E90;?o6qj"M#oftgA2l9Z`#3NN9qMJXmuB\L$SLm5'AHW[c8Q0N)!gZ:n@J;L! +p*bH$^81P"kli4]W_F\D"ajik\TKAEf8f(1+Mfp\'0fRbL-#)^_FbD(6m?)arCN!U;RGl]%MnWA(r5 +6sg=,iZGH3Eq/?NZs"4=&dUrRIo(lo+O_c=mS'/'U2oLs7+@;]qC'%5t3oX'p*Z\a)ll1hNY*W6C)B +@L<_tJlhI6KI"!hB'kUS:KG&L:l]*D2h?;C3@aK`uG(q3b4Pe`$EETaCJV@IR +\Nr(;rQ:r&^@G!^L9YagZUP)mk"#L;4Z^O80hA6W\k^fNSI+?k!HQZW44LR![ +Fneq07."IV^/hbQ=d[^Qg@Cu8cKplpPs^SPpSH)_u&lrK6Q`k%be$>n-=$8:2<_OX_cNn,hhhNRhDm +gQ0c4kU:Gr#WA(,`$)6HBTE"cWnFH,OR=P!gRWaQ@oonuON8Jl:eGf$cp4qVc!8(I_>>L`t8FJ5S^LXi]j +lIAKnHSb#uO;6Xl_Fon3`32h#ET$7?SggeV[E65:*n#YtO>-]:O.RMT_r^\R^N6K?eFQ3'Uq6FnB.\ +[OVtQNa.0gLf-Kk1^dCN+pX?jt6`P7Id<[2diPXBZp"7men$i~> +endstream +endobj +35 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 93 0 R +/Name /Im20 +/Width 35 +/Height 58 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gas3.Ymj&D$j=pE'U1-[aeO*eO#Qm8YXpqY,m=oAkPl6YU,9'j`uX^R+IfaoJQ3\8k(,;97!1'1NWT +om5qa.]L(?D5rYPT'gtja2,MC&_0)4o/ip#^\e*1T-PBElbFKnRY,iXZpZ#:2C:_E(Hg38RfiAU(.W +Q)Ua'-HbC`gj=NOS62*?hT.Y(]~> +endstream +endobj +36 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 94 0 R +/Name /Im21 +/Width 58 +/Height 67 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GapXR0l"W\'LYFsU*dhG_Cj4N;Jrbl=32%PDIJ?AZ3YI_*C6M0JMZo4mD9Abqu)q$XPic.Y_sOdY5k +8+qPc_*d=Ba9N[HM\b]j,uo"G+]"Y6`-o%OnGIK'K.]&YRJ)fBsm^&m?Qk+piN:GujccKSkZB"3m8j +_"de-bYXgk.+.2ZOc;gpIfhoQX5*9=$Ps"=*b1Kf0Ha'B\;DQjEF9jdV@?D-DuQGaPSPaMV +_d?7B:@W?"U&utRD=J^5E#KO[*WSNL&A90MqEB77XRl-UTQ@lL\oj_C?L(Yif]lMkJfYa#m?FCjIN2 +k1[8uu1q\moh)~> +endstream +endobj +37 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 95 0 R +/Name /Im22 +/Width 35 +/Height 58 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GarWtYn=kr&-TdY'Ti,P&8`hj-!)3;m7[6f#RM@.HTX8cTUcZUN^nmG5b=cF7Hi0=-l6AV#$qQ;K() +&]OGiUnpM@L],K^[W1/dE) +endstream +endobj +38 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 96 0 R +/Name /Im23 +/Width 33 +/Height 58 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gat>N0b+7>$j=A*:-(=)q#H"":f8G(/,'0=](i7R_NcREK\\.DJrXFmHgRAT"3bb;D,Z.JZ*T8u/jL +=/QQX(N==$Tfccj`i`r!\A8 +endstream +endobj +39 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 97 0 R +/Name /Im24 +/Width 33 +/Height 56 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GarWsYmnQ('SPH&Eo@K]&_8\`M6uYO,u+cPfK=_!>]8.gj:VbT[9-d' +FohRSdZ0'32Nh\[\;88WafUnL/30#e-r*_hW\;\o`m$Wj8 +oCVlabqQN:MWh+&]&--1IiG'05lk1;OR~> +endstream +endobj +40 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 98 0 R +/Name /Im25 +/Width 35 +/Height 59 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gat&EYml4+&-^F!9VaDq=qFuUdRmP["?(eX(kiRW!:QD-Ts0UuYIWH'gE:D^#I-;Pe.R0Q&3+(5$#! +ehN5UY\km<2;Td+t.bZ7,qOdN`U_,W+JVF(="3)uAMf$Ig>n:.[TB9@ZG&0=$o~> +endstream +endobj +41 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F2 58 0 R /F4 62 0 R /F1 56 0 R >> /XObject << /Im26 43 0 R /Im12 23 0 R /Im16 29 0 R /Im12 23 0 R /Im12 23 0 R /Im20 35 0 R /Im20 35 0 R /Im23 38 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 42 0 R +>> +endobj +42 0 obj +<< +/Length 99 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gatm?bDt@9(>\^do[4VeA;SfWFq[OXG^ofMP6S=KZV[XN>oN$+Q;m*.?U#gTqiJm^]:C&P#O3dr]T7 +-Z]tF%6mQ^H?(pS%Eos6$)fMio3Il$X'XH+NssQouB#_\[J!'PP<\s=H +DUL$tNVqa2=\NA0g,eQZ8thBc>"Uj*0'"[#EDYrFV2-PO@/Mc)%PE@?NHi,1=KZ@U^*G1TV[TO9Z2q7?8lVOp&ESQ/2#XGNsO[(dBUr9Ya.k;tQ6!!`)+d$G7Vm7%j +]9%sd*4YJ)LUnpIjW?I?u=WN0g8GfX\N@IW;sOaWs4CbLYm7;CE=RU+OjHqhIHCR&B4ZEAk +5d%:b+NA0g^<.bGd;COWj4+8X\C%^8F6V"K>`f["50f,h]k*E;d`dk/e:`F%0BB0Gp0OFFd98.%n$O +D;Pg2<;shM;1BW3o37ot3=#?]+="4Wb0B0E,2eE]RI9=Aq00YdcnYJh`+3S/h@^`O39c0^:\C+M\jO+> +Va`$d`$2aCfbt[RqMZu'j*>of2&hSd1-BF+8@G'_8^4CG.SHG*8c/K5rUoP2nlHqWjNU7" +CNTh\,W,n89`8X@m'g2!TO7mTH&)Yu[\XOVn`QT/@K&NT)@"ECcrI[uS;V5q@od9t?lJr2a\u17eud6j6u#E)[2:YJ,Z$AGZM(p)nPWdflIVHt43E`l-i],ptXV7NG9HQ?Q1PH6:q$ +U![+0/*)/6&EWTibIO/>SlU$=dm*,(0&Mb3IXf(Quscr!R)@f'D`jnhj^Hg^!uDFUbV-fui)pV2?ES +"\W+>N8:=]l\]AV9NAoQDD%%$69r>&ZC86;*,*>Y#/bUOkaOeQ$7?65f=?`KK":^Oh+B4-Q(3 +p_O;AYoY`]dO,:P_8cki%(W$@*f#>bAp6Z%rsgBEEfhR_jT3Ms3Dr[J_eoBikSZ.XCH$u4FBEuW/7p +Ts8b#c@&F>m\#lp99?)I%:K+C#L9'XQhC=_ol)7B2@>=/KhbW=f>Q/WulGM<5CT$Jd:#LWdm]-&m9qDDfOcq6%cX;p<".E)5jdsNl=L +2LmfkA_0,-MSimgkcdp?InoE^ioi[>Q!8o$ZB,;9/1BuN/:UdU9jD'464$ +m+pgQ+DZuJ/Gnq?a]lsNMsT+?aT1L*d&:d`c01@cKcaWl($Yf9Yu*R!sd2)Whgr^*n +'LG;D:pisu*hfPo^b13)-cr)DcV0"#>Kq/Pd_fRpa:LmZ7o*b$8f,\NO-g\NAE0&U\H^74b-A4LA6a +m^7Gneg.RrY7)VN'\4L7 +>WbnNanMH+I=ggUl?@r[*rM@(M9[uE>iH\V&mi0Mp(!ONu3nY-%.Cs*N'F/EHG=/Sli5$`$Io'Uq5' +Mes>*il5(83Dp4=r\.Lj,UWANA?HZ+b>?PW%B9^8Nq6_ejLbs"^&_a&u.8n!jD-\0Z*Odb +bL8GmA$'n`D;:ouu.)aaI*E)\J]8j?'R(gk3"cc+oQ1P;O4$KH]9kQolVaFOd=SuY"Q`.&+:2!rldR +%FiGYiVGY+0kh(CJt8Dq'>S>3MVW#i@E-/b,q`X3oH-#+=l=r!G>!5IdPUHe#SB`bqD`<+[Q#e?X?5 +[PG+ObKq3=`Spo(\6p5@u;StHe[NiJO9OifZ=7fHH.bK84N6Ll\Bg6>bDM7Y4)8MkkZV))PY3W +)<<:5?D#r4>-;K5/fRAVb6kT&3tBtlMQ(Z?bub^!5jTet3[JARi!P7b,>eal^"Sm!lO"ZQ-sM3slc_ +>)q/0?^aM`5mJqOBZa;+i?J,S)?@;$7ba[f>;hh`T\6ud)?D&4X/7J$%$Ts6*W4Ii3tE'66#kW4.F71cSYAW0"$fX=;qiog)4C4-epeLrD'NfSoPn"q1j\A +k^gL=u`XE7[J5%F+e&UtX.k0qNUc%M,4i7+_Y:HGEaO2ro8d6)75N%@;a*j_6_JA/Qo0EWX:E/Nh5Z +qVn&UX94F:Yi8/C3/&r'@bZ%G7.#-_%]B4bG@m:Yr;Hf`HuIZmiX#NS$$oE7iT=T=#.CC7\qd]_!,= +l\neJV2JaJ3%)Z0I;n&9\.%`Uu.f[&^@:G;!LH)t?]37EIEN6A!m&SWA%%'T09Gu,nYWpq2%MJZq&s +adc4[lTUdFgAXf5A2Z$L9LgX9lRmU2jC&j>^UGf,#F"p2kV[c*Go;\]91F'0R-;CnqL$Vb0]p(4*QT +[H)\%nVA?BJQTT1i%KnBW%\N$1*!TelF*j-=H"k@rplb,Ub.O5*3!C+X>`W*IoZs_=\0t71"8rNYFj8R4L]a3dAi9D0aE'&WV="kU^cY#?r(E>FRZN$`YGS:ltK1"2ZH4YC#TGG-M^bZ6'oW +;?9AfW[BL4uB> +(.IGY0%DXQlft"hWblgtZP'rqbO?X(M,?)N9OD]"ZUUDQ^>XNAmT%V&"l3+9e-c@"8+8L +$0Y)>`@9ejP/Bj):Ig>E*_1Rb0ah!9*K!+8l:+4,?Jp/(gu#Dn=Y0[f=Pu1TB=%I=HAl&uFH""oIE6 +egKLsY10@9CTK2V:8oP+LgfK@9YGf9TjF%pGcOWTb.njhcH;pfI.7Omh&43M5Cju^kK[q5g +Np#B'UucP._4#4$[KnuiI3]c'KNSf?DWY]Ju`?h,"b6O$J_7$ogfC6"iU$rr.ZM'chG\5!C>u2R:lG$6OS3&\(^dM.Yc$4]V<@bVV`Cl[aOUS;;g%)!TM+=[3s@@%%\#[\Z +hjPC_E",CnP,'b28]V$=tPiKeZ6WW[`-GbY18E)/oAnhL:m=?jI%PnKqUIO"A+riu(`^c-q6F0?E#J +U*&iq?%ior5%k+0of"N1*WTW(ZAi<8Hno_K0AX@k[&c*3&05*n$. +_*Bo54q,;\u(Kjh]26>jNi-%[H.ob?ZHrrFD@n*g~> +endstream +endobj +43 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 100 0 R +/Name /Im26 +/Width 59 +/Height 57 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar?m_$Rn"$jG!24a? +endstream +endobj +44 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F1 56 0 R /F2 58 0 R /F4 62 0 R >> /XObject << /Im12 23 0 R /Im13 24 0 R /Im13 24 0 R /Im19 32 0 R /Im27 46 0 R /Im13 24 0 R /Im13 24 0 R /Im24 39 0 R /Im1 10 0 R /Im23 38 0 R /Im13 24 0 R /Im17 30 0 R /Im13 24 0 R /Im13 24 0 R /Im13 24 0 R /Im24 39 0 R /Im22 37 0 R /Im13 24 0 R /Im22 37 0 R /Im13 24 0 R /Im21 36 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 45 0 R +>> +endobj +45 0 obj +<< +/Length 101 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gatm?bECno(#AUc-nF%P/Ik@&YO"$Q-^drE&j)ZT,+Sm+YpIC&W?J7'4's'0`-kI433Cip7Ct5f#i* +J2kT=T8-FbT='64OTj0`t='s,nratiqT8,C^';6LGC +O\8n@??5K>q,[AE2X<@aWd!nrMQsWG"8kiJg/M-nt4*8D4f(jbUu*4?'?J>/%o5N!qr\\_5t?I&5Tc +;lP!q,C)mI\'U`T_[_KtK"Fao_Hl$*X8J$c$Q%_M'#kRQ"[(iO!IYMnXEjha+5RaQ/Ni,6mXP:#:RX +[u_WAiYC2iC;0=_\aK>\:jchTG3`#:l:JJ;9C,m09O'[ECgGNX!JgO##GrtU7f%a=3A9R9`3K'dP.Fit2qBY,;OU-?i/3-P +"\OT5^8fod%%rN0?3UY(&M1K]A4;ZhNF`5aKZ6">Sm.\ee1T%QZ+E];0!?\(u1T1[^l$b1g27AMZA1c:Vk*=f^qDpf&E:O.25>XXNXh;_OKJ-7Zs&kJT":d +>_43sV8h\>tU9*jJmM2eu,:Z&N3i7k(PPDsK1QkNK0?j#6JtfVPSI\mU +E7b^Q;[:jarsW-]`(Q$uYVd\,*^D`uK)Ok*N66,`)1fdcFk'nC((ke2ZTZg!&2kgsI+^H6"bB3Y1s# +l0WEFJ(*j12PPZW;>`($SYp%btK(bAgKktZA>$j#c>oa(4!uI +)g<_<9=V*+qrKGV\.@7J$rR>+u-\?=Z`0A=in+G40D"s*Q8=D@jE"+E$]ODn'1`!dsE2V`)]DBA?Qf +Z5@Q/%4heJ^/6Rhh=5'Cs&-FC:i=r^[O3OBo0B?"lB:IHeZ\:gL#fjS,HeHn%oSXmoJHC5+41KI"i9 +@?GXi1E:bVk`(HJ21L/1moN"0Wl(n^u/cGZ?ChZ;je1O?pm=3n`$CLdpFCK?=$F'4+09m\TKW(j!b? +l>b]u]0j&sO<\2%#5m1eT[RhWJ,4uF,lu,24^"t#"kTbB-p&oW5GQ:JB4.qrDin\I-V4DWM'?PW2Re +,r*eP'sH\06gLJqGt+kg>@njbrWbgA%#>/um=C+iTO&TAYOM'mbcFHk48mp@4+io%<,8h*D)_c;ker ++"m75QHV!]S-@Pl;j[ZX/s`poJm???Ql@?9Me!k,k[i88jG\b.d[$[;nZ&MH+^^NI*rTTeQbEs$N-* +f#bh6R>ffsckTj"0QR\D'a+nj\O6WY#FUp^^2q#XbZVcjRNH0/&]29Qs7cN9a$DFfs`JmQ".UFMsaf +.&3<7nQXD[J,Y_7D&bX.II/3co-80R0&6O!6pfl_1o.c0E`9n0h/lNI$.B12DT,jYnjD!/P,G1dodA%*X%%5Q+\?@$8,B1tMR/EPcr0nc1R0baNO0gI,6e&67Z3!9C7h^XqFu\Z-:*mLNW* +:3&/0.4l:$!7@$qfWDgQLG@3oJs$Sg\i!sVTG\n2_0ePO,'[#]'PZ;u%-lRF:kio50DYY6m)s,@XlL +XANu-K4Or(@S5`]JVr^SW$"*bc17I2cp](EDr+,ifC'Y+-hj@;9&0%;9#Th0s_g=;;NHf>q&^G3tXr +TF%OB1oKXti8Kh1n`M]V^"#`\JlKdDV(^J*A)^H\n17]*ir7)MHCg*(/NI5PP.![F/@4A.GeL1::?Q +.uL=s[,BSrjR6M*X,WK(5KY[G;U]oX.$*=E5D]a/GqN"ka/nE=4'>X?Mr*1M+O(#N8ioG_Vga0IS18 +K0e#sj&2.97N4H?J&EN +99?j6A9,_U;taXld=P64d[9*Wb]b9A1R)3Pr_jaNOQ,haV) +OUMN:(6#Vu&b(0jaIJdUN7)_Q)hK#@0NDrG!`:(!/TtFfZUFufV"d%H5A<(*,)/#3Q_2:Rj5lo'2=F +Pga#'Ii=*;NEt!6'U^k`IVYJF(M.osXft_(Dm8>Ui(\Ub((_>1gpSW$5Oub'I/X6$0,,4Ukal*OZ8@=\9)B>%:CuG]-FK)O$7K%=dg +rM*M(Bq'J@[YO/Vu<`9G"oU"3+*Cog=pHjV^saM6T-Z`"__8a^PYAJ%#m0%_B2?_j3%oJdu7+,BReK +#[n4":F+m?V7\""=3R*p@gH%sfIN,"BSSkPDVG=$dD!lo)=o09-`%m(3\c,A<;80'h8QM;Ud-T%W$I +*!>#%YP"'QenN3.^ +/k3Z6TBZJ5b(?,bI!fk`)J+g%$[8BC_J*nP/Z210\L?5O[]a=gh74nLhf_Qc$1Z^Z@$m)_l4:q:D@C +Z#Y/#a#,81$YDEXQ%@B$"YF[k#cI5cN=QiW:[dreQV.'N!DW#Obb6]64OAJs>PQ!gP3M`!<7\L>m.[>QFZa4W,3LS_YbiO]Ol'$)2eW`NHD4olP"nL1');$gu.XcEGa-01X(1g]_`g!&*@NOAKloU<0"rc*J1ac\9)@5S6 +c/9h='ZM4%Fe:i]l!uctuq!Ko.:Lj#B48Nj"Cu>=rFF(77>B3UO#l8AGAEa)UM#:/+;@`LV'TkOJ3WIK[0TLgj_9[r*pg,h;iXAX2 +iA$%J?H66XOMlb*_BrsN\ +!TC2?GLFUZI#!phM;\3Uk%']/Gl)4D->KB@mZ#V[cQ[AX;!@4#NKrN+#Wi/fZ]Yol/MKVRU2cG +8_*)lG&l$:uT\0:gcSA%@(Bk^3E!_"b'4qCb?;IG3AU`d$-CUKRo=03MuVXe"Nki<`u>t`-=O=kX?e +)O?(\8W&'7O"=q(Q@<:#(BDDZ=A5P\N=j>-*Y%;2SFW+f"-;qH0q&2t;nB*sbH%rB+I@"_76,47'O"qIKB#'ap$:[=)K^]OV/>Wh`p3AKPjcVn=G7oZ?4r;d*&*R55P +S@cD6U64P9K-8H<`D*>7Fa$8!(K5tEC*RYp+n\jhEhsMWOfeT$H(lg+=C\nB%36?pMK=Yh#Bt:K;YP +Zk=FjJYT8hrai?GV%&Rm4*rshDk'NI*"$23<;BG]7,r.^T,I"GYQ=+Qil#Fk)B+4a7H9OjjF28dt1W +NX)kS/%!fiY0V+Wm'KXCs>_n^>50IL_A&N7ruk)4#N"1r?mf\V_gV2=9hdH*+o[*nLg)>+kHiSrTUE#AqL4?@5$50UJ\%+8,=3Zi;@qZFHl,9)VW5GZXM?'!F,itJRV'&a]Wnpd$In>eoJB& +mohu"Pmcef?n;lB<@Wpd-dQG,S2@`q-h!Hb7L\Jmc[!I*E=DKYB#G56"O0Cm5^MZX1P[0R]5qG[S=9 +WFML)Pn?gE\Gc5m0`53_Z&;PpV]3V*uNZC/Vr)TA&IcC^ipV6f,Rha-=u01)>A`l55gf>DFC$NDXG) +u@ct5q8"JJ2g#_j`Vp%+h4cgK)5b9^q+T-kQ\PR4"F'Oo&rha(p")2>7"fSdjVRmOLaXYa/XcDj$(go/qfIs?@f.o\gGa%+-EOM[3HQ!`9'c?kLt*i\)SJUZ#o\#]/-XqpIL +=!$[a`a_MO;VS$08f2Winmk%6r1Aq"`#Dn>epb4a6I^-N);e6muYiNFlVE/Y9\(F# +0F_-gNuN/LZEe`Q"Z9@m.pk6P`$HB4?=[k3P8D#oghpPjh*^6E1C*XY'o +XF%<4VKA(WVL_4YWq6R\Wr@aB4FB\P15ArIOW;~> +endstream +endobj +46 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 102 0 R +/Name /Im27 +/Width 54 +/Height 22 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gati7%g"u2jSqG@WZEA*5]]b_a*%GAnhm*~> +endstream +endobj +47 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F6 66 0 R /F1 56 0 R /F2 58 0 R >> /XObject << /Im22 37 0 R /Im12 23 0 R /Im2 11 0 R /Im28 49 0 R /Im29 50 0 R /Im12 23 0 R /Im23 38 0 R /Im24 39 0 R /Im13 24 0 R /Im13 24 0 R /Im23 38 0 R /Im28 49 0 R /Im23 38 0 R /Im12 23 0 R /Im29 50 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 48 0 R +>> +endobj +48 0 obj +<< +/Length 103 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gb!;h?'FK`9bHe&\88'8?f$b_=]88(lQp+=+O8ki.6 +7>(s16L%8:6a7^Y;E>W<)GXhQ9nH9`5c#>-jsOm)&(uEYgsK3/R;Mqj@WL-0[6Gd`PE)NK'/%c^R]kS8U3S#Q"X>M9]9HJ!u8ZC38^F.Hcng6JG@kju73k4rLMFc^_3&q)I/BcO/@BL*`mS]r6XAl_k;P63WW5;2PR[]gYX:GVYcX>EhqA<'HV0i'#IC+SW?u9 +6mQ=]oc0\;(kGNkkG(&;)V`V)#%cLT1C/BdZO@BL-amaB,jb)2cSC`c`5/D8X1AXP_1bk5Dt?2@N^( +hKk2B)?g[<'p?P@9KH<$@A1pAG>:t@=kfJ5FUU?PCQTC:o.#4Cr##2Kn(FO0.gaRJoM,Ji7HhTY6UF +G*'fqD!%-6!]TYOPFlg='l%?:U55ZbnPJ;C$4q]CKK<%V7"["uQ/sCG%-A$@;,EeN`Jo-hO,Oc^(ZqH)8,*aPgZ0G[Z30PeEW.!"`.p@0R/rWM7:-(3>&5Q-ogRAeHI7`*FA:"ga.3D-^ +a63-tWJ4*;J6(K*cX_:pTTNNs#:6Jh2Q#&JO#-:@+P?n7^NY:%GoLI;D1h2;WM@-%dV9k:0A5cFR;A +Y9?ueHoBGdb?03+.J)B/][Y[$dW`HJ?g5dcTl/:$'V=O[SDEG%?!-TbF#$*S;X]EU%dpJXk17+]7:4 +=M(mMuI#ubXC!q^^/BNMF*4i4^i;^]Wp[%U5Qb@7B)I,[p0#3nb1#aB%1Z1KcLr)8*lX@m=g-g$bC`I,fr)5=k1Y=A`aE9OsAa5mpo%XI#Q1 +aBB[Dl+u#!2Z2\Fhmd*-$QqJgAcq'S6TZE_$?1u84n&c#HtVZZfR#OSjpU(V@3AOtq/38l5+oBf7,` +5jZ#%k\^&L/D\YZ*8)CDV:q\jq]eJ?b6+0JP&n,W;A0q +gSbQJChBq,-\4%[HTCjQCTb*;WpGNRhI"\h91_>IF-Tu@OSd#0iJ?nHNk],\9eNPV@:\F[76"p-#)" +pAV%cbju5+o'%goJ0a33$-@m8;8gllpN\_q`!#XWXJK?4]^Kb5e>aR+,q-`bKT.*D1FLYZ,!brZ-TU +I*\#ZshW"#1G.!cF@]fR_!1\7I;aTgJB2P8m+m543+tn.`)oZ3tgmRq,oS%AZ)$W><@09%(4\-A)aH +B72\e:st=ZSJD3/h?@cDkl^L=bS?BII07L*-I&J7NE`+cSAG['Ar%"iWKZQ1E4r3(#pC%*__CE7W09 +O0E6e=d4PGKp%OF)PM)*EZ&riqaO#%4J1*6]m3"I=0cXJk!"NegE5S4BOktD_7P%YoFA6BeE_3Ym3P +QZFr>V)lT$/,O]S7t6_Ujru@\'gZG/7A]Y`X8Me8:gB/_YUa;i]fDZbeK#\1B/heaS`)0,4hu^M9N_ +h,VoD[PKp&C2g^E+CL$:#C3/(NH_r,o8mg`PfB3jtF$A.a.IiQ4U!& +4A%a-=FC"\B/FtDCP/>uhM:5377fc.B?TdDDnhFlfm#n_10g7j6t/Al3r=jTFSS-nMtVelF8S$3?dD +/u$ONP&@`nlV(R-[f`#<0[m6gqk_U]8Mu*CZ.#\ARSTkZ#ZOeKE4:1iJ1q3l;PIj_Xl[46[jB'+Lsp ++3+$gaG]X=VNOVF@ah'@<8@$Gk*2&PeY3-Rglp!&MiA@&W9j`+-Kk:=hd;Tjrg2\RPo_Rf6WHj#54&JU\4'L+BmlWk]siSW7!=QS`ni&Wgc+!Wme:B?TJO)_L6'CY^]8$$RgK--N5DlKf&SY@^etu3U`-4#9@b?/oH +2gJXo>9"Lkhu(8SRWs00E&$uTU*3[C-$W'[h=g!nc&G?c,WrU*s=mYVRs8Y+*QNDU="0-/B>BofX<@ +Mp5_4dDj;io@UFP8K8e\+Sab>Rt1qD8&XrLV'&Jo)@Y"_4QT_b'`NE`F6"FB@K0b4N3Z+iJ>';BhmWHKMR=*UAE:P9RPSWDM^N.Di4'II.R0Cj#ZiERo!rH\\ +%epsfb0&O++]bA)%0iX7ep%&To!!m9HI:M2;AZIJfUQ&TSIL$/m?[BP4?o)#m"%r4^@ +R2Y:%MG%dQa1'.%IMk]A_n'/^WX*TfSgl/7jISpJZ@Ahad2q\?jNrJ$ +omL`i[.;o)k'>R+&jg#qQfk>U\_(nV,leg(\.%RYRW1n_mkhc1#4d:XT[B"')$3QEEU\.Do!g0V_"d +[-nT>9bWgIme-(pd[b@?[3iRA&'m*do7E"[Sf!Mf7\SBb+3&P:+&3$V)4e't<2*?8_)^\eI7Y)05iP +JSst7Uk/5nDV?G/lmpVg +X8*83a4eaETrc_AL(n`;Z"'.kj,&kU7k?7]`u-Enh[bc?@Dm1[eThJ6CBkVVNTNA$%r[T*eP_*:I"%JoZVi]lZ^'n<6eCK7Tg+[o2ZrDpsMiHm.?WcOp`BnHb3=P]8d-] +[9:Z/bCe6_.f[4fc:EuD;Tk"1dkq;?ltLudq8M)(q!)ol8VQ,^`TBl)Pa?l[P0$CAdS@WI#h+T4&j_ +![h/81\j_^Dnu!A_`NYB8;.l?gEk`JeL\IP!J1%88tT(\jP=1*[G=8;CK%ABZI*\+Wq7SQ*[8^!k5> +%)sg>XM].uiB +i=QIVFfK3C5lQ7cHo$o:Irplc&5&qRB(iS[#+7$5r!Rm1J$3cG4Cp,$=8Wa(BP4`,.9cY82\_'"'K& +Qh5;,.X?k<]f[<=E_hm=M]\/!(iUq@M&`W'Q9;\mECYTdn>HL;U)5')jI,G[L:2n%O[F;0EMVK^F!' +`.0fe-fRTRA_1ipDG'BlZjZ(C[,ek!CWkM@H,.e2%B\4s!D@[LW<^jGiYNBdQQAJbajX&['^(S+R>\ +!:8aUS!LC1)iM61W%M#s4_@=-9)>OaF/Pd@#iNY1qV[18^%[&Z*pi+6PpgX78El/*oU/fPV<>XBQ.^nLGe_3on,l'jdFdZhUbl"U +I`YJW%\6""c]T:BHk*%p2>Dt7>cj0+LE;o2K7\eP]S/`/i+]F];&)e;DW1B(_+a@+n'M98/D9JeY'nDqDJ8Jo1?WV"7 +oIT3#aKID4kUN%LFH(sR66DQ]GOW>h*B2JKh_erK+/&WM^GhtC*KOEld$=/VGWEgb@B./T:Xu2Em`G +sgnV\X?LMVUlU8Iif[<9u_Y.GuDZ]]LKf3`%H]624NP7!Ic84VR'&(W\F1IO=oO1Qa@pom)h +5W26f,n>rgch;i/P1TO=fiNYf-C?c\XS$*T-)/+5K)j!*,g3ur1>[R@[OY)cUSMo+uU18T:(g+`R22 +gRY=[KrMQXP(PTeH"j^03MQ%:9m!!1/-]n]0P]I__5)a[#.Zu)@21#/5j5WA/BT&>oLA#i];Z`3,4: +JZ,,O;F$usM>buE':p&M>Oc*O9]lkN<0;i=29XYgl_FF,)4cYfe<>8FZ0o:ZC'fEZ(6eCZEYR+eFm^LV +#DZ2oMo?I`fOFo_S*0Gqn%RM3MLBD]dcB1U\Y\JS9$MTLg($>^S=;mZ74qN15nFljQ#*#e.NfPS)q1p#)d+jpu7CY)p:39j/Q-ip+fnLVA] +tVP>L*]G(;G6-fm;_[/K7i&E@h`l^p>`_m[XY:;i9W3Ei!VZEm#("hA!*t)#U2YIUp&@U5pKrMQAES +=2aoam,4N)%*@_Ek8'2bZoXGpqq'[,RCEJjKAFc(tPmP^Ik[2@(r(Gqh^eOU]CQrP-f,49_NGRhY?e +=La8%%O#7!M1C$tFCFH5%7S>qFS:GtW9+m9ab!ANbe7j(b.Dl#3N4'N?G(g.%FFBBAftlZ+m[OJf^t +U0[P\MXn6@3D.?k]@,3`3PWD3UA;,'9N1-Ul>T[Y]5ZZfBi-Yh5\NDI!0n>3-'E1a"-'ZOE'h:R8hc +db@E_6N\;2(6&tgA^U4tqKPLO>Lj4uWHD^Kn.IPXQm\D6Z:CO`pJ8h%kooSFR4dcWOaQL^JbXMNNJ2 +2]PV(,d/iO.NLrHbg]\M]>m=7,-V2b&!V.102$BT^S/?jm_Dg\%>qQ8"qQIk?5E"%,S[*V$;1cLm^^2pAKaI'E0D0U's$W2li-CoD~> +endstream +endobj +49 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 104 0 R +/Name /Im28 +/Width 9 +/Height 9 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gast+W+Yn_!/'qQ1(4.^HjI"~> +endstream +endobj +50 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 105 0 R +/Name /Im29 +/Width 35 +/Height 58 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GaqKhYmnT)$j9pFTe>%A>/[YsEa^(/NS/t0#Ygt9\,mn!,YL3e0p!>4A7. +k-m^P!nK9lu=6MmFM)W+/Jg;&A^?q'e?M5NZ;V+;XPr?)k?%5_Id6)3iM@ZQ-GF=Scr.Z8.U;(%*?@ +o6=Q29)uq0B@o\#=_UE:IoS]?ZEDN]JSncj/TBmo,\g.2[0KU#2?mjm/~> +endstream +endobj +51 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F1 56 0 R /F2 58 0 R >> /XObject << /Im8 19 0 R /Im10 21 0 R /Im9 20 0 R /Im30 53 0 R /Im11 22 0 R /Im10 21 0 R /Im9 20 0 R /Im30 53 0 R /Im11 22 0 R /Im24 39 0 R /Im13 24 0 R /Im1 10 0 R /Im2 11 0 R /Im24 39 0 R /Im13 24 0 R /Im12 23 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 52 0 R +>> +endobj +52 0 obj +<< +/Length 106 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +GatV$6'L%aEl[YJ'Q`'3ZM=b-"Na"`D\H4>/\?1+0(1!FAWIJKBV%$oa8,?.M#MTW7$&H<]8%c\SCY +FoN?9&M-2dT,+*W4Kqu-,uh`dJjF8,Lb]-!],O3UZ'g?.2tM(JQ\mqX%dZXIH)(nSeGTIQBG +huYnQR6&nA>43Z6QSuqQ].p6Bkgcle+** +NCNtRgcjt?<'\"G\/e9>8@XE(S#=bKS`slr?iQY[=1tZWnpDb)?UV;H.9Hu?$N;r:XqtBTEm[TYbJ, +JF$!m64:D;k-t;&aI#hF7eL5j2)$`]a4>?^jC9RW43K&]mC0ElHqS3@goQkNNr;]AAn4:!7g+W +Y=J2?-EQ?J#ueT4g+N.7\mfVQ+09'qM*hg@3?=n?T6?:mK&^,j_Lb-",c2tZ)\V>'C\@C0_W\A`XJa +*>B1bbRd"T25)M^:..?2hhNHBZH9H.K,L%X\;Wb7?015XZ?O,`U#1C)Uj06-9`\G\J!bo;9G@S>a4mLK)q)n%b=GFP8B7,b7;!sYM@R$S3pH@li!bV +<=`?PNL)2%ErQsc"%o'52;4@`cgWNmkF5Y!Ff;:=]i9j4p>[Yr))IIBMV%SBWd=k)(eEa*.IFFURiH+Jj6TIFZ*9f&*,GDlSifgnB5 +=IC*^@mb-L1Xn%GksK%AAElf^T))hRJ((l&-!b#?],Lg'SXh#(n#)'q:MTL6"ZVdClI,9`)mRF=tBrC)?aKsWtQ0oZ+/*/K#5IRQ68RO$3\b0"$N$3kjU!pbZ"WH$u'PK +g%B0:HltUXfNglW?L7da4JO(mh#A`$0ehEMNaD,V^T3]!5QN&Q.$\419rY+roYT!$S8U8)pZ3fW[R3 +PEo]FY>8@f,Wu8qP#J$K?0cRiN=@31Z)&`dFd?(F:`PC/mWB@5%'^=P(21)"%7)%%jp[ZD:n*f+.)? +@%#^m7_+QI3qI5\6aHu*JI`>cf332e&aCiL"iVC[j&<4jB:!sRN1B50bg%iZ?23M7G8=[GtQF.HXC- +^#B0g;[%]IB^LjH- +lTU9S5<2os&7EoB'lO=1f&V1IEKSnHk7'>^1K46/3CZ@7H +8^.F&4$;_s*G>-$2,oIeBq?lZ3j#-o.$Eo]R7pf]P^:0)+gDi0>TiZO!^#W:Q#aCV*Zm\hWUMP5\fY +s`gV\PDKr[9omae:'8eK7tk2fZ.I:7M8)LXOE>'W3u7l=6afm)iGm1Yo&RBj>q94`]bJE"?nQ97hnC +tat"qLZNunA+f7A_!Bh2SAU2MDXAb;oR-/Hnl>RjTEe$9n@3gG87*Iu^'tZLR?tp[l1$BWF[#8NohD +543o2m3rdaVJDfFDmc2-f1lYpiDf^`)9aHI,TbU)WD%V92U@njOl=elWAYO4=rCBRI4V=9d%ml*2.: +g9ke*f#BQK9*4H&.48\CVu)CC&%mb(6pEE7Ugpkfp=A5"q.IamFY`8+!4&1"+Dl0e\-\!9-R=g-D:T +9Z=:QL9jV/9:2U9)uZ'CHQ/BM>P'!bLP86XAN^iCq8\p9J3eh)ZDsL-Q#%MNaUf338B4oqBHp)HZ! +A+s!^U+Cm@Ha\M:D2kk!qF[0p,keJ[6"?h$%EgL"fs"*4'1:HW;V8)@$MC*Qn?c%7ZBcr_@n"@3 +D]@9-+UT\ViC[gG'@e4\TEdK7M4NK]/4Q&djVXq0*2t)(1Qpce,GU73b6Ued,88I90]dI("8g*K5!> +A,pgp3[A2Ra;j=h7<'T4b&/+o]6:R%GIcM'aS'*VMM@?:WnMb`P+j/W?7K-Ft_/*T_IKHL=>oRMiPW +thi!>`hiV,nu4g6DK`JZ#fTP&IVUCb=a3l+j2#GZ5gXlEX85$C5@U_Lif@7b97k2*8o49WONj\T+<[ +YU6s(-):Pq;1D'*.ELu`k"qk(aPijk:Zr.Dhn^im-'-RWXKHQ!pZ],f*MRA;-236-%FK.NpNaji +rZI$>3J`RKL&2iKM";9*qqMl^O5PIcFh)j2+A'Kq(#5Igg=5nG^U5tamdN33i=i'A;s*4b%Y3g\Si1 +Z$(M0Gma[W&SL=DT^b=R2@FMn7MmDNDGsF%6t1Z$C"$I-!'?*27)N22kN8J4iBY;,FgT*2mHCZW#!! +Re9\^N%ol^B@1[G^Op7P`fL9^a;,L"5$ApF4Uer(feZKK!`O5)BOl[,X=cQ>,a?F(@Re6+.)ZlQYa( +bm3X@==HA/fM7corO[6pWPmNA-(5)TMis?\`pL1E$g83E)Ns$DLOHd_gjT%Q#"-4^]E)-q5,_M-(6F +_lRFbU-VK&>VdkaMe65\)+NW@@Nr[(rg))&1uYW_!F:$B$\T`V!$I,,5.4?KcMXbC'0fBd[$lsbQrs +d$%oRpI8-(d;UnC*i.Ag>FA.Ei/4Tn!4"#@;_0A8iR?(m>h-1\;e![F2/%'=W15U_Z3Y9'm"&7UHB& +-FIM$rO?/$PeFhbM$T1$#C/?fRk#;&Rl$7`>JJg9G-sM:c>2[#=@`!hkuR +kS%/o7]m=b=77-&:n6hi]U?P-g?4*I&1F +E]6)NjKiu3`P>[)KRC!*b#$tM@sT%/^kDU7+?P@9'Ts?L6HHemcM +e:u>;/IMSk-;irUBXL7)#O(9$Nn1(DL`=6!(+aUJ^TPNHI>u"l&!$0)em2\#U+sh8ajtJXjiOu>u>q-bMjG38B6=dn`V-#7D[Chcl)Fn];H3&tJd7bBC:9C?ko2l(UdaVKMfP!*Mi;<=?naJA1nU +#>13lh=/Tr3Q92qA@/cY=sr`Fj>03EAKeA2ONc)IKV$T%-kVJt^_%GF5#9Ak>60,j!tFB=5pR&(HH@ +KL.E%6tNh]p1?.=Ij'g,7a];'#_f?mJP+\P&8jh0a9`lknZ?Dc6RZJ*"]VXa1Vcb%A`KjWarA><4fb +\J)cf-dRe"Z,$X$8VPrE53fI2@2e$^3&DIu1B+TsB"WEHe>21SQ&W6&XNY*TR,i:S@fYYap>ONd&j< +Ji[]:>]0;ITPaniG%?(DHI/&O+di\'aq(,:lQkqN,Qq[Y<%K(`'0=#CfDOYO[>Zp.k1GZB?[G&'n\& +jC-u;ngUqTJoI2"@lBE$V:iW\]S[=0NghBjFR33WGFG +6sqI,H9Q.3gTeKS]i]#\qH&m#!eo&jMn!] +YM:b!M*K]@>D1Kg.aVm#Ek@KQ+`lH>^25uFaD/LLaAKV1nrJ#tV'g\7U@ai4=2hs7Q:$U@3Pmn]s,= +.IK6=D]j+E%;ej0nQ%Y=h3](incF%&2GQ&$frR"/H>FfsR]igr+gCjf/`j:M&fNc<@e#%=nXWqAbSa +N\`'UD&bWpgZ=96a$Ag,OP(W7M$84fbdZ/XRQ]I'[K*n[SY%[VECgm)S,LP+fPK1d5,._!$VOHL_-? +^l-ooG3S)E\QKa82@8WfEW-g7e)8^bF<1I15&gN`th@.A@raB;gil3d/ciOE7QkCV!=KdGd5>`(pSA +kFM5RqgjJWNeqV")uUJ4,N0XC(eIPorSC#_=8!^dl#fk5ZJ@9)N0l90DJjXi-nmju78c0gn6^=hrEC +2[#OVW;:o/F6u@SL`uIX9EC-R1%s;1,4r.6"W)(oV&`*2&V"MR_NDk"@Jg'b'2mN6<43T5n;UnJ)"D3LG1-&N +%&BM^rCs3Hn:*-/;W_t'Eeu)TItbm]Z),)5nU@4JuFP#a5+:t.hml?"@'/Vg0uVh?gA]J:n7,]^Y'` +M#_+C\g+4W-?E8g"-u,h4Ij^Eca)VH9/;Mq1-f&*h[*M5[0i1PTUC;?JH3PWEcSg9q7at+W;PVK_VO +N_e:fRD-nm*>F%YB3s#XVbRQL6EG=qM2_Ja)ii?gHUNk'#..)q+2o&dMA,W$pnN9/fh)D/bK$b8ZK\ +Z5,\:@MC)1Biq?h(<`GlZl<@O(,5qW(*e@ZKjgMhHo*$V\hTf>Yjp*H$Nfi@8F\GMFQrKmckR)1<8s +O;@Qs)2YgU#U&PjJ3DXAU.!'$O&"?`!f\3t==T7il2MKIHDlef_r/OVf=,BQo8@55ng+'Je30r0Sj! +bYeY3.E+r?M/L5V[Z)=Pc(iSUFm'-jU_]_S?D*8St]XR!$C8M0^A55'P8\ZQZE/*5p4Z21FgY9?;6P +8d2@BF]JB!^dc4J0Ja(YMeI,+kC(8Gl\j&>A^-3S*G;&2/R(i+H5l^Ohs70[7k7`RS*-O[sqs=-g,\ +q@Dd&4e14UtJUo8EVDqa\50pfOC\3hrWjVACR3pm@S==u\TVH)fB^I,K(4\tL+]_87ul@*QP35%&6EQ$C +)Jcp]e+2!;Dt(c5h;bef%o:NT0+D3IO\V8)kcCb=9 +HD<=:V>]9Xn^PNoD\Q-I\AiYnLA6>!rM[`A^PW=!d:)rY&iqjE`q2D]C5*_BhN/LS$6"!qUG(M=f6u +(dea^aZ[*J3I+1gPil;pB3o6^";dBHGQD_=(OMV/gZh;UtXQ[cf$?S0H+>?IsKP[J?L38/P2U\e8DC\k[l-^ +//TcS)@*sO>D9/5\$/(ba&_[+MKc?Yq\L/tUh,3QfCM"?8a"?Ad[o?lKHhnOg/2@^[#oui1^XgP\;I +Wo4Tb>gE631opP@))gCZ09cpP$+.'k<1k0GcU\US:4Dc].ht8cipC@C!bari_RB@3<7F*WH?+9qc>s +1>P;Q3dYM'S+ +4haac'#&Go#i8_KfS6o`9qNAe`6RHoql@.5L-S2b2XT/9C<`%W<@JO1>*s<*Wa)cN"uXX8$9+m;tg< +`kLS5mJ.TFQd01o=$4Ce[0fJ21CjKn1)DjC]j7-rtKME&Gtu].0$hKj7eokba@Qt0c\c@E2;apHJ%i1H_WYUElt-_H9PUEF-VJ(NQ^"fjmj[3LB6%>MoYf5'QQ70cb1@\sd8KHLaRL< +chsodJ8%O`JP-V?)0-lX$Gs9#sp@k7"%U\rEO7E;8BCj8k4sF-UmRLA\E$nA_eR[[Tn@N!J0ueaA\L@MRiihUK +Bt-XHa4C]Vq9Is]6ERbE%!/)c$"J]?Q%5F-9#-EG`:N$#G`F1JW^:EkYJ9Ou_O?!UaArcL9j7+^.F9 +&50;f%Q7Op+mUJTbJ-Oo$XZC5ejJ_oDj\5 +k9,$+^?Z35,f,@lUtMPao%9$d;j1e:3`X,$&\.HYK*j$79@S-pgcF6NF6tC+@B\^IK1-o\[#O..AlN +YfLrJiJ)9X5Ye!id^\e52^!p5tqto":mN,RC^"SD'6;0:CcrmUj=PMpc&!MOg.1?kSO5G6Dm<=oKo3 +SQc][HW]YQ"4k.]r!h2&RS#f;C"G21[-&d^D?_>)f(/Qa5*5EpB"WHC0V3D`7LE/Apj3Ur..5s8Q;X +`tRWq,t#-o_rK@o_h>0R-cGWIIZ[a^A_9Y6J!3k?0e6qG6WV-nn5*FF`_uoiia[?e?_UbBdd]%L/%r +/hN6CcPY;s=4(Jrb`@n^EU=YD]&uJuOSnbIpp`Ec,^XI^?T$<&i +U\T1kk42MoDTAW)L%ch,[_iachts9R?q<5ci%j5:J8GXqY\#*;>tDS7#$E^dR4Zn7$S5VU@HgpI2 +endstream +endobj +53 0 obj +<< +/Type /XObject +/Subtype /Image +/Length 107 0 R +/Name /Im30 +/Width 31 +/Height 52 +/BitsPerComponent 1 +/ImageMask true +/Decode [1 0] +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gar'bYmggZ$j=@7"GE#t2Emn4/)\CY1eOGELBP]4jcYs*eqDmc^k!+*M2;GS(KXd&b:CoO$Is,A'*X +DN^E<-D(qOPY8)RHKT4Ps^1Gi(O^(i5&HDlS$J*G3hTk/'Ou]N-hW7/t6+R\1!`s2Gbc=QX*E/~> +endstream +endobj +54 0 obj +<< +/Type /Page +/Parent 3 0 R +/Resources << /Font << /F2 58 0 R /F1 56 0 R /F4 62 0 R /F3 60 0 R >> /XObject << /Im20 35 0 R /Im13 24 0 R /Im21 36 0 R /Im1 10 0 R /Im2 11 0 R >> /ProcSet 4 0 R >> +/Annots [ ] +/Contents 55 0 R +>> +endobj +55 0 obj +<< +/Length 108 0 R +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gatm>968lH'#*[5bV@fA:]q&UUi3OY-1XO5Nhrj_I"=8AL+>I-Hph"arAHo_!ut3KHY^e0\M,9Mh-Y +[1Fb=&Hrn)TYHZs[WI`46^F8'X>"e"/!n;mQi=.c`W#U?lO=HJ5GF19p%FS57fmQY>m&.>W_JW[As6 +S)VBA;A;Smu"\i#$%)K?l"KXGH0?([2G!V82<:)W9V5.nj(-m*?;Ybkhk=&OEUEJ].5t_;LH5[:NdZ +`a))Oh@V>GS0GMujf+,HMOs&%:s1l5j0Di%lVR])+Ee1jWX2aSF%:3"h^"U1N#%`8;7Ua*LFL,NZ%q +G3!?`5U7^TeR$5>H-K?17t@Z")+V?2'[Ij"QjZDk>:h^clu[_OcD,q]k&Bn-9^9U56]9_?c0aL7>h> +427q,jF)CK`t(k^_EbEg6nDN0aM'I&-k/LO-AhmCgPKCuG/W0(ho$`%`jH->.Ea(!4Y2^ST[.m'X[" +BCdFsWgCce:+]EnY0PW\Q8`I&TELb(WN`#6iZ$se.>E6&Tjj&"Cm@RdZLTs[gS$)ab:\VO"Lk@:E1qg'Z1r5A^O&0R>N:hNgs/a&,4OUVH6ec3LK'Lu+[WW@^l0(*%p(n4e +1nE+j\E"PX4Ch+<;C^S/EI@9Q+M3Bcj2(CG9>PK(E+U74RCOD3kamj($Z3 +]u[LrjUNY_-YC>h'WZrVF&nA5)9Zqd'jj,WNhc3UGL?YWcTKP`bY_bG&]Voi*i1BIi)+8g.>m!Y>3b +Y1;uEN\:4,5-T)IX*X9FDAKIgg`o"nn_#X1>hH^oRWSa,IZ]HnW"hG*9S%FTTLfR->iBj;KO2Ek'3" +`URjh$c,-X0_6epW@`iIGWFnrNhltDob[+a.ce!QK*U1NibGsJKA65oHBQM@KFX`Y3-4GeLLQd$H5/ +B9g?$sk:Z/uTuq;R4i'6n8j''L!:@5kHqPl[k*,?$idCbGlOg:,!nH0Vf0r;f3(AN.gE_91[ROQP$# +`ojXbQ>NH;Xc;m'fT[;H615VprM.'Y"58P//R]`!7J-=2o#UiM*&c0nNPsSm9M)*l<]0`&".4d@ROF +g@u8MNf)V_5*CJ9d@"D33t;@5tV=Sj^TbaM3a!^E/98S81/h$f(L/.26n2,EbCfdth1*ADYlBeJ1.b +G?g:ggCjV(MurZG5Yr\_lj!gZD>UO@lu,m:\WWj;GBba-YnrOU4d0Hn8Rm!"G(BmT69:UlJN&AL!:< +3d%AO`X%%oK9Jt?!8fQIfroc%\*-qY7G%9%?TGiYRcl;M-nUeM7XPacOTG30hM +bB4)ZJS@V%.'lnl@Pt;uV-&$4hq\kYgl4j0#ZE8-a.a/QDSs>rf3e]+PJnGs$D>/^`eV3\Halq-peN +5f,EGd_A6B.lgR9WI`;if4PT"@.J7:93m^8/XZB<2phTr7SI;?!5]p'Ncs8i;3/Yo=3s[k;k<,HjHW +2+f%;Ji)NMq%'L>DrHAJ!ZWNd$UNu+?_9!1H"LMM?ojjSE.8s<8XqnN6XNZls\hnt3Rb2m2G +BN/2Pbk@Q9$_>34^G8!S`RQV.lP)UKeiG%)/t^&2(_/9M>O=*4dlQ^c\PVJ4gXCZ5OWG%f'2^]J"/o>j0N0Pj'UbXe_*C9a:0P; ++J"2#CSM0j2H$SoT?X/"lg%/8c\Vd#[qVG)-_c.N6L:W3EIR#$X0U<.8#:XPO6=^n8%s%G"CmB7?pP ++:ZER%#>C&N@K9aqiiqXthj*8$#Oc3`gau9J7h&?T4&M+"5Z;3977BK/6aak%qZ77S+@onT+6kqCT5 +p-bM,XCBrDDd\,86[%:%#4aYqkhQKDqXUaZAP3#.s@&]\/:].6hI,C0L-u!q7A=A1pq#m +aacm]\,'C4f.PX9jOJV5)$!'-/rDF5$m?%=k@q@XZ0U$Uo(R]U\-8Co:hT&4%q?HWL"_o;m$Xn*lrW +-Qf'OE/]gGDfiZni[aY]$N3!N^jc_2#s!.Fh=jdW"'BUN!u8UmEg"YhM@sQJ);&=K+(p;fH"ODBa4/ +)V1GlD4#i6EnMW$XbotSGU=;id;,]<7e2](/.DL(LmF`S\aR[iBFfGF8k.(/X2VLZKJ)m][+#PJeC]#ai^M3?JP3gig39+A +;7;e_kfX:l%1O>sTb5[aqfHI:JV)T.$$!tis1;;&HTXOcIHa:g +)<-+A[E/TTVWTn4Zd.Oj>ainNjWkPu2*FLpB:1 +*_rIs)nF2O#Vt4L,frB5UL#<8glS_6goHd&Xb[5Q/)a?Ud-EH2oZ>qP%+"\p!![)=?Q'6/Hu;;j17E +Re*S`0e><2b?5nQ2dIi?RH.!'`-H1FbUrrmO^p1V_T`Y]r2^D76GJt6ITgp0!^(;;u4fcMUq118`Ls +OE4f`/DDb/2]uEj6Hmg\59OGK#*$c#Md'K!\F.Xn$1t(sYihEg`$"l\)!dM2;"^JakcW'@kBqfuW8k +QL59V]C6Xla0umY[!H+(4I(=>UN/Yka35bDR[C^0fipAu'$@67j+jj[c +3b]hEJ,V?O"DGrZIYJY!LW8=D%16))dsg3N`b;!9YW"s&o1$\M"FGD$ON$ZRY%e%Zhoh.fA+_`"HsX +bCOjPpkqH"Au'[4HCZ#T80.7&1HUDSf)ejEToN)SBj"rUr&Lff\/K[gZ#'ak.Lg^j1h*N&53)%'=qh +Gc*ECoBs+f#4)1/nhdaEb&KgsOia],T\5?V*M[FM4>Vi> +6]kUtjeQkcF-U]Rg:pFYlF?:e^cb6r_CUo\Z(,7r'L>5,W +*\4[Ja/V2@I0nl)t.f!,o?]rOU/LhCDL6u'&QbrYlj"$%qd/9;Xf#p5*!U4`?2!Y^5'c$ki'K+o=G) +;Go3ljI'hD1DA*SP^]mYF_UUX?)DMe4P^NJppIgI$QqI;Bld%fUOf=n[/9NS,aQZWr5L<;J[Wk=o8j +/nV^FL0&64("n1C7IK.eoXOWLeO555I5Xe[J>:<$=)r-5k5_4] +I)kN]Q?E!G?q+2?T3V_cCd*Z1ULGA?VH-;%q[Ajjd",,SqCWcQal6[og/bHi2+>kEmt3:dF.i)3Hoe`qb)W7a1J;8HkNZ;H(t-fP,Z +[61ZeAfm&lmhmcLOc>Mu_IgV"4@,W3Y\:^ZruQr;F*6e/]U/dBHeMV#.f4Y/fAm_[Tr5`\H2^0Ba'1 +8LZM]6.*m^(AO*5;dmD\5TqfTKDR.E\VWLJUS*&ekmKlQ4b@m3PPUp$Gc@+AM^@Y+cpHl$)GrgPhm_ +-Cf_QkKq6^R@+JmkAZ.kOlgO-VC'88mk\G5]c/Oa"uY:rdO$E@p!>VemF.<`VhJBdtm/>UT:S5@_kr +HU2+H=CWsOk[6C92=ukK))fi`rgJJ8UfK#hjmHt=uGm[Phor1hpm/06*PGa$]M66q+-$)iG,\!6q?7 +j\Fk8OmN)a;/V`kEF*"Sl,+#8]bN]Cm)dt(h2MZcl`p!:q.SkG`]2?hOQJO-`]A +l**Fj''r#)Gjis/Jq&B@?-(NT(=a9:* +endstream +endobj +56 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /Times-Bold +/Encoding 57 0 R +/FirstChar 0 +/LastChar 255 +>> +endobj +57 0 obj +<< +/Type /Encoding +/BaseEncoding /MacRomanEncoding +/Differences [ 1 /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring 11 /breve /minus 14 /Zcaron /zcaron /caron /dotlessi 30 /grave /quotesingle 39 /quoteright 96 /quoteleft 128 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis /.notdef /exclamdown 164 /currency /yen /brokenbar /section /dieresis 170 /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree 178 /twosuperior /threesuperior /acute 182 /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 ] +>> +endobj +58 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Times-Roman +/Encoding 59 0 R +/FirstChar 0 +/LastChar 255 +>> +endobj +59 0 obj +<< +/Type /Encoding +/BaseEncoding /MacRomanEncoding +/Differences [ 1 /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring 11 /breve /minus 14 /Zcaron /zcaron /caron /dotlessi 30 /grave /quotesingle 39 /quoteright 96 /quoteleft 128 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis /.notdef /exclamdown 164 /currency /yen /brokenbar /section /dieresis 170 /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree 178 /twosuperior /threesuperior /acute 182 /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 ] +>> +endobj +60 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Courier +/Encoding 61 0 R +/FirstChar 0 +/LastChar 255 +>> +endobj +61 0 obj +<< +/Type /Encoding +/BaseEncoding /MacRomanEncoding +/Differences [ 1 /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring 11 /breve /minus 14 /Zcaron /zcaron /caron /dotlessi 19 /ff /ffi /ffl 30 /grave /quotesingle 39 /quoteright 96 /quoteleft 128 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis /.notdef /exclamdown 164 /currency /yen /brokenbar /section /dieresis 170 /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree 178 /twosuperior /threesuperior /acute 182 /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 ] +>> +endobj +62 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F4 +/BaseFont /Times-Italic +/Encoding 63 0 R +/FirstChar 0 +/LastChar 255 +>> +endobj +63 0 obj +<< +/Type /Encoding +/BaseEncoding /MacRomanEncoding +/Differences [ 1 /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring 11 /breve /minus 14 /Zcaron /zcaron /caron /dotlessi 30 /grave /quotesingle 39 /quoteright 96 /quoteleft 128 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis /.notdef /exclamdown 164 /currency /yen /brokenbar /section /dieresis 170 /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree 178 /twosuperior /threesuperior /acute 182 /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 ] +>> +endobj +64 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Helvetica-Bold +/Encoding 65 0 R +/FirstChar 0 +/LastChar 255 +>> +endobj +65 0 obj +<< +/Type /Encoding +/BaseEncoding /MacRomanEncoding +/Differences [ 0 /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND 127 /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /space /ND 164 /currency /yen /brokenbar /section /dieresis 170 /multiply /guillemotleft /logicalnot /hyphen /registered /ND /degree 178 /twosuperior /threesuperior /acute 182 /paragraph /periodcentered /cedilla /onesuperior /divide /guillemotright /onequarter /onehalf /threequarters /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /ND /underscoredbl /afii57664 /afii57665 /afii57666 /afii57667 /afii57668 /afii57669 /afii57670 /afii57671 /afii57672 /afii57673 /afii57674 /afii57675 /afii57676 /afii57677 /afii57678 /afii57679 /afii57680 /afii57681 /afii57682 /afii57683 /afii57684 /afii57685 /afii57686 /afii57687 /afii57688 /afii57689 /afii57690 /ND /ND /ND /ND /ND ] +>> +endobj +66 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F6 +/BaseFont /Helvetica +/Encoding 67 0 R +/FirstChar 0 +/LastChar 255 +>> +endobj +67 0 obj +<< +/Type /Encoding +/BaseEncoding /MacRomanEncoding +/Differences [ 39 /quoteright 45 /minus 96 /quoteleft 128 /.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 164 /currency /yen /brokenbar /section /dieresis 170 /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree 178 /twosuperior /threesuperior /acute 182 /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 ] +>> +endobj +68 0 obj +<< +/CreationDate (Mon Feb 19 10:00:41 2001) +/Producer (PStill 1.52 by F.Siegert frank@this.net) +/Title (LNCS_RBF_dvi) +>> +endobj +69 0 obj +4499 +endobj +70 0 obj +5323 +endobj +71 0 obj +193 +endobj +72 0 obj +144 +endobj +73 0 obj +154 +endobj +74 0 obj +123 +endobj +75 0 obj +66 +endobj +76 0 obj +92 +endobj +77 0 obj +104 +endobj +78 0 obj +6753 +endobj +79 0 obj +61 +endobj +80 0 obj +164 +endobj +81 0 obj +165 +endobj +82 0 obj +136 +endobj +83 0 obj +53 +endobj +84 0 obj +133 +endobj +85 0 obj +111 +endobj +86 0 obj +4963 +endobj +87 0 obj +28 +endobj +88 0 obj +30 +endobj +89 0 obj +65 +endobj +90 0 obj +28 +endobj +91 0 obj +154 +endobj +92 0 obj +5266 +endobj +93 0 obj +187 +endobj +94 0 obj +332 +endobj +95 0 obj +188 +endobj +96 0 obj +174 +endobj +97 0 obj +193 +endobj +98 0 obj +144 +endobj +99 0 obj +5257 +endobj +100 0 obj +163 +endobj +101 0 obj +5413 +endobj +102 0 obj +37 +endobj +103 0 obj +5914 +endobj +104 0 obj +27 +endobj +105 0 obj +217 +endobj +106 0 obj +8308 +endobj +107 0 obj +159 +endobj +108 0 obj +4748 +endobj +xref +0 109 +0000000000 65535 f +0000000015 00000 n +0000000112 00000 n +0000000158 00000 n +0000000306 00000 n +0000000345 00000 n +0000000367 00000 n +0000000519 00000 n +0000005111 00000 n +0000005494 00000 n +0000010910 00000 n +0000011310 00000 n +0000011661 00000 n +0000012022 00000 n +0000012352 00000 n +0000012625 00000 n +0000012924 00000 n +0000013235 00000 n +0000013541 00000 n +0000020388 00000 n +0000020656 00000 n +0000021027 00000 n +0000021400 00000 n +0000021744 00000 n +0000022005 00000 n +0000022346 00000 n +0000022665 00000 n +0000022951 00000 n +0000028008 00000 n +0000028244 00000 n +0000028481 00000 n +0000028754 00000 n +0000028990 00000 n +0000029352 00000 n +0000029768 00000 n +0000035128 00000 n +0000035523 00000 n +0000036063 00000 n +0000036459 00000 n +0000036841 00000 n +0000037242 00000 n +0000037594 00000 n +0000037867 00000 n +0000043218 00000 n +0000043590 00000 n +0000044031 00000 n +0000049539 00000 n +0000049785 00000 n +0000050148 00000 n +0000056157 00000 n +0000056391 00000 n +0000056817 00000 n +0000057178 00000 n +0000065581 00000 n +0000065949 00000 n +0000066192 00000 n +0000071035 00000 n +0000071161 00000 n +0000072660 00000 n +0000072787 00000 n +0000074286 00000 n +0000074409 00000 n +0000075925 00000 n +0000076053 00000 n +0000077552 00000 n +0000077682 00000 n +0000078780 00000 n +0000078905 00000 n +0000080227 00000 n +0000080364 00000 n +0000080385 00000 n +0000080406 00000 n +0000080426 00000 n +0000080446 00000 n +0000080466 00000 n +0000080486 00000 n +0000080505 00000 n +0000080524 00000 n +0000080544 00000 n +0000080565 00000 n +0000080584 00000 n +0000080604 00000 n +0000080624 00000 n +0000080644 00000 n +0000080663 00000 n +0000080683 00000 n +0000080703 00000 n +0000080724 00000 n +0000080743 00000 n +0000080762 00000 n +0000080781 00000 n +0000080800 00000 n +0000080820 00000 n +0000080841 00000 n +0000080861 00000 n +0000080881 00000 n +0000080901 00000 n +0000080921 00000 n +0000080941 00000 n +0000080961 00000 n +0000080982 00000 n +0000081003 00000 n +0000081025 00000 n +0000081045 00000 n +0000081067 00000 n +0000081087 00000 n +0000081108 00000 n +0000081130 00000 n +0000081151 00000 n +trailer +<< +/Size 109 +/Root 1 0 R +/Info 68 0 R +>> +startxref +81173 +%%EOF diff --git a/parallel/search.ps b/parallel/search.ps new file mode 100644 index 0000000..3b5be1c --- /dev/null +++ b/parallel/search.ps @@ -0,0 +1,2298 @@ +%!PS-Adobe-3.0 +%%Creator: groff version 1.17.2 +%%CreationDate: Wed Sep 4 21:51:42 2002 +%%DocumentNeededResources: font Times-Roman +%%DocumentSuppliedResources: procset grops 1.17 2 +%%Pages: 27 +%%PageOrder: Ascend +%%Orientation: Portrait +%%EndComments +%%BeginProlog +%%BeginResource: procset grops 1.17 2 +/setpacking where{ +pop +currentpacking +true setpacking +}if +/grops 120 dict dup begin +/SC 32 def +/A/show load def +/B{0 SC 3 -1 roll widthshow}bind def +/C{0 exch ashow}bind def +/D{0 exch 0 SC 5 2 roll awidthshow}bind def +/E{0 rmoveto show}bind def +/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def +/G{0 rmoveto 0 exch ashow}bind def +/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/I{0 exch rmoveto show}bind def +/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def +/K{0 exch rmoveto 0 exch ashow}bind def +/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/M{rmoveto show}bind def +/N{rmoveto 0 SC 3 -1 roll widthshow}bind def +/O{rmoveto 0 exch ashow}bind def +/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/Q{moveto show}bind def +/R{moveto 0 SC 3 -1 roll widthshow}bind def +/S{moveto 0 exch ashow}bind def +/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/SF{ +findfont exch +[exch dup 0 exch 0 exch neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/MF{ +findfont +[5 2 roll +0 3 1 roll +neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/level0 0 def +/RES 0 def +/PL 0 def +/LS 0 def +/MANUAL{ +statusdict begin/manualfeed true store end +}bind def +/PLG{ +gsave newpath clippath pathbbox grestore +exch pop add exch pop +}bind def +/BP{ +/level0 save def +1 setlinecap +1 setlinejoin +72 RES div dup scale +LS{ +90 rotate +}{ +0 PL translate +}ifelse +1 -1 scale +}bind def +/EP{ +level0 restore +showpage +}bind def +/DA{ +newpath arcn stroke +}bind def +/SN{ +transform +.25 sub exch .25 sub exch +round .25 add exch round .25 add exch +itransform +}bind def +/DL{ +SN +moveto +SN +lineto stroke +}bind def +/DC{ +newpath 0 360 arc closepath +}bind def +/TM matrix def +/DE{ +TM currentmatrix pop +translate scale newpath 0 0 .5 0 360 arc closepath +TM setmatrix +}bind def +/RC/rcurveto load def +/RL/rlineto load def +/ST/stroke load def +/MT/moveto load def +/CL/closepath load def +/FL{ +currentgray exch setgray fill setgray +}bind def +/BL/fill load def +/LW/setlinewidth load def +/RE{ +findfont +dup maxlength 1 index/FontName known not{1 add}if dict begin +{ +1 index/FID ne{def}{pop pop}ifelse +}forall +/Encoding exch def +dup/FontName exch def +currentdict end definefont pop +}bind def +/DEFS 0 def +/EBEGIN{ +moveto +DEFS begin +}bind def +/EEND/end load def +/CNT 0 def +/level1 0 def +/PBEGIN{ +/level1 save def +translate +div 3 1 roll div exch scale +neg exch neg exch translate +0 setgray +0 setlinecap +1 setlinewidth +0 setlinejoin +10 setmiterlimit +[]0 setdash +/setstrokeadjust where{ +pop +false setstrokeadjust +}if +/setoverprint where{ +pop +false setoverprint +}if +newpath +/CNT countdictstack def +userdict begin +/showpage{}def +}bind def +/PEND{ +clear +countdictstack CNT sub{end}repeat +level1 restore +}bind def +end def +/setpacking where{ +pop +setpacking +}if +%%EndResource +%%IncludeResource: font Times-Roman +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron +/scaron/zcaron/Ydieresis/trademark/quotesingle/.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/hyphen +/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/circumflex +/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/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/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@0 ENC0/Times-Roman RE +%%EndProlog +%%Page: 1 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(Abstract)72 96 Q .758(This paper describes a hi\ +gh-performance parallel tree search algorithm that uses Dynamic T)72 120 +R .757(ree Splitting)-.385 F .412 +(\(DTS\) to search alpha/beta minimax g)72 132 R .412 +(ame trees, speci\214cally those for the g)-.055 F .413(ame of chess.) +-.055 F .413(This algorithm)5.913 F(di)72 144 Q .843 +(vides the search tree among se)-.275 F -.165(ve)-.275 G .842 +(ral processors on a shared memory parallel machine.).165 F .842 +(This paper dis-)6.342 F .997(cusses the follo)72 156 R .997 +(wing topics:)-.275 F .997(\(1\) the DTS algorithm, \(2\) ho)6.497 F +3.747(wt)-.275 G .998(he tree is di)-3.747 F .998 +(vided into parallel pieces that)-.275 F .509(can be searched in parall\ +el; \(3\) performance results of the algorithm and \(4\) analysis of th\ +e results to see)72 168 R(where further impro)72 180 Q -.165(ve)-.165 G +(ments might occur).165 E(..)-.605 E 2.75(1. Introduction.)72 204 R(Ov) +72 228 Q 1.11(er the past ten years, high performance computer architec\ +tural designers ha)-.165 F 1.44 -.165(ve t)-.22 H 1.11 +(urned to parallel pro-).165 F .027(cessing to push the performance en) +72 240 R -.165(ve)-.44 G .026(lope to higher and higher le).165 F -.165 +(ve)-.275 G 2.776(ls. Unfortunately).165 F 2.776(,f)-.715 G .026(or man) +-2.776 F 2.776(ya)-.165 G(lgorithms)-2.776 E 1.533 +(in general, and the alpha/beta algorithm in particular)72 252 R 4.283 +(,p)-.44 G 1.533(arallel processing of)-4.283 F 1.534 +(fers a substantial hurdle to)-.275 F -.165(ex)72 264 S +(tracting maximum performance from parallel machines.).165 E 1.81(The a\ +lpha/beta algorithm is based on a highly sequential property of searchi\ +ng that depends on prior)72 288 R(kno)72 300 Q 3.431(wledge to pre)-.275 +F -.165(ve)-.275 G 3.431(nt searching parts of the g).165 F 3.432 +(ame tree that ha)-.055 F 3.762 -.165(ve n)-.22 H 6.182(ob).165 G 3.432 +(earing on the \214nal results)-6.182 F 4.909([Knuth75,Hyatt89]. Since) +72 312 R 4.908(ap)4.908 G 2.158(arallel search tra)-4.908 F -.165(ve) +-.22 G 2.158(rses parts of the tree "simultaneously" such a priori).165 +F(kno)72 324 Q 6.478(wledge is not al)-.275 F -.11(wa)-.11 G 6.478(ys a) +.11 F -.275(va)-.22 G 6.478 +(ilable [Campbell81,Hyatt88,Hyatt89,Hsu90,Lindstrom83,Marsland85,).275 F +(Popo)72 336 Q(wich83,Schaef)-.275 E(fer89,man)-.275 E 2.75(yo)-.165 G +(thers].)-2.75 E 1.814(The best-kno)72 360 R 1.814 +(wn early attempt at searching such trees in parallel w)-.275 F 1.813 +(as the Principal V)-.11 F 1.813(ariation Splitting)-1.221 F 4.248(\(PV\ +S\) algorithm [Hyatt86,Marsland80,Marsland81, Marsland82,Marsland86,Ne) +72 372 R(wborn85,Schaef)-.275 E(fer89].)-.275 E .062(This w)72 384 R +.062(as both simple to understand and easy to implement.)-.11 F .061 +(When starting an N-ply search, one processor)5.561 F .553 +(generates the mo)72 396 R -.165(ve)-.165 G 3.303(sa).165 G 3.303(tt) +-3.303 G .553(he root position, mak)-3.303 F .553(es the \214rst mo)-.11 +F .883 -.165(ve \()-.165 H .553 +(leading to what is often referred to as the).165 F .086 +(left-most descendent position\), then generates the mo)72 408 R -.165 +(ve)-.165 G 2.836(sa).165 G 2.836(tp)-2.836 G .086(ly=2, mak)-2.836 F +.086(es the \214rst mo)-.11 F .416 -.165(ve a)-.165 H -.055(ga).165 G +.086(in, and contin-).055 F .115(ues this until reaching ply=N.)72 420 R +.115(At this point, the processor pool searches all of the mo)5.615 F +-.165(ve)-.165 G 2.865(sa).165 G 2.866(tt)-2.865 G .116 +(his ply \(N\) in)-2.866 F .42(parallel, and the best v)72 432 R .42 +(alue is back)-.275 F .419(ed up to ply N-1.)-.11 F(No)5.919 E 3.169(wt) +-.275 G .419(hat the lo)-3.169 F .419(wer bound for ply N-1 is kno)-.275 +F .419(wn, the)-.275 F .328(rest of the mo)72 444 R -.165(ve)-.165 G +3.078(sa).165 G 3.078(tN)-3.078 G .329 +(-1 are searched in parallel, and the best v)-3.078 F .329(alue ag)-.275 +F .329(ain back)-.055 F .329(ed up to N-2.)-.11 F .329(This contin-) +5.829 F .464(ues until the \214rst root mo)72 456 R .794 -.165(ve h) +-.165 H .464(as been searched and the v).165 F .464(alue is kno)-.275 F +3.214(wn. The)-.275 F .464(remainder of the root mo)3.214 F -.165(ve) +-.165 G(s).165 E .4(are searched in parallel, until none are left.)72 +468 R .4(The ne)5.9 F .4 +(xt iteration is started and the process repeats for depth)-.165 F(N+1.) +72 480 Q .048 +(Performance analysis with this algorithm \(PVS\) produced speedups gi) +72 504 R -.165(ve)-.275 G 2.797(nb).165 G(elo)-2.797 E 2.797(wi)-.275 G +2.797(nt)-2.797 G .047(able 1 [Hyatt88] \(oth-)-2.797 F 1.112(ers ha)72 +516 R 1.442 -.165(ve p)-.22 H 1.112(roduced results v).165 F 1.113 +(ery similar to this\).)-.165 F 1.113(Clearly the performance curv)6.613 +F 3.863(ei)-.165 G 3.863<738d>-3.863 G 1.113(attened badly on the)-3.863 +F .23(upper end, and the C90 with 16 processors and the T90 with 32 are\ + not going to perform as well as might)72 528 R 1.231(be e)72 540 R +1.231(xpected, although the)-.165 F 3.981(ya)-.165 G 1.231 +(re certainly v)-3.981 F 1.231(ery f)-.165 F 3.981(ast. An)-.11 F 1.231 +(upper bound of 5X \(maybe\) does not look v)3.981 F(ery)-.165 E +(attracti)72 552 Q -.165(ve)-.275 G 2.75(,h).165 G -.275(ow)-2.75 G +-2.365 -.275(ev e).275 H 2.75(r[).275 G(Hyatt88].)-2.75 E EP +%%Page: 2 2 +%%BeginPageSetup +BP +%%EndPageSetup +.44 LW 414.465 88.75 197.534 88.75 DL/F0 11/Times-Roman@0 SF 2.75(#p) +203.034 98 S 17.875(rocessors 1)-2.75 F 24.75(248)24.75 G(16)-2.75 E +414.465 102.75 197.534 102.75 DL 32.384(speedup 1.0)203.034 112 R 13.75 +(1.9 3.4 5.4 6.0)16.5 F 414.465 116.75 197.534 116.75 DL 386.965 102.75 +386.965 116.75 DL 356.715 102.75 356.715 116.75 DL 326.465 102.75 +326.465 116.75 DL 296.215 102.75 296.215 116.75 DL 265.965 102.75 +265.965 116.75 DL 414.465 88.75 414.465 116.75 DL 197.534 88.75 197.534 +116.75 DL 386.965 88.75 386.965 116.75 DL 356.715 88.75 356.715 116.75 +DL 326.465 88.75 326.465 116.75 DL 296.215 88.75 296.215 116.75 DL +265.965 88.75 265.965 116.75 DL -.88(Ta)233.427 140.2 S +(ble 1 PVS performance results).88 E 1.656 +(This approach has a couple of f)72 164.2 R 1.656(airly ob)-.11 F 1.656 +(vious dra)-.165 F 4.406(wbacks. First,)-.165 F 1.656 +(notice that all of the processors w)4.406 F(ork)-.11 E .724 +(together at a single node, searching descendent positions in parallel.) +72 176.2 R .725(If the number of possible mo)6.224 F -.165(ve)-.165 G +3.475(si).165 G(s)-3.475 E .368 +(small, or the number of processors is lar)72 188.2 R .368(ge, some ha) +-.198 F .698 -.165(ve n)-.22 H .368(othing to do.).165 F .368(Second, e) +5.868 F -.165(ve)-.275 G .368(ry branch from a gi).165 F -.165(ve)-.275 +G(n).165 E .492(position does not produce a tree of equal size, since s\ +ome branches may gro)72 200.2 R 3.242(wi)-.275 G .492 +(nto complicated positions)-3.242 F .988 +(with lots of checks and search e)72 212.2 R .988(xtensions that mak) +-.165 F 3.738(et)-.11 G .988(he tree v)-3.738 F .988(ery lar)-.165 F +.987(ge, while other branches gro)-.198 F 3.737(wi)-.275 G(nto)-3.737 E +.84(simple positions that are searched quickly)72 224.2 R 6.34(.T)-.715 +G .84(his leads to a load balancing problem where one processor)-6.34 F +(be)72 236.2 Q .312(gins searching a v)-.165 F .312(ery lar)-.165 F .312 +(ge tree and the others \214nish the easy mo)-.198 F -.165(ve)-.165 G +3.062(sa).165 G .312(nd ha)-3.062 F .641 -.165(ve t)-.22 H 3.061(ow).165 +G .311(ait for the remaining)-3.171 F(processor to slo)72 248.2 Q +(wly tra)-.275 E -.165(ve)-.22 G(rse the tree.).165 E .235 +(This second problem is a serious dra)72 272.2 R .235 +(wback, because with a reasonable number of processors, the speedup) +-.165 F .092(can look v)72 284.2 R .092(ery bad if most of the time man) +-.165 F 2.842(yo)-.165 G 2.842(ft)-2.842 G .092(he processors are w) +-2.842 F .092(aiting on one last node to be completed)-.11 F(before the) +72 296.2 Q 2.75(yc)-.165 G(an back up to ply N-1 and start to w)-2.75 E +(ork there.)-.11 E .271(Because of this, when we \214rst mo)72 320.2 R +-.165(ve)-.165 G 3.021(dC).165 G .272 +(ray Blitz to the eight processor Cray YMP)-3.021 F 3.022(,w)-1.221 G +3.022(ed)-3.022 G(isco)-3.022 E -.165(ve)-.165 G .272(red that the).165 +F 2.067(performance w)72 332.2 R 2.067(as only mar)-.11 F 2.067 +(ginally better than it w)-.198 F 2.067(as on the four processor XMP) +-.11 F 4.817(,i)-1.221 G 4.817(fy)-4.817 G 2.067(ou discount the)-4.817 +F(impro)72 344.2 Q -.165(ve)-.165 G 4.166(dc).165 G 1.416 +(lock speed of each YMP processor)-4.166 F 6.916(.T)-.605 G 1.416 +(he \214rst approach we de)-6.916 F -.165(ve)-.275 G 1.417(loped w).165 +F 1.417(as called Enhanced)-.11 F 6.409(Principal V)72 356.2 R 6.409(ar\ +iation Splitting \(EPVS\) and is also pretty easy to understand and imp\ +lement)-1.221 F 3.843([Hyatt88,Hyatt89]. EPVS)72 368.2 R 1.093 +(simply notices whene)3.843 F -.165(ve)-.275 G 3.843(rap).165 G 1.093 +(rocessor at a node runs out of w)-3.843 F 3.843(ork. When)-.11 F(this) +3.843 E 1.711(happens, assuming there are M processors w)72 380.2 R +1.711(orking, we kno)-.11 F 4.461(wt)-.275 G 1.711(hat there are no) +-4.461 F 4.461(wM)-.275 G 1.71(-1 \(or less\) acti)-4.461 F -.165(ve) +-.275 G 1.684(branches remaining.)72 392.2 R 1.685 +(EPVS immediately stops all processors \(which are w)7.185 F 1.685 +(orking at ply P)-.11 F 4.435(,t)-1.221 G 1.685(he current)-4.435 F .419 +(position\) and follo)72 404.2 R .419 +(ws the \214rst remaining ply=P branch tw)-.275 F 3.168(op)-.11 G .418 +(lies and then splits the tree at that point with)-3.168 F 2.751(ap)72 +416.2 S .001(arallel search e)-2.751 F .001(xactly lik)-.165 F 2.751(et) +-.11 G .001(he old PVS idea.)-2.751 F .002(The bene\214t is that no) +5.501 F 2.752(wa)-.275 G .002(ll processors are w)-2.752 F .002 +(orking together)-.11 F .187 +(on a single branch at a node where there is little w)72 428.2 R .187 +(ork, and ha)-.11 F .517 -.165(ve s)-.22 H .187(tepped do).165 F .186 +(wn into the tree to a node with)-.275 F .633(more mo)72 440.2 R -.165 +(ve)-.165 G 3.383(st).165 G 3.383(os)-3.383 G .633(earch, and also a no\ +de where the descendent trees will be smaller since this node is tw) +-3.383 F(o)-.11 E .581(plies deeper in the tree.)72 452.2 R .581 +(It should be noted that this is ef)6.081 F(fecti)-.275 E .911 -.165 +(ve b)-.275 H .58(ecause the transposition table stores the).165 F .231 +(partial results from the searches that are stopped, so that when these\ + branches are searched later)72 464.2 R 2.982(,t)-.44 G .232(he w)-2.982 +F(ork)-.11 E .789 +(is not repeated because the information is found in the table.)72 476.2 +R .788(In case you might w)6.289 F .788(onder wh)-.11 F 3.538(yt)-.055 G +.788(he search)-3.538 F .165(steps further into the tree tw)72 488.2 R +2.915(op)-.11 G .165(lies, rather than one, recall that with alpha/beta\ +, if one ply \(P\) requires that)-2.915 F .2(all mo)72 500.2 R -.165(ve) +-.165 G 2.95(sb).165 G 2.95(es)-2.95 G .2(earched, then the ne)-2.95 F +.199(xt ply \(P+1\) only requires that one mo)-.165 F .529 -.165(ve b) +-.165 H 2.949(es).165 G .199(earched to produce a refu-)-2.949 F 1.168 +(tation \(e)72 512.2 R 1.168(xcept for the case of PV nodes where no mo) +-.165 F -.165(ve)-.165 G 3.918(sh).165 G -2.475 -.22(av e)-3.918 H 1.168 +(yet been searched.\))4.138 F 1.169(Therefore, since we)6.669 F(kno)72 +524.2 Q 3.385(wt)-.275 G .634(hat we are going to e)-3.385 F .634 +(xamine all nodes at P \(since we just back)-.165 F .634 +(ed up the PVS algorithm to ply P\),)-.11 F .847(we kno)72 536.2 R 3.597 +(wt)-.275 G .847(hat all nodes at ply P+2 will most lik)-3.597 F .848 +(ely ha)-.11 F 1.178 -.165(ve t)-.22 H 3.598(ob).165 G 3.598(es)-3.598 G +.848(earched as well, so long as we choose a)-3.598 F(reasonable mo)72 +548.2 Q .33 -.165(ve a)-.165 H 2.75(tp).165 G(ly=P+1.)-2.75 E EP +%%Page: 3 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF 1.83(Performance analysis with this algorithm \ +\(EPVS\) produced speedups that were modest impro)72 96 R -.165(ve)-.165 +G(ments).165 E -.165(ove)72 108 S 3.435(rP).165 G .685(VS, as gi)-3.435 +F -.165(ve)-.275 G 3.435(ni).165 G 3.435(nt)-3.435 G .685(able 2 belo) +-3.435 F 4.865 -.715(w. T)-.275 H .685(his is roughly 20% f).715 F .685 +(aster than PVS on lar)-.11 F .686(ger numbers of proces-)-.198 F .285 +(sors, from the results belo)72 120 R 1.715 -.715(w, b)-.275 H .284(ut \ +the 8 and 16 processor times still are disappointing, and the 32 proces\ +sor).495 F 1.229(results w)72 132 R 1.23(ould be abysmal.)-.11 F +(Clearly)6.73 E 3.98(,ab)-.715 G 1.23 +(etter algorithm had to be found, or we were going to see a v)-3.98 F +(ast)-.275 E(amount of unused processing po)72 144 Q +(wer on future Cray computers [Hyatt88].)-.275 E .44 LW 414.465 164.95 +197.534 164.95 DL 2.75(#p)203.034 174.2 S 17.875(rocessors 1)-2.75 F +24.75(248)24.75 G(16)-2.75 E 414.465 178.95 197.534 178.95 DL 32.384 +(speedup 1.0)203.034 188.2 R 13.75(1.9 3.4 5.4 6.0)16.5 F 414.465 192.95 +197.534 192.95 DL 386.965 178.95 386.965 192.95 DL 356.715 178.95 +356.715 192.95 DL 326.465 178.95 326.465 192.95 DL 296.215 178.95 +296.215 192.95 DL 265.965 178.95 265.965 192.95 DL 414.465 164.95 +414.465 192.95 DL 197.534 164.95 197.534 192.95 DL 386.965 164.95 +386.965 192.95 DL 356.715 164.95 356.715 192.95 DL 326.465 164.95 +326.465 192.95 DL 296.215 164.95 296.215 192.95 DL 265.965 164.95 +265.965 192.95 DL -.88(Ta)230.067 216.4 S +(ble 2 EPVS performance results).88 E 2.75(2. Dynamic)72 240.4 R -.385 +(Tr)2.75 G(ee Splitting algorithm \(DTS\)).385 E .595(Before describing\ + the DTS algorithm in detail, one important point needs e)72 264.4 R +3.345(xplanation. This)-.165 F .595(algorithm is)3.345 F .457(speci\214\ +cally designed for a shared memory multiprocessor architecture.)72 276.4 +R .457(As a result, issues that other pro-)5.957 F 1.152 +(grams and programmers ha)72 288.4 R 1.482 -.165(ve t)-.22 H 3.902(of) +.165 G 1.152(ace \(distrib)-4.012 F 1.152 +(uted transposition tables, killer mo)-.22 F -.165(ve)-.165 G 1.151 +(s, history information).165 F .099 +(and such\) are not an issue here at all.)72 300.4 R .1 +(Some of the decisions in the DTS design w)5.6 F .1(ould lik)-.11 F .1 +(ely cause signi\214-)-.11 F 1.014 +(cant problems on a message-passing architecture, no matter ho)72 312.4 +R 3.764(wf)-.275 G 1.014(ast the communication channel might)-3.874 F +3.479(be. On)72 324.4 R .729(the Cray)3.479 F 3.479(,w)-.715 G .73 +(hich has an absolutely astounding cpu-to-memory bandwidth, mo)-3.479 F +.73(ving a me)-.165 F -.055(ga)-.165 G .73(byte of).055 F 1.693 +(data tak)72 336.4 R 1.693(es v)-.11 F 1.692(ery little time at all, wh\ +ich simply means that in this algorithm, communication costs are)-.165 F +(al)72 348.4 Q -.11(wa)-.11 G .037(ys assumed to be zero.).11 F .037 +(An assumption that w)5.537 F .037(ould f)-.11 F .037 +(ail on other architectures of course, b)-.11 F .038(ut one which)-.22 F +.664(certainly af)72 360.4 R .663 +(fected decisions made while designing the DTS algorithm as well.)-.275 +F .663(It turns out that loading a)6.163 F .649("\215ag w)72 372.4 R +.649(ord" \(which indicates that there is some parallel-processing rela\ +ted task to perform\) and testing it)-.11 F(can be b)72 384.4 Q +(uried in the instruction stream so that the)-.22 E 2.75(yc)-.165 G +(ause no delays at all.j)-2.75 E(2.1 The DTS approach)72 408.4 Q .446 +(In analyzing the pre)72 432.4 R .446(vious tw)-.275 F 3.196(oa)-.11 G +.446(lgorithms, the)-3.196 F 3.196(yb)-.165 G .445(oth suf)-3.196 F .445 +(fer from tw)-.275 F 3.195(od)-.11 G .445(istinct problems:)-3.195 F +.445(\(1\) all processors)5.945 F -.11(wo)72 444.4 S .152 +(rk together at a single node, which is acceptable for middle-g).11 F +.152(ames with 35+ le)-.055 F -.055(ga)-.165 G 2.903(lm).055 G -.165 +(ove)-2.903 G 2.903(s\().165 G -2.475 -.22(av e)-2.903 H .153(rage\), b) +.22 F(ut)-.22 E .175(which does not look attracti)72 456.4 R .505 -.165 +(ve i)-.275 H 2.925(ne).165 G(nd-g)-2.925 E .175 +(ames where the number of le)-.055 F -.055(ga)-.165 G 2.925(lm).055 G +-.165(ove)-2.925 G 2.925(si).165 G 2.925(sm)-2.925 G .175(uch smaller;) +-2.925 F .175(\(2\) if one)5.675 F .366(processor selects a mo)72 468.4 +R .696 -.165(ve t)-.165 H .367(hat leads to a v).165 F .367(ery b)-.165 +F(ush)-.22 E 3.117(yt)-.055 G .367 +(ree, the other processors might end up w)-3.117 F .367(aiting for an) +-.11 F -.165(ex)72 480.4 S .324(tended period before that tree is compl\ +eted, producing long periods where most processors are w).165 F(aiting,) +-.11 E .251(and greatly de)72 492.4 R .251 +(grading parallel performance.)-.165 F .252(The DTS algorithm w)5.752 F +.252(as speci\214cally de)-.11 F -.165(ve)-.275 G .252(loped to a).165 F +-.22(vo)-.22 G .252(id both).22 F(of these problems.)72 504.4 Q .192 +(The \214rst design goal in de)72 528.4 R -.165(ve)-.275 G .191 +(loping the DTS algorithm w).165 F .191 +(as to completely eliminate the cases where a pro-)-.11 F .365(cessor w) +72 540.4 R .366(as idle, with no mo)-.11 F -.165(ve)-.165 G 3.116(sl) +.165 G .366(eft to search, while other processors were b)-3.116 F(usy) +-.22 E 5.866(.I)-.715 G 3.116(na)-5.866 G .366(ccomplishing this, it) +-3.116 F .848(became ob)72 552.4 R .848(vious that the \214rst step w) +-.165 F .847(as to disassociate all of the processors, so there w)-.11 F +.847(as no requirement)-.11 F(that the)72 564.4 Q 2.75(ya)-.165 G +(ll congre)-2.75 E -.055(ga)-.165 G(te at a single node and w).055 E +(ork together searching mo)-.11 E -.165(ve)-.165 G 2.75(su).165 G +(ntil all were completed.)-2.75 E EP +%%Page: 4 4 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF 2.554(Note that there are alternati)72 96 R +2.884 -.165(ve w)-.275 H 2.554(ays to k).055 F 2.554(eep processors b) +-.11 F(usy)-.22 E 5.304(,b)-.715 G 2.555(esides trying to ha)-5.304 F +2.885 -.165(ve t)-.22 H 2.555(hem all w).165 F(ork)-.11 E(together)72 +108 Q 6.366(.O)-.605 G .866(ne such approach w)-6.366 F .866 +(as used in Phoenix [Schaef)-.11 F .865(fer89], and used tw)-.275 F +3.615(os)-.11 G .865(eparate search engines,)-3.615 F 1.058 +(one a full chess program, the other \(called Minix\) w)72 120 R 1.059 +(as a material-only searcher that searched deeper to)-.11 F .424 +(con\214rm/reject mo)72 132 R -.165(ve)-.165 G 3.174(sp).165 G .424 +(roposed by the full chess program.)-3.174 F(Ob)5.923 E .423 +(viously there is duplicate w)-.165 F .423(ork done in this)-.11 F .88 +(approach, as well as other problems related to choosing a mo)72 144 R +1.21 -.165(ve t)-.165 H 3.63(op).165 G .881 +(lay when the positional search says)-3.63 F .604(play X, b)72 156 R +.604(ut the tactical search says "no.")-.22 F .603 +(This sort of speculati)6.103 F .933 -.165(ve c)-.275 H .603 +(omputing, which is an admission that).165 F .541 +(additional processors w)72 168 R(on')-.11 E 3.291(ts)-.198 G .541 +(peed up the basic search, w)-3.291 F .542(as deemed too inef)-.11 F +.542(\214cient and inef)-.275 F(fecti)-.275 E .872 -.165(ve t)-.275 H +3.292(oc).165 G(on-)-3.292 E(sider)72 180 Q 2.75(,a)-.44 G +(nd something better w)-2.75 E(as desired.)-.11 E 2.554 +(The second design goal w)72 204 R 2.553(as to a)-.11 F -.22(vo)-.22 G +2.553(id completely ripping Cray Blitz apart, ef).22 F(fecti)-.275 E +-.165(ve)-.275 G 2.553(ly starting from).165 F .994(scratch; rather)72 +216 R 3.744(,w)-.44 G 3.744(ew)-3.744 G .994(anted to use the same mo) +-3.854 F 1.324 -.165(ve g)-.165 H .995 +(enerator code, tree search code, mo).165 F 1.325 -.165(ve o)-.165 H +.995(rdering code,).165 F(and so forth for both a one-processor sequent\ +ial program and the multi-processing v)72 228 Q(ersion.)-.165 E 3.071 +(As)72 252 S .321(imple e)-3.071 F .321(xplanation of DTS is f)-.165 F +.321(airly easy to understand, b)-.11 F .321 +(ut it also hides a great deal of comple)-.22 F .321(xity that)-.165 F +1.565(has to be o)72 264 R -.165(ve)-.165 G 1.565 +(rcome when writing and deb).165 F 1.565(ugging the code.)-.22 F 1.566 +(At the be)7.066 F 1.566(ginning of a ne)-.165 F 4.316(wi)-.275 G 1.566 +(teration, DTS)-4.316 F(beha)72 276 Q -.165(ve)-.22 G 3.594(sj).165 G +.844(ust lik)-3.594 F 3.594(eP)-.11 G .844(VS, searching do)-3.594 F +.843 +(wn the left-hand side of the tree from ply=1 up to ply=N, with only) +-.275 F .789(one processor)72 288 R 6.289(.A)-.605 G 3.539(tp)-6.289 G +.789(ly=N, all processors "join the party" and search the ply=N mo) +-3.539 F 1.119 -.165(ve l)-.165 H .789(ist in parallel, just).165 F(lik) +72 300 Q 3.346(eP)-.11 G 3.345(VS/EPVS. Ho)-3.346 F(we)-.275 E -.165(ve) +-.275 G 1.475 -.44(r, w).165 H .595(hen a processor completes the mo).44 +F .925 -.165(ve i)-.165 H 3.345(ti).165 G 3.345(ss)-3.345 G .595 +(earching, and disco)-3.345 F -.165(ve)-.165 G .595(rs there are).165 F +(no more to be searched, DTS reacts to this.)72 312 Q .802(This idle pr\ +ocessor broadcasts \(using shared memory\) that it is idle, and is a)72 +336 R -.275(va)-.22 G .802(ilable to "help" an).275 F 3.552(yo)-.165 G +(ther)-3.552 E .514(processor \214nish searching its tree.)72 348 R .514 +(The b)6.014 F .513 +(usy processors collect the "state of the tree" data, and store it in) +-.22 F 1.558(shared memory for the idle processor to e)72 360 R 4.308 +(xamine. This)-.165 F 1.558 +(idle processor analyzes this data, and decides)4.308 F .057 +(which \(if an)72 372 R .057(y\) of the b)-.165 F .057 +(usy processors seems to ha)-.22 F .386 -.165(ve a t)-.22 H .056 +(ree that is complicated enough that it w).165 F .056(ould be ef)-.11 F +<8c2d>-.275 E .591(cient to help with the search.)72 384 R .592(If such\ + a position is found, the idle processor informs the processor which) +6.092 F -.275(ow)72 396 S(ns that node of this and the).275 E 2.75(y") +-.165 G(join" forces.)-2.75 E 2.07 -.88(To a)72 420 T .31(ccomplish thi\ +s, the idle processor speci\214cally chooses a ply=S position and tells\ + the o).88 F .309(wner that S has)-.275 F .767 +(been chosen as the split-point ply)72 432 R 6.267(.T)-.715 G .768 +(he processor with that subtree in progress then copies the complete) +-6.267 F .008(tree state to a shared memory area called a "split block"\ + \(this tree state includes the v)72 444 R .008(arious search bounds,) +-.275 F(mo)72 456 Q 1.498 -.165(ve l)-.165 H 1.169(ists for each ply un\ +der analysis, current board position and other related search data such\ + as the).165 F .745(repetition list and so forth\).)72 468 R .745 +(Both processors can no)6.245 F 3.494(we)-.275 G .744(xtract mo)-3.659 F +-.165(ve)-.165 G 3.494(sf).165 G .744 +(rom this shared data and search in)-3.494 F 2.92(parallel. Whene)72 480 +R -.165(ve)-.275 G 2.92(ro).165 G .17(ne runs out of w)-2.92 F .171 +(ork, it simply repeats this process.)-.11 F .171 +(In some cases, we might see tw)5.671 F(o)-.11 E .794 +(processors split the tree at ply=8, then one runs out of w)72 492 R +.793(ork, and decides that the other one has the best)-.11 F .401 +(split candidate, and the)72 504 R 3.151(yt)-.165 G .401 +(hen split at ply=10.)-3.151 F .401(The \214rst might run out of w)5.901 +F .402(ork at that split point, and help)-.11 F .586(the other at a ne) +72 516 R 3.336(ws)-.275 G .586(plit point at ply=12.)-3.336 F .586 +(Or it might bail out completely and choose to help another pro-)6.086 F +(cessor)72 528 Q 3.713(,s)-.44 G .964(ince going deeper and deeper spli\ +tting the tree means that each subtree searched is smaller and)-3.713 F +(smaller)72 540 Q 4.25(,a)-.44 G 1.5(nd e)-4.25 F -.165(ve)-.275 G 1.5 +(ntually the tw).165 F 4.25(op)-.11 G 1.5 +(rocessors might spend as much time splitting and sharing as the)-4.25 F +4.249(yd)-.165 G(o)-4.249 E +(searching \(more about this possible condition later)72 552 Q(.\))-.605 +E .893(The o)72 576 R -.165(ve)-.165 G .893(rall ef).165 F .893(fect of\ + this is that the processors start together on a single node, searching\ + in parallel, b)-.275 F(ut)-.22 E EP +%%Page: 5 5 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(the)72 96 Q 2.75(yq)-.165 G +(uickly spread out in groups o)-2.75 E -.165(ve)-.165 G 2.75(rt).165 G +(he acti)-2.75 E .33 -.165(ve t)-.275 H +(ree, helping at points where there is w).165 E(ork to be done.)-.11 E +(No)72 120 Q 3.518(wt)-.275 G .768(he ne)-3.518 F .768(xt issue.)-.165 F +.767(Notice that as a processor becomes idle, it can re-split the same \ +tree it w)6.268 F .767(as sharing)-.11 F .561(with another processor)72 +132 R 3.311(,b)-.44 G .561(ut so f)-3.531 F(ar)-.11 E 3.311(,o)-.44 G +.561(nly at deeper plies.)-3.311 F(Wh)6.061 E 3.311(yi)-.055 G 3.311(st) +-3.311 G 3.311(his? Because)-3.311 F .562(it is inef)3.311 F .562 +(\214cient to back up)-.275 F 1.604(to ply N-1 and search branches ther\ +e before ply=N has been completely searched \(remember the \214rst)72 +144 R .033(ply=N split node is a PV node just lik)72 156 R 2.783(eP)-.11 +G .033(VS, and we don')-2.783 F 2.783(tw)-.198 G .033(ant to start w) +-2.893 F .034(orking on ply N-1, until we ha)-.11 F -.165(ve)-.22 G +2.388(the actual score for ply=N\).)72 168 R(Ho)7.888 E(we)-.275 E -.165 +(ve)-.275 G 3.267 -.44(r, e).165 H -.165(ve).165 G(ntually).165 E 5.137 +(,t)-.715 G 2.387(he trees can')-5.137 F 5.137(tb)-.198 G 5.137(ef) +-5.137 G 2.387(urther sub-di)-5.137 F 2.387(vided an)-.275 F 5.137(yf) +-.165 G(urther)-5.137 E .003(because the cost of doing so w)72 180 R +.003(ould be more than the cost of searching the subtree.)-.11 F(No) +5.503 E 2.754(wac)-.275 G .004(ritical decision)-2.754 F +(has to be made, "what to do ne)72 192 Q(xt?")-.165 E .389 +(Since we are using the best-kno)72 216 R .389(wn mo)-.275 F .719 -.165 +(ve o)-.165 H .389 +(rdering heuristics in the alpha/ beta tree, it is lik).165 F .388 +(ely that by the)-.11 F .641(time the \214rst fe)72 228 R 3.391(wm)-.275 +G -.165(ove)-3.391 G 3.391(sa).165 G 3.391(tp)-3.391 G .641(ly=N ha) +-3.391 F .971 -.165(ve b)-.22 H .641(een searched, we kno).165 F 3.391 +(wt)-.275 G .641(he actual score for this node, as mo)-3.391 F -.165(ve) +-.165 G(s).165 E .092(further do)72 240 R .092(wn the list should be w) +-.275 F .092(orse and not impro)-.11 F .421 -.165(ve t)-.165 H .091 +(he score further).165 F 5.591(.T)-.605 G .091(hen, allo)-5.591 F .091 +(wing idle processors to)-.275 F .276(back up to ply=N-1 and start sear\ +ching there before ply=N is completed is probably safe, and this is wha\ +t)72 252 R .129(DTS does.)72 264 R .128(On the rare occasions when the \ +ply=N search completes, and the last branch produces an e)5.629 F -.165 +(ve)-.275 G(n).165 E 1.475(better score, the processors that ha)72 276 R +1.805 -.165(ve b)-.22 H(ack).165 E 1.475 +(ed up to ply=N-1 already are searching with a less ef)-.11 F(\214cient) +-.275 E 3.062(bound. DTS)72 288 R .312 +(notices this and each processor already searching at N-1 is gi)3.062 F +-.165(ve)-.275 G 3.061(nt).165 G .311(he ne)-3.061 F 3.061(w\()-.275 G +.311(correct\) bound as)-3.061 F .261(soon as it is kno)72 300 R 3.012 +(wn. This)-.275 F .262(sounds easy and clean, b)3.012 F .262 +(ut it can cause some interesting problems, because this)-.22 F(ne)72 +312 Q 3.124(wb)-.275 G .374 +(ound might mean most of what a processor has been b)-3.124 F .374 +(usy doing can be thro)-.22 F .373(wn a)-.275 F -.11(wa)-.165 G 3.123 +(ys).11 G .373(ince the ne)-3.123 F(w)-.275 E(bound w)72 324 Q(ould ha) +-.11 E .33 -.165(ve c)-.22 H(aused a cutof).165 E 2.75(fm)-.275 G +(uch sooner than the original bound used.)-2.75 E .813(The best metapho\ +r for describing this might be "ants at a picnic" where the chess tree \ +is the picnic, and)72 348 R .01 +(the ants are the search engines \(processors\).)72 360 R .01 +(The ants start eating on a lar)5.51 F .009(ge crumb, b)-.198 F .009 +(ut as it is eaten a)-.22 F -.11(wa)-.165 G -.715(y,).11 G 1.623 +(it becomes too small and the ants that are displaced mo)72 372 R 1.953 +-.165(ve t)-.165 H 4.373(oa).165 G 1.623(nother crumb and start w)-4.373 +F 1.624(orking there..)-.11 F(Ev)72 384 Q .551 +(entually lots of ants are congre)-.165 F -.055(ga)-.165 G .551 +(ted around a steadily diminishing supply of crumbs, which brings up) +.055 F(the \214nal phase of the DTS algorithm de)72 396 Q -.165(ve)-.275 +G(lopment.).165 E .137 +(In testing this code, we found, on occasion, a position that w)72 420 R +.137(ould blo)-.11 F 2.887(wu)-.275 G 2.887(pa)-2.887 G .138 +(nd produce search times much)-2.887 F .884(longer than e)72 432 R -.165 +(ve)-.275 G 3.634(nt).165 G .884(he single-processor search.)-3.634 F +-.165(Fo)6.384 G 3.634(re).165 G .884(xample, 1 processor w)-3.799 F +.883(ould tak)-.11 F 3.633(e1m)-.11 G .883(inute to do a 10)-3.633 F +.135(ply search, b)72 444 R .135 +(ut with DTS, out of 5,000 test runs, one run w)-.22 F .136(ould tak) +-.11 F 2.886(e1m)-.11 G .136(inute to do a 5 ply search with 16)-2.886 F +3.074(processors. What)72 456 R .324(we found w)3.074 F .323(as a condi\ +tion we later termed a "feeding frenzy" to maintain the ants anal-)-.11 +F(ogy)72 468 Q 6.533(.W)-.715 G 1.033(hat w)-6.533 F 1.033 +(as happening w)-.11 F 1.033(as that as the tree w)-.11 F 1.033 +(as nearly completed, the search reached a point where)-.11 F .597 +(there were no good "split points".)72 480 R .597(DTS w)6.097 F .597 +(as quite good at recognizing when it w)-.11 F .596 +(as appropriate to split a)-.11 F .084 +(tree into parallel slices and when it w)72 492 R .084(as not.)-.11 F +(Unfortunately)5.584 E 2.834(,i)-.715 G 2.834(tw)-2.834 G .084 +(as not so good at determining when it w)-2.944 F(as)-.11 E +(time to quit checking to see if there were an)72 504 Q 2.75(yg)-.165 G +(ood split points.)-2.75 E .187 +(Imagine a case with 16 processors, with 15 idle, and one w)72 528 R +.186(orking trying to search the last 15 nodes left in)-.11 F .836 +(the entire tree.)72 540 R .836(This one processor k)6.336 F .836 +(eeps getting interrupted with "may I help you?", "can I help you?",) +-.11 F .299("could you use some help there?" and so forth, so that rath\ +er than searching, it stays b)72 552 R .298(usy cop)-.22 F .298 +(ying its tree)-.11 F 1.201(state to shared memory so that the idle pro\ +cessors can attempt to \214nd a split point.)72 564 R(The)6.701 E 3.951 +(yf)-.165 G 1.201(ail, and ask)-4.061 F(ag)72 576 Q 2.159(ain, and ag) +-.055 F 4.909(ain. And)-.055 F 2.158(in a v)4.909 F 2.158(ery fe)-.165 F +4.908(wp)-.275 G 2.158(athological cases, this almost hung the search.) +-4.908 F 3.918 -.88(To s)7.658 H(olv).88 E 4.908(et)-.165 G(his)-4.908 E +EP +%%Page: 6 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF 1.617(problem, which only occurred right at the\ + end of an iteration, we chose to add a "thrashing" counter)72 96 R(,) +-.44 E .202(which w)72 108 R .202(as nothing more than a counter that w) +-.11 F .202(as set to some v)-.11 F .201 +(alue when a processor handled one of those)-.275 F .692 +("may I help you?")72 120 R 3.442(queries. Until)6.192 F .693 +(that processor searched N nodes \(N w)3.442 F .693(as the v)-.11 F .693 +(alue set in the thrashing)-.275 F .754(counter\) it w)72 132 R .753 +(ould refuse to answer an)-.11 F 3.503(ym)-.165 G .753 +(ore "may I help you?")-3.503 F .753 +(queries, which eliminated the thrashing)6.253 F +(right at the end of an iteration.)72 144 Q .818(That is a basic e)72 +168 R .819(xplanation of DTS.)-.165 F(Ho)6.319 E(we)-.275 E -.165(ve) +-.275 G 1.699 -.44(r, t).165 H 3.569(oa).44 G .819(ppreciate e)-3.569 F +.819(xactly ho)-.165 F 3.569(wc)-.275 G(omple)-3.569 E 3.569(xa)-.165 G +.819(nd sophisticated this)-3.569 F -2.365 -.275(ev e)72 180 T .252 +(ntually became, the ne).275 F .252(xt step is to look at some of the s\ +peci\214c components and data structures need to)-.165 F(mak)72 192 Q +3.733(et)-.11 G .983(his algorithm perform.)-3.733 F .983 +(First, we need a couple of de\214nitions to mak)6.483 F 3.734(es)-.11 G +.984(ure terminology does not)-3.734 F(obscure the algorithm.)72 204 Q +2.75(2.2 De\214nitions)72 228 R 1.162(Split-point is a node within the \ +tree where it appears that the search must e)72 252 R 1.161 +(xamine all of the successor)-.165 F 2.791(nodes. The)72 264 R .041(qua\ +lity of a split point is related both to its depth \(nodes closer to th\ +e root of the tree represent)2.791 F(lar)72 276 Q 2.328(ger subtrees an\ +d thus are better split points\) and the con\214dence that all of the b\ +ranches must be)-.198 F 2.091(searched must be high.)72 288 R 2.091(Thi\ +s con\214dence is described in section three which discusses choosing s\ +plit)7.591 F(points.)72 300 Q .48(Branching f)72 324 R .48 +(actor is a measure of the comple)-.11 F .48 +(xity of a position reached in the tree search which character)-.165 F +(-)-.22 E .754(izes this comple)72 336 R .754(xity in terms of the a) +-.165 F -.165(ve)-.22 G .755(rage number of successor branches \(le).165 +F -.055(ga)-.165 G 3.505(lm).055 G -.165(ove)-3.505 G .755 +(s\) from this posi-).165 F 3.902(tion. Chess)72 348 R 1.152(seems to a) +3.902 F -.165(ve)-.22 G 1.152(rage around 38 according to man).165 F +3.902(yp)-.165 G 1.152(ublished papers, b)-3.902 F 1.152 +(ut the number can v)-.22 F(ary)-.275 E +(from zero \(mate or stalemate or dra)72 360 Q +(w\) to around 200 \(with man)-.165 E 2.75(yq)-.165 G +(ueens and an open board.\))-2.75 E 2.75(2.3 The)72 384 R(HELP command) +2.75 E .765 +(The HELP command is the primary signaling mechanism within DTS.)72 408 +R(Whene)6.265 E -.165(ve)-.275 G 3.515(rap).165 G .766 +(rocessor is "out of)-3.515 F -.11(wo)72 420 S +(rk" it sends the HELP command to what is ef).11 E(fecti)-.275 E -.165 +(ve)-.275 G(ly the entire group of acti).165 E .33 -.165(ve p)-.275 H +(rocessors.).165 E .444(The HELP command simply requests that an)72 444 +R 3.194(yp)-.165 G .444(rocessors that are acti)-3.194 F -.165(ve)-.275 +G .443(ly searching subtrees temporarily).165 F(stop, cop)72 456 Q 2.75 +(yt)-.11 G(he "tree state" to shared memory)-2.75 E 2.75(,a)-.715 G +(nd then continue searching.)-2.75 E 1.553 +(As these "tree states" become a)72 480 R -.275(va)-.22 G 1.553 +(ilable, the idle processor that initiated the HELP command analyzes) +.275 F 1.005(each state to determine if it can \214nd a satisf)72 492 R +1.004(actory split point.)-.11 F 1.004 +(If not, it simply re-broadcasts the HELP)6.504 F(command.)72 504 Q .07 +(As will be sho)72 528 R .07(wn later)-.275 F 2.82<2c8c>-.44 G .07 +(nding a split point is non-tri)-2.82 F .071(vial, because it is a k) +-.275 F .401 -.165(ey s)-.11 H .071(tep in the DTS algorithm.).165 F(If) +5.571 E 1.209(an incorrect split point is chosen, then it is lik)72 540 +R 1.208(ely that the processors that start to help at that point are) +-.11 F .175(going to search nodes that are not necessary)72 552 R 2.925 +(,w)-.715 G .175(hich does nothing b)-2.925 F .175 +(ut increase the parallel search o)-.22 F -.165(ve)-.165 G(rhead).165 E +(without making the search progress an)72 564 Q 2.75(yf)-.165 G +(aster through the tree.)-2.86 E EP +%%Page: 7 7 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .59(An interesting feature here, is that once a\ + processor \214nds a viable split-point, and the Split\(\) operation is) +72 96 R 1.058(performed, whene)72 108 R -.165(ve)-.275 G 3.808(ra).165 G +1.388 -.165(ny o)-3.808 H 1.058(ther processor becomes idle, the).165 F +3.808(yc)-.165 G 1.058(heck for acti)-3.808 F 1.388 -.165(ve s)-.275 H +1.058(plit-points before broad-).165 F 1.037(casting a HELP command.)72 +120 R 1.036(If a processor locates an)6.537 F 3.786(yv)-.165 G 1.036 +(alid split points, and there is w)-4.061 F 1.036(ork remaining at)-.11 +F(an)72 132 Q 3.258(yo)-.165 G 3.258(ft)-3.258 G .508 +(hem, it simply attaches to the split point with the most w)-3.258 F +.509(ork remaining, and does not broadcast a)-.11 F 1.445(help command.) +72 144 R 1.444(This tends to k)6.944 F 1.444(eep the processors w)-.11 F +1.444(orking together in related parts of the tree, which)-.11 F(mak)72 +156 Q .521(es the transposition table and scoring hash tables more ef) +-.11 F(fecti)-.275 E .851 -.165(ve s)-.275 H .521 +(ince the information is more useful).165 F .101 +(among closely related positions.)72 168 R(Ho)5.601 E(we)-.275 E -.165 +(ve)-.275 G .981 -.44(r, i).165 H 2.851(fap).44 G .101 +(rocessor becomes idle, and \214nds no split-point with w)-2.851 F(ork) +-.11 E .665(remaining, it does initiate a HELP command and goes about \ +\214nding a ne)72 180 R 3.416(ws)-.275 G 3.416(plit-point. Other)-3.416 +F(processors)3.416 E .956(will lik)72 192 R .956 +(ely join it at that split point as the)-.11 F 3.706(yb)-.165 G .956 +(ecome idle.)-3.706 F .955 +(Another reason for doing this is that \214nding a)6.456 F .34 +(split point tak)72 204 R .34 +(es time, and once a good one has been located, there')-.11 F 3.09(sn) +-.605 G 3.09(op)-3.09 G .34(oint in locating another until the)-3.09 F +1.863 +(\214rst one has been completed, or at least until there are no more mo) +72 216 R -.165(ve)-.165 G 4.613(sl).165 G 1.863 +(eft at that point that can be)-4.613 F 1.086 +(searched by idle processors.)72 228 R 1.086(In the v)6.586 F 1.087 +(ery w)-.165 F 1.087 +(orst case, with N processors each split point could ha)-.11 F 1.417 +-.165(ve t)-.22 H -.11(wo).165 G .177(processors w)72 240 R .177 +(orking, if the tree is v)-.11 F .176(ery narro)-.165 F 4.356 -.715 +(w. I)-.275 H 2.926(nt).715 G .176(he optimal case, which is f)-2.926 F +.176(airly common in the middle-)-.11 F -.055(ga)72 252 S 1.416 +(me, there are rarely more than one or tw).055 F 4.166(os)-.11 G 1.416 +(plit points, the \214rst is nearly completed, and the second)-4.166 F +(\(ne)72 264 Q +(w\) split point is where each processor goes when it runs out of w) +-.275 E(ork at the original split point.)-.11 E 2.078 -.88(To p)72 288 T +.318(rocess the HELP command, a simple test w).88 F .317 +(as added to the sequential search code.)-.11 F .317(After an)5.817 F +3.067(yn)-.165 G .317(ode is)-3.067 F .91(processed, HELP\(i\) is check) +72 300 R .911(ed, and if set, the tree state is copied to shared memory) +-.11 F 3.661(,t)-.715 G .911(he \215ag is cleared,)-3.661 F .888 +(and the search continues normally)72 312 R 6.388(.T)-.715 G .887 +(his reduces the idle time for a processor to the time required for a) +-6.388 F .712(processor to search one node and return to the top of Sea\ +rch\(\) and then store the "tree state" for the idle)72 324 R .982 +(processor to e)72 336 R 3.732(xamine. \(About)-.165 F .981 +(30 microseconds on a Cray C90.\))3.732 F .981 +(After this time, an idle processor will)6.481 F(ha)72 348 Q .33 -.165 +(ve a)-.22 H 2.75(tl).165 G(east one tree state to e)-2.75 E +(xamine for split points, making this reasonably ef)-.165 E(\214cient.) +-.275 E 1.001(While it sounds lik)72 372 R 3.751(eal)-.11 G 1.001 +(ot of w)-3.751 F 1.001(ait time could accumulate, man)-.11 F 3.751(yt) +-.165 G 1.001(ests on a C90 ha)-3.751 F 1.332 -.165(ve c)-.22 H 1.002 +(on\214rmed that this).165 F -.11(wa)72 384 S .232(it time is ne).11 F +2.982(gligible. In)-.165 F .231(searching for 5-6 minutes of w)2.982 F +.231(all-clock time, typical idle times \(per processor\))-.11 F -2.475 +-.22(av e)72 396 T .566(rage between .01 seconds and .1 seconds.).22 F +.566(On rare occasions \(notably v)6.066 F .566(ery simple endg)-.165 F +.567(ame positions)-.055 F .666(where the branching f)72 408 R .666 +(actor is quite lo)-.11 F .665 +(w\) this has reached one second per processor)-.275 F 3.415(,s)-.44 G +.665(till k)-3.415 F .665(eeping the idle)-.11 F .882 +(time per processor do)72 420 R .882 +(wn to less than .3% of the total search time.)-.275 F .883 +(One major reason for this is that the)6.383 F .279 +(code which selects split points is v)72 432 R .279(ery careful, and f) +-.165 F -.22(avo)-.11 G .279 +(rs nodes near the root of the tree, because the sub-).22 F 1.307 +(trees belo)72 444 R 4.057(wt)-.275 G 1.307 +(hose nodes represent a signi\214cant amount of w)-4.057 F 1.307 +(ork that must be completed before another)-.11 F .703 +(split point must be found.)72 456 R .703 +(The only time that processors are idle is while the)6.203 F 3.452(ya) +-.165 G .702(re w)-3.452 F .702(aiting on other pro-)-.11 F .573 +(cessors to pro)72 468 R .573 +(vide tree state information to one idle processor)-.165 F 3.324(,o)-.44 +G 3.324(rw)-3.324 G .574(hile the)-3.324 F 3.324(ya)-.165 G .574(re w) +-3.324 F .574(aiting on one idle pro-)-.11 F .071 +(cessor to select a split point.)72 480 R .071(If this e)5.571 F -.165 +(ve)-.275 G .071(nt is relati).165 F -.165(ve)-.275 G .07 +(ly rare, as it typically is in DTS, then the opportunities).165 F +(for accumulating e)72 492 Q(xcessi)-.165 E .33 -.165(ve i)-.275 H +(dle time are fe).165 E 2.75(wa)-.275 G(nd f)-2.75 E(ar between.)-.11 E +2.75(2.4 The)72 516 R(Split\(\) operation.)2.75 E .315 +(Split\(\) is called whene)72 540 R -.165(ve)-.275 G 3.065(ra).165 G +3.065(ni)-3.065 G .315 +(dle processor has one or more "tree state" blocks to e)-3.065 F .316 +(xamine when attempt-)-.165 F .267(ing to \214nd a split-point.)72 552 R +.266(Split\(\) \214rst attempts to \214nd a good split point \(section \ +three\) and then sets things)5.767 F(up so that the Select\(\) operatio\ +n described later can function correctly)72 564 Q(.)-.715 E EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .557(The \214rst operation performed after a go\ +od split-point is located is to allocate a data structure kno)72 96 R +.557(wn as a)-.275 F 1.231(SPLIT BLOCK.)72 108 R 1.23 +(This data structure is simply an e)6.731 F 1.23 +(xact duplicate of the tree search data structures that)-.165 F .028 +(already e)72 120 R .029(xist in each processor')-.165 F 2.779(sl)-.605 +G .029(ocal memory area.)-2.779 F .029(It contains the v)5.529 F .029 +(arious mo)-.275 F .359 -.165(ve l)-.165 H .029 +(ists, board information,).165 F(scoring information, etc.)72 132 Q .265 +(The Split\(\) operation then copies ALL of the current processor')72 +156 R 3.015(sl)-.605 G .265(ocal tree state information to the SPLIT) +-3.015 F 3.208(BLOCK. \(ALL)72 168 R .458 +(here means that if the current ply is \214v)3.208 F 3.208(e\()-.165 G +.458(5\), then all of the data for plies 1-5 are copied,)-3.208 F -.22 +(bu)72 180 S 4.901(tn).22 G 2.151(ot all of the useless data belo)-4.901 +F 4.901(wp)-.275 G 2.151(ly 5.)-4.901 F 2.151(Note that EVER)7.651 F +2.15(YTHING is copied, so that this global)-.715 F .806 +(\(shared\) memory area has an e)72 192 R .807(xact cop)-.165 F 3.557 +(yo)-.11 G 3.557(ft)-3.557 G .807(he current processor')-3.557 F 3.557 +(ss)-.605 G .807(earch data structures.)-3.557 F .807(It w)6.307 F .807 +(ould no)-.11 F(w)-.275 E .026(be possible for this processor to e)72 +204 R .026(xit, and another processor could cop)-.165 F 2.776(yt)-.11 G +.026(his global data to its pri)-2.776 F -.275(va)-.275 G .025(te mem-) +.275 F .497(ory area and resume the search just as if it were the origi\ +nal processor since it no)72 216 R 3.247(ww)-.275 G .497(ould ha)-3.357 +F .827 -.165(ve a)-.22 H .497(ccess to).165 F -2.365 -.275(ev e)72 228 T +.406(rything the original processor had.).275 F 3.156(\(Note: Cray)5.906 +F .406(Blitz w)3.156 F .405(as written before F)-.11 F .405 +(ortran supported recursion,)-.165 F 1.075 +(and as a result, it did not use the no)72 240 R 3.825(wi)-.275 G 3.825 +(nv)-3.825 G 1.075(ogue "ne)-4.045 F -.055(ga)-.165 G 1.075 +(max" recursi).055 F 1.405 -.165(ve a)-.275 H 1.075 +(lpha/beta search implementation.).165 F .118(As a result, there w)72 +252 R .118(as no problem in implementing the parallel search as e)-.11 F +2.868(xplained. Ne)-.165 F -.055(ga)-.165 G .117(max w).055 F .117 +(ould ha)-.11 F -.165(ve)-.22 G 1.058(made it much more dif)72 264 R +1.058(\214cult, since the call stack is inaccessible to the search code\ + and mo)-.275 F 1.059(ving the tree)-.165 F(state around w)72 276 Q +(ould ha)-.11 E .33 -.165(ve b)-.22 H(een much more dif).165 E +(\214cult [Pearl80].\))-.275 E .733(The Split\(\) operation then passes\ + the address of this SPLIT BLOCK to an)72 300 R 3.483(yp)-.165 G .733 +(rocessors that are currently)-3.483 F .224(idle, so that the)72 312 R +2.974(ym)-.165 G .224(ay be)-2.974 F .224(gin w)-.165 F .224 +(orking at this point immediately)-.11 F 5.725(.T)-.715 G .225 +(he idle processors drop out of their b)-5.725 F(usy)-.22 E -.11(wa)72 +324 S 1.109(it loop since the).11 F 3.859(yn)-.165 G 1.659 -.275(ow h) +-3.859 H -2.475 -.22(av e).275 H 3.859(ap)4.079 G 1.108(ointer to a v) +-3.859 F 1.108(alid SPLIT BLOCK rather than a v)-.275 F 1.108 +(alue of "zero".)-.275 F(The)6.608 E(y)-.165 E(must \214rst cop)72 336 Q +2.75(yt)-.11 G(he global data to their pri)-2.75 E -.275(va)-.275 G +(te memory area, and then be).275 E(gin searching at that point.)-.165 E +.258(The primary reason for cop)72 360 R .258 +(ying ALL of the "splitting" processor')-.11 F 3.009(sd)-.605 G .259 +(ata to the shared memory re)-3.009 F .259(gion is to)-.165 F -.22(avo) +72 372 S 1.046(id an).22 F 3.796(yt)-.165 G 1.045(ype of synchronizatio\ +n delays after searching all branches from the split-point.)-3.796 F +1.045(The speci\214c)6.545 F .607(problem addressed is that the "contro\ +lling" processor \(the one splitting w)72 384 R .608 +(ork for other processors to help)-.11 F .548 +(with\) might choose a branch that is v)72 396 R .548 +(ery simple with a minimum number of nodes and \214nish this branch) +-.165 F .902(quite quickly)72 408 R 6.402(.A)-.715 G .902 +(nother processor might choose a branch that has man)-6.402 F 3.653(yc) +-.165 G .903(hecks and/or search e)-3.653 F(xtensions)-.165 E 1.666 +(and requires an e)72 420 R 1.666(xtended amount of time to search.) +-.165 F 1.666(The controlling processor w)7.166 F 1.665 +(ould often \214nd itself)-.11 F -.11(wa)72 432 S .673 +(iting on other processors to complete their searches and return the v) +.11 F .674(alues for their subtrees before the)-.275 F +(controlling processor could back up the proper v)72 444 Q(alue.)-.275 E +-.44(Wi)72 468 S .375(th the current implementation, this ne).44 F -.165 +(ve)-.275 G 3.125(rh).165 G 3.125(appens. Since)-3.125 F .375 +(ALL processors ha)3.125 F .705 -.165(ve a c)-.22 H .375(omplete cop) +.165 F 3.125(yo)-.11 G 3.125(ft)-3.125 G(he)-3.125 E .694 +(search data, an)72 480 R 3.444(yo)-.165 G 3.444(ft)-3.444 G .694(hem i\ +s capable of \214nishing the search of the nodes in the tree after the \ +split-point is)-3.444 F 2.751(completed. F)72 492 R .001(or e)-.165 F +.001(xample, processor 1 can search from plies 1 through 5 and then ano\ +ther processor selects)-.165 F 1.294(ply=5 as a split-point.)72 504 R +1.295(Processor 2 joins the search at this split-point and selects a br\ +anch to e)6.794 F(xamine.)-.165 E .455(Processor 1 completes the remain\ +der of the branches at this split-point and then sends a HELP command)72 +516 R 1.552 +(to processor 2 so that it can help with the remainder of the comple)72 +528 R 4.303(xb)-.165 G 1.553(ranch processor 2 is searching.)-4.303 F +1.018(When the search \214nally backs up to ply=1, EITHER processor \(b) +72 540 R 1.018(ut not both\) could be in char)-.22 F 1.017(ge of the) +-.198 F .019 +(search at that point; it depends on which one \214nishes \214rst.)72 +552 R .019(In simple terms, this is a "peer)5.519 F .02 +(-to-peer" design,)-.22 F(rather than a "master)72 564 Q(-sla)-.22 E +-.165(ve)-.22 G 2.75("d).165 G(esign, so that all processors are equal.) +-2.75 E EP +%%Page: 9 9 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .093 +(The nice feature of this approach is that whene)72 96 R -.165(ve)-.275 +G 2.842(rA).165 G .092(NY processor runs out of w)-2.842 F .092 +(ork at a split-point, it then)-.11 F .49(assists one of the b)72 108 R +.49(usy processors by \214rst sending a HELP command to force the creat\ +ion of a ne)-.22 F 3.241(ws)-.275 G(plit-)-3.241 E .663 +(point where this idle processor can "join in.")72 120 R .663 +(This feature is implemented by a simple rule that pre)6.163 F -.165(ve) +-.275 G(nts).165 E(an)72 132 Q 3.464(yp)-.165 G .714(rocessor from back\ +ing the search up past a split point, unless \(if and only if\) only on\ +e processor is)-3.464 F -.11(wo)72 144 S .181 +(rking on that split point.).11 F .18(The best visual analogy is the g) +5.68 F .18(ame of "leap-frog" where one processor starts)-.055 F .685(o\ +n a position, another helps it, the \214rst \214nishes and "leap-frogs"\ + the second to a position further into the)72 156 R(tree and helps the \ +second processor search at that point, and so forth.)72 168 Q 2.75 +(2.5 The)72 192 R(Select\(\) operation.)2.75 E 1.079(one of the tw)72 +216 R 3.829(og)-.11 G 1.078 +(oals mentioned when designing the DTS algorithm w)-3.829 F 1.078 +(as to a)-.11 F -.22(vo)-.22 G 1.078(id completely re-writing).22 F .307 +(the search code for Cray Blitz.)72 228 R .308 +(This code \(approximately 10,000 lines of FOR)5.807 F .308 +(TRAN, which are replaced)-.66 F .35(by about 20,000 lines of Cray Asse\ +mbly Language [CAL] when running on the C90\) has been de)72 240 R -.165 +(ve)-.275 G(loped).165 E 1.21(and deb)72 252 R 1.21(ugged o)-.22 F -.165 +(ve)-.165 G 3.96(rap).165 G 1.21 +(eriod of years, and altering it signi\214cantly w)-3.96 F 1.211 +(as something the authors w)-.11 F 1.211(anted to)-.11 F -.22(avo)72 264 +S(id if possible since deb).22 E +(ugging the parallel processing code already loomed as a lar)-.22 E +(ge obstacle.)-.198 E -.165(Fo)72 288 S 3.376(rs).165 G(implicity)-3.376 +E 3.376(,t)-.715 G .626(he design retained the original programming met\ +hodology that a processor maintains the)-3.376 F 1.152 +(tree \(subtree, actually\) it is searching by k)72 300 R 1.152 +(eeping all of the related data in local \(pri)-.11 F -.275(va)-.275 G +1.152(te, task common,).275 F(etc.\) memory so that other processors ca\ +n not "change" this information directly)72 312 Q(.)-.715 E(Ho)72 336 Q +(we)-.275 E -.165(ve)-.275 G 1.079 -.44(r, s).165 H .199 +(ince a group of processors must w).44 F .198 +(ork together at some point within the tree, shared memory is)-.11 F +.022(also required to allo)72 348 R 2.772(wt)-.275 G .022 +(his communication.)-2.772 F .022 +(The simple implementation mechanism we chose w)5.522 F .023(as to mod-) +-.11 F(ify the procedure Select\(\) so that it could w)72 360 Q +(ork in this en)-.11 E(vironment.)-.44 E .716 +(Select\(\) is a procedure called to select the ne)72 384 R .715(xt mo) +-.165 F 1.045 -.165(ve a)-.165 H 3.465(tt).165 G .715 +(he current node in the tree.)-3.465 F(Normally)6.215 E 3.465(,i)-.715 G +3.465(te)-3.465 G(xam-)-3.63 E 1.611(ines the mo)72 396 R 1.941 -.165 +(ve l)-.165 H 1.612(ist in the pri).165 F -.275(va)-.275 G 1.612 +(te memory for the current processor and remo).275 F -.165(ve)-.165 G +4.362(so).165 G 1.612(ne of the mo)-4.362 F -.165(ve)-.165 G 4.362(sf) +.165 G(or)-4.362 E -.165(ex)72 408 S 3.946(amination. At).165 F 3.946 +(as)3.946 G 1.196(plit-point, this is slightly more complicated since m\ +ultiple processors are "sharing")-3.946 F(this mo)72 420 Q .33 -.165 +(ve l)-.165 H(ist.).165 E 1.29 +(Select\(\) is unchanged, the only code that w)72 444 R 1.291 +(as modi\214ed w)-.11 F 1.291 +(as the code that actually calls Select\(\) within)-.11 F 2.909 +(Search\(\). Search\(\))72 456 R .159(simply tests to see if the curren\ +t ply is a split point, and if so it copies the shared mo)2.909 F -.165 +(ve)-.165 G .917(list to the local mo)72 468 R 1.248 -.165(ve l)-.165 H +.918(ist, calls Select\(\) to choose one for searching and then remo) +.165 F -.165(ve)-.165 G 3.668(si).165 G 3.668(tf)-3.668 G .918 +(rom the mo)-3.668 F -.165(ve)-.165 G .531 +(list. Search\(\) then copies the local mo)72 480 R .861 -.165(ve l) +-.165 H .53 +(ist back to the shared one \(all protected by a semaphore so that).165 +F .131(no race conditions arise\).)72 492 R .131(If the current ply is \ +not a split point, Select\(\) is simply called normally)5.631 F 5.632 +(.t)-.715 G .132(he fol-)-5.632 F(lo)72 504 Q 1.494(wing code sho)-.275 +F 1.494(ws ho)-.275 F 4.244(wt)-.275 G 1.494(his w)-4.244 F 1.494 +(as implemented.)-.11 F 1.494 +(The major bene\214t here is that Select\(\) is a v)6.994 F 1.493 +(ery lar)-.165 F(ge)-.198 E .6(block of code, that generates mo)72 516 R +-.165(ve)-.165 G .6(s, orders the list, selects mo).165 F -.165(ve)-.165 +G 3.35(sf).165 G .601(rom the list based on things lik)-3.35 F 3.351(ec) +-.11 G(ap-)-3.351 E 1.49(tures and the e)72 528 R 1.49(xpected g)-.165 F +1.49(ain, killer mo)-.055 F -.165(ve)-.165 G 1.49(s, and so forth.).165 +F 1.49(It w)6.99 F 1.49(as considered v)-.11 F 1.489 +(ery desirable to lea)-.165 F 1.819 -.165(ve t)-.22 H(his).165 E +(completely alone, since the assembly v)72 540 Q +(ersion of this module is se)-.165 E -.165(ve)-.275 G +(ral thousand lines long.).165 E(call Select\(\))99.5 564 Q EP +%%Page: 10 10 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF -.11(wa)72 96 S 2.75(sr).11 G +(eplaced by the follo)-2.75 E(wing lines of code:)-.275 E +(if\(ply .eq. splitl\(taskid\)\) then)99.5 120 Q(call Selget\(\))110.5 +132 Q(call Select\(\))110.5 144 Q(call Selput\(\))110.5 156 Q(else)99.5 +168 Q(call Select\(\))110.5 180 Q(endif)99.5 192 Q .425(In the abo)72 +216 R .755 -.165(ve c)-.165 H .425 +(ode, Selget\(\) sets a semaphore to lock this mo).165 F .755 -.165 +(ve l)-.165 H .425(ist \(there are multiple semaphores so that).165 F +.191(multiple mo)72 228 R .52 -.165(ve l)-.165 H .19(ists can be shared\ + without unnecessary interaction\) and then copies the global mo).165 F +.52 -.165(ve l)-.165 H .19(ist to).165 F .568(the local memory)72 240 R +3.318(.S)-.715 G .568(elect\(\) then operates normally)-3.318 F 6.068 +(.S)-.715 G .568(elput\(\) then copies the mo)-6.068 F .898 -.165(ve l) +-.165 H .569(ist back \(after a mo).165 F -.165(ve)-.165 G +(has been remo)72 252 Q -.165(ve)-.165 G 2.75(df).165 G +(or searching\) and \214nally clears the semaphore.)-2.75 E .752(The v) +72 276 R .751(ector splitl\(taskid\) is set up by the split operation a\ +nd identi\214es the current split point for this pro-)-.165 F .736 +(cessor \(taskid\).)72 288 R .737(It should be noted that this implemen\ +tation is quite good in terms of ef)6.236 F(\214cienc)-.275 E 2.167 +-.715(y, b)-.165 H(ecause).715 E .353(the Selget\(\) \(cop)72 300 R +3.103(ys)-.11 G .352(hared memory to local memory\) and the Selput\(\) \ +\(back to shared memory\) operations)-3.103 F 1.311 +(are rarely used, and on a Cray the)72 312 R 4.061(yv)-.165 G 1.312 +(ectorize quite well and cost v)-4.226 F 1.312(ery little.)-.165 F 1.312 +(Note that this same code)6.812 F -.11(wo)72 324 S .911(rks well withou\ +t parallel processing since Selget\(\) and Selput\(\) are ne).11 F -.165 +(ve)-.275 G 3.661(rc).165 G .911(alled if a Split\(\) operation)-3.661 F +(has not been performed.)72 336 Q 2.75(2.6 The)72 360 R(Mer)2.75 E +(ge\(\) operation.)-.198 E(Whene)72 384 Q -.165(ve)-.275 G 2.897(rap) +.165 G .147(rocessor calls Select\(\) and is told that the mo)-2.897 F +-.165(ve)-.165 G 2.898(sl).165 G .148(ist is empty)-2.898 F 2.898(,t) +-.715 G .148(he \214rst test made by the DTS)-2.898 F .702 +(search algorithm is "is this a split-point?")72 396 R .702 +(If the answer is yes, this processor has computed a v)6.202 F .701 +(alue that)-.275 F .225 +(represents only a subset of the branches from this node.)72 408 R .226 +(The DTS Search no)5.726 F 2.976(wc)-.275 G .226(alls procedure Mer) +-2.976 F .226(ge\(\) to)-.198 F .397(process this partial v)72 420 R +3.147(alue. Mer)-.275 F .396(ge\(\) simply compares the search v)-.198 F +.396(alue from the current partial search with)-.275 F .983 +(the best search v)72 432 R .984(alue for this node yet back)-.275 F +.984(ed up, and remembers the best result.)-.11 F .984 +(It also notes that one)6.484 F 1.367(less processor is w)72 444 R 1.366 +(orking at this split point by decrementing the processor count.)-.11 F +1.366(If this count is no)6.866 F(w)-.275 E -.165(ex)72 456 S .252 +(actly one, the split-point is no longer needed; in this case, Mer).165 +F .252(ge\(\) sends an UNSPLIT command to the)-.198 F +(remaining processor \(described belo)72 468 Q -.715(w.)-.275 G(\)).715 +E .333(After the cleanup is completed via Mer)72 492 R .332 +(ge\(\), the DTS algorithm then returns this processor to its idle loop) +-.198 F .501(where it immediately checks for another split-point to joi\ +n, or else it generates a HELP command to cre-)72 504 R +(ate a split-point.)72 516 Q 2.75(2.7 The)72 540 R +(Unsplit\(\) operation.)2.75 E .076(The ne)72 564 R .076 +(xt-to-last processor w)-.165 F .076(orking on a split point sends an U\ +NSPLIT command to the remaining proces-)-.11 F(sor)72 576 Q 2.818(,w) +-.44 G(hene)-2.818 E -.165(ve)-.275 G 2.818(ri).165 G 2.818<748c>-2.818 +G .068(nds no more w)-2.818 F .068(ork to do at this split point.)-.11 F +.068(The split-point has been completely searched)5.568 F EP +%%Page: 11 11 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF -.165(ex)72 96 S +(cept for the branch being analyzed by the remaining processor).165 E(.) +-.605 E 2.147(When a processor recei)72 120 R -.165(ve)-.275 G 4.897(sa) +.165 G 4.897(nU)-4.897 G 2.147 +(NSPLIT command, it calls procedure Unsplit\(\) to cleanup the split-) +-4.897 F .221(point\(S\) that ha)72 132 R .551 -.165(ve b)-.22 H .221(e\ +en "almost completed" \(recall that the current processor is STILL sear\ +ching a branch).165 F(at one or more of these e)72 144 Q +(xhausted split-points.\))-.165 E .028(Unsplit\(\) performs tw)72 168 R +2.778(oa)-.11 G 2.778(ctions. The)-2.778 F .028(\214rst action it tak) +2.778 F .027(es is to compare the partial score from the split-point) +-.11 F .42(with its o)72 180 R .42 +(wn partial score for that ply and remember the best one.)-.275 F .42 +(It then deallocates the SPLIT BLOCK)5.92 F .982 +(so that this block can be used whene)72 192 R -.165(ve)-.275 G 3.731 +(ra).165 G .981(nother Split\(\) operation is required.)-3.731 F .981 +(After an Unsplit\(\) opera-)6.481 F(tion, all signs of the pre)72 204 Q +(vious Split\(\) operation are gone.)-.275 E 2.75(2.8 The)72 228 R +(Share\(\) operation.)2.75 E 1.051(Since the ef)72 252 R(\214cienc)-.275 +E 3.801(yo)-.165 G 3.801(ft)-3.801 G 1.051 +(he alpha/beta algorithm directly depends on kno)-3.801 F 1.051 +(wing the best scores back)-.275 F 1.052(ed up)-.11 F 1.525 +(through the tree, whene)72 264 R -.165(ve)-.275 G 4.275(rb).165 G 1.525 +(acking up a ne)-4.275 F 4.274(wb)-.275 G 1.524 +(est score to a split-point ply \(by an)-4.274 F 4.274(yo)-.165 G 4.274 +(ft)-4.274 G 1.524(he processors)-4.274 F -.11(wo)72 276 S +(rking at that split-point\), special action is required.).11 E .971 +(The re)72 300 R .971(gular search procedure Backup\(\) w)-.165 F .972 +(as modi\214ed to check for this condition in the same manner as)-.11 F +1.06(Select\(\) described pre)72 312 R(viously)-.275 E 3.81(,i)-.715 G +3.81(tc)-3.81 G 1.06 +(hecks the SPLITL\(i\) \215ag to determine if it is "w)-3.81 F 1.06 +(orking together" with)-.11 F .182(another processor)72 324 R 5.682(.I) +-.605 G 2.932(fs)-5.682 G .182 +(o, it sends a SHARE command to all processors w)-2.932 F .182 +(orking at this split- point.)-.11 F(These)5.683 E .193 +(processors then call Share\(\) to determine if this ne)72 336 R .193 +(wly back)-.275 F .192(ed up v)-.11 F .192(alue is better than the v) +-.275 F .192(alue in this pro-)-.275 F(cessor')72 348 Q 3.565(ss)-.605 G +3.565(earch. If)-3.565 F .815(so, some quick tests for alpha/beta cutof) +3.565 F .816(fs are made to determine if this ne)-.275 F .816(wly a) +-.275 F -.275(va)-.22 G(il-).275 E(able v)72 360 Q(alue w)-.275 E +(ould prune a)-.11 E -.11(wa)-.165 G 2.75(yp).11 G +(art of the tree currently being searched by this processor)-2.75 E(.) +-.605 E .161(This procedure w)72 384 R .161(as added to address tw)-.11 +F 2.911(op)-.11 G 2.91(roblems. \(1\))-2.911 F .16(When a better v)2.91 +F .16(alue is found at a split-point, ef)-.275 F<8c2d>-.275 E(cienc)72 +396 Q 4.368(yd)-.165 G 1.618(emands that all processors be made a)-4.368 +F -.11(wa)-.165 G 1.619 +(re of it as soon as possible in order to maximize the).11 F .109 +(alpha/beta ef)72 408 R(\214cienc)-.275 E 4.289 -.715(y. \()-.165 H +2.859(2\) W).715 F 2.859(ea)-.88 G .109(nticipated the case where the s\ +earch might create a split-point at a location)-2.859 F .717 +(within the tree where either alpha or beta might be unkno)72 420 R .717 +(wn \(this is the idea of speculati)-.275 F 1.048 -.165(ve s)-.275 H +.718(earching to).165 F -.11(ke)72 432 S .59(ep processors b).11 F .59 +(usy described earlier)-.22 F 3.339(.\) Share\(\))-.605 F .589 +(determines these v)3.339 F .589(alues for the current processor when-) +-.275 F -2.365 -.275(ev e)72 444 T 2.75(rt).275 G(he)-2.75 E 2.75(yb) +-.165 G(ecome a)-2.75 E -.275(va)-.22 G(ilable.).275 E 2.75(3. Choosing) +72 468 R(where to split the tree.)2.75 E 1.027(The most important decis\ +ion that the DTS algorithm frequently addresses is where to split the t\ +ree into)72 492 R 1.083(parallel subtrees.)72 504 R 1.083(If it chooses\ + a good split point, performance is good; if it chooses a poor split po\ +int,)6.583 F(performance suf)72 516 Q(fers.)-.275 E(3.1 Node types PV)72 +540 Q 2.75(,C)-1.419 G(UT and ALL.)-2.75 E 3.097(Knuth and Moore clearl\ +y de\214ned three node classes of nodes within the alpha/beta minimax t\ +ree)72 564 R 4.378([Knut75]. While)72 576 R 1.628(their analysis w)4.378 +F 1.628(as centered on a minimal g)-.11 F 1.627 +(ame-tree with perfect mo)-.055 F 1.957 -.165(ve o)-.165 H 1.627 +(rdering, the).165 F EP +%%Page: 12 12 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .386(concepts the)72 96 R 3.136(yp)-.165 G .386 +(resented also apply to "real" alpha/beta trees, e)-3.136 F -.165(ve) +-.275 G 3.136(nt).165 G .386(hough it is impossible to produce per) +-3.136 F(-)-.22 E .611(fect mo)72 108 R .94 -.165(ve o)-.165 H .61 +(rdering [Hyatt89].).165 F .61(In this conte)6.11 F .61 +(xt we use the terminology de)-.165 F -.165(ve)-.275 G .61 +(loped in [Marsland85], which).165 F(uses the terms PV)72 120 Q 2.75(,C) +-1.419 G(UT and ALL instead of type one, tw)-2.75 E 2.75(oa)-.11 G +(nd three.)-2.75 E -.88(Ty)108 144 S .768(pe one \(PV\) nodes.).88 F +.769(The root position is a type one node.)6.268 F .769 +(The \214rst successor)6.269 F .346(of a PV node is also a PV node whil\ +e all other successors of a PV node are CUT)108 156 R 3.17(nodes. PV)108 +168 R .42(nodes require e)3.17 F .421 +(xamination of all their successors.)-.165 F 3.171(AP)5.921 G 3.171(Vn) +-3.171 G .421(ode is easy)-3.171 F .643 +(to recognize, because both alpha and beta are at their original v)108 +180 R .643(alues since noth-)-.275 F(ing has yet been searched.)108 192 +Q -.88(Ty)108 216 S .02(pe tw).88 F 2.77(o\()-.11 G .02(CUT\) nodes.) +-2.77 F 2.771(AC)5.521 G .021 +(UT node is a successor of either a PV node \(as gi)-2.771 F -.165(ve) +-.275 G(n).165 E(abo)108 228 Q -.165(ve)-.165 G 3.434(\)o).165 G 3.433 +(ra)-3.434 G 3.433(nA)-3.433 G .683(LL node.)-3.433 F 3.433(AC)6.183 G +.683(UT node only requires e)-3.433 F .683(xamination of one succes-) +-.165 F .407(sor \(for perfectly ordered g)108 240 R .407(ame trees.\)) +-.055 F .407(This is the node type that we must recog-)5.907 F .99 +(nize and a)108 252 R -.22(vo)-.22 G .989 +(id selecting as a split-point, because with best mo).22 F 1.319 -.165 +(ve o)-.165 H .989(rdering, only).165 F .206 +(one branch needs to be searched, which lea)108 264 R -.165(ve)-.22 G +2.957(sn).165 G 2.957(ow)-2.957 G .207(ork for additional processors,) +-3.067 F(other than w)108 276 Q(ork that is completely unnecessary)-.11 +E(.)-.715 E -.88(Ty)108 300 S 2.43(pe three \(ALL\) nodes.).88 F 2.43 +(An ALL node is a successor of a CUT node and)7.93 F .719(requires e)108 +312 R .72(xamination of all its successor branches.)-.165 F(Ev)6.22 E +.72(en more interesting, mo)-.165 F -.165(ve)-.165 G .335(ordering with\ +in a type three node is completely unimportant and has no ef)108 324 R +.335(fect on)-.275 F 2.053(the total nodes searched.)108 336 R 2.054 +(This is an important node type in a parallel search)7.554 F .806 +(because e)108 348 R -.165(ve)-.275 G .806(ry mo).165 F 1.136 -.165 +(ve m)-.165 H .806(ust be searched, of).165 F .806(fering plenty of w) +-.275 F .805(ork that can be done)-.11 F(in parallel.)108 360 Q 1.164 +(From these de\214nitions, se)72 384 R -.165(ve)-.275 G 1.164 +(ral things become apparent.).165 F 1.164(\(1\) T)6.664 F 1.164 +(ype three \(ALL\) nodes are perfect candi-)-.88 F .276(dates for paral\ +lel searching since all successors must be searched, and the order of t\ +ra)72 396 R -.165(ve)-.22 G .276(rsal for these suc-).165 F .152 +(cessors is unimportant.)72 408 R 2.902(\(2\) T)5.652 F .152(ype tw)-.88 +F 2.902(o\()-.11 G .152(CUT\) nodes must be a)-2.902 F -.22(vo)-.22 G +.153(ided as split points since only one succes-).22 F .225 +(sor must be e)72 420 R 2.975(xamined. If)-.165 F .225 +(such a node is chosen as a split point, e)2.975 F .225 +(xtra branches will be searched, resulting)-.165 F .91(in w)72 432 R .91 +(asted w)-.11 F 3.66(ork. \(3\))-.11 F -.88(Ty)3.66 G .91(pe one \(PV\)\ + nodes appear to be good candidates for parallel search until careful) +.88 F 1.023(study unco)72 444 R -.165(ve)-.165 G 1.023(rs the f).165 F +1.023 +(act that the \214rst successor of a type one node must be completely e) +-.11 F 1.022(xamined before)-.165 F(an)72 456 Q 4.358(yo)-.165 G 4.358 +(ft)-4.358 G 1.608(he other successors.)-4.358 F 1.608(This is required\ + since the \214rst branch establishes a search bound for the)7.108 F +1.174(remainder of the successors, and if the)72 468 R 3.924(ya)-.165 G +1.174(re searched before this bound is kno)-3.924 F 1.174(wn, e)-.275 F +1.174(xtra w)-.165 F 1.174(ork might be)-.11 F(done.)72 480 Q 2.75 +(3.2 Classifying)72 504 R(node types.)2.75 E .563(When a processor gene\ +rates a HELP command, and obtains tree-state data from b)72 528 R .564 +(usy processors, it must)-.22 F .408(\(if possible\) establish a split \ +point so that it \(and other idle processors\) can "join in" and help.) +72 540 R .408(From sec-)5.908 F .39(tion 3.1, it becomes ob)72 552 R .39 +(vious that type ALL nodes mak)-.165 F 3.141(ed)-.11 G .391 +(esirable split points, type PV nodes mak)-3.141 F 3.141(ed)-.11 G(esir) +-3.141 E(-)-.22 E 1.62(able split points AFTER the \214rst successor of\ + the node has been completely searched, and type CUT)72 564 R +(nodes must be a)72 576 Q -.22(vo)-.22 G(ided at all costs.).22 E EP +%%Page: 13 13 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF 1.52(Cray Blitz contains a function T)72 96 R +1.52(ypeNode\(\), that types an)-.88 F 4.27(yn)-.165 G 1.52 +(ode from ply one to the current ply)-4.27 F 9.771(.t)-.715 G(his)-9.771 +E .574(function is called by function Split\(\) to mak)72 108 R 3.323 +(ea)-.11 G 3.323(ni)-3.323 G .573 +(nitial "guess" of the node types for each ply in the cur)-3.323 F(-) +-.22 E(rent processor')72 120 Q 2.75(ss)-.605 G(earch space.)-2.75 E +.239(It mak)72 144 R .239(es the follo)-.11 F .239(wing assumptions.) +-.275 F .239(If, for the current node being tested, the v)5.739 F .24 +(alues of alpha and beta are)-.275 F .06 +(equal to the initial search windo)72 156 R 1.49 -.715(w, t)-.275 H .06 +(hen this node is a PV node.).715 F .059 +(Otherwise, if the current node is at an odd)5.559 F .683 +(ply and alpha is equal to the lo)72 168 R .684 +(wer initial search bound, or the current node is at an e)-.275 F -.165 +(ve)-.275 G 3.434(np).165 G .684(ly and beta is)-3.434 F +(equal to the upper initial search bound, then the node type is CUT)72 +180 Q 5.5(.F)-.814 G(or all other cases, it is type ALL.)-5.665 E .642 +(Split\(\) uses the abo)72 204 R .971 -.165(ve a)-.165 H .641(lgorithm \ +to set its initial guess for each node type from ply 1 through the curr\ +ent).165 F(ply)72 216 Q 5.915(.N)-.715 G -.165(ex)-5.915 G 3.165(ti).165 +G 3.165(te)-3.165 G .416(nters an "o)-3.165 F -.165(ve)-.165 G .416 +(rride" phase.).165 F .416 +(Split\(\) starts at ply=2 and checks the number of mo)5.916 F -.165(ve) +-.165 G 3.166(st).165 G .416(hat ha)-3.166 F -.165(ve)-.22 G 1.132 +(been zeroed by the search \(the number of mo)72 228 R -.165(ve)-.165 G +3.881(st).165 G 1.131(hat ha)-3.881 F 1.461 -.165(ve a)-.22 H 1.131 +(ctually been searched.\)).165 F -.165(Fo)6.631 G 3.881(ra).165 G 3.881 +(nA)-3.881 G 1.131(LL node,)-3.881 F(man)72 240 Q 3.087(ym)-.165 G -.165 +(ove)-3.087 G 3.087(sa).165 G .338(lready searched increases the "con\ +\214dence" that this is truly an ALL node.)-3.087 F -.165(Fo)5.838 G +3.088(rC).165 G .338(UT nodes,)-3.088 F 1.527(if more than one mo)72 252 +R 1.856 -.165(ve h)-.165 H 1.526 +(as been searched, then the con\214dence for this CUT node is lo).165 F +1.526(wered, since it)-.275 F 1.014 +(should not be necessary to search more than one mo)72 264 R 1.344 -.165 +(ve a)-.165 H -6.513 3.764(ta r).165 H 1.015(eal CUT node.)-3.764 F +1.015(In f)6.515 F 1.015(act, if more than some)-.11 F .361(limit of mo) +72 276 R -.165(ve)-.165 G 3.111(sh).165 G .361(as been e)-3.111 F .361 +(xamined \(currently=3\) then the type for this node is o)-.165 F -.165 +(ve)-.165 G .36(rridden and set to ALL,).165 F .161 +(since it appears that mo)72 288 R .491 -.165(ve o)-.165 H .161 +(rdering has someho).165 F 2.912(wf)-.275 G .162 +(ailed to search the best mo)-3.022 F .492 -.165(ve \214)-.165 H .162 +(rst at some pre).165 F .162(vious ply)-.275 F(.)-.715 E .252 +(After this o)72 312 R -.165(ve)-.165 G .251 +(rride phase, a \214nal simple check is made since it is no).165 F 3.001 +(wp)-.275 G .251(ossible to ha)-3.001 F .581 -.165(ve t)-.22 H .471 -.11 +(wo A).165 H .251(LL nodes on).11 F(successi)72 324 Q .784 -.165(ve p) +-.275 H 3.204(lies. If).165 F .455(this happens, the second ALL node pr\ +obably means that the successor to this node is)3.204 F .306 +(really a CUT node and we are resetting the upper/lo)72 336 R .305 +(wer search bounds after searching a wrong \214rst mo)-.275 F -.165(ve) +-.165 G(some)72 348 Q 3(where. The)-.275 F .25(\214nal o)3 F -.165(ve) +-.165 G .251(rride phase will note the second ALL node, and then force \ +the successor of this).165 F .042 +(node to be type CUT since yet another ALL node can')72 360 R 2.792(tf) +-.198 G(ollo)-2.792 E 2.792(wt)-.275 G .042(his one unless mo)-2.792 F +.371 -.165(ve o)-.165 H .041(rdering is hopelessly).165 F 3.847 +(bad. This)72 372 R 1.097(phase of the o)3.847 F -.165(ve)-.165 G 1.097 +(rride code simply allo).165 F 1.097(ws only tw)-.275 F 3.847(oA)-.11 G +1.097(LL nodes to be consecuti)-3.847 F 1.428 -.165(ve i)-.275 H 3.848 +(nt).165 G 1.098(he tree.)-3.848 F .218 +(After the second ALL node, the ne)72 384 R .218(xt node must be CUT) +-.165 F 2.968(,t)-.814 G .218(he ne)-2.968 F .218(xt ALL, etc.)-.165 F +-.165(Fo)5.718 G 2.968(ra).165 G .218(ll of these o)-2.968 F -.165(ve) +-.165 G .218(rrides the).165 F 1.125(con\214dence is v)72 396 R 1.125 +(ery "lo)-.165 F 1.125(w" and, ag)-.275 F 1.125(ain, the number of mo) +-.055 F -.165(ve)-.165 G 3.875(ss).165 G 1.126 +(earched at each ply is used to impro)-3.875 F 1.456 -.165(ve t)-.165 H +(his).165 E(con\214dence.)72 408 Q .116(This has pro)72 432 R -.165(ve) +-.165 G 2.866(nt).165 G 2.865(ob)-2.866 G 2.865(eac)-2.865 G .115 +(ritical step in the DTS algorithm.)-2.865 F 2.865(Am)5.615 G(istak) +-2.865 E 2.865(eh)-.11 G .115(ere produces se)-2.865 F -.165(ve)-.275 G +.115(re problems later).165 F .657(because the search space is going to\ + increase due to searching branches that the sequential search w)72 444 +R(ould)-.11 E .154(be able to a)72 456 R -.22(vo)-.22 G 2.904(id. The) +.22 F .154(initial estimate w)2.904 F .154(as quite good, b)-.11 F .154 +(ut the o)-.22 F -.165(ve)-.165 G .153(rride phase further impro).165 F +-.165(ve)-.165 G 2.903(dt).165 G .153(he reliabil-)-2.903 F .729 +(ity of choosing a good node for a Split\(\) operation.)72 468 R .73 +(This has been modi\214ed more than an)6.23 F 3.48(yo)-.165 G .73 +(ther part of)-3.48 F .838(the DTS code, because Cray Blitz still \(on \ +occasion\) searches trees in parallel that are much lar)72 480 R .838 +(ger than)-.198 F .15(the same tree searched by only one processor)72 +492 R 5.65(.I)-.605 G 2.9(ft)-5.65 G .151 +(his were 100% accurate, then Cray Blitz w)-2.9 F .151(ould produce)-.11 +F(almost linear speedup as additional processors are added to the searc\ +h.)72 504 Q .599(Others ha)72 528 R .929 -.165(ve t)-.22 H .599 +(ackled this "where to split the tree" in dif).165 F .598(ferent w)-.275 +F .598(ays, and ha)-.11 F .928 -.165(ve p)-.22 H .598 +(roduced interesting results).165 F([Akl82,A)72 540 Q(werb)-1.012 E .569 +(uch85,Baudet78,Feldman90, Feldman93,and others].)-.22 F .57 +(Most all were designed for message-)6.07 F .683 +(passing systems, which made choosing split-points more comple)72 552 R +3.433(xs)-.165 G .683(ince it becomes a serious issue when)-3.433 F 2.09 +(communication costs become a major design consideration.)72 564 R 2.091 +(It should be noted that the only serious)7.59 F .877 +(attempts to control tree search o)72 576 R -.165(ve)-.165 G .877 +(rhead all do so at the e).165 F .877(xpense of synchronization/w)-.165 +F .877(ait penalties.)-.11 F .876(In a)6.376 F EP +%%Page: 14 14 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(distrib)72 96 Q .904(uted en)-.22 F .904 +(vironment, this mak)-.44 F .904 +(es a great deal of sense, since the cost of di)-.11 F .904 +(viding a tree into pieces is)-.275 F -.165(ve)72 108 S(ry high.).165 E +(On the Cray architecture, the opposite is true.)5.5 E +(3.3 Choosing a SPLIT ply)72 132 Q .547(The \214rst goal of the Split\(\ +\) procedure is to select an ALL node for splitting since this is the o\ +nly reason-)72 156 R .958(able type of node that w)72 168 R(on')-.11 E +3.708(ta)-.198 G .958(dd an)-3.708 F 3.708(ys)-.165 G .958(earch o) +-3.708 F -.165(ve)-.165 G .958(rhead \(e).165 F .958(xtra nodes.\))-.165 +F .958(Since the o)6.458 F -.165(ve)-.165 G .958(rhead for choosing a) +.165 F .708(SPLIT point is costly)72 180 R 3.457(,am)-.715 G .707(ajor \ +consideration for selecting a split point is to choose a split point th\ +at will)-3.457 F(tak)72 192 Q 3.938(ear)-.11 G 1.188 +(easonable amount of time to search in parallel so Split\(\) w)-3.938 F +(on')-.11 E 3.938(tb)-.198 G 3.939(ei)-3.938 G -2.09 -.44(nv o)-3.939 H +-.11(ke).44 G 3.939(da).11 G -.055(ga)-3.939 G 3.939(in. As).055 F 3.939 +(ag)3.939 G(eneral)-3.939 E .512(rule, nodes at shallo)72 204 R 3.261 +(wd)-.275 G .511(epths represent more w)-3.261 F .511 +(ork than nodes at deep plies, making shallo)-.11 F 3.261(wn)-.275 G +.511(odes desir)-3.261 F(-)-.22 E .486(able split points.)72 216 R .486 +(This can be complicated by at least tw)5.986 F 3.237(of)-.11 G .487 +(eatures of the nodes;)-3.237 F .487(\(1\) the con\214dence of an)5.987 +F .71(ALL node is lo)72 228 R 2.14 -.715(w, m)-.275 H .71(aking it risk) +.715 F 3.46(yt)-.165 G 3.46(os)-3.46 G .709 +(earch it in parallel and possibly introduce e)-3.46 F .709 +(xtra nodes into the tree)-.165 F 1.169 +(search, and \(2\) the node has v)72 240 R 1.169(ery fe)-.165 F 3.919 +(wb)-.275 G 1.169(ranches remaining, so that it will only supply w) +-3.919 F 1.17(ork for a small)-.11 F(number of processors which will fo\ +rce yet another Split\(\) when the remaining processors become idle.)72 +252 Q .461(As can be seen, this is a some)72 276 R .461(what subjecti) +-.275 F .79 -.165(ve d)-.275 H .46 +(ecision, and tuning this code will continue for some time.).165 F .25 +(Other recent modi\214cations to this include questions lik)72 288 R 3 +(e")-.11 G .25(is the king in check at this node?" since this can)-3 F +.26(result in a misleading "w)72 300 R .26(ork estimate.")-.11 F .26 +(Cray Blitz generates pseudo-le)5.76 F -.055(ga)-.165 G 3.009(lm).055 G +-.165(ove)-3.009 G .259(s, and when the king is in).165 F .109 +(check, most of these mo)72 312 R -.165(ve)-.165 G 2.859(sa).165 G .109 +(re, in f)-2.859 F .11(act, ille)-.11 F -.055(ga)-.165 G 2.86(l. If).055 +F .11(these mo)2.86 F -.165(ve)-.165 G 2.86(sa).165 G .11 +(re used to estimate the w)-2.86 F .11(ork to be done at)-.11 F .171 +(this ply)72 324 R 2.921(,ap)-.715 G .17 +(oor SPLIT point will be chosen since man)-2.921 F 2.92(ym)-.165 G -.165 +(ove)-2.92 G 2.92(sa).165 G .17(re a)-2.92 F -.275(va)-.22 G .17 +(ilable, b).275 F .17(ut most will be immediately)-.22 F .332 +(recognized as ille)72 336 R -.055(ga)-.165 G 3.082(lw).055 G .332 +(ith almost no w)-3.082 F .332(ork required to determine this.)-.11 F +(Se)5.833 E -.165(ve)-.275 G .333(ral such features can af).165 F .333 +(fect the)-.275 F 1.625("estimated w)72 348 R 1.625 +(orkload" of a potential split point to mak)-.11 F 4.375(ei)-.11 G 4.375 +(tl)-4.375 G 1.625(ess attracti)-4.375 F -.165(ve)-.275 G 7.125(.A).165 +G 1.625(nother e)-7.125 F 1.624(xample is that the)-.165 F .315 +(search e)72 360 R .316(xtensions used by Cray Blitz at ply=N are af) +-.165 F .316(fected by the e)-.275 F .316 +(xtensions at plies before N in the tree.)-.165 F 1.713 +(The idea is that if something is causing e)72 372 R 1.712 +(xtensions at shallo)-.165 F 4.462(wp)-.275 G 1.712 +(lies, the search should be careful and)-4.462 F -.165(ex)72 384 S .523 +(tend at deeper plies too, to \214nd out what is going on.).165 F .524 +(Therefore, if there are man)6.024 F 3.274(ye)-.165 G .524 +(xtensions before a)-3.439 F .958 +(potential split-point, the subtrees belo)72 396 R 3.708(wt)-.275 G .957 +(hat possible split-point will lik)-3.708 F .957(ely be lar)-.11 F .957 +(ger than normal, a f)-.198 F(act)-.11 E +(that should be considered when choosing from se)72 408 Q -.165(ve)-.275 +G(ral candidate nodes for a split-point.).165 E .309 +(Split\(\) is the single most important function in the DTS algorithm.) +72 432 R .31(When it inadv)5.81 F .31(ertently chooses a CUT)-.165 F +.831(node as a split-point, search o)72 444 R -.165(ve)-.165 G .831 +(rhead increases dramatically).165 F 6.33(.C)-.715 G .83 +(hoosing a PV node potentially increases)-6.33 F 1.145(the search o)72 +456 R -.165(ve)-.165 G 1.146(rhead until the \214rst branch is e).165 F +1.146(xamined and Share\(\) correctly establishes the upper/lo)-.165 F +(wer)-.275 E(search bounds.)72 468 Q 2.75(3.4 Splitting)72 492 R +(at the root)2.75 E .832 +(Splitting the search at the root \(or not\) unco)72 516 R -.165(ve) +-.165 G .832(rs some interesting problems.).165 F .832 +(First, most computer chess)6.332 F .186(programs use the so-called ite\ +rated search where a one ply search is done, then that information is u\ +sed to)72 528 R .137(order the mo)72 540 R -.165(ve)-.165 G 2.887(sf) +.165 G .137(or a tw)-2.887 F 2.887(op)-.11 G .137(ly search, and the in\ +formation from that is used to order a three ply search and)-2.887 F +(so forth.)72 552 Q +(This process is continued until the time allotted for this mo)5.5 E .33 +-.165(ve r)-.165 H(uns out.).165 E 1.096(It should be ob)72 576 R 1.096 +(vious that the reason for doing a "depth+1" search is to \214nd a bett\ +er mo)-.165 F 1.427 -.165(ve t)-.165 H 1.097(han the one).165 F EP +%%Page: 15 15 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .85(found from the "depth" search.)72 96 R .849 +(Often, the program does not change its mind from iteration to iteratio\ +n,)6.35 F .347 +(and, in such circumstances, splitting the tree at the root is an e)72 +108 R .347(xcellent idea.)-.165 F .347(After searching the \214rst root) +5.847 F .314(branch completely)72 120 R 3.064(,s)-.715 G .314 +(earching the remainder in parallel introduces almost no o)-3.064 F +-.165(ve)-.165 G .314(rhead \(some arises due to).165 F .768 +(transposition table interaction.\))72 132 R(Ho)6.269 E(we)-.275 E -.165 +(ve)-.275 G 1.649 -.44(r, w).165 H .769(hen the \214rst mo).44 F 1.099 +-.165(ve s)-.165 H .769(earched is not the best, and the program).165 F +.705(ultimately chooses a dif)72 144 R .705(ferent root mo)-.275 F 1.035 +-.165(ve a)-.165 H 3.455(sb).165 G .705 +(est, searching root branches in parallel causes a problem in)-3.455 F +(timed tournament chess g)72 156 Q(ames.)-.055 E .938(From prior analys\ +is [Knuth75,Hyatt88,Hyatt89,Hsu90] the \214rst branch from the root pro\ +duces a subtree)72 180 R .52(much lar)72 192 R .52(ger than the remaind\ +er of the branches \(when the \214rst branch is best.\))-.198 F .519 +(If the program then must)6.019 F .632 +("change its mind" and select a dif)72 204 R .632(ferent mo)-.275 F .962 +-.165(ve a)-.165 H 3.382(sb).165 G .632(est, this mo)-3.382 F .962 -.165 +(ve w)-.165 H .632(ill also produce a much lar).165 F .633(ger subtree) +-.198 F(than the other mo)72 216 Q -.165(ve)-.165 G 2.75(s. This).165 F +("much lar)2.75 E(ger subtree" causes an interesting problem in timed e) +-.198 E -.165(ve)-.275 G(nts.).165 E .148(Consider a case where the sec\ +ond branch is really the one that the "depth+1" search will ultimately \ +select.)72 240 R .816(After searching the \214rst branch \(using parall\ +el processing\) one processor selects the second mo)72 252 R 1.146 -.165 +(ve i)-.165 H 3.566(nt).165 G(he)-3.566 E .346 +(list \(that is really the best mo)72 264 R -.165(ve)-.165 G 3.095(\)a) +.165 G .345(nd starts searching the v)-3.095 F .345(ery lar)-.165 F .345 +(ge subtree it produces.)-.198 F .345(Other processors)5.845 F -.165(ex) +72 276 S .009(amine other root branches that are unimportant.).165 F +.009(If time runs out before the second branch is completely)5.509 F +-.165(ex)72 288 S .389(amined, the \214rst mo).165 F .719 -.165(ve w) +-.165 H .388(ill be chosen, resulting in the program making a w).165 F +.388(orse mo)-.11 F .718 -.165(ve t)-.165 H .388(han it really has).165 +F 2.948(to. An)72 300 R(alternati)2.948 E .528 -.165(ve i)-.275 H 2.949 +(st).165 G 2.949(oh)-2.949 G -2.475 -.22(av e)-2.949 H .199 +(all processors w)3.169 F .199(ork on the \214rst mo)-.11 F -.165(ve) +-.165 G 2.949(,t).165 G .199(hen all processors w)-2.949 F .199 +(ork on the second)-.11 F(mo)72 312 Q -.165(ve)-.165 G 3.6(,a).165 G .85 +(nd so forth.)-3.6 F .849(Then, when a ne)6.349 F 3.599(wb)-.275 G .849 +(est mo)-3.599 F 1.179 -.165(ve i)-.165 H 3.599(ss).165 G .849 +(earched, all processors search it and complete the)-3.599 F +(search before time runs out.)72 324 Q .883(Some might be quick to sugg\ +est that "the search should notice that the un\214nished mo)72 348 R +1.214 -.165(ve h)-.165 H .884(as produced a).165 F(lar)72 360 Q .429 +(ge tree, and is lik)-.198 F .429(ely about to become a ne)-.11 F 3.179 +(wb)-.275 G .429(est, so don')-3.179 F 3.179(tg)-.198 G -2.365 -.275 +(iv e)-3.179 H .428(up until it has been completed.")3.454 F(Ho)5.928 E +(w-)-.275 E -2.365 -.275(ev e)72 372 T 1.181 -.44(r, t).275 H .301 +(here are tw).44 F 3.052(oi)-.11 G .302(ssues with this:)-3.052 F .302 +(\(1\) just because a root mo)5.802 F .632 -.165(ve p)-.165 H .302 +(roduces a tree se).165 F -.165(ve)-.275 G .302(ral orders of magni-) +.165 F .811(tude lar)72 384 R .811(ger than an)-.198 F 3.561(yo)-.165 G +.811(ther \(than the \214rst\) root mo)-3.561 F 1.141 -.165(ve d)-.165 H +.811(oes not imply that this mo).165 F 1.141 -.165(ve i)-.165 H 3.561 +(sb).165 G(etter)-3.561 E 6.311(.I)-.605 G 3.561(tm)-6.311 G .81 +(ight be)-3.561 F(better)72 396 Q 4.048(,o)-.44 G 4.048(ri)-4.048 G +4.048(tm)-4.048 G 1.298(ight simply be a complicated mo)-4.048 F 1.628 +-.165(ve t)-.165 H 1.299 +(hat leads to positions which stimulate lots of search).165 F -.165(ex) +72 408 S .148(tensions and mak).165 F 2.898(et)-.11 G .148 +(he tree quite lar)-2.898 F 2.898(ge. Therefore,)-.198 F .148 +(it is not safe to simply say the tree so f)2.898 F .148(ar is big, w) +-.11 F(ait,)-.11 E .884(because that might tak)72 420 R 3.634(eas)-.11 G +.884(igni\214cant amount of time to \214nish.)-3.634 F .885 +(And note the major problem here is that)6.385 F .068 +(only one processor is searching that branch should we choose to w)72 +432 R .067(ait for a result.)-.11 F .067(\(2\) "Just w)5.567 F .067 +(aiting" is not)-.11 F 3.879(ap)72 444 S 1.129 +(articularly good plan in a timed e)-3.879 F -.165(ve)-.275 G 3.879 +(nt. Since).165 F 1.129(time is a f)3.879 F(actor)-.11 E 3.879(,u)-.44 G +1.129(sing it wisely is a major part of an)-3.879 F(y)-.165 E 1.055 +(chess program, and ha)72 456 R 1.055(ving to b)-.22 F 1.054(urn man) +-.22 F 3.804(ym)-.165 G 1.054(inutes just because the search can')-3.804 +F 3.804(tr)-.198 G(esolv)-3.804 E 3.804(ew)-.165 G 1.054(hether a mo) +-3.804 F -.165(ve)-.165 G(further do)72 468 Q(wn the ply=1 mo)-.275 E +.33 -.165(ve l)-.165 H(ist is better or not can lead to timing dif).165 +E(\214culties.)-.275 E .252(The dra)72 492 R .252 +(wback to solving this is that we "kno)-.165 F .252 +(w" that all branches at the root should be searched \(time per)-.275 F +(-)-.22 E 1.002(mitting\) and that searching them will cause no e)72 504 +R 1.002(xtra o)-.165 F -.165(ve)-.165 G 1.002 +(rhead \(after the \214rst branch establishes a lo).165 F(wer)-.275 E +.621(search bound, assuming that the \214rst mo)72 516 R .951 -.165 +(ve i)-.165 H 3.371(sa).165 G .621(ctually the best mo)-3.371 F -.165 +(ve)-.165 G 6.121(.T).165 G .621(his is true for a lar)-6.121 F .621 +(ge majority of)-.198 F 1.614(positions, \).)72 528 R 1.614 +(The root is therefore a highly f)7.114 F -.22(avo)-.11 G 1.613 +(rable \(from a search o).22 F -.165(ve)-.165 G 1.613 +(rhead point of vie).165 F 1.613(w\) place to)-.275 F 1.085 +(search in parallel.)72 540 R 1.085(If the entire ply=1 mo)6.585 F 1.415 +-.165(ve l)-.165 H 1.085(ist w).165 F 1.086 +(as searched, then splitting at ply=1 w)-.11 F 1.086(ould w)-.11 F 1.086 +(ork well.)-.11 F(Ho)72 552 Q(we)-.275 E -.165(ve)-.275 G 1.257 -.44 +(r, s).165 H .377(ince time can run out and stop the search, e).44 F +.377(xamining the \214rst fe)-.165 F 3.126(wm)-.275 G -.165(ove)-3.126 G +3.126(so).165 G 3.126(nt)-3.126 G .376(he list \(searching)-3.126 F .942 +(each in succession with all processors w)72 564 R .942 +(orking together on each mo)-.11 F -.165(ve)-.165 G 3.692(\)e).165 G +.942(nsures that the \214rst fe)-3.692 F 3.693(wm)-.275 G -.165(ove) +-3.693 G(s).165 E 1.19(are COMPLETEL)72 576 R 3.94(Ye)-1.1 G 1.19 +(xamined before time runs out. \(Note: in Cray Blitz and Crafty)-4.105 F +3.939(,a)-.715 G 3.939(ni)-3.939 G 1.189(teration is not)-3.939 F EP +%%Page: 16 16 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .398(completed after time has run out.)72 96 R +(Rather)5.898 E 3.148(,t)-.44 G .398(he search stops, the mo)-3.148 F +.728 -.165(ve i)-.165 H 3.148(sm).165 G .398 +(ade, and then the ponder search)-3.148 F .731 +(picks up and continues searching.\))72 108 R 2.491 -.88(We c)6.231 H +.731(hose to accept this inef).88 F(\214cienc)-.275 E 3.481(y\()-.165 G +.73(searching e)-3.481 F .73(xtra nodes\) in order)-.165 F(to let the p\ +rogram change its mind on the last iteration, if the \214rst mo)72 120 Q +.33 -.165(ve i)-.165 H 2.75(sn).165 G(ot best.)-2.75 E .063 +(This often leads to a li)72 144 R -.165(ve)-.275 G .064(ly debate abou\ +t \(a\) whether or not a parallel search should split at the root and \ +\(b\)).165 F .591 +(whether or not the program should completely search the root mo)72 156 +R .921 -.165(ve l)-.165 H .591(ist before stopping for a time limit.) +.165 F 1.76 -.88(We h)72 168 T -2.475 -.22(av e).88 H -.165(ex)2.97 G +(perimented with possible alternati).165 E .33 -.165(ve a)-.275 H +(lgorithms, b).165 E(ut none ha)-.22 E .33 -.165(ve p)-.22 H(ro).165 E +-.165(ve)-.165 G 2.75(nb).165 G(etter to date.)-2.75 E 2.75(4. DTS)72 +192 R(performance results)2.75 E .117(The DTS algorithm w)72 216 R .117 +(as tested using a Cray C916/1024 computer)-.11 F 5.617(.T)-.605 G .117 +(his machine has 16 processors with a)-5.617 F -.165(cy)72 228 S +(cle time of 4.166 nanoseconds, and also has 1024 million w).165 E +(ords of memory \(eight gig)-.11 E(abytes.\))-.055 E(4.1 T)72 252 Q +(esting methodology)-.77 E .829(In producing these results, all testing\ + used the machine in a dedicated mode so that all of the machine')72 276 +R(s)-.605 E .241(memory w)72 288 R .241(as used, re)-.11 F -.055(ga) +-.165 G .242 +(rdless of the number of processors utilized in each test \(e).055 F +.242(xcept for the one-proces-)-.165 F 1.227(sor test, which is e)72 300 +R 1.227(xplained later\).)-.165 F 1.227 +(Often, particularly when using distrib)6.727 F 1.227(uted machines lik) +-.22 F 3.976(et)-.11 G 1.226(he Hyper)-3.976 F(-)-.22 E 4.252(cubes, ad\ +ding additional processors also adds additional memory [Feldmann90,Feld\ +mann93,K)72 312 R(usz-)-.165 E(maul94,Schaef)72 324 Q(fer89,Y)-.275 E +1.535(ang93], ef)-1.1 F(fecti)-.275 E -.165(ve)-.275 G 1.535 +(ly changing tw).165 F 4.285(os)-.11 G 1.534 +(earch parameters at the same time \(number of)-4.285 F .166 +(processors or total computation po)72 336 R .166 +(wer and total memory a)-.275 F -.275(va)-.22 G 2.916(ilable.\) It).275 +F .166(is then dif)2.916 F .166(\214cult to attrib)-.275 F .166 +(ute the per)-.22 F(-)-.22 E .379(formance impro)72 348 R -.165(ve)-.165 +G .379(ment to additional processor po).165 F .378 +(wer alone as the transposition table is e)-.275 F .378(xtremely impor) +-.165 F(-)-.22 E(tant to search performance and making it lar)72 360 Q +(ger often dramatically speeds up search times.)-.198 E .434 +(The testing done to produce the results gi)72 384 R -.165(ve)-.275 G +3.184(nh).165 G .434(erein dif)-3.184 F .434 +(fers from the testing used in pre)-.275 F .434(vious parallel tree) +-.275 F .378(search algorithms [Hyatt88, Hyatt89, Schaef)72 396 R .378 +(fer89, Feldmann90,others].)-.275 F .378 +(Rather than use a group of unre-)5.878 F 1.856 +(lated chess problems, we elected to tak)72 408 R 4.606(eas)-.11 G -.165 +(eg)-4.606 G 1.856(ment of a real chess g).165 F 1.856(ame and ha)-.055 +F 2.187 -.165(ve t)-.22 H 1.857(he program play).165 F .175 +(through it with v)72 420 R .175(arying numbers of processors.)-.275 F +.175(There are tw)5.675 F 2.925(or)-.11 G .175 +(easons for choosing this approach: \(1\) this)-2.925 F .124 +(is what a chess program is designed to do, "play a complete g)72 432 R +.124(ame", not "search random positions" and \(2\))-.055 F 1.346 +(it is well-kno)72 444 R 1.345(wn that parallel algorithms perform bett\ +er when searching deeper trees [Hyatt88,Hyatt89,)-.275 F(Schaef)72 456 Q +4.903(fer89,others]. When)-.275 F 2.153(searching unrelated problems, t\ +here is no "continuity" between problems.)4.903 F .974 +(When searching a series of mo)72 468 R -.165(ve)-.165 G 3.724(sf).165 G +.974(rom the same g)-3.724 F .974 +(ame, the transposition table, the killer mo)-.055 F 1.304 -.165(ve l) +-.165 H .974(ist, the).165 F .105 +(dynamic scoring parameters, all "tie things together" and allo)72 480 R +2.855(wd)-.275 G .105(eeper searches.)-2.855 F .105 +(Note also, that if you are)5.605 F +(iterested in results on a traditional test lik)72 492 Q 2.75(et)-.11 G +(he K)-2.75 E(opek/Bratk)-.385 E 2.75(op)-.11 G(ositions, the)-2.75 E +2.75(ya)-.165 G(re a)-2.75 E -.275(va)-.22 G(ilable in [Hyatt88].).275 E +1.564(The testing methodology w)72 516 R 1.564(as to tak)-.11 F 4.314 +(et)-.11 G 1.564(he 16-processor log produced during the actual g)-4.314 +F 1.563(ame, and then)-.055 F("contri)72 528 Q -.165(ve)-.275 G 4.302 +("t).165 G 1.552(hings so that the "lesser" con\214gurations w)-4.302 F +1.552(ould do the same amount of w)-.11 F 1.552(ork \(roughly\).)-.11 F +(In)7.053 E 1.257(these tests, if the 16 processor search reached 11 pl\ +ies and searched the \214rst 10 root mo)72 540 R -.165(ve)-.165 G 4.007 +(sb).165 G 1.257(efore the)-4.007 F .21 +(search timed out, then all lessor con\214gurations had to also do e)72 +552 R .21(xactly this same search, which led to some)-.165 F .406 +(embarrassingly long search times for one processor as will be seen.)72 +564 R .405(One other minor note is that the sin-)5.905 F 1.222 +(gle processor times appear to search slightly slo)72 576 R 1.222 +(wer than the equi)-.275 F -.275(va)-.275 G 1.222 +(lent parallel searches, which w).275 F(ould)-.11 E EP +%%Page: 17 17 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .019(seem to be counter)72 96 R(-intuiti)-.22 E +-.165(ve)-.275 G 5.518(.H).165 G -.275(ow)-5.518 G -2.365 -.275(ev e) +.275 H .898 -.44(r, d).275 H .018 +(ue to the enormous time required to play through this g).44 F .018 +(ame with-)-.055 F .33(out stopping \(which w)72 108 R .331(ould ha)-.11 +F .661 -.165(ve c)-.22 H .331(leared the transposition table and so for\ +th\) we ran this test on a produc-).165 F .263 +(tion machine, and competed with other processes.)72 120 R .263 +(As a result, memory con\215icts were much higher \(bank)5.763 F 1.866 +(con\215icts to those that are Cray-sa)72 132 R 1.866 +(vvy\) as well as sw)-.22 F 1.866(apping o)-.11 F -.165(ve)-.165 G 1.866 +(rhead which gets char).165 F 1.867(ged to the user)-.198 F(.)-.605 E +(While this is well belo)72 144 Q 2.75(wt)-.275 G(he .1% le)-2.75 E +-.165(ve)-.275 G 2.75(lo).165 G 2.75(fn)-2.75 G +(oise, it is noticeable, and should be remembered.)-2.75 E .978 +(The test positions came from the g)72 168 R .977 +(ame Mchess Pro vs Cray Blitz at the 1993 A)-.055 F .977 +(CM International Com-)-.44 F .112(puter Chess Championship.)72 180 R +.112(\(This g)5.612 F .112(ame is included as Appendix A.\))-.055 F .113 +(This g)5.613 F .113(ame w)-.055 F .113(as chosen after looking)-.11 F +.84(at analysis produced by Cray Blitz during the tournament.)72 192 R +.839(The opening w)6.339 F .839(as a King')-.11 F 3.589(sG)-.605 G .839 +(ambit Accepted)-3.589 F .428 +(where white sacri\214ced a piece for some pa)72 204 R .429 +(wns and a strong attack.)-.165 F .429(C-B sa)5.929 F 3.179(wt)-.165 G +.429(he e)-3.179 F -.275(va)-.275 G .429(luation steadily drop).275 F +.553(as it disco)72 216 R -.165(ve)-.165 G .553(red just ho).165 F 3.303 +(ws)-.275 G .553(trong the attack w)-3.303 F .553(as, then it le)-.11 F +-.165(ve)-.275 G .553(led of).165 F 3.303(fa)-.275 G .552(nd follo) +-3.303 F .552(wed a "tight-rope" for se)-.275 F -.165(ve)-.275 G(ral) +.165 E(mo)72 228 Q -.165(ve)-.165 G 1.286 +(s, making the only possible mo).165 F 1.616 -.165(ve t)-.165 H 1.287 +(hat w).165 F 1.287(ould not lose, then it started f)-.11 F 1.287 +(ailing high repeatedly as it)-.11 F(\214nally survi)72 240 Q -.165(ve) +-.275 G 2.75(dt).165 G(he attack and started a counter)-2.75 E +(-attack that ultimately w)-.22 E(on the g)-.11 E(ame.)-.055 E .275 +(The \214rst position occurs after the sequence of mo)72 264 R -.165(ve) +-.165 G 3.024(s1).165 G 3.024(.e)-3.024 G 3.024(4e)-3.024 G 3.024(52) +-3.024 G 3.024(.N)-3.024 G .274(c3 Nc6 3. f4 e)-3.024 F .274 +(xf4 4. Nf3 g5 5. d4 g4 6.)-.165 F .557(Bc4 gxf3 7. o-o d5)72 276 R .557 +(8. e)6.057 F .557(xd5 Bg4 9. Qd2 ...)-.165 F .558(At this point, C-B w) +6.058 F .558(as "out of book" and quickly disco)-.11 F -.165(ve)-.165 G +(red).165 E .021(that its king w)72 288 R .021(as e)-.11 F .021 +(xposed in the center although it w)-.165 F .021 +(as a piece up and a couple of pa)-.11 F .02(wns do)-.165 F 2.77 +(wn. The)-.275 F -.275(eva)2.77 G(lu-).275 E .972 +(ation steadily dropped for the ne)72 300 R .973(xt fe)-.165 F 3.723(wm) +-.275 G -.165(ove)-3.723 G 3.723(sa).165 G 3.723(sC)-3.723 G .973 +(-B "sa)-3.723 F .973(w" ho)-.165 F 3.723(we)-.275 G .973 +(xposed its king w)-3.888 F 3.723(as. The)-.11 F -.275(eva)3.723 G +(luation).275 E .598(dropped to a point where C-B w)72 312 R .598 +(as about 1/4 pa)-.11 F .597(wn "do)-.165 F .597(wn" at the lo)-.275 F +3.347(wp)-.275 G .597(oint in the g)-3.347 F 3.347(ame. It)-.055 F .597 +(then be)3.347 F -.055(ga)-.165 G 3.347(na).055 G 1.491 +(climb to roughly 1/3 of a pa)72 324 R 1.491(wn "ahead" before disco) +-.165 F -.165(ve)-.165 G 1.492 +(ring that Mchess could force a perpetual dra).165 F -.715(w.)-.165 G +.248(\(This occurred at position 17 where C-B took a long time trying t\ +o \214nd an)72 336 R 2.997(yw)-.165 G .247(ay out of the v)-3.107 F .247 +(ery deep per)-.165 F(-)-.22 E .274(petual check.)72 348 R .274 +(The perpetual w)5.774 F .274(as some 19 plies deep.\))-.11 F -.165(Fo) +5.774 G 3.024(rt).165 G .274(he ne)-3.024 F .274(xt tw)-.165 F 3.024(om) +-.11 G -.165(ove)-3.024 G .274(s, it w).165 F .274(as resigned to a dra) +-.11 F -.715(w,)-.165 G -.22(bu)72 360 S 4.917(tM).22 G 2.167(chess app\ +arently did not search deeply enough to detect the repetition and v) +-4.917 F 2.166(aried, gi)-.275 F 2.166(ving C-B)-.275 F(another chance.) +72 372 Q(From this point on the e)5.5 E -.275(va)-.275 G +(luation climbed steadily).275 E(.)-.715 E .256 +(This particular series of positions of)72 396 R .256 +(fered both "good," "bad" and "normal" positions that C-B searched in) +-.275 F(parallel.)72 408 Q 2.784(A")72 432 S .033 +(good" position is one where the program \214nds the correct mo)-2.784 F +.363 -.165(ve a)-.165 H 2.783(tas).165 G(hallo)-2.783 E 2.783(ws)-.275 G +.033(earch and "sticks with it")-2.783 F .327 +(through later searches and ultimately mak)72 444 R .328(es that mo)-.11 +F -.165(ve)-.165 G 5.828(.T).165 G .328 +(his means that ordering at the root of the tree is)-5.828 F .531 +(perfect, and often means that ordering f)72 456 R .531(arther do)-.11 F +.531(wn in the tree is also quite good, making the search rea-)-.275 F +1.069(sonably ef)72 468 R 3.82(\214cient. These)-.275 F 1.07 +(positions produce good speedups re)3.82 F -.055(ga)-.165 G 1.07 +(rdless of the number of processors used.).055 F +(Positions 20 and 21 are e)72 480 Q(xamples of such positions.)-.165 E +3.761(A")72 504 S 1.01(normal" position is one where the program occasi\ +onally changes its mind at the root, b)-3.761 F 1.01(ut that mo)-.22 F +-.165(ve)-.165 G .143(ordering is still good.)72 516 R .144 +(This lets C-B \214nd the ne)5.643 F 2.894(wb)-.275 G .144(est mo)-2.894 +F .474 -.165(ve a)-.165 H 2.894(tt).165 G .144(he root f)-2.894 F .144 +(aster than it w)-.11 F .144(ould if it could split)-.11 F(the w)72 528 +Q(ork at the root \(pre)-.11 E(vious discussion.\))-.275 E 3.443(A")72 +552 S .692(bad" position is one where e)-3.443 F -.165(ve)-.275 G .692 +(ry iteration un).165 F -.165(ve)-.44 G .692(ils some ne).165 F 3.442 +(wt)-.275 G .692(hreat that the program must then \214nd a)-3.442 F -.11 +(wa)72 564 S 3.25(yt).11 G 3.25(od)-3.25 G .5(efend ag)-3.25 F 3.25 +(ainst. At)-.055 F .5(the be)3.25 F .5(ginning of each ne)-.165 F 3.251 +(wi)-.275 G .501(teration, the best mo)-3.251 F .831 -.165(ve f)-.165 H +.501(rom the pre).165 F .501(vious iteration)-.275 F .707(often f)72 576 +R .707(ails lo)-.11 F 2.137 -.715(w, a)-.275 H .707 +(nd with little help in ordering mo).715 F -.165(ve)-.165 G .707 +(s, the parallel v).165 F .706(ersion of the search be)-.165 F .706 +(gins to search)-.165 F EP +%%Page: 18 18 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .389 +(signi\214cantly more nodes than the sequential v)72 96 R 3.14 +(ersion. These)-.165 F .39(positions typically ha)3.14 F .72 -.165(ve p) +-.22 H .39(oor speedup results).165 F .07 +(when compared with a sequential search.)72 108 R .07(An e)5.57 F .07 +(xcellent e)-.165 F .069(xample of this is position 17.)-.165 F .069 +(This is the position)5.569 F 1.575(where C-B disco)72 120 R -.165(ve) +-.165 G 1.575(rs that it can').165 F 4.325(ta)-.198 G -.22(vo)-4.545 G +1.575(id a dra).22 F 4.325(wb)-.165 G 4.325(yr)-4.325 G 1.575 +(epetition \(with best play by the opponent.\))-4.325 F(Mo)7.076 E -.165 +(ve)-.165 G .923(ordering is poor since prior kno)72 132 R .923 +(wledge of good mo)-.275 F -.165(ve)-.165 G 3.673(si).165 G 3.673(sq) +-3.673 G .923(uickly refuted by the dra)-3.673 F .923 +(wing lines found by)-.165 F(the constantly increasing search depth.)72 +144 Q .276(The results include tw)72 168 R 3.026(os)-.11 G .276 +(ets of numbers for each test, where a test used either one, tw)-3.026 F +.277(o, four)-.11 F 3.027(,e)-.44 G .277(ight or six-)-3.027 F .133 +(teen processors.)72 180 R .133 +(The numbers are the clock time required for the search \(w)5.633 F .133 +(all clock time\) and the number)-.11 F(of nodes searched \(which sho)72 +192 Q(ws ho)-.275 E 2.75(wm)-.275 G(uch e)-2.75 E(xtra w)-.165 E +(ork is added by using additional processors.)-.11 E .256 +(These results are summarized belo)72 216 R 3.006(wi)-.275 G 3.006(nt) +-3.006 G .256(able 3, which can be compared to the results for the tw) +-3.006 F 3.007(op)-.11 G(re)-3.007 E(vious)-.275 E(algorithms.)72 228 Q +.44 LW 417.215 248.95 194.784 248.95 DL 2.75(#p)200.284 258.2 S 17.875 +(rocessors 1)-2.75 F 24.75(2481)24.75 G(6)-24.75 E 417.215 262.95 +194.784 262.95 DL 32.384(speedup 1.0)200.284 272.2 R 13.75 +(2.0 3.7 6.6 11.1)16.5 F 417.215 276.95 194.784 276.95 DL 384.215 262.95 +384.215 276.95 DL 353.965 262.95 353.965 276.95 DL 323.715 262.95 +323.715 276.95 DL 293.465 262.95 293.465 276.95 DL 263.215 262.95 +263.215 276.95 DL 417.215 248.95 417.215 276.95 DL 194.784 248.95 +194.784 276.95 DL 384.215 248.95 384.215 276.95 DL 353.965 248.95 +353.965 276.95 DL 323.715 248.95 323.715 276.95 DL 293.465 248.95 +293.465 276.95 DL 263.215 248.95 263.215 276.95 DL -.88(Ta)233.125 300.4 +S(ble 3 DTS performance results).88 E 2.75(5. Performance)72 324.4 R +(analysis)2.75 E .292(The performance results for DTS are presented in \ +table 4 \(search time for each test position in the g)72 348.4 R(ame\),) +-.055 E 1.243(table 5 \(nodes searched for each test position\) and tab\ +le 6 \(the performance impro)72 360.4 R -.165(ve)-.165 G 1.244 +(ment for each test).165 F(position\).)72 372.4 Q 1.37(The simplest w)72 +396.4 R 1.37(ay to analyze the performance is to e)-.11 F 1.369 +(xamine T)-.165 F 1.369(able 3 which gi)-.88 F -.165(ve)-.275 G 4.119 +(st).165 G 1.369(he speedup for each)-4.119 F 4.238(position. This)72 +408.4 R 1.488(table presents the a)4.238 F -.165(ve)-.22 G 1.489 +(rage speedup for tw).165 F 1.489(o, four)-.11 F 4.239(,e)-.44 G 1.489 +(ight and sixteen processors, and is a)-4.239 F .379 +(summary of the timing results from table 6, gi)72 420.4 R .378 +(ving each position a weight of one and di)-.275 F .378 +(viding the sum of)-.275 F .505(the column by 24.)72 432.4 R .506 +(It is interesting to note that there is an in)6.005 F -.165(ve)-.44 G +.506(rse relationship between speedup and total).165 F 1.163 +(nodes searched, which is e)72 444.4 R 1.162(xactly as e)-.165 F 1.162 +(xpected with DTS.)-.165 F 1.162(Recall that DTS does not allo)6.662 F +3.912(wp)-.275 G 1.162(rocessors to)-3.912 F .328(remain idle for an)72 +456.4 R 3.078(ys)-.165 G .328(igni\214cant amount of time, so that poor\ + speedup results has to be the result of search-)-3.078 F +(ing nodes that are unnecessary)72 468.4 Q 2.75(,e)-.715 G +(xactly as the ra)-2.915 E 2.75(wd)-.165 G(ata gi)-2.75 E -.165(ve)-.275 +G 2.75(ns).165 G(ho)-2.75 E(ws.)-.275 E -.165(Fo)72 492.4 S 3.441(rt) +.165 G .691 +(he older Cray XMP machines with a maximum of four processors, an a) +-3.441 F -.165(ve)-.22 G .69(rage speedup of tw).165 F 3.44(o\()-.11 G +(tw)-3.44 E(o)-.11 E .194 +(processors\) and 3.7 \(four processors\) looks e)72 504.4 R .194 +(xtremely ef)-.165 F 2.944(\214cient. Mo)-.275 F .195 +(ving up to an eight processor machine)-.165 F 1.013 +(\(the old YMP line is an e)72 516.4 R 1.013 +(xample\) produces a speedup of 6.6 which, ag)-.165 F 1.013 +(ain, is a reasonable result.)-.055 F(Here)6.512 E .334(doubling the nu\ +mber of processors from four to eight produces a performance impro)72 +528.4 R -.165(ve)-.165 G .334(ment f).165 F .334(actor of 1.8.)-.11 F +(Ho)72 540.4 Q(we)-.275 E -.165(ve)-.275 G 2.493 -.44(r, p).165 H 1.613 +(ushing this further be).44 F 1.613(gins to sho)-.165 F 4.363(wj)-.275 G +1.613(ust ho)-4.363 F 4.363(wd)-.275 G(if)-4.363 E 1.612 +(\214cult parallelizing an alpha/beta tree search)-.275 F 1.164 +(really is.)72 552.4 R 1.164 +(The speedup of 11.1 for 16 processors means that o)6.664 F -.165(ve) +-.165 G 3.915(ro).165 G 1.165(ne quarter of the C90')-3.915 F 3.915(sc) +-.605 G 1.165(ycles were)-4.08 F -.11(wa)72 564.4 S 2.903(sted. F).11 F +.153(or these tests, processor idle time a)-.165 F -.165(ve)-.22 G .153 +(raged under tw).165 F 2.903(os)-.11 G .153 +(econds for each position \(per processor\),)-2.903 F EP +%%Page: 19 19 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(sho)72 96 Q .549 +(wing that the parallel search e)-.275 F .55(xamined a signi\214cant nu\ +mber of nodes that the sequential search didn')-.165 F(t)-.198 E(\(e)72 +108 Q 1.019(xamine T)-.165 F 1.018 +(able 2 and compare the 1cpu node counts column to an)-.88 F 3.768(yo) +-.165 G 3.768(ft)-3.768 G 1.018(he others.)-3.768 F -.165(Fo)6.518 G +3.768(rp).165 G 1.018(osition 17 it is)-3.768 F(ob)72 120 Q 1.22 +(vious that the program searched almost three times as man)-.165 F 3.97 +(yn)-.165 G 1.22(odes with 16 processors as it did with)-3.97 F .087 +(one, so that, e)72 132 R -.165(ve)-.275 G 2.837(nt).165 G .086 +(hough the entire machine \(16 processors\) w)-2.837 F .086(as b)-.11 F +(usy)-.22 E 2.836(,t)-.715 G .086(he majority of the processors were) +-2.836 F(doing unnecessary w)72 144 Q(ork.)-.11 E .297(Cray Blitz count\ +s the number of split operations that it attempts, as part of its b)72 +168 R .297(uilt-in performance analy-)-.22 F 3.562(sis. This)72 180 R +.812(count is af)3.562 F .811(fected by tw)-.275 F 3.561(op)-.11 G 3.561 +(arameters; \(1\))-3.561 F .811(the e)3.561 F .811 +(xtra nodes searched by the program, and \(2\) the)-.165 F 1.872 +(total search time.)72 192 R 1.873(In ef)7.373 F 1.873 +(fect, the number of splits per unit of time \(in)-.275 F -.165(ve)-.44 +G 1.873(rsely\) follo).165 F 1.873(ws the e)-.275 F 1.873(xtra nodes) +-.165 F .218(searched by the program.)72 204 R -.165(Fo)5.718 G 2.968 +(rt).165 G .218(hese test positions, the SPLIT count ranged from a lo) +-2.968 F 2.968(wo)-.275 G 2.968(f3)-2.968 G .218(07 to a high of)-2.968 +F -.165(ove)72 216 S 3.225(r1).165 G 3.225(20,000! As)-3.225 F 3.225(ar) +3.225 G .476(esult, this data has not been presented since the speedup \ +table and time tables accu-)-3.225 F 1.63 +(rately predict the split counts obtained from the tests.)72 228 R 1.629 +(The best speedup \(and the fe)7.13 F 1.629(west e)-.275 F 1.629 +(xtra nodes\))-.165 F .716(occurs on positions where fe)72 240 R 3.467 +(ws)-.275 G .717(plit operations are attempted.)-3.467 F 2.477 -.88 +(To a)6.217 H -.22(vo).66 G .717(id a situation of "information o).22 F +-.165(ve)-.165 G -.22(r-).165 G<8d6f>72 252 Q .095 +(w" additional statistics g)-.275 F .095(athered by C-B ha)-.055 F .425 +-.165(ve b)-.22 H .094(een omitted since statistical analysis sho).165 F +.094(ws strong corre-)-.275 F .407(lation among all of the metrics.)72 +264 R .408(One e)5.908 F .408 +(xample is that C-B counts the number of times a processor starts a) +-.165 F .648(parallel task only to be stopped by another because mo)72 +276 R .978 -.165(ve o)-.165 H .648(rdering w).165 F .648 +(as not optimal.)-.11 F .648(These "early stops")6.148 F +(correspond with the "split operations attempted" and with the "e)72 288 +Q(xtra nodes" quite well.)-.165 E 1.25(The most immediate problem in th\ +e current algorithm is that the parallel search e)72 312 R 1.25 +(xamines a signi\214cant)-.165 F .413(number of e)72 324 R .413 +(xtra nodes that the sequential algorithm does not.)-.165 F .413(Much w) +5.913 F .412(ork remains to determine just ho)-.11 F(w)-.275 E -.11(fa) +72 336 S 2.773(rt).11 G .024(his can be reduced.)-2.773 F(Intuiti)5.524 +E -.165(ve)-.275 G(ly).165 E 2.774(,i)-.715 G 2.774(ti)-2.774 G 2.774 +(sn)-2.774 G .024(ot possible to reduce the number of e)-2.774 F .024 +(xtra nodes to zero since this)-.165 F -.11(wo)72 348 S 1.702 +(uld require nearly perfect mo).11 F 2.032 -.165(ve o)-.165 H 4.452 +(rdering. The).165 F(rele)4.452 E -.275(va)-.275 G 1.702 +(nt question is whether or not it is possible to).275 F .418 +(choose a split point more accurately than the present algorithm does.) +72 360 R .419(If some information were a)5.919 F -.275(va)-.22 G(ilable) +.275 E .446(that might be used to predict ho)72 372 R 3.196(wg)-.275 G +.446(ood mo)-3.196 F .776 -.165(ve o)-.165 H .446 +(rdering is at a particular node, better split points might be).165 F +(chosen.)72 384 Q -.165(Fo)72 408 S 3.053(rc).165 G .303 +(urrent machines with sixteen processors \(and e)-3.053 F -.165(ve)-.275 +G 3.053(nf).165 G .303(or future potential supercomputers with up to 64) +-3.053 F .279(processors\) the processor idle time in the current algor\ +ithm does not pose a signi\214cant problem.)72 420 R .278(The cur)5.778 +F(-)-.22 E 1.43(rent idle times of tw)72 432 R 4.181(ot)-.11 G 4.181(ot) +-4.181 G 1.431(hree seconds o)-4.181 F -.165(ve)-.165 G 4.181(ram).165 G +1.761 -.165(ove t)-4.181 H 1.431(hat tak).165 F 1.431 +(es 200 to 500 seconds does not af)-.11 F 1.431(fect the)-.275 F .475(s\ +earch times signi\214cantly for small numbers of processors \(2-16\), b) +72 444 R .475(ut for really lar)-.22 F .474(ge numbers of proces-)-.198 +F(sors, something must be done to a)72 456 Q -.22(vo)-.22 G +(id running into Amdahl').22 E 2.75(sL)-.605 G -.165(aw)-2.75 G(.)-.55 E +.143(This result compares f)72 480 R -.22(avo)-.11 G .143 +(rably with the DPVS \(Dynamic PVS\) algorithm de).22 F -.165(ve)-.275 G +.144(loped for Phoenix \(Schaef-).165 F 3.365(fer89]. The)72 492 R -.165 +(ove)3.365 G .615(rall algorithms seem quite similar).165 F 3.365(,b) +-.44 G .615(ut ag)-3.585 F .615(ain, DTS is designed for a much dif) +-.055 F .614(ferent com-)-.275 F 2.718 +(munication mechanism \(shared memory\) and can o)72 504 R -.165(ve) +-.165 G 2.719(rlook some things that Phoenix [Schaef).165 F(fer89],) +-.275 E(Zugzw)72 516 Q .746(ang [Feldman93], *Socrates [K)-.11 F .746 +(uszmaul], and others ha)-.165 F 1.076 -.165(ve t)-.22 H 3.496(ob).165 G +3.496(ev)-3.496 G .746(ery concerned about because the)-3.661 F .725(co\ +mmunication costs are so signi\214cant in those message passing archite\ +ctures used.)72 528 R .726(In f)6.226 F .726(act, perhaps the)-.11 F +1.313(Deep Thought/Deep Blue hardw)72 540 R 1.312 +(are comes closest to the architecture used by Cray Blitz, b)-.11 F +1.312(ut e)-.22 F -.165(ve)-.275 G 4.062(nt).165 G(his)-4.062 E 1.102 +(chess-speci\214c architecture still does not ha)72 552 R 1.432 -.165 +(ve a u)-.22 H 1.103 +(niform shared memory system that is global across all).165 F +(processors and chess processors [Hsu90].)72 564 Q EP +%%Page: 20 20 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(It')72 96 Q 3.367(su)-.605 G .616(nfortunate th\ +at shared memory is an architectural design feature that doesn')-3.367 F +3.366(ts)-.198 G .616(cale to lar)-3.366 F .616(ge numbers)-.198 F .39(\ +of processors, because CB might produce some interesting performance re\ +sults with really lar)72 108 R .39(ge numbers)-.198 F 1.413 +(of processors.)72 120 R(Ho)6.913 E(we)-.275 E -.165(ve)-.275 G 2.293 +-.44(r, t).165 H 1.413(his is not the case, and it is doubtful that a C\ +ray-class machine will support).44 F .474(shared memory on more than 64\ + processors, using a high-speed interconnect lik)72 132 R 3.224(et)-.11 +G .474(he Cray machines use.)-3.224 F .032 +(As a result, this algorithm really will only scale as f)72 144 R .031 +(ar as a shared memory architecture scales.)-.11 F(An)5.531 E 2.781(yd) +-.165 G(elays)-2.781 E 1.782(\(such as those in some architectures that\ + use a hierarchical memory or)72 156 R -.055(ga)-.198 G 1.783 +(nization with v).055 F 1.783(arying delays)-.275 F .496 +(depending on ho)72 168 R 3.246(wf)-.275 G .496 +(ar the memory is from the requesting processor\) will certainly ha) +-3.356 F .826 -.165(ve a)-.22 H 3.246(na).165 G(dv)-3.246 E .496 +(erse ef)-.165 F(fect)-.275 E(on DTS.)72 180 Q EP +%%Page: 21 21 +%%BeginPageSetup +BP +%%EndPageSetup +.44 LW 418.139 88.75 193.86 88.75 DL/F0 11/Times-Roman@0 SF(processors) +298.673 98 Q 418.139 102.75 193.86 102.75 DL 23.375(pos 1)199.36 112 R +35.75(248)35.75 G(16)-6.875 E 418.139 116.75 193.86 116.75 DL 16.5(12) +209.139 126 S 13.75(,830 1,415)-16.5 F 22(832 435)24.75 F(311)16.5 E +418.139 130.75 193.86 130.75 DL 16.5(22)209.139 140 S 13.75(,849 1,424) +-16.5 F 22(791 438)24.75 F(274)16.5 E 418.139 144.75 193.86 144.75 DL +16.5(33)209.139 154 S 13.75(,274 1,637)-16.5 F 22(884 467)24.75 F(239) +16.5 E 418.139 158.75 193.86 158.75 DL 16.5(42)209.139 168 S 13.75 +(,308 1,154)-16.5 F 22(591 349)24.75 F(208)16.5 E 418.139 172.75 193.86 +172.75 DL 16.5(51)209.139 182 S 22(,584 792 440 243)-16.5 F(178)16.5 E +418.139 186.75 193.86 186.75 DL 16.5(64)209.139 196 S 13.75 +(,294 2,147 1,160)-16.5 F 13.75(670 452)24.75 F 418.139 200.75 193.86 +200.75 DL 16.5(71)209.139 210 S 22(,888 993 524 273)-16.5 F(187)16.5 E +418.139 214.75 193.86 214.75 DL 16.5(87)209.139 224 S 13.75 +(,275 3,637 1,966 1,039 680)-16.5 F 418.139 228.75 193.86 228.75 DL 16.5 +(93)209.139 238 S 13.75(,940 1,970 1,094)-16.5 F 13.75(635 398)24.75 F +418.139 242.75 193.86 242.75 DL 13.75(10 2,431 1,215)203.639 252 R 22 +(639 333)24.75 F(187)16.5 E 418.139 256.75 193.86 256.75 DL 13.75 +(11 3,062 1,531)203.639 266 R 22(827 425)24.75 F(247)16.5 E 418.139 +270.75 193.86 270.75 DL 13.75(12 2,518 1,325)203.639 280 R 22(662 364) +24.75 F(219)16.5 E 418.139 284.75 193.86 284.75 DL 13.75(13 2,131 1,121) +203.639 294 R 22(560 313)24.75 F(192)16.5 E 418.139 298.75 193.86 298.75 +DL 13.75(14 1,871)203.639 308 R 22(935 534 296)24.75 F(191)16.5 E +418.139 312.75 193.86 312.75 DL 13.75(15 2,648 1,324)203.639 322 R 22 +(715 378)24.75 F(243)16.5 E 418.139 326.75 193.86 326.75 DL 13.75 +(16 2,347 1,235)203.639 336 R 22(601 321)24.75 F(182)16.5 E 418.139 +340.75 193.86 340.75 DL 13.75(17 4,884 2,872 1,878 1,085 814)203.639 350 +R 418.139 354.75 193.86 354.75 DL 22(18 646 358 222 124)203.639 364 R +(84)22 E 418.139 368.75 193.86 368.75 DL 13.75(19 2,983 1,491)203.639 +378 R 22(785 426)24.75 F(226)16.5 E 418.139 382.75 193.86 382.75 DL +13.75(20 7,473 3,736 1,916 1,083 530)203.639 392 R 418.139 396.75 193.86 +396.75 DL 13.75(21 3,626 1,813)203.639 406 R 22(906 489)24.75 F(237)16.5 +E 418.139 410.75 193.86 410.75 DL 13.75(22 2,560 1,347)203.639 420 R 22 +(691 412)24.75 F(264)16.5 E 418.139 424.75 193.86 424.75 DL 13.75 +(23 2,039 1,019)203.639 434 R 22(536 323)24.75 F(206)16.5 E 418.139 +438.75 193.86 438.75 DL 13.75(24 2,563 1,281)203.639 448 R 22(657 337) +24.75 F(178)16.5 E 418.139 452.75 193.86 452.75 DL 387.889 116.75 +387.889 452.75 DL 346.639 116.75 346.639 452.75 DL 305.389 116.75 +305.389 452.75 DL 264.139 116.75 264.139 452.75 DL 222.889 116.75 +222.889 452.75 DL 418.139 88.75 418.139 452.75 DL 193.86 88.75 193.86 +452.75 DL 387.889 102.75 387.889 452.75 DL 346.639 102.75 346.639 452.75 +DL 305.389 102.75 305.389 452.75 DL 264.139 102.75 264.139 452.75 DL +222.889 88.75 222.889 452.75 DL -.88(Ta)235.297 476.2 S(ble 4 Search T) +.88 E(ime in Seconds)-.385 E EP +%%Page: 22 22 +%%BeginPageSetup +BP +%%EndPageSetup +.44 LW 497.889 88.75 114.11 88.75 DL/F0 11/Times-Roman@0 SF(processors) +298.673 98 Q 497.889 102.75 114.11 102.75 DL 38.5(pos 1)119.61 112 R 66 +(248)66 G(16)-2.75 E 497.889 116.75 114.11 116.75 DL 22(18)129.389 126 S +19.25(7,735,974 89,052,012)-22 F 13.75 +(105,025,123 109,467,495 155,514,410)16.5 F 497.889 130.75 114.11 130.75 +DL 22(28)129.389 140 S 19.25(8,954,757 90,289,077)-22 F 13.75 +(100,568,301 110,988,161 137,965,406)16.5 F 497.889 144.75 114.11 144.75 +DL 16.5(31)129.389 154 S 13.75 +(01,302,792 102,822,332 111,433,074 117,366,515 119,271,093)-16.5 F +497.889 158.75 114.11 158.75 DL 22(47)129.389 168 S 19.25 +(1,726,853 72,802,754 74,853,409 88,137,085)-22 F(104,230,094)16.5 E +497.889 172.75 114.11 172.75 DL 22(54)129.389 182 S 19.25 +(9,386,616 50,127,414 55,834,316 61,619,298 89,506,306)-22 F 497.889 +186.75 114.11 186.75 DL 16.5(61)129.389 196 S 13.75 +(33,238,718 135,237,296 146,562,594 168,838,428 226,225,307)-16.5 F +497.889 200.75 114.11 200.75 DL 22(75)129.389 210 S 19.25 +(8,593,747 62,602,792 66,243,490 68,868,878 93,575,946)-22 F 497.889 +214.75 114.11 214.75 DL 16.5(82)129.389 224 S 13.75 +(25,906,282 229,294,872 248,496,917 261,728,552 340,548,431)-16.5 F +497.889 228.75 114.11 228.75 DL 16.5(91)129.389 238 S 13.75 +(22,264,617 124,098,584 138,226,951 159,930,005 199,204,874)-16.5 F +497.889 242.75 114.11 242.75 DL 19.25 +(10 75,301,353 76,430,872 80,651,716 83,656,702 93,431,597)123.889 252 R +497.889 256.75 114.11 256.75 DL 19.25(11 95,321,494 96,751,315)123.889 +266 R 13.75(104,853,646 107,369,070 123,994,812)16.5 F 497.889 270.75 +114.11 270.75 DL 19.25(12 79,975,416 85,447,418 85,657,884 94,000,085) +123.889 280 R(112,174,209)16.5 E 497.889 284.75 114.11 284.75 DL 19.25 +(13 66,100,160 70,622,802 70,796,754 78,834,155 96,053,649)123.889 294 R +497.889 298.75 114.11 298.75 DL 19.25 +(14 58,099,574 58,971,066 67,561,507 74,791,668 95,627,150)123.889 308 R +497.889 312.75 114.11 312.75 DL 19.25 +(15 84,143,340 85,405,488 92,557,676 97,486,065)123.889 322 R +(124,516,703)16.5 E 497.889 326.75 114.11 326.75 DL 19.25 +(16 75,738,094 80,920,173 79,039,499 84,141,904 94,701,972)123.889 336 R +497.889 340.75 114.11 340.75 DL 13.75 +(17 154,901,225 184,970,278 242,480,013 279,166,418 416,426,105)123.889 +350 R 497.889 354.75 114.11 354.75 DL 19.25 +(18 20,266,629 22,856,254 28,443,165 31,608,146 42,454,639)123.889 364 R +497.889 368.75 114.11 368.75 DL 19.25(19 93,858,903 95,266,785)123.889 +378 R 13.75(100,527,830 108,742,238 114,692,731)16.5 F 497.889 382.75 +114.11 382.75 DL 13.75 +(20 231,206,390 234,674,482 241,284,621 271,751,263 264,493,531)123.889 +392 R 497.889 396.75 114.11 396.75 DL 13.75 +(21 112,457,464 114,144,324 114,425,474 123,247,294 118,558,091)123.889 +406 R 497.889 410.75 114.11 410.75 DL 19.25 +(22 81,302,340 86,865,131 89,432,576)123.889 420 R 13.75 +(106,348,704 135,196,568)16.5 F 497.889 424.75 114.11 424.75 DL 19.25 +(23 63,598,940 64,552,923 68,117,815 81,871,010)123.889 434 R +(103,621,303)16.5 E 497.889 438.75 114.11 438.75 DL 19.25 +(24 80,413,971 81,620,179 83,919,196 85,810,169 90,074,814)123.889 448 R +497.889 452.75 114.11 452.75 DL 429.139 116.75 429.139 452.75 DL 357.639 +116.75 357.639 452.75 DL 286.139 116.75 286.139 452.75 DL 214.639 116.75 +214.639 452.75 DL 143.139 116.75 143.139 452.75 DL 497.889 88.75 497.889 +452.75 DL 114.11 88.75 114.11 452.75 DL 429.139 102.75 429.139 452.75 DL +357.639 102.75 357.639 452.75 DL 286.139 102.75 286.139 452.75 DL +214.639 102.75 214.639 452.75 DL 143.139 88.75 143.139 452.75 DL -.88 +(Ta)238.911 476.2 S(ble 5).88 E -.88(To)5.5 G(tal Nodes Searched).88 E +EP +%%Page: 23 23 +%%BeginPageSetup +BP +%%EndPageSetup +.44 LW 393.582 88.75 218.418 88.75 DL/F0 11/Times-Roman@0 SF(processors) +298.866 98 Q 393.582 102.75 218.418 102.75 DL 13.943(pos 1)224.11 112 R +24.75(2481)20.625 G(6)-24.75 E 393.582 116.75 218.418 116.75 DL 16.5 +(112)234.082 126 S 13.75(.0 3.4 6.5)-16.5 F(9.1)22 E 393.582 130.75 +218.418 130.75 DL 16.5(212)234.082 140 S 13.75(.0 3.6 6.5 10.4)-16.5 F +393.582 144.75 218.418 144.75 DL 16.5(312)234.082 154 S 13.75 +(.0 3.7 7.0 13.7)-16.5 F 393.582 158.75 218.418 158.75 DL 16.5(412) +234.082 168 S 13.75(.0 3.9 6.6 11.1)-16.5 F 393.582 172.75 218.418 +172.75 DL 16.5(512)234.082 182 S 13.75(.0 3.6 6.5)-16.5 F(8.9)22 E +393.582 186.75 218.418 186.75 DL 16.5(612)234.082 196 S 13.75 +(.0 3.7 6.4)-16.5 F(9.5)22 E 393.582 200.75 218.418 200.75 DL 16.5(711) +234.082 210 S 13.75(.9 3.6 6.9 10.1)-16.5 F 393.582 214.75 218.418 +214.75 DL 16.5(812)234.082 224 S 13.75(.0 3.7 7.0 10.7)-16.5 F 393.582 +228.75 218.418 228.75 DL 16.5(912)234.082 238 S 13.75(.0 3.6 6.2)-16.5 F +(9.9)22 E 393.582 242.75 218.418 242.75 DL 13.75(10 1 2.0 3.8 7.3 13.0) +228.582 252 R 393.582 256.75 218.418 256.75 DL 13.75 +(11 1 2.0 3.7 7.2 12.4)228.582 266 R 393.582 270.75 218.418 270.75 DL +13.75(12 1 1.9 3.8 6.9 11.5)228.582 280 R 393.582 284.75 218.418 284.75 +DL 13.75(13 1 1.9 3.8 6.8 11.1)228.582 294 R 393.582 298.75 218.418 +298.75 DL 13.75(14 1 2.0 3.5 6.3)228.582 308 R(9.8)22 E 393.582 312.75 +218.418 312.75 DL 13.75(15 1 2.0 3.7 7.0 10.9)228.582 322 R 393.582 +326.75 218.418 326.75 DL 13.75(16 1 1.9 3.9 7.3 12.9)228.582 336 R +393.582 340.75 218.418 340.75 DL 13.75(17 1 1.7 2.6 4.5)228.582 350 R +(6.0)22 E 393.582 354.75 218.418 354.75 DL 13.75(18 1 1.8 2.9 5.2) +228.582 364 R(7.7)22 E 393.582 368.75 218.418 368.75 DL 13.75 +(19 1 2.0 3.8 7.0 13.2)228.582 378 R 393.582 382.75 218.418 382.75 DL +13.75(20 1 2.0 3.9 6.9 14.1)228.582 392 R 393.582 396.75 218.418 396.75 +DL 13.75(21 1 2.0 4.0 7.4 15.3)228.582 406 R 393.582 410.75 218.418 +410.75 DL 13.75(22 1 1.9 3.7 6.2)228.582 420 R(9.7)22 E 393.582 424.75 +218.418 424.75 DL 13.75(23 1 2.0 3.8 6.3)228.582 434 R(9.9)22 E 393.582 +438.75 218.418 438.75 DL 13.75(24 1 2.0 3.9 7.6 14.4)228.582 448 R +393.582 452.75 218.418 452.75 DL -.22(av)223.918 462 S 16.5(g12).22 G +13.75(.0 3.7 6.6 11.1)-16.5 F 393.582 466.75 218.418 466.75 DL 360.582 +116.75 360.582 466.75 DL 330.332 116.75 330.332 466.75 DL 300.082 116.75 +300.082 466.75 DL 269.832 116.75 269.832 466.75 DL 247.832 116.75 +247.832 466.75 DL 393.582 88.75 393.582 466.75 DL 218.418 88.75 218.418 +466.75 DL 360.582 102.75 360.582 466.75 DL 330.332 102.75 330.332 466.75 +DL 300.082 102.75 300.082 466.75 DL 269.832 102.75 269.832 466.75 DL +247.832 88.75 247.832 466.75 DL -.88(Ta)224.798 490.2 S(ble 6).88 E +-.165(Pa)5.5 G(rallel Processing Speedup).165 E 2.75(6. Future)72 514.2 +R -.11(wo)2.75 G(rk).11 E .824(Perhaps the most signi\214cant future w) +72 538.2 R .824 +(ork for this algorithm lies in selecting split points more accurately) +-.11 F(.)-.715 E -.165(Fo)72 550.2 S 4.713(rs).165 G 1.963 +(ome positions, the current Split\(\) algorithm performs admirably) +-4.713 F 7.462(.F)-.715 G 1.962(or others, it performs poorly)-7.627 F +(.)-.715 E(An)72 562.2 Q(ything that impro)-.165 E -.165(ve)-.165 G 2.75 +(st).165 G(he "poor" cases has a positi)-2.75 E .33 -.165(ve e)-.275 H +-.275(ff).165 G(ect on o).275 E -.165(ve)-.165 G(rall performance.).165 +E EP +%%Page: 24 24 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .071(There are at least tw)72 96 R 2.822(oa)-.11 +G .072(pproaches to this problem.)-2.822 F .072 +(One is to more accurately \214nd good split points \(some-)5.572 F .721 +(thing that might be impossible in a signi\214cant number of positions\ +\).)72 108 R .72(Another is to de)6.22 F -.165(ve)-.275 G .72 +(lop some sort of).165 F .501 +(con\214dence in a list of split points, someho)72 120 R 3.251(we)-.275 +G .501(liminating those that are potentially bad.)-3.251 F .502 +(After eliminating)6.002 F .511(such split points, the o)72 132 R -.165 +(ve)-.165 G .511(rhead should drop signi\214cantly).165 F 6.011(.U)-.715 +G(nfortunately)-6.011 E 3.261(,d)-.715 G .511 +(etecting such split points is not)-3.261 F(easy)72 144 Q 5.882(.T)-.715 +G .382(he \214rst step will lik)-5.882 F .383 +(ely be more detailed analysis of the trees searched by C-B.)-.11 F .383 +(The problem with)5.883 F .434(this is that these trees re)72 156 R .434 +(gularly e)-.165 F .433(xceed one billion nodes on a T90, making the v) +-.165 F .433(olume of data some)-.22 F(what)-.275 E(lar)72 168 Q 3.063 +(ge! Such)-.198 F(lar)3.063 E .313(ge trees require recognizing a speci\ +\214c performance feature and then adding instructions to)-.198 F .156 +(the code to measure the feature "in situ" since analyzing such a lar)72 +180 R .156(ge tree by visual inspection is impracti-)-.198 F(cal.)72 192 +Q .913(The current algorithm depends on rapid information sharing and u\ +ses shared memory to implement this)72 216 R 4.45(sharing. The)72 228 R +(ne)4.449 E 1.699(xt logical step in algorithm de)-.165 F -.165(ve)-.275 +G 1.699(lopment is to mo).165 F 2.029 -.165(ve t)-.165 H -2.31 -.275 +(ow a).165 H 1.699(rd a distrib).275 F 1.699(uted architecture.)-.22 F +-.44(Wi)72 240 S .091(th HIPPI and/or other high-performance processor \ +interconnects, a distrib).44 F .091(uted v)-.22 F .092 +(ersion of this algorithm)-.165 F 1.738(should deli)72 252 R -.165(ve) +-.275 G 4.488(rh).165 G 1.738(igh performance if care is tak)-4.488 F +1.737(en to control task granularity \(which is not an issue on)-.11 F +(machines lik)72 264 Q 2.75(et)-.11 G(he C90/T90 with shared memory) +-2.75 E(.\))-.715 E(7. Bibliograph)72 288 Q(y)-.055 E 1.053(S. Akl, D. \ +Barnard, and R. Doran, "The Design, Analysis and Implementation of a P) +72 312 R 1.054(arallel Alpha-Beta)-.165 F 2.925(Algorithm", IEEE T)72 +324 R 2.925(ransactions on P)-.385 F 2.924 +(attern Analysis and Machine Intelligence, P)-.165 F 2.924 +(AMI-4, \(2\) \(1982\),)-1.012 F(\(192-203\).)72 336 Q 1.392(B. A)72 360 +R(werb)-1.012 E 1.392(uch, "A Ne)-.22 F 4.142(wD)-.275 G(istrib)-4.142 E +1.393(uted Depth-First Search Algorithm", Information Processing Letter\ +s \(20\))-.22 F(\(1985\) 147-150.)72 372 Q .363(G. Baudet, "The Design \ +and Analysis of Algorithms for Asynchronous Multiprocessors", Ph. D Dis\ +serta-)72 396 R(tion, Carne)72 408 Q(gie-Mellon Uni)-.165 E -.165(ve) +-.275 G(rsity).165 E 2.75(,P)-.715 G(ittsb)-2.75 E(ur)-.22 E(gh, P)-.198 +E 2.75(a. \(1978\).)-.165 F .892(M. Campbell, "Algorithms for the P)72 +432 R .892(arallel Search of Game T)-.165 F .892 +(rees", M. Sc. Thesis, T)-.385 F .892(echnical Report TR)-.77 F +(81-8, Computer Science Department, Uni)72 444 Q -.165(ve)-.275 G +(rsity of Alberta, Edmonton \(1981\).).165 E 4.095(RF)72 468 S 1.345 +(eldmann, B. Monieni, P)-4.095 F 4.095(.M)-1.221 G 1.345 +(ysliwietz and O. V)-4.095 F(ornber)-1.419 E(ger)-.198 E 4.095(,")-.44 G +(Distrib)-4.095 E 1.345(uted g)-.22 F 1.344(ame tree search," in P)-.055 +F(arallel)-.165 E +(algorithms for machine intelligence and pattern recognition \(1990\).) +72 480 Q 3(RF)72 504 S .25(eldmann, "Game T)-3 F .251 +(ree Search on Massi)-.385 F -.165(ve)-.275 G .251(ly P).165 F .251 +(arallel Systems," Ph.D. Theses, Uni)-.165 F -.165(ve)-.275 G .251 +(rsity of P).165 F(aderborn,)-.165 E(August, 1993.)72 516 Q(R. Fink)72 +540 Q(el and J. Fishb)-.11 E(urn, "P)-.22 E(arallelism in Alpha-Beta Se\ +arch", Arti\214cial Intelligence \(1982\) 89-106.)-.165 E 1.706 +(F-h Hsu, "Lar)72 564 R 1.705(ge scale parallelism of alpha-beta search\ +: an algorithmic and architectural study)-.198 F 1.705(," Ph.D.)-.715 F +(Thesis, Carne)72 576 Q(gie-Mellon Uni)-.165 E -.165(ve)-.275 G +(rsity \(1990\).).165 E EP +%%Page: 25 25 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF .025(R. Hyatt, B. Suter)72 96 R 2.775(,a)-.44 G +.025(nd H. Nelson, "A P)-2.775 F .026(arallel Alpha/Beta T)-.165 F .026 +(ree Searching Algorithm," P)-.385 F .026(arallel Computing)-.165 F +(10 \(1989\) 299-308.)72 108 Q 1.052(R. Hyatt, "A High-Performance P)72 +132 R 1.052(arallel Algorithm to Search Depth-First Game T)-.165 F 1.051 +(rees," Ph.D. Disserta-)-.385 F(tion, Uni)72 144 Q -.165(ve)-.275 G +(rsity of Alabama at Birmingham, 1988.).165 E 1.7(R. Hyatt, A. Go)72 168 +R(wer)-.275 E 4.45(,a)-.44 G 1.7(nd H. Nelson, "Cray Blitz", Adv)-4.45 F +1.7(ances in Computer Chess 4, Per)-.275 F -.055(ga)-.198 G 1.701 +(mmon Press).055 F(\(1986\) \(8-18\).)72 180 Q .293 +(R. Hyatt, H. Nelson, A. Go)72 204 R(wer)-.275 E 3.043(,")-.44 G .292 +(Cray Blitz - 1984 Chess Champion", T)-3.043 F .292 +(elematics and Informatics \(2\) \(4\),)-.77 F(Per)72 216 Q -.055(ga) +-.198 G(mmon Press Ltd. \(1986\) \(299-305\).).055 E .119(D. Knuth and \ +R. Moore, "An Analysis of Alpha-Beta Pruning", Arti\214cial Intelligenc\ +e 6 \(1975\) \(293-326\).)72 240 R(B. K)72 264 Q +(uszmaul, "Synchronized MIMD Computing," Ph.D. Thesis, MIT)-.165 E 2.75 +(,1)-.814 G(994.)-2.75 E 2.239(G. Lindstrom, "The K)72 288 R 2.569 -.165 +(ey N)-.275 H 2.239(ode Method: A Highly P).165 F 2.239 +(arallel Alpha-Beta Algorithm", T)-.165 F 2.238(echnical Report)-.77 F +(UUCS 83-101, Department of Computer Science, Uni)72 300 Q -.165(ve) +-.275 G(rsity of Utah, 1983.).165 E 1.628 -.814(T. M)72 324 T +(arsland and J. Schaef).814 E(fer)-.275 E 2.75(,C)-.44 G +(omputers, Chess and Cognition, Springer)-2.75 E(-V)-.22 E(erlag, 1990.) +-1.221 E 1.913 -.814(T. M)72 348 T .285(arsland and M. Campbell, "P).814 +F .286(arallel Search of Strongly Ordered Game T)-.165 F .286(rees", A) +-.385 F .286(CM Computing Sur)-.44 F(-)-.22 E -.165(vey)72 360 S 2.75 +(s\().165 G(4\) \(1982\) \(533-551\).)-2.75 E 2.905 -.814(T. A)72 384 T +4.027(.M).814 G 1.277(arsland and F)-4.027 F 4.027(.P)-.88 G(opo)-4.027 +E 4.026(wich, "P)-.275 F 1.276(arallel Game-tree Search", IEEE T)-.165 F +1.276(ransactions on P)-.385 F 1.276(attern Analysis)-.165 F +(and Machine Intelligence, P)72 396 Q(AMI-7, \(1985\) \(442-452\).) +-1.012 E 2.523 -.814(T. M)72 420 T .895(arsland, M. Campbell, and A. Ri) +.814 F -.165(ve)-.275 G .896(ra, "P).165 F .896 +(arallel Search of Game T)-.165 F .896(rees", T)-.385 F .896 +(echnical Report TR 80-7,)-.77 F(Computing Science Department, Uni)72 +432 Q -.165(ve)-.275 G(rsity of Alberta, Edmonton \(1980\).).165 E 2.851 +-.814(T. M)72 456 T 1.222(arsland and M. Campbell, "Methods for P).814 F +1.222(arallel Search of Game T)-.165 F 1.222 +(rees", Proceedings of the 1981)-.385 F +(International Joint Conference on Arti\214cial Intelligence.)72 468 Q +3.843 -.814(T. M)72 492 T 2.215(arsland, M. Olafsson, and J. Schaef).814 +F(fer)-.275 E 4.966(,")-.44 G 2.216(Multiprocessor T)-4.966 F 2.216 +(ree-Search Experiments", Adv)-.385 F 2.216(ances in)-.275 F +(Computer Chess 4, Per)72 504 Q -.055(ga)-.198 G +(mmon Press \(1986\) \(37-51\).).055 E 3.234(M. Ne)72 528 R 3.234 +(wborn, "A P)-.275 F 3.233 +(arallel Search Chess Program", Proceedings, A)-.165 F 3.233 +(CM Annual Conference, \(1985\),)-.44 F(\(272-277\).)72 540 Q .826 +(J. Pearl, "Scout: A Simple Game-Searching Algorithm with Pro)72 564 R +-.165(ve)-.165 G 3.577(nO).165 G .827 +(ptimal Properties", Proceedings of)-3.577 F(the First Annual National \ +Conference on Arti\214cial Intelligence, Stanford, \(1980\).)72 576 Q EP +%%Page: 26 26 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF 2.219 -.88(F. P)72 96 T(opo).88 E .459 +(wich and T)-.275 F 3.208(.M)-.814 G .458(arsland, "P)-3.208 F .458 +(arabelle: Experiments with a P)-.165 F .458(arallel Chess Program", T) +-.165 F .458(echnical Report)-.77 F +(TR 83-7, Computing Science Department, Uni)72 108 Q -.165(ve)-.275 G +(rsity of Alberta, Edmonton \(1983\).).165 E .612(J. Schaef)72 132 R +(fer)-.275 E 3.362(,")-.44 G(Distrib)-3.362 E .612(uted g)-.22 F .612 +(ame-tree search," Journal of P)-.055 F .612(arallel and Distrib)-.165 F +.612(uted Computing 6 \(2\) \(1989\),)-.22 F(90-114.)72 144 Q .133 +(I. Steinber)72 168 R 2.883(ga)-.198 G .133(nd M. Solomon, "Searching g) +-2.883 F .132 +(ame trees in parallel," Proceedings of the International Confer)-.055 F +(-)-.22 E(ence on P)72 180 Q(arallel Processing \(V)-.165 E +(ol 3\) \(1990\), 9-17.)-1.419 E 1.89(Z. Y)72 204 R 1.89(ang and T)-1.1 +F 4.64(.M)-.814 G 1.89(arsland, "Global States and T)-4.64 F 1.89 +(ime in Distrib)-.385 F 1.89(uted Systems," IEEE Computer Society)-.22 F +(Press, No)72 216 Q -.165(ve)-.165 G(mber 1993.).165 E EP +%%Page: 27 27 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 11/Times-Roman@0 SF(Appendix A)72 96 Q([Ev)72 120 Q(ent "23rd A) +-.165 E(CM International Computer Chess Championship"])-.44 E +([Site "Indianapolis, MD"])72 132 Q([Date "02.14.1993"])72 144 Q +([Round "?"])72 156 Q([White "Mchess Pro"])72 168 Q +([Black "Cray Blitz"])72 180 Q([Result "0-1"])72 192 Q .78(1. e4)72 204 +R .78(e5 2. Nc3 Nc6 3. f4)6.28 F -.165(ex)6.28 G .78(f4 4. Nf3 g5 5. d4) +.165 F .78(g4 6. Bc4 gxf3 7. o-o d5 8. e)6.28 F .78 +(xd5 Bg4 9. Qd2 Na5 10.)-.165 F .744 +(Bb5+ c6 11. Qxf4 Nf6 12. Re1+ Kd7 13. dxc6+ bxc6 14. Ne4 Nx)72 216 R +.744(e4 15. Qxg4+ Kc7 16. Rx)-.165 F .744(e4 cxb5 17.)-.165 F 1.054 +(Qxf3 Qd7 18. Rf4 Be7 19. Rxf7 Raf8 20. Bf4+ Kb6 21. Be5 Rhg8 22. c3)72 +228 R 1.054(Nc6 23. Re1 Qe8 24. Rxf8)6.554 F .718 +(Qxf8 25. Qd5 Rg5 26. a4)72 240 R .718(bxa4 27. c4)6.218 F(Nx)6.218 E +.718(e5 28. Rx)-.165 F .718(e5 Rx)-.165 F .718(e5 29. Qx)-.165 F .719 +(e5 Qd8 30. c5+ Kb5 31. Qe2+ Kb4)-.165 F .585(32. Qd3 Bf6 33. Qc3+ Kb5 \ +34. Qd3+ Kc6 35. Qf3+ Kd7 36. Qe4 Qe7 37. Qb7+ K)72 252 R .585 +(e8 38. Qa8+ Qd8 39.)-.275 F .911(Qc6+ Kf7 40. Qb7+ Kf8 41. d5)72 264 R +.911(Qe7 42. Qb8+ Kf7 43. Kf1 Bxb2 44. g4)6.411 F .912 +(Bc3 45. Kf2 Qxc5+ 46. Kf1)6.411 F(Qc4+ 47. Kf2 Qd4+ 48. Kf3 Qd1+ 49. K) +72 276 Q(e3 Bd2+ 50. Kf2 Qe1+ 51. Kg2 Qe2+)-.275 E EP +%%Trailer +end +%%EOF diff --git a/parallel/the-aphid-parallel.pdf b/parallel/the-aphid-parallel.pdf new file mode 100755 index 0000000..0b34c02 Binary files /dev/null and b/parallel/the-aphid-parallel.pdf differ diff --git a/parallel/the-aphid-parallel.ps b/parallel/the-aphid-parallel.ps new file mode 100755 index 0000000..71e3ce2 --- /dev/null +++ b/parallel/the-aphid-parallel.ps @@ -0,0 +1,3515 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: aphidcut.dvi +%%Pages: 5 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%DocumentFonts: Times-Bold Times-Roman Times-Italic Helvetica-Bold +%%+ Courier +%%EndComments +%DVIPSCommandLine: dvips aphidcut +%DVIPSParameters: dpi=300, compressed, comments removed +%DVIPSSource: TeX output 1996.07.17:1230 +%%BeginProcSet: texc.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]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /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 +%%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 300 300 (aphidcut.dvi) +@start /Fa 2 13 df11 DI +E /Fb 61[12 12 70[15 17 17 1[17 19 10 15 15 1[19 19 19 +27 10 2[10 19 19 10 17 19 17 19 19 13[19 2[23 2[31 2[17 +12 3[23 27 25 1[23 6[12 5[19 6[12 9 4[12 39[{}38 37.500000 +/Times-Italic rf /Fc 55[12 5[12 16[19 54[17 19 19 27 +19 19 10 15 12 1[19 19 19 29 10 19 1[10 19 19 12 17 19 +17 19 17 3[12 1[12 3[35 27 27 23 21 25 1[21 27 1[33 1[27 +15 12 27 27 21 23 27 25 25 27 6[10 19 19 19 19 19 19 +19 19 19 19 1[9 12 9 2[12 12 40[{}65 37.500000 /Times-Roman +rf /Fd 1 111 df110 D E /Fe 23 119 df<1380EA0100120212065AA25AA25AA35AA412E0 +AC1260A47EA37EA27EA27E12027EEA0080092A7C9E10>40 D<7E12407E12307EA27EA27E +A37EA41380AC1300A41206A35AA25AA25A12205A5A092A7E9E10>I<1306ADB612E0A2D8 +0006C7FCAD1B1C7E9720>43 D<5A1207123F12C71207B3A5EAFFF80D1C7C9B15>49 +DI< +130CA2131C133CA2135C13DC139CEA011C120312021204120C1208121012301220124012 +C0B512C038001C00A73801FFC0121C7F9B15>52 D<007FB512C0B612E0C9FCA8B612E06C +14C01B0C7E8F20>61 D97 D +100 DI<12FC121CAA137C1387EA1D03001E1380121CAD +38FF9FF0141D7F9C17>104 D<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C> +I<12FC121CB3A9EAFF80091D7F9C0C>108 D<39FC7E07E0391C838838391D019018001E +EBE01C001C13C0AD3AFF8FF8FF8021127F9124>IIII<3803E080EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1B +EA03E3EA0003A7EB1FF0141A7F9116>III<1204A4120CA2121C123CEA +FFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120C +EA0E1B3803E3F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA07 +04A2EA0388A213C8EA01D0A2EA00E0A3134013127F9116>I E /Ff +173[25 82[{}1 41.666668 /Courier rf /Fg 134[23 2[23 25 +14 23 16 1[25 25 25 1[12 2[12 25 25 14 23 25 23 1[23 +13[28 2[28 32 3[30 1[12 30 1[25 1[30 2[30 13[23 23 23 +2[12 46[{}31 41.666668 /Helvetica-Bold rf /Fh 137[23 +1[15 18 20 1[25 23 25 38 13 2[13 25 1[15 20 2[25 23 12[30 +25 2[28 36 1[43 3[18 36 3[33 2[33 12[23 23 23 23 2[11 +46[{}29 45.833332 /Times-Bold rf /Fi 134[17 1[24 2[9 +13 11 1[17 17 17 26 9 2[9 17 17 11 15 17 2[15 12[20 35[17 +1[8 11 8 44[{}22 33.333332 /Times-Roman rf /Fj 1 50 df<1218127812981218 +AC12FF08107D8F0F>49 D E /Fk 2 4 df0 +D<1203A4EAC30CEAE31CEA7338EA1FE0EA0780A2EA1FE0EA7338EAE31CEAC30CEA0300A4 +0E127D9215>3 D E /Fl 1 49 df<1204120EA2121CA31238A212301270A21260A212C0 +A2070F7F8F0A>48 D E /Fm 1 50 df<120C121C12EC120CAFEAFFC00A137D9211>49 +D E /Fn 69[18 8[21 1[23 23 3[18 47[18 21 21 30 21 21 +12 16 14 21 21 21 21 32 12 21 12 12 21 21 14 18 21 18 +21 18 3[14 1[14 1[30 1[39 30 30 25 23 28 1[23 30 30 37 +25 30 16 14 30 30 23 25 30 28 28 30 5[12 12 21 21 21 +21 21 21 21 21 21 21 12 10 14 10 2[14 14 14 1[35 37[{}76 +41.666668 /Times-Roman rf /Fo 10 123 df<13F8EA030C380E0604EA1C0738380308 +0030138800701390A200E013A0A214C01480A3EA6007EB0B8838307190380F80E016127E +911B>11 DI<90B512E09038F001C03901C003809038800700 +EB000E141E0002131C5C5CC75A495A495A49C7FC5B131E131C5BEB7002495AEA01C0EA03 +8048485A5A000E1318485B48137048485AB5FC1B1C7E9B1C>90 D97 +D100 D103 D110 +D<001C13C0EA27011247A238870380A2120EA2381C0700A438180E20A3EA1C1E380C2640 +3807C38013127E9118>117 D<001CEBC080392701C1C0124714C03987038040A2120EA2 +391C070080A3EC0100EA1806A2381C0E02EB0F04380E13083803E1F01A127E911E>119 +D122 D E /Fp 133[16 +18 1[28 18 21 12 16 16 1[21 21 21 30 12 18 1[12 21 21 +12 18 21 18 21 21 7[23 1[35 2[23 1[25 1[25 30 5[14 30 +3[30 1[25 25 18[10 14 10 2[14 14 40[{}39 41.666668 /Times-Italic +rf /Fq 135[25 36 1[28 17 19 22 1[28 25 28 41 14 28 1[14 +28 25 17 22 28 22 28 25 9[50 2[33 1[36 1[30 6[19 39 1[30 +33 36 36 1[36 11[25 25 25 25 25 2[12 46[{}38 50.000000 +/Times-Bold rf /Fr 2 104 df102 D<12F8120FEA03806C7E6C +7EB113707F131EEB03C0EB1E0013385B5BB1485A485A000FC7FC12F812317DA419>I +E /Fs 134[25 2[25 25 14 19 17 1[25 25 25 39 14 25 14 +14 25 25 17 22 25 22 25 22 11[36 30 28 5[44 2[19 1[36 +36 1[30 36 33 33 36 46 9[25 3[25 25 2[12 1[12 44[{}40 +50.000000 /Times-Roman rf /Ft 2 13 df11 +DI E /Fu 139[20 1[27 2[30 1[50 17 2[17 +33 30 1[27 1[27 1[30 12[40 33 2[37 6[23 47 3[43 2[43 +65[{}18 59.999973 /Times-Bold rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 400 187 a Fu(The)14 b(APHID)h(Parallel)d Ft(\013\014)19 +b Fu(Sear)o(ch)14 b(Algorithm)487 345 y Fs(Mark)e(G.)h(Brockington)e +(and)i(Jonathan)f(Schaef)o(fer)368 403 y(Department)g(of)g(Computing)f +(Science,)i(University)f(of)g(Alberta)567 461 y(Edmonton,)h(Alberta)f +(T6G)g(2H1)h(Canada)602 519 y Fr(f)p Fs(brock,)f(jonathan)p +Fr(g)p Fs(@cs.ualberta.ca)308 694 y Fq(Abstract)-41 794 +y Fp(This)j(paper)g(intr)n(oduces)h(the)f(APHID)i(\(Asynchr)n(onous)f +(Par)o(-)-91 844 y(allel)g(Hierar)n(chical)i(Iterative)f(Deepening\))g +(game-tr)n(ee)h(sear)n(ch)-91 894 y(algorithm.)36 b(APHID)19 +b(r)n(epr)n(esents)i(a)d(departur)n(e)h(fr)n(om)g(the)f(ap-)-91 +944 y(pr)n(oaches)12 b(used)f(in)g(practice.)17 b(Instead)11 +b(of)g(parallelism)e(based)j(on)-91 993 y(the)k(minimal)f(sear)n(ch)j +(tr)n(ee,)i(APHID)d(uses)g(a)g(truncated)e(game-)-91 +1043 y(tr)n(ee)f(and)f(all)g(of)g(the)g(leaves)h(of)f(that)g(tr)n(ee)h +(ar)n(e)h(sear)n(ched)g(in)e(par)o(-)-91 1093 y(allel.)24 +b(APHID)14 b(has)g(been)g(pr)n(ogrammed)g(as)g(an)f(easy)i(to)e(imple-) +-91 1143 y(ment,)c(game-independent)f Fo(\013\014)k Fp(library)n(,)d +(and)f(has)h(been)h(tested)f(on)-91 1193 y(several)g(game-playing)d(pr) +n(ograms.)13 b(Results)8 b(for)g(an)g(Othello)e(pr)n(o-)-91 +1242 y(gram)h(ar)n(e)h(pr)n(esented)g(her)n(e.)14 b(The)8 +b(algorithm)t(yields)f(good)g(parallel)-91 1292 y(performance)k(on)f(a) +g(network)h(of)f(workstations,)f(without)g(using)g(a)-91 +1342 y(shar)n(ed)i(transposition)c(table.)-91 1485 y +Fq(1.)13 b(Intr)o(oduction)-41 1567 y Fn(The)f(alpha-beta)g(\()p +Fo(\013\014)r Fn(\))g(minimax)g(tree)g(search)h(algorithm)e(has)-91 +1612 y(proven)h(to)h(be)g(a)h(dif)o(\256cult)e(algorithm)f(to)i +(parallelize.)22 b(Although)-91 1658 y(simulations)8 +b(predict)g(excellent)h(parallel)g(performance,)i(most)e(re-)-91 +1704 y(sults)k(are)h(based)g(on)f(an)h(unreasonable)g(set)f(of)g +(assumptions.)24 b(In)-91 1749 y(practice,)12 b(knowing)d(where)j(to)e +(initiate)g(parallel)g(activity)g(is)h(dif)o(\256-)-91 +1795 y(cult)g(since)g(the)h(result)e(of)i(searching)f(one)h(node)f(at)g +(a)h(branch)g(may)-91 1841 y(obviate)d(the)h(parallel)g(work)g(of)g +(the)g(other)g(branches.)-41 1886 y(In)d(real-world)f(implementations,) +h(such)h(as)g(high)e(performance)-91 1932 y(chess,)20 +b(checkers)f(and)e(Othello)f(game-playing)h(programs,)i(the)-91 +1978 y(programs)13 b(suf)o(fer)h(from)f(three)h(major)f(sources)h(of)g +(parallel)f(inef-)-91 2023 y(\256ciency)e(\(a)f(similar)g(model)g(is)g +(presented)h(in)e([6]\).)-41 2069 y(The)15 b(\256rst)f(is)g +Fp(synchr)n(onization)f(over)o(head)p Fn(.)27 b(The)15 +b(search)g(typ-)-91 2115 y(ically)g(has)g(many)h(synchronization)e +(points)g(where)i(there)f(is)h(no)-91 2160 y(work)d(available,)i(which) +f(results)g(in)f(a)h(high)f(percentage)i(of)f(idle)-91 +2206 y(time.)-41 2252 y(The)c(second)f(is)g Fp(parallelization)d(over)o +(head)p Fn(.)15 b(This)9 b(is)g(the)g(over)o(-)-91 2297 +y(head)g(of)f(incorporating)e(the)j(parallel)f(algorithm,)g(which)g +(includes)-91 2343 y(the)i(handling)g(of)g(communication,)h(and)g +(maintaining)e(structures)-91 2389 y(to)g(allow)h(for)g(allocation)f +(of)h(work.)-41 2434 y(The)i(third)d(is)i Fp(sear)n(ch)i(over)o(head)p +Fn(.)18 b(Search)12 b(trees)g(are)g(really)f(di-)-91 +2480 y(rected)k(graphs.)26 b(W)m(ork)13 b(performed)h(on)g(one)h +(processor)f(may)h(be)-91 2526 y(useful)c(to)h(the)g(computations)f(of) +g(another)h(processor)n(.)19 b(If)12 b(this)f(in-)-91 +2571 y(formation)c(is)h(not)g(available,)h(unnecessary)h(search)f(may)g +(be)g(done.)-41 2617 y(These)j(overheads)g(are)h(not)d(independent)h +(of)g(each)i(other)n(.)k(For)-91 2662 y(example,)24 b(increased)e +(communication)e(can)i(help)e(reduce)h(the)987 694 y(search)13 +b(overhead.)20 b(Reducing)11 b(the)h(number)f(of)h(synchronization)987 +740 y(points)i(can)j(increase)g(the)e(search)i(overhead.)31 +b(In)16 b(practice,)i(the)987 786 y(right)7 b(balance)i(between)g +(these)g(sources)h(of)e(program)g(inef)o(\256ciency)987 +831 y(is)13 b(dif)o(\256cult)f(to)g(\256nd,)i(and)f(one)g(usually)f +(performs)h(many)h(experi-)987 877 y(ments)c(to)g(\256nd)g(the)g(right) +f(trade-of)o(fs)h(to)f(maximize)i(performance.)1037 924 +y(Many)g(parallel)g Fo(\013\014)j Fn(algorithms)c(have)i(appeared)g(in) +f(the)g(liter)o(-)987 970 y(ature)g(\(a)g(more)g(complete)f(list)g(is)g +(available)h(elsewhere)g([1]\).)k(The)987 1015 y(PV)l(-Split)10 +b(algorithm)g(recognized)h(that)g(some)h(nodes)f(exist)g(in)g(the)987 +1061 y(search)h(tree)f(where,)h(having)e(searched)j(the)e(\256rst)f +(branch)h(sequen-)987 1107 y(tially)m(,)c(the)g(remaining)g(branches)h +(can)g(be)f(searched)i(in)e(parallel)g([5)o(].)987 1152 +y(Initiating)h(parallelism)i(along)h(the)f(best)h(line)f(of)h(play)m(,) +g(the)f Fp(princi-)987 1198 y(pal)i(variation)p Fn(,)h(was)g(ef)o +(fective)h(for)f(a)g(small)g(number)g(of)g(proces-)987 +1244 y(sors,)g(although)d(variations)h(on)h(this)f(scheme)j(seemed)f +(limited)e(to)987 1289 y(speedups)f(of)g(less)h(than)f(8)g([7].)1037 +1336 y(The)15 b(idea)f(can)h(be)f(generalized)h(to)e(other)h(nodes)g +(in)g(the)g(tree.)987 1382 y(At)f(nodes)g(where)h(the)g(\256rst)f +(branch)h(has)f(been)h(searched)h(and)f(no)987 1427 y(cut-of)o(f)h +(occurred,)i(the)e(rest)g(can)h(likely)e(be)i(searched)h(in)d(paral-) +987 1473 y(lel.)32 b(It)16 b(is)g(a)g(trade-of)o(f)g(\261)g(increased)i +(parallelism)e(versus)g(addi-)987 1519 y(tional)h(search)i(overhead,)i +(since)e(one)f(of)g(these)g(parallel)g(tasks)987 1564 +y(could)10 b(cause)h(a)g(cut-of)o(f.)j(This)c(idea)h(has)g(been)g +(tried)f(by)g(a)g(number)987 1610 y(of)h(researchers,)j(such)d(as)h +(Jamboree)g(search)h([4)o(])e(and)h(ABDADA)987 1656 y([9].)26 +b(The)15 b(best-known)e(instance)h(of)g(this)g(type)g(of)g(algorithm)f +(is)987 1701 y(called)8 b Fp(Y)l(oung)g(Br)n(others)h(W)l(ait)e +Fn(\(YBW\))h(and)g(was)h(implemented)f(in)987 1747 y(the)k +Fo(Z)s(ug)q(z)r(w)q(ang)i Fn(chess)g(program)e([3].)21 +b(YBW)12 b(achieved)h(a)g(344-)987 1793 y(fold)c(speedup)i(using)e(a)i +(network)e(of)h(1024)f(T)o(ransputers.)1037 1839 y(This)h(class)h(of)e +(algorithms)g(cannot)h(achieve)h(a)g(linear)e(speedup)987 +1885 y(primarily)i(due)i(to)f(synchronization)f(overhead;)i(the)f +(search)i(tree)987 1931 y(may)k(have)g(thousands)f(of)g +(synchronization)f(points)h(and)g(there)987 1976 y(are)10 +b(numerous)g(occasions)g(where)g(the)g(processes)h(are)f(starved)g(for) +987 2022 y(work.)21 b(The)14 b(algorithms)d(have)j(low)e(search)i +(overhead,)g(with)e(the)987 2068 y(absolute)c(performance)i(being)e +(strongly)f(linked)h(to)g(the)g(quality)g(of)987 2113 +y(the)i(move)h(ordering)e(within)f(the)i(game-tree.)1037 +2160 y(This)f(paper)h(introduces)f(the)h(Asynchronous)f(Parallel)g +(Hierar)o(-)987 2206 y(chical)g(Iterative)g(Deepening)g(\(APHID\))g +(game-tree)h(search)g(algo-)987 2252 y(rithm.)26 b(The)15 +b(algorithm)f(represents)h(a)g(departure)f(from)h(the)f(ap-)987 +2297 y(proaches)j(used)g(in)g(practice.)34 b(In)16 b(contrast)h(to)f +(other)g(schemes,)987 2343 y(APHID)e(de\256nes)g(a)g(frontier)f(\(a)h +(\256xed)f(number)h(of)g(moves)g(away)987 2389 y(from)e(the)g(root)f +(of)g(the)h(search)i(tree\),)f(and)f(all)f(nodes)h(at)g(the)g(fron-)987 +2434 y(tier)c(are)i(done)f(in)f(parallel.)14 b(Each)c(worker)f(process) +g(is)g(assigned)g(an)987 2480 y(equal)h(number)f(of)g(frontier)f(nodes) +i(to)f(search.)15 b(The)10 b(workers)g(con-)987 2526 +y(tinually)d(search)j(these)g(nodes)f(deeper)h(and)f(deeper)n(,)i +(never)e(having)987 2571 y(to)h(synchronize)g(with)f(a)h(controlling)e +(master)j(process.)k(The)c(mas-)987 2617 y(ter)c(process)h(repeatedly)f +(searches)i(to)e(the)g(frontier)f(to)g(get)i(the)f(latest)987 +2663 y(search)12 b(results.)i(In)d(this)e(way)m(,)j(there)f(is)f(ef)o +(fectively)h(no)f(idle)g(time;)p eop +%%Page: 2 2 +2 1 bop -91 42 a Fn(search)14 b(inef)o(\256ciencies)g(are)f(primarily)f +(due)h(to)g(search)h(overhead.)-91 87 y(APHID')n(s)c(performance)h +(does)g(not)e(rely)h(on)g(the)h(implementation)-91 133 +y(of)h(a)i(distributed)c(transposition)h(table,)j(which)e(makes)i(the)f +(algo-)-91 178 y(rithm)g(suitable)g(for)g(loosely-coupled)f +(architectures)i(\(such)f(as)i(a)-91 224 y(network)c(of)h +(workstations\),)f(as)i(well)f(as)g(tightly-coupled)d(archi-)-91 +270 y(tectures.)-41 323 y(Unlike)f(some)i(parallel)f +Fo(\013\014)j Fn(algorithms,)d(APHID)g(is)h(designed)-91 +369 y(to)e(\256t)g(into)f(a)i(sequential)e Fo(\013\014)k +Fn(structure.)i(APHID)8 b(has)h(been)g(imple-)-91 415 +y(mented)k(as)h(a)g(game-independent)f(library)g(of)g(routines.)22 +b(These,)-91 460 y(combined)10 b(with)f(application-dependent)f +(routines)h(that)h(the)g(user)-91 506 y(supplies,)k(allow)f(a)h +(sequential)f Fo(\013\014)j Fn(program)d(to)g(be)h(easily)f(con-)-91 +551 y(verted)7 b(to)f(a)i(parallel)f(program.)13 b(Although)5 +b(most)i(parallel)f Fo(\013\014)k Fn(pro-)-91 597 y(grams)d(take)g +(months)g(to)f(develop,)h(the)g(game-independent)g(library)-91 +643 y(allows)14 b(users)h(to)f(integrate)g(parallelism)g(into)g(their)g +(application)-91 688 y(with)9 b(only)g(a)i(few)g(hours)e(of)h(work.)-91 +807 y Fq(2.)j(The)f(APHID)h(Algorithm)-41 913 y Fn(Y)l(oung)g(Brothers) +h(W)m(ait)g(and)g(other)g(similar)g(algorithms)g(suf-)-91 +959 y(fer)f(from)h(three)f(serious)h(problems.)23 b(First,)14 +b(the)f(numerous)h(syn-)-91 1004 y(chronization)8 b(points)h(and)h +(occasions)g(where)g(there)g(is)g(little)e(or)i(no)-91 +1050 y(work)e(to)h(be)g(done)g(in)f(parallel)h(result)f(in)h(idle)f +(time.)14 b(This)8 b(suggests)-91 1096 y(that)h(a)h(new)g(algorithm)e +(must)h(strive)g(to)g(reduce)h(or)g(eliminate)f(syn-)-91 +1141 y(chronization)i(and)h(small)h(work)e(lists.)20 +b(Second,)14 b(the)e(chaotic)g(na-)-91 1187 y(ture)h(of)f(a)i +(work-stealing)d(scheduler)i(requires)g(algorithms)f(such)-91 +1233 y(as)i(YBW)g(and)g(Jamboree)h(to)e(use)h(a)g(shared)g +(transposition)d(table)-91 1278 y(to)c(achieve)h(good)e(move)i +(ordering)e(and)h(reasonable)h(performance.)-91 1324 +y(ABDADA)j(requires)g(a)h(shared)g(transposition)d(table)i(to)g +(function)-91 1370 y(correctly)m(.)33 b(Third,)17 b(the)g(program)f +(may)h(initiate)e(parallelism)h(at)-91 1415 y(nodes)8 +b(which)f(are)i(better)e(done)h(sequentially)m(.)k(For)c(example,)h +(hav-)-91 1461 y(ing)d(searched)i(the)f(\256rst)g(branch)g(at)g(a)g +(node)g(and)g(not)f(achieved)i(a)g(cut-)-91 1507 y(of)o(f,)g(Y)l(oung)f +(Brothers)f(W)m(ait)i(\(in)f(its)g(simplest)g(form\))g(permits)g(all)h +(of)-91 1552 y(the)g(remaining)g(branches)h(to)f(be)h(searched)g(in)f +(parallel.)13 b(However)n(,)-91 1598 y(if)d(the)g(second)h(branch,)h +(for)e(example,)i(causes)g(a)f(cut-of)o(f,)f(then)h(all)-91 +1644 y(the)c(parallel)g(work)g(has)h(been)g(wasted.)13 +b(This)8 b(suggests)f(parallelism)-91 1689 y(should)i(only)h(be)h +(initiated)e(at)i(nodes)g(where)g(there)g(is)f(a)i(very)e(high)-91 +1735 y(probability)d(that)j(all)g(branches)h(must)f(be)g(considered.) +-41 1788 y(This)g(section)h(introduces)f(the)h(Asynchronous)f(Parallel) +g(Hier)o(-)-91 1834 y(archical)h(Iterative)g(Deepening)g(\(APHID\))f +(game-tree)i(searching)-91 1880 y(algorithm.)k(APHID)11 +b(has)h(been)g(designed)f(to)g(address)h(the)f(above)-91 +1925 y(three)f(issues.)k(The)c(algorithm)f(is)g(asynchronous)h(in)f +(nature;)g(it)g(re-)-91 1971 y(moves)15 b(all)f(synchronization)f +(points)g(from)i(the)f Fo(\013\014)j Fn(search)f(and)-91 +2017 y(from)11 b(iterative)g(deepening.)18 b(Also,)12 +b(parallelism)g(is)f(only)g(applied)-91 2062 y(at)e(nodes)g(that)f +(have)i(a)f(high)f(probability)e(of)j(needing)f(parallelism.)-91 +2108 y(The)g(top)f Fp(plies)128 2093 y Fm(1)154 2108 +y Fn(of)h(a)g(game-tree)h(near)f(the)f(root)g(vary)g(infrequently)-91 +2154 y(between)13 b(steps)h(of)f(iterative)f(deepening.)23 +b(This)13 b(relative)g(invari-)-91 2199 y(ance)f(of)f(the)g(top)f +(portion)g(of)h(the)g(game-tree)h(is)f(exploited)f(by)g(the)-91 +2245 y(APHID)g(algorithm.)-41 2298 y(In)k(its)h(simplest)g(form,)h +(APHID)f(can)h(be)g(viewed)f(as)h(a)f(mas-)-91 2344 y(ter/slave)8 +b(program)g(although,)g(as)h(discussed)g(later)n(,)g(it)f(can)h(be)f +(gen-)-91 2390 y(eralized)19 b(to)e(a)i(hierarchical)f(processor)h +(tree.)38 b(For)18 b(a)h(depth)f Fo(d)-91 2435 y Fn(search,)9 +b(the)f(master)g(is)g(responsible)f(for)g(the)g(top)g +Fo(d)640 2420 y Fl(0)659 2435 y Fn(ply)g(of)g(the)h(tree,)-91 +2481 y(and)i(the)g(remaining)g Fo(d)e Fk(\000)h Fo(d)312 +2466 y Fl(0)334 2481 y Fn(ply)g(are)i(searched)g(in)f(parallel)g(by)f +(the)-91 2527 y(slaves.)p -91 2585 394 2 v -49 2611 a +Fj(1)-31 2623 y Fi(The)e(ply)h(of)f(a)h(node)f(is)h(its)g(depth)f +(within)h(the)f(game-tree,)g(starting)h(with)g(ply)g(0)-91 +2662 y(at)g(the)g(root)g(of)g(the)g(game-tree.)987 42 +y Fh(2.1.)k(Operation)g(of)f(the)h(Master)g(in)g(APHID)1037 +123 y Fn(The)f(master)h(is)f(responsible)f(for)g(searching)h(the)g(top) +f Fo(d)1850 107 y Fl(0)1873 123 y Fn(ply)g(of)987 168 +y(the)15 b(tree.)29 b(It)15 b(repeatedly)g(traverses)h(this)e(tree)i +(until)d(the)i(correct)987 214 y(minimax)10 b(value)h(has)g(been)g +(determined.)16 b(The)11 b(master)h(is)e(execut-)987 +259 y(ing)f(a)h(normal)g Fo(\013\014)i Fn(search,)f(with)e(the)g +(exception)h(that)f(APHID)g(en-)987 305 y(forces)15 b(an)g +(arti\256cial)f(search)i(horizon)e(at)g Fo(d)1639 290 +y Fl(0)1665 305 y Fn(ply)g(from)h(the)f(root.)987 351 +y(Each)j(leaf)g(node)f(in)f(the)i(master)r(')n(s)f Fo(d)1556 +336 y Fl(0)1583 351 y Fn(ply)g(game-tree)h(is)f(being)987 +396 y(asynchronously)c(searched)i(by)f(the)g(slaves.)23 +b(Before)13 b(describing)987 442 y(the)d(master)r(')n(s)g(stopping)e +(condition,)g(we)i(must)g(\256rst)g(describe)g(how)987 +488 y(the)g(master)h(searches)h(the)e Fo(d)1403 473 y +Fl(0)1425 488 y Fn(ply)f(tree.)1037 534 y(When)f(the)h(master)g +(reaches)h(a)f(leaf)g(of)f(the)g Fo(d)1678 519 y Fl(0)1698 +534 y Fn(ply)g(tree,)h(it)f(uses)h(a)987 580 y(reliable)h(or)f +(approximate)h(value)g(for)f(the)h(leaf,)h(depending)e(on)h(the)987 +626 y(information)f(available.)15 b(If)c(a)g Fo(d)e Fk(\000)h +Fo(d)1532 610 y Fl(0)1554 626 y Fn(ply)g(search)i(result)e(is)h(avail-) +987 671 y(able)e(from)f(the)h(slave,)h(that)e(will)f(be)i(used.)14 +b(However)n(,)c(if)e(the)g Fo(d)d Fk(\000)g Fo(d)1960 +656 y Fl(0)987 717 y Fn(ply)k(result)g(is)h(not)f(available,)h(then)g +(the)f(algorithm)g(uses)h(the)g(deep-)987 762 y(est)e(search)i(result)d +(that)h(has)g(been)h(returned)e(by)h(the)g(slave)h(to)e(gener)o(-)987 +808 y(ate)h(a)g(guessed)f(minimax)g(value.)14 b(Any)6 +b(node)i(where)f(we)h(are)g(forced)987 854 y(to)i(guess)g(are)h(marked) +g(as)g Fp(uncertain)p Fn(.)1037 900 y(As)g(values)f(get)h(backed)g(up)g +(the)f(tree,)i(the)e(master)i(maintains)e(a)987 946 y(count)i(of)g(how) +g(many)g(uncertain)g(nodes)g(have)h(been)g(visited)e(in)h(a)987 +992 y(pass)f(over)g(the)f(tree.)16 b(As)11 b(long)e(as)i(the)g(score)g +(at)g(any)g(of)f(the)h(leaves)987 1037 y(is)g(uncertain,)h(the)f +(master)h(must)f(do)g(another)g(pass)h(over)f(the)h(tree.)987 +1083 y(Once)c(the)f(master)i(has)e(a)h(reliable)f(value)h(for)f(all)g +(the)g(leaves)h(in)f(its)g Fo(d)1960 1068 y Fl(0)987 +1129 y Fn(ply)f(tree,)j(the)e(search)h(of)f(the)g Fo(d)g +Fn(ply)f(tree)i(is)f(complete.)13 b(The)8 b(control-)987 +1174 y(ling)g(program)h(would)f(then)g(proceed)i(to)e(the)h(next)g +(iteration)e(by)i(in-)987 1220 y(crementing)g Fo(d)g +Fn(and)h(asking)f(the)g(master)h(to)f(search)h(the)f(tree)h(again.)1037 +1266 y(The)15 b(slaves)g(are)g(responsible)f(for)f(setting)h(their)f +(own)h(search)987 1312 y(windows,)j(based)g(on)g(information)d(from)i +(the)h(master)n(.)33 b(Some-)987 1358 y(times,)9 b(the)g(information)e +(returned)h(by)g(the)h(slave)g(may)g(not)f(be)h(use-)987 +1403 y(ful)j(to)g(the)h(master)n(.)22 b(For)13 b(example,)i(a)e(slave)g +(can)h(tell)e(the)h(master)987 1449 y(that)e(the)h(score)h(of)f(a)h +(given)e(node)h(is)g(less)h(than)f(30,)g(but)g(the)g(mas-)987 +1495 y(ter)e(may)g(want)f(to)h(know)f(if)g(the)g(score)i(is)e(in)h +(between)g(-5)f(and)h(5.)k(In)987 1540 y(this)9 b(case,)j(a)f(\252bad)f +(bound\272)f(search)j(is)d(generated,)i(and)f(the)g(search)987 +1586 y(window)e(parameters,)k Fo(\013)d Fn(and)h Fo(\014)r +Fn(,)h(must)e(be)h(communicated)h(to)e(the)987 1631 y(slave)j +(processor)n(.)18 b(Any)11 b(nodes)h(where)g(we)g(are)h(waiting)d(for)h +(\252bad)987 1677 y(bound\272)d(information)g(are)h(considered)g(as)h +(uncertain)f(by)g(the)g(mas-)987 1723 y(ter)n(,)k(even)g(though)e(we)i +(have)g(a)g(score)g(bound)e(for)h(the)g Fo(d)g Fk(\000)g +Fo(d)1894 1708 y Fl(0)1918 1723 y Fn(ply)987 1768 y(search.)24 +b(Eventually)m(,)14 b(the)f(slave)h(will)e(return)g(updated)h(informa-) +987 1814 y(tion)7 b(that)i(is)f(consistent)g(with)g(both)g(the)g +(original)f(information)g(and)987 1860 y(the)j(search)h(window)f +(requested.)987 1941 y Fh(2.2.)i(The)g(APHID)f(T)l(able)1037 +2022 y Fn(If)h(a)i(node)e(is)h(visited)e(by)i(the)f(master)i(for)e(the) +h(\256rst)f(time,)i(it)e(is)987 2067 y(statically)d(allocated)h(to)f(a) +i(slave)f(processor)n(.)k(This)c(information)e(is)987 +2113 y(recorded)13 b(in)g(a)h(table,)g(the)f Fp(APHID)h(table)p +Fn(,)f(that)f(is)h(shared)h(by)f(all)987 2159 y(processors.)j(Figure)10 +b(1)h(shows)f(an)i(example)f(of)g(how)f(the)g(APHID)987 +2204 y(table)g(would)f(be)i(or)o(ganized)f(at)g(a)h(given)f(point)f(in) +g(time.)1037 2251 y(The)f(APHID)g(table)f(is)g(partitioned)f(into)g +(two)h(parts:)12 b(one)c(which)987 2296 y(only)j(the)g(master)i(can)g +(write)e(to,)h(and)g(one)g(which)f(only)g(the)h(slave)987 +2342 y(that)e(has)g(been)h(assigned)g(that)e(piece)i(of)f(work)g(can)h +(write)f(to.)k(Any)987 2388 y(attempt)e(to)f(write)h(into)e(the)i +(table)g(generates)h(a)g(message)h(that)d(in-)987 2433 +y(forms)e(the)f(slave)h(or)g(the)f(master)i(process)f(of)f(the)h +(update)g(to)f(the)g(in-)987 2479 y(formation.)k(The)d(master)h(and)e +(slave)h(only)e(read)i(their)f(local)g(copies)987 2525 +y(of)k(the)h(information;)e(there)i(are)g(no)f(explicit)f(messages)k +(sent)d(be-)987 2570 y(tween)e(the)h(master)g(and)f(the)g(slave)h +(asking)e(for)h(information.)1037 2617 y(The)18 b(master)r(')n(s)f +(half)g(of)g(the)g(table)g(is)g(illustrated)e(above)j(the)987 +2662 y(dashed)12 b(line)e(in)h(Figure)g(1.)18 b(For)11 +b(each)h(leaf)g(that)f(has)h(been)g(visited)p eop +%%Page: 3 3 +3 2 bop -85 0 a + 15345564 14208860 8420065 17234821 28417720 35653713 startTexFig + -85 0 a +%%BeginDocument: draw2.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 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 +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 114 -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 -6.00003 -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 96 -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 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 342 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 498 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 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 Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 12 0 ] concat + +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 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 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 + +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 362 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 362 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 362 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 362 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 362 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 362 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 362 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 362 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 362 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 468 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 78 -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 378 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 -30 -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 414 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 462 497 ] concat +%I +[ +(<0/4) +] 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 +[ 1 -0 -0 1 168 230 ] concat +%I +288 250 360 298 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 +[ 1 -0 -0 1 174 230 ] concat +%I +162 250 270 298 Rect +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + -7 966 a Fg(Figure)13 b(1.)e(A)g(Snapshot)i(of)f(an)g(APHID)e(Sear)o +(ch)-91 1095 y Fn(by)d(the)g(master)n(,)j(there)d(is)h(an)f(entry)g(in) +g(the)g(APHID)h(table.)13 b(Informa-)-91 1140 y(tion)6 +b(maintained)i(on)f(the)h(leaves)g(includes)g(the)f(moves)i(required)e +(to)-91 1186 y(generate)j(the)g(leaf)g(positions)e(from)h(the)h(root)f +Ff(R)p Fn(,)h(the)g(approximate)-91 1232 y(location)e(of)i(the)g(leaf)g +(in)f(the)h(tree)g(\(which)f(is)h(used)g(by)f(the)h(slave)g(to)-91 +1277 y(prioritize)h(work\),)j(whether)f(this)f(leaf)i(was)g(touched)f +(on)f(the)i(last)-91 1323 y(pass)f(that)e(the)h(master)h(executed,)h +(and)e(the)g(number)g(of)g(the)g(slave)-91 1369 y(that)d(the)i(leaf)f +(was)h(allocated)f(to.)-41 1414 y(In)g(our)g(example,)j(we)e(can)h(see) +g(that)e(there)h(are)g(approximately)-91 1460 y(the)k(same)j(number)d +(of)h(leaves)g(which)g(have)g(been)g(allocated)g(to)-91 +1506 y(each)e(slave.)24 b(Note)14 b(that)e(there)i(is)f(an)h +(additional)d(leaf,)k(8,)g(that)d(is)-91 1551 y(not)e(represented)h(in) +g(the)g(master)r(')n(s)g Fo(d)454 1536 y Fl(0)476 1551 +y Fn(ply)f(search)i(tree.)17 b(This)11 b(leaf)-91 1597 +y(node)d(has)i(been)f(visited)f(on)g(a)h(previous)f(pass)i(of)e(the)h +Fo(d)705 1582 y Fl(0)725 1597 y Fn(ply)f(search)-91 1643 +y(tree,)14 b(but)d(was)j(not)d(touched)i(on)f(the)g(latest)h(pass.)21 +b(However)n(,)14 b(the)-91 1688 y(information)7 b(that)i(the)g(slave)h +(has)g(generated)f(may)h(be)g(needed)g(in)f(a)-91 1734 +y(later)h(pass)h(of)f(the)g(tree)g(and)h(is)f(not)f(deleted)i(by)e(the) +i(master)n(.)-41 1779 y(Leaves)h(are)g(allocated)e(to)g(the)h(slaves)g +(in)f(a)i(round-robin)c(man-)-91 1825 y(ner)n(.)30 b(Although)13 +b(there)j(may)g(be)g(better)f(methods)g(of)g(allocating)-91 +1871 y(leaves,)c(it)e(has)i(been)f(found)f(that)h(this)f(is)h(a)g +(reasonable)h(method)f(of)-91 1916 y(balancing)g(the)g(work)f(on)h(a)h +(small)f(number)h(of)f(processors.)-41 1962 y(The)f(slave')n(s)g(part)f +(of)g(the)g(table,)i(illustrated)c(by)i(the)h(area)h(below)-91 +2008 y(the)e(dashed)g(line,)g(contains)f(information)f(on)i(the)g +(result)f(of)g(search-)-91 2053 y(ing)j(the)h(position)e(to)i(various)f +(depths)h(of)g(search.)18 b(The)12 b(\252best\272)g(in-)-91 +2099 y(formation)i(and)i(the)f(ply)g(to)g(which)g(the)g(leaf)h(was)g +(examined)g(is)-91 2145 y(given)10 b(underneath)h(each)i(leaf)e(node)h +(in)e(the)h(tree.)18 b(For)11 b(leaf)h(1,)f(the)-91 2190 +y(score)i(returned)f(is)g(-1)g(with)f(a)i(search)h(depth)e(of)g(4.)20 +b(Leaf)14 b(3)e(illus-)-91 2236 y(trates)e(that)f(the)h(score)h +(information)d(returned)h(by)h(the)g(slave)g(is)g(not)-91 +2282 y(necessarily)h(an)h(exact)f(number)n(.)16 b(The)c(slaves)f +(maintain)f(an)i(upper)-91 2327 y(bound)7 b(and)i(a)g(lower)g(bound)e +(on)i(the)f(score)i(for)e(each)i(ply)e(of)g(search)-91 +2373 y(depth.)17 b(The)12 b(score)h(is)e(known)g(to)g(be)h(exact)g +(when)g(the)f(upper)g(and)-91 2419 y(lower)f(bounds)f(are)i(the)f +(same.)-91 2495 y Fh(2.3.)i(Operation)g(of)f(Sla)o(ve)g(in)g(APHID)-41 +2571 y Fn(A)e(slave)g(process)h(essentially)e(executes)i(the)f(same)h +(code)f(that)g(a)-91 2617 y(sequential)i Fo(\013\014)k +Fn(searcher)e(would.)18 b(The)13 b(process)f(simply)g(repeats)-91 +2662 y(the)i(following)d(steps)j(until)e(the)i(master)h(tells)e(it)g +(that)g(the)h(search)987 42 y(is)d(complete.)16 b(The)c(slave)g(looks)e +(in)g(its)h(portion)e(of)h(its)h(local)g(copy)987 87 +y(of)i(the)g(APHID)g(table,)g(and)h(\256nds)e(the)h(highest)f(priority) +f(node)i(to)987 133 y(search.)19 b(The)12 b(slave)g(then)f(executes)i +(the)e(search,)i(and)f(reports)f(the)987 178 y(result)d(back)i(to)e +(the)h(master)g(\(getting)e(an)j(update)e(to)g(its)h(APHID)g(ta-)987 +224 y(ble)h(in)g(return\).)1037 270 y(The)16 b(work)f(selection)h +(criterion)f(is)g(primarily)g(based)h(on)g(the)987 315 +y(depth)11 b(to)g(which)h(the)f(slave)h(has)h(already)f(searched)h(a)f +(node.)19 b(The)987 361 y(secondary)13 b(criterion,)f(if)g(the)h +(primary)f(criterion)f(is)h(the)h(same,)i(is)987 407 +y(based)10 b(on)f(the)h(location)e(of)i(the)f(node)h(within)d(the)j +(master)r(')n(s)g(game-)987 452 y(tree.)24 b(This)13 +b(secondary)h(criterion)f(is)g(necessary)i(since)f(it)f(is)g(usu-)987 +498 y(ally)d(bene\256cial)h(to)f(generate)h(the)g(results)f(in)g(a)h +(left-to-right)d(order)987 544 y(for)g(the)g(master)n(.)14 +b(Children)6 b(of)i(nodes)h(are)g(usually)e(considered)h(in)g(a)987 +589 y(best-to-worst)f(ordering,)h(implying)f(that)h(the)h(left-most)f +(branches)987 635 y(at)j(a)g(node)g(have)g(a)g(higher)f(probability)e +(of)j(being)f(useful)g(than)h(the)987 681 y(right-most)d(ones.)1037 +726 y(A)h(node)g(that)g(has)h(a)g(priority)d(of)i(zero)h(\(because)h +(it)d(is)h(no)g(longer)987 772 y(part)16 b(of)g(the)h(master)r(')n(s)f +(tree\))h(will)e(not)h(be)h(selected)g(for)f(further)987 +818 y(search.)e(For)8 b(Slave)f(2,)i(we)f(notice)f(that)g(Leaf)h(8)g +(would)e(be)i(searched)987 863 y(if)g(it)f(had)h(been)h(touched)e(by)h +(the)g(master)n(.)14 b(Leaf)9 b(8)f(is)g(ignored)f(by)h(the)987 +909 y(scheduling)j(algorithm)f(because)k(it)d(is)g(not)h(currently)e +(part)i(of)g(the)987 955 y(master)r(')n(s)e(tree.)1037 +1000 y(Before)i(a)h(search)g(can)g(be)f(executed,)i(an)f +Fo(\013\014)h Fn(search)g(window)987 1046 y(must)c(be)h(generated)g(by) +f(the)h(slave.)k(The)c(master)h(continually)c(ad-)987 +1092 y(vises)16 b(the)f(slaves)h(of)f(the)h(leaf)r(')n(s)g(location)e +(within)g(the)h(master)r(')n(s)987 1137 y(tree,)i(and)e(the)f(likely)g +(value)h(of)g(the)f(root)g(of)h(the)g(master)r(')n(s)g(tree.)987 +1183 y(Although)f(the)i(width)f(of)h(the)g(search)i(window)d(is)h +(application-)987 1229 y(dependent,)8 b(one)g(normally)f(wants)g(to)h +(center)g(the)f(window)g(around)987 1274 y(this)g(hypothesized)g(root)g +(value,)i(plus)e(or)h(minus)g(a)g(factor)g(to)g(re\257ect)987 +1320 y(the)i(uncertainty)f(in)h(it.)1037 1366 y(There)h(are)g(three)f +(types)g(of)g(update)f(messages)k(that)c(a)i(slave)f(re-)987 +1411 y(ceives)f(from)g(the)f(master:)13 b(a)c(new)g(piece)g(of)f(work)g +(has)h(been)g(added)987 1457 y(to)h(the)h(slave)g(processor)r(')n(s)g +(APHID)f(table,)i(the)e(location)g(of)h(a)g(leaf)987 +1503 y(node)c(within)f(the)h(master)r(')n(s)g(tree)h(has)g(changed)g +(\(changing)e(the)h(sec-)987 1548 y(ondary)14 b(work)g(scheduling)f +(criterion\),)i(and)g(a)g(noti\256cation)e(of)h(a)987 +1594 y(\252bad)e(bound\272)f(on)g(a)h(node.)18 b(The)12 +b(bad)g(bound)f(message)i(alerts)f(the)987 1640 y(slave)e(that)f(a)h +(position')n(s)e(search)i(information)e(is)i(not)e(suf)o(\256cient)i +(to)987 1685 y(save)j(the)f(node)g(from)f(being)h(uncertain.)19 +b(In)12 b(this)f(case,)j(the)e(slave)987 1731 y(must)d(re-search)i(the) +e(node)g(with)g(the)g Fo(\013\014)j Fn(search)e(window)e(sent)i(by)987 +1777 y(the)g(master)h(to)f(the)g(ply)f(requested.)1037 +1822 y(As)16 b(a)h(performance)g(improvement,)g(we)g(want)f(to)f(force) +i(the)987 1868 y(slave)12 b(to)e(always)i(work)e(on)h(nodes)g(for)g +(the)g(current)g(search)h(depth)987 1914 y(of)e(the)h(master)n(.)k +(When)c(all)g(the)f(slave')n(s)h(work)f(has)h(been)g(searched)987 +1959 y(to)e(the)h(required)f(depth,)g(rather)h(than)g(becoming)f(idle,) +h(it)f(starts)g(re-)987 2005 y(searching)h(its)g(nodes)g(an)h +(additional)d(ply)i(deeper)n(,)i(in)d(anticipation)987 +2051 y(of)h(the)g(next)g(iteration)e(\(depth)i Fo(d)e +Fe(+)i(1)p Fn(\).)j(When)e(this)e(is)h(happening,)987 +2096 y(the)k(slave)g(routinely)e(checks)j(the)f(communication)g +(channel)g(for)987 2142 y(messages)e(from)d(the)h(master)n(.)k(If)c +(the)f(slave)h(receives)h(a)g(new)f(piece)987 2188 y(of)f(work)f(to)g +(do)h(at)g Fo(d)d Fk(\000)g Fo(d)1344 2173 y Fl(0)1364 +2188 y Fn(ply)i(or)h(less,)h(the)f(search)h(is)f(immediately)987 +2233 y(aborted)h(and)h(control)e(is)i(returned)f(to)g(the)g(slave')n(s) +h(scheduling)f(al-)987 2279 y(gorithm.)987 2357 y Fh(2.4.)i +(Implementation)1037 2434 y Fn(The)c(APHID)f(algorithm)e(has)j(been)g +(written)e(as)i(an)f(application-)987 2480 y(independent)k(library)g +(of)h(C)h(routines.)19 b(The)13 b(library)e(was)i(written)987 +2526 y(to)g(provide)f(minimal)h(intervention)e(into)h(a)i(working)e +(version)h(of)987 2571 y(sequential)f Fo(\013\014)j Fn(or)d(its)g +(common)h(variants.)20 b(Since)13 b(the)f(library)g(is)987 +2617 y(application-independent,)f(a)j(potential)e(user)h(must)g(write)f +(a)i(few)987 2662 y(application-dependent)c(routines)h(\(such)h(as)g +(move)g(format,)h(how)p eop +%%Page: 4 4 +4 3 bop -132 0 a + 16813814 11840716 3289088 3289088 50651955 36443095 startTexFig + -132 0 a +%%BeginDocument: graph2.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(10) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Linear) Rshow +6570 4766 M +252 0 V +1146 813 M +307 462 V +306 461 V +307 462 V +306 462 V +307 462 V +306 462 V +307 461 V +306 462 V +307 462 V +LT1 +6486 4626 M +(d=7) Rshow +6570 4626 M +252 0 V +2066 610 M +1226 55 V +5743 605 L +6654 4626 D +2066 610 D +3292 665 D +5743 605 D +LT2 +6486 4486 M +(d=8) Rshow +6570 4486 M +252 0 V +2066 785 M +3292 993 L +5743 868 L +6654 4486 A +2066 785 A +3292 993 A +5743 868 A +LT3 +6486 4346 M +(d=9) Rshow +6570 4346 M +252 0 V +2066 1048 M +1226 554 V +2451 0 V +6654 4346 B +2066 1048 B +3292 1602 B +5743 1602 B +LT4 +6486 4206 M +(d=10) Rshow +6570 4206 M +252 0 V +2066 1159 M +1226 804 V +2451 600 V +6654 4206 C +2066 1159 C +3292 1963 C +5743 2563 C +LT5 +6486 4066 M +(d=11) Rshow +6570 4066 M +252 0 V +2066 1298 M +1226 909 V +5743 3681 L +6654 4066 T +2066 1298 T +3292 2207 T +5743 3681 T +LT6 +6486 3926 M +(d=12) Rshow +6570 3926 M +252 0 V +2066 1307 M +3292 2420 L +5743 4235 L +6654 3926 S +2066 1307 S +3292 2420 S +5743 4235 S +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 35 816 a Fg(Figure)13 b(2.)e(APHID)g(Speedups)i(in)e(K)o(e)o(y)o(ano) +-91 955 y Fn(to)g(make/unmake)h(moves,)h(position)d(format,)i(setting)e +(a)i(window)-91 1001 y(for)h(a)h(slave')n(s)g(search,)i +Fp(etc)p Fn(.\).)25 b(APHID')n(s)13 b(message)i(passing)f(was)-91 +1046 y(written)7 b(using)g(PVM)h([8)o(])g(to)g(allow)f(for)h(the)g +(maximum)g(portability)-91 1092 y(among)i(available)g(hardware.)-41 +1140 y(T)m(o)j(parallelize)h(a)g(sequential)f Fo(\013\014)j +Fn(program,)e(the)f(user)h(modi-)-91 1186 y(\256es)d(their)f +(sequential)g(search)h(routine)f(to)g(add)g(approximately)g(20)-91 +1231 y(lines)e(of)h(code.)14 b(This)9 b(search)h(routine)e(functions)g +(as)h(the)g(search)h(al-)-91 1277 y(gorithm)g(for)g(both)g(the)h +(master)h(and)g(the)f(slave)g(processes.)18 b(There)-91 +1323 y(are)10 b(a)f(few)h(additional)d(procedure)i(calls)h(that)e(have) +i(to)e(be)i(added)f(to)-91 1368 y(the)h(iterative)g(deepening)h +(routine)e(that)h(calls)h(the)f(search)i(routine.)-91 +1414 y(A)d(complete)h(explanation)e(of)h(the)g(current)h(APHID)f +(interface)h(can)-91 1460 y(be)g(found)g(elsewhere)h([2].)-91 +1563 y Fq(3.)i(Experiments)-41 1653 y Fn(The)e(APHID)g +(game-independent)f(library)g(was)h(inserted)g(into)-91 +1699 y(the)d(Othello)f(program,)i(Keyano,)g(which)f(has)h(frequently)e +(\256nished)-91 1744 y(in)f(the)h(top)f(\256ve)i(in)e(international)f +(computer)i(Othello)f(tournaments)-91 1790 y(over)k(the)g(last)g(three) +g(years.)-41 1838 y(T)m(o)e(test)g(the)g(algorithm,)g(Keyano)g(was)h +(programmed)g(to)e(search)-91 1884 y(with)13 b(its)g(midgame)i(search)g +(algorithm)e(to)g(a)i(depth)e(of)h Fo(d)24 b Fe(=)h(12)-91 +1929 y Fn(ply)m(,)14 b(with)e(the)h(master)h(controlling)d(the)i(top)f +Fo(d)607 1914 y Fl(0)640 1929 y Fe(=)22 b(4)13 b Fn(ply)f(of)h(the)-91 +1975 y(tree.)25 b(The)14 b(search)h(depth)e(is)g(typical)g(of)h(what)f +(the)h(parallel)f(pro-)-91 2021 y(gram)c(could)g(achieve)h(within)d +(the)i(tight)e(time)i(constraints)f(of)h(Oth-)-91 2066 +y(ello)i(competitions)f(\(typically)g(30)h(minutes)g(per)h(game\).)19 +b(Deeper)-91 2112 y(searches)d(will)d(yield)h(better)g(speedups,)j(but) +c(are)j(not)d(indicative)-91 2158 y(of)e(what)h(can)g(be)g(achieved)h +(in)e(real)h(time.)19 b(The)12 b(74)f(positions)f(ex-)-91 +2203 y(amined)j(were)g(the)f(positions)f(from)h(move)h(2)f(to)g(move)h +(38)f(in)f(the)-91 2249 y(two)f(games)j(of)e(the)g(1994)f(W)m(orld)g +(Championship)g(\256nal)h(between)-91 2295 y(David)f(Shaman)h(and)f +(Emmanuel)h(Caspard.)-41 2343 y(Parallel)j(tests)h(were)g(run)g(on)f +(4,)i(8)f(and)f(16)h(workstations)e(on)-91 2389 y(a)i(network)e(of)i +(SparcStation)e(IPC)h(computers)h(with)e(12)h(MB)h(of)-91 +2434 y(RAM,)7 b(running)f(the)i(SunOS)f(4.1.4)h(operating)e(system.)14 +b(The)8 b(com-)-91 2480 y(puters)g(are)i(linked)e(with)g(1)h(segment)h +(of)f(10)f(base)i(2)f(\(thin)f(net\))h(Eth-)-91 2526 +y(ernet.)16 b(One)11 b(workstation)e(in)h(each)i(experiment)f(was)h +(completely)-91 2571 y(occupied)7 b(by)f(the)h(master)g(process,)i +(while)d(the)h(other)f(workstations)-91 2617 y(each)16 +b(ran)f(a)g(slave)g(process.)28 b(Figure)15 b(2)f(illustrates)g(the)g +(average)-91 2662 y(speedups)d(for)f(7)h(to)f(12)h(ply)f(searches.)18 +b(The)11 b(graph)g(shows)f(that)h(as)947 0 y + 16813814 11840716 3289088 3289088 50651955 36443095 startTexFig + 947 0 a +%%BeginDocument: graph1.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 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 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 1121 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(20) Rshow +840 1890 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(40) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(60) Rshow +840 3430 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(80) Rshow +840 4199 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(120) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 1556 M +1226 46 V +2451 23 V +6654 4766 D +2066 1556 D +3292 1602 D +5743 1625 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 659 M +3292 978 L +2451 674 V +6654 4626 A +2066 659 A +3292 978 A +5743 1652 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 563 M +1226 73 V +5743 778 L +6654 4486 B +2066 563 B +3292 636 B +5743 778 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 2210 M +3292 1209 L +5743 809 L +6654 4346 C +2066 2210 C +3292 1209 C +5743 809 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 3938 M +3292 3376 L +2451 446 V +6654 4206 T +2066 3938 T +3292 3376 T +5743 3822 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 1214 816 a Fg(Figure)h(3.)g(12)f(Pl)o(y)h(Overheads)987 +956 y Fn(the)e(depth)g(of)g(the)g(search)h(increases,)h(so)e(does)h +(the)f(speedup.)1037 1005 y(The)f(overheads)g(in)f(the)h(algorithm)e +(are)i(illustrated)e(in)h(Figure)h(3)987 1051 y(as)k(percentages)f(of)g +(the)g(sequential)f(time)h(required)f(to)h(search)h(all)987 +1097 y(74)g(positions.)21 b(The)14 b Fp(total)d(over)o(head)j +Fn(represents)g(the)f(additional)987 1142 y(computing)6 +b(time)h(required)f(by)h(the)g(parallel)f(algorithm)g(to)h(achieve)987 +1188 y(the)j(same)i(result:)990 1303 y Fe(total)d(o)o(v)o(erhead)j(=) +1305 1275 y(\(parallel)d(time)17 b Fk(\003)h Fe(n\))9 +b Fk(\000)h Fe(sequen)o(tial)f(time)p 1305 1293 658 2 +v 1499 1331 a(sequen)o(tial)h(time)987 1420 y Fn(where)h +Fo(n)g Fn(is)g(the)g(number)f(of)h(processors.)16 b(The)c(total)d +(overhead)j(is)987 1466 y(also)h(a)h(sum)f(of)g(the)g(four)f +(overheads:)19 b(master)14 b(overhead,)g(paral-)987 1511 +y(lelization)6 b(overhead,)j(speculative)e(search)i(and)e(search)i +(overhead.)1037 1560 y(The)f Fp(master)h(over)o(head)f +Fn(is)g(the)g(approximate)g(penalty)f(incurred)987 1606 +y(by)k(having)g(a)h(single)f(processor)h(being)f(allocated)h +(completely)f(to)987 1651 y(the)g(handling)f(of)h(the)g(master)n(.)18 +b(This)12 b(is)f(not)g(simply)1771 1635 y Fm(1)p 1769 +1642 21 2 v 1769 1666 a Fd(n)1795 1651 y Fn(,)h(but)e(is)i(the)987 +1697 y(time)e(taken)g(away)g(by)g(the)f(master:)14 b(the)c(parallel)f +(time)h(divided)f(by)987 1743 y(the)h(sequential)g(time.)1037 +1792 y(The)j Fp(parallelization)d(over)o(head)k Fn(is)e(the)h(penalty)f +(incurred)h(by)987 1837 y(the)c(APHID)g(library)f(on)g(the)h(speed)h +(of)e(the)h(slaves.)14 b(Keyano)c(visits)987 1883 y(approximately)e +(8700)h(nodes)g(per)h(second)f(on)g(a)h(single)f(SparcSta-)987 +1929 y(tion)g(IPC.)h(Using)f(the)h(APHID)g(library)m(,)g(the)g(slaves)h +(were)g(visiting)987 1974 y(7600)c(nodes)g(per)g(second.)14 +b(The)8 b(dif)o(ference)g(between)g(this)f(rate)g(and)987 +2020 y(the)j(sequential)g(program')n(s)f(node)h(rate)h(is)f(derived)g +(partially)f(from)987 2066 y(the)14 b(overhead)g(of)g(using)f(PVM,)i +(and)f(partially)e(from)i(the)g(work-)987 2111 y(scheduling)c +(algorithm)f(on)h(each)i(slave.)k(In)10 b(the)h(authors')f(experi-)987 +2157 y(ence,)15 b(this)d(parallelization)g(overhead)i(is)e(similar)h +(to)f(implemen-)987 2203 y(tations)i(of)h(YBW)g(on)g(equivalent)f +(hardware)h(\(the)g(results)g(have)987 2248 y(not)9 b(been)h(presented) +g(here)g(because)h(Keyano)f(has)g(been)g(rewritten)987 +2294 y(since)h(the)f(original)e(experiment)i(with)g(YBW)g(in)f(1994\).) +1037 2343 y(The)16 b Fp(sear)n(ch)h(over)o(head)g Fn(starts)f(at)g +(30\045)f(and)g(increases)j(very)987 2389 y(gradually)11 +b(as)h(we)h(increase)g(from)f(4)g(to)f(16)h(processors.)19 +b(Most)12 b(of)987 2434 y(the)c(search)i(overhead)e(is)g(incurred)g(by) +g(attempting)f(to)h(do)g(searches)987 2480 y(before)16 +b(the)f(correct)h(search)h(window)d(is)h(available.)30 +b(Thus,)18 b(the)987 2526 y(slaves)12 b(use)g Fo(\013\014)j +Fn(search)e(windows)d(that)i(are)g(lar)o(ger)g(than)f(those)h(in)987 +2571 y(the)g(sequential)f(program.)19 b(Part)12 b(of)g(the)g(search)h +(overhead)g(is)e(due)987 2617 y(to)f(information)f(de\256ciency)m(,)j +(since)f(there)g(is)g(no)f(common)h(shared)987 2662 y(data)f(between)h +(the)f(slave)h(processes.)p eop +%%Page: 5 5 +5 4 bop -41 42 a Fn(Since)13 b(we)g(only)f(search)h(each)h(position)d +(to)h(12)g(ply)m(,)i(the)e(asyn-)-91 87 y(chronous)c(nature)g(of)h(the) +f(slaves)h(will)f(result)f(in)i(some)g(work)f(being)-91 +133 y(done)k(at)g(13)g(ply)g(\(or)g(more\).)20 b(The)13 +b Fp(speculative)f(sear)n(ch)i Fn(line)d(rep-)-91 178 +y(resents)f(the)f(amount)g(of)g(additional)e(search)k(beyond)d(what)i +(the)f(se-)-91 224 y(quential)d(algorithm)f(would)h(have)h(done.)13 +b(However)n(,)8 b(in)f(our)f(exper)o(-)-91 270 y(iments,)11 +b(the)h(speculative)f(search)h(results)f(were)h(not)e(used)i(so)f(that) +-91 315 y(the)e(parallel)f(program)h(produces)g(the)g(identical)f +(results)h(as)h(the)f(se-)-91 361 y(quential)i(version,)i(verifying)f +(APHID')n(s)g(correctness.)22 b(In)13 b(a)g(real)-91 +407 y(tournament)f(game,)i(this)e(speculative)g(search)i(could)e(be)h +(used)g(to)-91 452 y(look)e(an)i(extra)g(move)g(ahead)g(on)g(some)g +(key)g(variations,)f(since)h(it)-91 498 y(is)e(highly)e(likely)h(that)h +(the)g(moves)g(extended)g(a)h(ply)e(ahead)i(would)-91 +544 y(be)g(in)f(the)g(left-most)g(branches)h(of)f(the)h(tree.)18 +b(Note)11 b(that)g(other)g(al-)-91 589 y(gorithms,)e(such)h(as)h(Y)l +(oung)e(Brothers)g(W)m(ait,)h(have)g(processors)h(go)-91 +635 y(idle)d(when)h(there)g(is)f(no)h(work)f(left)g(to)g(do)h(on)f(the) +h(current)f(iteration.)-41 683 y(W)m(eill)15 b(tested)h(YBW)g(and)g +(ABDADA)g(on)g(a)h(CM-5)e(using)h(a)-91 728 y(dif)o(ferent)f(Othello)f +(program)h([9)o(].)30 b(YBW)15 b(achieved)i(a)f(9.5-fold)-91 +774 y(speedup)d(and)g(ABDADA)g(achieved)g(a)h(1)n(1-fold)e(speedup)h +(on)g(16)-91 820 y(processors.)26 b(Although)12 b(the)h(APHID)h +(results)g(are)h(not)e(as)i(good,)-91 865 y(they)i(were)i(achieved)f +(without)e(a)i(shared)h(transposition)c(table.)-91 911 +y(Both)c(ABDADA)g(and)h(YBW)g(will)f(get)g(poor)g(performance)i(on)f(a) +-91 957 y(network)6 b(of)h(workstations,)f(since)i(the)f(shared)h +(transposition)t(table)-91 1002 y(is)i(critical)g(to)f(the)h +(performance)h(of)f(the)g(algorithms.)-41 1050 y(Other)f(results)g(for) +h(parallel)f(search)i(algorithms)d(on)i(a)g(network)-91 +1095 y(of)h(workstations)g(have)h(been)g(presented)h(for)e(the)h(game)h +(of)e(chess)-91 1141 y([7)o(].)19 b(There)13 b(is)e(more)i(parallelism) +e(available)h(in)f(the)h(wider)f(chess)-91 1187 y(trees,)e(which)e +(results)h(in)f(better)h(speedups)g(in)f(comparison)h(to)f(Oth-)-91 +1232 y(ello)f([9].)13 b(Although,)6 b(a)i(distributed)d(transposition)t +(table)i(was)h(used)-91 1278 y(to)k(improve)g(the)h(performance)g(of)g +(the)f(parallel)g(chess)i(searches,)-91 1324 y(a)h(speedup)g(of)f(7)h +(was)g(possible)f(on)g(16)h(processors.)27 b(These)16 +b(re-)-91 1369 y(sults)10 b(were)i(extrapolated)e(to)h(a)g(speedup)h +(of)e(8)h(on)g(32)g(processors.)-91 1415 y(The)i(bene\256cial)h(ef)o +(fects)f(of)g(the)g(distributed)d(transposition)g(table)-91 +1461 y(are)h(derived)f(primarily)f(in)h(the)g(top)g(plies)g(of)g(the)g +(search)i(tree,)f(and)-91 1506 y(these)h(bene\256ts)g(are)h(duplicated) +e(in)h(APHID)f(by)h(maintaining)e(the)-91 1552 y(top)f +Fo(d)-6 1537 y Fl(0)16 1552 y Fn(ply)g(exclusively)h(on)g(the)g(master) +h(processor)n(.)-41 1600 y(The)d(APHID)h(algorithm)d(can)j(support)e(a) +i(shared)g(transposition)-91 1645 y(table,)17 b(but)e(the)g(algorithm)f +(does)i(not)f(depend)g(on)h(its)f(presence.)-91 1691 +y(Thus,)i(the)e(algorithm)f(gets)i(good)e(performance)i(on)f(a)h +(loosely-)-91 1737 y(coupled)8 b(network)g(of)g(workstations)f(and)h +(will)f(perform)i(even)g(bet-)-91 1782 y(ter)h(on)g(tightly-coupl)o(ed) +e(processors.)-91 1883 y Fq(4.)13 b(Conclusions)e(and)h(Futur)o(e)g(W)m +(ork)-41 1972 y Fn(The)k(APHID)f(algorithm)e(yields)i(good)f(speedups)i +(on)f(a)h(net-)-91 2018 y(work)7 b(of)g(workstations)e(without)g(the)i +(necessity)h(of)f(a)h(shared)g(trans-)-91 2063 y(position)h(table.)16 +b(Although)10 b(the)h(authors)f(are)i(pleased)g(with)e(these)-91 +2109 y(preliminary)f(results,)h(a)h(lot)e(of)h(work)g(is)g(left)f(to)h +(be)h(done.)-41 2156 y(The)20 b(load)e(balancing)h(of)g(the)g(APHID)h +(algorithm)d(has)j(not)-91 2202 y(been)10 b(addressed)g(in)e(this)h +(paper)n(.)14 b(More)9 b(intelligent)e(schemes)k(than)-91 +2248 y(round-robin)e(allocation)i(of)h(work)f(are)i(currently)e(being)h +(investi-)-91 2293 y(gated.)-41 2341 y(Our)7 b(current)f +(implementation)g(of)h(APHID)g(uses)h(a)g(\256xed-depth)-91 +2387 y(horizon)i(for)g(the)h(master)r(')n(s)g(tree.)17 +b(All)11 b(positions)e(are)j(not)e(equal)h(in)-91 2432 +y(the)i(amount)g(of)g(search)i(ef)o(fort)d(they)h(require.)23 +b(APHID)14 b(is)f(being)-91 2478 y(generalized)i(to)e(support)g(a)i +(dynamically)f(changing)g(horizon)f(in)-91 2524 y(the)d(master)n(.)-41 +2571 y(The)17 b(results)g(reported)g(here)g(are)h(based)g(on)f(a)h +(simple)e(mas-)-91 2617 y(ter/slave)j(relationship.)39 +b(As)20 b(the)f(number)g(of)g(processors)h(in-)-91 2663 +y(creases,)29 b(the)23 b(master)g(increasingly)g(becomes)h(a)g +(bottleneck.)987 42 y(APHID)11 b(has)g(been)g(generalized)h(to)e(work)g +(in)h(a)g(hierarchical)g(pro-)987 87 y(cess)i(tree.)19 +b(Mid-level)11 b(processes)i(would)e(behave)h(as)h(a)f(slave)g(to-)987 +133 y(ward)f(their)f(master)n(,)i(and)f(as)h(a)f(master)h(toward)e +(their)g(slaves.)17 b(The)987 178 y(scalability)6 b(of)i(the)g +(algorithm)e(has)i(yet)g(to)f(be)h(demonstrated)g(on)f(ar)o(-)987 +224 y(chitectures)i(of)g(more)h(than)e(16)h(processors,)h(due)g(to)e +(resource)i(lim-)987 270 y(itations.)1037 315 y(Perhaps)g(the)g +(biggest)e(contribution)f(of)i(APHID)h(is)g(that)f(it)f(eas-)987 +361 y(ily)13 b(\256ts)h(into)f(an)h(existing)f(sequential)h +Fo(\013\014)i Fn(program.)26 b(As)14 b(a)h(val-)987 407 +y(idation)h(of)i(this,)h(APHID)f(has)h(been)f(integrated)f(into)g(a)h +(chess)987 452 y(and)e(checkers)h(program)f(with)f(one)i(afternoon)e +(of)h(ef)o(fort.)31 b(The)987 498 y(application-dependent)11 +b(code)j(is)f(roughly)f(150)h(lines,)h(and)f(took)987 +544 y(less)f(than)f(an)h(hour)f(to)g(write.)17 b(Although)10 +b(all)h(of)g(the)h(programs)f(in)987 589 y(the)i(original)e(testing)h +(were)i(designed)f(at)h(the)f(University)e(of)i(Al-)987 +635 y(berta,)f(the)g(second)f(stage)h(of)f(the)h(experiment)f(will)f +(be)i(to)f(release)987 681 y(the)18 b(code)g(to)g(interested)f(members) +i(of)f(the)g(high-performance)987 726 y(games)11 b(community)f(outside) +f(of)h(the)g(University)f(of)h(Alberta.)987 822 y Fq(5.)j +(Acknowledgements)1037 905 y Fn(The)i(authors)f(would)g(like)g(to)h +(thank)f(the)g(other)h(members)h(of)987 951 y(the)10 +b(GAMES)h(group)e(at)h(the)g(University)f(of)h(Alberta)g(for)f(their)h +(as-)987 996 y(sistance)h(and)g(constructive)f(criticisms:)k(Yngvi)c +(Bjornsson,)g(An-)987 1042 y(dreas)15 b(Junghanns,)h(Y)l(aoqing)e(Gao,) +i(T)m(ony)f(Marsland)f(and)h(Aske)987 1088 y(Plaat.)h(The)c(authors)e +(would)g(also)h(like)f(to)h(thank)f(the)h(anonymous)987 +1133 y(referees)k(whose)g(comments)f(were)h(valuable)f(in)f(improving)g +(the)987 1179 y(presentation)8 b(of)h(the)g(original)f(paper)n(.)14 +b(This)9 b(work)g(was)h(supported)987 1225 y(by)g(the)h(Natural)f +(Sciences)i(and)f(Engineering)f(Research)i(Council)987 +1270 y(of)e(Canada.)987 1366 y Fq(Refer)o(ences)992 1449 +y Fc([1])21 b(M.)16 b(G.)g(Brockington.)44 b(A)16 b(T)m(axonomy)e(of)h +(Parallel)h(Game-Tree)1056 1494 y(Search)8 b(Algorithms.)14 +b Fb(ICCA)c(Journal)p Fc(,)d(1996.)13 b(In)c(press.)992 +1538 y([2])21 b(M.)10 b(G.)f(Brockington)g(and)f(J.)h(Schaef)o(fer)n(.) +k(The)8 b(APHID)i(Parallel)f Fa(\013\014)1056 1584 y +Fc(Search)j(Algorithm.)33 b(T)m(echnical)12 b(Report)g(96-07,)i +(Department)e(of)1056 1629 y(Computing)d(Science,)e(University)j(of)f +(Alberta,)h(July)e(1996.)992 1673 y([3])21 b(R.)12 b(Feldmann.)26 +b Fb(Spielbaumsuche)9 b(mit)k(massiv)d(parallelen)h(Syste-)1056 +1719 y(men)p Fc(.)24 b(PhD)11 b(thesis,)g(Universit)r(\310)-14 +b(at-Gesamthochschule)8 b(Paderborn,)1056 1764 y(Paderborn,)g(Germany)n +(,)h(May)f(1993.)992 1808 y([4])21 b(B.)7 b(C.)f(Kuszmaul.)h +Fb(Synchr)o(onize)o(d)t(MIMD)g(Computing)p Fc(.)g(PhD)f(thesis,)1056 +1854 y(M.I.T)m(.,)11 b(Cambridge,)e(MA,)h(1994.)992 1897 +y([5])21 b(T)m(.)c(A.)g(Marsland)e(and)h(M.)h(S.)f(Campbell.)49 +b(Parallel)16 b(Search)f(of)1056 1943 y(Strongly)f(Ordered)g(Game)g +(Trees.)39 b Fb(ACM)14 b(Computing)g(Surveys)p Fc(,)1056 +1989 y(14\(4\):533\261551,)8 b(1982.)992 2032 y([6])21 +b(T)m(.)11 b(A.)g(Marsland,)f(M.)h(Olafsson,)f(and)g(J.)g(Schaef)o(fer) +n(.)19 b(Multiproces-)1056 2078 y(sor)9 b(Tree-Search)e(Experiments.)12 +b(In)e(D.)f(Beal,)g(editor)o(,)g Fb(Advances)d(in)1056 +2124 y(Computer)g(Chess)f(4)p Fc(,)j(pp.)e(37\26151.)g(Permagon)g +(Press,)g(Oxford,)i(1985.)992 2167 y([7])21 b(J.)8 b(Schaef)o(fer)n(.)i +(Distributed)d(game-tree)g(searching.)i Fb(Journal)d(of)i(Par)o(-)1056 +2213 y(allel)i(and)e(Distributed)h(Computing)p Fc(,)g(6\(2\):90\2611)o +(14,)f(1989.)992 2257 y([8])21 b(V)-5 b(.)23 b(Sunderam.)76 +b(PVM:)22 b(A)h(Framework)e(for)i(Parallel)f(Dis-)1056 +2302 y(tributed)10 b(Computing.)j Fb(Concurr)o(ency)o(:)d(Practice)e +(and)h(Experience)p Fc(,)1056 2348 y(2\(4\):315\261339,)f(Dec.)h(1990.) +992 2392 y([9])21 b(J.-C.)13 b(W)m(eill.)32 b Fb(Pr)o(ogrammes)9 +b(d')r(\302)-14 b(echecs)11 b(de)h(championnat:)17 b(ar)o(chi-)1056 +2437 y(tectur)o(e)e(logicielle)h(synth)r(\301)-14 b(ese)14 +b(de)h(fonctions)g(d')r(\302)-14 b(evaluations,)17 b(par)o(-)1056 +2483 y(all)r(\302)-14 b(elisme)9 b(de)g(r)o(echer)o(c)o(he)p +Fc(.)h(PhD)f(thesis,)g(Universit)r(\302)-14 b(e)9 b(Paris)g(8,)g(1995.) +p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF -- cgit v1.3