Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
main_ta.doc
Скачиваний:
19
Добавлен:
16.09.2019
Размер:
2.29 Mб
Скачать

Має два виводи

іґ 6 іЬеп (іґ 6 іЬеп а) еІзе а та

іґ 6 іЬеп (іґ 6 іЬеп а еІзе а), яким відповідають два різних дерева виведення.

Визначена нами неоднозначність - це властивість граматики, а не мови. Для деяких неоднозначних граматик можна побудувати рів­носильні їм однозначні граматики.

  1. Приклад. Розглянемо граматику і мову з попереднього при­кладу. Граматика О неоднозначна, бо еІзе можна асоціювати з дво­ма різними іЬеп. З тієї ж причини мови програмування, в яких дозволяються як оператори виду іґ іЬеп, так і оператори виду

ІГ іЬеп еІ8в, можуть бути неоднозначними. Невизначеність мо­жна виправити, якщо домовитися, що еІзе повинно асоціюватися з останнім з записаних перед ним іЬеп.

Можна поправити граматику з попереднього прикладу, ввівши два нетермінали 81 і 82 і вимагаючи, щоб 82 породжував оператори виду ІГ іЬеп еІ8е, тоді як 81 може породжувати оператори обох видів. Продукції нової граматики є такими:

81 ^ ІГ 6 іЬеп 81 | ІГ 6 іЬеп 82 еІзе 81 | а

82 ^ ІГ 6 іЬеп 82 еІзе 82 | а.

Той факт, що перед буквою еІзе знаходиться тільки 82, гарантує появу всередині конструкції іЬеп еІзе або букви а, або іншого еІзе. Таким чином, структура ІГ 6 іЬеп (ІГ 6 іЬеп а) еІзе а не виникає.

Вправи до лекції 4.

  1. Нехай N = {8, А, В}, Т = {а, 6}. Визначити мову, породжену граматикою О = (^ Т, 8, Р) з вказаною множиною продукцій Р:

а) Р = {8 ^ АВ | аА, А ^ а, В ^ 6а};

б) Р = {8 ^ АВ | АА, А ^ аВ | а6, В ^ 6};

в) Р = {8 ^ АА | В, А ^ ааА | аа, В ^ 6В | 6};

г) Р = {8 ^ а8 | 86 | а};

д) Р = {8 ^ 88 | а | 6};

е) Р = {8 ^ 88 | а86 | е}; є) Р = {8 ^ е | а8 | а868};

ж) Р = {е | а868 | 68а8}.

  1. Нехай задана граматика О = (^ Т, 8, Р), де N = {8, А}, Т = {0, 1}, множина продукцій

Р = {8 ^ 08 | 1А | 1 | е, А ^ 1А | 1}.

а) Побудувати вивід для слова 0316;

б) Показати, що дана граматика породжує мову {0т 1п | т,п = 0,1, 2,...}.

  1. Довести, що жодне слово мови £(О) не містить підслова 6а, де контекстно-вільна граматика О задана продукціями:

8 ^ а8 | 6А | а, А ^ 6А | 6.

  1. Показати, що кожне слово мови £(С) містить більше букв а ніж букв Ь, де контекстно-вільна граматика С задана продукціями:

5 ^ 5а | Ь55 | 55Ь | 5Ь5 | а.

  1. Показати, що наступна граматика не породжує мову

{ш Є {0,1}* | ш містить одинакову кількість букв 0 та 1 } : 5 ^ 051 | 015 | 150 | 105 | 501 | 510 | е.

  1. Довести, що наступна граматика породжує мову

{ш Є {0,1}* | ш містить одинакову кількість букв 0 та 1 } :

5 ^ 55 | 051 | 150 | е.

  1. З'ясувати до яких типів за класифікацією Хомскі належить граматика С з множиною продукцій Р.

а) Р = {5 ^ 5АВ, 5А ^ а, В ^ Ь};

б) Р = {5 ^ АВ5, АВ ^ аЬ, 5 ^ с};

в) Р = {5 ^ аАВ, А ^ ВЬ, В ^ е};

г) Р = {5 ^ аА, А ^ ЬВ, В ^ Ь | е};

д) Р = {5 ^ А, А ^ В, В ^ е}.

  1. Побудувати граматики з фразовою структурою, які породжу­ють вказані мови:

а) {012п | п = 0,1,...};

б) {0зп 1П} | п = 0,1,...};

