Пређи на садржај

Детерминистички коначни аутомат

Извор: Wikipedija

У теорији израчунљивости, детерминистички коначни аутомат (ДКА) је коначни аутомат у којем за сваки пар стања и улазног знака постоји један и само један пријелаз у сљедеће стање. Детерминистички коначни аутомати препознају скуп регуларних језика.

ДКА прима низ улазних знакова, и за сваки улазни знак обавља пријелаз у стање које одређује функција пријелаза. Када је прочитан цијели улазни низ, прихватит ће или одбити низ знакова овисно о томе је ли ДКА у прихватљивом или неприхватљивом стању.

Формална дефиниција

[уреди | уреди извор]

ДКА се формално дефинира уређеном петорком, , која се састоји од

  • коначног скупа стања ()
  • коначног скупа улазних знакова званог улазна абецеда ()
  • функције пријелаза ()
  • почетног (иницијалног) стања ()
  • скупа прихватљивих стања ()

Нека је M ДКА такав да M = , и низ знакова над абецедом . M прихваћа низ знакова ако слијед стања , постоји у уз сљедеће увјете:

  1. за

Као што је показано у првом увјету, строј започиње рад у почетном стању с. Други увјет каже да ће за сваки знак улазног низа X строј прећи из тренутног стања у стање управљано функцијом пријелаза . Посљедњи увјет каже да строј прихваћа улазни низ ако посљедњи знак улазног низа X узрокује пријелаз у једно од прихватљивих стања. Иначе кажемо да строј не прихваћа (одбија) улазни низ. Скуп низова знакова које ДКА прихваћа је облик формалног језика, и представља облик језика којег ДКА препознаје.

Слиједи примјер ДКА M над бинарном абецедом који одређује садржи ли улазни низ паран број знаменки 0.

дијаграм стања за M

M = гдје је

  • , те
  • је дефинирана сљедећом таблицом пријелаза:
0
1
С1 С2 С1
С2 С1 С2

Кратко речено, стање С1 представља догађај да се у улазном низу досад појавио паран број знаменки 0, док стање С2 представља догађај да се појавио непаран број. Знаменка 1 у улазном низу не мијења стање аутомата. Када се заврши читање улазног низа, тренутно стање ће показати да ли је улазни низ садржавао паран број знаменки 0 или не.

Језик ДКА M је регуларни језик описан сљедећим регуларним изразом:


Предности и недостаци

[уреди | уреди извор]

ДКАи су једни од најпрактичнијих модела израчунљивости, с обзиром да постоји тривијалан онлине алгоритам који их симулира у линеарном времену и константном простору над током улазних симбола. За два дана ДКАа постоје учинковити алгоритми за проналажење ДКА који препознаје унију, пресјек те комплемент језика које они препознају. Такођер постоје учинковити алгоритми за одређивање да ли ДКА прихваћа било који низ знакова, да ли ДКА прихваћа све низове знакова, да ли два ДКА прихваћају исти језик, те за проналажење ДКА са минималним бројем стања за задани језик.

ДКАи су модели израчунљивости једнаке моћи као НКАи (недетерминистички коначни аутомати).

У другу руку, ДКАи су строго ограничене моћи над језицима које могу препознати — многи једноставни језици, укључујући било који проблем чије рјешење захтијева више него константан простор, не могу бити препознати од стране ДКА. Канонски примјер језика којег ниједан ДКА не може препознати јест језик који се састоји од низова знакова облика анбн — коначан број знакова а након којег слиједи једнаки број знакова б. Може се показати да ниједан ДКА не може имати довољан број стања да препозна такав језик.

Теорија аутомата: формални језици и формалне граматике
Цхомскyјева
хијерархија
Граматике Језици Минимални
аутомат
Тип 0 Неограничених продукција Рекурзивно пребројив Турингов строј
н/а (нема уобичајеног имена) Рекурзивни Одлучитељ
Тип 1 Контекстно овисна Контекстно овисни Линеарно ограничен
н/а Индексирана Индексирани Угнијежђеног стога
Тип 2 Контекстно неовисна Контекстно неовисни Недетерминистички потисни
н/а Детерминистичка контекстно неовисна Детерминистички контекстно неовисни Детерминистички потисни
Тип 3 Регуларна Регуларни Коначни
Свака категорија језика или граматика је прави подскуп надређене категорије.