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

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

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

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

. ( e - 1)Sb : = 0 { сумма элементов первой части }for г from 6 to е — 1 doSb : = Sb + P[i] { вначале все, кроме последнего }end forSe: — P[e] { сумма элементов второй части }тп: = е { начинаем искать медиану с конца }1Роберт М. Фано (р. 1917).Еi=m+lp[i6.2. Кодирование с минимальной избыточностью217repeat\d: = Sb — 5 е | { разность сумм первой и второй частей }т : = т — 1 { сдвигаем границу медианы вниз }Sb'.

= Sb- Р[т}\ Se: — Se + Р[т] { перевычисляем суммы }until \Sb - Se| > dreturn mПри каждом удлинении кодов в одной части коды удлиняютсянулями, а в другой — единицами. Таким образом, коды одной части пе могутбыть префиксами другой. Удлинение кода закапчивается тогда и только тогда,когда длина части равна 1, то есть остается единственный код. Таким образом,схема по построению префиксная, а потому разделимая.ПОБОСНОВАНИЕПример Коды, построенные алгоритмом Фано для заданного распределениявероятностей (п = 7).Pi0,200,200,190,120,110,090,09C[i]kpih0001001110010111011123333330,400,600,570,360,330,270,272,80UP)6.2.4.

Оптимальное кодированиеОптимальные схемы алфавитного кодирования обладают определёнными структурными свойствами, устаналиваемыми в следующих леммах. Нарушение этихсвойств для какой-либо схемы означает, что схема не оптимальна.Пусть а = (а* —> А)Г= i — схема оптимального кодирования для распределения вероятностей Р = р\ ^ ... ^ рп > 0. Тогда еслирг > pj, то U < lj.ЛЕММА1О Т противного.

Пусть i < j, pi > pj и k > lj. Тогда рассмотримсхему а' = {ai —> j3\,...,сч —» Pj,... ,a,jPi,... ,an —» pn}. Имеем:- la> == (pik + pjlj) - (pilj -(- pjk) = (pi - Pj)(U - lj) > 0, что противоречит тому, чтосхема а — оптимальна.•ДОКАЗАТЕЛЬСТВОТаким образом, пе ограничивая общности, можно считать, что li ^ . . . ^ 1п.ЗАМЕЧАНИЕФактически, лемма 1 повторяет для вероятностей то, что было обнаружено для частотв подразделе 6.2.1.218Глава 6.

Кодирование 218ЛЕММА 2Если а = (А* —<• А ) ™ = 1 — схема оптимального префиксного кодированиядля распределения вероятностей Р = р\ ^ ... ^ рп > 0, то среди элементарных кодов имеются два кода максимальной длины, которые различаются только впоследнем разряде.ДОКАЗАТЕЛЬСТВОП О предыдущей лемме кодовые слова максимальной длины являются последними в схеме. Далее от противного.[ 1 ] Пусть кодовое слово максимальной длины одно и имеет вид рп = РЪ, где6 = 0 V 6 = 1.

Имеем: Vг е 1..гг - 1 (U ^ |/3|). Так как схема префиксная, то слова Pi,..., /3 n _i не являются префиксами /3. С другой стороны, /3 не являетсяпрефиксом слов /Зх,..., /З п -ь иначе было бы /3 = Pj, а значит, /3j было бы префиксом /Зп.

Тогда схема а ' \ = { а i —» / 3 i , . . . , а п —> /3) тоже префиксная, причёмчтоLA'{P) = U P ) противоречит оптимальности а.[ 2 ] Пусть теперь два кодовых слова /3 n -i и /Зп максимальной длины различаются пе в последнем разряде, то есть /3 n _i = Р'Ь', (Зп = Р"Ь", /3' ф /3", причёмР', Р" не являются префиксами для Pi,...,Рп-2 и наоборот. Тогда схема а': =: — (ai —> P i , . . . , а п - 2 —• /З п _ 2 , a n _ i —> /З'Ь', a n —> /3") также является префиксной,причём LA'{P) = 1<j{P) — РП, что противоречит оптимальности а.[ 3 ] Пусть кодовых слов максимальной длины больше двух. Тогда среди них найдутся два, которые отличаются не только в последнем разряде, что противоречитуже доказанному пункту 2.•Если crn-i = (A* —> A ) ™ ^ 1 — схема оптимального префиксного кодирования для распределения вероятностей Р = pi ^ ... ^ рп-\ > 0 и pj = q' + q",причёмТЕОРЕМАPj-1Р\>^ pj+i>Рп-1^ q' > q" > 0,то кодирование со схемойап=—• Pi,...,aj-ia n _ i —> Pn-i,aj—• Pj-i,dj+i—> Pj+i,• • •,—• PjO, an —• /3jl)является оптимальным префиксным кодированием для распределениястей Рп = pi,..