в) {0П 1т0П | т,п = 0,1,...}.

  1. Нехай С - граматика з N = {5}, Т = {а, Ь, с}, початковий символ 5 і множина продукцій

Р = {5 ^ аЬ5 | Ьс5 | ЬЬ5 | а | сЬ}.

Побудувати дерево виводу для слів:

а) ЬЬЬсЬЬа

б) ЬсаЬЬЬЬЬсЬ.

Розділ II

Скінченні автомати

Лекція 1. Автомати. їх типи та задання

Існує багато різноманітних методів перетворення інформації. Для їх опису потрібна формальна мова. Така мова розробляється в теорії алгоритмів і теорії інформації. Стосовно перетворювачів інформації алгоритм можна інтуїтивно визначити як деяку сукупність правил, за якими даний пристрій перетворює вхідну інформацію у вихідну.

Щоб перейти до формальних методів опису процесу перетворен­ня інформації з допомогою автоматів, розглянемо деякий пристрій, який має п входів і т виходів. Будемо вважати, що на входи ін­формація подається в дискретні моменти часу і0, І1,..., іп. Інтервал часу іі+1 іі називається тактом. Аналогічно і з виходів інформація одержується дискретно в часі. На кожному із входів (виходів) сигнал може приймати дискретні значення з деякого набору п0, п1,..., пд-1. Сукупність значень вхідних сигналів в момент часу іі називатиме­мо вхідною буквою, а послідовність вхідних букв - вхідним словом. Множину всіх вхідних букв назвемо вхідним алфавітом. Аналогічні означення відносяться і до вихідних сигналів.

Давши це означення, можна уявляти будь-який перетворювач інформації як пристрій з одним входом, на який надходять слова, складені з букв вхідного алфавіту, і з одним виходом, на якому одер­жуються слова в вихідному алфавіті. Процес перетворення інформа­ції в такому пристрої зводиться до встановлення деякої відповідності між словами вхідного та вихідного алфавітів.

Автоматом називають перетворювач алфавітної інформації, який має один вхід і один вихід. Для задання умов функціонування ав­томата фіксуються три множини, елементами яких є букви трьох алфавтів: вхідного X = {х1, ...,хт}, вихідного У = {у1 ,...,уі} і множина внутрішніх станів автомата ^ = {д0,..., дп}.

Автомат складається з трьох частин - стрічки, головки і керую­чого пристрою. Стрічка використовується для запису вхідних даних (вхідного слова). Вона поділена на скінченну кількість комірок.

Головка переглядає стрічку, читає букву з неї і передає одержану інформацію керуючому пристрою. Кожного разу головка переглядає тільки одну комірку стрічки, читає записану в ній букву і переходить до наступної комірки праворуч. Керуючий пристрій складається з станів з множини станів

Автомат функціонує в дискретні моменти часу, які прийнято по­значати цілими невід'ємними числами і = 0,1,... ,к. В початковий момент часу і = 0 керуючий пристрій завжди знаходиться в поча­тковому стані = #(0), в якому автомат починає роботу над вхідним словом. Потім, за активним станом і зчитаною головкою буквою, він визначає в який стан потрібно перейти і яку букву треба написати на місці прочитаної вхідної букви. На згаданих вище множинах зада­ються дві функції: функція переходів 5, яка визначає стан автомата д(і +1) Є ^ в момент часу і +1 в залежності від стану автома­та д(і) Є ^ і значення вхідного сигналу х(і) Є X в момент часу і: д(і + 1) = 5(д(і), х(і)). Більш строго, зміна станів визначається за допомогою функції двох змінних 5 : ^ х X ^ Функція виходів / : ^ х X ^ У визначає значення вихідного сигналу у (і) Є У в за­лежності від стану автомата д(і) Є ^ і значення вхідного сигналу х(і) Є X в момент часу і. Таким чином, якщо керуючий пристрій перебуває в стані д Є ^ і головка зчитує з стрічки букву а Є X, то керуючий пристрій переходить в новий стан р = 5(д,а) і на місці букви а записується буква Ь = /(д, а).

Коли на вхід автомата подавати слово (послідовність вхідних символів), на виході також з'являється слово (послідовність вихі­дних символів). У цьому випадку автомат А можна розглядати як алфавітний перетворювач інформації, який перетворює слова вільної напівгрупи Р(X) в слова вільної напівгрупи Р(У).

Для повного опису автомата, нам потрібно виділити множину Р С ^ кінцевих станів, в яких він підтверджує, що вхідне слово належить шуканій мові. Таким чином, ми приходимо до такого ви­значення автомата.

