38. Алфавитное кодирование: теорема Маркова, алгоритм Маркова.
Пусть А - исходный алфавит, содержащий буквы . В нем записывается исходное сообщение – слово, составленное из одной или нескольких букв. В кодирующем алфавитезаписывается закодированное сообщение. Правила, по которым осуществляется кодирование, могут быть разными. Алфавитное кодирование, как одно из возможных правил, задается схемой Σ вида
где - слова в кодирующем алфавите. Их называюткодовыми словами. Для того чтобы с помощью такой схемы закодировать некоторое слово, состоящее из нескольких букв (разрядов), надо каждую букву этого слова закодировать соответствующим ей кодовым словом.
Алфавитное кодирование – кодирование, выполняющееся поразрядно.
Определение. Схема алфавитного кодирования называется однозначно декодируемой, если любое закодированное слово допускает только один способ декодирования.
Определение. Схема алфавитного кодирования называется равномерной, если все её кодовые слова попарно различны, но имеют одинаковую длину.
Теорема Маркова. Для любой схемы алфавитного кодирования Σ существует такое числоNΣ, что схема Σ является однозначно декодируемой тогда и только тогда, когда однозначно декодируемы все слова из множества.
Число N0можно вычислить через характеристики самой схемы Σ. Для этого нужно рассмотреть все возможные префиксы и суффиксы кодовых словсхемы Σ. Пусть кодовое слово Вkимеет вид, где р – префикс,s– суффикс,- кодовые слова, причем префикс (суффикс) может быть пустым словом Λ, но не должен совпадать ни с одним из кодовых слов. Т - максимальное число кодовых слов, которые могут содержаться в разложении другого кодового слова. Тогда числоNΣиз теоремы Маркова удовлетворяет неравенству, гдеL– суммарная длина всех кодовых словсхемы Σ.
Пример. Требуется оценить сверху числоNΣдля схемы Σ с кодовыми словами В1 =ab, В2 =bc, В3 =acb, В4 =abac, В5 =babbc. Проверить, является ли схема однозначно декодируемой. В этой схемеL= 16, r = 5. Для нахождения параметра Т рассмотрим все возможные разложения кодовых слов:
В1 = ab = (a)(b),
В2 = bc = (b)(c),
В3 = acb = (a)(cb) = (ac)(b),
В4 = abac = (a)(bac) = [ab](ac) = (aba)(c),
В5 = babbc = (b)[ab][bc] = (ba)(bbc) =(bab)[bc] = (babb)(c),
где для удобства префиксы и суффиксы заключены в круглые скобки, а кодовые слова – в квадратные. В некоторых разложениях префикс или суффикс – пустое слово Λ. Поскольку в разложении кодового слова В5 = (b)[ab][bc] = (b)В1В2содержится два других кодовых слова, и это максимально возможное количество для данной схемы Σ, то параметр Т = 2. Следовательно,.
Алгоритм проверки однозначности декодирования. Опираясь на разложения, построим множество S, включающее все такие префиксы, которые также являются и суффиксами кодовых слов. Также добавим в множествоSпустое слово Λ. В данном случае получится множествоS= {b,ac, Λ}.
Построим ориентированный граф GΣс помеченными вершинами и ребрами. Каждая его вершина помечается некоторым элементом множестваS. Две вершины соединяются ребром только тогда, когда их метки являются префиксом и суффиксом одного и того же кодового слова. Само ребро помечают частью этого слова, заключенной между префиксом и суффиксом, и ориентируют от вершины-префикса к вершине-суффиксу. В данном случае кодовое слово В5разложимо в виде В5 =babbc= (b)[ab][bc] = (b)В1В2,
т.е. начинается с префикса bи заканчивается пустым суффиксом. Поэтому в графеGΣимеется ребро, помеченное словами В1В2и направленное от вершиныbк вершине Λ. Другое ребро графаGΣ, помеченное словом В1, выходит из вершины Λ в вершинуac, поскольку кодовое слово В4 =abac= [ab](ac) = В1(ac).
Третье ребро помечено пустым словом Λ и направлено от вершины acк вершинеb, так как кодовое слово В3 =acb= (ac)(b). Таким образом, получаем графGΣ, в нем есть ориентированный цикл, проходящий через вершину Λ. Данная схема Σ не является однозначно декодируемой.
Утверждение .Схема алфавитного кодирования Σ является однозначно декодируемой тогда и только тогда, когда в её графеGΣнет ориентированного цикла, проходящего через вершину Λ.
- 1. Основные понятия теории графов, удаленность вершины, центр, радиус и диаметр графа.
- 2. Способы задания графов, свойства матриц смежности и инциденций, теорема о рукопожатиях.
- 3. Основные операции над графами, неравенства для числа вершин, ребер и компонент связности графа.
- 4. Типы графов, дополнительные графы, двудольные графы, критерий двудольности.
- 5. Обходы графов: эйлеровы цепи и циклы, необходимые и достаточные условия их существования, алгоритм Флери.
- 6. Обходы графов: гамильтоновы цепи и циклы, достаточные условия их существования.
- 7. Деревья, их свойства, кодирование деревьев, остовные деревья.
- 8. Экстремальные задачи теории графов: минимальное остовное дерево, алгоритмы Прима и Краскала.
- 9. Экстремальные задачи теории графов: задача коммивояжера, «жадный» алгоритм
- 10. Экстремальные задачи теории графов: задача о кратчайшем пути, алгоритм Дейкстры.
- 11. Изоморфизм и гомеоморфизм графов, методы доказательства изоморфности и неизоморфности графов.
- 12. Плоские укладки графов, планарные графы, критерий Понтрягина-Куратовского.
- 13. Необходимые условия планарности, формула Эйлера для планарных графов.
- 14. Правильные вершинные раскраски графов, хроматическое число, неравенства для хроматического числа.
- 15. Теорема о пяти красках, гипотеза четырех красок, «жадный» алгоритм.
- 16. Хроматический многочлен, его нахождение и свойства.
- 17. Задача о поиске выхода из лабиринта, реберная раскраска графа.
- 18. Ориентированные графы, источники и стоки, топологическая сортировка, алгоритм Демукрона.
- 19. Составление расписания выполнения комплекса работ в кратчайшие сроки методами теории графов.
- 20. Элементарные булевы функции и способы их задания (табличный, векторный, формульный, графический, карта Карно).
- 21. Существенные и фиктивные переменные булевых функций, основные тождества, эквивалентные преобразования формул.
- 22. Линейные и нелинейные полиномы Жегалкина, разложение булевых функций в полином Жегалкина методом неопределенных коэффициентов.
- 23. Линейные и нелинейные полиномы Жегалкина, разложение булевых функций в полином Жегалкина методом эквивалентных преобразований.
- 24. Разложение булевых функций в сднф и скнф.
- 25. Минимизация днф и кнф методом эквивалентных преобразований.
- 26. Минимизация днф и кнф с помощью карт Карно.
- 27. Замкнутые классы булевых функций т0, т1, l, лемма о нелинейной функции.
- 28. Замкнутые классы булевых функций s и м, леммы о несамодвойственной и немонотонной функции.
- 29. Полная система функций, теорема о двух системах булевых функций.
- 30. Теорема Поста о полноте системы булевых функций, алгоритм проверки системы на полноту, базис.
- 31. Схемы из функциональных элементов, правила построения и функционирования, метод синтеза сфэ, основанный на сднф и скнф.
- 32. Метод синтеза сфэ, основанный на компактной реализации всех конъюнкций с помощью универсального многополюсника, сложность получаемых схем.
- 33. Основные комбинаторные операции, сочетания и размещения (с возвращением и без возвращения элементов).
- 34. Комбинаторные принципы сложения, умножения, дополнения, включения-исключения.
- 35. Биномиальные коэффициенты, их свойства, бином Ньютона.
- 36. Треугольник Паскаля, полиномиальная формула.
- 37. Алфавитное кодирование: необходимое и достаточные условия однозначности декодирования.
- 38. Алфавитное кодирование: теорема Маркова, алгоритм Маркова.
- 39. Коды с минимальной избыточностью (коды Хаффмана), метод построения.
- 40. Линейные коды, порождающая матрица, двойственный код.
- 41. Самокорректирующиеся коды (коды Хэмминга), метод построения.
- 42. Определение, схема и функционирование абстрактного автомата, способы задания автоматов.
- 43. Типы конечных автоматов, автоматы Мили и Мура, автоматы-генераторы.
- 44. Слова и языки, операции над ними, их свойства.
- 45. Регулярные выражения и регулярные языки, теорема Клини.
- 46. Задача анализа автоматов-распознавателей.
- 47. Задача синтеза автоматов-распознавателей.
- 48. Эквивалентные состояния автомата-распознавателя, эквивалентные автоматы-распознаватели, минимизация автоматов-распознавателей, алгоритм Мили.
- 49. Эквивалентные состояния автомата-преобразователя, эквивалентные автоматы- преобразователи, минимизация автоматов- преобразователей, алгоритм Мили.
- 50. Детерминированные и недетерминированные функции, примеры, способы задания.
- 51. Ограниченно-детерминированные (автоматные) функции, способы их задания.
- 52. Логические автоматы, способы их задания, синтез двоичного сумматора.
- 53. Операции над логическими автоматами: суперпозиция и введение обратной связи.