Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Кодирование слов. О минимальной длине кода слова.

Пусть  и . Под кодом слова  мы будем понимать любое другое слово , по которому слово  можно восстановить однозначно. Например, если  — бинарное слово длины  и  — номера единиц слова , то по слову  слово  можно восстановить однозначно. Следующее определение связывает слова и слова.

Определение. (А.Н. Колмогорова.) Пусть  — произвольная частично-рекурсивная функция (Машина Тьюринга). Тогда «сложность» слова  по  есть следующая величина:

    (4.3)

Любое слово , удовлетворяющее условию (4.3), называется кодом или программой для слова .

Таким образом, согласно (4.3), для восстановления «сложных» слов нужны длинные программы, а «простые» слова имеют короткие коды. Однако это определение  включает в себя некоторый произвол, связанный с функцией . Этот произвол состоит в том, что мы имеем дело с определённой машиной Тьюринга(Т-М). Таким образом, если , то  является кодом слова  относительно Т-М, обозначаемой через . Длина самого короткого кода обозначается через . Существование универсальной машины Тьюринга позволяет, в определённой степени, получить меру сложности, инвариантную относительно .

Теорема. Существует такая машина Тьюринга , что

 

где константа  зависит лишь от МТ .

Казалось бы, что мера (4.3) позволяет адекватно и конструктивно оценивать алгоритмическую сложность кодирования произвольного слова. Однако это не совсем так, в силу следующего утверждения.

Теорема. Функция , измеряющая сложность слова  относительно какой-нибудь универсальной машины Тьюринга, является алгоритмически неразрешимой.

Доказательство. Рассмотрим бинарный алфавит  и упорядочим все слова из  сначала по длине, а потом по возрастанию (лексикографически).

Если существует Т-М , которая вычисляет , то существует и Т-М , которая «переводит» любое натуральное число  в первое по порядку (*) слово  такое, что . Но тогда по числу  можно восстановить слово , то есть  является кодом слова . Так как длина  есть , то справедливо неравенство . Противоречие.

Замечание. Нетрудно понять, что существует лишь конечное число слов, сложность которых равна . Действительно, если не так, то существуют слова, имеющие одинаковые коды, что противоречит условию однозначности кодирования.

Пусть  — конечное множество. Под кодированием  понимается любое инъективное отображение  в некоторое множество бинарных слов. Другими словами, мы рассматриваем отображения вида :

где  и  при .

Длина кода  слова  — это, по определению, длина слова , то есть . Для того чтобы различать элементы множества , коды этих элементов должны иметь определённые ограничения на длину. Точный смысл этого замечания состоит в следующем.

Лемма. Справедливы соотношения

1.

2.

Доказательство. Так как число двоичных слов длины  равно

то если , тогда для кодирования  имеется не более  двоичных слов. Так как , то должно выполняться неравенство: , что соответствует условию 1).

С другой стороны, словами длины  можно закодировать не более чем  элементов множества .

Лемма доказана.

Упражнения.

1. Найдите:

а) число бинарных слов длины n, имеющих ровно k серий;

б) число бинарных слов длины n, имеющих ровно k единичных серий;

в) число слов длины n над алфавитом  имеющих ровно k серий.

2. Пусть  – бинарное слово. Показать, что:

а) число фрагментов вида (11) в слове a равно , где  – число единиц в слове a;

б) число фрагментов вида (01) в слове a равно

3. Пусть  Слово  над алфавитом A называется монотонным, если  Найти число монотонных слов длины n над алфавитом A.

4. Пусть   – бинарное слово. Найти:

а) общее число фрагментов слова ;

б) число различных фрагментов слова

5. Покажите, что

a) Число слов длины , содержащих в качестве фрагмента данное слово  длины , равно

 

b) Общее число подслов длины  в слове  равно .

c) Общее число фрагментов длины  в слове  равно .

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...