Семірка А = ^^,У,5, /,д0) називається автоматом Мілі, якщо вона складається із множини станів автомата Ц, множини вхі­дних символів X, множини вихідних символів У, функції переходів 5 : Ц х X ^ Ц, функції виходів / : ^ х X ^ У, початкового стану д0 та множини кінцевих станів Р. Множини X і У називають відповід­но вхідним і вихідним алфавітами автомата. Якщо 5(а,х) = о!, то кажуть, що автомат ^ під дією вхідного сигналу х Є X переходить в стан а/, або сигнал х переводить автомат ^ із стану а в стан а/. Якщо, /(а, х) = у, то кажуть, що автомат ^ перетворює в стані а вхідний сигнал х Є X у вихідний сигнал у Є У.

Автомат А = ^^,У,5, /,д0,Р) називається скінченним, якщо всі три множини - Ц, X і У - скінченні, і нескінченним, якщо хоч одна з них нескінченна.

Автомат називається повним або повністю визначеним, якщо функції переходів і виходів повністю визначені, і частковим, якщо хоч одна з них часткова.

Інколи трапляються автомати, в яких компонент 5 - не функція, а деяке відношення, тобто в таких автоматах не виконується умо­ва однозначності переходу. Автомати такого типу називаються неде- термінованими. Якщо ж відношення 5 є функцією, то автомат нази­вається детермінованим. Отже, для детермінованого автомата ^ з початковим станом а однозначно знаходиться стан Ь, в який автомат перейде під дією слова ш Є Р(X). А в недетермінованому автоматі

таких станів може бути не один, а декілька. Ясно, що клас детермі­нованих автоматів є підкласом класу недетермінованих автоматів.

Крім класів детермінованих і недетермінованих автоматів, існу­ють і інші спеціальні класи. Серед них виділяються деякі вироджені класи автоматів, в яких одна з множин X або У) одноелементна. У таких випадках розглядаються спрощені моделі автоматів. Наве­демо деякі приклади.

Автомат без пам'яті - це трійка (X, У, /), де / : X ^ У. Цей автомат виконує посимвольну трансформацію символів вхідного алфавіту X в символи вихідного алфавіту У, при якому на один і той же вхідний символ х Є X він реагує одним і тим же вихідним символом у Є У. Поняття автомат без пам'яті - основне в теорії перемикальних схем, яка вивчає способи подання таких автоматів мережами із логічних елементів.

Автономний автомат - це четвірка (^,У,5,/) де 5 : ^ ^ Ц, / : ^ ^ У. Для такого автомата поданням початкового стану визна­чається весь подальший процес його функціонування.

Автомат без виходів, або X-автомат-це п'ятірка (^, X, 5, , Р), де Р - деяка підмножина станів автомата, елементи якої називаються кінцевими або представляючими станами, а Є ^ - початковий стан автомата.

Із перелічених класів автоматів тільки X-автомати, з точки зо­ру теорії, викликають інтерес, оскільки в двох попередніх випадках поведінка автомата наперед визначена.

Автомати Мура є окремим випадком автоматів Мілі. Автомат А = (^, X,У,8, /) називається автоматом Мура, якщо його функція виходів /(а,х) виражається функцією переходів 5(а,х) за допомогою рівняння / (а, х) = Н(5 (а, х)), де Н : ^ ^ У .В автоматі Мура вихідний сигнал в момент часу і однозначно визначається станом автомата в той же момент часу, тобто у (і) = д(д(і)). Функція Н називається фун­кцією відміток автомата, а її значення Н(а) на стані а - відміткою цього стану.

Хоча автомати Мура і є окремим випадком автоматів Мілі, в теорії автоматів вони заслуговують на особливу увагу, оскільки в ряді випадків їх специфічні властивості дають можливість будувати більш змістовну і глибоку теорію, ніж теорія автоматів Мілі.

Як саме працює скінченний автомат? На початку роботи, керу­ючий пристрій перебуває в початковому стані , на стрічні записане

