Контекстно-сензитивна граматика

Извор: testwiki
Пређи на навигацију Пређи на претрагу

Контекстно-сензитивна граматика је формална граматика код које лева и десна страна сваког правила извођења може да буде окружена контекстом завршних и незавршних симбола. Контекстно-сензитивне граматике су општије од контекстно слободних граматика али су још увек довољно уређене да могу да их парсирају линеарно ограничени аутомати.

Појам контекстно-сензитивне граматике је увео Ноам Чомски током педесетих година двадесетог века као начин за описивање синтаксе природних језика где је заиста чест случај да реч може али и не мора да буде прихватљива на одређеном месту у зависности од контекста. Формални језик који може да буде описан контекстно-сензитивном граматиком се назива контекстно-сензитивним језиком.

Формална дефиниција

Формална граматика -{G = (N, Σ, P, S)}- је контекстно-сензитивна ако су сва правила из скупа -{P}- облика

-{αAβ → αγβ}-

где -{AN}- (то јест, -{A}- је један незавршни симбол), -{α, β ∈ (N U Σ)*}- (то јест, -{α}- и -{β}- су ниске незавршних и завршних симбола) -{а γ ∈ (N U Σ)+}- (то јест, -{γ}- је непразна ниска незавршних и завршних симбола).

Неке дефиниције додају и да за свако правило извођења облика -{u → v}- контекстно-сензитивне граматике мора да важи -{|u|≤|v|}-. Овде -{|u|}- и -{|v|}- означавају дужине ниски -{u}- и -{v}-.

Осим тога, дозвољено је и правило облика

-{S → λ}- под условом да се -{S}- не појављује на десној страни ниједног правила.

Овде -{λ}- представља празну ниску. Додавање празне ниске омогућава тврдњу да су контекстно-сензитивни језици прави надскуп контекстно-слободних језика, уместо слабије тврдњее да су све контекстно-слободне граматике без -{→λ}- извођења уједно и контекстно-сензитивне граматике.

Име контекстно-сензитивна се објашњава тиме што -{α}- и -{β}- формирају контекст за -{A}- чиме одређују да ли -{A}- може да се преслика у -{γ}- или не. Ово је разлика у односу на контекстно-слободне граматике код којих контекст у ком се незавршни симбол налази не узима у разматрање.

Ако се могућност додавања празне ниске у језик дода у скуп ниски препознатих од стране неконтрактивних граматика (које никада не могу да укључе празну ниску) онда су језици у ове две дефиниције идентични.

Примери

Ова граматика генерише канонски не-контекстно-слободни језик {anbncn:n1}:

  1. SaSBC
  2. SaBC
  3. CBHB
  4. HBHC
  5. HCBC
  6. aBab
  7. bBbb
  8. bCbc
  9. cCcc

Ток извођења за -{aaa}- -{bbb}- -{ccc}- је:

S
1aSBC
1a𝒂𝑺𝑩𝑪BC
2aa𝒂𝑩𝑪BCBC
3aaaB𝑯𝑩CBC
4aaaB𝑯𝑪CBC
5aaaB𝑩𝑪CBC
3aaaBBC𝑯𝑩C
4aaaBBC𝑯𝑪C
5aaaBBC𝑩𝑪C
3aaaBB𝑯𝑩CC
4aaaBB𝑯𝑪CC
5aaaBB𝑩𝑪CC
6aa𝒂𝒃BBCCC
7aaa𝒃𝒃BCCC
7aaab𝒃𝒃CCC
8aaabb𝒃𝒄CC
9aaabbb𝒄𝒄C
9aaabbbc𝒄𝒄


Компликованије граматике могу да се користе за парсирање {anbncndn:n1}, и других језика са још више слова:

-{S → abcd}-
-{S → aXbcd}-
-{Xb → bX}-
-{Xc → bYc}-
-{Yc → cY}-
-{Yd → Rcdd}-
-{cR → Rc}-
-{bR → Rb}-
-{aR → aaX | aa}-

(Ова граматика у ствари није контекстно-сензитивна због присуства правила извођења облика -{Xb → bX}-. Међутим, постоји контекстно-сензитивна граматикак за овај језик.)

Ток извођења за -{aaa}- -{bbb}- -{ccc}- -{ddd}- је:

-{S}-
-{aXbcd}-
-{abXcd}-
-{abbYcd}-
-{abbcYd}-
-{abbcRcdd}-
-{abbRccdd}-
-{abRbccdd}-
-{aRbbccdd}-
-{aaXbbccdd}-
-{aabXbccdd}-
-{aabbXccdd}-
-{aabbbYccdd}-
-{aabbbcYcdd}-
-{aabbbccYdd}-
-{aabbbccRcddd}-
-{aabbbcRccddd}-
-{aabbbRcccddd}-
-{aabbRbcccddd}-
-{aabRbbcccddd}-
-{aaRbbbcccddd}-
-{aaabbbcccddd}-

Нормалне форме

Свака контекстно-осетљива граматиак која не генерише празну ниску може да се трансформише у еквивалентну граматику у нормалној форми Куроде. Овде еквивалентну значи да две граматике генеришу исти језик. Нормална форма у општем случају не мора да буде контекстно-сензитивна, али мора да буде неконтрактивна граматика.

Рачунска својства и употребе

Проблем одлучивања који поставља питање да ли одређена ниска -{s}- припада језику одређене контекстно-сензитивне граматике -{G}-, је -{PSPACE}--комплетан. Постоје и неке контекстно-сензитивне граматике за које је проблем препознавања фиксне граматике -{PSPACE}--комплетан.

Проблем празности за контекстно-сензитивне граматике (да ли за дату контекстно сензитивну граматику -{G}-, важи L(G)= ?) је неодлучив.

Показано је да скоро сви природни језици могу у општем случају да буду описани контекстно-сензитивним граматикама, али цела класа контекснто-сензитивних граматика изгледа да је много шира од скупа природних језика. Осим тога, како је поменути проблем одлучивања за контекстно-сензитивне граматике -{PSPACE}--комплетан, то их чини у потпуности неупотребљивим за практичне употребе, јер би полиномијални алгоритам за -{PSPACE}--комплетан проблем имплицирао П=НП. Текућа истраживања у рачунарској лингвистици су усмерена на формулисање других класа језика који су благо контекстно-сензитивни, чији би проблеми одлучивања били изводљиви. Језици генерисани овим формализмима су прави подскупови контекстно-сензитивних и прави надскупови контекстно-слободних језика.

Види још

Литература

  • -{Introduction to Languages and the Theory of Computation by John C. Martin McGraw Hill 1996 (2nd edition)}-

Шаблон:Формални језици и граматике

Шаблон:Нормативна контрола