- •Введение
- •I. Рабочая программа
- •Лекции – 70 часов
- •1 Семестр (34 часа)
- •2 Семестр (36 часов)
- •Семинары – 35 часов
- •1 Семестр (17 часов)
- •1. Элементы комбинаторики (2 часа).
- •2 Семестр (18 часов)
- •Самостоятельная работа (ср) – 48 часов
- •Вариант ср
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вопросы экзамена
- •1 Семестр
- •2 Семестр
- •Литература Основная
- •Дополнительная
- •II. Фонд задач
- •III. Образцы решения задач
- •1. Специальные представления булевых функций
- •Задача 1
- •2. Замкнутые классы и полнота систем функций алгебры логики
- •Задача 2
- •3. Реализация булевых функций схемами из функциональных элементов в стандартном базисе
- •Задача 3
- •4. Классы вычислимых и рекурсивных функций. Операции суперпозиции, примитивной рекурсии и минимизации
- •Задача 4
- •5. Критерий однозначности декодирования (а.А. Марков)
- •Задача 5
- •Задача 6
- •IV. Варианты тестовых заданий Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •V. Критерий оценки знаний
- •Содержание
Задача 4
Обосновать примитивную рекурсивность функции h(x, y) = x+(2–y), построив описывающие ее примитивно рекурсивные схемы.
Решение:
Напишем схему примитивной рекурсии для
функции
,
ведя рекурсию по переменной
:
,
.
Из этой схемы
следует, что для описания функции
достаточно иметь функцию
и функцию
.
Очевидно, что функция
представима в виде суперпозиции
простейших функций. Дадим примитивно
рекурсивное описание функции
.
Имеем
,
.
Значит,
,
где
.
Следовательно, надо ещё построить
примитивно рекурсивное описание функции
,
которая, как не трудно заметить, есть
.
Легко видеть, что
,
.
Итак, строится из простейших функций с помощью операций суперпозиции и примитивной рекурсии. Значит, она примитивно рекурсивная функция.
5. Критерий однозначности декодирования (а.А. Марков)
Для всякого
алфавитного кодирования со схемой
существует такое
,
что проблема взаимной однозначности
алфавитного кодирования сводится к
проблеме для кодирования конечного
множества
(U)
всевозможных слов в алфавите U,
длина которых
и
.
Критерий однозначности
декодирования дает простой алгоритм
для установления по схеме ,
будет алфавитное кодирование обладать
свойством взаимной однозначности или
нет. Для этого достаточно рассмотреть
конечное множество слов
(U)
и выяснить, будет ли кодирование этого
множества взаимно однозначным.
Трудоемкость такого алгоритма можно
оценить как
Оказывается, что данный алгоритм не
может быть использован даже в простых
примерах в силу своей неэффективности.
Из доказательства критерия однозначности декодирования можно извлечь достаточно эффективный алгоритм для распознавания возможности декодирования. Этот алгоритм формулируется на языке теории графов.
Теорема. Алфавитное кодирование со схемой å не обладает свойством взаимной однозначности тогда и только тогда, когда граф схемы Г(å) содержит ориентированный цикл, проходящий через вершину (пустое слово).
Замечание. Из теоремы следует очень простой алгоритм распознавания однозначности декодирования.
Пусть С(å)
алфавитный код. Пусть S1
множество слов ,
обладающих следующим свойством: слово
является собственным суффиксом некоторого
кодового слова В и собственным префиксом
некоторого кодового слова В1,
отличного от В, и, кроме того, не является
кодовым словом кода С(å).
Положим S= S1
,
где
пустое слово. Сопоставим коду С(å)
ориентированный граф Г(å
), вершинами которого являются элементы
множества S и в котором дуга, ведущая из
вершины
в вершину
(),
присутствует тогда, если существует
кодовое слово В и последовательность
Р=Вi1,
…, Вis
кодовых слов, таких, что B = αВi1…Вisβ.
При этом последовательность Р может
быть и пустой, если ни одна из вершин ,
не совпадает с .
Дуге, ведущей из
в ,
припишем последовательность Р. Дуги
вида (,
),
ведущие из
в ,
рассматриваться не будут, за исключением
случая =.
Дуга (петля) из
в
присутствует в графе Г(å
) тогда, если существует кодовое слово
В и последовательность кодовых слов
Р=
…,
,
где s
2, таких, что В=В1
…
.
Петле (,)
припишем слово В.
