<?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=Sancho</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=Sancho"/>
		<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/Sancho"/>
		<updated>2026-08-04T13:36:28Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=613</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=613"/>
				<updated>2010-03-30T09:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: tex tex tex&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px| Граф для игры в города в штате Мичиган]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px| Пример графа для игры в Generalized Geography]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык &amp;lt;tex&amp;gt; GG = \{ \langle G, b \rangle | &amp;lt;/tex&amp;gt; первый игрок в графе &amp;lt;tex&amp;gt; G &amp;lt;/tex&amp;gt;, начиная игру с вершины &amp;lt;tex&amp;gt; b &amp;lt;/tex&amp;gt;, обладает выигрышной стратегией &amp;lt;tex&amp;gt; \} &amp;lt;/tex&amp;gt; является [[Класс_PS|PS-полным]].&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм &amp;lt;tex&amp;gt; M ( \langle G, b \rangle ) &amp;lt;/tex&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем [[Интерпретация_БФ_с_кванторами_как_игры_для_двух_игроков|задачу об игре двух игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt;]] в булевой КНФ-формуле с предваряющими кванторами (эта задача [[Класс_PS|PS-трудная]]) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Если в нашей формуле с предваряющими кванторами последний квантор - не &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt;, то добавим его, введя дополнительную переменную. Таким образом для игры двух игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; наша формула представима в следующем виде:&lt;br /&gt;
&amp;lt;tex&amp;gt; \varphi = \exists x_1 \forall x_2 \exists x_3 ... \exists x_n ( \psi ) &amp;lt;/tex&amp;gt; , где &amp;lt;tex&amp;gt; \psi &amp;lt;/tex&amp;gt; - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px| Модель графа для сведения задачи об игре двух игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; к задаче GG]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt;) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина &amp;lt;tex&amp;gt; c_i &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; зафиксировал скобку, игрок &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; не сможет никуда пойти из этой вершины (тогда &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки &amp;lt;tex&amp;gt; c_i &amp;lt;/tex&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; к задаче Generalized Geography. Очевидно, сведение будет произведено за полиномиальное время. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=609</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=609"/>
				<updated>2010-03-30T09:39:25Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: tex tex tex&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px| Граф для игры в города в штате Мичиган]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px| Пример графа для игры в Generalized Geography]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b, обладает выигрышной стратегией } является [[Класс_PS|PS-полным]].&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем [[Интерпретация_БФ_с_кванторами_как_игры_для_двух_игроков|задачу об игре двух игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt;]] в булевой КНФ-формуле с предваряющими кванторами (эта задача [[Класс_PS|PS-трудная]]) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Если в нашей формуле с предваряющими кванторами последний квантор - не &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt;, то добавим его, введя дополнительную переменную. Таким образом для игры двух игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; наша формула представима в следующем виде:&lt;br /&gt;
