Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алфавит. Слова. Алгоритм в алфавите. Вполне эквивалентные алгоритмы

Алфавитом называется всякое непустое множество символов, а сами символы алфавита называются буквами.

Примером алфавита может служить конечное множество символов или, например, русский алфавит.

Словом в данном алфавите А называется всякая конечная последовательность букв алфавита А.

Пустая последовательность букв называется пустым словом и обозначается через Λ.

Если Р обозначает слово аbb и Q обозначает слово bb, то пусть РQ обозначает слово аbbbb, аналогично для любых слов Р и Q запись РQ обозначает слово, полученное из слов Р и Q, если сразу за Р записать слово Q.

Ясно, что для любого слова Р имеем РΛ=ΛР=Р.

Алфавит А называется расширением алфавита В, если . Если алфавит А есть расширение алфавита В, то, очевидно, всякое слово в алфавите В является также словом и в алфавите А, обратное верно не всегда.

Будем говорить, что слово Р входит в слово Q, если Q=R1PR2, где R1и R2любые, может быть и пустые слова. Слово Р может входить в слово Q несколько раз, первым вхождением будем считать самое левое вхождение.

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

Алгоритмы обозначаются заглавными полужирными буквами (A, B, С,...).

Пусть Р слово в алфавите А. Говорят, что алгоритм A применим к слову Р, если применение его к слову Р приводит через конечное число шагов к некоторому слову Q. При этом слово Q обозначается через A (Р). Если процесс переработки (преобразования) слова Р бесконечен, то считается, что алгоритм не применим к этому слову.

Два алгоритма A и B в одном и том же алфавите С называются вполне эквивалентными в алфавите D , если для любого слова Р в алфавите D либо оба алгоритма не применимы к Р, либо применимы и их результаты совпадают: A (Р) = B (Р). То, что алгоритмы A и B вполне эквивалентны в алфавите D, обозначается следующим образом:

 

3. Нормальный алгоритм (алгоритм А. А. Маркова)

 

Опыт изучения и применения математики показывает, что все известные алгоритмы можно разбить на простейшие шаги - элементарные операции. В качестве элементарной операции, на базе которой будут строиться нормальные алгоритмы, выделим подстановку одного слова вместо другого.

Пусть задан алфавит А, не содержащий в качестве букв символов "•" и "→", и пусть Р и Q слова в алфавите А. Тогда выражения Р→Q, P→•Q называются формулами подстановки в алфавите А.

Формула подстановки Р→Q называется простой подстановкой и означает, что вместо Р нужно подставить слово Q и перейти к следующей подстановке.

Формула подстановки Р→•Q называется заключительной подстановкой и означает, что вместо Р нужно подставить Q и закончить процесс преобразования.

Пусть Р→(•)Q означает любую из формул подстановки Р→Q или Р→•Q.

Нормальный алгоритм в алфавите А считается заданным, если задана конечная таблица (схема) формул подстановок слов алфавита А:

n ≥ 1, Piи Qi, (1≤i≤n) слова в А, причем согласно этой таблице (схеме) формул подстановок можно осуществлять преобразование слов алфавита А следующим образом.

Пусть Roслово в алфавите А. Если ни одно из Р12,...,Рnне входит в Ro, то процесс применения В к Roзаканчивается и его результатом считается слово Ro. Если хотя бы одно из Р12,...,Рnвходит в Ro, то отыскиваем самую первую (в порядке следования в таблице) формулу подстановки, такую, что Рkвходит в Ro. Совершаем подстановку слова Qkвместо самого левого вхождения слова Рkв слово Ro. Пусть R1- результат такой подстановки. Если использованная подстановка Рk→(•)Qk- заключительная, то работа алгоритма заканчивается и его результатом считается R1. Если Рk→(•)Qk- простая формула подстановки, то применим к R1тот же поиск, который был только что применен к Ro, и так далее. В случае, когда через конечное число шагов процесс преобразования закончится, то полученное слово Riи является результатом. Если же процесс переработки слова Roбесконечен (никогда не заканчивается), то считаем, что алгоритм не применим к слову Ro.

