Remove ads
З Вікіпедії, вільної енциклопедії
Скінче́нний автома́т (англ. finite-state machine, автомат зі скінченною множиною станів) — модель що використовується для опису зміни стану об'єкта в залежності від поточного стану та інформації отриманої ззовні. Поняття скінченного автомата було запропоновано як математичну модель дискретних приладів, оскільки будь-який такий прилад (через скінченність своїх розмірів) може мати тільки скінченну кількість станів.
Скінченні автомати допомагають розв'язувати багато задач, серед яких автоматизація проєктування електронних приладів, проєктування комунікаційних протоколів, синтаксичний аналіз та інші інженерні застосування. В біології і дослідженнях штучного інтелекту, автомати або їх ієрархії іноді використовуються для опису неврологічних систем і в лінгвістиці для опису граматики природних мов.
Існує дві різних групи автоматів: Акцептори/Розпізнавачі і Перетворювачі (Трансдуктори).
Акцептори і розпізнавачі (також виявлювачі послідовностей) дають двійковий результат, відповідаючи так або ні на питання чи вхідні дані приймаються автоматом. Всі стани автомата можуть бути або приймаючими або ні. Якщо поточний стан автомата є приймаючим, значить послідовність подана на вхід приймається. Як правило, на вхід подаються символи (літери); дії не виконуються. Приклад на зображенні показує автомат, який приймає слово «nice». В цьому автоматі єдиний допустимий стан це 7.
Автомат також може бути описаний як такий, що визначає мову, яка містить всі слова розпізнавані цим автоматом, але не ті які ним відхиляються; тоді ми кажемо, що ця мова розпізнається автоматом. За визначенням, мови розпізнавані СА це регулярні мови, тобто мова є регулярною якщо існує деякий СА, який розпізнає її.
Початковий стан зазвичай позначається стрілкою «звідкись».
Допустимі стани (також відомі як кінцеві стани) це такі, що якщо автомат знаходиться в них це означає, що вхідний рядок, наскільки він опрацьований, належить мові що розпізнається. Зазвичай позначається двома колами.
Приклад допустимого стану з'являється в діаграмі праворуч: a детермінований скінченний автомат (ДСА), що визначає чи двійковий вхідний рядок містить парну кількість 0.
S1 (який є початковим станом) показує стан в якому парна кількість 0 була введена. Цей автомат опиниться в допустимому стані, якщо двійковий рядок містить парну кількість 0 (включно з рядком, що не містить 0 взагалі). Приклади рядків розпізнаваних цим ДСА це порожній рядок, 1, 11, 11…, 00, 010, 1010, 10110, і подібні …
Перетворювачі продукують вихід або виконують інші дії, на основі символу на вході і/або на станах. Вони використовуються для керування і в галузі математичної лінгвістики. Тут вирізняють два типи:
На практиці часто використовується суміш моделей.[1]
Подальша відмінність між Детермінованими (ДСкА) і недетермінованими (НДСкА) автоматами. В детермінованих автоматах, кожен стан має один перехід для кожного входу. В недетермінованих автоматах вхід може призвести до одного, більше ніж одного або жодного переходу для даного стану. Ця різниця важлива на практиці, але не в теорії, через існування алгоритму трансформації будь-якого НДСкА в складніший ДСкА з аналогічною функціональністю.
Якщо автомат має лише один стан, то, згідно Енциклопедії кібернетики він називається автоматом без пам'яті ((англ. combinatorial finite-state machine). Оскільки під час роботи стан такого автомату змінюватись не може, то вихідний символ залежить саме від вхідного символу в поточному такті, і не залежить від символів, які надходили перед тим. Оператор, який реалізується таким автоматом, виконує перетворення літери за літерою вхідних символів у вихідні.
Згідно із загальною класифікацією, дані наступні визначення:
Для обох детермінованих і недетермінованих СА, зручно дозволити бути неповною функцією, тобто не має бути визначеною для кожної комбінації і . Якщо СА перебуває в стані , наступний символ і не визначена, тоді може повідомити про помилку (тобто відхілити ввід).
Якщо функція виходу є функцією стану і вхідної абетки() таке визначення відповідає моделі Мілі, і може бути виконана як автомат Мілі. Якщо функція виходу залежить тільки від стану () тоді таке визначення відповідає моделі Мура, і може бути виконана як автомат Мура. Скінченний автомат без функції виходу відомий як напівавтомат або як модель станів і переходів.
Означення: Відповідність, яка відображає вхідні ланцюжки a автомата M у вихідні ланцюжки w називають автоматним відображенням, а також автоматним оператором M. Якщо результат застосування цього оператора до ланцюжка a — вихідний ланцюжок w,
то це позначають M(a) = w. Кількість символів у ланцюжку a, як завжди, називають довжиною ланцюжка a та позначають |a| чи l(a).
Автоматне відображення має дві властивості:
1. Ланцюжки a та w = M(a) мають однакову довжину: |a| = |w| (збереження довжини).
2. Якщо a = a1a2 й M(a1a2) = w1w2, де |a1| = |w1|, то M(a1) = w1, тобто образ відрізка довжиною l дорівнює відрізку образу з такою самою довжиною.
Властивість 2 означає, що автоматні оператори — це оператори без випередження, тобто такі, котрі, обробляючи ланцюжок зліва направо, «не підглядають уперед»: i-та буква вихідного ланцюжка залежить тільки від перших i букв вхідного ланцюжка. Приклад оператора з випередженням — той, який ланцюжку a = x1x2…xk ставить у відповідність ланцюжок xk…x1x2, перша буква вихідного ланцюжка тут дорівнює останній букві вхідного ланцюжка. Зазначимо, що ці дві властивості — це не достатні умови автоматності відображення: існують відображення, які задовольняють умови 1 і 2, але не реалізовані в скінченному автоматі.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.