Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория алгоритмов (конспект).doc
Скачиваний:
81
Добавлен:
03.03.2016
Размер:
1.41 Mб
Скачать

Конспект лекций

по дисциплине «Теория алгоритмов»

Подготовили:

Вудвуд Е.Ю.

Кривенко Д.С.

Основные понятия теории алгоритмов

Алгоритмами называются конструктивно задаваемые соответствия между словами в абстрактных алфавитах.

Абстрактный алфавит – любая конечная совокупность объектов, называемая буквами или символами данного алфавита. Любой алфавит задается перечнем его символов: A={a, b,c}.

Под словом или строкой алфавита понимается любая конечная упорядоченная последовательность этого алфавита: аа, авс, авв.

Длиной слова называется количество символов слова.

Пустое слово – слово нулевой длины.

Слово Р – под-слово слова Q если слово Q представляется в виде: q=pr. Алфавитным оператором (отображением) называется всякое соответствие сопоставляющие словам алфавита А слова того же или другого алфавита. При этом первый алфавит называется входным, а второй выходным данного оператора.

Алфавитный оператор – функция, задающая отношение Га = в.

Алфавитный оператор задается:

  • графично(рис.1)

  • таблично

A

B

a

kl

b

km

c

mm

d

kl

d

km

Рисунок 1 – Задание алфавитного оператора графично.

Различают однозначные и многозначные алфавитные операторы.

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

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

Рисунок 2 – однозначный алфавитный оператор.

Алфавитный оператор не сопоставляющий данному слову алфавита Ai никакого выходного слова Bj в том числе и пустого, не определен на слове Ai.

Совокупность всех слов, на которых определен алфавитный оператор называется областью его определения.

Посимвольное отображение каждого символа входного алфавита в словах выходного алфавита принято называть кодирующим отображением.

Процесс обратный кодированию – декодирование.

Декодирующий оператор Г-1В=а.

Пример:

A

B

a

k

b

kl

c

ml

d

ll

aabacd → kkklkmlll

Для обратимости кодирования должны выполняться два условия:

  1. коды разных символов входного алфавита должны быть различны;

  2. код любого символа входного алфавита не должен совпадать ни с каким из начальных подслов кодов других символов.

Кодирование, при котором все коды имеют одинаковую длину, называется нормальным.

Наиболее часто в качестве входного кодирующего алфавита используется двоичная система исчисления.

Для определения длины кодового слова используется формула:

Тогда l ≥ logmn

m – количество символов в выходном алфавите;

l – длина кодового слова,

n – количество символов входного алфавита.

Алфавитные операторы, задаваемые с помощью конечной системы правил принято называть алгоритмами.

Свойства алгоритмов:

  1. Равнозначность.

Два алгоритма считаются равными, если равны соответствующие им алфавитные операторы и совпадает система правил, задающая действие алгоритма.

Два алфавитных оператора считаются одинаковыми, если они имеют одну область определения и сопоставляют любому входному слову одинаковые выходные слова.

  1. Эквивалентность.

Два оператора эквивалентны, если у них совпадают алфавитные операторы, но не совпадает система правил.

Алгоритмы, основанные на однозначном алфавитном операторе, называются детерминированными.

  1. Массовость.

Алгоритм называется массовым, если он применим для множества входных слов.

  1. Результативность.

Если алгоритм обеспечивает получение результата через конечное число шагов, то он называется результативным.

Основываясь на свойстве результативности, вытекает понятие области определения алгоритма.

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

Алгоритмы бывают:

  • случайные;

  • самоизменяющиеся.

Алгоритмы называются случайными, если система правил предусматривает возможность случайного выбора входных слов или правил преобразования.

Алгоритм называется самоизменяющимся, если не только перерабатывает входные слова, но и сам изменяется в процессе работы.

Всякий способ задания алгоритмов называется алгоритмической системой.

Алгоритмические системы делятся на:

  • алгебраические;

  • геометрические.

Алгебраическая система строится в некоторой конкретной символике, в которой алгоритмы представляются в виде линейных текстов:

  • рекурсивные функции;

  • машина Тьюринга;

  • операторные системы Ван-Хао;

  • логические схемы Янова.

В геометрической системе алгоритмы строятся в виде множеств, между которыми вводятся связи имеющие характер отображений или бинарных отношений. Алгоритмы представляются в виде графовых схем:

  • конечные автоматы;

  • нормальный алгоритм Маркова;

  • блок-схемы.