Нормальный алгоритм над алфавитом А отличается от нормального алгоритма в алфавите А только тем, что в словах Рiи Qi(1≤i≤n) могут использоваться не только буквы из алфавита А, но и буквы, не принадлежащие алфавиту А.

Рассмотрим несколько примеров нормальных алгоритмов.

1. Пусть А={a,b,c}. Таблица формул подстановок

задает некоторый нормальный алгоритм В в алфавите А. Если взять слово Ro=bb, то В преобразует его сначала с помощью подстановки (3) в слово сb, затем, вновь применяя подстановку (3) получим сс. Далее, по заключительной подстановке (2), получим с. Это слово и будет В(Ro).

Если исходное слово Roбудет содержать букву а, то В не применим к Ro, ибо подстановка (1) будет применяться безостановочно.

2. Пусть А={a,b,c}. Рассмотрим таблицу формул подстановок

Это таблица, очевидно, задает нормальный алгоритм над алфавитом А, ибо β ∉ А. Если взять произвольное слово Roв А, то к нему сначала подстановки (1),(2) и (3) не применимы, так как слов βа, βb и βс в слове Roбыть не может. Подставив вместо самого левого пустого слова (Λ) в Roслово β по (5), имеем βRo. Если первой в Roстоит буква а, то применяем подстановку (1), если же первая буква - b, то применяем подстановку (2), а если первая с, то применяем (3) и перемещаем β за первую букву в слове Ro. Повторяя этот процесс столько раз, сколько букв в слове Ro, получим Roβ. По подстановке (4) окончательно имеем Roa, т.е. этот алгоритм приписывает к произвольному слову Roв алфавите А справа от Roбукву а.

В рассмотренном алгоритме В подстановки (1),(2) и (3) служат для перестановки местами β и а или β и b или β и с, т.е. для перестановки β с любой буквой алфавита А. Тогда можно ввести для нашего алгоритма В более краткую форму записи:

Здесь запись (1*): βx → xβ применена для обозначения подстановок (1)-(3) в В.

Пусть А={a1,a2,...,an}, P, Q и R слова в алфавите А. Договоримся, что запись вида РхQ → (•)R обозначает таблицу подстановок:

3. Пусть заданы алфавиты А и В, буква α не входит в А и в В, и пусть a1,a2,...,ak- фиксированные буквы из алфавита А, а Q1,Q2,...,Qk- фиксированные слова в алфавите В. Рассмотрим нормальный алгоритм в алфавите , задаваемый таблицей

Этот алгоритм в любом слове Р (алфавита А) все встречающиеся там буквы a1,a2,...,ak- заменяет на слова Q1,Q2,...,Qkсоответственно. Если же в Р букв a1,a2,...,akнет, то оставляет его без изменения.

Пусть М={1,*}. Любое неотрицательное целое (натуральное) число можно записать (обозначить) в алфавите М словом, состоящим из n+1 букв 1:

число 0 обозначим словом 0=1,

число 1 обозначим словом 1=11,

.............................

число n обозначим словом

Слова будем называть цифрами. Поставим теперь в соответствие всякому вектору (n1,n2,...,nk), где n1,n2,...,nk- натуральные числа, слово в алфавите М, которое обозначим через . Так, например, (1,2,3 обозначает слово 11*111*1111.

4. Нормальный алгоритм

как легко убедиться, применим только к тем словам в алфавите М, которые суть цифры, и переводит любое слово в , т.е. для любого натурального n. Заметим, что алгоритм A0 не применим к пустому слову.

5. Нормальный алгоритм

очевидно, тоже применим только к тем словам в алфавите М, которые суть цифры, и преобразует любое слово в слово , т.е. для любого натурального n. Алгоритм A1, как и A0, не применим к пустому слову.

 

<== предыдущая лекция | следующая лекция ==>
Понятие алгоритма | Функции частично вычислимые и вычислимые по Маркову
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 4317; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.