Пытанне, ці мова з'яўляецца фундаментальнай тэмай у галіне тэорыі складанасці вылічэнняў, асабліва пры вывучэнні фармальных моў і тэорыі аўтаматаў. Разуменне гэтай канцэпцыі патрабуе цвёрдага разумення азначэнняў і ўласцівасцей звычайных моў і вылічальных мадэляў, якія іх распазнаюць.
Рэгулярныя мовы і канчатковыя аўтаматы
Рэгулярныя мовы - гэта клас моў, якія можна распазнаць канечнымі аўтаматамі, якія з'яўляюцца абстрактнымі машынамі з канечным лікам станаў. Гэтыя мовы таксама могуць быць апісаны з дапамогай рэгулярных выразаў і могуць быць створаны звычайнымі граматыкамі. Ключавой характарыстыкай звычайных моў з'яўляецца тое, што іх можна распазнаць дэтэрмінаванымі канечнымі аўтаматамі (DFA) або недэтэрмінаванымі канечнымі аўтаматамі (NFA). DFA складаецца з канчатковага набору станаў, набору ўваходных сімвалаў, функцыі пераходу, якая адлюстроўвае пары стан-сімвал у станы, пачатковага стану і набору прымальных станаў.
Магутнасць канечных аўтаматаў абмежавана іх абмежаванай памяццю. Яны не могуць лічыць больш за фіксаваную колькасць, што азначае, што яны не могуць адсочваць адвольную колькасць уваходжанняў пэўнага сімвала, калі колькасць не абмежавана колькасцю станаў у аўтаматы. Гэта абмежаванне важна пры разглядзе такіх моў, як .
Нерэгулярнасць
Каб вызначыць, ці з'яўляецца мова звычайнай, можна выкарыстаць лему прапампоўкі для звычайных моў. Лема накачкі забяспечвае ўласцівасць, якой павінны задавальняць усе рэгулярныя мовы, і яна часта выкарыстоўваецца, каб паказаць, што пэўныя мовы нерэгулярныя, дэманструючы, што яны не задавальняюць гэтай уласцівасці.
Лема пра накачку сцвярджае, што для любой звычайнай мовы , існуе даўжыня накачкі
такі, што любы радок
in
з даўжынёй
можна падзяліць на тры часткі,
, якія задавальняюць наступным умовам:
1. ,
2. , і
3. для ўсіх , радок
знаходзіцца ў
.
Каб паказаць гэта з дапамогай лемы пра накачку не з'яўляецца рэгулярным, выкажам здагадку, што для супярэчнасці
з'яўляецца рэгулярным. Тады існуе даўжыня накачкі
такі, што любы радок
in
з
можна падзяліць на часткі
якія задавальняюць умовам лемы пра накачку.
Разгледзім радок in
. Згодна з лемай пра накачку,
можна падзяліць на
такі, што
і
, з
, падрадок
складаецца толькі з 0. Такім чынам,
,
, і
дзе
.
Зараз разгледзім радок . Колькасць 0 з'яўляецца
, што больш, чым
, пры гэтым колькасць 1с застаецца
, Такім чынам,
таму што лікі 0 і 1 не роўныя. Гэта супярэчнасць паказвае, што дапушчэнне, што
рэгулярны - ілжывы. Такім чынам,
не з'яўляецца звычайнай мовай.
Кантэкстна-свабодныя мовы і аўтаматы, якія расціскаюцца
Мова аднак з'яўляецца кантэкстна-свабоднай мовай (CFL). Кантэкстна-свабодныя мовы распазнаюцца аўтаматамі адціскання (PDA), якія больш магутныя, чым канчатковыя аўтаматы, таму што яны могуць выкарыстоўваць стэк для захоўвання неабмежаванай колькасці інфармацыі. Гэтая дадатковая памяць дазваляе КПК адсочваць колькасць 0 і 1 у мове
.
КПК для працуе наступным чынам:
1. Ён запускаецца ў пачатковым стане і счытвае 0 з уваходу, перамяшчаючы кожны 0 у стэк.
2. Пасля чытання першага 1 ён пераходзіць у новы стан і пачынае выскокваць нулі са стэка за кожны 0, прачытаны з уводу.
3. Калі стэк пусты, калі ўвод вычарпаны, КПК прымае ўвод, паказваючы, што колькасць нулёў супадае з колькасцю 0.
Гэты механізм выкарыстання стэка для супастаўлення колькасці 0 і 1 дэманструе здольнасць КПК распазнаваць мовы, якія не з'яўляюцца звычайнымі, але кантэкстна-свабоднымі.
Прыклады і далейшыя наступствы
Разгледзім прыклад радка ад мовы
. КПК будзе апрацоўваць гэты радок, падштурхоўваючы кожны 0 у стэк, калі ён іх счытвае. Пасля прачытання трох нуляў стэк будзе ўтрымліваць тры сімвалы, кожны з якіх уяўляе сабой 0. Калі КПК счытвае наступныя 0, ён выцягвае па адным сімвале са стэка на кожную 1. Калі ўвод цалкам прачытаны, стэк пусты, што паказвае што ўвод прыняты.
Наадварот, канечны аўтамат не зможа адсочваць колькасць нуляў і адзінак, бо яму не хапае механізму стэка. Без магчымасці захоўваць і атрымліваць неабмежаваную колькасць сімвалаў канечны аўтамат не можа гарантаваць, што колькасць нулёў роўная колькасці 0, што прыводзіць да яго няздольнасці распазнаваць мову .
Адрозненне паміж звычайнымі і кантэкстна-свабоднымі мовамі важна ў тэарэтычнай інфарматыцы і мае практычныя наступствы ў такіх галінах, як праектаванне мовы праграмавання і аналіз. Кантэкстна-свабодныя граматыкі, якія ствараюць кантэкстна-свабодныя мовы, шырока выкарыстоўваюцца ў вызначэнні сінтаксісу моў праграмавання. Здольнасць эфектыўна распазнаваць кантэкстна-свабодныя мовы з дапамогай КПК ляжыць у аснове распрацоўкі аналізатараў, якія з'яўляюцца фундаментальнымі для кампілятараў і інтэрпрэтатараў.
Нерэгулярнасць падкрэслівае абмежаванні канечных аўтаматаў і падкрэслівае неабходнасць больш магутных вылічальных мадэляў, такіх як аўтаматы з адцісканнем, каб распазнаваць больш шырокі клас моў. Гэта адрозненне не проста тэарэтычнае, але мае глыбокія наступствы ў практычным распрацоўцы і рэалізацыі моў праграмавання і інструментаў, якія іх апрацоўваюць.
Іншыя апошнія пытанні і адказы адносна Асновы тэорыі складанасці вылічэнняў EITC/IS/CCTF:
- Якая роля рэкурсійнай тэарэмы ў дэманстрацыі невырашальнасці ATM?
- Разглядаючы КПК, які можа чытаць паліндромы, не маглі б вы падрабязна апісаць эвалюцыю стэка, калі ўвод з'яўляецца, па-першае, паліндромам, а па-другое, не паліндромам?
- Разглядаючы недэтэрмінаваныя КПК, суперпазіцыя станаў магчымая па азначэнні. Аднак недэтэрмінаваныя КПК маюць толькі адзін стэк, які не можа знаходзіцца ў некалькіх станах адначасова. Як такое магчыма?
- Што з'яўляецца прыкладам КПК, якія выкарыстоўваюцца для аналізу сеткавага трафіку і ідэнтыфікацыі шаблонаў, якія паказваюць на магчымыя парушэнні бяспекі?
- Што значыць, што адна мова больш магутная за іншую?
- Ці пазнаюцца кантэкстна-залежныя мовы машынай Цьюрынга?
- Як вызначыць FSM, які распазнае двайковыя радкі з цотнай колькасцю сімвалаў «1», і паказаць, што з ім адбываецца пры апрацоўцы ўваходнага радка 1011?
- Як недэтэрмінізм уплывае на пераходную функцыю?
- Ці эквівалентныя звычайныя мовы канчатковым аўтаматам?
- Клас PSPACE не роўны класу EXPSPACE?
Больш пытанняў і адказаў глядзіце ў раздзеле "Асновы тэорыі вылічальнай складанасці" EITC/IS/CCTF