Недетерминистички коначни аутоматУ теорији израчунавања, недетерминистички коначни аутомат (НДКА) је коначни аутомат у коме за сваки пар стања и улазног карактера може да постоји више стања у која се може прећи. Ово их разликује од детерминистичких коначних аутомата (ДКА), код којих је следеће стање једнозначно одређено. Иако НДКА и ДКА имају различите дефиниције, може се показати у формалној теорији да су они еквивалентни. За сваки НДКА може се конструисати еквивалентан ДКА, и обратно. Оба типа аутомата препознају само регуларне језике. НДКА су генерализовани помоћу пробабилистичких аутомата, са пробабилистиком у смислу избора следећег стања, када постоји избор. НДКА су уведени од стране Мајкла О. Рабина и Дана Скота 1959[1], који су указали на њихову еквивалентност са ДКА. Интуитиван прилазНДКА, исто као и ДКА, обрађује ниску улазних карактера. За сваки симбол са улаза прелази у једно од могућих стања на основу тренутног стања и прочитаног симбола. У том смислу је уобичајено говорити о скупу могућих стања, као члану партитивног скупа скупа стања. Сада прелаз није само стање, већ неки подскуп стања. Проширење НДКА је НДКА-ламбда (НДКА-ε, НДКА са епсилон прелазом), који допушта прелаз из неког стања у неко друго без читања знака са улаза. Овакав прелаз се назива епсилон прелаз. Уобичајено је да се обележава са λ или ε. Ознака за прихватање знака са улаза је иста као и код ДКА. Кад и последњи знак буде прочитан, ниска ће бити прихваћена ако и само ако постоји низ прелаза којима аутомат са овим улазом може завршити у прихватајућем стању. Односно, неће бити прихваћена ако за сваку комбинацију прелаза аутомат завршава у неприхватајућем стању. Формална дефиницијаНДКА је уређена 5-торка (Q, Σ, T, q0, F), која се састоји од:
P(Q) означава партитиван скуп скупа Q. НДКА са ε покретима замењује функцију прелаза функцијом која дозвољава празну реч ε као могућ улаз, према томе имамо функцију T : Q × (Σ {ε}) → P(Q). Може се показати да су НДКА и НДКА-ε еквивалентни и да се може један конструисати на основи другог и обратно. Што значи да препознају исти језик. КарактеристикеАутомат почиње са радом у изабраном почетном стању и чита ниску симбола сачињену од његове улазне азбуке. Да би одредио наредно стање у које треба прећи, користи функцију прелаза Т. На основу учитаног знака и стања у коме се нашао читајући тај знак, на располагању му је неко од стања из скупа могућих наредних стања. Скуп свих ниски које прихвата аутомат НДКА се назива језиком тог аутомата. Тај језик је регуларан. За сваки НДКА може се конструисати одговарајући ДКА који препознаје исти језик. Ово је са циљем поједностављења аутомата и може се постићи конструкцијом скупа подскупова. За недетерминистичке коначне аутомате са пребројиво много стања конструкција подскупова даје аутомат са скупом стања моћи континуума. У том случају над скупом стања се мора успоставити нека топологија. Овакви системи се проучавају као тополошки аутомати. Карактеристике НДКА-εЗа све p, q Q, пише се p →ε q ако и само ако се из стања p може прећи у стање q, а да се при томе не прочита ни један знак са улаза. Или другим речима p →ε q ако и само ако постоје стања q1, q2, ..., qk Q таква да важи: q1 T(p, ε), q2 T(q1, ε), ..., qk T(qk-1, ε). За свако p Q скуп стања која се могу достићи из p на овај начин се назива епсилон затворење стања p, и записује се: E({p}) = {q Q : p →ε q}. За сваки подскуп P скупа Q, дефинише се епсилон затворење скупа P: E(P) = E({p}). Епсилон затворења су транзитивна, па стога важи да за све q0, q1, q2 Q и за подскуп P скупа Q, важи: ако q1 E({q0}) и q2 E({q1}) онда q2 E({q0}). Слично, ако q1 E({P}) и q2 E({q1}) онда q2 E({P}). Нека је x ниска знакова над азбуком Σ {ε}. НДКА М препознаје (прихвата) ниску x ако постоји низ облика x1x2 ... xn, где xi (Σ {ε}), и постоји низ стања p0,p1, ..., pn, где pi Q, такви да задоваљавају следеће услове:
ИмплементацијаПостоји више начина којим се може остварити НДКА:
ПримерСледећи пример објашњава НДКА М са бинарном азбуком, који са улаза прихвата ниску ако се садржи од парног броја јединица или парног броја нула. Нека је M = (Q, Σ, T, s0, F) где је:
Дијаграм прелаза за M је: M се може представити као унија два ДКА: први са стањима {S2, S1}, други са стањима {S3, S4}. Језик аутомата M се може описати као регуларан језик дат овим регуларним изразом: (1*(01*01*)*) (0*(10*10*)*) Референце
Литература
|
Portal di Ensiklopedia Dunia