Projt Algorithmiqu Trnsformé Burrows-whlr 1 Dsription l métho L trnsformé Burrows-Whlr, ourmmnt pplé BWT (pour Burrows-Whlr Trnsform) st un thniqu omprssion onnés. Ell fut invnté pr Mihl Burrows t Dvi Whlr. Ctt thniqu fut rnu puliqu n 1994, suit à préénts trvux Whlr n 1983. Il n s git ps à proprmnt prlr un lgorithm omprssion, r uun réution till n st fftué, mis in un métho réorgnistion s onnés : ls proilités pour qu s rtèrs intiqus initilmnt éloignés ls uns s utrs s rtrouvnt ôt à ôt sont lors ugmntés. Ctt thniqu n st ps très utilisé, mis l on put pnnt rmrqur qu ll st présnt ns l formt zip2 qui st tullmnt l un s formts offrnt l plus grn quotint omprssion. 1.1 L trnsformtion Tout or, l hîn rtèrs à or oit êtr opié ns un mtri n élnt l hîn un rtèr vrs l roit à hqu nouvll lign. Cs ligns sont nsuit lssés pr orr lphétiqu. Nous svons qu, grâ u élg, hqu rnièr lttr hqu lign préè l prmièr lttr l mêm lign, suf pour l lign originl ont on notr l position. D plus, omm ls ligns sont rngés pr orr lphétiqu, on put rtrouvr l prmièr olonn u tlu grâ à l rnièr olonn. Prnons un xmpl. Supposons qu l hîn à or soit TEXTE. On lul tout or l mtri suivnt: T E X T E E T E X T T E T E X X T E T E E X T E T Puis l on lss s hîns pr orr lphétiqu : 1
E T E X T E X T E T T E T E X T E X T E X T E T E Ensuit, on gr n mémoir l lign I l mtri qui orrspon à l hîn originl, ii 4 insi qu l rnièr olonn L, ii TTXEE. Pour or l list L, on utilis n générl l lgorithm Mov-To-Front (voir Stion 1.3). 1.2 L trnsformtion invrs Lors l éomprssion, l hîn oé st rngé pr orr lphétiqu (on rprn l xmpl préént, tt fois-i ns l sns l éomprssion) : 1 2 3 4 5 Coé T T X E E Clssé E E T T X C st ii qu l on s srt u hiffr trnsmis (4). Nous svons qu ls ux rtèrs orrsponnt à t ini n s suivnt ps t qu l rtèr l lign lssé st l prmir l hîn originl. On prt on ii u T n position 4. C T st l uxièm l lign lssé. On rhrh on l uxièm T l lign oé, qui orrspon à l position 2. C T st on suivi un E. C E st l uxièm l lign lssé. On rtourn on hrhr l uxièm E l lign oé. On rriv n position 5. C E st suivi un X... On ontinu insi jusqu à tomr sur l E n position 4 l lign oé. L éomprssion st lors trminé. On rtrouv in nos onnés initils, à svoir l hîn TEXTE. 1.3 L lgorithm Mov-To-Front L lgorithm MTF (Mov-To-Front) srt à or un list rtèrs L pr un vtur inis. L thniqu onsist à rmplr hqu rtèr pr un ini, onné pr un tlu évolunt mnièr ynmiqu. L tlu st tout or initilisé n rngnt ls rtèrs utilisés pour l og omm i : Ini 0 1 2 3 4 5 6... 25 Crtèr A B C D E F G... Z Lorsqu un rtèr st lu, son ini st émis, puis rtèr st plé n prmièr position t tous ls utrs rtèrs élés ( où l nom Mov to Front). Pr xmpl si l prmir rtèr à or st un E, l tlu vinrit : 2
Ini 0 1 2 3 4 5 6... 25 Crtèr E A B C D F G... Z Ainsi, lorsqu s rtèrs smlls s suivnt (s l trnsformé Burrows- Whlr), l flux émis ontinr uoup 0, qui ns un omprssion sttistiqu (typ og Huffmn érit ns l stion 1.4) ugmntr onsiérlmnt l gin omprssion. On not qu ns s, l émission un 0 liss l tlu intiqu, t qu ns ls utr s, l rérrngmnt n onrn qu ls prmirs élémnts u tlu. Pr xmpl, l séqun EEEEEA srit trnsformé n l suit 400001 ; l tlu évolurit omm suit: Ini 0 1 2 3 4 5 6... 25 Étt initil A B C D E F G... Z Tlu moifié pr l prmir E E A B C D F G... Z Tlu onsrvé 4 pr ls 4 E suivnts E A B C D F G... Z Tlu moifié pr l A A E B C D F G... Z L éog st tout ussi simpl: à prtir u mêm tlu initil, il suffit émttr l rtèr orrsponnt à l ini t rngr l tlu n pssnt rtèr n prmir. L tlu évolu xtmnt omm pnnt l phs og. 1.4 Enog Huffmn Étnt onné un txt T onstruit sur un rtin lpht A ontnnt u moins ux lttrs, l métho omprssion Huffmn onsist à trnsformr T n un suit its à l i un fontion nog f vérifint ls propriétés suivnts : f : A {0,1}, x y f(x) n st ps préfix f(y), si x stritmnt plus ourrns qu y ns T, lors f(x) n st ps plus long qu f(y). Notr qu f st rprésntl pr un rr inir omplt ont ls fuills sont étiqutés pr ls élémnts A. L img hqu lttr st otnu à prtir u hmin ttignnt tt lttr puis l rin, n onsiérnt qu un rnh guh o un 0 t un rnh roit un 1. Exmpl : Si A = {,,,} t f() = 1, f() = 01, f() = 001, f() = 000, l fontion f st rprésntl pr l rr l figur 1. L fontion f put évimmnt êtr étnu à l nsml s mots sur A n posnt f(x 1 x 2...x n )= f(x 1 ) f(x 2 )... f(x n ). On pr xmpl f()=000 1 001 001 1 01 1 v l éfinition f préént. 3
Figur 1: Arr inir ssoié à f 1.4.1 Constrution l fontion nog 1) À prtir un prmièr ltur T, on étrmin pour hqu lttr x A l nomr n x ourrns x ns T. Pr xmpl, pour A = {,,,,} t T =, on otint : n = 4,n = 2,n = 1,n = 2,n = 3 2) On onstruit étp pr étp l rr ssoié à un fontion nog pproprié, à prtir un forêt onstitué utnt rrs qu élémnts ns A. Tous s rrs sont réuits à lur rin t ont s pois égux ux nomrs ourrns hqu lttr. À hqu étp, on supprim un rr l forêt n hoisissnt prmi ls rrs rstnt ux rrs pois minimux. Cs ux rrs sont rmplés pr un sul rr ynt un fils guh t un fils roit égux ux ux rrs srifiés. D plus son pois st égl à l somm s pois s ux rrs. Exmpl : v l nomr ourrns l xmpl i-ssus, on urit 5 étps omm érit ns l Figur 2. Notr qu l list rrs st ii onsrvé trié pr orr pois roissnt, mnièr à pouvoir onstruir hqu nouvl rr à prtir s ux prmirs élémnts. 2 Trvil à rélisr On vous mn érir n psuo-lngg, puis progrmmr n C ls opértions suivnts : 1. Un fontion qui prn n ntré un hîn rtèrs t lui fit suir l trnsformé Burrows-whlr. Ctt fontion oit voir s options qui prmttnt visulisr ls mtris otnus lors s étps intrméiirs. 2. Un fontion qui rélis l trnsformé invrs Burrows-whlr érit ns l Stion 1.2. 3. Un fontion qui prn n ntré un hîn rtèrs t lui fit suir l trnsformé Mov-To-Front. 4. Un fontion qui rélis l trnsformé invrs l lgorithm Mov-To-Front. 4
étp 1 : étp 2 : 1 2 2 3 4 2 3 3 4 étp 3 : 3 4 5 étp 4 : 5 7 étp 5 : 12 Figur 2: Ls étps l lgorithm Huffmn 5. Un fontion qui prn n prmètr un hîn rtèrs t rnvoi un rr rprésntnt l fontion og Huffmn pour tt hîn. 6. Un fontion qui, étnt onnés un rtèr t un fontion nog Huffmn pproprié, no rtèr. 7. Un fontion qui, étnt onnés l nog un rtèr t un fontion nog Huffmn pproprié, éo rtèr. 8. Un fontion qui éo un hîn à prtir son o Huffmn. 9. Un fontion nog qui lul l o Huffmn un hîn. 10. Un fontion qui rçoit un hîn rtèrs t prouit n sorti un fihir qui ontint ifférnts ligns orrsponnt ux itms suivnts: L hîn originl à omprssr; L hîn L résultnt l trnsformé Burrows-whlr; L position l hîn initil ns l mtri trié; 5
L résultt R l trnsformé MTF sur l hîn L; L list s nogs n its R pr l nog Huffmn. Pour hun s lgorithms i-ssus vous vz fournir : un fihir o.txt qui spéifi l lgorithm n psuo-lngg (v son utur), t s omplxité, ls sours C in ommntés u progrmm (v son utur), t un réprtoir tst qui ontint u minimum trois tsts intérssnts fit pour votr lgorithm insi qu ls résultts otnus. Vous vz in sûr vérifir qu l éog l nog un hîn vous onn l hîn ll mêm. D mêm, l nog u éog un o vous ronn l o. Un progrmm qui mrh mis sns oumnttion, ni fihirs tst sr noté à 1/3 l not finl. 3 Rmis u projt L projt sr nvoyé à l rss touili@lif.jussiu.fr u plus tr l 4 févrir 2007 à minuit. Un fihir xplition rmis projt.txt oit êtr inlus. C qui oit êtr nvoyé st un fihir rhiv Unix VotrNom.tr ontnnt ls réprtoirs orrsponnt ux lgorithms i-ssus. 6