Hasisalgoritmqachonqo'llaniladi?
Agar ochko'zalgoritmushbumuammoniechishgaimkonberadiganbo'lsa, qandayqilibbilasiz?Bu erdaumumiyretseptlarmavjudemas, ammo hasisalgoritmlartomonidanhalqilinganmuammolargaxosbo'lganikkitaxususiyatmavjud. Bu hasistanlovprintsipivapastkiqismlargamaqbullikxususiyati.
Hasistamoyil
Aytishlaricha, hasislikbilantanlanganmulktamoyilimahalliyoptimallashtirilgan (hasis) tanlovlarketma-ketligi global miqyosdaengmaqbulechimniberadiganbo'lsa, optimallashtirishmuammosiganisbatanqo'llaniladi.Hasisvadinamikdasturlasho'rtasidagifarqniquyidagichaizohlashmumkin: harbirqadamdahasisalgoritm "engsemizparcha" nioladivakeyinqolganlariorasidanengyaxshisinitanlashgaharakatqiladi; dinamikdasturlashalgoritmibarchavariantlarningoqibatlarinioldindanhisoblashorqaliqarorqabulqiladi.
Hasisalgoritmmaqbulechimberishiniqandayisbotlashmumkin?Bu hardoim ham ahamiyatsizemas, lekinodatiyholatdabundayisbotTeorem 1 isbotidaishlatilgansxemagaamalqiladi.Birinchidan, birinchibosqichdahasistanlovmaqbulechimgaolibboradiganyo'lniyopibqo'ymasliginiisbotlaymiz: harbirechimuchunhasistanlovgamoskeladiganvaundan ham yomonbo'lmaganyanabir bor. birinchiKeyinbirinchibosqichdagihasistanlovdankeyinpaydobo'ladiganpastkiqismningboshlang'ichgao'xshashligivadalilindüksiyabilanyakunlanishiko'rsatilgan.
Quyimasalalaruchunmaqbullik
Boshqachaqilibaytganda, hasisalgoritmlaryordamidahalqilinganmuammolarmaqbulpastkituzilishxususiyatigaega: butunmuammoningengmaqbulechimipastkiqismlargamaqbulechimlarnio'zichigaoladi. (Biz buxususiyatbilantanishganedik, dinamikdasturlashhaqidagaplashamiz).Masalan, 1-teorema isbotida, agar A 1-sonli da'vonio'zichigaolganmaqbulda'volaryig'indisibo'lsa, A '= A {1} - buda'volarningkichikroqto'plami S' uchuntalablarning optimal to'plamidir, deb da'volarnio'zichigaoladi. ³ f1.
Xaffmankodlari
Haffmankodlari (Haffmankodlari) - ma'lumotlarningxususiyatlarigaqarabodatdahajmning 20% dan 90% gachatejaydiganma'lumotnisiqishningkengtarqalganvajudasamaraliusuli. Belgilarketma-ketliginiko'rsatadiganma'lumotlarniko'ribchiqing.HasisHaffmanalgoritmimuayyanbelgilarpaydobo'lishchastotalarinio'zichigaolganjadvaldanfoydalanadi.Ushbujadvaldanfoydalanib, harbirbelgiikkiliksimshaklidamaqbulvakilianiqlanadi.Aytaylik, sizsiqmoqchibo'lgan 100000 ta belgima'lumotlarifaylimavjud.Ushbufayldagibelgilar 1-jadvalda ko'rsatilganchastotabilantopilgan.Shundayqilib, butunfayloltitaturlixilbelgilarnio'zichigaoladivamasalan, a belgisiunda 45000 martauchraydi. Bundayma'lumotlarfaylinitaqdimetishningko'plabusullarimavjud.Ikkilikbelgilarkodiniishlabchiqishvazifasiniko'ribchiqing, undaharbirbelginoyobikkiliksatrbilanifodalanadi.
Agar sobituzunlikdagikodyokiyagonakodishlatilsa, oltitabelginiko'rsatishuchun 3 bit kerakbo'ladi: a = 000, b = 001, ..., / = 101. Ushbuusuldanfoydalangandabutunfaylnikodlashuchun 300000 bit kerakbo'ladi. Yaxshinatijalargaerishishmumkinmi?
1-jadval.Belgilarketma-ketliginikodlashvazifasi.
O'zgaruvchanuzunlikdagikodyokinotekiskoddanfoydalanib, sobituzunlikdagikodniishlatishdananchayaxshinatijalargaerishishmumkin.Bungatez-tezuchraydiganbelgilarqisqakodliso'zlarbilan, kamdan-kamuchraydiganbelgilaruzoqbelgilarbilansolishtirilganligisabablierishiladi.
Bundaykod 1-jadvalning oxirgiqatoridakeltirilgan.Unda a harfi 1 bitlisatrbilanifodalanadi, f harfiesa 4 bitlisatrbilanifodalanadi 1100.Ushbukoddanfoydalanibfaylniko'rsatishuchunsizgakerakbo'ladi (45 • 1 + 13 • 3 + 12 • 3 + 16 • 3 + 9 • 4 + 5 • 4) • 1000 = 224000 bit.Bu qo'shimcharavishdatovushning 25 foizinitejaydi.
Faqatgina A, B, C, D harflaridaniboratbo'lgan 130 uzunlikdagichiziqniko'ribchiqing. Bundantashqari, harbirbelginingchastotasima'lum deb hisoblang: ABCD 70 3 20 37 Bizningvazifamizharbirbelgiuchuntegishlikodlanganbo'lishiuchun bit kodniberishdir. chiziqimkonqadarqisqaedi. Kodlashvariantlaridanbiri: A = 00, B = 01, C = 10, D = 11. Keyinkodda 260 bit bo'ladi. Men A kodlibelgibir bit bilankodlangankodlashbilanshug'ullanishnixohlayotganimintuitivravishdaravshan (masalan, B qiymatiuchgatengbo'lishimumkin).
Biroq, turlixiluzunlikdagibitliketma-ketlikbilanbelgilarnikodlashdadekodlashmuammosipaydobo'lishimumkin.Ushbumuammonihalqilishningbirusuli - buprefikskodlash.Ushbukodlashbilanharqandayikkitabelgiuchunbiriningkodiboshqasiningkodiprefiksiemas.Harbirbundaykodlashqirralarida 0 va 1 bo'lganto'liqbargli (harbiruchidayokinolyokiikkitao'g'il) ikkilikdaraxtivabarglaridakodlanganbelgilarbilanifodalanishimumkin.
Optimal daraxt
Bizningvazifamizbarglariramzlarbilanbelgilanganvadaraxtningnarxiniminimallashtiradigan, deb belgilangananiq, binardaraxtnitopishdir.
(daraxtdagi i-chi belgichuqurligi). Biz daraxtningichkiuchiningchastotasinio'g'illariningchastotalariyig'indisisifatidaaniqlaymiz.Ushbuta'rifbilandaraxtningharbiruchiningchastotasishunchakikodlashyokidekodlashpaytidaushbuuchgakirishlarsoniekanliginiko'rishmumkin. Daraxtningnarxi, ildizdantashqari, daraxtningbarchauchlarichastotalariningyig'indisigatengbo'ladi.Ikkalanoyobbelgilarengmaqbuldaraxtningengpastkiqismidaosibqo'yilishianiq.NUO, f1, f2 - bu minimal chastotalar. F1 va ... fn, aka-ukavaopa-singillarbo'lganf1, ...fnchastotalaruchunmaqbuldaraxtningqiymatiyig'indiga (f1 + f2) vachastotalaruchunengmaqbuldaraxtnarxiga (f1 + f2), ... fn.
Do'stlaringiz bilan baham: |