Канчатковыя аўтаматы (FSM) сапраўды вызначаюцца картэжам з 6, які з'яўляецца фармальным прадстаўленнем, якое выкарыстоўваецца для апісання паводзін машыны з пункту гледжання станаў, пераходаў, уваходаў і выхадаў. Гэты фармалізм важны для разумення і праектавання сістэм, якія можна мадэляваць як FSM, якія шырока выкарыстоўваюцца ў розных галінах, уключаючы інфарматыку, электратэхніку і кібербяспеку.
Канчатковы аўтамат можна фармальна вызначыць як 6-картэж (Q, Σ, Δ, δ, q0, F), дзе кожны кампанент адыгрывае пэўную ролю ў працы аўтамата:
1. Q: Гэта канечны набор станаў. Машына можа знаходзіцца ў адным з гэтых станаў у любы момант часу. Набор Q важны, таму што ён вызначае ўсе магчымыя ўмовы або канфігурацыі, якія можа прыняць машына.
2. Σ (сігма): гэта канечны набор сімвалаў уводу, таксама вядомы як алфавіт уводу. Гэтыя сімвалы выклікаюць пераходы стану ў машыне. Алфавіт уводу вельмі важны, таму што ён вызначае знешнія раздражняльнікі або падзеі, на якія машына можа рэагаваць.
3. Δ (дэльта): гэта канечны набор выходных сімвалаў, які таксама называюць выходным алфавітам. Гэтыя сімвалы адлюстроўваюць адказы або дзеянні машыны пры пераходзе паміж станамі. Вывадны алфавіт важны, таму што ён вызначае магчымыя вынікі, якія машына можа вырабіць.
4. δ (дэльта): Гэта функцыя пераходу стану, вызначаная як δ: Q × Σ → Q. Яна апісвае, як машына пераходзіць з аднаго стану ў іншы на аснове бягучага стану і сімвала ўводу. Функцыя пераходу стану з'яўляецца найважнейшым кампанентам, таму што яна дыктуе паводзіны машыны і вызначае, як яна рэагуе на ўваходныя дадзеныя.
5. q0: Гэта пачатковы стан, элемент Q. Ён уяўляе стан, у якім машына пачынае сваю працу. Пачатковы стан важны, таму што ён задае пачатковую кропку для працы машыны і ўплывае на яе наступныя паводзіны.
6. F: Гэта набор канчатковых або прымальных станаў, падмноства Q. Гэта станы, у якіх машына можа спыніцца або вырабіць пэўны вынік. Набор канчатковых станаў важны, таму што ён вызначае ўмовы, пры якіх машына можа спыніць сваю працу або даць жаданы вынік.
Каб праілюстраваць гэтыя кампаненты, разгледзім просты прыклад канечнага аўтамата, прызначанага для распазнавання двайковага радка "110":
- Q: {q0, q1, q2, q3}
- Σ: {0, 1}
- Δ: {прыняць, адхіліць}
- δ:
– δ(q0, 1) = q1
– δ(q1, 1) = q2
– δ(q2, 0) = q3
– δ(q3, 0) = q3
– δ(q3, 1) = q3
– δ(q0, 0) = q0
– δ(q1, 0) = q0
– δ(q2, 1) = q0
- q0: q0
- F: {q3}
У гэтым прыкладзе канечны аўтамат запускаецца ў пачатковым стане q0. Калі ён атрымлівае ўваходны сімвал "1", ён пераходзіць у стан q1. Іншы "1" пераводзіць яго ў стан q2, а "0" пераводзіць яго ў стан q3. Калі машына дасягае q3, яна распазнала радок "110" і можа вырабіць вывад "accept". Любая іншая паслядоўнасць уводу будзе трымаць машыну ў непрымальным стане.
Канчатковыя аўтаматы можна далей класіфікаваць на дэтэрмінаваныя канечныя аўтаматы (DFA) і недэтэрмінаваныя канечныя аўтаматы (NFA). У DFA для кожнага стану і сімвала ўводу існуе роўна адзін пераход да наступнага стану. Наадварот, NFA можа мець некалькі пераходаў для аднаго стану і сімвала ўводу, у тым ліку пераходы ў некалькі станаў або адсутнасць пераходаў наогул.
Фармальнае вызначэнне DFA - гэта 5-картэж (Q, Σ, δ, q0, F), дзе:
– Q канечны набор станаў.
– Σ канечны набор уваходных сімвалаў.
– δ: Q × Σ → Q – функцыя пераходу стану.
– q0 ∈ Q – пачатковы стан.
– F ⊆ Q – мноства канчатковых станаў.
З іншага боку, NFA вызначаецца 5-катэджам (Q, Σ, Δ, q0, F), дзе:
– Q канечны набор станаў.
– Σ канечны набор уваходных сімвалаў.
– Δ: Q × Σ → 2^Q — функцыя пераходу стану (адлюстраванне набору станаў).
– q0 ∈ Q – пачатковы стан.
– F ⊆ Q – мноства канчатковых станаў.
Нягледзячы на адрозненні, DFA і NFA эквівалентныя з пункту гледжання вылічальнай магутнасці; любая мова, прызнаная NFA, таксама можа быць прызнана DFA, і наадварот. Аднак пабудова DFA з NFA можа прывесці да экспанентнага павелічэння колькасці станаў.
У галіне кібербяспекі канечныя аўтаматы часта выкарыстоўваюцца для мадэлявання і аналізу пратаколаў, механізмаў аўтэнтыфікацыі і сістэм выяўлення ўварванняў. Напрыклад, FSM можа выкарыстоўвацца для прадстаўлення станаў і пераходаў сеткавага пратакола, гарантуючы, што ён правільна паводзіць сябе ў розных умовах. Падобным чынам FSM могуць мадэляваць паводзіны сістэмы аўтэнтыфікацыі, правяраючы, што яна пераходзіць праз адпаведныя станы пры апрацоўцы спробаў уваходу.
FSM таксама выкарыстоўваюцца ў распрацоўцы апаратных схем, дзе яны могуць мадэляваць паводзіны паслядоўных лагічных схем. У распрацоўцы праграмнага забеспячэння FSM выкарыстоўваюцца для распрацоўкі сістэм кіравання, карыстальніцкіх інтэрфейсаў і распрацоўкі гульняў, дзе яны могуць кіраваць станамі і пераходамі розных аб'ектаў у сістэме.
Каб даць больш канкрэтны прыклад, разгледзім выкарыстанне FSM у распрацоўцы простага кантролера святлафора:
- Q: {Чырвоны, Зялёны, Жоўты}
- Σ: {таймер}
- Δ: {стоп, ідзі, асцярожна}
- δ:
– δ(чырвоны, таймер) = зялёны
– δ(зялёны, таймер) = жоўты
– δ(жоўты, таймер) = чырвоны
- q0: Чырвоны
- F: {Чырвоны, Зялёны, Жоўты}
У гэтым прыкладзе кантролер святлафора запускаецца ў чырвоным стане. Пры атрыманні ўводу таймера ён пераходзіць у зялёны стан, затым у жоўты стан і назад у чырвоны стан. Вывады "стоп", "ідзі" і "асцярожна" адпавядаюць чырвоным, зялёным і жоўтым станам адпаведна.
Канчатковыя аўтаматы забяспечваюць магутную і гнуткую аснову для мадэлявання і аналізу шырокага спектру сістэм. Разумеючы фармальнае вызначэнне і кампаненты FSM, можна распрацоўваць і аналізаваць сістэмы з прадказальнымі і надзейнымі паводзінамі.
Іншыя апошнія пытанні і адказы адносна Асновы тэорыі складанасці вылічэнняў EITC/IS/CCTF:
- Якія асноўныя матэматычныя азначэнні, абазначэнні і ўводзіны неабходныя для разумення фармалізму тэорыі вылічальнай складанасці?
- Чаму тэорыя вылічальнай складанасці важная для разумення асноў крыптаграфіі і кібербяспекі?
- Якая роля рэкурсійнай тэарэмы ў дэманстрацыі невырашальнасці ATM?
- Разглядаючы КПК, які можа чытаць паліндромы, не маглі б вы падрабязна апісаць эвалюцыю стэка, калі ўвод з'яўляецца, па-першае, паліндромам, а па-другое, не паліндромам?
- Разглядаючы недэтэрмінаваныя КПК, суперпазіцыя станаў магчымая па азначэнні. Аднак недэтэрмінаваныя КПК маюць толькі адзін стэк, які не можа знаходзіцца ў некалькіх станах адначасова. Як такое магчыма?
- Што з'яўляецца прыкладам КПК, якія выкарыстоўваюцца для аналізу сеткавага трафіку і ідэнтыфікацыі шаблонаў, якія паказваюць на магчымыя парушэнні бяспекі?
- Што значыць, што адна мова больш магутная за іншую?
- Ці пазнаюцца кантэкстна-залежныя мовы машынай Цьюрынга?
- Чаму мова U = 0^n1^n (n>=0) нерэгулярная?
- Як вызначыць FSM, які распазнае двайковыя радкі з цотнай колькасцю сімвалаў «1», і паказаць, што з ім адбываецца пры апрацоўцы ўваходнага радка 1011?
Больш пытанняў і адказаў глядзіце ў раздзеле "Асновы тэорыі вылічальнай складанасці" EITC/IS/CCTF