logo

ДФА (Детерминистички коначни аутомати)

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

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

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

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

ДФА је колекција од 5 скупова истих као што смо описали у дефиницији ФА.

 Q: finite set of states ∑: finite set of the input symbol q0: initial state F: final state δ: Transition function 

Транзициона функција се може дефинисати као:

 δ: Q x ∑→Q 

Графичко представљање ДФА

ДФА се може представити диграфима који се називају дијаграм стања. У којима:

  1. Држава је представљена врховима.
  2. Лук означен улазним карактером приказује прелазе.
  3. Почетно стање је означено стрелицом.
  4. Коначно стање је означено двоструким кругом.

Пример 1:

 Q = {q0, q1, q2} ∑ = {0, 1} q0 = {q0} F = {q2} 

Решење:

Дијаграм транзиције:

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

Табела прелаза:

Садашње стање Следеће стање за улаз 0 Следеће стање уноса 1
→к0 к0 к1
к1 к2 к1
*к2 к2 к2

Пример 2:

ДФА са ∑ = {0, 1} прихвата све које почињу са 0.

Решење:

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

Објашњење:

  • У горњем дијаграму можемо видети да на датом 0 као улазу за ДФА у стању к0 ДФА мења стање у к1 и увек иде у коначно стање к1 на почетном улазу 0. Може да прихвати 00, 01, 000, 001... итд. Не може прихватити ниједан стринг који почиње са 1, јер никада неће ићи у коначно стање на низу који почиње са 1.

Пример 3:

ДФА са ∑ = {0, 1} прихвата све које се завршавају са 0.

Решење:

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

Објашњење:

У горњем дијаграму можемо видети да на датом 0 као улазу за ДФА у стању к0, ДФА мења стање у к1. Може прихватити било који стринг који се завршава са 0 као што је 00, 10, 110, 100....итд. Не може прихватити ниједан стринг који се завршава са 1, јер никада неће прећи у коначно стање к1 на 1 улаз, тако да стринг који се завршава са 1, неће бити прихваћен или ће бити одбијен.