├── .gitattributes ├── .gitignore ├── CS 473 - Algorithms - Spring 2017.pdf ├── CSE 101_ ALGORITHMS.pdf ├── CSE 101_ ALGORITHMS_reading.pdf ├── algorithms_unplugged.pdf ├── columbia-algorithms-course ├── 4231-s15-hw5-solns.pdf ├── 4231-s16-hw5_solns.pdf ├── 4231_midterm_f15.pdf ├── 4231hw6_solns_f15.pdf ├── Advanced Algorithms 2.6.pdf ├── Lecture 1 - Introduction to Java.pdf ├── final_2009_soln.pdf ├── final_exam.pdf ├── final_sol.pdf ├── hw3 (1).pdf ├── hw4solns_s16.pdf ├── hw6_solutions_f14_mihalis.pdf ├── lect1.ps ├── optional_solns.pdf └── practice_mid2012.pdf ├── contests ├── prime_RIP.pdf ├── prob_p.pdf ├── prob_p_chess.pdf ├── prob_p_prostoj.pdf ├── prob_p_sasha.pdf ├── prob_p_transportation.pdf ├── problems-e.pdf ├── problems-e_awful.pdf ├── problems-e_breaking.pdf ├── problems-e_calendar.pdf ├── problems-e_circles.pdf ├── problems-e_decorating.pdf ├── problems-e_max_sum_swaps.pdf ├── problems-e_most_beautiful.pdf ├── problems.pdf ├── problems1-e.pdf ├── problems1-e_labyrinth.pdf ├── problems1_cnf_sat.pdf ├── problems2-e_maximal.pdf └── problems2_xvii.pdf ├── cse 101 UCSD ├── blank ├── hw1.pdf ├── hw2.pdf ├── hw3.pdf ├── hw4.pdf ├── hw5.pdf ├── hw6.pdf ├── hw7.pdf ├── hw8.pdf ├── hw9.pdf ├── sol1.pdf ├── sol2.pdf ├── sol3.pdf ├── sol4.pdf ├── sol5.pdf ├── sol6.pdf ├── sol7.pdf ├── sol8.pdf └── sol9.pdf ├── fakehw0sol.zip ├── final-review.pdf ├── final-sol.pdf ├── final.pdf ├── final_sp15.pdf ├── hw0-sol.pdf ├── hw0.pdf ├── hw1-sol.pdf ├── hw1.pdf ├── hw10-sol.pdf ├── hw10.pdf ├── hw11-sol.pdf ├── hw11.pdf ├── hw2-sol.pdf ├── hw2.pdf ├── hw3-sol.pdf ├── hw4-sol.pdf ├── hw4.pdf ├── hw5-sol.pdf ├── hw5.pdf ├── hw6-sol.pdf ├── hw6.pdf ├── hw7-sol.pdf ├── hw7.pdf ├── hw8-sol.pdf ├── hw8_sp17.pdf ├── hw9-sol.pdf ├── hw9.pdf ├── midterm1-sol.pdf ├── midterm1.pdf ├── midterm2-sol.pdf ├── midterm2.pdf ├── midterm2_sp17.pdf ├── one-hundred-prisoners.pdf └── programming_challenges_skiena.pdf /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /CS 473 - Algorithms - Spring 2017.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/CS 473 - Algorithms - Spring 2017.pdf -------------------------------------------------------------------------------- /CSE 101_ ALGORITHMS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/CSE 101_ ALGORITHMS.pdf -------------------------------------------------------------------------------- /CSE 101_ ALGORITHMS_reading.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/CSE 101_ ALGORITHMS_reading.pdf -------------------------------------------------------------------------------- /algorithms_unplugged.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/algorithms_unplugged.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/4231-s15-hw5-solns.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/4231-s15-hw5-solns.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/4231-s16-hw5_solns.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/4231-s16-hw5_solns.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/4231_midterm_f15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/4231_midterm_f15.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/4231hw6_solns_f15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/4231hw6_solns_f15.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/Advanced Algorithms 2.6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/Advanced Algorithms 2.6.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/Lecture 1 - Introduction to Java.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/Lecture 1 - Introduction to Java.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/final_2009_soln.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/final_2009_soln.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/final_exam.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/final_exam.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/final_sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/final_sol.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/hw3 (1).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/hw3 (1).pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/hw4solns_s16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/hw4solns_s16.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/hw6_solutions_f14_mihalis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/hw6_solutions_f14_mihalis.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/lect1.ps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-2.0 2 | %%Creator: dvips 5.519 Copyright 1986, 1993 Radical Eye Software 3 | %%Title: lect1.dvi 4 | %%CreationDate: Wed Sep 15 17:14:50 1999 5 | %%Pages: 7 6 | %%PageOrder: Ascend 7 | %%BoundingBox: 0 0 612 792 8 | %%EndComments 9 | %DVIPSCommandLine: /usr/local/bin/dvips lect1 -o lect1.ps 10 | %DVIPSSource: TeX output 1999.09.15:1714 11 | %%BeginProcSet: tex.pro 12 | /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N 13 | /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 14 | mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} 15 | ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale 16 | isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div 17 | hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul 18 | TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get 19 | round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{ 20 | statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 21 | 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn 22 | begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X 23 | array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo 24 | setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx 25 | FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{ 26 | pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get} 27 | B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup 28 | length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B 29 | /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type 30 | /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 31 | 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 32 | index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff 33 | ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice 34 | ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ 35 | ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn 36 | /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 37 | sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D 38 | }B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 39 | moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add 40 | .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage 41 | userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook 42 | known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X 43 | /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 44 | 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 45 | 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V 46 | {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 47 | getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} 48 | ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley 49 | false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley 50 | scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave 51 | transform round exch round exch itransform moveto rulex 0 rlineto 0 52 | ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 53 | 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail} 54 | B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{ 55 | 3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p 56 | -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{ 57 | 3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end 58 | %%EndProcSet 59 | %%BeginProcSet: special.pro 60 | TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N 61 | /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen 62 | false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B 63 | /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit 64 | div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ 65 | /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 66 | 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B 67 | /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale 68 | true def end /@MacSetUp{userdict /md known{userdict /md get type 69 | /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup 70 | length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} 71 | N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath 72 | clippath mark{transform{itransform moveto}}{transform{itransform lineto} 73 | }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ 74 | itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ 75 | closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 76 | 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N 77 | /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 78 | scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get 79 | ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip 80 | not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 81 | TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR 82 | pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 83 | -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg 84 | TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg 85 | sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 86 | 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 87 | 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp 88 | {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 89 | div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} 90 | N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict 91 | maxlength dict begin /magscale false def normalscale currentpoint TR 92 | /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts 93 | /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx 94 | psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy 95 | scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR 96 | /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ 97 | psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 98 | roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath 99 | moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict 100 | begin /SpecialSave save N gsave normalscale currentpoint TR 101 | @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial 102 | {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto 103 | closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx 104 | sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR 105 | }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse 106 | CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury 107 | lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath 108 | }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ 109 | end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} 110 | N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ 111 | /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX 112 | SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X 113 | /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad 114 | yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end 115 | %%EndProcSet 116 | TeXDict begin 40258431 52099146 1000 300 300 117 | (/b/madhu/teaching/FT99/lect1/lect1.dvi) @start /Fa 25 118 | 119 df<00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C 119 | 00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1F 120 | C0FF1FE07F1FC013197F9816>65 D<7FF800FFFE007FFF001C0F001C07801C03801C0380 121 | 1C03801C07801C07001FFF001FFE001FFE001C1F001C03801C03C01C01C01C01C01C01C0 122 | 1C01C01C03C01C07807FFF80FFFF007FFC0012197F9816>I<01F18007FB800FFF801F0F 123 | 803C0780380380700380700380F00000E00000E00000E00000E00000E00000E00000E000 124 | 00F000007003807003803803803C07001F0F000FFE0007FC0001F00011197E9816>I<7F 125 | FFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C00001C1C001C1C001FFC001F 126 | FC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00E01C00E07FFFE0FFFFE07F 127 | FFE013197F9816>69 DI73 D<07FE07FF07FE003800380038003800380038003800380038003800380038 132 | 00380038003800386038F038F0707FF07FE01F8010197D9816>I 135 | 76 DI<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7 138 | 001DC7001CC7001CC7001CE7001CE7001CE7001C67001C67001C77001C77001C37001C37 139 | 001C37001C17007F1F00FF9F007F0F0013197F9816>I<1FFC003FFE007FFF00780F00F0 140 | 0780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0 141 | 0380E00380E00380F00780F00780780F007FFF003FFE001FFC0011197E9816>I<07E300 142 | 1FFF003FFF00781F00F00700E00700E00700E00000F000007800003F80001FF00007FC00 143 | 00FE00000F00000700000380000380600380E00380E00700F80F00FFFE00FFFC00C7F000 144 | 11197E9816>83 D<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000 145 | E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 146 | E00007FC000FFE0007FC0013197F9816>I86 149 | D<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003F00001F00001E00000E0 150 | 0001E00001F00003F00003B80007B800071C00071C000E0E000E0E001C07007F1FC0FF1F 151 | E07F1FC013197F9816>88 D<1FE0003FF0007FF800783C00300E00000E00000E0003FE00 152 | 1FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116> 153 | 97 D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C0 154 | 0F00E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF80 155 | 0EFF00063C001419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F0 156 | 00700778073E0E1FFC0FF803F010127D9116>I<03E00FF81FFC3C1E780E7007E007FFFF 157 | FFFFFFFFE000E000700778073C0F1FFE0FFC03F010127D9116>101 158 | D<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001 159 | C001C001C001C001C001C07FFFFFFF7FFF101A7D9916>105 D<00300078007800300000 160 | 0000000000001FF81FF81FF8003800380038003800380038003800380038003800380038 161 | 00380038003800380038003800386070F0F0FFE07FC03F800D237E9916>I108 D<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00EF8 165 | 1EFFFCFFF8C7E00F127D9116>115 D<0300000700000700000700000700007FFF00FFFF 166 | 00FFFF000700000700000700000700000700000700000700000701000703800703800703 167 | 8007870003FE0001FC0000F80011177F9616>I<7F1FC0FF1FE07F1FC01C07001E0F000E 168 | 0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003B80001F00001F00000 169 | E00013127F9116>118 D E /Fb 3 52 df<18F818181818181818181818FF080D7D8C0E> 170 | 49 D<3E00418080C0C0C000C000C0018003000400084030407F80FF800A0D7E8C0E>I<3E 171 | 0041806180018003001E00018000C000C0C0C0C0C041803E000A0D7E8C0E>I 172 | E /Fc 2 49 df<040004000400C460E4E03F800E003F80E4E0C4600400040004000B0D7E 173 | 8D11>3 D<040E0E1C1C1C38383070706060C0C0070F7F8F0A>48 174 | D E /Fd 4 62 df<0C001C00EC000C000C000C000C000C000C000C000C000C000C000C00 175 | 0C000C000C000C00FFC00A137D9211>49 D<1F0060C06060F070F0306030007000700060 176 | 00C001C00180020004000810101020207FE0FFE00C137E9211>I<0FC030707038703870 177 | 380038003000E00FC0007000380018001C601CF01CF018E03860701FC00E137F9211>I< 178 | 7FFFE0FFFFF0000000000000000000000000000000000000FFFFF07FFFE0140A7E8B19> 179 | 61 D E /Fe 6 111 df<03C006200C000C000C000C00070007800DC010C030C060406040 180 | 60C0C080C0804180410022001C000B147E930F>14 D<00200060006000C000C000C00180 181 | 01800180030003000300060006000C000C000C0018001800180030003000300060006000 182 | 6000C000C000C0000B1D7E9511>61 D<06070600000000384C4C8C981818303262626438 183 | 08147F930C>105 D<0060007000600000000000000000038004C0046008C008C000C000 184 | C0018001800180018003000300030003006600E600CC0078000C1A81930E>I<30F87C00 185 | 590C86004E0D06009C0E0600980C0600180C0600180C060030180C0030180C8030181880 186 | 301818806030190060300E00190D7F8C1D>109 D<30F8590C4E0C9C0C980C180C180C30 187 | 183019303130316032601C100D7F8C15>I E /Ff 1 81 df80 D 194 | E /Fg 14 107 df<60F0F06004047C8B0C>1 D<03C00FF01FF83FFC7FFE7FFEFFFFFFFF 195 | FFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D<007FFF8001FFFF8007800000 196 | 0E0000001800000030000000300000006000000060000000C0000000C0000000C0000000 197 | C0000000C0000000C0000000C00000006000000060000000300000003000000018000000 198 | 0E0000000780000001FFFF80007FFF800000000000000000000000000000000000000000 199 | 00000000000000007FFFFF807FFFFF8019227D9920>18 D<000001800000078000001E00 200 | 000078000001E00000078000001E00000078000001E00000078000001E00000078000000 201 | E0000000780000001E0000000780000001E0000000780000001E0000000780000001E000 202 | 0000780000001E0000000780000001800000000000000000000000000000000000000000 203 | 00000000000000007FFFFF00FFFFFF8019227D9920>20 DI<00060000000006000000000C00 208 | 0000000C00000000180000000030000000007FFFFFF000FFFFFFF8038000000007000000 209 | 003C00000000F0000000003C000000000E00000000030000000001C000000000FFFFFFF8 210 | 007FFFFFF000300000000018000000000C000000000C0000000006000000000600000025 211 | 187E952A>40 D<0000030000000003000000000180000000018000000000C00000000060 212 | 007FFFFFF000FFFFFFF8000000000E00000000070000000001E0000000007800000001E0 213 | 000000038000000006000000001C00FFFFFFF8007FFFFFF0000000006000000000C00000 214 | 0001800000000180000000030000000003000025187E952A>I<007FF801FFF80780000E 215 | 0000180000300000300000600000600000C00000C00000C00000FFFFF8FFFFF8C00000C0 216 | 0000C000006000006000003000003000001800000E000007800001FFF8007FF8151A7D96 217 | 1C>50 D<0000600000600000C00000C00001800001800001800003000003000006000006 218 | 00000C00000C0000180000180000180000300000300000600000600000C00000C0000180 219 | 000180000300000300000300000600000600000C00000C00001800001800003000003000 220 | 00300000600000600000C0000040000013287A9D00>54 D<400004C0000C600018600018 221 | 6000183000303000303000301800601800601FFFE00FFFC00C00C00C00C0060180060180 222 | 03030003030003030001860001860001860000CC0000CC0000CC00007800007800007800 223 | 003000003000161E809C17>56 D95 226 | D<003C00E001C00180038003800380038003800380038003800380038003800380038003 227 | 0007001C00F0001C00070003000380038003800380038003800380038003800380038003 228 | 800380018001C000E0003C0E297D9E15>102 D 231 | I106 D E /Fh 33 122 df<007C00C2010203000600060006 233 | 000700078003C001E001F003780E381C1C381C300C700C700CE008E008E018E010E010E0 234 | 306020604030801F000F1D7E9C12>14 D<00010000020000020000020000020000040000 235 | 0400000400000400000800000800007E0001C9800710E00C106018107038103070203070 236 | 2030E02070E02070E04070E040E0E040E06041C06083803086001C9C0007E00001000001 237 | 000001000001000002000002000002000002000014257E9C19>30 238 | D<60F0F06004047C830C>58 D<60F0F0701010101020204080040C7C830C>I<00010003 239 | 000600060006000C000C000C0018001800180030003000300060006000C000C000C00180 240 | 01800180030003000300060006000C000C000C0018001800180030003000300060006000 241 | 6000C000C00010297E9E15>61 DI<00000C0000000C0000001C0000001C0000003C0000007C0000005C 245 | 0000009C0000008E0000010E0000010E0000020E0000040E0000040E0000080E0000080E 246 | 0000100E0000200E00003FFE000040070000400700008007000100070001000700020007 247 | 0002000700060007001E000700FF807FF01C1D7F9C1F>65 D<01FFFF00003C01C0003800 248 | E0003800F0003800700038007000700070007000F0007000F0007001E000E003C000E007 249 | 8000E01F0000FFFC0001C00F0001C0078001C003C001C003C0038003C0038003C0038003 250 | C0038003C0070007800700070007000E0007001C000E007800FFFFC0001C1C7E9B1F>I< 251 | 0001F808000E061800380138006000F001C0007003800070070000300F0000200E000020 252 | 1C0000203C0000203C000000780000007800000078000000F0000000F0000000F0000000 253 | F0000000F0000100F0000100F0000100700002007000020030000400380008001C001000 254 | 0E0060000701800000FE00001D1E7E9C1E>I<01FFFFF8003C0078003800180038001000 255 | 380010003800100070001000700010007010100070100000E0200000E0200000E0600000 256 | FFE00001C0400001C0400001C0400001C040000380804003800040038000800380008007 257 | 0001000700010007000300070006000E003E00FFFFFC001D1C7E9B1F>69 258 | D<0001F808000E061800380138006000F001C0007003800070070000300F0000200E0000 259 | 201C0000203C0000203C000000780000007800000078000000F0000000F0000000F0007F 260 | F0F0000780F0000700F0000700F00007007000070070000E0030000E0038000E001C001E 261 | 000E0064000701840000FE00001D1E7E9C21>71 D<01FFE0003C00003800003800003800 262 | 00380000700000700000700000700000E00000E00000E00000E00001C00001C00001C000 263 | 01C00003800203800203800203800407000407000C0700180700380E00F0FFFFF0171C7E 264 | 9B1C>76 D<01FE0000FF003E0000F0002E0001E0002E0002E0002E0002E0002E0004E000 265 | 4E0009C0004E0009C000470011C000470011C00087002380008700438000870043800087 266 | 00838001070107000107010700010382070001038207000203840E000203880E00020388 267 | 0E000203900E000403A01C000403A01C000401C01C000C01C01C001C01803C00FF8103FF 268 | 80281C7E9B28>I<01FC00FF80001C001C00002E001800002E001000002E001000002700 269 | 100000470020000043002000004380200000438020000081C040000081C040000081C040 270 | 000080E040000100E0800001007080000100708000010070800002003900000200390000 271 | 020039000002001D000004001E000004000E000004000E00000C000E00001C00040000FF 272 | 80040000211C7E9B21>I<0003F800000E0E000038038000E001C001C001C0038000E007 273 | 0000E00F0000F01E0000F01C0000F03C0000F03C0000F0780000F0780000F0780000F0F0 274 | 0001E0F00001E0F00001E0F00003C0F00003C0F0000780F0000780F0000F0070000E0070 275 | 001C00380038003C0070001C01C0000707800001FC00001C1E7E9C20>I<01FFFF00003C 276 | 03C0003800E0003800F00038007000380070007000F0007000F0007000F0007000E000E0 277 | 01E000E003C000E0078000E01E0001FFF00001C0000001C0000001C00000038000000380 278 | 00000380000003800000070000000700000007000000070000000F000000FFE000001C1C 279 | 7E9B1B>I<01FFFE00003C03C0003800E0003800F00038007000380070007000F0007000 280 | F0007000F0007001E000E001C000E0078000E01E0000FFF00001C0300001C0180001C01C 281 | 0001C01C0003801C0003801C0003801C0003801C0007003C0007003C0807003C0807003C 282 | 100F001E10FFE00E20000007C01D1D7E9B20>82 D<000FC100303300400F008006018006 283 | 03000603000606000406000407000007000007800003F00001FF0000FFC0003FE00003E0 284 | 0000F00000700000300000302000302000306000606000606000C0600080F00300CC0600 285 | 83F800181E7E9C19>I86 D<01FFC0FF80001E003C00 289 | 001E003000000E002000000F004000000700800000070100000007820000000384000000 290 | 03C800000001D000000001F000000000E000000000E000000000F0000000017000000002 291 | 7000000004380000000838000000103C000000201C000000401E000000800E000001800E 292 | 000003000F000006000700001E000F8000FF803FF000211C7F9B22>88 293 | DI<3F00070007000E000E000E000E001C001C001C001C0039E0 297 | 3A303C1838187018701C701C701CE038E038E038E030E070E060E0C061C023001E000E1D 298 | 7E9C12>98 D<01F0030C0E0C1C1E383C301870007000E000E000E000E000E000E0046008 299 | 601030601F800F127E9112>I<01F007080C0818043808300870307FC0E000E000E000E0 300 | 00E000E0046008601030600F800E127E9113>101 D<0001E0000630000E78000CF0001C 301 | 60001C00001C00001C00003C0000380000380003FFC00038000038000070000070000070 302 | 0000700000700000E00000E00000E00000E00000E00001C00001C00001C00001C00001C0 303 | 00018000038000038000630000F30000F60000E4000078000015257E9C14>I<01C003C0 304 | 03C001800000000000000000000000001C00270047004700870087000E000E001C001C00 305 | 1C003800388038807080710032001C000A1C7E9B0E>105 D<0007000F000F0006000000 306 | 0000000000000000000070009C010C020C021C041C001C001C0038003800380038007000 307 | 700070007000E000E000E000E001C061C0F180F300E6007C001024809B11>I<381F81F0 308 | 4E20C6184640E81C4680F01C8F00F01C8E00E01C0E00E01C0E00E01C1C01C0381C01C038 309 | 1C01C0381C01C0703803807138038071380380E1380380E2700700643003003820127E91 310 | 24>109 D<381F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C 311 | 03801C0700380710380710380E10380E2070064030038014127E9119>I<01F0060C0404 312 | 0C0E180C1C001F000FE00FF003F80038201C7018F018F010803060601F800F127E9113> 313 | 115 D<00C001C001C001C00380038003800380FFF00700070007000E000E000E000E001C 314 | 001C001C001C00382038203840384018800F000C1A80990F>I<07878008C84010F0C020 315 | F1E020E3C040E18000E00000E00001C00001C00001C00001C000638080F38080F38100E5 316 | 810084C60078780013127E9118>120 D<1C00C02701C04701C04701C08703808703800E 317 | 03800E03801C07001C07001C07001C0700180E00180E00180E001C1E000C3C0007DC0000 318 | 1C00001800603800F03000F06000E0C0004180003E0000121A7E9114>I 319 | E /Fi 41 123 df45 D<387CFEFEFE7C3807077C8610 320 | >I<00180000780001F800FFF800FFF80001F80001F80001F80001F80001F80001F80001 321 | F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 322 | F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C9F1C>49 323 | D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003 324 | F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C0180380 325 | 180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE0007 326 | FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C000 327 | 1F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF 328 | 00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E0 329 | 0003E00007E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E00707E0 330 | 0E07E00C07E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E0 331 | 0007E00007E00007E000FFFE00FFFE17207E9F1C>I<387CFEFEFE7C3800000000000000 332 | 00387CFEFEFE7C3807167C9510>58 D<000070000000007000000000F800000000F80000 333 | 0000F800000001FC00000001FC00000003FE00000003FE00000003FE00000006FF000000 334 | 067F0000000E7F8000000C3F8000000C3F800000183FC00000181FC00000381FE0000030 335 | 0FE00000300FE00000600FF000006007F00000E007F80000FFFFF80000FFFFF800018001 336 | FC00018001FC00038001FE00030000FE00030000FE000600007F000600007F00FFE00FFF 337 | F8FFE00FFFF825227EA12A>65 DI<0003FE0080001FFF818000FF01E38001F8003F8003E0001F80 343 | 07C0000F800F800007801F800007803F000003803F000003807F000001807E000001807E 344 | 00000180FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 345 | 000000FE000000007E000000007E000001807F000001803F000001803F000003801F8000 346 | 03000F8000030007C000060003F0000C0001F800380000FF00F000001FFFC0000003FE00 347 | 0021227DA128>I69 D72 DI76 D78 D<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F 369 | 80003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE00 370 | 000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE0000 371 | 0FE0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80003F 372 | 000FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC000023227DA12A 373 | >I 377 | I82 382 | D<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF00 383 | 00FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F0000 384 | 3FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F 385 | >I<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003F801 386 | C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F80000 387 | 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 388 | 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 389 | F800000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127>I<07 390 | FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F 391 | 01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F18167E951B>97 392 | DI<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC00 397 | 00FC0000FC0000FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE001416 398 | 7E9519>I<0001FE000001FE0000003E0000003E0000003E0000003E0000003E0000003E 399 | 0000003E0000003E0000003E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E 400 | 003E003E007E003E007C003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E 401 | 00FC003E00FC003E007C003E007C003E003E007E001E00FE000F83BE0007FF3FC001FC3F 402 | C01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FF 403 | FFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F00300FC07003FFC000 404 | FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E00F87E00F83C00F80000F8000 405 | 0F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80000F80000F8000 406 | 0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000 407 | 7FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03E07C03E07C03 408 | E07C03E07C03E03C03C03E07C01F0F801FFF0013FC003000003000003800003FFF801FFF 409 | F00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF0001E78003C7C007C3F01F80FFF 410 | E001FF0018217E951C>II<1C003F007F007F007F003F001C000000000000000000 415 | 000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F00 416 | 1F001F001F001F001F00FFE0FFE00B247EA310>I108 419 | DII<00FE0007FFC00F83E01E00F03E00F87C00 426 | 7C7C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00 427 | F81F01F00F83E007FFC000FE0017167E951C>II114 D<0FF3003FFF00781F00600700E00300E00300F00300FC 434 | 00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC 435 | 0E00EFFC00C7F00011167E9516>I<018000018000018000018000038000038000078000 436 | 0780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F80000F8000 437 | 0F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE00 438 | 00F80011207F9F16>II120 DI<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E 448 | 00C07E0000FC0000F80001F00003F03007E03007C0300F80701F80703F00603E00E07C03 449 | E0FFFFE0FFFFE014167E9519>I E /Fj 36 123 df45 D<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE0000FE00 451 | 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 452 | 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 453 | 00FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>49 D<00FF800007FFF0000FFFFC001E 454 | 03FE003800FF807C003F80FE003FC0FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C 455 | 001FE000001FE000001FC000001FC000003F8000003F0000007E000000FC000000F80000 456 | 01F0000003E00000078000000F0000001E0000003C00E0007000E000E000E001C001C003 457 | 8001C0060001C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B 458 | 277DA622>I<007F800003FFF00007FFFC000F80FE001F007F003F807F003F803F803F80 459 | 3F803F803F801F803F801F003F8000007F0000007F0000007E000000FC000001F8000007 460 | F00000FFC00000FFC0000001F80000007E0000003F0000003F8000001FC000001FC00000 461 | 1FE000001FE03C001FE07E001FE0FF001FE0FF001FE0FF001FC0FF003FC0FE003F807C00 462 | 7F003F00FE001FFFFC0007FFF00000FF80001B277DA622>I<00000E0000001E0000003E 463 | 0000007E000000FE000000FE000001FE000003FE0000077E00000E7E00000E7E00001C7E 464 | 0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E000E007E000E007E 465 | 001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE000000FE 466 | 000000FE000000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8007FFF 467 | F81D277EA622>I<180003001F801F001FFFFE001FFFFC001FFFF8001FFFF0001FFFC000 468 | 1FFF00001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C7FC000 469 | 1DFFF8001F80FC001E003F0008003F0000001F8000001FC000001FC000001FE000001FE0 470 | 18001FE07C001FE0FE001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F8078003F80 471 | 3C007F001F01FE000FFFFC0003FFF00000FF80001B277DA622>I<1C007F007F00FF80FF 472 | 80FF807F007F001C000000000000000000000000000000000000001C007F007F00FF80FF 473 | 80FF807F007F001C00091B7B9A13>58 D<00000780000000000780000000000FC0000000 474 | 000FC0000000000FC0000000001FE0000000001FE0000000003FF0000000003FF0000000 475 | 003FF00000000077F80000000077F800000000F7FC00000000E3FC00000000E3FC000000 476 | 01C1FE00000001C1FE00000003C1FF0000000380FF0000000380FF00000007007F800000 477 | 07007F8000000F007FC000000E003FC000000E003FC000001C001FE000001C001FE00000 478 | 3FFFFFF000003FFFFFF000003FFFFFF00000700007F80000700007F80000F00007FC0000 479 | E00003FC0000E00003FC0001C00001FE0001C00001FE0003C00001FF00FFFE003FFFFCFF 480 | FE003FFFFCFFFE003FFFFC2E297EA833>65 DI<00007FE0030007FFFC07001FFFFF0F007FF00F9F00 487 | FF0001FF01FC0000FF03F800007F07F000003F0FE000001F1FC000001F1FC000000F3F80 488 | 00000F3F800000077F800000077F800000077F00000000FF00000000FF00000000FF0000 489 | 0000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F000000 490 | 007F800000007F800000073F800000073F800000071FC00000071FC000000E0FE000000E 491 | 07F000001C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000 492 | 007FF00028297CA831>I72 D78 D<0000FFC00000000FFFFC0000003F807F000000FE00 507 | 1FC00001F80007E00003F00003F00007E00001F8000FE00001FC001FC00000FE001FC000 508 | 00FE003F8000007F003F8000007F007F8000007F807F0000003F807F0000003F807F0000 509 | 003F80FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000 510 | 003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000 511 | 007F807F8000007F803F8000007F003F8000007F001FC00000FE001FC00000FE000FE000 512 | 01FC0007F00003F80003F80007F00001FC000FE00000FE001FC000003FC0FF0000000FFF 513 | FC00000000FFC000002A297CA833>II<03FF80000FFFF0001F01FC003F80FE003F807F003F803F00 520 | 3F803F801F003F8000003F8000003F8000003F8000003F80003FFF8001FC3F800FE03F80 521 | 1F803F803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F807E00DF80 522 | 3F839FFC1FFE0FFC03F803FC1E1B7E9A21>97 DI<00007FF000007FF000007FF0000007F0000007F000 528 | 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 529 | 0007F0003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E 530 | 0007F07E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE 531 | 0007F07E0007F07E0007F03F0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF00 532 | 7F87FF202A7EA925>100 D<003FC00001FFF00003E07C000F803E001F801F001F001F00 533 | 3F000F807E000F807E000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000 534 | FE000000FE0000007E0000007E0000007F0000003F0001C01F0001C00F80038007C00700 535 | 03F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F8003FFC007E3E01FC7F03F87F03F0 536 | 7F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFF 537 | C007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 538 | 0007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF 539 | 80182A7EA915>I<007F80F001FFE3F807C0FE1C0F807C7C1F003E7C1F003E103F003F00 540 | 3F003F003F003F003F003F003F003F003F003F001F003E001F003E000F807C0007C0F800 541 | 05FFE0000C7F8000180000001C0000001C0000001E0000001FFFF8001FFFFF000FFFFFC0 542 | 07FFFFE003FFFFF00FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F8 543 | 7C0001F07C0001F03F0007E00FC01F8007FFFF00007FF0001E287E9A22>II<07000FC01FE03FE03FE0 549 | 3FE01FE00FC007000000000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE0 550 | 0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFE 551 | FFFEFFFE0F2B7EAA12>I108 554 | DII<003FE00001FFFC0003F07E00 563 | 0FC01F801F800FC03F0007E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE0003F8 564 | FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F03F0007E0 565 | 3F0007E01F800FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>II114 573 | D<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFF 574 | C03FFFE01FFFF007FFF800FFF80007FC0000FCE0007CE0003CF0003CF00038F80038FC00 575 | 70FF01E0E7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000 576 | F00001F00003F00003F00007F0001FFFE0FFFFE0FFFFE007F00007F00007F00007F00007 577 | F00007F00007F00007F00007F00007F00007F00007F00007F00007F07007F07007F07007 578 | F07007F07007F07007F07003F0E001F8C000FFC0003F0014267FA51A>I 582 | IIIII<3FFFFF3FFFFF3F00FE3C01FE38 598 | 03FC7803F87807F0700FF0700FE0701FC0003FC0003F80007F0000FF0000FE0001FC0703 599 | FC0703F80707F0070FF00F0FE00F1FC00E3FC01E7F803E7F00FEFFFFFEFFFFFE181B7E9A 600 | 1E>I E /Fk 47 123 df<0001FDC000070FC0000C0FC0001C0F80001C03800038038000 601 | 3803800038070000380700003807000070070007FFFE0000700E0000700E0000700E0000 602 | E01C0000E01C0000E01C0000E01C0000E0380001C0380001C0380001C0380001C0710001 603 | C0710003807100038072000380320003801C0003800000030000000700000006000000C6 604 | 000000E4000000CC000000700000001A25819C18>13 D<00030006000800180030006000 605 | C000C0018003000300060006000C000C001C001800180038003000300070007000600060 606 | 0060006000E000E000E000E000E000600060006000600060002000300010000800080010 607 | 2A7B9E11>40 D<001000100008000C000400060006000600060006000700070007000700 608 | 070006000600060006000E000E000C000C001C001800180038003000300060006000C000 609 | C001800300030006000C00180010006000C000102A809E11>I<18387838080810102040 610 | 4080050C7D830D>44 DI<3078F06005047C830D>I<060F0F 611 | 06000000000000000000003078F06008127C910D>58 D<00001800000018000000380000 612 | 00380000007800000078000000B8000001B800000138000002380000023C0000041C0000 613 | 041C0000081C0000181C0000101C0000201C0000201C00007FFC0000401C0000801C0001 614 | 801C0001001C0002001C0002001C0004000E000C000E001C001E00FF00FFC01A1D7E9C1F 615 | >65 D<01FFFE00003C0780003803C0003801C0003801C0003801C0007001C0007003C000 616 | 7003C00070078000E0070000E00E0000E03C0000FFF80001C01C0001C00E0001C00F0001 617 | C00F0003800F0003800F0003800F0003800F0007001E0007001C0007003C00070078000E 618 | 01E000FFFF80001A1C7D9B1D>I<0003F020001E0C60003002E000E003C001C001C00380 619 | 01C0070000C00E0000801E0000801C0000803C0000803C00000078000000780000007800 620 | 0000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F00008007000 621 | 08007000100038002000180040000C0180000706000001F800001B1E7A9C1E>I<01FFFF 622 | C0003C01C0003800C0003800800038008000380080007000800070008000702080007020 623 | 0000E0400000E0400000E0C00000FFC00001C0800001C0800001C0800001C08000038100 624 | 00038000000380000003800000070000000700000007000000070000000F000000FFF000 625 | 001A1C7D9B1B>70 D<0003F020001E0C60003002E000E003C001C001C0038001C0070000 626 | C00E0000801E0000801C0000803C0000803C000000780000007800000078000000F00000 627 | 00F0000000F001FFC0F0001E00F0001C00F0001C00F0001C00F0001C0070003800700038 628 | 0038003800180078000C0090000707100001F800001B1E7A9C20>I<01FFC0003C000038 629 | 0000380000380000380000700000700000700000700000E00000E00000E00000E00001C0 630 | 0001C00001C00001C0000380000380000380000380000700000700000700000700000F00 631 | 00FFE000121C7E9B10>73 D<01FFE0003C00003800003800003800003800007000007000 632 | 00700000700000E00000E00000E00000E00001C00001C00001C00001C000038008038008 633 | 0380080380100700100700300700600700E00E03C0FFFFC0151C7D9B1A>76 634 | D<01FE0007F8003E000780002E000F00002E001700002E001700002E002700004E002E00 635 | 004E004E00004E004E00004E008E00008E011C00008E011C00008E021C00008E021C0001 636 | 070438000107043800010708380001071038000207107000020720700002072070000207 637 | 407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC00251C7D 638 | 9B25>I<01FC03FE001C0070003C0060002E0040002E0040002E00400047008000470080 639 | 00470080004380800083810000838100008181000081C1000101C2000101C2000100E200 640 | 0100E2000200E4000200740002007400020074000400380004003800040038000C001800 641 | 1C001000FF8010001F1C7D9B1F>I<0007F000001C1C0000700E0000E0070001C0038003 642 | 800380070003800E0003C01E0003C01C0003C03C0003C03C0003C0780003C0780003C078 643 | 0003C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F0001E00F0003C0070 644 | 003800700070007800E0003801C0001C0380000E0E000003F800001A1E7A9C20>I<01FF 645 | FC00003C070000380380003801C0003801C0003801C0007003C0007003C0007003C00070 646 | 038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C000000380 647 | 0000038000000380000003800000070000000700000007000000070000000F000000FFE0 648 | 00001A1C7D9B1C>I<01FFF800003C0E0000380700003803800038038000380380007007 649 | 80007007800070078000700F0000E00E0000E01C0000E0700000FFC00001C0C00001C060 650 | 0001C0700001C07000038070000380700003807000038070000700F0000700F0400700F0 651 | 400700F0800F007880FFE0790000001E001A1D7D9B1E>82 D<000F8400304C00403C0080 652 | 1801001803001803001806001006001006000007000007000003E00003FC0001FF00007F 653 | 800007C00001C00001C00000C00000C02000C02000C0600180600180600300600200F004 654 | 00CC180083E000161E7D9C17>I<1FFFFFC01C0701C0300E00C0200E0080600E0080400E 655 | 0080401C0080801C0080801C0080001C0000003800000038000000380000003800000070 656 | 000000700000007000000070000000E0000000E0000000E0000000E0000001C0000001C0 657 | 000001C0000001C0000003C000007FFE00001A1C799B1E>I87 662 | D<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C 663 | 380F127B9115>97 D<3F00070007000E000E000E000E001C001C001C001C0039C03E6038 664 | 3038307038703870387038E070E070E070E060E0E0C0C0C1C0618063003C000D1D7B9C13 665 | >I<01F007080C08181C3838300070007000E000E000E000E000E000E008E010602030C0 666 | 1F000E127B9113>I<001F80000380000380000700000700000700000700000E00000E00 667 | 000E00000E0003DC00063C000C3C00181C00383800303800703800703800E07000E07000 668 | E07000E07000E0E200C0E200C0E20061E4006264003C3800111D7B9C15>I<01E007100C 669 | 1018083810701070607F80E000E000E000E000E000E0086010602030C01F000D127B9113 670 | >I<0003C0000670000C70001C60001C00001C0000380000380000380000380000380003 671 | FF8000700000700000700000700000700000E00000E00000E00000E00000E00001C00001 672 | C00001C00001C00001C000038000038000038000030000030000070000C60000E60000CC 673 | 00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C 674 | 383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D9113>I<0F 675 | C00001C00001C0000380000380000380000380000700000700000700000700000E78000E 676 | 8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C0038380070388070 677 | 3880707080707100E03200601C00111D7D9C15>I<018003800100000000000000000000 678 | 00000000001C002600470047008E008E000E001C001C001C003800380071007100710072 679 | 0072003C00091C7C9B0D>I<0006000E0006000000000000000000000000000000F00118 680 | 021802180438043800380038007000700070007000E000E000E000E001C001C001C001C0 681 | 03800380C300E700CE0078000F24819B0D>I<0FC00001C00001C0000380000380000380 682 | 000380000700000700000700000700000E0F000E11000E23800E43801C83001C80001D00 683 | 001E00003F800039C00038E00038E00070E20070E20070E20070E400E06400603800111D 684 | 7D9C13>I<1F800380038007000700070007000E000E000E000E001C001C001C001C0038 685 | 003800380038007000700070007000E400E400E400E40068003800091D7C9C0B>I<3C1E 686 | 0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C0701C01C07 687 | 01C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01C01D12 688 | 7C9122>I<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E001C 689 | 0E001C1C00381C40381C40383840383880701900300E0012127C9117>I<01E007180C0C 690 | 180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115> 691 | I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C00381 692 | 800703800703000707000706000E8C000E70000E00000E00001C00001C00001C00001C00 693 | 003C0000FF8000131A7F9115>I<3C3C26C2468747078E068E000E000E001C001C001C00 694 | 1C0038003800380038007000300010127C9112>114 D<01F006080C080C1C18181C001F 695 | 001FC00FF007F0007800386030E030C030806060C01F000E127D9111>I<00C001C001C0 696 | 01C00380038003800380FFE00700070007000E000E000E000E001C001C001C001C003840 697 | 38403840388019000E000B1A7D990E>I<1E0300270700470700470700870E00870E000E 698 | 0E000E0E001C1C001C1C001C1C001C1C003838803838801838801839001C5900078E0011 699 | 127C9116>I<1E06270E470E4706870287020E020E021C041C041C041C08180838081810 700 | 18200C4007800F127C9113>I<1E01832703874703874703838707018707010E07010E07 701 | 011C0E021C0E021C0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C 702 | >I<070E0019910010E38020E38041C30041C00001C00001C00003800003800003800003 703 | 8000070200670200E70400CB04008B080070F00011127D9113>I<1E0327074707470787 704 | 0E870E0E0E0E0E1C1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1 705 | C0818047003C00101A7C9114>I<038207C20FEC08381008001000200040008001000200 706 | 040008081008383067F043E081C00F127D9111>I E /Fl 7 118 707 | df<00100000700000F0000FF000FFF000F0F00000F00000F00000F00000F00000F00000 708 | F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 709 | F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 710 | F00000F00001F8007FFFE07FFFE013287CA71D>49 D76 D<007F0001C0E00700100E00781E00F83C00F83C00707C 716 | 0020780000F80000F80000F80000F80000F80000F80000F80000F800007800007C00003C 717 | 00083C00081E00100E002007006001C180007E00151A7E991A>99 718 | D<00FE000387800701C00E01E01C00E03C00F03C00F0780078780078F80078F80078FFFF 719 | F8F80000F80000F80000F80000F800007800007800003C00083C00081E00100E00200700 720 | 4001C180007E00151A7E991A>101 D<0787C0FF88E0FF91F00FA1F007C1F007C0E007C0 721 | 000780000780000780000780000780000780000780000780000780000780000780000780 722 | 0007800007800007800007800007C000FFFE00FFFE00141A7F9917>114 723 | D<0080000080000080000080000180000180000180000380000380000780000F80001FFF 724 | 80FFFF800780000780000780000780000780000780000780000780000780000780000780 725 | 0007800007800007804007804007804007804007804007804007804003C08001C08000E1 726 | 00003E0012257FA417>116 D<07800780FF80FF80FF80FF800F800F8007800780078007 727 | 800780078007800780078007800780078007800780078007800780078007800780078007 728 | 80078007800780078007800780078007800780078007800F8007800F800380178001C027 729 | C000E047FC003F87FC1E1A7F9921>I E /Fm 83 124 df5 733 | D<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0 734 | 000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0 735 | 000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0 736 | 000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E 737 | 00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E 738 | 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C 739 | 17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 740 | FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 741 | 0E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07E00001C09C180003 742 | 80F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E000000E00 743 | E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E0 744 | 1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C 745 | 000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<6060F0 746 | F0F8F86868080808080808101010102020404080800D0C7F9C15>34 747 | D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018 748 | 001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0 749 | 00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D 750 | 9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0 751 | 01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600 752 | 06000C000C00180010002000400080000A2A7E9E10>I<00060000000600000006000000 753 | 060000000600000006000000060000000600000006000000060000000600000006000000 754 | 060000FFFFFFE0FFFFFFE000060000000600000006000000060000000600000006000000 755 | 0600000006000000060000000600000006000000060000000600001B1C7E9720>43 756 | D<60F0F0701010101020204080040C7C830C>II<60F0F0600404 757 | 7C830C>I<00010003000600060006000C000C000C001800180018003000300030006000 758 | 6000C000C000C0018001800180030003000300060006000C000C000C0018001800180030 759 | 0030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E6006 760 | 6006E007E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C 761 | 300C18180C3007E0101D7E9B15>I<030007003F00C70007000700070007000700070007 762 | 000700070007000700070007000700070007000700070007000700070007000F80FFF80D 763 | 1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C 764 | 00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E018 765 | 30201C201C781E780E781E381E001C001C00180030006007E00030001C001C000E000F00 766 | 0F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<000C00000C00001C0000 767 | 3C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C0030 768 | 1C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001 769 | FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02430281830 770 | 1C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15 771 | >I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007 772 | E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF 773 | 807FFF007FFF0040020080040080040080080000100000100000200000600000400000C0 774 | 0000C00001C0000180000180000380000380000380000380000780000780000780000780 775 | 00078000078000030000111D7E9B15>I<03E00C301008200C2006600660066006700678 776 | 0C3E083FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C 777 | 1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E007 778 | 6007700F300F18170C2707C700060006000E300C780C78187010203030C00F80101D7E9B 779 | 15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000000000 780 | 000000000060F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE000000000 781 | 00000000000000000000000000000000000000000000000000000000FFFFFFE07FFFFFC0 782 | 1B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C000800180 783 | 0100010001000100010001000000000000000000000003000780078003000F1D7E9C14> 784 | 63 D<000600000006000000060000000F0000000F0000000F0000001780000017800000 785 | 1780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F00001 786 | 80F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C 787 | 001F001E001F00FF80FFF01C1D7F9C1F>65 DI<001F808000E0618001801980070007800E0003801C0003801C000180380001807800 791 | 00807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000 792 | 0000F0000000700000807800008078000080380000801C0001001C0001000E0002000700 793 | 04000180080000E03000001FC000191E7E9C1E>IIII<001F 802 | 808000E0618001801980070007800E0003801C0003801C00018038000180780000807800 803 | 008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F000 804 | 0F80700007807800078078000780380007801C0007801C0007800E00078007000B800180 805 | 118000E06080001F80001C1E7E9C21>III<1FFF00F800780078007800780078007800 811 | 780078007800780078007800780078007800780078007800787078F878F878F878F0F040 812 | E021C01F00101D7F9B15>IIIII<003F800000E0E0000380380007001C00 826 | 0E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0 827 | F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0 828 | 380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C 829 | 20>II<003F800000E0E000038038000700 832 | 1C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F000 833 | 01E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C07800 834 | 03C0380003803C0E07801C1107000E208E0007205C0003A0780000F0E020003FE0200000 835 | 602000003060000038E000003FC000003FC000001F8000000F001B257E9C20>II<07E0801C1980300580700380600180E00180E00080E00080 840 | E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C0 841 | 0001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17> 842 | I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F00 843 | 20000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 844 | 00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F80 845 | 0003FFFC001B1C7F9B1E>IIII<7FF0FFC00FC03E000780180003C0180003E0100001E0 857 | 200001F0600000F0400000788000007D8000003D0000001E0000001F0000000F0000000F 858 | 8000000F80000013C0000023E0000021E0000041F00000C0F8000080780001007C000300 859 | 3C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F>II< 863 | FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 864 | C0C0C0FEFE07297C9E0C>91 D<08081010202040404040808080808080B0B0F8F8787830 865 | 300D0C7A9C15>II<1FC000307000783800781C00301C0000 867 | 1C00001C0001FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F 868 | 870012127E9115>97 DI<07E00C30 871 | 1878307870306000E000E000E000E000E000E00060007004300418080C3007C00E127E91 872 | 12>I<003F00000700000700000700000700000700000700000700000700000700000700 873 | 03E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700E00700 874 | 600700700700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E60 875 | 06E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C 876 | 071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E000E00 877 | 0E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38 878 | 80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800 879 | 001FF8001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F8 880 | 00121C7F9215>II<18003C003C00 883 | 18000000000000000000000000000000FC001C001C001C001C001C001C001C001C001C00 884 | 1C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000 885 | 0000000000000000000FE000E000E000E000E000E000E000E000E000E000E000E000E000 886 | E000E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>IIII< 894 | FC7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C0380 895 | 1C03801C03801C03801C03801C0380FF9FF014127F9117>I<03F0000E1C001806003003 896 | 00700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806 897 | 000E1C0003F00012127F9115>II<03C1000C3300180B00 900 | 300F00700700700700E00700E00700E00700E00700E00700E00700600700700700300F00 901 | 180F000C370007C700000700000700000700000700000700000700000700003FE0131A7E 902 | 9116>II<1F9030704030C010C010E010F8007F803FE00FF000F8803880 904 | 18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE0 905 | 1C001C001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A 906 | 7F9910>IIII<7F8FF00F03800F030007 912 | 020003840001C80001D80000F00000700000780000F800009C00010E00020E0006070004 913 | 03801E07C0FF0FF81512809116>II<7FFC703860384070 916 | 40F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>II E /Fn 39 123 df<003FC00001F0300003C0380007C07C000F807C 918 | 000F807C000F8038000F8000000F8000000F8000000F800000FFFFFC00FFFFFC000F807C 919 | 000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C 920 | 000F807C000F807C000F807C000F807C007FE1FF807FE1FF80191D809C1B>12 921 | D<78FCFCFCFC7806067D850D>46 D<00600001E0000FE000FFE000F3E00003E00003E000 922 | 03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000 923 | 03E00003E00003E00003E00003E00003E0007FFF807FFF80111B7D9A18>49 924 | D<07F8001FFE00383F80780FC0FC07C0FC07E0FC03E0FC03E07803E00007E00007C00007 925 | C0000F80001F00001E0000380000700000E0000180600300600600600800E01FFFC03FFF 926 | C07FFFC0FFFFC0FFFFC0131B7E9A18>I<03F8001FFE003C1F003C0F807C07C07E07C07C 927 | 07C03807C0000F80000F80001E00003C0003F800001E00000F800007C00007C00007E030 928 | 07E07807E0FC07E0FC07E0FC07C0780F80781F001FFE0007F800131B7E9A18>I<000180 929 | 000380000780000F80001F80003F80006F8000CF80008F80018F80030F80060F800C0F80 930 | 180F80300F80600F80C00F80FFFFF8FFFFF8000F80000F80000F80000F80000F80000F80 931 | 01FFF801FFF8151B7F9A18>I<1801801FFF001FFE001FFC001FF8001FC0001800001800 932 | 0018000018000019F8001E0E00180F801007800007C00007E00007E00007E07807E0F807 933 | E0F807E0F807C0F007C0600F80381F001FFE0007F000131B7E9A18>I<007E0003FF0007 934 | 81800F03C01E07C03C07C03C0380780000780000F80000F8F800FB0E00FA0780FC0380FC 935 | 03C0F803E0F803E0F803E0F803E07803E07803E07803C03C03C03C07801E0F0007FE0003 936 | F800131B7E9A18>I<6000007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00 937 | C0180000300000300000600000E00000E00001E00001C00003C00003C00003C00003C000 938 | 07C00007C00007C00007C00007C00007C000038000131C7D9B18>I<03F8000FFE001E0F 939 | 803807803803C07803C07803C07E03C07F83807FC7003FFE001FFC000FFE0007FF801DFF 940 | 80387FC0781FE0F007E0F003E0F001E0F001E0F001E07801C07803803E07801FFE0003F8 941 | 00131B7E9A18>I<03F8000FFE001E0F003C07807807807803C0F803C0F803C0F803E0F8 942 | 03E0F803E0F803E07807E03807E03C0BE00E1BE003E3E00003E00003C00003C03807C07C 943 | 07807C0700780F00383C001FF8000FE000131B7E9A18>I<78FCFCFCFC78000000000000 944 | 78FCFCFCFC7806127D910D>I<00038000000380000007C0000007C0000007C000000FE0 945 | 00000FE000001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE 946 | 0000C07E0000C07E0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000F 947 | C00E000FE00C0007E0FFC07FFEFFC07FFE1F1C7E9B24>65 D68 951 | D70 D76 957 | D78 D<003FE00001F07C0003C01E000F800F801F0007C01E0003 961 | C03E0003E07E0003F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001 962 | F8FC0001F8FC0001F8FC0001F87C0001F07E0003F07E0003F03E0003E03F0007E01F0007 963 | C00F800F8003C01E0001F07C00003FE0001D1C7D9B24>II<7F 967 | FFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C01F8030C01F8030C01F8030C0 968 | 1F8030001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 969 | 1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800007FFFE0007 970 | FFFE001C1C7E9B21>84 D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007 971 | E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 972 | DI<01FC000F07001C03803C01C078 975 | 01C07801E0F801E0F801E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F 976 | 038001FC0013127F9116>101 D<007F0001E38003C7C00787C00F87C00F83800F80000F 977 | 80000F80000F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80000F 978 | 80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800121D809C0F>I< 979 | 03F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F000E0E001BF800 980 | 1000001800001800001FFF001FFFC00FFFE01FFFF07801F8F00078F00078F00078700070 981 | 7800F01E03C007FF00151B7F9118>I<1E003F003F003F003F001E000000000000000000 982 | 00000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 983 | FFE0FFE00B1E7F9D0E>105 D107 986 | DIII<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F8 993 | 00F8F800F8F800F87800F07800F03C01E01E03C00F078001FC0015127F9118>II114 998 | D<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CF 999 | C00E127E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F00 1000 | 1F001F001F001F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>I119 DII<3FFF803C1F00303F00303E00607C0060FC0060F80001F00003F00007E000 1008 | 07C1800F81801F81801F03803E03007E07007C0F00FFFF0011127F9115>I 1009 | E end 1010 | %%EndProlog 1011 | %%BeginSetup 1012 | %%Feature: *Resolution 300dpi 1013 | TeXDict begin 1014 | 1015 | %%EndSetup 1016 | %%Page: 1 1 1017 | 1 0 bop 118 35 1790 2 v 118 259 2 225 v 159 77 a Fn(6.893)16 1018 | b(Appro)o(ximabil)o(i)o(t)n(y)d(of)j(Optimizati)o(on)d(Problems)346 1019 | b Fm(Septem)o(b)q(er)15 b(8,)e(1999)882 174 y Fl(Lecture)18 1020 | b(1)159 247 y Fk(L)n(e)n(ctur)n(er:)g(Madhu)e(Sudan)870 1021 | b(Scrib)n(e:)18 b(R)n(o)n(c)n(c)n(o)d(Serve)n(dio)p 1906 1022 | 259 V 118 261 1790 2 v 75 465 a Fj(1)67 b(Course)22 b(Ov)n(erview)75 1023 | 556 y Fm(This)13 b(is)g(a)g(course)i(ab)q(out)e(the)h(appro)o(ximabili) 1024 | o(t)o(y)c(of)j(optimization)e(problems.)16 b(The)e(optimization)d 1025 | (problems)h(whic)o(h)75 605 y(w)o(e)17 b(will)d(consider)k(are)e(all)f 1026 | (\\hard")h(in)g(that)h(no)f(e\016cien)o(t)g(algorithms)e(are)j(kno)o 1027 | (wn)f(for)g(\014nding)g(optimal)d(solutions)75 655 y(\(and)j(there)i 1028 | (are)f(go)q(o)q(d)f(reasons)h(for)f(b)q(elieving)g(that)g(no)g 1029 | (e\016cien)o(t)h(algorithms)d(exist\).)26 b(Ho)o(w)o(ev)o(er,)17 1030 | b(as)g(w)o(e)f(will)f(see,)75 705 y(these)h(optimization)11 1031 | b(problems)j(lie)g(across)h(a)f(broad)g(sp)q(ectrum)h(in)f(terms)g(of)g 1032 | (ho)o(w)g(easy)h(\(or)f(di\016cult\))g(it)g(is)h(to)f(\014nd)75 1033 | 755 y Fk(appr)n(oximately)g Fm(optimal)d(solutions.)137 1034 | 805 y(The)j(course)h(will)d(start)i(out)g(with)f(some)g(p)q(ositiv)o(e) 1035 | g(results:)19 b(w)o(e)14 b(will)e(review)i(some)f(w)o(ell-kno)o(wn)f 1036 | (appro)o(ximation)75 855 y(algorithms)18 b(for)i(v)n(arious)f 1037 | (optimization)f(problems.)36 b(This)20 b(will)e(hop)q(efully)i 1038 | (highligh)o(t)e(some)h(of)h(the)h(di\013erences)75 904 1039 | y(b)q(et)o(w)o(een)15 b(\014nding)f(optimal)d(and)j(appro)o(ximate)e 1040 | (solutions)h(to)h(optimization)d(problems.)137 954 y(W)m(e)g(will)f 1041 | (then)i(sp)q(end)h(quite)e(a)h(bit)f(of)g(time)f(on)h(negativ)o(e)g 1042 | (\(nonappro)o(ximabili)o(t)o(y\))e(results,)j(whic)o(h)g(essen)o 1043 | (tially)f(sa)o(y)75 1004 y(that)k(for)g(v)n(arious)f(optimization)f 1044 | (problems)h(it)h(is)g(as)g(di\016cult)f(to)h(\014nd)h(an)f(appro)o 1045 | (ximately)d(optimal)h(solution)h(as)h(it)75 1054 y(is)e(to)h(\014nd)g 1046 | (a)f(truly)g(optimal)e(solution.)17 b(These)e(results)g(w)o(ere)f 1047 | (disco)o(v)o(ered)h(in)e(the)h(past)g(decade)h(and)e(rely)h(hea)o(vily) 1048 | e(on)75 1104 y(the)i(theory)g(of)f(probabilistic)g(pro)q(of)g(systems;) 1049 | g(a)g(large)h(comp)q(onen)o(t)e(of)h(the)h(course)h(will)d(consist)j 1050 | (of)d(dev)o(eloping)h(the)75 1153 y(theory)f(of)e(these)j(pro)q(of)e 1051 | (systems)g(and)g(exploring)f(their)i(connections)g(with)f(nonappro)o 1052 | (ximabili)o(t)o(y)l(.)k(In)c(particular,)g(w)o(e)75 1203 1053 | y(will)g(sp)q(end)j(quite)e(a)g(bit)h(of)e(time)h(studying)g 1054 | (constructions)i(of)e(probabilistically)e(c)o(hec)o(k)n(able)j(pro)q 1055 | (of)f(systems)h(\(PCP\);)75 1253 y(this)j(will)e(include)j 1056 | (error-correcting)g(co)q(des,)h(program)c(c)o(hec)o(king,)i(and)g(lo)o 1057 | (w-degree)g(testing)h(for)e(p)q(olynomials)e(and)75 1303 1058 | y(linearit)o(y)h(testing.)22 b(W)m(e)15 b(will)e(also)i(discuss)h 1059 | (complexit)o(y)d(classes)k(of)d(optimization)e(problems,)i(reductions)j 1060 | (b)q(et)o(w)o(een)75 1353 y(optimization)11 b(problems,)i(and)g(the)i 1061 | (use)g(of)e(gadgets)h(in)f(these)j(reductions.)137 1402 1062 | y(Finally)m(,)10 b(to)o(w)o(ard)h(the)h(end)g(of)f(the)h(course)h(w)o 1063 | (e)e(will)f(study)i(some)f(recen)o(t)i(appro)o(ximation)8 1064 | b(algorithms)i(whic)o(h)h(w)o(ere)75 1452 y(disco)o(v)o(ered)16 1065 | b(in)e(the)i(con)o(text)f(of)f(the)i(PCP-related)g(nonappro)o(ximabil)o 1066 | (it)o(y)11 b(theory)16 b(outlined)e(ab)q(o)o(v)o(e.)21 1067 | b(W)m(e)14 b(will)f(co)o(v)o(er)75 1502 y(Arora's)i(recen)o(t)h(p)q 1068 | (olynomial)o(-tim)o(e)c(appro)o(ximation)f(algorithm)h(for)i(the)i 1069 | (Euclidean)e(tra)o(v)o(eling)g(salesman)f(problem)75 1070 | 1552 y(in)g(the)i(plane)f(and)f(related)i(algorithms.)137 1071 | 1602 y(In)i(the)g(rest)h(of)e(to)q(da)o(y's)g(lecture)i(w)o(e)e(w)o(en) 1072 | o(t)h(o)o(v)o(er)g(some)f(of)g(the)h(history)f(of)g(com)o(binatorial)e 1073 | (optimization)g(as)i(a)75 1652 y(w)o(a)o(y)d(of)g(motiv)n(ating)e 1074 | (basic)j(de\014nitions)g(whic)o(h)g(w)o(e)g(will)e(use)j(throughout)f 1075 | (the)g(course.)75 1789 y Fj(2)67 b(Com)n(binatorial)24 1076 | b(Optimization:)31 b(A)23 b(Brief)f(History)75 1880 y 1077 | Fm(Com)o(binatorics)9 b(questions)j(deal)f(with)g(the)h(existence)h(or) 1078 | e(en)o(umeration)f(of)g(ob)r(jects)j(from)c(within)i(some)f(\014nite)h 1079 | (space,)75 1930 y(whereas)17 b(optimization)c(questions)k(are)f(ab)q 1080 | (out)g(\014nding)f(the)i(\\b)q(est")f(ob)r(ject)h(from)d(within)h(some) 1081 | g(\(not)h(necessarily)75 1979 y(\014nite\))d(space)g(of)f(candidates.) 1082 | 18 b(Com)o(binatorial)9 b(optimization)g(can)k(b)q(e)g(view)o(ed)g(as)f 1083 | (the)h(study)g(of)f(\014nding)f(the)i(\\b)q(est")75 2029 1084 | y(ob)r(ject)19 b(from)d(within)i(some)f(\014nite)i(space)g(of)f(ob)r 1085 | (jects.)32 b(In)18 b(one)g(form)f(or)h(another,)h(mathematicians)d(ha)o 1086 | (v)o(e)i(b)q(een)75 2079 y(studying)c(com)o(binatorial)d(optimization)g 1087 | (problems)i(at)g(least)h(since)h(the)g(turn)f(of)f(the)i(cen)o(tury)g 1088 | ({)e(an)h(early)g(b)q(o)q(ok)f(on)75 2129 y(the)h(sub)r(ject)g(is)f(La) 1089 | o(wler's)g Fk(Combinatorial)g(Optimization:)18 b(Networks)13 1090 | b(and)i(Matr)n(oids)e Fm(from)e(1976.)17 b(Tw)o(o)c(imp)q(ortan)o(t)75 1091 | 2179 y(topics)j(from)e(the)j(early)f(history)g(of)f(com)o(binatorial)e 1092 | (optimization)h(are)i(net)o(w)o(ork)g(\015o)o(w)g(and)g(linear)f 1093 | (programming)o(,)75 2228 y(whic)o(h)f(w)o(e)g(discuss)h(in)e(the)i 1094 | (next)f(subsection.)75 2345 y Fi(2.1)56 b(Some)17 b(Early)g(Results)75 1095 | 2421 y Fn(2.1.1)48 b(Net)o(w)o(ork)15 b(Flo)o(w)75 2498 1096 | y Fm(A)h Fk(\015ow)h(gr)n(aph)e Fm(is)h(a)g(directed)h(graph)e 1097 | Fh(G)g Fm(=)g(\()p Fh(V)r(;)7 b(E)r Fm(\))16 b(whic)o(h)f(has)h(t)o(w)o 1098 | (o)g(distinguished)f(v)o(ertices)i Fh(s)g Fm(and)e Fh(t)h 1099 | Fm(\(source)h(and)75 2548 y(sink,)e(resp)q(ectiv)o(ely\))i(and)e(where) 1100 | h(eac)o(h)g(directed)g(edge)g Fh(e)e Fg(2)g Fh(E)j Fm(has)e(an)g(asso)q 1101 | (ciated)h(nonnegativ)o(e)f(in)o(teger)h(capacit)o(y)75 1102 | 2598 y Fh(c)p Fm(\()p Fh(e)p Fm(\))p Fh(:)e Fm(A)f Fk(\015ow)h 1103 | Fm(in)f Fh(G)g Fm(is)g(a)h(function)f Fh(f)18 b Fm(from)12 1104 | b Fh(E)j Fm(to)f(the)g(nonnegativ)o(e)f(real)g(n)o(um)o(b)q(ers)h(whic) 1105 | o(h)f(satis\014es)i Fh(f)t Fm(\()p Fh(e)p Fm(\))d Fg(\024)g 1106 | Fh(c)p Fm(\()p Fh(e)p Fm(\))i(for)75 2647 y(ev)o(ery)i(edge)f 1107 | Fh(e;)g Fm(and)f(whic)o(h)h(also)f(satis\014es)i(conserv)n(ation)f(of)f 1108 | (\015o)o(w)g(\(the)i(total)e(\015o)o(w)g(in)o(to)g(eac)o(h)h(v)o 1109 | (ertex,)h(except)g(for)f Fh(s)75 2697 y Fm(and)e Fh(t)p 1110 | Fm(,)g(equals)g(the)h(total)f(\015o)o(w)g(out)g(of)g(eac)o(h)g(v)o 1111 | (ertex\);)h(the)g Fk(value)g Fm(of)f(a)g(\015o)o(w)f 1112 | Fh(f)19 b Fm(is)13 b(the)h(total)e(\015o)o(w)h(out)g(of)g 1113 | Fh(s)h Fm(min)o(us)d(the)947 2858 y(1-1)p eop 1114 | %%Page: 2 2 1115 | 2 1 bop 75 75 a Fm(total)14 b(\015o)o(w)h(in)o(to)f Fh(s:)h 1116 | Fm(The)g Fk(maximum)i(\015ow)f(pr)n(oblem)e Fm(is)h(the)h(follo)o 1117 | (wing:)h(giv)o(en)e(a)f(\015o)o(w)h(graph)g Fh(G;)f Fm(\014nd)h(a)g 1118 | (\015o)o(w)f(whic)o(h)75 125 y(ac)o(hiev)o(es)h(the)f(maxim)n(um)c(v)n 1119 | (alue.)287 129 y 1120 | 23592960 11796480 0 0 44863160 21050163 startTexFig 1121 | 287 129 a 1122 | %%BeginDocument: flow.eps 1123 | 1124 | /$F2psDict 200 dict def 1125 | $F2psDict begin 1126 | $F2psDict /mtrx matrix put 1127 | /col-1 {0 setgray} bind def 1128 | /col0 {0.000 0.000 0.000 srgb} bind def 1129 | /col1 {0.000 0.000 1.000 srgb} bind def 1130 | /col2 {0.000 1.000 0.000 srgb} bind def 1131 | /col3 {0.000 1.000 1.000 srgb} bind def 1132 | /col4 {1.000 0.000 0.000 srgb} bind def 1133 | /col5 {1.000 0.000 1.000 srgb} bind def 1134 | /col6 {1.000 1.000 0.000 srgb} bind def 1135 | /col7 {1.000 1.000 1.000 srgb} bind def 1136 | /col8 {0.000 0.000 0.560 srgb} bind def 1137 | /col9 {0.000 0.000 0.690 srgb} bind def 1138 | /col10 {0.000 0.000 0.820 srgb} bind def 1139 | /col11 {0.530 0.810 1.000 srgb} bind def 1140 | /col12 {0.000 0.560 0.000 srgb} bind def 1141 | /col13 {0.000 0.690 0.000 srgb} bind def 1142 | /col14 {0.000 0.820 0.000 srgb} bind def 1143 | /col15 {0.000 0.560 0.560 srgb} bind def 1144 | /col16 {0.000 0.690 0.690 srgb} bind def 1145 | /col17 {0.000 0.820 0.820 srgb} bind def 1146 | /col18 {0.560 0.000 0.000 srgb} bind def 1147 | /col19 {0.690 0.000 0.000 srgb} bind def 1148 | /col20 {0.820 0.000 0.000 srgb} bind def 1149 | /col21 {0.560 0.000 0.560 srgb} bind def 1150 | /col22 {0.690 0.000 0.690 srgb} bind def 1151 | /col23 {0.820 0.000 0.820 srgb} bind def 1152 | /col24 {0.500 0.190 0.000 srgb} bind def 1153 | /col25 {0.630 0.250 0.000 srgb} bind def 1154 | /col26 {0.750 0.380 0.000 srgb} bind def 1155 | /col27 {1.000 0.500 0.500 srgb} bind def 1156 | /col28 {1.000 0.630 0.630 srgb} bind def 1157 | /col29 {1.000 0.750 0.750 srgb} bind def 1158 | /col30 {1.000 0.880 0.880 srgb} bind def 1159 | /col31 {1.000 0.840 0.000 srgb} bind def 1160 | 1161 | end 1162 | save 1163 | -90.0 439.0 translate 1164 | 1 -1 scale 1165 | 1166 | /cp {closepath} bind def 1167 | /ef {eofill} bind def 1168 | /gr {grestore} bind def 1169 | /gs {gsave} bind def 1170 | /sa {save} bind def 1171 | /rs {restore} bind def 1172 | /l {lineto} bind def 1173 | /m {moveto} bind def 1174 | /rm {rmoveto} bind def 1175 | /n {newpath} bind def 1176 | /s {stroke} bind def 1177 | /sh {show} bind def 1178 | /slc {setlinecap} bind def 1179 | /slj {setlinejoin} bind def 1180 | /slw {setlinewidth} bind def 1181 | /srgb {setrgbcolor} bind def 1182 | /rot {rotate} bind def 1183 | /sc {scale} bind def 1184 | /sd {setdash} bind def 1185 | /ff {findfont} bind def 1186 | /sf {setfont} bind def 1187 | /scf {scalefont} bind def 1188 | /sw {stringwidth} bind def 1189 | /tr {translate} bind def 1190 | /tnt {dup dup currentrgbcolor 1191 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add 1192 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add 1193 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} 1194 | bind def 1195 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 1196 | 4 -2 roll mul srgb} bind def 1197 | /DrawEllipse { 1198 | /endangle exch def 1199 | /startangle exch def 1200 | /yrad exch def 1201 | /xrad exch def 1202 | /y exch def 1203 | /x exch def 1204 | /savematrix mtrx currentmatrix def 1205 | x y tr xrad yrad sc 0 0 1 startangle endangle arc 1206 | closepath 1207 | savematrix setmatrix 1208 | } def 1209 | 1210 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def 1211 | /$F2psEnd {$F2psEnteredState restore end} def 1212 | 1213 | $F2psBegin 1214 | 10 setmiterlimit 1215 | n -1000 8305 m -1000 -1000 l 13857 -1000 l 13857 8305 l cp clip 1216 | 0.06000 0.06000 sc 1217 | 45.000 slw 1218 | n 1800 4800 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 1219 | 1220 | n 4800 2400 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 1221 | 1222 | n 4800 7200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 1223 | 1224 | n 9000 7200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 1225 | 1226 | n 9000 2400 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 1227 | 1228 | n 12600 4800 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 1229 | 1230 | gs clippath 1231 | 4266 2674 m 4715 2467 l 4416 2861 l 4922 2456 l 4772 2269 l cp 1232 | clip 1233 | n 1800 4800 m 4800 2400 l gs col0 s gr gr 1234 | 1235 | n 4266 2674 m 4715 2467 l 4416 2861 l col0 s 1236 | gs clippath 1237 | 4416 6739 m 4715 7132 l 4266 6926 l 4772 7331 l 4922 7144 l cp 1238 | clip 1239 | n 1800 4800 m 4800 7200 l gs col0 s gr gr 1240 | 1241 | n 4416 6739 m 4715 7132 l 4266 6926 l col0 s 1242 | gs clippath 1243 | 4680 2988 m 4800 2508 l 4920 2988 l 4920 2340 l 4680 2340 l cp 1244 | clip 1245 | n 4800 7200 m 4800 2400 l gs col0 s gr gr 1246 | 1247 | n 4680 2988 m 4800 2508 l 4920 2988 l col0 s 1248 | gs clippath 1249 | 8412 2280 m 8892 2400 l 8412 2520 l 9060 2520 l 9060 2280 l cp 1250 | clip 1251 | n 4800 2400 m 9000 2400 l gs col0 s gr gr 1252 | 1253 | n 8412 2280 m 8892 2400 l 8412 2520 l col0 s 1254 | gs clippath 1255 | 8522 2763 m 8928 2481 l 8703 2922 l 9130 2434 l 8949 2276 l cp 1256 | clip 1257 | n 4800 7200 m 9000 2400 l gs col0 s gr gr 1258 | 1259 | n 8522 2763 m 8928 2481 l 8703 2922 l col0 s 1260 | gs clippath 1261 | 8412 7080 m 8892 7200 l 8412 7320 l 9060 7320 l 9060 7080 l cp 1262 | clip 1263 | n 4800 7200 m 9000 7200 l gs col0 s gr gr 1264 | 1265 | n 8412 7080 m 8892 7200 l 8412 7320 l col0 s 1266 | gs clippath 1267 | 9120 6612 m 9000 7092 l 8880 6612 l 8880 7260 l 9120 7260 l cp 1268 | clip 1269 | n 9000 2400 m 9000 7200 l gs col0 s gr gr 1270 | 1271 | n 9120 6612 m 9000 7092 l 8880 6612 l col0 s 1272 | gs clippath 1273 | 12044 5026 m 12510 4859 l 12177 5226 l 12716 4867 l 12583 4667 l cp 1274 | clip 1275 | n 9000 7200 m 12600 4800 l gs col0 s gr gr 1276 | 1277 | n 12044 5026 m 12510 4859 l 12177 5226 l col0 s 1278 | gs clippath 1279 | 12177 4374 m 12510 4740 l 12044 4574 l 12583 4933 l 12716 4733 l cp 1280 | clip 1281 | n 9000 2400 m 12600 4800 l gs col0 s gr gr 1282 | 1283 | n 12177 4374 m 12510 4740 l 12044 4574 l col0 s 1284 | /Times-Roman ff 360.00 scf sf 1285 | 1500 4650 m 1286 | gs 1 -1 sc (s) col0 sh gr 1287 | /Times-Roman ff 360.00 scf sf 1288 | 12750 4575 m 1289 | gs 1 -1 sc (t) col0 sh gr 1290 | /Times-Roman ff 360.00 scf sf 1291 | 2925 3600 m 1292 | gs 1 -1 sc (8) col0 sh gr 1293 | /Times-Roman ff 360.00 scf sf 1294 | 2850 6375 m 1295 | gs 1 -1 sc (15) col0 sh gr 1296 | /Times-Roman ff 360.00 scf sf 1297 | 4950 4800 m 1298 | gs 1 -1 sc (4) col0 sh gr 1299 | /Times-Roman ff 360.00 scf sf 1300 | 6450 2250 m 1301 | gs 1 -1 sc (11) col0 sh gr 1302 | /Times-Roman ff 360.00 scf sf 1303 | 6675 4650 m 1304 | gs 1 -1 sc (7) col0 sh gr 1305 | /Times-Roman ff 360.00 scf sf 1306 | 6900 6975 m 1307 | gs 1 -1 sc (2) col0 sh gr 1308 | /Times-Roman ff 360.00 scf sf 1309 | 9225 4800 m 1310 | gs 1 -1 sc (3) col0 sh gr 1311 | /Times-Roman ff 360.00 scf sf 1312 | 10875 3450 m 1313 | gs 1 -1 sc (3) col0 sh gr 1314 | /Times-Roman ff 360.00 scf sf 1315 | 10575 5850 m 1316 | gs 1 -1 sc (6) col0 sh gr 1317 | $F2psEnd 1318 | rs 1319 | 1320 | 1321 | 1322 | 1323 | %%EndDocument 1324 | 1325 | endTexFig 1326 | 544 990 a Fm(Figure)k(1:)k(A)c(\015o)o(w)f(graph)h(with)f(capacitated) 1327 | i(edges.)137 1132 y(A)o(t)d(\014rst)h(this)e(problem)g(migh)o(t)e(not)j 1328 | (seem)f(lik)o(e)g(a)h(com)o(binatorial)c(optimization)h(problem)i(at)g 1329 | (all)g({)g(since)h(a)g(\015o)o(w)f(is)75 1182 y(a)g(real-v)n(alued)f 1330 | (function,)g(it)h(migh)o(t)e(seem)h(as)h(if)f(w)o(e)h(are)g(searc)o 1331 | (hing)h(an)e(in\014nite)h(space)h(rather)g(than)e(a)h(\014nite)g(one.) 1332 | 17 b(F)m(ord)75 1231 y(and)e(F)m(ulk)o(erson)g(studied)h(this)f 1333 | (problem)f(in)h(the)h(1950s)e(and)h(sho)o(w)o(ed)h(that)f(in)g(fact)g 1334 | (it)g(is)g(a)g(discrete)i(com)o(binatorial)75 1281 y(problem)d(\(one)h 1335 | (need)h(only)f(consider)h(in)o(teger-v)n(alued)e(\015o)o(ws,)h(of)g 1336 | (whic)o(h)g(there)h(are)g(a)e(\014nite)i(n)o(um)o(b)q(er)e(for)h(an)o 1337 | (y)f(giv)o(en)75 1331 y(\015o)o(w)h(graph\).)21 b(They)16 1338 | b(ga)o(v)o(e)e(an)h(algorithm)e(whic)o(h)i(alw)o(a)o(ys)f(succeeds)j 1339 | (in)e(\014nding)g(the)g(maxim)o(um)10 b(\015o)o(w,)15 1340 | b(and)g(pro)o(v)o(ed)75 1381 y(the)f Fk(max-\015ow-min-cut)g 1341 | Fm(theorem,)f(whic)o(h)h(asserts)h(that)f(the)g(v)n(alue)f(of)h(the)g 1342 | (maxim)n(um)9 b(\015o)o(w)14 b(equals)f(the)i(size)f(of)f(the)75 1343 | 1431 y(minim)n(um)d(cut)k(in)g(the)g(graph.)75 1539 y 1344 | Fn(2.1.2)48 b(Linear)14 b(Programming)75 1615 y Fm(Linear)j 1345 | (programming)d(is)i(another)i(classical)f(com)o(binatorial)d 1346 | (optimization)g(problem.)27 b(An)17 b(instance)h(of)e(the)i(lin-)75 1347 | 1665 y(ear)f(programming)c(problem)j(is)g(an)h Fh(n)p 1348 | Fm(-dimensional)d(v)o(ector)k Fh(c;)e Fm(an)g Fh(n)p 1349 | Fm(-b)o(y-)p Fh(m)p Fm(-dimensional)e(matrix)h Fh(A;)i 1350 | Fm(and)f(an)h Fh(m)p Fm(-)75 1715 y(dimensional)f(v)o(ector)k 1351 | Fh(b)e Fm(\(all)f(v)o(ectors)j(and)e(matrices)g(are)h(o)o(v)o(er)g(the) 1352 | g(real)g(n)o(um)o(b)q(ers\).)32 b(The)19 b(linear)f(programmi)o(ng)75 1353 | 1765 y(problem)g(is)g(the)i(follo)o(wing:)25 b(\014nd)19 1354 | b(an)g Fh(n)p Fm(-dimensional)d(v)o(ector)k Fh(x)f Fm(whic)o(h)f 1355 | (maximi)o(zes)1492 1733 y Ff(P)1536 1744 y Fe(n)1536 1356 | 1777 y(i)p Fd(=1)1599 1765 y Fh(c)1617 1771 y Fe(i)1631 1357 | 1765 y Fh(x)1655 1771 y Fe(i)1687 1765 y Fm(sub)r(ject)j(to)d(the)75 1358 | 1814 y(constrain)o(ts)287 1783 y Ff(P)330 1794 y Fe(n)330 1359 | 1827 y(i)p Fd(=1)393 1814 y Fh(A)424 1820 y Fe(ij)454 1360 | 1814 y Fh(x)478 1820 y Fe(i)503 1814 y Fg(\024)11 b Fh(b)564 1361 | 1820 y Fe(j)596 1814 y Fm(for)i Fh(j)h Fm(=)e(1)p Fh(;)7 1362 | b(:)g(:)g(:)t(;)g(m:)137 1864 y Fm(Here)12 b(to)q(o,)e(it)g(seems)g(at) 1363 | g(\014rst)h(that)g(w)o(e)f(are)h(searc)o(hing)f(a)g(con)o(tin)o(uous)g 1364 | (space)i(rather)f(than)f(a)g(discrete)i(one.)17 b(Dan)o(tzig)75 1365 | 1914 y(and)e(V)m(on)g(Neumann)f(realized)i(that)f(the)h(maxim)n(um)11 1366 | b(v)n(alue)k(m)o(ust)f(o)q(ccur)i(at)f(a)g(v)o(ertex)i(of)d(the)i 1367 | (simplex)e(de\014ned)i(b)o(y)75 1964 y(the)d(constrain)o(t)g(h)o(yp)q 1368 | (erplanes,)g(and)g(that)f(hence)i(the)f(searc)o(h)h(space)f(is)g(in)f 1369 | (fact)g(a)h(\014nite)f(one.)18 b(Dan)o(tzig)12 b(prop)q(osed)h(the)75 1370 | 2014 y Fk(simplex)h Fm(algorithm)d(and)j(pro)o(v)o(ed)g(that)g(it)f 1371 | (will)f(alw)o(a)o(ys)h(succeed)j(in)e(\014nding)f(an)h(optimal)d 1372 | (solution.)75 2130 y Fi(2.2)56 b(The)18 b(Imp)r(ortance)e(of)j(P)n 1373 | (olynomial)e(Time)75 2206 y Fm(Neither)g(F)m(ord)e(and)g(F)m(ulk)o 1374 | (erson's)h(original)e(algorithm)f(for)i(net)o(w)o(ork)h(\015o)o(w)f 1375 | (nor)h(Dan)o(tzig's)e(simplex)g(algorithm)f(will)75 2256 1376 | y(alw)o(a)o(ys)18 b(run)i(in)f(time)e(p)q(olynomial)f(in)j(the)h 1377 | (description)g(length)f(of)g(the)g(input)g(instance.)35 1378 | b(Ho)o(w)o(ev)o(er,)21 b(these)f(t)o(w)o(o)75 2306 y(algorithms)e(w)o 1379 | (ere)j(not)e(c)o(hallenged)h(as)g(ine\016cien)o(t)g(for)g(man)o(y)e(y)o 1380 | (ears,)k(b)q(ecause)f(p)q(olynomial)c(running)i(time)g(had)75 1381 | 2356 y(not)d(y)o(et)g(b)q(een)h(equated)f(with)g(algorithmic)d 1382 | (e\016ciency)m(.)24 b(In)16 b(1965)f(Jac)o(k)h(Edmonds)f(wrote)i(a)e 1383 | (pap)q(er)i(titled)e(\\P)o(aths,)75 2406 y(trees,)j(and)d(\015o)o(w)o 1384 | (ers")h(whic)o(h)g(underscored)i(the)f(imp)q(ortance)e(of)g(p)q 1385 | (olynomial)d(run)o(time.)23 b(In)16 b(this)g(pap)q(er)h(he)f(ga)o(v)o 1386 | (e)f(a)75 2456 y(relativ)o(ely)f(in)o(tricate)h(algorithm)d(for)i 1387 | (\014nding)g(a)g(p)q(erfect)j(matc)o(hing)12 b(in)j(a)f(non)o 1388 | (bipartite)g(graph.)20 b(Edmonds)14 b(p)q(oin)o(ted)75 1389 | 2505 y(out)e(that)h(while)f(this)h(problem)e(could)h(b)q(e)i(trivially) 1390 | c(solv)o(ed)j(b)o(y)f(brute)h(force)g(searc)o(h,)h(suc)o(h)f(an)g 1391 | (approac)o(h)f(w)o(ould)g(tak)o(e)75 2555 y(exp)q(onen)o(tial)f(time,)g 1392 | (whereas)i(his)e(algorithm)f(required)i(only)f(p)q(olynomial)e(time.)15 1393 | b(In)d(a)g(companion)d(pap)q(er)k(Edmonds)947 2708 y(1-2)p 1394 | eop 1395 | %%Page: 3 3 1396 | 3 2 bop 75 75 a Fm(drew)14 b(a)e(distinction)h(b)q(et)o(w)o(een)h 1397 | (problems)e(for)g(whic)o(h)h(p)q(olynomial)c(time)j(algorithms)e(w)o 1398 | (ere)k(kno)o(wn)f(\(suc)o(h)g(as)g(p)q(erfect)75 125 1399 | y(matc)o(hings\))i(and)i(problems)f(for)g(whic)o(h)h(no)g(suc)o(h)g 1400 | (algorithms)e(w)o(ere)i(kno)o(wn)g(\(suc)o(h)g(as)g(Hamiltonian)d 1401 | (paths\))j(and)75 175 y(conjectured)f(that)e(no)f(p)q(olynomial-ti)o(m) 1402 | o(e)e(algorithm)h(exists)i(for)g(the)g(latter)g(problem.)75 1403 | 291 y Fi(2.3)56 b(Early)17 b(History)h(of)h(NP)75 368 1404 | y Fm(In)13 b(1971)f(Stephen)j(Co)q(ok)d(published)h(his)g(imp)q(ortan)o 1405 | (t)f(pap)q(er)i(\\The)f(complexit)o(y)e(of)i(theorem-pro)o(ving)e(pro)q 1406 | (cedures,")75 417 y(in)16 b(whic)o(h)f(he)i(formally)c(de\014ned)k(the) 1407 | f(class)h(NP)f(and)g(in)o(tro)q(duced)h(the)f(notion)g(of)f 1408 | (NP-completeness.)25 b(He)17 b(sho)o(w)o(ed)75 467 y(that)c(the)g 1409 | (satis\014abilit)o(y)e(problem)g(is)h(NP-complete,)g(th)o(us)h(pro)o 1410 | (ving)f(that)g(it)g(is)h(as)f(hard)h(as)f(the)h(hardest)h(language)d 1411 | (in)75 517 y(NP)m(.)k(Shortly)h(afterw)o(ards,)h(Ric)o(hard)e(Karp)h 1412 | (en)o(umerated)h(man)o(y)d(com)o(binatorial)f(problems)i(\(including)g 1413 | (CLIQUE,)75 567 y(GRAPH)c(COLORING,)h(VER)m(TEX)f(CO)o(VER,)h(TSP)m(,)f 1414 | (BIN)h(P)m(A)o(CKING,)f(and)h(P)m(AR)m(TITION\))f(and)h(pro)o(v)o(ed)g 1415 | (that)g(all)75 617 y(these)j(problems)d(are)h(NP-complete.)18 1416 | b(A)o(t)13 b(appro)o(ximately)d(the)k(same)e(time,)g(Leonid)h(Levin)g 1417 | (\(then)h(in)e(the)i(U.S.S.R.\))75 666 y(published)h(a)g(pap)q(er)h 1418 | (whic)o(h)f(established)h(v)o(ery)g(similar)c(results.)23 1419 | b(\(In)16 b(addition)e(to)h(these)i(results,)f(in)e(his)i(t)o(w)o 1420 | (o-page)75 716 y(pap)q(er)e(Levin)f(also)g(ga)o(v)o(e)g(an)g(algorithm) 1421 | e(for)i(the)h(satis\014abilit)o(y)e(problem)g(whic)o(h)h(is)g(pro)o(v)n 1422 | (ably)f(optimal;)f(the)j(hitc)o(h)f(is)75 766 y(that)f(it)f(is)g 1423 | (totally)g(unclear)h(ho)o(w)f(to)h(analyze)f(its)h(running)f(time.\))16 1424 | b(The)c(publication)f(of)g(Levin's)g(results)i(w)o(as)e(sligh)o(tly)75 1425 | 816 y(dela)o(y)o(ed)17 b(b)q(ecause)h(in)f(addition)f(to)h(the)g 1426 | (problems)f(whic)o(h)h(he)g(did)g(sho)o(w)g(w)o(ere)h(NP-complete)e(he) 1427 | i(also)e(w)o(an)o(ted)h(to)75 866 y(pro)o(v)o(e)g(that)g(linear)g 1428 | (programmi)o(ng,)d(primalit)o(y)m(,)g(and)j(graph)g(isomorphism)c(are) 1429 | 18 b(NP-complete)e(as)h(w)o(ell.)27 b(W)m(e)16 b(no)o(w)75 1430 | 915 y(ha)o(v)o(e)e(stronge)g(evidence)i(that)d(these)j(problems)d(are)h 1431 | (not)g(NP-complete.)75 1053 y Fj(3)67 b(NP)22 b(and)h(NP-Completeness) 1432 | 75 1144 y Fm(A)e Fk(language)g Fm(is)f(a)h(collection)f(of)g(binary)g 1433 | (strings)h Fh(L)h Fg(\022)h(f)p Fm(0)p Fh(;)7 b Fm(1)p 1434 | Fg(g)1124 1129 y Fc(\003)1142 1144 y Fh(:)20 b Fm(\(No)g(real)h(loss)f 1435 | (of)g(generalit)o(y)g(is)h(incurred)g(b)o(y)75 1194 y(restricting)d 1436 | (ourselv)o(es)g(to)f(a)f(binary)h(alphab)q(et)f(since)i(an)o(y)f 1437 | (\014nite)g(alphab)q(et)g(can)g(b)q(e)g(e\016cien)o(tly)g(enco)q(ded)i 1438 | (using)d(a)75 1243 y(binary)d(alphab)q(et.\))19 b(The)14 1439 | b(class)g(NP)g(is)g(de\014ned)h(as)f(follo)o(ws:)75 1335 1440 | y Fn(De\014nitio)o(n)f(1)21 b Fk(A)15 b(language)h Fh(L)f 1441 | Fk(is)g(in)h(NP)f(if)g(ther)n(e)g(is)g(a)g(p)n(olynomial-time)g 1442 | (machine)h Fh(M)k Fk(such)c(that)f(for)g(any)h(input)75 1443 | 1384 y Fh(x)11 b Fg(2)g(f)p Fm(0)p Fh(;)c Fm(1)p Fg(g)252 1444 | 1369 y Fc(\003)270 1384 y Fh(;)137 1467 y Fg(\017)21 1445 | b Fk(If)14 b Fh(x)e Fg(2)f Fh(L)k Fk(then)g Fh(M)5 b 1446 | Fm(\()p Fh(x;)i(y)q Fm(\))15 b Fk(ac)n(c)n(epts)g(for)g(some)g 1447 | Fh(y)e Fg(2)e(f)p Fm(0)p Fh(;)c Fm(1)p Fg(g)1077 1452 1448 | y Fc(\003)1110 1467 y Fk(with)14 b Fg(j)p Fh(y)q Fg(j)h 1449 | Fk(b)n(ounde)n(d)h(by)f(a)g(p)n(olynomial)g(in)g Fg(j)p 1450 | Fh(x)p Fg(j)p Fm(;)137 1551 y Fg(\017)21 b Fk(If)14 b 1451 | Fh(x)i(=)-25 b Fg(2)11 b Fh(L)k Fk(then)g Fh(M)5 b Fm(\()p 1452 | Fh(x;)i(y)q Fm(\))15 b Fk(r)n(eje)n(cts)f(for)g(al)r(l)h 1453 | Fh(y)e Fg(2)e(f)p Fm(0)p Fh(;)c Fm(1)p Fg(g)1018 1535 1454 | y Fc(\003)1036 1551 y Fh(:)137 1642 y Fm(The)15 b(\\standard")f 1455 | (de\014nition)f(of)g(NP)i(is)f(that)g(it)f(is)h(the)h(class)f(of)f 1456 | (languages)h(recognizable)g(in)g(nondeterministic)75 1457 | 1692 y(p)q(olynomial)d(time.)19 b(This)c(de\014nition)f(is)g(easily)h 1458 | (seen)g(to)g(b)q(e)g(equiv)n(alen)o(t)f(to)h(the)g(one)g(w)o(e)g(ha)o 1459 | (v)o(e)f(giv)o(en;)g(w)o(e)h(note)g(that)75 1741 y(in)g(our)h 1460 | (de\014nition)f(nondeterminism)e(is)i(captured)i(b)o(y)e(the)i 1461 | (condition)d(that)i(there)h(m)o(ust)d(exist)i Fk(some)g 1462 | Fm(short)g(string)75 1791 y Fh(y)g Fm(whic)o(h)f(causes)h 1463 | Fh(M)j Fm(to)c(accept)g(input)g Fh(x:)f Fm(It)g(is)h(useful)f(to)h 1464 | (think)f(of)g Fh(y)i Fm(as)f(a)f(\\short)h(pro)q(of)s(")f(that)h 1465 | Fh(x)f Fm(b)q(elongs)h(to)f(the)75 1841 y(language)d 1466 | Fh(L)h Fm(and)f(to)h(view)f(the)h(computation)e(of)h 1467 | Fh(M)17 b Fm(on)11 b Fh(x;)c(y)13 b Fm(as)e(a)h(v)o(eri\014cation)f(of) 1468 | g(this)h(pro)q(of.)17 b(Note)12 b(that)g(languages)75 1469 | 1891 y(in)i(NP)h(are)f(somewhat)g(one-sided;)g(if)g Fh(x)e 1470 | Fg(2)g Fh(L)j Fm(then)g(there)g(is)f(a)h(short)f(pro)q(of)g(that)h 1471 | Fh(x)d Fg(2)g Fh(L;)i Fm(but)h(if)e Fh(x)k(=)-26 b Fg(2)12 1472 | b Fh(L)j Fm(then)g(there)75 1941 y(ma)o(y)d(not)i(exist)g(an)o(y)f 1473 | (short)i(pro)q(of)e(that)h Fh(x)i(=)-25 b Fg(2)11 b Fh(L:)75 1474 | 2057 y Fi(3.1)56 b(Examples)16 b(of)j(Languages)g(in)f(NP)75 1475 | 2134 y Fm(Our)d(\014rst)h(example)d(of)h(a)g(language)g(in)g(NP)h(is)g 1476 | (the)g(language)f(3SA)m(T.)f(An)i(instance)g(of)f(3SA)m(T)g(is)h(a)f 1477 | (collection)h(of)f Fh(m)75 2183 y Fm(clauses)f Fh(C)242 1478 | 2189 y Fd(1)261 2183 y Fh(;)7 b(:)g(:)g(:)t(;)g(C)383 1479 | 2189 y Fe(m)414 2183 y Fh(;)12 b Fm(where)h(eac)o(h)g(clause)g 1480 | Fh(C)799 2189 y Fe(j)829 2183 y Fm(is)f(of)g(the)h(form)d 1481 | Fh(x)1105 2189 y Fe(i)1117 2193 y Fb(1)1141 2183 y Fg(_)c 1482 | Fh(x)1199 2189 y Fe(i)1211 2193 y Fb(2)1235 2183 y Fg(_)p 1483 | 1269 2160 24 2 v 6 w Fh(x)1292 2189 y Fe(i)1304 2193 1484 | y Fb(3)1335 2183 y Fm(for)12 b(some)f Fh(i)1513 2189 1485 | y Fd(1)1532 2183 y Fh(;)c(i)1565 2189 y Fd(2)1584 2183 1486 | y Fh(;)g(i)1617 2189 y Fd(3)1646 2183 y Fg(2)12 b(f)p 1487 | Fm(1)p Fh(;)7 b(:)g(:)g(:)t(;)g(n)p Fg(g)p Fh(:)k Fm(\(Of)75 1488 | 2233 y(course,)i(this)e(is)g(all)g(represen)o(ted)j(using)d(some)g 1489 | (\014xed)g(reasonable)h(represen)o(tation)h(sc)o(heme)f(o)o(v)o(er)f(a) 1490 | g(binary)g(alphab)q(et\).)75 2283 y(A)f(collection)f(of)g(clauses)i 1491 | Fh(\036)g Fm(=)h Fh(C)584 2289 y Fd(1)603 2283 y Fh(;)7 1492 | b(:)g(:)g(:)t(;)g(C)725 2289 y Fe(m)766 2283 y Fm(b)q(elongs)j(to)f 1493 | (the)i(language)e(3SA)m(T)g(if)g(there)i(is)e(some)g(assignmen)o(t)g 1494 | (of)g(TR)o(UE)75 2333 y(and)k(F)-5 b(ALSE)14 b(to)g(the)f(v)n(ariables) 1495 | g Fh(x)616 2339 y Fd(1)634 2333 y Fh(;)7 b(:)g(:)g(:)e(;)i(x)751 1496 | 2339 y Fe(n)786 2333 y Fm(whic)o(h)14 b(sim)o(ultaneously)d 1497 | (satis\014es)j(eac)o(h)g(of)f(the)h Fh(m)f Fm(clauses)i 1498 | Fh(C)1767 2339 y Fd(1)1785 2333 y Fh(;)7 b(:)g(:)g(:)e(;)i(C)1908 1499 | 2339 y Fe(m)1938 2333 y Fh(:)75 2383 y Fm(T)m(o)13 b(see)j(that)e(the)g 1500 | (language)f(3SA)m(T)h(is)g(in)f(NP)m(,)h(w)o(e)g(note)g(that)h(the)f 1501 | (desired)h(mac)o(hine)e Fh(M)19 b Fm(tak)o(es)14 b(as)g(its)g(t)o(w)o 1502 | (o)g(inputs)g Fh(\036)75 2432 y Fm(\(a)h(represen)o(tation)i(of)e(the)h 1503 | (3SA)m(T)f(form)o(ula\))e(and)i Fh(y)i Fm(\(a)f(represen)o(tation)h(of) 1504 | d(the)i(truth)g(assignmen)o(t)f(to)g Fh(x)1777 2438 y 1505 | Fd(1)1795 2432 y Fh(;)7 b(:)g(:)g(:)e(;)i(x)1912 2438 1506 | y Fe(n)1934 2432 y Fm(\))75 2482 y(and)14 b(simply)e(v)o(eri\014es)j 1507 | (that)f(under)h(the)g(giv)o(en)f(truth)h(assignmen)o(t,)d(ev)o(ery)j 1508 | (clause)g(is)f(satis\014ed.)20 b(This)14 b(can)g(clearly)g(b)q(e)75 1509 | 2532 y(done)g(in)g(p)q(olynomial)c(time.)947 2708 y(1-3)p 1510 | eop 1511 | %%Page: 4 4 1512 | 4 3 bop 137 75 a Fm(Another)19 b(in)o(teresting)f(language)f(in)g(NP)h 1513 | (is)g(the)g(language)f(SHOR)m(TPR)o(OOF.)g(Fix)h(some)e(formal)g 1514 | (system)h(for)75 125 y(expressing)i(mathematical)14 b(statemen)o(ts:)26 1515 | b(the)18 b(language)e(SHOR)m(TPR)o(OOF)i(consists)g(of)f(those)h 1516 | (statemen)o(ts)g Fh(S)i Fm(in)75 175 y(the)14 b(formal)c(system)j(whic) 1517 | o(h)g(ha)o(v)o(e)g(the)h(prop)q(ert)o(y)g(that)f(there)i(is)e(a)g(pro)q 1518 | (of)g(of)f Fh(S)k Fm(in)d(the)h(formal)c(system)j(whose)h(length)75 1519 | 225 y(is)f(b)q(ounded)g(b)o(y)g(a)f(p)q(olynomial)e(in)i(the)h(length)g 1520 | (of)f Fh(S:)h Fm(\(W)m(e)g(ha)o(v)o(e)f(describ)q(ed)j(the)f(language)d 1521 | (SHOR)m(TPR)o(OOF)i(rather)75 274 y(informally;)f(it)j(is)g(tedious)h 1522 | (but)f(straigh)o(tforw)o(ard)g(to)g(giv)o(e)g(a)g(completely)f 1523 | (rigorous)h(description.\))23 b(It)15 b(is)g(clear)h(that)75 1524 | 324 y(SHOR)m(TPR)o(OOF)h(is)h(in)f(NP)h({)f(the)h(string)f 1525 | Fh(y)j Fm(is)d(simply)f(the)i(pro)q(of)f(of)g(statemen)o(t)g 1526 | Fh(S)j Fm(and)e(the)g(p)q(olynomial)o(-tim)o(e)75 374 1527 | y(mac)o(hine)12 b(w)o(orks)i(b)o(y)g(v)o(erifying)e(that)i 1528 | Fh(y)i Fm(is)d(a)h(v)n(alid)e(pro)q(of)h(of)g Fh(S)k 1529 | Fm(according)d(to)f(the)i(rules)f(of)f(the)h(formal)e(system.)17 1530 | b(W)m(e)75 424 y(note)c(that)f(a)h(p)q(olynomial)o(-tim)n(e)d 1531 | (algorithm)g(for)i(recognizing)h(mem)o(b)q(ership)e(in)h(SHOR)m(TPR)o 1532 | (OOF)g(w)o(ould)g(essen)o(tially)75 474 y(put)j(all)e(mathematicians)e 1533 | (out)k(of)e(business)j({)e(suc)o(h)h(an)f(algorithm)e(could)i(b)q(e)h 1534 | (used)h(to)e(\014nd)g(a)g(short)h(pro)q(of)f(for)g(an)o(y)75 1535 | 523 y(mathematical)d(statemen)o(t)i(whic)o(h)h(has)g(a)g(short)g(pro)q 1536 | (of,)f(and)h(this)g(is)g(more)f(or)g(less)i(exactly)f(what)g 1537 | (mathematicians)75 573 y(do)g(\(or)g(try)g(to)g(do\).)75 1538 | 686 y Fi(3.2)56 b(Reductions)17 b(and)j(NP-Completeness)75 1539 | 763 y Fm(Although)14 b(3SA)m(T)f(seems)i(v)o(ery)f(\\com)o(binatorial") 1540 | d(and)j(SHOR)m(TPR)o(OOF)g(seems)g(v)o(ery)g(\\logical,")e(these)k 1541 | (languages)75 812 y(are)f(equiv)n(alen)o(t)g(in)f(an)h(imp)q(ortan)o(t) 1542 | e(sense)k(since)f(b)q(oth)f(are)g(NP-complete.)22 b(T)m(o)14 1543 | b(de\014ne)i(NP-completeness)g(w)o(e)f(need)75 862 y(the)f(notion)g(of) 1544 | f(a)h Fk(r)n(e)n(duction)f Fm(b)q(et)o(w)o(een)j(languages.)75 1545 | 934 y Fn(De\014nitio)o(n)d(2)21 b Fk(L)n(et)16 b Fh(L)444 1546 | 940 y Fd(1)463 934 y Fh(;)7 b(L)510 940 y Fd(2)544 934 1547 | y Fk(b)n(e)17 b(languages.)24 b(We)17 b(say)g(that)f 1548 | Fh(L)1072 940 y Fd(1)1106 934 y Fm(reduces)i(to)d Fh(L)1336 1549 | 940 y Fd(2)1371 934 y Fm(in)g(p)q(olynomial)d(time)j 1550 | Fk(\(abbr)n(eviate)n(d)75 984 y Fh(L)103 990 y Fd(1)134 1551 | 984 y Fg(\024)d Fh(L)206 990 y Fd(2)225 984 y Fk(\))j(if)g(ther)n(e)f 1552 | (is)h(a)g(p)n(olynomial-time)g(algorithm)f Fh(f)20 b 1553 | Fk(such)c(that)f Fg(8)p Fh(x)d Fg(2)f(f)p Fm(0)p Fh(;)c 1554 | Fm(1)p Fg(g)1393 969 y Fc(\003)1426 984 y Fk(we)15 b(have)g 1555 | Fh(x)d Fg(2)g Fh(L)1687 990 y Fd(1)1730 984 y Fg(\()-7 1556 | b(\))23 b Fh(f)t Fm(\()p Fh(x)p Fm(\))12 b Fg(2)75 1034 1557 | y Fh(L)103 1040 y Fd(2)122 1034 y Fh(:)75 1105 y Fm(If)j 1558 | Fh(L)146 1111 y Fd(1)180 1105 y Fg(\024)g Fh(L)255 1111 1559 | y Fd(2)290 1105 y Fm(then)h(a)g(p)q(olynomial)o(-tim)n(e)e(algorithm)f 1560 | (for)i(determining)g(mem)o(b)q(ership)f(in)h Fh(L)1536 1561 | 1111 y Fd(2)1571 1105 y Fm(implies)f(the)i(existence)75 1562 | 1155 y(of)d(a)g(p)q(olynomial)o(-tim)n(e)e(algorithm)f(for)j(mem)o(b)q 1563 | (ership)f(in)h Fh(L)1024 1161 y Fd(1)1056 1155 y Fm(as)g(w)o(ell:)k 1564 | (giv)o(en)c(a)g(string)g Fh(x)g Fm(for)g(whic)o(h)g(mem)o(b)q(ership)e 1565 | (in)75 1205 y Fh(L)103 1211 y Fd(1)136 1205 y Fm(is)i(to)h(b)q(e)h 1566 | (determined,)e(simply)f(run)i(the)h(algorithm)c(for)i(mem)o(b)q(ership) 1567 | g(in)g Fh(L)1356 1211 y Fd(2)1389 1205 y Fm(on)g(the)i(string)f 1568 | Fh(f)t Fm(\()p Fh(x)p Fm(\))p Fh(:)75 1276 y Fn(De\014nitio)o(n)f(3)21 1569 | b Fk(A)c(language)h Fh(L)f Fk(is)g Fm(NP-hard)h Fk(if)f(for)f(every)i 1570 | Fh(L)1082 1261 y Fc(0)1111 1276 y Fk(in)f(NP)g(we)g(have)h 1571 | Fh(L)1430 1261 y Fc(0)1458 1276 y Fg(\024)e Fh(L:)h Fk(A)g(language)h 1572 | Fh(L)g Fk(is)f Fm(NP-)75 1326 y(complete)d Fk(if)h Fh(L)c 1573 | Fg(2)h Fh(N)5 b(P)20 b Fk(and)15 b Fh(L)g Fk(is)g(NP-har)n(d.)137 1574 | 1398 y Fm(Th)o(us)k(an)f(NP-complete)g(language)f(is)i(at)f(least)g(as) 1575 | h(hard)f(as)h(an)o(y)e(language)h(in)g(NP)m(.)g(A)g(ma)r(jor)f(ac)o 1576 | (hiev)o(emen)o(t)75 1448 y(of)i(theoretical)h(computer)g(science)h(in)e 1577 | (the)h(1970s)f(w)o(as)h(the)g(disco)o(v)o(ery)g(that)g(man)o(y)e(imp)q 1578 | (ortan)o(t)f(computational)75 1498 y(problems)c(are)h(NP-complete,)f 1579 | (including)g(3SA)m(T,)g(SHOR)m(TPR)o(OOF)h(and)f(man)o(y)f(NP)j 1580 | (optimization)c(problems.)75 1610 y Fi(3.3)56 b(NP)18 1581 | b(Optimization)f(Problems)75 1687 y Fm(An)d(NP)g(optimization)d 1582 | (problem)h(is)i(describ)q(ed)h(b)o(y)f(t)o(w)o(o)f(functions)h 1583 | Fa(FEASIBLE)p Fm(\()p Fg(\001)p Fh(;)7 b Fg(\001)p Fm(\))j(and)k 1584 | Fa(OBJECTIVE)p Fm(\()p Fg(\001)p Fh(;)7 b Fg(\001)p Fm(\))j(and)k(a)f 1585 | (bit)75 1737 y(whose)19 b(v)n(alue)f(is)g(either)h Fa(MAX)f 1586 | Fm(or)h Fa(MIN)p Fm(.)e(The)i(functions)f Fa(FEASIBLE)f 1587 | Fm(and)h Fa(OBJECTIVE)f Fm(are)i(eac)o(h)g(p)q(olynomial)o(-tim)o(e)75 1588 | 1787 y(computable;)e(the)g(function)g Fa(FEASIBLE)e Fm(is)i(b)q(o)q 1589 | (olean-v)n(alued)f(and)h(the)g(function)g Fa(OBJECTIVE)e 1590 | Fm(is)i(real-)g(or)g(in)o(teger-)75 1836 y(v)n(alued.)g(F)m(or)11 1591 | b(a)g(giv)o(en)h(NP)g(optimization)c(problem,)j Fa(FEASIBLE)p 1592 | Fm(\()p Fh(X)q(;)c(Y)g Fm(\))12 b(is)g(true)g(i\013)g 1593 | Fh(Y)21 b Fm(represen)o(ts)14 b(a)d(feasible)h(solution)75 1594 | 1886 y(to)i(the)h(problem)e(instance)j Fh(X)q(:)e Fm(As)h(an)f 1595 | (example,)f(for)h(the)h(tra)o(v)o(eling)e(salesman)h(problem)f 1596 | Fa(FEASIBLE)p Fm(\()p Fh(X)q(;)7 b(Y)g Fm(\))15 b(is)f(true)75 1597 | 1936 y(i\013)i Fh(X)k Fm(represen)o(ts)f(a)c(edge-w)o(eigh)o(ted)i 1598 | (graph)f Fh(G)g Fm(and)g Fh(Y)26 b Fm(represen)o(ts)18 1599 | b(a)e(tour)h(whic)o(h)f(starts)h(and)f(ends)h(at)f(the)h(same)75 1600 | 1986 y(no)q(de)f(and)f(touc)o(hes)i(eac)o(h)f(no)q(de)g(at)f(least)h 1601 | (once.)24 b(The)16 b(v)n(alue)e(of)h Fa(OBJECTIVE)p Fm(\()p 1602 | Fh(X)q(;)7 b(Y)h Fm(\))15 b(measures)h(the)g(qualit)o(y)e(of)h(the)75 1603 | 2036 y(solution)d Fh(Y)e Fm(;)j(for)f(the)i(tra)o(v)o(eling)f(salesman) 1604 | f(problem,)f Fa(OBJECTIVE)p Fm(\()p Fh(X)q(;)c(Y)h Fm(\))13 1605 | b(is)g(the)h(sum)f(of)f(the)i(w)o(eigh)o(ts)f(of)g(the)h(edges)75 1606 | 2085 y(tra)o(v)o(ersed)j(in)e(the)h(tour)f Fh(Y)r(:)h 1607 | Fm(The)f(bit)h Fa(MAX)p Fm(/)p Fa(MIN)d Fm(determines)j(whether)h(the)f 1608 | (goal)e(is)h(to)h(maxim)o(ize)d(or)i(minimi)o(ze)e(the)75 1609 | 2135 y(the)h(ob)r(jectiv)o(e)h(function;)e(for)h(the)g(tra)o(v)o(eling) 1610 | f(salesman)g(problem)f(the)j(bit)e(is)h Fa(MIN)p Fm(.)137 1611 | 2185 y(There)h(are)f(actually)e(three)j(di\013eren)o(t)f(v)o(ersions)g 1612 | (of)f(an)o(y)g(giv)o(en)g(NP)h(optimization)c(problem.)17 1613 | b(In)c(the)h Fk(se)n(ar)n(ch)g Fm(v)o(er-)75 2235 y(sion,)9 1614 | b(giv)o(en)g(a)g(problem)f(instance)i Fh(X)j Fm(the)d(goal)e(is)h(to)g 1615 | (\014nd)h(a)f(feasible)g(solution)f Fh(Y)19 b Fm(whic)o(h)9 1616 | b(optimizes)f Fa(OBJECTIVE)p Fm(\()p Fh(X)q(;)f(Y)g Fm(\))p 1617 | Fh(;)75 2285 y Fm(i.e.)23 b(either)17 b(maxim)o(izes)d(or)i(minim)o 1618 | (izes)e(it)h(dep)q(ending)i(on)e(whether)j(the)e(bit)g(is)f 1619 | Fa(MAX)g Fm(or)h Fa(MIN)p Fm(.)f(In)h(the)g Fk(c)n(omputation)75 1620 | 2335 y Fm(v)o(ersion,)d(giv)o(en)g(an)g(instance)h Fh(X)j 1621 | Fm(the)d(goal)e(is)h(to)h(\014nd)f(the)h(maxim)n(um)o(/m)n(ini)o(m)n 1622 | (um)9 b(v)n(alue)j(of)h Fa(OBJECTIVE)p Fm(\()p Fh(X)q(;)7 1623 | b(Y)h Fm(\))13 b(o)o(v)o(er)75 2384 y(all)h(feasible)h(solutions)g 1624 | Fh(Y)r(:)g Fm(In)g(the)g Fk(de)n(cision)h Fm(v)o(ersion,)f(giv)o(en)g 1625 | (an)g(instance)g Fh(X)k Fm(and)c(a)g(n)o(um)o(b)q(er)g 1626 | Fh(B)r(;)g Fm(if)f(the)i(bit)f(is)g Fa(MAX)75 2434 y 1627 | Fm(then)e(the)h(goal)d(is)h(to)h(determine)g(whether)h(there)g(exists)f 1628 | (a)f(feasible)h(solution)f Fh(Y)21 b Fm(suc)o(h)14 b(that)f 1629 | Fa(OBJECTIVE)p Fm(\()p Fh(X)q(;)7 b(Y)g Fm(\))12 b Fg(\025)f 1630 | Fh(B)75 2484 y Fm(\(if)j(the)h(bit)g(is)f Fa(MIN)g Fm(then)h 1631 | Fg(\025)g Fm(is)g(replaced)g(b)o(y)g Fg(\024)p Fm(\).)20 1632 | b(The)c(decision)e(v)o(ersion)h(of)f(an)h(NP)g(optimization)d(problem)h 1633 | (is)h(the)75 2534 y(one)j(that)f(corresp)q(onds)i(to)f(a)f(formal)e 1634 | (language)h({)h(the)h(language)f(is)g(simply)e(the)j(set)h(of)d(all)g 1635 | (strings)i(represen)o(ting)75 2584 y Fh(X)q(;)7 b(B)16 1636 | b Fm(suc)o(h)f(that)f(the)g(condition)f(of)h(the)g(previous)g(sen)o 1637 | (tence)j(is)c(satis\014ed.)947 2708 y(1-4)p eop 1638 | %%Page: 5 5 1639 | 5 4 bop 75 75 a Fj(4)67 b(Appro)n(ximation)25 b(of)c(NP)h(Optimization) 1640 | i(Problems)75 174 y Fi(4.1)56 b(Early)17 b(History)75 1641 | 251 y Fm(The)f(most)f(basic)h(dic)o(hotom)o(y)e(for)i(NP)g 1642 | (optimization)e(problems)h(is)h(whether)h(the)g(language)e(asso)q 1643 | (ciated)i(with)e(the)75 301 y(decision)h(v)o(ersion)f(of)g(the)i 1644 | (problem)d(is)h(p)q(olynomial-tim)n(e)e(recognizable)j(or)g(is)f 1645 | (NP-complete.)23 b(Often)16 b(a)f(seemingly)75 351 y(minor)c(c)o(hange) 1646 | i(in)f(the)i(problem)d(de\014nition)h(will)g(mo)o(v)o(e)f(a)h(problem)g 1647 | (o)o(v)o(er)g(the)i(b)q(oundary)f(from)e(P)h(to)h(NP;)g(see)h(T)m(able) 1648 | 75 400 y(1)19 b(for)f(sev)o(eral)i(examples)e(of)g(this)h(phenomenon.) 1649 | 32 b(\(Exact)20 b(de\014nitions)e(of)h(all)e(the)j(problems)e(listed)h 1650 | (in)f(T)m(able)g(1)75 450 y(can)g(b)q(e)g(found)f(in)h(Garey)f(and)h 1651 | (Johnson's)g(b)q(o)q(ok)f Fk(Computers)h(and)h(Intr)n(actability:)25 1652 | b(A)18 b(Guide)h(to)f(the)h(The)n(ory)f(of)75 500 y(NP-Completeness)p 1653 | Fm(.\))p 404 608 1217 2 v 404 616 V 403 666 2 50 v 429 1654 | 651 a(In)c(P)p 1024 666 V 1033 666 V 549 w(NP-complete)p 1655 | 1620 666 V 404 667 1217 2 v 403 717 2 50 v 429 702 a(EDGE)g(CO)o(VER)p 1656 | 1024 717 V 1033 717 V 343 w(VER)m(TEX)g(CO)o(VER)p 1620 1657 | 717 V 403 767 V 429 752 a(MINIMUM)g(CUT)p 1024 767 V 1658 | 1033 767 V 318 w(MAXIMUM)h(CUT)p 1620 767 V 403 817 V 1659 | 429 802 a(MINIMUM)f(SP)m(ANNING)g(TREE)p 1024 817 V 1033 1660 | 817 V 58 w(MINIMUM)h(STEINER)f(TREE)p 1620 817 V 403 1661 | 867 V 429 852 a(SHOR)m(TEST)g(P)m(A)m(TH)p 1024 867 V 1662 | 1033 867 V 276 w(LONGEST)g(P)m(A)m(TH)p 1620 867 V 403 1663 | 916 V 429 901 a(CHINESE)h(POSTMAN)p 1024 916 V 1033 916 1664 | V 215 w(TRA)-5 b(VELING)14 b(SALESMAN)p 1620 916 V 403 1665 | 966 V 429 951 a(2D)g(ASSIGNMENT)p 1024 966 V 1033 966 1666 | V 279 w(3D)g(ASSIGNMENT)p 1620 966 V 404 968 1217 2 v 1667 | 350 1026 a Fn(T)l(able)h(1:)j Fm(The)d(computational)c(complexit)o(y)h 1668 | (of)h(some)g(optimization)f(problems.)137 1142 y(A)o(t)g(this)h 1669 | (relativ)o(ely)e(crude)i(lev)o(el)f(of)f(analysis)h({)g(is)f(or)i 1670 | (isn't)e(the)i(problem)e(NP-complete?)17 b({)12 b(all)e(the)j(problems) 1671 | e(on)75 1192 y(the)h(righ)o(t)f(side)h(of)f(T)m(able)f(1)i(are)f(equiv) 1672 | n(alen)o(t.)17 b(In)11 b(the)h(1970s)f(v)n(arious)g(researc)o(hers)j 1673 | (including)d(Garey)m(,)g(Johnson,)h(Sahni)75 1242 y(and)17 1674 | b(Gonzales)f(started)i(to)f(consider)h(the)f(question)g(of)g(ho)o(w)f 1675 | (easy)h(it)g(migh)o(t)e(b)q(e)i(to)g(\014nd)g Fk(appr)n(oximate)g 1676 | Fm(solutions,)75 1291 y(rather)c(than)g(optimal)d(ones,)j(to)f(some)g 1677 | (of)g(these)i(problems.)j(They)c(disco)o(v)o(ered)g(that)g(di\013eren)o 1678 | (t)g(problems)f(whic)o(h)h(are)75 1341 y(\\equiv)n(alen)o(t")e(in)g 1679 | (the)h(sense)h(of)f(NP-completeness)g(frequen)o(tly)g(seemed)g(to)g(ha) 1680 | o(v)o(e)f(widely)g(di\013eren)o(t)i(appro)o(ximabili)o(t)o(y)75 1681 | 1391 y(b)q(eha)o(viors.)18 b(By)12 b(the)h(end)f(of)g(the)g(1970s,)g 1682 | (the)g(state)h(of)f(the)g(art)h(in)e(appro)o(ximation)e(for)j(the)h 1683 | (follo)o(wing)c(four)j(problems)75 1441 y(w)o(as)i(as)g(describ)q(ed)h 1684 | (b)q(elo)o(w:)137 1532 y Fg(\017)21 b Fm(F)m(or)15 b(the)h(KNAPSA)o(CK) 1685 | g(problem:)k(an)c(algorithm)c(suc)o(h)17 b(that)e(for)g(an)o(y)g 1686 | Fh(\016)i(>)d Fm(0)h(the)h(algorithm)d(runs)j(in)f(time)179 1687 | 1582 y(p)q(oly\()p Fh(n;)7 b Fm(1)p Fh(=\016)r Fm(\))13 1688 | b(and)h(\014nds)h(a)g(solution)e(whic)o(h)i(is)f(guaran)o(teed)i(to)e 1689 | (b)q(e)h(within)f(a)g(\(1)c(+)g Fh(\016)r Fm(\)-factor)k(of)g(the)i 1690 | (optimal)179 1632 y(solution.)137 1715 y Fg(\017)21 b 1691 | Fm(F)m(or)16 b(the)h(MINIMUM)g(MAKESP)m(AN)g(problem:)22 1692 | b(an)16 b(algorithm)e(suc)o(h)j(that)f(for)h(an)o(y)e 1693 | Fh(\016)j(>)e Fm(0)h(the)g(algorithm)179 1765 y(runs)f(in)f(time)f(p)q 1694 | (oly\()p Fh(n)539 1750 y Fd(1)p Fe(=\016)590 1765 y Fm(\))i(and)f 1695 | (\014nds)h(a)g(solution)e(whic)o(h)i(is)f(guaran)o(teed)h(to)f(b)q(e)h 1696 | (within)f(a)g(\(1)10 b(+)h Fh(\016)r Fm(\)-factor)16 1697 | b(of)179 1814 y(the)e(optimal)d(solution.)137 1897 y 1698 | Fg(\017)21 b Fm(F)m(or)12 b(the)h(VER)m(TEX)f(CO)o(VER)h(problem:)j(an) 1699 | c(algorithm)e(that)i(runs)h(in)f(p)q(olynomial)d(time)j(and)g(\014nds)h 1700 | (a)f(v)o(ertex)179 1947 y(co)o(v)o(er)i(whic)o(h)g(is)g(at)f(most)g(t)o 1701 | (wice)h(as)g(large)g(as)g(the)g(minim)n(um)c(v)o(ertex)15 1702 | b(co)o(v)o(er.)137 2030 y Fg(\017)21 b Fm(F)m(or)13 b(the)i(GRAPH)e 1703 | (COLORING)h(problem:)j(nothing)c(kno)o(wn.)137 2122 y(Ev)o(en)i(though) 1704 | e(the)i(languages)e(asso)q(ciated)i(with)e(these)j(problems)d(are)h 1705 | (all)e(reducible)j(to)f(eac)o(h)g(other,)g(the)h(stan-)75 1706 | 2171 y(dard)f(reductions)h(do)f(not)f(preserv)o(e)j(appro)o(ximabili)o 1707 | (t)o(y)m(.)75 2288 y Fi(4.2)56 b(Complexit)n(y)16 b(of)j(Appro)n 1708 | (ximation:)k(A)c(Brief)e(Timetable)75 2364 y Fm(In)i(the)h(1970s)e 1709 | (through)h(most)f(of)h(the)g(1980s,)h(relativ)o(ely)e(little)g(w)o(ork) 1710 | h(w)o(as)g(done)g(on)g(the)h(computational)c(com-)75 1711 | 2414 y(plexit)o(y)i(of)g(appro)o(ximation)e(for)i(NP)i(optimization)c 1712 | (problems;)j(instead,)h(more)e(researc)o(h)j(w)o(as)d(directed)i(to)o 1713 | (w)o(ard)75 2464 y(\014nding)c(appro)o(ximation)e(algorithms)h(for)i(v) 1714 | n(arious)f(optimization)e(problems.)27 b(In)17 b(the)g(1970s)g(Johnson) 1715 | g(ga)o(v)o(e)g(sim-)75 2514 y(ple)d(2-appro)o(ximation)d(algorithms)h 1716 | (for)h(MAX3SA)m(T)h(and)g(MAX)o(CUT,)g(and)g(Lo)o(v)n(asz)g(and)g 1717 | (Johnson)g(indep)q(enden)o(tly)75 2564 y(ga)o(v)o(e)g(an)f 1718 | Fh(O)q Fm(\(log)7 b Fh(n)p Fm(\)-appro)o(ximation)k(algorithm)g(for)j 1719 | (SET)g(CO)o(VER.)f(In)h(the)h(1980s)e(Ho)q(c)o(h)o(baum)g(and)h(Shmo)o 1720 | (ys)e(ga)o(v)o(e)947 2708 y(1-5)p eop 1721 | %%Page: 6 6 1722 | 6 5 bop 75 75 a Fm(appro)o(ximation)16 b(algorithms)h(for)h(v)n(arious) 1723 | h(sc)o(heduling)g(and)g(pac)o(king)f(problems,)h(and)g(Leigh)o(ton)g 1724 | (and)f(Rao)g(ga)o(v)o(e)75 125 y(appro)o(ximation)13 1725 | b(algorithms)h(for)i(some)g(\015o)o(w)f(problems.)25 1726 | b(Ho)o(w)o(ev)o(er,)17 b(ev)o(en)f(on)h(the)f(algorithmic)e(side)j 1727 | (appro)o(xima-)75 175 y(tion)e(w)o(as)g(not)g(really)f(a)h(ma)r(jor)e 1728 | (researc)o(h)k(topic,)e(as)h(witnessed)g(b)o(y)f(the)h(fact)f(that)g 1729 | (the)h(1985)e(b)q(o)q(ok)h Fk(Combinatorial)75 225 y(Optimization:)j(A) 1730 | o(nnotate)n(d)e(Biblio)n(gr)n(aphies)d Fm(did)h(not)f(include)h(a)g(c)o 1731 | (hapter)h(on)e(appro)o(ximation)e(algorithms.)137 274 1732 | y(The)17 b(situation)e(c)o(hanged)h(in)g(1988)f(when)h(P)o 1733 | (apadimitriou)d(and)j(Y)m(annak)n(akis)f(published)h(a)f(pap)q(er)i 1734 | (\\Optimiza-)75 324 y(tion,)10 b(Appro)o(ximation,)e(and)i(Complexit)o 1735 | (y)d(Classes")k(whic)o(h)f(established)h(the)g(\014rst)g(successful)h 1736 | (complexit)o(y-theoretic)75 374 y(p)q(oin)o(t)f(of)g(view)g(on)h(appro) 1737 | o(ximabil)o(it)o(y)c(of)j(optimization)e(problems.)16 1738 | b(They)c(de\014ned)h(complexit)o(y)d(classes)i(of)f(optimiza-)75 1739 | 424 y(tion)17 b(problems,)h(ga)o(v)o(e)f(a)g(notion)g(of)h(appro)o 1740 | (ximation-)o(preserving)e(reductions)j(b)q(et)o(w)o(een)g(optimization) 1741 | c(problems,)75 474 y(ga)o(v)o(e)g(a)h(completeness)g(notion)f(and)g 1742 | (pro)o(v)o(ed)h(that)g(sev)o(eral)g(natural)f(and)h(imp)q(ortan)o(t)e 1743 | (optimization)f(problems,)i(in-)75 523 y(cluding)i(MAX3SA)m(T,)h(are)g 1744 | (complete)g(under)g(this)g(notion.)30 b(In)18 b(the)h(next)f(few)g(y)o 1745 | (ears)h(man)o(y)d(other)j(optimization)75 573 y(problems)13 1746 | b(w)o(ere)i(sho)o(wn)f(to)f(satisfy)h(this)g(completeness)g(notion)g 1747 | (as)g(w)o(ell.)137 623 y(A)o(t)23 b(this)f(p)q(oin)o(t,)i 1748 | (\\hard-to-appro)o(ximate")19 b(w)o(as)j(a)h(di\013eren)o(t)g(hardness) 1749 | h(assumption)d(than)h(\\hard-to-solv)o(e-)75 673 y(exactly")c(\(i.e.)30 1750 | b(the)18 b(P)g Fg(6)p Fm(=)g(NP)h(assumption\).)29 b(In)18 1751 | b(1990,)f(an)h(imp)q(ortan)o(t)e(pap)q(er)j(of)e(F)m(eige,)h(Goldw)o 1752 | (asser,)h(Lo)o(v)n(asz,)75 723 y(Safra)12 b(and)g(Szegedy)i 1753 | (established)f(a)f(connection)i(b)q(et)o(w)o(een)f(appro)o(ximation)d 1754 | (and)i(probabilistic)g(pro)q(of)g(systems.)18 b(On)75 1755 | 772 y(a)c(high)g(lev)o(el,)g(their)h(w)o(ork)g(sho)o(w)o(ed)g(that)f(b) 1756 | q(eing)h(able)f(to)h(\014nd)f(appro)o(ximately)e(optimal)g(solutions)j 1757 | (corresp)q(onds)h(to)75 822 y(b)q(eing)c(able)f(to)h(\014nd)g(pro)q 1758 | (ofs)f(whic)o(h)h(ha)o(v)o(e)f(\\only)g(a)h(few)f(errors.")19 1759 | b(This)11 b(notion)g(ma)o(y)f(seem)i(strange)g(at)g(\014rst,)g(but)g 1760 | (suc)o(h)75 872 y(\\only)j(sligh)o(tly)g(incorrect")j(pro)q(ofs)e(are)h 1761 | (imp)q(ortan)o(t)d(in)i(the)h(theory)g(of)e(probabilistically)f(c)o 1762 | (hec)o(k)n(able)j(pro)q(ofs.)26 b(The)75 922 y(w)o(ork)15 1763 | b(of)h([F)o(GLSS])e(and)i(subsequen)o(t)h(w)o(ork)f(led)g(to)f(the)i 1764 | (collapsing)d(of)h(the)i(t)o(w)o(o)e(di\013eren)o(t)i(hardness)g 1765 | (assumptions)75 972 y(men)o(tioned)e(ab)q(o)o(v)o(e)h(in)f(man)o(y)g 1766 | (cases)i({)f(for)g(man)o(y)e(NP-complete)h(optimization)f(problems)h 1767 | (it)h(is)g(no)o(w)f(kno)o(wn)h(that)75 1022 y(ev)o(en)e 1768 | Fk(appr)n(oximating)g Fm(the)g(solution)e(within)h(some)f(b)q(ound)i 1769 | (is)f(also)g(NP-complete.)k(Apart)d(from)d(its)j(inheren)o(t)g(in)o 1770 | (ter-)75 1071 y(est,)j(this)g(progress)g(in)f(the)h(complexit)o(y)d(of) 1771 | i(appro)o(ximation)d(has)j(b)q(een)h(useful)g(in)f(fo)q(cusing)g 1772 | (algorithmi)o(c)e(researc)o(h)75 1121 y({)h(designers)h(of)f(appro)o 1773 | (ximation)d(algorithms)h(can)i(a)o(v)o(oid)f(exp)q(ending)i(e\013ort)g 1774 | (on)f(trying)g(to)g(design)g(appro)o(ximation)75 1171 1775 | y(algorithms)d(where)j(app)o(xo)o(ximati)o(on)c(is)j(kno)o(wn)f(to)h(b) 1776 | q(e)g(NP-complete.)75 1308 y Fj(5)67 b(Optimization)24 1777 | b(Problems)f(and)g(Appro)n(ximation)i(Algorithms)75 1399 1778 | y Fm(Recall)19 b(that)i(an)f(optimization)d(problem)i(\005)h(has)g 1779 | (three)i(comp)q(onen)o(ts:)30 b(a)20 b(p)q(olynomial-ti)o(m)o(e)d(b)q 1780 | (o)q(olean)j(function)75 1449 y Fa(Feasible)p Fm(\()p 1781 | Fg(\001)p Fh(;)7 b Fg(\001)p Fm(\))p Fh(;)12 b Fm(a)j(p)q(olynomial-ti) 1782 | o(m)o(e)e(real-v)n(alued)h(function)h Fa(Objective)p 1783 | Fm(\()p Fg(\001)p Fh(;)7 b Fg(\001)p Fm(\))p Fh(;)12 1784 | b Fm(and)j(a)h(bit)f Fa(MAX)p Fm(/)p Fa(MIN)p Fm(.)e(Throughout)75 1785 | 1499 y(this)h(section,)g(unless)h(stated)g(otherwise)f(w)o(e)g(assume)g 1786 | (that)g(the)g(v)n(alue)g(of)f(the)h(bit)g(is)g Fa(MAX)p 1787 | Fm(.)75 1590 y Fn(De\014nitio)o(n)f(4)21 b Fk(We)11 b(say)g(that)f 1788 | Fh(Y)20 b Fk(is)11 b(an)g Fm(optimal)6 b(solution)k Fk(to)h(the)f(pr)n 1789 | (oblem)h(instanc)n(e)g Fh(X)j Fk(if)c Fh(Y)20 b Fk(maximizes)10 1790 | b Fa(Objective)p Fm(\()p Fh(X)q(;)d(Y)2049 1575 y Fc(0)2060 1791 | 1590 y Fm(\))75 1640 y Fk(over)15 b(al)r(l)f Fh(Y)259 1792 | 1625 y Fc(0)286 1640 y Fk(such)h(that)g Fa(Feasible)p 1793 | Fm(\()p Fh(X)q(;)7 b(Y)743 1625 y Fc(0)755 1640 y Fm(\))15 1794 | b Fk(is)f(true.)75 1731 y Fn(De\014nitio)o(n)f(5)21 b 1795 | Fk(F)m(or)14 b Fh(R)d Fg(\025)h Fm(1)p Fh(;)i Fk(we)h(say)g(that)g(a)g 1796 | (solution)g Fh(Y)1000 1716 y Fc(0)1027 1731 y Fm(ac)o(hiev)o(es)f(p)q 1797 | (erformance)g(ratio)f Fh(R)i Fk(if)658 1844 y Fa(Objective)o 1798 | Fm(\()p Fh(X)q(;)7 b(Y)958 1827 y Fc(0)970 1844 y Fm(\))k 1799 | Fg(\025)1046 1816 y Fa(Objective)n Fm(\()p Fh(X)q(;)c(Y)i 1800 | Fm(\))p 1046 1835 316 2 v 1188 1873 a Fh(R)75 1947 y 1801 | Fk(wher)n(e)14 b Fh(Y)24 b Fk(is)15 b(an)g(optimal)g(solution.)137 1802 | 2039 y Fm(Equiv)n(alen)o(tly)m(,)d(w)o(e)i(will)e(sa)o(y)i(that)g 1803 | Fh(Y)720 2023 y Fc(0)746 2039 y Fm(is)f(an)h Fh(R)p Fk(-appr)n(oximate) 1804 | h(solution)p Fm(.)75 2130 y Fn(De\014nitio)o(n)e(6)21 1805 | b Fk(We)c(say)h(that)g(an)g(algorithm)e Fh(A)i Fk(is)f(a)g 1806 | Fh(R)p Fm(-appro)o(ximation)d(algorithm)h Fk(for)h(pr)n(oblem)h 1807 | Fm(\005)h Fk(if,)f(given)h(a)75 2180 y(pr)n(oblem)c(instanc)n(e)i 1808 | Fh(X)q(;)e Fk(algorithm)h Fh(A)g Fk(outputs)g(a)g(solution)g 1809 | Fh(A)p Fm(\()p Fh(X)s Fm(\))h Fk(which)f(has)g(a)g(p)n(erformanc)n(e)g 1810 | (r)n(atio)f(of)h(at)f(le)n(ast)h Fh(R:)137 2271 y Fm(Note)g(that)g(w)o 1811 | (e)g(do)g Fk(not)g Fm(require)g(that)g(the)h(appro)o(ximate)c(solution) 1812 | i(is)h(alw)o(a)o(ys)f Fk(exactly)g Fm(1)p Fh(=R)g Fm(times)g(the)i 1813 | (optimal)75 2321 y(solution;)j(if)e(this)i(w)o(ere)g(the)g(case,)h 1814 | (then)f(w)o(e)f(could)g(determine)g(the)h(v)n(alue)f(of)f(the)i 1815 | (optimal)d(solution)h(simply)f(b)o(y)75 2371 y(m)o(ultiplying)10 1816 | b(b)o(y)k Fh(R:)f Fm(Also)h(note)g(that)g(the)h(v)n(alue)e 1817 | Fh(R)g Fm(can)i(b)q(e)f(a)g(function)f(of)h(the)g(problem)f(size)h 1818 | Fh(n)g Fm(suc)o(h)h(as)f(log)6 b Fh(n)p Fm(.)75 2462 1819 | y Fn(De\014nitio)o(n)13 b(7)21 b Fk(We)13 b(say)g(that)f(an)h 1820 | (optimization)g(pr)n(oblem)f Fm(\005)h Fk(is)f Fh(R)p 1821 | Fm(-appro)o(ximable)e Fk(if)i(ther)n(e)g(is)h(an)g Fh(R)p 1822 | Fk(-appr)n(oximation)75 2512 y(algorithm)h(for)g Fm(\005)h 1823 | Fk(which)g(runs)g(in)g(p)n(olynomial)g(time.)947 2708 1824 | y Fm(1-6)p eop 1825 | %%Page: 7 7 1826 | 7 6 bop 137 75 a Fm(From)15 b(the)h(preceding)h(de\014nitions,)f(it)f 1827 | (is)h(clear)g(that)g(a)g(1-appro)o(ximatio)o(n)d(algorithm)h(is)h(an)h 1828 | (algorithm)d(whic)o(h)75 125 y(alw)o(a)o(ys)k(succeeds)k(in)d 1829 | (\014nding)g(an)h(optimal)c(solution,)k(i.e.)31 b Fh(R)19 1830 | b Fg(\025)g Fm(1)f(alw)o(a)o(ys.)31 b(F)m(or)18 b(minimi)o(zation)d 1831 | (problems,)j(the)75 175 y(inequalitit)o(y)12 b(in)i(the)g(preceding)h 1832 | (paragraph)f(is)f(replaced)i(b)o(y)633 266 y Fa(Objective)n 1833 | Fm(\()p Fh(X)q(;)7 b(Y)932 249 y Fc(0)944 266 y Fm(\))k 1834 | Fg(\024)h Fh(R)d Fg(\001)g Fa(Objective)n Fm(\()p Fh(X)q(;)e(Y)i 1835 | Fm(\))75 357 y(and)14 b(hence)h(w)o(e)f(will)f(alw)o(a)o(ys)f(ha)o(v)o 1836 | (e)i Fh(R)d Fg(\025)h Fm(1)i(for)f(minimi)o(zation)e(problems)i(as)h(w) 1837 | o(ell.)137 407 y(In)h(the)g(next)f(few)h(lectures)h(w)o(e)e(will)f(see) 1838 | j(a)e(range)g(of)g(appro)o(ximation)d(algorithms)h(whic)o(h)i(ha)o(v)o 1839 | (e)h(man)o(y)d(di\013eren)o(t)75 457 y(v)n(alues)i(of)f 1840 | Fh(R:)947 2708 y Fm(1-7)p eop 1841 | %%Trailer 1842 | end 1843 | userdict /end-hook known{end-hook}if 1844 | %%EOF 1845 | -------------------------------------------------------------------------------- /columbia-algorithms-course/optional_solns.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/optional_solns.pdf -------------------------------------------------------------------------------- /columbia-algorithms-course/practice_mid2012.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/columbia-algorithms-course/practice_mid2012.pdf -------------------------------------------------------------------------------- /contests/prime_RIP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/prime_RIP.pdf -------------------------------------------------------------------------------- /contests/prob_p.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/prob_p.pdf -------------------------------------------------------------------------------- /contests/prob_p_chess.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/prob_p_chess.pdf -------------------------------------------------------------------------------- /contests/prob_p_prostoj.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/prob_p_prostoj.pdf -------------------------------------------------------------------------------- /contests/prob_p_sasha.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/prob_p_sasha.pdf -------------------------------------------------------------------------------- /contests/prob_p_transportation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/prob_p_transportation.pdf -------------------------------------------------------------------------------- /contests/problems-e.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e.pdf -------------------------------------------------------------------------------- /contests/problems-e_awful.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_awful.pdf -------------------------------------------------------------------------------- /contests/problems-e_breaking.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_breaking.pdf -------------------------------------------------------------------------------- /contests/problems-e_calendar.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_calendar.pdf -------------------------------------------------------------------------------- /contests/problems-e_circles.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_circles.pdf -------------------------------------------------------------------------------- /contests/problems-e_decorating.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_decorating.pdf -------------------------------------------------------------------------------- /contests/problems-e_max_sum_swaps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_max_sum_swaps.pdf -------------------------------------------------------------------------------- /contests/problems-e_most_beautiful.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems-e_most_beautiful.pdf -------------------------------------------------------------------------------- /contests/problems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems.pdf -------------------------------------------------------------------------------- /contests/problems1-e.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems1-e.pdf -------------------------------------------------------------------------------- /contests/problems1-e_labyrinth.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems1-e_labyrinth.pdf -------------------------------------------------------------------------------- /contests/problems1_cnf_sat.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems1_cnf_sat.pdf -------------------------------------------------------------------------------- /contests/problems2-e_maximal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems2-e_maximal.pdf -------------------------------------------------------------------------------- /contests/problems2_xvii.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/contests/problems2_xvii.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/blank: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cse 101 UCSD/hw1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw1.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw2.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw3.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw4.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw5.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw6.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw7.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw8.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/hw9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/hw9.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol1.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol2.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol3.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol4.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol5.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol6.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol7.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol8.pdf -------------------------------------------------------------------------------- /cse 101 UCSD/sol9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/cse 101 UCSD/sol9.pdf -------------------------------------------------------------------------------- /fakehw0sol.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/fakehw0sol.zip -------------------------------------------------------------------------------- /final-review.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/final-review.pdf -------------------------------------------------------------------------------- /final-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/final-sol.pdf -------------------------------------------------------------------------------- /final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/final.pdf -------------------------------------------------------------------------------- /final_sp15.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/final_sp15.pdf -------------------------------------------------------------------------------- /hw0-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw0-sol.pdf -------------------------------------------------------------------------------- /hw0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw0.pdf -------------------------------------------------------------------------------- /hw1-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw1-sol.pdf -------------------------------------------------------------------------------- /hw1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw1.pdf -------------------------------------------------------------------------------- /hw10-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw10-sol.pdf -------------------------------------------------------------------------------- /hw10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw10.pdf -------------------------------------------------------------------------------- /hw11-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw11-sol.pdf -------------------------------------------------------------------------------- /hw11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw11.pdf -------------------------------------------------------------------------------- /hw2-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw2-sol.pdf -------------------------------------------------------------------------------- /hw2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw2.pdf -------------------------------------------------------------------------------- /hw3-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw3-sol.pdf -------------------------------------------------------------------------------- /hw4-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw4-sol.pdf -------------------------------------------------------------------------------- /hw4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw4.pdf -------------------------------------------------------------------------------- /hw5-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw5-sol.pdf -------------------------------------------------------------------------------- /hw5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw5.pdf -------------------------------------------------------------------------------- /hw6-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw6-sol.pdf -------------------------------------------------------------------------------- /hw6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw6.pdf -------------------------------------------------------------------------------- /hw7-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw7-sol.pdf -------------------------------------------------------------------------------- /hw7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw7.pdf -------------------------------------------------------------------------------- /hw8-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw8-sol.pdf -------------------------------------------------------------------------------- /hw8_sp17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw8_sp17.pdf -------------------------------------------------------------------------------- /hw9-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw9-sol.pdf -------------------------------------------------------------------------------- /hw9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/hw9.pdf -------------------------------------------------------------------------------- /midterm1-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/midterm1-sol.pdf -------------------------------------------------------------------------------- /midterm1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/midterm1.pdf -------------------------------------------------------------------------------- /midterm2-sol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/midterm2-sol.pdf -------------------------------------------------------------------------------- /midterm2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/midterm2.pdf -------------------------------------------------------------------------------- /midterm2_sp17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/midterm2_sp17.pdf -------------------------------------------------------------------------------- /one-hundred-prisoners.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/one-hundred-prisoners.pdf -------------------------------------------------------------------------------- /programming_challenges_skiena.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanglicheng/Algorithm_Study/9dd78c490541fd52ea734eb69b1d90fcd1cbd905/programming_challenges_skiena.pdf --------------------------------------------------------------------------------