Авиационно инженерство Административно право Административно право Беларус Алгебра Архитектура Безопасност на живота Въведение в професията „психолог” Въведение в икономиката на културата Висша математика Геология Геоморфология Хидрология и хидрометрия Хидросистеми и хидравлични машини Културология Медицина Психология икономика дескриптивна геометрия Основи на икономически т Oria професионална безопасност Пожарна тактика процеси и структури на мисълта, Професионална психология Психология Психология на управлението на съвременната фундаментални и приложни изследвания в апаратура социалната психология социални и философски проблеми Социология Статистика теоретичните основи на компютъра автоматично управление теория на вероятностите транспорт Закон Turoperator Наказателно право Наказателно-процесуалния управление модерна производствена Физика Физични феномени Философски хладилни инсталации и екология Икономика История на икономиката Основи на икономиката Икономика на предприятията Икономическа история Икономическа теория Икономически анализ Развитие на икономиката на ЕС Спешни ситуации ВКонтакте Однокласници Моят свят Facebook LiveJournal Instagram
border=0

Блоково двоично кодиране

Да се ​​върнем към проблема за оптималното кодиране. Досега най-добър резултат (най-малка излишък) е получен с кодиране на Хафман - излишъкът за руската азбука е по-малък от 1 %. Беше посочено, че кодът на Huffman не може да бъде подобрен. На пръв поглед това противоречи на първата теорема на Шанън, която гласи, че винаги е възможно да се предложи метод на кодиране, при който излишъкът е произволно малко количество. Всъщност това противоречие възникна поради факта, че досега сме се ограничавали до азбучно кодиране. При азбучно кодиране предаваното съобщение е поредица от кодове на отделни символи на основната азбука. Възможни са обаче опции за кодиране, при които кодовият знак се отнася до няколко букви от основната азбука (ще наречем такава комбинация блок) или дори цялата дума на основния език. Блок кодирането намалява излишъка. Това се вижда лесно на прост пример.

Да предположим, че има речник на език, съдържащ n = 16000 думи (това със сигурност е повече от солиден речник!). Нека присвоим на всяка дума еднакъв двоичен код. Очевидно е, че дължината на кода може да се намери от отношението K (A, 2) ≥ log 2 n ≥ 13.97 = 14. Следователно всяка дума се кодира от комбинация от 14 нули и единици - получавате един вид бинарни йероглифи. Например думата "ИНФОРМАТИКА" съответства на код 10101011100110, думата "НАУКА" - 00000000000001, а думата "ИНТЕРЕСИ" - 00100000000010; след това последователността:

очевидно ще означава "ИНФОРМАТИКА НА ИНТЕРЕСНАТА НАУКА".

Лесно е да се прецени, че със средната дължина на руската дума K ( r ) = 6.3 букви (5.3 букви + интервал между думите) средната информация за всеки знак на първичната азбука е равна на I ( A ) = K (A, 2) / K ( r ) = 14 / 6.3 = 2.222 бита, което е повече от 2 пъти по-малко от 5 бита с еднородно азбучно кодиране. За английския език този метод на кодиране дава 2.545 бита на символ. Така кодирането на думите се оказва по-полезно от азбучния.

Кодирането ще бъде още по-ефективно, ако първо зададете относителната честота на поява на различни думи в текстовете и след това използвате кода на Хафман. Шанън направи подобно изследване в собственото си време: установи, че средната информация за всеки символ на основната азбука е 2,15 бита от относителните честоти на 8727 най-използваните думи на английски език.

Вместо думи, можете да кодирате буквени комбинации - блокове. По принцип, блоковете могат да се считат за думи с еднаква дължина, но без семантично съдържание. Чрез разширяване на блоковете и прилагане на кода на Хафман, теоретично е възможно да се гарантира, че средната информация за кодово обозначение ще се подхожда произволно към I ¥ .





Вижте също:

А.2. Добавяне и умножение на вероятностите

Формализиране на стойността

Пример 7.5

Класификация на методите за представяне на алгоритми

В отсъствието на интерференция, средната дължина на двоичен код може да бъде произволно близка до средната информация за всеки символ на основната азбука.

Връщане към съдържанието: Теоретични основи на компютърните науки

2019 @ ailback.ru