&amp;lt;tex&amp;gt; \varphi = \exists x_1 \forall x_2 \exists x_3 ... \exists x_n ( \psi ) &amp;lt;/tex&amp;gt; , где &amp;lt;tex&amp;gt; \psi &amp;lt;/tex&amp;gt; - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px| Модель графа для сведения задачи об игре двух игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; к задаче GG]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt;) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина &amp;lt;tex&amp;gt; c_i &amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; зафиксировал скобку, игрок &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; не сможет никуда пойти из этой вершины (тогда &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки &amp;lt;tex&amp;gt; c_i &amp;lt;/tex&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков &amp;lt;tex&amp;gt; \exists &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \forall &amp;lt;/tex&amp;gt; к задаче Generalized Geography. Очевидно, сведение будет произведено за полиномиальное время. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=608</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=608"/>
				<updated>2010-03-29T21:23:16Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: /* Графическая модель */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px| Граф для игры в города в штате Мичиган]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px| Пример графа для игры в Generalized Geography]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b, обладает выигрышной стратегией } является [[Класс_PS|PS-полным]].&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем [[Интерпретация_БФ_с_кванторами_как_игры_для_двух_игроков|задачу об игре двух игроков ∃ и ∀]] в булевой КНФ-формуле с предваряющими кванторами (эта задача [[Класс_PS|PS-трудная]]) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Для игры двух игроков ∃ и ∀ наша формула представима в следующем виде: φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , где ψ - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px| Модель графа для сведения задачи об игре двух игроков ∃ и ∀ к задаче GG]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков ∃ и ∀ к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков ∃ и ∀ к задаче Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=607</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=607"/>
				<updated>2010-03-29T15:13:34Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: ссылки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px| Граф для игры в города в штате Мичиган]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px| Пример графа для игры в Generalized Geography]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b, обладает выигрышной стратегией } является [[Класс_PS|PS-полным]].&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем [[Интерпретация_БФ_с_кванторами_как_игры_для_двух_игроков|задачу об игре двух игроков ∃ и ∀]] в булевой КНФ-формуле с предваряющими кванторами (эта задача [[Класс_PS|PS-трудная]]) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Для игры двух игроков ∃ и ∀ наша формула представима в следующем виде: φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , где ψ - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px| Модель графа для сведения задачи об игре двух игроков ∃ и ∀ к задаче GG]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков ∃ и ∀ к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков ∃ и ∀ к задаче Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=606</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=606"/>
				<updated>2010-03-29T15:08:48Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: ссылки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px| Граф для игры в города в штате Мичиган]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px| Пример графа для игры в Generalized Geography]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b, обладает выигрышной стратегией } является [[Класс_PS|PS-полным]].&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу об игре двух игроков ∃ и ∀ в булевой КНФ-формуле с предваряющими кванторами (эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Для игры двух игроков ∃ и ∀ наша формула представима в следующем виде: φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , где ψ - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px| Модель графа для сведения задачи об игре двух игроков ∃ и ∀ к задаче GG]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков ∃ и ∀ к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков ∃ и ∀ к задаче Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=605</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=605"/>
				<updated>2010-03-29T15:00:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: рисунки подписи&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px| Граф для игры в города в штате Мичиган]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px| Пример графа для игры в Generalized Geography]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b обладает выигрышной стратегией } является PS-полным.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу об игре двух игроков ∃ и ∀ в булевой КНФ-формуле с предваряющими кванторами (эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Для игры двух игроков ∃ и ∀ наша формула представима в следующем виде: φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , где ψ - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px| Модель графа для сведения задачи об игре двух игроков ∃ и ∀ к задаче GG]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков ∃ и ∀ к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков ∃ и ∀ к задаче Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=604</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=604"/>
				<updated>2010-03-29T14:54:51Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: рисунки |thumb|350px&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png|thumb|350px]]&lt;br /&gt;
&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Например, граф для игры в города в штате Мичиган может выглядеть так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png|thumb|350px]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b обладает выигрышной стратегией } является PS-полным.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу об игре двух игроков ∃ и ∀ в булевой КНФ-формуле с предваряющими кванторами (эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Для игры двух игроков ∃ и ∀ наша формула представима в следующем виде: φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , где ψ - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png|thumb|350px]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков ∃ и ∀ к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков ∃ и ∀ к задаче Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=603</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=603"/>
				<updated>2010-03-29T14:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: логический ляп :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ориентированное ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Например, граф для игры в города в штате Мичиган может выглядеть так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Игра начинается с первой вершины. Здесь игрок P1 обладает следующей выигрышной стратегией: делает ход в вершину 2, после чего P2 переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора игрока P2, P1 может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png]]&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b обладает выигрышной стратегией } является PS-полным.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что язык принадлежит классу PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу об игре двух игроков ∃ и ∀ в булевой КНФ-формуле с предваряющими кванторами (эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Для игры двух игроков ∃ и ∀ наша формула представима в следующем виде: φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , где ψ - некая КНФ-формула.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png]]&lt;br /&gt;
&lt;br /&gt;
Для любой такой КНФ-формулы с предваряющими кванторами можно построить граф, аналогичный приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи об игре игроков ∃ и ∀ к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины-переменные, учавствующие в этой скобке, а от них проведем ребра к вершинам левого столбца, соответсвующим выборам TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы удовлетворить формулу. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу об игре игроков ∃ и ∀ к задаче Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=602</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=602"/>
				<updated>2010-03-29T14:19:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: предвАряющий&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Например, граф для игры в городки в штате Мичиган может выглядеть так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Здесь первый игрок обладает следующей выигрышной стратегией(игра начинается с первой вершины): делает ход в вершину 2, после чего второй игрок переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора второго игрока, первый может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png]]&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Язык GG = { &amp;lt;G, b&amp;gt; | первый игрок в графе G, начиная игру с вершины b обладает выигрышной стратегией } является PS-полным.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что задача принадлежит классы PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу о выполнимости булевой формулы с предваряющими кванторами в форме КНФ (эта задача PS-трудная) к Generalized Geography за полиномиальное время. Для этого воспользуемся тем, что булеву формулу с кванторами можно интерпретировать как игру двух игроков ∃ и ∀. &lt;br /&gt;
