Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры до 20 бил1.doc
Скачиваний:
45
Добавлен:
24.09.2019
Размер:
812.54 Кб
Скачать

4. Кодирование инф. Эфф-ть, помехоуст-ть кодирования, сущ-ие декод-я. Методы Фано, Хаффмена.

Кодирование в информатике:представление памяти в памяти комп., защита информации от несанкционированного доступа, сжатие информации.

Кодирование – это некоторое преобразование F множества сообщений в алфавите А во множество сообщений алфавита В. А={α1….αk} В={β1….βm}

а–сообщение кот-е мы хотим закодировать

А*–множество всех сообщений к-е можно записать в алфавит а

F(a)=b, b принадлежит В* – закодированое

В*–множество всех сообщений в алфавите b

Если алфавит В имеет мощность |В|=m то кодирование наз-ся m-ичным. В={0,1}–двоичное.

Преобразование обратное кодированию F наз-ся декодирование.

Св-ва кодирования:

1.Существование декодирования.Алфавитное(побуквенное) кодирование задается схемой или таблицей кодов <αi→βi> , где существует ai принад.А,biпринад.B

Кодовое слово βi наз-ся элементарным кодом. Кодирование наз-ся равномерным если все элементарные коды имеют одинаковую длину li= |βi|=l

В неравномерном кодировании разные коды могут иметь разные длины.

Схема кодирования наз-ся разделимой если любое слово составленное из элементарных кодов единственным образом разделяется на элементарные коды.

Теорема1: Алфавитное кодирование с разделимой схемой имеет однозначное декодирование.

Схема кодирования наз-ся префиксной если никакой элементарный код не является началом другого элементарного кода.

Теорема2:Если схема кодирования префиксная, то она является разделимой.

Схема кодирования разделима тогда и только тогда когда выполняется неравенство Крафта

2.Эффективность(оптимальность) код-ия.

Для практики-наим.длина кода.Чтобы сделать код оптимальным(эфективным), необходимо иметь информацию об алфавите А и множестве А*.Н-р: вероятность появления каждой буквы алфавита А в сообщении.

Минимизация длины кода в сообщении. Длина кода всего сообщения зависит от состава букв в сообщении и от длины элементарных кодов этих букв. Если дано конкретное сообщение и схема кодирования, то можно подобрать такую перестановку элементарных кодов при которой длина кода в сообщении будет минимальной. Для этого нужно отсортировать буквы αiв порядке убывания их вероятности появления в сообщении. А элементы кода βiотсортировать по возрастанию длин и назначить коды βiдля букв αiв таком порядке: <αi→βi>, i=1..n, li= |βi|.

Пусть известны вероятности появления букв αi, тогда длина или стоимость кодирования – сумма c=l1*p1+…+ln*pn Средняя длина кодир-ия слова – стоимость кодирования.

3.Надежность (помехоустойчивое) кодирования.

S – мн-во переданных сообщений; S/ - мн-во полученных сообщений; C – канал связи, он ищет источник помех. Передача сообщения: S→К→К/→S/.(над первой стрелкой F, над 2-C, над 3 – F-1)/ Кодирование наз-ся помехоустойчивым(самокорректирующимся, кодир-ие с исправлением ошибок), если для любого сообщения из мн-ва S: (АS э S) (E-1(C(F(S)))=S) (гдеА-перевернутая,значит любое, Е- знак существует)

Помехоустойчивость связана с понятием ошибки. Ошибки: 1).Замещение разряда; 2).Выпадение разряда; 3).Вставка разряда.

Код Фано: 1.Постановка задачи: Дан алфавит из n букв с помощью кот-х записано сообщение, известна частота появлении, т.е. вероятность каждой буквы алфавита в сообщении р12….рn :

При этом:1) ; 2)Вероятность появления буквы аi на любом месте сообщения одна и та же в не зависимости от того какие буквы стоят перед. 3)Вероятности упорядочены.(по убыванию).2.Идеякода Фано (показать на примере)Буквы алфавита требуется разбить на 2 группы, чтобы суммы обоих групп были по возможности ближе друг к другу. Для букв 1-й группы в качестве кодового символа используем 0, а во 2-й – 1.Процесс продолжаем до тех пор пока каждая группа не будет состоять из одной буквы.(Схема префиксная, разделимая, существует однозначное декодирование).

