Йерархия на Чомски: Разлика между версии

от Уикипедия, свободната енциклопедия
Изтрито е съдържание Добавено е съдържание
м whitespaces
м интервал; козметични промени
Ред 1: Ред 1:
'''Йерархията на Чомски''' е [[йерархия]] от класове [[формална граматика|формални граматики]], образуващи [[формален език|формални езици]]. Въведена е през [[1956]] г. от американския лингвист [[Ноам Чомски]].
'''Йерархията на Чомски''' е [[йерархия]] от класове [[формална граматика|формални граматики]], образуващи [[формален език|формални езици]]. Въведена е през [[1956]] г. от американския лингвист [[Ноам Чомски]].


Освен в [[лингвистика]]та, моделът на граматиките на Чомски намира широко приложение и в други науки, като [[информатика]]та (тясно свързано със съответствията с концепции от [[Теория на автоматите|теорията на автоматите]]) и [[биология]]та ([[Нилс К. Йерне]] озаглавява [[Нобелова награда|нобеловата]] си лекция ''„Генеративната граматика на имунната система“'' и разглежда [[белтък|протеиновия]] строеж в такъв контекст).
Освен в [[лингвистика]]та, моделът на граматиките на Чомски намира широко приложение и в други науки, като [[информатика]]та (тясно свързано със съответствията с концепции от [[Теория на автоматите|теорията на автоматите]]) и [[биология]]та ([[Нилс К. Йерне]] озаглавява [[Нобелова награда|нобеловата]] си лекция ''„Генеративната граматика на имунната система“'' и разглежда [[белтък|протеиновия]] строеж в такъв контекст).


