<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.118.78.101&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.118.78.101&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/217.118.78.101"/>
		<updated>2026-05-20T08:18:10Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D0%BC%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8&amp;diff=34430</id>
		<title>Перечислимые языки</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D0%BC%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8&amp;diff=34430"/>
				<updated>2013-12-19T05:39:19Z</updated>
		
		<summary type="html">&lt;p&gt;217.118.78.101: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Полуразрешимый язык''' ('''semi-decidable language''') {{---}} язык, для которого существует программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; такая, что &amp;lt;tex&amp;gt;\forall x \in L \Leftrightarrow p(x)=1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Перечислимый язык''' ('''recursively enumerable language''') {{---}} язык, для которого существует программа &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt; такая, что &amp;lt;tex&amp;gt;g(i) = x_i, L = \{x_1, x_2, .., x_n, ..\}&amp;lt;/tex&amp;gt;. Язык &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; называется '''коперечислимым''' ('''co-enumerable'''), если &amp;lt;tex&amp;gt;\overline L&amp;lt;/tex&amp;gt; {{---}}перечислимый. Класс всех перечислимых языков называется &amp;lt;tex&amp;gt; \mathrm{RE} &amp;lt;/tex&amp;gt;, а всех коперечислимих &amp;lt;tex&amp;gt; \mathrm{co}&amp;lt;/tex&amp;gt;-&amp;lt;tex&amp;gt;\mathrm{RE}&amp;lt;/tex&amp;gt; .&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