вхідне слово і головка зчитує букву з першої зліва комірки. Потім атомат працює, крок за кроком, відповідно до функцій переходів 5 та виходів /. Автомат зупиняє роботу тоді, коли головка прочи­тає букву, записану в останній справа комірці стрічки. Коли робота автомата над вхідним словом зупинилася, то, кажуть, що автомат розпізнає вхідне слово, якщо він зупиняється в одному з кінцевих ста­нів множини Р. В протилежному випадку, кажуть, що вхідне слово не розпізнається автоматом. Якщо ж множина Р кінцевих станів не задана, то вважається, що автомат розпізнає всі слова вхідного алфавіту. Формальна мова всіх слів вхідного алфавіту X, які розпі­знаються автоматом А позначається Ь(А). В цьому випадку кажуть, що мова Ь(А) розпізнається автоматом А. Множина всіх вихідних слів автомата А, які є результатом роботи атомата на мові Ь(А), на­зивається мовою, що породжується автоматом А.

Перейдемо до розгляду скінченних автоматів і способів їх зада-

ння.

У загальному випадку для задання скінченних автоматів кори­стуються двома стандартними способами, які називаються універ­сальними - це таблиці переходів і виходів та графи переходів і вихо­дів.

Таблиці переходів і виходів автомата - це дві матриці однакової розмірності, стовпчики яких відмічені різними символами вхідного алфавіту, а рядки - різними символами станів автомата. Для фун­кції переходів (перша матриця) на перетині і-го рядка, відміченого відміченого станом а Є ^ і і-го стовпчика, відміченого символом х Є X, знаходиться значення 5(а,х) = Ь. Аналогічно для функції виходів (друга матриця) - на перетині і-го рядка і і-го стовпчика знаходиться значення /(а,х) = у Є У. Вважають, що початковий стан автомата відмічає перший стовпчик як в таблиці переходів, так і в таблиці виходів.

1.1. Приклад. Автомат А = ({до, , #2, Яз}, X = {а, Ь}, У = {0,1}, 5, /, ^0) задається такими таблицями переходів і виходів:

5

а

Ь

/

а

Ь

Яо

Я2

Яі

Яо

0

1

Ці

Яз

Яо

Яі

0

1

Я2

Яо

Яз

Я2

0

1

Яз

Яі

Я2

Яз

0

1


Наведений автомат переписує будь-яке слово в алфавіті {а, Ь} в слово в алфавіті {0,1}. Автомат А не є автоматом Мура, оскільки перебуваючи в стані д0 він замінює букву а на 0, а букву Ь - на 1.

Граф переходів і виходів скінченного автомата А є альтернатив­ним шляхом для зображення А. Він являє собою помічений орієнто­ваний граф, вершини якого взаємно однозначно відповідають станам автомата. Стрілки графа відмічені парами символів: перший - сим­волом вхідного алфавіту, другий - символом вихідною алфавіту. У цьому разі відповідність між графом переходів і виходів і функціями переходу 5 і виходу / така, що коли 5(а,х) = о! і /(а,х) = у, то в графі з вершини а у вершину о! веде стрілка, відмічена парою (х/у), і навпаки, коли в графі переходів і виходів автомата існує стрілка (о,, о!), відмічена парою (х/у), то для функцій переходу 5 і виходу / виконуються рівності 5(а,х) = а/ і /(а,х) = у. Крім того, щоб підкреслити початковий стан д0, малюється стрілка без початкової вершини, кінцевою вершиною, якої є стан . Кінцевий стан познача­ється двома концентричними колами.

1.2. Приклад. Граф переходів і виходів для автомата з прикладу 1.1 має вигляд:

З наведеної відповідності графа автомата до його функцій пере­ходу і виходу випливає, що не кожен граф, стрілки якого відмічені парами символів із деяких алфавітів X і У, буде являти собою граф переходів і виходів автомата. Для того щоб відмічений граф був гра­фом детермінованого автомата, необхідно і достатньо, щоб викону­вались дві умови, які називаються умовами автоматності графа.

1)не існує двох стрілок з однаковими вхідними відмітками, що виходять з однієї і тієї ж вершини (умова однозначності);

2)для будь-якої вершини і вхідного символу існує стрілка, що виходить із цієї вершини і відмічена цим вхідним символом (умова повноти).

Отже, для недетермінованих атоматів не виконується умова 1), а для часткових автоматів - умова 2). Але, незважаючи на це, та­блиці переходів як недетермінованих, так і часткових автоматів теж зображують графами.

5

0

1

до

Яі

Яі

Яі

Яо

Яо

/

0

1

Яо

а

а

Яі

Ь

Ь

1.4. Приклад. Нехай X = У = {0,1}. Побудуємо детермінований скінченний автомат, який "шифрує" всі бітові рядки з 0 та 1, замі­нюючи всі біти, які стоять на позиціях, кратних 3, на протилежні.

Граф переходів і виходів шуканого автомата А має вигляд:

