Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕМА 3_АЛГОРИТМІЧНІ СИСТЕМИ+++.doc
Скачиваний:
29
Добавлен:
05.12.2018
Размер:
634.88 Кб
Скачать

Недетермінований скінченний автомат

Автомат недетермінований — автомат, який при даному вхідному символі і внутрішньому стані може переходити в декілька різних внутрішніх станів.

Формально, недетермінований автомат — це п'ятірка <X, Y, Q, Φ, Ψ>, така, що відображення Ψ: X × Q → Q не є однозначним.

За аналогією з теорією детермінованих автоматів можна ввести поняття представлення (породження) множин для недетермінованих автоматів. Якщо дваскінченних автомати, які представляють одну й ту саму множину вважати еквівалентними, то існує алгоритм, який дозволяє по кожному скінченному недетермінованому автомати побудувати еквівалентний йому скінченний детермінований автомат. При цьому, зрозуміло що, детермінований автомат має більшу кількість станів, ніж недетермінований автомат. В загальному випадку, для довільних автоматів це твердження невірне. Наприклад, клас множин, які породжуються недетермінованими автоматами зі стековою пам'яттю ширше, ніж клас множин, які породжуються такими ж детермінованими автоматами.

Детермінований скінченний автомат

Приклад детермінованого скінченного автомата, який приймає тільки двійкові числа кратні S. Стан S0 є одночасно початковим станом і допустимим станом.

В теорії алгоритмів і теорії автоматів, детермінований скінченний автомат (ДСА) — скінченний автомат, який приймає скінченний рядок символів. Для кожного стану існує стрілка переходу в наступний стан для кожного сиволу. По прочитанню символу, ДСА перестрибує детерміновано з одного стану в інший за відповідною стрілкою. Детермінованість означає наявність лише одного результату (тобто переходу в наступний стан для кожного символу (S0 -> Si) або повернення в той самий стан (S0 -> S0)). ДСА має початковий стан (позначений графічно стрілкою нізвідки) звідки починаються обчислення, і набір допустимих станів (позначених графічно двійними колами), які допомогають визначити успішність обчислень.

ДСА можна використати або в режимі приймача для перевірки належності вхідного рядка до мови, або в режимі генерації для створення списку всіх рядків в мові.

ДСА визначається як абстрактна математична концепція, але через свою детермінованість, він може бути виконаним на апаратному або програмному рівні для розв'язання різних особливих задач. Наприклад, програмний автомат, який визначає є чи ні введений рядок вірним телефонним номером або електронною адресою. [2] Іншим прикладом на апаратному рівні є мікросхема, що керує автоматичними дверима, використовуючи вхідні дані від сенсорів руху або кнопок для визначення коли виконувати переходи між станами.

3.7. Формальні граматики

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

Словоформа складається з ланцюга морфем. Морфема — найменша граматична частина слова (префікс, корінь, суфікс, закінчення).

Граматична мова — скінченна множина правил побудови об’єктів, їх аналізу та перетворень. Теорія формальних граматик сформульована у 50-ті роки американським лінгвістом М. Хомським, хоча основи, на яких вони базуються, були винайдені значно раніше. У теорії алгоритмів це системи, що знаходяться між скінченними абстрактними автоматами та нескінченними машинами Тьюринга.

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

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

Кожна граматика — це впорядкована четвірка символів G={VT,VH,P,S}, де VT та VH — відповідно термінальний та нетермінальний словники.

Термінальний словник — сукупність елементів, з яких будуються ланцюжки, породжувальні граматикою, так би мовити, предметна область граматики G (термінальні символи).

Нетермінальний словник — сукупність символів, якими позначено класи або ланцюжки вхідних елементів, тобто словник синтаксичних типів граматики (нетермінальні символи).

V = VT U VH словник граматики G, VT VH = .

У процесі перетворення ланцюжок може містити термінальні та нетермінальні символи одночасно.

S — початковий, виділений нетермінальний символ, що означає клас усіх мовних об’єктів, для опису яких призначена граматика. Символ S називають метою граматики.

P — правила підстановок граматики G:  à , де ланцюжок  має хоча б один символ  VH .

Множина ланцюжків, що виводяться в граматиці G, є мова, породжена цією граматикою, і позначається L(G). До L(G) належать всі ланцюжки, що складені з термінальних символів.

Синтаксис мови — правила побудови речень у мові, або правила побудови конструкцій мови.

Семантика — тлумачення або пояснення цих конструкцій, тобто правила використання синтаксису, або правила надання мовній конструкції певного смислу.

Вимоги до граматики:

1) приписування кожному реченню мови його структурного опису (з яких елементів побудовано речення, який порядок їх розміщення);

2) граматика повинна бути скінченною.

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

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

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