Пусть имеется некоторая программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. Запуск программы &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; с '''тайм-лимитом''' ('''time limit''') &amp;lt;tex&amp;gt;TL&amp;lt;/tex&amp;gt; будем обозначать как &amp;lt;tex&amp;gt;p|_{TL}&amp;lt;/tex&amp;gt; и иметь в виду следующее: если за &amp;lt;tex&amp;gt;TL&amp;lt;/tex&amp;gt; операций программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; корректно завершилась и что-то вернула, то &amp;lt;tex&amp;gt;p|_{TL}&amp;lt;/tex&amp;gt; вернёт то же самое; если же за &amp;lt;tex&amp;gt;TL&amp;lt;/tex&amp;gt; операций программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; не успела завершиться, то &amp;lt;tex&amp;gt;p|_{TL}&amp;lt;/tex&amp;gt; вернёт &amp;lt;tex&amp;gt;\bot&amp;lt;/tex&amp;gt; (символ зависания).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=th1&lt;br /&gt;
|statement=&lt;br /&gt;
&amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; {{---}} перечислимый &amp;lt;tex&amp;gt;\Leftrightarrow L&amp;lt;/tex&amp;gt; {{---}} полуразрешимый.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; {{---}} перечислимый язык. Тогда для него существует программа &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt;, которая по номеру &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; выводит слово из &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;. Значит, для  всех &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; путем перебора значений функции &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt; мы можем найти такое &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt; g(i) = x&amp;lt;/tex&amp;gt;. Следовательно, существует программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, такая, что &amp;lt;tex&amp;gt;\forall x: x \in L \Leftrightarrow p(x)=1&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; является полуразрешимым языком.&lt;br /&gt;
 &amp;lt;tex&amp;gt;p(x):&amp;lt;/tex&amp;gt;&lt;br /&gt;
   for &amp;lt;tex&amp;gt; i = 1 ~ .. ~ \infty&amp;lt;/tex&amp;gt;&lt;br /&gt;
     if &amp;lt;tex&amp;gt; g(i) == x&amp;lt;/tex&amp;gt;&lt;br /&gt;
       return &amp;lt;tex&amp;gt; 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; {{---}} полуразрешимый язык. Тогда для него существует программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, результат которой равен &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; для любого слова из &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;. Чтобы программа &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; не зависала на словах, которые не принадлежат &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, будем запускать ее с тайм-лимитом. Для поиска &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-го слова из языка &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; будем перебирать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; {{---}} тайм-лимит с которым будем запускать программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;. Таким образом существует программа &amp;lt;tex&amp;gt;g_0&amp;lt;/tex&amp;gt;, которая выводит &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; слово языка &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; с повторениями. Для того, чтобы выводить слова без повторений, заведем множество &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;, в котором будем хранить уже выведенные слова. Программа &amp;lt;tex&amp;gt;g&amp;lt;/tex&amp;gt; доказывает, что &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; является перечислимым языком.&lt;br /&gt;
 &amp;lt;tex&amp;gt;g_0(i):&amp;lt;/tex&amp;gt;&lt;br /&gt;
   &amp;lt;tex&amp;gt;cnt = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
   for &amp;lt;tex&amp;gt; k = 1 ~ .. ~ \infty&amp;lt;/tex&amp;gt;&lt;br /&gt;
     for &amp;lt;tex&amp;gt; x \in \{x_1, x_2, .., x_k\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
       if &amp;lt;tex&amp;gt; p|_k(x) == 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
         &amp;lt;tex&amp;gt;cnt&amp;lt;/tex&amp;gt;++&lt;br /&gt;
       if &amp;lt;tex&amp;gt; cnt == i&amp;lt;/tex&amp;gt;&lt;br /&gt;
         return &amp;lt;tex&amp;gt; x&amp;lt;/tex&amp;gt;&lt;br /&gt;
 &amp;lt;tex&amp;gt;g(i):&amp;lt;/tex&amp;gt;&lt;br /&gt;
   &amp;lt;tex&amp;gt;U = \emptyset&amp;lt;/tex&amp;gt;&lt;br /&gt;
   for &amp;lt;tex&amp;gt; j = 1 ~ .. ~ \infty&amp;lt;/tex&amp;gt;&lt;br /&gt;
     &amp;lt;tex&amp;gt;x = g_0(j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
     if &amp;lt;tex&amp;gt; x \notin U&amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt;cnt&amp;lt;/tex&amp;gt;++&lt;br /&gt;
     if &amp;lt;tex&amp;gt; cnt == i&amp;lt;/tex&amp;gt;&lt;br /&gt;
       return &amp;lt;tex&amp;gt; x&amp;lt;/tex&amp;gt;&lt;br /&gt;
     &amp;lt;tex&amp;gt;U.insert(x)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приведённые программы доказывают эквивалентность определений.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=th2&lt;br /&gt;
|statement=&lt;br /&gt;
Любой [[Разрешимые_(рекурсивные)_языки | разрешимый язык]] &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; является перечислимым.&lt;br /&gt;
|proof= &lt;br /&gt;
Любой разрешимый язык &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; является полуразрешимым. Так как любой полуразрешимый язык является перечислимым, то &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; является перечислимым.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
&amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; {{---}} перечислим и коперечислим &amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; {{---}} [[Разрешимые_(рекурсивные)_языки|разрешим]].&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим полуразрешители для &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\overline L&amp;lt;/tex&amp;gt; и одновременно запустим их для одного и того же элемента &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; принадлежит либо &amp;lt;tex&amp;gt; L &amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;\overline{L}&amp;lt;/tex&amp;gt;, поэтому один из полуразрешителей успешно отработает и не зависнет. Значит, мы за конечное время узнаем, лежит ли &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; или нет. Таким образом, мы построили разрешитель для &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;  {{---}} разрешимый.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
* Н. К. Верещагин,  А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. {{---}} М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Recursively_enumerable_language Wikipedia— Recursively enumerable language]&lt;br /&gt;
*[http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D0%BE_%D0%BF%D0%B5%D1%80%D0%B5%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D0%BC%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA Википедия — Рекурсивно перечислимый язык]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Теория вычислимости]]&lt;/div&gt;</summary>
		<author><name>217.118.78.101</name></author>	</entry>

	</feed>