mishev / В.В. Лидовский - Теория Информации
.pdfKOTORYH NE NUVNO PERESTRAIWATX WSE DEREWO, A NUVNO LI[X NEZNA^I- TELXNO IZMENQTX.
bINARNOE DEREWO NAZYWAETSQ UPORQDO^ENNYM, ESLI EGO UZLY MOGUT BYTX PERE^ISLENY W PORQDKE NEUBYWANIQ WESA I W \TOM PERE^NE UZLY, IME@]IE OB]EGO RODITELQ, DOLVNY NAHODITXSQ RQDOM, NA ODNOM QRUSE. pRI^EM PERE^ISLENIE DOLVNO IDTI PO QRUSAM SNIZU-WWERH I SLEWANAPRAWO W KAVDOM QRUSE.
nA RIS. 4 PRIWEDEN PRIMER UPORQDO^ENNOGO DEREWA hAFFMENA.
|
|
|
|
|
||
|
|
|
AA |
|
||
|
|
7 |
|
17. |
|
|
|
|
|
|
|||
|
|
|
|
|
A |
|
|
|
|
||||
3 |
|
|
10 |
|
||
|
|
4 |
||||
|
|
@ |
E |
|
||
|
|
@ |
|
|
||
|
@ |
|
||||
AA |
|
|
AA |
|||
1 |
A 2 |
|
2 |
|
A 2 |
|
|
B |
|
|
|||
A |
C |
|||||
|
|
|
|
|
|
D. |
|
|
rIS. 4 |
|
|
||
|
|
|
|
|
||
|
|
|
|
AA |
||
|
|
|
|
19 |
|
|
|
|
|
||||
|
|
|
|
|
A |
|
|
|
|
||||
|
|
9 |
|
|
10 |
|
4 |
|
|
5 |
|||
|
|
@ |
E |
|
||
|
|
@ |
|
|
||
|
@ |
|
||||
AA |
|
|
AA |
|||
2 |
|
A 2 |
2 |
|
A 3 |
|
|
B |
|
||||
D |
C A |
|||||
|
|
rIS. 5 |
|
|
eSLI DEREWO KODIROWANIQ UPORQDO^ENNO, TO PRI IZMENENII WESA SU- ]ESTWU@]EGO UZLA DEREWO NE NUVNO CELIKOM PERESTRAIWATX | W NEM
30
DOSTATO^NO LI[X POMENQTX MESTAMI DWA UZLA: UZEL, WES KOTOROGO NARU- [IL UPORQDO^ENNOSTX, I POSLEDNIJ IZ SLEDU@]IH ZA NIM UZLOW MENX[E- GO WESA. pOSLE PEREMENY MEST UZLOW, NEOBHODIMO PERES^ITATX WESA WSEH IH UZLOW-PREDKOW.
nAPRIMER, ESLI W DEREWE NA RIS. 4 DOBAWITX E]E DWE BUKWY A, TO
UZLY A I D DOLVNY POMENQTXSQ MESTAMI (SM. RIS. 5).
21AA
A
11 10AA E
A
5 6
A AA
A
2 4
C AA
A
2 2
.21
D B
AA
A
10 11
E AA
A
5 6
A AA
A
2 4
C AA
A
2 2 D B
rIS. 6
31
eSLI DOBAWITX E]E DWE BUKWY A, TO NEOBHODIMO BUDET POMENQTX MESTAMI SNA^ALA UZEL A I UZEL, RODITELXSKIJ DLQ UZLOW D I B, A ZATEM UZEL E I UZEL-BRAT E (RIS. 6).
dEREWO NUVNO PERESTRAIWATX TOLXKO PRI POQWLENII W NEM NOWOGO UZLA-LISTA. wMESTO POLNOJ PERESTROJKI MOVNO DOBAWLQTX NOWYJ LIST SPRAWA K LISTU hESCi I UPORQDO^IWATX, ESLI NEOBHODIMO, POLU^ENNOE TAKIM OBRAZOM DEREWO.
pROCESS RABOTY ADAPTIWNOGO ALGORITMA hAFFMENA S UPORQDO^ENNYM DEREWOM MOVNO IZOBRAZITX SLEDU@]EJ SHEMOJ:
WHODNYE |
|
|
KOD |
DLINA |
|
|
|
|
|
|
|
|
METOD |
|
|
|
|
|
|
|
|
|
|
|
|
1 sT |
|
|
|
|
|
|||||||||||||||
DANNYE |
|
|
|
|
|
|
|
KODA |
DEREWA |
|
|
POLU^ENIQ |
|
|
|
|
|
|
|
|
|
|
|
|
|
s1/A |
||||||||||||||||||||
A |
|
|
|
'A' |
|
|
|
8 |
|
|
1 |
|
|
|
|
DOBAWLENIE UZLA |
|
|
|
|
|
|
|
|
|
T |
||||||||||||||||||||
C |
|
|
|
0'C' |
|
|
9 |
|
|
2 |
|
|
|
|
DOBAWLENIE UZLA |
|
|
|
|
|
0/ |
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h |
ESCs |
|
|
|||||||||||||||||||||||||||
C |
|
|
|
01 |
|
|
|
2 |
|
|
3 |
|
|
|
|
UPORQDO^ENIE |
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|||||||||||||||
B |
|
|
00'B' |
|
|
10 |
|
|
4 |
|
|
|
|
DOBAWLENIE UZLA |
|
|
|
|
|
|
|
|
|
2 sT |
|
|
s |
|
||||||||||||||||||
C |
|
|
|
|
1 |
|
|
|
1 |
|
|
5 |
|
|
|
|
NE MENQETSQ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
A |
|
|
|
01 |
|
|
|
2 |
|
|
6 |
|
|
|
|
NE MENQETSQ |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
T |
1/A |
|||||||||||||||
A |
|
|
|
01 |
|
|
|
2 |
|
|
7 |
|
|
|
|
UPORQDO^ENIE |
|
|
|
|
|
|
|
|
|
sT |
T |
|
|
|
|
|
||||||||||||||
A |
|
|
|
11 |
|
|
|
2 |
|
|
8 |
|
|
|
|
UPORQDO^ENIE |
|
|
|
|
|
|
|
|
s1/C |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0/ ESCs |
|
||||||||||||||||||||||||||||
B |
|
|
|
101 |
|
|
|
3 |
|
|
9 |
|
|
|
|
NE MENQETSQ |
|
|
|
|
|
|
h |
|
|
|
i |
|
|
|
|
|
|
|||||||||||||
C |
|
|
|
11 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 sT |
|
|
|
|
|
|
|||||
|
|
|
3 sT |
|
|
|
|
|
|
|
|
4 sT |
|
|
|
|
|
|
|
5 sT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
T |
|
|
|
|
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
|
T |
|
|
|
|
|||||||||
|
|
1 sT |
T |
|
s2/C |
|
|
|
2 sT |
|
2/Cs |
|
|
|
2 sT 3/Cs |
|
|
|
|
3 sT 3/Cs |
|
|||||||||||||||||||||||||
|
|
|
|
s1/A |
|
|
|
|
|
|
T |
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
|||||||||
0/ |
h |
ESCs |
i |
|
|
|
1 sT |
1/As |
|
|
|
1 sT 1/As |
|
|
|
|
1 sT 2/As |
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
h |
|
|
T |
|
|
|
|
|
h |
|
i |
T |
|
|
|
|
|
|
h |
|
|
T |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
0/ |
|
|
i |
1/Bs |
|
|
0/ |
ESCs |
1/Bs |
|
0/ |
|
i |
1/Bs |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
ESCs |
|
|
|
|
|
|
|
ESCs |
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
7%es |
|
|
|
|
|
|
8%es |
|
|
|
|
|
|
|
9%es |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
% |
|
|
e |
|
|
% |
|
|
e |
|
|
|
% |
|
|
e |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
3/Cs |
|
4 sT |
|
4/As |
|
4 sT |
|
|
4/As |
5 sT |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
T |
|
|
|
|
|
T |
|
|
|
|
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
1 sT 3/As |
|
|
|
|
1 sT 3/Cs |
|
|
|
2 sT |
|
|
3/Cs |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
h |
|
|
|
i |
T |
|
|
h |
|
|
|
|
|
T |
|
|
|
h |
|
|
|
T |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
0/ |
|
|
|
1/Bs |
0/ |
|
|
i |
|
1/Bs |
|
|
0/ |
|
|
i |
2/B.s |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
ESCs |
|
|
ESCs |
|
|
|
|
|
ESCs |
|
|
|
|
|
|
|
|
|
|
|
|
zDESX POLU^ITSQ L1(ACCBCAAABC) = 4:1 BIT/SIM.
I uPRAVNENIE 25
zAKODIROWATX SOOB]ENIE BBCBBC, ISPOLXZUQ ADAPTIWNYJ ALGORITM hAFFMENA S UPORQDO^ENNYM DEREWOM.
32
I uPRAVNENIE 26
zAKODIROWATX SOOB]ENIQ \AABCDAACCCCDBB", \kibernetiki" I \sinqq sinewa sini", ISPOLXZUQ ADAPTIWNYJ ALGORITM hAFFMENA S UPORQDO^ENNYM DEREWOM. wY^ISLITX DLINY W BITAH ISHODNOGO SOOB]ENIQ W KODE ASCII+ I EGO POLU^ENNOGO KODA.
I uPRAVNENIE 27
rASPAKOWATX SOOB]ENIE 'A'0'F'00'X'0111110101011011110100101, POLU-
^ENNOE PO ADAPTIWNOMU ALGORITMU hAFFMENA S UPORQDO^ENNYM DEREWOM, RASS^ITATX DLINU KODA SVATOGO I NESVATOGO SOOB]ENIQ W BITAH.
14. aDAPTIWNOE ARIFMETI^ESKOE KODIROWANIE
dLQ ARIFMETI^ESKOGO KODIROWANIQ, KAK I DLQ KODIROWANIQ METODOM hAFFMENA, SU]ESTWU@T ADAPTIWNYE ALGORITMY. rEALIZACIQ ODNOGO IZ NIH ZAPATENTOWANA FIRMOJ IBM.
pOSTROENIE ARIFMETI^ESKOGO KODA DLQ POSLEDOWATELXNOSTI SIMWOLOW IZ ZADANNOGO MNOVESTWA MOVNO REALIZOWATX SLEDU@]IM ALGORITMOM. kAVDOMU SIMWOLU SOPOSTAWLQETSQ EGO WES: WNA^ALE ON DLQ WSEH RAWEN 1. wSE SIMWOLY RASPOLAGA@TSQ W ESTESTWENNOM PORQDKE, NAPRIMER, PO WOZRASTANI@. wEROQTNOSTX KAVDOGO SIMWOLA USTANAWLIWAETSQ RAWNOJ EGO WESU, DELENNOMU NA SUMMARNYJ WES WSEH SIMWOLOW. pOSLE POLU^ENIQ O^EREDNOGO SIMWOLA I POSTROJKI INTERWALA DLQ NEGO, WES \TOGO SIMWOLA UWELI^IWAETSQ NA 1 (MOVNO UWELI^IWATX WES L@BYM REGULQRNYM SPOSOBOM).
4 |
5 |
|
|
|
6 |
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
|
|
|||||||||||||||||||||||||||||||||
1 |
1 |
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
||||||||||||||||
4 |
|
|
|
20 |
|
|
|
60 |
|
|
|
|
|
420 |
|
1120 |
|
5040 |
|
16800 |
46200 |
|
277200 900900 |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
. |
|
|
.. |
|
|
|
|
... |
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
.. |
|
|
|
|
|
|
... |
|
|
|
|
|
|
.. |
|
|
|
|
|
.. |
|
|
|
|
|
.. |
|
|
|
|
|
|
.. |
|
|
|
|
... |
............. |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
E 1 |
. |
|
|
|
|
.. |
|
|
|
|
|
|
.. |
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
.. |
|
1 |
|
|
|
. |
|
|
|
|
|
. |
1 |
|
|
|
. |
|
|
|
|
. |
|
|
|
.. |
|
1 |
|
|
|
||||||||||||||||||||||
.... |
|
|
1........ |
|
|
|
1........ |
|
|
|
1 ..... |
|
|
1........ |
|
|
|
|
.... |
|
1 .... |
|
|
|
.... 1 |
|
..... |
|
|
1........ |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
. .. |
|
|
|
|
.. |
|
|
|
|
|
|
|
|
|
|
. .. |
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
. |
|
|
|
|
. |
|
|
|
|
|
|
. .. |
|
|
|
. |
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
. |
. |
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
. |
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
. |
|
|
|
|
. |
|
|
|
|
|
|
|
. |
. |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
C |
... |
|
|
|
1 |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
.... |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
... |
|
|
|
|
|
|
|
... |
|
|
|
|
... |
|
|
|
|
|
.... |
|
|
|
|
4 |
|
|
... |
|
|
|
|
||||||||||||||||
1 .. |
|
|
|
|
|
|
|
|
|
|
.3. |
|
|
|
|
|
|
|
|
|
|
|
|
|
4 .. |
|
|
|
|
4 .. |
|
|
|
2 .. |
|
|
.4. |
|
|
|
|
|
|
|
|
|
5.. |
|
|
||||||||||||||||||||||||||||||||
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
. |
|
|
|
|
|
. |
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|||||||||
|
|
. |
|
|
.. |
|
|
|
|
|
.. |
|
|
|
|
|
|
. |
. |
|
|
|
|
|
|
|
|
.. |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
. |
|
|
|
|
|
. |
|
|
|
. |
. |
|
|
|
|
|
.. |
|
|
|
|
|
|
. |
. |
|
|
||||||||||
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
. |
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
. |
|
|
|
. |
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
. |
|
|
|
|
. |
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
. |
|
|
|||||||||||
|
|
.. |
|
|
|
|
... |
|
|
|
|
|
|
... |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
.. |
|
|
|
|
|
.. |
|
|
|
|
|
.. |
|
|
|
|
|
2 |
|
|
|
|
|
|
... |
|
|
|
|
3 |
.. |
|
|||||||||||||
B ..1 |
|
|
|
1 .. |
|
|
|
|
1 .. |
|
|
|
|
|
|
|
|
|
|
|
|
2 .. |
|
|
..2 |
|
|
|
|
|
..2 |
|
|
|
|
..2 |
|
|
|
|
|
|
|
|
|
|
3 .. |
|
|
|
.. |
|
|||||||||||||||||||||||||||||
|
. |
. |
|
|
|
|
. |
.. |
|
|
|
|
. |
.. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
. . |
. |
. |
|
|
|
|
|
. |
|
|
|
|
. |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
.. |
|
|
|
|
. |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
.. |
|
|||||||||||||||||||
A |
1 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
|
|
|
3 |
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
....... 2 |
|
....... |
2........... |
|
....... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5........... |
|
....... |
5 ..... |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
.............. |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
. |
............. |
|
.............. |
|
.............. |
|
|
|
|
|
|
|
. |
|
|
|
|
|
. |
|
|
. |
|
|||||||||||||||||||||
A C C B C A A A B C E |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[0; |
1 ] |
|
|
|
|
|
[ |
7 |
; |
|
|
23 |
|
] |
|
|
|
|
|
|
[ |
19 |
|
|
; |
|
611 |
] |
|
|
[ |
19 |
|
|
; |
|
3041 |
|
] [ |
4013 ; |
100327 |
] |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
40 |
|
120 |
|
|
|
|
|
|
|
|
|
3360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
|
|
|
|
|
|
|
105 |
|
|
|
16800 |
|
|
22176 |
|
|
554400 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
[ |
3 |
|
; |
1 |
] |
|
|
|
|
|
[ |
151 ; |
|
51 |
|
] |
|
|
|
|
|
|
[ |
19 |
; |
913 |
] |
|
|
|
|
|
|
|
|
|
|
|
|
[ |
434747 |
; |
|
1304249 |
] |
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
20 |
|
|
|
5 |
|
|
|
|
|
|
|
|
840 |
|
280 |
|
|
|
|
|
|
|
|
|
105 |
|
|
5040 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2402400 |
|
|
|
7207200 |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[ |
|
19 |
; |
|
2787 |
|
] |
|
|
|
|
|
|
[ 9129739 ; |
1304249 |
] |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
|
15400 |
|
|
|
|
|
|
|
50450400 |
|
7207200 |
|
rIS. 7
zADANNOE MNOVESTWO SIMWOLOW | \TO, KAK PRAWILO, ASCII+. dLQ TOGO, ^TOBY OBESPE^ITX OSTANOWKU ALGORITMA RASPAKOWKI WNA^ALE SVIMAEMOGO SOOB]ENIQ NADO POSTAWITX EGO DLINU ILI WWESTI DOPOLNITELXNYJ SIMWOL-MARKER KONCA SOOB]ENIQ. eSLI ZNATX FORMAT FAJLA DLQ
33
SVATIQ, TO WMESTO NA^ALXNOGO RAWNOMERNOGO RASPREDELENIQ WESOW MOVNO WYBRATX RASPREDELENIE S U^ETOM \TIH ZNANIJ. nAPRIMER, W TEKSTOWOM FAJLE NEDOPUSTIMY RQD UPRAWLQ@]IH SIMWOLOW I IH WES MOVNO ZANULITX.
pRIMER. pUSTX ZADANNOE MNOVESTWO | \TO SIMWOLY A, B, C. sVIMAEMOE SOOB]ENIE | ACCBCAAABC. wWEDEM MARKER KONCA SOOB]ENIQ | E. kODIROWANIE SOGLASNO PRIWEDENNOMU ALGORITMU MOVNO PROWESTI SOGLASNO SHEME, PRIWEDENNOJ NA RIS. 7.
wSLEDSTWIE TOGO, ^TO
759021 |
= 0:00101110010100111011012 2 |
|
9129739 |
; |
1304249 |
; |
222 = 4194304 |
50450400 |
7207200 |
code(ACCBCAAABC) = 0010111001010011101101 I
L(ACCBCAAABC) = 22:
pO\TOMU L1(ACCBCAAABC) = 2:2 BIT/SIM. rEZULXTAT, POLU^ENNYJ ADAPTIWNYM ALGORITMOM hAFFMENA | 4.1 BIT/SIM, NO ESLI KODIROWATX BUKWY NE 8 BITAMI, A 2, TO REZULXTAT BUDET 2.3 BIT/SIM. w PERWOJ STRO^KE SHEMY WYPISANY SUMMARNYE WESA SIMWOLOW, A WO WTOROJ | DLINY TEKU]IH OTREZKOW.
sPOSOB RASPAKOWKI ADAPTIWNOGO ARIFMETI^ESKOGO KODA PO^TI ANALOGI^EN PRIWEDENNOMU DLQ NEADAPTIWNOGO. oTLI^IE TOLXKO W TOM, ^TO NA WTOROM [AGE POSLE POLU^ENIQ NOWOGO KODA NUVNO PERESTROITX RAZBIENIE EDINI^NOGO OTREZKA SOGLASNO NOWOMU RASPREDELENI@ WESOW SIMWOLOW. pOLU^ENIE MARKERA KONCA ILI ZADANNOGO NA^ALOM SOOB]ENIQ ^ISLA SIMWOLOW OZNA^AET OKON^ANIE RABOTY.
pRIMER. rASPAKUEM KOD 0010111001010011101101, ZNAQ, ^TO MNOVESTWO SIMWOLOW SOOB]ENIQ SOSTOIT IZ A, B, C I E, PRI^EM POSLEDNIJ | \TO MARKER KONCA SOOB]ENIQ.
0:00101110010100111011012 = 4194304759021 :
34
|
wESA |
|
~ISLO-KOD I EGO INTERWAL |
sIMWOL |
dLINA |
|
|||||||||||||||||
A |
B |
C |
E |
INTERWALA |
|
||||||||||||||||||
1 |
1 |
1 |
1 |
759021 |
|
2 |
(0; |
1 |
|
|
A |
1 |
|
|
|||||||||
4194304 |
4 ) |
4 |
|
|
|||||||||||||||||||
2 |
1 |
1 |
1 |
759021 |
|
|
2 |
( |
3 |
; |
4 |
|
C |
1 |
|
|
|||||||
1048576 |
5 |
5 ) |
5 |
|
|
||||||||||||||||||
2 |
1 |
2 |
1 |
649377 |
|
|
2 |
( |
1 |
; |
5 |
|
C |
1 |
|
|
|||||||
1048576 |
2 |
6 ) |
3 |
|
|
||||||||||||||||||
2 |
1 |
3 |
1 |
375267 |
|
|
2 |
( |
2 |
; |
3 |
|
B |
1 |
|
|
|||||||
1048576 |
7 |
7 ) |
7 |
|
|
||||||||||||||||||
2 |
2 |
3 |
1 |
529717 |
|
|
2 |
( |
1 |
; |
7 |
|
C |
3 |
|
|
|||||||
1048576 |
2 |
8 ) |
8 |
|
|
||||||||||||||||||
|
|
|
|
5429 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
2 |
|
|
|||
2 |
2 |
4 |
1 |
|
|
|
2 |
(0; |
|
9 ) |
A |
|
|
|
|
||||||||
393216 |
|
9 |
|
|
|||||||||||||||||||
3 |
2 |
4 |
1 |
26214416287 2 (0; 0:3) |
A |
0:3 |
|
||||||||||||||||
4 |
2 |
4 |
1 |
27145 |
|
|
2 (0; |
|
4 |
) |
A |
|
4 |
|
|
||||||||
131072 |
|
|
11 |
11 |
|
|
|||||||||||||||||
5 |
2 |
4 |
1 |
298595 |
2 ( |
5 |
|
; |
|
7 |
) |
B |
1 |
|
|
||||||||
524288 |
|
12 |
|
|
12 |
6 |
|
|
|||||||||||||||
|
|
|
|
240425 |
|
|
|
8 |
|
|
|
|
12 |
|
|
4 |
|
|
|||||
5 |
3 |
4 |
1 |
|
2 ( |
|
|
; |
|
13 ) |
C |
|
|
|
|
||||||||
262144 |
13 |
|
13 |
|
|
||||||||||||||||||
5 |
3 |
5 |
1 |
10485761028373 2 (1413 ; 1) |
E |
|
|
|
. |
I uPRAVNENIE 28
sOSTAWITX ADAPTIWNYJ ARIFMETI^ESKIJ KOD S MARKEROM KONCA DLQ SOOB]ENIQ BAABC.
15. pODSTANOWO^NYE ILI SLOWARNO-ORIENTIROWANNYE ALGORITMY SVATIQ INFORMACII. mETODY lEMPELA-zIWA
mETODY {ENNONA-f\NO, hAFFMENA I ARIFMETI^ESKOE KODIROWANIE OBOB]A@]E NAZYWA@TSQ STATISTI^ESKIMI METODAMI. sLOWARNYE ALGORITMY NOSQT MENEE MATEMATI^ESKI OBOSNOWANNYJ, NO BOLEE PRAKTI^- NYJ HARAKTER.
aLGORITM LZ77 BYL OPUBLIKOWAN W 1977 G. rAZRABOTAN IZRAILXSKIMI MATEMATIKAMI qKOBOM zIWOM (Ziv) I aWRAAMOM lEMPELOM (Lempel). mNOGIE PROGRAMMY SVATIQ INFORMACII ISPOLXZU@T TU ILI INU@ MODIFIKACI@ LZ77. oDNOJ IZ PRI^IN POPULQRNOSTI ALGORITMOW LZ QWLQETSQ IH ISKL@^ITELXNAQ PROSTOTA PRI WYSOKOJ \FFEKTIWNOSTI SVATIQ.
oSNOWNAQ IDEQ LZ77 SOSTOIT W TOM, ^TO WTOROE I POSLEDU@]IE WHOVDENIQ NEKOTOROJ STROKI SIMWOLOW W SOOB]ENII ZAMENQ@TSQ SSYLKAMI NA EE PERWOE WHOVDENIE.
LZ77 ISPOLXZUET UVE PROSMOTRENNU@ ^ASTX SOOB]ENIQ KAK SLOWARX. ~TOBY DOBITXSQ SVATIQ, ON PYTAETSQ ZAMENITX O^EREDNOJ FRAGMENT SOOB]ENIQ NA UKAZATELX W SODERVIMOE SLOWARQ.
LZ77 ISPOLXZUET \SKOLXZQ]EE" PO SOOB]ENI@ OKNO, RAZDELENNOE NA DWE NERAWNYE ^ASTI. pERWAQ, BOLX[AQ PO RAZMERU, WKL@^AET UVE PROSMOTRENNU@ ^ASTX SOOB]ENIQ. wTORAQ, NAMNOGO MENX[AQ, QWLQETSQ BUFEROM, SODERVA]IM E]E NEZAKODIROWANNYE SIMWOLY WHODNOGO POTOKA.
35
oBY^NO RAZMER OKNA SOSTAWLQET NESKOLXKO KILOBAJT, A RAZMER BUFERA | NE BOLEE STA BAJT. aLGORITM PYTAETSQ NAJTI W SLOWARE (BOLX[EJ ^ASTI OKNA) FRAGMENT, SOWPADA@]IJ S SODERVIMYM BUFERA.
aLGORITM LZ77 WYDAET KODY, SOSTOQ]IE IZ TREH \LEMENTOW:
-SME]ENIE W SLOWARE OTNOSITELXNO EGO NA^ALA PODSTROKI, SOWPADA- @]EJ S NA^ALOM SODERVIMOGO BUFERA;
-DLINA \TOJ PODSTROKI;
-PERWYJ SIMWOL BUFERA, SLEDU@]IJ ZA PODSTROKOJ.
pRIMER. rAZMER OKNA | 20 SIMWOL, SLOWARQ | 12 SIMWOLOW, A BUFERA | 8. kODIRUETSQ SOOB]ENIE \programmnye produkty firmy MICROSOFT". pUSTX SLOWARX UVE ZAPOLNEN. tOGDA ON SODERVIT STROKU \programmnye ", A BUFER | STROKU \produkty". pROSMATRIWAQ SLOWARX, ALGORITM OBNARUVIT, ^TO SOWPADA@]EJ PODSTROKOJ BUDET \pro", W SLOWARE ONA RASPOLOVENA SO SME]ENIEM 0 I IMEET DLINU 3 SIMWOLA, A SLEDU@]IM SIMWOLOM W BUFERE QWLQETSQ \d". tAKIM OBRAZOM, WYHODNYM KODOM BUDET TROJKA h0,3,'d'i. pOSLE \TOGO ALGORITM SDWIGAET WLEWO WSE SODERVIMOE OKNA NA DLINU SOWPADA@]EJ PODSTROKI +1 I ODNOWREMENNO S^ITYWAET STOLXKO VE SIMWOLOW IZ WHODNOGO POTOKA W BUFER. pOLU^AEM W SLOWARE STROKU \rammnye prod", W BUFERE | \ukty fir". w DANNOJ SITUACII SOWPADA@]EJ PODSTROKI OBNARUVITX NE UDATXSQ I ALGORITM WYDAST KOD h0,0,'u'i, POSLE ^EGO SDWINET OKNO NA ODIN SIMWOL. zATEM SLOWARX BUDET SODERVATX \ammnye produ", A BUFER | \kty firm". i T.D.
dEKODIROWANIE KODOW LZ77 PRO]E IH POLU^ENIQ, T.K. NE NUVNO OSU- ]ESTWLQTX POISK W SLOWARE.
nEDOSTATKI LZ77:
1)S ROSTOM RAZMEROW SLOWARQ SKOROSTX RABOTY ALGORITMA-KODERA PROPORCIONALXNO ZAMEDLQETSQ;
2)KODIROWANIE ODINO^NYH SIMWOLOW O^ENX NE\FFEKTIWNO.
pRIMER. zAKODIROWATX PO ALGORITMU LZ77 STROKU \krasnaq kraska".
slowarx(8) |
bufer(5) |
kod |
||
" |
........" |
"krasn" |
<0,0,'k'> |
|
"....... |
k" |
"rasna" |
<0,0,'r'> |
|
"...... |
kr" |
"asnaq" |
<0,0,'a'> |
|
"..... |
kra" |
"snaq " |
<0,0,'s'> |
|
".... |
kras" |
"naq k" |
<0,0,'n'> |
|
"... |
krasn" |
"aq kr" |
<5,1,'q'> |
|
".krasnaq" |
" kras" |
<0,0,' '> |
||
"krasnaq " |
"krask" |
<0,4,'k'> |
||
"aq krask" |
"a.... |
" |
<0,0,'a'> |
|
|
|
|
|
|
w POSLEDNEJ STRO^KE, BUKWA \a" BERETSQ NE IZ SLOWARQ, T. K. ONA
36
POSLEDNQQ.
dLINA KODA WY^ISLQETSQ SLEDU@]IM OBRAZOM: DLINA PODSTROKI NE MOVET BYTX BOLX[E RAZMERA BUFERA, A SME]ENIE NE MOVET BYTX BOLX[E RAZMERA SLOWARQ 1. sLEDOWATELXNO, DLINA DWOI^NOGO KODA SME]ENIQ BUDET OKRUGLENNYM W BOLX[U@ STORONU log2(RAZMER SLOWARQ), A DLINA DWOI^NOGO KODA DLQ DLINY PODSTROKI BUDET OKRUGLENNYM W BOLX[U@ STORONU log2(RAZMER BUFERA+1). a SIMWOL KODIRUETSQ 8 BITAMI (NAPRI-
MER, ASCII+).
w POSLEDNEM PRIMERE DLINA POLU^ENNOGO KODA RAWNA 9 (3+3+8) = 126 BIT, PROTIW 14 8 = 112 BIT ISHODNOJ DLINY STROKI.
w 1982 G. sTOREROM (Storer) I {IMANSKIM (Szimanski) NA BAZE LZ77
BYL RAZRABOTAN ALGORITM LZSS, KOTORYJ OTLI^AETSQ OT LZ77 PROIZWODIMYMI KODAMI.
kOD, WYDAWAEMYJ LZSS, NA^INAETSQ S ODNOBITNOGO PREFIKSA, RAZLI^A@]EGO SOBSTWENNO KOD OT NEZAKODIROWANNOGO SIMWOLA. kOD SOSTOIT IZ PARY: SME]ENIE I DLINA, TAKIMI VE KAK I DLQ LZ77. w LZSS OKNO SDWIGAETSQ ROWNO NA DLINU NAJDENNOJ PODSTROKI ILI NA 1, ESLI NE NAJDENO WHOVDENIE PODSTROKI IZ BUFERA W SLOWARX. dLINA PODSTROKI W LZSS WSEGDA BOLX[E NULQ, PO\TOMU DLINA DWOI^NOGO KODA DLQ DLINY PODSTROKI | \TO OKRUGLENNYJ DO BOLX[EGO CELOGO DWOI^NYJ LOGARIFM OT DLINY BUFERA.
pRIMER. zAKODIROWATX PO ALGORITMU LZSS STROKU \krasnaq
kraska". |
|
|
|
|
|
slowarx(8) |
bufer(5) |
kod |
dlina koda |
|
|
|
|
|
"........" |
"krasn" |
0'k' |
9 |
|
|
".......k" |
"rasna" |
0'r' |
9 |
|
"......kr" |
"asnaq" |
0'a' |
9 |
|
".....kra" |
"snaq " |
0's' |
9 |
|
"....kras" |
"naq k" |
0'n' |
9 |
|
"...krasn" |
"aq kr" |
1<5,1> |
7 |
|
"..krasna" |
"q kra" |
0'q' |
9 |
|
".krasnaq" |
" kras" |
0' ' |
9 |
|
"krasnaq " |
"krask" |
1<0,4> |
7 |
|
"naq kras" |
"ka..." |
1<4,1> |
7 |
|
"aq krask" |
"a...." |
1<0,1> |
7 |
|
|
|
|
|
zDESX DLINA POLU^ENNOGO KODA RAWNA 7 9 + 4 7 = 91 BIT. LZ77 I LZSS OBLADA@T SLEDU@]IMI O^EWIDNYMI NEDOSTATKAMI:
1)NEWOZMOVNOSTX KODIROWANIQ PODSTROK, OTSTOQ]IH DRUG OT DRUGA NA RASSTOQNII, BOLX[EM DLINY SLOWARQ;
2)DLINA PODSTROKI, KOTORU@ MOVNO ZAKODIROWATX, OGRANI^ENA RAZMEROM BUFERA.
eSLI MEHANI^ESKI ^REZMERNO UWELI^IWATX RAZMERY SLOWARQ I BU-
37
FERA, TO \TO PRIWEDET K SNIVENI@ \FFEKTIWNOSTI KODIROWANIQ, T.K. S ROSTOM \TIH WELI^IN BUDUT RASTI I DLINY KODOW DLQ SME]ENIQ I DLINY, ^TO SDELAET KODY DLQ KOROTKIH PODSTROK NEDOPUSTIMO BOLX[IMI. kROME TOGO, REZKO UWELI^ITSQ WREMQ RABOTY ALGORITMA-KODERA.
w 1978 G. AWTORAMI LZ77 BYL RAZRABOTAN ALGORITM LZ78, LI[ENNYJ NAZWANNYH NEDOSTATKOW.
LZ78 NE ISPOLXZUET \SKOLXZQ]EE" OKNO, ON HRANIT SLOWARX IZ UVE PROSMOTRENNYH FRAZ. pRI STARTE ALGORITMA \TOT SLOWARX SODERVIT TOLXKO ODNU PUSTU@ STROKU (STROKU DLINY NULX). aLGORITM S^ITYWAET SIMWOLY SOOB]ENIQ DO TEH POR, POKA NAKAPLIWAEMAQ PODSTROKA WHODIT CELIKOM W ODNU IZ FRAZ SLOWARQ. kAK TOLXKO \TA STROKA PERESTANET SOOTWETSTWOWATX HOTQ BY ODNOJ FRAZE SLOWARQ, ALGORITM GENERIRUET KOD, SOSTOQ]IJ IZ INDEKSA STROKI W SLOWARE, KOTORAQ DO POSLEDNEGO WWEDENNOGO SIMWOLA SODERVALA WHODNU@ STROKU, I SIMWOLA, NARU[IW[EGO SOWPADENIE. zATEM W SLOWARX DOBAWLQETSQ WWEDENNAQ PODSTROKA. eSLI SLOWARX UVE ZAPOLNEN, TO IZ NEGO PREDWARITELXNO UDALQ@T MENEE WSEH ISPOLXZUEMU@ W SRAWNENIQH FRAZU.
kL@^EWYM DLQ RAZMERA POLU^AEMYH KODOW QWLQETSQ RAZMER SLOWARQ WO FRAZAH, POTOMU ^TO KAVDYJ KOD PRI KODIROWANII PO METODU LZ78 SODERVIT NOMER FRAZY W SLOWARE. iZ POSLEDNEGO SLEDUET, ^TO \TI KODY IME@T POSTOQNNU@ DLINU, RAWNU@ OKRUGLENNOMU W BOLX[U@ STORONU DWOI^NOMU LOGARIFMU RAZMERA SLOWARQ +8 (\TO KOLI^ESTWO BIT W BAJTKODE RAS[IRENNOGO ASCII).
pRIMER. zAKODIROWATX PO ALGORITMU LZ78 STROKU \krasnaq kraska", ISPOLXZUQ SLOWARX DLINOJ 16 FRAZ.
whodnaq fraza |
kod |
poziciq |
|
(w slowarx) |
slowarq |
||
|
|||
|
|
|
|
"" |
|
0 |
|
"k" |
<0,'k'> |
1 |
|
"r" |
<0,'r'> |
2 |
|
"a" |
<0,'a'> |
3 |
|
"s" |
<0,'s'> |
4 |
|
"n" |
<0,'n'> |
5 |
|
"aq" |
<3,'q'> |
6 |
|
" " |
<0,' '> |
7 |
|
"kr" |
<1,'r'> |
8 |
|
"as" |
<3,'s'> |
9 |
|
"ka" |
<1,'a'> |
10 |
|
|
|
|
uKAZATELX NA L@BU@ FRAZU TAKOGO SLOWARQ | \TO ^ISLO OT 0 DO 15, DLQ EGO KODIROWANIQ DOSTATO^NO ^ETYREH BIT.
w POSLEDNEM PRIMERE DLINA POLU^ENNOGO KODA RAWNA 10 (4 + 8) = 120 BITAM.
38
aLGORITMY LZ77, LZ78 I LZSS RAZRABOTANY MATEMATIKAMI I MOGUT ISPOLXZOWATXSQ SWOBODNO.
w 1984 G. u\L^EM (Welch) BYL PUTEM MODIFIKACII LZ78 SOZDAN ALGORITM LZW.
pO[AGOWOE OPISANIE ALGORITMA-KODERA.
{AG 1. iNICIALIZACIQ SLOWARQ WSEMI WOZMOVNYMI ODNOSIMWOLXNYMI FRAZAMI (OBY^NO 256 SIMWOLAMI RAS[IRENNOGO ASCII). iNICIALIZACIQ WHODNOJ FRAZY w PERWYM SIMWOLOM SOOB]ENIQ.
{AG 2. s^ITATX O^EREDNOJ SIMWOL K IZ KODIRUEMOGO SOOB]ENIQ. {AG 3. eSLI konec soob}eniq
wYDATX KOD DLQ w kONEC
eSLI FRAZA wK UVE ESTX W SLOWARE pRISWOITX WHODNOJ FRAZE ZNA^ENIE wK pEREJTI K {AGU 2
iNA^E
wYDATX KOD w dOBAWITX wK W SLOWARX
pRISWOITX WHODNOJ FRAZE ZNA^ENIE K pEREJTI K {AGU 2.
kAK I W SLU^AE S LZ78 DLQ LZW KL@^EWYM DLQ RAZMERA POLU^AEMYH KODOW QWLQETSQ RAZMER SLOWARQ WO FRAZAH: LZW-KODY IME@T POSTOQNNU@ DLINU, RAWNU@ OKRUGLENNOMU W BOLX[U@ STORONU DWOI^NOMU LOGARIFMU RAZMERA SLOWARQ.
pRIMER. zAKODIROWATX PO ALGORITMU LZW STROKU \krasnaq kraska". rAZMER SLOWARQ | 500 FRAZ.
whodnaq |
|
poziciq |
|
fraza, wK |
kod DLQ w |
||
slowarq |
|||
(w slowarx) |
|
||
|
|
||
|
|
|
|
ASCII+ |
|
0-255 |
|
"kr" |
0'k' |
256 |
|
"ra" |
0'r' |
257 |
|
"as" |
0'a' |
258 |
|
"sn" |
0's' |
259 |
|
"na" |
0'n' |
260 |
|
"aq" |
0'a' |
261 |
|
"q " |
0'q' |
262 |
|
" k" |
0' ' |
263 |
|
"kra" |
<256> |
264 |
|
"ask" |
<258> |
265 |
|
"ka" |
0'k' |
266 |
|
"a" |
0'a' |
|
|
|
|
|
39