&lt;br /&gt;
Булева формула с кванторами имеет следующий вид: φ = Q&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...''Q&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) где ''Q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;'' квантор ∃ или ∀, а ψ - некоторая булева формула. Заметим, что любую такую формулу можно преобразовать к виду φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , добавив необходимое количество переменных с кванторами. Представим получившуюся формулу как игру игроков ∃ и ∀. Игрок ∃ здесь - первый игрок в Generalized Geography, а игрок ∀ - второй. Таким образом, если ∃ выигрывает в своей игре, то первый игрок обладает выигрышной стратегией в игре Generalized Geography. Осталось по булевой формуле с предваряющими кванторами получить соотвествующий граф для игры в Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png]]&lt;br /&gt;
&lt;br /&gt;
Для любой формулы можно построить граф, аналогичный графу, приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи о выполнимости булевой формулы к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предваряющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины, противоположные выбору TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы формула выполнилась. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу о выполнимости булевой формулы с предваряющими кванторами к задача Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=601</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=601"/>
				<updated>2010-03-29T13:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: рефакторинг 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Например, граф для игры в городки в штате Мичиган может выглядеть так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Здесь первый игрок обладает следующей выигрышной стратегией(игра начинается с первой вершины): делает ход в вершину 2, после чего второй игрок переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора второго игрока, первый может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png]]&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Сформулируем задачу так: по данному ориентированному графу выяснить, обладает ли первый игрок выигрышной стратегией, стартуя в вершине с номером х.&lt;br /&gt;
&lt;br /&gt;
Эта задача PS-полна.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что задача принадлежит классы PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу о выполнимости булевой формулы с предваряющими кванторами в форме КНФ (эта задача PS-трудная) к Generalized Geography за полиномиальное время. Для этого воспользуемся тем, что булеву формулу с кванторами можно интерпретировать как игру двух игроков ∃ и ∀. &lt;br /&gt;
&lt;br /&gt;
Булева формула с кванторами имеет следующий вид: φ = Q&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...''Q&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) где ''Q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;'' квантор ∃ или ∀, а ψ - некоторая булева формула. Заметим, что любую такую формулу можно преобразовать к виду φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;''(ψ) , добавив необходимое количество переменных с кванторами. Представим получившуюся формулу как игру игроков ∃ и ∀. Игрок ∃ здесь - первый игрок в Generalized Geography, а игрок ∀ - второй. Таким образом, если ∃ выигрывает в своей игре, то первый игрок обладает выигрышной стратегией в игре Generalized Geography. Осталось по булевой формуле с предваряющими кванторами получить соотвествующий граф для игры в Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png]]&lt;br /&gt;
&lt;br /&gt;
Для любой формулы можно построить граф, аналогичный графу, приведенному на рисунке. Рассмотрим этот граф, и докажем, что это сведение задачи о выполнимости булевой формулы к задаче Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец в этом графе описывает процедуру выборки игроками ∃ и ∀ значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок ∀ (т.к. в нашей КНФ-формуле с предворяющими кванторами последний квантор ∃) выбирает скобку, значение которой должно быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок ∀ зафиксировал скобку, игрок ∃ долджен выбрать переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и сделать переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок ∀ не сможет никуда пойти из этой вершины (тогда ∃ выиграл, первый игрок обладает выигрышной стратегией в игре Generalized Geography). Для этого проведем ребра из каждый скобки c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; в вершины, противоположные выбору TRUE или FALSE значений переменных.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если игрок ∃ выигрывает, то автоматически обладает выигрышной стратегией и первый игрок в Generalized Geography. Он знает, какие значения переменных надо выбрать, и в какую вершину пойти в конце. Аналогично, по выигрышной стратегии первого игрока в Generalized Geography можно узнать, какие значения переменных должен выбрать игрок ∃ для того, чтобы формула выполнилась. &lt;br /&gt;
&lt;br /&gt;
Мы свели задачу о выполнимости булевой формулы с предваряющими кванторами к задача Generalized Geography. Значит, язык GG является PS-трудным, а так как выше мы доказали его принадлежность классу PS, то и PS-полным.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=600</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=600"/>
				<updated>2010-03-29T13:07:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: рисунок в доказательстве&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Например, граф для игры в городки в штате Мичиган может выглядеть так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Здесь первый игрок обладает следующей выигрышной стратегией(игра начинается с первой вершины): делает ход в вершину 2, после чего второй игрок переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора второго игрока, первый может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png]]&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Сформулируем задачу так: по данному ориентированному графу выяснить, обладает ли первый игрок выигрышной стратегией, стартуя в вершине с номером х.&lt;br /&gt;
