Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник по дискретной математике.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
4.82 Mб
Скачать

Задача 4

Обосновать примитивную рекурсивность функции h(x, y) = x+(2–y), построив описывающие ее примитивно рекурсивные схемы.

Решение: Напишем схему примитивной рекурсии для функции , ведя рекурсию по переменной :

,

.

Из этой схемы следует, что для описания функции достаточно иметь функцию и функцию . Очевидно, что функция представима в виде суперпозиции простейших функций. Дадим примитивно рекурсивное описание функции . Имеем

,

.

Значит, , где . Следовательно, надо ещё построить примитивно рекурсивное описание функции , которая, как не трудно заметить, есть . Легко видеть, что

,

.

Итак, строится из простейших функций с помощью операций суперпозиции и примитивной рекурсии. Значит, она примитивно рекурсивная функция.

5. Критерий однозначности декодирования (а.А. Марков)

Для всякого алфавитного кодирования со схемой  существует такое , что проблема взаимной однозначности алфавитного кодирования сводится к проблеме для кодирования конечного множества (U) всевозможных слов в алфавите U, длина которых  и .

Критерий однозначности декодирования дает простой алгоритм для установления по схеме , будет алфавитное кодирование обладать свойством взаимной однозначности или нет. Для этого достаточно рассмотреть конечное множество слов (U) и выяснить, будет ли кодирование этого множества взаимно однозначным. Трудоемкость такого алгоритма можно оценить как Оказывается, что данный алгоритм не может быть использован даже в простых примерах в силу своей неэффективности.

Из доказательства критерия однозначности декодирования можно извлечь достаточно эффективный алгоритм для распознавания возможности декодирования. Этот алгоритм формулируется на языке теории графов.

Теорема. Алфавитное кодирование со схемой å не обладает свойством взаимной однозначности тогда и только тогда, когда граф схемы Г(å) содержит ориентированный цикл, проходящий через вершину (пустое слово).

Замечание. Из теоремы следует очень простой алгоритм распознавания однозначности декодирования.

Пусть С(å)  алфавитный код. Пусть S1  множество слов , обладающих следующим свойством: слово  является собственным суффиксом некоторого кодового слова В и собственным префиксом некоторого кодового слова В1, отличного от В, и, кроме того, не является кодовым словом кода С(å). Положим S= S1 , где   пустое слово. Сопоставим коду С(å) ориентированный граф Г(å ), вершинами которого являются элементы множества S и в котором дуга, ведущая из вершины  в вершину  (), присутствует тогда, если существует кодовое слово В и последовательность Р=Вi1, …, Вis кодовых слов, таких, что B = αВi1…Вisβ. При этом последовательность Р может быть и пустой, если ни одна из вершин ,  не совпадает с . Дуге, ведущей из  в , припишем последовательность Р. Дуги вида (, ), ведущие из  в , рассматриваться не будут, за исключением случая =. Дуга (петля) из  в  присутствует в графе Г(å ) тогда, если существует кодовое слово В и последовательность кодовых слов Р= …, , где s  2, таких, что В=В1 . Петле (,) припишем слово В.