==Граматика на Чомски==
== Граматика на Чомски ==
Една '''граматика на Чомски''' ''G'' има следния вид:
Една '''граматика на Чомски''' ''G'' има следния вид:
:<math>G = (T, N, \rightarrow, S)</math>
:<math>G = (T, N, \rightarrow, S)</math>
където
където
* ''T'' е [[множество]] от ''терминални'' символи
* ''T'' е [[множество]] от ''терминални'' символи
* ''N'' е множество от ''нетерминални'' символи
* ''N'' е множество от ''нетерминални'' символи
* ''&rarr;'' е крайно множество от ''правила'' за заместване
* '''' е крайно множество от ''правила'' за заместване
* ''S'' е елемент от ''N'', наречен стартов символ или ''аксиома''.
* ''S'' е елемент от ''N'', наречен стартов символ или ''аксиома''.
Едно правило за заместване е двойка думи (низове) от символи в ''T''&cup;''N'':
Едно правило за заместване е двойка думи (низове) от символи в ''T''''N'':
:<math>(a, b) \in (T\cup N)^* \times (T\cup N)^*</math>
:<math>(a, b) \in (T\cup N)^* \times (T\cup N)^*</math>
(т.е. думите са от свободната [[полугрупа]] с пораждащо множество ''T''&cup;''N'') и може да се запише като
(т.е. думите са от свободната [[полугрупа]] с пораждащо множество ''T''''N'') и може да се запише като
:<math>a \rightarrow b</math>.
:<math>a \rightarrow b</math>.
Всяко множество &rarr; от такива правила представлява [[релация]] върху ''T''&cup;''N''*. Ако ''a''&rarr;''b'' е правило за заместване, а ''v'' и ''w'' са думи от (T&cup;N)*, двойката
Всяко множество от такива правила представлява [[релация]] върху ''T''''N''*. Ако ''a''''b'' е правило за заместване, а ''v'' и ''w'' са думи от (T∪N)*, двойката
:<math>(v \circ a \circ w, v \circ b \circ w) \in (T\cup N)^* \times (T\cup N)^*</math> (където <math>\circ</math> обозначава [[конкатенация]]та)
:<math>(v \circ a \circ w, v \circ b \circ w) \in (T\cup N)^* \times (T\cup N)^*</math> (където <math>\circ</math> обозначава [[конкатенация]]та)
се нарича ''приложение'' на правилото ''a''&rarr;''b'' и може да се запише като
се нарича ''приложение'' на правилото ''a''''b'' и може да се запише като
:<math>v \circ a \circ w \Rightarrow v \circ b \circ w</math>
:<math>v \circ a \circ w \Rightarrow v \circ b \circ w</math>
Релацията &rarr; (т.е. множеството от правилата) чрез приложението индуцира релация &rArr; върху ''T''&cup;''N''*, която се нарича ''полугрупова'' (или ''алгебрична'') ''обвивка''. [[рефлексивност|Рефлексивната]] [[транзитивност|транзитивна]] обвивка на &rArr; обозначаваме с &rArr;*.
Релацията (т.е. множеството от правилата) чрез приложението индуцира релация върху ''T''''N''*, която се нарича ''полугрупова'' (или ''алгебрична'') ''обвивка''. [[рефлексивност|Рефлексивната]] [[транзитивност|транзитивна]] обвивка на обозначаваме с *.
Една граматика на Чомски дефинира ''генеративно'' формален език L<sub>g</sub>:
Една граматика на Чомски дефинира ''генеративно'' формален език L<sub>g</sub>:
:<math>L_g = \lbrace w \in T^*\ |\ \langle S\rangle \Rightarrow^* w\rbrace</math>
:<math>L_g = \lbrace w \in T^*\ |\ \langle S\rangle \Rightarrow^* w\rbrace</math>
Елементи на този език са само думи, състоящи се от терминални символи, които могат да се произведат чрез приложение на правилата, започвайки от думата, съдържаща единствено аксиомата ''S''.
Елементи на този език са само думи, състоящи се от терминални символи, които могат да се произведат чрез приложение на правилата, започвайки от думата, съдържаща единствено аксиомата ''S''.
Освен това, всяка граматика на Чомски дефинира ''редуктивно'' формален език L<sub>r</sub>:
Освен това, всяка граматика на Чомски дефинира ''редуктивно'' формален език L<sub>r</sub>:
:<math>L_r = \lbrace w \in T^*\ |\ w \Rightarrow^* \langle S\rangle\rbrace</math>
:<math>L_r = \lbrace w \in T^*\ |\ w \Rightarrow^* \langle S\rangle\rbrace</math>
Този език включва всички думи, които могат да се редуцират до думата, съдържаща единствено аксиомата ''S'', чрез приложение на правилата.
Този език включва всички думи, които могат да се редуцират до думата, съдържаща единствено аксиомата ''S'', чрез приложение на правилата.
За да се укаже изрично посоката на приложение, често се говори за ''редуктивни'' и ''генеративни граматики''. За всяка редуктивна граматика
За да се укаже изрично посоката на приложение, често се говори за ''редуктивни'' и ''генеративни граматики''. За всяка редуктивна граматика
:<math>G = (T, N, \rightarrow, S)</math>
:<math>G = (T, N, \rightarrow, S)</math>
съществува съответна генеративна граматика
съществува съответна генеративна граматика
:<math>G' = (T, N, \rightarrow^T, S)</math>
:<math>G' = (T, N, \rightarrow^T, S)</math>
(където &rarr;<sup>T</sup> е обратната на &rarr; релация), за която важи
(където <sup>T</sup> е обратната на релация), за която важи
:<math>L_g(G') = L_r(G)</math>.
:<math>L_g(G') = L_r(G)</math>.
С други думи, редуктивните и генеративните граматики са взаимно дуални.
С други думи, редуктивните и генеративните граматики са взаимно дуални.
=== Примери ===
===Примери===
Граматика с терминални символи {''a'', ''b''}, нетерминални символи {S, A, B}, правила:
Граматика с терминални символи {''a'', ''b''}, нетерминални символи {S, A, B}, правила:
: <math>S \rightarrow ABS</math>
: <math>S \rightarrow ABS</math>
: <math>S \rightarrow \varepsilon</math> (където &epsilon; обозначава празната дума)
: <math>S \rightarrow \varepsilon</math> (където ε обозначава празната дума)
: <math>BA \rightarrow AB</math>
: <math>BA \rightarrow AB</math>
: <math>BS \rightarrow b</math>
: <math>BS \rightarrow b</math>
Ред 71: Ред 71:
: <math>a^n \circ b^n</math>
: <math>a^n \circ b^n</math>
(т.е. ''n'' пъти ''а'', последвани от ''n'' пъти ''b'').
(т.е. ''n'' пъти ''а'', последвани от ''n'' пъти ''b'').
Следната по-проста граматика дефинира генеративно същия език:
Следната по-проста граматика дефинира генеративно същия език:
Терминални символи {''a'', ''b''}, нетерминални {''S''}, аксиома ''S'', правила:
Терминални символи {''a'', ''b''}, нетерминални {''S''}, аксиома ''S'', правила:
Ред 77: Ред 77:
: <math>S \rightarrow \varepsilon</math>.
: <math>S \rightarrow \varepsilon</math>.


==Типове в йерархията==
== Типове в йерархията ==
Граматиките на Чомски се класифицират по следния начин. (Дефинициите се ограничават до редуктивния случай, тъй като генеративният е напълно аналогичен.)
Граматиките на Чомски се класифицират по следния начин. (Дефинициите се ограничават до редуктивния случай, тъй като генеративният е напълно аналогичен.)
===Тип 0===
=== Тип 0 ===
''Тип 0'' включва всички формални граматики. Дефинираните чрез тях езици са точно тези, които могат да бъдат разпознати от една [[машина на Тюринг]]. Тези езици се наричат също ''рекурсивно изброими езици''.
''Тип 0'' включва всички формални граматики. Дефинираните чрез тях езици са точно тези, които могат да бъдат разпознати от една [[машина на Тюринг]]. Тези езици се наричат също ''рекурсивно изброими езици''.
===Тип 1===
=== Тип 1 ===
Граматиките от ''тип 1'' ([[контекстна граматика|контекстните граматики]]) са граматики, които съдържат само правила със следния вид
Граматиките от ''тип 1'' ([[контекстна граматика|контекстните граматики]]) са граматики, които съдържат само правила със следния вид
: <math>v \circ a \circ w \rightarrow v \circ \langle b\rangle \circ w;\ v,w \in (T\cup N)^*, a\in (T\cup N)^+, b\in N</math>.
: <math>v \circ a \circ w \rightarrow v \circ \langle b\rangle \circ w;\ v,w \in (T\cup N)^*, a\in (T\cup N)^+, b\in N</math>.
Ред 94: Ред 94:
ако аксиомата ''S'' не се среща от лявата страна на нито едно от правилата.
ако аксиомата ''S'' не се среща от лявата страна на нито едно от правилата.


===Тип 2===
=== Тип 2 ===
Граматики от ''тип 2'' ([[безконтекстна граматика|безконтекстните граматики]]) са всички граматики от тип 1, които съдържат само правила от вида
Граматики от ''тип 2'' ([[безконтекстна граматика|безконтекстните граматики]]) са всички граматики от тип 1, които съдържат само правила от вида
: <math>a \rightarrow \langle b \rangle;\ a\in (T\cup N)^*, b\in N</math>.
: <math>a \rightarrow \langle b \rangle;\ a\in (T\cup N)^*, b\in N</math>.
Такива правила се наричат ''безконтекстни'' (англ. ''context-free'').
Такива правила се наричат ''безконтекстни'' (англ. ''context-free'').
===Тип 3===
=== Тип 3 ===
Безконтекстни правила от вида
Безконтекстни правила от вида
: <math>v \circ \langle a \rangle \circ w \rightarrow \langle b\rangle;\ v,w\in T^+; a,b\in N</math>
: <math>v \circ \langle a \rangle \circ w \rightarrow \langle b\rangle;\ v,w\in T^+; a,b\in N</math>
се наричат ''двустранно линейни''. Ако ''v'' или ''w'' се равнява на празната дума, правилата се наричат съответно ''ляволинейни'' или ''дяснолинейни''.
се наричат ''двустранно линейни''. Ако ''v'' или ''w'' се равнява на празната дума, правилата се наричат съответно ''ляволинейни'' или ''дяснолинейни''.
Правила от вида
Правила от вида
: <math>w \rightarrow \langle b\rangle;\ w\in T^+, b\in N</math>
: <math>w \rightarrow \langle b\rangle;\ w\in T^+, b\in N</math>
се наричат ''терминални''.
се наричат ''терминални''.
Граматики от ''тип 3'' ([[регулярна граматика|регулярни граматики]]) са всички граматики от тип 2, които съдържат само правила, които са
Граматики от ''тип 3'' ([[регулярна граматика|регулярни граматики]]) са всички граматики от тип 2, които съдържат само правила, които са
* терминални или ляволинейни; или
* терминални или ляволинейни; или
* терминални или дяснолинейни
* терминални или дяснолинейни
Езиците на тези граматики могат да се опишат и чрез [[регулярен израз|регулярни изрази]].
Езиците на тези граматики могат да се опишат и чрез [[регулярен израз|регулярни изрази]].


===Йерархия на формалните езици===
=== Йерархия на формалните езици ===
Йерархията на граматиките определя и съответни типове формални езици. Ако за един език ''L'' съществува граматика ''G'' от тип ''i'' с ''L=L(G)'', то за този език се казва че е от тип ''i'' и се записва:
Йерархията на граматиките определя и съответни типове формални езици. Ако за един език ''L'' съществува граматика ''G'' от тип ''i'' с ''L=L(G)'', то за този език се казва че е от тип ''i'' и се записва:


Ред 130: Ред 130:
Т.е. всички регулярни езици са безконтекстни, всички безконтекстни езици са контекстни и всички контекстни езици са рекурсивно изброими, като нито един от типовете не е равен на друг.
Т.е. всички регулярни езици са безконтекстни, всички безконтекстни езици са контекстни и всички контекстни езици са рекурсивно изброими, като нито един от типовете не е равен на друг.


== Абстрактни машини ==
==Абстрактни машини==
Типовете в йерархията съответстват на езиците, разпознавани от различни видове [[абстрактна машина|абстрактни машини]]:
Типовете в йерархията съответстват на езиците, разпознавани от различни видове [[абстрактна машина|абстрактни машини]]:
{| rules="all" style="border: thin solid black;"
{| rules="all" style="border: thin solid black;"
Ред 154: Ред 154:
|}
|}


==Литература==
== Литература ==
* Chomsky N. 1956. Three models for the description of language, ''IRE Transactions on Information Theory'', Vol. 2, стр. 113-124.
* Chomsky N. 1956. Three models for the description of language, ''IRE Transactions on Information Theory'', Vol. 2, стр. 113-124.
* Chomsky N. 1959. On certain formal properties of grammars, ''Information and Control'', Vol. 1, стр. 91-112.
* Chomsky N. 1959. On certain formal properties of grammars, ''Information and Control'', Vol. 1, стр. 91-112.
* Broy M. 1998. ''Einf&uuml;hrung i.d. Informatik'', Band 2, стр. 191-212. Berlin, Heidelberg: Springer.
* Broy M. 1998. ''Einführung i.d. Informatik'', Band 2, стр. 191-212. Berlin, Heidelberg: Springer.

[[Категория:Формални езици]]
[[Категория:Формални езици]]
[[Категория:Теоретична информатика]]
[[Категория:Теоретична информатика]]

Версия от 15:25, 9 декември 2018

Йерархията на Чомски е йерархия от класове формални граматики, образуващи формални езици. Въведена е през 1956 г. от американския лингвист Ноам Чомски.

Освен в лингвистиката, моделът на граматиките на Чомски намира широко приложение и в други науки, като информатиката (тясно свързано със съответствията с концепции от теорията на автоматите) и биологията (Нилс К. Йерне озаглавява нобеловата си лекция „Генеративната граматика на имунната система“ и разглежда протеиновия строеж в такъв контекст).

Граматика на Чомски

Една граматика на Чомски G има следния вид:

където

  • T е множество от терминални символи
  • N е множество от нетерминални символи
  • е крайно множество от правила за заместване
  • S е елемент от N, наречен стартов символ или аксиома.

Едно правило за заместване е двойка думи (низове) от символи в TN:

(т.е. думите са от свободната полугрупа с пораждащо множество TN) и може да се запише като

.

Всяко множество → от такива правила представлява релация върху TN*. Ако ab е правило за заместване, а v и w са думи от (T∪N)*, двойката

(където обозначава конкатенацията)

се нарича приложение на правилото ab и може да се запише като

Релацията → (т.е. множеството от правилата) чрез приложението индуцира релация ⇒ върху TN*, която се нарича полугрупова (или алгебрична) обвивка. Рефлексивната транзитивна обвивка на ⇒ обозначаваме с ⇒*.

Една граматика на Чомски дефинира генеративно формален език Lg:

Елементи на този език са само думи, състоящи се от терминални символи, които могат да се произведат чрез приложение на правилата, започвайки от думата, съдържаща единствено аксиомата S.

Освен това, всяка граматика на Чомски дефинира редуктивно формален език Lr:

Този език включва всички думи, които могат да се редуцират до думата, съдържаща единствено аксиомата S, чрез приложение на правилата.

За да се укаже изрично посоката на приложение, често се говори за редуктивни и генеративни граматики. За всяка редуктивна граматика

съществува съответна генеративна граматика

(където →T е обратната на → релация), за която важи

.

С други думи, редуктивните и генеративните граматики са взаимно дуални.

Примери

Граматика с терминални символи {a, b}, нетерминални символи {S, A, B}, правила:

(където ε обозначава празната дума)

и аксиома S, дефинира генеративно езика на всички думи от вида

(т.е. n пъти а, последвани от n пъти b).

Следната по-проста граматика дефинира генеративно същия език: Терминални символи {a, b}, нетерминални {S}, аксиома S, правила:

.

Типове в йерархията

Граматиките на Чомски се класифицират по следния начин. (Дефинициите се ограничават до редуктивния случай, тъй като генеративният е напълно аналогичен.)

Тип 0

Тип 0 включва всички формални граматики. Дефинираните чрез тях езици са точно тези, които могат да бъдат разпознати от една машина на Тюринг. Тези езици се наричат също рекурсивно изброими езици.

Тип 1

Граматиките от тип 1 (контекстните граматики) са граматики, които съдържат само правила със следния вид

.

(За множество М, М+ е съкращение на .)

Такива правила се наричат контекстни (англ. context-sensitive).

Граматиките от тип 1 са монотонни спрямо дължината на думата. В тях се допуска и правилото

,

ако аксиомата S не се среща от лявата страна на нито едно от правилата.

Тип 2

Граматики от тип 2 (безконтекстните граматики) са всички граматики от тип 1, които съдържат само правила от вида

.

Такива правила се наричат безконтекстни (англ. context-free).

Тип 3

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Безконтекстни правила от вида
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

се наричат двустранно линейни. Ако v или w се равнява на празната дума, правилата се наричат съответно ляволинейни или дяснолинейни.

Правила от вида

се наричат терминални.

Граматики от тип 3 (регулярни граматики) са всички граматики от тип 2, които съдържат само правила, които са

  • терминални или ляволинейни; или
  • терминални или дяснолинейни

Езиците на тези граматики могат да се опишат и чрез регулярни изрази.

Йерархия на формалните езици

Йерархията на граматиките определя и съответни типове формални езици. Ако за един език L съществува граматика G от тип i с L=L(G), то за този език се казва че е от тип i и се записва:

.

Освен това важи:

.

Т.е. всички регулярни езици са безконтекстни, всички безконтекстни езици са контекстни и всички контекстни езици са рекурсивно изброими, като нито един от типовете не е равен на друг.

Абстрактни машини

Типовете в йерархията съответстват на езиците, разпознавани от различни видове абстрактни машини:

Граматика Език Автомат
Тип 0 рекурсивно изброим машина на Тюринг
Тип 1 контекстен линейно ограничена недетерминистична машина на Тюринг
Тип 2 безконтекстен магазинен автомат
Тип 3 регулярен краен автомат

Литература

  • Chomsky N. 1956. Three models for the description of language, IRE Transactions on Information Theory, Vol. 2, стр. 113-124.
  • Chomsky N. 1959. On certain formal properties of grammars, Information and Control, Vol. 1, стр. 91-112.
  • Broy M. 1998. Einführung i.d. Informatik, Band 2, стр. 191-212. Berlin, Heidelberg: Springer.