&lt;br /&gt;
Эта задача PS-полна.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что задача принадлежит классы PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу о выполнимости булевой формулы с предваряющими кванторами в форме КНФ (эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Булева формула с кванторами имеет следующий вид: φ = Q&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...''Q&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) где ''Q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;'' квантор ∃ или ∀. Заметим, что любую такую формулу можно преобразовать к виду φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) , добавив необходимое количество переменных с кванторами. Если булева формула возвращает TRUE после ходов игроков По-любому и Существует, то выиграл Существует, иначе выиграл По-любому.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_3.png]]&lt;br /&gt;
&lt;br /&gt;
Построив граф, аналогичный приведенному на рисунке, для любой булевой формулы с кванторами, мы сможем свести задачу о выигрывании игрока Существует к задаче о наличии выигрышной стратегии у первого игрока в Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец описывает процедуру выборки игроками значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок По-любому (т.к. в нашей КНФ-формуле с предворяющими кванторами последний квантор Существует) выбирает скобку, значение которой может быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина ci. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок По-Любому зафиксировал скобку, игрок Существует выбирает переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и делает переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок По-любому не сможет никуда пойти из этой вершины. Для этого проведем ребра из каждый скобки в вершины, соответствующие выбору TRUE или FALSE значений переменных.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Generalized_geography_3.png&amp;diff=599</id>
		<title>Файл:Generalized geography 3.png</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Generalized_geography_3.png&amp;diff=599"/>
				<updated>2010-03-29T12:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=598</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=598"/>
				<updated>2010-03-29T12:30:09Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: рисунки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