Код Хаффмана: (оптимальное кодирование):1. Постановка задачи Основан на жадном выборе, он строит оптимальные коды символов исходя из частоты их использования в тексте, этот метод используется в архиваторах. 2.Идея этого кода (показать на примере) часто встречающиеся символы кодируются короткими последовательностями битов, а редко встречающиеся длинными. Хаффман разработал алгоритм к-й строит оптимальный префиксный код. Жадный алгоритм – это алг-м к-й на каждом шаге делает локально-оптимальный выбор в надежде что полученое таким образом итоговое решение тоже окажется оптимальным.

Надежность (помехоустойчивость кодирования).

S – мн-во переданных сообщений; S/ - мн-во полученных сообщений; C – канал связи, он ищет источник помех. Передача сообщения: S→К→К/→S/.(над первой стрелкой F, над 2-C, над 3 – F-1)/ Кодирование наз-ся помехоустойчивым(самокорректирующимся, кодир-ие с исправлением ошибок), если для любого сообщения из мн-ва S: (АS э S) (E-1(C(F(S)))=S) (гдеА-перевернутая,значит любое, Е- знак существует)

Помехоустойчивость связана с понятием ошибки. Ошибки: 1).Замещение разряда; 2).Выпадение разряда; 3).Вставка разряда.

Код Хемминга(Показывать на примере)

1)Ищем кол-во информационных разрядов по мощности алфавита.(M=30)

2m>=М, m=?(=5)

2)Ищем кол-во контролирующих разрядов по кол-ву информационных. 2к>=m+к+1, n=m+к. (к=4)

3) Контролирующие разряды ставятся по степеням двойки.

5.…. Р5 Язык программирования Паскаль: основные идеи, зработчик языка – Никлаус Вирт (конец 60-х – начало 70-х гг.). Основные идеи и принципы:Описание данных предшествует их использованию в программе. Д.б. описаны все объекты, над которыми будут производиться какие-либо действия (указаны имена и типы). ЯП Pascal удовлетворяет принципам структурного программирования. Задача разбивается на отдельные подзадачи (блоки), которые решаются отдельно. Каждый блок объединяет в себе структуру данных и действия над ними. Каждый блок должен иметь один вход и один выход. Такой подход позволяет проектировать программу сверху вниз, разбивая задачи на более простые, и решать каждую из них по отдельности. Затем результаты решения простых задач компонуются, и получается решение исходной задачи. Такой метод называется методом последовательной или пошаговой детализации.

  1. ЯП Pascal разработан т.о., что его последующие версии дали возможность реализовать объектно-ориентированный подход и визуальное программирование.

Алфавит языка – это набор символов, разрешенных с использованием и воспринимаемых компьютером.

Система типов данных в TP: Простые: Определяют множество атомарных (неделимых) значений. Ord (x) – порядковый номер значения; а) целый mod (взятие остатка при делении).б) логический (BOOLEAN)в) символьный г) перечислимый д) ограниченный Type ogr = 0.. 99;Var a: ogr;е) вещественный Real 2.9E-39..1.7E+38 Составные:а) регулярный: (- массивы - строки Type st = array [1..20] of char;)б) множественныйв) файловыйг) комбинированный (записи Type <имя записи> = record)д) объекты динамич.тип данных

Конструкции:1)следование: нач- ввод-проц-типовой проц-вывод-конец.2) ветвление:нач-ввод-условие -(процесс)-(стрелка от условия на вывод)-конец 3) цикл: нач-проц-ввод-проц-ввод-условие-вывод-конец(стрелка от условии на после ввода)

Для реализации вспомогательных алгоритмов служат подпрограммы или процедуры и функции procedure <имя процедуры>/(<список параметров>);/<описание>/begin/<операторы>/end

Функции по своей сути похожи на процедуры, но возвращают одно значение через свое имя. function <имя>(<параметры>):<тип результата>;<описания>/begin/<операторы>/end