Šobrīd par to domā maz cilvēkukā darbojas failu saspiešana. Salīdzinot ar pagātni, personālā datora lietošana ir kļuvusi daudz vienkāršāka. Un gandrīz visi, kas strādā ar failu sistēmu, izmanto arhīvus. Bet maz cilvēku domā par to, kā viņi strādā un kā tiek saspiesti faili. Pati šī procesa versija bija Hafmana kodi, un tie līdz šai dienai tiek izmantoti dažādos populāros arhīvos. Daudzi lietotāji pat nedomā par to, cik viegli ir saspiest failu un kā tas darbojas. Šajā rakstā aplūkosim, kā notiek saspiešana, kādas nianses palīdz paātrināt un vienkāršot kodēšanas procesu, kā arī izdomāsim, kāds ir kodēšanas koka veidošanas princips.
Pats pirmais algoritms efektīvas darbības veikšanaielektroniskās informācijas kodēšana kļuva par Hafmana piedāvāto kodu vēl divdesmitā gadsimta vidū, proti, 1952. gadā. Tas ir tas, kurš šobrīd ir lielākais informācijas elements, kas paredzēts informācijas saspiešanai. Pašlaik daži no populārākajiem avotiem, kas izmanto šo kodu, ir ZIP, ARJ, RAR arhīvi un daudzi citi.
Huffmana algoritms ir balstīts uz shēmu,ļauj aizstāt visticamākās, visbiežāk sastopamās rakstzīmes ar binārās sistēmas kodiem. Un tie, kas ir mazāk izplatīti, tiek aizstāti ar garākiem kodiem. Pāreja uz garajiem Hafmana kodiem notiek tikai pēc tam, kad sistēma ir izmantojusi visas minimālās vērtības. Šis paņēmiens ļauj samazināt koda garumu katram sākotnējā ziņojuma rakstzīmei kopumā.
Lai ilustrētu algoritmu, ņemkoda koka veidošanas grafiskā versija. Lai izmantotu šo metodi, lai tā būtu efektīva, ir vērts precizēt dažu vērtību definīciju, kas nepieciešama šīs metodes koncepcijai. Loka un mezglu kopu kopu, kas tiek virzīti no mezgla uz mezglu, sauc par grafiku. Koks pats par sevi ir grafiks ar noteiktu īpašību kopumu:
Huffman koda veidošana tiek veikta no burtiemievades alfabēts. Tiek izveidots saraksts ar tiem mezgliem, kuri ir brīvi nākotnes kodu kokā. Katra šī saraksta mezgla svaram jābūt tādam pašam kā attiecīgajam mezglam atbilstošā ziņojuma burta rašanās varbūtībai. Šajā gadījumā no vairākiem topošā koka mezgliem tiek izvēlēts tas, kas sver vismazāk. Turklāt, ja minimālie rādītāji tiek novēroti vairākos mezglos, varat brīvi izvēlēties jebkuru no pāriem.
Lai uzlabotu saspiešanas efektivitāti, jums tas jādaraveidojot kodu koku, izmantojiet visus datus par iespējamību, ka burti parādās konkrētā failā, kas pievienots kokam, un neļaujiet tos izkaisīt lielā skaitā teksta dokumentu. Ja pirmo reizi izejat cauri šim failam, varat nekavējoties aprēķināt statistiku par to, cik bieži tiek atrasti burti no saspiestā objekta.
Lai paātrinātu algoritmu, identificē burtusnepieciešams veikt nevis pēc konkrētas vēstules parādīšanās varbūtības rādītājiem, bet gan pēc tā rašanās biežuma. Tas padara algoritmu vienkāršāku un daudz ātrāku darbu. Tas arī ļauj izvairīties no peldošā komata un dalīšanas operācijām.
Hafmana kodi - vienkārši un sen izveidotialgoritms, kuru joprojām izmanto daudzas pazīstamas programmas un uzņēmumi. Tās vienkāršība un skaidrība ļauj sasniegt efektīvus jebkura lieluma failu saspiešanas rezultātus un ievērojami samazināt to vietu atmiņas diskā. Citiem vārdiem sakot, Huffmana algoritms ir ilgi pētīta un labi izstrādāta shēma, kuras atbilstība līdz mūsdienām nemazinās.