Города (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий, повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Например, граф для игры в городки в штате Мичиган может выглядеть так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_1.png]]&lt;br /&gt;
&lt;br /&gt;
В игре Generalized Geography (Обобщенные города) мы заменяем граф с городами на некоторый абстрактный ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход (перейти в ранее не посещенную вершину).&lt;br /&gt;
&lt;br /&gt;
Рассмотрим пример такой игры. Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. Здесь первый игрок обладает следующей выигрышной стратегией(игра начинается с первой вершины): делает ход в вершину 2, после чего второй игрок переходит в вершину 4, так как это единственный вариант. Первый игрок ходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора второго игрока, первый может перейти в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generalized_geography_2.png]]&lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Сформулируем задачу так: по данному ориентированному графу выяснить, обладает ли первый игрок выигрышной стратегией, стартуя в вершине с номером х.&lt;br /&gt;
&lt;br /&gt;
Эта задача PS-полна.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что задача принадлежит классы PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу о выигрывании игрока Существует в булевой КНФ-формуле с пердворяющими кванторами(эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Булева формула с кванторами имеет следующий вид: φ = Q&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...''Q&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) где ''Q&amp;lt;/sub&amp;gt;i&amp;lt;/sub&amp;gt;'' квантор ∃ или ∀. Заметим, что любую такую формулу можно преобразовать к виду φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) , добавив необходимое количество переменных с кванторами. Если булева формула возвращает TRUE после ходов игроков По-любому и Существует, то выиграл существует, иначе выиграл По-любому.&lt;br /&gt;
&lt;br /&gt;
Построив аналогичный граф (приведен ниже) для любой булевой формулы с кванторами, мы сможем свести задачу о выигрывании игрока Существует к задаче о наличии выигрышной стратегии у первого игрока в Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец описывает процедуру выборки игроками значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок По-любому (т.к. в нашей КНФ-формуле с предворяющими кванторами последний квантор Существует) выбирает скобку, значение которой может быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина ci. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок По-Любому зафиксировал скобку, игрок Существует выбирает переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и делает переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок По-любому не сможет никуда пойти из этой вершины. Для этого проведем ребра из каждый скобки в вершины, соответствующие выбору TRUE или FALSE значений переменных.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Generalized_geography_2.png&amp;diff=597</id>
		<title>Файл:Generalized geography 2.png</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Generalized_geography_2.png&amp;diff=597"/>
				<updated>2010-03-29T12:26:34Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Generalized_geography_1.png&amp;diff=596</id>
		<title>Файл:Generalized geography 1.png</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Generalized_geography_1.png&amp;diff=596"/>
				<updated>2010-03-29T12:24:35Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=595</id>
		<title>PS-полнота задачи Generalized geography</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=PS-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_Generalized_geography&amp;diff=595"/>
				<updated>2010-03-29T11:56:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: /* Утверждение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формулировка задачи==&lt;br /&gt;
Городки (Geography) - игра, в которой игроки по очереди называют города со всего мира. Каждый город должен начинаться с той буквы, на которую заканчивается предыдущий. Повторы запрещены. Игра начинается с любого города, и заканчивается, когда игрок проигрывает и не может назвать новый город.&lt;br /&gt;
&lt;br /&gt;
=== Графическая модель ===&lt;br /&gt;
Для визуализации задачи можно построить ориентированный граф, где каждая вершина - имя города, а ребро из А в Б означает, что город Б начинается на ту же букву, на которую заканчивается город А. Ход игрока - переход из текущей вершины в новую, ранее не посещенную, по соответствующему ребру. Проигрывает тот, кто не может сделать ни одного перехода. Ниже приведен пример такого графа для игры в городки в штате Мичиган.&lt;br /&gt;
&lt;br /&gt;
Рисунок&lt;br /&gt;
&lt;br /&gt;
В обобщенных городках (Generalized Geography) используется любой ориентированный граф. Игроки по очереди переходят из вершины в вершину, и проигрывает тот, кто не может сделать новый ход.&lt;br /&gt;
Пусть P1 - игрок, который ходит первым, и  P2 - игрок, который ходит вторым. В приведенном ниже примере первый игрок имеет следующую выигрышную стратегию(изначально находится в вершине 1): переходит в вершину 2, после чего второй игрок переходит в вершину 4, так как это единственный вариант. Первый игрок переходит в вершину 5, и второй выбирает между вершинами 3 и 7. Но независимо от выбора второго игрока, первый переходит в вершину 9, откуда второй игрок никуда не может пойти.&lt;br /&gt;
&lt;br /&gt;
Рисунок. &lt;br /&gt;
&lt;br /&gt;
== Утверждение ==&lt;br /&gt;
&lt;br /&gt;
Сформулируем задачу так: по данному ориентированному графу выяснить, обладает ли первый игрок выигрышной стратегией, стартуя в вершине с номером х.&lt;br /&gt;
&lt;br /&gt;
Эта задача PS-полна.&lt;br /&gt;
&lt;br /&gt;
== Доказательство ==&lt;br /&gt;
=== Доказательство принадлежности задачи классу PS ===&lt;br /&gt;
&lt;br /&gt;
Чтобы показать, что задача принадлежит классы PS, предъявим алгоритм, работающий на полиномиальной памяти, определяющий, обладает ли игрок выигрышной стратегией находясь в вершине v графа G.&lt;br /&gt;
&lt;br /&gt;
Алгоритм M(&amp;lt;G,v&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
1. Если из вершины, в которой находится игрок, не ведет ни одного ребра в непосещенные ранее вершины, то вернем FALSE, мы проиграли.&lt;br /&gt;
&lt;br /&gt;
2. Иначе запустим этот же алгоритм от всех вершин, в которые можно пойти, и если везде вернется TRUE, вернем FALSE, куда бы мы ни пошли, второй игрок выиграет. Если же хоть из одной вершины функция вернула FALSE, то вернем TRUE, в этой вершине второй игрок проигрывает. &lt;br /&gt;
&lt;br /&gt;
Этот алгоритм перебором находит выигрышную стратегию для первого игрока, и очевидно, требует полиномиальную память: на каждом шаге одна или более вершин помечаются как посещенные, и более не обрабатываются.&lt;br /&gt;
&lt;br /&gt;
=== Доказательство принадлежности задачи классу PSH ===&lt;br /&gt;
&lt;br /&gt;
Для доказательства этого факта сведем задачу о выигрывании игрока Существует в булевой КНФ-формуле с пердворяющими кванторами(эта задача PS-трудная) к Generalized Geography за полиномиальное время. &lt;br /&gt;
&lt;br /&gt;
Булева формула с кванторами имеет следующий вид: φ = Q&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; Q&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...''Q&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) где ''Q&amp;lt;/sub&amp;gt;i&amp;lt;/sub&amp;gt;'' квантор ∃ или ∀. Заметим, что любую такую формулу можно преобразовать к виду φ = ∃''x''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ∀''x''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; ∃''x''&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; ...∃''x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(ψ) , добавив необходимое количество переменных с кванторами. Если булева формула возвращает TRUE после ходов игроков По-любому и Существует, то выиграл существует, иначе выиграл По-любому.&lt;br /&gt;
&lt;br /&gt;
Построив аналогичный граф (приведен ниже) для любой булевой формулы с кванторами, мы сможем свести задачу о выигрывании игрока Существует к задаче о наличии выигрышной стратегии у первого игрока в Generalized Geography.&lt;br /&gt;
&lt;br /&gt;
Левый столбец описывает процедуру выборки игроками значений переменных, если игрок выбирает TRUE, он идет в левую сторону, иначе в правую.&lt;br /&gt;
&lt;br /&gt;
Зафиксировав значения переменных, игрок По-любому (т.к. в нашей КНФ-формуле с предворяющими кванторами последний квантор Существует) выбирает скобку, значение которой может быть FALSE (тогда он выиграет!). На рисунке каждая скобка - отдельная вершина ci. &lt;br /&gt;
&lt;br /&gt;
После того, как игрок По-Любому зафиксировал скобку, игрок Существует выбирает переменную, значение которой не ноль (игроки уже зафиксировали значения переменных в самом начале) и делает переход в соответсвующую вершинку. Т.к. значение этой переменной не ноль, то игрок По-любому не сможет никуда пойти из этой вершины. Для этого проведем ребра из каждый скобки в вершины, соответствующие выбору TRUE или FALSE значений переменных.&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8_(%D1%81%D1%82%D0%B0%D1%80%D0%B0%D1%8F_%D1%82%D1%80%D0%B5%D1%88%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F)&amp;diff=136</id>
		<title>Теория сложности (старая трешовая версия)</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8_(%D1%81%D1%82%D0%B0%D1%80%D0%B0%D1%8F_%D1%82%D1%80%D0%B5%D1%88%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F)&amp;diff=136"/>
				<updated>2010-03-12T22:46:41Z</updated>
		
		<summary type="html">&lt;p&gt;Sancho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Лекция 1 ==&lt;br /&gt;
*[[Класс DSPACE]]&lt;br /&gt;
*[[Теорема о емкостной иерархии]]&lt;br /&gt;
&lt;br /&gt;
== Лекция 2 ==&lt;br /&gt;
*[[Теорема Кука]]&lt;br /&gt;
&lt;br /&gt;
== Лекция 3 ==&lt;br /&gt;
*[[Теорема Ладнера]]&lt;br /&gt;
*[[Теорема Левина]]&lt;br /&gt;
*[[Теорема Бейкера-Гилла-Соловэя]]&lt;br /&gt;
&lt;br /&gt;
== Практика 3 ==&lt;br /&gt;
*[[NP-полнота задачи о сумме подмножества]]&lt;br /&gt;
*[[NP-полнота задачи о рюкзаке]]&lt;br /&gt;
&lt;br /&gt;
== Практика, которой на самом деле не было ==&lt;br /&gt;
*[[NP-полнота задачи о раскраске графа]]&lt;br /&gt;
&lt;br /&gt;
== Лекция 4 ==&lt;br /&gt;
*[[PS-полнота задачи Generalized geography]]&lt;/div&gt;</summary>
		<author><name>Sancho</name></author>	</entry>

	</feed>