Примеры неразрешимых задач: однозначность грамматики — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 20: Строка 20:
 
<tex>B \Rightarrow \varepsilon</tex>
 
<tex>B \Rightarrow \varepsilon</tex>
  
Выполним [[M-сводимость|m-сведение]] множества решений ПСП к множеству решений нашей задачи.
 
Предположим, что построенная грамматика <tex>L</tex> неоднозначна. Тогда существует слово <tex>w</tex>, которое можно вывести хотя бы двумя способами. Значит, оно выводится через правила 
 
<tex>A</tex> и <tex>B</tex>, то есть существует последовательность <tex>(i_1,\,i_2,\,...,\,i_k)</tex> такая, что <tex>w=x_{i1}x_{i2}...x_{ik}z_{ik}z_{ik-1}...z_{i1}=</tex><tex>y_{i1}y_{i2}...y_{ik}z_{ik}z_{ik-1}...z_{i1}</tex>, значит проблема соответствий Поста имеет решение, но известно, что она не разрешима алгоритмически. Получили противоречие.
 
  
 +
Заметим, что любое слово <tex>w</tex>, выводимое в этой грамматике, может быть представлено в виде <tex>w=x_{i1}x_{i2}...x_{ik}z_{ik}z_{ik-1}...z_{i1}=</tex> или <tex>w=y_{i1}y_{i2}...y_{ik}z_{ik}z_{ik-1}...z_{i1}</tex>, причем если <tex>L</tex> неоднозначна, то <tex>w=x_{i1}x_{i2}...x_{ik}z_{ik}z_{ik-1}...z_{i1}=</tex><tex>y_{i1}y_{i2}...y_{ik}z_{ik}z_{ik-1}...z_{i1}</tex>. Поскольку для любых <tex>i \ne j</tex> <tex>z_{i} \ne z_{j}</tex>, хвост последовательности однозначно задает ее. Таким образом, мы получили [[M-сводимость|m-сведение]] множества решений ПСП к множеству решений нашей задачи, так как если существует решение ПСП, то существует такой поднабор индексов, что слово <tex>w</tex> выводится двумя способами, то есть грамматика неоднозначна.
  
 
Таким образом, не существует алгоритма, определяющего по произвольной грамматике, является ли она однозначной.
 
Таким образом, не существует алгоритма, определяющего по произвольной грамматике, является ли она однозначной.

Версия 04:52, 23 января 2012

Теорема:
Не существует алгоритма, определяющего по произвольной грамматике, является ли она однозначной.
Доказательство:
[math]\triangleright[/math]

Пусть [math] \Sigma [/math] — алфавит для постовской системы соответствия [math](x_1,\,x_2,\,...,\,x_n)[/math],[math](y_1,\,y_2,\,...,\,y_n)[/math]. Рассмотрим грамматику [math]L=\{\Sigma^{*}, N, P, S\}[/math], где [math] \Sigma^{*}= \Sigma+\{z_i\}[/math] и [math]\{z_i\}=\{z_1,\,z_2,\,...,\,z_n\}[/math] — множество символов не встречающихся в алфавите [math] \Sigma[/math].


Пусть у грамматики [math]L[/math] есть правила:

[math]S \Rightarrow x_iAz_i[/math]

[math]S \Rightarrow y_iBz_i[/math]

[math]A \Rightarrow x_iAz_i[/math]

[math]A \Rightarrow \varepsilon[/math]

[math]B \Rightarrow y_iBz_i[/math]

[math]B \Rightarrow \varepsilon[/math]


Заметим, что любое слово [math]w[/math], выводимое в этой грамматике, может быть представлено в виде [math]w=x_{i1}x_{i2}...x_{ik}z_{ik}z_{ik-1}...z_{i1}=[/math] или [math]w=y_{i1}y_{i2}...y_{ik}z_{ik}z_{ik-1}...z_{i1}[/math], причем если [math]L[/math] неоднозначна, то [math]w=x_{i1}x_{i2}...x_{ik}z_{ik}z_{ik-1}...z_{i1}=[/math][math]y_{i1}y_{i2}...y_{ik}z_{ik}z_{ik-1}...z_{i1}[/math]. Поскольку для любых [math]i \ne j[/math] [math]z_{i} \ne z_{j}[/math], хвост последовательности однозначно задает ее. Таким образом, мы получили m-сведение множества решений ПСП к множеству решений нашей задачи, так как если существует решение ПСП, то существует такой поднабор индексов, что слово [math]w[/math] выводится двумя способами, то есть грамматика неоднозначна.

Таким образом, не существует алгоритма, определяющего по произвольной грамматике, является ли она однозначной.
[math]\triangleleft[/math]

Литература

  • А. Маслов, Д. Стоцкий — Языки и автоматы. Издательство Мир, 1975, -361 с.