.,pj-i,pj+1,...,pn-i,q',q".ДОКАЗАТЕЛЬСТВОвероятно-Заметим следующее.[ 1 ] Если cr n -i было префиксным, то а п тоже будет префиксным по построению.[ 2 ] Цена кодирования для схемы а п больше цены кодирования для схемы a n - iна величину pj\1аЛРп)= Plh+P2h+ pn_1/n_1+ • • .+Pj-llj-l+pj+llj+l+ . . .++ q'{lj + 1) + q" (I j + 1) == pih + ... + Pn-iln-i+ lj{q' + Я") + (я' + Я") == pih + . •.

+pn_i/n_i+ljPj +Pj = U - i ( P n - i ) +Pj-2196.2. Кодирование с минимальной избыточностью[ 3 ] Пусть некоторая схема а'п : ={аг —>i оптимальна для Р п . Тогда полемме 2 два кода максимальной длины различаются в последнем разряде: а'п == (а\ —* (3[,..., ап-2 —• (3'п_2,ап-1 —> /30, ап —• (31).

Положим I': = \(3\ и рассмотгрим схему а'п_х: =(а\а^ —»•/?,...,а п _ 2 —•Де j определено так,чтобы pj-1 > g' 4- g" ^ Pj+i- Цена кодирования для схемы а'п больше ценыкодирования для схемы сг'п_1 также на величину pj\1*>п (Рп) = hpi + ... + ln-2Pn-2 + (I' + 1 )q' + {I' + 1 )q" == llPl + ... + ln-2Pn-2 + l'{q' + q") + (q' + q") =[ 4 ] Схема a'n — префиксная, зиачит, схема cr'n_l — тоже префиксная.[ 5 ] Схема crn_i — оптимальна, зиачит, la> {Pn-i) ^ррlp[6 ] Имеем: 1аЛ п) = 1<тп-А п-\) + Pj ^ a'n_1{ n-i)+Pjоптимальна, значит, схема а п также оптимальна.lan-i(Pn-i)=la'n{pn)-Но схемаа'п•6.2.5. Алгоритм ХаффменаРекурсивный алгоритм Хаффмена 1 строит схему оптимального префиксного алфавитного кодирования для заданного распределения вероятностей появлениябукв.Алгоритм 6.2 Построение оптимальной схемы — рекурсивная процедура HuffmanВход: п — количество букв, Р : array [l..n] of real — массив вероятностей букв,упорядоченный по убыванию.Выход: С : array [l..n, 1..L] of 0..1 — массив элементарных кодов, t : array [l..n]of 1..L — массив длин элементарных кодов схемы оптимального префиксногокодирования,if га = 2 thenС[ 1,1]: =0;^[1]: = 1 { первый элемент }С[2,1]: = 1; £[2]: = 1 { второй элемент }elseq: = Р[п - 1] + Р[п] { сумма двух последних вероятностей }j : = Up (га, q) { поиск места и вставка суммы }Huffman(P,га- 1) { рекурсивный вызов }Down (га, j ) { достраивание кодов }end ifФункция Up находит в массиве Р место, в котором должно находиться число q (см.

предыдущую теорему), и вставляет это число, сдвигая вниз остальныеэлементы.1Дэвид А. Хаффмен (1925-1999).220Глава 6. Кодирование 220Вход: п — длина обрабатываемой части массива Р, q — вставляемая сумма.Выход: измененный массив Р.j : = 1 { место вставляемого элемента }for i from п — 1 downto 2 doif P[i - 1] < q thenP[i) : = P[i — 1] { сдвиг элемента массива }elsej : = г { определение места вставляемого элемента }exit for г { всё сделано — цикл не нужно продолжать }end ifend forP[j] '• = 4 { запись вставляемого элемента }return jПроцедура Down строит оптимальный код для п букв на основе построенногооптимального кода для п — 1 буквы.

Для этого код буквы с номером j временноисключается из массива С путем сдвига вверх кодов букв с номерами, большимиj, а затем в конец обрабатываемой части массива С добавляется пара кодов,полученных из кода буквы с номером j удлинением на 0 и 1 соответственно.Здесь С [г, *] означает вырезку из массива, то есть г-ю строку массива С.Вход: п — длина обрабатываемой части массива Р, j — номер «разделяемой» буквы.Выход: оптимальные коды в первых п элементах массивов С ис: — C[j, *] { запоминание кода буквы j }I •' ={ и длины этого кода }for г from j to п - 2 doC[i, *]: = С [г + 1, *] { сдвиг кода }i[i] : = £[i + 1] {и его длины }end forС[п — 1, *]: = с; С[п, *]: = с { копирование кода буквы j }С[п - 1,1 + 1]: = 0; C[n, I + 1]: = 1 { наращивание кодов }1[п — 1]: = J + 1; i[n]: = I + 1 { и увеличение длин }ОБОСНОВАНИЕД Л Я пары букв при любом распределении вероятностей оптимальное кодирование очевидно: первой букве нужно назначить код 0, а второй — 1.Именно это и делается в первой части оператора if основной процедуры Huffman.Рекурсивная часть алгоритма в точности следует доказательству теоремы предыдущего подраздела.

С помощью функции Up в исходном упорядоченном массивеР отбрасываются две последние (наименьшие) вероятности, и их сумма вставляется в массив Р, так чтобы массив (на единицу меньшей длины) осталсяупорядоченным. Заметим, что при этом место вставки сохраняется в локальной переменной j. Так происходит до тех пор, пока не останется массив из двухэлементов, для которого оптимальный код известен. После этого в обратном порядке строятся оптимальные коды для трёх, четырёх и т. д. элементов. Заметим,что при этом массив вероятностей Р уже не нужен — нужна только последовательность номеров кодов, которые должны быть изъяты из массива кодов ипродублированы в конце с добавлением разряда.

А эта последовательность хранится в экземплярах локальной переменной j, соответствующих рекурсивнымвызовам процедуры Huffman.•2216.3. Помехоустойчивое кодированиеПример Построение оптимального кода Хаффмена для п = 7. В левой частитаблицы показано изменение массива Р, а в правой части — массива С. Позиция, соответствующая текущему значению переменной j, выделена полужирнымначертанием шрифта.0,200,200,230,370,400,6001000110100,200,200,200,230,370,40100011011110,230,190,190,200,200,120,180,190,200,110,120,180,090,110110110000001100000101000101001101100100,09ООНЦена кодирования составляетО, 20 х 2 + 0, 20 х 2 + 0,19 х 3 + 0,12 х 3 + 0,11 х 3 + 0,09 х 4 + 0,09 х 4 = 2, 78,что несколько лучше, чем в кодировании, полученном алгоритмом Фано.6.3. Помехоустойчивое кодированиеНадёжность электронных устройств по мере их совершенствования всё времявозрастает, по, тем не менее, в их работе возможны ошибки, как систематические, так и случайные.

Сигнал в канале связи может быть искажён помехой,поверхность магнитного носителя может быть повреждена, в разъёме может бытьпотерян контакт. Ошибки аппаратуры ведут к искажению или потере передаваемых или хранимых данных. При определённых условиях, некоторые из которыхрассматриваются в этом разделе, можно применять методы кодирования, позволяющие правильно декодировать исходное сообщение, несмотря па ошибкив данных кода. В качестве исследуемой модели достаточно рассмотреть каналсвязи с помехами, потому что к этому случаю легко сводятся остальные.

Например, запись на диск можно рассматривать как передачу данных в канал, а чтениес диска — как приём данных из капала.6.3.1. Кодирование с исправлением ошибокПусть имеется канал связи, содержащий источник помех. Помехи проявляютсяв том, что принятое сообщение может отличаться от переданного. Опишем этоотличие в функциональной форме:К-^К',К,К'еВ*,где К —множество переданных, а К' — соответствующее множество принятыхпо каналу сообщений, подразумевая, что разные вызовы «функции» С с одними тем же аргументом могут возвращать различные результаты. Кодирование F(вместе с декодированием F~l), обладающее тем свойством, что222Глава 6. Кодирование 222S - ^ K - ^ K ' ^ S , \ / s e S c A * (F~1(C(F(s)))= s),называется помехоустойчивым, или самокорректирующимся, или кодированиемс исправлением ошибок.

Без ограничения общности можно считать, что А = В == {0,1}. Кроме того, естественно предположить, что содержательное кодирование (вычисление F и F~l) выполняется на устройстве, свободном от помех, тоесть F и F'1 являются функциями в обычном смысле.ЗАМЕЧАНИЕФункция F - 1 является декодированием для кодирования F, но она не является обратнойфункцией для функции F в смысле определений подраздела 1.6.2.Если про источник помех С ничего не известно, то функции F и F - 1 не могутбыть определены, за исключением тривиальных случаев, когда S = 0 или \S\ = 1.Таким образом, для решения поставленной задачи необходимо иметь описаниевозможных ошибок (проявлений помех).Ошибки в канале могут быть следующих типов:• Он->1, 1 I—> 0 — ошибка типа замещения разряда;• О I—• е, 1 и е - ошибка типа выпадения разряда;*• е н> 1, s I—> 0 — ошибка типа вставки разряда.Канал характеризуется верхними оценками количества ошибок каждого типа,которые возможны при передаче через канал сообщения определённой длины п.Общая характеристика ошибок канала (то есть их количество и типы) обозначается 6 = (61,62,63), где£3 — верхние оценки количества ошибок каждоготипа соответственно.Пример Допустим, что имеется канал с характеристикой <5 = (1,0,0), то естьв канале возможно не более одной ошибки типа замещения разряда при передаче сообщения длины га.

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

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

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

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