Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mishev / В.В. Лидовский - Теория Информации

.pdf
Скачиваний:
20
Добавлен:
11.06.2015
Размер:
949.28 Кб
Скачать

KOTORYH 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

21AA
A
11 10@@ E !
@
4 7AA AA
A A
2 2 2 5 D B C A

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