A bunch of chess-related papers.
[typhoon-papers.git] / parallel / dop7.ps
1 %!PS-Adobe-2.0
2 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
3 %%Title: dop7.dvi
4 %%Pages: 14
5 %%PageOrder: Ascend
6 %%BoundingBox: 0 0 612 792
7 %%DocumentFonts: Helvetica Courier Helvetica-Bold Helvetica-Oblique
8 %%DocumentPaperSizes: Letter
9 %%EndComments
10 %DVIPSCommandLine: dvips -o dop7.ps dop7
11 %DVIPSParameters: dpi=600, comments removed
12 %DVIPSSource:  TeX output 1998.10.27:1114
13 %%BeginProcSet: fix-lj4si-ps-bug.pro
14 /fixcurrentmatrix {
15     statusdict /product known {
16         statusdict /product get (HP LaserJet 4Si) eq {
17             /version where {
18                 /version get (2011.110) eq {
19                     matrix currentmatrix
20                     dup dup 0 get 32768 mul round 32768 div 0 exch put
21                     dup dup 3 get 32768 mul round 32768 div 3 exch put
22                     systemdict /setmatrix get exec
23                 } if
24             } if
25         } if 
26     } if
27 } bind def
28
29 /setmatrix {
30     systemdict /setmatrix get exec
31     fixcurrentmatrix
32 } bind def
33 %%EndProcSet
34 %%BeginProcSet: tex.pro
35 /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
36 /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
37 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
38 ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
39 isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
40 hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
41 TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
42 forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
43 /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
44 /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{
45 /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
46 string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
47 end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
48 /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
49 N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
50 length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
51 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
52 get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
53 dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
54 /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
55 /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
56 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
57 setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
58 .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
59 if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
60 length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
61 cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
62 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
63 add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
64 /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
65 known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
66 /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
67 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
68 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
69 {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
70 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
71 ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
72 RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
73 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
74 round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
75 rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
76 {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
77 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{
78 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{
79 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
80 a}B /bos{/SS save N}B /eos{SS restore}B end
81 %%EndProcSet
82 %%BeginFont: Helvetica
83 % @@psencodingfile@{
84 %   author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
85 %   version = "0.6",
86 %   date = "22 June 1996",
87 %   filename = "8r.enc",
88 %   email = "kb@@mail.tug.org",
89 %   address = "135 Center Hill Rd. // Plymouth, MA 02360",
90 %   codetable = "ISO/ASCII",
91 %   checksum = "119     662    4424",
92 %   docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
93 % @}
94
95 % Idea is to have all the characters normally included in Type 1 fonts
96 % available for typesetting. This is effectively the characters in Adobe
97 % Standard Encoding + ISO Latin 1 + extra characters from Lucida.
98
99 % Character code assignments were made as follows:
100
101 % (1) the Windows ANSI characters are almost all in their Windows ANSI
102 % positions, because some Windows users cannot easily reencode the
103 % fonts, and it makes no difference on other systems. The only Windows
104 % ANSI characters not available are those that make no sense for
105 % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
106 % (173). quotesingle and grave are moved just because it's such an
107 % irritation not having them in TeX positions.
108
109 % (2) Remaining characters are assigned arbitrarily to the lower part
110 % of the range, avoiding 0, 10 and 13 in case we meet dumb software.
111
112 % (3) Y&Y Lucida Bright includes some extra text characters; in the
113 % hopes that other PostScript fonts, perhaps created for public
114 % consumption, will include them, they are included starting at 0x12.
115
116 % (4) Remaining positions left undefined are for use in (hopefully)
117 % upward-compatible revisions, if someday more characters are generally
118 % available.
119
120 % (5) hyphen appears twice for compatibility with both ASCII and Windows.
121
122 /TeXBase1Encoding [
123 % 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
124   /.notdef /dotaccent /fi /fl
125   /fraction /hungarumlaut /Lslash /lslash
126   /ogonek /ring /.notdef
127   /breve /minus /.notdef 
128 % These are the only two remaining unencoded characters, so may as
129 % well include them.
130   /Zcaron /zcaron 
131 % 0x10
132  /caron /dotlessi 
133 % (unusual TeX characters available in, e.g., Lucida Bright)
134  /dotlessj /ff /ffi /ffl 
135  /.notdef /.notdef /.notdef /.notdef
136  /.notdef /.notdef /.notdef /.notdef
137  % very contentious; it's so painful not having quoteleft and quoteright
138  % at 96 and 145 that we move the things normally found there down to here.
139  /grave /quotesingle 
140 % 0x20 (ASCII begins)
141  /space /exclam /quotedbl /numbersign
142  /dollar /percent /ampersand /quoteright
143  /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
144 % 0x30
145  /zero /one /two /three /four /five /six /seven
146  /eight /nine /colon /semicolon /less /equal /greater /question
147 % 0x40
148  /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
149 % 0x50
150  /P /Q /R /S /T /U /V /W
151  /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
152 % 0x60
153  /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
154 % 0x70
155  /p /q /r /s /t /u /v /w
156  /x /y /z /braceleft /bar /braceright /asciitilde
157  /.notdef % rubout; ASCII ends
158 % 0x80
159  /.notdef /.notdef /quotesinglbase /florin
160  /quotedblbase /ellipsis /dagger /daggerdbl
161  /circumflex /perthousand /Scaron /guilsinglleft
162  /OE /.notdef /.notdef /.notdef
163 % 0x90
164  /.notdef /.notdef /.notdef /quotedblleft
165  /quotedblright /bullet /endash /emdash
166  /tilde /trademark /scaron /guilsinglright
167  /oe /.notdef /.notdef /Ydieresis
168 % 0xA0
169  /.notdef % nobreakspace
170  /exclamdown /cent /sterling
171  /currency /yen /brokenbar /section
172  /dieresis /copyright /ordfeminine /guillemotleft
173  /logicalnot
174  /hyphen % Y&Y (also at 45); Windows' softhyphen
175  /registered
176  /macron
177 % 0xD0
178  /degree /plusminus /twosuperior /threesuperior
179  /acute /mu /paragraph /periodcentered
180  /cedilla /onesuperior /ordmasculine /guillemotright
181  /onequarter /onehalf /threequarters /questiondown
182 % 0xC0
183  /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
184  /Egrave /Eacute /Ecircumflex /Edieresis
185  /Igrave /Iacute /Icircumflex /Idieresis
186 % 0xD0
187  /Eth /Ntilde /Ograve /Oacute
188  /Ocircumflex /Otilde /Odieresis /multiply
189  /Oslash /Ugrave /Uacute /Ucircumflex
190  /Udieresis /Yacute /Thorn /germandbls
191 % 0xE0
192  /agrave /aacute /acircumflex /atilde
193  /adieresis /aring /ae /ccedilla
194  /egrave /eacute /ecircumflex /edieresis
195  /igrave /iacute /icircumflex /idieresis
196 % 0xF0
197  /eth /ntilde /ograve /oacute
198  /ocircumflex /otilde /odieresis /divide
199  /oslash /ugrave /uacute /ucircumflex
200  /udieresis /yacute /thorn /ydieresis
201 ] def
202 %%EndFont
203 %%BeginProcSet: texps.pro
204 TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
205 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
206 exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
207 exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
208 dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
209 ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
210 end definefont 3 -1 roll makefont /setfont load]cvx def}def
211 /ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def
212 /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def
213 end
214 %%EndProcSet
215 %%BeginProcSet: special.pro
216 TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
217 /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
218 false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
219 /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
220 div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
221 /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
222 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
223 /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
224 true def end /@MacSetUp{userdict /md known{userdict /md get type
225 /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
226 length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
227 N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
228 clippath mark{transform{itransform moveto}}{transform{itransform lineto}
229 }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
230 itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
231 closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
232 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
233 /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
234 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
235 ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
236 not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
237 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
238 pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
239 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
240 TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
241 sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
242 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
243 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
244 {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
245 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
246 N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
247 maxlength dict begin /magscale true def normalscale currentpoint TR
248 /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
249 /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
250 psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
251 scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
252 /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
253 psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
254 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
255 moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
256 begin /SpecialSave save N gsave normalscale currentpoint TR
257 @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
258 {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
259 closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
260 sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
261 }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
262 CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
263 lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
264 }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
265 end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
266 N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
267 /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
268 SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
269 /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
270 yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
271 %%EndProcSet
272 TeXDict begin 40258431 52099146 1000 600 600 (dop7.dvi)
273 @start /Fa 134[45 1[45 45 45 45 45 45 45 45 45 45 45
274 45 45 1[45 45 45 45 45 45 45 45 45 38[45 10[45 45 46[{
275  TeXBase1Encoding ReEncodeFont }26 75.000000 /Courier
276 rf /Fb 82[25 50[37 37 1[54 37 42 21 37 25 42 42 42 42
277 62 17 2[17 42 42 21 42 42 37 42 42 12[46 50 54 1[50 58
278 54 62 42 1[37 21 54 58 46 50 54 54 50 50 6[21 42 42 1[42
279 42 3[42 2[21 1[21 41[37 2[{ TeXBase1Encoding ReEncodeFont }51
280 75.000000 /Helvetica-Oblique rf /Fc 3 50 df<7FFFFFFFFFFF80FFFFFFFFFFFFC0
281 FFFFFFFFFFFFC07FFFFFFFFFFF803204799641>0 D<6000000006F80000000FFC000000
282 1F7E0000003F3F0000007E1F800000FC0FC00001F807E00003F003F00007E001F8000FC0
283 00FC001F80007E003F00003F007E00001F80FC00000FC1F8000007E3F0000003F7E00000
284 01FFC0000000FF800000007F000000007F00000000FF80000001FFC0000003F7E0000007
285 E3F000000FC1F800001F80FC00003F007E00007E003F0000FC001F8001F8000FC003F000
286 07E007E00003F00FC00001F81F800000FC3F0000007E7E0000003FFC0000001FF8000000
287 0F6000000006282874A841>2 D<000FF000000007F000003FFE0000003FFE0000FFFF80
288 0000FFFF0003FFFFC00003F807C007F07FF00007C001E00F801FF8000F8000F00F0007FC
289 003E0000701E0003FE007C0000383C0001FF007800001C380000FF80F000001C7000007F
290 C1F000000E7000003FE3E000000E6000001FF3C00000066000001FF780000006E000000F
291 FF80000007C0000007FF00000003C0000003FE00000003C0000003FE00000003C0000001
292 FF00000003C0000000FF80000003C00000007FC0000003C00000007FC0000003C0000000
293 FFE0000003E0000001FFF000000760000001EFF800000660000003CFF800000670000007
294 C7FC00000E7000000F83FE00000E3800000F01FF00001C3800001E00FF80003C1C00003E
295 007FC000780E00007C003FE000F00F0001F0001FF801F0078003E0000FFE0FE003E01FC0
296 0003FFFFC000FFFF000001FFFF00007FFC0000007FFC00000FE00000000FF00048267BA4
297 53>49 D E /Fd 82[28 56[28 46 32 1[51 51 51 74 23 2[23
298 51 1[28 46 1[46 1[46 12[51 55 2[55 8[65 51 3[60 66[{
299  TeXBase1Encoding ReEncodeFont }21 83.333336 /Helvetica-Bold
300 rf /Fe 7 121 df<387CFEFEFE7C3807077A8614>58 D<001F8000007FC00000F0E70003
301 C03F0007803F000F001F000F001F001E001F003E003E003C003E007C003E007C003E00F8
302 007C00F8007C00F8007C00F8007C00F000F800F000F830F000F830F000F830F001F060F0
303 01F0607803F060780EF0C03C1CF9801FF07F8007C01E001C1B7C9924>97
304 D<000FE0003FF800F81C01E00E03803E07807E0F007E1E007C3E007C3C00007C00007C00
305 00F80000F80000F80000F80000F00000F00000F00000F00004F0000C7800187800303C00
306 E01E07C00FFF0003F800171B7C991E>99 D<000FC0007FF000F03803C01C07801C0F001C
307 1F001C1E001C3E00387C00707C07E07FFF80FFFC00F80000F80000F80000F80000F00000
308 F00000F0000478000C7800183800303C00E01E07C00FFF0003F800161B7C991F>101
309 D<00F007C001FC1FF0031E7878061EE03C061FC01C0C1F801E0C1F001E0C3F001E183F00
310 1F183E001F003E001F007E001F007E003E007C003E007C003E00FC003E00FC007C00F800
311 7C00F8007801F800F001F800F001F801E001F803C003FC078003FE1F0003E7FC0003E1F0
312 0007E0000007E0000007C0000007C000000FC000000FC000000F8000001F800000FFF800
313 00FFF800002025809922>112 D<000FE0007FF800F03C01C00E03C01E07803E07803E07
314 803C0F80180FE00007FF0007FFC003FFE001FFF000FFF80007F80001F83C00F87E00787E
315 0078FC00F0F800F07001E07003C03C0F801FFE0007F800171B7C991F>115
316 D<007C03C001FF0FF007079C300E03B0780C03F0F81803E1F83003E1F83003E1F06007C0
317 E06007C0000007C0000007C000000F8000000F8000000F8000000F8000001F0000001F00
318 30381F00307C1F0060FC3E0060FC3E00C0F87E00C0F06F038070C707003F83FE001F01F8
319 001D1B7D9926>120 D E /Ff 5 94 df<0000600000E00001C0000380000700000E0000
320 1E00003C0000780000780000F00001E00001E00003C00003C00007C0000780000F80000F
321 00000F00001F00001E00001E00003E00003E00003E00007C00007C00007C00007C00007C
322 00007C0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
323 0000F80000F80000F80000F80000F80000F80000F800007C00007C00007C00007C00007C
324 00007C00003E00003E00003E00001E00001E00001F00000F00000F00000F800007800007
325 C00003C00003C00001E00001E00000F000007800007800003C00001E00000E0000070000
326 03800001C00000E0000060135278BD20>40 D<C00000E000007000003800001C00000E00
327 000F000007800003C00003C00001E00000F00000F000007800007800007C00003C00003E
328 00001E00001E00001F00000F00000F00000F80000F80000F800007C00007C00007C00007
329 C00007C00007C00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
330 E00003E00003E00003E00003E00003E00003E00003E00003E00007C00007C00007C00007
331 C00007C00007C0000F80000F80000F80000F00000F00001F00001E00001E00003E00003C
332 00007C0000780000780000F00000F00001E00003C00003C0000780000F00000E00001C00
333 00380000700000E00000C0000013527CBD20>I<00000030000000000000780000000000
334 007800000000000078000000000000780000000000007800000000000078000000000000
335 780000000000007800000000000078000000000000780000000000007800000000000078
336 000000000000780000000000007800000000000078000000000000780000000000007800
337 000000000078000000000000780000000000007800000000000078000000000000780000
338 0000000078000000000000780000007FFFFFFFFFFFF8FFFFFFFFFFFFFCFFFFFFFFFFFFFC
339 7FFFFFFFFFFFF80000007800000000000078000000000000780000000000007800000000
340 000078000000000000780000000000007800000000000078000000000000780000000000
341 007800000000000078000000000000780000000000007800000000000078000000000000
342 780000000000007800000000000078000000000000780000000000007800000000000078
343 000000000000780000000000007800000000000078000000000000780000000000003000
344 000036367BAF41>43 D<FFF8FFF8FFF8FFF8F000F000F000F000F000F000F000F000F000
345 F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
346 F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
347 F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
348 F000F000F000F000F000F000F000F000F000F000F000F000FFF8FFF8FFF8FFF80D5378BD
349 17>91 D<FFF8FFF8FFF8FFF8007800780078007800780078007800780078007800780078
350 007800780078007800780078007800780078007800780078007800780078007800780078
351 007800780078007800780078007800780078007800780078007800780078007800780078
352 007800780078007800780078007800780078007800780078007800780078007800780078
353 007800780078007800780078007800780078FFF8FFF8FFF8FFF80D537FBD17>93
354 D E /Fg 206[28 49[{ TeXBase1Encoding ReEncodeFont }1
355 50.000000 /Helvetica rf /Fh 202[32 2[32 32 32 48[{
356  TeXBase1Encoding ReEncodeFont }4 58.333336 /Helvetica
357 rf /Fi 12 117 df<00003FC000000000FFF800000007E07C0000000F801F0000003F00
358 1F800C007E000F800C00FC0007C01C01F80007E01803F00007E01807E00003E0380FE000
359 03F0300FC00003F0301FC00003F0703F800003F0603F800003F0E07F800003F0C07F0000
360 03F1C07F000003F1807F000003F380FF000003F300FE000003F700FE000003FE00FE0000
361 03FC00FE000003FC00FC000003F800FC000003F000FC000003F000FC000003F000FC0000
362 03F0007E000007F0007E00000FF0003E00001DF8183F000079F8181F0000E1F8380F8007
363 C0F83007E03F007CF001FFF8003FC0003FC0000F802E267DA435>11
364 D<00000001FC0000000007FF800000001E07C00000007801E0000000E001F0000001C000
365 F80000038000F80000070000F800000E0000FC00001C0000FC0000380000FC0000300000
366 FC0000700001FC0000600001F80000E00001F80000C00001F80001C00003F80001800003
367 F00003800003F00003000007E00003000007C0000700000FC0000600001F80000600FFBF
368 00000E01FFFC00000C0381F800000C03FFFE00000C00FF1F00001C00001F80001800000F
369 80001800000FC0001800000FC0003800000FC00030000007E00030000007E0003000000F
370 E0007000000FE0006000000FE0006000000FE0006000000FE000E000001FE000C000001F
371 C000C000001FC000C000001FC001C000003FC001C000003F8001C000003F8001C000007F
372 0003C000007F0003C00000FE0003C00000FC0003E00001F80007600003F00006700007E0
373 000638000FC000061C001F80000E0E003F00000C0780FC00000C01FFF000000C007F8000
374 001C00000000001800000000001800000000001800000000003800000000003000000000
375 003000000000003000000000007000000000006000000000006000000000006000000000
376 00E00000000000C00000000000C000000000002E4B7EBA2F>I<00003FF00001FFF0000F
377 FFE0003FC000007F000000FC000003F8000007F0000007E000000FE000001FC000001FC0
378 00003F8000003F8000007FFFFE007FFFFF007FFFFF007F000000FF000000FE000000FE00
379 0000FE000000FE000000FE0000007E0000007E0000007E0000007E0000003E0000003F00
380 00001F0000000F8000600FC000E003E003C001F01F00007FFC00000FE0001C257DA322>
381 15 D<1C007F00FF80FF80FF80FF80FF807F001C000909798817>58
382 D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C001C001800180038003
383 00070006000E001C003800700060000A19798817>I<0000000C0000001E0000003E0000
384 003E0000003C0000007C0000007C00000078000000F8000000F8000000F0000001F00000
385 01F0000001E0000003E0000003E0000003C0000007C0000007C00000078000000F800000
386 0F8000000F0000001F0000001F0000001E0000003E0000003E0000003C0000007C000000
387 7C00000078000000F8000000F8000000F0000001F0000001F0000001E0000003E0000003
388 E0000007C0000007C00000078000000F8000000F8000000F0000001F0000001F0000001E
389 0000003E0000003E0000003C0000007C0000007C00000078000000F8000000F8000000F0
390 000001F0000001F0000001E0000003E0000003E0000003C0000007C0000007C000000780
391 00000F8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000003C00
392 00007C0000007C00000078000000F8000000F8000000F0000000600000001F537BBD2A>
393 61 D<00000001FF00000000001FFFF000000000FE01FC00000003F0007E00000007C000
394 1F8000001F80000FC000003E000007E00000FC000003F00001F8000003F00003F0000001
395 F80007E0000001F8000FC0000000FC001F80000000FC003F00000000FE007F000000007E
396 00FE000000007E00FC000000007F01FC000000007F03F8000000007F03F8000000007F07
397 F0000000007F07F0000000007F0FF0000000007F0FE0000000007F1FE000000000FF1FE0
398 00000000FF3FC000000000FF3FC000000000FF3FC000000000FF7F8000000001FE7F8000
399 000001FE7F8000000001FE7F8000000001FEFF8000000003FCFF0000000003FCFF000000
400 0003FCFF0000000007F8FF0000000007F8FF000000000FF0FF000000000FF0FF00000000
401 0FE0FF000000001FE0FF000000001FC0FF000000003F807F000000007F807F000000007F
402 007F00000000FE007F00000001FC003F80000001F8003F80000003F8001F80000007F000
403 1FC000000FE0000FC000001F800007E000003F000007F000007E000003F00001F8000001
404 FC0003F00000007E000FC00000003F807F0000000007FFF80000000000FF80000000383D
405 7CBA3F>79 D<7FFFFC01FFFFF800FFFF80FFFFFC01FFFFF800FFFF80FFFFFC01FFFFF000
406 FFFF8003FF000007FC00000FF80003FC000007F8000003E00001FC000007F8000003C000
407 01FC000003F8000003800001FC000003F8000003000001FC000003F8000007000001FC00
408 0003F8000006000001FC000007F800000C000001FC000007F800000C000001FC00000FF8
409 000018000001FC00000FF8000018000001FC00001BF8000030000001FC00001BF8000060
410 000001FC000033F8000060000001FE000073F80000C0000001FE000063F80000C0000000
411 FE0000C3F8000180000000FE0000C3FC000180000000FE000183FC000300000000FE0001
412 81FC000700000000FE000301FC000600000000FE000701FC000C00000000FE000601FC00
413 0C00000000FE000C01FC001800000000FE000C01FC001800000000FE001801FC00300000
414 0000FE001801FC007000000000FE003001FC006000000000FE003001FC00C000000000FE
415 006001FC00C000000000FF00E001FC018000000000FF00C001FC0180000000007F018001
416 FC0300000000007F018001FE0300000000007F030001FE0600000000007F030000FE0E00
417 000000007F060000FE0C00000000007F0E0000FE1800000000007F0C0000FE1800000000
418 007F180000FE3000000000007F180000FE3000000000007F300000FE6000000000007F30
419 0000FEE000000000007F600000FEC000000000007F600000FF8000000000007FC00000FF
420 8000000000007F800000FF0000000000007F800000FF0000000000003F000000FE000000
421 0000003F000000FE0000000000003E0000007C0000000000003E00000078000000000000
422 3C000000780000000000003C000000700000000000003800000070000000000000300000
423 00600000000000513B7CB84E>87 D<0003F0000001FFF0000001FFF0000001FFF0000000
424 07F000000007E000000007E000000007E00000000FE00000000FC00000000FC00000000F
425 C00000001FC00000001F800000001F800000001F800000003F800000003F000000003F00
426 0000003F000000007F000000007E0007C0007E001FF0007E00783800FE00E0F800FC01C1
427 FC00FC0383FC00FC0707FC01FC0E07FC01F81C07F801F83803F001F87001E003F8E00000
428 03F1C0000003F380000003F700000007FE00000007FE00000007FFE0000007E7F800000F
429 E0FE00000FC07F00000FC03F80000FC01F80001FC01FC0001F800FC0301F800FC0301F80
430 0FC0703F801FC0603F001F80603F001F80603F001F80E07F001F80C07E001F81C07E000F
431 81807E000F8380FE00078700FC0003FE00380000F800263B7CB92B>107
432 D<03E0007F000007F801FFE0000E3C0781F0001C3E1E00F800383F3800FC00303F7000FC
433 00303FE0007C00703FC0007C00603F80007C00603F80007C00E03F0000FC00C07F0000FC
434 00C07E0000FC00C07E0000FC00007E0001FC0000FE0001F80000FC0001F80000FC0001F8
435 0000FC0003F80001FC0003F00001F80003F00001F80007F00001F80007E00003F80007E0
436 0003F0000FE03003F0000FC03003F0001FC07007F0001F806007E0001F806007E0001F80
437 E007E0001F00C00FE0001F01C00FC0001F01800FC0001F03800FC0001F07001FC0000F0E
438 001F800007FC0007000001F0002C267EA432>110 D<000F8003F000001FE00FFC000039
439 F03C1F000070F8700F8000E0FDE007C000C0FF8007C000C0FF0007E001C0FE0003E00180
440 FE0003F00180FC0003F00381FC0003F00301FC0003F00301F80003F00301F80003F00003
441 F80007F00003F80007F00003F00007F00003F00007F00007F0000FF00007F0000FF00007
442 E0000FE00007E0000FE0000FE0001FE0000FE0001FC0000FC0001FC0000FC0003F80001F
443 C0003F80001FC0007F00001F80007E00001F8000FE00003F8000FC00003FC001F800003F
444 C003F000003FE007E000007F700F8000007F383F0000007E1FFC0000007E07E0000000FE
445 0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001F8
446 0000000001F80000000003F80000000003F80000000003F00000000007F000000000FFFF
447 C0000000FFFFC0000000FFFFC00000002C3583A42A>112 D<0001C0000003E0000007E0
448 000007E0000007E0000007E000000FE000000FC000000FC000000FC000001FC000001F80
449 00001F8000001F8000003F8000003F00007FFFFF807FFFFF80FFFFFF80007E0000007E00
450 00007E000000FE000000FC000000FC000000FC000001FC000001F8000001F8000001F800
451 0003F8000003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE000
452 000FC006000FC006000FC00E001FC00C001F801C001F8018001F8038001F8070001F8060
453 001F80E0000F81C0000787800003FE000000F8000019357EB31E>116
454 D E /Fj 82[39 53[90 65 71 39 65 45 71 71 71 71 103 32
455 65 1[32 71 71 39 65 71 65 1[65 12[71 78 84 1[78 90 5[32
456 84 90 71 1[84 84 84 84 8[65 65 65 65 65 65 65 65 49[{
457  TeXBase1Encoding ReEncodeFont }43 116.666672 /Helvetica-Bold
458 rf /Fk 82[28 24[28 28 24[42 42 42 60 42 46 23 42 28 46
459 46 46 46 69 18 42 18 18 46 46 23 46 46 42 46 46 3[23
460 1[23 1[55 1[78 55 60 51 55 60 65 55 65 60 69 46 55 1[23
461 60 65 51 55 60 60 55 55 5[23 23 46 46 46 46 46 46 46
462 46 46 46 1[23 1[23 1[32 28 28 18 35[42 42 2[{
463  TeXBase1Encoding ReEncodeFont }74 83.333336 /Helvetica
464 rf /Fl 82[22 51[33 1[48 33 37 18 33 22 1[37 37 37 55
465 15 33 1[15 37 37 18 37 37 33 37 37 12[41 44 48 1[44 52
466 48 1[37 2[18 48 52 41 44 48 48 1[44 7[37 37 37 37 37
467 37 37 37 37 37 18 18 1[18 40[33 33 2[{ TeXBase1Encoding ReEncodeFont }
468 53 66.666664 /Helvetica rf /Fm 1 4 df<006000007000006000006000406020E060
469 70F861F07E67E01FFF8007FE0000F00007FE001FFF807E67E0F861F0E060704060200060
470 0000600000700000600014157B9620>3 D E /Fn 82[25 21[75
471 42 25[19 1[37 37 37 54 37 42 21 37 25 42 42 42 42 62
472 17 37 17 17 42 42 21 42 42 37 42 42 3[21 1[21 46 50 1[71
473 50 54 46 50 54 58 50 58 54 62 42 50 37 21 54 58 46 50
474 54 54 50 50 6[21 42 42 42 42 42 42 42 42 42 42 21 21
475 1[21 1[29 25 25 17 35[37 37 2[{ TeXBase1Encoding ReEncodeFont }77
476 75.000000 /Helvetica rf /Fo 139[25 42 29 14[42 46 42
477 31[54 65[{ TeXBase1Encoding ReEncodeFont }7 75.000000
478 /Helvetica-Bold rf /Fp 134[60 3[60 1[60 60 1[60 1[60
479 60 1[60 3[60 1[60 60 60 1[60 32[60 17[60 46[{
480  TeXBase1Encoding ReEncodeFont }15 100.000000 /Courier
481 rf /Fq 1 4 df<000C0000001E0000001E0000001E0000001E0000001E0000601E018078
482 1E0780FC0C0FC07F0C3F803F8C7F0007CCF80001FFE000007F8000001E0000007F800001
483 FFE00007CCF8003F8C7F007F0C3F80FC0C0FC0781E0780601E0180001E0000001E000000
484 1E0000001E0000001E0000000C00001A1D7C9E23>3 D E /Fr 134[50
485 2[50 55 28 50 33 1[55 55 55 83 22 2[22 55 1[28 55 55
486 50 1[55 8[66 94 66 72 1[66 2[66 1[72 83 55 66 1[28 1[78
487 61 1[72 72 1[66 6[28 55 55 55 55 55 55 55 55 55 55 3[28
488 2[33 33 40[{ TeXBase1Encoding ReEncodeFont }48 100.000000
489 /Helvetica rf /Fs 1 4 df<00007000000000F800000000F800000000F800000000F8
490 00000000F800000000F800000000F800000000F80000000070000078007000F07C007001
491 F0FF007007F87F80700FF03FE0703FE00FF0707F8003F870FE0000FE73F800003F77E000
492 000FFF80000003FE00000000F800000003FE0000000FFF8000003F77E00000FE73F80003
493 F870FE000FF0707F803FE0703FE07F80700FF0FF007007F87C007001F078007000F00000
494 7000000000F800000000F800000000F800000000F800000000F800000000F800000000F8
495 00000000F800000000700000252B7AAD32>3 D E /Ft 82[47 50[71
496 4[78 39 71 47 78 78 78 78 118 31 2[31 78 1[39 78 1[71
497 78 78 12[86 94 2[94 110 10[102 2[94 65[{ TeXBase1Encoding ReEncodeFont }
498 25 141.666672 /Helvetica rf end
499 %%EndProlog
500 %%BeginSetup
501 %%Feature: *Resolution 600dpi
502 TeXDict begin
503 %%PaperSize: Letter
504
505 %%EndSetup
506 %%Page: 1 1
507 1 0 bop 181 739 a Ft(State\255of\255the\255Art)43 b(in)d(Parallel)i
508 (Search)e(T)-16 b(echniques)42 b(for)e(Discrete)1264
509 967 y(Optimization)h(Problems)2722 915 y Fs(\003)1217
510 1297 y Fr(Ananth)29 b(Grama)1864 1261 y Fq(\003)1904
511 1297 y Fr(,)f(and)h(V)n(ipin)g(Kumar)2693 1261 y Fq(\003\003)1209
512 1551 y(\003)1249 1587 y Fr(Department)g(of)f(Computer)h(Sciences)1015
513 1733 y(Purdue)h(University)-7 b(,)27 b(W)n(est)h(Lafayette,)g(IN)f
514 (47907)538 1878 y Fp([email protected])p Fr(,)c(Ph:)40
515 b(\(765\))29 b(494)g(6964,)g(F)-5 b(AX:)28 b(\(765\))h(494)g(0739)1216
516 2132 y Fq(\003\003)1291 2169 y Fr(Department)g(of)f(Computer)h(Science)
517 924 2314 y(University)f(of)g(Minnesota,)h(Minneapolis,)h(MN)e(55455)568
518 2459 y Fp([email protected])p Fr(,)c(Ph:)39 b(\(612\))29
519 b(624)g(8023,)g(F)-5 b(AX:)28 b(\(612\))h(625)g(0572)1842
520 2916 y Fo(Abstract)363 3102 y Fn(Discrete)k(optimization)e(problems)h
521 (arise)i(in)f(a)h(variety)f(of)h(domains)f(such)h(as)g(VLSI)f(design,)j
522 (transportation,)251 3216 y(scheduling)18 b(and)j(management,)d(and)i
523 (design)g(optimization.)28 b(V)l(ery)21 b(often,)f(these)g(problems)g
524 (are)h(solved)f(using)g(state)251 3331 y(space)29 b(search)h
525 (techniques.)55 b(Due)30 b(to)g(the)f(high)g(computational)d
526 (requirements)i(and)h(inherent)f(parallel)f(nature)h(of)251
527 3445 y(search)21 b(techniques,)f(there)h(has)g(been)g(a)h(great)e(deal)
528 h(of)h(interest)e(in)h(the)g(development)f(of)h(parallel)e(search)j
529 (methods)251 3559 y(since)33 b(the)h(dawn)f(of)h(parallel)d(computing.)
530 68 b(Signi\002cant)32 b(advances)h(have)g(been)g(made)g(in)h(the)f(use)
531 h(of)g(powerful)251 3673 y(heuristics)21 b(and)g(parallel)e(processing)
532 i(to)h(solve)g(large)f(scale)h(discrete)f(optimization)e(problems.)33
533 b(Problem)21 b(instances)251 3787 y(that)j(were)g(considered)f
534 (computationally)f(intractable)g(only)j(a)g(few)g(years)g(back)g(are)g
535 (routinely)e(solved)h(currently)g(on)251 3901 y(server\255class)f
536 (symmetric)h(multi\255processors)d(and)h(small)h(workstation)f
537 (clusters.)36 b(Parallel)21 b(game\255playing)f(programs)251
538 4015 y(are)d(challenging)c(the)k(best)g(human)g(minds)g(at)g(games)h
539 (like)f(chess.)28 b(In)17 b(this)g(paper)l(,)f(we)i(describe)e(the)h
540 (state)g(of)g(the)g(art)g(in)251 4130 y(parallel)d(algorithms)h(used)i
541 (for)g(solving)f(discrete)g(optimization)f(problems.)26
542 b(W)o(e)16 b(address)h(heuristic)e(and)i(non\255heuristic)251
543 4244 y(techniques)c(for)j(searching)e(graphs)h(as)h(well)f(as)h(trees,)
544 g(and)f(speedup)f(anomalies)g(in)i(parallel)d(search)i(that)g(are)h
545 (caused)251 4358 y(by)k(the)g(inherent)e(speculative)g(nature)h(of)h
546 (search)g(techniques.)p 43 4427 1560 4 v 127 4481 a Fm(\003)163
547 4504 y Fl(This)f(work)h(is)g(sponsored)g(by)h(the)f(by)g(Army)h
548 (Research)f(Of)o(\002ce)h(contract)g(DA/DAAG55\25598\2551\2550441,)h
549 (NSF)d(Grant)i(EIA9876014,)g(and)f(by)g(Army)43 4603
550 y(High)30 b(Performance)h(Computing)g(Research)f(Center)h(under)f(the)g
551 (auspices)h(of)f(the)h(Department)g(of)g(the)f(Army)-5
552 b(,)35 b(Army)c(Research)g(Laboratory)43 4701 y(cooperative)20
553 b(agreement)g(number)g(DAAH04\25595\2552\2550003/contract)h(number)f
554 (DAAH04\25595\255C\2550008,)g(the)g(content)g(of)g(which)g(does)f(not)h
555 (necessarily)43 4800 y(re\003ect)f(the)g(position)f(or)h(the)g(policy)f
556 (of)h(the)g(government,)g(and)g(no)f(of)o(\002cial)g(endorsement)h
557 (should)g(be)f(inferred.)1970 5610 y Fk(1)p eop
558 %%Page: 2 2
559 2 1 bop 43 345 a Fj(1)116 b(Introduction)43 630 y Fk(The)21
560 b(generalized)h(discrete)f(optimization)i(problem)f(\(DOP\))e(deals)h
561 (with)h(minimizing)h(an)e(objective)h(function)g(of)f(a)g(set)g(of)43
562 755 y(variables)e(that)f(are)h(allowed)g(only)g(discrete)f(values.)31
563 b(An)19 b(instance)f(of)h(this)f(class)g(is)g(the)h(integer)g
564 (programming)g(problem)43 879 y(in)26 b(which)g(only)g(integer)g
565 (solutions)g(are)g(admissible)h(for)e(a)h(linear)h(programming)f
566 (\(LP\))g(model.)41 b(Other)25 b(instances)g(arise)43
567 1004 y(in)d(diverse)f(domains)h(such)e(as)h(VLSI)h(design)g
568 (\(placement)g(of)g(VLSI)g(components)f(on)h(a)f(die)h(to)g(minimize)g
569 (silicon)g(area\),)43 1128 y(robotics)k(\(robot)h(motion)g(planning\),)
570 i(and)e(logistics)g(\(visiting)g(all)g(vertices)f(of)g(a)h(graph)g
571 (while)g(minimizing)i(edge)e(cost\).)43 1253 y(Most)f(such)g(problems)h
572 (are)g(NP)f(complete;)k(hence)c(their)h(solution)h(time)f(increases)f
573 (exponentially)i(in)f(the)g(size)f(of)h(the)43 1377 y(problem)h(for)e
574 (all)i(known)f(algorithms.)44 b(One)27 b(may)f(argue)i(that)f(it)g(is)g
575 (pointless)g(to)g(apply)g(parallel)i(processing)d(to)h(these)43
576 1502 y(problems)21 b(since)g(we)g(can)f(never)h(reduce)g(their)g
577 (worst\255case)e(run)i(time)h(to)f(a)g(polynomial)h(without)g(using)f
578 (an)g(exponential)43 1626 y(number)37 b(of)f(processors.)69
579 b(However)-5 b(,)40 b(the)c(average\255time)h(complexity)f(of)h
580 (heuristic)f(search)f(algorithms)i(for)f(some)43 1751
581 y(problems)31 b(is)f(polynomial)i([38)q(,)e(46)q(].)54
582 b(Furthermore,)32 b(there)f(are)f(heuristic)h(search)e(algorithms)i
583 (that)g(\002nd)g(suboptimal)43 1875 y(solutions)25 b(for)g(speci\002c)f
584 (problems)h(in)g(polynomial)i(time.)38 b(In)25 b(such)f(cases,)g
585 (bigger)h(problem)h(instances)e(can)h(be)g(solved)43
586 2000 y(using)31 b(parallel)h(computers.)55 b(Many)30
587 b(DOPs)g(\(such)g(as)g(robot)h(motion)g(planning,)k(speech)30
588 b(understanding,)k(and)d(task)43 2124 y(scheduling\))25
589 b(require)f(real\255time)i(solutions.)36 b(For)24 b(these)g
590 (applications,)i(parallel)g(processing)e(may)g(be)h(the)f(only)h(way)f
591 (to)43 2249 y(obtain)j(acceptable)f(performance.)39 b(Problems)26
592 b(for)g(which)f(optimal)i(solutions)f(are)g(highly)g(desirable)g(can)g
593 (sometimes)43 2374 y(be)c(solved)g(for)f(moderate)i(sized)e(instances)g
594 (in)i(a)f(reasonable)g(amount)h(of)e(time)i(by)e(using)h(parallel)i
595 (search)d(techniques)43 2498 y(\(for)i(example,)h(VLSI)g
596 (\003oor\255plan)f(optimization\).)43 2683 y(Due)32 b(to)f(the)h(high)g
597 (computational)h(requirement)f(and)g(inherent)g(parallel)h(nature)e(of)
598 h(search)e(techniques,)k(there)d(has)43 2807 y(been)f(great)g(interest)
599 g(in)g(the)g(development)h(of)f(parallel)h(search)e(methods)h(since)f
600 (the)h(dawn)g(of)g(parallel)h(computing.)43 2932 y(In)24
601 b(fact,)g(parallel)h(search)e(programs)h(were)f(among)i(the)f(\002rst)f
602 (non\255numerical)i(programs)e(written)h(for)g(early)g(generation)43
603 3056 y(parallel)c(machines)e(such)f(as)h(HEP)h(and)f(C.mmp.)31
604 b(There)18 b(are)g(many)g(characteristics)f(of)h(search)f(techniques)i
605 (that)f(make)43 3181 y(their)28 b(parallel)i(formulations)f(very)d(dif)
606 o(ferent)j(from)e(those)h(of)g(traditional)i(numerical)f(algorithms,)h
607 (but)e(much)g(closer)f(to)43 3305 y(other)22 b(non\255numerical)g
608 (algorithms.)32 b(Parallel)24 b(search)c(algorithms)i(rely)f(on)h
609 (dynamic)f(data)h(structures,)e(which)i(makes)f(it)43
610 3430 y(dif)o(\002cult)j(to)h(use)f(static)h(work)f(distribution)h
611 (techniques.)38 b(There)24 b(is)g(potential)j(for)d(speculative)h(work)
612 f(both)h(in)g(serial)g(and)43 3554 y(parallel)30 b(search)e
613 (algorithms.)49 b(Hence)28 b(load)i(balancing)f(algorithms)h(for)e
614 (parallel)i(search)e(must)g(consider)g(qualitative)43
615 3679 y(information)34 b(as)e(well.)61 b(Some)33 b(search)e(algorithms)i
616 (require)g(use)f(of)g(large)h(global)h(hash)e(structures,)h(which)g
617 (can)f(be)43 3803 y(hard)27 b(to)g(implement)i(on)f(losely)f(coupled)h
618 (parallel)g(architectures.)44 b(T)m(remendous)27 b(advances)f(have)h
619 (been)h(made)f(both)43 3928 y(in)d(theoretical)h(and)f(applied)h
620 (aspects)e(of)h(parallel)h(search)e(techniques)h([11)q(].)34
621 b(These)23 b(techniques)h(have)g(been)g(used)g(to)43
622 4052 y(solve)19 b(problems)g(that)h(are)f(well)h(beyond)g(the)f(scope)g
623 (of)g(conventional)h(serial)g(processors.)29 b(In)19
624 b(this)h(paper)-5 b(,)20 b(we)g(provide)f(a)43 4177 y(brief)i(overview)
625 g(of)g(commonly)g(used)g(sequential)h(search)e(methods,)h(and)h
626 (present)e(the)i(state\255of\255the\255art)e(in)h(the)g(parallel)43
627 4302 y(formulations)j(of)g(various)e(search)g(techniques.)43
628 4701 y Fj(2)116 b(Overview)32 b(of)g(Search)f(T)-9 b(echniques)43
629 4986 y Fk(V)k(ery)24 b(often)h(a)f(discrete)g(optimization)i(problem)f
630 (is)f(formulated)h(as)f(the)h(problem)g(of)f(\002nding)h(a)f(path)g(in)
631 h(a)f(graph)h(from)f(a)43 5110 y(designated)j(initial)i(node)e(to)f
632 (one)h(of)g(several)f(possible)g(goals)h([38)q(,)f(20].)42
633 b(Such)27 b(a)f(graph)h(is)f(called)h(a)g(state)f(space.)42
634 b(In)43 5235 y(some)22 b(problems,)g(any)g(solution)h(path)f(between)g
635 (the)h(initial)g(node)g(and)f(a)g(goal)g(node)h(is)e(acceptable,)i
636 (whereas)f(in)g(other)43 5359 y(problems)f(a)g(cost)f(is)h(associated)g
637 (with)h(each)e(path)i(and)f(a)g(minimum)i(cost)d(solution)i(is)f
638 (desired.)32 b(In)21 b(many)g(applications,)1970 5610
639 y(2)p eop
640 %%Page: 3 3
641 3 2 bop 43 344 a Fk(it)29 b(is)g(possible)h(to)f(compute)g(a)g(lower)g
642 (bound)h(on)f(the)g(cost)f(of)i(a)f(solution)h(path)f(that)g(passes)f
643 (through)i(a)f(given)g(state.)43 469 y(This)23 b(cost)f(is)h(also)h
644 (called)g(a)f(heuristic)g(estimate.)43 653 y(T)-5 b(wo)31
645 b(commonly)g(used)f(techniques)h(for)g(searching)f(state)h(spaces)e
646 (are)i(depth\255\002rst)e(and)i(best\255\002rst)e(search.)54
647 b(Depth\255)43 778 y(\002rst)32 b(search)g(techniques)h(start)f(from)h
648 (an)g(initial)i(state)e(and)g(generate)h(a)f(set)f(of)i(successor)c
649 (states.)61 b(One)33 b(of)g(these)43 903 y(most)28 b(recently)g
650 (generated)g(states)g(is)g(then)g(selected)h(for)e(expansion)i(at)f
651 (each)g(step.)47 b(Many)28 b(variants)g(of)g(this)g(simple)43
652 1027 y(DFS)34 b(technique)g(exist.)64 b(In)34 b(one)g(such)f(variant,)j
653 (the)e(successor)d(states)i(of)h(a)g(node)g(are)g(ordered)g(on)f(the)h
654 (basis)g(of)43 1152 y(their)i(likelihood)h(of)f(yielding)h(a)e
655 (solution.)70 b(This)36 b(search)e(technique)j(is)e(referred)g(to)g(as)
656 g(directed\255DFS)h(or)f(ordered)43 1276 y(backtracking.)c(In)20
657 b(many)g(applications,)j(early)d(branches)g(explored)h(by)f(DFS)g
658 (techniques)h(may)f(lead)h(to)g(large)g(subtrees)43 1401
659 y(containing)27 b(no)f(solutions)g(when)g(solutions)h(may)e(be)h
660 (available)i(close)d(to)h(the)g(root)g(on)g(alternate)g(branches.)40
661 b(In)26 b(these)43 1525 y(cases,)33 b(it)f(is)g(useful)h(to)f(limit)h
662 (the)g(depth)f(in)h(terms)e(of)h(cost)g(or)f(number)i(of)f(edges,)i(to)
663 e(which)g(exhaustive)g(search)f(is)43 1650 y(performed.)j(If)23
664 b(no)h(desirable)g(solution)h(is)e(found)h(in)g(this)f(limited)j
665 (search,)c(the)i(limit)h(is)e(revised)g(and)h(search)f(performed)43
666 1774 y(again.)50 b(The)29 b(limit)h(can)f(be)g(de\002ned)g(in)g(terms)f
667 (of)h(tree)g(depth)g(\(depth\255bounded)h(DFS\),)e(or)h(in)g(terms)f
668 (of)h(solution)h(cost)43 1899 y(\(IDA*\).)39 b(In)25
669 b(depth\255\002rst)f(search,)h(if)h(the)g(lower)f(bound)h(of)g(a)f
670 (node)h(is)f(larger)g(than)h(the)g(cost)e(of)h(the)h(best)f(solution)h
671 (found)43 2023 y(thus)17 b(far)-5 b(,)19 b(then)e(the)h(node)f(can)g
672 (be)g(pruned.)31 b(This)17 b(technique)h(is)f(referred)g(to)g(as)g
673 (depth\255\002rst)f(branch\255and\255bound)h(\(DFBB\).)43
674 2208 y(In)j(all)h(algorithms)g(based)f(on)h(the)f(DFS)g(technique,)i
675 (once)e(a)g(successor)e(node)j Fi(n)e Fk(is)h(selected)h(for)f
676 (expansion,)h(its)f(sibling)43 2332 y(nodes)29 b(are)f(expanded)h(only)
677 g(after)g(the)f(entire)i(tree)e(rooted)h(at)g(node)g
678 Fi(n)f Fk(is)g(expanded,)j(even)d(if)h(successors)d(of)j
679 Fi(n)f Fk(are)43 2457 y(much)g(less)f(promising)h(than)g(the)g
680 (siblings)g(of)g Fi(n)p Fk(.)45 b(Thus,)28 b(these)g(algorithms)g(make)
681 g(use)f(of)h(the)g(heuristic)f(information)43 2581 y(only)21
682 b(on)g(a)g(local)g(scale)f(to)h(order)g(the)g(successors)d(of)i(a)h
683 (node.)32 b(DFBB)21 b(and)h(IDA*)f(also)g(make)f(a)h(limited)i(use)d
684 (of)h(heuristic)43 2706 y(information)j(on)f(a)f(global)i(scale)f(as)f
685 (they)g(prune)h(a)f(node)h(if)g(it)g(is)g(less)f(promising)h(than)g(a)f
686 (previously)h(found)g(solution)g(or)43 2830 y(bound.)34
687 b(As)23 b(we)h(will)g(discuss)f(later)-5 b(,)24 b(this)g(limited)h(use)
688 e(of)h(heuristics)f(makes)g(it)g(easy)g(to)h(develop)g(parallel)h
689 (formulations)43 2955 y(of)e(DFS)g(algorithms.)43 3140
690 y(In)h(contrast)g(to)g(DFS,)g(best\255\002rst)f(search)g(algorithms)i
691 (expand)f(the)h(most)f(promising)g(node)h(currently)f(available)h(on)g
692 (the)43 3264 y(search)i(frontier)-5 b(,)30 b(and)f(thus)e(make)h
693 (complete)h(use)f(of)g(the)g(available)i(heuristic)e(information.)49
694 b(The)28 b(search)f(frontier)h(is)43 3389 y(maintained)g(as)d(a)g
695 (priority)h(queue,)h(and)f(is)f(commonly)h(referred)f(to)g(as)g(the)h
696 (OPEN)g(list)2893 3359 y Fh(1)2930 3389 y Fk(.)39 b(A)26
697 b(well)h(known)e(algorithm)i(of)43 3513 y(this)i(type)g(is)g(A*,)i
698 (also)e(referred)f(to)h(as)g(best\255\002rst)e(branch)h(and)i(bound)f
699 (\(BFBB\).)g(A)h(major)f(price)g(paid)g(for)g(this)g(use)g(of)43
700 3638 y(heuristic)c(information)h(in)f(a)f(global)i(context)f(is)f(that)
701 h(BFS)g(requires)f(memory)h(proportional)h(to)e(the)h(size)f(of)h(the)g
702 (search)43 3762 y(frontier)-5 b(,)38 b(which)c(is)g(often)h
703 (exponential)h(in)e(the)h(depth)g(of)f(the)g(solution.)67
704 b(In)34 b(contrast,)i(all)g(DFS)e(algorithms)h(require)43
705 3887 y(memory)23 b(proportional)h(to)g(the)f(depth)h(of)f(the)h
706 (solution)g(path.)43 4071 y(In)19 b(many)g(applications,)i(identical)g
707 (states)d(can)h(be)g(reached)g(from)g(multiple)i(paths.)31
708 b(Re\255expansion)19 b(of)g(these)g(states)f(can)43 4196
709 y(be)26 b(avoided)f(if)h(the)g(search)e(technique)i(checks)e(every)g
710 (generated)i(node)f(for)g(possible)h(replications.)40
711 b(BFS)25 b(strategies)43 4320 y(support)d(replication)h(checking)e(by)h
712 (maintaining)i(a)e(list)h(of)f(all)g(the)h(expanded)f(nodes)g(\(and)g
713 (their)g(costs\))f(on)h(a)g(list)g(called)43 4445 y(CLOSED)384
714 4415 y Fh(1)421 4445 y Fk(.)31 b(DFS)19 b(based)g(techniques)g(do)h
715 (not)f(support)g(replication)h(checking,)g(and)f(thus)g(essentially)g
716 (unroll)h(the)g(graph)43 4569 y(into)28 b(a)f(tree.)44
717 b(Unrolling)29 b(graphs)d(into)i(trees)f(can)f(have)h(overheads)g
718 (ranging)h(from)f(a)g(constant)g(factor)f(to)h(exponential)43
719 4694 y(depending)d(on)f(the)g(structure)f(of)h(the)f(graph.)33
720 b(In)23 b(the)g(latter)g(case,)f(DFS)h(techniques)g(may)f(be)h
721 (unsuitable,)h(as)e(they)h(will)43 4819 y(need)28 b(to)g(expand)h(many)
722 e(more)h(nodes)g(than)g(BFS.)h(Finally)-6 b(,)29 b(simple)g(and)f
723 (directed)g(DFS)g(are)g(generally)g(used)g(to)g(\002nd)43
724 4943 y(the)e(\002rst)f(solution)i(that)f(they)g(encounter)g(in)g(the)h
725 (search)e(space,)h(whereas)f(DFBB,)i(IDA*,)g(and)g(BFS)f(\002nd)g(a)g
726 (least)g(cost)43 5068 y(solution.)34 b(This)22 b(taxonomy)h(of)h
727 (search)e(characteristics)g(is)h(illustrated)h(in)g(Figure)f(1.)p
728 43 5139 1560 4 v 131 5196 a Fg(1)163 5219 y Fl(OPEN)17
729 b(and)g(CLOSED)g(data)h(structures)g(are)f(called)g(lists)h(for)f
730 (historical)g(reasons.)26 b(In)18 b(fact,)h(OPEN)e(list)h(is)f
731 (typically)g(implemented)g(using)g(a)g(heap)43 5318 y(and)h(CLOSED)h
732 (list)f(is)h(implemented)g(as)f(a)h(hash)f(table.)1970
733 5610 y Fk(3)p eop
734 %%Page: 4 4
735 4 3 bop 43 344 a Fk(Although)36 b(a)e(central)g(component)h(of)f(most)g
736 (parallel)i(search)d(algorithms)i(is)f(a)g(dynamic)g(load)h(balancing)g
737 (scheme,)43 469 y(the)j(parallel)g(formulation)h(is)e(impacted)h(by)f
738 (the)g(nature)h(of)f(the)h(search)e(space,)k(the)e(use)f(of)g
739 (heuristics,)j(memory)43 593 y(requirements,)20 b(and)f(the)f(desired)h
740 (solution)g(quality)-6 b(.)32 b(In)18 b(the)h(following)h(sections,)f
741 (we)f(discuss)f(the)i(parallel)h(formulations)43 718
742 y(developed)k(for)f(various)g(search)f(algorithms.)205
743 2054 y @beginspecial 0 @llx 0 @lly 455 @urx 154 @ury
744 4320 @rwi @setspecial
745 %%BeginDocument: search.eps
746 %Magnification: 0.80
747 /$F2psDict 200 dict def
748 $F2psDict begin
749 $F2psDict /mtrx matrix put
750 /col-1 {0 setgray} bind def
751 /col0 {0.000 0.000 0.000 srgb} bind def
752 /col1 {0.000 0.000 1.000 srgb} bind def
753 /col2 {0.000 1.000 0.000 srgb} bind def
754 /col3 {0.000 1.000 1.000 srgb} bind def
755 /col4 {1.000 0.000 0.000 srgb} bind def
756 /col5 {1.000 0.000 1.000 srgb} bind def
757 /col6 {1.000 1.000 0.000 srgb} bind def
758 /col7 {1.000 1.000 1.000 srgb} bind def
759 /col8 {0.000 0.000 0.560 srgb} bind def
760 /col9 {0.000 0.000 0.690 srgb} bind def
761 /col10 {0.000 0.000 0.820 srgb} bind def
762 /col11 {0.530 0.810 1.000 srgb} bind def
763 /col12 {0.000 0.560 0.000 srgb} bind def
764 /col13 {0.000 0.690 0.000 srgb} bind def
765 /col14 {0.000 0.820 0.000 srgb} bind def
766 /col15 {0.000 0.560 0.560 srgb} bind def
767 /col16 {0.000 0.690 0.690 srgb} bind def
768 /col17 {0.000 0.820 0.820 srgb} bind def
769 /col18 {0.560 0.000 0.000 srgb} bind def
770 /col19 {0.690 0.000 0.000 srgb} bind def
771 /col20 {0.820 0.000 0.000 srgb} bind def
772 /col21 {0.560 0.000 0.560 srgb} bind def
773 /col22 {0.690 0.000 0.690 srgb} bind def
774 /col23 {0.820 0.000 0.820 srgb} bind def
775 /col24 {0.500 0.190 0.000 srgb} bind def
776 /col25 {0.630 0.250 0.000 srgb} bind def
777 /col26 {0.750 0.380 0.000 srgb} bind def
778 /col27 {1.000 0.500 0.500 srgb} bind def
779 /col28 {1.000 0.630 0.630 srgb} bind def
780 /col29 {1.000 0.750 0.750 srgb} bind def
781 /col30 {1.000 0.880 0.880 srgb} bind def
782 /col31 {1.000 0.840 0.000 srgb} bind def
783
784 end
785 save
786 -72.0 233.0 translate
787 1 -1 scale
788
789 /cp {closepath} bind def
790 /ef {eofill} bind def
791 /gr {grestore} bind def
792 /gs {gsave} bind def
793 /sa {save} bind def
794 /rs {restore} bind def
795 /l {lineto} bind def
796 /m {moveto} bind def
797 /rm {rmoveto} bind def
798 /n {newpath} bind def
799 /s {stroke} bind def
800 /sh {show} bind def
801 /slc {setlinecap} bind def
802 /slj {setlinejoin} bind def
803 /slw {setlinewidth} bind def
804 /srgb {setrgbcolor} bind def
805 /rot {rotate} bind def
806 /sc {scale} bind def
807 /sd {setdash} bind def
808 /ff {findfont} bind def
809 /sf {setfont} bind def
810 /scf {scalefont} bind def
811 /sw {stringwidth} bind def
812 /tr {translate} bind def
813 /tnt {dup dup currentrgbcolor
814   4 -2 roll dup 1 exch sub 3 -1 roll mul add
815   4 -2 roll dup 1 exch sub 3 -1 roll mul add
816   4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
817   bind def
818 /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
819   4 -2 roll mul srgb} bind def
820 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
821 /$F2psEnd {$F2psEnteredState restore end} def
822
823 $F2psBegin
824 10 setmiterlimit
825 n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
826  0.04800 0.04800 sc
827 7.500 slw
828 % Polyline
829 n 6600 2100 m 6675 2100 l 6675 4275 l 6600 4275 l gs col-1 s gr 
830 % Polyline
831 n 6600 4500 m 6675 4500 l 6675 4800 l 6600 4800 l gs col-1 s gr 
832 % Polyline
833 n 8400 2100 m 8475 2100 l 8475 2475 l 8400 2475 l gs col-1 s gr 
834 % Polyline
835 n 8400 2700 m 8475 2700 l 8475 3075 l 8400 3075 l gs col-1 s gr 
836 % Polyline
837 n 8400 3300 m 8475 3300 l 8475 4275 l 8400 4275 l gs col-1 s gr 
838 % Polyline
839 n 8400 4500 m 8475 4500 l 8475 4800 l 8400 4800 l gs col-1 s gr 
840 % Polyline
841 n 9900 2100 m 9975 2100 l 9975 3075 l 9900 3075 l gs col-1 s gr 
842 % Polyline
843 n 9900 3300 m 9975 3300 l 9975 4800 l 9900 4800 l gs col-1 s gr 
844 % Polyline
845 n 5025 2100 m 5100 2100 l 5100 4275 l 5025 4275 l gs col-1 s gr 
846 % Polyline
847 n 5025 4500 m 5100 4500 l 5100 4800 l 5025 4800 l gs col-1 s gr 
848 /Helvetica ff 180.00 scf sf
849 1500 2400 m
850 gs 1 -1 sc (Simple DFS \(Backtracking\)) col-1 sh gr
851 /Helvetica ff 180.00 scf sf
852 1500 3000 m
853 gs 1 -1 sc (Directed DFS \(Ordered Backtracking\)) col-1 sh gr
854 /Helvetica ff 180.00 scf sf
855 1500 3600 m
856 gs 1 -1 sc (Depth-First Branch and Bound) col-1 sh gr
857 /Helvetica ff 180.00 scf sf
858 1500 4200 m
859 gs 1 -1 sc (IDA*) col-1 sh gr
860 /Helvetica ff 180.00 scf sf
861 1500 4800 m
862 gs 1 -1 sc (Best-First Search / A*) col-1 sh gr
863 /Helvetica ff 180.00 scf sf
864 6975 3000 m
865 gs 1 -1 sc (Linear) col-1 sh gr
866 /Helvetica ff 180.00 scf sf
867 6975 3240 m
868 gs 1 -1 sc (in) col-1 sh gr
869 /Helvetica ff 180.00 scf sf
870 6975 3480 m
871 gs 1 -1 sc (Depth) col-1 sh gr
872 /Helvetica ff 180.00 scf sf
873 6975 4725 m
874 gs 1 -1 sc (Exponential) col-1 sh gr
875 /Helvetica ff 180.00 scf sf
876 6675 2040 m
877 gs 1 -1 sc (Requirement) col-1 sh gr
878 /Helvetica ff 180.00 scf sf
879 8775 2325 m
880 gs 1 -1 sc (None) col-1 sh gr
881 /Helvetica ff 180.00 scf sf
882 8775 2925 m
883 gs 1 -1 sc (Local) col-1 sh gr
884 /Helvetica ff 180.00 scf sf
885 8775 3750 m
886 gs 1 -1 sc (Partially) col-1 sh gr
887 /Helvetica ff 180.00 scf sf
888 8775 3990 m
889 gs 1 -1 sc (Global) col-1 sh gr
890 /Helvetica ff 180.00 scf sf
891 8775 4725 m
892 gs 1 -1 sc (Global) col-1 sh gr
893 /Helvetica ff 180.00 scf sf
894 8475 1800 m
895 gs 1 -1 sc (Heuristic) col-1 sh gr
896 /Helvetica ff 180.00 scf sf
897 9975 1800 m
898 gs 1 -1 sc (Solution) col-1 sh gr
899 /Helvetica ff 180.00 scf sf
900 9975 2040 m
901 gs 1 -1 sc (Quality) col-1 sh gr
902 /Helvetica ff 180.00 scf sf
903 10275 2625 m
904 gs 1 -1 sc (Any) col-1 sh gr
905 /Helvetica ff 180.00 scf sf
906 10275 2865 m
907 gs 1 -1 sc (Solution) col-1 sh gr
908 /Helvetica ff 180.00 scf sf
909 10275 4050 m
910 gs 1 -1 sc (Best) col-1 sh gr
911 /Helvetica ff 180.00 scf sf
912 10275 4290 m
913 gs 1 -1 sc (Solution) col-1 sh gr
914 /Helvetica ff 180.00 scf sf
915 6675 1800 m
916 gs 1 -1 sc (Memory) col-1 sh gr
917 /Helvetica ff 180.00 scf sf
918 5100 1800 m
919 gs 1 -1 sc (Nature of) col-1 sh gr
920 /Helvetica ff 180.00 scf sf
921 5100 2040 m
922 gs 1 -1 sc (Search Space) col-1 sh gr
923 /Helvetica ff 180.00 scf sf
924 5400 3075 m
925 gs 1 -1 sc (Tree) col-1 sh gr
926 /Helvetica ff 180.00 scf sf
927 5400 3315 m
928 gs 1 -1 sc (Search) col-1 sh gr
929 /Helvetica ff 180.00 scf sf
930 5400 4575 m
931 gs 1 -1 sc (Graph/Tree) col-1 sh gr
932 /Helvetica ff 180.00 scf sf
933 5400 4815 m
934 gs 1 -1 sc (Search) col-1 sh gr
935 $F2psEnd
936 rs
937 %%EndDocument
938  @endspecial 603 2262 a(Figure)h(1:)33 b(V)-6 b(arious)23
939 b(enumerative)h(search)e(procedures)g(and)i(their)g(characteristics.)43
940 2701 y Fj(3)116 b(Depth\255First)31 b(Search)43 2986
941 y Fk(Depth\255\002rst)21 b(search)h(is)h(particularly)f(amenable)i(to)f
942 (parallel)h(processing)e(primarily)h(because)g(a)f(subtree)h(rooted)f
943 (at)h(any)43 3110 y(node)h(can)f(be)h(searched)f(relatively)h
944 (independently)h(of)e(the)h(search)f(at)g(other)h(nodes)f(or)h
945 (subtrees.)32 b(In)24 b(fact,)f(searching)43 3235 y(dif)o(ferent)39
946 b(subtrees)g(concurrently)f(requires)h(either)g(no)h(communication)g
947 (\(e.g.,)j(backtracking,)f(IDA*\))d(or)g(minimal)43 3359
948 y(communication)33 b(\(e.g.,)g(DFBB\).)f(This)f(is)h(due)g(to)f(the)h
949 (fact)f(that)h(DFS)g(techniques)g(do)f(not)h(make)g(use)f(of)g
950 (heuristics)43 3484 y(on)d(a)g(global)i(scale.)46 b(It)28
951 b(would)h(therefore)f(seem)g(that)h(by)e(statically)h(assigning)h
952 (nodes)f(in)g(a)g(tree)g(to)h(processors,)e(it)h(is)43
953 3608 y(possible)22 b(to)g(derive)g(parallel)i(formulations.)33
954 b(However)-5 b(,)22 b(for)g(most)f(applications,)j(trees)d(generated)i
955 (by)e(DFS)h(tend)h(to)f(be)43 3733 y(highly)g(irregular)-5
956 b(,)22 b(and)f(it)g(is)g(very)f(dif)o(\002cult)g(to)h(estimate)h(the)f
957 (work)f(associated)h(with)g(a)g(node)h(a\255priori.)31
958 b(Hence,)22 b(any)e(static)43 3857 y(allocation)j(of)e(subtrees)g(to)g
959 (processors)f(is)h(bound)h(to)f(result)g(in)h(signi\002cant)g(load)g
960 (imbalance)g(among)g(processors.)30 b(The)43 3982 y(core)25
961 b(of)g(parallel)i(formulations)g(of)e(DFS)h(algorithms)g(is)f(thus)g(a)
962 h(dynamic)f(load)h(balancing)h(technique)f(that)g(minimizes)43
963 4106 y(inter\255processor)c(communication)i(and)g(processor)d(idling.)
964 43 4291 y(A)26 b(number)g(of)g(load)g(distribution)h(techniques)f(have)
965 g(been)g(developed)g(for)g(parallel)h(DFS)e([25)q(,)g(41)q(,)g(22)q(,)g
966 (17)q(,)g(21)q(].)39 b(Load)43 4415 y(balancing)26 b(techniques)f(may)f
967 (be)h(receiver)f(initiated)j(or)d(sender)g(initiated.)39
968 b(In)25 b(receiver)f(initiated)i(techniques,)g(when)f(a)43
969 4540 y(processor)g(becomes)h(idle,)i(it)f(requests)f(a)h(selected)f
970 (processor)f(for)h(work.)42 b(Many)26 b(dif)o(ferent)h(selection)g
971 (policies)g(have)43 4665 y(been)19 b(proposed)g(such)f(as)g(use)h(of)g
972 (a)f(centralized)h(server)-5 b(,)19 b(random)g(polling)i([12],)f
973 (nearest)e(neighbor)i([25],)g(global)g(round\255)43 4789
974 y(robin)i([25)q(],)g(and)g(asynchronous)e(round)i(robin)g([12,)g(25].)
975 32 b(In)22 b(contrast)f(to)h(receiver)f(initiated)i(load)g(balancing,)g
976 (in)f(sender)43 4914 y(initiated)e(schemes,)e(a)g(processor)f(sends)g
977 (work)g(to)i(selected)f(processors)e(as)h(it)i(is)e(generated.)32
978 b(Selection)19 b(strategies)f(for)43 5038 y(sender)h(initiated)i(work)e
979 (transfers)f(include)j(hierarchical)e(techniques)h(\(with)g
980 (super\255servers,)d(servers)h(and)h(clients\))g([13)q(],)43
981 5163 y(random)k(sampling)h([25)q(],)f(and)g(near\255neighbor)h
982 (techniques)f([41].)33 b(The)22 b(quanta)i(of)f(work)f(farmed)h(out)h
983 (to)f(processors)d(in)43 5287 y(sender)27 b(and)h(receiver)e(initiated)
984 j(schemes)e(ranges)g(from)g(a)g(single)h(state)g(\(node)f(in)h(the)g
985 (tree\))e(to)i(forests)e(of)i(subtrees)1970 5610 y(4)p
986 eop
987 %%Page: 5 5
988 5 4 bop 43 344 a Fk(resulting)21 b(from)g(stack)f(splitting)i([12,)f
989 (25].)32 b(Schemes)21 b(for)f(fault)i(tolerance)f(using)g
990 (acknowledgements)h(have)e(also)h(been)43 469 y(built)j(into)g(load)g
991 (balancing)h(techniques)e([12)q(].)43 653 y(The)34 b(performance)f(and)
992 h(scalability)g(of)g(these)f(techniques)h(is)f(often)i(dependent)f(on)g
993 (the)g(underlying)g(architecture.)43 778 y(Many)e(of)g(these)f
994 (techniques)h(are,)i(in)f(principle)f(scalable,)j(i.e.,)f(they)e
995 (result)g(in)g(linear)h(speedup)f(on)g(increasing)g(the)43
996 903 y(number)c(of)f(processors)f Fi(p)h Fk(as)g(long)h(as)f(the)g(size)
997 g(of)h(the)g(search)e(space)h(grows)f(fast)i(enough)g(with)g
998 Fi(p)p Fk(.)45 b(It)27 b(is)g(desirable)43 1027 y(that)21
999 b(this)f(required)h(rate)f(of)h(growth)f(of)h(problem)g(size)f(\(also)g
1000 (referred)g(to)h(as)f(the)g(Isoef)o(\002ciency)f(metric)h([24)q(]\))g
1001 (be)g(as)g(small)43 1152 y(as)k(possible)h(since)g(it)g(allows)g(the)g
1002 (use)f(of)h(a)f(larger)h(number)g(of)g(processors)d(ef)o(fectively)i
1003 (for)h(solving)g(a)f(given)h(problem)43 1276 y(instance.)43
1004 1461 y(The)17 b(irregular)h(and)g(dynamic)f(nature)g(of)h(the)f(search)
1005 g(space)f(makes)h(it)h(dif)o(\002cult)f(to)g(precisely)g(compute)g(the)
1006 h(performance)43 1585 y(and)34 b(scalability)h(of)f(parallel)i(DFS.)e
1007 (However)-5 b(,)37 b(for)d(trees)f(with)i(branching)f(factor)g(greater)
1008 g(than)g(1)25 b Ff(+)f Fi(\017)34 b Fk(\(for)f(a)h(small)43
1009 1710 y(constant)28 b Fi(\017)p Fk(\),)h(it)g(is)g(often)g(possible)g
1010 (to)f(partition)i(the)f(computation)g(associated)g(with)g(a)f
1011 (collection)h(of)g(nodes)g(into)g(two)43 1834 y(parts)21
1012 b(such)h(that)g(the)g(smaller)h(of)f(these)f(two)i(parts)e(can)h(be)g
1013 (guaranteed)h(to)f(have)f(a)h(minimum)i(\002xed)d(constant)h(fraction)
1014 43 1959 y(of)38 b(the)g(computation)h(associated)f(with)g(the)g
1015 (original)i(node.)77 b(This)37 b(property)h(has)f(been)i(used)f(to)g
1016 (derive)f(parallel)43 2083 y(formulations)c(of)g(DFS)f(with)h(isoef)o
1017 (\002ciency)e(of)h Fi(O)r Ff(\()p Fi(p)14 b Fk(log)1856
1018 2043 y Fh(2)1906 2083 y Fi(p)p Ff(\))32 b Fk(on)h(hypercube)f(and)g
1019 Fi(O)r Ff(\()p Fi(p)2866 2053 y Fh(1)p Fe(:)p Fh(5)2969
1020 2083 y Fk(log)15 b Fi(p)p Ff(\))32 b Fk(on)h(mesh)f(connected)43
1021 2208 y(parallel)25 b(computers)d([25)q(].)43 2392 y(The)27
1022 b(parallel)h(formulation)g(of)f(DFS)g(described)g(above)g(can)f(be)h
1023 (applied)i(to)e(DFBB)g(with)g(one)g(minor)h(modi\002cation.)44
1024 b(In)43 2517 y(DFBB,)19 b(we)g(need)h(to)f(keep)g(all)h(the)f
1025 (processors)e(informed)j(of)f(the)g(current)f(best)h(solution.)32
1026 b(On)19 b(a)g(shared)f(address)h(space)43 2641 y(architecture,)29
1027 b(this)f(can)f(be)h(done)h(easily)f(by)f(maintaining)k(a)d(global)h
1028 (best)f(solution)g(in)h(globally)g(accessible)e(memory)-6
1029 b(.)43 2766 y(On)22 b(a)f(message)h(passing)g(computer)-5
1030 b(,)22 b(this)g(can)g(be)g(done)g(by)g(allowing)h(each)f(processor)e
1031 (to)i(maintain)i(the)e(current)f(best)43 2891 y(solution)33
1032 b(known)f(to)g(it.)60 b(Whenever)32 b(a)g(processor)f(\002nds)g(a)h
1033 (solution)h(path)g(better)f(than)h(the)f(current)f(best)h(known,)j(it)
1034 43 3015 y(broadcasts)25 b(it)h(to)g(all)h(the)f(other)g(processors)d
1035 (which)j(update)h(\(if)f(necessary\))d(their)j(current)g(best)f
1036 (solution)i(path.)41 b(Note)43 3140 y(that)20 b(if)h(a)f(processor)s(')
1037 o(s)e(current)h(best)h(solution)h(path)f(is)g(worse)g(than)g(the)g
1038 (global)i(best)e(solution)h(path,)g(then)f(it)h(only)f(af)o(fects)43
1039 3264 y(the)25 b(ef)o(\002ciency)f(of)h(the)h(search)e(but)h(not)h(its)f
1040 (correctness.)36 b(The)25 b(overhead)g(for)g(maintaining)i(the)f
1041 (current)e(best)h(solution)43 3389 y(tends)20 b(to)g(be)h(a)f(small)h
1042 (fraction)f(of)g(the)h(overhead)f(for)g(dynamic)g(load)h(balancing.)32
1043 b(Parallel)22 b(formulations)f(of)g(DFBB)f(have)43 3513
1044 y(been)k(shown)f(to)g(yield)h(near)f(linear)h(speedups)f(for)g(many)g
1045 (problems)h(and)f(architectures)g([45,)g(27,)h(8,)f(7,)g(1].)43
1046 3839 y Fd(T)-6 b(ermination)22 b(of)h(Parallel)h(Search)43
1047 4089 y Fk(If)30 b(only)g(one)g(solution)h(is)f(desired)g(to)g(a)g
1048 (problem)h(instance)f(being)h(solved)e(using)i(depth\255\002rst)d
1049 (search,)j(then)g(as)e(soon)43 4214 y(as)g(any)f(processor)g(\002nds)g
1050 (a)h(solution,)j(search)c(at)h(other)g(processors)e(needs)i(to)g(be)h
1051 (terminated.)51 b(On)29 b(some)f(parallel)43 4338 y(architectures,)23
1052 b(it)h(is)g(possible)g(for)g(one)g(processor)e(to)i(interrupt)g(other)g
1053 (processors)e(and)i(send)g(them)g(a)g(special)g(signal.)43
1054 4463 y(If)29 b(such)f(a)h(mechanism)h(is)e(not)i(available,)i(then)d
1055 (each)g(processor)e(needs)i(to)g(perform)g(a)g(periodic)h(check)e(to)h
1056 (see)f(if)i(a)43 4587 y(solution)24 b(has)f(been)h(found.)43
1057 4772 y(If)c(all)g(the)g(solutions)g(\(or)f(all)h(best)g(solutions\))f
1058 (to)h(a)g(problem)g(instance)g(are)f(desired,)i(then)f(parallel)h(DFS)e
1059 (searches)f(a)i(well)43 4896 y(de\002ned)28 b(portion)h(of)f(the)h
1060 (entire)g(search)e(tree)h(\(determined)h(by)e(the)i(speci\002c)e
1061 (algorithm)i(and)f(heuristic)h(used\).)46 b(Since)43
1062 5021 y(this)22 b(search)e(space)h(is)g(dynamically)h(allocated)h(to)e
1063 (processors,)f(it)i(is)f(not)h(suf)o(\002cient)e(to)i(poll)g(each)f
1064 (processor)f(serially)i(to)43 5146 y(check)f(if)i(they)g(have)f
1065 (exhausted)g(their)h(work.)32 b(The)22 b(reason)g(is)h(that)g(a)f
1066 (processor)f(may)h(pick)g(up)h(work)f(after)g(it)h(has)f(been)43
1067 5270 y(polled.)52 b(Hence)29 b(a)h(distributed)g(termination)h
1068 (detection)f(algorithm)g(is)f(needed)i(to)e(ensure)g(that)h(all)g
1069 (processors)d(have)1970 5610 y(5)p eop
1070 %%Page: 6 6
1071 6 5 bop 43 344 a Fk(indeed)24 b(exhausted)f(the)h(search)e(space)h
1072 ([5].)43 744 y Fj(4)116 b(Best\255First)31 b(Search)43
1073 1029 y Fk(Best\255\002rst)k(search)g(techniques)i(are)f(more)g(dif)o
1074 (\002cult)g(to)h(parallelize)h(for)e(the)h(following)h(two)e(reasons:)
1075 58 b(\(i\))36 b(they)g(use)43 1153 y(heuristics)19 b(on)i(a)f(global)h
1076 (scale,)f(making)h(it)f(harder)g(to)g(utilize)h(the)f(full)h(power)f
1077 (of)g(heuristics)f(in)i(a)f(parallel)h(setting;)h(and)e(\(ii\))43
1078 1278 y(they)h(need)h(to)g(maintain)h(the)f(CLOSED)g(list)f(if)h(the)g
1079 (search)f(space)f(is)i(a)f(graph.)32 b(W)o(e)22 b(\002rst)e(discuss)g
1080 (parallel)j(formulations)43 1402 y(of)g(best\255\002rst)f(search)g(in)i
1081 (the)f(context)g(of)g(state\255space)f(trees,)h(and)h(subsequently)f
1082 (discuss)f(the)h(case)g(for)g(graphs.)43 1587 y(BFS)f(methods)g(may)f
1083 (appear)h(inherently)g(serial)g(since)f(they)g(require)h(expansion)g
1084 (of)g(the)f(most)h(promising)g(node)g(on)g(the)43 1711
1085 y(OPEN)27 b(list)h(at)f(each)g(step.)44 b(However)-5
1086 b(,)28 b(it)g(is)f(possible)g(that)h(many)f(nodes)g(on)g(the)g(OPEN)h
1087 (list)f(are)g(equally)h(promising,)43 1836 y(in)f(which)g(case,)h(they)
1088 e(can)h(all)h(be)f(expanded)g(concurrently)-6 b(.)43
1089 b(If)27 b(the)g(number)g(of)g(such)f(\(equally\))i(promising)f(nodes)g
1090 (is)43 1960 y(fewer)22 b(than)h(the)g(number)f(of)h(available)h
1091 (processors,)c(then)j(the)g(other)f(less)g(promising)h(nodes)g
1092 (available)g(on)g(OPEN)g(list)43 2085 y(can)h(be)h(searched)f(by)h(the)
1093 g(idle)g(processors.)35 b(These)25 b(less)f(promising)h(nodes)g(may)f
1094 (not)h(be)g(searched)f(by)h(serial)f(BFS,)43 2209 y(and)29
1095 b(thus)f(form)h(speculative)f(work.)48 b(The)28 b(ef)o(fective)g
1096 (degree)h(of)g(concurrency)d(of)j(such)f(a)g(formulation)i(is)e
1097 (essentially)43 2334 y(equal)22 b(to)g(the)f(average)g(number)h(of)f
1098 (nodes)g(available)i(on)f(the)f(OPEN)h(list)f(such)g(that)g(their)h
1099 (cost)e(is)h(less)g(than)h(that)f(of)h(the)43 2458 y(optimal)f
1100 (solution.)32 b(Since)20 b(the)g(cost)f(of)g(the)h(optimal)h(solution)f
1101 (is)g(unknown,)g(a)g(good)f(strategy)g(is)g(to)h(always)f(expand)h
1102 (only)43 2583 y(the)k Fi(p)p Fk(\255most)f(promising)i(nodes)f
1103 (currently)f(available)j(on)e(the)g(OPEN)g(list;)h(where)f
1104 Fi(p)f Fk(is)h(the)g(number)h(of)f(processors.)32 b(As)43
1105 2707 y(long)24 b(as)f Fi(p)g Fk(is)g(no)h(more)f(than)h(the)g(ef)o
1106 (fective)f(degree)g(of)h(concurrency)-6 b(,)21 b(all)k(processors)c
1107 (will)j(tend)g(to)g(search)e(nodes)i(that)43 2832 y(will)j(also)e(be)h
1108 (searched)f(by)g(serial)h(BFS.)g(The)f(ef)o(fective)g(degree)h(of)g
1109 (concurrency)d(is)i(usually)h(dependent)h(on)f(the)f(size)43
1110 2957 y(of)e(the)g(search)e(space)h(\(larger)h(spaces)e(have)i(higher)g
1111 (degree)g(of)g(concurrency\))d(and)j(the)g(heuristic)g(function)g
1112 (\(stronger)43 3081 y(heuristics)g(lead)h(to)f(smaller)h(degree)f(of)g
1113 (concurrency\).)43 3266 y(The)28 b(basic)g(data)g(structure)f(of)h
1114 (BFS,)h(the)f(OPEN)g(list,)i(is)e(a)g(priority)g(queue)g(that)h(must)f
1115 (support)g(removal)g(of)g(the)g(best)43 3390 y(entry)i(in)g(the)h
1116 (queue)g(and)g(insertion)f(of)h(nodes)f(into)h(the)g(queue.)54
1117 b(The)30 b(data)h(structure)e(most)h(often)h(used)f(for)g(this)g(is)43
1118 3515 y(a)h(heap.)56 b(The)31 b(simplest)g(parallel)i(formulation)f(of)f
1119 (BFS)h(uses)e(multiple)j(processors)28 b(working)j(on)g(a)g(heap)h
1120 (stored)e(in)43 3639 y(globally)h(addressable)e(memory)-6
1121 b(.)51 b(Each)29 b(processor)f(locks)g(the)i(heap)g(and)g(picks)e(out)i
1122 (the)g(current)e(best)h(node.)52 b(The)43 3764 y(heap)32
1123 b(is)g(unlocked)g(and)g(the)g(node)g(is)g(expanded)g(to)g(yield)g(its)g
1124 (children.)58 b(These)32 b(children)g(are)f(reinserted)h(into)h(the)43
1125 3888 y(heap)24 b(with)f(appropriate)h(locking.)32 b(The)23
1126 b(use)g(of)g(a)g(global)i(heap)e(is)g(a)g(source)f(of)h(contention.)33
1127 b(If)23 b(the)h(time)f(taken)g(to)g(lock,)43 4013 y(remove,)h(and)h
1128 (unlock)f(the)g(top)g(element)i(of)e(the)g(heap)h(is)f
1129 Fi(t)1947 4025 y Fe(access)2164 4013 y Fk(and)h(time)g(for)f(expansion)
1130 g(is)g Fi(t)3145 4025 y Fe(exp)3252 4013 y Fk(,)h(then)f(the)h(speedup)
1131 43 4137 y(of)e(the)h(formulation)h(is)e(bounded)h(by)f
1132 Ff(\()p Fi(t)1310 4149 y Fe(access)1522 4137 y Ff(+)18
1133 b Fi(t)1635 4149 y Fe(exp)1742 4137 y Ff(\))p Fi(=t)1846
1134 4149 y Fe(access)2040 4137 y Fk(.)43 4322 y(Many)26 b(techniques)h
1135 (have)g(been)g(developed)g(to)g(ef)o(fectively)f(reduce)g
1136 Fi(t)2327 4334 y Fe(access)2547 4322 y Fk(and)h(thus)f(increase)g(the)h
1137 (available)h(paral\255)43 4446 y(lelism.)33 b(These)22
1138 b(techniques)h(support)g(multiple)h(operations)f(on)g(heaps)f(stored)h
1139 (in)g(shared)f(memory)g(while)i(maintaining)43 4571 y(the)35
1140 b(strict)e(deletion)j(and)f(insertion)g(ordering)g([42].)66
1141 b(The)34 b(performance)h(of)f(these)g(schemes)g(scales)f(to)i(dozens)f
1142 (of)43 4695 y(processors)21 b(but)j(is)f(ultimately)h(limited)h(by)e
1143 (the)g(locking)h(and)f(access)f(times)h(as)g(speci\002ed)g(above.)43
1144 4880 y(Another)k(way)e(of)i(alleviating)h(the)e(contention)h(overhead)f
1145 (associated)g(with)h(a)f(single)h(global)g(heap)g(is)f(to)g(use)g
1146 (multiple)43 5005 y(heaps.)38 b(The)24 b(concept)h(of)g
1147 Fi(p)f Fk(processors)f(sharing)i(a)g(single)g(heap)h(can)e(be)h
1148 (relaxed)g(to)g Fi(k)j Fk(processors)23 b(sharing)i(a)f(heap)43
1149 5129 y(with)g Fi(p=k)i Fk(heaps)d(in)h(all.)35 b(The)23
1150 b(number)h Fi(k)i Fk(is)d(selected)h(by)f(studying)h(the)f(overheads)h
1151 (associated)f(with)h(communication)43 5254 y(and)18 b(locking,)i
1152 (contention,)g(and)e(node)h(expansion)f(time.)32 b(In)18
1153 b(the)g(extreme)g(case,)g(each)g(processor)f(has)g(its)h(own)g(heap.)32
1154 b(A)1970 5610 y(6)p eop
1155 %%Page: 7 7
1156 7 6 bop 43 344 a Fk(simple)20 b(parallel)g(formulation)g(based)f(on)g
1157 (multiple)h(heaps)f(starts)f(with)h(the)g(initial)i(state)d(in)h(a)g
1158 (single)h(heap.)31 b(As)19 b(additional)43 469 y(nodes)i(are)h
1159 (generated,)g(they)f(are)g(farmed)h(out)g(to)f(other)g(heaps)h(\(using)
1160 f(schemes)f(similar)i(to)g(load)g(balancing)g(in)g(DFS\).)43
1161 593 y(Once)17 b(all)i(the)g(heaps)f(have)g(been)g(populated,)j
1162 (processors)16 b(can)h(perform)h(BFS)h(on)f(individual)i(heaps.)31
1163 b(This)17 b(formulation)43 718 y(has)g(a)g(signi\002cant)g(drawback)f
1164 (in)h(that)h(although)g(it)g(balances)f(computation)h(among)f
1165 (processors,)g(it)g(does)g(not)g(guarantee)43 842 y(the)k(quality)h(of)
1166 f(nodes)g(individual)i(processors)c(explore.)32 b(Consequently)-6
1167 b(,)21 b(processors)e(may)i(spend)g(considerable)g(time)43
1168 967 y(exploring)j(parts)f(of)g(the)g(search)g(space)f(that)i(may)f(not)
1169 g(be)h(explored)f(by)g(the)g(serial)h(formulation.)43
1170 1152 y(T)-9 b(o)27 b(alleviate)j(this)d(drawback)g(of)h(excess)e(work)h
1171 (performed)h(by)g(the)g(parallel)h(formulation,)i(one)d(must)f(ensure)h
1172 (that)g(all)43 1276 y(heaps)35 b(have)f(a)h(share)f(of)h(the)g(most)f
1173 (promising)h(nodes)g(globally)h(available.)68 b(This)35
1174 b(process,)h(also)e(referred)h(to)f(as)43 1401 y(quality)22
1175 b(equalization,)i(ensures)d(that)h(the)g(best)f(nodes)h(available)h
1176 (globally)g(are)e(evenly)h(distributed)g(across)e(the)i(heaps.)43
1177 1525 y(Since)27 b(the)g(quality)h(of)f(the)g(nodes)g(changes)f(as)h
1178 (computation)h(proceeds,)f(quality)g(equalization)i(must)e(be)g
1179 (performed)43 1650 y(periodically)-6 b(.)50 b(A)29 b(variety)f(of)h
1180 (triggers)f(and)h(mechanisms)g(have)f(been)i(used)e(for)h(quality)g
1181 (equalization)i([30,)e(6,)g(45,)g(4].)43 1774 y(A)k(simple)g
1182 (triggering)g(mechanism)g(tracks)e(the)i(best)f(node)h(in)g(the)g
1183 (system.)59 b(The)32 b(best)g(node)h(in)g(the)g(local)g(heap)g(is)43
1184 1899 y(compared)21 b(to)g(the)g(best)g(node)g(in)h(the)f(system)f(and)h
1185 (if)g(it)g(is)g(considerably)g(worse,)g(an)g(equalization)i(process)c
1186 (is)i(initiated.)43 2023 y(Alternately)-6 b(,)24 b(an)g(equalization)h
1187 (process)c(may)i(be)h(initiated)h(periodically)-6 b(.)43
1188 2208 y(Quality)26 b(equalization)i(requires)e(movement)h(of)f(nodes)g
1189 (between)h(heaps.)41 b(This)26 b(movement)h(of)f(nodes)g(can)g(be)g
1190 (struc\255)43 2332 y(tured)33 b(\(into)f(a)h(ring,)i(or)d(via)h(a)f
1191 (shared)g(blackboard\))h(or)f(randomized.)61 b(In)32
1192 b(randomized)h(equalization,)k(a)c(processor)43 2457
1193 y(periodically)i(selects)f(a)g(random)h(heap,)i(picks)c(up)i(the)f
1194 (best)g(node)h(from)f(the)h(heap,)i(and)e(inserts)e(it)i(into)g(the)f
1195 (local)43 2581 y(heap.)56 b(Alternately)-6 b(,)33 b(heaps)e(can)f(be)h
1196 (organized)g(into)h(hierarchical)f(structures.)53 b(At)31
1197 b(the)g(lower)g(levels,)i(equalization)43 2706 y(is)28
1198 b(performed)h(more)g(frequently)g(than)g(the)g(higher)g(levels)f(in)h
1199 (the)g(hierarchy)-6 b(.)48 b(Several)29 b(triggering)g(mechanisms)g
1200 (and)43 2830 y(redistribution)c(strategies)f(have)g(been)g(explored)h
1201 ([6,)f(47].)35 b(It)24 b(has)g(been)g(shown)g(that)g(these)g(schemes)f
1202 (are)h(capable)h(of)43 2955 y(providing)k(linearly)g(increasing)f
1203 (speedups)h(with)f(number)h(of)f(processors)e(if)j(the)f(problem)h
1204 (size)f(is)g(increased)g(appro\255)43 3080 y(priately)-6
1205 b(.)41 b(Speci\002cally)-6 b(,)26 b(scalable)g(parallel)i(formulations)
1206 e(of)g(best\255\002rst)e(tree)i(search)f(with)h(isoef)o(\002ciency)e
1207 (of)i Fi(O)r Ff(\()p Fi(p)14 b Fk(log)3819 3039 y Fh(2)3869
1208 3080 y Fi(p)p Ff(\))43 3204 y Fk(on)26 b(hypercube)f(architectures)g
1209 (have)h(been)g(developed)h([30].)41 b(Using)25 b(these)h(schemes,)g
1210 (speedups)f(in)i(excess)d(of)i(950)43 3329 y(have)20
1211 b(been)g(demonstrated)g(on)h(1024)f(processor)e(hypercubes)h(in)h(the)g
1212 (context)g(of)g(TSPs)g(formulated)h(as)e(best\255\002rst)f(tree)43
1213 3453 y(search)k(problems)i([6].)43 3779 y Fd(Best\255First)f(Search)h
1214 (of)e(State)h(Space)h(Graphs)43 4029 y Fk(Ef)o(\002cient)19
1215 b(parallel)j(implementation)g(of)e(BFS)g(on)g(state)g(space)f(graphs)g
1216 (requires)h(a)g(distributed)g(mechanism)g(that)g(allows)43
1217 4154 y(many)h(processors)e(to)j(perform)f(duplicate)i(checking)d(or)h
1218 (insertions)h(into)g(the)f(CLOSED)h(list)g(concurrently)-6
1219 b(.)30 b(The)22 b(nature)43 4278 y(of)h(implementation)j(of)e(this)f
1220 (mechanism)g(is)g(dependent)i(on)e(the)h(underlying)g(parallel)g
1221 (architecture.)43 4463 y(In)d(shared)f(address)g(space)g(machines,)h
1222 (insertion)g(of)g(nodes)f(into)i(the)e(closed)h(list)g(requires)f
1223 (locking)h(of)f(the)h(list.)32 b(If)21 b(there)43 4587
1224 y(is)26 b(a)h(single)g(lock)f(associated)g(with)h(the)f(entire)h(list,)
1225 h(the)e(list)h(must)f(be)h(locked)f(approximately)h(as)f(many)g(times)h
1226 (as)f(the)43 4712 y(total)32 b(number)g(of)f(nodes)g(expanded.)57
1227 b(This)31 b(represents)f(a)h(serial)h(bottleneck.)56
1228 b(The)32 b(bottleneck)f(can)g(be)g(alleviated)43 4836
1229 y(by)25 b(associating)g(multiple)i(locks)d(with)i(the)g(closed)f(list.)
1230 38 b(Processors)24 b(lock)g(only)i(relevant)f(parts)g(of)g(the)h
1231 (closed)f(list)g(into)43 4961 y(which)d(the)h(node)g(is)f(being)h
1232 (inserted.)32 b(Message)22 b(passing)g(formulations)i(of)e(this)g
1233 (parallel)i(search)d(technique)i(distribute)43 5086 y(the)35
1234 b(closed)f(list)h(across)e(the)i(processors.)65 b(Each)35
1235 b(processor)e(expands)h(a)h(node)g(and)g(hashes)f(the)h(successors)d
1236 (to)43 5210 y(appropriate)38 b(processors)c(via)j(a)g(message.)73
1237 b(The)37 b(destination)h(processor)d(checks)g(for)i(replication)h(and)f
1238 (sends)f(a)43 5335 y(message)19 b(back)g(specifying)h(whether)f(the)h
1239 (node)g(exists)f(in)h(the)g(closed)f(list)h(or)g(not.)31
1240 b(Such)20 b(a)f(protocol)h(requires)g(two\255way)1970
1241 5610 y(7)p eop
1242 %%Page: 8 8
1243 8 7 bop 43 344 a Fk(cooperation)24 b(between)f(various)f(processors.)31
1244 b(Each)23 b(processor)e(must)i(periodically)g(check)f(for)h(incoming)h
1245 (messages,)43 469 y(process)e(them)h(and)h(send)f(appropriate)h
1246 (responses.)43 653 y(A)29 b(simpler)g(parallel)h(formulation)g(uses)d
1247 (the)i(hash)f(function)h(both)g(for)g(replication)g(checking)f(and)h
1248 (for)f(qualitative)j(and)43 778 y(quantitative)26 b(load)g(balance.)38
1249 b(In)25 b(this)g(formulation,)i(the)e(successors)d(of)j(a)g(node)g(are)
1250 g(hashed)g(to)g(appropriate)g(proces\255)43 903 y(sors.)36
1251 b(The)25 b(destination)h(processor)d(checks)g(for)h(replication)i(as)f
1252 (before.)37 b(However)-5 b(,)25 b(instead)g(of)g(sending)h(a)f
1253 (response)43 1027 y(back,)18 b(it)h(inserts)e(the)i(successor)c(nodes)j
1254 (into)h(its)f(own)g(open)h(list.)31 b(This)17 b(has)h(two)g(main)h
1255 (advantages:)30 b(\(i\))18 b(it)g(eliminates)i(the)43
1256 1152 y(need)f(for)f(a)g(return)g(message)g(and)h(wait)g(at)f(the)h
1257 (source)e(processor;)h(and)h(\(ii\))f(the)h(randomized)g(hash)f
1258 (function)h(serves)d(as)43 1276 y(the)24 b(method)g(for)g(balancing)h
1259 (load)f(qualitatively)h(and)f(quantitatively)-6 b(.)35
1260 b(These)23 b(schemes)g(have)h(been)g(studied)g(by)f(many)43
1261 1401 y(researchers)g([33)q(,)i(30].)38 b(Assuming)26
1262 b(a)f(perfectly)g(random)g(hash)g(function,)i(it)e(has)g(been)h(shown)f
1263 (that)g(if)h(the)f(number)h(of)43 1525 y(nodes)d(originating)i(at)f
1264 (each)f(processor)e(grows)i(as)f Fi(O)r Ff(\()p Fk(log)16
1265 b Fi(p)p Ff(\))p Fk(,)23 b(then)h(each)f(processor)e(will)k(have)e
1266 (asymptotically)g(equal)43 1650 y(number)h(of)f(nodes)g(after)g(the)h
1267 (hash)f(operation)h([33].)43 1834 y(One)31 b(of)g(the)g(major)h
1268 (drawbacks)e(of)h(graph)g(search)f(techniques)h(such)g(as)f(BFS)i(is)f
1269 (that)g(their)g(memory)g(requirement)43 1959 y(grows)c(linearly)h(with)
1270 g(the)g(search)f(space.)44 b(For)27 b(large)h(problems,)h(this)f
1271 (memory)f(requirement)h(becomes)g(prohibitive.)43 2083
1272 y(Many)17 b(limited\255memory)i(variants)e(of)g(heuristic)g(search)g
1273 (have)g(been)h(developed.)31 b(These)17 b(techniques)h(rely)f(on)g
1274 (retraction)43 2208 y(or)28 b(delayed)h(expansion)f(of)g(less)g
1275 (promising)h(nodes)f(to)g(reduce)g(memory)g(requirement.)48
1276 b(In)29 b(the)f(parallel)i(processing)43 2332 y(context,)23
1277 b(retractions)f(lead)i(to)g(additional)h(communication)g(and)e
1278 (indexing)h(for)f(parent\255child)h(relationships)g([9].)43
1279 2732 y Fj(5)116 b(Game)32 b(T)-6 b(ree)32 b(Search)43
1280 3017 y Fk(Min\255max)27 b(techniques)g(such)f(as)h Fi(\013)21
1281 b Fc(\000)f Fi(\014)31 b Fk(game)c(tree)g(search)f(are)g(extensively)h
1282 (used)g(in)g(game\255playing)h(programs.)43 b(In)43 3141
1283 y(this)28 b(algorithm,)j(the)d(minimax)h(value)g(of)f(a)g(node)h(is)f
1284 (determined)h(for)f(a)g(given)h(search)e(window)h Ff([)p
1285 Fi(\013;)14 b(\014)t Ff(])p Fk(.)48 b(This)28 b(window)43
1286 3266 y(serves)19 b(to)h(prune)g(signi\002cant)g(parts)g(of)g(the)g
1287 (tree)g(that)h(do)f(not)g(ef)o(fect)g(the)g(minimax)h(evaluation)h(of)e
1288 (the)g(root.)32 b(Initially)-6 b(,)22 b(this)43 3390
1289 y(window)27 b(is)f(set)g(to)g Ff([)p Fc(\0001)p Fi(;)14
1290 b Fc(1)p Ff(])p Fk(.)41 b(The)26 b(\002rst)e(child)j(of)f(a)g(node)h
1291 (is)f(searched)g(with)g(the)h(same)f(window)g(as)g(the)g(parent.)42
1292 b(The)43 3515 y(window)26 b(of)f(other)h(children)g(is)f(narrowed)g(on)
1293 h(the)f(basis)g(of)h(results)e(from)i(previously)e(visited)i(children.)
1294 39 b(This)25 b(process)43 3639 y(is)f(continued)h(until)g(a)f
1295 (speci\002ed)g(depth)g(is)g(reached,)g(or)g(the)g(branch)g(has)g(no)g
1296 (successors.)32 b(V)-6 b(ariants)24 b(of)h(this)f(algorithm)43
1297 3764 y(are)f(based)g(on)h(iterative)f(deepening,)i(which)f(guides)f
1298 (search)g(based)g(on)g(results)g(from)g(previous)g(iterations.)43
1299 3948 y(Min\255max)31 b(techniques)f(present)g(considerable)h
1300 (challenges)h(for)e(parallel)i(processing.)53 b(Conceptually)-6
1301 b(,)33 b Fi(\013)23 b Fc(\000)f Fi(\014)34 b Fk(game)43
1302 4073 y(tree)20 b(search)f(algorithm)i(can)e(also)h(be)h(viewed)f(as)f
1303 (a)h(depth\255\002rst)f(branch\255and\255bound)h(algorithm)h([23)q(])e
1304 (that)i(searches)d(for)43 4197 y(a)25 b(maximum)g(payof)o(f)f(strategy)
1305 g(among)h(all)h(strategies)f(represented)f(in)h(the)g(game)g(tree.)37
1306 b(However)-5 b(,)25 b(game)g(trees)f(tend)43 4322 y(to)30
1307 b(be)f(strongly)g(ordered.)51 b(Therefore,)31 b(naive)f(parallel)h
1308 (formulations)f(may)f(expand)h(a)f(large)h(number)g(of)f(nodes)h(that)
1309 43 4446 y(are)23 b(not)g(expanded)g(by)g(the)g(serial)g(formulation.)34
1310 b(Second,)24 b(the)f(information)h(about)g(the)f(current)f(best)h
1311 (strategy)f(cannot)43 4571 y(be)27 b(captured)f(by)h(a)f(single)i
1312 (node,)g(as)e(the)h(aim)g(is)g(to)f(\002nd)h(a)f(best)h(winning)h
1313 (strategy)e(rather)g(than)h(a)g(winning)h(position.)43
1314 4695 y(Ef)o(fective)h(propagation)i(of)f(this)g(information)h(to)f
1315 (other)f(processors)f(searching)h(disjoint)i(parts)e(of)h(the)g(search)
1316 f(space)43 4820 y(is)e(much)g(harder)f(compared)h(to)g(sharing)g(of)g
1317 (the)g(cost)f(of)h(current)g(best)f(solution)i(in)f(traditional)i(DFBB)
1318 e(algorithms.)45 b(A)43 4945 y(number)22 b(of)g(researchers)e(have)i
1319 (investigated)h(parallel)g(formulations)g(of)f Fi(\013)16
1320 b Fc(\000)f Fi(\014)26 b Fk([10,)c(34,)g(40].)32 b(The)22
1321 b(problem)h(of)f(excess)43 5069 y(node)f(expansions)g(is)f(handled)i
1322 (by)e(using)h(a)g(prioritized)g(work)f(distribution)i(in)f(which)g(the)
1323 g(tree)g(is)f(expanded)h(left)h(to)f(right)43 5194 y(in)30
1324 b(a)g(sweeping)h(pattern)f(also)g(referred)f(to)h(as)g(the)g(\223Y)-8
1325 b(oung)31 b(Brothers)e(W)m(ait)i(Concept\224.)52 b(Using)30
1326 b(these)g(optimizations)43 5318 y(along)24 b(with)f(dynamic)f(load)i
1327 (balancing,)g(researchers)d(have)h(demonstrated)h(speedups)g(of)f(as)h
1328 (much)f(as)g(two)h(orders)f(of)1970 5610 y(8)p eop
1329 %%Page: 9 9
1330 9 8 bop 43 344 a Fk(magnitude)25 b(on)e(a)g(variety)g(of)g(parallel)i
1331 (platforms.)43 529 y(The)36 b(utility)h(of)f(parallel)i(processing)d
1332 (has)h(been)h(demonstrated)f(in)h(the)f(context)g(of)g(a)g(number)g(of)
1333 h(games,)i(and)d(in)43 653 y(particular)-5 b(,)29 b(Chess.)44
1334 b(W)o(ork)26 b(on)h(large)h(scale)f(parallel)h Fi(\013)22
1335 b Fc(\000)e Fi(\014)31 b Fk(search)26 b(led)i(to)g(the)f(development)h
1336 (of)g(deep)g(thought)g([15])43 778 y(in)37 b(1990.)73
1337 b(This)37 b(program)f(was)g(capable)h(of)g(playing)g(chess)f(at)g
1338 (grandmaster)h(level.)73 b(Subsequent)38 b(advances)d(in)43
1339 903 y(the)30 b(use)f(of)g(dedicated)i(hardware,)g(parallel)f
1340 (processing,)h(and)f(algorithms)g(resulted)f(in)h(the)g(development)g
1341 (of)g(IBM')o(s)43 1027 y(Deep)c(Blue)g([16,)g(14])f(that)h(beat)g(the)g
1342 (reigning)g(world)g(champion)g(Gary)e(Kasparov)-6 b(.)38
1343 b(Feldmann)27 b(et)e(al.)h([40)q(])f(developed)43 1152
1344 y(a)33 b(distributed)g(chess)e(program)i(that)f(is)h(acknowledged)g(to)
1345 f(be)h(one)g(of)f(the)h(best)f(computer)h(chess)e(players)h(based)43
1346 1276 y(entirely)24 b(on)f(general)h(purpose)f(hardware.)43
1347 1675 y Fj(6)116 b(Speedup)31 b(Anomalies)h(in)h(Parallel)f
1348 (Formulations)g(of)g(Search)f(Algorithms)43 1960 y Fk(In)21
1349 b(parallel)i(search)d(algorithms,)j(the)e(speedup)h(can)f(dif)o(fer)g
1350 (greatly)g(from)g(one)h(execution)f(to)h(another)-5 b(.)32
1351 b(This)21 b(is)g(because)43 2085 y(the)32 b(portions)g(of)f(the)h
1352 (search)f(space)g(examined)h(by)g(dif)o(ferent)f(processors)f(are)h
1353 (determined)i(dynamically)f(and)g(can)43 2209 y(be)27
1354 b(dif)o(ferent)g(for)g(dif)o(ferent)g(executions.)44
1355 b(A)27 b(number)g(of)g(researchers)e(have)i(observed)f(and)h(analyzed)g
1356 (the)g(existence)43 2334 y(of)j(these)h(speedup)f(anomalies.)55
1357 b(An)31 b(acceleration)g(anomaly)g(manifests)f(itself)h(in)g(the)f
1358 (form)h(of)f(a)g(speedup)h(greater)43 2458 y(than)e Fi(p)g
1359 Fk(on)g Fi(p)g Fk(processors)e(when)i(parallel)i(search)d(does)g(less)h
1360 (work)f(than)h(the)h(serial)f(search)f(algorithm)i([26)q(,)f(29].)50
1361 b(A)43 2583 y(speedup)18 b(of)f(less)g(than)g Fi(p)p
1362 Fk(,)h(attributed)g(to)g(excess)d(work)h(done)i(by)f(the)g(parallel)i
1363 (formulation)g(compared)e(to)g(the)h(sequential)43 2707
1364 y(formulation,)34 b(is)c(termed)h(as)e(a)i(deceleration)g(anomaly)g
1365 ([26)q(,)f(28].)54 b(The)30 b(ratio)h Fi(W)2712 2719
1366 y Fe(p)2751 2707 y Fi(=W)2871 2719 y Fe(s)2906 2707 y
1367 Fk(,)h(where)f Fi(W)3296 2719 y Fe(p)3365 2707 y Fk(and)f
1368 Fi(W)3611 2719 y Fe(s)3677 2707 y Fk(are)h(the)43 2832
1369 y(number)24 b(of)f(nodes)g(searched)g(by)f(parallel)j(and)f(serial)f
1370 (formulations,)h(is)f(called)h(the)g(search)e(overhead)h(factor)-5
1371 b(.)43 3017 y(Speedup)28 b(anomalies)h(can)e(easily)g(occur)f(in)i
1372 (parallel)g(depth\255\002rst)f(search)f(for)h(\002nding)g(any)g
1373 (solution,)j(as)c(certain)i(exe\255)43 3141 y(cution)i(sequences)f(may)
1374 g(\002nd)g(a)h(solution)g(much)f(earlier)h(than)g(others.)51
1375 b(However)-5 b(,)31 b(it)f(appears)f(natural)h(that,)i(on)e(the)43
1376 3266 y(average,)22 b(the)f(search)f(overhead)i(factor)e(for)h(parallel)
1377 i(DFS)e(should)h(always)f(be)g(greater)g(than)h(or)f(equal)h(to)g(one.)
1378 32 b(Other\255)43 3390 y(wise)23 b(the)h(serial)f(search)g(algorithm)h
1379 (is)f(not)h(optimal;)h(i.e.,)f(the)f(emulation)i(of)f(parallel)g(DFS)f
1380 (on)h(a)f(single)h(processor)e(will)43 3515 y(be)k(faster)g(than)h
1381 (sequential)g(DFS.)f(Surprisingly)-6 b(,)28 b(there)e(are)g
1382 (situations,)h(in)g(which)f(parallel)i(DFS)e(can)g(have)g(a)g(search)43
1383 3639 y(overhead)i(factor)f(of)g(less)g(than)h(1)g(on)g(the)f(average,)i
1384 (implying)g(that)f(the)g(serial)f(search)g(algorithm)i(in)f(the)g
1385 (situation)g(is)43 3764 y(suboptimal.)43 b(Kumar)27 b(and)g(Rao)f([43])
1386 h(show)f(that)g(if)h(no)g(heuristic)f(information)i(is)e(available)i
1387 (to)e(order)g(the)h(successors)43 3888 y(of)i(a)f(node,)j(then)d(on)h
1388 (the)g(average,)h(the)e(speedup)h(obtained)h(by)e(parallel)i(DFS)e(is)g
1389 (superlinear)h(if)g(the)g(distribution)h(of)43 4013 y(solutions)d(is)g
1390 (non\255uniform.)43 b(This)27 b(model)g(is)g(validated)h(by)e
1391 (experiments)g(on)h(synthetic)f(state\255space)g(trees)g(modeling)43
1392 4137 y(the)j(hackers)e(problem,)k(the)e(15\255puzzle)f(problem)i(and)f
1393 (the)g Fi(n)p Fk(\255Queens)e(problem.)50 b(In)29 b(all)g(these)g
1394 (experiments,)h(serial)43 4262 y(and)i(parallel)h(DFS)e(do)g(not)h(use)
1395 f(any)g(heuristic)h(ordering,)i(and)d(select)g(successors)e
1396 (arbitrarily)-6 b(.)57 b(The)31 b(basic)g(reason)43 4386
1397 y(for)23 b(this)h(phenomenon)h(is)e(that)h(parallel)h(search)e(can)g
1398 (invest)g(resources)f(into)j(multiple)g(regions)f(of)f(the)h(search)f
1399 (frontier)43 4511 y(concurrently)-6 b(.)35 b(When)26
1400 b(the)e(solution)i(density)e(in)h(dif)o(ferent)g(regions)g(of)f(the)h
1401 (search)f(frontier)g(is)h(non\255uniform)g(and)g(these)43
1402 4635 y(non\255uniformities)32 b(are)f(not)g(known)g(a)g(priori,)i(then)
1403 f(sequential)g(search)e(has)g(an)i(equal)f(chance)g(of)g(searching)g(a)
1404 g(low)43 4760 y(density)19 b(region)h(\(and)f(thus)g(be)h(forced)f(to)g
1405 (expand)h(many)f(nodes\))g(or)g(a)g(high)h(density)f(region.)32
1406 b(On)19 b(the)h(contrary)-6 b(,)18 b(parallel)43 4885
1407 y(search)25 b(can)h(search)f(all)h(regions)g(at)g(the)h(same)f(time,)h
1408 (ensuring)f(that)g(at)g(least)h(some)e(processors)f(are)i(searching)g
1409 (the)43 5009 y(high)e(density)f(regions.)43 5194 y(If)k(good)g
1410 (heuristics)f(are)g(available)i(to)f(order)f(the)g(successors)e(of)j
1411 (nodes)f(in)h(DFS,)g(then)g(the)f(search)g(overhead)g(factor)43
1412 5318 y(of)k(parallel)h(DFS)f(may)g(be)g(greater)g(than)g(one.)53
1413 b(The)30 b(reason)g(is)f(that)i(some)f(processors)d(may)j(search)f
1414 (unpromising)1970 5610 y(9)p eop
1415 %%Page: 10 10
1416 10 9 bop 43 344 a Fk(areas)25 b(of)g(the)h(search)e(space.)38
1417 b(This)25 b(phenomenon)i(is)e(most)g(visible)h(in)g(the)f(context)g(of)
1418 g Fi(\013)20 b Fc(\000)g Fi(\014)29 b Fk(search)24 b(of)i(game)f(trees)
1419 43 469 y(for)f(which)h(strong)e(ordering)i(heuristics)f(are)g
1420 (available.)38 b(Kale)25 b(and)g(Saletore)g([19])g(present)f(a)g
1421 (scheme)g(that)h(combines)43 593 y(the)h(information)h(about)f(the)g
1422 (ordering)h(and)f(depth)g(of)g(nodes)f(to)h(perform)g(load)g(balancing)
1423 h(among)f(processors.)38 b(This)43 718 y(scheme)15 b(largely)g
1424 (maintains)h(the)f(depth\255\002rst)f(heuristic)h(order)f(of)i(search)d
1425 (across)h(processors,)g(and)i(results)e(in)h(consistent)43
1426 842 y(linear)32 b(speedup.)55 b(Even)31 b(in)g(the)g(presence)f(of)h
1427 (good)g(ordering)h(heuristics,)g(parallel)g(DFS)f(may)f(lead)i(to)e
1428 (superlinear)43 967 y(speedup.)i(For)21 b(example,)h(this)f(can)f
1429 (happen)i(if)f(there)g(is)g(a)g(non\255zero)g(probability)h(that)f(the)
1430 g(heuristic)g(can)g(guide)h(search)43 1092 y(to)h(large)h(regions)f
1431 (that)h(do)f(not)h(contain)f(any)g(solutions)h([43].)43
1432 1276 y(In)k(parallel)h(BFS,)g(the)f(search)f(overhead)g(can)h(be)g
1433 (greater)g(than)g(one)g(if)h(some)e(processors)f(expand)i(nodes)g(that)
1434 g(are)43 1401 y(never)f(expanded)h(by)f(serial)h(BFS)g(\(e.g.,)g(nodes)
1435 g(that)g(have)f(higher)h(bound)g(than)g(the)g(cost)f(of)g(the)h
1436 (optimal)h(solution\).)43 1525 y(In)j(fact,)h(it)f(can)f(be)h(shown)f
1437 (that)h(for)f(any)h(given)g(BFS)f(instance,)j(there)e(exists)e(a)i
1438 (constant)f Fi(k)j Fk(such)d(that)h(expanding)43 1650
1439 y(more)25 b(than)g Fi(k)j Fk(nodes)d(in)g(parallel)h(from)f(a)g(global)
1440 h(open)g(list)f(leads)g(to)g(wasted)g(computation)h([26].)38
1441 b(This)24 b(situation)i(gets)43 1774 y(worse)j(with)i(distributed)g
1442 (open)f(lists)g(since)g(expanded)g(nodes)h(have)e(locally)i(minimum)h
1443 (heuristics)d(that)h(are)g(not)h(the)43 1899 y(best)23
1444 b(nodes)g(across)f(all)i(open)g(lists.)43 2083 y(The)29
1445 b(search)f(overhead)g(for)h(parallel)h(BFS)g(can)e(also)h(be)g(less)f
1446 (than)i(one.)49 b(This)29 b(can)f(happen)i(when)f(multiple)i(nodes)43
1447 2208 y(on)c(the)g(open)g(list)h(have)e(identical)i(heuristic)f(values,)
1448 h(but)f(require)g(dif)o(ferent)g(amount)h(of)f(search)e(to)i(detect)g
1449 (a)g(solution)43 2332 y(\(or)h(to)h(\002nd)g(out)g(that)g(the)g(node)h
1450 (does)e(not)i(lead)f(to)g(optimal)i(solution\).)50 b(Hence,)30
1451 b(if)f(a)g(parallel)h(algorithm)h(happens)e(to)43 2457
1452 y(explore)h(the)h(better)g(nodes)f(\002rst,)h(then)g(it)f(can)g(result)
1453 h(in)f(acceleration)h(anomalies,)j(and)c(vice)g(versa.)53
1454 b(It)30 b(is)h(possible)43 2581 y(to)39 b(derive)g(properties)f(of)h
1455 (the)g(heuristic)g(function)g(such)f(that)h(superlinearity)h(ef)o
1456 (fects)d(in)j(parallel)g(BFS)f(are)f(made)43 2706 y(deterministic)24
1457 b([29,)g(32].)43 3105 y Fj(7)116 b(Role)32 b(of)g(Heuristics)43
1458 3390 y Fk(Heuristics)e(form)g(the)h(most)g(important)g(component)g(of)g
1459 (search)f(techniques,)j(and)e(parallel)h(formulations)f(of)g(search)43
1460 3515 y(algorithms)22 b(must)f(be)h(viewed)g(in)g(the)f(context)g(of)h
1461 (these)f(heuristics.)32 b(In)21 b(BFS)h(techniques,)g(heuristics)f
1462 (focus)g(search)f(by)43 3639 y(lowering)j(the)f(ef)o(fective)g
1463 (branching)g(factor)-5 b(.)32 b(In)22 b(DFBB)g(methods,)h(heuristics)e
1464 (provide)h(better)h(bounds,)f(and)g(thus)g(serve)43 3764
1465 y(to)h(prune)h(the)f(search)f(space.)43 3948 y(Often,)f(there)g(is)g(a)
1466 f(tradeof)o(f)h(between)g(the)g(strength)g(of)g(the)g(heuristic)f(and)h
1467 (the)g(ef)o(fective)g(size)f(of)h(search)e(space.)32
1468 b(Better)43 4073 y(heuristics)21 b(result)g(in)h(smaller)g(search)f
1469 (spaces)f(but)i(are)f(also)h(more)f(expensive)g(to)h(compute.)32
1470 b(For)21 b(example,)h(an)g(impor\255)43 4197 y(tant)27
1471 b(application)h(of)e(strong)g(heuristics)g(is)g(in)h(the)g(computation)
1472 g(of)g(bounds)f(for)g(mixed)h(integer)g(programming)g(\(MIP\).)43
1473 4322 y(Mixed)36 b(integer)g(programming)h(has)e(seen)g(signi\002cant)h
1474 (advances)f(over)g(the)g(years)g([18].)70 b(Whereas)35
1475 b(\002fteen)h(years)43 4446 y(back,)c(MIP)f(problems)f(with)h(100)g
1476 (integer)g(variables)g(were)f(considered)g(challenging,)k(today)-6
1477 b(,)32 b(many)f(problems)f(with)43 4571 y(up)25 b(to)g(1000)h(integer)f
1478 (variables)g(can)g(be)g(solved)g(on)g(workstation)f(class)g(machines)h
1479 (using)g(branch\255and\255cut)g(methods.)43 4695 y(Largest)35
1480 b(known)h(instances)f(of)h(TSPs)g(and)g(QAPs)f(have)h(been)g(solved)f
1481 (using)h(branch\255and\255bound)g(with)g(powerful)43
1482 4820 y(heuristics)e([3,)h(35].)66 b(The)34 b(presence)g(of)h(ef)o
1483 (fective)f(heuristics)g(may)g(prune)h(the)f(search)g(space)g
1484 (considerably)-6 b(.)66 b(For)43 4945 y(example,)24 b(when)f(Padberg)h
1485 (and)f(Rinaldi)h(introduced)g(the)f(branch\255and\255cut)f(algorithm)i
1486 (in)g(1987,)f(they)g(used)g(it)g(to)g(solve)43 5069 y(a)i(532)g(city)e
1487 (TSP)-11 b(,)26 b(which)e(was)g(the)h(largest)g(TSP)g(solved)f
1488 (optimally)i(at)f(that)g(time.)37 b(Subsequent)25 b(improvements)g(to)g
1489 (the)43 5194 y(method)d(led)g(to)f(the)g(solution)i(of)e(a)g(a)g(2,392)
1490 h(city)f(problem)g([36)q(].)32 b(More)21 b(recently)-6
1491 b(,)21 b(using)g(cutting)h(planes,)g(problems)f(with)43
1492 5318 y(over)f(7,000)h(cities)g(have)f(been)i(solved)e([18)q(])g(on)h
1493 (serial)g(machines.)32 b(However)-5 b(,)21 b(for)f(many)h(problems)g
1494 (of)f(interest,)i(the)f(re\255)1947 5610 y(10)p eop
1495 %%Page: 11 11
1496 11 10 bop 43 344 a Fk(duced)21 b(search)f(space)g(still)i(requires)f
1497 (the)g(use)g(of)g(parallelism)i([3,)e(35,)g(44,)g(31)q(].)31
1498 b(Use)21 b(of)g(powerful)h(heuristics)e(combined)43 469
1499 y(with)26 b(ef)o(fective)f(parallel)i(processing)d(has)h(enabled)i(the)
1500 f(solution)g(of)g(extremely)f(large)g(problems)h([35].)39
1501 b(For)25 b(example,)43 593 y(QAP)k(problems)f(from)h(the)f(Nugent)h
1502 (and)g(Eschermann)g(test)f(suites)g(with)h(up)f(to)h(4)p
1503 Fi(:)p Fk(8)22 b Fc(\002)f Fk(10)3028 563 y Fh(10)3125
1504 593 y Fk(nodes)28 b(\(Nugent22)h(with)43 718 y(Gilmore\255Lawler)f
1505 (bound\))g(were)f(solved)g(on)g(a)h(NEC)f(Cenju\2553)h(parallel)h
1506 (computer)e(in)h(under)g(nine)g(days)e([3].)45 b(Another)43
1507 842 y(dazzling)31 b(demonstration)h(of)f(this)g(was)g(presented)g(by)f
1508 (the)h(IBM)h(Deep)f(Blue.)57 b(Deep)31 b(blue)h(used)e(a)h(combination)
1509 i(of)43 967 y(dedicated)h(hardware)e(for)h(generating)h(and)f
1510 (evaluating)h(board)f(positions)g(and)h(parallel)g(search)e(of)h(the)g
1511 (game)g(tree)43 1092 y(using)24 b(an)f(IBM)h(SP2)g(to)f(beat)h(the)f
1512 (current)g(world)g(chess)f(champion,)i(Garry)e(Kasparov)g([16)q(,)h
1513 (14].)43 1276 y(Heuristics)g(have)h(several)g(important)g(implications)
1514 i(for)e(exploiting)h(parallelism.)36 b(Strong)25 b(heuristics)e(narrow)
1515 h(the)g(state)43 1401 y(space)18 b(and)h(thus)g(reduce)f(the)h
1516 (concurrency)e(available)j(in)f(the)g(search)f(space.)31
1517 b(Use)18 b(of)h(powerful)g(heuristics)f(pose)h(other)43
1518 1525 y(computational)30 b(challenges)f(for)e(parallel)j(processing)d
1519 (as)h(well.)48 b(For)27 b(example,)j(in)e(branch\255and\255cut)g
1520 (methods,)h(a)f(cut)43 1650 y(generated)e(at)g(a)g(certain)f(state)h
1521 (may)f(be)h(required)g(by)f(other)h(states.)39 b(Therefore,)26
1522 b(in)g(addition)h(to)f(balancing)h(load,)g(the)43 1774
1523 y(parallel)g(branch\255and\255cut)e(formulation)i(must)e(also)h
1524 (partition)h(cuts)e(among)h(processors)d(so)j(that)g(processors)d
1525 (working)43 1899 y(in)h(certain)f(LP)h(domains)f(have)g(access)f(to)h
1526 (the)h(desired)f(cuts)f([2)q(,)h(27,)g(8].)43 2083 y(In)35
1527 b(addition)h(to)f(inter\255node)g(parallelism)h(that)f(has)f(been)h
1528 (discussed)f(until)i(this)e(point,)39 b(intra\255node)c(parallelism)h
1529 (can)43 2208 y(become)21 b(a)h(viable)g(option)g(if)f(the)h(heuristic)f
1530 (is)g(computationally)i(expensive.)31 b(For)21 b(example,)h(the)f
1531 (assignment)h(heuristic)43 2332 y(of)27 b(Pekny)g(et)h(al.)45
1532 b(has)27 b(been)h(ef)o(fectively)f(parallelized)i(for)e(solving)g
1533 (large)h(instances)f(of)g(TSPs)g([35)q(].)44 b(If)28
1534 b(the)f(degree)h(of)43 2457 y(inter\255node)h(parallelism)h(is)d
1535 (small,)j(this)f(form)f(of)g(parallelism)i(provides)d(a)i(desirable)f
1536 (alternative.)49 b(Another)28 b(example)43 2581 y(of)e(this)h(is)f(in)g
1537 (the)h(solution)g(of)g(MIP)f(problems)h(using)f(branch\255and\255cut)g
1538 (methods.)42 b(Branch\255and\255cut)25 b(methods)i(rely)f(on)43
1539 2706 y(LP)f(relaxation)h(for)f(generating)h(lower)f(bounds)g(of)g
1540 (partially)h(instantiated)g(solutions)g(followed)g(by)e(generation)i
1541 (of)f(valid)43 2830 y(inequalities)33 b([18].)55 b(These)30
1542 b(LP)h(relaxations)f(constitute)h(a)g(major)g(part)f(of)h(the)g
1543 (overall)g(computation)g(time.)55 b(Many)31 b(of)43 2955
1544 y(the)25 b(industrial)i(codes)d(rely)h(on)g(Simplex)i(to)e(solve)g(the)
1545 g(LP)h(problem)g(since)f(it)g(can)g(adapt)h(the)f(solution)i(to)e
1546 (added)h(rows)43 3080 y(and)e(columns.)35 b(While)26
1547 b(interior)f(point)f(methods)h(are)f(better)g(suited)g(to)g
1548 (parallelism,)i(they)e(tend)h(to)f(be)g(less)g(ef)o(\002cient)f(for)43
1549 3204 y(reoptimizing)k(LP)f(solutions)g(with)f(added)i(rows)d(and)i
1550 (columns)f(\(in)h(branch\255and\255cut)e(methods\).)40
1551 b(LP)25 b(relaxation)i(using)43 3329 y(Simplex)j(has)e(been)i(shown)e
1552 (to)h(parallelize)i(well)e(on)g(small)h(numbers)e(of)h(processors)e
1553 (but)i(ef)o(forts)f(to)g(scale)h(to)g(larger)43 3453
1554 y(numbers)e(of)h(processors)d(have)i(not)h(been)f(successful.)44
1555 b(LP)27 b(based)h(branch)f(and)g(bound)h(methods)g(have)f(also)g(been)
1556 43 3578 y(used)g(for)f(solving)h(quadratic)g(assignment)g(problems)g
1557 (using)g(iterative)h(solvers)d(such)h(as)g(preconditioned)j(Conjugate)
1558 43 3702 y(Gradient)37 b(to)h(approximately)f(compute)h(the)f(interior)h
1559 (point)g(directions)f([37].)74 b(These)37 b(methods)g(have)g(been)h
1560 (used)43 3827 y(to)30 b(compute)f(lower)h(bounds)g(using)g(linear)g
1561 (programs)f(with)h(over)f(150,000)h(constraints)f(and)h(300,000)h
1562 (variables)e(for)43 3951 y(solving)20 b(QAPs.)32 b(These)19
1563 b(and)i(other)f(iterative)h(solvers)e(parallelize)j(very)c(ef)o
1564 (fectively)i(to)g(a)h(large)f(number)h(of)f(processors.)43
1565 4076 y(A)25 b(general)g(parallel)g(framework)f(for)g(computing)h
1566 (heuristic)f(solutions)h(to)f(problems)h(is)f(presented)g(by)g
1567 (Pramanick)h(and)43 4200 y(Kuhl)f([39)q(].)43 4600 y
1568 Fj(8)116 b(Concluding)32 b(Remarks)43 4885 y Fk(Great)e(advances)g
1569 (have)h(been)h(made)f(in)g(the)g(development)h(of)f(scalable)g
1570 (parallel)i(formulations)f(of)f(various)f(search)43 5009
1571 y(methods)h(in)h(the)f(past)g(two)g(decades.)56 b(Performance)31
1572 b(and)g(scalability)h(of)f(load)h(balancing)g(techniques)g(for)e
1573 (parallel)43 5134 y(depth\255\002rst)36 b(search)g(methods)i(is)f
1574 (largely)g(understood,)k(and)d(it)g(is)f(unlikely)g(that)h(any)f(new)g
1575 (methods)h(will)g(perform)43 5258 y(signi\002cantly)32
1576 b(better)g(than)g(the)g(existing)g(methods.)59 b(Parallel)34
1577 b(best\255\002rst)c(search)g(methods)j(require)f(qualitative)h(load)
1578 1947 5610 y(11)p eop
1579 %%Page: 12 12
1580 12 11 bop 43 344 a Fk(balancing)39 b(in)g(addition)h(to)e(quantitative)
1581 h(load)g(balancing)g(used)f(in)h(depth\255\002rst)e(search,)k(and)d
1582 (are)g(thus)g(harder)g(to)43 469 y(analyze.)h(However)-5
1583 b(,)25 b(many)g(methods)h(for)f(qualitative)i(load)f(balancing)g(have)f
1584 (been)h(developed)g(and)g(shown)f(to)g(have)43 593 y(provably)h(good)i
1585 (performance)e(under)h(a)g(reasonable)g(set)g(of)f(assumptions.)43
1586 b(For)27 b(a)f(wide)i(variety)e(of)h(problems,)g(both)43
1587 718 y(best\255\002rst)33 b(and)i(depth\255\002rst)e(search)h(methods)h
1588 (have)f(shown)h(excellent)g(performance)g(and)g(scalability)g(up)g(to)f
1589 (1024)43 842 y(processors)22 b([45)q(,)i(25)q(,)g(1,)h(40,)f(30)q(,)g
1590 (44)q(].)36 b(Attention)26 b(has)e(now)h(shifted)g(to)g(the)f
1591 (development)i(of)f(software)f(environments)43 967 y(that)g(allow)g
1592 (practitioners)f(to)g(solve)g(real)h(problems)f(on)h(parallel)g
1593 (machines)g([4].)43 1152 y(It)33 b(is)g(important)h(to)f(note)g(that)h
1594 (parallel)g(processing)f(can)f(only)h(provide)h(speed)f(up)g
1595 (proportional)h(to)f(the)g(number)h(of)43 1276 y(processors.)g(Hence,)
1596 24 b(parallel)i(search)d(can)h(be)h(used)f(to)h(solve)f
1597 (signi\002cantly)g(bigger)h(instances)f(of)g(the)h(problem)g(only)43
1598 1401 y(if)i(the)g(search)f(space)g(grows)g(as)h(a)g(small)g(exponent)g
1599 (of)g(problem)h(size.)42 b(Hence,)28 b(challenges)g(remain)f(in)g
1600 (discovering)43 1525 y(better)c(heuristics)g(that)h(reduce)f(the)g
1601 (growth)g(of)h(the)f(search)g(space.)32 b(Indeed,)24
1602 b(for)f(many)g(problems,)g(gains)h(due)f(to)h(new)43
1603 1650 y(powerful)31 b(heuristics)e(may)g(be)i(much)e(higher)i(than)f
1604 (those)g(due)g(to)g(massively)f(parallel)j(formulations)e(using)h
1605 (existing)43 1774 y(heuristics.)h(These)23 b(powerful)h(heuristics)e
1606 (may)h(also)h(of)o(fer)e(new)i(opportunities)g(for)f(exploiting)i
1607 (parallelism.)43 2154 y Fj(References)85 2371 y Fn([1])40
1608 b(S.)19 b(Arvindam,)f(V)o(ipin)f(Kumar)l(,)h(and)g(V)-7
1609 b(.)18 b(Nageshwara)f(Rao.)25 b(Floorplan)16 b(optimization)f(on)k
1610 (multiprocessors.)24 b(In)18 b Fb(Proceedings)f(of)209
1611 2486 y(the)j(1989)f(International)d(Conference)i(on)i(Computer)e
1612 (Design)p Fn(,)h(1989.)85 2625 y([2])40 b(R.)17 b(E.)h(Bixby)-6
1613 b(,)18 b(W)l(.)f(Cook,)g(A.)g(Cox,)h(and)e(E.)h(Lee.)22
1614 b(Parallel)15 b(mixed)i(integer)e(programming.)20 b(T)-8
1615 b(echnical)15 b(Report)h(CRPC)h(TR)h(95554,)209 2739
1616 y(Center)h(for)h(Research)g(on)g(Parallel)d(Computation,)h(Research)h
1617 (Monograph,)f(1995.)85 2878 y([3])40 b(Adrian)20 b(Brungger)l(,)f
1618 (Ambros)i(Marzetta,)g(Jens)h(Clausen,)e(and)g(Michael)h(Perregaard.)28
1619 b(Solving)20 b(large\255scale)f(qap)i(problems)f(in)209
1620 2992 y(parallel)e(with)h(the)h(search)g(library)f(zram.)29
1621 b Fb(Journal)19 b(of)h(Parallel)e(and)h(Distributed)f(Computing)p
1622 Fn(,)g(50:157\226169,)e(1998.)85 3131 y([4])40 b(B.)57
1623 b(L.)g(Cun)f(and)g(C.)i(Roucairol.)123 b(BOB:)57 b(A)g(uni\002ed)f
1624 (platform)f(for)i(implementing)d(branch\255and\255bound)e(like)k
1625 (al\255)209 3246 y(gorithms.)132 b(T)-8 b(echnical)58
1626 b(Report)g(N95/16,)68 b(Universiti)58 b(de)h(V)l(ersailles)f(Saint)h
1627 (Quentin,)67 b(1995.)132 b(A)o(vailable)57 b(from)209
1628 3360 y Fa(http://www.prism.uvsq.fr/english/paralle)o(l/cr/b)o(ob)p
1629 2371 3360 23 4 v 21 w(us.html)p Fn(.)85 3499 y([5])40
1630 b(E.)29 b(W)l(.)f(Dijkstra,)i(W)l(.)e(H.)g(Seijen,)h(and)e(A.)i(J.)g
1631 (M.)g(V)-6 b(an)28 b(Gasteren.)49 b(Derivation)26 b(of)i(a)h
1632 (termination)c(detection)h(algorithm)g(for)i(a)209 3613
1633 y(distributed)18 b(computation.)25 b Fb(Information)18
1634 b(Processing)h(Letters)p Fn(,)g(16\2555:217\226219,)d(1983.)85
1635 3752 y([6])40 b(S.)28 b(Dutt)f(and)f(N.)i(R.)f(Mahapatra.)45
1636 b(Scalable)25 b(load\255balancing)e(strategies)j(for)h(parallel)d(a*)k
1637 (algorithms.)45 b Fb(Journal)26 b(of)h(Parallel)209 3866
1638 y(and)f(Distributed)e(Computing)p Fn(,)h(22\(3\):488\226505,)e(Sept.)i
1639 (1994.)43 b(Special)25 b(Issue)i(on)e(Scalability)g(of)h(Parallel)e
1640 (Algorithms)g(and)209 3981 y(Architectures.)85 4120 y([7])40
1641 b(Jonathan)13 b(Eckstein.)19 b(Parallel)13 b(branch\255and\255bound)d
1642 (methods)k(for)h(mixed\255integer)d(programming)h(on)h(the)h(cm\2555.)
1643 20 b Fb(SIAM)15 b(Journal)209 4234 y(on)20 b(Optimization)p
1644 Fn(,)e(4\(4\):794\226814,)e(1994.)85 4373 y([8])40 b(Jonathan)14
1645 b(Eckstein.)22 b(Distributed)13 b(versus)k(centralized)d(storage)h(and)
1646 g(control)g(for)h(parallel)e(branch)h(and)g(bound:)25
1647 b(Mixed)16 b(integer)209 4487 y(programming)i(on)i(the)g(cm\2555.)28
1648 b Fb(Computational)17 b(Optimization)h(and)h(Applications)p
1649 Fn(,)f(7\(2\):199\226220,)e(1997.)85 4626 y([9])40 b(M.)22
1650 b(Evett,)f(James)h(Hendler)l(,)d(Ambujashka)h(Mahanti,)g(and)g(Dana)g
1651 (Nau.)31 b(PRA*:)f(A)22 b(memory\255limited)d(heuristic)h(search)h
1652 (proce\255)209 4741 y(dure)i(for)h(the)f(connection)e(machine.)37
1653 b(In)24 b Fb(Proceedings)d(of)j(the)f(Third)g(Symposium)g(on)h(the)f
1654 (Frontiers)f(of)i(Massively)g(Parallel)209 4855 y(Computation)p
1655 Fn(,)17 b(pages)j(145\226149,)d(1990.)43 4994 y([10])40
1656 b(Chris)17 b(Ferguson)e(and)h(Richard)g(Korf.)22 b(Distributed)15
1657 b(tree)h(search)h(and)f(its)h(application)d(to)j(alpha\255beta)d
1658 (pruning.)20 b(In)d Fb(Proceedings)209 5108 y(of)j(the)g(1988)f
1659 (National)f(Conference)g(on)i(Arti\002cial)f(Intelligence)p
1660 Fn(,)d(August)k(1988.)43 5247 y([11])40 b(A.)33 b(Ferreira)d(and)i(P)
1661 -10 b(.)33 b(Pardalos,)g(editors.)59 b Fb(Solving)31
1662 b(Combinatorial)e(Optimization)h(Problems)i(in)g(Parallel:)50
1663 b(Methods)31 b(and)209 5361 y(T)-7 b(echniques)p Fn(,)18
1664 b(volume)i(1054)f(of)h Fb(LNCS)g(State\255of\255the\255Art)c(Surveys)p
1665 Fn(.)29 b(Springer\255V)l(erlag,)16 b(1996.)1947 5610
1666 y Fk(12)p eop
1667 %%Page: 13 13
1668 13 12 bop 43 344 a Fn([12])40 b(Raphael)27 b(A.)i(Finkel)e(and)h(Udi)g
1669 (Manber)l(.)50 b(DIB)29 b(\255)g(a)g(distributed)d(implementation)f(of)
1670 j(backtracking.)50 b Fb(ACM)29 b(T)-6 b(ransactions)28
1671 b(of)209 459 y(Programming)18 b(Languages)g(and)h(Systems)p
1672 Fn(,)i(9)g(No.)f(2:235\226256,)c(April)j(1987.)43 606
1673 y([13])40 b(M.)30 b(Furuichi,)f(K.)h(T)-8 b(aki,)31 b(and)d(N.)h
1674 (Ichiyoshi.)52 b(A)29 b(multi\255level)e(load)h(balancing)f(scheme)i
1675 (for)g(OR\255parallel)e(exhaustive)h(search)209 720 y(programs)20
1676 b(on)g(the)h(Multi\255PSI.)28 b(In)20 b Fb(Proceedings)f(of)i(the)f
1677 (Second)g(ACM)h(SIGPLAN)f(Symposium)h(on)f(Principles)f(and)h(Practice)
1678 209 834 y(of)g(Parallel)e(Programming)p Fn(,)g(pages)h(50\22659,)g
1679 (1990.)43 982 y([14])40 b(Scott)19 b(Hamilton)d(and)i(Lee)g(Garber)l(.)
1680 24 b(Deep)18 b(Blue')o(s)f(hardware\255software)e(synergy)-6
1681 b(.)26 b Fb(IEEE)18 b(Computer)p Fn(,)g(30\(10\):29\22635,)c(October)
1682 209 1096 y(1997.)43 1243 y([15])40 b(F)-8 b(.\255H.)21
1683 b(Hsu.)33 b(Large)20 b(scale)i(parallelization)17 b(of)22
1684 b(alpha\255beta)c(search:)31 b(An)22 b(algorithmic)d(and)i
1685 (architectural)f(study)h(with)h(computer)209 1357 y(chess.)29
1686 b(T)-8 b(echnical)18 b(report,)h(Carnegie)f(Mellon)h(University)-6
1687 b(,)20 b(Pittsburgh,)e(P)-6 b(A,)20 b(1990.)27 b(Ph.D.)20
1688 b(Thesis.)43 1505 y([16])40 b(F)-8 b(.\255H.)19 b(Hsu,)h(M.)f(S.)h
1689 (Campbell,)d(and)i(A.)h(J.)g(Hoane.)25 b(Deep)19 b(Blue)f(system)j
1690 (overview)l(.)26 b(In)19 b Fb(Conference)e(proceedings)g(of)i(the)g
1691 (1995)209 1619 y(International)d(Conference)i(on)i(Supercomputing,)d
1692 (Barcelona,)h(Spain)p Fn(,)g(pages)h(240\226244,)f(1995.)43
1693 1766 y([17])40 b(V)o(irendra)24 b(K.)i(Janakiram,)h(Dharma)e(P)-10
1694 b(.)27 b(Agrawal,)f(and)f(Ram)i(Mehrotra.)43 b(A)26 b(randomized)e
1695 (parallel)g(backtracking)h(algorithm.)209 1880 y Fb(IEEE)20
1696 b(T)-6 b(ransactions)19 b(on)h(Computers)p Fn(,)f(C\25537)h(\(12\),)f
1697 (1988.)43 2028 y([18])40 b(L.)28 b(Johnson,)h(G.)g(Nemhauser)l(,)f(and)
1698 g(M.)g(Savelsbergh.)48 b(Progress)27 b(in)h(integer)e(programming:)42
1699 b(An)28 b(exposition.)48 b(T)-8 b(echnical)209 2142 y(report,)35
1700 b(School)c(of)i(Industrial)e(and)h(Systems)i(Engineering,)e(Georgia)f
1701 (Institute)g(of)h(T)-8 b(echnology)i(,)34 b(1997.)60
1702 b(A)o(vailable)31 b(from)209 2256 y Fa(http://akula.isye.gatech.edu/)40
1703 b(mwps/mwps.html)p Fn(.)43 2403 y([19])g(L.)19 b(V)-7
1704 b(.)20 b(Kale)e(and)g(V)-7 b(.)20 b(Saletore.)k(Parallel)17
1705 b(state\255space)h(search)h(for)g(a)g(\002rst)h(solution)d(with)i
1706 (consistent)f(linear)g(speedups.)25 b Fb(Interna\255)209
1707 2517 y(tional)19 b(Journal)f(of)i(Parallel)e(Programming)p
1708 Fn(,)g(3,)i(August)g(1990.)43 2665 y([20])40 b(L.)20
1709 b(N.)h(Kanal)e(and)g(V)o(ipin)g(Kumar)l(.)27 b Fb(Search)20
1710 b(in)g(Arti\002cial)f(Intelligence)p Fn(.)25 b(Springer\255V)l(erlag,)
1711 15 b(New)20 b(Y)-7 b(ork,)21 b(NY)-10 b(,)20 b(1988.)43
1712 2812 y([21])40 b(R.)21 b(Karp)f(and)g(Y)-10 b(.)21 b(Zhang.)28
1713 b(Randomized)18 b(parallel)g(algorithms)h(for)h(backtrack)h(search)g
1714 (and)f(branch\255and\255bound)15 b(computation.)209 2926
1715 y Fb(Journal)k(of)h(ACM)p Fn(,)h(40:765\226789,)16 b(1993.)43
1716 3074 y([22])40 b(George)20 b(Karypis)g(and)g(V)o(ipin)e(Kumar)l(.)29
1717 b(Unstructured)19 b(T)m(ree)h(Search)g(on)g(SIMD)h(Parallel)d
1718 (Computers.)28 b Fb(IEEE)21 b(T)-6 b(ransactions)19 b(on)209
1719 3188 y(Parallel)f(and)h(Distributed)f(Systems)p Fn(,)j(5\(10\),)e
1720 (October)h(1994.)43 3335 y([23])40 b(V)-7 b(.)24 b(Kumar)f(and)g(L.)g
1721 (N.)h(Kanal.)36 b(A)24 b(general)d(branch\255and\255bound)e
1722 (formulations)i(for)j(understanding)19 b(and)k(synthesizing)f(and/or)
1723 209 3449 y(tree)e(search)g(procedures.)26 b Fb(Arti\002cial)20
1724 b(Intelligence)p Fn(,)c(21:179\226198,)g(1983.)43 3597
1725 y([24])40 b(V)o(ipin)23 b(Kumar)l(,)h(Ananth)e(Grama,)j(Anshul)e
1726 (Gupta,)h(and)g(George)e(Karypis.)39 b Fb(Introduction)21
1727 b(to)j(Parallel)e(Computing:)33 b(Algorithm)209 3711
1728 y(Design)19 b(and)h(Analysis)p Fn(.)28 b(Benjamin)18
1729 b(Cummings/)i(Addison)e(W)o(esley)i(\(ISBN)g(0\2558053\2553170\2550\),)
1730 15 b(Redwod)k(City)-6 b(,)21 b(1994.)43 3858 y([25])40
1731 b(V)o(ipin)17 b(Kumar)l(,)h(Ananth)f(Grama,)h(and)g(V)-7
1732 b(.)19 b(Nageshwara)d(Rao.)25 b(Scalable)17 b(load)g(balancing)f
1733 (techniques)g(for)j(parallel)c(computers.)209 3972 y
1734 Fb(Journal)k(of)h(Parallel)e(and)h(Distributed)f(Computing)p
1735 Fn(,)g(22\(1\):60\22679,)e(July)21 b(1994.)43 4120 y([26])40
1736 b(T)-8 b(.)27 b(H.)h(Lai)e(and)h(Sartaj)f(Sahni.)46 b(Anomalies)25
1737 b(in)i(parallel)e(branch)i(and)f(bound)g(algorithms.)45
1738 b Fb(Communications)25 b(of)i(the)g(ACM)p Fn(,)209 4234
1739 y(pages)19 b(594\226602,)f(1984.)43 4381 y([27])40 b(Eva)19
1740 b(K.)h(Lee)e(and)g(John)h(E.)g(Mitchell.)25 b(Computational)15
1741 b(experience)i(of)i(an)f(interior\255point)d(algorithm)i(in)i(a)g
1742 (parallel)d(branch\255and\255)209 4495 y(cut)21 b(framework.)27
1743 b(In)20 b Fb(Proceedings)e(for)i(SIAM)h(Conference)d(on)i(Parallel)d
1744 (Processing)j(for)g(Scienti\002c)f(Computing)p Fn(,)f(1997.)43
1745 4643 y([28])40 b(G.)28 b(J.)g(Li)f(and)g(B.)g(W)l(.)h(W)m(ah.)46
1746 b(Computational)24 b(ef)o(\002ciency)j(of)g(combinatorial)e(or\255tree)
1747 h(searches.)47 b Fb(IEEE)27 b(T)-6 b(rans.)27 b(on)g(Software)209
1748 4757 y(Engineering)p Fn(,)16 b(16\(1\):13\22631,)h(Jan.)j(1990.)43
1749 4904 y([29])40 b(Guo\255Jie)22 b(Li)h(and)f(Benjamin)f(W)l(.)h(W)m(ah.)
1750 35 b(Coping)21 b(with)i(anomalies)e(in)h(parallel)e
1751 (branch\255and\255bound)e(algorithms.)34 b Fb(IEEE)23
1752 b(T)-6 b(rans\255)209 5019 y(actions)20 b(on)g(Computers)p
1753 Fn(,)e(C\22635,)i(June)f(1986.)43 5166 y([30])40 b(N.)18
1754 b(R.)f(Mahapatra)e(and)i(S.)h(Dutt.)k(Scalable)16 b(global)f(and)i
1755 (local)f(hashing)g(strategies)g(for)h(duplicate)e(pruning)g(in)i
1756 (parallel)d(a*)k(graph)209 5280 y(search.)28 b Fb(IEEE)20
1757 b(T)-6 b(rans.)20 b(Parallel)e(and)i(Distributed)d(Systems)p
1758 Fn(,)k(8\(7\),)f(July)g(1997.)1947 5610 y Fk(13)p eop
1759 %%Page: 14 14
1760 14 13 bop 43 344 a Fn([31])40 b(B.)19 b(Mans,)g(T)-8
1761 b(.)18 b(Mautor)l(,)g(and)g(C.)h(Roucairol.)k(A)c(parallel)d(depth)i
1762 (\002rst)h(search)g(branch)e(and)h(bound)f(for)h(the)g(quadratic)f
1763 (assignment)209 459 y(problem.)27 b Fb(European)18 b(Journal)g(of)i
1764 (Operational)d(Research)p Fn(,)j(81\(3\):617\226628,)15
1765 b(1995.)43 606 y([32])40 b(B.)21 b(Mans)g(and)e(C.)i(Roucairol.)27
1766 b(Performances)19 b(of)h(parallel)e(branch)i(and)f(bound)g(algorithms)g
1767 (with)h(best\255\002rst)g(search.)29 b Fb(Discrete)209
1768 720 y(Applied)18 b(Mathematics)p Fn(,)h(66\(1\):57\22676,)e(April)i
1769 (1996.)43 867 y([33])40 b(G.)19 b(Manzini)f(and)g(M.)h(Somalvico.)25
1770 b(Probabilistic)16 b(performance)h(analysis)h(of)h(heuristic)e(search)i
1771 (using)f(parallel)e(hash)i(tables.)25 b(In)209 982 y
1772 Fb(Proceedings)18 b(of)i(the)g(International)c(Symposium)k(on)g
1773 (Arti\002cial)f(Intelligence)e(and)i(Mathematics)p Fn(,)g(1990.)43
1774 1129 y([34])40 b(T)-8 b(.)16 b(A.)g(Marsland)f(and)g(M.)h(Campbell.)j
1775 (Parallel)14 b(search)h(of)h(strongly)f(ordered)f(game)h(trees.)21
1776 b Fb(Computing)14 b(Surveys)p Fn(,)j(14:533\226551,)209
1777 1243 y(1982.)43 1390 y([35])40 b(D.)24 b(L.)g(Miller)e(and)h(J.)h(F)-8
1778 b(.)24 b(Pekny)-6 b(.)38 b(The)23 b(role)f(of)i(performance)e(metrics)h
1779 (for)h(parallel)d(mathematical)g(programming)h(algorithms.)209
1780 1505 y Fb(ORSA)f(Journal)d(on)i(Computing)p Fn(,)e(5\(1\),)i(1993.)43
1781 1652 y([36])40 b(M.)33 b(Padberg)e(and)g(G.)i(Rinaldi.)59
1782 b(A)33 b(branch\255and\255cut)c(algorithm)h(for)j(the)f(resolution)e
1783 (of)i(large\255scale)e(symmetric)k(traveling)209 1766
1784 y(salesman)20 b(problems.)27 b Fb(SIAM)20 b(Rev)-6 b(.)p
1785 Fn(,)21 b(33:60\226100,)16 b(1991.)43 1913 y([37])40
1786 b(P)-10 b(.)20 b(Pardalos,)e(Y)-10 b(.)20 b(Li,)f(K.G.)g(Ramakrishna,)f
1787 (and)g(M.G.C.)i(Resende.)25 b(Lower)18 b(bounds)g(for)i(the)e
1788 (quadratic)f(assignment)h(problem.)209 2028 y Fb(Annals)c(of)h
1789 (Operations)f(Research)p Fn(,)h(50:387\226411,)d(1994.)18
1790 b(Special)c(V)l(olume)g(on)h(Applications)d(of)j(Combinatorial)d
1791 (Optimization.)43 2175 y([38])40 b(Judea)23 b(Pearl.)38
1792 b Fb(Heuristics\255Intelligent)19 b(Search)24 b(Strategies)e(for)i
1793 (Computer)f(Problem)f(Solving)p Fn(.)38 b(Addison\255W)o(esley)-6
1794 b(,)22 b(Reading,)209 2289 y(MA,)f(1984.)43 2437 y([39])40
1795 b(Ira)35 b(Pramanick)f(and)h(Jon)f(G.)i(Kuhl.)66 b(An)35
1796 b(inherently)e(parallel)f(method)i(for)g(heuristic)g
1797 (problem\255solving:)55 b(Part)34 b(i\255general)209
1798 2551 y(framework.)28 b Fb(IEEE)20 b(T)-6 b(ransactions)19
1799 b(on)h(Parallel)d(and)j(Distributed)e(Systems)p Fn(,)j(6\(10\),)e
1800 (October)g(1995.)43 2698 y([40])40 b(B.)18 b(Monien)e(R.)i(Feldmann,)e
1801 (P)-10 b(.)18 b(Mysliwietz.)24 b(Studying)16 b(overheads)g(in)h
1802 (massively)h(parallel)d(min/max\255tree)h(evaluation.)21
1803 b(In)d Fb(Proc.)209 2812 y(of)i(the)g(6th)g(ACM)g(Symposium)g(on)g
1804 (Parallel)e(Algorithms)h(and)g(Architectures)p Fn(,)g(pages)g
1805 (94\226103,)f(1994.)43 2960 y([41])40 b(A.)26 b(G.)g(Ranade.)40
1806 b(Optimal)24 b(speedup)f(for)j(backtrack)f(search)g(on)g(a)h
1807 (butter\003y)e(network.)41 b(In)26 b Fb(Proceedings)d(of)i(the)g(Third)
1808 f(ACM)209 3074 y(Symposium)c(on)g(Parallel)e(Algorithms)h(and)g
1809 (Architectures)p Fn(,)g(1991.)43 3221 y([42])40 b(V)-7
1810 b(.)30 b(Nageshwara)e(Rao)h(and)g(V)-7 b(.)30 b(Kumar)l(.)53
1811 b(Concurrent)28 b(access)j(of)f(priority)e(queues.)52
1812 b Fb(IEEE)30 b(T)-6 b(ransactions)28 b(on)i(Computers)p
1813 Fn(,)209 3335 y(C\25537\(12\),)18 b(1988.)43 3483 y([43])40
1814 b(V)-7 b(.)23 b(Nageshwara)d(Rao)i(and)g(V)o(ipin)f(Kumar)l(.)33
1815 b(On)23 b(the)f(ef)o(\002cicency)g(of)h(parallel)c(backtracking.)33
1816 b Fb(IEEE)23 b(T)-6 b(ransactions)21 b(on)h(Parallel)209
1817 3597 y(and)f(Distributed)f(Systems)p Fn(,)j(4\(4\):427\226437,)17
1818 b(April)k(1993.)31 b(Also)22 b(available)d(as)j(T)-8
1819 b(echnical)20 b(Report)h(TR)h(90\25555,)e(Department)g(of)209
1820 3711 y(Computer)f(Science,)g(University)h(of)g(Minnesota,)e
1821 (Minneapolis,)g(MN.)43 3858 y([44])40 b(C.)26 b(Roucairol.)41
1822 b(A)26 b(parallel)d(branch)h(and)h(bound)f(algorithm)f(for)j(the)f
1823 (quadratic)e(assignment)i(problem.)41 b Fb(Discr)m(.)26
1824 b(Appl.)e(Math.)p Fn(,)209 3972 y(18:211\226225,)16 b(1987.)43
1825 4120 y([45])40 b(B.)29 b(Monien)e(S.)i(T)-8 b(schvke,)31
1826 b(R.)e(L|ling.)50 b(Solving)27 b(the)h(traveling)f(salesman)h(problem)f
1827 (with)h(a)h(distributed)d(branch\255and\255bound)209
1828 4234 y(algorithm)21 b(on)j(a)f(1024)f(processor)h(network.)36
1829 b(In)23 b Fb(Proc.)h(of)f(the)g(9th)g(International)c(Parallel)i
1830 (Processing)i(Symposium)p Fn(,)g(pages)209 4348 y(182\226189,)18
1831 b(Santa)h(Barbara,)f(CA,)i(April)f(1995.)43 4495 y([46])40
1832 b(Benjamin)20 b(W)l(.)i(W)m(ah,)f(Gou\255Jie)g(Li,)h(and)f(C.)i(F)-8
1833 b(.)21 b(Y)l(u.)33 b(Multiprocessing)19 b(of)j(combinatorial)d(search)j
1834 (problems.)31 b Fb(IEEE)22 b(Computer)p Fn(,)209 4610
1835 y(June)e(1985.)43 4757 y([47])40 b(Benjamin)20 b(W)l(.)i(W)m(ah)f(and)g
1836 (Y)-10 b(.)22 b(W)l(.)g(Eva)g(Ma.)33 b(MANIP\227a)21
1837 b(multicomputer)f(architecture)g(for)h(solving)g(combinatorial)e
1838 (extremum\255)209 4871 y(search)h(problems.)27 b Fb(IEEE)20
1839 b(T)-6 b(ransactions)19 b(on)h(Computers)p Fn(,)f(c\22633,)h(May)g
1840 (1984.)1947 5610 y Fk(14)p eop
1841 %%Trailer
1842 end
1843 userdict /end-hook known{end-hook}if
1844 %%EOF