Разрешимые (рекурсивные) языки — различия между версиями
Vincent (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
− | |definition=Язык <tex>L</tex> называется '''разрешимым''' ('''рекурсивным'''), если существует такая программа <tex> p </tex>, что <tex> \forall w \in L: p(w) = 1</tex>, а | + | |definition=Язык <tex>L</tex> называется '''разрешимым''' ('''рекурсивным'''), если существует такая программа <tex> p </tex>, что <tex> \forall w \in L: p(w) = 1</tex>, а <tex> \forall w \notin L: p(w) = 0</tex>. |
}} | }} | ||
Строка 31: | Строка 31: | ||
Доказательство от противного. <br/> | Доказательство от противного. <br/> | ||
Пусть язык <tex> U </tex> разрешим. <br/> | Пусть язык <tex> U </tex> разрешим. <br/> | ||
− | Тогда существует такая программа <tex> u </tex>, что <tex> \forall \langle p, x \rangle \in U: u(\langle p, x \rangle) = 1</tex>, а | + | Тогда существует такая программа <tex> u </tex>, что <tex> \forall \langle p, x \rangle \in U: u(\langle p, x \rangle) = 1</tex>, а <tex> \forall \langle p, x \rangle \notin U: u(\langle p, x \rangle) = 0</tex>. <br/> |
Составим следующую программу: | Составим следующую программу: | ||
Версия 08:33, 23 декабря 2011
Определение: |
Язык | называется разрешимым (рекурсивным), если существует такая программа , что , а .
Пример разрешимого множества
Утверждение: |
Язык чётных чисел разрешим. |
Приведём программу, разрешающую язык чётных чисел: Заметим, что программа нигде не может зависнуть. if return else return |
Пример неразрешимого множества
Определение: |
Язык | называется универсальным.
Утверждение: |
Универсальный язык неразрешим. |
Доказательство от противного. if while else return Теперь рассмотрим вызов .
|
Литература
Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999