%!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: main.dvi %%Pages: 79 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: Times-Bold Times-Roman Times-Italic Courier %%+ Courier-Bold Courier-Oblique %%DocumentPaperSizes: A4 %%EndComments %DVIPSCommandLine: dvips main.dvi %DVIPSParameters: dpi=600, comments removed %DVIPSSource: TeX output 2001.12.29:2145 %%BeginProcSet: tex.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginFont: Times-Bold % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndFont %%BeginProcSet: texps.pro TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont /setfont load]cvx def}def /ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto} }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict maxlength dict begin /magscale true def normalscale currentpoint TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin @defspecial /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -33 def /dl {10 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth } def /AL { stroke userlinewidth 2 div setlinewidth } def /UL { dup gnulinewidth mul /userlinewidth exch def 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def end /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -33 def /dl {10 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth } def /AL { stroke userlinewidth 2 div setlinewidth } def /UL { dup gnulinewidth mul /userlinewidth exch def 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def end /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -33 def /dl {10 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth } def /AL { stroke userlinewidth 2 div setlinewidth } def /UL { dup gnulinewidth mul /userlinewidth exch def 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def end @fedspecial end TeXDict begin 39158280 55380996 1000 600 600 (main.dvi) @start /Fa 1 121 df<0007E001F000001FF807FC0000783E0E0F0000E01F1C1F0001C01F383F8003 800FF07F8003000FE0FF8007000FE0FF800E000FC0FF000C000FC07E000C001FC03C001C 001F80000018001F80000018001F80000000003F80000000003F80000000003F00000000 003F00000000007F00000000007F00000000007E00000000007E0000000000FE00000000 00FE0000000000FC000C000000FC000C000001FC001C001E01FC0018003F01F80018007F 81F80038007F83F8007000FF83F8006000FF07F800E000FE0E7C01C0007C1C7C03800078 383E0F00001FF00FFC000007C003F0000029267EA42F>120 D E /Fb 1 62 df<0000003000000078000000F8000000F8000000F0000001F0000001F00000 01E0000003E0000003E0000003C0000007C0000007C00000078000000F8000000F800000 0F0000001F0000001F0000003E0000003E0000003C0000007C0000007C00000078000000 F8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000003C0000007 C0000007C000000F8000000F8000000F0000001F0000001F0000001E0000003E0000003E 0000003C0000007C0000007C00000078000000F8000000F8000000F0000001F0000001F0 000001E0000003E0000003E0000007C0000007C00000078000000F8000000F8000000F00 00001F0000001F0000001E0000003E0000003E0000003C0000007C0000007C0000007800 0000F8000000F8000000F0000000600000001D4B7CB726>61 D E /Fc 3 116 df<0C0000C00FC00FC00FFFFF800FFFFF000FFFFE000FFFFC000FFFF0000F FFC0000C1800000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C 0000000C0000000C0FC0000C7FF8000CF07C000FC03F000F001F800F000FC00E000FC00C 0007E00C0007E0000007F0000003F0000003F0000003F8000003F8000003F8000003F818 0003F87E0003F8FE0003F8FE0003F8FE0003F8FE0003F0FE0007F0F80007F0600007E070 0007E070000FC038001FC03C001F801E007F000F80FE0007FFF80001FFE000003F80001D 347CB126>53 D<0000FE000007FF80001FFFE0003F00F0007C007001F801F801F003F803 E003F807E003F80FC003F80FC001F01F8000001F8000003F0000003F0000003F0000007F 0000007E0000007E07F0007E1FFC00FE381F00FE700F80FEE007C0FFC003E0FF8003F0FF 8001F8FF0001F8FF0001FCFF0000FCFF0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE 0000FE7E0000FE7E0000FE7E0000FE7E0000FE7F0000FE3F0000FC3F0000FC1F0001FC1F 8001F80F8001F00FC003F007C007E003E00FC001F81F8000FFFF00003FFC00000FE0001F 347DB126>I<00FF060007FFCE001F00FE003C003E0078001E0078000E00F0000E00F000 0600F0000600F8000600F8000600FE000000FF8000007FFC00003FFFC0003FFFF0000FFF F80007FFFC0000FFFE00000FFF000000FF0000003F80C0001F80C0000F80E0000780E000 0780E0000780F0000780F0000700F8000F00FC000E00FE001C00F7807800E1FFE000C07F 800019237EA11E>115 D E /Fd 1 26 df<007F800000004001FFE0000000E007FFF800 0000E00FFFFE000000E01FFFFF800000E03FFFFFC00001E03F807FF00001C07E001FFC00 03C0780007FF000FC0700001FFC03F80F000007FFFFF80E000003FFFFF00E000000FFFFE 00E0000003FFFC00E0000000FFF000400000003FC0000000000000000000000000000000 0000000000000000000000000000007F800000004001FFE0000000E007FFF8000000E00F FFFE000000E01FFFFF800000E03FFFFFC00001E03F807FF00001C07E001FFC0003C07800 07FF000FC0700001FFC03F80F000007FFFFF80E000003FFFFF00E000000FFFFE00E00000 03FFFC00E0000000FFF000400000003FC00033247CA43C>25 D E /Fe 1 2 df<78FCFCFCFC7806067A8F13>1 D E /Ff 133[50 9[50 6[50 1[50 4[50 47[50 50[{ TeXBase1Encoding ReEncodeFont }6 83.333336 /Courier-Oblique rf /Fg 139[55 55 4[55 7[55 55 55 1[55 21[55 13[55 1[55 12[55 1[55 45[{ TeXBase1Encoding ReEncodeFont }12 91.249977 /Courier-Bold rf /Fh 206[45 45 48[{ TeXBase1Encoding ReEncodeFont }2 75.000000 /Courier rf /Fi 6 55 df<0001E0000003E000001FE00000FFE000FFFFE0 00FFFFE000FFFFE000FF3FE000003FE000003FE000003FE000003FE000003FE000003FE0 00003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE0 00003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE0 00003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE0007FFFFF F07FFFFFF07FFFFFF07FFFFFF01C2C7AAB29>49 D<003FF00001FFFE0007FFFF801FFFFF E03F80FFF07F003FF87F001FFCFF800FFEFFC007FEFFC007FFFFC003FFFFC003FFFFC003 FF7F8003FF3F0003FF000003FF000003FF000007FE000007FE00000FFC00000FF800001F F000003FE000003FC000007F800000FE000001FC000003F0000007E000000FC00F001F00 0F003E000F00FC001F01F0001E03E0001E07FFFFFE0FFFFFFE1FFFFFFE3FFFFFFE7FFFFF FEFFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC202C7CAB29>I<000FFC0000007FFF800001FF FFE00003F81FF00007C00FF8000F8007FC000FE007FE001FF007FE001FF807FE001FF807 FE001FF807FE001FF807FE001FF807FE000FF00FFC0007E00FFC0000001FF80000001FF0 0000003FE0000000FF8000003FFF0000003FFC0000003FFFC00000001FF00000000FFC00 000007FE00000003FF00000003FF80000001FF80000001FFC01F0001FFC07FC001FFC0FF E001FFC0FFE001FFC0FFE001FFC0FFE001FFC0FFE001FF80FFE003FF807FC003FF807F80 07FF003F8007FE001FF01FFC000FFFFFF80007FFFFE00000FFFF8000001FFC0000222D7D AB29>I<000000F800000001F800000003F800000003F800000007F80000000FF8000000 1FF80000003FF80000007FF80000007FF8000000F7F8000001E7F8000003C7F8000007C7 F800000F87F800001F07F800001E07F800003C07F800007807F80000F007F80001F007F8 0003E007F80003C007F800078007F8000F0007F8001E0007F8003E0007F8007C0007F800 F80007F800FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF000000FF80000000FF80000 000FF80000000FF80000000FF80000000FF80000000FF800000FFFFFF0000FFFFFF0000F FFFFF0000FFFFFF0242C7EAB29>I<180000381FC003F81FFFFFF81FFFFFF01FFFFFE01F FFFFC01FFFFF801FFFFE001FFFFC001FFFE0001FFF00001F0000001F0000001F0000001F 0000001F0000001F1FF8001F7FFF001FFFFFC01FF01FE01FC00FF01F0007F81E0007FC1C 0003FE000003FE000003FE000003FF000003FF0C0003FF3F0003FF7F8003FFFF8003FFFF C003FFFFC003FFFFC003FEFF8003FEFF8007FE7E0007FC7E000FF83F001FF81FC07FF00F FFFFC007FFFF8001FFFC00003FE000202D7CAB29>I<0000FF80000007FFF000001FFFF8 00007FC07C0000FF003E0003FC007E0007F800FF0007F801FF000FF001FF001FE001FF00 1FE001FF003FE000FE003FE0007C007FC00000007FC00000007FC0000000FFC3FF8000FF CFFFE000FFDFBFF000FFFC03FC00FFF801FE00FFF001FF00FFF000FF00FFE000FF80FFE0 00FF80FFE000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC07FC000FFC07FC000 FFC07FC000FFC07FC000FFC03FC000FFC03FE000FF803FE000FF801FE001FF000FF001FF 000FF803FE0007FC07FC0003FFFFF80000FFFFE000003FFF80000007FC0000222D7DAB29 >I E /Fj 1 68 df<00000007FFC0000E000000FFFFFC001E000007FFFFFF003E00003F FFFFFFC07E0000FFFFFFFFE1FE0003FFFF803FFBFE0007FFF80003FFFE000FFFC00000FF FE003FFF0000007FFE007FFE0000001FFE00FFF80000000FFE01FFF000000007FE03FFE0 00000007FE03FFC000000003FE07FFC000000001FE0FFF8000000001FE0FFF8000000000 FE1FFF0000000000FE1FFF00000000007E3FFF00000000007E3FFE00000000007E3FFE00 000000003E7FFE00000000003E7FFE00000000003E7FFE00000000003E7FFC0000000000 00FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC00 0000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC0000000000 00FFFC000000000000FFFC000000000000FFFC0000000000007FFC0000000000007FFE00 00000000007FFE00000000003E7FFE00000000003E3FFE00000000003E3FFE0000000000 3E3FFF00000000003E1FFF00000000007E1FFF00000000007C0FFF80000000007C0FFF80 00000000FC07FFC000000000F803FFE000000001F803FFE000000001F001FFF000000003 F000FFF800000007E0007FFE0000000FC0003FFF0000003F80000FFFC00000FF000007FF F80003FE000003FFFF801FFC000000FFFFFFFFF80000003FFFFFFFE000000007FFFFFF80 00000000FFFFFC000000000007FFC000003F407ABE4C>67 D E /Fk 3 111 df<78FCFCFCFC7806067A8513>58 D<00000C00001C00003C0000380000380000 780000700000F00000E00001E00001C00001C00003C0000380000780000700000700000F 00000E00001E00001C00001C00003C0000380000780000700000F00000E00000E00001E0 0001C00003C0000380000380000780000700000F00000E00000E00001E00001C00003C00 00380000780000700000700000F00000E00000E0000016317CA420>61 D<0F00FC001FC3FF0031C7078061EC038061F803C0C1F003C0C1F003C0C1E003C003C007 8003C0078003C0078003C00F0007800F0007800F0007801E0407801E060F001E0C0F003C 0C0F003C180F003C381E001C701E001FE00C0007801F177D9526>110 D E /Fl 11 118 df<00FF0003FFC00781E00F00F01E00783C003C3C003C78001E78001E 78001E78001EF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001F F8001FF8001FF8001F78001E78001E7C003E3C003C3C003C1E00780F00F00781E003FFC0 00FF0018227DA01E>48 D<00E00001E00007E000FFE000F9E00001E00001E00001E00001 E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001 E00001E00001E00001E00001E00001E00001E00001E00001E00001E00003F000FFFFC0FF FFC012217AA01E>I<01FC0007FF801C0FC03003E06001F06000F8F800F8FC00FCFC00FC FC007C78007C3000FC0000FC0000F80000F80001F00003E00003C0000780000F00001E00 00380000700000E00001C00C03800C0600180C00181800183FFFF87FFFF8FFFFF0FFFFF0 16217CA01E>I<00FF0003FFC00F03E01C00F01C00F83E00FC3E007C3E007C1E00FC0C00 FC0000F80000F80001F00003E0000FC001FF0001FF000003E00000F000007800007C0000 3E00003F30003F78003FFC003FFC003FFC003EF8007E60007C3800F81E03F00FFFC001FF 0018227DA01E>I<000FC0007FF001F03803C01807803C0F007C1E007C1C00383C00003C 00007C0000780000787FC0F9FFE0FB80F0FE0038FE003CFC001EFC001EF8001FF8001FF8 001FF8001F78001F78001F78001F3C001E3C001E1C003C1E00380F00700781E001FFC000 7F0018227DA01E>54 D<3000003C00003FFFFF3FFFFF7FFFFE7FFFFC60001C6000386000 70C000E0C000C00001C0000380000700000600000E00001C00001C000038000038000078 0000780000780000F00000F00000F00000F00001F00001F00001F00001F00001F00001F0 0001F00000E00018237CA11E>I<007F0003FFC00781E00E00701C003818001C38001C38 001C38001C3C001C3F00381FC0781FE0F00FF9E007FF8001FF8001FFC007FFF00F0FF81C 03FC3801FE70007E70001FE0000FE00007E00007E00007E0000670000E78000C3C00381F 00F007FFC000FF0018227DA01E>I<00FC0003FF800F83C01F01E03E00F03C00F07C00F0 7C0078F80078F80078FFFFF8FFFFF8F80000F80000F80000F800007C00007C00183E0018 1E00381F00700781E003FF80007E0015187D961B>101 D<01F83F0007FEFF801E07E380 1C0383003801C0007801E0007801E0007801E0007801E0007801E0003801C0001C038000 1E0780003FFE000031F800003000000038000000380000003FFF80001FFFF0000FFFF800 1FFFFC0038007E0070000E00E0000F00E0000700E0000700E0000700F0000F0070000E00 3C003C001F00F80007FFE00000FF000019227D951E>103 D<07F0801FFF80380F807003 80E00380E00180E00180F00180F800007FC0003FF8001FFE0007FF00001F800007C0C003 C0C001C0E001C0E001C0F00180F00380FC0F00CFFE0083F80012187D9618>115 D<0F000F00FF00FF00FF00FF001F001F000F000F000F000F000F000F000F000F000F000F 000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F001F 000F001F0007003F8007C0EFF003FF8FF000FE0F001C177D9522>117 D E /Fm 1 66 df<00000600000000000600000000000F00000000000F00000000000F80 000000001D800000000019C00000000038C00000000030E0000000003060000000007060 00000000607000000000703000000000F03800000000F81800000001F81C00000001DC0C 00000001CC0C00000003CE0E000000038606000000038607000000078703000000070303 8000000703818000000F01818000000E0181C000001E01C0C000001E00C0E000001C00E0 6000003C00607000003C00603000003800703000007FFFF03800007FFFF8180000F80018 1C0000F000180C0000F0001C0E0001F0000C060001B0000C070001B0000E030003B00006 03000330000603800730000601800638000E01C00E18001C00E0FFFF01FFFFFCFFFF01FF FFFC2E2F7FAE1F>65 D E /Fn 2 51 df<3C7EFFFFFFFF7E3C08087A9414>1 D<0000FFFFC00007FFFFC0001FFFFFC0007F80000000FC00000001F000000003C0000000 07800000000F000000000E000000001E000000003C000000003800000000780000000070 000000007000000000F000000000E000000000E000000000E000000000FFFFFFFFC0FFFF FFFFC0FFFFFFFFC0E000000000E000000000E000000000F0000000007000000000700000 0000780000000038000000003C000000001E000000000E000000000F0000000007800000 0003C000000001F000000000FC000000007F800000001FFFFFC00007FFFFC00000FFFFC0 222B7AA52F>50 D E /Fo 6 121 df<3C007E00FF00FF00FF80FF807F803D8001800180 0180038003000300070006000E001C0038007000600009157A8714>59 D<000000C0000001C0000003C0000003800000038000000780000007000000070000000F 0000000E0000000E0000001E0000001C0000001C0000003C000000380000007800000070 00000070000000F0000000E0000000E0000001E0000001C0000001C0000003C000000380 00000780000007000000070000000F0000000E0000000E0000001E0000001C0000001C00 00003C00000038000000380000007800000070000000F0000000E0000000E0000001E000 0001C0000001C0000003C00000038000000380000007800000070000000F0000000E0000 000E0000001E0000001C0000001C0000003C000000380000003800000078000000700000 0070000000F0000000E0000000E00000001A437CB123>61 D<000700000F80001FC0001F C0000F8000070000000000000000000000000000000000000000000000000000000001E0 0007F8000E3C001C3E00383E00303E00703E00607E00E07C00C07C00C0FC0080F80000F8 0001F80001F00003F00003E00003E00007E00007C04007C0C00FC0C00F80C00F81C01F01 801F03801F07000F06000F1E0007F80001F000122E7EAC18>105 D<000000E0000001F0000003F0000003F0000003F0000001C00000000000000000000000 0000000000000000000000000000000000000000000000000000007C000003FE0000078F 80000E0780001C0780003807C0003007C000700FC000600F8000E00F8000C00F8000801F 8000001F8000001F0000001F0000003F0000003F0000003E0000003E0000007E0000007E 0000007C0000007C000000FC000000FC000000F8000000F8000001F8000001F8000001F0 000001F0000003F0000003F0000003E0000003E0000007E0003807C000FC0FC000FC0F80 00FC1F0000F83E0000F0F800007FF000001F8000001C3B81AC1D>I<07C007E0001FE03F F80018F8783E003879E01E00307B801F00707F001F00607F001F0060FE001F00E0FC001F 00C0FC001F00C0F8001F0081F8003F0001F8003E0001F0003E0001F0003E0003F0007E00 03F0007C0003E0007C0003E000FC0007E000F80807E000F81807C001F81807C001F0180F C001F0380FC003E0300F8003E0700F8003E0E01F8001E0C01F8001E3C01F0000FF000E00 003E00251F7E9D2B>110 D<003F007C0000FFC1FF0001C1E383800380F703C00700F60F C00E00FE0FC01C00FC0FC01800FC0FC03800FC07003000F800003000F800002001F80000 0001F000000001F000000001F000000003F000000003E000000003E000000003E0000000 07E001000007E003000007C003003807C007007C0FC00600FC0FC00E00FC1FC00C00FC1B C01C00F03BE038007071E0F0003FE0FFC0000F803F0000221F7E9D28>120 D E /Fp 2 89 df80 D88 D E /Fq 2 67 df<00000006000000000000000E000000 000000000F000000000000001F000000000000001F800000000000003F80000000000000 3BC000000000000039C000000000000079C000000000000071E000000000000070E00000 00000000F0F0000000000000E070000000000001E078000000000001C038000000000001 C03C000000000003E01C000000000003E01C000000000007F01E000000000007F00E0000 00000007F80F00000000000FB80700000000000F3C0780000000001F1C0380000000001E 1C0380000000001E1E03C0000000003E0E01C0000000003C0F01E0000000003C0700E000 0000007C0780F0000000007803807000000000F803807800000000F003C03800000000F0 01C03800000001F001E03C00000001E000E01C00000003E000E01E00000003E000F00E00 000003C000700F00000007C000780700000007C000380700000007C00038078000000F80 003C038000000FFFFFFC03C000001FFFFFFE01C000001FFFFFFE01E000001F00000E00E0 00003F00000F00F000003F000007007000007F000007007000007E000007807800007E00 000380380000FE000003803C0000EE000003C01C0001EE000001C01E0001CE000001C00E 0001CE000001C00E0003CE000001C00F00038E000001C00780078F000003C003801F0780 000F8003E0FFFFF000FFFFFFF8FFFFF000FFFFFFFCFFFFF000FFFFFFF83E407EBF28>65 D<7FFFFFFFFC0000FFFFFFFFFFC0007FFFFFFFFFF80001E007C1F7FC0000F00F00787E00 00700E00380F0000700E003C078000700E001E03C000700E000E01E000700E000E00E000 700E000F00E000700E000700F000700E0007007000700E0007007000700E000700700070 0E0007007000700E0007007000700E0007007000700E000700F000700E000700E000700E 000700E000700E000F01E000700E000E03C000700E000E078000700E001E0F0000700E00 3C3E0000700E00787C0000700E01F3F80000700E0FFFE00000700FFFFFE00000700FFFFF FC0000700FFFFFFF0000700E00FE3F8000700E001F07C000700E000781E000700E000380 F000700E0003C07800700E0001C03C00700E0001C01E00700E0001E00E00700E0000E00E 00700E0000E00F00700E0000E00700700E0000E00700700E0000E00700700E0000E00700 700E0000E00700700E0000E00700700E0000E00F00700E0000E00E00700E0001E00E0070 0E0001C01E00700E0001C03C00700E0003C07800700E000380F000700E000783E000700E 000F0FC000F00F003E7F8001E007C0FFFE007FFFFFFFFFF800FFFFFFFFFFC0007FFFFFFF F80000383E7FBD29>I E /Fr 18 112 df<003F0000000001800000FFC000000003C000 01E0E000000007C00007C0700000000FC0000F80380000001F80000F803E0000003F0000 1F001F0000007F00003F000FC00001FE00003E000EF00007FC00003E000F3F003EFC0000 7E00070FFFF8F800007C000700FFC1F000007C0007000003F00000FC0003800007E00000 FC0003800007C00000FC000380000F800000FC000380001F800000FC000380001F000000 FC000380003E000000FC000380007E000000FC000380007C000000FC00038000F8000000 FC00038001F8000000FC00038001F00000007C00070003E00000007C00070007E0000000 7E00070007C00000003E000F000F800000003E000E001F800000003F000E001F00000000 1F001C003E000000000F803C007E000000000F8038007C0000000007C07000F800000000 01E0E001F80000000000FFC003F000000000003F0003E0003F000000000007C000FFC000 0000000FC001E0E0000000000F8007C070000000001F000F8038000000003F000F803C00 0000003E001F001C000000007C003F000E00000000FC003E000E00000000F8003E000F00 000001F0007E000700000003F0007C000700000003E0007C000700000007C000FC000380 00000FC000FC00038000000F8000FC00038000001F0000FC00038000003F0000FC000380 00003E0000FC00038000007C0000FC0003800000FC0000FC0003800000F80000FC000380 0001F00000FC0003800003F00000FC0003800007E000007C0007000007C000007C000700 000F8000007E000700001F8000003E000F00001F0000003E000E00003E0000003F000E00 007E0000001F001C00007C0000000F803C0000F80000000F80380001F800000007C07000 01F000000001E0E00001E000000000FFC00000C0000000003F000041497BC34C>37 D<0000300000700000E00001C0000380000780000F00001E00003E00003C0000780000F8 0000F00001F00001E00003E00003E00007C00007C0000FC0000F80000F80001F80001F00 001F00003F00003F00003F00003E00007E00007E00007E00007E00007E00007E00007C00 00FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 00FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00007E00007E00007E00 007E00003E00003F00003F00003F00001F00001F00001F80000F80000F80000FC00007C0 0007C00003E00003E00001E00001F00000F00000F800007800003C00003E00001E00000F 000007800003800001C00000E0000070000030145A77C323>40 DI<00000006000000000000000F000000000000000F 000000000000000F000000000000000F000000000000000F000000000000000F00000000 0000000F000000000000000F000000000000000F000000000000000F000000000000000F 000000000000000F000000000000000F000000000000000F000000000000000F00000000 0000000F000000000000000F000000000000000F000000000000000F000000000000000F 000000000000000F000000000000000F000000000000000F000000000000000F00000000 0000000F000000000000000F000000000000000F000000007FFFFFFFFFFFFFE0FFFFFFFF FFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE00000000F000000000000000F00000000 0000000F000000000000000F000000000000000F000000000000000F000000000000000F 000000000000000F000000000000000F000000000000000F000000000000000F00000000 0000000F000000000000000F000000000000000F000000000000000F000000000000000F 000000000000000F000000000000000F000000000000000F000000000000000F00000000 0000000F000000000000000F000000000000000F000000000000000F000000000000000F 000000000000000F000000000000000F0000000000000006000000003C3C7BB447>43 D<0001FE0000000FFFC000003F03F000007C00F80000F8007C0001F0003E0003E0001F00 07C0000F8007C0000F800FC0000FC01F800007E01F800007E01F800007E03F800007F03F 800007F03F000003F07F000003F87F000003F87F000003F87F000003F87F000003F87F00 0003F8FF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF0000 03FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003 FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FC7F000003F8 7F000003F87F000003F87F000003F87F000003F83F800007F03F800007F03F800007F01F 800007E01F800007E01F800007E00FC0000FC00FC0000FC007E0001F8003E0001F0001F0 003E0000F8007C00007C00F800003F03F000000FFFC0000001FE0000263F7DBC2D>48 D<0001C0000003C0000007C000001FC000007FC00007FFC000FFFFC000FF9FC000F81FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000007FF000FFFFFFF8FFFFFFF8FFFFFFF81D3D78BC2D>I< 0007FC0000003FFF800000FFFFE00003F01FF80007C007FC000F0001FE001E0000FF001C 0000FF803C00007FC07800007FC07800003FE07000003FE0FF00003FE0FF80001FF0FFC0 001FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0001FF07F80001FF03F00001FF00C0000 1FF00000001FE00000003FE00000003FE00000003FC00000007FC00000007F80000000FF 80000000FF00000001FE00000001FC00000003F800000007F000000007E00000000FC000 00001F800000003F000000007E000000007C00000000F800000001F000000003E0000000 07C00000000F800000001F000070003E000070003C000070007800007000F00000E001E0 0000E003C00000E007800000E00F000001E01FFFFFFFE01FFFFFFFE03FFFFFFFE07FFFFF FFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0243D7CBC2D>I<0007FC0000003FFF800000F8 0FE00001E003F800078001FC000F0001FE000E0000FF001E0000FF801F80007F803FC000 7FC03FE0007FC03FE0007FC03FF0007FC03FE0007FC03FE0007FC01FE0007FC00FC0007F C00000007F80000000FF80000000FF00000000FF00000001FE00000001FE00000003FC00 000003F800000007E00000000FC00000003F0000001FFC0000001FFF800000000FE00000 0007F800000003FC00000001FE00000000FF00000000FF800000007FC00000007FC00000 007FE00000003FE00000003FE00000003FF00000003FF00C00003FF03F00003FF07F8000 3FF0FFC0003FF0FFC0003FF0FFC0003FF0FFC0003FE0FFC0003FE0FF80007FE07F00007F C07800007FC0780000FF803C0000FF801E0001FF000F0003FE0007C007FC0003F80FF000 00FFFFE000003FFF80000007F80000243F7CBC2D>I<0000000E000000001E000000003E 000000003E000000007E000000007E00000000FE00000001FE00000001FE00000003FE00 0000077E000000067E0000000E7E0000001C7E0000001C7E000000387E000000707E0000 00707E000000E07E000001C07E000001C07E000003807E000007007E000007007E00000E 007E00001C007E00001C007E000038007E000070007E000070007E0000E0007E0000C000 7E0001C0007E000380007E000300007E000700007E000E00007E000C00007E001C00007E 003800007E003800007E007000007E00E000007E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00000000FE00000000FE00000001FF000001FFFFFF0001 FFFFFF0001FFFFFF283E7EBD2D>I<06000003000780001F0007F800FE0007FFFFFE0007 FFFFFC0007FFFFF80007FFFFF00007FFFFC00007FFFF000007FFFC0000073FE000000700 000000070000000007000000000700000000070000000007000000000700000000070000 000007000000000700000000070000000007000000000701FE0000070FFF8000073E03E0 00077001F80007E000FC0007C0007E000780003F000700003F800600001F800000001FC0 0000001FC00000001FE00000000FE00000000FE00000000FE00000000FF00000000FF000 00000FF00C00000FF07F00000FF07F80000FF0FF80000FF0FF80000FF0FF80000FF0FF80 000FF0FF80000FE0FF00001FE0FC00001FE07000001FC07800001FC03800003F803C0000 3F801E00007F001F0000FE000F8001FC0007C003F80003F80FE00000FFFFC000003FFF00 000007F80000243F7CBC2D>I<00001FE0000000FFF8000003F03E00000FC00F00001F00 0780003E000780007E001FC000FC003FC001F8007FC003F8007FC003F0007FC007F0007F C00FE0003F800FE0001F001FE00000001FC00000001FC00000003FC00000003FC0000000 3FC00000007F800000007F800000007F80FE00007F87FF8000FF8F07E000FF9C01F000FF B800FC00FFB0007E00FFF0007E00FFE0003F00FFE0003F80FFC0003FC0FFC0003FC0FFC0 001FE0FFC0001FE0FFC0001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF8000 1FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF03F80001F F03FC0001FE03FC0001FE01FC0001FE01FC0003FC01FC0003FC00FE0003F800FE0003F80 07E0007F0003F0007E0001F800FC0000FC01F800007E07F000003FFFE000000FFF800000 03FC0000243F7CBC2D>I<38000000003C000000003F000000003FFFFFFFFC3FFFFFFFFC 3FFFFFFFFC3FFFFFFFF87FFFFFFFF87FFFFFFFF07FFFFFFFE078000001E070000003C070 0000078070000007007000000F00E000001E00E000001C00E000003C00E0000078000000 007000000000F000000001E000000001C000000003C0000000078000000007000000000F 000000001E000000001E000000003C000000003C000000007C000000007800000000F800 000000F800000001F800000001F000000003F000000003F000000003F000000007F00000 0007F000000007F00000000FF00000000FE00000000FE00000001FE00000001FE0000000 1FE00000001FE00000001FE00000001FE00000003FE00000003FE00000003FE00000003F E00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000001FC0 0000000700000026407BBD2D>I<0003FC0000001FFF8000007C07E00000F001F80001E0 007C0003C0003E000780001F000F00001F000F00000F801E00000F801E00000FC03E0000 07C03E000007C03E000007C03E000007C03F000007C03F000007C03F80000F803FC0000F 801FE0001F801FF0001F001FFC003E000FFE007C000FFF80780007FFC0F00003FFF3E000 01FFFF800000FFFF0000003FFF0000001FFFC000000FFFE000003FFFF8000078FFFC0001 F07FFE0003E01FFF0007C00FFF800F8003FFC01F0001FFC03F00007FE03E00003FE07E00 001FE07C00000FF07C000007F0F8000003F0F8000003F0F8000003F0F8000001F0F80000 01F0F8000001F0F8000001F0FC000001E07C000003E07C000003E07E000003C03F000007 C01F00000F801F80001F000FC0003E0007F0007C0001FC03F80000FFFFE000001FFF8000 0003FC0000243F7CBC2D>I<0003FC0000001FFF0000007E07C00000FC03F00001F801F8 0003F000FC0007E0007C000FE0007E001FC0007F001FC0003F003FC0003F803F80003F80 7F80003FC07F80003FC07F80001FC0FF80001FC0FF80001FE0FF80001FE0FF80001FE0FF 80001FE0FF80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF07F80 001FF07F80003FF07F80003FF07F80003FF03FC0003FF03FC0003FF01FC0007FF00FC000 7FF007E000FFF007F000DFF003F001DFF000F8039FF0007E0F1FF0001FFE1FE00007F01F E00000001FE00000001FE00000003FC00000003FC00000003FC00000003FC00000003F80 0000007F800F80007F001FC0007F003FE000FE003FE000FE003FE001FC003FE001F8003F C003F0003F8007F0001E000FE0001F001FC0000FC07F000003FFFE000001FFF80000003F C00000243F7CBC2D>I<7FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFF FFFFFFFFFFE0000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000007FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFF FFFFFFFFFFE03C167BA147>61 D<000000007C000003F801FF00001FFF078F80007E0FDE 1F8000F803F81F8003F001F81F8003F001F81F8007E000FC06000FE000FE00000FC0007E 00001FC0007F00001FC0007F00001FC0007F00001FC0007F00001FC0007F00001FC0007F 00001FC0007F00001FC0007F00000FC0007E00000FE000FE000007E000FC000003F001F8 000003F001F8000001F803E0000003FE0FC00000071FFF0000000703F800000006000000 00000E00000000000E00000000000E00000000000F00000000000F00000000000F800000 00000FC00000000007FFFFE0000007FFFFFE000003FFFFFF800001FFFFFFE00000FFFFFF F00003FFFFFFF8000FC0001FFC001F000001FE003E000000FE007C0000007E007C000000 3F00F80000003F00F80000001F00F80000001F00F80000001F00F80000001F00FC000000 3F007C0000003E007E0000007E003F000000FC001F800001F8000FC00003F00003F0000F C00000FE007F0000003FFFFC00000003FFC00000293D7EA82D>103 D<01FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0003FE 00FFFFF8FFFFF8FFFFF8153F7DBE1A>108 D<0000FF00000007FFE000001F81F800007E 007E0000F8001F0001F0000F8003E00007C007C00003E00FC00003F01F800001F81F8000 01F83F800001FC3F800001FC7F000000FE7F000000FE7F000000FE7F000000FEFF000000 FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FF FF000000FF7F000000FE7F000000FE7F000000FE3F800001FC3F800001FC3F800001FC1F 800001F80FC00003F00FC00003F007E00007E003F0000FC001F8001F80007E007E00003F 81FC00000FFFF0000000FF0000282A7EA82D>111 D E /Fs 9 107 df<7FFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFE3804799847>0 D<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A799B19>I<000FFC0000003FFF 000000FFFFC00003FFFFF00007FFFFF8000FFFFFFC001FFFFFFE003FFFFFFF003FFFFFFF 007FFFFFFF807FFFFFFF807FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0 FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFF807F FFFFFF807FFFFFFF803FFFFFFF003FFFFFFF001FFFFFFE000FFFFFFC0007FFFFF80003FF FFF00000FFFFC000003FFF0000000FFC000022227BA72D>15 D<0000000000000E000000 0000003F000000000000FF000000000003FE00000000000FF800000000003FE000000000 00FF800000000003FE00000000000FF800000000003FE00000000000FF800000000003FE 00000000000FF800000000007FE00000000001FF800000000007FE00000000001FF80000 0000007FC00000000001FF000000000007FC00000000001FF000000000007FC000000000 01FF000000000007FC00000000001FF000000000007FC00000000000FF000000000000FF 0000000000007FC000000000001FF0000000000007FC000000000001FF0000000000007F C000000000001FF0000000000007FC000000000001FF0000000000007FC000000000001F F0000000000007FE000000000001FF8000000000007FE000000000001FF8000000000003 FE000000000000FF8000000000003FE000000000000FF8000000000003FE000000000000 FF8000000000003FE000000000000FF8000000000003FE000000000000FF000000000000 3F0000000000000E00000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000007FFF FFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFE384879B947>20 D<70000000000000FC000000000000FF0000000000007FC000000000001FF00000000000 07FC000000000001FF0000000000007FC000000000001FF0000000000007FC0000000000 01FF0000000000007FC000000000001FF0000000000007FE000000000001FF8000000000 007FE000000000001FF8000000000003FE000000000000FF8000000000003FE000000000 000FF8000000000003FE000000000000FF8000000000003FE000000000000FF800000000 0003FE000000000000FF000000000000FF000000000003FE00000000000FF80000000000 3FE00000000000FF800000000003FE00000000000FF800000000003FE00000000000FF80 0000000003FE00000000000FF800000000007FE00000000001FF800000000007FE000000 00001FF800000000007FC00000000001FF000000000007FC00000000001FF00000000000 7FC00000000001FF000000000007FC00000000001FF000000000007FC00000000000FF00 0000000000FC000000000000700000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000007FFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF FE384879B947>I<001FE0000000002000FFFC000000007001FFFF000000007007FFFFC0 000000700FFFFFF0000000701FFFFFF8000000701FE01FFE000000F03F0003FF000001E0 7E0000FFC00001E07800003FF00007E07800000FFC000FC0F0000007FF807F80E0000001 FFFFFF80E0000000FFFFFF00E00000003FFFFE00E00000000FFFF800E000000003FFF000 40000000007F800000000000000000000000000000000000000000000000000000000000 00000000001FE0000000002000FFFC000000007001FFFF000000007007FFFFC000000070 0FFFFFF0000000701FFFFFF8000000701FE01FFE000000F03F0003FF000001E07E0000FF C00001E07800003FF00007E07800000FFC000FC0F0000007FF807F80E0000001FFFFFF80 E0000000FFFFFF00E00000003FFFFE00E00000000FFFF800E000000003FFF00040000000 007F80003C287BAB47>25 D<0000003F000003FF00000FE000003F8000007E000001FC00 0001F8000003F0000003F0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E000000FE000000FC000001FC000003F8000003F0000 00FE000003F800007FE00000FF0000007FE0000003F8000000FE0000003F0000003F8000 001FC000000FC000000FE0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000003F0000003F0000001F8000001FC0000007E00 00003F8000000FE0000003FF0000003F205B7AC32D>102 DI< 60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F060045B76C319>106 D E /Ft 7 55 df<003FC00000FFF00003E07C0007C03E000F801F000F000F001E000780 1E0007803E0007C03E0007C07C0003E07C0003E07C0003E07C0003E07C0003E0FC0003F0 FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0 FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07C0003E07C0003E0 7E0007E03E0007C03E0007C03E0007C01F000F800F000F000F801F0007C03E0003F0FC00 00FFF000003FC0001C2D7DAB23>48 D<000C00003C00007C0003FC00FFFC00FC7C00007C 00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C 00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C 00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000FE007FFF FE7FFFFE172C7AAB23>I<007F800001FFF0000780FC000E003F001C001F8038000FC070 000FC0600007E0F00007E0FC0007F0FE0007F0FE0003F0FE0003F0FE0003F07C0007F000 0007F0000007F0000007E000000FE000000FC000001FC000001F8000003F0000007E0000 007C000000F8000001F0000003E0000007C000000F8000001E0000003C00000078000000 F0003000E0003001C0003003800060070000600E0000E01FFFFFE03FFFFFE07FFFFFC0FF FFFFC0FFFFFFC01C2C7DAB23>I<003FC00001FFF00007C0FC000E007E001C003F001C00 1F803F001FC03F001FC03F800FC03F000FC03F000FC00C001FC000001FC000001F800000 1F8000003F0000003E0000007C000000F8000003F00000FFC00000FFF0000000FC000000 3F0000001F8000001FC000000FC000000FE000000FE0000007F0000007F0380007F07C00 07F0FE0007F0FE0007F0FE0007F0FE000FE0F8000FE060000FC070001FC038001F801E00 3F000780FC0001FFF000007FC0001C2D7DAB23>I<00000E0000000E0000001E0000003E 0000003E0000007E000000FE000000FE000001BE000003BE0000033E0000063E00000E3E 00000C3E0000183E0000383E0000303E0000603E0000E03E0000C03E0001803E0003803E 0003003E0006003E000E003E000C003E0018003E0038003E0030003E0060003E00E0003E 00FFFFFFFCFFFFFFFC00003E0000003E0000003E0000003E0000003E0000003E0000003E 0000003E0000003E0000007F00001FFFFC001FFFFC1E2D7EAC23>I<0C0001800FC01F80 0FFFFF000FFFFE000FFFFC000FFFF0000FFFC0000C7E00000C0000000C0000000C000000 0C0000000C0000000C0000000C0000000C0000000C1FC0000C7FF8000DE07C000F801F00 0F001F800E000F800C0007C0000007E0000007E0000003E0000003F0000003F0000003F0 000003F0780003F0FC0003F0FC0003F0FC0003F0FC0003F0F80007E0E00007E0600007C0 70000FC038000F801C001F000E003E000780F80001FFE000007F80001C2D7DAB23>I<00 03F800000FFE00003E078000F8018001F007C003E00FC007C00FC00F800FC00F800FC01F 0007801F0000003E0000003E0000007E0000007E0000007C0000007C0FC000FC3FF000FC F07C00FDC01E00FF800F00FF000F80FF0007C0FE0007E0FE0007E0FE0003E0FC0003F0FC 0003F0FC0003F0FC0003F07C0003F07C0003F07C0003F07E0003F07E0003F03E0003E03E 0007E01E0007E01F0007C00F000F8007801F0003C03E0001E07C00007FF000001FC0001C 2D7DAB23>I E /Fu 30 122 df<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A 798919>58 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E60006000600060006000E0 00C000C000C001C001800380030007000E001C001800380030000B1C798919>I<000000 0000000E0000000000003F000000000000FF000000000003FE00000000000FF800000000 003FE00000000000FF800000000003FE00000000000FF800000000003FE00000000000FF 800000000003FE00000000001FF800000000007FE00000000001FF800000000007FE0000 0000001FF000000000007FC00000000001FF000000000007FC00000000001FF000000000 007FC00000000001FF000000000007FC00000000001FF000000000007FC00000000000FF 000000000000FF0000000000007FC000000000001FF0000000000007FC000000000001FF 0000000000007FC000000000001FF0000000000007FC000000000001FF0000000000007F C000000000001FF0000000000007FE000000000001FF8000000000007FE000000000001F F8000000000003FE000000000000FF8000000000003FE000000000000FF8000000000003 FE000000000000FF8000000000003FE000000000000FF8000000000003FE000000000000 FF0000000000003F0000000000000E383679B147>I<000000018000000003C000000007 C000000007C000000007800000000F800000000F800000000F000000001F000000001F00 0000001E000000003E000000003E000000003C000000007C000000007C00000000780000 0000F800000000F800000000F000000001F000000001F000000001E000000003E0000000 03E000000003C000000007C000000007C000000007800000000F800000000F800000001F 000000001F000000001E000000003E000000003E000000003C000000007C000000007C00 0000007800000000F800000000F800000000F000000001F000000001F000000001E00000 0003E000000003E000000003C000000007C000000007C000000007800000000F80000000 0F800000000F000000001F000000001F000000001E000000003E000000003E000000007C 000000007C000000007800000000F800000000F800000000F000000001F000000001F000 000001E000000003E000000003E000000003C000000007C000000007C000000007800000 000F800000000F800000000F000000001F000000001F000000001E000000003E00000000 3E000000003C000000007C000000007C000000007800000000F800000000F800000000F0 000000006000000000225B7BC32D>I<70000000000000FC000000000000FF0000000000 007FC000000000001FF0000000000007FC000000000001FF0000000000007FC000000000 001FF0000000000007FC000000000001FF0000000000007FC000000000001FF800000000 0007FE000000000001FF8000000000007FE000000000000FF8000000000003FE00000000 0000FF8000000000003FE000000000000FF8000000000003FE000000000000FF80000000 00003FE000000000000FF8000000000003FE000000000000FF000000000000FF00000000 0003FE00000000000FF800000000003FE00000000000FF800000000003FE00000000000F F800000000003FE00000000000FF800000000003FE00000000000FF800000000007FE000 00000001FF800000000007FE00000000001FF800000000007FC00000000001FF00000000 0007FC00000000001FF000000000007FC00000000001FF000000000007FC00000000001F F000000000007FC00000000000FF000000000000FC000000000000700000000000003836 79B147>I<000000001FF8000700000001FFFE00070000000FFFFF800E0000007FF007E0 1E000001FF0000F03E000003FC0000787E00000FF000003CFC00003FC000001FFC00007F 8000000FFC0000FF0000000FFC0001FE00000007F80007F800000007F8000FF000000003 F8001FF000000003F8001FE000000003F0003FC000000001F0007F8000000001F000FF80 00000001F001FF0000000001E001FE0000000001E003FE0000000001E007FC0000000001 E007FC0000000001C00FF80000000001C00FF80000000001C01FF00000000001C01FF000 00000000003FF00000000000003FE00000000000003FE00000000000007FE00000000000 007FC00000000000007FC00000000000007FC0000000000000FFC0000000000000FF8000 0000000000FF80000000000000FF80000000000000FF80000000000000FF800000000000 00FF00000000000000FF00000000003C00FF00000000003C00FF00000000003800FF0000 0000003800FF00000000007800FF00000000007000FF0000000000F0007F8000000000E0 007F8000000001E0007F8000000003C0003F800000000380003FC00000000780003FC000 00000F00001FC00000001E00000FE00000003C00000FF000000078000007F8000000F000 0003F8000001E0000001FE000007C0000000FF00000F000000007FC0007E000000001FF8 03F80000000007FFFFE00000000001FFFF8000000000001FF80000000040427BBF41>67 D<0001FFFFFFC03FFFFFF80001FFFFFFC03FFFFFF00001FFFFFF803FFFFFF0000001FF80 00003FF000000001FF0000003FE000000001FE0000003FC000000001FE0000003FC00000 0001FE0000007FC000000003FE0000007FC000000003FC0000007F8000000003FC000000 7F8000000003FC000000FF8000000007FC000000FF8000000007F8000000FF0000000007 F8000000FF0000000007F8000001FF000000000FF8000001FF000000000FF0000001FE00 0000000FF0000001FE000000000FF0000003FE000000001FF0000003FE000000001FE000 0003FC000000001FE0000003FC000000001FE0000007FC000000003FE0000007FC000000 003FC0000007F8000000003FC0000007F8000000003FC000000FF8000000007FFFFFFFFF F8000000007FFFFFFFFFF0000000007FFFFFFFFFF0000000007F8000001FF000000000FF 8000001FF000000000FF0000001FE000000000FF0000001FE000000000FF0000003FE000 000001FF0000003FE000000001FE0000003FC000000001FE0000003FC000000001FE0000 007FC000000003FE0000007FC000000003FC0000007F8000000003FC0000007F80000000 03FC000000FF8000000007FC000000FF8000000007F8000000FF0000000007F8000000FF 0000000007F8000001FF000000000FF8000001FF000000000FF0000001FE000000000FF0 000001FE000000000FF0000003FE000000001FF0000003FE000000001FE0000003FC0000 00001FE0000003FC000000003FE0000007FC000000003FE0000007FC000000003FC00000 07F8000000007FE000000FFC000000FFFFFFE01FFFFFFC0000FFFFFFE01FFFFFFC0000FF FFFFE01FFFFFF800004D3E7DBD4C>72 D<0001FFFFFFF0000001FFFFFFF0000001FFFFFF F000000001FF800000000001FF000000000001FE000000000001FE000000000001FE0000 00000003FE000000000003FC000000000003FC000000000003FC000000000007FC000000 000007F8000000000007F8000000000007F800000000000FF800000000000FF000000000 000FF000000000000FF000000000001FF000000000001FE000000000001FE00000000000 1FE000000000003FE000000000003FC000000000003FC000000000003FC000000000007F C000000000007F8000000000007F8000000000007F800000000000FF800000000000FF00 0000000000FF000000000000FF000000000001FF000000000001FE000000000001FE0000 000C0001FE0000001E0003FE0000001C0003FC0000001C0003FC0000003C0003FC000000 380007FC000000380007F8000000780007F8000000700007F8000000F0000FF8000000F0 000FF0000001E0000FF0000001E0000FF0000003E0001FF0000007C0001FE000000FC000 1FE000001FC0003FE000003F80003FE00000FF80003FC00003FF80007FC0001FFF00FFFF FFFFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFE00373E7DBD3E>76 D<0001FFFF8000000000 3FFFF00001FFFF80000000007FFFE00001FFFF8000000000FFFFE0000001FF8000000000 FFE000000001FFC000000001FFC000000001DFC000000003BF8000000001DFC000000003 BF8000000001DFC0000000077F8000000003DFC0000000077F80000000039FC00000000E 7F00000000039FC00000001C7F00000000038FE00000001CFF00000000078FE000000038 FF00000000070FE000000070FE00000000070FE000000070FE00000000070FE0000000E1 FE000000000F0FE0000001C1FE000000000E0FE0000001C1FC000000000E07F000000381 FC000000000E07F000000383FC000000001E07F000000703FC000000001C07F000000E03 F8000000001C07F000000E03F8000000001C07F000001C07F8000000003C07F000003807 F8000000003807F000003807F0000000003803F800007007F0000000003803F80000E00F F0000000007803F80000E00FF0000000007003F80001C00FE0000000007003F80001C00F E0000000007003F80003801FE000000000F003F80007001FE000000000E001FC0007001F C000000000E001FC000E001FC000000000E001FC001C003FC000000001E001FC001C003F C000000001C001FC0038003F8000000001C001FC0070003F8000000001C001FC0070007F 8000000003C000FE00E0007F80000000038000FE00E0007F00000000038000FE01C0007F 00000000038000FE038000FF00000000078000FE038000FF00000000070000FE070000FE 00000000070000FE0E0000FE000000000700007F0E0001FE000000000F00007F1C0001FE 000000000E00007F380001FC000000000E00007F380001FC000000000E00007F700003FC 000000001E00007F700003FC000000001C00007FE00003F8000000001C00007FC00003F8 000000003C00003FC00007F8000000007C00003F800007F800000000FE00003F000007F0 00000003FF00003F00000FF8000000FFFFFC003E001FFFFFF80000FFFFFC003C001FFFFF F80000FFFFFC001C001FFFFFF000005C3E7DBD58>I<000000003FF0000000000003FFFF 00000000001FC03FC0000000007E0007E000000001F80001F800000007E00000FC000000 0FC000007E0000003F0000003F0000007E0000001F800000FC0000001FC00003F8000000 0FC00007F00000000FE0000FE00000000FE0001FC000000007F0001FC000000007F0003F 8000000007F8007F0000000007F800FF0000000007F801FE0000000003F801FE00000000 03F803FC0000000003FC03FC0000000003FC07F80000000003FC0FF80000000007FC0FF0 0000000007FC1FF00000000007FC1FF00000000007FC1FE00000000007FC3FE000000000 07FC3FE00000000007F87FC0000000000FF87FC0000000000FF87FC0000000000FF87FC0 000000000FF8FF80000000001FF0FF80000000001FF0FF80000000001FF0FF8000000000 3FE0FF80000000003FE0FF80000000003FE0FF00000000007FC0FF00000000007FC0FF00 00000000FF80FF0000000000FF80FF0000000000FF00FF0000000001FE00FF0000000003 FE00FF0000000003FC00FF0000000007F8007F8000000007F8007F800000000FF0007F80 0000001FE0003F800000001FC0003F800000003F80001FC00000007F00001FC0000000FE 00000FE0000001FC00000FE0000003F8000007F0000007E0000003F800001FC0000001FC 00003F80000000FE0000FE000000003F8003F8000000000FE01FE00000000003FFFF0000 000000007FF0000000003E427BBF45>79 D<0001FFFFFFFFF000000001FFFFFFFFFF0000 0001FFFFFFFFFFC000000001FF00007FE000000001FF00000FF800000001FE000003FC00 000001FE000001FC00000003FE000001FE00000003FE000000FF00000003FC000000FF00 000003FC000000FF00000007FC000000FF00000007FC000000FF80000007F8000000FF80 000007F8000000FF8000000FF8000000FF8000000FF8000001FF0000000FF0000001FF00 00000FF0000001FF0000001FF0000001FE0000001FF0000003FE0000001FE0000003FC00 00001FE0000007FC0000003FE0000007F80000003FE000000FF00000003FC000001FE000 00003FC000003FC00000007FC000007F800000007FC00000FE000000007F800003FC0000 00007F80003FF000000000FFFFFFFFC000000000FFFFFFFC0000000000FF000000000000 0000FF0000000000000001FF0000000000000001FF0000000000000001FE000000000000 0001FE0000000000000003FE0000000000000003FE0000000000000003FC000000000000 0003FC0000000000000007FC0000000000000007FC0000000000000007F8000000000000 0007F8000000000000000FF8000000000000000FF8000000000000000FF0000000000000 000FF0000000000000001FF0000000000000001FF0000000000000001FE0000000000000 001FE0000000000000003FE0000000000000003FE0000000000000003FC0000000000000 007FE0000000000000FFFFFFE00000000000FFFFFFE00000000000FFFFFFE00000000000 413E7DBD3A>I<01FFFFFFFFFFFFFC01FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FF0003FE 000FFC03F80003FC0001FC07E00003FC0000F807C00007FC0000F807800007FC0000780F 800007F80000780F000007F80000781E00000FF80000781E00000FF80000781C00000FF0 0000703C00000FF00000703800001FF00000703800001FF00000707800001FE000007070 00001FE00000707000003FE00000F0F000003FE00000E0E000003FC00000E00000003FC0 0000000000007FC00000000000007FC00000000000007F800000000000007F8000000000 0000FF80000000000000FF80000000000000FF00000000000000FF00000000000001FF00 000000000001FF00000000000001FE00000000000001FE00000000000003FE0000000000 0003FE00000000000003FC00000000000003FC00000000000007FC00000000000007FC00 000000000007F800000000000007F80000000000000FF80000000000000FF80000000000 000FF00000000000000FF00000000000001FF00000000000001FF00000000000001FE000 00000000001FE00000000000003FE00000000000003FE00000000000003FC00000000000 003FC00000000000007FC00000000000007FC0000000000000FFC0000000000001FFE000 0000001FFFFFFFFC0000001FFFFFFFFC0000001FFFFFFFF80000003E3D7FBC35>84 D<00007FFFFF8007FFFFC00000FFFFFF8007FFFFC00000FFFFFF8007FFFFC0000001FFF8 0000FFF8000000007FE000007F80000000007FC000007F00000000003FC000007C000000 00003FE000007800000000003FE00000F000000000001FF00001E000000000001FF00003 C000000000000FF800078000000000000FF8000F0000000000000FF8000E000000000000 07FC001C00000000000007FC003800000000000003FE007000000000000003FE00E00000 0000000003FE01E000000000000001FF03C000000000000001FF078000000000000000FF 8F0000000000000000FF9E0000000000000000FFBC00000000000000007FF80000000000 0000007FF000000000000000003FE000000000000000003FE000000000000000003FE000 000000000000001FF000000000000000001FF000000000000000001FF800000000000000 003FF800000000000000007FF80000000000000000F7FC0000000000000001E7FC000000 0000000001C3FE000000000000000383FE000000000000000703FE000000000000000E01 FF000000000000001E01FF000000000000003C00FF800000000000007800FF8000000000 0000F000FF80000000000001E0007FC0000000000003C0007FC000000000000780003FE0 00000000000700003FE000000000000E00003FE000000000001C00001FF0000000000038 00001FF000000000007000000FF80000000000F000000FF80000000001E000000FF80000 000003C0000007FC0000000007C0000007FC000000001F80000003FE000000007FC00000 07FE00000003FFE000001FFF0000007FFFFC0001FFFFFE0000FFFFFC0003FFFFFE0000FF FFFC0003FFFFFE00004A3E7EBD4B>88 DI<00001F8000000000FFE000000003F0707000000FC039F800001F801DF800 003F000FF800007E000FF00000FC000FF00001FC0007F00003F80007F00007F00007E000 07F00007E0000FE00007E0001FE0000FE0001FE0000FC0003FC0000FC0003FC0000FC000 3FC0001FC0007FC0001F80007F80001F80007F80001F80007F80003F8000FF80003F0000 FF00003F0000FF00003F0000FF00007F0000FF00007E0380FE00007E0380FE00007E0380 FE0000FE0380FE0000FC07807E0001FC07007E0003FC07007E0003FC0F003F0007FC0E00 3F000EFC0E001F801C7C1C000F80787C1C0007C1F03E380001FFC01FF000007F0007C000 29297DA730>97 D<001FC000000FFFC000000FFF8000000FFF800000003F800000003F80 0000003F000000003F000000007F000000007F000000007E000000007E00000000FE0000 0000FE00000000FC00000000FC00000001FC00000001FC00000001F800000001F8000000 03F800000003F800000003F000000003F03F800007F0FFE00007F3C1F80007E700FC0007 FE007E000FFC003E000FF8003F000FF0003F000FE0003F801FE0001F801FC0001F801F80 001F801F80003FC03F80003FC03F80003FC03F00003FC03F00003FC07F00007FC07F0000 7F807E00007F807E00007F807E0000FF80FE0000FF00FC0000FF00FC0000FF00FC0001FE 00FC0001FE00FC0001FC00FC0003FC00F80003F800F80007F8007C0007F0007C000FE000 7C000FC0003C001F80003E003F00001E007E00000F00F800000783F0000003FFC0000000 FE00000022407CBE27>I<000007F00000007FFE000001FC0F000007E00380000FC001C0 003F8001E0007F0007E000FE001FE001FC001FE003F8001FE003F8001FC007F0001FC00F F0001F800FE00000001FE00000003FC00000003FC00000003FC00000007FC00000007F80 0000007F800000007F80000000FF80000000FF00000000FF00000000FF00000000FF0000 0000FF00000000FF000000007E000000607F000000E07F000001E07F000003C03F000007 803F80000F001F80001E000FC0007C0007E001F00001F01FC00000FFFF0000001FF00000 23297DA727>I<0000000007F000000003FFF000000003FFE000000003FFE0000000000F E0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001F 80000000001F80000000003F80000000003F80000000003F00000000003F00000000007F 00000000007F00000000007E00000000007E0000000000FE0000000000FE0000000000FC 0000001F80FC000000FFE1FC000003F071FC00000FC039F800001F801DF800003F000FF8 00007E000FF80000FC000FF00001FC0007F00003F80007F00007F00007F00007F00007E0 000FE00007E0001FE0000FE0001FE0000FE0003FC0000FC0003FC0000FC0003FC0001FC0 007FC0001FC0007F80001F80007F80001F80007F80003F8000FF80003F8000FF00003F00 00FF00003F0000FF00007F0000FF00007F0380FE00007E0380FE00007E0380FE0000FE03 80FE0000FE07807E0001FC07007E0003FC07007E0003FC0F003F0007FC0E003F000EFC0E 001F801C7C1C000F80787C1C0007C1F03E380001FFC01FF000007F0007C0002C407DBE2F >I<00001FE0000000FFFC000003F01E00000FC00F00003F800780007E0007C000FC0003 C003F80003C007F80003C007F00007C00FE00007801FE00007801FC0000F803FC0001F00 3FC0003E007F8001FC007F801FF000FFFFFF8000FFFFF80000FF00000000FF00000000FF 00000000FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 000000FE000000C0FE000001C07E000003C07E000007803F00000F003F00001E001F0000 3C000F8000F80007C003E00003E03F800000FFFE0000003FE0000022297CA72A>I<0000 00003E0000000000FFC000000003E1E000000007C0F00000000F81F00000000F87F00000 001F8FF00000001F0FF00000003F0FF00000003F0FF00000003F0FE00000007E03800000 007E00000000007E00000000007E00000000007E0000000000FC0000000000FC00000000 00FC0000000000FC0000000000FC0000000001FC0000000001F80000000001F800000000 01F800000003FFFFFC000003FFFFFC000003FFFFFC00000003F00000000003F000000000 03F00000000007F00000000007E00000000007E00000000007E00000000007E000000000 0FE0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000 1FC0000000001F80000000001F80000000001F80000000001F80000000003F8000000000 3F00000000003F00000000003F00000000003F00000000007F00000000007E0000000000 7E00000000007E00000000007E0000000000FE0000000000FC0000000000FC0000000000 FC0000000000FC0000000001FC0000000001F80000000001F80000000001F80000000001 F80000000003F00000000003F00000000003F00000000003E00000001E07E00000007F07 E00000007F07C0000000FF07C0000000FF0F80000000FF0F80000000FE0F00000000F81E 00000000703E000000007878000000001FF00000000007C0000000002C537CBF2D>I<00 003C0000FE0000FE0001FE0001FE0001FE0001FC00007000000000000000000000000000 0000000000000000000000000000000000000000000000000000007E0001FF8003C7C007 03C00F03E00E03E01C03E01C07E03807E03807E0780FE0700FC0700FC0F01FC0F01F8000 1F80003F80003F00007F00007E00007E0000FE0000FC0000FC0001FC0001F80003F80E03 F00E03F00E07F01E07E01C07E01C07E03C07C03807C07807C07007C0E007C1E003E3C001 FF00007C00173E7EBC1F>105 D<0001FC00000000FFFC00000000FFF800000000FFF800 00000003F80000000003F80000000003F00000000003F00000000007F00000000007F000 00000007E00000000007E0000000000FE0000000000FE0000000000FC0000000000FC000 0000001FC0000000001FC0000000001F80000000001F80000000003F80000000003F8000 0000003F00000000003F0000FC00007F0003FE00007F000F0780007E003C0F80007E0070 3F8000FE00E03F8000FE01C07F8000FC03807F8000FC07007F8001FC0E007F0001FC1C00 1C0001F83800000001F87000000003F8E000000003F9C000000003F38000000003FF0000 000007FF0000000007FFF000000007E3FE00000007E07F8000000FE01FC000000FE00FE0 00000FC007E000000FC007F000001FC003F000001FC003F00E001F8003F00E001F8003F0 0E003F8003F01E003F8007F01C003F0007E01C003F0007E01C007F0007E038007F0007E0 38007E0003E078007E0003E07000FE0001E0E000FE0001F1E000FC00007F80003800003E 000029407CBE2F>107 D<0007F003FFF003FFE003FFE0000FE0000FE0000FC0000FC000 1FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F00007E00007E0000 FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F00003F00007 F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F 80003F80003F00003F00007F00007F03807E03807E0380FE0380FE0780FC0700FC0700FC 0F00FC0E00FC0E007C1C007C3C003E38001FF00007C00014407DBE1B>I<01F0000FF000 0007FC003FFE00000F1F00F01F00000E1F03C00F80001E0F87000FC0001C0F8E0007C000 3C0FDC0007E000380FF80007E000380FF00007E000781FF00007E000701FE00007E00070 1FC00007E000701FC00007E000F01F80000FE000F03F80000FC000003F00000FC000003F 00000FC000003F00001FC000007F00001F8000007E00001F8000007E00003F8000007E00 003F000000FE00003F000000FC00007F000000FC00007E000000FC00007E000001FC0000 FE038001F80000FC038001F80000FC038001F80001FC078003F80001F8070003F00001F8 070003F00001F80F0003F00001F00E0007F00001F01E0007E00001F01C0007E00001F038 0007E00001F078000FE00000F8F0000FC000007FC000038000001F000031297EA737> 110 D<000007F80000007FFE000001FC0F800007E007E0000FC003F0003F8001F8007F00 01F800FE0000FC01FC0000FC03F80000FE03F80000FE07F00000FE0FF00000FE0FE00000 FE1FE00000FF3FC00000FF3FC00000FF3FC00001FE7FC00001FE7F800001FE7F800001FE 7F800003FEFF800003FCFF000003FCFF000003FCFF000007F8FF000007F8FF00000FF0FF 00000FF07E00000FE07F00001FC07F00003F807F00003F803F00007F001F8000FC001F80 01F8000FC003F00007E00FC00001F03F000000FFFC0000001FE0000028297DA72C>I<00 07C000FE00000FF003FF80001C7C0F07E000383C1C03F000783E7801F800703EF000F800 F03FE000FC00E03FC000FC00E03F8000FE01E07F80007E01C07F00007E01C07E00007E01 C07E0000FF03C0FE0000FF03C0FE0000FF0000FC0000FF0000FC0000FF0001FC0001FF00 01FC0001FE0001F80001FE0001F80001FE0003F80003FE0003F80003FC0003F00003FC00 03F00003FC0007F00007F80007F00007F80007E00007F00007E0000FF0000FE0000FE000 0FE0001FE0000FE0001FC0000FE0003F80001FE0003F00001FF0007E00001FF000FC0000 1FB801F800003FBC03E000003F9E0FC000003F07FF0000003F01F80000007F0000000000 7F00000000007E00000000007E0000000000FE0000000000FE0000000000FC0000000000 FC0000000001FC0000000001FC0000000001F80000000001F80000000003F80000000003 F800000000FFFFE0000000FFFFE0000000FFFFE0000000303A84A72E>I<00001FC00000 00FFF8000003E03C000007800E00001E000700001E000780003C000F800078001F800078 003F800078003F8000F8003F0000F8003F0000F8001C0000FC00000000FE00000000FFE0 000000FFFE0000007FFFC000003FFFE000001FFFF800000FFFFC000003FFFC0000001FFE 00000003FE00000000FE000000007E000C00003E003F00003E007F80003E007F80003E00 FF00003C00FF00003C00FF00007800FC00007800F00000F000700001E000780003C0003C 000780000F803E000003FFF80000007FC0000021297CA72B>115 D<000070000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003F0 000003F0000007F0000007F0000007E0000007E000000FE000000FE000000FC000000FC0 007FFFFFF0FFFFFFF0FFFFFFE0001F8000003F8000003F8000003F0000003F0000007F00 00007F0000007E0000007E000000FE000000FE000000FC000000FC000001FC000001FC00 0001F8000001F8000003F8000003F8000003F0000003F0000007F0000007F001C007E001 C007E003C00FE003800FE003800FC007800FC007000FC00E000FC01E000FC03C0007C038 0007C0700003E1E00001FF8000003E00001C3A7EB821>I<0001F8003F000007FE00FFE0 001E0F83C0F0003807C780F8007003CF03F800E003FE03F801C003FC07F803C003FC07F8 038003F807F8070003F807F0070003F801C00E0003F000000E0003F000001E0007F00000 1E0007F00000000007E00000000007E0000000000FE0000000000FC0000000000FC00000 00000FC0000000001FC0000000001F80000000001F80000000001F80000000003F800000 00003F0001C000003F0001C000003F0001C000007F0003C01E007F0003803F007E000780 7F80FE0007007F80FE000F00FF81FE001E00FF01DF001C00FE03DF0038007C078F80F000 3C0F07C1E0001FFC03FF800007F0007E00002D297EA734>120 D<007C0000000001FF00 00038003C7C0000FC00703C0000FC00F03E0000FC00E03E0001FC01C03E0001F801C07E0 001F803807E0001F803807E0003F80780FE0003F00700FC0003F00700FC0003F00F01FC0 007F00F01F80007E00001F80007E00003F80007E00003F0000FE00003F0000FC00007F00 00FC00007E0000FC00007E0001FC0000FE0001FC0000FC0001F80000FC0001F80000FC00 03F80001FC0003F00001F80003F00001F80003F00001F80007F00001F80007E00001F800 07E00001F8000FE00001F8001FE00000F8001FC00000FC003FC000007C007FC000007E00 FFC000003F03DF8000000FFF1F80000001FC1F80000000003F80000000003F0000000000 3F00000000007F00000380007E00000FE000FE00001FE000FC00001FE001F800001FE001 F800003FC003F000003FC007E000001F000FC000001C001F8000001E003F0000000E007C 0000000781F000000003FFC000000000FE000000002A3B7EA72D>I E /Fv 133[55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 1[55 10[55 3[55 2[55 55 3[55 3[55 55 3[55 55 55 55 1[55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 2[55 55 1[55 55 2[55 34[{ TeXBase1Encoding ReEncodeFont }58 91.249977 /Courier rf /Fw 7[50 17[72 50 107[50 50 72 50 55 33 39 44 1[55 50 55 83 28 55 1[28 55 50 33 44 55 44 55 50 6[66 2[100 1[72 66 55 2[61 78 1[94 66 78 1[39 78 1[61 66 2[66 72 8[50 50 50 50 50 50 50 50 2[25 33 25 41[55 2[{ TeXBase1Encoding ReEncodeFont }54 100.000000 /Times-Bold rf /Fx 7[37 17[50 33 110[37 37 21 29 25 1[37 37 37 58 21 37 21 21 37 37 25 33 37 33 37 33 13[42 2[42 1[54 66 4[54 3[54 2[54 6[21 3[37 37 3[37 2[19 25 19 44[{ TeXBase1Encoding ReEncodeFont }38 75.000000 /Times-Roman rf /Fy 138[25 13[25 1[22 49[25 25 25 49[{ TeXBase1Encoding ReEncodeFont }6 50.000000 /Times-Roman rf /Fz 140[26 63[33 33 33 49[{ TeXBase1Encoding ReEncodeFont }4 66.666664 /Times-Roman rf /FA 133[50 50 1[50 2[50 50 50 1[50 50 50 50 50 50 50 50 1[50 50 50 50 50 50 50 1[50 7[50 1[50 50 5[50 50 50 3[50 50 8[50 1[50 1[50 50 50 50 50 50 50 50 50 50 50 50 1[50 50 2[50 50 40[{ TeXBase1Encoding ReEncodeFont }48 83.333336 /Courier rf /FB 7[60 17[86 13[93 17[120 76[60 1[86 60 66 40 47 53 1[66 60 66 100 33 66 40 33 66 60 40 53 66 1[66 60 10[86 86 80 66 86 1[73 93 1[113 80 93 2[93 93 73 80 86 1[80 86 1[60 5[60 60 60 60 60 60 60 60 60 2[30 40 41[66 66 2[{ TeXBase1Encoding ReEncodeFont }57 119.999947 /Times-Bold rf /FC 139[57 3[96 3[48 2[48 1[86 1[76 3[86 21[134 5[115 124 124 115 124 7[86 86 86 86 86 86 86 86 86 49[{ TeXBase1Encoding ReEncodeFont }22 172.833374 /Times-Bold rf /FD 7[45 17[61 45 78[45 28[40 40 61 40 45 25 35 35 1[45 45 45 66 25 40 25 25 45 45 25 40 45 40 45 45 6[51 2[76 1[66 51 45 56 1[56 66 61 76 51 61 40 30 66 66 56 56 66 61 56 56 6[30 45 45 45 45 45 45 45 45 45 45 1[23 30 23 2[30 30 37[45 2[{ TeXBase1Encoding ReEncodeFont }67 91.249977 /Times-Italic rf /FE 7[45 17[66 45 78[45 28[45 1[66 45 51 30 35 40 1[51 45 51 76 25 51 30 25 51 45 30 40 51 40 51 45 6[61 3[66 66 61 51 66 1[56 71 1[86 61 71 45 35 71 71 56 61 66 66 61 66 6[30 45 45 45 45 45 45 45 45 45 45 1[23 30 23 44[{ TeXBase1Encoding ReEncodeFont }62 91.249977 /Times-Bold rf /FF 7[42 17[55 37 107[42 1[60 42 42 23 32 28 1[42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 10[60 60 51 46 3[60 1[74 51 60 1[28 60 60 2[60 2[60 2[47 1[47 2[42 42 42 42 42 42 42 42 42 42 23 21 28 21 41[46 2[{ TeXBase1Encoding ReEncodeFont }56 83.333336 /Times-Roman rf /FG 137[72 72 40 56 48 3[72 1[40 72 1[40 1[72 1[64 72 1[72 64 12[88 5[104 7[80 1[104 22[48 45[{ TeXBase1Encoding ReEncodeFont }19 144.000000 /Times-Roman rf /FH 169[53 1[44 40 49 1[40 53 53 65 44 53 28 24 1[53 40 44 53 1[49 53 65[{ TeXBase1Encoding ReEncodeFont }18 72.999954 /Times-Roman rf /FI 7[45 17[61 108[45 1[66 45 45 25 35 30 1[45 45 45 71 25 45 25 25 45 45 30 40 45 40 1[40 11[66 56 1[61 66 51 66 66 81 56 66 35 30 66 2[56 66 1[61 66 6[25 45 45 45 45 45 45 45 45 45 49[{ .167 SlantFont TeXBase1Encoding ReEncodeFont }51 91.249977 /Times-Roman rf /FJ 7[45 14[40 2[61 40 12[66 17[81 66 46[45 1[40 40 14[40 6[44 1[44 40 45 45 66 45 45 25 35 30 45 45 45 45 71 25 45 25 25 45 45 30 40 45 40 45 40 30 45 1[30 1[30 56 66 1[86 66 66 56 51 61 66 51 66 66 81 56 66 35 30 66 66 51 56 66 61 61 66 1[40 51 51 51 25 25 45 45 45 45 45 45 45 45 45 45 25 23 30 23 51 45 30 30 30 71 76 33[51 51 2[{ TeXBase1Encoding ReEncodeFont }97 91.249977 /Times-Roman rf /FK 7[103 17[149 108[103 1[149 103 115 69 80 92 1[115 103 115 172 57 115 69 57 115 103 69 92 115 1[115 103 11[149 138 3[126 2[195 138 161 1[80 161 1[126 138 2[138 149 19[69 45[{ TeXBase1Encoding ReEncodeFont }37 207.333359 /Times-Bold rf /FL 171[110 92 119 1[101 129 119 156 110 129 1[64 129 2[110 69[{ TeXBase1Encoding ReEncodeFont }12 165.866714 /Times-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 382 1577 2989 12 v 895 1826 a FL(H)10 b(T)g(M)g(L)g FK(-)g FL(K)5 b(O)10 b(M)g(P)g(R)g(E)g(S)g(S)g(I)g(O)g(N)p 382 1939 V 1027 3158 709 6 v 1828 3181 a FJ(P1)p 2017 3158 V 1044 3363 a FI(Anders)24 b(Rune)g(Jensen)102 b(Jasper)25 b(Kjersgaard)g(Juhl)1044 3476 y(Ester)f(Mungure)301 b(Michael)25 b(Knudsen)1044 3589 y(Ole)e(Laursen)397 b(Martin)24 b(Qvist)1044 3702 y(Rasmus)g(J\370r)n(gensen)p 1016 3844 1722 6 v 1587 5095 a FJ(December)h(2001)1401 5303 y(A)t FH(A)t(L)t(B)t(O)t(R)t (G)j FJ(U)t FH(N)t(I)t(V)t(E)t(R)t(S)t(I)t(T)t(E)t(T)p eop %%Page: 1 2 1 1 bop 573 609 a FG(Det)35 b(T)-10 b(eknisk-Naturvidenskabelig)o(e)30 b(F)n(akultet)573 722 y FF(Aalbor)o(g)18 b(Uni)n(v)o(ersitet)p 573 767 3426 4 v 573 877 a FE(Basisuddannelsen)3424 1098 y @beginspecial 14 @llx 14 @lly 85 @urx 91 @ury 710 @rwi @setspecial %%BeginDocument: logo.eps % Use own dictionary to avoid conflicts 10 dict begin % Translate for offset 14.173228 14.173228 translate % Translate to begin of first scanline 0.000000 76.000000 translate 70.000000 -76.000000 scale % Image geometry 70 76 8 % Transformation matrix [ 70 0 0 76 0 0 ] % Strings to hold RGB-samples per scanline /rstr 70 string def /gstr 70 string def /bstr 70 string def {currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} {currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} true 3 colorimage ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> dJjNsQ dJjNsQ dJjNsQ eGg&b68O@N3FA(ZAiTu\l;[u^s*t~> eGg&b68O@N3FA(ZAiTu\l;[u^s*t~> eGg&b68O@N3FA(ZAiTu\l;[u^s*t~> fDcK!3@U9oZ88/t6=9#46N:Y)"S)9eJ,~> fDcK!3@U9oZ88/t6=9#46N:Y)"S)9eJ,~> fDcK!3@U9oZ88<#6=9#46N:Y)"S)9eJ,~> g&D_0*-_G_bT+FB*-_G_,-ptHnMAeks*t~> g&D_0*-_;[bT+FB*-_G_,-ptHnMAeks*t~> g&D_0*-^oPbT+FB*-_G_,-ptHnMAeks*t~> g]%>0*5MRR%TR-@. g]%>0*5MRR%TR-@. g]%>0*5MRR%TR-@. h#@CALAh,S#ihR%rr35Z"TN[?s-@m%s*t~> h#@CALAh,S#ihR%rr35Z"TN[?s-@m%s*t~> h#@CALAh,S#ih^)rr35Z"TN[?s-@m%s*t~> h>[LMT`+lm%0'=Xrr35n#leLks8N]'s*t~> h>[LMT`+lm%0'=Xrr35n#leLks8N]'s*t~> h>[LMV#C;q%0'=Xrr35n#leLks8N]'s*t~> hZ*V1rVls&s'MGtrs&],L3N[tB#+'=J,~> hZ*V1rVls&s'MGtrs&],L3N[tB#+'=J,~> hZ*V1rVls&s'MT#rs&],L3N[tB#+'=J,~> hu<__6N-od.IhVJrVlsdj30O_rr hu<__6N-od.IhVJrVlsdj30O_rr hu<__6N-od.IhVJrVlsdj30O_rr i;Wi%*<#m>L6gFXrVlu*GQ.sJrrKoZoDa=~> i;Wi%*<#m>L6gFXrVlu*GQ.sJrrKoZoDa=~> i;Wi%*<#m>L6gFXrVlu*GQ.sJrrKoZoDa=~> iVrrK(B+78l6?6Dr;Qj2s&I;BrrHKeoDa=~> iVrrK(B+78l6?6Dr;Qj2s&I;BrrHKeoDa=~> iVrrK(B+78l6?6Dr;Qj2s&I;BrrHKeoDa=~> iVrl\r;Qj2s#KBCrr\"]s!dpH!$_"6J,~> iVrl\r;Qj2s#KBCrr\"]s!dpH!$_"6J,~> iVrl\r;Qj2s#KBCrr\"]s!dpH!$_"6J,~> ir9$8bPhGCL7l^sr;Qj=s%VPPrr=kGs*t~> ir9$8bPhGCL7l^sr;Qj=s%VPPrr=kGs*t~> ir9$8bPhGCL8<""r;Qj=s%VPPrr=kGs*t~> j8T-"_#436*<- j8T-"_#436*<- j8T-"_#436*<- jo5CT(>&Ka"!%>8j8AoZ jo5CT(>&Ka"!%>8j8AoZ jo5CX(>&Ka"!%>8j8AoZ mJdI^bF*Q@3B8m]qu6bBZG9iErrO2?3W/mXpc7pFJ,~> mJdI^bF*Q@3B8m]qu6bBZG9iErrO2?3W/mXpc7pFJ,~> mJdI^bF*Q@3B8m]qu6bBZG9iErrO2?3W/mXpc7pFJ,~> nG`]\3?hIXZJG9T"0tr,"T/3$ZA/B!r;Qf_:%J=7~> nG`]\3?hIXZJG9T"0tr,"T/3$ZA/B!r;Qf_:%J=7~> nG`]\3?hIXZJG9T"0tr,"T/3$ZA/B!r;Qf_:%J=7~> o)Abc,,"N,"/%[S"T&-#1]ObKr;QfX?h45I~> o)Abc,,"N,"/%[S"T&-#1]ObKr;QfX?h45I~> o)Abc,,Ff0"/IsW"T&-#1]ObKr;QfX?h45I~> o`"uu"QT%P"Fri="S)?g!]0j4qu6]@B(GtP~> o`"uu"QT%P"Fri="S)?g!]0j4qu6]@B(GtP~> o`"uu"QT%P"Fri="S)?g!]0j4qu6]@B(GtP~> p&>%e?h"'u3L9[JnbW7fQEp9[qu6]@JF`_j~> p&>%e?h"'u3L9[JnbW7fQEp9[qu6]@JF`_j~> p&>%e?h"'u3L9[JnbW7fQEp9[qu6]@JF`_j~> pAY.*bjk]9f+I<5&buA.(B7D"qu6]&RI^B.~> pAY.*bjk]9f+I<5&buA.(B7D"qu6]&RI^B.~> pAY.*bjk]9f+I<5&buA.(B7D"qu6]&RI^B.~> p\t7Mbjk]9 p\t7Mbjk]9 p\t7Mbjk]9 q#:AfGOkb;^]`9h,*r!'"!%>qT_eZh:%@fSJ,~> q#:AfGOkb;^]`9h,*r!'"!%>qT_eZh:%@fSJ,~> q#:AjGOkb;^]`9h,*r!'"!%>qV#()l:%@fSJ,~> q#:="o)AkRB)d'(nb<%c^j#eoq>UF7nc++~> q#:="o)AkRB)d'(nb<%c^j#eoq>UF7nc++~> q#:="o)AkRB)d'(nb<%c^j#eoq>UF7nc++~> q>UIOlLb)[^]a2O"L@_#!sJY>GP_=?j'V?VJ,~> q>UIOlLb)[^]a2O"L@_#!sJY>GP_=?j'V?VJ,~> q>UIOlLb)[^]a2O"L@_#!sJY>GP_=?j'V?VJ,~> qYpT3GP(nUJ&fCAlk~> qYpT3GP(nUJ&fCAlk~> qYpT3GP(nUJ&fCAlk~> qYpO>o`#'06N:DIo`#&ELAudlq>UF7nGe"~> qYpO>o`#'06N:DIo`#&ELAudlq>UF7nGe"~> qYpO>o`#'06N:DIo`#&ELAudlq>UF7nGe"~> qu6]e6M19[#leM&o`#'03WI;Zq>UJMT^_u3~> qu6]e6M19[#leM&o`#'03WI;Zq>UJMT^_u3~> qu6]e6M19[#leM&o`#'03WI;Zq>UJMV""D7~> qu6\OZM"5".JVL]o`#'a&c_k6q#:=+n,In~> qu6\OZM"5".JVL]o`#'a&c_k6q#:=+n,In~> qu6\OZM"5".JVL]o`#'a&c_k6q#:=+n,In~> qu6XPp&>-0?iL`0rr`K)rtbD*rrKocn,In~> qu6XPp&>-0?iL`0rr`K)rtbD*rrKocn,In~> qu6XPp&>-0?iL`0rr`K)rtbD*rrKocn,In~> qu6XPp&>+0s1ijNrrb@+s#ImirrH``n,In~> qu6XPp&>+0s1ijNrrb@+s#ImirrH``n,In~> qu6XPp&>+0s1ijNrrb@+s#ImirrH``n,In~> qu6XPpAY6 qu6XPpAY6 qu6XPpAY6 qu6XPpAY5Fbl9-arrX_MnL=23!$(G,J,~> qu6XPpAY5Fbl9-arrX_MnL=23!$(G,J,~> qu6XPpAY5Fbl9-arrX_MnL=23!$(G,J,~> qu6XPpAY4]lMi[4rrY(W qu6XPpAY4]lMi[4rrY(W qu6XPpAY4]lMi[4rrY(W qu6XPpAY4hj8US#rrP4\1\C\J&^0\DJ,~> qu6XPpAY4hj8US#rrP4\1\C\J&^0\DJ,~> qu6XPpAY4hj8US#rrP4\1\C\J&^0\DJ,~> qu6XjpAY5Fbl8mZrrOYL1\:VK?Qtg$oDa=~> qu6XjpAY5Fbl8mZrrOYL1\:VK?Qtg$oDa=~> qu6XjpAY5Fbl8mZrrOYL1\:VK?Qtg$oDa=~> qu6XPpAY9$QN)0Qp&>+\nWoj=rro].+usk_p]#a~> qu6XPpAY9$QN)0Qp&>+\nWoj=rs#c/+usk_qtU2A~> qu6XPpAY9$QN)0Qp&>+\nWp!Ars#c/+usk_nG*$6~> qu6X?p&>+Ss4:lUrr_OBrs\>q"P8r+*2*0.J,~> qu6X?p&>+Ss4:lUrr_OBrs\>q"P8r+*2*0.J,~> qu6X?p&>+Ss4:lUrr_OBrs\>q"P8r+*2NH2J,~> qu6X_p&>+ qu6X_p&>+ qu6X_p&>+ qu?\hpAY8MZN$S`o`#%+nc&m[li.!O1]@?(~> qu?\hpAY8MZN$S`o`#%+nc&m[li.!O1]@?(~> qu?\lpAY8MZN$_do`#%+nc&m[li.!O1]@?(~> qu6]e5oD\q!nc&aDli.!k qu6]e5oD\q!nc&aDli.!k qu6]e5oD\q!nc&aDli.!k qYpOEp&>/F_#K^noD\q/lMh:9li.&]fDkl$~> qYpOEp&>/F_#K^noD\q/lMh:9li.&]fDkl$~> qYpOEp&>/F_#K^roD\q/lMh:9li.&]fDkl$~> qYpOUo`#"/s8N5mrr`J?ruB5JrrO2?s*t~> qYpOUo`#"/s8N5mrr`J?ruB5JrrO2?s*t~> qYpOUo`#"/s8N5mrr`J?ruB5JrrO2?s*t~> qYpOOo`#&+bQ! qYpOOo`#&+bQ! qYpOOo`#&+bQ! qYpOEoD\nAs8N5lrrbZSs!bbNrrV^Ns*t~> qYpOEoD\nAs8N5lrrbZSs!bbNrrV^Ns*t~> qYpOEoD\nAs8N5lrrbZSs!bbNrrV^Ns*t~> qYpOOoD\q[lMlUEnc&_lGQ/*3mJd29s*t~> qYpOOoD\q[lMlUEnc&_lGQ/*3mJd29s*t~> qYpOOoD\q[lMlUEnc&_lGQ/*3mJd29s*t~> qYpOEoD\sF?iU- qYpOEoD\sF?iU- qYpOEoD\sF?iU- qYpOOo)Ah.s8Q]TnG`S1q!fQrrrFqUJ,~> qYpOOo)Ah.s8Q]TnG`S1q!fQrrrFqUJ,~> qYpOOo)Ah.s8Q]TnG`S1q!fQrrrFqUJ,~> qYpOOo)Ai"j8\C=nG`X]6N:'An,ED;s*t~> qYpOOo)Ai"j8\C=nG`X]6N:'An,ED;s*t~> qYpOOo)Ai"j8\C=nG`X]6N:'An,ED;s*t~> qu6]&QLb%YZA/DZ*:Nn0*<4W&nG`RA?iPW~> qu6]&QLb%YZA/DZ*:Nn0*<4W&nG`RA?iPW~> qu6]&QLb%YZA/DZ*:Nn0*<4W&nG`RA?iPW~> qu6XFnc&d_ qu6XFnc&d_ qu6XFnc&d_ r;Qff6Lb!X1]RK\L@G3FB'TC_nG`P0s8RT~> r;Qff6Lb!X1]RK\L@G3FB'TC_nG`P0s8RT~> r;Qff6Lb!X1]RK\L@G3FB'TC_nG`P0s8RT~> r;QeA_!q@,3WK-L r;QeA_!q@,3WK-L r;QeA_!q@,3WK-L r;Qa4n,EA-rr2sSnG`JTrr;re!9=(1rkJN>rh0:Grr7K~> r;Qa4n,EA-rr2sSnG`JTrr;re!9=(1rkJN>rh0:Grr7K~> r;Qa4n,EA-rr2sSnG`JTrr;re!9=(1rkJN>rhTRKrr7K~> rVlo(JFEL<1]ICS:%8/_.I-q`~> rVlo(JFEL<1]ICS:%8/_.I-q`~> rVlo(JFEL<1]ICS:%8/_.I-q`~> rVlj'n,ERI rVlj'n,ERI rVlj'n,ERI rr3"RT^Vm`B$:5S,4PU5^m=9cJ,~> rr3"RT^Vm`B$:5S,4PU5^m=9cJ,~> rr3"RV!n s8N,i1[b8N&c_mk1[ s8N,i1[b8N&c_mk1[ s8N,i1[b8N&c_mk1[ s8N-'*$"\g$lg#u*#9M6&_I'_j*1?3!-eES!-eBA!DUf&s*t~> s8N-'*$"\g$lg#u*#9M6&_I'_j*1?3!-eES!-eBA!DUf&s*t~> s8N-'*$"\g$lg#u*#9M6&_I'_j*1?3!-eES!-eBA!DUf&s*t~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> ]DmB~> showpage end %%EndDocument @endspecial 618 1129 a(T)n(itel:)800 1279 y FJ(HTML-k)o(ompression)618 1544 y FE(Pr)n(ojektperiode:)800 1657 y FJ(P1,)800 1770 y(9.)23 b(oktober)n(\22618.)k(december)l(,)e(2001)618 2071 y FE(Pr)n(ojektgruppe:)800 2183 y FJ(B333)618 2484 y FE(Gruppemedlemmer:)800 2597 y FJ(Anders)f(Rune)g(Jensen)800 2710 y(Jasper)h(Kjersgaard)g(Juhl)800 2823 y(Ole)e(Laursen)800 2936 y(Martin)h(Qvist)800 3049 y(Ester)g(Mungure)800 3161 y(Rasmus)g(J\370r)n(gensen)800 3274 y(Michael)h(Knudsen)618 3575 y FE(V)-9 b(ejleder:)800 3688 y FJ(Thomas)24 b(Nielsen)618 3988 y FE(Bi)o(v)o(ejleder:)800 4101 y FJ(Claus)g(Monrad)g(Spliid)618 4459 y FE(Antal)f(k)o(opier:)g FJ(14)618 4647 y FE(Rapport)g(\226)g (sideantal:)i FJ(64)618 4835 y FE(A)n(ppendiks)c(\226)i(sideantal:)i FJ(11)618 5022 y FE(T)-8 b(otalt)24 b(sideantal:)h FJ(79)p 2365 1882 1615 4 v 2365 4293 4 2412 v 2416 1969 a FE(Synopsis:)2416 2187 y FF(I)32 b(denne)f(rapport)f(besk\346ftiger)g(vi)i(os)h(med)e(k)o (om-)2416 2286 y(pression)21 b(af)g(HTML.)g(Dels)h(fra)g(en)f (teoretisk)g(syns-)2416 2386 y(vink)o(el)j(i)i(form)d(af)i (informationsteori,)d(dels)j(fra)g(en)2416 2486 y(mere)20 b(k)o(onkret)e(synsvink)o(el)h(i)i(form)e(af)h(en)g(gennem-)2416 2585 y(gang)33 b(af)i(generelle)f(algoritmer)f(der)i(kan)f(bruges)2416 2685 y(til)23 b(at)g(k)o(omprimere)c(HTML-sider)-5 b(.)22 b(V)-5 b(i)22 b(unders\370ger)2416 2785 y(desuden)29 b(om)g(man)h(kan)f(udn)o(ytte)g(nogle)g(af)h(e)o(gen-)2416 2884 y(skaberne)d(v)o(ed)h(HTML)g(til)h(at)g(skabe)f(en)g(mere)g(ef-) 2416 2984 y(fekti)n(v)-5 b(,)19 b(speci\002k)h(algoritme.)2416 3183 y(Grunden)h(til)i(at)g(HTML-k)o(ompression)d(er)i(interes-)2416 3283 y(sant,)17 b(sk)o(yldes)g(at)g(m\346ngden)f(af)h(internettra\002k) f(v)n(ok-)2416 3382 y(ser)k(st\370t)f(mens)h(udbyderne)c(\370nsk)o(er)i (at)i(spare)f(penge)2416 3482 y(p\345)25 b(stadigt)g(v)n(oksende)e (forbindelser)m(,)f(og)i(brugerne)2416 3582 y(\370nsk)o(er)33 b(en)h(bedre)f(internetople)n(v)o(else.)e(K)m(ompres-)2416 3681 y(sion)41 b(af)g(HTML)f(har)h(potentialet)f(til)i(at)f(hj\346lpe) 2416 3781 y(p\345)j(dette)f(fordi)g(HTML-sider)g(kan)g(k)o(omprime-) 2416 3880 y(res)35 b(ef)n(fekti)n(vt,)e(ligesom)i(billeder)m(,)e(lyd,)h (video)g(og)2416 3980 y(softw)o(are)17 b(der)f(allerede)h(k)o (omprimeres)e(rutinem\346s-)2416 4080 y(sigt.)41 b(Sp\370r)o (gsm\345let)e(er)i(om)f(potentialet)g(er)h(stort)2416 4179 y(nok.)19 b(Og)h(om)g(beho)o(v)o(et)e(er)i(stort)h(nok.)p 3976 4293 V 2365 4296 1615 4 v eop %%Page: 1 3 1 2 bop 382 1212 a FK(F)-5 b(or)l(ord)382 1657 y FJ(Denne)33 b(rapport)h(er)f(udarbejdet)i(som)e(P1-opga)n(v)o(e)h(p\345)e(\305lbor) n(g)i(Uni)n(v)o(ersitets)g(basisuddan-)382 1770 y(nelse.)24 b(Den)f(er)h(resultat)h(af)e(3)h(m\345neders)h(arbejde)g(med)e(emnet)h (k)o(ompression.)523 1883 y(Det)19 b(foruds\346ttes)i(at)e(l\346seren)h (har)g(grundl\346ggende)i(k)o(enskab)g(til)d(visse)h(teknisk)o(e)h (aspek-)382 1996 y(ter)j(af)f(internettet,)j(som)d(f.eks.)h(router)l(,) h(proxyserv)o(er)l(,)h(webserv)o(er)f(og)f(bro)n(wser)-5 b(.)523 2109 y(Rapporten)25 b(m\345)e(frit)h(distrib)n(ueres)j(i)c(en)h (hvilk)o(en)h(som)f(helst)g(form.)523 2321 y FD(En)18 b(s\346rlig)i(tak)g(til)f(vor)m(es)h(vejleder)m(e)h(Thomas)f(Nielsen)g (o)o(g)f(Claus)h(Spliid,)g(som)f(har)h(v\346r)m(et)382 2434 y(en)j(stor)i(hj\346lp)e(g)o(ennem)i(pr)l(ojektperioden.)523 2746 y(God)e(forn\370jelse)k(med)c(r)o(apporten)523 2959 y(J)m(asper)-10 b(,)25 b(Martin,)f(Ole)o(,)e(Ester)-10 b(,)24 b(Rasmus,)f(Mic)o(hael)h(o)o(g)g(Ander)o(s)1854 5652 y FJ(1)p eop %%Page: 2 4 2 3 bop 382 1212 a FK(Indhold)382 1748 y FE(1)91 b(Indledning)2382 b(5)518 1861 y FJ(1.1)96 b(Problembeskri)n(v)o(else)60 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)170 b(5)518 1974 y(1.2)96 b(Problemformulering)31 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)170 b(6)518 2087 y(1.3)96 b(Ov)o(ersigt)25 b(o)o(v)o(er)e(projektet)69 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)h(.)f(.)170 b(6)382 2291 y FE(2)91 b(Intr)n(oduktion)24 b(til)f(k)o(ompr)n(ession)1686 b(7)382 2494 y(3)91 b(Beho)o(vsanalyse) 2245 b(9)518 2607 y FJ(3.1)96 b(Brugerne)c(.)45 b(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)h(.)f(.)170 b(9)727 2720 y(3.1.1)110 b(Unders\370gelse)27 b(af)c(datasammens\346tning)88 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(10)727 2833 y(3.1.2)110 b(Unders\370gelse)27 b(af)c(o)o(v)o (erf\370rselshastighed)78 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f (.)125 b(11)727 2946 y(3.1.3)110 b(K)m(ompression)26 b(af)d(forbindelser)58 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)125 b(13)518 3059 y(3.2)96 b(Udbyderne)27 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(13)727 3172 y(3.2.1)110 b(Unders\370gelse)27 b(af)c (datasammens\346tning)88 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f (.)125 b(14)518 3285 y(3.3)96 b(Sammenf)o(atning)60 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(15)382 3489 y FE(4)91 b(Inf)n(ormationsteori)2076 b(17)518 3601 y FJ(4.1)96 b(Entropi)88 b(.)46 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)125 b(17)518 3714 y(4.2)96 b(Egenskaber)26 b(v)o(ed)e(entropi) 50 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(18)727 3827 y(4.2.1)110 b(Optimal)24 b(k)o(odning)67 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(19)727 3940 y(4.2.2)110 b(Maksimal)25 b(entropi)g(v)o(ed)f(ligelig)h (fordeling)i(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(19)727 4053 y(4.2.3)110 b(Afh\346ngigheder)27 b(reducerer)e(entropi) 87 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(19)518 4166 y(4.3)96 b(K)m(omprimering)25 b(og)f(entropi)44 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)125 b(20)727 4279 y(4.3.1)110 b(HTML,)21 b(informationsteoretis)q(k)29 b(set)24 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(21)382 4483 y FE(5)91 b(Analyse)24 b(af)g(k)o(ompr)n(essionsmetoder)1484 b(23)518 4596 y FJ(5.1)96 b(Statistisk)o(e)26 b(metoder)77 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(24)727 4709 y(5.1.1)110 b(Pr\346\002ksk)o(oder)69 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(24)727 4822 y(5.1.2)110 b(Huf)n(fman)84 b(.)46 b(.)f(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)125 b(25)518 4934 y(5.2)96 b(Ordbogsbaserede)28 b(metoder)91 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(30)727 5047 y(5.2.1)110 b(Lempel-Zi)n(v)24 b(77)69 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(30)727 5160 y(5.2.2)110 b(Lempel-Zi)n(v)24 b(78)69 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)h(.)f(.)125 b(34)727 5273 y(5.2.3)110 b(K)m(onklusion)60 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(36)518 5386 y(5.3)96 b(T)m(ransformationer)71 b(.)46 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(37)1854 5652 y(2)p eop %%Page: 3 5 3 4 bop 382 228 a FI(INDHOLD)p 382 266 2989 4 v 727 548 a FJ(5.3.1)110 b(Burro)n(ws-Wheeler)n(-transforma)q(tio)q(nen)72 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(37)727 661 y(5.3.2)110 b(Mo)o(v)o(e-to-front)32 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)h(.)f(.)125 b(40)727 774 y(5.3.3)110 b(K)m(onklusion)60 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(41)382 978 y FE(6)91 b(Udv\346lgelse)24 b(af)g(algoritme)1830 b(43)518 1090 y FJ(6.1)96 b(Hv)n(ad)24 b(kan)g(k)o(omprimeres)h(i)e(HTML?)j(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(43)518 1203 y(6.2)96 b(Dynamisk)25 b(ordbog)48 b(.)e(.)f(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)h(.)f(.)125 b(44)727 1316 y(6.2.1)110 b(Fremgangsm\345de)84 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) g(.)g(.)g(.)h(.)f(.)125 b(44)727 1429 y(6.2.2)110 b(K)m(onklusion)60 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(45)518 1542 y(6.3)96 b(\306ndring)25 b(af)f(alf)o(abetet)93 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(45)518 1655 y(6.4)96 b(Opdeling)25 b(af)f(\002lerne)83 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(46)518 1768 y(6.5)96 b(V)-12 b(ores)24 b(algoritme)58 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) f(.)125 b(46)382 1972 y FE(7)91 b(Implementering)2137 b(48)518 2085 y FJ(7.1)96 b(Gennemgang)25 b(af)f(algoritme)h(i)e (pseudok)o(ode)70 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h (.)f(.)125 b(48)518 2198 y(7.2)96 b(\330vrige)25 b(funktioner)49 b(.)d(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(50)518 2311 y(7.3)96 b(Programmets)25 b(gr\346nse\003ade)33 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)h(.)f(.)125 b(51)518 2423 y(7.4)96 b(Afvikling)26 b(af)d(programmet)61 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(51)518 2536 y(7.5)96 b(T)-6 b(est)73 b(.)45 b(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)h(.)f(.)125 b(51)727 2649 y(7.5.1)110 b(K)m(omprimeringse)n(vne)80 b(.)46 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(53)727 2762 y(7.5.2)110 b(T)m(idsaspektet)93 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(54)727 2875 y(7.5.3)110 b(Sammenf)o(atning)42 b(.)j(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) 125 b(54)727 2988 y(7.5.4)110 b(Algoritmens)26 b(tidsk)o(ompleksitet)86 b(.)46 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(55)727 3101 y(7.5.5)110 b(K)m(onklusion)60 b(.)45 b(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)125 b(56)382 3305 y FE(8)91 b(Praktisk)o(e)24 b(o)o(v)o(er)o(v)o(ejelser)1905 b(57)518 3418 y FJ(8.1)96 b(F)o(ordele)24 b(og)g(ulemper)h(for)e(udbyder)89 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(57)518 3531 y(8.2)96 b(Brugerne)c(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)h(.)f(.)125 b(58)518 3643 y(8.3)96 b(Eksisterende)27 b(l\370sninger)82 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(59)518 3756 y(8.4)96 b(An)l(v)o(endelse)26 b(af)e(HTTP)d(1.1-k)o(ompression)56 b(.)46 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(59)382 3960 y FE(9)91 b(K)n(onklusion)2314 b(61)518 4073 y FJ(9.1)96 b(Resultater)26 b(fra)d(rapporten)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)h(.)f(.)125 b(61)518 4186 y(9.2)96 b(Perspekti)n(v)o (ering)69 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(62)382 4390 y FE(A)70 b(Eksempler)2343 b(65)518 4503 y FJ(A.1)75 b(Eksempler)25 b(fra)f(statistisk)o(e)i(metoder)34 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) f(.)125 b(65)727 4616 y(A.1.1)89 b(F)o(ortsat)24 b(eksempel)h(fra)f (Huf)n(fman-k)o(odning)87 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) 125 b(65)518 4729 y(A.2)75 b(Eksempler)25 b(fra)f(ordbogsbaserede)k (metoder)54 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) 125 b(67)727 4841 y(A.2.1)89 b(Eksempel)25 b(fra)e(Lempel-Zi)n(v)h(78) 41 b(.)k(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(67)518 4954 y(A.3)75 b(Eksempler)25 b(fra)f(transformationer)41 b(.)k(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h (.)f(.)125 b(67)727 5067 y(A.3.1)89 b(Eksempel)25 b(fra)e(Burro)n (ws-Wheeler)77 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f (.)125 b(67)1854 5652 y(3)p eop %%Page: 4 6 4 5 bop 382 228 a FI(INDHOLD)p 382 266 2989 4 v 382 548 a FE(B)75 b(Beskri)o(v)o(else)26 b(af)d(unders\370gelser)1665 b(70)518 661 y FJ(B.1)80 b(T)-6 b(estsiderne)86 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(70)518 774 y(B.2)80 b(Datasammens\346tning)27 b(i)c(log\002ler)88 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)125 b(71)727 887 y(B.2.1)94 b(Proxyserv)o(eren)27 b(granit.b)n(ut.auc.dk)74 b(.)45 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)h(.)f(.)125 b(71)727 1000 y(B.2.2)94 b(IT)-8 b(-A)h(visen)52 b(.)46 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(72)518 1112 y(B.3)80 b(Ov)o(erf\370rselstid)27 b(for)d(forsk)o(ellige)i (forbindelser)71 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f (.)125 b(72)518 1225 y(B.4)80 b(T)-6 b(est)23 b(af)h(k)o (ompressionshastighe)q(d)70 b(.)45 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(73)382 1429 y FE(C)70 b(K)n(ompr)n(essionstest)2082 b(74)382 1633 y(D)70 b(Udbr)n(edelse)24 b(af)f(HTML-k)o(ompr)n(ession)1403 b(75)382 1837 y(E)75 b(T)-8 b(elef)n(oninter)o(views)2084 b(76)518 1950 y FJ(E.1)85 b(www)-6 b(.tv2.dk)53 b(.)45 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(76)518 2063 y(E.2)85 b(www)-6 b(.dating.dk)79 b(.)45 b(.)h(.)f(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) h(.)f(.)125 b(77)518 2176 y(E.3)85 b(www)-6 b(.o\002r)h(.dk)47 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)125 b(77)1854 5652 y(4)p eop %%Page: 5 7 5 6 bop 382 1171 a FC(Kapitel)43 b(1)382 1586 y FK(Indledning)382 2067 y FB(1.1)119 b(Pr)n(oblembeskri)o(v)o(else)382 2274 y FJ(Internet)38 b(er)f(v)o(erdens)h(hurtigst)g(v)n(oksende)i(medie)d (med)f(et)g(udb)n(ud)j(af)d(mange)h(milliarder)382 2387 y(websider)-5 b(.)34 b(Men)e(forbindelserne)38 b(til)32 b(internet)j(er)e(be)o(gr\346nset)h(i)e(b\345ndbredde,)k(dvs.)d(der)g (er)382 2500 y(gr\346nse)g(for)f(hv)n(or)h(me)o(get)f(data)h(der)f(kan) h(sendes)g(mellem)f(to)g(computere)i(pr)-5 b(.)32 b(sekund.)i(At)382 2613 y(k)o(\370be)j(ekstra)g(b\345ndbredde)i(er)d(relati)n(vt)i(dyrt)e (\226)g(dels)h(er)e(det)i(dyrt)f(for)h(virksomheder)i(der)382 2726 y(dri)n(v)o(er)23 b(websites,)h(og)f(dels)g(er)g(det)g(dyrt)g(for) g(brugerne.)i(Derfor)e(er)g(der)g(beho)o(v)h(for)f(at)f(udn)o(ytte)382 2839 y(disse)37 b(forbindelser)i(bedre,)e(og)f(det)h(er)f(her)g(k)o (ompression)j(k)o(ommer)d(ind)h(som)e(en)i(mulig)382 2952 y(l\370sning.)523 3065 y(K)m(ompression)c(handler)f(om)e(at)h(k)o (ode)h(data)f(for)g(derv)o(ed)h(at)e(formindsk)o(e)k(m\346ngden)d(af) 382 3178 y(dem)24 b(p\345)g(en)g(m\345de)h(s\345)f(de)g(kan)h (gendannes)i(n\345r)d(de)g(skal)h(bruges.)h(Denne)e(teknik)i(er)e (allerede)382 3290 y(me)o(get)h(udbredt)i(n\345r)e(det)g(g\346lder)h (billeder)l(,)h(lyd)e(og)g(\002lm,)e(men)i(ikk)o(e)h(for)f(HTML-sider)f (\(der)382 3403 y(er)f(de)g(\002ler)g(man)g(l\346ser)g(n\345r)h(man)f (surfer)h(p\345)g(internettet\))i(p\345)d(trods)i(af)e(at)g(disse)h (kan)g(k)o(ompri-)382 3516 y(meres)d(me)o(get)g(ef)n(fekti)n(vt.)i(Men) d(hv)n(orfor)k(bli)n(v)o(er)d(siderne)i(s\345)e(ikk)o(e)h(k)o (omprimeret?)h(Det)e(kunne)382 3629 y(v\346re)k(fordi)g(HTML-\002lerne) f(udg\370r)i(en)f(for)g(lille)g(del)g(af)g(tra\002kk)o(en)h(til)f(at)f (det)h(kan)h(betale)g(sig)382 3742 y(at)d(bruge)i(k)o(ompression)h (p\345)e(dem.)523 3855 y(Hvis)g(man)f(skal)i(k)o(omprimere)g (HTML-\002ler)l(,)d(hvilk)o(en)k(algoritme)g(skal)e(man)g(s\345)f (bruge?)382 3968 y(Det)29 b(kan)i(ikk)o(e)g(v\346re)f(en)g(af)g(de)g (ellers)h(me)o(get)f(ef)n(fekti)n(v)o(e)h(algoritmer)h(med)e(tab,)g (som)g(inde-)382 4081 y(b\346rer)d(at)f(\002lerne)h(ikk)o(e)g(kan)h (genskabes)h(til)d(n\370jagtigt)j(det)e(samme)g(som)f(f\370r)h(k)o (ompression;)382 4194 y(i)d(mods\346tning)i(til)e(billeder)i(og)e(lyd)h (kan)f(man)g(nemlig)h(v)o(ed)g(HTML-sider)f(ikk)o(e)h(tillade)g(\346n-) 382 4307 y(dringer)l(,)g(da)f(dette)g(kunne)h(la)n(v)o(e)f(om)f(p\345)h (layout)h(og)e(mening)i(for)e(udbydernes)k(websider)-5 b(.)523 4420 y(Men)27 b(der)h(\002ndes)g(stadig)g(mange)g(algoritmer)i (der)d(er)g(tabsfri.)i(Hvilk)o(en)f(skal)h(vi)e(v\346lge,)382 4532 y(og)33 b(hvis)i(vi)e(endelig)i(\002nder)f(en)f(algoritme,)i (\002ndes)f(der)g(s\345)f(de)h(teknisk)o(e)h(foruds\346tninger)382 4645 y(til)25 b(at)g(l\370sningen)j(kan)e(implementeres?)i(Kan)d(man)g (o)o(v)o(erho)o(v)o(edet)i(f\345)e(folk)h(til)g(at)f(bruge)h(det?)382 4758 y(Dette)32 b(afh\346nger)h(selvf\370lgelig)i(af)c(hv)n(or)i(stor)f (en)f(e)n(vt.)h(besparelse)i(ville)e(v\346re,)f(hv)n(or)i(godt)382 4871 y(teknologien)23 b(kunne)d(inte)o(greres)i(med)d(eksisterende)j (praksis)f(og)f(hv)n(orvidt)h(den)f(n\370dv)o(endige)382 4984 y(viden)25 b(er)e(til)h(stede)h(hos)f(udbyderne)j(af)c(disse)i (websider)l(,)g(men)e(dette)i(er)e(alle)i(sp\370r)n(gsm\345l)h(der)382 5097 y(bli)n(v)o(er)e(diskuteret)i(i)d(rapporten.)1854 5652 y(5)p eop %%Page: 6 8 6 7 bop 1487 228 a FI(Kapitel)25 b(1:)e(Indledning)p 382 266 2989 4 v 382 548 a FB(1.2)119 b(Pr)n(oblemf)m(ormulering)382 755 y FJ(Problemet)24 b(er)f(alts\345)h(om)f(det)g(er)g(en)g(fordel)i (at)e(indf\370re)i(k)o(ompression)h(af)d(HTML-sider)g(o)o(v)o(er)382 868 y(internettet)40 b(for)d(brugere)i(og)f(udbydere,)h(og)e(hvilk)o (en)j(metode)e(man)e(i)h(gi)n(v)o(et)h(f)o(ald)g(skulle)382 981 y(bruge.)382 1273 y FB(1.3)119 b(Ov)o(ersigt)29 b(o)o(v)o(er)g(pr)n (ojektet)382 1480 y FJ(V)-5 b(i)17 b(starter)i(med)f(at)g(unders\370ge) j(hv)n(ad)e(k)o(ompression)i(af)d(data)h(er)f(for)h(noget)g(for)f(at)g (f\345)g(opbygget)382 1593 y(en)28 b(f)o(ast)i(referenceramme)h(til)e (resten)g(af)g(rapporten.)i(Herefter)e(behandler)i(vi)e(sp\370r)n (gsm\345let)382 1706 y(om)e(det)h(o)o(v)o(erho)o(v)o(edet)i(kan)e (betale)h(sig)f(at)f(indf\370re)j(k)o(ompression)g(af)e(websider)h (\226)e(bl.a.)h(un-)382 1819 y(ders\370ger)34 b(vi)e(for)h(de)f(to)g (ho)o(v)o(edparter)l(,)j(brugerne)f(og)f(udbyderne,)i(hv)n(or)e(stor)f (en)h(m\346ngde)382 1932 y(data)23 b(HTML-siderne)g(udg\370r)g(i)f (forhold)i(til)e(den)h(totale)g(m\346ngde)g(data)g(der)f(o)o(v)o (erf\370res,)i(dette)382 2045 y(inkluderer)30 b(bla.)d(billeder)h(og)g (lyd.)f(Dette)g(kan,)g(ud)g(o)o(v)o(er)g(at)g(indik)o(ere)i(i)d(hv)n (or)i(stor)g(udstr\346k-)382 2158 y(ning)23 b(det)f(er)g(rele)n(v)n (ant)i(at)e(k)o(omprimere)i(HTML-\002ler)l(,)c(gi)n(v)o(e)j(en)f (baggrund)j(for)d(at)g(vurdere)i(de)382 2271 y(algoritmer)h(vi)f (senere)h(analyserer)-5 b(.)523 2384 y(Herefter)28 b(k)o(ommer)e(vi)h (ind)g(p\345)f(informationsteori)31 b(som)26 b(gi)n(v)o(er)h(en)g (teoretisk)h(forst\345else)382 2497 y(for)c(og)f(et)h(o)o(v)o(erblik)h (o)o(v)o(er)e(hv)n(orfor)j(k)o(ompressionsalgoritmer)j(virk)o(er)-5 b(.)523 2609 y(Denne)25 b(forst\345else)j(s\346tter)d(os)g(i)f(stand)i (til)f(at)g(foretage)i(en)d(unders\370gelse)29 b(af)c(forsk)o(ellige) 382 2722 y(algoritmer)32 b(\226)e(dette)h(resulterer)i(i)c(en)i (analyse)h(og)e(sammenligning)j(af)d(forsk)o(ellige)k(m\345der)382 2835 y(at)25 b(k)o(omprimere)h(p\345)f(og)g(en)g(afv)o(ejning)i(af)e (deres)h(styrk)o(er)g(og)f(sv)n(agheder)j(i)c(forbindelse)k(med)382 2948 y(websidek)o(ompression.)35 b(Sammen)29 b(med)h(de)g(resultater)i (vi)e(har)h(opn\345et)g(v)o(ed)f(beho)o(vsanaly-)382 3061 y(sen,)d(fors\370ger)i(vi)e(derefter)h(at)f(vurdere)i(en)e (alternati)n(v)i(metode)e(til)g(at)g(opn\345)h(bedre)g(k)o(ompri-)382 3174 y(mering)21 b(af)g(websider)-5 b(.)22 b(Dette)f(f\370lges)h(op)f (af)f(en)h(implementation)j(der)d(tillader)h(os)f(at)g(foretage)382 3287 y(en)i(test)h(der)g(kan)g(holdes)h(op)f(mod)f(g\346ngse)i(k)o (omprimeringsmetoder)j(som)23 b FA(gzip)f FJ([10)q(].)523 3400 y(V)-12 b(ores)20 b(praktisk)o(e)j(test)d(gi)n(v)o(er)g(desuden)i (et)d(grundlag)j(for)e(at)g(besv)n(are)h(sp\370r)n(gsm\345let)i(om)c (de)382 3513 y(kra)n(v)g(som)g(brugerne)i(og)e(udbyderne)i(m\345tte)e (stille)h(til)e(en)h(k)o(ompressionsl\370sning)q(,)k(kan)d(opfyl-)382 3626 y(des,)25 b(og)h(kan)g(derfor)h(hj\346lpe)f(med)f(at)g(afklare)i (om)e(en)g(k)o(ompressionsl\370snin)q(g)31 b(o)o(v)o(erho)o(v)o(edet) 382 3739 y(vil)d(ha)n(v)o(e)h(nogen)h(chance)g(for)e(bli)n(v)o(e)h(an)l (v)o(endt)h(hos)f(henholdsvis)i(brugerne)g(og)d(udbyderne.)382 3851 y(Sidste)c(del)g(af)f(rapporten)j(behandler)g(dette)f(emne.)523 3964 y(Men)e(vi)h(starter)h(med)e(en)h(grundl\346ggende)j (unders\370gelse)g(af)d(k)o(ompression.)1854 5652 y(6)p eop %%Page: 7 9 7 8 bop 382 1171 a FC(Kapitel)43 b(2)382 1586 y FK(Intr)l(oduktion)52 b(til)g(k)m(ompr)l(ession)382 2031 y FJ(Der)21 b(er)h(forsk)o(el)i (p\345)e(st\370rrelsen)i(af)e(en)g(datam\346ngde)i(og)e(st\370rrelsen)j (af)c(informationsindhol-)382 2144 y(det)27 b(i)g(dataene.)h(At)e FD(k)o(omprimer)m(e)j FJ(handler)f(om)f(at)g(formindsk)o(e)i (st\370rrelsen)h(af)c(data)i(uden)g(at)382 2257 y(\370del\346gge)d (informationsindhold)q(et.)523 2369 y(I)20 b(rapporten)j(opf)o(atter)g (vi)d(data)h(som)g(best\345ende)i(af)d(en)h(ordnet)h(r\346kk)o(e)f(af)f FD(symboler)p FJ(,)i(eller)382 2482 y FD(te)l(gn)p FJ(,)30 b(der)f(via)h(en)f(k)o(ompressionsalgoritme)34 b(gennemg\345r)e(en)d FD(k)o(odning)i FJ(s\345)e(de)g(bli)n(v)o(er)h(til)f(en)382 2595 y(ordnet)23 b(r\346kk)o(e)f(af)f FD(k)o(odeor)m(d)p FJ(,)i(eller)f(bare)g(k)o(oder)l(,)g(der)g(gerne)g(samlet)g(skulle)h (v\346re)e(mindre)h(end)382 2708 y(den)i(oprindelige)j(r\346kk)o(e.)523 2821 y(Grunden)d(til)e(at)g(man)h(kan)f(k)o(omprimere,)i(h\346nger)f (dels)g(sammen)g(med)f(at)g(man)h(ofte)g(har)382 2934 y(data)k(liggende)i(i)c(en)i(form)f(som)g(g\370r)h(at)f(det)h(er)f (hurtigere)i(og/eller)h(lettere)e(at)g(bruge)g(dem)f(\226)382 3047 y(f.eks.)j(bruger)i(man)d(som)h(re)o(gel)h(8)e(bit)i(til)f(at)g (repr\346sentere)i(te)o(gn,)e(ogs\345)h(selv)n(om)g(man)f(reelt)382 3160 y(kun)24 b(bruger)h(m\345sk)o(e)f(128)g(forsk)o(ellige)j(te)o(gn)d (som)f(kunne)i(lagres)g(p\345)e(7)g(bit.)h(Dels)f(h\346nger)i(det)382 3273 y(sammen)h(med)g(at)g(de)g(data)g(vi)g(almindeligvis)j (besk\346ftiger)g(os)d(med,)f(f.eks.)h(tekst,)h(normalt)382 3386 y(fylder)e(mere)e(end)h(den)g(information)i(de)e(viderebringer)j (\226)c(der)h(er)g FD(r)m(edundans)i FJ(i)d(dem.)523 3499 y(Den)28 b(f\370rste)h(type)g(af)f(o)o(v)o(er\003\370digt)i(data)f (som)f(beskre)n(v)o(et)i(i)e(o)o(v)o(enst\345ende)j(er)d(relati)n(vt)i (let)382 3611 y(at)j(sk\346re)g(v\346k)f(da)h(det)g(blot)h(kr\346v)o (er)f(at)f(man)h(i)f(stedet)i(for)f(at)g(optimere)h(mht.)f(hastighed,) 382 3724 y(g\345r)24 b(o)o(v)o(er)f(til)g(at)g(opbe)n(v)n(are)i (dataene)h(mere)d(k)o(ompakt.)h(F)-7 b(.eks.)23 b(kunne)h(modtager)h (og)f(afsender)382 3837 y(enes)32 b(om)f(at)h(bruge)g(en)g FD(or)m(dbo)o(g)p FJ(,)h(en)e(forte)o(gnelse)k(o)o(v)o(er)c(symboler)i (med)e(deres)i(tilh\370rende)382 3950 y(k)o(odeord,)e(hv)n(or)f(der)g (kun)f(optr\346der)i(de)e(te)o(gn)g(der)h(f)o(aktisk)h(bruges)f(s\345)f (man)g(kun)h(beh\370)o(v)o(ede)382 4063 y(f.eks.)24 b(5)f(bit)g(til)h (at)f(repr\346sentere)k(et)c(te)o(gn.)523 4176 y(Det)28 b(er)h(imidlertid)i(sv\346rere)f(at)f(k)o(omme)g(redundansen)k(i)28 b(dataene)j(til)e(li)n(vs)g(\226)g(man)f(kan)382 4289 y(grundl\346ggende)i(g\345)c(to)g(v)o(eje:)h(enten)h(kan)e(man)h (v\346lge)f(en)h(generel)h(metode,)e(som)g(en)h(af)f(de)382 4402 y(der)21 b(er)f(beskre)n(v)o(et)i(i)e(kapitel)i(5,)e(eller)h(en)f (metode)i(som)e(er)g(optimeret)i(til)f(netop)g(den)g(type)g(data)382 4515 y(man)e(arbejder)j(med.)d(En)g(unders\370gelse)24 b(af)19 b(dataene)j(gi)n(v)o(er)e(naturligvis)j(mulighed)e(for)f(bedre) 382 4628 y(k)o(ompression)25 b(og)d(oftest)i(sk)o(er)f(der)f(ogs\345)h (en)g(analyse)h(af)e(de)g(data)h(der)f(\370nsk)o(es)i(k)o(omprimeret,) 382 4741 y(inden)h(den)f(reelle)g(k)o(ompression)j(igangs\346ttes,)e (ogs\345)f(v)o(ed)g(de)g(generelle)h(metoder)-5 b(.)523 4853 y(En)28 b(uddybning)j(og)e(forklaring)i(af)d (redundansf\346nomenet)33 b(gi)n(v)o(es)c(i)f(kapitel)i(4,)e(men)g(et) 382 4966 y(k)o(ort)c(eksempel)h(med)f(sekv)o(ensl\346ngdek)o(odning)29 b(kan)24 b(illustrere)i(det.)523 5079 y(Sekv)o(ensl\346ngdek)o(odning)j (eller)24 b(\204run)g(length)g(encoding\223,)i(RLE,)21 b(g\345r)j(ud)f(p\345)g(at)g(erstatte)382 5192 y(gentagelser)33 b(af)d(samme)f(symbol)i(med)f(et)f(enk)o(elt)i(symbol)g(samt)f (antallet)i(af)d(forek)o(omster)382 5305 y(\226)d(f.eks.)g(kan)h (\204muuuuuuuuh\223)j(erstattes)e(med)e(\204m*8uh\223)i(hv)n(or)f (stjernen)h(repr\346senterer)h(et)1854 5652 y(7)p eop %%Page: 8 10 8 9 bop 1165 228 a FI(Kapitel)24 b(2:)f(Introduktion)28 b(til)23 b(k)o(ompression)p 382 266 2989 4 v 382 548 a FJ(k)o(ontrolte)o(gn)j(som)d(bruges)i(v)o(ed)e(afk)o(odningen)k(til)c (at)g(afg\370re)i(at)e(n\346ste)g(te)o(gn)h(skal)g(duplik)o(eres)382 661 y(et)32 b(antal)h(gange.)g(Dette)f(nedbringer)j(datam\346ngden)f (fra)f(10)f(til)g(5)g(te)o(gn,)g(dvs.)g(gi)n(v)o(er)h FD(k)o(om-)382 774 y(pr)m(essionsforholdet)k FJ(50\045)30 b(\(k)o(ompressionsforhold)36 b(er)30 b(de\002neret)h(som)f(forholdet)i (mellem)382 887 y(st\370rrelsen)24 b(af)c(de)i(k)o(omprimerede)h(data)f (og)f(st\370rrelsen)j(af)d(de)g(oprindelige)j(data,)d(f.eks.)h(1:2\).) 382 1000 y(Dette)k(forhold)j(er)d(naturligvis)j(ikk)o(e)e(generelt)i (for)d(RLE)f(som)h(ikk)o(e)h(er)f(s\346rligt)h(v)o(ele)o(gnet)h(til)382 1112 y(at)23 b(k)o(omprimere)i(almindelig)h(tekst,)e(men)g(kan)g (v\346re)f(ef)n(fekti)n(v)i(i)e(andre)i(sammenh\346nge.)523 1225 y(Det)e(skal)g(i)g(\370)o(vrigt)h(bem\346rk)o(es)g(at)f(de)g (generelle)i(algoritmer)g(ikk)o(e)f(er)f(s\345)g(generelle)i(at)e(de) 382 1338 y(kan)c(k)o(omprimere)i FD(alle)f(typer)i FJ(data)d(\226)g(k)o (ompression)j(kan)d(jo)g(betragtes)j(som)c(en)h(funktion)j(der)382 1451 y(afbilder)i(en)e(gi)n(v)o(en)h(m\346ngde)f(data)h(o)o(v)o(er)f(i) g(en)g(v\346rdim\346ngde.)i(Funktionen)g(skal)f(imidlertid)382 1564 y(v\346re)35 b(en)h(bijektion)i(hvis)e(man)g(altid)g(skal)g(kunne) h(k)o(omme)f(tilbage)h(til)f(de)f(samme)h(data,)382 1677 y(hv)n(orfor)e(v\346rdim\346ngden)g(skal)f(v\346re)f(lige)h(s\345)f (stor)h(som)f(de\002nitionsm\346ngden)j(hvis)e(alle)382 1790 y(elementer)38 b(i)e(de\002nitionsm\346ngden)k(kan)d(forek)o(omme) h(i)e(dataene.)i(Alts\345)f(kan)g(man)f(ikk)o(e)382 1903 y(generelt)25 b(g\345)f(fra)g(f.eks.)f(8)g(bit)h(til)g(7,)f(ikk)o(e)h (alle)g(data)g(kan)g(k)o(omprimeres.)523 2016 y(I)j(nogle)i (tilf\346lde)g(af)e(k)o(ompression)k(kan)d(man)g(tillade)h(et)e(tab)h (af)g(data)g(s\345)g(k)o(ompression)382 2129 y(fulgt)22 b(af)g(dek)o(ompression)j(ikk)o(e)d(gi)n(v)o(er)g(pr\346cist)g(de)f (samme)h(data.)f(Dette)h(sk)o(er)g(ofte)g(v)o(ed)g(k)o(om-)382 2242 y(pression)31 b(af)d(lyd)i(eller)f(billeder)i(som)d(man)h(som)f (re)o(gel)h(kan)h(beskri)n(v)o(e)g(med)e(f\346rre)h(detaljer)382 2355 y(og)j(nuancer)j(uden)e(at)g(det)f(beh\370)o(v)o(er)i(at)e (v\346re)h(m\346rkbart.)g(Derv)o(ed)g(reducerer)h(man)f(antal-)382 2467 y(let)e(af)g(forsk)o(ellige)k(te)o(gn)c(s\345)h(der)f(kan)h (opn\345s)h(en)e(bedre)h(k)o(ompression;)j(JPEG)29 b(og)j(MP3)e(er)382 2580 y(eksempler)25 b(p\345)f(dette.)523 2693 y(Som)e(tidligere)k (n\346vnt)e(vil)f(vi)g(dog)h(i)f(denne)i(rapport)g(besk\346ftige)g(os)f (med)f(tabsfri)i(k)o(om-)382 2806 y(pression)20 b(fordi)g(udseendet)h (og)d(indholdet)k(af)c(siderne)i(ikk)o(e)f(m\345)f(bli)n(v)o(e)h (forstyrret.)h(Der)e(er)g(dog)382 2919 y(to)26 b(sider)h(af)f(HTML)e (\226)i(det)h(indhold)h(som)e(f.eks.)g(forf)o(atteren)j(af)e (dokumentet)h(ser)l(,)f(k)o(oderne)382 3032 y(og)34 b(teksten,)i(og)e (den)h(formaterede)i(fremstilling)f(som)e(brugerne)j(af)d(siderne)i (ser)e(i)g(deres)382 3145 y(bro)n(wser)-5 b(.)25 b(Man)f(kan)g(ar)n (gumentere)j(for)e(at)f(sm\345)f(\346ndringer)j(i)e(HTML-k)o(oderne,)h (f.eks.)f(skift)382 3258 y(fra)30 b(sm\345)f(bogsta)n(v)o(er)j(til)d (store,)i(der)f(ikk)o(e)g(gi)n(v)o(er)g(nogen)h(forsk)o(el)g(i)e (udseendet)k(i)c(bro)n(wseren,)382 3371 y(ikk)o(e)24 b(medf\370rer)h(noget)g(tab)l(.)f(V)-5 b(i)22 b(o)o(v)o(erv)o(ejer)j (dette)f(i)f(kapitel)j(6.)523 3484 y(Efter)g(denne)h(k)o(orte)g (introduktion)i(til)d(k)o(omprimeringsbe)o(grebet)31 b(f\370lger)d(en)d(analyse)j(af)382 3597 y(beho)o(v)o(et)d(for)e(en)h (k)o(ompression)i(af)e(websider)-5 b(.)1854 5652 y(8)p eop %%Page: 9 11 9 10 bop 382 1171 a FC(Kapitel)43 b(3)382 1586 y FK(Beho)n(vsanalyse) 382 2031 y FJ(Udgangspunktet)29 b(for)c(denne)i(rapport)g(er)e(at)g(k)o (ompression)j(af)d(websider)i(har)e(et)g(potentiale)382 2144 y(for)e(udbredelse.)j(Men)e(hv)n(ad)g(best\345r)g(potentialet)j(e) o(gentligt)e(af,)e(og)g(hv)o(em)g(g\346lder)h(det?)g(F)o(or)n(-)382 2257 y(m\345let)c(med)g(beho)o(vsanalysen)k(er)c(at)g(f\345)g(klarlagt) i(disse)f(sp\370r)n(gsm\345l)h(\226)e(is\346r)g(er)g(det)g(interessant) 382 2369 y(om)j(et)g(e)n(vt.)g(beho)o(v)i(er)e(stort)i(nok)f(til)f(at)h (kunne)h(moti)n(v)o(ere)f(en)f(almen)h(brug.)523 2482 y(Man)29 b(kan)g(sk)o(elne)h(mellem)e(to)h(parter:)h(de)f(almindelige)i (brugere)f(af)f(websider)h(og)f(ud-)382 2595 y(byderne,)36 b(dem)e(der)g(ejer)h(og)f(dri)n(v)o(er)h(de)g(foresk)o(ellige)i (websites.)f(Den)e(f\370lgende)i(analyse)382 2708 y(fokuserer)24 b(p\345)d(teknisk)o(e)j(problemer)f(\226)e(problemer)i(som)f(brugerv)o (enlighed)k(og)21 b(\370k)o(onomisk)o(e)382 2821 y(forhold)j(i)e (forbindelse)k(med)c(at)h(indf\370re)h(en)e(l\370sning)j(ude)e(i)f (erhv)o(ervsli)n(v)o(et)j(bli)n(v)o(er)e(behandlet)382 2934 y(i)g(kapitel)i(8.)382 3227 y FB(3.1)119 b(Bruger)n(ne)382 3434 y FJ(F)o(or)30 b(brugerne)i(er)f(det)g(mest)f(af)g(alt)h(et)f (sp\370r)n(gsm\345l)j(om)d(at)g(k)o(omprimerede)j(sider)f(kan)f(gi)n(v) o(e)382 3547 y(en)26 b(hastighedsge)n(vinst)31 b(\226)25 b(ogs\345)i(rent)f(\370k)o(onomisk)i(er)e(selv)o(e)g (tra\002km\346ngden)h(ikk)o(e)g(s\345)f(inter)n(-)382 3659 y(essant)h(fordi)f(man)f(som)g(oftest)i(betaler)g(pr)-5 b(.)25 b(tid)g(og)h(ikk)o(e)g(pr)-5 b(.)25 b(kb)h(hentet)g(data)2850 3626 y Fz(1)2889 3659 y FJ(.)e(Hastigheds-)382 3772 y(forbedringen)j (kan)e(dels)f(k)o(omme)g(direkte)h(v)o(ed)f(at)g(mindre)g(\002ler)f (tager)i(k)o(ortere)h(tid)d(at)h(hente,)382 3885 y(dels)j(indirekte)i (v)o(ed)e(at)f(en)h(generelt)h(mindre)f(tra\002km\346ngde)h(p\345)f (internettet)i(alt)e(andet)g(lige)382 3998 y(b)n(urde)e(gi)n(v)o(e)f(k) o(ortere)i(responstider)i(for)c(alle.)g(Sidstn\346vnte)i(er)d(dog)i(i)e (sagens)j(natur)f(sv\346rt)f(at)382 4111 y(unders\370ge,)i(og)e(vi)f (besk\346ftiger)j(os)e(i)f(det)g(f\370lgende)j(kun)e(med)g(den)g (umiddelbare)i(ge)n(vinst.)523 4224 y(Hastighedsge)n(vinsten)33 b(afh\346nger)c(naturligvis)h(af)d(k)o(omprimeringsalgoritmen)33 b(\226)27 b(dels)382 4337 y(hv)n(or)d(ef)n(fekti)n(vt)h(den)f(k)o (omprimerer)l(,)h(dels)f(hv)n(or)g(hurtig)h(den)e(er)-5 b(.)23 b(Ge)n(vinsten)i(afh\346nger)g(imid-)382 4450 y(lertid)g(ogs\345)f(af)g(HTML-dataenes)h(andel)f(af)g(den)g(samlede)h (o)o(v)o(erf\370rte)g(m\346ngde)f(data)h(\226)e(hvis)382 4563 y(f.eks.)29 b(kun)g(1\045)f(af)g(dataene)j(er)d(HTML,)e(vil)j(en)g (k)o(ompressionsl\370sning)q(,)k(lige)o(gyldigt)f(hv)n(or)382 4676 y(ef)n(fekti)n(v)25 b(den)f(er)l(,)f(n\346ppe)h(v\346re)g (interessant)i(fordi)f(den)f(mulige)g(ge)n(vinst)h(er)f(for)f(lille.) 523 4789 y(Desuden)f(skal)f(en)g(hastighedsge)n(vinst)26 b(i)20 b(forbindelse)k(med)c(o)o(v)o(erf\370rslerne)k(s\346ttes)d(i)f (for)n(-)382 4901 y(hold)26 b(til)f(hv)n(or)i(lang)f(tid)f(det)h(tager) g(at)f(o)o(v)o(erf\370re)h(dataene)i(nu.)d(Selv)n(om)g(den)h(relati)n (v)o(e)g(ge)n(vinst)382 5014 y(kan)31 b(v\346re)f(stor)l(,)i(f.eks.)e (50\045,)g(ville)i(det)f(ikk)o(e)g(betyde)h(noget)g(hvis)f(en)g(gi)n(v) o(en)g(bruger)h(sam-)382 5127 y(menlagt)25 b(kun)f(sparede)h(en)f (hundredel)i(sekund.)p 382 5208 1196 4 v 487 5264 a Fy(1)516 5296 y Fx(Dog)20 b(med)f(enk)o(elte)h(undtagelser)m(,)g(heriblandt)f (Stof)o(aNet)1854 5652 y FJ(9)p eop %%Page: 10 12 10 11 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 523 548 a FJ(I)e(be)o(gge)h(tilf\346lde)h(ville)f(der) g(ikk)o(e)g(v\346re)f(beho)o(v)h(for)g(en)f(l\370sning.)i(V)-5 b(i)21 b(er)g(derfor)h(n\370dt)h(til)e(at)382 661 y(foretage)g(en)d (unders\370gelse)23 b(af)18 b(dels)i(HTML-\002lernes)e(andel)i(af)e (den)i(samlede)f(datam\346ngde,)382 774 y(dels)24 b(af)f(de)h (nuv\346rende)i(o)o(v)o(erf\370rselstider)-5 b(.)382 1023 y Fw(3.1.1)99 b(Unders\370gelse)25 b(af)g(datasammens\346tning)382 1197 y FJ(T)m(il)h(analysen)j(betragter)h(vi)c(en)h(log\002l)h(for)f (proxyserv)o(eren)k Fv(granit.but.auc)o(.d)o(k)p FJ(,)20 b(en)382 1310 y(maskine)i(der)f(sidder)h(mellem)e(de)h(lokale)h (brugere)g(p\345)f(basisuddannelsen)26 b(p\345)21 b(Aalbor)n(g)h(Uni-) 382 1423 y(v)o(ersitet,)j(og)e(resten)i(af)e(internettet)k(og)c(gemmer) h(ofte)g(ben)o(yttede)i(\002ler)d(midlertidigt.)523 1536 y(Log\002len)31 b(indeholder)j(oplysninger)g(om)c(hvilk)o(e)i(\002ler)e (p\345)h(internettet)i(brugere)g(p\345)e(ba-)382 1649 y(sisuddannelsen)k(har)30 b(bes\370gt,)h(og)f(en)g(analyse)i(af)e(den)h (kan)f(derfor)h(gi)n(v)o(e)g(et)e(o)o(v)o(erblik)j(o)o(v)o(er)382 1762 y(omkring)h(900)f(mennesk)o(ers)j(dataforbrug,)g(se)c(tabel)i(3.1) f(\(selv)o(e)h(analyseprogrammet)j(og)382 1875 y(sorteringskriteriern)q (e)27 b(er)22 b(beskre)n(v)o(et)i(i)e(afsnit)h(B.2\).)e(Der)h(er)g(dog) g(ingen)i(garanti)f(for)f(at)g(data-)382 1988 y(forbruget)j(fra)d (maskiner)h(p\345)g(uni)n(v)o(ersitetet)i(modsv)n(arer)f (forbrugsm\370nstret)i(n\345r)d(folk)g(sidder)382 2101 y(hjemme.)g(Dette)h(antager)h(vi)f(dog.)p 643 2227 2468 8 v 692 2332 a(datatype)149 b(m\346ngde)23 b(\(Mb\))101 b(andel)24 b(\(\045\))100 b(i)23 b(cache)i(\(\045\))100 b(st\370r)-5 b(.)24 b(\(kb\))p 643 2386 2468 5 v 692 2490 a(HTML)306 b(1879,37)289 b(11,69)281 b(15,16)290 b(7,79)692 2603 y(billeder)g(1622,76)f(10,09)304 b(61,6)312 b(6,62)692 2716 y(andet)347 b(12580,49)267 b(78,22)304 b(2,19)290 b(27,02)p 643 2770 V 692 2874 a(statisk)357 b(364,45)312 b(19,39)281 b(41,18)290 b(9,71)692 2987 y(dynamisk)214 b(1514,92)289 b(80,61)327 b(8,9)334 b(7,44)p 643 3044 2468 8 v 590 3223 a FD(T)-8 b(abel)23 b(3.1:)31 b(T)-8 b(abel)24 b(o)o(ver)g(en)g(ug)o(es)g(tr)o(a\002k)h(fr)o(a)e (basisuddannelsens)30 b(pr)l(oxyserver)382 3567 y FE(F)n(ordelingen)23 b(af)h(datam\346ngden)382 3741 y FJ(T)-7 b(abel)18 b(3.1)g(gi)n(v)o(er) g(oplysninger)k(om)17 b(tre)i(forsk)o(ellige)i(kate)o(goriers)g(andel)e (af)f(tra\002kk)o(en,)h(HTML)382 3854 y(som)29 b(er)h(de)g(websider)h (vi)f(kunne)h(v\346re)f(interesseret)j(i)c(at)g(k)o(omprimere,)j (billeder)f(der)f(ofte)382 3967 y(indg\345r)35 b(som)f(en)g(del)g(af)g (siderne,)i(men)d(ligger)j(s\346rskilt)f(og)f(s\345)g(godt)g(som)g (altid)h(er)f(k)o(om-)382 4080 y(primerede,)e(og)e(andet)h(der)g (d\346kk)o(er)g(o)o(v)o(er)f(65\045)h(programdata)h(\(n\346sten)g (udelukk)o(ende)i(fra)382 4193 y Fv(distributed.net)o FJ(-klienter)1511 4160 y Fz(2)1545 4193 y FJ(\),)26 b(4\045)h(lyd,)f (7\045)h(video)h(og)f(24\045)f(andre)i(ting)f(som)g(ISO-)382 4306 y(\002ler)c(\(til)h(cd'ere\),)h(programmer)g(og)e(andre)i(pakk)o (ede)h(ting.)523 4419 y(Umiddelbart)40 b(gi)n(v)o(er)f(fordelingen)i (med)d(kun)h(omtrent)h(12\045)e(p\345)g(HTML-sider)g(ikk)o(e)382 4531 y(plads)32 b(til)e(me)o(gen)h(forbedring.)i(I)d(midlertid)i (d\346kk)o(er)g(de)e(78\045)h(o)o(v)o(er)g(data)g(som)f(ikk)o(e)h(er)g (en)382 4644 y(typisk)37 b(del)f(af)f(na)n(vigationsm\370nstret)41 b(p\345)36 b(websider)h(\226)e(hentning)j(af)e(lyd,)g(video)g(og)g (pro-)382 4757 y(grammer)25 b(fore)o(g\345r)g(ofte)g(parallelt)h(med)e (selv)o(e)h(surfningen)i(hv)n(orfor)g(en)d(bruger)h(ikk)o(e)h(sidder) 382 4870 y(og)21 b(v)o(enter)g(p\345)g(de)g(data)g(f\370r)g(v)o(edk)o (ommende)i(kan)e(se)g(siden,)g(som)g(det)g(ellers)h(er)e(tilf\346ldet)i (med)382 4983 y(billederne)k(der)e(typisk)h(vises)g(indlejret.)523 5096 y(Hvis)j(vi)g(ser)h(bort)f(fra)h(dem,)e(er)h(fordelingen)k(p\345)c (omtrent)h(halvdelen)i(p\345)d(websider)i(og)382 5209 y(halvdelen)h(p\345)e(billeder)i(\226)d(her)h(er)g(der)g(alts\345)h (mulighed)g(for)f(at)g(ef)n(fekti)n(visere.)i(I)e(\370)o(vrigt)g(kan)p 382 5290 1196 4 v 487 5346 a Fy(2)516 5377 y Fx(Program)19 b(der)h(arbejder)f(i)f(baggrunden)k(og)d(l\370ser)g(sv\346re)g (problemer)h(fra)f(en)g(central)g(serv)o(er)1831 5652 y FJ(10)p eop %%Page: 11 13 11 12 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 382 548 a FJ(fordelingen)36 b(v\346re)d(noget)h (sk\346v)g(i)e(retning)j(af)e(de)g(78\045)g(andre)h(data)g(fordi)g(uni) n(v)o(ersitetets)382 661 y(internetforbindelse)d(er)25 b(me)o(get)g(hurtigere)i(end)f(de)f(\003estes)h(brugers)g(linjer)l(,)h (100)e(Mbit/s,)h(og)382 774 y(dermed)e(bedre)h(er)e(i)g(stand)i(til)e (at)h(klare)g(de)g(tunge)h(datatyper)-5 b(.)523 887 y(En)18 b(sidste)i(pointe)f(er)g(at)f(de)h(datam\346ngder)h(der)f(er)f(angi)n (v)o(et)i(i)e(tabellen,)i(er)e(for)h(de)g(f)o(aktisk)o(e)382 1000 y(o)o(v)o(erf\370rsler)25 b(mellem)f(proxyserv)o(eren)j(og)c (internettet)j(\226)d(k)o(olonnen)j(med)d(\204i)g(cache\223)i(viser)f (at)382 1112 y(f.eks.)k(billeder)h(ofte)f(kan)g(hentes)h(fra)f (proxyserv)o(eren)j(i)c(stedet)i(for)f(direkte)h(fra)f(webserv)o(e-)382 1225 y(ren,)33 b(og)f(dette)i(er)e(alts\345)i(indre)o(gnet)g(i)e (tallene)i(for)f(datam\346ngderne.)i(Hvis)e(dette)g(ikk)o(e)h(v)n(ar) 382 1338 y(tilf\346ldet,)26 b(ville)g(billeddatam\346ngden)j(f.eks.)c (v\346re)g(en)g(del)g(h\370jere.)h(En)e(almindelig)j(bruger)382 1451 y(har)33 b(selvf\370lgelig)j(n\346ppe)d(adgang)h(til)f(en)g (proxyserv)o(er)i(lokalt,)f(men)e(p\345)h(den)g(anden)h(side)382 1564 y(udf\370rer)25 b(bro)n(wsere)g(i)e(forv)o(ejen)i(samme)e (funktion.)523 1677 y(Men)k(i)f(hv)o(ert)i(f)o(ald)g(ses)f(det)h(p\345) f(fordelingen)j(af)d(datam\346ngden)i(at)e(en)g(k)o(ompression)j(af)382 1790 y(HTML)21 b(ville)k(kunne)f(gi)n(v)o(e)g(brugeren)i(en)d (hastighedsge)n(vinst)q(.)382 2036 y FE(Statisk)g(og)h(dynamisk)f (indhold)382 2210 y FJ(T)-7 b(abellen)23 b(angi)n(v)o(er)h(ogs\345)f (fordelingen)j(mellem)c(statisk)o(e)j(og)e(dynamisk)o(e)h(websider)-5 b(.)24 b(En)d(sta-)382 2323 y(tisk)k(webside)h(er)e(en)h(almindelig)h (HTML-\002l)d(der)h(ligger)i(i)e(sin)h(f\346rdige)h(v)o(ersion)g (direkte)g(p\345)382 2436 y(serv)o(eren,)c(mens)f(en)g(dynamisk)i(side) f(er)f(en)g(side)g(som)g(s\346ttes)g(sammen)h(af)e(serv)o(eren)j(lige)f (f\370r)382 2549 y(den)i(sendes,)h(f.eks.)e(ud)h(fra)g(oplysninger)j(i) c(en)g(database.)523 2662 y(Grunden)h(til)e(at)g(det)h(er)f (interessant)j(at)d(unders\370ge,)j(er)d(at)g(det)h(kan)f(v)n(ansk)o (eligg\370re)27 b(k)o(om-)382 2775 y(primeringen)g(af)d(siderne.)i (Statisk)o(e)g(sider)f(kan)g(k)o(omprimeres)h(p\345)f(forh\345nd)h (s\345)e(hastigheden)382 2888 y(af)g(k)o(omprimeringsalgoritmen)30 b(er)24 b(relati)n(vt)i(lige)o(gyldig)h(\226)d(dynamisk)o(e)i(sider)g (skal)f(derimod)382 3000 y(k)o(omprimeres)20 b(l\370bende)h(hv)n(ad)e (der)g(stiller)g(st\370rre)h(kra)n(v)f(til)g(hastigheden.)j(M\345sk)o (e)d(noget)g(o)o(v)o(er)n(-)382 3113 y(rask)o(ende)32 b(kan)f(man)f(i)f(tabellen)j(se)e(at)g(80\045)g(af)g(siderne)h(er)f (dynamisk)o(e,)i(alts\345)f(skal)g(en)f(ef-)382 3226 y(fekti)n(v)f(l\370sning)h(ogs\345)f(kunne)h(bruges)g(p\345)e(dynamisk) o(e)j(sider)-5 b(.)29 b(V)-5 b(i)27 b(kan)h(derfor)i(k)o(onstatere)h (at)382 3339 y(hastighed)26 b(spiller)f(en)f(rolle.)382 3585 y FE(Filst\370rr)n(elser)382 3759 y FJ(Den)k(gennemsnitlige)k (\002lst\370rrelse)f(fremg\345r)f(i)e(den)h(sidste)h(k)o(olonne)g(i)f (tabellen.)h(Den)e(gen-)382 3872 y(nemsnitlige)i(st\370rrelse)g(siger)f (imidlertid)g(ikk)o(e)g(s\345)e(me)o(get)h(om)f(fordelingen)k(hv)n (orfor)f(et)e(di-)382 3985 y(agram)k(o)o(v)o(er)f(de)h(forsk)o(ellige)j (\002lst\370rrelser)f(for)d(datatyperne)k(fremg\345r)e(i)e(\002gur)g (3.1)h(p\345)f(den)382 4098 y(f\370lgende)23 b(side.)e(Filerne)h(er)f (inddelt)i(i)d(1)h(kb')-5 b(s)21 b(interv)n(aller)j(hvis)d(andele)i(af) e(det)g(samlede)h(antal)382 4211 y(\002ler)i(derefter)i(er)f(plottet)h (op)e(til)h(40)f(kb)h(\(o)o(v)o(er)f(denne)i(st\370rrelse)h(v)n(ar)d (antallet)j(af)d(\002ler)g(s\345)g(lille)382 4324 y(at)f(det)h(ikk)o(e) g(kan)g(ses)g(p\345)g(diagrammet\).)523 4437 y(Diagrammet)f(viser)g(at) g(st\370rstedelen)j(af)c(\002lerne)h(er)f(mindre)h(end)g(10)f(kb)l(.)h (S\345)f(k)o(omprime-)382 4550 y(ringsmetoden)32 b(skulle)f(gerne)g (v\346re)e(ef)n(fekti)n(v)i(p\345)f(sm\345)f(\002ler)-5 b(.)29 b(Selv)n(om)g(det)h(ikk)o(e)g(er)g(s\345)f(stort)382 4663 y(et)e(problem)i(fordi)f(de)g(sm\345)f(\002ler)g(jo)g(i)g(sagens)i (natur)f(ikk)o(e)h(fylder)f(s\345)g(me)o(get)f(og)h(derfor)g(kan)382 4776 y(hentes)d(hurtigere.)382 5025 y Fw(3.1.2)99 b(Unders\370gelse)25 b(af)g(o)o(v)o(erf)n(\370rselshastighed)382 5199 y FJ(F)o(or)d(at)h (f\345)g(et)g(indtryk)i(af)d(hv)n(or)i(me)o(get)g(der)f(er)g(at)g (spare)h(for)f(brugerne)i(har)f(vi)f(gennemf\370rt)i(en)382 5312 y(test)30 b(af)f(o)o(v)o(erf\370rselstiderne)35 b(for)29 b(en)h(r\346kk)o(e)g(websider)h(\(de)e(er)h(beskre)n(v)o(et)h (i)e(afsnit)i(B.1\))e(for)1831 5652 y(11)p eop %%Page: 12 14 12 13 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 382 2257 a @beginspecial @setspecial gnudict begin gsave 0 0 translate 0.100 0.100 scale 0 setgray newpath 1.000 UL LTb 350 300 M 63 0 V 3037 0 R -63 0 V 350 476 M 63 0 V 3037 0 R -63 0 V 350 652 M 63 0 V 3037 0 R -63 0 V 350 828 M 63 0 V 3037 0 R -63 0 V 350 1004 M 63 0 V 3037 0 R -63 0 V 350 1180 M 63 0 V 3037 0 R -63 0 V 350 1356 M 63 0 V 3037 0 R -63 0 V 350 1532 M 63 0 V 3037 0 R -63 0 V 350 1708 M 63 0 V 3037 0 R -63 0 V 350 1884 M 63 0 V 3037 0 R -63 0 V 350 2060 M 63 0 V 3037 0 R -63 0 V 350 300 M 0 63 V 0 1697 R 0 -63 V 738 300 M 0 63 V 0 1697 R 0 -63 V 1125 300 M 0 63 V 0 1697 R 0 -63 V 1513 300 M 0 63 V 0 1697 R 0 -63 V 1900 300 M 0 63 V 0 1697 R 0 -63 V 2288 300 M 0 63 V 0 1697 R 0 -63 V 2675 300 M 0 63 V 0 1697 R 0 -63 V 3063 300 M 0 63 V 0 1697 R 0 -63 V 3450 300 M 0 63 V 0 1697 R 0 -63 V 1.000 UL LTb 350 300 M 3100 0 V 0 1760 V -3100 0 V 350 300 L 1.000 UL LT0 3087 1947 M 263 0 V 350 854 M 78 0 V 0 101 V 77 0 V 0 -288 V 78 0 V 0 -105 V 77 0 V 0 96 V 78 0 V 0 -144 V 77 0 V 0 -63 V 78 0 V 0 -47 V 77 0 V 0 -26 V 78 0 V 0 -18 V 77 0 V 0 36 V 78 0 V 0 -41 V 77 0 V 0 -16 V 78 0 V 0 -3 V 77 0 V 0 -4 V 78 0 V 0 -10 V 77 0 V 0 3 V 78 0 V 0 -3 V 77 0 V 0 2 V 78 0 V 0 4 V 77 0 V 0 -10 V 78 0 V 0 -4 V 77 0 V 0 -1 V 78 0 V 0 9 V 77 0 V 0 -5 V 78 0 V 0 1 V 77 0 V 0 -4 V 78 0 V 0 5 V 77 0 V 0 -8 V 78 0 V 0 -1 V 77 0 V 0 -3 V 78 0 V 0 2 V 77 0 V 0 -2 V 78 0 V 77 0 V 0 -1 V 78 0 V 0 2 V 77 0 V 78 0 V 0 -1 V 77 0 V 0 1 V 78 0 V 0 -3 V 77 0 V 0 -1 V 1.000 UL LT1 3087 1847 M 263 0 V 350 1886 M 78 0 V 428 667 L 77 0 V 0 -197 V 78 0 V 0 -32 V 77 0 V 0 -46 V 78 0 V 0 59 V 77 0 V 0 -59 V 78 0 V 0 -35 V 77 0 V 0 -7 V 78 0 V 0 -9 V 77 0 V 0 13 V 78 0 V 0 -3 V 77 0 V 0 -20 V 78 0 V 0 -4 V 77 0 V 0 22 V 78 0 V 0 -21 V 77 0 V 0 -2 V 78 0 V 0 4 V 77 0 V 0 3 V 78 0 V 0 -4 V 77 0 V 0 12 V 78 0 V 0 -20 V 77 0 V 0 4 V 78 0 V 0 -5 V 77 0 V 0 -1 V 78 0 V 0 -4 V 77 0 V 0 -2 V 78 0 V 0 -1 V 77 0 V 0 4 V 78 0 V 0 3 V 77 0 V 0 -8 V 78 0 V 0 15 V 77 0 V 0 -9 V 78 0 V 0 -9 V 77 0 V 0 -2 V 78 0 V 0 4 V 77 0 V 0 -2 V 78 0 V 0 -1 V 77 0 V 0 -2 V 78 0 V 77 0 V stroke grestore end showpage @endspecial 2559 738 a FJ(dynamisk)2680 664 y(statisk)1705 2238 y(\002lst\370rrelse)p Fu(=)p FJ(kb)465 1273 y gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate 465 1273 a 306 1251 a FJ(andel)p Fu(=)p FJ(\045)465 1273 y currentpoint grestore moveto 465 1273 a 3211 2120 a FJ(40)-412 b(35)f(30)g(25)g(20)g(15)g(10)-390 b(5)-368 b(0)541 570 y(50)541 717 y(45)541 863 y(40)541 1010 y(35)541 1157 y(30)541 1303 y(25)541 1450 y(20)541 1597 y(15)541 1743 y(10)586 1890 y(5)586 2037 y(0)793 2453 y FD(F)l(igur)23 b(3.1:)31 b(F)-10 b(or)m(deling)o(en)27 b(af)c(\002lst\370rr)m(elser)k(for)d(gr)o(anit.b)n(ut.auc.dk.)382 2728 y FJ(henholdsvis)34 b(et)d(almindeligt)i(analogt)g(modem)e(med)f (en)h(56k-forbindelse,)k(en)c(enk)o(eltka-)382 2841 y(nals)23 b(ISDN-linje)g(p\345)g(64)g(kbit/s)h(og)f(en)g(ADSL-forbindelse)i (p\345)e(256)g(kbit/s.)h(Resultatet)g(kan)382 2954 y(ses)g(i)f(tabel)h (3.2,)f(selv)o(e)h(testen)h(er)f(dokumenteret)i(i)d(bilag)i(B.3)d (p\345)i(side)g(72.)p 618 3081 2516 8 v 668 3185 a(HTML-side)201 b(modem)24 b(\(s\))100 b(ISDN)22 b(\(s\))101 b(ADSL)21 b(\(s\))100 b(\002lst\370r)-5 b(.)24 b(\(kb\))p 618 3239 2516 5 v 668 3344 a(Carlsber)n(g)425 b(2,0)348 b FE(0,6)330 b(0,6)366 b FJ(7,0)668 3457 y(The)23 b(V)-12 b(oice)406 b(5,6)348 b FE(2,2)330 b(2,2)344 b FJ(28,0)668 3570 y(IT)-8 b(-A)h(visen)417 b(6,9)348 b FE(2,3)330 b FJ(2,4)344 b(30,8)668 3683 y(ITL)632 b(4,7)348 b FE(1,5)330 b(1,5)344 b FJ(18,4)668 3796 y(Jyllandsposten)221 b(15,3)326 b(5,7)k FE(5,1)344 b FJ(66,2)668 3908 y(Jubii)576 b(10,7)326 b(3,6)k FE(3,4)344 b FJ(43,5)p 618 3965 2516 8 v 838 4144 a FD(T)-8 b(abel)24 b(3.2:)31 b(Overf\370r)o(selstiderne)d(for)c (for)o(sk)o(ellig)o(e)j(forbindelser)523 4355 y FJ(Det)h(fremg\345r)i (af)e(tabel)i(3.2)f(at)f(der)h(f)o(aktisk)i(er)d(en)h(vis)g(v)o (entetid)h(selv)g(for)f(de)g(hurtigere)382 4468 y(forbindelser;)38 b(allerede)e(omkring)f(2)e(sekunders)k(v)o(entetid)f(kan)e(m\346rk)o (es.)g(I)g(hv)o(ert)g(f)o(ald)h(er)382 4581 y(5-10)29 b(sekunders)j(v)o(entetid)e(for)f(de)g(middelstore)i(sider)e(med)g(det) g(analoge)h(modem)f(nok)g(til)382 4694 y(at)35 b(kunne)h(forstyrre,)g (og)f(if\370lge)i([19)q(])d(er)h(der)g(2,8)f(mill.)h(dansk)o(ere)i(med) e(abonnement)i(til)382 4807 y(analogt)25 b(modem)e(og)h(kun)f(ca.)g (400.000)i(med)e(ISDN)f(og)h(70.000)i(med)e(ADSL)d(\(sv)n(arende)26 b(til)382 4920 y(andelene)g(86\045,)d(12\045)g(og)h(2\045\).)f (Alts\345)g(er)h(der)g(grundlag)h(for)f(en)g(forbedring.)523 5032 y(Det)18 b(kan)g(virk)o(e)h(m\346rk)o(eligt)g(at)f(ISDN-linjen)h (er)f(nogenlunde)j(lige)e(s\345)f(hurtig)h(som)f(ADSL-)382 5145 y(forbindelsen,)31 b(men)d(det)h(kan)g(sk)o(yldes)g(at)f(der)h(o)o (v)o(er)f(ISDN-forbindelsen)j(allerede)f(bruges)382 5258 y(k)o(omprimering,)c(se)d(afsnit)i(3.1.3.)1831 5652 y(12)p eop %%Page: 13 15 13 14 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 382 548 a Fw(3.1.3)99 b(K)n(ompr)n(ession)24 b(af)h(f)n(orbindelser)382 722 y FJ(Noget,)30 b(der)h(kan)g(under)n (gra)n(v)o(e)i(ideen)f(i)e(at)g(k)o(omprimere)i(HTML-\002lerne,)d(er)l (,)h(hvis)h(forbin-)382 835 y(delserne)26 b(allerede)f(bli)n(v)o(er)f (k)o(omprimeret.)523 948 y(P\345)h(st\370rre)j(forbindelser)h(\226)d (f.eks.)g(o)o(v)o(er)g(Atlanterha)n(v)o(et)j(og)e(p\345)f(ruter)h (internetudbydere)382 1061 y(imellem)35 b(\226)f(ben)o(yttes)j(der)e (ingen)g(k)o(ompression.)j(\305rsagen)e(til)e(dette)i(er)e (formodentlig)k(at)382 1174 y(hardw)o(arekra)n(v)o(ene)i(til)c(at)g(k)o (omprimere)i(s\345)e(store)h(m\346ngder)g(data)g(tilstr\346kk)o(eligt)i (hurtigt)382 1287 y(g\370r)24 b(det)g(for)f(dyrt.)523 1400 y(I)k(teknologien)k(for)d(analoge)i(modemer)e(er)f(der)h (imidlertid)i(allerede)f(indbygget)i(k)o(om-)382 1513 y(pression)23 b([3)q(])e(i)g(form)g(af)g(V)-12 b(.42bis)22 b(som)f(ben)o(ytter)i(en)f(v)n(ariant)g(af)f(LZW)f(\(se)h(e)n(vt.)g (afsnit)i(5.2.2\).)382 1625 y(K)m(ompressionen)f(fore)o(g\345r)e (l\370bende)h(og)e(sl\345s)h(fra)f(hvis)h(den)f(ikk)o(e)h(er)f(ef)n (fekti)n(v)i(nok)e([16)q(].)g(K)m(om-)382 1738 y(pressionen)j(er)d(dog) h(ikk)o(e)g(specielt)i(kraftig,)e(og)g(det)f(er)g(ikk)o(e)h(klart)h (de\002neret,)f(hv)n(ad)g(\204ef)n(fekti)n(vt)382 1851 y(nok\223)k(betyder)-5 b(.)523 1964 y(V)-12 b(ores)25 b(unders\370gelser)j(har)c(ikk)o(e)h(vist,)f(at)f(der)i(bruges)g(nogen) g(form)f(for)g(hardw)o(arek)o(om-)382 2077 y(pression)38 b(p\345)e(ISDN-forbindelser)l(,)j(men)d(der)g(kan)h(dog)f(ben)o(yttes)i (softw)o(arek)o(ompression)382 2190 y([8)q(].)30 b(Der)g(er)h (foresl\345et)h(nogle)g(standarder)l(,)i(bl.a.)d(LZ-Stac)2295 2157 y Fz(3)2332 2190 y FJ(,)f(omkring)i(det)f([14)q(],)f(og)h(disse) 382 2303 y(har)i(v)o(ed)h(test)f(vist)h(sig)g(at)f(gi)n(v)o(e)g(en)g (temmelig)h(ef)n(fekti)n(v)h(k)o(ompression)h([9)q(])d(som)g(det)g (ogs\345)382 2416 y(fremg\345r)24 b(af)g(tabel)g(3.2)g(p\345)f(forrige) i(side.)523 2529 y(V)-12 b(ores)19 b(unders\370gelser)j(har)c(heller)h (ikk)o(e)g(vist,)g(at)f(ADSL-opk)o(oblinger)i(ben)o(ytter)g(hardw)o(a-) 382 2642 y(rek)o(ompression.)39 b(Der)d(er)g(dog)h(foresl\345et)h(en)f (standard)h([15)q(],)e(som)f(medf\370rer)j(at)e(ADSL-)382 2755 y(forbindelser)e(kan)e(ben)o(ytte)h(LZ-Stac.)c(En)i(del)g(routere) i(og)e(lignende)i(udstyr)g(kan)e(ben)o(ytte)382 2868 y(denne)25 b(standard)g(og)f(at)f(stadigt)j(mere)d(hardw)o(are)i (underst\370tter)i(det.)523 2980 y(Som)d(n\346vnt)i(er)f(LZ-Stac)f(kun) h(en)h FD(for)m(esl\345et)i FJ(standard.)f(Det)e(betyder)i(ogs\345,)e (at)g(der)h(v)o(ed)382 3093 y(oprettelse)37 b(af)d(opkaldsforbindels)q (er)40 b(forhandles,)d(om)d(der)h(skal)g(ben)o(yttes)h(k)o(ompression.) 382 3206 y(Det)25 b(vil)h(sige,)h(at)e(det)i(kr\346v)o(er)l(,)f(at)g (internetudbyderne)31 b(underst\370tter)e(og)d(ben)o(ytter)i(LZ-Stac,) 382 3319 y(for)c(at)f(man)g(kan)h(bruge)h(det.)382 3612 y FB(3.2)119 b(Udbyder)n(ne)382 3819 y FJ(Mens)21 b(besparelser)i (p\345)e(tra\002km\346ngden)h(i)e(sig)g(selv)h(ikk)o(e)h(er)e(s\345)g (interessant)k(for)d(brugerne,)h(er)382 3932 y(det)29 b(anderledes)j(for)d(udbyderne,)j(da)d(en)g(mindre)h(tra\002km\346ngde) g(direkte)h(kan)f(o)o(v)o(ers\346ttes)382 4045 y(til)c(en)h(billigere)i (forbindelse)g(med)e(mindre)g(b\345ndbredde)j(\(eller)d(e)n(vt.)g(en)f (udsk)o(ydelse)k(af)c(en)382 4157 y(planlagt)31 b(udvidelse\).)h (Hastigheden)h(af)c(hele)h(processen)i(i)d(forbindelse)j(med)d(o)o(v)o (erf\370rslen)382 4270 y(betyder)g(naturligvis)h(stadig)f(ogs\345)f(me) o(get)f(fordi)h(den)f(er)g(afg\370rende)j(for)d(hv)n(or)i(mange)e(bru-) 382 4383 y(gere)21 b(en)e(serv)o(er)i(kan)g(betjene.)g(B\345de)f (b\345ndbredden)k(og)c(behandlingstiden)25 b(for)20 b(en)g(betjening) 382 4496 y(kan)k(v\346re)f(\003ask)o(ehalse.)523 4609 y(Som)g(v)o(ed)h(brugersiden)j(er)d(det)h(n\370dv)o(endigt)h(at)e (f\345)g(f)o(astsl\345et)i(om)e(andelen)i(af)d(HTML)f(er)382 4722 y(tilstr\346kk)o(elig)28 b(stor)e(i)f(forhold)j(til)d(andre)i (data.)f(Desuden)h(er)e(forholdet)j(mellem)d(statisk)o(e)j(og)382 4835 y(dynamisk)o(e)i(sider)g(yderligere)h(interessant)g(fordi)f(det)e (kan)h(ha)n(v)o(e)g(stor)g(betydning)i(for)e(hv)n(or)382 4948 y(me)o(get)d(re)o(gnekraft)j(udbyderen)g(skal)e(ha)n(v)o(e)g(til)f (r\345dighed)i(hvis)f(k)o(omprimeringsalgoritmen)382 5061 y(viser)d(sig)g(at)g(v\346re)f(relati)n(v)i(langsom.)p 382 5142 1196 4 v 487 5197 a Fy(3)516 5229 y Fx(Den)20 b(kaldes)f(ogs\345)h(MS-Stac,)e(da)h(den)g(angi)n(v)o(eligt)h(er)f (udviklet)g(af)g(Microsoft)1831 5652 y FJ(13)p eop %%Page: 14 16 14 15 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 382 548 a Fw(3.2.1)99 b(Unders\370gelse)25 b(af)g(datasammens\346tning)382 722 y FJ(Analysen)39 b(for)e(udbydersiden)k(bygger)e(p\345)e(en)g(log\002l)h(fra)f(serv)o (erprogrammet)j(p\345)e Fv(www.)382 835 y(it-)t(avisen.dk)p FJ(,)17 b(se)24 b(tabel)g(3.3,)f(der)h(repr\346senterer)i(et)e(typisk)h (n)o(yhedssted.)p 1136 962 1481 8 v 1186 1066 a(datatype)103 b(m\346ngde)23 b(\(Mb\))101 b(andel)24 b(\(\045\))p 1136 1120 1481 5 v 1186 1225 a(HTML)260 b(2424.77)311 b(63,4)1186 1338 y(billeder)244 b(1399.53)311 b(36,6)p 1136 1394 1481 8 v 1027 1573 a FD(T)-8 b(abel)24 b(3.3:)31 b(11)24 b(da)o(g)o(es)h(lo)o(g\002l)f(fr)o(a)g(www)-7 b(.it-avisen.dk)523 1784 y FJ(Det)27 b(ses)h(at)f(andelen)i(af)e(websider)i(i)e(forhold)i (til)f(billeder)h(er)e(63\045,)g(dvs.)h(at)f(der)h(kunne)382 1897 y(v\346re)j(en)g(del)g(at)g(hente)i(v)o(ed)e(at)g(k)o(omprimere.)h (Det)f(viste)h(sig)f(at)g(IT)-8 b(-A)h(visen)32 b(udelukk)o(ende)382 2010 y(har)23 b(dynamisk)o(e)h(sider)-5 b(.)23 b(T)m(il)f(geng\346ld)h (er)f(alt)h(indholdet)i(dynamisk)o(e)g(sider)e(s\345)f(man)g(kan)h(ikk) o(e)382 2123 y(k)o(omme)g(uden)i(om)e(at)g(k)o(omprimere)i(l\370bende.) 523 2236 y(F)o(ordelingen)35 b(af)e(\002lst\370rrelser)i(for)e(IT)-8 b(-A)h(visen)34 b(fremg\345r)f(p\345)g(\002gur)g(3.2.)g(Det)f(ses)h(at) g(en)382 2349 y(stor)26 b(del)f(af)g(websiderne)j(som)d(v)o(ed)g (brugersiden)j(er)d(mindre)h(end)g(10)f(kb,)g(men)g(til)h(geng\346ld) 382 2462 y(er)j(der)g(to)f(toppe)i(mellem)f(20)g(og)g(30)g(kb)g(der)g (samlet)g(kan)h(ses)f(at)g(st\345)g(for)g(omtrent)g(25\045)g(af)382 2575 y(\002lerne.)382 4475 y @beginspecial @setspecial gnudict begin gsave 0 0 translate 0.100 0.100 scale 0 setgray newpath 1.000 UL LTb 350 300 M 63 0 V 3037 0 R -63 0 V 350 593 M 63 0 V 3037 0 R -63 0 V 350 887 M 63 0 V 3037 0 R -63 0 V 350 1180 M 63 0 V 3037 0 R -63 0 V 350 1473 M 63 0 V 3037 0 R -63 0 V 350 1767 M 63 0 V 3037 0 R -63 0 V 350 2060 M 63 0 V 3037 0 R -63 0 V 350 300 M 0 63 V 0 1697 R 0 -63 V 738 300 M 0 63 V 0 1697 R 0 -63 V 1125 300 M 0 63 V 0 1697 R 0 -63 V 1513 300 M 0 63 V 0 1697 R 0 -63 V 1900 300 M 0 63 V 0 1697 R 0 -63 V 2288 300 M 0 63 V 0 1697 R 0 -63 V 2675 300 M 0 63 V 0 1697 R 0 -63 V 3063 300 M 0 63 V 0 1697 R 0 -63 V 3450 300 M 0 63 V 0 1697 R 0 -63 V 1.000 UL LTb 350 300 M 3100 0 V 0 1760 V -3100 0 V 350 300 L 1.000 UL LT0 3087 1947 M 263 0 V 350 2004 M 78 0 V 428 302 L 77 0 V 0 99 V 78 0 V 0 40 V 620 0 V 0 -140 V 155 0 V 77 0 V 78 0 V 77 0 V 78 0 V 0 9 V 77 0 V 0 3 V 78 0 V 0 -1 V 77 0 V 0 17 V 78 0 V 0 295 V 77 0 V 0 -317 V 78 0 V 0 -4 V 77 0 V 0 14 V 78 0 V 0 176 V 77 0 V 0 161 V 78 0 V 0 -338 V 77 0 V 0 -15 V 78 0 V 77 0 V 0 -1 V 78 0 V 697 0 V stroke grestore end showpage @endspecial 2746 2883 a(html)1705 4456 y(\002lst\370rrelse)p Fu(=)p FJ(kb)465 3492 y gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate 465 3492 a 306 3469 a FJ(andel)p Fu(=)p FJ(\045)465 3492 y currentpoint grestore moveto 465 3492 a 3211 4339 a FJ(40)-412 b(35)f(30)g(25)g(20)g(15)g(10)-390 b(5)-368 b(0)541 2789 y(60)541 3033 y(50)541 3278 y(40)541 3522 y(30)541 3766 y(20)541 4011 y(10)586 4256 y(0)932 4671 y FD(F)l(igur)24 b(3.2:)31 b(F)-10 b(or)m(deling)o(en)26 b(af)e(\002lst\370rr)m(elser)i (for)e(IT)-7 b(-A)i(visen.)523 4901 y FJ(Sp\370r)n(gsm\345let)29 b(er)e(om)f(tallene)i(fra)f(IT)-8 b(-A)h(visen)28 b(er)f(typisk)o(e)i (for)e(alle)g(udbydere.)i(Det)d(kan)382 5014 y(kun)f(afklares)i(v)o(ed) d(yderligere)j(unders\370gelser)i(af)c(andre)g(udbydere,)i(men)d (desv\346rre)i(er)f(det)382 5127 y(ikk)o(e)d(helt)f(let)g(at)g(f\345)g (udle)n(v)o(eret)i(log\002lerne,)f(og)f(vi)g(har)g(derfor)h(v\346ret)f (afsk\345ret)i(fra)e(det.)g(Umid-)382 5240 y(delbart)31 b FD(ser)i FJ(siderne)e(hos)g(IT)-8 b(-A)h(visen)30 b(typisk)o(e)i(ud;) e(Men)g(er)g(alts\345)g(ikk)o(e)h(n\370dv)o(endigvis)j(re-)382 5353 y(pr\346sentati)n(v)o(e.)1831 5652 y(14)p eop %%Page: 15 17 15 16 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 382 548 a FB(3.3)119 b(Sammenfatning)382 755 y FJ(Fra)21 b(brugernes)i(synspunkt)i(skal)c(en)h(ge)n(vinst)h(k)o (omme)e(fra)g(en)g(hastighedsforbedr)q(ing)27 b(\226)21 b(bru-)382 868 y(geren)i(skal)g(kunne)g(sk\346re)f(ned)h(p\345)f(den)g (tid)h(v)o(edk)o(ommende)h(skal)e(v)o(ente)h(f\370r)f(en)g(side)h(dukk) o(er)382 981 y(op)c(i)f(bro)n(wseren.)i(At)e(der)h(f)o(aktisk)h(er)f (mulighed)h(for)f(en)g(ge)n(vinst)h(forudsat)h(en)e(passende)i(k)o(om-) 382 1094 y(pressionsmetode,)26 b(dokumenteres)f(af)d(unders\370gelsen)k (af)c(datasammens\346tningen)k(der)d(vi-)382 1207 y(ser)g(at)h(en)f (betragtelig)j(del)e(af)f(de)g(o)o(v)o(erf\370rte)i(data)f(er)f (websider)-5 b(.)25 b(Samtidig)f(viser)g(hastighed-)382 1319 y(stesten)k(at)f(der)f(f)o(aktisk)j(er)d(noget)i(tid)f(at)f(afk)o (orte)i(idet)g(analoge)g(modemer)l(,)f(som)g(\003ertallet)g(i)382 1432 y(danmark)e(har)l(,)f(kan)g(gi)n(v)o(e)f(v)o(entetider)j(p\345)e (5-10)g(sekunder)i(for)e(middelstore)i(sider)-5 b(.)523 1545 y(T)m(il)20 b(geng\346ld)j(udhuler)g(testen)g(af)e(eksisterende)k (k)o(ompression)f(i)d(modemer)h(og)f(i)g(forbin-)382 1658 y(delse)32 b(med)g(ISDN-linjer)f(dog)h(dette)h(noget,)f(ogs\345)g (selv)n(om)h(den)f(ikk)o(e)g(er)f(n\346r)g(s\345)h(ef)n(fekti)n(v)382 1771 y(som)23 b(det)h(et)f(almindeligt)j(program)f(kan)f(klare.)523 1884 y(F)o(or)35 b(udbydersiden)41 b(er)36 b(der)g(penge)h(at)f(spare)i (i)d(at)h(be)o(gr\346nse)i(m\346ngden)f(af)f(o)o(v)o(erf\370rt)382 1997 y(data;)27 b(tabel)f(3.4)g(viser)h(et)e(eksempel)j(p\345)e (priserne)h(for)f(di)n(v)o(erse)h(hastigheder)i(for)d(en)g(f)o(ast)h (in-)382 2110 y(ternetforbindelse)e(hos)20 b(Cybercity)i([5].)d(Hvis)h (man)g(antager)h(at)f(k)o(ompression)j(kan)d(reducere)382 2223 y(datam\346ngden)i(for)e(HTML)d(til)1412 2187 y Ft(1)p 1412 2202 36 4 v 1412 2254 a(5)1457 2223 y FJ(,)h(kan)j (halvdelen)h(af)d(webtra\002kk)o(en)j(spares,)f(hv)n(ad)f(der)l(,)g (som)382 2336 y(det)k(ses)g(i)f(tabellen,)i(n\346sten)f(kan)g(halv)o (ere)h(udgifterne)h(til)e(internetforbindelse)q(n.)p 1393 2462 967 8 v 1443 2567 a(hastighed)103 b(\345rspris)25 b(\(kr)-5 b(.\))p 1393 2621 967 5 v 1467 2725 a(256)24 b(kbit)294 b(30.000)1467 2838 y(512)24 b(kbit)294 b(35.000)1494 2951 y(1)24 b(Mbit)321 b(40.000)1494 3064 y(2)24 b(Mbit)321 b(70.000)1494 3177 y(4)24 b(Mbit)275 b(110.000)1494 3290 y(8)24 b(Mbit)275 b(180.000)p 1393 3347 967 8 v 1028 3525 a FD(T)-8 b(abel)24 b(3.4:)31 b(Priseksempel)25 b(fr)o(a)f(Cyber)m(city)g(Erhverv)523 3736 y FJ(Med)e(hensyn)i(til)f (kra)n(v)g(til)g(k)o(ompressionsmetoden)k(har)c(unders\370gelserne)k (af)c(datasam-)382 3849 y(mens\346tningen)35 b(vist)f(at)f(andelen)i (af)e(dynamisk)o(e)i(sider)g(i)d(forhold)j(til)e(statisk)o(e)i(er)e (s\345)g(stor)382 3962 y(at)d(der)h(er)f(beho)o(v)h(for)f(en)h(metode)g (der)f(ogs\345)i(kan)e(bruges)i(p\345)e(dynamisk)o(e)j(sider)e(\226)f (for)h(ud-)382 4075 y(byderne)e(kan)e(dette)h(betyde)g(st\370rre)h(kra) n(v)e(til)g(serv)o(ernes)i(bere)o(gningskraft)j(fordi)27 b(denne)i(m\345)382 4188 y(fore)o(g\345)e(l\370bende,)g(statisk)o(e)h (sider)f(ville)g(bare)f(kunne)i(k)o(omprimeres)g(en)e(gang)g(for)g (alle,)g(men)382 4301 y(n\345r)32 b(de)g(i)f(forv)o(ejen)j(har)e(in)l (v)o(esteret)j(en)d(del)g(i)f(den)i(for)f(at)f(kunne)j(oms\346tte)e(de) g(dynamisk)o(e)382 4414 y(sider)24 b(til)g(HTML,)d(er)i(det)h(muligvis) h(relati)n(vt)g(billigt)g(at)e(foretage)j(den)e(forn\370dne)i (udvidelse.)523 4527 y(Desuden)f(er)f(en)g(stor)h(del)f(af)g (websiderne)i(ret)f(sm\345,)e(dvs.)h(under)i(10)e(kb,)g(s\345)g (medmindre)382 4640 y(metoden)32 b(ogs\345)f(er)f(ef)n(fekti)n(v)i (p\345)f(sm\345)f(\002ler)l(,)g(kan)h(en)g(del)g(af)f(ge)n(vinsten)j (forsvinde)g(\(mindre)382 4753 y(\002ler)24 b(fylder)h(dog)g(ikk)o(e)g (s\345)f(me)o(get)h(s\345)f(de)g(udg\370r)i(forholdsm\346ssigt)h (mindre)e(af)f(den)h(samlede)382 4865 y(datam\346ngde\).)523 4978 y(Kra)n(v)o(ene)f(til)g(en)g(k)o(ompressionsalgoritme)29 b(er)23 b(alts\345)i(at)e(den)518 5166 y Fs(\017)46 b FJ(er)24 b(ef)n(fekti)n(v)g(p\345)g(HTML-sider)518 5354 y Fs(\017)46 b FJ(kan)24 b(bruges)h(i)e(forbindelse)k(med)c(dynamisk)o (e)j(sider)1831 5652 y(15)p eop %%Page: 16 18 16 17 bop 1412 228 a FI(Kapitel)25 b(3:)e(Beho)o(vsanalyse)p 382 266 2989 4 v 518 548 a Fs(\017)46 b FJ(ikk)o(e)26 b(er)f(for)g(bere)o(gningskr\346v)o(ende,)30 b(dvs.)25 b(er)g(hurtig)i(til)e(at)g(k)o(omprimere)i(og)e(dek)o(om-)609 661 y(primere)518 848 y Fs(\017)46 b FJ(er)24 b(god)g(til)f(sm\345)g (s\345v)o(el)i(som)e(store)h(\002ler)382 1036 y(Nogle)f(af)f(disse)i (kra)n(v)f(kan)g(v\346re)g(i)f(k)o(on\003ikt)i(med)e(hinanden)j(s\345)e (en)f(gi)n(v)o(en)i(algoritmes)g(e)o(gen-)382 1149 y(skaber)h(m\345)e (afh\346nge)h(af)g(en)f(afv)o(ejning.)523 1262 y(N\345r)g(potentialet)j (for)e(en)f(k)o(ompressionl\370sning)29 b(og)23 b(nogle)i(kra)n(v)f (til)f(den)h(s\345ledes)h(er)e(ble-)382 1375 y(v)o(et)h(f)o (astsl\345et,)i(kan)f(vi)g(g\345)f(o)o(v)o(er)g(til)h(at)f(de\002nere)h (selv)o(e)g(k)o(ompressionsbe)o(grebe)q(t,)k(f\370rst)c(fra)g(en)382 1488 y(teoretisk)h(synspunkt)g(i)d(form)h(af)f(be)o(grebet)i FD(informationsteori)p FJ(.)1831 5652 y(16)p eop %%Page: 17 19 17 18 bop 382 1171 a FC(Kapitel)43 b(4)382 1586 y FK(Inf)-5 b(ormationsteori)382 2031 y FJ(Informationsindholde)q(t)43 b(er)38 b(som)g(n\346vnt)g(i)g(indledningen)j(ikk)o(e)e(n\370dv)o (endigvis)j(lig)c(med)382 2144 y(st\370rrelsen)c(af)e(data.)g(Hv)n (ordan)h(\002nder)f(man)f(da)h(ud)f(af)h(hv)n(or)g(me)o(get)g (information)i(der)e(er)f(i)382 2257 y(en)23 b(gi)n(v)o(en)i(m\346ngde) e(data?)523 2369 y(En)32 b(m\345de)h(at)g(gribe)g(problemet)i(an)e (p\345)g(er)f(at)h(stille)h(en)f(r\346kk)o(e)g(ja/nej-sp\370r)n (gsm\345l)38 b(om)382 2482 y(dataene)24 b(\226)e(er)g(det)h(n\346ste)g (te)o(gn)f(et)h(bogsta)n(v?)i(Er)c(det)i(et)f(stort)h(bogsta)n(v?)i(Er) c(det)i(et)f(`a'?)h(Er)f(det)382 2595 y(et)h(`b'?)523 2708 y(Et)c(ja)h(eller)h(et)f(nej)g(kan)h(opf)o(attes)h(som)e(enten)h (et)f(0)f(eller)i(et)f(1)g(s\345)g(r\346kk)o(en)h(af)f(sv)n(ar)g(bli)n (v)o(er)h(til)382 2821 y(en)h(bin\346r)h(streng.)g(Hvis)f(vi)h(opf)o (atter)h(dataene)g(som)e(adskilte)i(te)o(gn,)f(kan)g(m\345let)f(for)h (informa-)382 2934 y(tion)29 b(v\346re)g(det)g(gennemsnitlige)j(antal)e (af)e(sp\370r)n(gsm\345l,)j(sv)n(arende)f(til)f(den)g(gennemsnitlige) 382 3047 y(l\346ngde)22 b(af)e(de)h(bin\346re)h(strenge,)g(der)f(er)g (n\370dv)o(endige)j(for)d(at)g(kunne)h(identi\002cere)h(hv)o(ert)f(te)o (gn.)523 3160 y(Antallet)37 b(af)f(n\370dv)o(endige)i(sp\370r)n (gsm\345l)h(afh\346nger)e(imidlertid)g(af)f(sandsynlighederne)382 3273 y(for)g(de)g(enk)o(elte)h(udf)o(ald;)h(hvis)e(et)g(gi)n(v)o(ent)g (udf)o(ald)h(v)n(ar)f(me)o(get)g(sandsynligt)j(kunne)e(det)f(jo)382 3386 y(f.eks.)30 b(godt)g(betale)h(sig)f(at)f(starte)i(med)e(at)h (sp\370r)n(ge)h(direkte)h(efter)e(netop)h(det)f(udf)o(ald,)h(mens)382 3499 y(hvis)26 b(modsat)f(alle)h(udf)o(ald)g(v)n(ar)f(omtrent)h(lige)f (sandsynlige,)j(kunne)f(det)e(bedst)h(betale)g(sig)f(at)382 3611 y(sp\370r)n(ge)g(om)e(det)h(k)o(onkrete)i(udf)o(ald)f(v)n(ar)f(et) g(fra)f(den)h(ene)g(halvdel)i(af)d(udf)o(aldene)k(\226)c(s\345)g(\002k) g(man)382 3724 y(hurtigst)i(muligt)g(indkredset)h(det.)382 4017 y FB(4.1)119 b(Entr)n(opi)382 4224 y FJ(Antallet)32 b(af)e(n\370dv)o(endige)k(sp\370r)n(gsm\345l)f(til)d(et)h(me)o(get)f (sandsynligt)k(udf)o(ald)e(er)f(alts\345)g(mindre)382 4337 y(end)23 b(for)g(et)f(med)g(en)h(lille)g(sandsynlighed,)k(hvilk)o (et)d(kan)f(opf)o(attes)i(som)d(at)h(informationsind-)382 4450 y(holdet)31 b(for)f(det)f(f\370rste)i(udf)o(ald)g(er)f(mindre)g (end)g(for)f(det)h(andet.)h(Dette)e(forhold)j(kan)e(opn\345s)382 4563 y(matematisk)f(v)o(ed)e(at)h(de\002nere)g(informationsindholde)q (t)33 b(for)27 b(et)h(gi)n(v)o(ent)g(udf)o(ald)h(som)e([17)q(,)g(s.)382 4676 y(14])1411 4880 y Fu(i)p Fr(\()p Fu(x)p Fr(\))f(=)f Fs(\000)15 b Fr(log)1890 4902 y Ft(2)1944 4880 y Fu(P)e Fr(\()p Fu(X)33 b Fr(=)25 b Fu(x)p Fr(\))382 5084 y FJ(hv)n(or)32 b Fu(x)e FJ(er)h(et)g(udf)o(ald)i(for)e(en)g(diskret)i(stokastisk)h(v)n (ariabel)f Fu(X)38 b FJ(og)31 b Fu(P)13 b Fr(\()p Fu(X)47 b Fr(=)39 b Fu(x)p Fr(\))31 b FJ(sandsyn-)382 5197 y(ligheden)39 b(for)e(at)g(udf)o(aldet)j(optr\346der)e(\(vi)f(ben)o(ytter)i(herefter) g(en)e(k)o(ortere)i(notation)g(hv)n(or)382 5310 y Fu(p)p Fr(\()p Fu(x)p Fr(\))26 b(=)f Fu(P)13 b Fr(\()p Fu(X)33 b Fr(=)25 b Fu(x)p Fr(\))p FJ(\).)c(Her)g(er)g(ben)o(yttet)j (totalslogaritmen)h(hv)n(ad)e(der)f(gi)n(v)o(er)g(resultatet)i(i)d (bit,)1831 5652 y(17)p eop %%Page: 18 20 18 19 bop 1366 228 a FI(Kapitel)25 b(4:)e(Informationsteori)p 382 266 2989 4 v 382 548 a FJ(andre)h(logaritmer)g(gi)n(v)o(er)f(en)g (anden)h(enhed)h(der)e(dog)g(kun)h(afviger)g(fra)f(bit-enheden)j(med)d (en)382 661 y(k)o(onstant)j(f)o(aktor)f([4,)e(s.)g(14].)523 774 y(F)o(\370r)18 b(vi)h(kan)h(forts\346tte,)g(skal)g(vi)f(ha)n(v)o(e) h(de\002nitionen)i(af)d(et)g FD(alfabet)k FJ(p\345)c(plads.)h(Et)e(alf) o(abet)j Fq(A)382 887 y FJ(er)f(m\346ngden)h(af)f(forsk)o(ellige)j (symboler)f(som)d(en)i(algoritme)g(kan)g(\002nde)f(i)g(en)g(gi)n(v)o (en)h(m\346ngde)382 1000 y(data;)28 b(f.eks.)f(kan)h(\204abccba\223)i (repr\346senteres)g(vha.)d(alf)o(abetet)j Fq(A)58 b Fr(=)32 b Fs(f)p Fu(a;)15 b(b;)g(c)p Fs(g)p FJ(,)28 b(men)f(det)g(kan)382 1112 y(ogs\345)d(repr\346senteres)j(vha.)d Fq(B)44 b Fr(=)25 b Fs(f)p Fu(abc;)15 b(cba)p Fs(g)p FJ(.)523 1225 y(F)o(or)28 b(en)g(gi)n(v)o(en)h(diskret)h(stokastisk)i(v)n(ariabel)e Fu(X)35 b FJ(hvis)30 b(udf)o(aldsrum)g(er)f(alf)o(abetet)i Fq(A)19 b FJ(,)34 b(og)382 1338 y(hvis)26 b(udf)o(ald)g(er)f(bestemt)h (af)e(sandsynlighedsfo)q(rde)q(lin)q(gs)q(fun)q(kt)q(ion)q(en)31 b Fu(p)p Fr(\()p Fu(x)p Fr(\))p FJ(,)24 b(de\002nerer)i(man)382 1451 y(s\345)34 b FD(entr)l(opien)i Fu(H)7 b Fr(\()p Fu(X)g Fr(\))34 b FJ(som)f(den)i(forv)o(entede)h(middelv\346rdi)f(af)f (informationsindhold)q(ene)382 1564 y(for)24 b(alle)g(udf)o(aldene)i ([4)q(,)c(s.)h(13]:)1021 1881 y Fu(H)7 b Fr(\()p Fu(X)g Fr(\))26 b(=)1380 1795 y Fp(X)1378 1992 y Fo(x)p Fn(2)p Fm(A)1528 1881 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p Fu(i)p Fr(\()p Fu(x)p Fr(\))h(=)e Fs(\000)2059 1795 y Fp(X)2058 1992 y Fo(x)p Fn(2)p Fm(A)2208 1881 y Fu(p)p Fr(\()p Fu(x)p Fr(\))15 b(log)2509 1903 y Ft(2)2563 1881 y Fu(p)p Fr(\()p Fu(x)p Fr(\))523 2171 y FJ(T)-7 b(ag)19 b(som)g(et)g(eksempel)i (den)f(stokastisk)o(e)i(v)n(ariabel)f(i)e(tabel)i(4.1)e(som)g(bygger)i (p\345)e(te)o(gnf\370l-)382 2284 y(gen)g(\204aaabbcbcbcababaa)q(\223)24 b(med)18 b(alf)o(abetet)j Fs(f)p Fu(a;)15 b(b;)g(c)p Fs(g)p FJ(.)20 b(Ud)d(fra)i(sandsynlighedsfor)q(del)q(ing)q(en)382 2397 y(kan)24 b(entropien)i(bere)o(gnes)f(til)842 2601 y Fu(H)32 b Fr(=)25 b Fs(\000)1142 2574 y Fl(7)p 1127 2586 61 3 v 1127 2627 a(16)1218 2601 y Fs(\001)20 b Fr(log)1381 2623 y Ft(2)1460 2574 y Fl(7)p 1445 2586 V 1445 2627 a(16)1536 2601 y Fs(\000)1652 2574 y Fl(6)p 1637 2586 V 1637 2627 a(16)1728 2601 y Fs(\001)h Fr(log)1891 2623 y Ft(2)1971 2574 y Fl(6)p 1956 2586 V 1956 2627 a(16)2047 2601 y Fs(\000)2163 2574 y Fl(3)p 2148 2586 V 2148 2627 a(16)2239 2601 y Fs(\001)f Fr(log)2402 2623 y Ft(2)2481 2574 y Fl(3)p 2466 2586 V 2466 2627 a(16)2562 2601 y Fr(=)25 b(1)p Fu(;)p Fr(5052)p 1472 2833 810 8 v 1564 2937 a Fu(X)171 b FJ(a)138 b(b)g(c)p 1472 2991 810 5 v 1521 3096 a Fu(p)p Fr(\()p Fu(x)p Fr(\))1815 3069 y Fl(7)p 1799 3081 61 3 v 1799 3122 a(16)1995 3069 y(6)p 1980 3081 V 1980 3122 a(16)2176 3069 y(3)p 2160 3081 V 2160 3122 a(16)p 1472 3153 810 8 v 933 3338 a FD(T)-8 b(abel)24 b(4.1:)31 b(F)-5 b(r)m(ekvensfor)m(deling)27 b(med)c(alfabetet)j Fs(f)p Fu(a;)15 b(b;)g(c)p Fs(g)523 3539 y FJ(Hvis)j(man)g(betragter)i(te)o(gnf\370lgen,)h(ses)d(det)g(at)g (vi)g(ogs\345)h(kan)g(bruge)g(alf)o(abetet)h Fs(f)p Fu(aa;)15 b(ab;)g(bc)p Fs(g)382 3652 y FJ(da)24 b(a,)f(b)h(og)g(c)f(kun)i (optr\346der)g(i)e(denne)j(r\346kk)o(ef\370lge.)g(Hvis)d(man)h(g\370r)g (det,)g(bli)n(v)o(er)h(entropien)h(i)382 3765 y(stedet)933 3969 y Fu(H)32 b Fr(=)25 b Fs(\000)1218 3942 y Fl(2)p 1218 3954 31 3 v 1218 3995 a(8)1279 3969 y Fs(\001)20 b Fr(log)1442 3991 y Ft(2)1506 3942 y Fl(2)p 1506 3954 V 1506 3995 a(8)1567 3969 y Fs(\000)1668 3942 y Fl(3)p 1668 3954 V 1668 3995 a(8)1728 3969 y Fs(\001)h Fr(log)1891 3991 y Ft(2)1956 3942 y Fl(3)p 1956 3954 V 1956 3995 a(8)2016 3969 y Fs(\000)2117 3942 y Fl(3)p 2117 3954 V 2117 3995 a(8)2178 3969 y Fs(\001)f Fr(log)2341 3991 y Ft(2)2405 3942 y Fl(3)p 2405 3954 V 2405 3995 a(8)2471 3969 y Fr(=)25 b(1)p Fu(;)p Fr(5613)523 4173 y FJ(Entropien)h (afh\346nger)g(alts\345)f(hv)n(ordan)i(man)d(v\346lger)h(sit)f(alf)o (abet.)i(V)-10 b(ed)24 b(at)g(v\346lge)h(et)f(med)382 4286 y(blokk)o(e)d(af)e(to)g(te)o(gn,)g(har)h(vi)f(n\346sten)h(halv)o (eret)g(entropien)i(\226)d(1,505)h(bit)f(pr)-5 b(.)19 b(symbol)h(mod)f(1,561)382 4399 y(bit)24 b(pr)-5 b(.)23 b(to)g(datate)o(gn)j(sv)n(arende)f(til)f(0,7807)g(bit)g(pr)-5 b(.)23 b(datate)o(gn.)382 4692 y FB(4.2)119 b(Egenskaber)30 b(v)o(ed)g(entr)n(opi)382 4899 y FJ(Man)19 b(kan)h(be)n(vise)g(nogle)g (interessante)j(tr\346k)c(v)o(ed)g Fu(H)7 b Fr(\()p Fu(X)g Fr(\))20 b FJ(\226)f(det)g(er)g(f)o(aktisk)i(disse)f(e)o(genskaber)382 5012 y(der)27 b(g\370r)f(at)h(entropi)h(er)e(et)g(n)o(yttigt)i(be)o (greb)g(at)e(besk\346ftige)j(sig)d(med.)g(S\346tningerne)i(vil)f(ikk)o (e)382 5125 y(bli)n(v)o(e)e(be)n(vist)g(her)l(,)g(da)f(en)g (udt\370mmende)i(be)n(visf\370relse)i(ikk)o(e)d(er)f(rele)n(v)n(ant)i (for)e(projektet)j(som)382 5237 y(helhed.)1831 5652 y(18)p eop %%Page: 19 21 19 20 bop 1366 228 a FI(Kapitel)25 b(4:)e(Informationsteori)p 382 266 2989 4 v 382 548 a Fw(4.2.1)99 b(Optimal)24 b(k)o(odning)382 722 y FJ(N\345r)32 b(man)f(skal)i(v\346lge)g(et)f(alf)o(abet)i(og)e (dets)h(repr\346sentation)i(i)d(form)g(af)g(k)o(odeord,)i(g\346lder)382 835 y(det)24 b(naturligvis)j(om)d(at)g(k)o(odeordene)j(resulterer)g(i)c (den)i(k)o(ortest)h(mulige)f(tekst)g(n\345r)f(de)g(bli)n(v)o(er)382 948 y(sat)h(sammen)h(til)f(den)g(k)o(omprimerede)j(tekst.)e(Der)e(er)h (eksisterer)j(alts\345)e FD(optimale)g FJ(k)o(oder)h(der)382 1061 y(gi)n(v)o(er)22 b(et)f(bedre)i(k)o(ompressionsforhold)k(end)22 b(alle)g(andre)h(k)o(oder)g(p\345)e(en)h(gi)n(v)o(en)g(m\346ngde)g (data.)523 1174 y(Hvis)g Fu(l)743 1188 y Ft(1)782 1174 y Fu(;)15 b(l)849 1188 y Ft(2)904 1174 y Fu(:)g(:)g(:)i(l)1053 1188 y Fo(n)1121 1174 y FJ(er)k(l\346ngderne)j(af)d(de)h(optimale)h(k)o (odeord)h(for)e(en)g(stokastisk)i(v)n(ariabel)382 1287 y Fu(X)42 b FJ(med)35 b(sandsynlighedsford)q(elin)q(ge)q(n)40 b Fu(p)p Fr(\()p Fu(x)p Fr(\))p FJ(,)35 b(og)g Fu(L)f FJ(er)h(den)h(forv)o(entede)i(l\346ngde)d(af)g(den)382 1400 y(optimale)25 b(k)o(ode)f(\()p Fu(L)i Fr(=)1135 1331 y Fp(P)1246 1400 y Fu(p)p Fr(\()p Fu(x)1379 1414 y Fo(i)1407 1400 y Fr(\))p Fu(l)1469 1414 y Fo(i)1498 1400 y FJ(\),)c(g\346lder)j(s\345)e([4)q(,)f(s.)h(86\22688])1410 1572 y Fu(H)7 b Fr(\()p Fu(X)g Fr(\))26 b Fs(\024)f Fu(L)g Fs(\024)g Fu(H)7 b Fr(\()p Fu(X)g Fr(\))21 b(+)f(1)382 1744 y FJ(Det)i(vil)h(sige)g(at)f(den)h(mindste)h(m\346ngde)f(data)g (man)f(kan)h(bruge)h(til)f(at)f(repr\346sentere)j(et)e(te)o(gn,)382 1857 y(ligger)g(inden)g(for)f(\351n)g(bit)g(af)f(entropien)k(af)c (dataene.)i(V)-5 b(i)21 b(kan)h(presse)h(dataene)h(ned)e(til)g Fu(H)7 b Fr(\()p Fu(X)g Fr(\))p FJ(,)382 1970 y(men)23 b(s\345)h(heller)g(ikk)o(e)h(l\346ngere.)523 2083 y(At)c(det)i (optimale)h(ligger)f(inden)h(for)e(\351n)h(bit)f(og)g(ikk)o(e)i(er)e (mindre,)h(h\346nger)g(sammen)f(med)382 2196 y(at)i(der)h(er)g(et)g (vist)g(spild)h(hvis)f(entropien)i(ikk)o(e)f(gi)n(v)o(er)f(et)f(helt)i (tal)f(\226)f(vi)h(kan)g(ikk)o(e)g(sende)h(halv)o(e)382 2309 y(bit.)f(Dette)g(problem)h(kan)g(formindsk)o(es)h(v)o(ed)e(at)g(k) o(ode)h(st\370rre)g(blokk)o(e)h(af)e(gangen)h(s\345)f(spildet)382 2421 y(bli)n(v)o(er)f(spredt)h(ud)f(p\345)f(\003ere)g(te)o(gn)h(og)g (dermed)g(samlet)g(bli)n(v)o(er)h(mindre.)382 2665 y Fw(4.2.2)99 b(Maksimal)24 b(entr)n(opi)i(v)o(ed)f(ligelig)f(f)n (ordeling)382 2840 y FJ(Hvis)g Fu(n)e FJ(er)h(antallet)j(af)e(udf)o (ald)h(i)e(fordelingen)k(for)d Fu(X)7 b FJ(,)23 b(opn\345s)i(den)f (maksimale)h(entropi)g(hvis)382 2953 y(sandsynlighederne)36 b(for)30 b(udf)o(aldene)i(er)e(ens)g(\()p Fu(p)p Fr(\()p Fu(x)p Fr(\))38 b(=)2216 2925 y Fl(1)p 2212 2937 39 3 v 2212 2979 a Fk(n)2261 2953 y FJ(\),)29 b(og)g(har)i(v\346rdien)g Fr(log)3047 2974 y Ft(2)3102 2953 y Fu(n)d FJ([4)q(,)h(s.)382 3065 y(27].)523 3178 y(Hvis)20 b(f.eks.)g Fu(X)26 b FJ(kan)20 b(antage)i(256)e(v\346rdier)h(med)e(lige)h(stor)h(sandsynlighed,)j(er) 19 b(entropien)382 3291 y Fu(H)7 b Fr(\()p Fu(X)g Fr(\))52 b(=)e(log)907 3313 y Ft(2)947 3291 y Fr(\(256\))i(=)e(8)24 b FJ(bit)q(.)36 b(Hvis)h(der)g(er)g(forsk)o(el)i(p\345)e (sandsynlighedern)q(e,)42 b(bli)n(v)o(er)382 3404 y(entropien)26 b(mindre)e(end)g(8)f(bit.)523 3517 y(Denne)d(e)o(genskab)h (fort\346ller)g(noget)g(om)d(hv)n(orfor)k(almindelige)f(data)f(normalt) h(kan)f(k)o(om-)382 3630 y(primeres.)29 b(Hvis)f(en)g(te)o(gnf\370lge)i (er)e(genereret)j(helt)d(tilf\346ldigt,)i(vil)e(de)g(forsk)o(ellige)j (v\346rdier)382 3743 y(naturligvis)f(optr\346de)d(med)f(nogenlunde)k (samme)d(sandsynlighed)k(hvis)c(man)f(betragter)j(en)382 3856 y(tilstr\346kk)o(eligt)c(stor)d(datam\346ngde)h(\226)e(det)h(vil)g (sige)g(at)f(entropien)j(for)e(s\345dan)g(en)g(te)o(gnf\370lge)i(vil) 382 3969 y(ligge)e(lige)g(omkring)h(en)e(almindelig)i (repr\346sentation)i(af)c(te)o(gnene)i(hv)n(or)f(man)f(bruger)i(et)e(f) o(ast)382 4082 y(antal)j(bit,)g(alts\345)g(kan)g(disse)h(ikk)o(e)f(k)o (omprimeres.)523 4195 y(F)o(or)29 b(data)h(der)g(ikk)o(e)g(er)g (genereret)i(helt)e(tilf\346ldigt,)h(vil)f(der)g(derimod)g(som)g(re)o (gel)g(v\346re)382 4307 y(en)d(struktur)i(der)e(g\370r)g(at)g(nogle)h (ting)f(g\345r)g(igen)h(mange)f(gange.)h(F)-7 b(.eks.)26 b(optr\346der)i(`e')f(me)o(get)382 4420 y(hyppigere)f(end)e(`z')f(i)g (en)h(almindelig)i(dansk)e(tekst,)h(og)e(dermed)i(bli)n(v)o(er)f (entropien)i(mindre.)523 4533 y(Det)33 b(kan)i(virk)o(e)f(m\346rk)o (eligt)h(at)f(helt)g(tilf\346ldige)i(data)e(indeholder)j(mere)c (information)382 4646 y(end)e(omhyggeligt)j(udformede,)e(mennesk)o (eskabte)j(data,)d(men)e(den)i(mennesk)o(elige)i(bear)n(-)382 4759 y(bejdningsproces)27 b(er)22 b(jo)g(netop)i(g\345et)f(ud)f(p\345)g (at)g(sortere)i(og)f(ordne)g(dataene.)h(En)d(st\370rre)j(orden)382 4872 y(gi)n(v)o(er)g(f\346rre)f(muligheder)l(,)j(og)e(g\370r)g(det)g (muligt)g(at)f(forudsige)j(data.)382 5116 y Fw(4.2.3)99 b(Afh\346ngigheder)26 b(r)n(educer)n(er)i(entr)n(opi)382 5290 y FJ(I)21 b(almindelig)i(tekst)f(optr\346der)h(te)o(gnene)g(med)e (en)g(vis)h(indbyrdes)i(afh\346ngighed.)g(Hvis)d(f.eks.)382 5403 y(bogsta)n(v)o(erne)35 b(\204b)p Fu(x)p FJ(ld\223)d(st\345r)g(i)f (en)h(dansk)g(tekst,)h(er)e(der)h(en)f(me)o(get)h(stor)g(sandsynlighed) k(for)1831 5652 y(19)p eop %%Page: 20 22 20 21 bop 1366 228 a FI(Kapitel)25 b(4:)e(Informationsteori)p 382 266 2989 4 v 382 548 a FJ(at)29 b Fu(x)f FJ(enten)i(er)f(et)g(`o')h (eller)f(et)g(`y'.)h(Det)e(viser)i(sig)g(at)f(indbyrdes)i (afh\346ngigheder)i(mellem)382 661 y(te)o(gnene)27 b(for\345rsager)h (at)e(entropien)i(reduceres.)g(F)o(\370rst)d(er)h(der)g(dog)g(brug)h (for)f(at)f(f\345)h(de\002neret)382 774 y(f\346lles)e(entropi)h(og)f (betinget)h(entropi.)523 887 y(Den)c FD(f\346lles)g(entr)l(opi)i Fu(H)7 b Fr(\()p Fu(X)r(;)15 b(Y)21 b Fr(\))g FJ(for)g(to)g(diskrete)i (stokastisk)o(e)h(v)n(ariable)f(med)e(den)h(f\346lles)382 1000 y(sandsynlighedsford)q(el)q(ing)29 b Fu(p)p Fr(\()p Fu(X)r(;)15 b(Y)21 b Fr(\))i FJ(er)h(de\002neret)h(som)e([4)q(,)f(s.)h (15])1062 1217 y Fu(H)7 b Fr(\()p Fu(X)r(;)15 b(Y)21 b Fr(\))26 b(=)f Fs(\000)1614 1131 y Fp(X)1667 1326 y Fo(i)1760 1131 y Fp(X)1810 1326 y Fo(j)1907 1217 y Fu(p)p Fr(\()p Fu(x)2040 1231 y Fo(i)2068 1217 y Fu(;)15 b(y)2153 1231 y Fo(j)2189 1217 y Fr(\))g(log)i Fu(p)p Fr(\()p Fu(x)2505 1231 y Fo(i)2534 1217 y Fu(;)e(y)2619 1231 y Fo(j)2655 1217 y Fr(\))382 1516 y FJ(mens)24 b(den)g FD(beting)o(ede)i(entr)l(opi)f Fu(H)7 b Fr(\()p Fu(X)g Fs(j)p Fu(Y)21 b Fr(\))i FJ(er)h(de\002neret)g(som)976 1734 y Fu(H)7 b Fr(\()p Fu(X)g Fs(j)p Fu(Y)21 b Fr(\))26 b(=)1432 1648 y Fp(X)1481 1843 y Fo(j)1578 1734 y Fu(p)p Fr(\()p Fu(y)1704 1748 y Fo(j)1740 1734 y Fr(\))p Fu(H)7 b Fr(\()p Fu(X)g Fs(j)p Fu(Y)47 b Fr(=)25 b Fu(y)2241 1748 y Fo(j)2277 1734 y Fr(\))1336 1994 y(=)g Fs(\000)1518 1907 y Fp(X)1567 2103 y Fo(j)1664 1994 y Fu(p)p Fr(\()p Fu(y)1790 2008 y Fo(j)1826 1994 y Fr(\))1876 1907 y Fp(X)1930 2103 y Fo(i)2023 1994 y Fu(p)p Fr(\()p Fu(x)2156 2008 y Fo(i)2184 1994 y Fs(j)p Fu(y)2254 2008 y Fo(j)2291 1994 y Fr(\))15 b(log)i Fu(p)p Fr(\()p Fu(x)2607 2008 y Fo(i)2635 1994 y Fs(j)p Fu(y)2705 2008 y Fo(j)2741 1994 y Fr(\))1336 2254 y(=)25 b Fs(\000)1518 2167 y Fp(X)1571 2363 y Fo(i)1664 2167 y Fp(X)1713 2363 y Fo(j)1810 2254 y Fu(p)p Fr(\()p Fu(x)1943 2268 y Fo(i)1972 2254 y Fu(;)15 b(y)2057 2268 y Fo(j)2093 2254 y Fr(\))g(log)i Fu(p)p Fr(\()p Fu(x)2409 2268 y Fo(i)2437 2254 y Fs(j)p Fu(y)2507 2268 y Fo(j)2544 2254 y Fr(\))382 2546 y FJ(hv)n(or)26 b(vi)e(har)h(ben)o(yttet)i(de\002nitionen)g(for)e(entropi)i(og)e(skre)n (v)o(et)g(lidt)h(om.)e(Den)g(f\346lles)h(entropi)382 2659 y(kan)f(vha.)g(en)f(k\346dere)o(gel)i(udvides)h(til)d(at)h(opf)o (atte)h(\003ere)e(v)n(ariable)i(med)f(f\346lles)g(fordeling.)523 2772 y(Man)34 b(kan)g(da)f(be)n(vise)i([4)q(,)e(s.)g(27\22628])i(at)f (for)g(to)f(afh\346ngige)j(stokastisk)o(e)h(v)n(ariable)e Fu(X)382 2885 y FJ(og)24 b Fu(Y)43 b FJ(med)23 b(en)h(f\346lles)g (sandsynlighedsford)q(el)q(ing)30 b Fu(p)p Fr(\()p Fu(X)r(;)15 b(Y)21 b Fr(\))p FJ(,)h(vil)i(entropien)j(for)d Fu(X)30 b FJ(gi)n(v)o(et)24 b(at)382 2998 y(udf)o(aldet)i(af)d Fu(Y)43 b FJ(er)23 b(k)o(endt,)i(v\346re)e(mindre)h(end)g(entropien)i (for)e(blot)g Fu(X)7 b FJ(:)1530 3202 y Fu(H)g Fr(\()p Fu(X)g Fs(j)p Fu(Y)21 b Fr(\))26 b Fu(<)f(H)7 b Fr(\()p Fu(X)g Fr(\))523 3406 y FJ(Det)23 b(kan)h(bl.a.)g(be)n(vises)h(at)e(ha) n(v)o(e)i(den)f(f\370lge)g(at)g(entropien)i(for)e(en)f(blok)i(af)e(te)o (gn)h(altid)h(vil)382 3519 y(v\346re)e(mindre)i(end)f(\(eller)g(e)n (vt.)f(lig)h(med\))g(de)f(sammenlagte)j(entropier)g(for)d(de)h(enk)o (elte)h(te)o(gn)808 3723 y Fu(H)7 b Fr(\()p Fu(X)1001 3737 y Ft(1)1041 3723 y Fu(;)15 b(X)1156 3737 y Ft(2)1196 3723 y Fu(;)g(:)g(:)g(:)32 b(;)15 b(X)1488 3737 y Fo(n)1536 3723 y Fr(\))25 b Fs(\024)g Fu(H)7 b Fr(\()p Fu(X)1885 3737 y Ft(1)1925 3723 y Fr(\))21 b(+)f Fu(H)7 b Fr(\()p Fu(X)2265 3737 y Ft(2)2305 3723 y Fr(\))20 b(+)g Fu(:)15 b(:)g(:)22 b Fr(+)e Fu(H)7 b Fr(\()p Fu(X)2862 3737 y Fo(n)2909 3723 y Fr(\))382 3927 y FJ(Eksemplet)29 b(fra)f(afsnit)h(4.1) f(hv)n(or)h(entropien)h(ble)n(v)f(halv)o(eret)g(v)o(ed)g(at)e(v\346lge) i(et)f(alf)o(abet)h(med)382 4040 y(blokk)o(e)c(af)f(to)f(te)o(gn,)h (illustrerer)i(dette.)523 4153 y(Ud)k(fra)g(denne)i(e)o(genskab)h (f\345s)d(yderligere)j(en)e(be)o(grundelse)i(for)e(at)f(f.eks.)h (almindelig)382 4266 y(tekst)h(kan)g(k)o(omprimeres.)h(Den)e(struktur)l (,)i(der)f(er)f(i)g(mennesk)o(eskabte)k(data,)d(g\370r)g(at)f(sand-)382 4379 y(synligheden)f(for)c(at)g(et)g(te)o(gn)h(optr\346der)l(,)g (afh\346nger)h(me)o(get)e(af)g(k)o(onteksten.)k(Denne)c(afh\346n-)382 4492 y(gighed)21 b(formindsk)o(er)i(entropien)g(hvis)d(ens)h(model)f (af)g(dataene)i(er)d(i)h(stand)h(til)f(at)g(tage)g(hensyn)382 4605 y(til)j(den,)h(f.eks.)g(v)o(ed)f(at)h(arbejde)h(p\345)f(blokk)o(e) h(af)e(te)o(gn)h(i)f(stedet)i(for)f(kun)g(enk)o(elte.)382 4897 y FB(4.3)119 b(K)m(omprimering)30 b(og)g(entr)n(opi)382 5104 y FJ(Man)c(kan)h(f)o(aktisk)h(vise)f(at)f(en)g(optimal)h(k)o(ode)g (der)g(ligger)g(inden)h(for)e(gr\346nserne)i Fu(H)7 b Fr(\()p Fu(X)g Fr(\))27 b FJ(og)382 5217 y Fu(H)7 b Fr(\()p Fu(X)g Fr(\))26 b(+)e(1)29 b FJ(er)h(mulig)g(at)f(k)o(onstruere)k (\(endda)e(ret)e(simpelt,)i(en)e(algoritme)i(til)f(at)f(g\370re)i(det) 382 5330 y(pr\346senteres)d(i)d(afnit)h(5.1.2\),)g(men)f(som)g(det)h (ogs\345)h(ses)e(er)h(der)g(forsk)o(ellige)i(m\345der)e(man)f(kan)1831 5652 y(20)p eop %%Page: 21 23 21 22 bop 1366 228 a FI(Kapitel)25 b(4:)e(Informationsteori)p 382 266 2989 4 v 382 548 a FJ(formindsk)o(e)31 b(datam\346ngden)h (yderligere)f(p\345.)e(Alt)g(afh\346ngig)h(af)f(hv)n(ordan)i(man)e (v\346lger)h(sit)382 661 y(alf)o(abet,)25 b(repr\346senteret)h(v)o(ed)e (den)g(stokastisk)o(e)j(v)n(ariabel)e Fu(X)7 b FJ(,)23 b(kan)h Fu(H)7 b Fr(\()p Fu(X)g Fr(\))24 b FJ(nemlig)g(v)n(ariere.)523 774 y(F)o(or)g(at)h(optimere)h(k)o(ompressionsforhold)q(et)k(g\346lder) c(det)f(alts\345)g(om)g(at)f(v\346lge)i(en)e(model)382 887 y(der)e(passer)i(til)e(dataene.)i(Hvis)e(modellen)h(har)g(som)f(en) g(grundl\346ggende)k(antagelse)e(at)e(hv)o(ert)382 1000 y(te)o(gn)27 b(er)f(helt)h(uafh\346ngigt)h(af)e(det)h(fore)o (g\345ende,)i(mister)d(man)g(en)h(mulig)f(ge)n(vinst)i(hvis)f(hv)o(ert) 382 1112 y(te)o(gn)20 b(f)o(aktisk)i(afh\346nger)f(til)f(en)g(vis)g (udstr\346kning)j(af)c(sin)i(for)n(g\346nger)h(i)d(de)h(data)h(man)e (ben)o(ytter)382 1225 y(modellen)25 b(p\345.)523 1338 y(Med)31 b(de)h(o)o(v)o(enn\346vnte)h(e)o(genskaber)h(kan)e(vi)f (allerede)j(se)d(at)g(det)h(kan)g(v\346re)f(en)h(fordel)382 1451 y(at)k(sl\345)h(\003ere)g(te)o(gn)g(sammen)g(fordi)h(man)e(s\345)h (dels)g(kan)g(udn)o(ytte)i(afh\346ngigheder)h(mellem)382 1564 y(te)o(gnene,)28 b(afh\346ngigheder)j(der)c(k)o(ommer)h(fra)f(den) g(underliggende)32 b(datastruktur;)f(dels)c(kan)382 1677 y(reducere)f(det)d(spild)i(der)f(opst\345r)h(i)e(forbindelse)j(med)e (generering)i(af)d(k)o(odeordene.)523 1790 y(F)o(or)k(at)h(f\345)f(en)h (fornemmelse)i(af)e(hv)n(ordan)i(informationsindholde)q(t)j(i)27 b(HTML-\002ler)g(ud-)382 1903 y(m\370nter)d(sig,)g(besk\346ftiger)i(vi) d(os)h(i)f(det)g(f\370lgende)j(lidt)e(med)g(deres)g(struktur)-5 b(.)382 2152 y Fw(4.3.1)99 b(HTML,)25 b(inf)n(ormationsteor)n(etisk)g (set)382 2326 y FJ(HTML)37 b(best\345r)j(af)f(bidder)i(af)e(almindelig) i(tekst)f(omgi)n(v)o(et)g(af)f(opm\346rkninger)l(,)i FD(ta)o(gs)p FJ(,)f(af)382 2439 y(hvilk)o(e)34 b(kun)f(et)f(vist)h (antal)g(er)f(gyldige,)i(f.eks.)e(

)g(eller)h(.)29 b(Simple)j(tags)h(som)382 2552 y(de)27 b(n\346vnte)h(er)f (hyppige)i(og)e(indeholder)j(kun)d(lidt)h(information.)h(Imidlertid)g (kan)f(de)f(\003este)382 2665 y(tags)33 b(ogs\345)f(tage)h(parametre,)g (f.eks.)g(,)j(og)e(da)g(indholdet)j(af)d (parame-)382 2778 y(trene)d(ikk)o(e)h(er)e(be)o(gr\346nset)i(p\345)f (nogen)g(m\345de,)g(kan)g(den)g(form)f(for)h(opm\346rkninger)i(besidde) 382 2891 y(et)23 b(st\370rre)i(informationsindhold.)523 3004 y(T)-7 b(ags)32 b(uden)i(parametre)h(kan)e(alts\345)g(teoretisk)j (k)o(omprimeres)e(rigtigt)h(me)o(get,)d(mens)h(vi)382 3117 y(ikk)o(e)26 b(kan)g(forv)o(ente)h(at)e(kunne)h(k)o(omprimere)h (de)e(andre)i(tags)e(s\345)h(me)o(get)f(medmindre)h(de)g(op-)382 3230 y(tr\346der)e(\003ere)f(gange)i(i)e(HTML-\002len.)523 3343 y(Ud)29 b(o)o(v)o(er)g(opm\346rkningen)j(er)d(der)h(ogs\345)g(den) g(almindelige)i(tekst.)e(K)m(ompressionen)i(af)382 3455 y(denne)26 b(kan)f(v\346re)g(me)o(get)f(ef)n(fekti)n(v)i(fordi)g (bogsta)n(v)o(erne)i(i)c(almindelig)j(tekst)e(som)g(f\370r)f(n\346vnt) 382 3568 y(afh\346nger)i(me)o(get)e(af)g(hinanden.)j(Desuden)e(kan)g (vi)f(spare)i(p\345)e(alf)o(abetet)j(fordi)e(f.eks.)f(almin-)382 3681 y(delig)d(dansk)f(tekst)h(kun)f(best\345r)h(af)f(typisk)h(omkring) g(26)e(bogsta)n(v)o(er)j(samt)e(nogle)h(f\345)e(symboler)382 3794 y(som)k(bindestre)o(g,)j(k)o(omma)e(og)g(punktum)h(s\345)f(alf)o (abetet)i(med)d(stor)i(sandsynlighed)j(vil)c(holde)382 3907 y(sig)h(p\345)h(under)g(64)g(forsk)o(ellige)i(te)o(gn.)e(Dvs.)e (at)h(vi)h(umiddelbart,)h(uden)f(at)g(v\346re)f(o)o(v)o(erdre)n(v)o (ent)382 4020 y(so\002stik)o(erede,)h(kan)e(spare)h(2)e(bit)g(for)h(hv) o(ert)g(te)o(gn.)523 4133 y(Et)30 b(af)h(de)g(teoretisk)o(e)j(udledte)f (resultater)h(er)d(at)g(en)g(\204sk\346v\223)h(frekv)o(ensfordeling)37 b(gi)n(v)o(er)382 4246 y(en)25 b(mindre)g(entropi)h(end)g(en)e (ligelig,)i(hv)n(orfor)h(vi)e(har)g(unders\370gt)i(frekv)o (ensfordelingen)k(for)382 4359 y(te)o(gnene)25 b(p\345)f(v)n(ores)g (udv)n(algte)i(sider)e(\(beskre)n(v)o(et)i(i)d(afsnit)i(B.1\),)d(se)i (\002gur)f(4.1)h(p\345)f(n\346ste)h(side.)523 4472 y(Figuren)k(viser)g (at)f(fordelingen)k(f)o(aktisk)e(ikk)o(e)f(er)f(ligelig.)h(Men)f (derimod)i(er)e(den)g(o)o(v)o(er)n(-)382 4585 y(rask)o(ende)g(ens)e(i)f (de)g(forsk)o(ellige)k(\002ler)-5 b(.)24 b(Den)g(eneste)h(tydelige)i (forsk)o(el)f(er)f(h\370jden)h(p\345)e(toppen)382 4697 y(omkring)31 b(32)f(som)f(sv)n(arer)i(til)e(ASCII-k)o(oden)i(for)f (mellemrum,)f(hvilk)o(et)j(kan)e(sk)o(yldes)h(for)n(-)382 4810 y(sk)o(ellige)26 b(m\345der)d(at)h(indrykk)o(e)i(HTML-\002lerne)d (p\345.)523 4923 y(Med)e(et)h(almindeligt)i(k)o(ompressionsprogram)j(i) 21 b(h\345nden)i(kan)f(man)g(hurtigt)h(o)o(v)o(erbe)n(vise)382 5036 y(sig)29 b(om)f(at)h(HTML)e(kan)i(k)o(omprimeres)i(me)o(get,)e(og) g(dette)h(st\370ttes)g(af)f(de)g(o)o(v)o(enst\345ende)j(ob-)382 5149 y(serv)n(ationer)-5 b(.)26 b(Frekv)o(ensfordelingern)q(es)k (ensartethed)d(antyder)f(at)d(HTML-\002lerne)h(vil)g(ligge)382 5262 y(me)o(get)e(lige)h(mht.)f(k)o(ompressionsforhold)q(et)28 b(og)23 b(tyder)g(desuden)h(p\345)f(at)f(der)h(kan)g(spares)h(data.)382 5375 y(Hv)n(or)32 b(me)o(get)h(der)f(kan)h(k)o(omprimeres)h(v)n (arierer)g(naturligvis)i(lidt)c(med)g(skri)n(v)o(estil,)i(ops\346t-) 1831 5652 y(21)p eop %%Page: 22 24 22 23 bop 1366 228 a FI(Kapitel)25 b(4:)e(Informationsteori)p 382 266 2989 4 v 382 2257 a @beginspecial @setspecial gnudict begin gsave 0 0 translate 0.100 0.100 scale 0 setgray newpath 1.000 UL LTb 350 300 M 63 0 V 3037 0 R -63 0 V 350 496 M 63 0 V 3037 0 R -63 0 V 350 691 M 63 0 V 3037 0 R -63 0 V 350 887 M 63 0 V 3037 0 R -63 0 V 350 1082 M 63 0 V 3037 0 R -63 0 V 350 1278 M 63 0 V 3037 0 R -63 0 V 350 1473 M 63 0 V 3037 0 R -63 0 V 350 1669 M 63 0 V 3037 0 R -63 0 V 350 1864 M 63 0 V 3037 0 R -63 0 V 350 2060 M 63 0 V 3037 0 R -63 0 V 350 300 M 0 63 V 0 1697 R 0 -63 V 958 300 M 0 63 V 0 1697 R 0 -63 V 1566 300 M 0 63 V 0 1697 R 0 -63 V 2174 300 M 0 63 V 0 1697 R 0 -63 V 2781 300 M 0 63 V 0 1697 R 0 -63 V 3389 300 M 0 63 V 0 1697 R 0 -63 V 1.000 UL LTb 350 300 M 3100 0 V 0 1760 V -3100 0 V 350 300 L 1.000 UL LT0 3087 1947 M 263 0 V 350 300 M 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 26 V 13 91 V 484 300 L 12 0 V 12 117 V 520 300 L 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 536 V 751 308 L 12 62 V 12 -69 V 13 -1 V 12 1 V 12 3 V 12 4 V 12 50 V 12 0 V 13 -58 V 12 20 V 12 15 V 12 -13 V 12 34 V 12 -6 V 13 -21 V 12 -14 V 12 -11 V 12 2 V 12 2 V 12 -1 V 12 -5 V 13 0 V 12 1 V 12 -1 V 12 4 V 12 30 V 12 -16 V 13 54 V 12 -52 V 12 -18 V 12 -4 V 12 11 V 12 -4 V 13 11 V 12 -6 V 12 8 V 12 -14 V 12 -2 V 12 0 V 12 11 V 13 -14 V 12 -1 V 12 10 V 12 3 V 12 5 V 12 -3 V 13 -4 V 12 -11 V 12 10 V 12 19 V 12 -5 V 12 -22 V 12 21 V 13 -18 V 12 -2 V 12 2 V 12 -5 V 12 1 V 12 -1 V 13 1 V 12 -1 V 12 1 V 12 -1 V 12 128 V 12 -97 V 13 51 V 12 -28 V 12 205 V 12 -212 V 12 15 V 12 9 V 12 101 V 13 -169 V 12 16 V 12 61 V 12 -46 V 12 147 V 12 -8 V 13 -102 V 12 -65 V 12 189 V 12 -66 V 12 43 V 12 -120 V 13 1 V 12 23 V 12 -57 V 12 0 V 12 -18 V 12 11 V 12 -12 V 13 12 V 12 -12 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 1 V 12 -1 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 2 V 12 -2 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 1.000 UL LT1 3087 1847 M 263 0 V 350 300 M 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 11 V 13 72 V 12 -83 V 12 0 V 12 83 V 12 -83 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 789 V 751 306 L 12 46 V 12 -43 V 13 -9 V 12 1 V 12 3 V 12 12 V 12 9 V 12 0 V 13 -25 V 12 9 V 12 11 V 12 12 V 12 41 V 12 6 V 13 -45 V 12 -15 V 12 3 V 12 8 V 12 -20 V 12 5 V 12 -2 V 13 -6 V 12 4 V 12 -8 V 12 10 V 12 9 V 12 55 V 13 24 V 12 -24 V 12 -76 V 12 -1 V 12 36 V 12 -9 V 13 -11 V 12 18 V 12 -4 V 12 -23 V 12 -3 V 12 4 V 12 24 V 13 -31 V 12 1 V 12 19 V 12 -10 V 12 1 V 12 10 V 13 -7 V 12 -15 V 12 35 V 12 -12 V 12 47 V 12 -64 V 12 2 V 13 -5 V 12 -2 V 12 9 V 12 -10 V 12 0 V 12 0 V 13 0 V 12 0 V 12 12 V 12 -12 V 12 108 V 12 -62 V 13 5 V 12 38 V 12 106 V 12 -141 V 12 -6 V 12 5 V 12 48 V 13 -98 V 12 12 V 12 93 V 12 -70 V 12 51 V 12 12 V 13 -54 V 12 -46 V 12 106 V 12 -10 V 12 70 V 12 -111 V 13 -36 V 12 25 V 12 -44 V 12 22 V 12 -17 V 12 -1 V 12 -5 V 13 5 V 12 -5 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 2 V 12 -2 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 1 V 12 6 V 12 -7 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 2 V 12 -2 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 1.000 UL LT2 3087 1747 M 263 0 V 350 300 M 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 7 V 13 57 V 12 -64 V 12 0 V 12 64 V 12 -64 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 1611 V 751 301 L 12 43 V 12 -40 V 13 -4 V 12 9 V 12 0 V 12 -2 V 12 3 V 12 0 V 13 -10 V 12 2 V 12 15 V 12 4 V 12 10 V 12 27 V 13 -27 V 12 3 V 12 -10 V 12 -21 V 12 4 V 12 1 V 12 -4 V 13 -1 V 12 4 V 12 9 V 12 -1 V 12 0 V 12 68 V 13 -13 V 12 13 V 12 -80 V 12 -3 V 12 34 V 12 -6 V 13 -19 V 12 25 V 12 -12 V 12 -18 V 12 0 V 12 0 V 12 11 V 13 -14 V 12 0 V 12 9 V 12 -4 V 12 15 V 12 5 V 13 0 V 12 -26 V 12 40 V 12 -16 V 12 36 V 12 -56 V 12 -1 V 13 -2 V 12 -1 V 12 6 V 12 -6 V 12 1 V 12 -1 V 13 1 V 12 -1 V 12 1 V 12 -1 V 12 81 V 12 -54 V 13 11 V 12 29 V 12 53 V 12 -98 V 12 13 V 12 6 V 12 45 V 13 -85 V 12 26 V 12 44 V 12 -46 V 12 55 V 12 -32 V 13 -7 V 12 -41 V 12 66 V 12 16 V 12 6 V 12 -71 V 13 1 V 12 19 V 12 -28 V 12 5 V 12 -12 V 12 -2 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 1 V 12 1 V 13 -2 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 3 V 12 -2 V 12 -1 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 2 V 12 -2 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 1.000 UL LT3 3087 1647 M 263 0 V 350 300 M 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 1 V 13 67 V 12 -68 V 12 0 V 12 68 V 12 -68 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 984 V 751 305 L 12 40 V 12 -40 V 13 -5 V 12 1 V 12 7 V 12 1 V 12 -4 V 12 0 V 13 12 V 12 -15 V 12 8 V 12 17 V 12 11 V 12 83 V 13 -85 V 12 -10 V 12 -13 V 12 -1 V 12 0 V 12 7 V 12 -12 V 13 -1 V 12 -2 V 12 1 V 12 10 V 12 -5 V 12 108 V 13 -20 V 12 20 V 12 -117 V 12 -1 V 12 44 V 12 -22 V 13 -12 V 12 21 V 12 -11 V 12 2 V 12 -13 V 12 -5 V 12 19 V 13 -15 V 12 -2 V 12 6 V 12 0 V 12 21 V 12 2 V 13 -11 V 12 -24 V 12 31 V 12 -12 V 12 52 V 12 -69 V 12 0 V 13 0 V 12 -1 V 12 6 V 12 -5 V 12 -2 V 12 0 V 13 0 V 12 0 V 12 9 V 12 -9 V 12 107 V 12 -72 V 13 12 V 12 37 V 12 77 V 12 -118 V 12 10 V 12 10 V 12 54 V 13 -103 V 12 19 V 12 49 V 12 -48 V 12 53 V 12 -22 V 13 1 V 12 -66 V 12 123 V 12 -44 V 12 43 V 12 -101 V 13 7 V 12 20 V 12 -46 V 12 7 V 12 -5 V 12 -4 V 12 1 V 13 -1 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 2 V 12 0 V 12 -2 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 3 V 12 -3 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 1.000 UL LT4 3087 1547 M 263 0 V 350 300 M 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 2 V 13 69 V 12 -71 V 12 0 V 12 66 V 12 -66 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 965 V 751 301 L 12 54 V 12 -47 V 13 -8 V 12 3 V 12 8 V 12 -7 V 12 0 V 12 0 V 13 -4 V 12 3 V 12 13 V 12 2 V 12 35 V 12 75 V 13 -89 V 12 -4 V 12 -21 V 12 -3 V 12 0 V 12 -2 V 12 6 V 13 -9 V 12 -1 V 12 4 V 12 14 V 12 -10 V 12 108 V 13 -20 V 12 20 V 12 -118 V 12 -3 V 12 45 V 12 -21 V 13 -9 V 12 21 V 12 -22 V 12 7 V 12 -15 V 12 -1 V 12 12 V 13 -6 V 12 -8 V 12 6 V 12 1 V 12 11 V 12 7 V 13 -16 V 12 -12 V 12 30 V 12 -13 V 12 60 V 12 -75 V 12 5 V 13 -7 V 12 1 V 12 4 V 12 -5 V 12 2 V 12 4 V 13 -4 V 12 -2 V 12 6 V 12 -6 V 12 81 V 12 -30 V 13 -6 V 12 33 V 12 71 V 12 -96 V 12 -1 V 12 25 V 12 86 V 13 -137 V 12 11 V 12 36 V 12 -38 V 12 40 V 12 -14 V 13 -12 V 12 -48 V 12 101 V 12 -32 V 12 42 V 12 -67 V 13 -24 V 12 25 V 12 -44 V 12 7 V 12 -3 V 12 -4 V 12 -2 V 13 2 V 12 -2 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 2 V 12 -2 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 1 V 12 0 V 12 -1 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 1 V 12 -1 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 1.000 UL LT5 3087 1447 M 263 0 V 350 300 M 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 1 V 13 99 V 484 300 L 12 0 V 12 100 V 520 300 L 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 1406 V 751 303 L 12 47 V 12 -47 V 13 -3 V 12 0 V 12 7 V 12 -4 V 12 2 V 12 0 V 13 -5 V 12 1 V 12 3 V 12 7 V 12 21 V 12 43 V 13 -34 V 12 -21 V 12 -3 V 12 -2 V 12 -3 V 12 5 V 12 -10 V 13 5 V 12 -5 V 12 3 V 12 -5 V 12 6 V 12 84 V 13 3 V 12 -3 V 12 -93 V 12 -2 V 12 30 V 12 -7 V 13 -17 V 12 34 V 12 -21 V 12 -6 V 12 -6 V 12 -4 V 12 10 V 13 -11 V 12 -2 V 12 13 V 12 -1 V 12 -6 V 12 6 V 13 -1 V 12 -11 V 12 29 V 12 -16 V 12 58 V 12 -70 V 12 2 V 13 -1 V 12 -2 V 12 10 V 12 -9 V 12 2 V 12 -2 V 13 2 V 12 -3 V 12 23 V 12 -23 V 12 72 V 12 -43 V 13 27 V 12 27 V 12 42 V 12 -87 V 12 27 V 12 12 V 12 53 V 13 -128 V 12 14 V 12 50 V 12 -40 V 12 38 V 12 0 V 13 -21 V 12 -42 V 12 75 V 12 -16 V 12 28 V 12 -73 V 13 5 V 12 21 V 12 -33 V 12 -1 V 12 -7 V 12 1 V 12 -1 V 13 1 V 12 -1 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V 12 0 V 12 0 V 13 0 V 12 0 V 12 0 V 12 0 V stroke grestore end showpage @endspecial 2543 1081 a FJ(The)g(V)-12 b(oice)2736 998 y(Jubii)2377 905 y(Jyllandsposten)2554 831 y(IT)k(-A)h(visen)2771 747 y(ITL)2561 655 y(Carlsber)n(g)1888 2231 y(te)o(gn)465 1273 y gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate 465 1273 a 249 1251 a FJ(frekv)o(ens)r Fu(=)p Fr(\045)465 1273 y currentpoint grestore moveto 465 1273 a 3138 2120 a FJ(250)-642 b(200)h(150)g(100)-619 b(50)-574 b(0)541 570 y(45)541 733 y(40)541 896 y(35)541 1059 y(30)541 1222 y(25)541 1385 y(20)541 1548 y(15)541 1711 y(10)586 1873 y(5)586 2037 y(0)382 2453 y FD(F)l(igur)22 b(4.1:)31 b(F)-5 b(r)m(ekvensfor)m (deling)25 b(for)d(te)l(gnene)i(\(r)m(epr\346senter)m(et)g(ved)e(der)m (es)g(k)o(ode)g(if\370lg)o(e)h(k)o(od-)382 2565 y(ning)o(en)i (ISO-8859-1\))h(p\345)e(vor)m(es)g(udvalgte)i(sider)382 2841 y FJ(ning,)i(m\346ngden)f(af)g(opm\346rkninger)l(,)j(den)d(v)n (algte)h(algoritmes)h(styrk)o(er)g(osv)-6 b(.,)27 b(men)g(alt)g(i)g (alt)382 2954 y(viser)d(v)n(ores)h(o)o(v)o(erv)o(ejelser)h(et)d(stort)i (potentiale)h(for)e(k)o(ompression.)523 3067 y(P\345)e(baggrund)j(af)e (dette)g(unders\370ger)j(vi)d(herefter)h(nogle)g(algoritmer)h(der)d (kan)i(bruges)g(til)382 3180 y(at)f(k)o(omprimere)i(HTML-\002lerne.) 1831 5652 y(22)p eop %%Page: 23 25 23 24 bop 382 1171 a FC(Kapitel)43 b(5)382 1586 y FK(Analyse)53 b(af)e(k)m(ompr)l(essionsmetoder)382 2031 y FJ(Der)28 b(\002ndes)i(to)f(grundl\346ggende)j(forsk)o(ellige)g(metoder)e(at)f(k) o(omprimere)i(p\345.)d(Den)h(statisti-)382 2144 y(sk)o(e,)23 b(der)h(baserer)h(sin)e(k)o(ompression)j(p\345)e(statistisk)h(analyse)g (af)e(data,)h(og)f(den)h(ordbogsbase-)382 2257 y(rede,)g(der)g (opretholder)i(en)e(ordbog)h(o)o(v)o(er)f(gentagne)i(m\370nstre)e(i)f (data.)523 2369 y(Under)k(de)f(statistisk)o(e)j(metoder)e (unders\370ger)i(vi)d(Huf)n(fman-k)o(oder)j(og)d(aritmetisk)o(e)i(k)o (o-)382 2482 y(der)c(som)f(er)g(klassisk)o(e)k(metoder)d(indenfor)i(k)o (ompression.)g(Grundideen)g(i)d(statistisk)o(e)k(k)o(om-)382 2595 y(pressionsmetoder)39 b(er)c(at)g(symboler)i(der)e(bruges)h(tit,)f (ikk)o(e)h(skal)g(beskri)n(v)o(es)h(med)d(lige)i(s\345)382 2708 y(me)o(get)23 b(data)h(som)f(symboler)i(der)e(bruges)i (sj\346ldent.)f(Alts\345)g(at)f(de)g(skal)h(beskri)n(v)o(es)h(med)e (v\346r)n(-)382 2821 y(dien)h(af)g(deres)g(entropi.)523 2934 y(F)o(\370rste)33 b(eksempel)i(p\345)e(denne)h(form)f(for)g(k)o (ompression)j(\002nder)d(vi)g(i)f(midten)i(af)f(1800-)382 3047 y(tallet)23 b(takk)o(et)g(v\346re)f(Samuel)f(Morses)i(alf)o(abet)g ([17)q(].)e(Han)h(opdagede)i(nemlig)e(at)g(man)g(kunne)382 3160 y(spare)i(tid)g(i)f(transmission)j(af)d(besk)o(eder)l(,)j(og)d (dermed)h(ogs\345)h(kunne)f(opn\345)h(en)e(form)g(for)h(k)o(om-)382 3273 y(pression,)h(v)o(ed)f(at)f(tildele)i(hyppigt)g(an)l(v)o(endte)h (bogsta)n(v)o(er)g(som)e(`e')f(k)o(orte)i(k)o(odeord.)523 3386 y(F)o(or)31 b(at)h(kunne)i(udtale)f(sig)g(om)e(hyppighed)k(bli)n (v)o(er)e(man)f(n\370dt)h(til)f(at)g(\002nde)g(eller)h(esti-)382 3499 y(mere)23 b(frekv)o(enser)i(for)f(disse)g(symboler)-5 b(.)24 b(Jo)f(t\346ttere)h(disse)g(symbolsandsynlighed)q(er)29 b(ligger)382 3611 y(p\345)k(de)g(f)o(aktisk)o(e)i(forhold)g(i)e (dataene,)h(jo)f(bedre)i(kan)e(der)h(k)o(omprimeres)h(\226)d(man)h(kan) h(vha.)382 3724 y(informationsteori)28 b(be)n(vise)d(at)e(man)g(s\345)h (k)o(ommer)g(t\346ttere)g(p\345)f(entropien)j([4)q(].)523 3837 y(Under)f(de)g(ordbogsbaserede)30 b(metoder)25 b(unders\370ger)j (vi)d(de)g(klassisk)o(e)i(Lempel-Zi)n(v)e(77)382 3950 y(og)36 b(Lempel-Zi)n(v)f(78,)h(samt)f(popul\346re)i(v)n(arianter)h (her)e(af.)f(Disse)h(k)o(ompressionsmetoder)382 4063 y(ble)n(v)h(udviklet)h(i)d(1970erne)k(af)d(de)g(to)g(forsk)o(ere)j (Jacob)e(Zi)n(v)e(og)i(Abraham)f(Lempel)g([16)q(])382 4176 y(\(na)n(vnene)26 b(\002k)d(de)g(efter)i(de)e(respekti)n(v)o(e)j (\345rstal)e(de)g(ble)n(v)g(udviklet)i(i\).)523 4289 y(De)g(to)h(metoder)h(v)n(arierer)h(p\345)e(den)g(m\345de)h(de)f(la)n (v)o(er)g(deres)h(hen)l(visninger)k(til)27 b(ordbogen,)382 4402 y(og)33 b(p\345)g(deres)g(m\345de)g(at)g(opretholde)j(denne.)d (Ordbogen)i(i)d(de)h(ordbogsbaserede)38 b(k)o(ompri-)382 4515 y(meringsmetoder)d(er)d(en)g(liste)h(o)o(v)o(er)f(ofte)h(forek)o (omne)h(te)o(gnf\370lger)g(i)e(dataene;)i(metoderne)382 4628 y(arbejder)h(nemlig)e(ikk)o(e)g(kun)g(med)g(enk)o(elte)h(symboler) l(,)h(men)d(med)g FD(m\370nstr)m(e)i FJ(som)e(d\346kk)o(er)382 4741 y(\003ere)d(te)o(gn.)h(Ideen)g(er)g(s\345)f(at)g(erstatte)j (m\370nstre)e(af)g(v)n(ariable)h(l\346ngder)f(med)g(k)o(odeord)h(af)f (f)o(a-)382 4853 y(ste)h(l\346ngder)l(,)h(omv)o(endt)f(statistisk)o(e)j (metoder)e(hv)n(or)f(symbolerne)i(har)e(f)o(aste)h(st\370rrelser)h(og) 382 4966 y(k)o(oderne)26 b(v)n(ariable)f(l\346ngder)-5 b(.)523 5079 y(Ud)24 b(o)o(v)o(er)h(disse)g(metoder)h(unders\370ger)h (vi)e(ogs\345)g(en)g(transformation)j(der)d(kan)g(g\370re)g(me-)382 5192 y(toderne)31 b(mere)f(ef)n(fekti)n(v)o(e.)h(Den)e(transformation)k (vi)d(ser)g(p\345,)f(g\345r)h(under)h(na)n(vnet)h(Burro)n(ws-)382 5305 y(Wheeler)n(-transformation)q(en)e(og)25 b(bruges)h(ofte)f(sammen) g(med)f(k)o(odningsprincipp)q(et)30 b(mo)o(v)o(e-)1831 5652 y(23)p eop %%Page: 24 26 24 25 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 548 a FJ(to-front.)i(Ideen)g (er)f(at)f(transformationen)29 b(\346ndrer)c(dataene)i(p\345)e(en)f (s\345dan)i(m\345de)f(at)f(de)h(slut-)382 661 y(teligt)30 b(kan)f(k)o(omprimeres)i(bedre)g(\226)d(ogs\345)i(selv)n(om)g(der)f (kr\346v)o(es)h(lidt)f(mere)g(data)h(underv)o(ejs)382 774 y(til)23 b(at)h(holde)h(styr)f(p\345)f(transformationen)28 b(for)c(at)f(g\370re)h(den)g(re)n(v)o(ersibel.)523 887 y(Burro)n(ws-Wheeler)n(-transformat)q(ion)q(en)29 b(kan)c(an)l(v)o (endes)h(p\345)e(alle)g(former)g(for)g(data,)g(men)382 1000 y(den)39 b(stiller)h(dog)g(et)e(kra)n(v)i(om)e(at)h(de)g(skal)g (kunne)i(deles)e(op)g(i)g(blokk)o(e.)h(Mo)o(v)o(e-to-front-)382 1112 y(k)o(odning)28 b(er)e(kun)g(ef)n(fekti)n(v)i(at)e(bruge)h(p\345)f (specielle)i(data)e(hv)n(or)h(ens)g(symboler)g(ligger)g(i)f(n\346r)n(-) 382 1225 y(heden)h(af)f(hinanden.)j(S\345danne)e(data)g(er)f(netop)i (det)e(Burro)n(ws-Wheeler)n(-transformat)q(ion)q(en)382 1338 y(producerer)-5 b(.)523 1451 y(Alle)23 b(disse)h(k)o (omprimeringsmetoder)k(kan)c(bruges)h(p\345)e(HTML-\002ler)-5 b(.)21 b(I)i(v)n(ores)i(gennem-)382 1564 y(gang)f(af)f(metoderne)j (tager)e(vi)g(udgangspunkt)j(i)c(det)h(samme)f(eksempel:)382 1777 y Fv(

)o(Te)o(st)p 1429 1795 5 19 v 1433 1795 37 5 v 1470 1795 5 19 v 54 w(a)o(f)p 1592 1795 V 1597 1795 37 5 v 1633 1795 5 19 v 54 w(en)p 1756 1795 V 1761 1795 37 5 v 1797 1795 5 19 v 54 w(HT)o(ML)o(-s)o(id)o(e)o()523 1989 y FJ(Dette)c(er)g(ikk)o (e)h(for)g(at)e(kunne)j(sammenligne)g(metodernes)h(ef)n(fekti)n(vitet,) f(men)e(for)g(at)g(g\370re)382 2102 y(det)24 b(lettere)h(at)e(se)g (forsk)o(ellen)k(i)c(deres)h(virk)o(em\345de.)523 2215 y(Eksemplet)33 b(er)f(p\345)h(53)f(te)o(gn,)h(inklusi)n(v)o(e)h (mellemrum,)e(og)h(best\345r)g(af)f(symbolerne)j({<,)382 2328 y(>,)27 b(-,)h(/,)p 644 2346 V 649 2346 37 5 v 686 2346 5 19 v 82 w(,)f(a,)h(b,)f(d,)h(e,)g(f,)f(H,)g(i,)g(L,)g(M,)g(n,)h (o,)g(p,)f(s,)h(T)-7 b(,)27 b(t,)g(y})h(som)g(alts\345)h(udg\370r)h(v)n (ores)f(alf)o(abet)382 2441 y Fq(A)20 b FJ(.)37 b(Uk)o(omprimeret)d (vil)f(dette)g(eksempel)h(s\346dv)n(anligvis)h(optage)f(8)e(bit)h(pr)-5 b(.)32 b(symbol,)h(eller)382 2554 y Fr(8)23 b Fs(\001)h Fr(53)33 b(=)f(424)c FJ(bit)f(i)g(alt.)g(Med)g(den)h(antagelse)i(at)d (hv)o(ert)h(te)o(gn)g(er)f(uafh\346ngigt)j(af)d(de)g(andre,)382 2667 y(er)35 b(entropien)j(p\345)d(4,18)h(bit)f(pr)-5 b(.)36 b(symbol)g(\226)f(s\345)g(der)h(er)f(plads)h(til)g(forbedringer) -5 b(.)38 b(V)-5 b(i)34 b(vil)i(nu)382 2780 y(unders\370ge)26 b(hv)n(or)f(godt)f(Huf)n(fman)g(klarer)h(det.)382 3072 y FB(5.1)119 b(Statistisk)o(e)29 b(metoder)382 3283 y Fw(5.1.1)99 b(Pr\346\002ksk)o(oder)382 3457 y FJ(F)o(\370r)32 b(beskri)n(v)o(elsen)k(af)d(Huf)n(fman-k)o(odning)k(introducerer)f(vi)d (pr\346\002ksk)o(oder)i(da)f(Huf)n(fman-)382 3570 y(k)o(odning)26 b(netop)e(danner)i(pr\346\002ksk)o(oder)-5 b(.)523 3683 y(En)21 b(pr\346\002ksk)o(ode)i(er)e(en)g(k)o(ode)h(som)f(har)h(den)g (e)o(genskab)h(at)e(inget)h(k)o(odeord)i(er)d(et)g(pr\346\002ks)382 3796 y(i)28 b(noget)h(andet)h(k)o(odeord.)g(Det)e(vil)h(sige)g(at)f (ingen)h(lange)h(k)o(odeord)h(be)o(gynder)f(med)e(samme)382 3908 y(talsekv)o(ens)e(som)d(nogle)i(af)e(de)h(andre)h(k)o(ortere)g(k)o (odeord.)523 4021 y(Antag)e(at)g(`a')g(har)g(k)o(oden)h(0,)e(`b')h(k)o (oden)i(10)e(og)g(`c')g(k)o(oden)h(11.)f(S\345)f(ses)h(det)g(at)f(man)h (uden)382 4134 y(at)g(k)o(ende)j(l\346ngden)f(af)e(k)o(oden)i (umiddelbart)i(kan)d(se)g(hvilk)o(en)h(k)o(ode)g(man)f(skal)g (v\346lge.)g(Hvis)382 4247 y(man)f(f.eks.)h(skri)n(v)o(er)g(00,)g(v)o (ed)f(vi)h(at)f(dette)i(betyder)g(\204aa\223.)1622 5108 y @beginspecial 0 @llx 0 @lly 61 @urx 89 @ury 610 @rwi @setspecial %%BeginDocument: prefix.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -206.0 236.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 7.500 slw % Polyline n 3450 3075 m 3750 2475 l 4050 3075 l gs col-1 s gr % Polyline n 3750 3675 m 4050 3075 l 4350 3675 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3750 3900 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 4350 3900 m gs 1 -1 sc (c) col-1 sh gr /Times-Roman ff 180.00 scf sf 3450 3300 m gs 1 -1 sc (a) col-1 sh gr /Times-Roman ff 180.00 scf sf 3450 2775 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3975 2775 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4275 3375 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3750 3375 m gs 1 -1 sc (0) col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 950 5304 a FD(F)l(igur)e(5.1:)31 b(K)l(odeor)m(dene)c (illustr)m(er)m(et)e(ved)f(et)f(bin\346rt)i(tr\346)1831 5652 y FJ(24)p eop %%Page: 25 27 25 26 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 523 548 a FJ(K)m(oderne)c(kan)f (vises)h(som)e(et)h(bin\346rt)g(tr\346)g(som)f(i)g(\002gur)h(5.1)g (p\345)f(forrige)j(side)e(hv)n(or)h(bladene)382 661 y(sv)n(arer)j(til)e (symbolerne)j(\226)e(det)g(kan)g(man)f(g\370re)i(med)e(alle)h (pr\346\002ksk)o(oder)-5 b(.)24 b(Hvis)d(vi)h(s\345)f(har)h(f\345et)382 774 y(sendt)h(bitr\346kk)o(en)h(\20400100111001111\223)q(,)j(kan)22 b(vi)g(v)o(ed)g(hj\346lp)g(af)g(tr\346et)g(entydigt)i(afk)o(ode)f(den) 382 887 y(oprindelige)k(tekst:)1160 1043 y(0)100 b(0)g(10)g(0)g(11)h (10)f(0)h(11)f(11)1162 1155 y(a)105 b(a)125 b(b)h(a)i(c)148 b(b)125 b(a)j(c)150 b(c)523 1308 y(Den)27 b(afk)o(odede)j(tekst)f (fylder)f Fr(9)c Fs(\001)f Fr(8)33 b(=)g(72)27 b FJ(bit,)h(mens)g (bitr\346kk)o(en)h(kun)f(optager)h(14)f(bit.)382 1421 y(Det)19 b(h\346nger)i(sammen)f(med)f(at)h(vi)f(kun)h(har)g(3)g (symboler)h(i)e(v)n(ores)i(alf)o(abet,)g(og)f(vi)g(kan)g(dermed)382 1534 y(n\370jes)h(med)g(2)f(bit)g(til)h(hv)o(er)g(for)f(at)h(beskri)n (v)o(e)h(dem)e(entydigt.)i(Pr\346\002ksk)o(oderne)h(g\370r)d(det)h (muligt)382 1647 y(at)31 b(bruge)g(forsk)o(ellige)j(l\346ngder)e(k)o (ode)g(til)f(at)f(beskri)n(v)o(e)j(v)n(ores)f(symboler)g(med,)e(og)h(i) g(v)n(ores)382 1760 y(eksempel)26 b(beskri)n(v)o(es)h(hv)o(ert)e (symbol)h(med)1804 1724 y Ft(5)p 1804 1739 36 4 v 1804 1791 a(3)1877 1760 y Fs(\031)h Fr(1)p Fu(;)p Fr(66)e FJ(bit)g(pr)-5 b(.)25 b(symbol)g(i)f(gennemsnit.)j(Men)382 1873 y(hv)n(ordan)f(la)n(v)o(er)e(vi)f(v)n(ores)i(tr\346)e(optimalt?)i (Dette)f(sv)n(ar)g(ligger)h(i)e(Huf)n(fman-k)o(odning.)382 2117 y Fw(5.1.2)99 b(Huffman)382 2291 y FJ(Huf)n(fman-k)o(odning)26 b(er)d(udviklet)i(af)d(Da)n(vid)h(Huf)n(fman)g(i)f(1950'erne)k([16)q (],)c(deraf)i(na)n(vnet,)g(og)382 2404 y(efterfulgte)j(Shannon-F)o (ano-k)o(odning)j(som)24 b(v)n(ar)h(udviklet)h(af)f(Shannon,)g(W)-7 b(ea)n(v)o(er)25 b(og)g(F)o(ano.)382 2517 y(Shannon-F)o(ano-algoritmen) 36 b(k)o(omprimerer)d(ikk)o(e)f(s\345)f(godt)h(som)e(Huf)n(fman,)h (selv)n(om)h(dens)382 2630 y(operationer)c(ligner)-5 b(.)26 b(Huf)n(fmans)f(metode)g(g\345r)g(ud)g(p\345)g(at)g(\002nde)f (frekv)o(enser)k(for)d(symbolerne)382 2743 y(i)f(dataene)i(og)f (derefter)h(oprette)g(en)f(tr\346struktur)h(hv)n(ori)g(man)e (inds\346tter)i(disse)g(symboler)g(ud)382 2855 y(fra)f(deres)g(frekv)o (ens.)i(Herefter)e(kan)g(man)g(v)o(ed)g(hj\346lp)g(af)f(tr\346et)h(let) g(udlede)h(et)e(k)o(odeord)j(med)382 2968 y(forsk)o(ellige)g(antal)d (bit)g(til)f(hv)o(ert)h(symbol.)523 3081 y(F)o(or)h(at)g(la)n(v)o(e)h (dette)h(tr\346)e(starter)i(vi)e(med)h(at)f(tage)i(de)e(to)h(symboler)h (med)e(la)n(v)o(est)i(frekv)o(ens)382 3194 y(og)32 b(erstatte)i(dem)e (med)g(et)g(f\346lles,)g(k)o(ombineret)j(symbol)e Fu(C)2351 3208 y Ft(1)2391 3194 y FJ(.)e(Dette)h(symbol)h Fu(C)3037 3208 y Ft(1)3108 3194 y FJ(tildeles)382 3307 y(frekv)o(ensen)21 b(sv)n(arende)f(til)f(summen)g(af)f(frekv)o(enserne)k(for)c(de)h(to)f (symboler)-5 b(.)20 b(Herefter)f(indg\345r)382 3420 y Fu(C)447 3434 y Ft(1)518 3420 y FJ(igen)33 b(i)f(m\346ngden)h(af)g (symboler)h(til)e(n\346ste)h(iteration)i(af)d(algoritmen)j(hv)n(or)e Fu(C)3091 3434 y Ft(2)3162 3420 y FJ(bli)n(v)o(er)382 3533 y(fundet.)d(Dette)f(forts\346tter)i(til)d(der)i(kun)f(er)g(\351t)g (symbol)g(tilbage.)i(Vha.)d Fu(C)7 b FJ(-metasymbolerne)382 3646 y(kan)24 b(vi)f(s\345)h(generere)h(tr\346et.)382 3887 y FE(Eksempel)382 4061 y FJ(V)-5 b(i)22 b(illustrerer)k(Huf)n (fman-metoden)g(v)o(ed)e(hj\346lp)g(af)f(v)n(ores)i(eksempel.)382 4242 y Fv(

)o(Te)o(st)p 1429 4260 5 19 v 1433 4260 37 5 v 1470 4260 5 19 v 54 w(a)o(f)p 1592 4260 V 1597 4260 37 5 v 1633 4260 5 19 v 54 w(en)p 1756 4260 V 1761 4260 37 5 v 1797 4260 5 19 v 54 w(HT)o(ML)o(-s)o(id)o(e)o()523 4424 y FJ(F)o(\370rst)19 b(skal)g(vi)g(\002nde)g Fu(p)p Fr(\()p Fu(x)p Fr(\))p FJ(,)g(hv)n(or)g Fu(x)g FJ(er)f(et)h(symbol)h(fra)f Fq(A)h FJ(,)k(alts\345)19 b(hv)o(ert)h(symbols)g(frekv)o(ens.)382 4536 y(Den)28 b(\002ndes)g(v)o(ed)g(at)g(t\346lle)g(forek)o(omster)i (af)e(de)g(enk)o(elte)i(symboler)g(og)e(di)n(videre)h(dem)f(med)382 4649 y(l\346ngden)d(af)e(teksten.)i(Resultatet)g(ses)f(i)f(tabel)i(5.1) e(p\345)h(n\346ste)f(side.)382 4762 y(Her)g(har)h(vi)f(samtidig)i (sorteret)g(tabellen)h(efter)e(frekv)o(ens.)382 5003 y FE(Huffmantr\346et)382 5177 y FJ(V)-5 b(i)24 b(kan)h(nu)g(g\345)g(i)g (gang)g(med)g(at)g(danne)h(Huf)n(fman-tr\346et)g(v)o(ed)g(at)e(\002nde) i(de)f(to)g(symboler)h(med)382 5290 y(mindste)i(frekv)o(ens,)g (alts\345)f(`n')g(og)g(`t'.)g(Disse)g(to)f(symboler)i(beskri)n(v)o(es)h (samlet)e(som)g Fu(C)3192 5304 y Ft(1)3231 5290 y FJ(,)f(og)382 5403 y(dette)e(danner)h(s\345)f(den)g(f\370rste)h(del)e(af)h(tr\346et,) f(se)h(\002gur)f(5.2)g(p\345)h(den)g(f\370lgende)i(side.)1831 5652 y(25)p eop %%Page: 26 28 26 27 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 464 3008 8 v 432 568 a FJ(Symbol)p 939 602 4 113 v 376 w Fv(<)294 b(>)h(T)g(/)p 2493 587 5 19 v 2498 587 37 5 v 2535 587 5 19 v 644 w(d)f(e)432 681 y FJ(F)o(orek)o(omster)p 939 715 4 113 v 207 w(6)305 b(6)f(4)h(3)g(3)f(3)h(3)432 794 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 828 V 392 w FJ(0,1132)102 b(0,1132)f(0,0754)h(0,0566)124 b(0,056)g(0,0566)102 b(0,0566)p 382 831 3008 4 v 432 910 a(Symbol)p 939 944 4 113 v 376 w Fv(H)294 b(L)h(M)g(b)f(o)h(p)f(s)432 1023 y FJ(F)o(orek)o(omster)p 939 1057 V 207 w(3)305 b(3)f(3)h(2)g(2)f(2)h(2)432 1136 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 1170 V 392 w FJ(0,0566)102 b(0,0566)f(0,0566)h(0,0377)f(0,0377)h(0,0377)g(0,0377)p 382 1173 3008 4 v 432 1252 a(Symbol)p 939 1286 4 113 v 376 w Fv(y)294 b(-)h(a)g(f)f(i)h(n)f(t)432 1365 y FJ(F)o(orek)o (omster)p 939 1399 V 207 w(2)305 b(1)f(1)h(1)g(1)f(1)h(1)432 1478 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 1512 V 392 w FJ(0,0377)102 b(0,0188)f(0,0188)h(0,0188)f(0,0188)h(0,0188)g(0,0188)p 382 1535 3008 8 v 1289 1713 a FD(T)-8 b(abel)23 b(5.1:)31 b(T)-8 b(abel)23 b(o)o(ver)i(fr)m(ekvenser)1697 2315 y @beginspecial 0 @llx 0 @lly 43 @urx 58 @ury 430 @rwi @setspecial %%BeginDocument: c1gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -364.0 155.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 6120 2385 m 6420 1785 l 6720 2385 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6075 2550 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 6300 1725 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2550 m gs 1 -1 sc (t) col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1186 2511 a(F)l(igur)e(5.2:)31 b Fu(C)1650 2525 y Ft(1)1690 2511 y FD(-delen)25 b(af)e(Huf)n(fman-tr\346et)523 2787 y Fu(C)588 2801 y Ft(1)662 2787 y FJ(optr\346der)37 b(nu)f(med)f(den)h(sammenlagte)i(frekv)o(ens)f(for)f(`n')f(og)h(`t')g (og)f(anbringes)382 2900 y(i)d(sk)o(emaet)i(i)e(stedet)i(for)f(de)g (to.)f(Bem\346rk)g(at)h Fu(C)1953 2914 y Ft(1)2024 2900 y FJ(placeres)i(s\345)d(h\370jt)i(i)e(sk)o(emaet)i(som)e(dens)382 3013 y(frekv)o(ens)25 b(tillader)l(,)h(det)d(vil)h(i)f(dette)i (tilf\346lde)f(sige)g(lige)g(efter)h(`M'.)e(Se)f(tabel)j(5.2)p 382 3139 V 432 3244 a(Symbol)p 939 3278 4 113 v 376 w Fv(<)294 b(>)h(T)g(/)p 2493 3262 5 19 v 2498 3262 37 5 v 2535 3262 5 19 v 644 w(d)f(e)432 3357 y FJ(F)o(orek)o(omster)p 939 3391 4 113 v 207 w(6)305 b(6)f(4)h(3)g(3)f(3)h(3)432 3470 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3503 V 392 w FJ(0,1132)102 b(0,1132)f(0,0754)h(0,0566)f(0,0566)h(0,0566)g(0,0566)p 382 3507 3008 4 v 432 3586 a(Symbol)p 939 3620 4 113 v 376 w Fv(H)294 b(L)h(M)262 b Fj(C)2182 3600 y Fi(1)2488 3586 y Fv(b)295 b(o)f(p)432 3699 y FJ(F)o(orek)o(omster)p 939 3733 V 207 w(3)305 b(3)f(3)h(2)g(2)f(2)h(2)432 3812 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3846 V 392 w FJ(0,0566)102 b(0,0566)f(0,0566)h(0,0377)f(0,0377)h(0,0377)g(0,0377)p 382 3849 3008 4 v 432 3928 a(Symbol)p 939 3962 4 113 v 376 w Fv(s)294 b(y)h(-)g(a)f(f)h(i)432 4041 y FJ(F)o(orek)o(omster)p 939 4075 V 207 w(2)305 b(2)f(1)h(1)g(1)f(1)432 4154 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 4188 V 392 w FJ(0,0377)102 b(0,0377)f(0,0188)h(0,0188)f(0,0188)h(0,0188)p 382 4210 3008 8 v 1042 4389 a FD(T)-8 b(abel)23 b(5.2:)31 b(F)-10 b(\370r)o(ste)25 b(skridt)g(i)e(Huf)n(fman-algoritmen)523 4600 y FJ(Herefter)f(\002nder)g(vi)f(igen)h(de)g(to)f(mindst)h (sandsynlige)j(te)o(gn)d(i)e(sk)o(emaet.)j(P\345)d(denne)j(m\345de)382 4713 y(danner)36 b(vi)f Fu(C)833 4727 y Ft(2)906 4713 y FJ(op)g(til)g Fu(C)1206 4727 y Ft(5)1246 4713 y FJ(,)e(se)i(\002gur)g (5.3)f(p\345)h(den)g(f\370lgende)j(side.)d(Det)f(n)o(ye)h(sk)o(ema)g (ses)g(i)382 4826 y(tabel)24 b(5.3)g(p\345)f(n\346ste)h(side.)523 4939 y(I)f(n\346ste)i(skridt)g(skal)g(vi)e(k)o(ombinere)k Fu(C)1777 4953 y Ft(1)1839 4939 y FJ(og)d(`b'.)g(Dette)g(fore)o(g\345r) h(p\345)f(samme)g(m\345de)g(som)382 5052 y(hvis)32 b Fu(C)629 5066 y Ft(1)698 5052 y FJ(ha)n(vde)h(v\346ret)e(et)g(enk)o (elt)h(symbol.)g(Frekv)o(enserne)h(l\346gges)f(sammen)f(og)g(det)h(n)o (ye)382 5165 y(symbol)24 b Fu(C)737 5179 y Ft(6)799 5165 y FJ(skal)h(anbringes)h(i)d(sk)o(emaet.)523 5278 y Fu(C)588 5292 y Ft(6)650 5278 y FJ(best\345r)i(af)e(`b')h(og)g Fu(C)1291 5292 y Ft(1)1353 5278 y FJ(og)f(dette)i(g\370r)f(tr\346et)f (dybere,)i(som)e(det)h(ses)g(p\345)g(\002gur)f(5.4.)523 5391 y(V)-5 b(i)31 b(forts\346tter)k(nu)e(p\345)f(samme)h(m\345de)g (indtil)h(der)f(kun)g(er)f(\351t)h(k)o(ombineret)i(symbol)f(til-)1831 5652 y(26)p eop %%Page: 27 29 27 28 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 818 1016 a @beginspecial 0 @llx 0 @lly 254 @urx 63 @ury 2540 @rwi @setspecial %%BeginDocument: c23gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -202.0 160.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 6075 2400 m 6375 1800 l 6675 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6075 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6300 1725 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2625 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 2625 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 5250 2400 m 5550 1800 l 5850 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5475 1725 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5850 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5175 2625 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 5850 2625 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 6915 2370 m 7215 1770 l 7515 2370 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6900 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7125 1725 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 2625 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 6900 2625 m gs 1 -1 sc (n) col-1 sh gr % Polyline n 3450 2400 m 3750 1800 l 4050 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3450 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3675 1725 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 3375 2625 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 2625 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 4350 2400 m 4650 1800 l 4950 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4350 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4950 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4275 2625 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4950 2625 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 4575 1725 m gs 1 -1 sc (C4) col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 914 1212 a FD(F)l(igur)g(5.3:)31 b(Huf)n(fman-tr\346et)25 b(med)f Fu(C)2110 1226 y Ft(1)2149 1212 y FD(,)e Fu(C)2259 1226 y Ft(2)2299 1212 y FD(,)g Fu(C)2409 1226 y Ft(3)2449 1212 y FD(,)g Fu(C)2559 1226 y Ft(4)2621 1212 y FD(o)o(g)i Fu(C)2799 1226 y Ft(5)p 382 1373 3008 8 v 432 1478 a FJ(Symbol)p 939 1512 4 113 v 376 w Fv(<)294 b(>)262 b Fj(C)1832 1492 y Fi(5)2106 1478 y Fj(C)2182 1492 y Fi(4)2488 1478 y Fv(T)295 b(/)p 3192 1496 5 19 v 3197 1496 37 5 v 3234 1496 5 19 v 432 1591 a FJ(F)o(orek)o(omster)p 939 1624 4 113 v 207 w(6)305 b(6)f(4)h(4)g(4)f(3)h(3)432 1703 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 1737 V 392 w FJ(0,1132)102 b(0,1132)f(0,0754)h(0,0754)f(0,0754)h(0,0566)g(0,0566)p 382 1741 3008 4 v 432 1820 a(Symbol)p 939 1854 4 113 v 376 w Fv(d)294 b(e)h(H)g(L)f(M)262 b Fj(C)2881 1834 y Fi(3)3155 1820 y Fj(C)3231 1834 y Fi(2)432 1933 y FJ(F)o(orek)o (omster)p 939 1967 V 207 w(3)305 b(3)f(3)h(3)g(3)f(2)h(2)432 2046 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 2079 V 392 w FJ(0,0566)102 b(0,0566)f(0,0566)h(0,0566)f(0,0566)h(0,0377)g(0,0377)p 382 2083 3008 4 v 432 2162 a(Symbol)p 939 2196 4 113 v 343 w Fj(C)1133 2176 y Fi(1)1439 2162 y Fv(b)432 2275 y FJ(F)o(orek)o(omster)p 939 2309 V 207 w(2)305 b(2)432 2388 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 2421 V 392 w FJ(0,0377)102 b(0,0377)p 382 2444 3008 8 v 1049 2623 a FD(T)-8 b(abel)24 b(5.3:)31 b(Andet)24 b(skridt)g(i)f(Huf)n (fman-algoritmen)p 382 2784 V 432 2888 a FJ(Symbol)p 939 2922 4 113 v 376 w Fv(<)294 b(>)262 b Fj(C)1832 2902 y Fi(6)2106 2888 y Fj(C)2182 2902 y Fi(5)2455 2888 y Fj(C)2531 2902 y Fi(4)2838 2888 y Fv(T)294 b(/)432 3001 y FJ(F)o(orek)o(omster)p 939 3035 V 207 w(6)305 b(6)f(4)h(4)g(4)f(4)h (3)432 3114 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3148 V 392 w FJ(0,1132)102 b(0,1132)f(0,0754)h(0,0754)f(0,0754)h(0,0754)g (0,0566)p 382 3151 3008 4 v 432 3230 a(Symbol)p 939 3264 4 113 v 1095 3249 5 19 v 1100 3249 37 5 v 1137 3249 5 19 v 725 w Fv(d)295 b(e)g(H)f(L)h(M)262 b Fj(C)3231 3244 y Fi(3)432 3343 y FJ(F)o(orek)o(omster)p 939 3377 4 113 v 207 w(3)305 b(3)f(3)h(3)g(3)f(3)h(2)432 3456 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3490 V 392 w FJ(0,0566)102 b(0,0566)f(0,0566)h(0,0566)f(0,0566)h(0,0566)g(0,0377)p 382 3493 3008 4 v 432 3572 a(Symbol)p 939 3606 4 113 v 343 w Fj(C)1133 3586 y Fi(2)432 3685 y FJ(F)o(orek)o(omster)p 939 3719 V 207 w(2)432 3798 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3832 V 392 w FJ(0,0377)p 382 3855 3008 8 v 1041 4033 a FD(T)-8 b(abel)23 b(5.4:)31 b(T)-5 b(r)m(edje)24 b(skridt)h(i)e(Huf)n (fman-algoritmen)743 5154 y @beginspecial 0 @llx 0 @lly 272 @urx 116 @ury 2720 @rwi @setspecial %%BeginDocument: c6gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -135.0 213.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 6075 2400 m 6375 1800 l 6675 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6075 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6300 1725 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2625 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 2625 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 5250 2400 m 5550 1800 l 5850 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5475 1725 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5850 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5175 2625 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 5850 2625 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 3450 2400 m 3750 1800 l 4050 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3450 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3675 1725 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 3375 2625 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 2625 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 4350 2400 m 4650 1800 l 4950 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4350 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4950 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4275 2625 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4950 2625 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 4575 1725 m gs 1 -1 sc (C4) col-1 sh gr % Polyline n 2265 3270 m 2565 2670 l 2865 3270 l gs col-1 s gr % Polyline n 2550 2400 m 2850 1800 l 3150 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2250 3000 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2475 2625 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2850 3000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2850 3525 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 2250 3525 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 3150 2625 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 2775 1725 m gs 1 -1 sc (C6) col-1 sh gr /Times-Roman ff 180.00 scf sf 2550 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3150 2100 m gs 1 -1 sc (0) col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1171 5350 a(F)l(igur)h(5.4:)31 b(T)-5 b(r\346et)23 b(bliver)i(dyber)m(e)g(med)e Fu(C)2542 5364 y Ft(6)1831 5652 y FJ(27)p eop %%Page: 28 30 28 29 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 548 a FJ(bage)552 515 y Fz(1)591 548 y FJ(.)g(Dette)h(symbol)h(vil)f(ha)n(v)o(e)g(frekv)o (ensen)j(1)d(da)g(det)g(best\345r)h(af)f(alle)g(symbolerne)j(i)c(data-) 382 661 y(ene.)c(Det)f(f\346rdige)h(tr\346)f(k)o(ommer)h(s\345ledes)h (til)f(syne)g(i)g(\002gur)f(5.5)g(\(hv)n(or)i(et)f(mellemrum)g(skri)n (v)o(es)p 387 792 5 19 v 392 792 37 5 v 429 792 5 19 v 437 774 a(\).)459 2615 y @beginspecial 0 @llx 0 @lly 547 @urx 333 @ury 3401 @rwi @setspecial %%BeginDocument: c20gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -22.0 358.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 7800 3900 m 8100 3300 l 8400 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7800 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8400 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7725 4125 m gs 1 -1 sc ( L ) col-1 sh gr /Times-Roman ff 180.00 scf sf 8400 4125 m gs 1 -1 sc (M) col-1 sh gr /Times-Roman ff 180.00 scf sf 8025 3225 m gs 1 -1 sc (C8) col-1 sh gr % Polyline n 6900 3900 m 7200 3300 l 7500 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6900 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6825 4125 m gs 1 -1 sc ( e ) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 4125 m gs 1 -1 sc (H) col-1 sh gr /Times-Roman ff 180.00 scf sf 7125 3225 m gs 1 -1 sc (C9) col-1 sh gr % Polyline n 7275 3000 m 7725 2400 l 8100 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7350 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8025 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7575 2325 m gs 1 -1 sc (C15) col-1 sh gr % Polyline n 8775 3000 m 9075 2400 l 9375 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 9300 3225 m gs 1 -1 sc (>) col-1 sh gr /Times-Roman ff 180.00 scf sf 8775 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 9375 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8700 3225 m gs 1 -1 sc ( < ) col-1 sh gr /Times-Roman ff 180.00 scf sf 8925 2325 m gs 1 -1 sc (C14) col-1 sh gr % Polyline n 7725 2100 m 8400 1500 l 9075 2100 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7875 1800 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8850 1800 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8250 1425 m gs 1 -1 sc (C18) col-1 sh gr % Polyline n 4425 1200 m 6450 600 l 8400 1200 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6300 525 m gs 1 -1 sc (C20) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 900 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 900 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 4200 4800 m 4500 4200 l 4800 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4200 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4800 4500 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4125 5025 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4800 5025 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 4425 4125 m gs 1 -1 sc (C4) col-1 sh gr % Polyline n 3600 3900 m 4050 3300 l 4425 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3675 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4350 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3900 3225 m gs 1 -1 sc (C12) col-1 sh gr % Polyline n 3300 4800 m 3600 4200 l 3900 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3300 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3900 4500 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3525 4125 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 3225 5025 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 3900 5025 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 2115 5670 m 2415 5070 l 2715 5670 l gs col-1 s gr % Polyline n 2400 4800 m 2700 4200 l 3000 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2100 5400 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2325 5025 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2700 5400 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2700 5925 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 2100 5925 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 3000 5025 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 2625 4125 m gs 1 -1 sc (C6) col-1 sh gr /Times-Roman ff 180.00 scf sf 2400 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3000 4500 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 1275 5700 m 1575 5100 l 1875 5700 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1275 5400 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1875 5400 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 5025 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 1875 5925 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 1275 5925 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 450 5700 m 750 5100 l 1050 5700 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 675 5025 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 450 5400 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1050 5400 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 375 5925 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 1050 5925 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 750 4800 m 1200 4200 l 1575 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 825 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1125 4125 m gs 1 -1 sc (C7) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 4500 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 1200 3900 m 1950 3300 l 2625 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1425 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2400 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 1800 3225 m gs 1 -1 sc (C13) col-1 sh gr % Polyline n 1950 3000 m 3000 2400 l 4050 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2250 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3675 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2850 2325 m gs 1 -1 sc (C17) col-1 sh gr % Polyline n 3000 2100 m 4425 1500 l 5850 2100 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3525 1800 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 1800 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4275 1425 m gs 1 -1 sc (C19) col-1 sh gr % Polyline n 5100 3900 m 5400 3300 l 5700 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5100 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5025 4125 m gs 1 -1 sc ( T ) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 4125 m gs 1 -1 sc (/) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 3225 m gs 1 -1 sc (C11) col-1 sh gr % Polyline n 5400 3000 m 5850 2400 l 6225 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5475 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6150 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 2325 m gs 1 -1 sc (C16) col-1 sh gr % Polyline n 6000 3900 m 6300 3300 l 6600 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6000 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6600 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6600 4125 m gs 1 -1 sc (d) col-1 sh gr /Times-Roman ff 180.00 scf sf 6150 3225 m gs 1 -1 sc (C10) col-1 sh gr /Times-Roman ff 180.00 scf sf 5925 4125 m gs 1 -1 sc (" ") col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1217 2811 a FD(F)l(igur)k(5.5:)31 b(Det)23 b(f\346r)m(dig)o(e)h(Huf)n(fman-tr\346)523 3021 y FJ(Nu)34 b(kan)h(vi)g(danne)h(k)o(oderne)h(for)e(hv)o(ert)h(symbol)f(ud)g(fra)g (tr\346et.)g(F)o(or)f(at)h(\002nde)f(k)o(oden)382 3134 y(skal)f(man)f(blot)g(f\370lge)i(grenene)g(ud)e(til)g(symbolet)i(og)e (nedskri)n(v)o(e)i(de)f(enk)o(elte)h(nuller)f(eller)382 3247 y(et-taller)i(p\345)e(v)o(ejen.)h(Eksempelvis)h(bli)n(v)o(er)f(k)o (oden)h(for)e Fv(>)f FJ(til)h(000)h(og)f(k)o(oden)i(for)e Fv(t)f FJ(bli)n(v)o(er)382 3360 y(111010.)c(Bem\346rk)e(at)g(v)n(ores)i (k)o(ombinerede)h(symboler)f Fu(C)2277 3374 y Ft(1)2316 3360 y FJ(-)p Fu(C)2411 3374 y Ft(20)2512 3360 y FJ(ikk)o(e)f (l\346ngere)h(har)f(nogen)382 3473 y(betydning.)p 1067 3601 1619 8 v 1117 3705 a(Symbol)167 b(K)m(ode)g(Symbol)g(K)m(ode)p 1067 3759 1619 5 v 1231 3864 a Fv(>)295 b(000)f(<)h(001)1231 3977 y(M)268 b(0100)e(L)i(0101)1231 4089 y(H)g(0110)e(e)i(0111)1231 4202 y(d)g(1000)p 2045 4221 5 19 v 2050 4221 37 5 v 2087 4221 5 19 v 589 w(1001)1231 4315 y(/)g(1010)e(T)i(1011)1231 4428 y(y)240 b(11000)f(s)i(11001)1231 4541 y(p)f(11010)f(o)i(11011)1231 4654 y(b)f(11100)f(t)214 b(111010)1231 4767 y(n)f(111011)e(i)j(111100) 1231 4880 y(f)f(111101)e(a)j(111110)1231 4993 y(-)f(111111)p 1067 5049 1619 8 v 523 5237 a FJ(Nu)23 b(kan)h(vi)f(skri)n(v)o(e)i(v)n (ores)f(oprindelige)j(tekst)e(som)e(f\370lgende)j(bitstreng:)p 382 5316 1196 4 v 487 5371 a Fy(1)516 5403 y Fx(Se)19 b(e)n(v)o(entuelt)g(disse)h(skridt)e(i)h(bilag)g(A.1.1)g(p\345)g(side)g (65)1831 5652 y FJ(28)p eop %%Page: 29 31 29 30 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 609 548 a Fh(001)45 b(0110)f(1011)g(0100)g(0101)g(000)g(001)h(11100)f(11011)g(1000)g(11000) g(000)609 639 y(001)h(11010)e(000)i(1011)f(0111)g(11001)g(111010)g (1001)g(111110)g(111101)g(1001)609 731 y(0111)g(111011)g(1001)g(0110)g (1011)h(0100)f(0101)g(111111)g(11001)g(111100)g(1000)609 822 y(0111)g(001)h(1010)f(11010)g(000)g(001)g(1010)h(11100)f(11011)g (1000)g(11000)g(000)609 913 y(001)h(1010)f(0110)g(1011)g(0100)g(0101)g (000)523 1078 y FJ(V)-12 b(ores)31 b(data)g(bli)n(v)o(er)g(s\345ledes)h (k)o(omprimeret)g(til)f(en)f(bitstreng)j(p\345)d(222)h(bit)g(i)f (forhold)i(til)382 1191 y(424)d(bit)f(f\370r)h(k)o(ompression,)h(eller) 1515 1155 y Ft(222)p 1515 1170 106 4 v 1533 1222 a(53)1665 1191 y Fs(\031)d FJ(4,19)i(bit)f(pr)-5 b(.)28 b(symbol)h(i)f (gennemsnit,)i(me)o(get)f(t\346t)382 1304 y(p\345)23 b(entropien.)523 1417 y(Men)i(man)g(skal)h(ha)n(v)o(e)g(information)i (med)d(s\345ledes)i(at)e(tr\346et)g(kan)h(re)o(genereres.)i(Dennes)382 1530 y(st\370rrelse)k(kan)d(estimeres)i(ud)f(fra)g(alf)o(abetet.)h(V)-5 b(i)28 b(skal)i(bruge)h(et)e(tal)h(der)g(kan)f(beskri)n(v)o(e)j(fre-) 382 1643 y(kv)o(ensen,)f(samt)f(8)f(bit)h(til)g(at)g(beskri)n(v)o(e)h (symbolet.)g(T)-7 b(allet)30 b(der)g(beskri)n(v)o(er)h(frekv)o(ensen,)h (kan)382 1756 y(f.eks.)g(v\346re)f(af)h(en)f(k)o(ommatalstype)k(som)c (optager)j(4)d(byte.)h(Det)f(vil)h(sige)g(at)g(vi)f(bruger)i(5)382 1869 y(byte)26 b(pr)-5 b(.)25 b(symbol)h(i)f(alf)o(abetet,)j(og)d(da)h (alf)o(abetet)h(best\345r)g(af)e(21)h(symboler)l(,)h(bli)n(v)o(er)f (den)g(totale)382 1981 y(st\370rrelse)33 b Fr(5)26 b Fs(\001)g Fr(21)40 b(=)e(105)32 b FJ(byte)g(eller)f Fr(8)26 b Fs(\001)g Fr(105)40 b(=)f(840)32 b FJ(bit.)e(S\345)g(vi)h(kan)h(f)o (aktisk)g(ikk)o(e)g(opn\345)382 2094 y(k)o(ompression)26 b(i)d(v)n(ores)i(lille)f(eksempel.)523 2207 y(Mellemrummene)j(i)e (bitstrengen)k(er)c(kun)h(med)g(af)f(hensyn)i(til)f(l\346sbarhed)h(for) f(l\346seren)382 2320 y(da)d(man)f(vha.)h(tr\346et)g(kan)h(dek)o(ode)g (sekv)o(ensen)i(uden,)d(eftersom)h(Huf)n(fman-k)o(oderne)i(er)d (pr\346-)382 2433 y(\002ksk)o(oder)-5 b(.)21 b(Hv)n(orfor)h(man)e(kan)g (se)g(bort)h(fra)f(mellemrummere,)h(ble)n(v)g(forklaret)h(i)e(afsnit)h (5.1.1)382 2546 y(p\345)i(side)i(24.)382 2784 y FE(Re)o(v)o (ersibilitet)382 2958 y FJ(N\345r)d(man)g(skal)g(gendanne)j(data)e(der) g(er)f(ble)n(v)o(et)h(k)o(odet)g(med)f(Huf)n(fman,)g(skal)h(man)f (f\370rst)h(ha)n(v)o(e)382 3071 y(re)o(genereret)29 b(Huf)n (fman-tr\346et)f([16)q(].)e(Derefter)i(er)f(dek)o(odning)i(tri)n(viel.) f(Man)f(starter)h(med)e(at)382 3184 y(l\346se)c(den)h(f\370rste)g(bit)g (af)f(de)g(k)o(omprimerede)j(data.)e(Hvis)f(det)g(er)h(et)f(0,)f(skal)i (man)f(tage)h(grenen)382 3297 y(til)30 b(h\370jre)i(i)e(tr\346et,)g(og) g(modsat)i(hvis)f(det)f(er)h(et)f(1-tal.)h(Dette)f(forts\346ttes)j(til) d(man)g(m\370der)h(et)382 3410 y(bogsta)n(v)-6 b(,)25 b(og)f(s\345)g(starter)g(man)g(igen)g(fra)g(toppen.)523 3523 y(Hv)n(ordan)h(man)e(v\346lger)h(at)f(gemme)h(information)h(om)e (tr\346et)h(v)n(arierer)h(fra)e(implementa-)382 3636 y(tion)30 b(til)g(implementation.)i(Normalt)d(gemmer)h(man)f(blot)i (det)e(sorterede)j(sk)o(ema)e(med)g(fre-)382 3749 y(kv)o(enserne.)c (Dermed)d(kan)h(Huf)n(fman-tr\346et)h(re)o(genereres)h(som)d(v)o(ed)h (k)o(odningen.)382 3987 y FE(Optimale)f(data)382 4161 y FJ(Hv)n(or)28 b(me)o(get)g(Huf)n(fman-k)o(odning)j(kan)e(k)o (omprimere)g(ens)g(data)f(afh\346nger)i(selvf\370lgelig)h(af)382 4274 y(dataene)38 b(og)e(deres)i(tilkn)o(yttede)h(entropi.)f(Der)e (eksisterer)i(data)f(som)f(Huf)n(fman-k)o(odning)382 4387 y(slet)26 b(ikk)o(e)g(kan)g(k)o(omprimere,)g(f.eks.)g(eksemplet)h (fra)f(afsnit)g(4.2.2)f(hv)n(or)i(alf)o(abetet)g(best\345r)g(af)382 4500 y(256)g(forsk)o(ellige)i(symboler)f(med)e(ens)h(frekv)o(ens.)g (Huf)n(fman-tr\346et)h(bli)n(v)o(er)f(s\345)f(helt)h(\003adt,)f(og)382 4613 y(dermed)e(har)f(vi)g(samme)g(l\346ngde)h(k)o(ode)g(for)f(alle)g (symbolerne.)j(Da)c(der)h(v)n(ar)g(256)h(forsk)o(ellige)382 4726 y(symboler)l(,)k(skal)g(vi)f(bruge)h(en)e(8)h(bits)g(k)o(ode)h (til)f(hv)o(ert)g(symbol,)h(og)f(det)g(er)g(hv)n(ad)g(vi)g(normalt)382 4839 y(skal)20 b(bruge.)g(Derudo)o(v)o(er)h(skal)f(vi)f(jo)h(kunne)g (re)o(generere)i(Huf)n(fman-tr\346et,)f(og)e(vi)g(har)h(dermed)382 4951 y(brugt)25 b(mere)e(plads)i(end)f(f\370r)f(k)o(odningen.)523 5064 y(Hvis)31 b(Huf)n(fman-k)o(odning)j(k)o(omprimerer)f(d\345rligt)g (n\345r)e(tr\346et)g(er)g(\003adt,)f(hv)n(ordan)k(k)o(om-)382 5177 y(primerer)25 b(Huf)n(fman)e(s\345)h(n\345r)g(tr\346et)f(er)h (h\370jt,)g(dvs.)f(frekv)o(enserne)k(er)d(me)o(get)f(forsk)o(ellige?)k (En-)382 5290 y(tropien)f(for)e(s\345danne)j(data)e(er)f(la)n(v)-6 b(,)24 b(hvilk)o(et)i(betyder)g(en)f(god)g(k)o(ompression)i(idet)e(Huf) n(fman-)382 5403 y(metoden)19 b(matematisk)h(kan)e(vises)i(at)e (generere)i(optimale,)f(k)o(ortest)h(mulige)f(k)o(oder)g(der)g(ligger) 1831 5652 y(29)p eop %%Page: 30 32 30 31 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 548 a FJ(inden)29 b(for)f(\351n)g(bit)h(af)e(entropien)k([4)q(,)c(s.)g(101])i (\(forsendelsen)j(af)c(tr\346et)g(skal)h(dog)f(l\346gges)h(til)382 661 y(separat\).)523 774 y(V)-5 b(i)22 b(kan)i(alts\345)g(direkte)i(ud) d(fra)h(entropien)i(afg\370re)f(om)d(vi)i(kan)g(spare)g(plads)h(v)o(ed) e(at)h(bruge)382 887 y(Huf)n(fman-k)o(odning.)43 b(Denne)e(e)o(genskab) h(v)o(ed)f(Huf)n(fman-k)o(odning)j(har)c(gjort)h(den)g(me)o(get)382 1000 y(ben)o(yttet)32 b(i)e(k)o(ombination)k(med)c(andre)i(metoder)-5 b(.)31 b(Eksempelvis)i(bruger)f FA(gzip)d FJ(og)i FA(bzip2)382 1112 y FJ(Huf)n(fman-k)o(odning)c(som)c(sidste)i(skridt)g(i)e(deres)h (algoritme.)382 1358 y FE(K)n(onklusion)382 1533 y FJ(Hvis)e(vi)h (bruger)h(Huf)n(fman-k)o(odning)i(p\345)c(HTML-\002ler)f(vil)i(vi)g (opn\345)g(den)g(optimale)h(k)o(ode)g(for)382 1646 y(denne)34 b(\002l,)e(men)h(vi)g(ben)o(ytter)i(os)e(ikk)o(e)h(af)f(de)h (m\370nstre)g(som)f(optr\346der)h(i)f(HTML-\002lerne.)382 1758 y(Her)26 b(ville)h(det)g(v\346re)f(bedre)i(hvis)f(vi)f(optog)i (noget)f(som)f(HTML)f(i)g(alf)o(abetet)k(og)e(s\345)f(medtog)382 1871 y(frekv)o(ensen)g(for)e(netop)h(dette)f(m\370nster)-5 b(.)523 1984 y(M\370nstre)33 b(optr\346der)g(ikk)o(e)f(kun)g(i)f (HTML-\002ler)l(,)f(og)h(dette)i(har)f(skabt)g(beho)o(v)o(et)h(for)f (an-)382 2097 y(dre)c(k)o(ompressionsalgorit)q(mer)l(,)33 b(og)28 b(dermed)h(m\345sk)o(e)g(de)f(mest)g(ber\370mte:)h(Lempel)f(og) g(Zi)n(vs)382 2210 y(algoritmer)-5 b(.)382 2503 y FB(5.2)119 b(Ordbogsbaser)n(ede)30 b(metoder)382 2713 y Fw(5.2.1)99 b(Lempel-Zi)o(v)26 b(77)382 2887 y FJ(Lempel-Zi)n(v)21 b(77)g(er)f(en)h(ordbogsbaseret)k(algoritme,)d(men)e(den)i(har)f(f)o (aktisk)h(ikk)o(e)g(en)e(separat)382 3000 y(ordbog)j([16)q(].)e(I)g (stedet)i(best\345r)f(ordbogen)j(blot)d(af)f(de)g(symboler)i(der)f(er)g (forud)g(for)g(det)g(punkt)382 3113 y(algoritmen)i(er)e(n\345et)h(til)g (i)e(dataene.)j(Dette)e(g\370r)h(LZ77)f(til)g(en)g(adapti)n(v)i(k)o (ompressionsmetode)382 3226 y(der)33 b(tilpasser)h(sig)f(dataene)i(og)d (kan)h(skifte)h(mellem)f(forsk)o(ellige)i(hyppigheder)h(for)d(m\370n-) 382 3339 y(strene.)28 b(dette)h(g\370r)f(den)g(ideel)g(til)f(f.eks.)h (k)o(ompression)j(o)o(v)o(er)c(modemforbindelser)32 b(da)27 b(man)382 3452 y(i)h(disse)h(kan)f(ople)n(v)o(e)h(at)f(m\370nstrenes)j (frekv)o(ensfordeling)i(skifter)d(me)o(get)e(\(desuden)i(holder)382 3565 y(ordbogen)25 b(sig)d(p\345)g(en)g(k)o(onstant)i(st\370rrelse,)g (hv)n(or)f(man)f(f.eks.)g(i)g(LZ78)f(kan)i(k)o(omme)f(ud)g(for)g(at)382 3678 y(ordbogen)k(bli)n(v)o(er)e(for)g(stor\).)523 3791 y(Algoritmen)j(betragter)h(hele)e(tiden)h(en)e(del)h(af)g(dataene)h (gennem)g(et)e FD(vindue)j FJ(der)e(\003ytter)382 3903 y(sig)33 b(efterh\345nden)j(som)d(algoritmen)i(g\345r)e(frem.)g(V)-5 b(induet)33 b(sp\346nder)h(o)o(v)o(er)f(en)g(portion)i(l\346st)382 4016 y(data,)27 b FD(s\370)o(g)o(edelen)p FJ(,)j(og)d(en)g(portion)i (data)e(som)g(skal)h(til)f(at)f(l\346ses,)h FD(indl\346sningsdelen)p FJ(.)32 b(S\370ge-)382 4129 y(delen)26 b(er)g(s\345)f(v)n(ores)h (ordbog,)h(og)f(er)f(i)g(programmet)i FA(gzip)c FJ(maksimalt)k(p\345)e (32)h(tusinde)h(te)o(gn.)382 4242 y(St\370rrelsen)22 b(af)d(indl\346sningsdelen)25 b(afg\370r)20 b(hv)n(or)h(stort)g(et)e (m\370nster)i(man)f(potentielt)i(kan)f(f)o(ange)382 4355 y(og)j(er)f(i)g FA(gzip)f FJ(p\345)h(258)i(te)o(gn)e([16)r(,)f(s.)h (149].)382 4601 y FE(De)g(k)o(odede)f(symboler)382 4775 y FJ(LZ77)27 b(erstatter)k(te)o(gnene)f(med)e(k)o(odede)i(symboler)g (der)e(best\345r)i(af)e(tre)h(dele:)g(afstanden)i(fra)382 4888 y(det)d(nuv\346rende)i(punkt)f(til)f(et)g(m\370nster)h(der)f (passer)h(l\346ngere)g(tilbage)h(i)d(dataene,)j(l\346ngden)382 5001 y(af)36 b(m\370nstret)i(og)e(endelig)i(det)f(n\346ste)g(te)o(gn,)f (dvs.)h(det)g(te)o(gn)f(der)h(k)o(ommer)g(lige)g(efter)g(det)382 5114 y(m\370nster)28 b(der)f(er)g(ble)n(v)o(et)h(erstattet.)g (Afstanden)h(er)e(be)o(gr\346nset)h(af)f(st\370rrelsen)j(af)c (s\370gedelen,)382 5227 y(mens)h(l\346ngden)h(er)f(be)o(gr\346nset)h (af)f(st\370rrelsen)i(af)e(indl\346sningsdelen.)k(Man)c(kan)g(opf)o (atte)i(et)382 5340 y(k)o(odet)c(symbol)f(som)f(en)h(tre-tuppel)i(i)d (form)h(af)f(\(afstand,)i(l\346ngde,)f(n\346ste)g(te)o(gn\).)1831 5652 y(30)p eop %%Page: 31 33 31 32 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 523 548 a FJ(Grunden)h(til)f(at) g(det)g(n\346ste)h(te)o(gn)f(skal)g(med)g(i)g(det)g(k)o(odede)i(symbol) f(er)e(at)h(man)g(ellers)h(p\345)382 661 y(en)k(eller)h(anden)g (m\345de)f(skulle)i(angi)n(v)o(e)f(at)f(et)g(te)o(gn)g(er)g(v)o(ed)g (at)g(bli)n(v)o(e)h(beskre)n(v)o(et)h(i)d(stedet)j(for)382 774 y(en)c(tuppel)h(n\345r)g(der)f(dukk)o(er)i(et)d(te)o(gn)i(op)f(der) g(ikk)o(e)h(forek)o(ommer)h(i)d(ordbogen,)j(hvilk)o(et)g(sk)o(er)382 887 y(hyppigt)j(i)e(starten)h(af)g(dataene.)g(Hvis)g(te)o(gnet)g Fu(t)e FJ(ikk)o(e)i(forek)o(ommer)h(i)e(ordbogen,)j(erstattes)382 1000 y(det)24 b(nemlig)g(med)f(\(0,0,)p Fu(t)p FJ(\).)523 1112 y(Der)c(\002ndes)g(dog)h(en)f(v)n(ariant)h(af)f(LZ77)f(v)o(ed)h (na)n(vn)h(LZSS)d([16)q(,)h(s.)g(107])i(\(efter)g(op\002nderne,)382 1225 y(Storer)30 b(og)h(Szymanski\))g(hv)n(or)g(det)g(ekstra)g(te)o(gn) g(ikk)o(e)g(tages)g(med.)e(I)h(stedet)h(ben)o(ytter)h(man)382 1338 y(tilstandsskift)27 b(hv)n(or)e(man)e(reserv)o(erer)j(en)d(ekstra) i(bit)f(til)g(hv)o(er)f(byte)i(for)e(at)h(angi)n(v)o(e)g(om)f(det)h(er) 382 1451 y(en)f(tuppel)i(eller)g(et)e(te)o(gn.)382 1697 y FE(Gennemgang)g(af)g(eksempel)382 1871 y FJ(I)g(v)n(ores)i(eksempel) 382 2059 y Fv(

)o(Te)o(st)p 1429 2077 5 19 v 1433 2077 37 5 v 1470 2077 5 19 v 54 w(a)o(f)p 1592 2077 V 1597 2077 37 5 v 1633 2077 5 19 v 54 w(en)p 1756 2077 V 1761 2077 37 5 v 1797 2077 5 19 v 54 w(HT)o(ML)o(-s)o(id)o(e)o()382 2247 y FJ(\002ndes)f(der)g (ikk)o(e)h(m\370nstre)g(st\370rre)g(end)f(6)g(te)o(gn,)f(men)h (m\370nstret)h Fv(HTML>)c FJ(\002ndes)j(b\345de)h(i)e(slut-)382 2360 y(ningen)32 b(og)f(i)f(be)o(gyndelsen)k(af)c(\002len,)g(s\345)h (vi)g(v\346lger)g(st\370rrelsen)i(af)e(s\370gedelen)i(til)e(at)f (v\346re)382 2472 y(p\345)i(63)g(te)o(gn)g(og)g(indl\346sningsdelen)k (til)c(7)f(te)o(gn.)h(Disse)g(kan)g(beskri)n(v)o(es)i(med)d (henholdsvis)382 2585 y Fr(log)499 2607 y Ft(2)554 2585 y Fr(64)c(=)f(6)e FJ(bit)g(og)g Fr(log)1188 2607 y Ft(2)1242 2585 y Fr(8)j(=)f(3)e FJ(bit.)g(En)f(tre-tuppel)k(vil)d(derfor)h (v\346re)f(p\345)g Fr(6)d(+)g(3)g(+)f(8)27 b(=)f(17)382 2698 y FJ(bit)33 b(s\345)g(hv)o(er)g(tuppel)i(skal)e(i)g(gennemsnit)i (erstatte)g(3)d(eller)i(\003ere)e(te)o(gn)i(\(24)f(bit\))g(for)h(at)e (v)n(o-)382 2811 y(res)f(k)o(ompression)j(skal)d(kunne)h(betale)g(sig.) f(Se)f(tabel)h(5.5)g(p\345)g(n\346ste)g(side)g(for)g(skridtene)i(i)382 2924 y(algoritmen.)523 3037 y(De)25 b(f\370rste)i(seks)f(tupler)h (best\345r)g(blot)g(af)e(enk)o(eltte)o(gn,)j(og)e(det)g(f\370rste)h (interessante)i(sk)o(er)d(i)382 3150 y(linje)j(7)e(n\345r)h(algoritmen) j(l\346ser)d(et)f(m\370nster)i(der)g(kan)f(\002ndes)g(i)g (s\370gedelen.)i(Her)e(\002ndes)g(`<')382 3263 y(seks)34 b(pladser)h(fra)f(det)g(aktuelle)h(te)o(gn,)f(men)f(da)h(der)g(ikk)o(e) g(er)f(\003ere)h(te)o(gn)f(der)h(passer)h(med)382 3376 y(m\370nstret)e(bli)n(v)o(er)e(l\346ngden)i(kun)f(1)f(og)g(n\346ste)h (te)o(gn)f(`b'.)g(Herefter)i(hopper)g(algoritmen)g(s\345)382 3489 y(o)o(v)o(er)23 b(`b')h(da)g(det)g(allerede)h(er)e(ble)n(v)o(et)i (beskre)n(v)o(et.)523 3602 y(Hvis)i(der)h(er)f(\003ere)f(m\370nstre)j (der)e(passer)l(,)i(v\346lges)f(det)f(l\346ngst)h(mulige)g (naturligvis,)i(og)382 3714 y(hvis)f(der)f(er)g(\003ere)f(af)h(samme)g (l\346ngde,)h(v\346lges)f(det)h(l\346ngst)f(v\346k)g(for)g(at)g (forenkle)i(algorit-)382 3827 y(men.)523 3940 y(V)-12 b(ores)22 b(eksempel)h(ender)g(med)e(at)g(bli)n(v)o(e)h(til)f(29)h (tupler)-5 b(.)22 b(Da)f(hv)o(er)h(tuppel)g(best\345r)h(af)e(17)h(bit,) 382 4053 y(f\345r)31 b(vi)g(i)f(alt)h(493)g(bit)g(data)g(ud)g(af)g (LZ77,)f(mod)g(424)i(bit)f(f\370r)g(k)o(ompression.)i(Dette)e (h\346nger)382 4166 y(sammen)25 b(med)g(at)g(v)n(ores)i(eksempel)g (best\345r)f(af)f(sm\345)g(m\370nstre)h(der)g(kun)g(gentages)h(f\345)e (gange.)382 4279 y(T)l(uplerne)i(optager)h(simpelthen)g(for)f(me)o(get) f(plads,)g(17)h(bit,)e(i)h(forhold)i(til)e(de)g(oprindelige)j(8)382 4392 y(bit)24 b(n\345r)f(der)h(ikk)o(e)h(bli)n(v)o(er)f(sparet)h(mere)e (p\345)h(m\370nstre)g(der)g(gentager)i(sig)e(selv)-6 b(.)382 4638 y FE(LZSS)21 b(\226)i(tilstandsskift)382 4812 y FJ(Hvis)f(vi)g(i)f(stedet)i(ha)n(vde)h(ben)o(yttet)f (tilstandsskift)j(i)c(form)g(af)f(LZSS,)e(kunne)24 b(vi)e(ha)n(v)o(e)g (reduce-)382 4925 y(ret)27 b(tuplernes)i(st\370rrelse,)g(men)e(det)g (kr\346v)o(er)g(til)g(geng\346ld)i(at)d(vi)h(lader)h(dem)f(best\345)h (af)f(et)f(helt)382 5038 y(antal)31 b(byte)g(for)f(at)g(kunne)i(angi)n (v)o(e)f(om)f(en)g(gi)n(v)o(en)h(byte)g(er)f(en)g(tuppel)i(eller)f(ej.) f(Da)f(vi)h(ikk)o(e)382 5151 y(skal)e(ha)n(v)o(e)g(n\346ste)f(te)o(gn)h (med,)e(kan)i(vi)f(klare)h(os)g(med)e Fr(6)e(+)e(3)33 b(=)f(9)27 b FJ(bit)g(som)g(oprundet)j(gi)n(v)o(er)382 5264 y(16)24 b(bit)f(pr)-5 b(.)23 b(tuppel,)i(mens)f(enk)o(eltte)o(gn)i (stadig)f(vil)f(fylde)g(8)f(bit.)1831 5652 y(31)p eop %%Page: 32 34 32 33 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 516 1094 2722 8 v 1665 1199 a FJ(s\370gedel)p 1992 1233 4 113 v 2150 1233 V 263 w(indl\346sningsdel)140 b(symbol)p 516 1253 2722 5 v 1992 1391 4 113 v 2046 1357 a Fv(<)p 2150 1391 V 102 w(HTML>)p FJ(...)212 b(\(0,)23 b(0,)g(L\))1670 1922 y Fv()p 2150 1956 V 102 w(<)p FJ(...)214 b(\(0,)23 b(0,)g(>\))1615 2035 y Fv()p 1992 2069 V 101 w(<)p 2150 2069 V 102 w(body>

T)p FJ(...)217 b(\(0,)23 b(0,)g(o\))1452 2261 y Fv(

Te)p FJ(...)217 b(\(0,)23 b(0,)g(d\))1397 2374 y Fv(

Tes)p FJ(...)217 b(\(0,)23 b(0,)g(y\))1343 2486 y Fv()p 2150 2520 V 102 w(

Test)p FJ(...)217 b(\(6,)23 b(2,)g(p\))1179 2599 y Fv()p 2150 2633 V 102 w(Test)p 2428 2618 5 19 v 2433 2618 37 5 v 2470 2618 5 19 v 55 w(af)p FJ(...)212 b(\(9,)23 b(1,)g(T\))1070 2712 y Fv(T)p 1992 2746 4 113 v 97 w(e)p 2150 2746 V 102 w(st)p 2318 2730 5 19 v 2323 2730 37 5 v 2360 2730 5 19 v 55 w(af)p 2483 2730 V 2488 2730 37 5 v 2525 2730 5 19 v 55 w(e)p FJ(...)219 b(\(0,)24 b(0,)e(e\))1015 2825 y Fv(

)o(Te)p 1992 2859 4 113 v 97 w(s)p 2150 2859 V 102 w(t)p 2263 2843 5 19 v 2268 2843 37 5 v 2305 2843 5 19 v 55 w(af)p 2428 2843 V 2433 2843 37 5 v 2470 2843 5 19 v 55 w(en)p FJ(...)222 b(\(0,)23 b(0,)g(s\))961 2938 y Fv(T)o(es) p 1992 2972 4 113 v 97 w(t)p 2150 2972 V 2208 2956 5 19 v 2213 2956 37 5 v 2250 2956 5 19 v 157 w(af)p 2373 2956 V 2378 2956 37 5 v 2415 2956 5 19 v 55 w(en)p 2538 2956 V 2543 2956 37 5 v 2580 2956 5 19 v 55 w FJ(...)227 b(\(0,)23 b(0,)g(t\))906 3051 y Fv(

)o(Te)o(st)p 1992 3085 4 113 v 2051 3069 5 19 v 2056 3069 37 5 v 2093 3069 5 19 v 2150 3085 4 113 v 254 w(af)p 2318 3069 5 19 v 2323 3069 37 5 v 2360 3069 5 19 v 55 w(en)p 2483 3069 V 2488 3069 37 5 v 2525 3069 5 19 v 55 w(H)p FJ(...)212 b(\(0,)23 b(0,)p 3086 3069 V 3091 3069 37 5 v 3128 3069 5 19 v 78 w(\))852 3164 y Fv(T)o(es)o(t)p 1899 3182 V 1903 3182 37 5 v 1939 3182 5 19 v 1992 3198 4 113 v 152 w(a)p 2150 3198 V 102 w(f)p 2263 3182 5 19 v 2268 3182 37 5 v 2305 3182 5 19 v 55 w(en)p 2428 3182 V 2433 3182 37 5 v 2470 3182 5 19 v 55 w(HT)p FJ(...)219 b(\(0,)24 b(0,)e(a\))797 3277 y Fv(

)o(Te)o(st)p 1844 3295 V 1849 3295 37 5 v 1885 3295 5 19 v 54 w(a)p 1992 3311 4 113 v 97 w(f)p 2150 3311 V 2208 3295 5 19 v 2213 3295 37 5 v 2250 3295 5 19 v 157 w(en)p 2373 3295 V 2378 3295 37 5 v 2415 3295 5 19 v 55 w(HTM)p FJ(...)224 b(\(0,)24 b(0,)f(f\))743 3390 y Fv(T)o(es)o(t)p 1789 3408 V 1794 3408 37 5 v 1830 3408 5 19 v 54 w(af)p 1992 3424 4 113 v 2051 3408 5 19 v 2056 3408 37 5 v 2093 3408 5 19 v 2150 3424 4 113 v 254 w(en)p 2318 3408 5 19 v 2323 3408 37 5 v 2360 3408 5 19 v 55 w(HTML)p FJ(...)219 b(\(3,)24 b(1,)e(e\))633 3503 y Fv(

T)o(es)o(t)p 1680 3521 V 1685 3521 37 5 v 1721 3521 5 19 v 54 w(af)p 1844 3521 V 1849 3521 37 5 v 1885 3521 5 19 v 54 w(e)p 1992 3537 4 113 v 97 w(n)p 2150 3537 V 2208 3521 5 19 v 2213 3521 37 5 v 2250 3521 5 19 v 157 w(HTML-s)p FJ(...)217 b(\(0,)23 b(0,)g(n\))565 3616 y(...)p Fv(HTML>

)o(Te)o(st)p 1626 3634 V 1630 3634 37 5 v 1667 3634 5 19 v 54 w(a)o(f)p 1789 3634 V 1794 3634 37 5 v 1830 3634 5 19 v 54 w(en)p 1992 3649 4 113 v 2051 3634 5 19 v 2056 3634 37 5 v 2093 3634 5 19 v 2150 3649 4 113 v 254 w(HTML-si)p FJ(...)207 b(\(6,)23 b(1,)g(H\))565 3728 y(...)p Fv(ML>

Te)o(st)p 1517 3747 5 19 v 1521 3747 37 5 v 1558 3747 5 19 v 54 w(a)o(f)p 1680 3747 V 1685 3747 37 5 v 1721 3747 5 19 v 54 w(en)p 1844 3747 V 1849 3747 37 5 v 1885 3747 5 19 v 54 w(H)p 1992 3762 4 113 v 97 w(T)p 2150 3762 V 102 w(ML-side)p FJ(...)202 b(\(25,)23 b(3,)g(-\))565 3841 y(...)p Fv(body>

Test)p 1299 3860 5 19 v 1303 3860 37 5 v 1339 3860 5 19 v 55 w(a)o(f)p 1462 3860 V 1467 3860 37 5 v 1503 3860 5 19 v 54 w(en)p 1626 3860 V 1630 3860 37 5 v 1667 3860 5 19 v 54 w(H)o(TM)o(L-)p 1992 3875 4 113 v 97 w(s)p 2150 3875 V 102 w(ide

)p FJ(...)204 b(\(14,)24 b(1,)f(i\))565 3954 y(...)p Fv(dy>

Test)p 1189 3972 5 19 v 1194 3972 37 5 v 1230 3972 5 19 v 55 w(af)p 1353 3972 V 1358 3972 37 5 v 1394 3972 5 19 v 54 w(en)p 1517 3972 V 1521 3972 37 5 v 1558 3972 5 19 v 54 w(H)o(TM)o(L-)o(si)p 1992 3988 4 113 v 97 w(d)p 2150 3988 V 102 w(e

Test)p 1079 4085 5 19 v 1084 4085 37 5 v 1121 4085 5 19 v 56 w(af)p 1244 4085 V 1249 4085 37 5 v 1285 4085 5 19 v 54 w(en)p 1408 4085 V 1412 4085 37 5 v 1449 4085 5 19 v 54 w(H)o(TM)o(L-)o(si)o(de)p 1992 4101 4 113 v 97 w(<)p 2150 4101 V 102 w(/p>Test)p 969 4198 5 19 v 974 4198 37 5 v 1011 4198 5 19 v 55 w(af)p 1134 4198 V 1139 4198 37 5 v 1176 4198 5 19 v 56 w(e)o(n)p 1299 4198 V 1303 4198 37 5 v 1339 4198 5 19 v 55 w(H)o(TM)o(L-)o(si)o (de)o(<)p 1992 4327 4 113 v 97 w(/)p 2150 4327 V 102 w(body><)o(/b)p 1992 4440 4 113 v 97 w(o)p 2150 4440 V 102 w(dy><)o(/b)o(od)o(y>)o()425 b FJ(\(47,)24 b(4,)f(>\))p 516 4576 2722 8 v 746 4754 a FD(T)-8 b(abel)24 b(5.5:)31 b(Skridtene)26 b(i)d(LZ77-algoritmen)j(virk)o(ende)f(p\345)f (eksemplet)1831 5652 y FJ(32)p eop %%Page: 33 35 33 34 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 523 548 a FJ(Hvis)k(vi)h(igen)g (arbejder)h(v)n(ores)g(eksempel)f(igennem,)h(se)e(tabel)h(5.6,)f(bli)n (v)o(er)h(enk)o(eltte)o(gn)382 661 y(bare)37 b(o)o(v)o(ersat)g(til)f (almindelige)i(te)o(gn,)f(og)f(disse)h(er)f(s\345ledes)i(ikk)o(e)f (taget)g(med)f(i)f(tabellen,)382 774 y(mens)25 b(m\370nstre)g(som)g (genk)o(endes)i(i)d(s\370gedelen,)j(erstattes)g(med)d(tupler)i(som)f (f\370r)g(bortset)h(fra)382 887 y(at)d(n\346ste)h(te)o(gn)g(som)f (n\346vnt)h(ikk)o(e)h(tages)f(med.)p 635 1013 2483 8 v 1825 1118 a(s\370gedel)p 2153 1152 4 113 v 205 w(m\370nster)p 2747 1152 V 204 w(symbol)p 635 1172 2483 5 v 1776 1276 a Fv()p 2153 1310 4 113 v 318 w(<)p 2747 1310 V 321 w FJ(\(6,)f(1\))1285 1389 y Fv(\(6,1\)body)p 2153 1423 V 287 w(><)p 2747 1423 V 293 w FJ(\(6,)g(2\))958 1502 y Fv(\(6,1\)bod)o(y\()o(6,)o(2\)p)p 2153 1536 V 314 w(>)p 2747 1536 V 321 w FJ(\(9,)g(1\))685 1615 y Fv(\(6,1\)body)o(\(6)o(,2)o(\)p)o(\(9)o(,1\))p 2153 1649 V 314 w(T)p 2747 1649 V 321 w FJ(\(13,)h(1\))2035 1728 y(...)p 2153 1762 V 313 w(...)p 2747 1762 V 314 w(...)1053 1841 y(...)p Fv(\(35,1\)/\(24,2\))o(\(4)o(,2\))p 2153 1875 V 96 w(body\(6,2\))p 2747 1875 V 99 w FJ(\(34,)g(6\))1053 1954 y(...)p Fv(/\(24,2\)\(4,2\)\()o(34)o(,6\))p 2153 1988 V 314 w(/)p 2747 1988 V 321 w FJ(\(11,)g(1\))p 635 2011 2483 8 v 810 2189 a FD(T)-8 b(abel)24 b(5.6:)31 b(Udvalgte)25 b(skridt)g(for)f(LZSS)e(virk)o(ende)k(p\345)e(eksemplet) 523 2400 y FJ(S\345)j(vi)h(f\345r)g(nu)g(21)g(te)o(gn)h(og)f(17)g (tupler)l(,)i(sv)n(arende)g(til)e Fr(21)c Fs(\001)g Fr(8)g(+)f(17)i Fs(\001)e Fr(16)35 b(=)e(440)c FJ(bit.)f(Ud)382 2513 y(o)o(v)o(er)h(dette)h(skal)f(der)g(medtages)i(en)e(ekstra)h (tilstandsbit)i(for)d(hv)o(er)h(byte,)f(hvilk)o(et)i(i)d(praksis)382 2626 y(oms\346ttes)c(til)f(en)g(byte)h(mere)f(pr)-5 b(.)22 b(8)h(byte)h(k)o(omprimeret)h(data)f(\226)f(i)f(eksemplet)j(bli)n(v)o (er)f(dette)g(til)382 2739 y Fr(7)g Fs(\001)f Fr(8)33 b(=)f(56)c FJ(bit.)g(Alts\345)f(en)h(total)g(st\370rrelse)i(p\345)d (496)h(bit,)g(hvilk)o(et)h(f)o(aktisk)h(er)d(en)g(for\370gelse)j(i)382 2852 y(forhold)24 b(til)f(LZ77.)f(Dette)h(sk)o(yldes)h(dog)f(at)g(vi)g (ikk)o(e)g(udn)o(yttede)i(de)e(16)g(bit)g(pr)-5 b(.)22 b(tuppel)j(idet)e(de)382 2965 y(7)g(bit)h(af)f(dem)g(blot)i(ble)n(v)f (brugt)g(som)g(fyld.)523 3078 y(P\345)c(trods)j(af)e(spildet)h(k)o(om)g (dette)g(eksempel)g(allige)n(v)o(el)h(t\346t)e(p\345)g(LZ77)f(hvilk)o (et)j(ud)f(o)o(v)o(er)f(de)382 3191 y(mindre)28 b(resulterende)i (symboler)f(ogs\345)f(sk)o(yldes)g(at)f(m\345den)h(m\370nstre)g (erstattes)h(p\345)e(i)g(LZSS)382 3304 y(ikk)o(e)d(er)g(s\345)g (tilb\370jeligt)i(til)e(at)f(bryde)i(m\370nstre,)g(som)e(det)h(f.eks.)g (kunne)h(ses)f(i)f(de)h(sidste)h(linjer)382 3416 y(v)o(ed)30 b(tabellen)j(for)e(LZ77.)e(Her)h(ble)n(v)h(algoritmen)h(n\370dt)g(til)e (at)h(tage)g(`b')f(med)h(i)e(den)i(tredje-)382 3529 y(sidste)21 b(tuppel)f(hv)n(orv)o(ed)i(vi)d(mistede)h(muligheden)i(for)e(at)f (erstatte)i(det)f(6)f(te)o(gn)g(lange)i(m\370nster)382 3642 y(fra)j(be)o(gyndelsen)i(af)e(eksemplet)h(og)f(m\345tte)f (n\370jes)i(med)e(5)h(te)o(gn.)382 3888 y FE(Re)o(v)o(ersibilitet)382 4062 y FJ(K)m(ompression)j(med)e(LZ77)f(gi)n(v)o(er)h(en)g(r\346kk)o(e) h(tupler)g(som)f(blot)g(kan)h(indl\346ses)g(enk)o(eltvis)i(og)382 4175 y(k)o(on)l(v)o(erteres)22 b(til)d(almindelige)i(data.)e(Hvis)f(en) h(tuppel)h(best\345r)g(af)f(\(0,)f(0,)g Fu(t)p FJ(\),)g(skri)n(v)o(es)i (blot)f(te)o(gnet)382 4288 y Fu(t)p FJ(,)29 b(ellers)i(hentes)g (f\370rst)g(det)f(angi)n(vne)i(m\370nster)f(og)f(inds\346ttes)h(hv)n (orefter)i(det)d(ekstra)h(te)o(gn)f(i)382 4401 y(tuplen)d(kan)e (tilf\370jes.)i(V)-10 b(ed)25 b(LZSS)e(fore)o(g\345r)j(det)g(tilsv)n (arende)i(idet)e(man)f(dog)h(skal)g(holde)g(styr)382 4514 y(p\345)j(om)f(en)g(byte)i(er)e(en)h(del)g(af)f(en)h(tuppel)h (eller)f(et)g(te)o(gn)g(for)g(sig.)f(Ordbogen)j(er)d(s\345)h(de)f(data) 382 4627 y(man)23 b(re)o(genererer)j(og)e(bli)n(v)o(er)g(v)o(ed)g(k)o (omprimeringen)j(opbygget)f(underv)o(ejs.)382 4873 y FE(Optimale)d(data)382 5047 y FJ(Eksemplet)28 b(indeholder)i(mange)d (tupler)i(der)e(kun)g(erstatter)i(\351t)e(te)o(gn,)g(hv)n(ad)h(der)f (er)g(uheldigt)382 5160 y(for)36 b(k)o(ompressionens)41 b(ef)n(fekti)n(vitet.)d(V)-10 b(ed)36 b(lidt)h(st\370rre)g (datam\346ngder)h(bli)n(v)o(er)f(disse)h(tupler)382 5273 y(igen)e(erstattet)h(med)e(st\370rre)i(tupler)f(hv)n(orv)o(ed)h(dette)f (problem)h(mindsk)o(es.)g(Dette)e(fremg\345r)382 5386 y(ogs\345)24 b(i)f(slutningen)k(af)c(eksemplerne.)1831 5652 y(33)p eop %%Page: 34 36 34 35 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 523 548 a FJ(St\370rrelsen)33 b(af)e(s\370gedelen)j(og)e(indl\346sningsdelen)j(h\346nger)d(n\370je)g (sammen)g(med)f(hv)n(or)382 661 y(godt)f(LZ77)e(k)o(omprimerer)l(,)j (og)e(er)g(typisk)h(det)f(man)g(v\346lger)g(som)g(parameter)i(til)e (sit)g(k)o(om-)382 774 y(pressionsprogram.)37 b(St\370rre)32 b(s\370gedel)j(gi)n(v)o(er)d(mulighed)i(for)f(bedre)h(k)o(ompression)h (da)d(ord-)382 887 y(bogen)e(er)f(st\370rre)h(og)f(der)g(dermed)h(er)f (\003ere)g(muligheder)i(for)e(at)g(\002nde)g(gentagne)i(m\370nstre,)382 1000 y(men)25 b(samtidig)i(skal)g(den)f(s\370ges)h(igennem)g(fra)e (ende)i(til)f(anden,)g(og)g(dette)h(har)f(en)f(ef)n(fekt)i(p\345)382 1112 y(hastigheden)33 b(af)d(algoritmen.)h(Desuden)g(skal)g(vi)e(bruge) i(st\370rre)g(tal)f(til)g(at)f(referere)j(til)d(ord-)382 1225 y(bogen)34 b(med,)f(og)g(st\370rre)h(tal)f(betyder)h(mere)f(data.) g(V)-10 b(ed)33 b(for\370gelse)i(af)e(indl\346sningsdelens)382 1338 y(st\370rrelse)28 b(for\370ger)g(vi)e(ogs\345)h(datam\346ngden,)h (men)e(s\370getiden)j(bli)n(v)o(er)e(f)o(aktisk)h(mindre)f(fordi)382 1451 y(algoritmen)j(i)e(v\346rste)h(f)o(ald)g(stopper)h (m\370nsters\370gningen)j(p\345)28 b(samme)g(tid)g(og)h(i)f(bedste)h(f) o(ald)382 1564 y(kan)e(f)o(ange)h(l\346ngere)g(m\370nstre.)f(Et)f (langt)i(m\370nster)f(der)g(bli)n(v)o(er)h(delt)f(op,)g(betyder)h(jo)f (at)f(hele)382 1677 y(s\370gedelen)g(skal)e(s\370ges)h(igennem)g(en)e (ekstra)i(gang.)523 1790 y(Man)18 b(kan)h(dog)g(\002nde)g(optimale)h (st\370rrelser)h(for)d(hv)o(er)h(del,)g(men)f(dette)h(kr\346v)o(er)g (foranalyse)382 1903 y(af)25 b(dataene,)i(og)e(en)g(s\345dan)h (foranalyse)i(tager)e(l\346ngere)g(tid)g(end)f(at)g(k)o(omprimere)i (dem)e(fordi)382 2016 y(den)31 b(kr\346v)o(er)f(at)g(man)g(f\370rst)h (skal)g(k)o(omprimere)h(dataene)g(uden)f(be)o(gr\346nsning)i(p\345)d (hv)o(er)h(del)382 2129 y(for)24 b(s\345)f(bagefter)j(at)d(\002nde)h (de)f(maksimale)i(v\346rdier)f(for)g(afstand)h(og)f(l\346ngde.)523 2242 y(Det)h(gi)n(v)o(er)g(sig)g(selv)h(at)f(hvis)g(data)h(kun)g (best\345r)g(af)f(et)f(enk)o(elt)j(m\370nster)l(,)f(gentaget)h(mange) 382 2355 y(gange,)c(s\345)f(k)o(omprimerer)i(LZ77)d(rigtigt)j(godt,)e (men)g(hv)n(ordan)j(h\346nger)e(dette)g(sammen)f(med)382 2467 y(entropien)k(for)e(dataene?)523 2580 y(V)-5 b(i)32 b(s\345)h(i)g(afsnittet)i(om)e(Huf)n(fman-k)o(odning)k(at)c(data)h(hv)n (or)g(hv)o(ert)g(symbol)h(har)e(samme)382 2693 y(frekv)o(ens)g(k)o (omprimeres)g(d\345rligt)g(med)e(Huf)n(fman-k)o(odning.)k(Hvis)c(vi)g (nu)h(igen)g(antager)h(at)382 2806 y(v)n(ores)22 b(data)f(har)h(denne)g (e)o(genskab,)g(men)f(at)g(dataene)h(danner)h(m\370nstre.)e(Hvis)g (f.eks.)g(dataene)382 2919 y(best\345r)34 b(af)f Fu(x)786 2933 y Ft(1)825 2919 y Fu(x)877 2933 y Ft(2)916 2919 y Fu(x)968 2933 y Ft(3)1008 2919 y Fu(x)1060 2933 y Ft(4)1099 2919 y Fu(x)1151 2933 y Ft(5)1223 2919 y FJ(gentaget)i(10)e(gange,)g (s\345)g(har)g(disse)h(data)f(f\370rn\346vnte)i(e)o(genskab,)382 3032 y(men)19 b(allige)n(v)o(el)i(kan)e(dette)h(k)o(omprimeres)i(med)d (LZ77.)f(V)-5 b(i)18 b(f\345r)h(nemlig)h(\(0,)f(0,)f Fu(x)2894 3046 y Ft(1)2934 3032 y FJ(\))g(op)h(til)h(\(0,)f(0,)382 3145 y Fu(x)434 3159 y Ft(5)473 3145 y FJ(\))f(og)g(derefter)j(\(5,)d (44,)g Fu(x)1229 3159 y Ft(5)1268 3145 y FJ(\),)g(dog)g(afh\346ngigt)j (af)d(hv)n(or)h(stor)g(indl\346sningsdelen)k(er)-5 b(.)18 b(Grunden)382 3258 y(til)27 b(at)f(dette)i(kan)g(lade)f(sig)g(g\370re,) h(er)e(at)h(hvis)h(l\346ngdefeltet)h(er)e(st\370rre)h(end)f (afstandsfeltet)k(s\345)382 3371 y(gentages)22 b(symbolerne)g(fra)d (s\370gedelen)j(indtil)f(man)e(n\345r)h(op)g(p\345)f(l\346ngdefeltets)k (v\346rdi.)c(V)-5 b(i)19 b(har)382 3484 y(alts\345)h(hermed)g(k)o (omprimeret)h(50)e(te)o(gn)h(med)f(ligelig)h(frekv)o(ensfordeling)25 b(ned)19 b(til)g(6)g(tupler)i(der)382 3597 y(hv)o(er)j(kan)g(beskri)n (v)o(es)h(med)f Fr(3)c(+)g(6)h(+)f(8)25 b(=)g(17)f FJ(bit.)f(Det)g(bli) n(v)o(er)i(alts\345)f(102)g(bit)g(mod)f(400)h(bit.)523 3709 y(Dette)j(kan)h(lade)f(sig)h(g\370re)f(fordi)h(LZ77)f(arbejder)i (p\345)e(m\370nstre,)g(alts\345)h(strenge)h(af)e(sym-)382 3822 y(boler)l(,)d(hv)n(or)h(Huf)n(fman)e(arbejder)j(p\345)d(enk)o (elte)j(symboler)-5 b(.)24 b(M\370nstret)h Fu(x)2641 3836 y Ft(1)2681 3822 y Fu(x)2733 3836 y Ft(2)2772 3822 y Fu(x)2824 3836 y Ft(3)2863 3822 y Fu(x)2915 3836 y Ft(4)2955 3822 y Fu(x)3007 3836 y Ft(5)3069 3822 y FJ(bli)n(v)o(er)f (jo)382 3935 y(gentaget)31 b(ofte,)f(frekv)o(ensen)h(er)e(f)o(aktisk)i (1,)e(og)g(har)g(dermed)h(et)f(la)n(vt)h(informationsindhold)382 4048 y(s\345)23 b(det)h(kan)g(k)o(omprimeres.)523 4161 y(Det)32 b(skal)h(dog)g(n\346vnes)g(at)g(man)f(kan)h(opn\345)g(det)g (samme)f(med)g(Huf)n(fman)g(blot)i(v)o(ed)e(at)382 4274 y(lade)c(ens)f(alf)o(abet)i(best\345)f(af)f(dette)h(m\370nster)l(,)h (se)e(f.eks.)g(eksemplet)i(i)e(afsnit)h(4.1)f(p\345)g(side)h(17.)382 4387 y(Men)g(generelt)j(kr\346v)o(er)e(dette)h(igen)f(en)g(foranalyse)i (af)e(dataene.)h(I)e(stedet)i(er)e(det)h(popul\346rt)382 4500 y(med)g(en)h(k)o(ombination)j(af)c(de)h(to)f(metoder)-5 b(.)31 b(Man)e(lader)i(f\370rst)f(dataene)i(gennemg\345)f(LZ77-)382 4613 y(k)o(ompression)k(og)c(dern\346st)i(Huf)n(fman-k)o(odning,)i (netop)e(for)f(at)g(opn\345)h(den)f(optimale)h(k)o(od-)382 4726 y(ning.)24 b(Eksempler)h(p\345)e(dette)i(er)e FA(gzip)f FJ(og)i FA(zip)e FJ([16)q(,)g(s.)h(149].)382 4975 y Fw(5.2.2)99 b(Lempel-Zi)o(v)26 b(78)382 5149 y FJ(LZ78)j(ben)o(ytter)j(sig)e(af)f (en)h(seperat)i(ordbog)g([16)q(],)d(dvs.)h(at)g(der)g(ikk)o(e)g(er)g (noget)h(der)f(slettes)382 5262 y(i)25 b(ordbogen)i(efterh\345nden)i (som)c(man)g(k)o(omprimerer)i(\002len.)e(Dette)g(be)n(virk)o(er)i(at)e (m\370nstre)i(fra)382 5375 y(starten)c(af)e(\002len)g(stadig)h(kan)g (genk)o(endes)i(i)d(slutningen)j(af)d(\002len,)g(men)g(g\370r)g(at)g (ordbogen)j(som)1831 5652 y(34)p eop %%Page: 35 37 35 36 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 548 a FJ(re)o(gel)i(bli)n(v) o(er)h(me)o(get)f(stor)g(og)h(dermed)f(g\370r)h(s\370gningstiden)j(og)c (k)o(ompressionstiden)31 b(st\370rre.)382 661 y(Desuden)25 b(tilf\370jer)g(LZ78)e(ikk)o(e)h(m\370nstre)h(til)e(ordbogen)j(p\345)e (helt)g(samme)f(m\345de)h(som)f(LZ77.)523 774 y(Ligesom)32 b(LZ77)f(erstatter)i(LZ78)e(m\370nstre)i(med)e(tupler)l(,)i(dog)f (drejer)h(det)f(sig)g(om)f(to-)382 887 y(tupler)k(der)g(indeholder)i (et)e(indeks)g(til)g(ordbogen)i(og)d(det)h(n\346ste)f(te)o(gn.)h (Sidstn\346vnte)h(har)382 1000 y(samme)18 b(form\345l)i(som)e(i)g(LZ77) g(og)h(tilsv)n(arende)i(\002ndes)e(der)g(ogs\345)h(v)n(arianter)g(der)f (ikk)o(e)h(arbejder)382 1112 y(p\345)k(denne)h(m\345de.)e(Umiddelbart)i (kunne)g(man)f(tro)g(at)f(man)h(sparer)h(plads)f(i)g(forhold)h(til)f (LZ77)382 1225 y(n\345r)32 b(der)g(kun)g(er)g(2)f(felter)l(,)i(men)f (da)g(ordbogen)i(som)e(n\346vnt)g(tit)g(bli)n(v)o(er)g(me)o(get)g(stor) l(,)g(bli)n(v)o(er)382 1338 y(indeksnumrene)24 b(tilsv)n(arende)g (store)e(og)f(kr\346v)o(er)g(dermed)h(ogs\345)f(\003ere)g(bit)g(pr)-5 b(.)20 b(m\370nster)-5 b(.)22 b(S\345)e(en)382 1451 y(LZ78-tuppel)25 b(kan)f(godt)h(bli)n(v)o(e)e(st\370rre)i(end)f(en)g(LZ77-tuppel.)523 1564 y(LZ78)e(fungerer)i(v)o(ed)e(at)h(et)f(te)o(gn)g Fu(c)1617 1578 y Ft(1)1679 1564 y FJ(indl\346ses)h(og)g(ledes)g(efter)g (i)f(ordbogen.)j(Hvis)d(te)o(gnet)382 1677 y(ikk)o(e)28 b(\002ndes,)f(inds\346ttes)i(der)f(\226)e(analogt)k(med)c(LZ77)h(\226)g (en)g(tuppel)i(med)e(0)f(i)h(indeks)i(og)e Fu(c)3279 1691 y Ft(1)3345 1677 y FJ(i)382 1790 y(andet)k(felt,)f(hv)n(orefter)i (te)o(gnet)f(optages)g(i)e(ordbogen.)j(Hvis)e(te)o(gnet)h Fu(c)2636 1804 y Ft(1)2704 1790 y FJ(\002ndes)f(i)g(ordbogen,)382 1903 y(indl\346ses)i(det)f(n\346ste)f(te)o(gn)h Fu(c)1326 1917 y Ft(2)1396 1903 y FJ(og)f(der)h(s\370ges)h(efter)f(m\370nstret)h Fu(c)2477 1917 y Ft(1)2517 1903 y Fu(c)2556 1917 y Ft(2)2625 1903 y FJ(i)e(ordbogen;)j(hvis)f(det)382 2016 y(ogs\345)22 b(\002ndes,)e(s\345)h Fu(c)963 2030 y Ft(1)1003 2016 y Fu(c)1042 2030 y Ft(2)1082 2016 y Fu(c)1121 2030 y Ft(3)1180 2016 y FJ(osv)-6 b(.)22 b(Dette)e(forts\346tter)j(indtil)f (der)f(opn\345s)h(et)f(m\370nster)h(som)e(ikk)o(e)i(er)e(i)382 2129 y(ordbogen,)i(hv)n(orefter)h(der)d(inds\346ttes)i(en)e(tuppel)h (med)f(indekset)i(til)e(det)h(genk)o(endte)i(m\370nster)382 2242 y(og)h(det)f(n\346ste)h(te)o(gn)g Fu(c)1076 2256 y Fo(n)1123 2242 y FJ(.)f(Endelig)h(inds\346ttes)i(dette)e(n)o(ye)g (m\370nster)g(i)f(ordbogen.)523 2355 y(Det)33 b(ses)h(at)f(ordbogen)j (hurtigt)f(kan)f(bli)n(v)o(e)f(me)o(get)h(stor)l(,)g(men)f(da)g(man)g (ikk)o(e)i(beh\370)o(v)o(er)382 2467 y(at)30 b(sende)h(den)f(med,)g(se) f(afsnit)j(5.2.2)e(p\345)g(den)g(f\370lgende)i(side,)e(er)g(dette)h(i)e (sig)i(selv)f(ikk)o(e)h(et)382 2580 y(problem,)24 b(bortset)i(fra)d(ef) n(fekten)i(p\345)f(k)o(omprimeringstiden)k(og)c(RAM)e(forbruget.)382 2823 y FE(Gennemgang)h(af)g(eksempel)382 2998 y FJ(T)m(il)29 b(at)i(illustrere)h(LZ78)e(bruger)i(vi)e(igen)h(v)n(ores)h(eksempel;)g (de)f(f\370rste)g(skridt)h(er)e(vist)h(i)f(ta-)382 3111 y(bel)24 b(5.2.2.)f(Resten)h(af)g(tabellen)h(kan)f(ses)g(i)f(bilag)h (A.2.1)f(p\345)h(side)g(67.)p 1296 3231 1138 8 v 1346 3336 a(ordbog)140 b(tuppel)125 b(m\370nster)p 1296 3390 1138 5 v 1346 3494 a Fv(1:)54 b(<)153 b(\(0,<\))217 b(<)1346 3607 y(2:)54 b(H)153 b(\(0,H\))217 b(H)1346 3720 y(3:)54 b(T)153 b(\(0,T\))217 b(T)1346 3833 y(4:)54 b(M)153 b(\(0,M\))217 b(M)1346 3946 y(5:)54 b(L)153 b(\(0,L\))217 b(L)1346 4059 y(6:)54 b(>)153 b(\(0,>\))217 b(>)1346 4172 y(7:)54 b(<)97 b(\(6,<\))190 b(><)1346 4736 y(12:p)152 b(\(0,p\))217 b(p)1346 4849 y(13:>T)97 b(\(6,T\))190 b(>T)1346 4962 y(14:e)152 b(\(0,e\))217 b(e)p 1296 5019 1138 8 v 850 5197 a FD(T)-8 b(abel)23 b(5.7:)32 b(De)22 b(f\370r)o(ste)j(skridt)g(i) e(LZ78)g(virk)o(ende)i(p\345)f(eksemplet)523 5403 y FJ(De)e(f\370rste)i (te)o(gn)f(bli)n(v)o(er)g(blot)g(erstattet)i(med)d(tupler)i(af)f (formen)g(\(0,)f Fu(t)p FJ(\),)g(men)g(anden)i(gang)1831 5652 y(35)p eop %%Page: 36 38 36 37 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 548 a FJ(`<')k(bli)n(v)o(er) g(fundet,)h(i)f(linje)g(7,)g(kan)g(de)g(to)g(te)o(gn)g(`<')g(og)g(`b')g (erstattes)i(med)d(tuplen)j(\(1,b\))e(og)382 661 y(inds\346ttes)d(som)e (et)h(m\370nster)g(p\345)g(to)f(te)o(gn)h(i)f(ordbogen.)382 899 y FE(Re)o(v)o(ersibilitet)382 1074 y FJ(Ud)30 b(fra)i(tuplerne)h (er)e(det)g(muligt)h(at)f(genskabe)j(ordbogen)g(underv)o(ejs)f(og)e (dermed)h(f\345)f(den)382 1187 y(oprindelige)f(tekst)d(tilbage)h(uden)f (at)g(sende)g(ordbogen)i(med.)d(F)o(or)g(hv)o(er)h(tuppel)g(l\346ses)g (f\370rst)382 1300 y(indekset)f(\226)e(hvis)g(det)g(er)g(et)g(nul,)g (inds\346ttes)h(te)o(gnet)g(i)f(tuplen)h(direkte)h(i)d(ordbogen)j(og)e (indg\345r)382 1412 y(desuden)g(som)e(en)g(del)g(af)g(den)h(f\346rdige) g(tekst.)f(Hvis)g(det)g(er)g(forsk)o(elligt)j(fra)e(nul,)f(\002ndes)g (f\370rst)382 1525 y(det)29 b(m\370nster)g(som)g(indekset)h(sv)n(arer)g (til,)e(og)h(s\346ttes)g(sammen)g(med)f(te)o(gnet,)h(hv)n(orefter)i (den)382 1638 y(f\346rdige)h(streng)g(inds\346ttes)g(i)f(ordbogen)i(og) e(i)f(den)h(f\346rdige)h(tekst.)g(Hvis)e(man)h(nummere-)382 1751 y(rer)h(felterne)i(i)d(ordbogen)j(p\345)e(samme)g(m\345de)g(som)g (v)o(ed)g(k)o(omprimeringen,)i(opn\345s)g(s\345)d(den)382 1864 y(oprindelige)c(tekst.)523 1977 y(Der)20 b(er)h(dog)h(en)f(vigtig) h(forsk)o(el)h(p\345)e(k)o(ompression)j(og)d(dek)o(ompression.)j(Man)d (skal)h(nem-)382 2090 y(lig)28 b(ikk)o(e)g(s\370ge)g(i)f(ordbogen)j(v)o (ed)d(dek)o(ompression,)k(blot)d(foretage)i(et)d(opslag,)i(og)e(dette)i (g\370r)382 2203 y(dek)o(ompression)e(v\346sentligt)f(hurtigere)g(end)e (k)o(ompression.)382 2441 y FE(Optimale)f(data)382 2616 y FJ(Ligesom)i(LZ77)e(arbejder)j(LZ78)e(med)g(m\370nstre,)h(men)f (ordbogen)i(er)f(anderledes)i(indrettet)382 2729 y(idet)e(n)o(ye)f (m\370nstre)h(kun)g(tilf\370jes)g(et)f(bogsta)n(v)j(ad)d(gangen,)h(hv)n (ad)g(der)f(for\345rsager)j(at)d(LZ78)f(er)382 2842 y(langsommere)28 b(til)f(at)f(tilpasse)i(sig)e(sandsynligheder)32 b(for)26 b(dataene.)i(S\345)e(LZ78)f(virk)o(er)j(bedst)382 2954 y(p\345)k(st\370rre)h(m\346ngder)f(ensartede)j(data)d(hv)n(or)h (m\370nstrene)h(kan)f(n\345)f(at)f(k)o(omme)h(i)g(ordbogen.)382 3067 y(Dette)21 b(kan)h(v\346re)f(problematisk)k(i)20 b(forbindelse)25 b(med)c(HTML-\002ler)f(der)h(som)g(vi)h(har)f(set)h(i) f(be-)382 3180 y(ho)o(vsanalysen,)30 b(kan)e(v\346re)f(forholdsvist)k (sm\345)26 b(\226)h(desuden)i(kan)f(der)f(optr\346de)i(sm\345)d(blokk)o (e,)382 3293 y(f.eks.)e(lister)l(,)g(med)g(me)o(get)g(ensartet)h (materiale)g(i)e(HTML-\002lerne,)g(og)h(her)g(vil)g(LZ78)f(s\345)g(mu-) 382 3406 y(ligvis)i(ikk)o(e)f(kunne)h(n\345)f(at)f(tilpasse)i(sig.)523 3519 y(Ligesom)39 b(v)o(ed)f(LZ77)f(er)h(der)h(ble)n(v)o(et)g (opfundet,)h(endog)f(endnu)h(\003ere,)e(v)n(arianter)i(p\345)382 3632 y(LZ78.)c(V)-10 b(ariationerne)40 b(\346ndrer)e(bl.a.)f(p\345)g (hv)n(or)h(mange)g(te)o(gn)f(der)h(tilf\370jes)h(til)e(genk)o(endte)382 3745 y(m\370nstre)22 b(v)o(ed)g(hv)o(er)f(forek)o(omst)i(og)f(hv)n (ordan)h(ordbogen)h(opretholdes)g(og)e(s\370ges)g(i.)f(Desuden)382 3858 y(er)i(der)h(v)n(arianter)i(med)d(kun)h(\351t)f(felt)h(i)f(hv)o (er)h(tuppel.)523 3971 y(Et)35 b(eksempel)i(p\345)f(denne)h(v)n(ariant) g(kaldes)g(LZW)c(\(efter)k(T)-7 b(.)34 b(W)-7 b(elch)36 b([16)q(,)f(s.)g(123]\))i(og)382 4084 y(bruger)31 b(en)e(speciel)i (type)f(ordbog)h(som)e(g\370r)h(at)f(det)h(kun)g(er)f(n\370dv)o(endigt) j(med)d(indekset)j(til)382 4196 y(ordbogen)g(i)e(hv)o(er)g(tuppel.)h (N\345r)f(ordbogen)i(oprettes,)g(starter)f(den)f(med)g(at)g(indeholde)i (alle)382 4309 y(te)o(gn)24 b(i)f(alf)o(abetet)k(\(f.eks.)d(`a',)g (`b',)f(`c')h(osv)-6 b(.\))25 b(\226)e(p\345)h(den)h(m\345de)f(kan)g (man)f(undg\345)j(\(0,)d Fu(t)p FJ(\)-tupler)382 4422 y(s\345)29 b(det)h(ikk)o(e)g(er)f(n\370dv)o(endigt)j(at)d(tage)h(te)o (gndelen)h(af)e(LZ78-tuplerne)j(med.)d(LZW)e(har)i(dog)382 4535 y(ogs\345)24 b(en)g(del)g(andre)g(\346ndringer)l(,)i(f.eks.)d (sendes)i(ordbogen)i(med.)382 4777 y Fw(5.2.3)99 b(K)n(onklusion)382 4951 y FJ(De)29 b(ordbogsbaserede)35 b(metoder)d(f)o(anger)f(alts\345)g (m\370nstre)g(i)f(data,)g(men)g(dette)h(betyder)h(ikk)o(e)382 5064 y(n\370dv)o(endigvis)h(at)c(vi)g(har)g(opn\345et)i(den)e(bedste)i (k)o(ompression.)g(F)-7 b(.eks.)29 b(s\345)g(b)n(urde)h(vi)f(jo)g(ikk)o (e)382 5177 y(bruge)24 b(lige)f(s\345)g(me)o(get)g(data)h(p\345)f(at)f (gemme)h(et)g(m\370nster)h(der)f(kun)g(bli)n(v)o(er)h(brugt)g(\351n)f (gang)g(som)382 5290 y(et)g(m\370nster)i(der)e(bli)n(v)o(er)h(mange)g (gange.)g(Derfor)g(ben)o(ytter)h(man)e(ofte)h(Huf)n(fman-k)o(odning)j (p\345)382 5403 y(de)c(LZ77/78)h(k)o(omprimerede)i(data,)e(og)g(dette)g (er)g(pr\346cis)g(hv)n(ad)g FA(gzip)e FJ(g\370r)-5 b(.)1831 5652 y(36)p eop %%Page: 37 39 37 38 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 523 548 a FJ(Andre)18 b(programmer)i(bruger)g(ogs\345)f(k)o(ombinationsl\370sninge)q(r)k(med) 18 b(v)n(arianter)i(af)e(Lempel-)382 661 y(Zi)n(v)27 b(77/78,)h(eksempelvis)i FA(compress)p FJ(,)25 b FA(pkzip)h FJ(og)i FA(arj)p FJ(.)e(T)m(ilmed)h(bruges)i(specialiserede)382 774 y(v)n(arianter)23 b(ogs\345)e(i)f(modemer)h(og)g(i)f (gra\002kformater)j(\(som)d(GIF)g(og)g(PNG\).)f(Men)h(inden)i(for)f(de) 382 887 y(seneste)29 b(\345r)d(er)h(en)g(metode)h(der)f(kan)h(k)o (omprimere)g(bedre,)g(dukk)o(et)h(op)e(i)g(form)g(af)f FD(Burr)l(ows-)382 1000 y(Wheeler)n(-tr)o(ansformatione)q(n)p FJ(.)382 1292 y FB(5.3)119 b(T)-9 b(ransf)m(ormationer)382 1503 y Fw(5.3.1)99 b(Burr)n(o)o(ws-Wheeler)l(-transf)n(ormationen)382 1677 y FJ(I)21 b(1994)i(opf)o(andt)h(Michael)g(Burro)n(ws)e(og)g(D.)e (J.)i(Wheeler)h(en)f(n)o(y)g(metode)g(til)g(at)g(transformere)382 1790 y(data)d(s\345)f(de)g(kan)g(k)o(omprimeres)i(mere)e(ef)n(fekti)n (vt)i([16)q(].)e(Burro)n(ws-Wheeler)n(-transformatio)q(ne)q(n)382 1903 y(sorterer)28 b(dataene)g(s\345ledes)h(at)d(der)h(er)f(stor)h (sandsynlighed)k(for)26 b(at)h(ens)g(symboler)h(optr\346der)382 2016 y(i)34 b(n\346rheden)j(af)e(hinanden)j(\226)d(det)g(vil)g(senere)i (fremg\345)e(hv)n(orfor)j(dette)e(resulterer)h(i)e(bedre)382 2128 y(k)o(ompression.)382 2374 y FE(Gennemgang)23 b(af)g(eksempel)382 2549 y FJ(F)o(\370rste)33 b(punkt)i(er)e(at)g(dele)g(dataene)i(op)f(i)e (blokk)o(e.)j(Disse)e(bli)n(v)o(er)h(herefter)h(roteret)g(trin)l(vist) 382 2661 y(s\345)30 b(man)g(danner)i(en)e(tabel)i(som)e(vist)g(i)g (tabel)h(5.8)g(p\345)f(n\346ste)g(side.)h(Det)f(ses)g(at)h(hv)o(er)f (linje)h(i)382 2774 y(tabellen)e(er)d(den)h(samme)g(som)f(den)h (forrige)i(linje,)e(blot)g(har)g(vi)g(fjernet)h(det)f(f\370rste)h (bogsta)n(v)382 2887 y(og)c(sat)f(det)h(p\345)g(til)f(sidst.)523 3000 y(N\345r)28 b(den)h(roterede)i(tabel)e(er)g(ble)n(v)o(et)g (dannet,)h(skal)f(r\346kk)o(erne)i(sorteres)f(alf)o(abetisk)i(\(le-)382 3113 y(xik)o(ogra\002sk\).)f(Dette)e(resulterer)i(i)d(tabel)i(5.9)f (p\345)f(side)i(39)f(\(en)g(k)o(omplet)h(udga)n(v)o(e)g(fremg\345r)f(i) 382 3226 y(tabel)24 b(A.1\))f(p\345)h(side)g(68.)523 3339 y(V)-5 b(i)20 b(skal)h(selvf\370lgelig)k(ha)n(v)o(e)d(noget)g (information)h(til)f(at)e(gendanne)k(de)d(oprindelige)k(data,)382 3452 y(men)d(det)g(er)g(f)o(aktisk)i(nok)f(blot)g(at)f(gemme)g(den)h (sidste)h(k)o(olonne)g(i)e(tabel)h(5.9)f(samt)g(linjenum-)382 3565 y(meret)f(p\345)g(den)h(linje)g(hv)n(or)g(den)f(oprindelige)k (tekst)c(optr\346der)i(i)d(den)i(sorterede)h(tabel.)f(I)f(v)n(ores)382 3678 y(tilf\346lde)k(er)g(dette)g(linje)g(11)g(\(hele)g(tabellen)h (fremg\345r)g(i)d(appendiks)28 b(A.3.1)23 b(p\345)i(side)g(67\).)f(Den) 382 3791 y(sidste)h(k)o(olonne)g(er)f(resultatet)i(af)d (transformationen)28 b(og)c(er)f(i)g(dette)h(tilf\346lde:)382 4003 y Fv(ntfL<<<>>e>>>yp)o(LL)o(yp)p 1429 4021 5 19 v 1433 4021 37 5 v 1470 4021 5 19 v 54 w(<)o(/M)o(MMT)o(TT)o(HH)o(H>)p 2138 4021 V 2142 4021 37 5 v 2179 4021 5 19 v 54 w(/)o(T)o(est)p 1479 587 5 19 v 1483 587 37 5 v 1520 587 5 19 v 54 w(a)o(f)p 1642 587 V 1647 587 37 5 v 1683 587 5 19 v 54 w(en)p 1806 587 V 1810 587 37 5 v 1847 587 5 19 v 54 w(H)o(TML)o(-s)o(id)o(e<)o(/p) o(><)o(/H)o(TML)o(>)432 681 y(HTML>

)o(Te)o(st) p 1424 699 V 1429 699 37 5 v 1465 699 5 19 v 54 w(af)p 1588 699 V 1592 699 37 5 v 1629 699 5 19 v 54 w(e)o(n)p 1751 699 V 1756 699 37 5 v 1792 699 5 19 v 54 w(HT)o(ML-)o(si)o(de)o ()o()o()o(<)432 794 y(TML>

T)o(es)o(t)p 1370 812 V 1374 812 37 5 v 1410 812 5 19 v 55 w(a)o(f)p 1533 812 V 1538 812 37 5 v 1574 812 5 19 v 54 w(en)p 1697 812 V 1701 812 37 5 v 1738 812 5 19 v 54 w(H)o(TM)o(L-s)o(id)o(e<)o(/p)o(><)o(/bo)o(dy)o (><)o(/H)o(TM)o(L><)o(H)432 907 y(ML>

Te)o(st)p 1315 925 V 1320 925 37 5 v 1356 925 5 19 v 54 w(af)p 1479 925 V 1483 925 37 5 v 1520 925 5 19 v 54 w(e)o(n)p 1642 925 V 1647 925 37 5 v 1683 925 5 19 v 54 w(HT)o(ML)o(-si)o(de)o ()o()o(

Tes)o(t)p 1260 1038 V 1265 1038 37 5 v 1301 1038 5 19 v 54 w(af)p 1424 1038 V 1429 1038 37 5 v 1465 1038 5 19 v 54 w(en)p 1588 1038 V 1592 1038 37 5 v 1629 1038 5 19 v 54 w(H)o(TM)o(L-)o(sid)o(e<)o(/p)o(><)o(/b)o (ody)o(><)o(/H)o(TM)o(L>)o(

Test)p 1206 1151 V 1210 1151 37 5 v 1247 1151 5 19 v 54 w(a)o(f)p 1370 1151 V 1374 1151 37 5 v 1410 1151 5 19 v 55 w(e)o(n)p 1533 1151 V 1538 1151 37 5 v 1574 1151 5 19 v 54 w(HT)o(ML)o(-s)o(ide)o ()o()o(<)o(HTM)o(L)432 1246 y(

Test)p 1151 1264 V 1156 1264 37 5 v 1192 1264 5 19 v 54 w(af)p 1315 1264 V 1320 1264 37 5 v 1356 1264 5 19 v 54 w(en)p 1479 1264 V 1483 1264 37 5 v 1520 1264 5 19 v 54 w(H)o(TM)o(L-)o(si)o(de<)o(/p)o(><)o(/b)o(od)o(y><)o(/H) o(TM)o(L>)o()432 1359 y(body>

Test)p 1097 1377 V 1101 1377 37 5 v 1138 1377 5 19 v 55 w(a)o(f)p 1260 1377 V 1265 1377 37 5 v 1301 1377 5 19 v 54 w(en)p 1424 1377 V 1429 1377 37 5 v 1465 1377 5 19 v 54 w(HT)o(ML)o(-s)o(id)o (e)o(<)o(HT)o(ML>)o(<)432 1472 y(ody>

Test)p 1042 1490 V 1047 1490 37 5 v 1083 1490 5 19 v 55 w(af)p 1206 1490 V 1210 1490 37 5 v 1247 1490 5 19 v 54 w(e)o(n)p 1370 1490 V 1374 1490 37 5 v 1410 1490 5 19 v 55 w(H)o(TM)o(L-)o(si)o(de)o(<)o(/b)o(od)o(y>)o ()o(<)o(b)1866 1564 y FJ(.)1866 1598 y(.)1866 1631 y(.)432 1744 y Fv(y><)o(bod)o(y>)o (T)o(es)o(t)p 1970 1762 V 1974 1762 37 5 v 2010 1762 5 19 v 55 w(a)o(f)p 2133 1762 V 2138 1762 37 5 v 2174 1762 5 19 v 54 w(en)p 2297 1762 V 2301 1762 37 5 v 2338 1762 5 19 v 54 w(H)o(TM)o(L-s)o(id)o(e<)o(/p)o(><)o(/bo)o(d)432 1857 y(>)o(<)o(p>)o(Te)o(st)p 1915 1875 V 1920 1875 37 5 v 1956 1875 5 19 v 54 w(af)p 2079 1875 V 2083 1875 37 5 v 2120 1875 5 19 v 54 w(e)o(n)p 2242 1875 V 2247 1875 37 5 v 2283 1875 5 19 v 54 w(HT)o(ML)o(-si)o(de)o ()o(<)o(bo)o(dy>)o(T) o(es)o(t)p 1860 1988 V 1865 1988 37 5 v 1901 1988 5 19 v 54 w(af)p 2024 1988 V 2029 1988 37 5 v 2065 1988 5 19 v 54 w(en)p 2188 1988 V 2192 1988 37 5 v 2229 1988 5 19 v 54 w(H)o(TM)o(L-)o(sid)o(e<)o(/p)o(><)o(/b)o(ody)o(>)432 2083 y(/HTML><)o(p>)o(Te)o(st)p 1806 2101 V 1810 2101 37 5 v 1847 2101 5 19 v 54 w(a)o(f)p 1970 2101 V 1974 2101 37 5 v 2010 2101 5 19 v 55 w(e)o(n)p 2133 2101 V 2138 2101 37 5 v 2174 2101 5 19 v 54 w(HT)o(ML)o(-s)o(ide)o ()o()o(<)432 2195 y(HTML>T) o(es)o(t)p 1751 2214 V 1756 2214 37 5 v 1792 2214 5 19 v 54 w(af)p 1915 2214 V 1920 2214 37 5 v 1956 2214 5 19 v 54 w(en)p 2079 2214 V 2083 2214 37 5 v 2120 2214 5 19 v 54 w(H)o(TM)o(L-)o(si)o(de<)o(/p)o(><)o(/b)o(od)o(y><)o(/)432 2308 y(TML>)o(

)o(Te)o(st)p 1697 2327 V 1701 2327 37 5 v 1738 2327 5 19 v 54 w(a)o(f)p 1860 2327 V 1865 2327 37 5 v 1901 2327 5 19 v 54 w(en)p 2024 2327 V 2029 2327 37 5 v 2065 2327 5 19 v 54 w(HT)o(ML)o(-s)o(id)o(e)o(<)o(p>T)o(es) o(t)p 1642 2439 V 1647 2439 37 5 v 1683 2439 5 19 v 54 w(af)p 1806 2439 V 1810 2439 37 5 v 1847 2439 5 19 v 54 w(e)o(n)p 1970 2439 V 1974 2439 37 5 v 2010 2439 5 19 v 55 w(H)o(TM)o(L-)o(si)o(de)o(<)o(/b)o(od)o(y>)o()o(Te)o(st)p 1588 2552 V 1592 2552 37 5 v 1629 2552 5 19 v 54 w(a)o(f)p 1751 2552 V 1756 2552 37 5 v 1792 2552 5 19 v 54 w(en)p 1915 2552 V 1920 2552 37 5 v 1956 2552 5 19 v 54 w(HT)o(ML)o(-s)o(id)o(e<)o(/p>)o (<)o(/HT)o(M)432 2647 y(><)o(p>)o(Tes)o(t)p 1533 2665 V 1538 2665 37 5 v 1574 2665 5 19 v 54 w(af)p 1697 2665 V 1701 2665 37 5 v 1738 2665 5 19 v 54 w(e)o(n)p 1860 2665 V 1865 2665 37 5 v 1901 2665 5 19 v 54 w(HTM)o(L-)o(si)o(de)o (<)o(/b)o(od)o(y>)o('.)f(T)-7 b(allet)19 b(16)i(ud)f(for)g(`>')g(angi)n(v)o(er)h(at)f(den)g(16.)g(r\346kk)o(e)g (i)g(den)g(roterede)i(tabel)382 4965 y(startede)32 b(med)e(`>'.)h(Husk) f(p\345)h(at)f(vi)g(ikk)o(e)i(la)n(v)o(ede)f(om)f(p\345)h(linjerne,)h (vi)e(\003yttede)h(dem)g(blot.)382 5078 y(Det)e(sidste)h(bogsta)n(v)h (i)e(denne)h(r\346kk)o(e)g(m\345)e(pga.)h(roteringen)j(imidlertid)f (v\346re)e(det)h(bogsta)n(v)382 5191 y(der)d(stod)h(lige)g(f\370r)f (`>',)g(og)h(da)f(vi)g(i)g(de)g(k)o(odede)i(data)f(har)f(gemt)g(alle)h (de)f(sidste)i(bogsta)n(v)o(er)g(i)382 5303 y(r\346kk)o(erne,)h (\002nder)f(vi)f(v)o(ed)h(r\346kk)o(e)g(16)g(i)f(tabellen)i(bogsta)n(v) o(et)h(f\370r)e(`>',)g(nemlig)g(`L)-8 b('.)27 b(F)o(or)h(`L)-8 b(')1831 5652 y(38)p eop %%Page: 39 41 39 40 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 464 2991 8 v 437 587 5 19 v 442 587 37 5 v 479 587 5 19 v 487 568 a Fv(HTML-side

)o()o()o(<)o(p>)o(Te)o(st)p 3006 587 V 3010 587 37 5 v 3047 587 5 19 v 54 w(a)o(f)p 3170 587 V 3174 587 37 5 v 3210 587 5 19 v 55 w(e)o Fg(n)p 437 699 V 442 699 37 5 v 479 699 5 19 v 487 681 a Fv(af)p 602 699 V 607 699 37 5 v 644 699 5 19 v 55 w(en)p 767 699 V 772 699 37 5 v 809 699 5 19 v 55 w(HTML-si)o(de)o(<)o(/b)o(od)o(y>)o ()o(<)o(bo)o(dy)o(><)o(p>)o(Tes)o Fg(t)p 437 812 V 442 812 37 5 v 479 812 5 19 v 487 794 a Fv(en)p 602 812 V 607 812 37 5 v 644 812 5 19 v 55 w(HTML-side<)o(/p)o(><)o(/H)o(TML)o(><)o(HT)o(ML)o(><)o (bod)o(y>)o(T)o(es)o(t)p 3170 812 V 3174 812 37 5 v 3210 812 5 19 v 55 w(a)o Fg(f)432 907 y Fv(-side

)o (
)o(<)o(bo)o(dy)o(><)o(p>)o(Tes)o(t)p 2733 925 V 2738 925 37 5 v 2774 925 5 19 v 54 w(af)p 2897 925 V 2901 925 37 5 v 2938 925 5 19 v 54 w(e)o(n)p 3060 925 V 3065 925 37 5 v 3101 925 5 19 v 54 w(HTM)o Fg(L)432 1020 y Fv(/HTML><)o(p>)o(Te)o(st)p 1806 1038 V 1810 1038 37 5 v 1847 1038 5 19 v 54 w(a)o(f)p 1970 1038 V 1974 1038 37 5 v 2010 1038 5 19 v 55 w(e)o(n)p 2133 1038 V 2138 1038 37 5 v 2174 1038 5 19 v 54 w(HT)o(ML)o(-s)o(ide)o ()o()o Fg(<)432 1133 y Fv(/body><)o(HT)o (ML>)o()o(Te)o(st)p 2188 1151 V 2192 1151 37 5 v 2229 1151 5 19 v 54 w(a)o(f)p 2351 1151 V 2356 1151 37 5 v 2392 1151 5 19 v 54 w(en)p 2515 1151 V 2520 1151 37 5 v 2556 1151 5 19 v 54 w(HT)o(ML)o(-s)o(id)o(e<)o(/p>)o Fg(<)432 1246 y Fv(/p>)o(<) o(p>)o(Te)o(st)p 2406 1264 V 2410 1264 37 5 v 2447 1264 5 19 v 54 w(a)o(f)p 2570 1264 V 2574 1264 37 5 v 2610 1264 5 19 v 55 w(e)o(n)p 2733 1264 V 2738 1264 37 5 v 2774 1264 5 19 v 54 w(HT)o(ML)o(-s)o(ide)o Fg(<)432 1359 y Fv(<)o(bo)o(dy>)o(T)o(es)o(t)p 1860 1377 V 1865 1377 37 5 v 1901 1377 5 19 v 54 w(af)p 2024 1377 V 2029 1377 37 5 v 2065 1377 5 19 v 54 w(en)p 2188 1377 V 2192 1377 37 5 v 2229 1377 5 19 v 54 w(H)o(TM)o(L-)o(sid)o(e<)o (/p)o(><)o(/b)o(ody)o Fg(>)432 1472 y Fv()o(<)o(bo)o(dy)o(><)o(p>T)o(es)o(t)p 2242 1490 V 2247 1490 37 5 v 2283 1490 5 19 v 54 w(af)p 2406 1490 V 2410 1490 37 5 v 2447 1490 5 19 v 54 w(e)o(n)p 2570 1490 V 2574 1490 37 5 v 2610 1490 5 19 v 55 w(H)o(TM)o(L-)o(si)o(de)o()1866 1564 y FJ(.)1866 1598 y(.)1866 1631 y(.)432 1744 y Fv(ody>)o(T)o(est)p 2079 1762 V 2083 1762 37 5 v 2120 1762 5 19 v 54 w(a)o(f)p 2242 1762 V 2247 1762 37 5 v 2283 1762 5 19 v 54 w(en)p 2406 1762 V 2410 1762 37 5 v 2447 1762 5 19 v 54 w(H)o(TML)o(-s)o(id)o (e<)o(/p)o(>

Test)p 1042 1875 V 1047 1875 37 5 v 1083 1875 5 19 v 55 w(af)p 1206 1875 V 1210 1875 37 5 v 1247 1875 5 19 v 54 w(e)o(n)p 1370 1875 V 1374 1875 37 5 v 1410 1875 5 19 v 55 w(H)o(TM)o(L-)o(si)o (de)o(<)o(/b)o(od)o(y>)o()o(<)o Fg(b)432 1970 y Fv(p>)o(<)o(bo)o(dy)o(>T)o(es)o(t)p 2351 1988 V 2356 1988 37 5 v 2392 1988 5 19 v 54 w(af)p 2515 1988 V 2520 1988 37 5 v 2556 1988 5 19 v 54 w(en)p 2679 1988 V 2683 1988 37 5 v 2720 1988 5 19 v 54 w(H)o(TM)o(L-)o(si)o(de<)o Fg(/)432 2083 y Fv(p>Test)p 767 2101 V 772 2101 37 5 v 809 2101 5 19 v 55 w(af)p 932 2101 V 937 2101 37 5 v 974 2101 5 19 v 56 w(en)p 1097 2101 V 1101 2101 37 5 v 1138 2101 5 19 v 54 w(H)o(TM)o(L-s)o(id)o(e<)o(/p)o(><)o(/bo)o(dy)o(><)o(/H)o(TM)o (L><)o(HT)o(ML)o(><)o(bo)o(dy>)o Fg(<)432 2195 y Fv(side

<)o(/HT)o(ML)o(><)o(HT)o(ML)o(>)o(T)o(est)p 2679 2214 V 2683 2214 37 5 v 2720 2214 5 19 v 54 w(a)o(f)p 2842 2214 V 2847 2214 37 5 v 2883 2214 5 19 v 54 w(en)p 3006 2214 V 3010 2214 37 5 v 3047 2214 5 19 v 54 w(H)o(TML)o Fg(-)432 2308 y Fv(st)p 547 2327 V 552 2327 37 5 v 589 2327 5 19 v 55 w(af)p 712 2327 V 717 2327 37 5 v 754 2327 5 19 v 55 w(en)p 877 2327 V 882 2327 37 5 v 919 2327 5 19 v 55 w(HTML-)o(si)o(de<)o(/p)o(><)o(/b)o(od)o(y><)o(/H)o(TM)o (L>)o(<)o(bo)o(dy)o(><)o(p>T)o Fg(e)432 2421 y Fv(t)p 492 2439 V 497 2439 37 5 v 534 2439 5 19 v 55 w(af)p 657 2439 V 662 2439 37 5 v 699 2439 5 19 v 55 w(en)p 822 2439 V 827 2439 37 5 v 864 2439 5 19 v 55 w(HTML-s)o(id)o(e)o(<)o(HT)o (ML>)o()o(Te)o Fg(s)432 2534 y Fv(y><)o(bod)o(y>)o(T)o(es)o(t)p 1970 2552 V 1974 2552 37 5 v 2010 2552 5 19 v 55 w(a)o(f)p 2133 2552 V 2138 2552 37 5 v 2174 2552 5 19 v 54 w(en)p 2297 2552 V 2301 2552 37 5 v 2338 2552 5 19 v 54 w(H)o(TM)o(L-s)o(id)o(e<)o(/p)o (><)o(/bo)o Fg(d)432 2647 y Fv(y>

Test)p 932 2665 V 937 2665 37 5 v 974 2665 5 19 v 56 w(af)p 1097 2665 V 1101 2665 37 5 v 1138 2665 5 19 v 54 w(e)o(n)p 1260 2665 V 1265 2665 37 5 v 1301 2665 5 19 v 54 w(HTM)o(L-)o(si)o(de)o(<) o(/b)o(od)o(y>)o()o()o()208 b FJ(14)p 1432 1551 V 214 w(26:)c Fv(T)k FJ(29)p 2318 1551 V 214 w(44:)c Fv(e)j FJ(40)674 1630 y(9:)226 b Fv(>)208 b FJ(15)p 1432 1664 V 214 w(27:)c Fv(T)k FJ(30)p 2318 1664 V 214 w(45:)c Fv(b)j FJ(34)652 1743 y(10:)c Fv(e)208 b FJ(39)p 1432 1777 V 214 w(28:)c Fv(T)k FJ(31)p 2318 1777 V 214 w(46:)c Fv(b)j FJ(35)652 1856 y(11:)c Fv(>)208 b FJ(16)p 1432 1890 V 214 w(29:)c Fv(H)k FJ(20)p 2318 1890 V 214 w(47:)c Fv(/)230 b FJ(7)652 1969 y(12:)203 b Fv(>)208 b FJ(17)p 1432 2003 V 214 w(30:)c Fv(H)k FJ(21)p 2318 2003 V 214 w(48:)c Fv(<)j FJ(13)652 2082 y(13:)c Fv(>)208 b FJ(18)p 1432 2116 V 214 w(31:)c Fv(H)k FJ(22)p 2318 2116 V 214 w(49:)c Fv(-)230 b FJ(4)652 2195 y(14:)203 b Fv(y)208 b FJ(52)p 1432 2229 V 214 w(32:)c Fv(>)k FJ(19)p 2318 2229 V 214 w(50:)c Fv(e)j FJ(41)652 2308 y(15:)c Fv(p)208 b FJ(47)p 1432 2341 V 214 w(33:)p 1861 2326 5 19 v 1866 2326 37 5 v 1903 2326 5 19 v 489 w(2)p 2318 2341 4 113 v 237 w(51:)c Fv(s)j FJ(50)652 2420 y(16:)c Fv(L)208 b FJ(24)p 1432 2454 V 214 w(34:)c Fv(/)230 b FJ(6)p 2318 2454 V 237 w(52:)204 b Fv(d)j FJ(37)652 2533 y(17:)c Fv(L)208 b FJ(25)p 1432 2567 V 214 w(35:)c Fv(<)k FJ(12)p 2318 2567 V 214 w(53:)c Fv(d)j FJ(38)652 2646 y(18:)c Fv(y)208 b FJ(53)p 1432 2680 V 214 w(36:)c Fv(i)k FJ(43)p 2318 2680 V 549 2703 2654 8 v 641 2881 a FD(T)-8 b(abel)23 b(5.10:)32 b(Dek)o(odningstabellen)d(for)24 b(Burr)l(ows-Wheeler)i(for)d(eksemplet)382 3152 y FJ(hyppigt)d(har)e (samme)g(k)o(ontekst)i(til)e(h\370jre.)h(Dette)f(kan)h(ogs\345)g(f)o (ange)g(m\370nstre)g(ligesom)g(Lempel-)382 3265 y(Zi)n(v)j(fordi)i (hyppigt)g(gentagne)i(sekv)o(enser)f(resulterer)g(i)e(ens)g(passager)i (i)d(den)i(k)o(odede)g(tekst)g(\226)382 3378 y(som)f(f.eks.)h (\204MMMTTTHHH\223)c(i)j(eksemplet)j(\226)d(som)g(derfor)i(kan)f(k)o (omprimeres)h(me)o(get.)523 3491 y(Der)j(er)g(dog)h(det)f(problem)i(at) e(Burro)n(ws-Wheeler)n(-transformati)q(on)q(en)34 b(kr\346v)o(er)28 b(relati)n(vt)382 3603 y(store)34 b(blokk)o(e)h(for)e(at)g(v\346re)g (ef)n(fekti)n(v)h([16)q(,)e(s.)h(256],)g(hvilk)o(et)i(dels)f(betyder)h (langsommere)382 3716 y(k)o(odning)29 b(pga.)e(de)g(st\370rre)h (datam\346ngder)h(der)e(skal)h(sorteres,)g(dels)g(kan)g(betyde)g(at)f (HTML-)382 3829 y(\002lerne)f(er)f(for)g(sm\345)g(til)g(at)g(Burro)n (ws-Wheeler)n(-transformati)q(on)q(en)31 b(kan)25 b(sortere)i(dem)e(ef) n(fek-)382 3942 y(ti)n(vt.)382 4190 y Fw(5.3.2)99 b(Mo)o(v)o(e-to-fr)n (ont)382 4364 y FJ(Mo)o(v)o(e-to-front-metoden)35 b(beskri)n(v)o(er)d (te)o(gnene)g(ud)f(fra)f(hv)n(orn\345r)i(de)f(sidst)g(ble)n(v)g(set)f (i)g(data-)382 4477 y(ene)g([16)q(])f(og)h(er)g(som)f(skr\346ddersyet)k (til)c(Burro)n(ws-Wheeler)-5 b(.)32 b(Den)d(virk)o(er)i(v)o(ed)f(at)f (vi)h(f\370rst)382 4590 y(opskri)n(v)o(er)h(v)n(ores)f(alf)o(abet.)h (Hvis)e(vi)g(bruger)h(det)f(samme)g(alf)o(abet)i(som)e(v)o(ed)g (eksemplet)i(fra)382 4703 y(Burro)n(ws-Wheeler)n(-transformati)q(on)q (en,)e(f\345s)912 4884 y Fs(f)p Fu(<)c(;)h(>;)15 b Fs(\000)p Fu(;)g(=;)p 1416 4902 5 19 v 1421 4902 37 5 v 1458 4902 5 19 v 71 w(;)g(a;)g(b;)g(d;)g(e;)g(f)5 b(;)15 b(H)r(;)g(i;)g(L;)g(M)5 b(;)15 b(n;)g(o;)g(p;)g(s;)g(T)8 b(;)15 b(t;)g(y)s Fs(g)523 5064 y FJ(V)-5 b(i)26 b(beskri)n(v)o(er)j(nu)e(hv)o(ert)g(te)o(gn)h (med)f(dets)g(position)j(i)c(alf)o(abetet.)j(`<')e(er)g(nr)-5 b(.)27 b(1,)f(`>')h(er)g(nr)-5 b(.)382 5177 y(2)28 b(osv)-6 b(.)29 b(N\345r)f(man)h(s\345)f(m\370der)i(et)e(te)o(gn)h(i)f(dataene,) j(bli)n(v)o(er)e(dette)g(te)o(gn)h(\003yttet)f(op)f(p\345)h(forreste) 382 5290 y(position)h(i)e(alf)o(abetet.)i(Dette)e(betyder)i(at)e(hvis)h (te)o(gnene)h(ligger)f(i)f(grupper)i(f\345r)e(vi)g(med)g(stor)382 5403 y(sandsynlighed)g(en)23 b(masse)h(sm\345)f(tal)h(efter)g(k)o (odning.)1831 5652 y(40)p eop %%Page: 41 43 41 42 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 1152 464 1449 8 v 1202 568 a FJ(alf)o(abet)674 b(te)o(gn)101 b(k)o(ode)p 1152 622 1449 5 v 1202 727 a Fv(<,>,-,/,)p 1647 745 5 19 v 1652 745 37 5 v 1689 745 5 19 v 55 w(,a,...)93 b(n)200 b FJ(15)1202 840 y Fv(n,<,>,-,/,)p 1757 858 V 1762 858 37 5 v 1799 858 5 19 v 56 w(,.)o(..)93 b(t)200 b FJ(20)1202 953 y Fv(t,n,<,>,-,/,...)93 b(f)200 b FJ(12)1202 1066 y Fv(f,t,n,<,>,-,...)93 b(L)200 b FJ(15)1202 1178 y Fv(L,f,t,n,<,>,...) 93 b(<)200 b FJ(5)1202 1291 y Fv(<,L,f,t,n,>,...)93 b(<)200 b FJ(0)1202 1404 y Fv(<,L,f,t,n,>,...)93 b(<)200 b FJ(0)1202 1517 y Fv(<,L,f,t,n,>,...)93 b(>)200 b FJ(5)1202 1630 y Fv(>,<,L,f,t,n,...)93 b(>)200 b FJ(0)1202 1743 y Fv(>,<,L,f,t,n,...) 93 b(e)200 b FJ(13)1202 1856 y Fv(e,>,<,L,f,t,...)93 b(>)200 b FJ(1)1202 1969 y Fv(>,e,<,L,f,t,...)93 b(>)200 b FJ(0)p 1152 2026 1449 8 v 382 2204 a FD(T)-8 b(abel)104 b(5.11:)32 b(Mo)o(ve-to-fr)l(ont-k)o(odnin)q(g)110 b(p\345)104 b(eksemplet)j(fr)o(a)d(Burr)l(ows-Wheeler)n(-)382 2317 y(tr)o(ansformationen)382 2583 y FE(Eksempel)382 2758 y FJ(Grundet)30 b(det)g(store)g(alf)o(abet)h(har)e(vi)g(kun)h(vist)g (det)f(f\370rste)i(udsnit)f(af)f(alf)o(abetet.)i(T)-7 b(abel)30 b(5.11)382 2871 y(viser)24 b(de)f(f\370rste)i(12)e(skridt)i (i)e(en)g(mo)o(v)o(e-to-front-k)o(odning)29 b(p\345)23 b(de)h(data)g(vi)f(\002k)f(v)o(ed)i(Burro)n(ws-)382 2983 y(Wheeler)n(-transformation)q(en,)29 b(alts\345)24 b(den)g(sidste)h(k)o (olonne)h(i)d(tabel)h(5.9.)523 3096 y(Som)19 b(det)i(ses)g(til)f (sidst,)h(gi)n(v)o(er)g(mo)o(v)o(e-to-front)i(sm\345)d(v\346rdier)h (n\345r)g(symbolerne)i(optr\346der)382 3209 y(i)d(grupper)l(,)i (ogs\345)f(selv)h(om)d(der)i(k)o(ommer)g(et)f(`e')g(ind)h(mellem)g (gruppen)h(af)e(`>'.)g(Dette)h(er)f(hv)n(ad)382 3322 y(der)h(skaber)h(den)f(sk\346v)o(e)g(sandsynlighedsfor)q(del)q(ing)27 b(som)20 b(Huf)n(fman-k)o(odning)k(kan)e(udn)o(ytte.)382 3566 y FE(Re)o(v)o(ersibilitet)382 3740 y FJ(V)-5 b(i)28 b(f\345r)h(alts\345)h(en)f(talr\346kk)o(e)h(v)o(ed)g(mo)o(v)o (e-to-front-k)o(odning,)k(men)29 b(vi)g(skal)h(desuden)h(gemme)382 3853 y(det)e(oprindelige)i(alf)o(abet)f(for)f(at)f(kunne)i(gendanne)h (de)d(oprindelige)k(data.)d(Dette)f(kan)h(blot)382 3966 y(g\370res)k(som)e(en)g(streng)i(af)f(symboler)l(,)h(og)f(det)g(k)o (ommer)f(dermed)i(til)e(at)h(fylde)g(det)g(samme)382 4079 y(som)23 b(l\346ngden)i(af)e(alf)o(abetet.)523 4192 y(V)-5 b(i)21 b(starter)i(med)f(at)g(opskri)n(v)o(e)i(det)e(samme)g (alf)o(abet)i(som)e(vi)g(startede)i(med)e(v)o(ed)g(k)o(odning.)382 4305 y(Dern\346st)31 b(henter)i(vi)e(de)h(f\370rste)g(nummer)g(fra)f(k) o(oden,)i(henter)g(symbolet)f(der)g(er)f(p\345)h(denne)382 4417 y(position)25 b(i)e(alf)o(abetet)i(og)e(nedskri)n(v)o(er)i(dette)f (symbol.)g(Symbolet)f(skal)h(s\345)f(ligesom)h(v)o(ed)f(k)o(od-)382 4530 y(ning,)e(\003yttes)g(frem)f(i)g(alf)o(abetet.)j(Dern\346st)e (g\370r)g(vi)f(det)h(samme)f(med)h(n\346ste)g(tal)f(i)g(k)o(oden.)i (Man)382 4643 y(kan)i(f)o(aktisk)i(g\370re)e(n\370jagtigt)i(dette)f(v)o (ed)f(at)g(betragte)h(tabel)g(5.11,)f(og)g(s\345)f(blot)i(opf)o(atte)g (k)o(oden)382 4756 y(som)e(den)h(gi)n(vne.)382 5003 y Fw(5.3.3)99 b(K)n(onklusion)382 5177 y FJ(Burro)n(ws-Wheeler)n (-transformati)q(on)q(en)38 b(resulterer)c(i)e(mange)g(ens)h(te)o(gn)f (t\346t)g(p\345)g(hinanden,)382 5290 y(og)25 b(mo)o(v)o(e-to-front)j (transformerer)h(dette)d(til)f(en)h(sekv)o(ens)h(hv)n(or)f(forek)o (omsten)j(af)c(sm\345)g(v\346r)n(-)382 5403 y(dier)32 b(er)f(stor)h(i)f(forhold)i(til)e(store)h(v\346rdier)-5 b(.)32 b(H\370j)f(sandsynlighed)36 b(for)31 b(nogle)i(v\346rdier)l(,)f (lille)1831 5652 y(41)p eop %%Page: 42 44 42 43 bop 1079 228 a FI(Kapitel)24 b(5:)g(Analyse)g(af)g(k)o (ompressionsmetoder)p 382 266 2989 4 v 382 548 a FJ(for)h(andre)g(er)g (s\345)f(de)h(ideelle)h(data)f(til)g(Huf)n(fman-k)o(odning,)j(og)c (denne)i(form)f(for)g(k)o(omprime-)382 661 y(ring)36 b(med)f(Burro)n(ws-Wheeler)n(-transformati)q(one)q(n,)40 b(dern\346st)d(mo)o(v)o(e-to-front)g(og)f(til)f(sidst)382 774 y(Huf)n(fman-k)o(odning)27 b(ben)o(yttes)e(i)e(programmet)i FA(bzip2)d FJ([18)q(].)523 887 y(Man)i(opn\345r)h(ikk)o(e)g(ret)f(me)o (get)h(v)o(ed)f(at)g(bruge)h(Burro)n(ws-Wheeler)n(-transformati)q(on)q (en)30 b(og)382 1000 y(mo)o(v)o(e-to-front)23 b(hv)o(er)e(for)f(sig.)h (Burro)n(ws-Wheeler)n(-transformatio)q(ne)q(n)26 b(\003ytter)20 b(kun)h(rundt)h(p\345)382 1112 y(bogsta)n(v)o(erne)30 b(i)25 b(dataene)k(og)d(tilf\370jer)i(et)e(tal,)g(og)h(mo)o(v)o (e-to-front)i(er)d(kun)h(n)o(yttig)g(at)f(bruge)i(p\345)382 1225 y(me)o(get)23 b(specielle)j(typer)f(af)e(data.)h(Men)f(tilsammen)i (er)e(de)h(an)l(v)o(endelige.)523 1338 y(Det)h(er)h(dog)h(umiddelbart)h (sv\346rere)f(at)f(udtale)h(sig)f(om)f(hv)n(or)i(me)o(get)f(plads)h (det)f(er)g(n\370d-)382 1451 y(v)o(endigt)k(at)d(bruge)j(for)e(et)g(gi) n(v)o(ent)h(m\370nster)g(i)f(mods\346tning)h(til)g(de)f (ordbogsbaserede)33 b(algo-)382 1564 y(ritmer)-5 b(.)34 b(F)o(or)e(at)h(f\345)h(en)f(ide)h(om)f(dette)h(skal)g(man)f(\002nde)h (ud)f(af)h(hv)n(ordan)h(den)f(p\345g\346ldende)382 1677 y(gruppering)i(ser)d(ud)g(med)g(hensyn)h(til)f(hv)n(or)h(mange)f (indskudte)j(bogsta)n(v)o(er)f(der)f(optr\346der)382 1790 y(i)k(grupperingen.)k(Desuden)e(skal)g(man)e(s\345)h(vide)g(hv)n (or)h(tit)e(de)h(enk)o(elte)i(tal)d(fra)h(mo)o(v)o(e-to-)382 1903 y(front-k)o(odningen)30 b(optr\346der)l(,)d(og)f(dermed)g(hv)n(or) g(langt)h(et)e(k)o(odeord)j(de)d(bli)n(v)o(er)h(tildelt)h(under)382 2016 y(Huf)n(fman-k)o(odningen.)523 2129 y(Med)18 b(hensyn)i(til)e(k)o (ompression)j(af)d(HTML)e(s\345)i(kan)g(Burro)n(ws-Wheeler)n (-transformat)q(ion)q(en)382 2242 y(f)o(ange)33 b(de)e(m\370nstre,)h (uanset)h(st\370rrelse,)h(der)d(er)h(i)e(HTML-\002lerne.)h(Det)g (kr\346v)o(er)h(dog)g(at)f(de)382 2355 y(bli)n(v)o(er)41 b(gentaget)h(et)e(vist)h(antal)g(gange,)g(men)f(dette)h(g\346lder)g(jo) f(ogs\345)h(for)f(Lempel-Zi)n(v-)382 2467 y(algoritmerne.)30 b(Der)e(kan)g(dog)h(desuden)h(v\346re)e(et)g(problem)h(med)f(den)g (typisk)o(e)i(st\370rrelse)g(af)382 2580 y(en)21 b(HTML-\002l)f(\226)h (hvis)h(de)g(er)f(for)h(sm\345,)f(kan)h(Burro)n(ws-Wheeler)n (-transformat)q(ion)q(en)27 b(vise)c(sig)382 2693 y(at)g(v\346re)h(for) f(d\345rlig)i(i)e(forhold)j(til)d(en)h(ordbogsbaseret)k(algoritme.)1831 5652 y(42)p eop %%Page: 43 45 43 44 bop 382 1171 a FC(Kapitel)43 b(6)382 1586 y FK(Udv\346lgelse)53 b(af)f(algoritme)382 2031 y FJ(V)-5 b(i)31 b(har)i(i)g(de)f(fore)o (g\345ende)k(kapitler)f(foretaget)g(unders\370gelser)h(der)e(kan)f (bruges)h(til)f(at)g(op-)382 2144 y(stille)d(kra)n(v)g(til)f(den)g (algoritme)i(som)d(bruges)j(til)e(at)g(k)o(omprimere)h(HTML-\002lerne,) e(samt)h(at)382 2257 y(belyse)37 b(hv)n(ordan)g(eksisterende)i (algoritmer)e(fungerer)-5 b(.)37 b(Ud)d(fra)h(dette)h(kan)g(vi)f (fors\370ge)i(at)382 2369 y(sammens\346tte)27 b(en)e(\226)g(teoretisk)j (set)e(\226)f(bedre)i(l\370sning)g(end)g(blot)f(de)f(eksisterende)30 b(generelle)382 2482 y(algoritmer)-5 b(.)28 b(En)e(efterf\370lgende)k (implementering)g(og)d(test)g(vil)f(s\345)h(vise)g(om)f(vi)h(har)f (gjort)i(de)382 2595 y(rigtige)d(slutninger)-5 b(.)523 2708 y(V)g(i)17 b(indleder)j(kapitlet)g(med)e(en)g(gennemgang)i(af)e (hv)n(ad)h(man)f(kan)g(k)o(omprimere)i(i)d(HTML.)382 2821 y(Herefter)36 b(diskuterer)i(vi)d(hv)n(orvidt,)i(og)e(hv)n (orledes)j(dette)e(kan)g(implementeres.)h(V)-5 b(i)34 b(f)o(andt)382 2934 y(desuden)29 b(i)d(kapitel)j(3)e(ud)g(af)g(at)f(v)n (ores)j(algoritme)f(ikk)o(e)g(kun)g(skal)f(kunne)i(k)o(omprimere)f (sta-)382 3047 y(tisk)h(HTML,)d(men)i(ogs\345)h(dynamisk)i(HTML,)25 b(og)k(dette)g(stiller)h(nogle)g(ekstra)g(kra)n(v)f(til)f(den)382 3160 y(algoritme)33 b(vi)f(v\346lger)-5 b(.)32 b(Algoritmen)h(skal)f (v\346re)g(s\345)f(hurtig)i(at)e(den)i(i)e(v\346rste)h(tilf\346lde)g (kan)382 3273 y(k)o(omprimerere)26 b(dynamisk)o(e)f(HTML-\002ler)d(hv)o (er)i(gang)g(de)g(bli)n(v)o(er)g(hentet.)382 3565 y FB(6.1)119 b(Hv)o(ad)30 b(kan)g(k)n(omprimer)n(es)g(i)g(HTML?)382 3772 y FJ(I)37 b(HTML)d(\002ndes)k(redundans)i(og)d(en)g(forudsigelig)k (struktur)e(\226)e(be)o(gge)h(kan)g(udn)o(yttes)h(til)382 3885 y(k)o(ompression.)26 b(F)-7 b(.eks.)23 b(skri)n(v)o(es)h(HTML)d (mindst)j(to)g(gange)g(i)f(en)g(HTML-\002l,)e(i)i(det)h(f\370rste)h (tag)382 3998 y(og)31 b(i)f(det)h(sidste.)h(Derudo)o(v)o(er)g(\002ndes) f(der)g(ting)h(der)f(kan)g(forudsiges)j(v)o(ed)d(brug)h(af)e(mindre)382 4111 y(information.)c(Et)c(eksempel)j(p\345)f(dette)g(er)f(`<')h(og)g (`>',)f(der)h(er)f(o)o(v)o(er\003\370dige)i(hvis)f(man)f(v)o(ed)h(at) 382 4224 y(man)29 b(har)g(at)f(g\370re)i(med)f(et)f(tag)h(\226)g(dette) h(kunne)g(g\370res)g(v)o(ed)f(at)g(indf\370re)h(et)f(\003ag)f(foran)i (hv)o(ert)382 4337 y(skift.)25 b(Desuden)g(\002ndes)g(der)f(tags)h(som) f(kun)h(er)f(gyldige)i(hvis)f(de)f(st\345r)h(indenfor)h(andre)g(tags.) 382 4450 y(Et)c(eksempel)k(p\345)d(dette)i(er)e(\204\223)i(som)e (kun)h(kan)g(st\345)g(inden)g(for)g(\204\223.)523 4563 y(Der)c(er)h(derfor)h(\003ere)e(m\370nstre)i(man)f(b\370r)g(kunne) h(udn)o(ytte)g(i)e(HTML)f(til)h(at)h(frembringe)i(en)382 4676 y(bedre)j(k)o(ompression.)h(Dette)e(kunne)h(til)e(dels)h(v\346re)g (v)o(ed)g(at)f(forarbejde)j(HTML-\002len)d(inden)382 4789 y(k)o(ompression)33 b(eller)f(v)o(ed)e(at)h(la)n(v)o(e)g(en)g(n)o (y)f(k)o(ompressionsalgoritme,)36 b(som)30 b(er)h(optimeret)h(til)382 4901 y(m\370nstre)25 b(i)e(HTML)e(\002ler)-5 b(.)523 5014 y(V)g(i)24 b(har)h(p\345)g(den)h(baggrund)h(v)n(algt)f(at)f (belyse)i(tre)e(metoder)h(som)f(umiddelbart)i(kan)f(v\346re)382 5127 y(oplagte)f(til)f(k)o(ompression)i(af)e(HTML:)518 5340 y Fs(\017)46 b FJ(Dynamisk)25 b(ordbogsskift)1831 5652 y(43)p eop %%Page: 44 46 44 45 bop 1237 228 a FI(Kapitel)25 b(6:)e(Udv\346lgelse)i(af)f (algoritme)p 382 266 2989 4 v 518 548 a Fs(\017)46 b FJ(\306ndring)25 b(af)e(alf)o(abetet)j(s\345)e(det)g(indeholder)i(tags) 518 736 y Fs(\017)46 b FJ(Opdeling)25 b(af)f(\002lerne)g(s\345)f(at)g (tags)i(og)e(tekst)i(k)o(omprimeres)g(hv)o(er)f(for)g(sig)523 948 y(V)-5 b(i)28 b(vil)i(i)g(det)g(f\370lgende)i(uddybe)f(de)f(tre)g (o)o(v)o(enst\345ende)j(metoder)e(og)e(designe)j(en)e(algo-)382 1061 y(ritme)24 b(til)f(k)o(omprimering)j(af)d(HTML-\002ler)-5 b(.)382 1354 y FB(6.2)119 b(Dynamisk)30 b(ordbog)382 1561 y FJ(En)e(m\345de)i(at)f(udn)o(ytte)i(forek)o(omster)g(af)f(ord)f (og)h(bogsta)n(v)o(er)h(p\345)f(er)f(v)o(ed)g(at)g(ben)o(ytte)i(en)e (ord-)382 1674 y(bogsbaseret)j(algoritme)d(hv)n(or)h(man)e(dog)h (skifter)g(ordbog)h(dynamisk.)g(V)-5 b(i)27 b(forestiller)k(os)d(at)382 1786 y(man)23 b(de\002nerer)i(en)e(r\346kk)o(e)h(n\370gleord)h(som)e (for\345rsager)j(et)d(ordbogsskift)k(hv)o(er)d(gang)g(de)f(m\370-)382 1899 y(des.)h(Dette)h(kunne)h(v\346re)e(ord)h(som)f(\204table\223,)i (\204font\223)g(og)e(\204script\223,)i(hv)n(or)g(de)e(parametre)i(som) 382 2012 y(optr\346der)33 b(i)e(tag'et)h(har)g(forsk)o(ellige)j (sandsynligheder)-5 b(.)36 b(Eksempelvis)e(er)d(der)h(me)o(get)f(lille) 382 2125 y(sandsynlighed)d(for)c(at)g(\002nde)g(ordet)h(\204size\223)g (i)f(forbindelse)j(med)d(n\370gleordet)i(\204table\223,)g(mens)382 2238 y(det)e(derimod)g(er)g(me)o(get)f(sandsynligt)k(at)d(m\370de)f(i)g (forbindelse)k(med)c(n\370gleordet)k(\204font\223.)382 2487 y Fw(6.2.1)99 b(Fr)n(emgangsm\345de)382 2662 y FJ(Algoritmen)24 b(virk)o(er)g(v)o(ed)f(at)g(man)f(starter)i(med)f(at)f(bruge)i(en)f (prim\346r)g(ordbog)h(som)f(k)o(ommer)382 2774 y(til)j(at)g(indeholde)j (de)d(te)o(gn)g(og)g(ord)h(der)f(ikk)o(e)h(k)o(ommer)f(efter)h(et)f (n\370gleord.)i(N\345r)e(algoritmen)382 2887 y(m\370der)33 b(et)f(n\370gleord)j(\226)e(f.eks.)f(\204table\223)j(\226)d(skifter)i (den)f(til)g(en)f(\204table\223-ordbog)38 b(som)32 b(inde-)382 3000 y(holder)26 b(de)f(ord)g(den)h(m\370der)f(i)g(forbindelse)j(med)c (n\370gleordet.)k(N\345r)c(algoritmen)j(m\370der)f(\204>\223)382 3113 y(\(tag-slut\))36 b(skifter)f(den)g(tilbage)g(til)f(den)g (prim\346re)g(ordbog.)i(Ordbogen)f(arbejder)h(s\345ledes)382 3226 y(med)23 b(hele)h(ord,)g(s\345ledes)h(at)f(ordet)g(\204size\223)h (vil)f(indg\345)g(i)f(\204font\223-ordbogen.)523 3339 y(F)o(ordelen)k(v)o(ed)e(dette)i(ville)f(v\346re)f(at)h(de)f(parametre) i(som)f(ofte)g(bruges)h(i)e(et)g(bestemt)i(tag)382 3452 y(vil)c(f\345)g(la)n(v)o(ere)h(indeksnumre,)h(end)e(hvis)h(de)f(l\345)g (i)f(en)h(stor)g(ordbog.)h(Man)f(kunne)h(forestille)i(sig)382 3565 y(at)31 b(en)g(ordbog)i(for)f(n\370gleordet)i(\204table\223)f (ville)f(indeholde)i(ord)e(som)f(\204border\223,)i(\204bgcolor\223)382 3678 y(og)26 b(\204cellpadding\223)j(der)d(med)f(stor)h(sandsynlighed)k (vil)c(indg\345)h(i)e(det)g(p\345g\346ldende)j(tag.)e(Der)n(-)382 3791 y(v)o(ed)h(vil)f(der)h(i)f(de)g(k)o(omprimerede)j(data)f(indg\345) f(et)g(st\370rre)g(antal)h(la)n(v)o(e)f(indeksnumre)i(hvilk)o(et)382 3904 y(medf\370rer)24 b(en)e(sk\346v)o(ere)h(sandsynlighedsfo)q(rde)q (lin)q(g)28 b(der)23 b(kan)f(k)o(omprimeres)j(mere)d(ef)n(fekti)n(vt) 382 4016 y(med)h(f.eks.)h(Huf)n(fman-k)o(odning.)523 4129 y(Endvidere)32 b(kan)f(en)f(r\346kk)o(e)h(af)f(de)h(dynamisk)o(e)h (ordb\370ger)h(v\346re)d(indbygget)j(i)d(algorit-)382 4242 y(men.)17 b(V)-10 b(ed)18 b(at)g(gennemg\345)i(et)e(stort)h(antal) g(hjemmesider)h(og)e(at)g(gennemg\345)i(HTML-standarden)382 4355 y(kan)28 b(ordb\370gernes)k(grundl\346ggende)g(indhold)e (bestemmes.)f(Derv)o(ed)f(sparer)i(man)e(at)f(o)o(v)o(er)n(-)382 4468 y(f\370re)d(en)g(vis)f(m\346ngde)h(tekst)h(for)e(hv)o(er)h (HTML-\002l)e(der)h(o)o(v)o(erf\370res.)523 4581 y(Der)i(er)h(dog)g(et) f(problem)i(i)f(forbindelse)i(med)e(store)g(og)g(sm\345)g(bogsta)n(v)o (er)-5 b(.)27 b(Hvis)f(algorit-)382 4694 y(men)i(skal)h(k)o(ende)h (alle)f(standard-tags)k(og)28 b(deres)i(parametre)g(bli)n(v)o(er)f(det) g(i)f(sig)h(selv)g(en)f(stor)382 4807 y(m\346ngde)k(data,)g(men)g(hvis) g(der)h(derudo)o(v)o(er)h(f.eks.)e(skal)g(tages)h(h\370jde)g(for)f(at)g (ordet)h(\204size\223)382 4920 y(kan)c(optr\346de)g(i)f(alle)h(mulige)g (k)o(ombinationer)j(af)c(store)h(og)g(sm\345)f(bogsta)n(v)o(er)l(,)i (f.eks.)f(\204size\223,)382 5033 y(\204Size\223,)24 b(\204sIze\223)g (osv)-6 b(.,)24 b(bli)n(v)o(er)g(ordb\370gerne)j(for)d(store.)523 5146 y(Hvis)h(denne)i(algoritme)g(skal)e(bruges,)i(er)e(det)h(alts\345) g(n\370dv)o(endigt)i(at)d(opgi)n(v)o(e)h(kra)n(v)o(et)h(om)382 5258 y(en)37 b(totalt)h(tabsfri)g(algoritme)g(fordi)g(man)f(ville)g (v\346re)g(n\370dt)h(til)f(at)f(v\346lge)h(\351n)g(bestemt)h(af)382 5371 y(k)o(ombinationerne.)28 b(T)m(il)23 b(sidernes)j(prim\346re)e (form\345l,)g(at)f(bli)n(v)o(e)h(fremvist)h(i)f(en)f(bro)n(wser)l(,)i (ville)1831 5652 y(44)p eop %%Page: 45 47 45 46 bop 1237 228 a FI(Kapitel)25 b(6:)e(Udv\346lgelse)i(af)f (algoritme)p 382 266 2989 4 v 382 548 a FJ(der)30 b(dog)h(ikk)o(e)f(sk) o(e)h(nogen)g(\346ndring)g(fordi)g(HTML)c(ikk)o(e)k(g\370r)f(forsk)o (el)i(p\345)e(store)h(eller)f(sm\345)382 661 y(bogsta)n(v)o(er)-5 b(.)523 774 y(Dette)29 b(stiller)g(dog)g(nogle)h(st\370rre)g(kra)n(v)f (til)f(selv)o(e)i(implementeringen,)h(fordi)f(man)e(ikk)o(e)382 887 y(kan)c(tillade)i(at)e(noget)h(af)f(den)g(almindelige)j(tekst)e (bli)n(v)o(er)f(opf)o(attet)i(som)e(HTML)e(og)i(dermed)382 1000 y(bli)n(v)o(er)33 b(\346ndret.)h(Hvis)e(der)h(f.eks.)g(ble)n(v)h (\346ndret)f(i)f(Ja)n(v)n(ascript,)k(kunne)e(resultatet)h(v\346re)e(f)o (a-)382 1112 y(talt.)28 b(Derfor)h(skal)g(algoritmen)i(kunne)e(tage)g (h\370jde)h(for)f(alle)f(de)h(fejlkilder)i(der)d(kan)h(v\346re)f(i)382 1225 y(forbindelse)f(start)d(og)g(slut)g(af)f(HTML-tags.)382 1475 y Fw(6.2.2)99 b(K)n(onklusion)382 1649 y FJ(De)31 b(o)o(v)o(enst\345ende)j(o)o(v)o(erv)o(ejelser)g(viser)e(at)g(vi)f(v)o (ed)h(at)f(udn)o(ytte)i(den)f(viden)h(man)e(i)g(forv)o(ejen)382 1762 y(har)21 b(om)g(HTML-formatet)g(efter)h(alt)g(at)f(d\370mme,)g (kan)g(opn\345)h(en)g(bedre)g(k)o(ompression)i(end)e(de)382 1875 y(generelle)f(metoder)-5 b(.)21 b(Men)e(samtidig)h(kan)g(vi)f(k)o (onkludere)j(at)e(der)f(en)g(lang)h(r\346kk)o(e)g(situationer)382 1988 y(der)j(b\370r)h(o)o(v)o(erv)o(ejes)g(inden)g(en)g(e)o(gentlig)g (standard)i(kan)d(de\002neres)i(og)e(implementeres.)i(Dels)382 2101 y(kr\346v)o(er)34 b(den)g(en)f(grundig)j(unders\370gelse)h(af)d (HTML-standarden)h(og)f(af)f(hvilk)o(e)i(tags)g(der)382 2213 y(bruges)30 b(oftest,)g(men)f(der)g(skal)g(ogs\345)h(g\370res)g (nogle)g(o)o(v)o(erv)o(ejelser)h(med)e(hensyn)h(til)f(at)g(sikre)382 2326 y(at)k(metoden)i(er)f(rob)n(ust)h(nok)f(til)g(f.eks.)g(ikk)o(e)g (at)g(gi)n(v)o(e)g(problemer)h(hvis)g(der)f(er)f(sm\345)g(fejl)h(i)382 2439 y(HTML-\002lerne.)29 b(Endelig)j(kunne)f(man)f(o)o(v)o(erv)o(eje)i (at)e(bruge)h(forsk)o(ellige)j(algoritmer)e(til)e(at)382 2552 y(k)o(omprimere)25 b(de)f(forsk)o(ellige)i(dele.)523 2665 y(Alt)h(i)g(alt)h(vil)g(det)g(bli)n(v)o(e)g(for)g(omf)o(attende)i (at)e(implementere)i(o)o(v)o(enst\345ende)g(i)e(dette)g(pro-)382 2778 y(jekt,)j(idet)g(vi)f(ikk)o(e)i(har)f(den)g(forn\370dne)h(tid)f (til)g(at)f(la)n(v)o(e)h(benarbejdet)j(inden)e(den)f(e)o(gentlige)382 2891 y(implementering.)k(Derudo)o(v)o(er)f(kunne)g(man)f(forestille)i (sig)e(at)f(man)h(v)o(ed)g(simplere)h(meto-)382 3004 y(der)27 b(kunne)h(opn\345)g(n\346sten)f(liges\345)h(god)f(k)o (ompression,)j(s\345)d(vi)f(har)h(ikk)o(e)h(arbejdet)g(mere)f(med)382 3117 y(denne)e(algoritme.)382 3409 y FB(6.3)119 b(\306ndring)31 b(af)e(alfabetet)382 3616 y FJ(En)19 b(anden)j(metode)f(til)g(at)f(udn) o(ytte)i(den)f(viden)g(vi)f(i)g(forv)o(ejen)i(har)f(om)f(HTML,)e(er)i (v)o(ed)g(at)g(la)n(v)o(e)382 3729 y(en)i(v)n(ariant)h(af)f(Huf)n (fman-k)o(odning.)k(V)-10 b(arianten)23 b(skal)g(udo)o(v)o(er)g(at)f (analysere)j(hyppigheden)g(af)382 3842 y(enk)o(elte)e(bogsta)n(v)o(er)g (ogs\345)f(analysere)h(hyppigheden)h(af)d(an)l(v)o(endte)i(HTML-tags,)e (dvs.)g(at)f(den)382 3955 y(skal)k(medtage)h(en)e(forudde\002neret)k (m\346ngde)d(m\370nstre)h(i)e(alf)o(abetet.)523 4068 y(Man)d(kunne)i(p\345)e(den)h(m\345de)f(forestille)j(sig)d(at)g (m\370nstret)i(\204table\223)g(indg\345r)f(lige)g(s\345)f(hyppigt)382 4181 y(som)26 b(bogsta)n(v)o(et)j(\204q\223,)e(og)g(at)f(man)h(dermed)g (kunne)h(opn\345)g(en)e(me)o(get)h(ef)n(fekti)n(v)h(k)o(ompression)382 4294 y(af)23 b(sider)i(der)f(bruger)h(de)e(samme)g(HTML-tags)g(me)o (get,)h(hv)n(ad)g(de)f(\003este)h(jo)f(g\370r)-5 b(.)523 4407 y(Problemet)34 b(med)f(denne)i(id\351)f(er)f(at)g(det)h(er)f (tvilvsomt)i(hv)n(or)f(ef)n(fekti)n(v)h(den)f(vil)f(v\346re)g(i)382 4520 y(forhold)d(til)e(f.eks.)h(LZ77)e(og)i(derefter)h(Huf)n(fman.)e (LZ77)g(opdager)i(jo)e(m\370nstre)i(og)e(p\345)g(den)382 4633 y(m\345de)e(vil)f(et)h(ord)g(der)g(optr\346der)g(\003ere)g(gange)g (bli)n(v)o(e)g(k)o(omprimeret)i(betydeligt.)g(Derudo)o(v)o(er)382 4745 y(opf)o(anger)22 b(LZ77)c(ogs\345)i(l\346ngere)h(m\370nstre)f(end) g(blot)g(enk)o(elte)h(ord.)f(V)-12 b(ores)20 b(forslag)h(ville)f (f.eks.)382 4858 y(k)o(omprimere)31 b(\204size\223)h(godt,)e(men)g (hvis)g(\204size=2)i(f)o(ace=V)-10 b(erdana\223)33 b(optr\346der)e (mere)f(end)g(\351n)382 4971 y(gang)g(vil)g(LZ77)g(k)o(omprimere)h (hele)g(dette)g(stykk)o(e.)g(P\345)e(den)h(m\345de)g(vil)h(den)f (ogs\345)h(k)o(ompri-)382 5084 y(merere)23 b(m\370nstre)g(der)g (opst\345r)h(i)e(forbindelse)j(med)d(ofte)h(brugte)h(almindelige)h (ord.)d(V)-5 b(i)21 b(har)i(p\345)382 5197 y(den)h(baggrund)i(v)n(algt) e(ikk)o(e)h(at)e(arbejde)i(mere)f(med)f(denne)i(algoritme.)1831 5652 y(45)p eop %%Page: 46 48 46 47 bop 1237 228 a FI(Kapitel)25 b(6:)e(Udv\346lgelse)i(af)f (algoritme)p 382 266 2989 4 v 382 548 a FB(6.4)119 b(Opdeling)32 b(af)d(\002ler)n(ne)382 755 y FJ(V)-10 b(ed)22 b(at)h(dele)g (HTML-\002len)e(op)i(i)f(to)h(dele,)g(hv)n(or)h(den)f(ene)g(del)g (best\345r)h(af)e(HTML-k)o(oderne)i(og)382 868 y(den)j(anden)i(af)d (tekst,)i(kan)f(vi)g(udn)o(ytte)i(v)n(ores)f(viden)g(om)f(k)o (omprimeringsalgoritmer)32 b(til)27 b(at)382 981 y(bruge)e(de)e(mest)h (optimale)h(algoritmer)g(p\345)f(hv)o(er)f(del.)523 1094 y(V)-5 b(i)39 b(kan)j(bruge)f(LZ77)f(p\345)h(HTML-delen,)f(da)h(denne)h (er)f(hurtig)h(og)f(vil)g(f)o(ange)g(alle)382 1207 y(m\370nstre,)33 b(forudsat)h(at)d(vi)h(lader)h(s\370gedelen)i(v\346re)d(p\345)f (st\370rrelse)k(med)c(\002len.)h(Dermed)g(har)382 1319 y(vi)k(reduceret)j(redundansen)h(i)35 b(HTML-\002len.)g(Men)h (Lempel-Zi)n(v)h(77)f(kan)h(ikk)o(e)g(k)o(ompri-)382 1432 y(mere)22 b(almindeligt)i(tekst)e(n\346r)g(s\345)g(godt)g(som)g (en)f(algoritme)j(der)e(bruger)h(Burro)n(ws-Wheeler)n(-)382 1545 y(transformationen)33 b(\(dette)c(h\346nger)h(sammen)e(med)h(at)f (almindelig)j(tekst)e(har)g(\003ere)f(afh\346n-)382 1658 y(gigheder)e(te)o(gnene)f(indbyrdes)h(end)e(direkte)h(m\370nstre\).)523 1771 y(Man)d(kunne)h(bruge)h(Burro)n(ws-Wheeler)n(-transformati)q(on)q (en)k(p\345)22 b(hele)h(\002len)f(da)g(den)g(f)o(an-)382 1884 y(ger)32 b(de)f(samme)g(m\370nstre)i(som)e(LZ77,)g(dog)h(e)n(v)o (entuelt)h(undtaget)h(det)d(sidste)i(`>')f(idet)g(der)382 1997 y(kan)h(opst\345)h(forsk)o(ellige)i(k)o(ontekster)g(til)d (h\370jre)h(for)f(dette)h(te)o(gn)f(fordi)h(et)e(tag)i(kan)f (efterf\370l-)382 2110 y(ges)f(af)g(tekst)i(eller)e(et)g(andet)i(tag.)e (Men)g(en)g(algoritme)i(der)e(ben)o(ytter)i(Burro)n(ws-Wheeler)n(-)382 2223 y(transformationen)28 b(er)23 b(noget)i(langsommere)h(end)e(LZ77,) f(og)h(af)f(denne)i(grund)g(er)f(det)g(\370nsk-)382 2336 y(v\346rdigt)g(at)g(be)o(gr\346nse)h(brugen)g(til)e(der)h(hv)n(or)h (det)e(g\370r)h(mest)g(ga)n(vn.)523 2449 y(Da)17 b FA(bzip2)g FJ(k)o(omprimerer)j(vha.)f(Burro)n(ws-Wheeler)n(-transformatio)q(ne)q (n)24 b(og)18 b FA(gzip)f FJ(vha.)382 2562 y(af)23 b(LZ77,)g(beh\370)o (v)o(er)h(vi)g(ikk)o(e)g(at)f(implementere)j(disse)e(algoritmer)i(og)d (kan)h(n\370jes)h(med)e(selv)o(e)382 2674 y(opdelingen)k(og)c (sammens\346tningen)k(af)c(\002lerne.)382 2967 y FB(6.5)119 b(V)-12 b(or)n(es)29 b(algoritme)382 3174 y FJ(V)-12 b(ores)25 b(algoritme)i(skal)e(alts\345)h(dele)g(HTML-\002ler)d(op.)i (Derv)o(ed)g(forv)o(enter)i(vi)e(at)g(kunne)h(opn\345)382 3287 y(bedre)35 b(k)o(ompression)h(end)f(ren)f(brug)g(af)g FA(gzip)e FJ(da)i(vi)f(bruger)j FA(bzip2)c FJ(p\345)h(tekstdelen,)k(og) 382 3400 y FA(gzip)22 b FJ(p\345)h(HTML-tags,)g(da)h(den)g(er)f (hurtigere)j(og)e(bedre)g(til)g(at)f(f)o(ange)i(m\370nstre)f(i)f (\002len.)523 3513 y(V)-12 b(ores)24 b(algoritme)h(vil)f(producere)i(3) d(dele:)496 3725 y(1.)45 b(En)23 b(sekv)o(ens)i(med)e(HTML-tags)496 3913 y(2.)45 b(En)23 b(sekv)o(ens)i(med)e(tekst)496 4101 y(3.)45 b(Information)26 b(til)e(samling)g(af)g(de)f(to)h(dele)523 4313 y(Informationen)29 b(til)c(samling)h(af)f(de)h(to)f(dele)h(er)f (n\370dv)o(endig)j(at)d(ha)n(v)o(e)h(for)f(at)g(kunne)i(gen-)382 4426 y(danne)k(dataene.)g(Da)e(der)h(kun)h(er)e(to)h(dele,)g(kan)h(vi)e (n\370jes)i(med)f(en)f(r\346kk)o(e)i(tal)f(der)g(angi)n(v)o(er)382 4539 y(skifte)n(vist)d(hv)n(or)g(stor)e(den)h(n\346ste)g(del)f(af)g (tekst)i(eller)f(HTML)c(er)-5 b(.)25 b(Hvis)g(der)h(st\345r)g(to)f (tags)h(v)o(ed)382 4652 y(siden)35 b(af)e(hinanden,)j(kan)e(tekstdelen) i(i)d(mellem)g(blot)i(angi)n(v)o(es)f(til)g(at)f(ha)n(v)o(e)h (st\370rrelsen)j(0.)382 4765 y(P\345)c(denne)h(m\345de)g(kan)g(vi)g (desuden)h(undlade)h(at)d(gemme)h(de)f(omgi)n(v)o(ende)i(`<')f(og)g (`>'.)f(Et)382 4878 y(eksempel)d(hv)n(or)g(vi)e(v)o(ed)h(at)f(vi)h (starter)h(med)e(et)g(HTML-tag)g(kan)h(ses)g(i)f(tabel)i(6.1)e(p\345)h (n\346ste)382 4991 y(side.)523 5103 y(Da)h(taldelen)j(best\345r)f(af)f (tal)g(med)g(samme)f(st\370rrelse,)j(er)e(det)g(n\346rliggende)i(at)e (fors\370ge)382 5216 y(at)e(k)o(omprimere)i(den)e(v)o(ed)h(hj\346lp)f (af)g(Huf)n(fman-k)o(odning)k(\226)28 b(de)i(mange)f(sm\345)g(tags)h(i) e(\002lerne)382 5329 y(b)n(urde)d(i)e(hv)o(ert)h(f)o(ald)g(gi)n(v)o(e)g (en)f(sk\346v)h(fordeling.)1831 5652 y(46)p eop %%Page: 47 49 47 48 bop 1237 228 a FI(Kapitel)25 b(6:)e(Udv\346lgelse)i(af)f (algoritme)p 382 266 2989 4 v 1876 5403 a gsave currentpoint currentpoint translate 90 neg rotate neg exch neg exch translate 1876 5403 a 1876 4565 5054 8 v 1926 4660 a FF(T)-6 b(ekstdel)558 b(HTML-del)688 b(Samlingsdel)393 b(L\346st)22 b(tekst)p 1876 4711 5054 5 v 4624 4806 a(

T)-6 b(est)17 b(af)j(en)g(HTML-side

)2765 4905 y(HTML)818 b(4)763 b(

T)-6 b(est)18 b(af)i(en)g (HTML-side

)2765 5005 y(HTML)818 b(4,0)700 b(

T)-6 b(est)18 b(af)i(en)g(HTML-side

)2765 5105 y(HTMLbody)650 b(4,0,4)637 b(

T)-6 b(est)20 b(af)h(en)f (HTML-side

)2765 5204 y(HTMLbody)650 b(4,0,4,0)574 b(

T)-6 b(est)20 b(af)h(en)f (HTML-side

)2765 5304 y(HTMLbodyp)608 b(4,0,4,0,1)511 b(T)-6 b(est)21 b(af)f(en)h (HTML-side

)1926 5403 y(T)-6 b(est)21 b(af)f(en)g(HTML-side)99 b(HTMLbodyp)608 b(4,0,4,0,1,20)406 b(

)1926 5503 y(T)-6 b(est)21 b(af)f(en)g(HTML-side)99 b(HTMLbodyp/p)543 b(4,0,4,0,1,20,2)343 b()1926 5603 y(T)-6 b(est)21 b(af)f(en)g(HTML-side)99 b(HTMLbodyp/p)543 b(4,0,4,0,1,20,2,0)280 b()1926 5702 y(T)-6 b(est)21 b(af)f(en)g(HTML-side)99 b(HTMLbodyp/p/body)352 b(4,0,4,0,1,20,2,0,5)217 b()1926 5802 y(T)-6 b(est)21 b(af)f(en)g(HTML-side)99 b(HTMLbodyp/p/body)352 b(4,0,4,0,1,20,2,0,5)o (,0)155 b()1926 5902 y(T)-6 b(est)21 b(af)f(en)g(HTML-side)99 b(HTMLbodyp/p/body/HTML)93 b(4,0,4,0,1,20,2,0,5)o(,0)o(,5)p 1876 5954 5054 8 v 3205 6184 a FD(T)-8 b(abel)24 b(6.1:)31 b(Et)22 b(eksempel)j(p\345)f(vor)m(es)g(algoritmes)i(\370nsk)o(ede)f (virk)o(em\345de)1876 5403 y currentpoint grestore moveto 1876 5403 a 1831 5652 a FJ(47)p eop %%Page: 48 50 48 49 bop 382 1171 a FC(Kapitel)43 b(7)382 1586 y FK(Implementering)382 2031 y FJ(Implementationen)29 b(af)d(algoritmen)h(skal)f(kunne)h (opdele)g(en)f(HTML-\002l)d(s\345ledes)28 b(at)d(vi)g(kan)382 2144 y(efterpr\370)o(v)o(e)36 b(om)d(det)h(kan)g(betale)h(sig)f(at)f(k) o(omprimere)i(tekst)g(for)f(sig)g(og)g(HTML)d(for)j(sig.)382 2257 y(Derudo)o(v)o(er)25 b(skal)f(den)g(gi)n(v)o(e)f(en)h(talliste)h (til)f(gendannelse)j(af)c(HTML-\002len.)523 2369 y(T)m(il)c(selv)o(e)i (programk)o(oden)i(er)d(brugt)h(SML)d(fordi)j(gruppen)h(sidel\370bende) i(med)c(projektet)382 2482 y(har)29 b(modtaget)i(undervisning)i(i)28 b(dette)i(sprog)h(s\345)e(udgangspunktet)k(er)c(f\346lles.)g(F)o(or)f (at)h(f\345)g(et)382 2595 y(o)o(v)o(erblik)24 b(o)o(v)o(er)f(v)n(ores)h (programk)o(ode)h(starter)f(vi)f(v)o(ed)g(med)f(at)h(gennemg\345)h(de)f (enk)o(elte)i(SML-)382 2708 y(funktioner)-5 b(.)382 3001 y FB(7.1)119 b(Gennemgang)30 b(af)g(algoritme)f(i)h(pseudok)n(ode)382 3208 y FJ(Programmet)e(bygger)i(p\345)e(to)g(funktioner)j(\226)c(en)h (til)g(at)g(opdele)i(en)e(streng)h(indeholdende)j(en)382 3321 y(webside)24 b(til)e(almindelig)j(tekst,)e(HTML)d(og)j(en)g(liste) g(med)f(sekv)o(ensl\346ngderne,)27 b(og)c(en)f(til)h(at)382 3434 y(samle)h(de)f(tre)h(elementer)h(til)f(en)f(streng)i(igen.)523 3547 y(De)20 b(to)h(funktioner)i(arbejder)g(p\345)e(lister)g(af)g(enk)o (elte)h(bogsta)n(v)o(er)-5 b(.)23 b(Man)e(kunne)h(godt)f(imple-)382 3659 y(mentere)h(funktionerne)i(s\345ledes)f(at)d(de)h(arbejdede)i (direkte)g(p\345)e(strenge,)h(men)e(dette)i(er)f(enten)382 3772 y(noget)28 b(besv\346rligt)h(i)d(SML)f(eller)i(ogs\345)h(s\345)f (langsomt)h(at)f(en)f(k)o(on)l(v)o(ertering)31 b(fra)c(en)g(streng)h (til)382 3885 y(en)23 b(liste)i(af)e(bogsta)n(v)o(er)j(fore)o(g\345r)f (me)o(get)e(hurtigere.)523 3998 y(Funktionerne)k(ser)c(s\345ledes)j (ud:)384 4324 y(I)t FH(N)t(I)t(T)t(I)t(A)t(L)t(I)t(S)t(E)5 b(R)t(I)g(N)t(G)t FJ(:)586 4437 y(s\346t)23 b(en)h(lokal)h(v)n(ariabel) g FD(ErT)-8 b(ekst)25 b Fr(=)d FJ(sand)586 4549 y(s\346t)h(en)h(lokal)h (v)n(ariabel)g FD(AntalBo)o(gstaver)j Fr(=)d(0)384 4662 y FJ(O)t FH(P)t(S)t(P)t(L)t(I)t(T)t(N)t(I)t(N)t(G)t FJ(\()5 b(D)q FH(A)l(T)n(A)t FJ(\))g(:)586 4775 y(hvis)25 b(n\346ste)f(te)o(gn) f(er)h(`<')f(og)h FD(ErT)-8 b(ekst)25 b Fr(=)d FJ(sand)768 4888 y(s\346t)h FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(f)o(alsk)768 5001 y(tilf\370j)i FD(AntalBo)o(gstaver)j FJ(til)c FD(T)-8 b(alliste)768 5114 y FJ(s\346t)23 b FD(AntalBo)o(gstaver)29 b Fr(=)c(0)768 5227 y FJ(kald)i(O)t FH(P)t(S)t(P)t(L)t(I)t(T)t(N)t(I)t (N)t(G)t FJ(\()5 b FH(M)t(E)g(D)32 b(T)t(E)t(G)t(N)t(E)t(T)f(F)t(J)t(E) t(R)t(N)t(E)t(T)g(F)t(R)t(A)d FJ(D)q FH(A)l(T)m(A)t FJ(\))586 5340 y(ellers)d(hvis)f(n\346ste)g(te)o(gn)g(er)f(`>')h(og)g FD(ErT)-8 b(ekst)24 b Fr(=)f FJ(f)o(alsk)1831 5652 y(48)p eop %%Page: 49 51 49 50 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 768 548 a FJ(s\346t)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(sand)768 661 y(tilf\370j)i FD(AntalBo)o(gstaver)j FJ(til)c FD(T)-8 b(alliste)768 774 y FJ(s\346t)23 b FD(AntalBo)o (gstaver)29 b Fr(=)c(0)768 887 y FJ(kald)i(O)t FH(P)t(S)t(P)t(L)t(I)t (T)t(N)t(I)t(N)t(G)t FJ(\()5 b FH(M)t(E)g(D)32 b(T)t(E)t(G)t(N)t(E)t(T) f(F)t(J)t(E)t(R)t(N)t(E)t(T)g(F)t(R)t(A)d FJ(D)q FH(A)l(T)m(A)t FJ(\))586 1000 y(ellers)d(hvis)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(sand)768 1112 y(tilf\370j)i(n\346ste)f(te)o(gn)g(til)f FD(T)-8 b(ekstliste)768 1225 y FJ(for\370g)25 b FD(AntalBo)o(gstaver)j FJ(med)c(1)768 1338 y(kald)j(O)t FH(P)t(S)t(P)t(L)t(I)t(T)t(N)t(I)t(N)t (G)t FJ(\()5 b FH(M)t(E)g(D)32 b(T)t(E)t(G)t(N)t(E)t(T)f(F)t(J)t(E)t(R) t(N)t(E)t(T)g(F)t(R)t(A)d FJ(D)q FH(A)l(T)m(A)t FJ(\))586 1451 y(ellers)768 1564 y(tilf\370j)d(n\346ste)f(te)o(gn)g(til)f FD(HTML-liste)768 1677 y FJ(for\370g)i FD(AntalBo)o(gstaver)j FJ(med)c(1)768 1790 y(kald)j(O)t FH(P)t(S)t(P)t(L)t(I)t(T)t(N)t(I)t(N)t (G)t FJ(\()5 b FH(M)t(E)g(D)32 b(T)t(E)t(G)t(N)t(E)t(T)f(F)t(J)t(E)t(R) t(N)t(E)t(T)g(F)t(R)t(A)d FJ(D)q FH(A)l(T)m(A)t FJ(\))586 1903 y(n\345r)c(vi)g(er)f(l\370bet)i(t\370r)e(for)h FD(Data)768 2016 y FJ(returner)i FD(HTML-liste)p FJ(,)c FD(T)-8 b(ekstliste)25 b FJ(og)f FD(T)-8 b(alliste)384 2242 y FJ(I)t FH(N)t(I)t(T)t(I)t(A)t(L) t(I)t(S)t(E)5 b(R)t(I)g(N)t(G)t FJ(:)586 2355 y(\002nd)24 b(antallet)h(af)e(elementer)j(i)d FD(T)-8 b(alliste)586 2467 y FJ(hvis)25 b(det)f(er)f(et)g(lige)h(antal)768 2580 y(s\346t)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(f)o(alsk)586 2693 y(ellers)768 2806 y(s\346t)g FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(sand)384 2919 y(S)t FH(A)t(M)t(L)t(I)t(N)t(G)t FJ(\()t(H)t(T)t(M)t(L)t(-)t FH(L)t(I)t(S)5 b(T)g(E)g FJ(,)33 b(T)t FH(E)t(K)t(S)t(T)t(L)t(I)t(S)t(T)t(E)5 b FJ(,)33 b(T)l FH(A)t(L)t FJ(:)t(:)t(T)l FH(A)t(L)t(L)t(I)t(S)5 b(T)g(E)g FJ(\))g(:)586 3032 y(hvis)25 b FD(ErT)-8 b(ekst)25 b Fr(=)d FJ(sand)i(og)g FD(T)-8 b(al)23 b Fr(=)i(0)768 3145 y FJ(s\346t)e FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(f)o(alsk)768 3258 y(tilf\370j)i(et)e(`>')h(til)f FD(Output)768 3371 y FJ(kald)k(S)t FH(A)t(M)t(L)t(I)t(N)t(G)t FJ(\()t(H)t(T)t(M)t(L)t(-)t FH(L)t(I)t(S)5 b(T)g(E)t FJ(,)33 b(T)t FH(E)t(K)t(S)t(T)t(L)t(I)t(S)t (T)5 b(E)g FJ(,)32 b(T)l FH(A)t(L)t(L)t(I)t(S)t(T)t(E)t FJ(\))586 3484 y(ellers)25 b(hvis)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(sand)768 3597 y(tilf\370j)i(det)f(nuv\346rende)h(te)o(gn)f (fra)g FD(T)-8 b(ekstliste)25 b FJ(til)e FD(Output)768 3709 y FJ(kald)k(S)t FH(A)t(M)t(L)t(I)t(N)t(G)t FJ(\()t(H)t(T)t(M)t(L)t (-)t FH(L)t(I)t(S)5 b(T)g(E)t FJ(,)33 b(T)t FH(E)t(K)t(S)t(T)t(L)t(I)t (S)t(T)5 b(E)g FJ(,)32 b(\()t(T)l FH(A)t(L)r Fs(\000)p Fr(1)r FJ(\))t(:)t(:)t(T)l FH(A)t(L)5 b(L)g(I)g(S)t(T)g(E)g FJ(\))586 3822 y(ellers)25 b(hvis)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(f)o(alsk)h(og)g FD(T)-8 b(al)23 b Fr(=)h(0)768 3935 y FJ(s\346t)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(sand)768 4048 y(tilf\370j)i(et)e(`<')h(til)f FD(Output)768 4161 y FJ(kald)k(S)t FH(A)t(M)t(L)t(I)t(N)t(G)t FJ(\()t(H)t(T)t(M)t(L)t(-)t FH(L)t(I)t(S)5 b(T)g(E)t FJ(,)33 b(T)t FH(E)t(K)t(S)t(T)t(L)t(I)t(S)t (T)5 b(E)g FJ(,)32 b(T)l FH(A)t(L)t(L)t(I)t(S)t(T)t(E)t FJ(\))586 4274 y(ellers)25 b(hvis)f FD(ErT)-8 b(ekst)25 b Fr(=)e FJ(f)o(alsk)768 4387 y(tilf\370j)i(det)f(nuv\346rende)h(te)o (gn)f(fra)g FD(HTML-liste)f FJ(til)g FD(Output)768 4500 y FJ(kald)k(S)t FH(A)t(M)t(L)t(I)t(N)t(G)t FJ(\()t(H)t(T)t(M)t(L)t(-)t FH(L)t(I)t(S)5 b(T)g(E)t FJ(,)33 b(T)t FH(E)t(K)t(S)t(T)t(L)t(I)t(S)t (T)5 b(E)g FJ(,)32 b(\()t(T)l FH(A)t(L)r Fs(\000)p Fr(1)r FJ(\))t(:)t(:)t(T)l FH(A)t(L)5 b(L)g(I)g(S)t(T)g(E)g FJ(\))586 4613 y(n\345r)24 b(b\345de)h FD(HTML-liste)e FJ(og)g FD(T)-8 b(ekstliste)25 b FJ(er)e(tomme)768 4726 y(returner)j FD(Output)523 5051 y FJ(Bem\346rk)35 b(at)g(opsplitningen) 40 b(og)c(gendannelsen)k(returnerer)e(lister)f(i)e(modsat)h(r\346kk)o (e-)382 5164 y(f\370lge)d(af)g(de)f(data)h(som)g(bli)n(v)o(er)g(gi)n(v) o(et)g(til)f(funktionen)k(som)c(parameter)-5 b(.)34 b(Dette)e(er)h (gjort)g(af)382 5277 y(hastighedsm\346ssige)e(\345rsager;)e(man)d(kan)h (nemlig)h(hurtigt)h(tilf\370je)f(et)e(element)i(til)f(en)g(liste)g(i) 382 5390 y(starten)k(af)f(listen,)h(men)e(hvis)i(man)e(skal)i (tilf\370je)g(et)e(element)i(til)f(slutningen)j(af)c(listen)i(skal)1831 5652 y(49)p eop %%Page: 50 52 50 51 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 382 548 a FJ(listen)g(f)o(aktisk)g(gendannes)h(helt)f (fra)e(n)o(y)h(af.)f(Med)g(hensyn)i(til)f(k)o(ompression)i(har)e(dette) h(ingen)382 661 y(betydning)i(da)e(alle)g(m\370nstre)g(bli)n(v)o(er)h (transformeret)h(ens.)382 953 y FB(7.2)119 b(\330vrige)30 b(funktioner)382 1160 y FJ(Da)17 b(v)n(ores)j(funktioner)h(arbejder)g (p\345)d(lister)l(,)h(skal)g(vi)g(desuden)h(ha)n(v)o(e)f(funktioner)i (der)e(v)n(aretager)382 1273 y(forbindelsen)30 b(fra)c(\002ler)f(o)o(v) o(er)h(tekststrenge)k(til)c(lister)h(og)f(tilbage)i(igen,)e(for)h(at)e (kunne)j(hente)382 1386 y(og)c(gemme)f(dataene.)523 1499 y(Af)28 b(disse)h(funktioner)j(vil)d(vi)f(kun)i(beskri)n(v)o(e)g (funktionerne)i(der)d(indl\346ser)h(tallisten)h(fra)382 1612 y(tal\002len)21 b(og)f(gemmer)h(den,)g(da)f(bitoperationer)k(er)d (noget)g(indviklede)j(i)19 b(SML)g(\226)h(tallene)i(gem-)382 1725 y(mes)h(med)h(16)f(bits)h(pr\346cision)i(\(hvilk)o(et)f(sv)n(arer) g(til)f(at)f(der)h(m\345)f(v\346re)g(65536)j(te)o(gn)e(mellem)f(et)382 1838 y('<')g(og)h(et)f('>')h(eller)g(omv)o(endt\).)384 2163 y(I)t FH(N)t(I)t(T)t(I)t(A)t(L)t(I)t(S)t(E)5 b(R)t(I)g(N)t(G)t FJ(\()t(F)t FH(I)g(L)g(N)r(A)-6 b(V)t(N)t FJ(\))5 b(:)564 2276 y(la)n(v)24 b(en)f(bin\346r)h FD(Instr)m(eam)h FJ(til)e FD(F)l(ilnavn)384 2389 y FJ(H)t FH(E)t(N)t(T)29 b(T)m(A)t(L)f(F)t(R)t (A)g(FI)t(L)t FJ(\()t(I)t FH(N)t(S)t(T)t(R)t(E)5 b(A)t(M)t FJ(\))g(:)564 2502 y(hvis)24 b(vi)f(er)h(v)o(ed)f(slutningen)k(af)c FD(Instr)m(eam)746 2615 y FJ(returner)i FD(Liste)564 2728 y FJ(ellers)746 2841 y(s\346t)e FD(T)-8 b(al1)23 b Fr(=)45 b FJ(de)23 b(n\346ste)h(8)f(bit)h(fra)g FD(Instr)m(eam)746 2954 y FJ(k)o(on)l(v)o(erter)i FD(T)-8 b(al1)23 b FJ(til)g(et)h(heltal) 746 3067 y(s\346t)f FD(T)-8 b(al1)23 b Fr(=)f FD(T)-8 b(al1)p Fs(\001)p Fr(256)746 3180 y FJ(s\346t)23 b FD(T)-8 b(al2)23 b Fr(=)45 b FJ(de)23 b(n\346ste)h(8)f(bit)h(fra)g FD(Instr)m(eam)746 3292 y FJ(k)o(on)l(v)o(erter)i FD(T)-8 b(al2)23 b FJ(til)g(et)h(heltal)746 3405 y(s\346t)f FD(T)-8 b(al2)23 b Fr(=)f FD(T)-8 b(al1)p Fr(+)p FD(T)g(al2)746 3518 y FJ(cons)24 b FD(T)-8 b(al2)23 b FJ(p\345)h FD(Liste)566 3631 y FJ(H)t FH(E)t(N)t(T)k(T)m(A)t(L)h(F)t(R)t(A)f(FI)t(L)t FJ(\()t FH(I)t(N)t(S)t(T)t(R)t(E)t(A)t(M)5 b FJ(\))384 3857 y(I)t FH(N)t(I)t(T)t(I)t(A)t(L)t(I)t(S)t(E)g(R)t(I)g(N)t(G)t FJ(\()t(F)t FH(I)g(L)g(N)r(A)-6 b(V)t(N)t FJ(\))5 b(:)564 3970 y(la)n(v)24 b(en)f(bin\346r)h FD(Outstr)m(eam)g FJ(til)g FD(F)l(ilnavn)384 4083 y FJ(G)t FH(E)t(M)k(T)m(A)t(L)t(L)t(I)t (S)t(T)t(E)33 b(I)28 b(FI)t(L)t FJ(\()t(T)l FH(A)t(L)t FJ(:)t(:)t(T)l FH(A)t(L)5 b(L)g(I)g(S)g(T)g(E)g FJ(\))t(:)564 4196 y(hvis)24 b FD(T)-8 b(alliste)24 b FJ(er)g(tom)746 4309 y(luk)f(og)h(skri)n(v)g FD(Outstr)m(eam)564 4422 y FJ(ellers)746 4534 y(s\346t)f FD(NytT)-8 b(al)23 b Fr(=)f FD(T)-8 b(al)23 b FJ(heltalsdi)n(videret)28 b(med)23 b(256)746 4647 y(la)n(v)h FD(NytT)-8 b(al)23 b FJ(til)g(8)g(bit)746 4760 y(gem)g FD(NytT)-8 b(al)23 b FJ(i)g FD(Outstr)m(eam)746 4873 y FJ(s\346t)g FD(NytT)-8 b(al)23 b Fr(=)f FD(T)-8 b(al)23 b FJ(modulo)h(256)746 4986 y(la)n(v)g FD(NytT)-8 b(al)23 b FJ(til)g(8)g(bit)746 5099 y(gem)g FD(NytT)-8 b(al)23 b FJ(i)g FD(Outstr)m(eam)566 5212 y FJ(G)t FH(E)t(M)28 b(T)m(A)t(L)t(L)t(I)t(S)t(T)t(E)33 b(I)27 b(FI)t(L)t FJ(\()t(T)l FH(A)t(L)t(L)t(I)5 b(S)t(T)g(E)g FJ(\))1831 5652 y(50)p eop %%Page: 51 53 51 52 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 523 548 a FJ(Grunden)h(til)e(at)h(vi)f(foretager)j(en) d(heltalsdi)n(vion)k(med)d(256)g(n\345r)g(vi)f(gemmer)h(tallet,)g(er)f (at)382 661 y(dette)h(sv)n(arer)h(til)e(at)h(skifte)g(de)g(enk)o(elte)h (bit)f(i)f(tallet)i(8)e(pladser)i(til)f(h\370jre)g(\(et)g (h\370jreskift)i(sv)n(arer)382 774 y(til)e(at)g(heltalsdi)n(videre)29 b(med)23 b(2,)h(alts\345)1631 738 y Fo(x)p 1598 753 106 4 v 1598 805 a Ft(256)1740 774 y Fr(=)1863 738 y Fo(x)p 1848 753 70 4 v 1848 808 a Ft(2)1883 789 y Fl(8)1954 774 y Fr(=)2251 738 y Fo(x)p 2061 753 420 4 v 2061 805 a Ft(2)p Fn(\001)p Ft(2)p Fn(\001)p Ft(2)p Fn(\001)p Ft(2)p Fn(\001)p Ft(2)p Fn(\001)p Ft(2)p Fn(\001)p Ft(2)p Fn(\001)p Ft(2)2491 774 y FJ(\).)f(Hvis)h(man)g(har)h(et)f(tal)g(p\345) 382 887 y(16)e(bit)h(eller)g(derunder)l(,)i(sv)n(arer)f(de)e(8)g(skift) i(til)e(at)h(fjerne)g(de)g(8)f(sidste)i(bit)e(og)h(g\370re)g(de)g (andre)g(8)382 1000 y(tilg\346ngelige)j(som)d(et)g(tal)g(mellem)g(0)g (og)h(255)f(der)h(kan)f(gemmes)h(som)f(en)g(enk)o(elt)i(byte)f(\226)f (n\345r)382 1112 y(vi)i(s\345)h(henter)h(tallet)f(igen,)g(skal)g(vi)g (naturligvis)j(gange)d(med)f(256)h(for)g(at)f(f\345)h(det)g (oprindelige)382 1225 y(tal)e(igen.)g(T)m(ilsv)n(arende)h(henter)g (modulo-operationen)k(de)23 b(f\370rste)i(8)e(bit)h(information)i(ud.) 382 1518 y FB(7.3)119 b(Pr)n(ogrammets)28 b(gr\346nse\003ade)382 1725 y FJ(Gr\346nse\003aden)d(fremg\345r)f(i)f(tabel)h(7.3)g(p\345)f (den)h(f\370lgende)i(side.)382 2018 y FB(7.4)119 b(Afvikling)31 b(af)f(pr)n(ogrammet)382 2225 y FJ(V)-12 b(ores)24 b(program)g(gemmer)g (tre)f(\002ler)g(best\345ende)j(af)e(henholdsvis)j(HTML,)20 b(tekst)25 b(og)e(tal.)h(T)-7 b(al-)382 2338 y(lene)33 b(er)e(gemt)h(med)g(16)g(bit)h(og)f(har)g(dermed)h(en)f(maksimal)h (st\370rrelse)h(p\345)e Fr(2)2893 2305 y Ft(16)3009 2338 y Fr(=)41 b(65536)p FJ(.)382 2450 y(Dette)24 b(vil)f(sige)h(at)g(der)g (maksimalt)g(m\345)f(v\346re)g Fr(2)1896 2417 y Ft(16)1994 2450 y FJ(te)o(gn)h(mellem)g(et)f(tag)h(og)f(et)h(stykk)o(e)h(tekst)f (i)382 2563 y(de)f(HTML-\002ler)f(vi)i(k)o(\370rer)h(programmet)g (p\345.)523 2676 y(Programmet)k(kan)f(k)o(\370res)i(med)e(k)o (ommandoen)i(\204./split)f(-s)f(\002lna)n(vn\223)i(og)e(\204./split)i (-u)e(\002l-)382 2789 y(na)n(vn\223)d(hv)n(or)f(\204-s\223)g(betyder)h (split)g(og)e(\204-u\223)h(betyder)h(unsplit.)g(Filna)n(vnet)h(man)d (skal)h(gi)n(v)o(e)f(pro-)382 2902 y(grammet,)d(er)g(\002lna)n(vnet)h (p\345)f(den)h(oprindelige)i(HTML-\002l,)18 b(eksempelvis)k (\204jubii.html\223.)g(Pro-)382 3015 y(grammet)f(la)n(v)o(er)h(v)o(ed)f (\204-s\223)g(tre)h(\002ler:)e(HTML-delen)h(bli)n(v)o(er)h(gemt)f(i)f (\204\002lna)n(vn.1\223,)j(tekst-delen)382 3128 y(bli)n(v)o(er)g(gemt)g (i)f(\204\002lna)n(vn.2\223)j(og)e(tallisten)i(bli)n(v)o(er)e(gemt)g(i) f(\204\002lna)n(vn.3\223.)i(N\345r)f(man)f(kalder)i(pro-)382 3241 y(grammet)f(med)f(\204-u\223,)h(skri)n(v)o(er)h(det)f(\204\002lna) n(vn.orig\223.)i(Dette)e(er)f(v)n(algt)i(s\345ledes)g(vi)f(nemt)g (kunne)382 3354 y(v)o(eri\002cere)i(at)e(den)h(gendannede)j(\002l)22 b(v)n(ar)i(lig)g(med)f(den)h(oprindelige)j(\002l.)382 3646 y FB(7.5)119 b(T)-11 b(est)382 3853 y FJ(Efter)30 b(implementation)k(af)c(algoritmen)j(skal)e(den)g(naturligvis)j(testes) e(og)e(holdes)i(op)f(med)382 3966 y(simplere)26 b(l\370sninger)h(som)d (blot)h(k)o(omprimerer)i(med)d FA(gzip)f FJ(eller)i FA(bzip2)e FJ(hv)o(er)i(for)f(sig.)h(F)o(or)382 4079 y(at)e(algoritmen)j(kan)e (betale)h(sig)f(at)f(bruge,)h(er)g(der)g(visse)g(kra)n(v)-6 b(.)523 4192 y(Den)31 b(skal)h(som)g(minimum)f(gi)n(v)o(e)h(et)f(bedre) i(k)o(ompressionsforhold)k(end)32 b FA(gzip)p FJ(,)e(ellers)382 4305 y(ville)23 b FA(gzip)e FJ(v\346re)i(bedre)g(end)g(v)n(ores)h (algoritme)g(b\345de)g(med)e(hensyn)i(til)f(hastighed)i(og)e(k)o(om-) 382 4418 y(pressionsforhold.)37 b(Desuden)32 b(skal)h(den)f(v\346re)f (hurtigere)j(end)f FA(bzip2)c FJ(da)j(denne)h(isoleret)382 4531 y(sandsynligvis)28 b(vil)23 b(gi)n(v)o(e)h(et)f(bedre)i(k)o (ompressionsforhold)q(.)523 4644 y(P\345)31 b(dette)i(grundlag)i (unders\370ger)g(vi)d(hv)n(orvidt)i(v)n(ores)g(forarbejdning)i(af)31 b(HTML-\002ler)382 4757 y(vil)22 b(forbedre)i(eksisterende)h (algoritmers)g(pakk)o(ee)n(vne)f(og)e(hv)n(or)h(tidskr\346v)o(ende)i (pakk)o(earbej-)382 4870 y(det)i(er)-5 b(.)27 b(Som)f(test\002ler)i (bruger)g(vi)f(de)g(seks)h(hjemmesider)h(vi)e(v)n(algte)h(i)f(beho)o (vsanalysen,)k(se)382 4982 y(appendiks)26 b(B.1)d(p\345)g(side)i(70.) 523 5095 y(V)-12 b(ores)27 b(implementation)j(forarbejder)f(kun)e (dataene,)h(og)f(de)g(skal)g(s\345)f(derefter)j(k)o(ompri-)382 5208 y(meres.)j(T)-6 b(ekstdelen)34 b(af)f(HTML-\002len)e(k)o (omprimeres)j(med)e FA(bzip2)p FJ(,)e(mens)j(HTML-delen)382 5321 y(k)o(omprimeres)25 b(med)f FA(gzip)p FJ(.)1831 5652 y(51)p eop %%Page: 52 54 52 53 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 382 703 2989 8 v 432 808 a FJ(Funktion)311 b(Speci\002kation)699 b(K)m(ommentar)p 382 845 2989 4 v 432 924 a(stringT)-7 b(oList:)172 b(string)25 b(->)e(char)i(list)552 b(La)n(v)o(er)22 b(en)h(streng)h(om)d(til)i(en)f(liste)2245 1037 y(af)h(chars.)432 1150 y(listT)-7 b(oString:)187 b(char)25 b(list)e(->)h(string)553 b(La)n(v)o(er)30 b(en)g(liste)h(af)f (chars)h(om)e(til)2245 1263 y(en)23 b(streng.)432 1376 y(listsT)-7 b(oStrings:)117 b(char)44 b(list)g(*)f(char)h(list)g(*)f ('a)g(->)1069 1489 y(string)25 b(*)e(string)i(*)e('a)2245 1376 y(La)n(v)o(er)51 b(de)g(to)g(f\370rste)h(lister)g(af)2245 1489 y(chars)24 b(om)f(til)h(strenge.)432 1602 y(stringsT)-7 b(oLists:)102 b(string)24 b(*)e(string)i(*)e('a)g(->)g(char)h(list)1069 1715 y(*)h(char)g(list)g(*)f('a)2245 1602 y(La)n(v)o(er)j(de)g(to)f (f\370rste)i(strenge)h(om)2245 1715 y(til)23 b(lister)i(af)e(chars.)432 1827 y(loadFile:)316 b(string)25 b(->)e(string)637 b(Henter)64 b(en)f(\002l)g(ind)h(som)f(en)2245 1940 y(streng.)432 2053 y(sa)n(v)o(eFile:)314 b(string)25 b(*)e(string)i(->)e(unit)404 b(Gemmer)23 b(en)g(streng)i(til)f(en)f(\002l.)432 2166 y(loadNum:)275 b(string)25 b(->)e(int)h(list)613 b(Henter)48 b(en)f(\002l)f(ind)h(16)h(bit)f(ad)2245 2279 y(gangen,)42 b(til)g(en)f(int)g(list.)h(Dette)2245 2392 y(er)21 b(funktionen)27 b(H)t FH(E)t(N)t(T)g(T)m(A)t(L)g(F)t(R)t(A)2247 2505 y(FI)t(L)g FJ(fra)c(pseudok)o(oden.)432 2618 y(sa)n(v)o(eNum:)273 b(string)25 b(*)e(int)h(list)g(->)f(unit)381 b(Gemmer)19 b(en)h(liste)h(af)f(heltal)h(som)2245 2731 y(16)f(bit)g(v\346rdier)h(i) e(en)h(\002l.)f(Dette)h(er)2245 2844 y(funktionen)38 b(G)t FH(E)t(M)g(T)m(A)t(L)t(L)t(I)t(S)t(T)t(E)k(I)2247 2957 y(FI)t(L)27 b FJ(fra)c(pseudok)o(oden.)432 3069 y(splitList:)316 b(char)28 b(list)f(*)f(char)i(list)f(*)g(char)g(list) 1069 3182 y(*)j(int)h(list)g(*)f(int)g(*)g(bool)i(->)e(char)1069 3295 y(list)24 b(*)f(char)i(list)f(*)f(int)g(list)2245 3069 y(Opdeler)33 b(en)f(char)h(liste)f(til)g(2)g(li-)2245 3182 y(ster)21 b(af)g(chars)h(og)g(en)f(liste)h(af)f(hel-)2245 3295 y(tal.)38 b(Dette)h(er)f(funktionen)44 b(O)t FH(P)t FJ(-)2247 3408 y FH(D)t(E)t(L)t(I)t(N)t(G)27 b FJ(fra)d(pseudok)o (oden.)432 3521 y(concatList:)236 b(char)23 b(list)g(*)g(\(char)g(list) g(*)f(char)h(list)1069 3634 y(*)h(int)f(list\))h(*)g(bool)g(->)f(char)h (list)2245 3521 y(Samler)18 b(2)g(char)i(lister)f(og)g(en)f(liste)2245 3634 y(af)i(heltal)h(til)e(en)h(char)h(liste.)f(Dette)2245 3747 y(er)46 b(funktionen)52 b(S)t FH(A)t(M)t(L)t(I)t(N)t(G)e FJ(fra)2245 3860 y(pseudok)o(oden.)432 3973 y(splitFile:)316 b(string)25 b(->)e(unit)702 b(Opdeler)27 b(en)f(\002l)f(og)h(skri)n(v)o (er)h(de)e(2)2245 4086 y(\002ler)20 b(med)h(hhv)-6 b(.)21 b(HTML)d(og)j(tekst)2245 4199 y(og)j(en)f(tal\002l.)432 4311 y(concatFile:)236 b(string)25 b(*)e(string)i(*)e(string)i(->)e (unit)106 b(Samler)41 b(de)g(3)f(\002ler)h(og)g(skri)n(v)o(er)2245 4424 y(den)24 b(oprindelige)j(\002l.)432 4537 y(mainprogram:)125 b(unit)25 b(->)e(unit)767 b(Funktionen)51 b(der)e(udf\370res)h(v)o(ed) 2245 4650 y(start)30 b(af)e(programmet)j(fra)e(k)o(om-)2245 4763 y(mandolinien.)p 382 4820 2989 8 v 382 5049 a FD(T)-8 b(abel)28 b(7.1:)j(Liste)d(o)o(ver)g(funktioner)-10 b(,)31 b(der)m(es)d(typer)h(o)o(g)f(beskrivelse)j(som)c(de)h(ser)g(ud)g(i)g (kilde-)382 5162 y(k)o(oden)1831 5652 y FJ(52)p eop %%Page: 53 55 53 54 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 382 548 a Fw(7.5.1)99 b(K)n(omprimeringse)o(vne)382 722 y FJ(T)-6 b(est)20 b(af)g(k)o(omprimeringse)n(vnen)25 b(afh\346nger)d(kun)e(af)h(k)o(omprimeringsprogrammet)k(og)c(test\002-) 382 835 y(lerne)i(og)e(ikk)o(e)i(af)f(testmaskinen)i(i)e(mods\346tning) h(til)f(en)g(test)g(af)g(k)o(ompressionshastighe)q(de)q(n.)382 948 y(K)m(omprimeringsprogrammerne)i(der)c(er)f(brugt)i(i)e(testen,)i (er)e FA(gzip)f FJ(1.2.4)h(og)h FA(bzip2)e FJ(0.9.0c.)382 1061 y(T)-7 b(aldelen)29 b(k)o(omprimeres)i(med)d(et)g(SML-program)h (gruppen)h(har)f(udviklet)h(der)f(gi)n(v)o(er)g(st\370r)n(-)382 1174 y(relsen)e(af)f(en)h(\002l)e(efter)i(Huf)n(fman-k)o(odning)i (\(det)e(v)n(ar)f(n\370dv)o(endigt)j(med)d(et)g(specialindrettet)382 1287 y(program)j(da)f(st\370rrelsen)i(af)d(symbolerne)k(i)c(alf)o (abetet)j(er)d(p\345)h(to)g(byte\).)g(Resultatet)i(ses)e(i)f(ta-)382 1400 y(bel)d(7.2.)p 615 1498 2523 8 v 665 1602 a(HTML-side)201 b(st\370r)-5 b(.)23 b(\(byte\))102 b FA(gzip)22 b FJ(\(\045\))100 b FA(bzip2)22 b FJ(\(\045\))100 b(e)o(gen)24 b(\(\045\))p 615 1656 2523 5 v 665 1761 a(Jubii)543 b(43452)262 b(18,33)280 b FE(17,85)265 b FJ(23,40)665 1874 y(Carlsber)n(g)392 b(6976)284 b FE(36,91)c FJ(39,51)265 b(44,14)665 1987 y(ITL)576 b(18350)262 b FE(22,82)280 b FJ(24,38)265 b(28,00)665 2100 y(IT)-8 b(-A)h(visen)361 b(30795)262 b(14,97)280 b FE(14,78)265 b FJ(18,77)665 2212 y(Jyllandsposten)188 b(66159)262 b(18,14)280 b FE(16,22)265 b FJ(21.17)665 2325 y(The)23 b(V)-12 b(oice)350 b(27995)262 b(17,03)280 b FE(16,94)265 b FJ(21,38)p 615 2382 2523 8 v 731 2561 a FD(T)-8 b(abel)24 b(7.2:)31 b(K)l(ompr)m(essionsforholdet)e(for)24 b(de)g(for)o(sk)o(ellig)o(e)i(algoritmer)523 2780 y FJ(Det)i(ses)h(at)g FA(bzip2)e FJ(i)h(4)g(ud)h(af)g(6)f(tilf\346lde,)h(v)o(ed)g(de)g(4)f (st\370rste)j(\002ler)l(,)d(v)n(ar)h(mere)g(ef)n(fekti)n(v)382 2893 y(til)i(at)g(k)o(omprimere)i(end)f FA(gzip)p FJ(.)d(Det)i (fremg\345r)h(dog)g(at)f(der)h(ikk)o(e)g(er)f(stor)h(forsk)o(el)h (mellem)382 3006 y(k)o(ompressionsforhold)q(ene)d(v)o(ed)25 b FA(gzip)e FJ(og)i FA(bzip2)d FJ(\226)j(formodentlig)i(p\345)d(grund)i (af)f(test\002ler)n(-)382 3119 y(nes)i(st\370rrelse.)h(V)-12 b(ores)26 b(e)o(gen)h(algoritme)h(er)e(imidlertid)i(klart)f (d\345rligst)h(i)e(alle)h(test.)f(En)g(del)g(af)382 3232 y(grunden)g(til)d(dette)i(\002nder)e(vi)h(i)f(tabel)h(7.3.)p 911 3349 1932 8 v 961 3453 a(HTML-side)201 b(HTML)21 b(\(\045\))100 b(tekst)24 b(\(\045\))100 b(tal)24 b(\(\045\))p 911 3507 1932 5 v 961 3612 a(Jubii)588 b(17,6)316 b(27,1)232 b(37,5)961 3725 y(Carlsber)n(g)414 b(44,7)316 b(41,7)209 b(100,0)961 3837 y(ITL)621 b(25,7)316 b(28,4)232 b(51,8)961 3950 y(IT)-8 b(-A)h(visen)406 b(13,8)316 b(17,4)232 b(48,6)961 4063 y(Jyllandsposten)h(14,3)316 b(25,6)232 b(36,3)961 4176 y(The)23 b(V)-12 b(oice)395 b(19,7)316 b(14,2)232 b(45,9)p 911 4233 1932 8 v 462 4411 a FD(T)-8 b(abel)24 b(7.3:)31 b(K)l(ompr)m(essionsforholden)q(e)e(for)23 b(de)h(for)o(sk)o(ellig)o(e)j(dele)d(ved)g(e)l(g)o(en)h(algoritme)523 4613 y FJ(I)32 b(tabel)h(7.3)f(ses)h(at)f(tal\002len)h(ikk)o(e)g(kan)g (k)o(omprimeres)h(forholdsm\346ssigt)h(n\346r)d(s\345)g(me-)382 4726 y(get)f(som)f(de)h(andre)h(dele.)f(Dette)g(kan)g(h\346nge)g (sammen)g(med)g(at)f(Huf)n(fman-k)o(odning)k(i)d(sig)382 4839 y(selv)d(m\345sk)o(e)h(ikk)o(e)f(er)g(tilstr\346kk)o(eligt)j(\226) d(en)f(n\346rmere)i(unders\370gelse)i(som)d(vi)g(dog)g(ikk)o(e)h(har) 382 4951 y(foretaget,)f(ville)f(sandsynligvis)k(kunne)d(\002nde)e(en)g (bedre)i(algoritme)g(eller)f(k)o(ombination)i(af)382 5064 y(algoritmer)-5 b(.)27 b(Uanset)g(hv)n(or)f(lille)h(\002len)e(bli) n(v)o(er)l(,)i(er)f(det)g(dog)g(ikk)o(e)h(nok)f(til)g(at)f(v)n(ores)i (algoritme)382 5177 y(er)c(mere)h(ef)n(fekti)n(v)h(end)f FA(bzip2)p FJ(.)523 5290 y(Et)32 b(andet)h(problem)h(kunne)g(v\346re)e (at)h(noget)g(af)g(alf)o(abetet)i(til)d(siden)i(o)o(v)o(erf\370res)g (b\345de)f(i)382 5403 y FA(bzip2)p FJ(-)26 b(og)i FA(gzip)p FJ(-delen)h(hvilk)o(et)h(skaber)f(redundans.)i(T)m(rods)d(dette)g (viser)h(det)f(sig)h(dog)f(at)1831 5652 y(53)p eop %%Page: 54 56 54 55 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 382 548 a FJ(tekst\002len)c(k)o(omprimeret)h(med)e FA(bzip2)e FJ(og)i(HTML-\002len)f(k)o(omprimeret)j(med)e FA(gzip)e FJ(tilsam-)382 661 y(men)23 b(i)g(nogle)i(tilf\346lde)f(er)g (mindre)g(end)g(den)g(oprindelige)j(\002l)22 b(k)o(omprimeret)k(med)d FA(gzip)p FJ(.)523 774 y(Endelig)d(skal)g(det)g(bem\346rk)o(es)g(at)f FA(gzip)f FJ(i)g(nogle)j(tilf\346lde)f(pakk)o(er)h(tekstdelen)h(bedre)e (end)382 887 y FA(bzip2)d FJ(\226)h(det)h(under)n(gra)n(v)o(er)j(ideen) d(bag)g(v)n(ores)h(algoritme)g(med)f(at)f FA(bzip2)f FJ(skulle)j(v\346re)e(mere)382 1000 y(ef)n(fekti)n(v)j(til)e(tekstk)o (ompression)24 b(end)c FA(gzip)p FJ(.)d(At)h FA(bzip2)g FJ(ikk)o(e)i(er)f(det)h(i)f(alle)g(tilf\346lde,)h(sk)o(yldes)382 1112 y(sandsynligvis)33 b(\002lernes)c(st\370rrelse)i(\226)d(for)h(at)g FA(bzip2)e FJ(skal)i(v\346re)f(ef)n(fekti)n(v)-6 b(,)30 b(skal)f(andelen)i(af)382 1225 y(helt)24 b(sm\345)g(tal)g(som)g(mo)o(v) o(e-to-front)i(returnerer)l(,)g(v\346re)e(tilpas)h(stor)g(s\345)f (entropien)i(bli)n(v)o(er)f(lille.)382 1338 y(Dette)f(sk)o(er)g(kun)g (v)o(ed)g(store)g(blokk)o(e)h(af)f(ens)g(bogsta)n(v)o(er)i(hvilk)o(et)f (er)e(sj\346ldent)i(i)e(sm\345)g(\002ler)-5 b(.)382 1588 y Fw(7.5.2)99 b(T)n(idsaspektet)382 1762 y FJ(I)24 b(mods\346tning)i (til)e(k)o(omprimeringse)n(vnen)29 b(afh\346nger)d(testen)f(af)f (tidsaspektet)k(ogs\345)d(af)f(om-)382 1875 y(gi)n(v)o(elserne)32 b(den)f(er)f(udf\370rt)i(i,)d(f.eks.)h(styresystemet,)j(processoren,)h (osv)-6 b(.)30 b(T)-6 b(esten)31 b(af)f(tidsa-)382 1988 y(spektet)k(ble)n(v)f(udf\370rt)h(p\345)e(en)g(maskine)i(som)e(vi)g (forestiller)k(os)c(kunne)i(v\346re)e(en)g(realistisk)382 2101 y(webserv)o(er)l(,)25 b(se)e(B.4)g(p\345)g(side)i(73)e(for)h (n\346rmere)g(detaljer)-5 b(.)p 1244 2227 1265 8 v 1294 2332 a(test)24 b(nr)-5 b(.)100 b(e)o(gen)j FA(gzip)f(bzip2)p 1244 2386 1265 5 v 1392 2490 a FJ(1)204 b(4,89)107 b(65.15)123 b(14,22)1392 2603 y(2)204 b(4,90)107 b(65,19)123 b(14,19)1392 2716 y(3)204 b(4,90)107 b(65,32)123 b(14,23)p 1244 2770 V 1323 2874 a(gnm.)134 b(4,90)107 b FE(65,22)123 b FJ(14,21)p 1244 2931 1265 8 v 867 3116 a FD(T)-8 b(abel)23 b(7.4:)31 b(T)-8 b(est)23 b(af)h(k)o(ompr)m(essionshastighed)q(ern)q(e)29 b(\(i)23 b(\002ler)p Fu(=)p FD(s\))523 3332 y FJ(T)m(iden)i(det)f (tager)h(at)g(k)o(omprimere)h(med)e(v)n(ores)h(algoritme,)h(er)e (afh\346ngig)i(af)f(dels)g(forar)n(-)382 3445 y(bejdningen)33 b(som)d(v)n(ores)h(SML-program)f(foretager)l(,)j(og)d(dels)g(den)h(e)o (gentlige)h(k)o(omprime-)382 3557 y(ring)21 b(af)f(de)h(enk)o(elte)h (elementer)-5 b(.)22 b(Resultatet)h(fremg\345r)e(i)f(tabel)i(7.4.)e (Det)g(skal)h(bem\346rk)o(es)h(at)e(vi)382 3670 y(i)26 b(testen)i(ikk)o(e)f(har)g(k)o(omprimeret)h(selv)o(e)f(taldelen)i (fordi)e(v)n(ores)h(SML-program)e(kun)i(kunne)382 3783 y(gi)n(v)o(e)22 b(st\370rrelsen)i(af)d(den)h(resulterende)j(\002l)c(og) h(ikk)o(e)g(skri)n(v)o(e)g(den)g(\(pakning)i(af)e(bit)g(er)f(ikk)o(e)h (helt)382 3896 y(let)i(i)g(SML\).)f(Men)h(det)h(ses)g(at)f(det)h(er)f (uden)i(betydning)h(idet)e(v)n(ores)h(algoritme)g(i)e(forv)o(ejen)i(er) 382 4009 y(langsommere.)523 4122 y(Af)33 b(testen)i(kan)f(vi)g(se)f(at) h FA(gzip)e FJ(er)h(klart)i(hurtigere)h(end)e FA(bzip2)e FJ(som)i(yderligere)i(er)382 4235 y(hurtigere)23 b(end)e(v)n(ores)h(e)o (gen)g(algoritme.)g(Sp\370r)n(gsm\345let)h(er)d(hv)n(ad)i(det)f(er)f(v) o(ed)h(v)n(ores)h(algoritme)382 4348 y(som)36 b(g\370r)g(den)h(s\345)f (me)o(get)g(langsommere)i(\226)d(tabel)i(7.5)f(p\345)g(n\346ste)g(side) h(viser)g(andelen)h(af)382 4461 y(udf\370rselstiden)28 b(for)23 b(de)h(forsk)o(ellige)i(dele)f(af)e(algoritmen.)i(Det)e(ses)h (at)f(akillesh\346len)k(i)c(v)n(ores)382 4574 y(algoritme)i(er)e (opdelingsdelen)29 b(som)23 b(tager)h Fr(83)p Fu(;)p Fr(24\045)h FJ(af)e(den)h(samlede)h(tid.)382 4823 y Fw(7.5.3)99 b(Sammenfatning)382 4997 y FJ(T)-6 b(esten)21 b(viser)g(at)g(v)n(ores)h (algoritme)g(ikk)o(e)g(k)o(omprimerer)g(bedre)g(end)f(eksisterende)k (l\370sninger)-5 b(.)382 5110 y(Problemet)34 b(ligger)h(i)d (tal\002len;)j(v)n(ores)f(algoritme)h(kan)f(sandsynligvis)j(forbedres)f (p\345)d(dette)382 5223 y(omr\345de,)19 b(enten)g(bruge)g(end)g(mere)f (so\002stik)o(eret)i(metode)f(end)f(Huf)n(fman-k)o(odning)k(alene)d (eller)382 5336 y(v)o(ed)25 b(at)g(\346ndre)g(algoritmen)i(helt)f (s\345)e(tal\002len)i(ikk)o(e)g(er)f(n\370dv)o(endig.)i(Man)e(kunne)h (f.eks.)f(klare)1831 5652 y(54)p eop %%Page: 55 57 55 56 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 846 464 2062 8 v 984 568 a FJ(test)g(nr)-5 b(.)188 b(opdeling)26 b(\(\045\))100 b FA(gzip)22 b FJ(\(\045\))100 b FA(bzip2)22 b FJ(\(\045\))p 846 622 2062 5 v 1082 727 a(1)424 b(83,25)337 b(5,16)302 b(11,59)1082 840 y(2)424 b(83,26)337 b(5,14)302 b(11,60)1082 953 y(3)424 b(83,22)337 b(5,13)302 b(11,56)p 846 1007 V 896 1111 a(gennemsnit)239 b FE(83,24)337 b FJ(5,14)302 b(11,58)p 846 1168 2062 8 v 382 1346 a FD(T)-8 b(abel)23 b(7.5:)31 b(Andelen)24 b(af)e(udf\370r)o(selstiden)28 b(for)23 b(de)g(enk)o(elte)h(dele)g(i)e (vor)m(es)h(algoritme)o(,)i Ff(gzip)c FD(er)382 1459 y(for)j(k)o(omprimering)o(en)j(af)c(HTML-delen,)g Ff(bzip2)f FD(er)h(for)h(k)o(omprimering)o(en)j(af)c(tekstdelen)382 1735 y FJ(skiftene)28 b(mellem)e(tekst)h(og)g(HTML)d(v)o(ed)i(at)g (reserv)o(ere)i(en)e(ASCII-v\346rdi)g(som)g(ikk)o(e)h(bli)n(v)o(er)382 1848 y(brugt)j(i)e(HTML-\002lerne,)f(og)i(inds\346tte)h(en)e(ekstra)i (byte)f(med)f(denne)i(v\346rdi)f(alle)g(de)g(steder)382 1961 y(hv)n(or)24 b(der)g(skal)g(skiftes)i(i)d(\002lerne.)523 2074 y(Hvis)i(vi)h(ser)f(helt)h(bort)g(fra)g(tal\002len,)g(k)o (omprimerer)h(v)n(ores)g(algoritme)g(en)e(smule)h(bedre.)382 2187 y(Det)34 b(kan)h(h\346nge)h(sammen)f(med)f(at)h FA(bzip2)e FJ(bedre)j(kan)f(k)o(omprimere)h(de)f(m\370nstre)h(som)382 2300 y(\002ndes)29 b(i)f(tekstdelen)k(end)d FA(gzip)e FJ(kan,)i(men)f(det)h(kan)g(ogs\345)h(v\346re)e(fordi)i(vi)f(fjerner)h (alle)f(`>')382 2413 y(og)24 b(`<'.)523 2526 y(Der)19 b(er)g(dog)h(en)f(ulempe)h(v)o(ed)f(at)h(bruge)g(to)f(forsk)o(ellige)k (algoritmer;)e(alf)o(abetet)h(skal)d(o)o(v)o(er)n(-)382 2638 y(f\370res)26 b(to)e(gange.)i(Specielt)g(v)o(ed)f(sm\345)f (\002ler)h(udg\370r)h(alf)o(abetet)h(en)e(betydelig)i(del)f(af)e (\002lst\370rrel-)382 2751 y(sen.)j(Derudo)o(v)o(er)i(kan)e(man)g(o)o (v)o(erv)o(eje)i(om)d(der)i(er)f(nogen)i(grund)f(til)f(at)g(opdele)i (\002lerne,)f(n\345r)382 2864 y(vi)f(i)g(afsnit)h(7.5.1)f(bem\346rk)o (ede)i(at)e FA(gzip)f FJ(i)h(nogle)h(tilf\346lde)g(k)o(omprimerer)h (bedre)g(p\345)e(be)o(gge)382 2977 y(\002ler)32 b(end)i FA(bzip2)p FJ(.)d(I)h(beho)o(vsanalysen)37 b(k)o(onkluderede)g(vi)c(at) g(HTML-\002lerne)f(generelt)j(er)382 3090 y(forholdsvis)27 b(sm\345,)c(hvilk)o(et)i(igen)f(taler)h(for)e FA(gzip)p FJ(.)523 3203 y(Udf\370rselstiden)31 b(for)c(v)n(ores)h(algoritme)h(er) e(ogs\345)h(problematisk.)h(Den)e(langsomme)i(ud-)382 3316 y(f\370rselstid)k(k)o(ommer)e(fra)g(v)n(ores)h(opdelingsprogram)k (i)30 b(SML,)e(og)j(sp\370r)n(gsm\345let)j(er)c(om)h(det)382 3429 y(sk)o(yldes)25 b(en)f(d\345rlig)g(implementation)j(eller)d(om)f (det)h(er)f(en)h(d\345rlig)h(algortime.)382 3678 y Fw(7.5.4)99 b(Algoritmens)24 b(tidsk)o(ompleksitet)382 3852 y FJ(F)o(or)29 b(at)h(f\345)g(klarlagt)i(hv)n(orfor)h(v)n(ores)e(implementation)i(v)n (ar)d(s\345)g(langsom)i(under)f(testen,)h(un-)382 3965 y(ders\370ger)26 b(vi)d(om)g(det)h(er)f(selv)o(e)h(algoritmens)i (struktur)g(der)e(g\370r)g(at)f(det)h(tager)g(lang)h(tid.)523 4078 y(Dette)31 b(kan)h(teoretisk)h(tidsk)o(ompleksitet)i(sv)n(are)d (p\345)f([1)q(])f(\226)h(tidsk)o(ompleksiteten)36 b(for)31 b(en)382 4191 y(algoritme)25 b(beskri)n(v)o(er)g(forholdet)h(mellem)d (m\346ngden)h(af)f(data)h(og)g(udf\370rselstiden)j(for)d(algo-)382 4304 y(ritmen.)31 b(Man)f(beskri)n(v)o(er)i(dette)g(vha.)e(af)g Fu(O)s FJ(-notationen,)k(f.eks.)c Fu(O)s Fr(\()p Fu(n)2649 4271 y Ft(2)2689 4304 y Fr(\))p FJ(.)f(Dette)i(betyder)h(at)382 4417 y(hvis)24 b Fu(T)13 b Fr(\()p Fu(n)p Fr(\))23 b FJ(er)g(tiden)i(det)e(tager)i(at)e(udf\370re)i(en)e(funktion)j(n\345r)e (st\370rrelsen)i(af)d(dataene)j(er)d Fu(n)p FJ(,)f(s\345)382 4530 y(eksisterer)k(der)e(et)f Fu(k)j FJ(og)e(et)f Fu(n)1310 4544 y Ft(0)1372 4530 y FJ(s\345)g(for)h Fu(n)h Fs(\025)g Fu(n)1830 4544 y Ft(0)1891 4530 y FJ(g\346lder:)1585 4734 y Fu(T)13 b Fr(\()p Fu(n)p Fr(\))25 b Fs(\024)g Fu(k)s(f)10 b Fr(\()p Fu(n)p Fr(\))p Fu(;)382 4938 y FJ(hv)n(or)24 b Fu(f)10 b Fr(\()p Fu(n)p Fr(\))23 b FJ(er)g(det)h(vi)f (skri)n(v)o(er)i(i)e(O-notationen,)j(alts\345)e Fu(O)s Fr(\()p Fu(f)10 b Fr(\()p Fu(n)p Fr(\)\))p FJ(.)523 5051 y(En)27 b(operation)k(der)e(ikk)o(e)g(afh\346nger)g(st\370rrelsen)i(af) d(dataene)i(angi)n(v)o(es)g(med)e Fu(O)s Fr(\(1\))p FJ(,)g(dvs.)382 5164 y(den)g(tager)h(1)e(tidsenhed.)j(Hvis)e(man)f(har)h(\003ere)f (operationer)l(,)k(kan)d(man)g(sl\345)g(dem)f(sammen,)382 5277 y(og)33 b(resultatet)j(bli)n(v)o(er)e(blot)g(den)f(st\370rste.)i (Eksempelvis)g(hvis)f(man)f(har)h(en)f(operation)j(der)1831 5652 y(55)p eop %%Page: 56 58 56 57 bop 1394 228 a FI(Kapitel)24 b(7:)g(Implementering)p 382 266 2989 4 v 382 548 a FJ(tager)34 b Fu(O)s Fr(\(1\))f FJ(og)g Fu(O)s Fr(\()p Fu(n)p Fr(\))p FJ(,)f(s\345)h(er)g(summen)g (blot)h Fu(O)s Fr(\()p Fu(n)p Fr(\))p FJ(.)e(Desuden)i(g\346lder)g(at)f Fu(O)s Fr(\()p Fu(k)s(f)10 b Fr(\()p Fu(n)p Fr(\)\))32 b FJ(er)382 661 y(\346kvi)n(v)n(alent)25 b(med)e Fu(O)s Fr(\()p Fu(f)10 b Fr(\()p Fu(n)p Fr(\)\))23 b FJ(\226)g(en)h(k)o (onstant)i(f)o(aktor)f(har)f(ingen)g(betydning.)523 774 y(P\345)36 b(denne)i(baggrund)i(kan)d(vi)g(nu)g(analysere)j(v)n(ores)e (algoritme.)h(Da)d(vi)h(blot)g(\370nsk)o(er)382 887 y(en)28 b(\370)o(vre)h(gr\346nse)g(for)g(hv)n(or)g(lang)g(tid)g(v)n(ores)g (algoritme)h(vil)f(tage,)g(unders\370ger)i(vi)d(den)h(med)382 1000 y(hensyn)22 b(til)f(v\346rste)g(tilf\346lde.)g(De)f(f\370rste)i (funktioner)i(la)n(v)o(er)d(lister)g(om)f(til)h(strenge)h(og)f(strenge) 382 1112 y(om)j(til)h(lister)l(,)h(og)f(det)g(er)f(som)h(sagt)g(lige)o (gyldigt)j(om)c(vi)h(g\370r)g(dette)h(v)o(ed)f(\351n)g(eller)g(\003ere) g(lister)l(,)382 1225 y(s\345)k(dette)g(har)g(tidsk)o(ompleksiteten)34 b Fu(O)s Fr(\()p Fu(n)p Fr(\))p FJ(.)28 b(Det)h(samme)f(g\346lder)i (det)f(at)f(hente)i(dataene)h(og)382 1338 y(gemme)23 b(dem)h(i)f(\002lerne.)523 1451 y(Det)k(virk)o(elige)k(sp\370r)n (gsm\345l)f(er)e(om)f(v)n(ores)j(opdelingsfunktion)j(ogs\345)c (opf\370rer)h(sig)e(line-)382 1564 y(\346rt.)d(Pseudok)o(oden)30 b(\(p\345)d(side)g(48\))f(viser)i(at)e(algoritmen)j(best\345r)e(en)g (betingelsk)o(onstrukt)q(ion)382 1677 y(hv)n(or)h(hv)o(er)f(for)n (grening)j(udg\370res)f(af)d(to)h(eller)h(tre)e(operationer)k(plus)e (et)e(kald)i(til)f(funktionen)382 1790 y(selv)20 b(med)g(et)g(element)h (mindre)f(i)g(dataene.)h(Operationerne)i(best\345r)f(af)d(tildeling)k (og)d(tilf\370jelse)382 1903 y(af)g(en)g(n)o(yt)g(element)h(til)f(en)g (liste,)g(og)g(be)o(gge)h(dele)f(er)g Fu(O)s Fr(\(1\))g FJ(\(idet)h(sidstn\346vnte)i(er)d(en)g(tilf\370jelse)382 2016 y(til)j(be)o(gyndelsen)k(af)d(listen\).)525 2129 y(O)t FH(P)t(S)t(P)t(L)t(I)t(T)t(N)t(I)t(N)t(G)37 b FJ(er)29 b(alts\345)i(en)e(rekursi)n(v)j(funktion)f(som)f(gentages)h(med)f (datam\346ngden)382 2242 y(reduceret)f(med)e(\351n)g(for)h(hv)o(er)f (iteration,)i(og)e(da)g(vi)h(kun)f(foretager)j Fu(O)s Fr(\(1\))p FJ(-operationer)h(inde)382 2355 y(i)25 b(funktionen,)j (betyder)f(dette)f(at)f(tidsk)o(ompleksiteten)31 b(for)c(O)t FH(P)t(S)t(P)t(L)t(I)t(T)t(N)t(I)5 b(N)t(G)32 b FJ(er)25 b(en)h(k)o(onstant)382 2467 y(gange)e(antallet)i(af)d(operationer)l(,)k (dvs.)d Fu(O)s Fr(\()p Fu(n)p Fr(\))p FJ(.)523 2580 y(Nuv)o(el,)f (dette)i(m\345)e(betyde)i(at)e(hele)h(v)n(ores)h(programs)g(k)o (ompleksitet)i(er)c Fu(O)s Fr(\()p Fu(n)p Fr(\))p FJ(.)382 2830 y Fw(7.5.5)99 b(K)n(onklusion)382 3004 y FJ(\305rsagen)28 b(til)g(at)f(v)n(ores)i(metode)f(er)f(langsom,)h(er)g(alts\345)g(ikk)o (e)g(algoritmen)i(i)c(sig)i(selv)g(da)f(den)382 3117 y(kan)h(udf\370res)i(i)d(o)o(v)o(erskuelig)j(tid.)e(Derfor)g(m\345)f (problemet)i(ligge)g(et)f(sted)g(i)f(implementatio-)382 3230 y(nen.)e(Sandsynligvis)j(er)d(de)g(listeoperationer)30 b(som)25 b(programmet)h(er)f(bygget)h(op)g(v)o(ed)f(hj\346lp)382 3343 y(af)h(\226)h(eftersom)h(det)f(er)f(det)h(mest)g(naturlige)i(i)d (et)g(funktionelt)k(sprog)e(som)e(SML)f(\226)h(for)h(inef-)382 3455 y(fekti)n(v)o(e)k(i)e(forhold)j(til)e(de)g(datastrukturer)k(man)29 b(ville)i(bruge)g(v)o(ed)f(en)g(implementation)j(i)c(et)382 3568 y(imperati)n(vt)c(sprog)g(som)e(C)f(eller)j(C++.)523 3681 y(Hvis)33 b(v)n(ores)i(algoritme)g(ble)n(v)e(optimeret)i(med)e (hensyn)i(til)e(hastighed,)j(s\345)d(b)n(urde)h(den)382 3794 y(som)27 b(det)i(ses,)e(ikk)o(e)i(v\346re)f(bere)o (gningsm\346ssig)j(tungere)f(end)e(de)g(andre)h(programmer)g(som)382 3907 y(vi)i(k)o(\370rer)h(i)e(testen,)i(f)o(aktisk)h(en)e(del)g (lettere)h(da)f(Lempel-Zi)n(v-algoritmerne)k(in)l(v)n(olv)o(erer)f(en) 382 4020 y(del)24 b(s\370gning)h(og)f(Burro)n(ws-Wheeler)n (-transformat)q(ion)q(en)29 b(sortering)d(som)d(er)h Fu(O)s Fr(\()p Fu(n)15 b Fr(log)h Fu(n)p Fr(\))p FJ(.)523 4133 y(Hv)n(orvidt)21 b(v)n(ores)g(algoritme)h(tilsammen)f(med)e(de)h (k)o(ompressionsalgoritmer)26 b(vi)19 b(bruger)l(,)382 4246 y(er)j(hurtigere)i(end)f(ren)f(brug)h(af)f FA(bzip2)f FJ(er)h(sv\346rere)h(at)f(sige,)g(og)g(det)h(afh\346nger)g (selvf\370lgelig)382 4359 y(af)h(m\346ngden)g(af)g(tekst)h(i)e(forhold) i(til)f(HTML)e(efter)i(opdelingen.)j(Hvis)d(der)g(f.eks.)g(kun)g(er)g (\351t)382 4472 y(te)o(gn)j(HTML)d(og)j(resten)h(er)e(tekst,)i(vil)f(v) n(ores)g(k)o(ombinerede)j(metode)d(ikk)o(e)h(v\346re)f(hurtigere)382 4585 y(end)d(ren)g(brug)g(af)f FA(bzip2)p FJ(,)f(men)h(dette)i(er)e (selvf\370lgelig)k(usandsynligt.)523 4697 y(Men)19 b(vi)h(skal)g(i)f (alt)h(bruge)g(under)h(hv)n(ad)f FA(bzip2)e FJ(bruger)j(af)e(tid,)h (alts\345)2800 4662 y Ft(1)p 2707 4677 222 4 v 2707 4730 a(14)p Fo(;)p Ft(21)p Fo(=)p Fz(s)2964 4697 y Fs(\031)25 b Fr(0)p Fu(;)p Fr(0704)g FJ(s)382 4821 y(if\370lge)h(tabel)g(7.4)f (p\345)h(side)f(54.)g(Hvis)g(fordelingen)k(bli)n(v)o(er)d(50\045)f(til) g(hv)o(er)g(del,)h(vil)f(dette)h(alts\345)382 4933 y(sige)32 b(at)f(vi)g(har)h Fr(0)p Fu(;)p Fr(0704)25 b FJ(s)h Fs(\000)g Fr(\()1381 4898 y Ft(1)p 1381 4913 36 4 v 1381 4965 a(2)1453 4933 y Fs(\001)1607 4898 y Ft(1)p 1514 4913 222 4 v 1514 4966 a(65)p Fo(;)p Ft(22)p Fo(=)p Fz(s)1772 4933 y Fr(+)1878 4898 y Ft(1)p 1878 4913 36 4 v 1878 4965 a(2)1949 4933 y Fs(\001)h Fr(0)p Fu(;)p Fr(0704)e FJ(s)p Fr(\))40 b(=)g(0)p Fu(;)p Fr(0275)25 b FJ(s)31 b(til)g(opdelingen.)382 5046 y(Dette)23 b(sv)n(arer)h(til)g(at)f(v)n(ores)h(opsplitter)i(skal)e (kunne)h(tage)f(36,33)g(\002ler)e(pr)-5 b(.)23 b(sek,)h(eller)g (omkring)382 5159 y(halvdelen)j(af)e(hv)n(ad)h FA(gzip)d FJ(viste)j(sig)f(at)f(kunne)j(klare.)e(S\345)f(v)o(ed)h(denne)h (fordeling)i(synes)e(det)382 5272 y(rimeligt)f(at)e(dette)h(kan)g(lade) h(sig)e(g\370re.)1831 5652 y(56)p eop %%Page: 57 59 57 58 bop 382 1171 a FC(Kapitel)43 b(8)382 1586 y FK(Praktisk)n(e)52 b(o)n(v)n(er)n(v)n(ejelser)382 2031 y FJ(I)19 b(dette)i(kapitel)h (g\370r)e(vi)g(os)g(nogle)h(o)o(v)o(erv)o(ejelser)h(om)e(den)g (praktisk)o(e)j(an)l(v)o(endelighed)h(af)c(v)n(ores)382 2144 y(resultater)26 b(\226)d(er)g(der)h(o)o(v)o(erho)o(v)o(edet)i (nogen)f(der)f(vil)f(bruge)i(k)o(ompression)i(af)c(HTML-sider?)523 2257 y(Det)35 b(viser)h(sig)g(at)f(det)h(er)f(der)l(,)g(for)h(der)g (\002ndes)f(f)o(aktisk)i(allerede)h(l\370sninger)g(p\345)d(mar)n(-)382 2369 y(k)o(edet,)f(HTTP)d(1.1-standarden)37 b(indeholder)f(bl.a.)d(et)g (afsnit)i(om)d(emnet)i(\(mere)f(om)g(det)g(i)382 2482 y(afsnit)28 b(8.3\).)f(Men)g(det)h(er)f(langt)h(fra)f(alle)h(der)f(udn) o(ytter)i(muligheden)h(for)d(k)o(ompression,)j(se)382 2595 y(f.eks.)25 b(en)g(mindre)g(unders\370gelse)k(af)c(udbredelse)i (af)e(HTTP)d(1.1-k)o(ompression)29 b(i)24 b(Danmark)382 2708 y(i)g(appendiks)k(D)c(p\345)h(side)g(75)g(\226)g(det)g(viser)h (sig)f(at)g(ingen)h(af)e(de)h(20)g(st\370rste)i(steder)f(i)e(Danmark) 382 2821 y(ben)o(ytter)h(k)o(ompression.)h(Hv)n(orfor)f(bli)n(v)o(er)f (det)g(ikk)o(e)g(brugt)h(noget)g(mere?)523 2934 y(F)o(or)32 b(at)h(klarl\346gge)i(dette)f(sp\370r)n(gsm\345l)i(gennemg\345r)f(vi)e (f\370rst)h(fordele)h(og)e(ulemper)i(for)382 3047 y(HTML-k)o (ompression)27 b(generelt,)f(b\345de)g(for)g(bruger)g(og)f(for)h (udbyder)l(,)h(dern\346st)f(for)f(de)g(spe-)382 3160 y(ci\002kk)o(e)f(fordele)h(og)f(ulemper)h(v)o(ed)e(brug)i(af)e (muligheden)j(i)d(HTTP)e(1.1-standarden.)382 3452 y FB(8.1)119 b(F)m(ordele)31 b(og)e(ulemper)i(f)m(or)e(udbyder)382 3659 y FJ(Udbyderne)d(vil)f(naturligvis)j(kun)d(bruge)g(l\370sningen)i (hvis)f(det)e(kan)h(betale)h(sig)f(\370k)o(onomisk.)382 3772 y(Det)h(kan)g(det)h(hvis)g(udbyderen)i(kan)d(spare)i(penge)f(v)o (ed)g(at)f(indf\370re)h(HTML-k)o(ompression)h(i)382 3885 y(stedet)d(for)e(en)h(internetforbindelse)29 b(med)24 b(st\370rre)g(b\345ndbredde.)523 3998 y(Det)h(kan)h(dog)g(v\346re)g(at) f(de)h(skal)g(ans\346tte)g(en)g(teknik)o(er)i(for)d(at)h(installere)i (l\370sningen,)g(og)382 4111 y(dette)j(k)o(oster)g(ekstra)g(penge.)g (Det)e(kan)i(ogs\345)f(vise)h(sig)f(at)g(k)o(ompression)i(af)e(HTML)e (s\346tter)382 4224 y(s\345)j(store)h(bere)o(gningsm\346ssige)j(kra)n (v)d(til)f(udbyderens)j(maskinpark)f(at)e(udgifterne)j(til)d(n)o(ye)382 4337 y(computere)25 b(bli)n(v)o(er)g(st\370rre)f(end)g(udgifterne)j (til)c(en)h(n)o(y)f(forbindelse.)523 4450 y(En)28 b(st\370rre)h (forbindelse)j(k)o(oster)d(dog)g(\003ere)f(penge)i(hv)o(ert)f(kv)n (artal,)g(mens)g(prisen)g(for)g(en)382 4563 y(systemopgraderin)i (afh\346nger)e(af)e(hv)n(or)h(hurtigt)g(hardw)o(aren)h(bli)n(v)o(er)f (for\346ldet.)g(S\345)e(rentabi-)382 4676 y(liteten)f(afh\346nger)g(af) e(sk\346ringspunktet)28 b(mellem)23 b(de)h(to.)523 4789 y(V)-12 b(ores)21 b(hastighedstest)j(har)c(vist)h(at)f(det)g(er)g (muligt)g(at)g(k)o(omprimere)i(65)e(sider)h(pr)-5 b(.)19 b(sekund,)382 4901 y(mens)33 b(f.eks.)h Fv(jubii.dk)29 b FJ(har)k(omkring)i(26)f(mill.)e(side)n(visninger)38 b(pr)-5 b(.)33 b(uge)g(\(for)h(uge)g(48,)382 5014 y(2001)g([6)q(]\))e (sv)n(arende)j(til)e(netop)h(gennemsnitligt)i(ca.)d(65)g(side)n (visninger)k(pr)-5 b(.)32 b(sekund)3185 4981 y Fz(1)3225 5014 y FJ(,)g(og)382 5127 y Fv(jp.dk)d FJ(har)j(omkring)i(2,7)e(mill.)f (sv)n(arende)j(til)e(6-7)h(pr)-5 b(.)32 b(sekund.)h(F)o(or)e(Jubii)i (er)f(en)g(enk)o(elt)p 382 5208 1196 4 v 487 5272 a Fy(1)516 5303 y Fx(Hvis)19 b(man)h(re)o(gner)f(med)g(at)g(bes\370gstiden)h(kun)g (er)f(16)g(timer)g(om)g(dagen:)2459 5267 y Fl(26)p Fk(:)p Fl(000)p Fk(:)p Fl(000)p Fk(=)p Fy(uge)p 2443 5286 418 4 v 2443 5329 a Fl(7)p Fe(\001)p Fl(16)p Fe(\001)p Fl(60)p Fe(\001)p Fl(60s)p Fk(=)p Fl(uge)2891 5303 y Fd(\031)i Fc(65)p Fb(=)p Fc(s)1831 5652 y FJ(57)p eop %%Page: 58 60 58 59 bop 1284 228 a FI(Kapitel)25 b(8:)e(Praktisk)o(e)i(o)o(v)o(erv)o (ejelser)p 382 266 2989 4 v 382 548 a FJ(maskine)35 b(af)f(samme)g (kaliber)h(som)f(v)o(ed)g(testen)h(alts\345)g(ikk)o(e)g(nok)g (\(spidsbelastningen)40 b(m\345)382 661 y(v\346re)30 b(en)g(hel)h(del)f(h\370jere)i(end)e(den)h(gennemsnitlige\),)j(men)c (det)g(ses)h(at)f(ydelsen)i(er)e(inden)382 774 y(for)37 b(r\346kk)o(e)n(vidde,)h(selv)f(v)o(ed)g(Jubii)g(som)g(le)n(v)o(erer)g (langt)h(\003est)e(sider)h(i)f(Danmark)h(pr)-5 b(.)37 b(uge.)382 887 y(Priseksemplet)31 b(for)e(Cybercity)i(Erhv)o(erv)e(i)f (tabel)i(3.4)f(p\345)g(side)g(15)g(viser)h(at)e(anskaf)n(felse)k(af)382 1000 y(f.eks.)25 b(en)h(enk)o(elt)h(serv)o(er)f(sagtens)h(ville)g (kunne)f(tjenes)h(ind)f(p\345)f(en)h(besparelse)i(med)d(hensyn)382 1112 y(til)e(linjen.)523 1225 y(Endeligt)42 b(kr\346v)o(er)e (l\370sningen)k(i)c(\370)o(vrigt)h(at)f(brugerne)j(kan)e(dek)o (omprimere)i(HTML-)382 1338 y(\002lerne,)25 b(og)f(udbyderen)k(skal)d (v\346re)g(sikk)o(er)h(p\345)e(at)g(dette)i(er)e(tilf\346ldet)i(for)f (at)f(undg\345)i(at)f(miste)382 1451 y(bes\370gende.)382 1744 y FB(8.2)119 b(Bruger)n(ne)382 1951 y FJ(F)o(or)18 b(at)h(f\345)g(brugerne)i(til)e(at)g(acceptere)i(k)o(ompression)h(skal) d(de)g(moti)n(v)o(eres)i(v)o(ed)e(enten)h(at)f(kunne)382 2064 y(ople)n(v)o(e)28 b(en)e(hastighedsm\346ssig)31 b(ge)n(vinst)d(v)o(ed)f(brugen)h(eller)g(simpelthen)h(ikk)o(e)e(at)g (kunne)h(se)382 2177 y(visse)c(sider)-5 b(.)25 b(Eller)e(e)n(vt.)g (blot)i(ikk)o(e)f(opdage)h(at)f(det)f(sk)o(er)-5 b(.)523 2290 y(K)m(ompression)27 b(af)f(HTML)d(nedbringer)28 b(tra\002kk)o(en)f(til)e(udbyderen)k(s\345)c(brugeren)j(vil)e(op-)382 2402 y(le)n(v)o(e)d(at)f(det)h(g\345r)g(hurtigere)i(at)d(hente)i(siden) g(ned.)f(V)-5 b(i)21 b(har)i(udf\370rt)h(en)f(test,)f(se)h(tabel)g(8.1) g(\(selv)o(e)382 2515 y(unders\370gelsen)k(er)d(dokumenteret)i(i)d (appendiks)j(B.3)c(p\345)h(side)h(72\),)g(som)f(viser)h(at)f(tiden)h (kan)382 2628 y(nedbringes)30 b(v\346sentligt)g(v)o(ed)e(at)f(hente)h (HTML-\002lerne)f(k)o(omprimeret,)i(ogs\345)g(selv)f(om)f(der)382 2741 y(allerede)f(bruges)g(k)o(ompression)h(p\345)d(den)h(forbindelse)i (man)d(bruger)-5 b(.)25 b(Is\346r)f(for)h(modem)f(hv)n(or)382 2854 y(vi)i(f.eks.)h(har)f(reduceret)j(tiden)f(for)e(Jyllandspostens)32 b(side)27 b(fra)f(15,3)h(sekunder)i(til)d(3,41)h(se-)382 2967 y(kunder)-5 b(.)30 b(Denne)f(tid)g(er)g(dog)g(uden)g(tiden)h(for)f (k)o(ompression/dek)o(ompre)q(ssi)q(on)q(,)k(men)c(denne)382 3080 y(vil)19 b(v\346re)h(lille)g(pga.)f(af)g(\002lernes)h (st\370rrelse,)i(se)d(e)n(vt.)g(hv)n(or)h(mange)g(\002ler)f(man)g(kan)h (k)o(omprimere)382 3193 y(pr)-5 b(.)23 b(sekund)i(i)e(tabel)i(7.4)e (p\345)h(side)g(54.)p 618 3319 2516 8 v 668 3424 a(HTML-side)201 b(modem)24 b(\(s\))100 b(ISDN)22 b(\(s\))101 b(ADSL)21 b(\(s\))100 b(\002lst\370r)-5 b(.)24 b(\(kb\))p 618 3478 2516 5 v 668 3582 a(Carlsber)n(g)402 b(0,47)303 b(0,05)285 b(0,06)344 b(2,5)668 3695 y(The)23 b(V)-12 b(oice)383 b(1,14)303 b(0,12)285 b(0,14)344 b(4,7)668 3808 y(IT)-8 b(-A)h(visen)394 b(1,23)303 b(0,12)285 b(0,13)344 b(4,6)668 3921 y(ITL)609 b(0,96)303 b(0,10)285 b(0,12)344 b(4,2)668 4034 y(Jyllandsposten)221 b(3,41)303 b(0,48)285 b(0,41)322 b(12,0)668 4147 y(Jubii)576 b(2,24)303 b(0,24)285 b(0,25)344 b(7,7)p 618 4204 2516 8 v 727 4382 a FD(T)-8 b(abel)23 b(8.1:)31 b(Overf\370r)o(selstiderne)e(for)24 b(de)f(k)o(omprimer)m (ede)j(HTML-\002ler)523 4594 y FJ(Man)32 b(kunne)h(mene)f(at)g (reduktionerne)k(for)c(de)g(hurtigere)i(forbindelser)i(er)c(s\345)f (sm\345)h(at)382 4706 y(de)25 b(er)f(uden)i(betydning,)h(men)e(f)o (aktisk)i(skal)e(sv)n(artiderne)j(i)c(programmer)i(generelt)h(v\346re)e (p\345)382 4819 y(under)g(0,2)e(sekunder)j(for)e(at)f(de)h(virk)o(er)g (som)g(om)f(de)g(reagerer)j(\003ydende)e([2)q(].)523 4932 y(Problemet)g(med)e(at)h(brugerne)i(skal)e(kunne)h(dek)o (omprimere)i(HTML-\002lerne)c(kan)h(l\370ses)382 5045 y(v)o(ed)30 b(f.eks.)g(et)g(plugin)i(til)e(en)g(bro)n(wser)h(\226)f (dette)h(gi)n(v)o(er)g(en)f(n\346sten)h(transparent)i(l\370sning)f(da) 382 5158 y(plugin)26 b(automatisk)g(kan)f(installeres)i(og)d (s\345ledes)i(ikk)o(e)f(kr\346v)o(er)g(me)o(get)f(viden)i(af)e (brugeren.)382 5271 y(Under)k(alle)h(omst\346ndigheder)j(skal)c(det)h (v\346re)f(me)o(get)g(let)h(at)f(installere)i(l\370sningen)h(\226)d (man)382 5384 y(kan)c(n\346ppe)g(forv)o(ente)h(me)o(get)f(mere)f(end)h (et)g(klik)g(p\345)f(\204OK\223)g(af)g(den)h(j\346vne)g(bruger)-5 b(.)1831 5652 y(58)p eop %%Page: 59 61 59 60 bop 1284 228 a FI(Kapitel)25 b(8:)e(Praktisk)o(e)i(o)o(v)o(erv)o (ejelser)p 382 266 2989 4 v 523 548 a FJ(Selv)o(e)30 b(udf\370rselstiden)35 b(for)c(dek)o(omprimeringen)j(betyder)e(ikk)o(e) f(noget)h(da)e(den)h(for)g(de)382 661 y(unders\370gte)22 b(algoritmer)f(er)d(s\345)h(k)o(ort)h(at)e(det)h(ikk)o(e)h(kan)f (m\346rk)o(es)g(med)g(en)g(almindelig)i(st\370rrelse)382 774 y(HTML-side.)382 1066 y FB(8.3)119 b(Eksister)n(ende)30 b(l\370sninger)382 1273 y FJ(Med)c(HTTP)d(1.1)i([7)q(])g(ble)n(v)i(der) f(indf\370rt)h(en)f(mulighed)h(for)f(k)o(ompression)j(mellem)d(webser)n (-)382 1386 y(v)o(ere)32 b(og)g(bro)n(wsere.)g(Standarden)i(ble)n(v)e (f\346rdig)h(i)e(juni)h(1999,)g(og)g(stort)h(set)f(alle)g(bro)n(wsere) 382 1499 y(og)g(HTTP-serv)o(ere)f(siden)i(den)g(dato)f(underst\370tter) j(den)e([11)q(])e(og)h(de)g(k)o(omprimeringsme-)382 1612 y(toder)g(den)g(de\002nerer:)g FA(gzip)p FJ(,)d FA(compress)g FJ(og)i FA(deflate)p FJ(,)e(alle)j(baseret)g(p\345)f(Lempel-Zi)n(v-)382 1725 y(algoritmerne.)523 1838 y(Idet)e(webserv)o(er)g(og)f(bro)n(wser)h (nu)f(har)h(en)f(standard)i(at)e(kn)o(ytte)h(sig)f(til)g(n\345r)h(de)f (skal)h(ud-)382 1951 y(v)o(eksle)21 b(k)o(omprimeret)i(data,)e(er)f (det)h(ble)n(v)o(et)g(nemt)f(at)g(k)o(omprimere)j(HTML.)17 b(K)m(ompressions-)382 2064 y(l\370sninger)32 b(\002ndes)e(til)f(de)h (to)f(mest)g(brugte)i(webserv)o(ere,)g(Microsoft)g(Internet)g (Information)382 2177 y(Serv)o(er)22 b(\(IIS\))g(og)g(Apache,)h(som)f (udg\370r)h(t\346t)f(p\345)g(90\045)g(af)g(samtlige)i(webserv)o(ere)g (p\345)e(internet-)382 2290 y(tet)i([12)q(].)523 2402 y(Da)34 b(b\345de)h(serv)o(ere)h(og)e(bro)n(wsere)i(underst\370tter)i (denne)e(standard,)g(skal)f(vi)g(ikk)o(e)g(l\346n-)382 2515 y(gere)d(bek)o(ymre)g(os)f(om)g(omk)o(ostninger)j(og)e(andre)g (problemer)h(i)e(forbindelse)j(med)d(instal-)382 2628 y(lation)j(hos)g(udbyderne)i(og)d(brugerne.)i(Det)e(vil)g(sige)h(at)f (hvis)h(man)e(ben)o(ytter)j(HTTP)c(1.1-)382 2741 y(k)o(ompression,)d (er)e(den)g(eneste)h(tilbage)n(v\346rende)i(ulempe)e(at)f(der)g(stadig) h(stilles)g(st\370rre)g(kra)n(v)382 2854 y(til)c(serv)o(erne)j(hos)e (udbyderne.)523 2967 y(Men)33 b(hvis)h(dette)g(er)f(den)g(eneste)h (ulempe)g(hv)n(orfor)h(ben)o(ytter)g(alle)f(udbyderne)i(det)d(s\345)382 3080 y(ikk)o(e?)382 3373 y FB(8.4)119 b(An)-5 b(v)o(endelse)31 b(af)f(HTTP)f(1.1-k)n(ompr)n(ession)382 3580 y FJ(T)m(il)23 b(at)g(besv)n(are)j(dette)e(sp\370r)n(gsm\345l)i(kan)f(vi)e(ben)o(ytte) j(en)d(teknologianalytis)q(k)29 b(model.)24 b(Proble-)382 3692 y(met)31 b(kan)h(ligge)g(inden)h(for)f(\002re)e(forsk)o(ellige)35 b(aspekter:)f(or)n(ganisationen,)h(teknikk)o(en,)f(pro-)382 3805 y(duktet)25 b(eller)f(viden.)g(Et)e(or)n(ganisatorisk)28 b(problem)c(kan)g(ligge)g(i)f(r\346kk)o(ef\370lgen)j(i)d(arbejdspro-) 382 3918 y(cessens)f(f)o(aser)f(og)g(k)o(oordineringen)k(af)20 b(arbejdsdelingen.)25 b(Et)19 b(vidensm\346ssigt)k(problem)e(kan)382 4031 y(v\346re)28 b(mangel)g(p\345)g(viden)h(og)f(teoretisk)i(indsigt)f (i)e(en)h(teknologi.)i(Et)d(teknisk)i(problem)g(kan)382 4144 y(v\346re)34 b(mangel)h(p\345)g(arbejdskraft)i(eller)e (arbejdsmidler)j(f.eks.)c(v\346rkt\370j)i(og)e(maskiner)-5 b(.)36 b(Og)382 4257 y(endelig)28 b(kan)f(et)f(produktm\346ssigt)j (problem)f(ligge)f(i)f(et)g(kv)n(alitati)n(vt)j(problem)f(eller)f(i)e (de)i(tre)382 4370 y(f\370rn\346vnte)e(da)f(produktet)i(er)d (resultatet)j(af)e(disse.)523 4483 y(V)-5 b(i)20 b(mener)i(ikk)o(e)g (at)g(det)f(kan)h(v\346re)g(et)f(teknisk)i(problem)g(da)e(udbydere)j (allerede)g(har)d(folk)382 4596 y(til)31 b(at)g(administrere)j(deres)f (serv)o(er)l(,)f(og)f(da)h(l\370sningen)i(allerede)f(er)e(la)n(v)o(et,) h(s\345)f(de)g(skal)h(blot)382 4709 y(installere)e(et)e(modul)g(til)g (webserv)o(eren.)h(Bere)o(gningskraft)i(er)d(desuden)i(blot)e(et)g (sp\370r)n(gsm\345l)382 4822 y(om)21 b(penge,)i(s\345)f(et)f(direkte)j (problem)f(ligger)g(heller)g(ikk)o(e)f(i)g(arbejdsmidlerne,)j(blot)e (kan)f(disse)382 4934 y(v\346re)h(for)h(dyre.)523 5047 y(Or)n(ganisatorisk)g(kan)d(der)g(v\346re)g(et)g(k)o (ommunikationsproblem)26 b(hvis)21 b(ledelsen)i(er)e(d\345rlig)382 5160 y(til)27 b(at)h(f\370lge)g(arbejdsprocessen.)33 b(Der)27 b(er)g(m\345sk)o(e)i(ble)n(v)o(et)f(ansat)h(for)e(f\345)h (folk)g(og)g(de)f(ikk)o(e)i(har)382 5273 y(tid)24 b(til)f(at)h (unders\370ge)i(l\370sningerne,)h(og)c(dermed)i(ikk)o(e)f(v)o(ed)g(at)f (de)g(eksisterer)-5 b(.)1831 5652 y(59)p eop %%Page: 60 62 60 61 bop 1284 228 a FI(Kapitel)25 b(8:)e(Praktisk)o(e)i(o)o(v)o(erv)o (ejelser)p 382 266 2989 4 v 523 548 a FJ(Produktm\346ssigt)37 b(mener)e(vi)f(heller)i(ikk)o(e)f(at)g(der)g(er)f(et)h(problem)g(da)g (k)o(ompression)i(i)382 661 y(HTTP)22 b(1.1)j(kan)g(fore)o(g\345)h(med) f(en)f(anerk)o(endt)k(og)d(udbredt)i(standard,)g(nemlig)e FA(gzip)e FJ(som)i(vi)382 774 y(f)o(aktisk)g(ar)n(gumenterede)i(for)d (brugen)h(af)f(i)f(afsnit)h(6.4)g(p\345)f(side)i(46.)523 887 y(Det)31 b(kan)g(dog)h(v\346re)e(at)h(udbyderne)j(enten)e(ikk)o(e)g (v)o(ed)f(at)g(de)g(kan)h(spare)g(penge)g(v)o(ed)f(at)382 1000 y(k)o(omprimere)e(deres)g(sider)l(,)g(eller)g(som)e (f\370rn\346vnt,)i(at)f(der)g(o)o(v)o(erho)o(v)o(edet)i(eksisterer)g (en)e(l\370s-)382 1112 y(ning.)j(Alts\345)g(direkte)h(eller)f (indirekte)i(et)d(vidensm\346ssigt)j(problem)f(\226)e(ideen)i(om)d(at)i (k)o(om-)382 1225 y(primere)h(HTML)d(og)j(HTTP)c(1.1')-5 b(s)32 b(underst\370ttelse)k(af)31 b(det)h(synes)g(at)f(v\346re)h(en)f (v)o(elbe)n(v)n(aret)382 1338 y(hemmelighed.)f(Yderligere)f(kan)f(det)h (v\346re)e(at)h(udbyderne)j(tror)d(at)f(den)i(st\370rste)g(del)f(af)g (de-)382 1451 y(res)i(tra\002k)f(er)g(billeder)j(og)d(lyd,)h(og)f (dermed)i(ikk)o(e)f(tror)g(at)f(HTML-k)o(ompression)i(vil)f(v\346re)382 1564 y(\370k)o(onomisk)g(gunstigt,)g(selv)n(om)f(vi)f(tidligere)i(i)e (rapporten)i(har)f(vist)f(at)g(dette)h(ikk)o(e)g(beh\370)o(v)o(er)382 1677 y(at)23 b(v\346re)h(tilf\346ldet.)523 1790 y(V)-5 b(i)17 b(har)h(p\345)h(bagrund)h(af)e(denne)i(hypotese)g(spur)n(gt)g (udbydere)h(af)d(nogle)h(f\345)f(udv)n(algte)j(st\370rre)382 1903 y(websites)38 b(om)d(hv)n(orfor)k(de)d(ikk)o(e)h(bruger)h(k)o (ompression)h(\(unders\370gelsen)i(er)36 b(beskre)n(v)o(et)i(i)382 2016 y(appendiks)29 b(E)24 b(p\345)i(side)h(76\).)f(Ud)f(af)h(de)g(tre) g(adspur)n(gte)j(udbydere)f(v)n(ar)e(der)h(kun)f(\351n)g(som)g(ga)n(v) 382 2129 y(indtryk)f(af)e(at)f(ha)n(v)o(e)i(unders\370gt)i(muligheden)f (n\370jere.)f(V)-5 b(i)22 b(tolk)o(er)i(sv)n(arene)h(s\345ledes)g(at)e (denne)382 2242 y(f)o(aktisk)i(ha)n(vde)f(unders\370gt)i(potentialet)g (n\346rmere)e(og)f(foretaget)i(en)e(test,)g(mens)h(de)f(to)g(andre)382 2355 y(v)n(ar)g(helt)i(eller)f(delvist)h(uvidende)h(om)d(muligheden.) 523 2467 y(Med)37 b(mere)f(viden)i(b)n(urde)g(der)f(v\346re)g(en)f (stor)i(chance)g(for)f(at)f(udbyderne)k(vil)d(bruge)382 2580 y(k)o(ompression)h(af)d(HTML)e(n\345r)j(det)g(er)f(del)h(af)f(en)g (allerede)i(accepteret)h(standard,)g(v)o(ed)d(at)382 2693 y(s\346tte)26 b(et)h(kryds)g(i)f(et)h(indstillingsvindue)32 b(i)26 b(Microsofts)i(IIS)e(eller)h(installerede)j FA(mod_gzip)382 2806 y FJ(til)20 b(Apache.)h(Eftersom)g(alle)f(n)o(yere)h(bro)n(wsere)h (underst\370tter)h(standarden,)g(er)d(det)h(i)e(hv)o(ert)i(f)o(ald)382 2919 y(klart)j(at)g(initiati)n(v)o(et)h(ligger)g(hos)f(udbyderne.)523 3032 y(Med)g(mere)f(viden)i(hviler)g(an)l(v)o(endelsen)i(af)d(k)o (ompression)i(af)e(HTML)d(udelukk)o(ende)28 b(p\345)382 3145 y(at)e(en)g(e)n(vt.)f(in)l(v)o(estering)k(i)d(re)o(gnekraft)i(er)e (billigere)i(end)e(at)g(in)l(v)o(estere)i(i)e(ekstra)h(b\345ndbredde.) 382 3258 y(En)20 b(s\345dan)i(analyse)g(afh\346nger)g(naturligvis)i(af) c(b\345de)i(af)e(tid)h(og)g(sted)g(og)g(m\345)f(derfor)i(foretages)382 3371 y(v)o(ed)i(den)g(enk)o(elte)h(udbyder)-5 b(.)1831 5652 y(60)p eop %%Page: 61 63 61 62 bop 382 1171 a FC(Kapitel)43 b(9)382 1586 y FK(K)-5 b(onklusion)382 2067 y FB(9.1)119 b(Resultater)30 b(fra)f(rapporten)382 2274 y FJ(Efter)24 b(den)g(k)o(orte)h(introduktion)j(til)23 b(k)o(ompression)k(har)d(vi)g(foretaget)i(en)e(analyse)i(af)e(beho)o(v) o(et)382 2387 y(for)19 b(k)o(ompression)i(af)d(HTML-sider)-5 b(.)18 b(Den)g(viser)i(at)e(der)h(for)g(brugerne)h(kan)f(v\346re)g(en)f (ge)n(vinst)i(i)382 2500 y(form)f(af)f(en)h(tidsbesparelse)k(\226)c (alts\345)g(en)g(ople)n(v)o(else)i(af)e(et)f(hurtigere)k(internet.)e(F) o(or)e(udbyderne)382 2613 y(af)29 b(siderne)j(kan)e(der)g(v\346re)f(en) h(betydelig)i(\370k)o(onomisk)g(ge)n(vinst)f(hvis)f(k)o(omprimeringen)j (er)382 2726 y(ef)n(fekti)n(v)25 b(nok,)g(b\345de)g(med)f(hensyn)i(til) e(at)g(mindsk)o(e)h(st\370rrelsen)i(af)d(store)h(og)f(sm\345)g(sider)l (,)h(men)382 2839 y(ogs\345)f(med)g(hensyn)h(til)e(hastighed.)523 2952 y(F)o(or)i(at)g(f\345)g(et)h(grundlag)h(for)f(forst\345else)i(af)d (hv)n(or)i(me)o(get)e(og)h(hv)n(orfor)i(HTML)23 b(kan)j(k)o(om-)382 3065 y(primeres,)35 b(har)f(vi)g(unders\370gt)i(emnet)f (informationsteori,)j(og)c(vi)g(kan)g(k)o(onstatere)j(at)c(den)382 3178 y(m\346ngde)23 b(data)h(man)f(skal)h(bruge)g(til)f(at)g (repr\346sentere)j(et)d(te)o(gn)g(med,)g(er)g(indenfor)i FD(entr)l(opien)382 3290 y FJ(af)18 b(dataene)i(plus)f(\351n.)f(V)-5 b(i)17 b(har)i(ogs\345)g(k)o(onstateret)i(at)d(entropien)j(kan)e (reduceres)i(yderligere)g(v)o(ed)382 3403 y(at)e(tage)h(st\370rre)h (blokk)o(e)g(af)e(te)o(gn)h(i)f(betragtning,)j(hvis)e(der)g(i)f (dataene)i(fore\002ndes)g(afh\346ngighe-)382 3516 y(der)h(imellem)f(de) h(enk)o(elte)h(te)o(gn.)e(Da)g(vi)g(desuden)j(har)e(k)o(onstateret)i (at)d(der)h(er)f(afh\346ngigheder)382 3629 y(og)j(redundans)i(i)d (HTML,)e(kan)j(vi)f(k)o(onkludere)k(at)d(HTML)d(kan)j(k)o(omprimeres.) 523 3742 y(P\345)e(denne)h(baggrund)i(har)e(vi)f(unders\370gt)k(forsk)o (ellige)f(algoritmer)g(for)d(at)g(klarl\346gge)j(de-)382 3855 y(res)18 b(styrk)o(er)i(og)e(sv)n(agheder)j(i)d(forbindelse)j(med) d(k)o(ompression)j(af)d(HTML.)e(V)-5 b(i)17 b(har)h(unders\370gt)382 3968 y(en)i(algoritme,)h(Huf)n(fman-k)o(odning,)h(der)e(kan)g(bruges)i (til)d(at)h(k)o(ode)g(dataene)i(s\345)d(st\370rrelsen)k(n\345r)382 4081 y(ned)h(i)f(det)h(optimale)h(omr\345de.)523 4194 y(V)-5 b(i)26 b(unders\370gt)k(ordbogsbaserede)j(algoritmer)d(og)d(har) h(fundet)h(ud)f(af)f(at)g(de)h(udm\346rk)o(er)382 4307 y(sig)j(v)o(ed)f(k)o(ompression)k(af)c(ens)h(blokk)o(e)h(best\345ende)h (af)e(\003ere)f(te)o(gn,)h FD(m\370nstr)m(e)p FJ(,)g(og)f(derfor)i(er) 382 4420 y(gode)c(til)f(HTML-tags.)g(Derudo)o(v)o(er)h(kan)g(de)f(med)g (fordel)i(k)o(ombineres)g(med)e(Huf)n(fman)h(s\345-)382 4532 y(dan)g(at)f(styrk)o(erne)j(v)o(ed)d(de)h(to)f(principper)j (forenes.)f(LZ77)e(er)g(en)g(af)g(disse)i(algoritmer)g(og)e(i)382 4645 y(k)o(ombination)f(med)e(Huf)n(fman)f(implementeret)j(i)d(det)h (udbredte)i(program)f FA(gzip)p FJ(.)523 4758 y(Derudo)o(v)o(er)19 b(har)g(vi)f(unders\370gt)i(en)f(transformation,)i(Burro)n(ws-wheeler)n (-transformatio)q(ne)q(n,)382 4871 y(der)f(efterfulgt)j(af)d(et)f (princip)j(v)o(ed)e(na)n(vn)h(mo)o(v)o(e-to-front)i(kan)d(resultere)j (i)c(data)i(der)f(kan)h(k)o(om-)382 4984 y(primeres)j(me)o(get)g(ef)n (fekti)n(vt)h(med)d(Huf)n(fman-k)o(odning.)27 b(De)22 b(tre)i(algoritmer)h(er)e(k)o(ombineret)i(i)382 5097 y(programmet)g FA(bzip2)p FJ(.)523 5210 y(Efter)30 b(unders\370gelse)35 b(af)30 b(de)h(forsk)o(ellige)i(k)o(ompressionsalgorit)q(mer)j(har)31 b(vi)f(beskre)n(v)o(et)382 5323 y(tre)k(mulige)h(l\370sninger)i(som)d (kunne)h(t\346nk)o(e)g(sig)f(at)g(v\346re)h(brugbare.)h(Ud)d(af)h (disse)h(har)g(vi)1831 5652 y(61)p eop %%Page: 62 64 62 63 bop 1474 228 a FI(Kapitel)24 b(9:)g(K)m(onklusion)p 382 266 2989 4 v 382 548 a FJ(v)n(algt)j(at)f(implementere)j(den)e (sidste,)g(nemlig)g(opdeling)i(af)d(HTML-\002len)f(i)h(tre,)g(tags,)h (tekst)382 661 y(og)g(en)f(k)o(ontrol\002l,)j(for)d(at)h(se)g(om)f(det) h(kan)g(betale)h(sig)f(at)f(k)o(omprimere)j(de)d(forsk)o(ellige)k(dele) 382 774 y(af)d(\002len)g(hv)o(er)h(for)f(sig.)h(P\345)e(baggrund)k(af)d (v)n(ores)i(unders\370gelse)i(af)c(algoritmer)i(har)f(vi)f(v)n(algt)382 887 y(at)g(bruge)h FA(gzip)d FJ(p\345)i(HTML-delen)g(og)g FA(bzip2)f FJ(p\345)h(tekstdelen.)i(K)m(ontrol\002len)g(best\345r)f(af) f(en)382 1000 y(r\346kk)o(e)d(tal)g(som)f(vi)g(k)o(omprimerer)j(med)d (Huf)n(fman-k)o(odning.)523 1112 y(Efter)31 b(implementering)k(af)c(v)n (ores)i(l\370sning)g(har)f(vi)f(fundet)i(ud)e(af)g(at)h(v)n(ores)g (algoritme)382 1225 y(ikk)o(e)i(k)o(omprimerer)h(bedre)f(end)f (eksisterende)k(l\370sninger)-5 b(.)35 b(Man)e(kan)g(dog)h(muligvis)g (l\370se)382 1338 y(dette)j(problem)h(v)o(ed)f(at)f(sk\346re)h (taldelen)h(fra,)f(for)f(i)g(stedet)i(at)e(mark)o(ere)i(o)o(v)o(er)n (gangen)h(fra)382 1451 y(HTML)27 b(til)i(tekst)h(med)f(et)g(\003ag.)g (Desv\346rre)h(vidste)g(det)g(sig)f(at)g(v)n(ores)i(implementering)h(v) n(ar)382 1564 y(me)o(get)j(langsom,)g(v)o(ed)g(at)g(unders\370ge)i(v)n (ores)f(implementering)i(med)c(teoretisk)j(tidsk)o(om-)382 1677 y(pleksitet)26 b(f)o(andt)e(vi)g(ud)f(af)h(at)f(problemet)j(sk)o (yldtes)f(implementeringen)i(af)d(splitteren.)523 1790 y(F)o(or)g(at)h(\002nde)g(ud)g(af)f(om)g(v)n(ores)j(l\370sning)f(vil)f (bli)n(v)o(e)h(brugt)g(har)f(vi)g(gjort)g(os)g(nogle)h(prakti-)382 1903 y(sk)o(e)c(o)o(v)o(erv)o(ejelser)l(,)j(hv)n(or)e(vi)e(har)i (fundet)g(ud)f(af)g(at)f(med)h(mere)g(viden)h(b)n(urde)g(der)g(v\346re) e(en)h(stor)382 2016 y(chance)i(for)f(at)f(udbyderne)j(vil)e(bruge)h (HTML-k)o(omprimering.)f(Specielt)h(n\345r)f(det)g(er)f(en)h(del)382 2129 y(af)f(en)h(allerede)i(accepteret)g(standard)g(som)e(HTTP)d(1.1)i (som)h(fjerner)h(de)f(\003este)g(ulemper)h(ud-)382 2242 y(byderne)j(og)e(brugerne)j(kan)e(k)o(omme)f(ud)g(for)-5 b(.)25 b(Det)g(eneste)i(tilbage)n(v\346rende)h(problem)f(er)e(de)382 2355 y(in)l(v)o(esteringer)33 b(i)c(bere)o(gningskraft)34 b(som)29 b(udbyderne)j(muligvis)f(skal)f(foretage.)h(Det)e(virk)o(er) 382 2467 y(dog)20 b(som)g(om)f(det)i(ville)g(v\346re)e(v\346sentligt)j (billigere)h(end)d(at)g(in)l(v)o(estere)i(i)e(ekstra)h(b\345ndbredde.) 382 2760 y FB(9.2)119 b(P)n(erspekti)o(v)o(ering)382 2967 y FJ(Der)28 b(er)g(for)h(os)g(ingen)h(tvi)n(vl)f(om)f(at)g(k)o (omprimering)j(af)e(HTML)d(pt.)i(er)h(en)f(god)h(id\351.)g(Der)f(er)382 3080 y(penge)d(at)e(spare)i(for)e(udbyderne)k(og)c(siderne)j(vil)d (indl\346ses)i(hurtigere)h(for)e(brugerne.)523 3193 y(Man)e(kan)g (naturligvis)k(ar)n(gumentere)e(for)f(at)f(man)f(i)h(takt)g(med)g (udviklingen)k(kan)c(f\345)g(hur)n(-)382 3306 y(tigere)i (internetforbindelse)q(r)k(til)23 b(den)g(samme)g(pris.)g(Men)f(det)i (samme)e(g\346lder)i(processorer)l(,)382 3419 y(og)h(rentabiliteten)k (i)24 b(HTML-k)o(ompression)j(afh\346nger)f(derfor)h(af)d(udviklingen) 29 b(i)24 b(forholdet)382 3532 y(mellem)f(de)h(to.)523 3644 y(Et)c(helt)h(andet)i(problem)f(er)e(at)h(fordelingen)j(i)d (datam\346ngder)i(m\345sk)o(e)e(i)g(fremtiden)h(bli)n(v)o(er)382 3757 y(\346ndret)33 b(mere)f(i)g(retning)i(af)e(andre,)h(tungere)h (formater)f(end)g(blot)g(tekstbaserede)j(HTML-)382 3870 y(sider)-5 b(.)24 b(Men)f(s\345)g(vil)h(det)f(til)h(geng\346ld)g (v\346re)g(rele)n(v)n(ant)g(at)g(fors\370ge)h(at)e(k)o(omprimere)i(de)e (forma-)382 3983 y(ter)l(,)h(som)f(det)h(ogs\345)g(allerede)i(sk)o(er)e (med)f(video)i(og)e(lyd.)523 4096 y(Det)f(ville)g(kr\346v)o(e)h(en)f (n\346rmere)g(unders\370gelse)k(at)c(kunne)h(f)o(astsl\345)h(med)e (sikk)o(erhed)i(hv)n(or)n(-)382 4209 y(for)29 b(udbyderne)j(ikk)o(e)e (i)f(h\370jere)h(grad)g(ben)o(ytter)h(HTTP)26 b(1.1-k)o(ompression.)33 b(Hvis)c(de)g(st\370rre)382 4322 y(udbydere)g(be)o(gynder)f(at)e(udn)o (ytte)i(muligheden,)g(virk)o(er)g(det)e(dog)h(sandsynligt)i(at)d(k)o (endska-)382 4435 y(bet)e(ogs\345)g(vil)g(brede)g(sig)g(til)g(mindre.) 1831 5652 y(62)p eop %%Page: 63 65 63 64 bop 382 1212 a FK(Litteratur)427 1657 y FJ([1])47 b(John)28 b(E.)f(Hopcroft)i(og)e(Jef)n(fre)o(y)i(D.)d(Ullman)i(Alfred)g (V)-12 b(.)26 b(Aho.)47 b FD(Data)27 b(structur)m(es)j(and)579 1770 y(algorithms)p FJ(.)35 b(Addison-W)-7 b(esle)o(y)26 b(Publishing)g(Compan)o(y)-6 b(,)24 b(1987.)427 1957 y([2])47 b(Peter)69 b(Bickford.)183 b(Human)69 b(interf)o(ace)j (online:)g(W)-7 b(orth)70 b(the)g(w)o(ait?,)f(1999.)579 2070 y Fv(http://develop)o(er.)o(ne)o(ts)o(ca)o(pe)o(.co)o(m/)o(vi)o (ew)o(so)o(urc)o(e/)o(bi)o(ck)o(fo)o(rd_)579 2182 y(wait.htm)p FJ(.)427 2369 y([3])47 b(P)o(atrick)61 b(Chen.)151 b(Modem)61 b(tutorial)h(-)e(data)h(compression)i(protocols,)g(1991.)579 2482 y Fv(http://www.ics)o(.mq)o(.e)o(du)o(.a)o(u/)o(doc)o(s/)o(ge)o (ne)o(ra)o(l/t)o(ec)o(hn)o(ic)o(al)o(/)579 2595 y(modem/MT-)t(Compre)o (ss)o(io)o(n.)o(ht\045)o(ml)o FJ(.)427 2781 y([4])47 b(Thomas)20 b(M.)f(Co)o(v)o(er)h(and)g(Jo)o(y)h(A.)e(Thomas.)26 b FD(Elements)20 b(of)h(Information)h(Theory)p FJ(.)27 b(John)579 2894 y(W)l(ile)o(y)d(&)e(Sons,)h(1991.)427 3081 y([5])47 b(Cybercity)170 b(erhv)o(erv)h(f)o(astnet)f (internetforbindelse)q(r)l(,)k(no)o(v)169 b(2001.)579 3194 y Fv(http://erhverv)o(.cy)o(be)o(rc)o(it)o(y.)o(dk/)o(pr)o(od)o (uk)o(te)o(r/f)o(as)o(tn)o(et)o(/)579 3307 y(internetforbin)o(del)o(se) o(/)p FJ(.)427 3493 y([6])47 b(Gallup)24 b(website)g(inde)o(x.)35 b Fv(http://www.fdi)o(m.)o(dk)o(/?)o(vis)o(=i)o(nd)o FJ(.)427 3680 y([7])47 b(R.)37 b(Fielding,)i(J.)f(Gettys,)h(J.)f (Mandul,)h(H.)e(Frystyk,)i(L.)e(Masinter)l(,)j(P)-10 b(.)37 b(Leach,)h(and)579 3793 y(T)-7 b(.)23 b(Berners-Lee.)39 b(Hyperte)o(xt)26 b(transfer)h(protocol)g(\226)d(http/1.1.)39 b Fv(http://www.w3.)579 3906 y(org/Protocols/)o(rfc)o(26)o(16)o(/r)o (fc)o(261)o(6.)o(tx)o(t)p FJ(.)427 4092 y([8])47 b(Geocra)o(wler)-5 b(.com)71 b(-)f(linux-isdn)k(-)c(isdn)h(compression.)187 b Fv(http://www.)579 4205 y(geocrawler.com)o(/ma)o(il)o(/m)o(sg)o(.p)o (hp3)o(?m)o(sg)o(_i)o(d=)o(137)o(36)o(37)o(&l)o(is)o(t=)579 4318 y(33)p FJ(.)427 4505 y([9])47 b(Acc)82 b(systems)i(custom)f(test)g (-)f(isdn)h(-)f(compression)j(test.)223 b Fv(http:)579 4618 y(//www.etesting)o(lab)o(s.)o(co)o(m/)o(ma)o(in/)o(re)o(po)o(rt)o (s/)o(snc)o(i/)o(re)o(po)o(rt)o(s/)579 4730 y(accrept/accrep)o(03.)o (\045h)o(tm)o FJ(.)382 4917 y([10])47 b(Jean)24 b(loup)g(Gailly)-6 b(.)34 b(The)23 b(gzip)i(home)e(page.)34 b Fv(http://www.gzip.)o(or)o (g/)o FJ(.)382 5104 y([11])47 b(mod_gzip)125 b(for)g(the)f(apache)h (web)f(serv)o(er)-5 b(.)355 b Fv(http://www.)579 5217 y(remotecommunic)o(ati)o(on)o(s.)o(co)o(m/)o(apa)o(ch)o(e/)o(mo)o(d_)o (gzi)o(p/)o FJ(.)382 5403 y([12])47 b(Netcraft)24 b(web)g(serv)o(er)g (surv)o(e)o(y)-6 b(.)34 b Fv(http://www.netc)o(ra)o(ft.)o(co)o(m/)o(su) o(rv)o(ey/)o FJ(.)1831 5652 y(63)p eop %%Page: 64 66 64 65 bop 1497 228 a FI(Kapitel)24 b(:)f(K)m(onklusion)p 382 266 2989 4 v 382 548 a FJ([13])47 b(Netcraft)24 b(web)g(site)g (\002nder)-5 b(.)33 b Fv(http://www.netc)o(ra)o(ft)o(.co)o(m/)o FJ(.)382 736 y([14])47 b(RFC)21 b(1974)r(,)35 b(aug)i(1996.)74 b Fv(ftp://ftp.isi.ed)o(u/)o(in)o(-)t(no)o(te)o(s/)o(rf)o(c19)o(74)o(.) 579 848 y(txt)p FJ(.)382 1036 y([15])47 b(RFC)21 b(2516)r(,)38 b(feb)i(1999.)83 b Fv(ftp://ftp.isi.ed)o(u/)o(in)o(-)t(no)o(te)o(s/)o (rf)o(c25)o(16)o(.)579 1149 y(txt)p FJ(.)382 1337 y([16])47 b(Da)n(vid)36 b(Salomon.)74 b FD(Data)36 b(Compr)m(ession)i(\226)d(The) h(complete)h(r)m(efer)m(ence)p FJ(.)75 b(Springer)n(-)579 1450 y(V)-10 b(erlag,)24 b(1997.)382 1637 y([17])47 b(Khalid)31 b(Sayood.)58 b FD(Intr)l(oduction)34 b(to)d(data)g(compr)m(ession)p FJ(.)59 b(Mor)n(gan)32 b(Kaufmann)f(Pu-)579 1750 y(blishers,)25 b(Inc.,)e(1996.)382 1938 y([18])47 b(Julian)32 b(Se)n(w)o(ard.)57 b(The)31 b(bzip2)h(and)g(libbzip2)h(home)e(page.)59 b Fv(http://sources)o(.)579 2051 y(redhat.com/bzi)o(p2/)o FJ(.)382 2238 y([19])47 b(T)-6 b(elestyrelsen.)209 b(Data)77 b(til)h(of)n(fentligg\370relse,)k(2001.)208 b Fv(http://www.)579 2351 y(telestyrelsen.)o(dk/)o(dk)o(/D)o(at)o(a_)o(til)o(_o)o(ff)o(en)o (tl)o(igg)o(or)o(el)o(se)o(12)o(001)o(.)579 2464 y(xls)p FJ(.)1831 5652 y(64)p eop %%Page: 65 67 65 66 bop 382 1171 a FC(Bilag)43 b(A)382 1586 y FK(Eksempler)382 2067 y FB(A.1)119 b(Eksempler)31 b(fra)e(statistisk)o(e)g(metoder)382 2278 y Fw(A.1.1)99 b(F)n(ortsat)24 b(eksempel)i(fra)f(Huffman-k)o (odning)382 2452 y FJ(Her)e(forts\346ttes)i(eksemplet)h(fra)d (afsnittet)j(om)d(Huf)n(fman-k)o(odning.)j(V)-5 b(i)23 b(sluttede)i(v)o(ed:)432 2752 y(Symbol)p 939 2786 4 113 v 376 w Fv(<)294 b(>)268 b(C6)239 b(C5)h(C4)267 b(T)294 b(/)432 2865 y FJ(F)o(orek)o(omster)p 939 2899 V 207 w(6)305 b(6)f(4)h(4)g(4)f(4)h(3)432 2978 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3011 V 392 w FJ(0,1132)102 b(0,1132)f(0,0754)h (0,0754)f(0,0754)h(0,0754)g(0,0566)p 382 3015 3008 4 v 432 3094 a(Symbol)p 939 3128 4 113 v 1095 3112 5 19 v 1100 3112 37 5 v 1137 3112 5 19 v 725 w Fv(d)295 b(e)g(H)f(L)h(M)267 b(C3)432 3207 y FJ(F)o(orek)o(omster)p 939 3241 4 113 v 207 w(3)305 b(3)f(3)h(3)g(3)f(3)h(2)432 3320 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3353 V 392 w FJ(0,0566)102 b(0,0566)f(0,0566)h(0,0566)f(0,0566)h(0,0566)g(0,0377)p 382 3357 3008 4 v 432 3436 a(Symbol)p 939 3470 4 113 v 348 w Fv(C2)432 3549 y FJ(F)o(orek)o(omster)p 939 3583 V 207 w(2)432 3662 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 3696 V 392 w FJ(0,0377)382 3869 y(Og)23 b(tr\346et)g(ses)h(p\345)g (\002gur)f(A.1:)743 4955 y @beginspecial 0 @llx 0 @lly 272 @urx 116 @ury 2720 @rwi @setspecial %%BeginDocument: c6gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -135.0 213.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 6075 2400 m 6375 1800 l 6675 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6075 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6300 1725 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 6675 2625 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 2625 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 5250 2400 m 5550 1800 l 5850 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5475 1725 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5850 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5175 2625 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 5850 2625 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 3450 2400 m 3750 1800 l 4050 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3450 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3675 1725 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 3375 2625 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4050 2625 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 4350 2400 m 4650 1800 l 4950 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4350 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4950 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4275 2625 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4950 2625 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 4575 1725 m gs 1 -1 sc (C4) col-1 sh gr % Polyline n 2265 3270 m 2565 2670 l 2865 3270 l gs col-1 s gr % Polyline n 2550 2400 m 2850 1800 l 3150 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2250 3000 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2475 2625 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2850 3000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2850 3525 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 2250 3525 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 3150 2625 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 2775 1725 m gs 1 -1 sc (C6) col-1 sh gr /Times-Roman ff 180.00 scf sf 2550 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3150 2100 m gs 1 -1 sc (0) col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1149 5151 a FD(F)l(igur)g(A.1:)30 b(T)-5 b(r\346et)23 b(som)h(det)f(s\345)h(ud)g(efter)g(C6)382 5362 y FJ(De)f(n\346ste)g(5)h(skridt)g(gi)n(v)o(er)g(en)g(n)o(y)f (tabel.)1831 5652 y(65)p eop %%Page: 66 68 66 67 bop 1480 228 a FI(Kapitel)24 b(A:)f(Eksempler)p 382 266 2989 4 v 432 635 a FJ(Symbol)p 939 669 4 113 v 321 w Fv(C11)185 b(C10)212 b(C9)239 b(C8)267 b(<)295 b(>)267 b(C7)432 748 y FJ(F)o(orek)o(omster)p 939 782 V 207 w(7)305 b(6)f(6)h(6)g(6)f(6)h(4)432 861 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 895 V 392 w FJ(0,1320)102 b(0,1132)f(0,1132)h(0,1132)f(0,1132)h(0,1132)g(0,0754)p 382 898 3008 4 v 432 977 a(Symbol)p 939 1011 4 113 v 348 w Fv(C6)240 b(C5)g(C4)432 1090 y FJ(F)o(orek)o(omster)p 939 1124 V 207 w(4)305 b(4)f(4)432 1203 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 939 1237 V 392 w FJ(0,0754)102 b(0,0754)f(0,0754)382 1411 y(T)m(r\346et)23 b(ses)g(nu)h(p\345)g(\002gur)f(A.2.)f(Bem\346rk)h (at)g Fv(")55 b(")22 b FJ(sv)n(arer)i(til)p 2295 1429 5 19 v 2300 1429 37 5 v 2337 1429 5 19 v 79 w(.)459 2222 y @beginspecial 0 @llx 0 @lly 479 @urx 117 @ury 3401 @rwi @setspecial %%BeginDocument: c11gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -67.0 214.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 8400 2400 m 8700 1800 l 9000 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 8400 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 9000 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8325 2625 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 9000 2625 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 8625 1725 m gs 1 -1 sc (C4) col-1 sh gr % Polyline n 7500 2400 m 7800 1800 l 8100 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7500 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8100 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7725 1725 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 7425 2625 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 8100 2625 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 6315 3270 m 6615 2670 l 6915 3270 l gs col-1 s gr % Polyline n 6600 2400 m 6900 1800 l 7200 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6300 3000 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6525 2625 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6900 3000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6900 3525 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 6300 3525 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 7200 2625 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 6825 1725 m gs 1 -1 sc (C6) col-1 sh gr /Times-Roman ff 180.00 scf sf 6600 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7200 2100 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 5475 3300 m 5775 2700 l 6075 3300 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5475 3000 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 3000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 2625 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 3525 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 5475 3525 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 4650 3300 m 4950 2700 l 5250 3300 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4875 2625 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 4650 3000 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 3000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4575 3525 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 3525 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 3900 2400 m 4200 1800 l 4500 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3900 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4500 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3825 2625 m gs 1 -1 sc ( L ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4500 2625 m gs 1 -1 sc (M) col-1 sh gr /Times-Roman ff 180.00 scf sf 4125 1725 m gs 1 -1 sc (C8) col-1 sh gr % Polyline n 3000 2400 m 3300 1800 l 3600 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3000 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3600 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2925 2625 m gs 1 -1 sc ( e ) col-1 sh gr /Times-Roman ff 180.00 scf sf 3600 2625 m gs 1 -1 sc (H) col-1 sh gr /Times-Roman ff 180.00 scf sf 3225 1725 m gs 1 -1 sc (C9) col-1 sh gr % Polyline n 1200 2400 m 1500 1800 l 1800 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1200 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1800 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 1125 2625 m gs 1 -1 sc ( T ) col-1 sh gr /Times-Roman ff 180.00 scf sf 1800 2625 m gs 1 -1 sc (/) col-1 sh gr /Times-Roman ff 180.00 scf sf 1350 1725 m gs 1 -1 sc (C11) col-1 sh gr % Polyline n 2100 2400 m 2400 1800 l 2700 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2100 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2700 2100 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2700 2625 m gs 1 -1 sc (d) col-1 sh gr /Times-Roman ff 180.00 scf sf 2250 1725 m gs 1 -1 sc (C10) col-1 sh gr /Times-Roman ff 180.00 scf sf 2025 2625 m gs 1 -1 sc (" ") col-1 sh gr % Polyline n 4950 2400 m 5400 1800 l 5775 2400 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5025 2100 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5325 1725 m gs 1 -1 sc (C7) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 2100 m gs 1 -1 sc (0) col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1111 2418 a FD(F)l(igur)f(A.2:)31 b(T)-5 b(r\346et)23 b(som)g(det)h(ser)f(ud)h(efter)g(C11)382 2630 y FJ(V)-5 b(i)22 b(tager)j(endnu)f(5)g(iterationer)i(og)e(f\345r)f (en)h(n)o(y)f(tabel.)772 2836 y(Symbol)p 1279 2870 4 113 v 321 w Fv(C16)185 b(C15)g(C14)f(C13)h(C12)772 2949 y FJ(F)o(orek)o(omster)p 1279 2983 V 185 w(13)259 b(12)h(12)282 b(8)305 b(8)772 3062 y Fu(p)p Fr(\()p Fu(x)p Fr(\))p 1279 3096 V 392 w FJ(0,2452)102 b(0,2264)f(0,2264)h(0,1509)g(0,1509)382 3270 y(T)m(r\346et)23 b(ses)g(nu)h(p\345)g(\002gur)f(A.3.)459 4275 y @beginspecial 0 @llx 0 @lly 547 @urx 171 @ury 3401 @rwi @setspecial %%BeginDocument: c16gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -49.0 277.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 9225 3450 m 9525 2850 l 9825 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 9225 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 9825 3150 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 9150 3675 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 9825 3675 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 9450 2775 m gs 1 -1 sc (C4) col-1 sh gr % Polyline n 8625 2550 m 9075 1950 l 9450 2550 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 8700 2250 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 9375 2250 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8925 1875 m gs 1 -1 sc (C12) col-1 sh gr % Polyline n 8325 3450 m 8625 2850 l 8925 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 8325 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8925 3150 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8550 2775 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 8250 3675 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 8925 3675 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 7140 4320 m 7440 3720 l 7740 4320 l gs col-1 s gr % Polyline n 7425 3450 m 7725 2850 l 8025 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7125 4050 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7350 3675 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7725 4050 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7725 4575 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 7125 4575 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 8025 3675 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 7650 2775 m gs 1 -1 sc (C6) col-1 sh gr /Times-Roman ff 180.00 scf sf 7425 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8025 3150 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 6300 4350 m 6600 3750 l 6900 4350 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6300 4050 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6900 4050 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6525 3675 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 6900 4575 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 6300 4575 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 5475 4350 m 5775 3750 l 6075 4350 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5700 3675 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 5475 4050 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 4050 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5400 4575 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 6075 4575 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 5775 3450 m 6225 2850 l 6600 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5850 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6150 2775 m gs 1 -1 sc (C7) col-1 sh gr /Times-Roman ff 180.00 scf sf 6525 3150 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 6225 2550 m 6975 1950 l 7650 2550 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6450 2250 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7425 2250 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6825 1875 m gs 1 -1 sc (C13) col-1 sh gr % Polyline n 4575 2550 m 4875 1950 l 5175 2550 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5100 2775 m gs 1 -1 sc (>) col-1 sh gr /Times-Roman ff 180.00 scf sf 4575 2250 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5175 2250 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4500 2775 m gs 1 -1 sc ( < ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4725 1875 m gs 1 -1 sc (C14) col-1 sh gr % Polyline n 3600 3450 m 3900 2850 l 4200 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3600 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4200 3150 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3525 3675 m gs 1 -1 sc ( L ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4200 3675 m gs 1 -1 sc (M) col-1 sh gr /Times-Roman ff 180.00 scf sf 3825 2775 m gs 1 -1 sc (C8) col-1 sh gr % Polyline n 2700 3450 m 3000 2850 l 3300 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2700 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3300 3150 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2625 3675 m gs 1 -1 sc ( e ) col-1 sh gr /Times-Roman ff 180.00 scf sf 3300 3675 m gs 1 -1 sc (H) col-1 sh gr /Times-Roman ff 180.00 scf sf 2925 2775 m gs 1 -1 sc (C9) col-1 sh gr % Polyline n 3075 2550 m 3525 1950 l 3900 2550 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3150 2250 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3825 2250 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3375 1875 m gs 1 -1 sc (C15) col-1 sh gr % Polyline n 900 3450 m 1200 2850 l 1500 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 900 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 3150 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 825 3675 m gs 1 -1 sc ( T ) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 3675 m gs 1 -1 sc (/) col-1 sh gr /Times-Roman ff 180.00 scf sf 1050 2775 m gs 1 -1 sc (C11) col-1 sh gr % Polyline n 1200 2550 m 1650 1950 l 2025 2550 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1275 2250 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1950 2250 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 1875 m gs 1 -1 sc (C16) col-1 sh gr % Polyline n 1800 3450 m 2100 2850 l 2400 3450 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1800 3150 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2400 3150 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2400 3675 m gs 1 -1 sc (d) col-1 sh gr /Times-Roman ff 180.00 scf sf 1950 2775 m gs 1 -1 sc (C10) col-1 sh gr /Times-Roman ff 180.00 scf sf 1725 3675 m gs 1 -1 sc (" ") col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1111 4471 a FD(F)l(igur)g(A.3:)31 b(T)-5 b(r\346et)23 b(som)g(det)h(ser)f(ud)h(efter)g(C16)382 4683 y FJ(V)-5 b(i)32 b(mangler)j(nu)f(blot)h(4)e(iterationer)k(for)d (at)g(f\345)f(det)i(fulde)f(tr\346.)g(Det)f(sidste)i(k)o(ombinerede)382 4796 y(symbol)24 b(C20)f(har)g(dermed)h(frekv)o(ensen)i(1,)c(dvs.)h(at) g(alle)h(symboler)g(ligge)g(i)f(dette)h(tr\346.)e(Dette)382 4908 y(ses)i(p\345)f(\002gur)h(A.4.)1831 5652 y(66)p eop %%Page: 67 69 67 68 bop 1480 228 a FI(Kapitel)24 b(A:)f(Eksempler)p 382 266 2989 4 v 459 2182 a @beginspecial 0 @llx 0 @lly 547 @urx 333 @ury 3401 @rwi @setspecial %%BeginDocument: c20gren.eps %Magnification: 1.00 /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -22.0 358.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit n 0 842 m 0 0 l 595 0 l 595 842 l cp clip 0.06000 0.06000 sc 1 slc 7.500 slw % Polyline n 7800 3900 m 8100 3300 l 8400 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7800 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8400 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7725 4125 m gs 1 -1 sc ( L ) col-1 sh gr /Times-Roman ff 180.00 scf sf 8400 4125 m gs 1 -1 sc (M) col-1 sh gr /Times-Roman ff 180.00 scf sf 8025 3225 m gs 1 -1 sc (C8) col-1 sh gr % Polyline n 6900 3900 m 7200 3300 l 7500 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6900 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6825 4125 m gs 1 -1 sc ( e ) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 4125 m gs 1 -1 sc (H) col-1 sh gr /Times-Roman ff 180.00 scf sf 7125 3225 m gs 1 -1 sc (C9) col-1 sh gr % Polyline n 7275 3000 m 7725 2400 l 8100 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7350 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8025 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 7575 2325 m gs 1 -1 sc (C15) col-1 sh gr % Polyline n 8775 3000 m 9075 2400 l 9375 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 9300 3225 m gs 1 -1 sc (>) col-1 sh gr /Times-Roman ff 180.00 scf sf 8775 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 9375 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8700 3225 m gs 1 -1 sc ( < ) col-1 sh gr /Times-Roman ff 180.00 scf sf 8925 2325 m gs 1 -1 sc (C14) col-1 sh gr % Polyline n 7725 2100 m 8400 1500 l 9075 2100 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 7875 1800 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 8850 1800 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 8250 1425 m gs 1 -1 sc (C18) col-1 sh gr % Polyline n 4425 1200 m 6450 600 l 8400 1200 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6300 525 m gs 1 -1 sc (C20) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 900 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 7500 900 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 4200 4800 m 4500 4200 l 4800 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 4200 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4800 4500 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4125 5025 m gs 1 -1 sc ( s ) col-1 sh gr /Times-Roman ff 180.00 scf sf 4800 5025 m gs 1 -1 sc (y) col-1 sh gr /Times-Roman ff 180.00 scf sf 4425 4125 m gs 1 -1 sc (C4) col-1 sh gr % Polyline n 3600 3900 m 4050 3300 l 4425 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3675 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 4350 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3900 3225 m gs 1 -1 sc (C12) col-1 sh gr % Polyline n 3300 4800 m 3600 4200 l 3900 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3300 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3900 4500 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 3525 4125 m gs 1 -1 sc (C5) col-1 sh gr /Times-Roman ff 180.00 scf sf 3225 5025 m gs 1 -1 sc ( o ) col-1 sh gr /Times-Roman ff 180.00 scf sf 3900 5025 m gs 1 -1 sc (p) col-1 sh gr % Polyline n 2115 5670 m 2415 5070 l 2715 5670 l gs col-1 s gr % Polyline n 2400 4800 m 2700 4200 l 3000 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2100 5400 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2325 5025 m gs 1 -1 sc (C1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2700 5400 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2700 5925 m gs 1 -1 sc (t) col-1 sh gr /Times-Roman ff 180.00 scf sf 2100 5925 m gs 1 -1 sc (n) col-1 sh gr /Times-Roman ff 180.00 scf sf 3000 5025 m gs 1 -1 sc (b) col-1 sh gr /Times-Roman ff 180.00 scf sf 2625 4125 m gs 1 -1 sc (C6) col-1 sh gr /Times-Roman ff 180.00 scf sf 2400 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3000 4500 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 1275 5700 m 1575 5100 l 1875 5700 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1275 5400 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1875 5400 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 5025 m gs 1 -1 sc (C2) col-1 sh gr /Times-Roman ff 180.00 scf sf 1875 5925 m gs 1 -1 sc (i) col-1 sh gr /Times-Roman ff 180.00 scf sf 1275 5925 m gs 1 -1 sc (f) col-1 sh gr % Polyline n 450 5700 m 750 5100 l 1050 5700 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 675 5025 m gs 1 -1 sc (C3) col-1 sh gr /Times-Roman ff 180.00 scf sf 450 5400 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1050 5400 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 375 5925 m gs 1 -1 sc ( - ) col-1 sh gr /Times-Roman ff 180.00 scf sf 1050 5925 m gs 1 -1 sc (a) col-1 sh gr % Polyline n 750 4800 m 1200 4200 l 1575 4800 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 825 4500 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 1125 4125 m gs 1 -1 sc (C7) col-1 sh gr /Times-Roman ff 180.00 scf sf 1500 4500 m gs 1 -1 sc (0) col-1 sh gr % Polyline n 1200 3900 m 1950 3300 l 2625 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 1425 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 2400 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 1800 3225 m gs 1 -1 sc (C13) col-1 sh gr % Polyline n 1950 3000 m 3000 2400 l 4050 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 2250 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 3675 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 2850 2325 m gs 1 -1 sc (C17) col-1 sh gr % Polyline n 3000 2100 m 4425 1500 l 5850 2100 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 3525 1800 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 1800 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 4275 1425 m gs 1 -1 sc (C19) col-1 sh gr % Polyline n 5100 3900 m 5400 3300 l 5700 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5100 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5025 4125 m gs 1 -1 sc ( T ) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 4125 m gs 1 -1 sc (/) col-1 sh gr /Times-Roman ff 180.00 scf sf 5250 3225 m gs 1 -1 sc (C11) col-1 sh gr % Polyline n 5400 3000 m 5850 2400 l 6225 3000 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 5475 2700 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6150 2700 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 5700 2325 m gs 1 -1 sc (C16) col-1 sh gr % Polyline n 6000 3900 m 6300 3300 l 6600 3900 l gs col-1 s gr /Times-Roman ff 180.00 scf sf 6000 3600 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 180.00 scf sf 6600 3600 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 180.00 scf sf 6600 4125 m gs 1 -1 sc (d) col-1 sh gr /Times-Roman ff 180.00 scf sf 6150 3225 m gs 1 -1 sc (C10) col-1 sh gr /Times-Roman ff 180.00 scf sf 5925 4125 m gs 1 -1 sc (" ") col-1 sh gr $F2psEnd rs %%EndDocument @endspecial 1212 2378 a FD(F)l(igur)h(A.4:)30 b(Det)23 b(f\346r)m(dig)o(e)h(Huf)n(fman-tr\346)382 2654 y FB(A.2)119 b(Eksempler)31 b(fra)e(ordbogsbaser)n(ede)h(metoder)382 2865 y Fw(A.2.1)99 b(Eksempel)26 b(fra)f(Lempel-Zi)o(v)h(78)382 3039 y FJ(Det)h(fulde)h(sk)o(ema)g(fra)f(LZ78.)f(L\346g)g(m\346rk)o(e)h (til)h(at)f(der)g(ikk)o(e)i(er)e(forsk)o(el)i(p\345)e(tuplerne,)i (ogs\345)382 3152 y(selv)n(om)24 b(det)g(er)g(et)f(st\370rre)i (m\370nster)f(man)g(genk)o(ender)-5 b(.)p 428 3287 2896 8 v 478 3382 a FF(ordbog)111 b(tuppel)140 b Fa(x)p 1325 3412 4 100 v 155 w FF(ordbog)111 b(tuppel)189 b Fa(x)p 2275 3412 V 156 w FF(ordbog)160 b(tuppel)190 b Fa(x)p 428 3415 2896 4 v 478 3485 a FA(1:<)199 b(\(0,<\))99 b(<)p 1325 3515 4 100 v 152 w(13:>T)g(\(6,T\))148 b(>T)p 2275 3515 V 103 w(25:si)g(\(15,i\))99 b(si)478 3584 y(2:H)199 b(\(0,H\))99 b(H)p 1325 3614 V 152 w(14:e)149 b(\(0,e\))f(e)p 2275 3614 V 153 w(26:de)g(\(9,e\))h(de)478 3684 y(3:T)199 b(\(0,T\))99 b(T)p 1325 3714 V 152 w(15:s)149 b(\(0,s\))f(s)p 2275 3714 V 153 w(27:)g(\(12,>\))99 b(p>)478 3883 y(5:L)199 b(\(0,L\))99 b(L)p 1325 3913 V 152 w(17:)p 1532 3900 5 17 v 1537 3900 34 5 v 1571 3900 5 17 v 199 w(\(0,)p 1881 3900 V 1886 3900 34 5 v 1920 3900 5 17 v 50 w(\))p 2129 3900 V 2134 3900 34 5 v 2168 3900 5 17 v 2275 3913 4 100 v 351 w(29:)199 b(\(0,>\))99 b(>)p 1325 4013 V 152 w(18:a)149 b(\(0,a\))f(a)p 2275 4013 V 153 w(30:od)g(\(8,d\))h(od)478 4083 y(7:)g(\(10,>\))99 b(y>)478 4182 y(8:o)199 b(\(0,o\))99 b(o)p 1325 4212 V 152 w(20:)p 1532 4199 5 17 v 1537 4199 34 5 v 1571 4199 5 17 v 50 w(e)g(\(17,e\))p 2129 4199 V 2134 4199 34 5 v 2168 4199 5 17 v 148 w(e)p 2275 4212 4 100 v 103 w(32:)198 b(\(0,>\))149 b(>)478 4481 y(11:><)99 b(\(6,<\))g(><)p 1325 4511 V 102 w(23:TM)g(\(3,M\))148 b(TM)p 2275 4511 V 478 4581 a(12:p)h(\(0,p\))99 b(p)p 1325 4611 V 152 w(24:L-)g(\(5,-\))148 b(L-)p 2275 4611 V 428 4633 2896 8 v 382 4893 a FB(A.3)119 b(Eksempler)31 b(fra)e(transf)m(ormationer)382 5103 y Fw(A.3.1)99 b(Eksempel)26 b(fra)f(Burr)n(o)o(ws-Wheeler)382 5277 y FJ(Her)e(bringes)i(den)f(fulde)h(sorterede)h(tabel)e(delt)g(op)g (i)f(to)g(dele,)h(tabel)h(A.1)d(og)i(tabel)g(A.2.)1831 5652 y(67)p eop %%Page: 68 70 68 69 bop 1480 228 a FI(Kapitel)24 b(A:)f(Eksempler)p 382 266 2989 4 v 403 1164 2926 8 v 453 1259 a FF(1)p 586 1289 4 100 v 643 1275 5 17 v 648 1275 34 5 v 682 1275 5 17 v 194 w FA(HTML-side

<)o(body>)o (

Te)o(st)p 2990 1275 V 2994 1275 34 5 v 3028 1275 5 17 v 50 w(af)p 3140 1275 V 3144 1275 34 5 v 3177 1275 5 17 v 49 w(en)453 1358 y FF(2)p 586 1388 4 100 v 643 1375 5 17 v 648 1375 34 5 v 682 1375 5 17 v 194 w FA(af)p 793 1375 V 798 1375 34 5 v 832 1375 5 17 v 50 w(en)p 943 1375 V 948 1375 34 5 v 982 1375 5 17 v 50 w (HTML-side

<)o(HTML>)o(

Te)o(st)453 1458 y FF(3)p 586 1488 4 100 v 643 1475 5 17 v 648 1475 34 5 v 682 1475 5 17 v 194 w FA(en)p 793 1475 V 798 1475 34 5 v 832 1475 5 17 v 50 w(HTML-side

Test)p 3140 1475 V 3144 1475 34 5 v 3177 1475 5 17 v 49 w(af)453 1558 y FF(4)p 586 1588 4 100 v 144 w FA(-side

)o(

Te)o(st)p 2741 1574 5 17 v 2745 1574 34 5 v 2779 1574 5 17 v 50 w(af)p 2890 1574 V 2895 1574 34 5 v 2928 1574 5 17 v 49 w(en)p 3040 1574 V 3044 1574 34 5 v 3077 1574 5 17 v 50 w(HT)o(ML)453 1657 y FF(5)p 586 1687 4 100 v 144 w FA(/HTML>

Test)p 1893 1674 5 17 v 1898 1674 34 5 v 1932 1674 5 17 v 51 w(af)p 2044 1674 V 2048 1674 34 5 v 2081 1674 5 17 v 49 w(en)p 2193 1674 V 2197 1674 34 5 v 2231 1674 5 17 v 50 w(HTM)o(L-sid)o(e

)o(
<)453 1757 y FF(6)p 586 1787 4 100 v 144 w FA (/body>

Test)p 2243 1774 5 17 v 2247 1774 34 5 v 2280 1774 5 17 v 50 w(af)p 2392 1774 V 2397 1774 34 5 v 2430 1774 5 17 v 49 w(en)p 2542 1774 V 2546 1774 34 5 v 2579 1774 5 17 v 49 w(HTML-s)o(ide<)453 1857 y FF(7)p 586 1887 4 100 v 144 w FA (/p>

Tes)o(t)p 2442 1873 5 17 v 2446 1873 34 5 v 2480 1873 5 17 v 50 w(af)p 2592 1873 V 2596 1873 34 5 v 2629 1873 5 17 v 49 w(en)p 2741 1873 V 2745 1873 34 5 v 2779 1873 5 17 v 50 w(HT)o(ML-sid)o(e<)453 1956 y FF(8)p 586 1986 4 100 v 144 w FA(

Test)p 1943 1973 5 17 v 1948 1973 34 5 v 1982 1973 5 17 v 51 w(af)p 2093 1973 V 2098 1973 34 5 v 2131 1973 5 17 v 49 w(en)p 2243 1973 V 2247 1973 34 5 v 2280 1973 5 17 v 50 w(HT)o(ML-si)o(de)453 2056 y FF(9)p 586 2086 4 100 v 144 w FA(

Test)p 2293 2072 5 17 v 2297 2072 34 5 v 2330 2072 5 17 v 49 w(af)p 2442 2072 V 2446 2072 34 5 v 2480 2072 5 17 v 50 w(en)p 2592 2072 V 2596 2072 34 5 v 2629 2072 5 17 v 49 w(HTML-)o(side)453 2156 y FF(10)p 586 2185 4 100 v 102 w FA(

Te)o(st)p 2492 2172 5 17 v 2496 2172 34 5 v 2529 2172 5 17 v 50 w(af)p 2641 2172 V 2646 2172 34 5 v 2679 2172 5 17 v 49 w(en)p 2791 2172 V 2795 2172 34 5 v 2828 2172 5 17 v 49 w(HTML-si)o(de)453 2255 y FF(11)p 586 2285 4 100 v 102 w FA(

Test)p 1593 2272 5 17 v 1598 2272 34 5 v 1632 2272 5 17 v 50 w(af)p 1743 2272 V 1748 2272 34 5 v 1782 2272 5 17 v 51 w(en)p 1894 2272 V 1898 2272 34 5 v 1932 2272 5 17 v 50 w(HTM)o(L-side)o(

<)o(/body)o (>)453 2355 y FF(12)p 586 2385 4 100 v 102 w FA(

Test)p 1293 2371 5 17 v 1298 2371 34 5 v 1332 2371 5 17 v 50 w(af)p 1443 2371 V 1448 2371 34 5 v 1482 2371 5 17 v 50 w(en)p 1593 2371 V 1598 2371 34 5 v 1632 2371 5 17 v 50 w(HTML-side

)o()453 2454 y FF(13)p 586 2484 4 100 v 102 w FA(

Test)p 993 2471 5 17 v 998 2471 34 5 v 1032 2471 5 17 v 50 w(af)p 1143 2471 V 1148 2471 34 5 v 1182 2471 5 17 v 50 w(en)p 1293 2471 V 1298 2471 34 5 v 1332 2471 5 17 v 50 w (HTML-side

<)o(/HTML)o(>)453 2554 y FF(14)p 586 2584 4 100 v 102 w FA(>

Test)p 1993 2571 5 17 v 1998 2571 34 5 v 2031 2571 5 17 v 50 w(af)p 2143 2571 V 2148 2571 34 5 v 2181 2571 5 17 v 50 w(en)p 2293 2571 V 2297 2571 34 5 v 2330 2571 5 17 v 49 w(HTML-s)o(ide

Test)p 2343 2670 5 17 v 2347 2670 34 5 v 2380 2670 5 17 v 49 w(af)p 2492 2670 V 2496 2670 34 5 v 2529 2670 5 17 v 50 w(en)p 2641 2670 V 2646 2670 34 5 v 2679 2670 5 17 v 49 w(HTML)o(-side<)o(/p)453 2753 y FF(16)p 586 2783 4 100 v 102 w FA(>

Test)p 1643 2770 5 17 v 1648 2770 34 5 v 1682 2770 5 17 v 50 w(af)p 1793 2770 V 1798 2770 34 5 v 1832 2770 5 17 v 51 w(en)p 1944 2770 V 1948 2770 34 5 v 1982 2770 5 17 v 50 w(HT)o(ML-sid)o(e

)o(

Test)p 1343 2869 5 17 v 1348 2869 34 5 v 1382 2869 5 17 v 50 w(af)p 1493 2869 V 1498 2869 34 5 v 1532 2869 5 17 v 50 w(en)p 1643 2869 V 1648 2869 34 5 v 1682 2869 5 17 v 50 w(HTML-side

<)o(/body)o(>

Test)p 1043 2969 5 17 v 1048 2969 34 5 v 1082 2969 5 17 v 50 w(af)p 1193 2969 V 1198 2969 34 5 v 1232 2969 5 17 v 50 w(en)p 1343 2969 V 1348 2969 34 5 v 1382 2969 5 17 v 50 w(HTML-side

)o(
Test)p 893 3069 5 17 v 898 3069 34 5 v 932 3069 5 17 v 50 w(af)p 1043 3069 V 1048 3069 34 5 v 1082 3069 5 17 v 50 w(en)p 1193 3069 V 1198 3069 34 5 v 1232 3069 5 17 v 50 w (HTML-side

<)o(HTML>)o()o(<)o(p>Tes)o(t)p 2940 3168 5 17 v 2945 3168 34 5 v 2978 3168 5 17 v 50 w(af)p 3090 3168 V 3094 3168 34 5 v 3127 3168 5 17 v 49 w(en)p 3239 3168 V 3243 3168 34 5 v 3277 3168 5 17 v 453 3251 a FF(21)p 586 3281 4 100 v 102 w FA (HTML>

Test)p 1843 3268 5 17 v 1848 3268 34 5 v 1882 3268 5 17 v 51 w(af)p 1994 3268 V 1998 3268 34 5 v 2031 3268 5 17 v 49 w(en)p 2143 3268 V 2148 3268 34 5 v 2181 3268 5 17 v 50 w(HTML)o(-side)o(

<)o(/body>)o(

Test)p 1543 3368 5 17 v 1548 3368 34 5 v 1582 3368 5 17 v 50 w(af)p 1693 3368 V 1698 3368 34 5 v 1732 3368 5 17 v 50 w(en)p 1843 3368 V 1848 3368 34 5 v 1882 3368 5 17 v 51 w(HTML)o(-side<)o(/p>)o(<)453 3451 y FF(23)p 586 3481 4 100 v 102 w FA (L-side

T)o(est)p 2791 3467 5 17 v 2795 3467 34 5 v 2828 3467 5 17 v 49 w(af)p 2940 3467 V 2945 3467 34 5 v 2978 3467 5 17 v 50 w(en)p 3090 3467 V 3094 3467 34 5 v 3127 3467 5 17 v 49 w(HTM)453 3550 y FF(24)p 586 3580 4 100 v 102 w FA(L>

Test)p 1693 3567 5 17 v 1698 3567 34 5 v 1732 3567 5 17 v 50 w(af)p 1843 3567 V 1848 3567 34 5 v 1882 3567 5 17 v 51 w(en)p 1994 3567 V 1998 3567 34 5 v 2031 3567 5 17 v 49 w(HTML-si)o(de

Test)p 1393 3667 5 17 v 1398 3667 34 5 v 1432 3667 5 17 v 50 w(af)p 1543 3667 V 1548 3667 34 5 v 1582 3667 5 17 v 50 w(en)p 1693 3667 V 1698 3667 34 5 v 1732 3667 5 17 v 50 w(HTML-side

)o(

)o(Test)p 2841 3766 5 17 v 2845 3766 34 5 v 2878 3766 5 17 v 49 w(af)p 2990 3766 V 2994 3766 34 5 v 3028 3766 5 17 v 50 w(en)p 3140 3766 V 3144 3766 34 5 v 3177 3766 5 17 v 49 w(HT)453 3849 y FF(27)p 586 3879 4 100 v 102 w FA (ML>

Test)p 1743 3866 5 17 v 1748 3866 34 5 v 1782 3866 5 17 v 51 w(af)p 1894 3866 V 1898 3866 34 5 v 1932 3866 5 17 v 50 w(en)p 2044 3866 V 2048 3866 34 5 v 2081 3866 5 17 v 49 w(HTML-s)o(ide

Test)p 1443 3965 5 17 v 1448 3965 34 5 v 1482 3965 5 17 v 50 w(af)p 1593 3965 V 1598 3965 34 5 v 1632 3965 5 17 v 50 w(en)p 1743 3965 V 1748 3965 34 5 v 1782 3965 5 17 v 51 w(HTML-s)o(ide<)o(HT)453 4048 y FF(29)p 586 4078 4 100 v 102 w FA (TML-side

Test)p 2890 4065 5 17 v 2895 4065 34 5 v 2928 4065 5 17 v 49 w(af)p 3040 4065 V 3044 4065 34 5 v 3077 4065 5 17 v 50 w(en)p 3189 4065 V 3194 4065 34 5 v 3227 4065 5 17 v 49 w(H)453 4148 y FF(30)p 586 4178 4 100 v 102 w FA (TML>

Test)p 1793 4165 5 17 v 1798 4165 34 5 v 1832 4165 5 17 v 51 w(af)p 1944 4165 V 1948 4165 34 5 v 1982 4165 5 17 v 50 w(en)p 2093 4165 V 2098 4165 34 5 v 2131 4165 5 17 v 49 w(HTML-)o(side<)o(/p><)o(/H)453 4248 y FF(31)p 586 4278 4 100 v 102 w FA(TML>

Test)p 1493 4264 5 17 v 1498 4264 34 5 v 1532 4264 5 17 v 50 w(af)p 1643 4264 V 1648 4264 34 5 v 1682 4264 5 17 v 50 w(en)p 1793 4264 V 1798 4264 34 5 v 1832 4264 5 17 v 51 w(HTML-)o(side<)o(/HTML>)o(<)o(body><)o(p>)p 586 4532 4 155 v 1949 4435 a FF(.)1949 4469 y(.)1949 4502 y(.)729 4685 y FD(T)-8 b(abel)24 b(A.1:)30 b(F)-10 b(\370r)o(ste)24 b(del)g(af)g(den)g(fulde)g (sorter)m(ede)i(tabel)e(fr)o(a)g(eksemplet)1831 5652 y FJ(68)p eop %%Page: 69 71 69 70 bop 1480 228 a FI(Kapitel)24 b(A:)f(Eksempler)p 382 266 2989 4 v 586 1851 4 155 v 1949 1755 a FF(.)1949 1788 y(.)1949 1821 y(.)453 1921 y(33)p 586 1951 4 100 v 102 w FA(af)p 743 1937 5 17 v 748 1937 34 5 v 782 1937 5 17 v 50 w(en)p 893 1937 V 898 1937 34 5 v 932 1937 5 17 v 50 w(HTML-side

<)o(body>)o(

Tes)o(t) p 3239 1937 V 3243 1937 34 5 v 3277 1937 5 17 v 453 2020 a FF(34)p 586 2050 4 100 v 102 w FA(body>

Test)p 2193 2037 5 17 v 2197 2037 34 5 v 2231 2037 5 17 v 50 w(af)p 2343 2037 V 2347 2037 34 5 v 2380 2037 5 17 v 49 w(en)p 2492 2037 V 2496 2037 34 5 v 2529 2037 5 17 v 50 w(HT)o(ML-si)o(de

)o(

Test)p 1243 2137 5 17 v 1248 2137 34 5 v 1282 2137 5 17 v 50 w(af)p 1393 2137 V 1398 2137 34 5 v 1432 2137 5 17 v 50 w(en)p 1543 2137 V 1548 2137 34 5 v 1582 2137 5 17 v 50 w(HTML-side

<)o (/HTML)o(><)453 2220 y FF(36)p 586 2250 4 100 v 102 w FA(de

)o(Test)p 2592 2236 5 17 v 2596 2236 34 5 v 2629 2236 5 17 v 49 w(af)p 2741 2236 V 2745 2236 34 5 v 2779 2236 5 17 v 50 w(en)p 2890 2236 V 2895 2236 34 5 v 2928 2236 5 17 v 49 w(HTML-)o(si)453 2319 y FF(37)p 586 2349 4 100 v 102 w FA(dy>

Test)p 2093 2336 5 17 v 2098 2336 34 5 v 2131 2336 5 17 v 50 w(af)p 2243 2336 V 2247 2336 34 5 v 2280 2336 5 17 v 50 w(en)p 2392 2336 V 2397 2336 34 5 v 2430 2336 5 17 v 49 w(HTML)o(-side)o(

Test)p 1143 2436 5 17 v 1148 2436 34 5 v 1182 2436 5 17 v 50 w(af)p 1293 2436 V 1298 2436 34 5 v 1332 2436 5 17 v 50 w(en)p 1443 2436 V 1448 2436 34 5 v 1482 2436 5 17 v 50 w(HTML-side

<)o(HTML><)o(bo)453 2519 y FF(39)p 586 2548 4 100 v 102 w FA (e

T)o(est)p 2542 2535 5 17 v 2546 2535 34 5 v 2579 2535 5 17 v 49 w(af)p 2691 2535 V 2695 2535 34 5 v 2729 2535 5 17 v 50 w(en)p 2841 2535 V 2845 2535 34 5 v 2878 2535 5 17 v 49 w(HTML-s)o(id)453 2618 y FF(30)p 586 2648 4 100 v 102 w FA(en)p 743 2635 5 17 v 748 2635 34 5 v 782 2635 5 17 v 50 w (HTML-side

)o(Test)p 3090 2635 V 3094 2635 34 5 v 3127 2635 5 17 v 49 w(af)p 3239 2635 V 3243 2635 34 5 v 3277 2635 5 17 v 453 2718 a FF(41)p 586 2748 4 100 v 102 w FA(est)p 793 2734 5 17 v 798 2734 34 5 v 832 2734 5 17 v 50 w(af)p 943 2734 V 948 2734 34 5 v 982 2734 5 17 v 50 w(en)p 1093 2734 V 1098 2734 34 5 v 1132 2734 5 17 v 50 w(HTML-side

T)453 2817 y FF(42)p 586 2847 4 100 v 102 w FA(f)p 693 2834 5 17 v 698 2834 34 5 v 732 2834 5 17 v 50 w(en)p 843 2834 V 848 2834 34 5 v 882 2834 5 17 v 50 w(HTML-side

<)o (p>Test)p 3189 2834 V 3194 2834 34 5 v 3227 2834 5 17 v 49 w(a)453 2917 y FF(43)p 586 2947 4 100 v 102 w FA (ide

Test)p 2641 2934 5 17 v 2646 2934 34 5 v 2679 2934 5 17 v 49 w(af)p 2791 2934 V 2795 2934 34 5 v 2828 2934 5 17 v 49 w(en)p 2940 2934 V 2945 2934 34 5 v 2978 2934 5 17 v 50 w(HTML)o(-s)453 3017 y FF(44)p 586 3047 4 100 v 102 w FA(n)p 693 3033 5 17 v 698 3033 34 5 v 732 3033 5 17 v 50 w (HTML-side

)o(

T)o(est)p 3040 3033 V 3044 3033 34 5 v 3077 3033 5 17 v 50 w(af)p 3189 3033 V 3194 3033 34 5 v 3227 3033 5 17 v 49 w(e)453 3116 y FF(45)p 586 3146 4 100 v 102 w FA (ody>

Test)p 2143 3133 5 17 v 2148 3133 34 5 v 2181 3133 5 17 v 50 w(af)p 2293 3133 V 2297 3133 34 5 v 2330 3133 5 17 v 49 w(en)p 2442 3133 V 2446 3133 34 5 v 2480 3133 5 17 v 50 w(HTM)o(L-sid)o(e

<)o(/b)453 3216 y FF(46)p 586 3246 4 100 v 102 w FA(ody>

Test)p 1193 3233 5 17 v 1198 3233 34 5 v 1232 3233 5 17 v 50 w(af)p 1343 3233 V 1348 3233 34 5 v 1382 3233 5 17 v 50 w(en)p 1493 3233 V 1498 3233 34 5 v 1532 3233 5 17 v 50 w(HTML-side

)o()o(

Test)p 2392 3332 5 17 v 2397 3332 34 5 v 2430 3332 5 17 v 49 w(af)p 2542 3332 V 2546 3332 34 5 v 2579 3332 5 17 v 49 w(en)p 2691 3332 V 2695 3332 34 5 v 2729 3332 5 17 v 50 w(HTM)o(L-side)o(Test)p 943 3432 5 17 v 948 3432 34 5 v 982 3432 5 17 v 50 w(af)p 1093 3432 V 1098 3432 34 5 v 1132 3432 5 17 v 50 w(en)p 1243 3432 V 1248 3432 34 5 v 1282 3432 5 17 v 50 w (HTML-side

)o(<)453 3515 y FF(49)p 586 3545 4 100 v 102 w FA (side

<)o(p>Tes)o(t)p 2691 3531 5 17 v 2695 3531 34 5 v 2729 3531 5 17 v 50 w(af)p 2841 3531 V 2845 3531 34 5 v 2878 3531 5 17 v 49 w(en)p 2990 3531 V 2994 3531 34 5 v 3028 3531 5 17 v 50 w(HTM)o(L-)453 3614 y FF(50)p 586 3644 4 100 v 102 w FA(st)p 743 3631 5 17 v 748 3631 34 5 v 782 3631 5 17 v 50 w(af)p 893 3631 V 898 3631 34 5 v 932 3631 5 17 v 50 w(en)p 1043 3631 V 1048 3631 34 5 v 1082 3631 5 17 v 50 w (HTML-side

)o(Te)453 3714 y FF(51)p 586 3744 4 100 v 102 w FA(t)p 693 3731 5 17 v 698 3731 34 5 v 732 3731 5 17 v 50 w(af)p 843 3731 V 848 3731 34 5 v 882 3731 5 17 v 50 w(en)p 993 3731 V 998 3731 34 5 v 1032 3731 5 17 v 50 w (HTML-side

)o(

T)o(es)453 3814 y FF(52)p 586 3844 4 100 v 102 w FA(y>

Test)p 2043 3830 5 17 v 2048 3830 34 5 v 2081 3830 5 17 v 50 w(af)p 2193 3830 V 2197 3830 34 5 v 2231 3830 5 17 v 50 w(en)p 2343 3830 V 2347 3830 34 5 v 2380 3830 5 17 v 49 w(HTML-)o(side<)o(/p>

Test)p 1093 3930 5 17 v 1098 3930 34 5 v 1132 3930 5 17 v 50 w(af)p 1243 3930 V 1248 3930 34 5 v 1282 3930 5 17 v 50 w(en)p 1393 3930 V 1398 3930 34 5 v 1432 3930 5 17 v 50 w(HTML-side