Возможность порождения формальной грамматикой произвольного перечислимого языка — различия между версиями
Vincent (обсуждение | вклад) (→Построение грамматики по МТ) |
Vincent (обсуждение | вклад) (→Построение грамматики по МТ) |
||
Строка 92: | Строка 92: | ||
{{Задача | {{Задача | ||
|definition = написать грамматику, генерирующую язык заданной МТ:<br> | |definition = написать грамматику, генерирующую язык заданной МТ:<br> | ||
− | * Четыре состояния <tex>\{A,B,Y,N\}</tex>, где <tex>Y</tex> — доупускающее, <tex>N</tex> — недоупускающее<br> | + | * Четыре состояния <tex>\{A,B,Y,N\}</tex>, где <tex>Y</tex> — доупускающее, <tex>N</tex> — недоупускающее<br>; |
− | * <tex>A \rightarrow A</tex> по единице, головка сдвигается вправо | + | * <tex>A \rightarrow A</tex> по единице, головка сдвигается вправо; |
− | * <tex>A \rightarrow B</tex> по нулю, головка сдвигается вправо | + | * <tex>A \rightarrow B</tex> по нулю, головка сдвигается вправо; |
− | * <tex>A \rightarrow Y</tex> по пустому символу, головка сдвигается вправо | + | * <tex>A \rightarrow Y</tex> по пустому символу, головка сдвигается вправо; |
− | * <tex>B \rightarrow B</tex> по нулю, головка сдвигается вправо | + | * <tex>B \rightarrow B</tex> по нулю, головка сдвигается вправо; |
− | * <tex>B \rightarrow Y</tex> по пустому символу, головка сдвигается вправо | + | * <tex>B \rightarrow Y</tex> по пустому символу, головка сдвигается вправо; |
− | * <tex>B \rightarrow N</tex> по единице, головка сдвигается вправо | + | * <tex>B \rightarrow N</tex> по единице, головка сдвигается вправо. |
}} | }} | ||
Грамматика будет следующей: | Грамматика будет следующей: | ||
− | #<tex>A_1 \rightarrow q_A A_2</tex> | + | #<tex>A_1 \rightarrow q_A A_2</tex>; |
− | #<tex>A_2 \rightarrow [0,0]</tex> | + | #<tex>A_2 \rightarrow [0,0]</tex>; |
− | #<tex>A_2 \rightarrow [1,1]</tex> | + | #<tex>A_2 \rightarrow [1,1]</tex>; |
− | #<tex>A_2 \rightarrow A_3</tex> | + | #<tex>A_2 \rightarrow A_3</tex>; |
− | #<tex>A_3 \rightarrow [e,B]A_3</tex> | + | #<tex>A_3 \rightarrow [e,B]A_3</tex>; |
− | #<tex>A_3 \rightarrow e</tex> | + | #<tex>A_3 \rightarrow e</tex>; |
− | #<tex>q_A[0, 0] \rightarrow [0,0]q_A</tex> | + | #<tex>q_A[0, 0] \rightarrow [0,0]q_A</tex>; |
− | #<tex>q_A[1, 0] \rightarrow [1,0]q_A</tex> | + | #<tex>q_A[1, 0] \rightarrow [1,0]q_A</tex>; |
− | #<tex>q_A[e, 0] \rightarrow [e,0]q_A</tex> | + | #<tex>q_A[e, 0] \rightarrow [e,0]q_A</tex>; |
− | #<tex>q_A[0, 1] \rightarrow [0,1]q_B</tex> | + | #<tex>q_A[0, 1] \rightarrow [0,1]q_B</tex>; |
− | #<tex>q_A[1, 1] \rightarrow [1,1]q_B</tex> | + | #<tex>q_A[1, 1] \rightarrow [1,1]q_B</tex>; |
− | #<tex>q_A[e, 1] \rightarrow [e,1]q_B</tex> | + | #<tex>q_A[e, 1] \rightarrow [e,1]q_B</tex>; |
− | #<tex>q_A[0, 1] \rightarrow [0,0]q_B</tex> | + | #<tex>q_A[0, 1] \rightarrow [0,0]q_B</tex>; |
− | #<tex>q_A[0, B] \rightarrow [0,B]q_Y</tex> | + | #<tex>q_A[0, B] \rightarrow [0,B]q_Y</tex>; |
− | #<tex>q_A[1, B] \rightarrow [1,B]q_Y</tex> | + | #<tex>q_A[1, B] \rightarrow [1,B]q_Y</tex>; |
− | #<tex>q_A[e, B] \rightarrow [e,B]q_Y</tex> | + | #<tex>q_A[e, B] \rightarrow [e,B]q_Y</tex>; |
− | #<tex>q_Y[0, 0] \rightarrow q_Y0q_Y</tex> | + | #<tex>q_Y[0, 0] \rightarrow q_Y0q_Y</tex>; |
− | #<tex>q_Y[1, 0] \rightarrow q_Y1q_Y</tex> | + | #<tex>q_Y[1, 0] \rightarrow q_Y1q_Y</tex>; |
− | #<tex>q_Y[e, 0] \rightarrow q_Yq_Y</tex> | + | #<tex>q_Y[e, 0] \rightarrow q_Yq_Y</tex>; |
− | #<tex>q_Y[0, 1] \rightarrow q_Y0q_Y</tex> | + | #<tex>q_Y[0, 1] \rightarrow q_Y0q_Y</tex>; |
− | #<tex>q_Y[1, 1] \rightarrow q_Y1q_Y</tex> | + | #<tex>q_Y[1, 1] \rightarrow q_Y1q_Y</tex>; |
− | #<tex>q_Y[e, 1] \rightarrow q_Yq_Y</tex> | + | #<tex>q_Y[e, 1] \rightarrow q_Yq_Y</tex>; |
− | #<tex>q_Y[0, B] \rightarrow q_Y0q_Y</tex> | + | #<tex>q_Y[0, B] \rightarrow q_Y0q_Y</tex>; |
− | #<tex>q_Y[1, B] \rightarrow q_Y1q_Y</tex> | + | #<tex>q_Y[1, B] \rightarrow q_Y1q_Y</tex>; |
− | #<tex>q_Y[e, B] \rightarrow q_Yq_Y</tex> | + | #<tex>q_Y[e, B] \rightarrow q_Yq_Y</tex>; |
− | #<tex>q_Y \rightarrow e</tex> | + | #<tex>q_Y \rightarrow e</tex>. |
Версия 04:33, 24 января 2012
Теорема
Теорема: | ||||||||||||
Язык распознается машиной Тьюринга тогда и только тогда, когда он генерируется формальной грамматикой. | ||||||||||||
Доказательство: | ||||||||||||
| ||||||||||||
Примеры
Построение МТ по грамматике
Задача: |
построить МТ для слудующей грамматики:
|
Решением будет МТ, которая изменяет содержимое ленты следующим образом ( ):
- это первое правило грамматики
- это второе правило грамматики
- это третье правило грамматики
- это четвертое правило грамматики
- , где — допускающее состояние
Причем она перебирает все возможные последовательности применения таких преобразований недетерминированно (если ни одно применить нельзя, МТ возвращает ленту в исходное состояние)
Построение грамматики по МТ
Задача: |
написать грамматику, генерирующую язык заданной МТ:
|
Грамматика будет следующей:
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- .