В областта на теорията на изчислителната сложност крайните автомати (FSM) се използват широко за моделиране и анализ на поведението на системи. FSM са математически модели, които се състоят от краен брой състояния и преходи между тези състояния въз основа на входни символи. Те обикновено се използват за представяне на регулярни езици, които са подмножество от официални езици, които могат да бъдат описани с регулярни изрази или генерирани от FSM.
За да представим обединението на езиците, разпознати от два FSM, трябва да комбинираме двете машини по начин, който ни позволява да разпознаваме низове, които принадлежат към един от езиците. Това може да се постигне чрез процес, наречен операция на обединение.
Обединението на два FSM, M1 и M2, включва създаването на нов FSM, M, който разпознава езика, образуван от обединението на езиците, разпознати от M1 и M2. Това може да стане чрез въвеждане на ново начално състояние и свързването му с началните състояния на M1 и M2 с помощта на ε-преходи (преходи, които не консумират никакъв входен символ). ε-преходите позволяват на машината да избира между двете начални състояния и съответно да продължи процеса на разпознаване.
Операцията на съюза също изисква някои модификации на оригиналните машини. Първо, трябва да гарантираме, че крайните състояния на M1 и M2 остават крайни състояния в новата машина M. Това може да се постигне чрез въвеждане на ε-преходи от крайните състояния на M1 и M2 към ново крайно състояние в M. Тези ε -преходите позволяват на машината да приеме низ, ако е приет от M1 или M2.
Освен това трябва да гарантираме, че преходите на M1 и M2 са запазени в новата машина M. Това може да стане чрез просто копиране на преходите на M1 и M2 към M. Ако има общи преходи между M1 и M2, те могат да бъдат обединени в един преход в M.
Нека разгледаме един прост пример, за да илюстрираме процеса. Да предположим, че имаме два FSM, M1 и M2, както е показано по-долу:
M1:
Начално състояние: q0
Крайно състояние: q2
Преходи: (q0, a) -> q1, (q1, b) -> q2
M2:
Начално състояние: p0
Крайно състояние: p2
Преходи: (p0, c) -> p1, (p1, d) -> p2
За да представим обединението на езиците, разпознати от M1 и M2, създаваме нов FSM, M:
M:
Начално състояние: s0 (ново начално състояние)
Крайно състояние: f2 (ново крайно състояние)
Преходи: (s0, ε) -> q0, (s0, ε) -> p0, (q2, ε) -> f2, (p2, ε) -> f2
(q0, a) -> q1, (q1, b) -> q2, (p0, c) -> p1, (p1, d) -> p2
В този пример новият FSM M разпознава обединението на езиците, разпознати от M1 и M2. Той започва в новото начално състояние s0 и може да премине към q0 или p0 с помощта на ε-преходи. Оттам следва преходите на M1 и M2 въз основа на входните символи. Ако достигне крайното състояние на M1 или M2, той може да премине към новото крайно състояние f2 с помощта на ε-преходи.
За да обобщим, обединението на езиците, разпознати от два FSM, може да бъде представено чрез комбиниране на машините и въвеждане на ε-преходи, за да се даде възможност за избор между началните състояния. Освен това, ε-преходите могат да се използват за свързване на крайните състояния на оригиналните машини към ново крайно състояние в комбинираната машина. Чрез запазване на оригиналните преходи, новата машина може да разпознава низове, които принадлежат към някой от езиците, разпознати от оригиналните машини.
Други скорошни въпроси и отговори относно EITC/IS/CCTF Основи на теорията на изчислителната сложност:
- Кои са някои основни математически дефиниции, нотации и въведения, необходими за разбиране на формализма на теорията на изчислителната сложност?
- Защо теорията за изчислителната сложност е важна за разбирането на основите на криптографията и киберсигурността?
- Каква е ролята на теоремата за рекурсия в демонстрацията на неразрешимостта на ATM?
- Имайки предвид PDA, който може да чете палиндроми, бихте ли описали подробно еволюцията на стека, когато входът е, първо, палиндром и второ, не е палиндром?
- Като се имат предвид недетерминистичните PDA устройства, суперпозицията на състояния е възможна по дефиниция. Въпреки това, недетерминистичните PDA устройства имат само един стек, който не може да бъде в няколко състояния едновременно. Как е възможно това?
- Какъв е пример за PDA, използвани за анализиране на мрежовия трафик и идентифициране на модели, които показват потенциални пробиви в сигурността?
- Какво означава, че един език е по-мощен от друг?
- Разпознаваеми ли са чувствителните към контекста езици от машина на Тюринг?
- Защо езикът U = 0^n1^n (n>=0) е неправилен?
- Как да дефинирам FSM, разпознаващ двоични низове с четен брой символи '1' и да покажа какво се случва с него при обработка на входен низ 1011?
Вижте още въпроси и отговори в EITC/IS/CCTF Основи на теорията на изчислителната сложност