1.3. Приклад. Побудувати детермінований скінченний автомат Му­ра, який всі букви бінарного слова ш Є {0,1}*, які стоять на непарних позиціях замінює на букву а, а на парних - на букву Ь.

Граф переходів і виходів шуканого автомата А має вигляд:

0, і/а

0,і/Ь

Перебуваючи в стані д0, даний автомат замінює кожну букву вхі­дного слова на букву а, а в стані ді - на букву Ь.

Таким чином шуканий автомат А задається як шестірка

А =(£,Х,У,5,/,до),

де Я = {яо, Яі.}, X = {0,1}, У = {а, Ь}, а функції переходів 5 і виходів / задані таблицями:

Відмітимо, що якщо "зашифровану" послідовність (вихідне сло­во) з 0 та 1 подати на вхід цього автомата, то одержимо початкову послідовність (вхідне слово), тобто цей автомат одночасно буде й "дешифрувальним пристроєм".

Функції переходів і виходів можна поширити на вхідну і вихідну напівгрупи: Р(X) і Р(У). Для цього необхідно покласти

5(#, е) = 5(#, аш) = 5(5(д, а), ш), / е) = е, / аш) = / а)/і;5^ а) ш).

Використовуючи індукцію за довжиною слова ш, неважко дове­сти таке співвідношення:

5(#, аш) = 5(5(д, а), ш),

/ (3,аш) = / (3,а)/(5(^)).

Дійсно, якщо ш = х, тобто 1(ш) = 1, то база індукції має місце за означенням.

Якщо ж ш = і для V співвідношення асоціативності виконує­ться, то

5(#, аш) = 5(5(д, аV), ж) = 5(5(д, а), /(д, а^) = /(д, аш)/(5(д, аV), ж) =

= / а)/(5(^ а), а)/(5(^ ^^ ж) = / а)/(5(^ а),

Домовимося надалі вважати, що автомат А переходить із стану р в стан д під дією слова ш, або що слово ш переводить автомат А із стану р в стан д, якщо 5(р, ш) = д.

Стан д називається досяжним із стану р (р ^ д), коли існує таке вхідне слово ш, яке переводить автомат А із стану р в стан д. Для того щоб встановити досяжність д з р, достатньо в графі переходів і виходів знайти шлях із вершини р в вершину д. Очевидно, що ко­ли такий шлях існує, то послідовність перших компонентів відміток стрілок цього шляху і буде складати слово ш.

Зауважимо, що для встановлення досяжності д з р достатньо роз­глядати лише такі шляхи в графі автомата (вони називаються про­стими), які не проходять двічі через одну і ту ж вершину графа. Це зауваження дає можливість обмежити пошук необхідного вхідного слова лише такими словами, довжина яких не перевищує загально­го числа станів автомата. Ясно, що у випадку скінченних автоматів перевірка істинності відношення р ^ д завжди можлива.

Вправи до лекції 1.

1.1. Побудувати граф скінченного автомата А = (^, X,У, 5, /, д0), де Я = {до, Яі2}, X = {0,1, 2}, У = {а,Ь,с}, а функції переходів 5 і виходів / задані таблицями:

5

0

1

2

Яо

Яі

Яі

32

Яі

Яі

42

Яо

Я2

Яі

Яо

Я2

/

0

1

2

Яо

а

Ь

а

Яі

Ь

с

Ь

Я2

с

а

Ь


Визначте в яке слово перетворює А кожне з наступних вхідних слів:

а) 012; в) 100000;

б) 001022; г) 000111222.

/

00

01

10

11

Яо

0

1

1

0

Яі

1

0

0

1

5

00

01

10

11

Яо

Яо

Яо

Яо

Яі

Яі

Яо

Яі

Яі

Яі

В чому полягає робота даного автомата?

1.2. Побудувати граф скінченного автомата А = (Я^^У^, /,д0), де Я =0, Ц1}, X = {00, 01,10,11}, У = {0,1}, а функції переходів 5 і виходів / задані таблицями:

1.3. В чому полягає робота автомата А = (^, X,У, 5, /, д0), де ^ = {д0, д1}, X = {0,1, *}, У = {0,1, +, —}, а функції переходів 5 і виходів / задані таблицями:

5

0

1

*

Я0

Я0

Я1

Я0

41

41

Я0

Я0

/

0

1

*

Я0

0

1

+

41

0

1

?


Задати його як шестірку А = ^^,У,5, /,д0) і з'ясувати у чому полягає робота автомата.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]