Главная » Просмотр файлов » Новиков Ф.А. Дискретная математика для программистов

Новиков Ф.А. Дискретная математика для программистов (860615), страница 40

Файл №860615 Новиков Ф.А. Дискретная математика для программистов (Новиков Ф.А. - Дискретная математика для программистов. 2009) 40 страницаНовиков Ф.А. Дискретная математика для программистов (860615) страница 402022-01-13СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 40)

@jt = • k = I k\/tе l..k(it=jt),то есть любое слово, составленное из элементарных кодов, единственным образом разлагается на элементарные коды. Алфавитное кодирование с разделимойсхемой допускает декодирование.2116.1. Алфавитное кодированиеЕсли таблица кодов содержит одинаковые элементарные коды, то есть если3 i,j( i ^ j к Pi = /3j),где (3i,[3j е V, то схема заведоморассматриваются, то естьне является разделимой.

Такие схемы далее неV i ^ j ( f t , 0jEV6.1.3. Префиксные схемыСхема сг называется префиксной, если элементарный код одной буквы не является префиксом элементарного кода другой буквы:^3Pi,PjeV,peB*ТЕОРЕМА( i ^ j k Pi =PjP).Префиксная схема является разделимой.ДОКАЗАТЕЛЬСТВОО Т противного. Пусть кодирование с префиксной схемой а пеявляется разделимым. Тогда существует такое слово Р е F(T(A*), чтоp = ph...pik=ph .. .Pj, k 3t (Ve < t {0i. = Pja k pit фПоскольку pit... pik = P j t .

. . Pji, значит, 3/3' (pit =противоречит тому, что схема префиксная.PjtP'V pjt =pjt)).PitP'),но это•ЗАМЕЧАНИЕСвойство быть префиксной достаточно, но не необходимо для разделимости схемы.ПримерРазделимая, но не префиксная схема:А = {а,Ь},В={0,1},<т = (а-> 0, ft-+01).6.1.4. Неравенство МакмилланаЧтобы схема алфавитного кодирования была разделимой, необходимо, чтобыдлины элементарных кодов удовлетворяли определённому соотношению, известному как неравенство Макмиллана.ТЕОРЕМА 1Если схема а = (ац —>празделима, то1где h'. =\Pi\.212Глава 6. Кодирование 212ДОКАЗАТЕЛЬСТВООбозначим I: = max k. Рассмотрим некоторую к-ю степень лег£1..пвой части неравенства/т»\)—иЕ2<г=1fc\Раскрывая скобки, имеем суммугде i i , . . . , -ifc — различные наборы номеров элементарных кодов.

Обозначим черезv(k, t) количество входящих в эту сумму слагаемых вида 1/2*, где t = +.. .+l-ik.Для некоторых t может быть, что и(к, t) = 0. Приводя подобные, имеем суммуklEt=iu{k,t)2* 'Каждому слагаемому вида) - 1 можно сопоставить код (слово в алфавите В) вида fax • • • (3ik- Это слово состоит из к элементарных кодов и имеетдлину t.Таким образом, v(k,t) — это число некоторых слов вида /3ix ...Pik, таких, что| Ai ... Pik \ = t.

В силу разделимости схемы i/(/с, t) ^ 2Ь, в противном случае заведомо существовали бы два одинаковых слова. . . (3ik =. . . (3jk, допускающихразличное разложение. Имеем:t=1Следовательно, Vfct=l^и значит, Vк ^ ^ 2~li ^ tyki^J, откудаn'i=l^ lim \fkl = 1.к—>oo•Неравенство Макмиллаиа является не только необходимым, но и в некоторомсмысле достаточным условием разделимости схемы алфавитного кодирования.ТЕОРЕМА 2Если числа 1\,..., 1п удовлетворяют неравенствуп12^г—1то существует такая разделимая (даже префиксная) схема алфавитного кодирования а =—• (3i)™=1,4moVi= U).2136.1. Алфавитное кодированиеДОКАЗАТЕЛЬСТВОБез ограничения общности можно считать, что Zi ^ 12 ^ . . . ^^ 1п.

Разобьем множество { / i , . . . , / n } "а классы эквивалентности по равенствутп{ L i , . . . , Lrn}, га ^ га. Пусть А* е Li, Hi • = \Li\. Тогда J2 tM = п , Ai < Л2 < . . . <г= 1< А т . В этих обозначениях неравенство Макмиллана можно записать так:тпг=1Из этого неравенства следуют га неравенств для частичных сумм:,^М2+^++HM<1.9ЛТNA M -AI-III*- ц22х™~х2 - . . . -2А--Л—1.Рассмотрим слова длины Ai в алфавите В.

Поскольку fj,i ^ 2 Al , из этих словможно выбрать //i различных слов Р\,...длины Ai. Исключим из дальнейшего рассмотрения все слова из В*, начинающиеся со слов P i , . . .Далеерассмотрим множество слов в алфавите В длиной Х2 и не начинающихся сослов /5Ь . .

.Таких слов будет 2х2 - fii2X2~Xl. Но р2 ^ 2Л2 - /zi2 A2_Al , значит,можно выбрать fi2 различных слов. Обозначим их Рщ+i,...Исключимслова, начинающиеся с /3М1+ь . . . , /?М1+М2, из дальнейшего рассмотрения. И далее,используя неравенства для частичных сумм, мы будем па г-м шаге выбирать /i;слов длины Ai, /? Ml+M2+ ... +Mi _ 1 ,...,/3 Ail+M2 +... +Mi _ 1+/ii , причём эти слова пе будутначинаться с тех слов, которые были выбраны раньше. В то же время длины этихслов всё время растут (так как Ai < \ 2 < ...

< А т ), поэтому они пе могут бытьпрефиксами тех слов, которые выбраны раньше. Итак, в конце имеем набор из гаслов 01,...= Рп, \Pi\ = h, - • •, I Ai| = In, КОДЫ pi,...,pnпе являютсяпрефиксами друг друга, а значит, схема а = (а* —>будет префиксной и, потеореме предыдущего подраздела, разделимой.•ПримерАзбука Морзе1 — это схема алфавитного кодирования(Л->01,Я —• 0000,О —• 111,У —> 0001,В —• 1000,I —> 00,Р0110,Ж —^ 011,С —> 1010, L>-*100, Е -> 0,F —> 0010, G —> 110,^ —> 0111, АГ —> 101, L —> 0100, М 1 1 ,N ^ 10,Q1101, Я —• 010, 5 —> 000,Г —> 1,С/ —> 001,Х->1001, Y ^ 1011, Z->1100),где по историческим и техническим причинам 0 называется точкой и обозначается знаком «•», а 1 называется тире и обозначается знаком «—».

Имеем:1Самуэль Морзе (1791-1872).214Глава 6. Кодирование 2141/4 ++ 1/16 +1/16+1/4 +1/16+1/16 +1/8+1/8 +1/2+1/16 +1/16+1/4 +1/8 +1/4 ++ 1/8++ 1/16+1/16+1/8+1/16+1/16+1/8+1/16+1/8+1/16 =1/2+1/8 += 2 / 2 + 4 / 4 + 7 / 8 + 1 2 / 1 6 = 3 + 5 / 8 > 1.Таким образом, неравенство Макмиллаиа для азбуки Морзе пе выполнено, и этасхема не является разделимой. На самом деле в азбуке Морзе имеются дополнительные элементы — паузы между буквами (и словами), которые позволяют декодировать сообщения.

Эти дополнительные элементы определены неформально,поэтому приём и передача сообщений с помощью азбуки Морзе, особенно с высокой скоростью, являлись некоторым искусством, а не простой техническойпроцедурой.Если схема алфавитного кодирования а = (а, —> Pi)™= i разделима,то существует префиксная схема а' = (аг —> Д-)-1=1, причём Vг (\Pi\ = \Р'{\).СЛЕДСТВИЕПример Схема (а —• 0, b —• 01) — разделимая, но не префиксная, а схема(а —> 0,6 —> 10) — префиксная (и разделимая).6.2. Кодирование с минимальнойизбыточностьюДля практики важно, чтобы коды сообщений имели по возможности наименьшую длину. Алфавитное кодирование пригодно для любых сообщений, то естьдля S = А*.

Если больше про множество S ничего не известно, то точно сформулировать задачу оптимизации затруднительно. Однако на практике часто доступна дополнительная информация. Например, для текстов на естественных языкахизвестно распределение вероятности появления букв в сообщении. Использование такой информации позволяет строго поставить и решить задачу построенияоптимального алфавитного кодирования.6.2.1.

Минимизация длины кода сообщенияЕсли задана разделимая схема алфавитного кодирования а — (а* —>i> т олюбая схема а' = (а* -н• Р/)™=1, где последовательность (Р\,...,Р'п)являетсяперестановкой последовательности ( P i , . . . , /5П), также будет разделимой. Еслидлины элементарных кодов равны, то перестановка элементарных кодов в схеме не влияет на длину кода сообщения. Но если длины элементарных кодовразличны, то длииа кода сообщения зависит от состава букв в сообщении и оттого, какие элементарные коды каким буквам назначены. Если заданы конкретное сообщение и конкретная схема кодирования, то нетрудно подобрать такуюперестановку элементарных кодов, при которой длина кода сообщения будет минимальна. Пусть ki,..., kn — количества вхождений букв ai,..., ап в сообщение2156.2.

Кодирование с минимальной избыточностьюs £ S, a li,... ,1п — длины элементарных кодов (3\,... ,0п соответственно. Тогда,если к{ ^ kj и li^ lj, то kiU + kjlj ^ kilj + kjU. Действительно, пусть kj = к + a,ki = к и lj = I, k = / + b, где a, b ^ 0. Тогда(kilj + kjli) - (kih + kjlj) = (kl + (k + a)(l + b)) - (k(l + b) + l(k + a)) == (kl + al + bk + ab + kl) - (kl + al + kl + bk) = ab ^ 0.Отсюда вытекает алгоритм назначения элементарных кодов, при котором длина кода конкретного сообщения s е S будет минимальна: нужно отсортироватьбуквы сообщения s в порядке убывания количества вхождений, элементарныекоды отсортировать в порядке возрастания длины и назначить коды буквам вэтом порядке.ЗАМЕЧАНИЕЭтот простой метод решает задачу минимизации длины кода только для фиксированногосообщения s е S и фиксированной схемы а.6.2.2.

Цена кодированияПусть заданы алфавит А = { a i , . . . , a n } и вероятности появления букв в сообщении Р = (pi,... ,р п ) (pi — вероятность появления буквы а;). Не ограничиваяобщности, можно считать, что PI + . . . +рп = 1 и р\ ^ . . . ^ рп > 0 (то есть можносразу исключить буквы, которые не могут появиться в сообщении, и упорядочить буквы по убыванию вероятности их появления). Для каждой (разделимой)схемы сг =—>i алфавитного кодирования математическое ожидание коэффициента увеличения длины сообщения при кодировании а (обозначается 1 а )определяется следующим образом:п1 рл)= Y 1гдеli= i&i'г=1и называется средней ценой (или длиной) кодирования ивероятностей Р.Пример Для разделимой схемы А = {a, Ь}, В = {0,1}, опри распределении вероятностей (0,5; 0,5) цепа кодирования+ 0,5 * 2 = 1,5, а при распределении вероятностей (0,9; 0,1)+ 0,1 *2 = 1,1.при распределении= {а —> 0,6 —• 01}составляет 0,5 * 1 +она равна 0 , 9 * 1 +Введём обозначения:U(P)= f inf ltr(P),аР* ==f minpi,г—1L = f [log 2 (n - 1)J + 1.Очевидно, что всегда существует разделимая схема а = (ai —>i> такая, чтоVi (\Pi\) = L.

Такая схема называется схемой равномерного кодирования. Следовательно, 1 ^ l*(P) ^ L, и достаточно учитывать только такие схемы, длякоторых Vг (PIU) ^ L, где U — целое и ^ ^ L/p*. Таким образом, имеется лишьконечное число схем а, для которых U(P) ^ 1<т(Р) ^ L. Значит, существует схема=сг*, на которой ипфимум достигается:1*(Р)-216Глава 6. Кодирование 216Алфавитное (разделимое) кодирование <т*, для которого /о-, ( Р ) = 1*{Р), называется кодированием с минимальной избыточностью, или оптимальным кодированием, для распределения вероятностей Р.6.2.3. Алгоритм ФаноРекурсивный алгоритм Фано 1 строит разделимую префиксную схему алфавитного кодирования, близкого к оптимальному.Алгоритм 6.1 Построение кодирования, близкого к оптимальномуВход: Р : array [l..n] of real — массив вероятностей появления букв в сообщении, упорядоченный по невозрастанию; 1 ^ Р[1] ^ ...

^ Р[п] > О,Р[1] + . . . + Р[п] = 1.Выход: С : array [l..n, 1..L] of 0..1 — массив элементарных кодов.Fano(l,n, 0) { вызов рекурсивной процедуры Fano }Основная работа по построению элементарных кодов выполняется следующейрекурсивной процедурой Fano.Вход: Ь — индекс начала обрабатываемой части массива Р, е — индекс конца обрабатываемой части массива Р, к — длина уже построенных кодов в обрабатываемой частимассива С.Выход: заполненный массив С.if е> b thenк: = к + 1 { место для очередного разряда в коде }тп: = Med(b, е) { деление массива на две части }for г from Ь to е doС[г, к]: = г > тп { в первой части добавляем 0, во второй — 1 }end forFano(6, тп, к) { обработка первой части }Fano(m + 1, е, к) { обработка второй части }end ifФункция Med находит медиану указанной части массива Р[Ь..е], то есть определяет такой индекс тп (b ^ тп < е), что сумма элементов Р[Ь..тп] наиболее близкак сумме элементов Р[(тп + 1)..е].Вход: b — индекс начала обрабатываемой части массива Р, е — индекс конца обрабатываемой части массива Р.Выход: тп — индекс медианы, то естьminm £ b .

Характеристики

Тип файла
PDF-файл
Размер
6,94 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее