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

Лекция 2. Основные понятия о определения теории алгоритмов. Алфавитные операторы и алгоритмы

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

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

При этом природа этих объектов абсолютно безразлична, т.е. Буквами абстрактного алфавита могут служить буквы любого языка, отдельные слова, символы, рисунки и т.д.. Важно, чтобы число этих элементов было конечным.

Таким образом, абстрактный алфавит — это конечное множество различных символов.

А = { , , , } B = {0,1} C = {♠,♣,♥,♦}

Слово (строка абстрактного алфавита) — это любая конечная упорядоченная последовательность символов.

С = 00111100

Вводится понятие «длина слова» - число символов в данном слове.

На ряду со словами положительной длины, которые состоят из 1 и > символов, в теории алгоритмов оперируют понятием «пустого слова», которое обозначают « е ».

На ряду с понятием целого слова в теории алгоритмов оперерируют понятием «подслова» (начальное)

Слово p называют начальным подсловом некоторого заданного слова q, если выполняется равенство

q = p * r, где r – некоторое слово (в том числе и пустое)

a = aabbh a = pr p = aa r=bbh

В теории алгоритмов часто пользуются особым приемом — расширение абстрактного алфавита — дополнение его символами.

G = {0,1,2,..9} “23 + 67” = g'

g1 g2

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

23 + 67 = 90 Б: Кре5, Фа7, Ла7, Кф1

G' (23 + 67)= 90 r: Крб3, Лс5, …

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

Алфавитный оператор — это всякое соответствие, сопоставляющее словам некоторого алфавита слова в некотором другом или этом же фиксированном абстрактном алфавите. При этом I алфавит — входной, II – выходной алфавит данного алфавитного оператора.

Слова в А Слова в В

Таким образом алфавитный оператор — это функция, которая задает соответствия между словами во входном алфавитом и словами этого же самого или другого выходного алфавита.

Если Аi — слово во входном алфавите, а Bj — выходное, то тогда алфавитный оператор Гai = bj преобразует входное ai в выходное bj.

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

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

Многозначный — 1 входной — несколько выходных.

А В

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

С каждым алфавитным оператором связано интуитивное представление о его сложности.

Наиболее простыми считаются такие алфавитные операторы, которые осуществляют посимвольное отображение. Оно заключается в том, что каждый символ Sx входного слова p заменяется единственным символом Sy в выходном алфавите.

Кодирующее отображение — каждый символ Sx во входном слове p заменяется последовательностью символов выходного алфавита. Указанная последовательность называется кодом.

А В

A = {a,b,c,d} Гa = 123

B = {1,2,3....} Гb = 45

Процесс обратный кодированию называется декодированием — замена в слове bj кодов алфавита B символами алфавита A.

Условие обратимости кодирования еще иначе называют условием взаимной однозначности исходного и кодирующего отображения.

Гai = bj

Гbj = ai

A = {a,b,y}

B = {n,m}

Гb = n Гa = m Гy = mn

p = aabya

Гp = mmnmnn = p'

Гp'^-1 = a y y a != p