<?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=77.234.212.37&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=77.234.212.37&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/77.234.212.37"/>
		<updated>2026-06-11T14:22:39Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8&amp;diff=72621</id>
		<title>Порождающие модели</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8&amp;diff=72621"/>
				<updated>2020-02-10T06:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Классификация задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Порождающие модели''' (англ. ''generative model'') {{---}} это класс моделей совместного распределения вероятностей &amp;lt;tex&amp;gt;p(x, y)&amp;lt;/tex&amp;gt; для генерации новых объектов на основе исходных данных.&lt;br /&gt;
&lt;br /&gt;
Порождающая модель может генерировать новые фотографии животных, которые выглядят как настоящие животные, в то время как дискриминативная модель (англ. ''discriminative model'')&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Discriminative_model Discriminative model]&amp;lt;/ref&amp;gt; может отличить собаку от кошки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классификация задачи ==&lt;br /&gt;
Можно использовать некоторые эмпирические правила для генерации новых объектов, не используя машинного обучения.&lt;br /&gt;
&lt;br /&gt;
Требуется чтобы новые объекты были правдоподобными в своей области. Новое изображение человека должно быть правдоподобным, как изображение, но также человек на нём должен быть правдоподобным как человек.&lt;br /&gt;
&lt;br /&gt;
Мы хотим научиться создавать правдоподобный объект относительно некоторой скрытой структуры исходных объектов. Давайте изучим распределение по ним, а затем просто будем сэмплировать новый объект из этого распределения. Значит эта задача относится к классу задач [[Общие понятия#Обучение без учителя (англ. Unsupervised learning)|обучения без учителя]].&lt;br /&gt;
&lt;br /&gt;
== Порождающие модели на основе нейронных сетей ==&lt;br /&gt;
*[[Generative Adversarial Nets (GAN)|Порождающие состязательные сети]]&lt;br /&gt;
*[[Автокодировщик]]&lt;br /&gt;
*[[Вариационный автокодировщик]]&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
[[Байесовская классификация#Наивный байесовский классификатор|Наивный байесовский классификатор(как пример простейшей порождающей модели)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [https://developers.google.com/machine-learning/gan/generative Google courses с примерами на понимание]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Порождающие модели]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8&amp;diff=72620</id>
		<title>Порождающие модели</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8&amp;diff=72620"/>
				<updated>2020-02-10T06:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Порождающие модели''' (англ. ''generative model'') {{---}} это класс моделей совместного распределения вероятностей &amp;lt;tex&amp;gt;p(x, y)&amp;lt;/tex&amp;gt; для генерации новых объектов на основе исходных данных.&lt;br /&gt;
&lt;br /&gt;
Порождающая модель может генерировать новые фотографии животных, которые выглядят как настоящие животные, в то время как дискриминативная модель (англ. ''discriminative model'')&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Discriminative_model Discriminative model]&amp;lt;/ref&amp;gt; может отличить собаку от кошки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классификация задачи ==&lt;br /&gt;
Относится к классу задач [[Общие понятия#Обучение без учителя (англ. Unsupervised learning)|обучения без учителя]],&lt;br /&gt;
&lt;br /&gt;
== Порождающие модели на основе нейронных сетей ==&lt;br /&gt;
*[[Generative Adversarial Nets (GAN)|Порождающие состязательные сети]]&lt;br /&gt;
*[[Автокодировщик]]&lt;br /&gt;
*[[Вариационный автокодировщик]]&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
[[Байесовская классификация#Наивный байесовский классификатор|Наивный байесовский классификатор(как пример простейшей порождающей модели)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [https://developers.google.com/machine-learning/gan/generative Google courses с примерами на понимание]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Порождающие модели]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8&amp;diff=72619</id>
		<title>Порождающие модели</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8&amp;diff=72619"/>
				<updated>2020-02-10T06:36:54Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Порождающие модели''' (англ. ''generative model'') {{---}} это класс моделей совместного распределения вероятностей &amp;lt;tex&amp;gt;p(x, y)&amp;lt;/tex&amp;gt; для генерации новых объектов на базе основных данных.&lt;br /&gt;
&lt;br /&gt;
Порождающая модель может генерировать новые фотографии животных, которые выглядят как настоящие животные, в то время как дискриминативная модель (англ. ''discriminative model'')&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Discriminative_model Discriminative model]&amp;lt;/ref&amp;gt; может отличить собаку от кошки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Классификация задачи ==&lt;br /&gt;
Относится к классу задач [[Общие понятия#Обучение без учителя (англ. Unsupervised learning)|обучения без учителя]],&lt;br /&gt;
&lt;br /&gt;
== Порождающие модели на основе нейронных сетей ==&lt;br /&gt;
*[[Generative Adversarial Nets (GAN)|Порождающие состязательные сети]]&lt;br /&gt;
*[[Автокодировщик]]&lt;br /&gt;
*[[Вариационный автокодировщик]]&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
[[Байесовская классификация#Наивный байесовский классификатор|Наивный байесовский классификатор(как пример простейшей порождающей модели)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [https://developers.google.com/machine-learning/gan/generative Google courses с примерами на понимание]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Порождающие модели]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B0&amp;diff=71325</id>
		<title>Примеры сведения к задачам поиска потока</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B0&amp;diff=71325"/>
				<updated>2019-05-31T07:44:09Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Пример №2. Испорченный паркет. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рассмотрим несколько задач, которые решаются путём сведения к задаче о поиске максимального потока в сети.&lt;br /&gt;
&lt;br /&gt;
== Пример №1. Лабиринт Минотавра ==&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition = Дано поле размером &amp;lt;tex&amp;gt;N \times M&amp;lt;/tex&amp;gt;, некоторые клетки поля закрашены. В одной из незакрашенных клеток поля стоит Минотавр, он умеет ходить только по незакрашенным клеткам (из текущей клетки он может пойти только в ту клетку, с которой имеет общую сторону). Какое минимальное количество клеток нужно закрасить, чтобы Минотавр не смог выбраться за пределы поля?&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#if: {{{neat|}}}|&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcfcfc; float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #ddd;&amp;quot;&amp;gt;'''Задача:'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px dashed #2f6fab; padding: 8px; font-style: italic;&amp;quot;&amp;gt;{{{definition}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;|&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: #ddd&amp;quot;&amp;gt;'''Задача:'''&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px dashed #2f6fab; padding: 8px; background-color: #fcfcfc; font-style: italic;&amp;quot;&amp;gt;{{{definition}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
[[Файл:Monster.png|Пример поля]] [[Файл:MonsterSolution.png|Решение текущего примера]]&lt;br /&gt;
&lt;br /&gt;
Сразу скажем, что выбраться за пределы поля эквивалентно тому, что Минотавр может дойти до какой-либо крайней клетки.&lt;br /&gt;
&lt;br /&gt;
=== Решение и доказательство корректности ===&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Минимальное количество клеток, которое нужно закрасить, равно максимальному количеству клеточно-непересекающихся путей из позиции Минотавра до крайних клеток поля.&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, что ответ не больше, чем количество всех путей от Минотавра до крайних клеток. Сделаем ещё более строгое неравенство: ответ не больше, чем максимальное количество клеточно-непересекающихся путей, т.к. если взять какие-нибудь &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; пересекающихся пути и закрасить клетку в позиции, где они пересекаются, то блокируется выход за пределы поля сразу по &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; этим путям. С другой стороны, если закрасить клетку на каком-то из путей, то блокируется только этот путь, т.к. были взяты клеточно-непересекающиеся пути. Значит, ответ не меньше, чем количество таких путей.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Переход к сети ===&lt;br /&gt;
&lt;br /&gt;
Рассмотрим [[Определение сети, потока#flow_network|сеть]], в которой вершинам будут соответствовать незакрашенные клетки поля, соседние незакрашенные клетки соединим ориентированными рёбрами с пропускной способностью &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;. В качестве истока возьмём вершину, которой соответствует клетка Минотавр. Добавим в граф ещё одну вершину — сток, добавим рёбра из вершин, соответствующим крайним клеткам поля, в сток с пропускной способностью &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;. Чтобы пути не пересекались по клеткам, раздвоим каждую вершину графа на &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; вершины: в одну будут только входить рёбра, из другой — только выходить рёбра, и сами эти вершины соединим ребром с пропускной способностью &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Dublicate2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Используя [[Алгоритм Форда-Фалкерсона, реализация с помощью поиска в глубину|алгоритм Форда-Фалкерсона]], найдём максимальный поток в сети. Согласно [[Теорема о декомпозиции|теореме о декомпозиции]], нахождение максимального потока эквивалентно тому, что мы нашли максимальное количество путей из истока в сток. Т.е. требуемый ответ на задачу равен максимальному потоку. &lt;br /&gt;
&lt;br /&gt;
=== Оценка времени работы ===&lt;br /&gt;
&lt;br /&gt;
Время работы алгоритма Форда-Фалкерсона &amp;lt;tex&amp;gt;O(E|f|)&amp;lt;/tex&amp;gt;. Первое замечание: &amp;lt;tex&amp;gt;E&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\leqslant&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;4V&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\leqslant&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;4NM&amp;lt;/tex&amp;gt; (это следует из того, что из каждой вершины исходит не более &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt; рёбер), т.е. &amp;lt;tex&amp;gt;E=O(NM)&amp;lt;/tex&amp;gt;. Второе замечание: ответ не превосходит &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;, т.к. можно закрасить клетку слева, справа, сверху и снизу от позиции Минотавра и он не сможет никуда двигаться, поэтому &amp;lt;tex&amp;gt;|f|&amp;lt;/tex&amp;gt; можно считать константой. Итоговое время работы &amp;lt;tex&amp;gt;O(NM)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о максимальном потоке ]]&lt;br /&gt;
&lt;br /&gt;
==Пример №2. Испорченный паркет.==&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition = Дан паркет размером &amp;lt;tex&amp;gt;N \times M&amp;lt;/tex&amp;gt;, некоторые клетки которого испорчены, их необходимо закрыть новыми плитками. Плитки бывают размером &amp;lt;tex&amp;gt;2 \times 1&amp;lt;/tex&amp;gt; ценой &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;, и &amp;lt;tex&amp;gt;1 \times 1&amp;lt;/tex&amp;gt; ценой &amp;lt;tex&amp;gt;B&amp;lt;/tex&amp;gt;. Плитки можно поворачивать, но нельзя разрезать. Какую минимальную сумму нужно потратить, чтобы заложить испорченные плитки паркета. Новые плитки не должны перекрывать никакие другие плитки.&lt;br /&gt;
}}&lt;br /&gt;
===Решение===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
| [[Файл:Parquet_example_1.png|thumb|400px|Пример паркета]]&lt;br /&gt;
| [[Файл:Parquet_example_2.png|thumb|400px|Пример раскраски]]&lt;br /&gt;
|}&lt;br /&gt;
Сначала проверим, что &amp;lt;tex&amp;gt;2 \times B&amp;gt;A&amp;lt;/tex&amp;gt;. Если это условие не выполнено, то все выгодней замостить только плитками &amp;lt;tex&amp;gt;1 \times 1&amp;lt;/tex&amp;gt; и больше нечего считать. Теперь на нужно максимизировать количество плиток ценой &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Раскрасим наш паркет по принципу шахматной доски, тогда один конец плитки &amp;lt;tex&amp;gt;2 \times 1&amp;lt;/tex&amp;gt; будет лежать на черной клетке, другой – на белой. Итак, построим двудольный граф, одна доля которого будет содержать белые клетки, другая – черные. Ребра весом в &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; проведем между граничащими клетками. Добавим исток с ребрами в белые вершины весом в бесконечность и сток с ребрами из черных клеток весом тоже в бесконечность. Пускай &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; – величина найденного максимального потока между истоком и стоком, это и будет количество плиток &amp;lt;tex&amp;gt;2 \times 1&amp;lt;/tex&amp;gt;. Ответом к задаче будет величина &amp;lt;tex&amp;gt;f \times A+(K-f) \times B&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; – общее число испорченных клеток.&lt;br /&gt;
===Доказательство корректности===&lt;br /&gt;
Заметим следующее: мы ищем максимальное паросочетание в двудольном графе. Это означает, что белая вершина будет соединена не более чем с одной чёрной и наоборот – это именно то, что нам нужно, ведь соединяя чёрную клетку с белой, мы понимаем, что можем разместить здесь плитку размером &amp;lt;tex&amp;gt;2 \times 1&amp;lt;/tex&amp;gt; и она не будет ни с чем пересекаться. Теперь мы ищем максимальное число таких рёбер. Это всё происходит также, как и в сведении задачи поиска максимального паросочетания к задаче о нахождении максимального потока.&lt;br /&gt;
=== Оценка времени работы ===&lt;br /&gt;
&lt;br /&gt;
Величину максимального потока можно искать с помощью алгоритма Форда-Фалкерсона, его время работы &amp;lt;tex&amp;gt;O(E|f|)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;|f|&amp;lt;/tex&amp;gt; – величина найденного максимального потока. Заметим, что &amp;lt;tex&amp;gt;|f| \leqslant  \dfrac K 2&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; – общее число испорченных клеток. Также заметим, что &amp;lt;tex&amp;gt;E \leqslant K \times 4&amp;lt;/tex&amp;gt;, т.к. &amp;lt;tex&amp;gt;K&amp;lt;/tex&amp;gt; рёбер исходят из истока и входят в сток и максимум &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt; ребра могут исходить из вершины в левой доле в правую. Из всего этого следует, что итоговое время работы будет &amp;lt;tex&amp;gt;O(K^2)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Пример №3. Коллекционер монет.==&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition=Есть &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; коллекционеров и &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; видов монет. Для вступления в клуб, необходимо иметь не меньше одной монеты каждого типа. Вы (у вас номер 1) можете меняться с коллекционерами имеющимися монетами. Любой коллекционер обменяет монету свою монету &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; на вашу монету &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt;, если у него '''больше''' одной монеты типа &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; и нету ни одной монеты типа &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt;. Вы, в свою очередь, можете нарушать это правило. Нужно набрать как можно больше типов монет по известной ситуации у всех коллекционеров.&lt;br /&gt;
}}&lt;br /&gt;
===Решение===&lt;br /&gt;
[[Файл:Coints_task.gif|400px|thumb|right|Жёлтые вершины – монеты разных типов, синие – коллекционеры. Красное ребро означает, что коллекционеру нужна монета этого типа, причём пропускная способнасть этого ребра равна 1, зелёное – что у него больше одной монеты данного типа]]&lt;br /&gt;
Построим сеть следующего вида: создадим для каждого типа монет по одной вершине, эти вершины будут соответствовать вашим монетам. Нужно собрать как можно больше уникальных монет, поэтому проведем ребро пропускной способности &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; в сток из каждой такой вершины. В вершины, соответствующие монетам, которые у Вас есть изначально, проведем ребро, пропускная способность которого равна количеству таких монет у вас. Для каждого члена клуба (кроме вас) заведем по одной вершине. Эта вершина может принимать не более одной монеты, которой у него нет и отдавать не более &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; монеты, которых у него &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;(k &amp;gt; 1)&amp;lt;/tex&amp;gt;. Естественно, член клуба отдает одну монету взамен одной полученной. Таким образом, в каждую такую вершину нужно провести ребро пропускной способности &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; из вершин соответствующих монетам, которых нет у этого члена клуба. А из этих вершин нужно провести ребра пропускной способностью &amp;lt;tex&amp;gt;k_i - 1&amp;lt;/tex&amp;gt; в вершину &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;, соответствующую монетам, которых у члена клуба больше одной. Построенная сеть отражает процессы обмена в клубе. Максимальный поток в такой сети будет равен максимальному количеству монет, которые могуть быть собраны вами.&lt;br /&gt;
===Доказательство корректности===&lt;br /&gt;
Как уже было сказано, построенная сеть отражает процессы обмена в клубе, пример можно посмотреть на картинке выше. Заметим следующее: &lt;br /&gt;
* из вершины каждого типа монет может выйти поток, величина которого &amp;lt;tex&amp;gt;\leqslant 1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
* в вершины каждого типа монет может войти поток, величина которого не больше количества монет данного типа&lt;br /&gt;
* если коллекционеру нужна эта монета и мы решили дать её, то мы дадим максимум одну монету этого типа, т.к. пропускная способность красного ребра &amp;lt;tex&amp;gt;= 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* если в данную вершину пришёл поток данной величины, то мы должны отдать из этой вершины поток такой же величины. (Из определения потока)&lt;br /&gt;
Всё вышесказанное подтверждает то, что построенная сеть корректно отображает процессы обмена монетами между участниками.    &lt;br /&gt;
=== Оценка времени работы ===&lt;br /&gt;
&lt;br /&gt;
Величину максимального потока можно искать с помощью алгоритма Форда-Фалкерсона, его время работы &amp;lt;tex&amp;gt;O(E|f|)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;|f|&amp;lt;/tex&amp;gt; – величина найденного максимального потока. Заметим, что &amp;lt;tex&amp;gt;|f| \leqslant M&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; – количество типов монет. Также заметим, что &amp;lt;tex&amp;gt;E = M \times 2 + E^*&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E^*&amp;lt;/tex&amp;gt; – общее минимальное число монет, которые нужно получить все коллекционерам (кроме вас), чтобы вступить в клуб &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt; сумма типов монет, которых больше &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;, по всем коллекционерам. Из всего этого следует, что итоговое время работы будет &amp;lt;tex&amp;gt;O(ME)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См.также ==&lt;br /&gt;
* [[Схема алгоритма Диница]]&lt;br /&gt;
* [[Алгоритм Форда-Фалкерсона, реализация с помощью поиска в глубину]]&lt;br /&gt;
* [[Алгоритм масштабирования потока]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [https://icpc.baylor.edu/regionals/finder/west-siberian-subregional-2016 The 2016 West Siberian Subregional Contest]&lt;br /&gt;
* [https://www.dropbox.com/s/o24szu3mj341wig/WPS2009.pdf?dl=0 Зимняя школа по программированию, Харьков 2009 ]&lt;br /&gt;
* [http://codeforces.com/blog/entry/19068?locale=ru Codeforces лекции Зимней Школы по Программированию]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71323</id>
		<title>Список заданий по ДМ 2к 2019 весна</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71323"/>
				<updated>2019-05-29T08:00:22Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Формальный степенной ряд $\exp(s) = e^s$ определен как $e^s=1+\frac{1}{1!}s+\frac{1}{2!}s^2+\frac{1}{3!}s^3+\ldots+\frac{1}{n!}s^n+\ldots$. Логично, что $e^{-s}=1-\frac{1}{1!}s+\frac{1}{2!}s^2-\frac{1}{3!}s^3+\ldots+(-1)^n\frac{1}{n!}s^n+\ldots$. Докажите, используя определение умножения для степенных рядов, что $e^se^{-s}=1$.&lt;br /&gt;
# Формальный степенной ряд $(1+s)^\alpha$ определен как $(1+s)^\alpha=1+\frac{\alpha}{1}s+\frac{\alpha(\alpha-1)}{1 \cdot 2}s^2+\ldots+\frac{\alpha(\alpha-1)\ldots(\alpha-n+1)}{1 \cdot 2 \cdot\ldots\cdot n}s^n+\ldots$. Докажите, что $(1+s)^\alpha(1+s)^\beta=(1+s)^{\alpha+\beta}$.&lt;br /&gt;
# Формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)$ определен как $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$. Докажите, что $\exp\left(\ln\left(\frac{1}{1-s}\right)\right)=(1-s)^{-1}$.&lt;br /&gt;
# Пусть $B(s) = b_1s+b_2s^2+b_3s^3+\ldots+b_ns^n+\ldots$, причем $b_1\ne 0$. Пусть формальные степенные ряды $A(s)$ и $C(s)$ таковы, что $A(B(s)) = s$, $B(C(s))=s$. Докажите, что $A(s)=C(s)$ Этот ряд называется обратным к $B(s)$, обозначается как $B^{-1}(s)$.&lt;br /&gt;
# Будем называть нулем степенной ряд $0(s) = 0 + 0s + 0s^2 + \ldots$. Докажите, что $A(s) \ne 0(s)$, $B(s) \ne 0(s)$, то $A(s)B(s) \ne 0(s)$.&lt;br /&gt;
# Докажите, что $(A(s)B(s))' = A'(s)B(s) + A(s)B'(s)$.&lt;br /&gt;
# Докажите, что $\int(A'(s)B(s) + A(s)B'(s)) = A(s)B(s) - A(0)B(0)$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $0 \cdot 1, 1 \cdot 2, 2 \cdot 3, 3 \cdot 4, \ldots, (n - 1) \cdot n, \ldots$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $1^2, 2^2, 3^2, \ldots, n^2, \ldots$.&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0 + a_1, a_1 + a_2, \ldots, a_k+a_{k+1}$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_0 + a_1, a_0 + a_1 + a_2, \ldots, \sum\limits_{i=0}^ka_i,\ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_1b, a_2b^2, \ldots, a_kb^k, \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, 0, a_1, 0, a_2, 0, a_3 \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_2, a_4, a_6 \ldots$&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_1+\ldots+f_n=f_{n+2}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_2+\ldots+f_{2n}=f_{2n+1}$.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ доминошками и единичными клетками.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ уголками (квадратами $2\times 2$ с вырезанной одной клеткой) и единичными клетками. &lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_1+f_3+\ldots+f_{2n-1}=f_{2n}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0^2+f_1^2+f_2^2+\ldots+f_n^2=f_nf_{n+1}$.&lt;br /&gt;
# Найдите производящую функцию для чисел &amp;quot;трибоначчи&amp;quot; $f_0=f_1=f_2=1$, $f_n = f_{n-1}+f_{n-2}+f_{n-3}$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентностью $f_0=f_1=f_2=1$, $f_n = f_{n-1}-2f_{n-3}$.&lt;br /&gt;
# Производящая функция называется рациональной, если она представима в виде отношения двух многочленов. Для производящих функций каждой из следующих последовательностей выясните, является ли она рациональной, если да, приведите ее представление в таком виде. Последовательность $1, -2, 3, -4, 5, \ldots$.&lt;br /&gt;
# Последовательность $2, -6, 12, \ldots, (-1)^k(k+1)(k+2),\ldots$&lt;br /&gt;
# Последовательность $0, 1, 4, 9, 16, 25, \ldots, k^2,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 8, 27, 64, 125, \ldots, k^3,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 2^s, 3^s, 4^s, 5^s, \ldots, k^s,\ldots$ для константного целого $s&amp;gt;0$&lt;br /&gt;
# Последовательность $1, -4, 9, -16, \ldots, (-1)^k(k+1)^2,\ldots$&lt;br /&gt;
# Последовательность $1, 1, 4, 9, 25, \ldots, F_k^2,\ldots$&lt;br /&gt;
# Найдите производящую функцию для чисел Каталана.&lt;br /&gt;
# Путь Моцкина - путь, начинающийся в точке $(0, 0)$, составленный из векторов $(1, 1)$, $(1, 0)$, $(1, -1)$, не опускающийся ниже оси $OX$ и заканчивающийся в точке $(n, 0)$. Напишите рекуррентное соотношение для числа путей Моцкина, найдите производящую функцию для числа таких путей.&lt;br /&gt;
# Рассмотрим множество путей на прямой, начинающихся в 0, состоящих из шагов длины 1 вправо или влево. Будем называть такой путь блужданием. Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0 и не заходящих в отрицательную полупрямую. &lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$ и не заходящих в отрицательную полупрямую.&lt;br /&gt;
# &amp;lt;s&amp;gt; Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^2$. &amp;lt;/s&amp;gt;&lt;br /&gt;
# &amp;lt;s&amp;gt; Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^3$. &amp;lt;/s&amp;gt;&lt;br /&gt;
# &amp;lt;s&amp;gt; Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0=a_1= 2$, $a_n = a_{n-1}\cdot a_{n - 2}$. &amp;lt;/s&amp;gt;&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 5a_{n-1}-6a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 6a_{n-2}-a_{n-1}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 4a_{n-1}-4a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Петя заинтересовался, что будет, если последовательность, заданная линейным рекуррентным соотношением, имеет производящую фукнцию, в знаменателе которой стоит $Q(t)=(1-ct)(1+ct)$, ведь тогда асимптотическое поведение членов на четных и нечетных позициях разное. Разберитесь.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 2a_{n-1}-2a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Докажите, что если последовательность $a_n$ допускает представление в виде $a_n = \sum_i p_i(n)q_i^n$, где $p_i(n)$ - полиномы, и все $q_i$ различны, то такое представление единственно с точностью до порядка слагаемых.&lt;br /&gt;
# Используя результат из предыдушего задания, докажите, что формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$ не представим в виде отношения двух полиномов.&lt;br /&gt;
# Произведением Адамара двух производящих функций $A(t)$ и $B(t)$ называется призводящая функция для ряда $C(t) = a_0b_0+a_1b_1t+a_2b_2t^2+\ldots+a_nb_nt^n+\ldots$. Докажите, что если $A(t)$ и $B(t)$ являются отношениями двух полиномов, то таким же свойством обладает и $C(t)$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-x}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x}$ и $\frac{1}{1-3x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1+3x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов. Пусть $M = MSet(A)$, а $P = Set(A)$. Докажите, что $M(t) = P(t)M(t^2)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^k(A)$ множество последовательностей длины $k$, каждый элемент которого является последовательностью из $k$ объектов. Найдите производящую функцию для $Seq^k(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\le k}(A)$ множество последовательностей длины не большей $k$, каждый элемент которого является последовательностью из не более чем $k$ объектов. Найдите производящую функцию для $Seq^{\le k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\ge k}(A)$ множество последовательностей длины не меньшей $k$, каждый элемент которого является последовательностью из не менее чем $k$ объектов. Найдите производящую функцию для $Seq^{\ge k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Пусть $\mathbb{N}$ - множество натуральных чисел, (вес числа $k$ равен $k$). Пусть $T \subset \mathbb{N}$, обозначим как $T(t)$ производящую функцию для множества $T$. Обозначим как $Seq_T(A)$ множество последовательностей элементов из $A$, где длина последовательности лежит в множестве $T$. Обозначим как $Z$ множество из одного элемента веса $1$. Обозначим как $C^T$ множество представлений в виде суммы, где порядок слагаемых важен и слагаемые выбраны из множества $T$. Осознайте, что $C^T = Seq(Seq_T(Z))$. Найдите производяющую функцию для $C^T$.&lt;br /&gt;
# Обозначим как $P^T$ множество разбиений на слагаемые, где порядок слагаемых не важен, а слагаемые выбраны из множества $T$. Осознайте, что $P^T = MSet(Seq_T(Z))$. Найдите производяющую функцию для $P^T$.&lt;br /&gt;
# Индекс Хирша. Докажите, что $\prod\limits_{n=1}^\infty\frac{1}{1-z^n}=\sum\limits_{n\ge 0}\frac{z^{n^2}}{((1-z)\cdots(1-z^n))^2}$.&lt;br /&gt;
# Докажите, что $\frac{1}{1-z}=\prod\limits_{j=0}^\infty(1+z^{2^j})$.&lt;br /&gt;
# Экспоненциальная производящая функция для целочисленной последовательности называется функцией Гурвица. Докажите, что сумма, произведение, интеграл и производная функции Гурвица является функцией Гурвица.&lt;br /&gt;
# Докажите, что результат подстановки функции Гурвица в функцию Гурвица является функцией Гурвица&lt;br /&gt;
# Опишите класс помеченных объектов $seq(cyc(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Будем обозначать $seq_T$, $cyc_T$, $set_T$ соответственно последовательности, циклы и множества, размер которых принадлежит множеству $T$. Опишите класс помеченных объектов $set(cyc_{&amp;gt; 1}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Опишите класс помеченных объектов $set(cyc_{1, 2}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Сюрьекции на $r$-элементное множество. Осознайте, что $seq_{=r}(set_{\ge 1}(Z))$ задаёт сюрьекции на $r$-элементное множество. Найдите экспоненциальную производящую функцию.&lt;br /&gt;
# Разбиения на $r$ множеств. Осознайте, что $set_{=r}(set_{\ge 1}(Z))$ задаёт разбиения на $r$-элементное множество. Найдите экспоненциальную производящую функцию. Что стоит при $z^n$?&lt;br /&gt;
# Гиперболический синус $\mathrm{sh}\,z$ равен $\frac{1}{2}(e^{z}-e^{-z})$. Гиперболический косинус $\mathrm{ch}\,z$ равен $\frac{1}{2}(e^{z}+e^{-z})$. Рассмотрим разбиения $n$-элементного множества на непустые подмножества. Для произвольных подмножеств экспоненциальная производящая функция равна $e^{e^z-1}$. Докажите, что для разбиений на нечетное число подмножеств экспоненциальная производящая функция равна $\mathrm{sh}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на четное число подмножеств экспоненциальная производящая функция равна $\mathrm{ch}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит нечетное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{sh}\,z}$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит четное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{ch}\,z-1}$. Почему здесь в показателе степени есть $-1$, а в предыдущем задании нет?&lt;br /&gt;
# Обобщите четыре предыдущих задания. Как выглядят экспоненциальные производящие функции для разбиений на (не)четное число подмножеств, каждое из которых содержит (не)четное число элементов? (Необходимо дать четыре ответа для всех комбинаций)&lt;br /&gt;
# Найдите производящую функцию для слов над $m$-буквенным алфавитом (вес каждой буквы равен 1, слова равен его длине).&lt;br /&gt;
# Обозначим как $W$ множество слов над алфавитом $\{a, b\}$. Осознайте, что $W=Seq\{a\}\times Seq(\{b\}\times Seq\{a\})$. Проверьте равенство для производящих функций.&lt;br /&gt;
# Обозначим как $W^{(k)}$ множество слов над алфавитом $\{a, b\}$, не содержащих $k$ букв $a$ подряд. Запишите $W^{(k)}$ через $Seq_T$ и $\times$. Найдите производящую функцию для $W^{(k)}$.&lt;br /&gt;
# Обобщите задание 72 на произвольный алфавит.&lt;br /&gt;
# Обобщите задание 73 на произвольный алфавит.&lt;br /&gt;
# Неявное задание КО. Пусть $A$, $B$ и $X$ - семейства комбинаторных объектов, причем $B \cap X = \varnothing$, $A = B \cup X$. Пусть производящие функции для $A$ и $B$ - $A(t)$ и $B(t)$, соответственно. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 2. Пусть $A$, $B$ и $X$ - семейства комбинаторных объектов, причем $A = B \times X$. Пусть производящие функции для $A$ и $B$ - $A(t)$ и $B(t)$, соответственно. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 3. Пусть $A$ и $X$ - семейства комбинаторных объектов, причем $A = Seq(X)$. Пусть производящая функция для $A$ - $A(t)$. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 4. Пусть $A$ и $X$ - семейства комбинаторных объектов, причем $A = MSet(X)$. Пусть производящая функция для $A$ - $A(t)$. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Докажите, что объединение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что пересечение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что конкатенация перечислимых языков перeчислима.&lt;br /&gt;
# Докажите, что замыкание Клини перечислимого языка перeчислимо.&lt;br /&gt;
# Докажите, что декартово произведение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что проекция перечислимого языка пар на каждую из осей перечислима.&lt;br /&gt;
# Пусть $A \subset \Sigma^*$. Функция $f:A \to \Sigma^*$ называется вычислимой, если существует программа, которая по входу $x \in A$ выдает $f(x)$, а на входах не из $A$ зависает. Приведите пример невычислимой функции.&lt;br /&gt;
# Докажите, что функция вычислима тогда и только тогда, когда ее график перечислим.&lt;br /&gt;
# Докажите, что образ перечислимого множества под действием вычислимой функции перечислим.&lt;br /&gt;
# Докажите, что прообраз перечислимого множества под действием вычислимой функции перечислим.&lt;br /&gt;
# В этой и последующих задачах вместо разрешимых и перечислимых языков рассматриваются разрешимые и перечислимые множества натуральных чисел. Это на самом деле одно и то же, достаточно установить естественную биекцию между натуральными числами и словами в градуированном лексикографическом порядке. Теорема об униформизации. Пусть $F$ — перечислимое множество пар натуральных чисел. Докажите. что существует вычислимая функция $f$, определённая на тех и только тех $x$, для которых найдётся $y$, при котором $\langle x,y\rangle \in F$, причём значение $f(x)$ является одним из таких $y$&lt;br /&gt;
# Даны два перечислимых множества $X$ и $Y$. Докажите, что найдутся два непересекающихся перечислимых множества $X'$ и $Y'$, таких что $X' \subset X$, $Y' \subset Y$, $X' \cup Y' = X \cup Y$.&lt;br /&gt;
# Докажите, что если перечислимое множество перечислимо в возрастающем порядке, то оно является разрешимым.&lt;br /&gt;
# Докажите, что любое бесконечное перечислимое множество содержит бесконечное разрешимое подмножество.&lt;br /&gt;
# Покажите, что для всякой вычислимой функции $f$ существует вычислимая функция, являющаяся «псевдообратной» к $f$ в следующем смысле: область определения $g$ совпадает с областью значений $f$, и при этом $f(g(f(x))) = f(x)$ для всех $x$, при которых $f(x)$ определено.&lt;br /&gt;
# Вещественное число $\alpha$ называется вычислимым, если существует вычислимая функция $a$, которая по любому рациональному $\varepsilon &amp;gt; 0$ даёт рациональное приближение к $\alpha$ с ошибкой не более $\varepsilon$, то есть $|\alpha − a(\varepsilon)| \le \varepsilon$ для любого рационального $\varepsilon &amp;gt; 0$. Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда множество рациональных чисел, меньших $\alpha$, разрешимо.&lt;br /&gt;
# Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда последовательность знаков представляющей его десятичной (или двоичной) дроби вычислима.&lt;br /&gt;
# Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к $\alpha$ (последнее означает, что можно алгоритмически указать $N$ по $\varepsilon$ в стандартном $\varepsilon$-$N$-определении сходимости.)&lt;br /&gt;
# Покажите, что сумма, произведение, разность и частное вычислимых вещественных чисел вычислимы. Покажите, что корень многочлена с вычислимыми коэффициентами вычислим.&lt;br /&gt;
# Сформулируйте и докажите утверждение о том, что предел вычислимо сходящейся последовательности вычислимых вещественных чисел вычислим.&lt;br /&gt;
# Вещественное число $\alpha$ называют перечислимым снизу, если множество всех рациональных чисел, меньших $\alpha$, перечислимо. (Перечислимость сверху определяется аналогично.) Докажите, что число $\alpha$ перечислимо снизу тогда и только тогда, когда оно является пределом некоторой вычислимой возрастающей последовательности рациональных чисел.&lt;br /&gt;
# Докажите, что действительное число вычислимо тогда и только тогда, когда оно перечислимо снизу и сверху.&lt;br /&gt;
# Покажите, что следующие три свойства множества $X$ равносильны: (1) $X$ можно представить в виде $A \setminus B,$ где $A$ — перечислимое множество, а $B$ — его перечислимое подмножество; (2) $X$ можно представить в виде $A \setminus B$, где $A$ и $B$ — перечислимые множества; (3) $X$ можно представить в виде симметрической разности двух перечислимых множеств.&lt;br /&gt;
# Покажите, что множество $X$ можно представить в виде $A\setminus (B \setminus C)$, где $A \supset B \supset C$ — перечислимые множества, если и только если его можно представить в виде симметрической разности (суммы по модулю 2) трёх перечислимых множеств.&lt;br /&gt;
# Докажите, что множество $\langle p \rangle$ программ, останавливающихся на своём собсвтенном исходном коде, перечислимо, но не разрешимо.&lt;br /&gt;
# Некоторое множество $S$ натуральных чисел разрешимо. Разложим все числа из $S$ на простые множители и составим множество $D$ всех простых чисел, встречающихся в этих разложениях. Можно ли утверждать, что множество $D$ перечислимо?&lt;br /&gt;
# Некоторое множество $S$ натуральных чисел разрешимо. Разложим все числа из $S$ на простые множители и составим множество $D$ всех простых чисел, встречающихся в этих разложениях. Можно ли утверждать, что множество $D$ разрешимо?&lt;br /&gt;
# Множество $U \subset \mathbb{N} \times \mathbb{N}$ разрешимо. Можно ли утверждать, что множество «нижних точек» множества $U$, то есть множество $V = \{\langle x,y\rangle | (\langle x,y\rangle \in U)$ и $(\langle x,z\rangle \not\in U$ для всех $z &amp;lt; y)\}$ является разрешимым? &lt;br /&gt;
# В предыдущем задании можно ли утверждать, что $V$ перечислимо, если $U$ перечислимо?&lt;br /&gt;
# Покажите, что существуют перечислимые снизу, но не вычислимые числа. Указание: рассмотрим сумму ряда $\sum 2^{-k}$ по $k$ из какого-либо перечислимого множества $P$. Она всегда перечислима снизу, но будет вычислимой только при разрешимом $P$.)&lt;br /&gt;
# Покажите, что существует множество, которое можно представить в виде симметрической разности трёх перечислимых множеств, но нельзя представить в виде симметрической разности двух перечислимых множеств&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые останавливаются на пустом вводе, является неразрешимым. Является ли этот язык перечислимым?&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые не останавливаются на пустом вводе, является неразрешимым. Является ли этот язык перечислимым?&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые допускают бесконечное число слов, является неразрешимым.&lt;br /&gt;
# Докажите, что существуют две различные программы $p$ и $q$, такие что программа $p$ печатает текст программы $q$, а программа $q$ печатает текст программы $p$.&lt;br /&gt;
# Докажите, что существует бесконечная последовательность различных программ $p_i$, такая что $p_i$ печатает текст программы $p_{i+1}$.&lt;br /&gt;
# Докажите, что существует бесконечная последовательность различных программ $p_i$, такая что $p_1$ печатает пустую строку, а $p_i$ печатает текст программы $p_{i-1}$.&lt;br /&gt;
# Докажите, что для любого конечного $n$ существует последовательность программ $p_1, p_2, \ldots, p_n$, что $p_i$ печатает текст $p_{i+1}$, а $p_n$ печатает текст $p_1$.&lt;br /&gt;
# Рассмотрим два множества $A$ и $B$. Назовём их вычислимо изоморфными, если существует всюду определенная вычислимая биекция $\varphi : \mathbb{N} \to \mathbb{N}$, такая что $x \in A$ тогда и только тогда, когда $\varphi(x) \in B$. Приведите пример различных бесконечных вычислимо изоморфных множеств.&lt;br /&gt;
# Докажите или опровергните, что любые два бесконечных разрешимых множества, дополнения к которым также бесконечны, являются вычислимо изоморфными.&lt;br /&gt;
# Докажите или опровергните, что любые два бесконечных перечислимых множества, дополнения к которым также бесконечны, являются вычислимо изоморфными.&lt;br /&gt;
# Множество $A$ называется m-сводимым к $B$, если существует вычислимая всюду определенная функция $f$, для которой $x \in A$ тогда и только тогда, когда $f(x) \in B$. Пишут $A \le_m B$. Докажите, что если $A$ неразрешимо и $A \le_m B$, то $B$ неразрешимо.&lt;br /&gt;
# Докажите, что если $A$ неперечислимо и $A \le_m B$, то $B$ неперечислимо.&lt;br /&gt;
# Верно ли, что для любого непустого $A$ с непустым дополнением выполнено $A \le_m \mathbb{N} \setminus A$?&lt;br /&gt;
# Пусть $A$ перечислимо и $\mathbb{N} \setminus A \le_m A$. Что можно сказать про $A$?&lt;br /&gt;
# Пусть $A$ перечислимо и $A \le_m \mathbb{N} \setminus A$. Что можно сказать про $A$?&lt;br /&gt;
# Существует ли множество натуральных чисел $A$, к которому m-сводится любой множество натуральных чисел?&lt;br /&gt;
# Множество называется m-полным, если к нему m-сводится любое перечислимое множество. Докажите, что универсальное множество является $m$-полным.&lt;br /&gt;
# Докажите, что диагональ универсального множества (множество $\{u | (u, u) \in U\}$ является m-полным.&lt;br /&gt;
# Рассмотрим список слов $A = \{\alpha_1, \alpha_2, \ldots, \alpha_n\}$ над алфавитом $\Sigma$. Введем $n$ новых различных символов $d_1, d_2, \ldots, d_n$. Рассмотрим алфавит $\Sigma' = \Sigma \cup \{d_1, d_2, \ldots, d_n\}$. Рассмотрим КС-грамматику с одним нетерминалом $S$, алфавитом $\Sigma'$ и $n + 1$ правилом: $S \to \alpha_1 S d_1$,  $S \to \alpha_2 S d_2, \ldots, S \to \alpha_n S d_n$, $S \to \varepsilon$. Язык, порождаемый этой грамматикой, называется языком списка $A$ и обозначается как $L_A$. Опишите все слова языка $L_A$. &lt;br /&gt;
# Докажите, что проверка грамматики на однозначность является неразрешимой проблемой. Указание: сведите к ней или её дополнению проблему соответствий Поста, используя конструкцию языка списка из предыдущего задания.&lt;br /&gt;
# Докажите, что для любого списка $A$ дополнение до его языка списка $\overline{L_A}$ является КС-языком. Указание: постройте МП-автомат для $\overline{L_A}$.&lt;br /&gt;
# Докажите, что проблема проверки пустоты пересечения двух КС-грамматик неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки эквивалентности двух КС-грамматик неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки, что язык заданной КС-грамматики совпадает с языком заданного регулярного выражения, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что любое слово можно породить в заданной КС-грамматике, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык одной заданной КС-грамматики входит в язык другой заданной КС-грамматики, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык заданного регулярного выражения входит в язык заданной КС-грамматики, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык заданной КС-грамматики содержит палиндром, неразрешима.&lt;br /&gt;
# Пусть задано два списка $A$ и $B$. Докажите, что $\overline{L_A} \cup \overline{L_B}$ является регулярным тогда и только тогда, когда он совпадает с $\Sigma'^*$. Следовательно проблема проверки того, что КС-грамматика порождает регулярный язык, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что дополнение языка заданной КС-грамматики является КС-языком, неразрешима.&lt;br /&gt;
# Рассмотрим абстрактный вычислитель &amp;quot;автомат с очередью&amp;quot; - по аналогии с автоматом с магазинной памятью, но вместо стека очередь. На переходе автомат извлекает первый символ из головы очереди, смотрит очередной символ на ленте и текущее состояние, переходит в новое состояние и добавляет в конец очереди произвольную строку. Докажите, что автомат с очередью может распознать любой перечислимый язык (указание: просимулируйте на автомате с очередью автомат с двумя стеками).&lt;br /&gt;
# Докажите, что машина Тьюринга без возможности записи на ленту, эквивалентна по вычислительной мощности конечному автомату.&lt;br /&gt;
# Отберем у машины Тьюринга возможность перемещаться налево, но разрешим новую команду RESET, которая перемещает головку на первый символ входного слова. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Пусть машине Тьюринга разрешено производить запись в каждую ячейку ленты только два раза: если значение в этой ячейке менялось уже дважды, запрещается записывать туда другой символ. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Пусть машине Тьюринга разрешено производить запись в каждую ячейку ленты только один раз: если значение в этой ячейке уже менялось, запрещается записывать туда другой символ. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Множество $A$ назвается эффективно бесконечным, если существует всюду определенная вычислимая функция $f$, которая по числу $n$ выводит $n$ различных элементов множества $A$. Докажите, что если множество $A$ содержит бесконечное перечислимое подмножество, то оно эффективно бесконечно.&lt;br /&gt;
# Докажите, что если множество $A$ эффективно бесконечно, то оно содержит бесконечное перечислимое подмножество.&lt;br /&gt;
# Обозначим как $L(p)$ множество слов, которые допускается программой $p$. Множество $A$ назвается эффективно неперечислимым, если существует всюду определенная вычислимая функция $f$, которая по программе $p$ указывает слово $x$, такое что $x \in L(p) \oplus A$. Докажите, что дополнение к диагонали универсального множества $\overline D$, где $D = \left\{p | \langle p, p\rangle \in U\right\}$, является эффективно неперечислимым. &lt;br /&gt;
# Докажите, что дополнение к универсальному множеству $\overline U$ является эффективно неперечислимым.&lt;br /&gt;
# Докажите, что любое эффективно неперечислимое множество является эффективно бесконечным.&lt;br /&gt;
# Множество $A$ называется иммунным, если оно бесконечно, но не является эффективно бесконечным. Множество называется простым, если оно перечислимо, а его дополнение иммунно. Докажите, что существует простое множество. Указание: рассмотрите множество $T = \left\{\langle p, x\rangle | p(x) = 1, x &amp;gt; 2p\right\}$. &lt;br /&gt;
# Докажите, что множество является иммунным тогда и только тогда, когда оно не содержит бесконечных разрешимых подмножеств.&lt;br /&gt;
# Два перечислимых множества $A$ и $B$, где $A \cap B = \varnothing$ называются неотделимыми, если не сущестует разрешимых множеств $X$ и $Y$, таких что $A \subset X$, $B \subset Y$, $X \cup Y = \varnothing$. Покажите, что существуют неотделимые множества. Указание: рассмотрите множества пар $\langle p, x\rangle$, где $p$ - программа, возвращающая целое число, для некоторого условия.&lt;br /&gt;
# Обобщите определение неотделимых множеств на счетное семейство множеств. Докажите, что существует счетное семейство неотделимых множеств.&lt;br /&gt;
# Докажите, что существует вычислимая функция $f$, у которой не существует всюду определенного вычислимого продолжения.&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71322</id>
		<title>Список заданий по ДМ 2к 2019 весна</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71322"/>
				<updated>2019-05-29T07:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Формальный степенной ряд $\exp(s) = e^s$ определен как $e^s=1+\frac{1}{1!}s+\frac{1}{2!}s^2+\frac{1}{3!}s^3+\ldots+\frac{1}{n!}s^n+\ldots$. Логично, что $e^{-s}=1-\frac{1}{1!}s+\frac{1}{2!}s^2-\frac{1}{3!}s^3+\ldots+(-1)^n\frac{1}{n!}s^n+\ldots$. Докажите, используя определение умножения для степенных рядов, что $e^se^{-s}=1$.&lt;br /&gt;
# Формальный степенной ряд $(1+s)^\alpha$ определен как $(1+s)^\alpha=1+\frac{\alpha}{1}s+\frac{\alpha(\alpha-1)}{1 \cdot 2}s^2+\ldots+\frac{\alpha(\alpha-1)\ldots(\alpha-n+1)}{1 \cdot 2 \cdot\ldots\cdot n}s^n+\ldots$. Докажите, что $(1+s)^\alpha(1+s)^\beta=(1+s)^{\alpha+\beta}$.&lt;br /&gt;
# Формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)$ определен как $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$. Докажите, что $\exp\left(\ln\left(\frac{1}{1-s}\right)\right)=(1-s)^{-1}$.&lt;br /&gt;
# Пусть $B(s) = b_1s+b_2s^2+b_3s^3+\ldots+b_ns^n+\ldots$, причем $b_1\ne 0$. Пусть формальные степенные ряды $A(s)$ и $C(s)$ таковы, что $A(B(s)) = s$, $B(C(s))=s$. Докажите, что $A(s)=C(s)$ Этот ряд называется обратным к $B(s)$, обозначается как $B^{-1}(s)$.&lt;br /&gt;
# Будем называть нулем степенной ряд $0(s) = 0 + 0s + 0s^2 + \ldots$. Докажите, что $A(s) \ne 0(s)$, $B(s) \ne 0(s)$, то $A(s)B(s) \ne 0(s)$.&lt;br /&gt;
# Докажите, что $(A(s)B(s))' = A'(s)B(s) + A(s)B'(s)$.&lt;br /&gt;
# Докажите, что $\int(A'(s)B(s) + A(s)B'(s)) = A(s)B(s) - A(0)B(0)$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $0 \cdot 1, 1 \cdot 2, 2 \cdot 3, 3 \cdot 4, \ldots, (n - 1) \cdot n, \ldots$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $1^2, 2^2, 3^2, \ldots, n^2, \ldots$.&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0 + a_1, a_1 + a_2, \ldots, a_k+a_{k+1}$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_0 + a_1, a_0 + a_1 + a_2, \ldots, \sum\limits_{i=0}^ka_i,\ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_1b, a_2b^2, \ldots, a_kb^k, \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, 0, a_1, 0, a_2, 0, a_3 \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_2, a_4, a_6 \ldots$&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_1+\ldots+f_n=f_{n+2}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_2+\ldots+f_{2n}=f_{2n+1}$.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ доминошками и единичными клетками.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ уголками (квадратами $2\times 2$ с вырезанной одной клеткой) и единичными клетками. &lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_1+f_3+\ldots+f_{2n-1}=f_{2n}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0^2+f_1^2+f_2^2+\ldots+f_n^2=f_nf_{n+1}$.&lt;br /&gt;
# Найдите производящую функцию для чисел &amp;quot;трибоначчи&amp;quot; $f_0=f_1=f_2=1$, $f_n = f_{n-1}+f_{n-2}+f_{n-3}$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентностью $f_0=f_1=f_2=1$, $f_n = f_{n-1}-2f_{n-3}$.&lt;br /&gt;
# Производящая функция называется рациональной, если она представима в виде отношения двух многочленов. Для производящих функций каждой из следующих последовательностей выясните, является ли она рациональной, если да, приведите ее представление в таком виде. Последовательность $1, -2, 3, -4, 5, \ldots$.&lt;br /&gt;
# Последовательность $2, -6, 12, \ldots, (-1)^k(k+1)(k+2),\ldots$&lt;br /&gt;
# Последовательность $0, 1, 4, 9, 16, 25, \ldots, k^2,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 8, 27, 64, 125, \ldots, k^3,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 2^s, 3^s, 4^s, 5^s, \ldots, k^s,\ldots$ для константного целого $s&amp;gt;0$&lt;br /&gt;
# Последовательность $1, -4, 9, -16, \ldots, (-1)^k(k+1)^2,\ldots$&lt;br /&gt;
# Последовательность $1, 1, 4, 9, 25, \ldots, F_k^2,\ldots$&lt;br /&gt;
# Найдите производящую функцию для чисел Каталана.&lt;br /&gt;
# Путь Моцкина - путь, начинающийся в точке $(0, 0)$, составленный из векторов $(1, 1)$, $(1, 0)$, $(1, -1)$, не опускающийся ниже оси $OX$ и заканчивающийся в точке $(n, 0)$. Напишите рекуррентное соотношение для числа путей Моцкина, найдите производящую функцию для числа таких путей.&lt;br /&gt;
# Рассмотрим множество путей на прямой, начинающихся в 0, состоящих из шагов длины 1 вправо или влево. Будем называть такой путь блужданием. Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0 и не заходящих в отрицательную полупрямую. &lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$ и не заходящих в отрицательную полупрямую.&lt;br /&gt;
# &amp;lt;s&amp;gt; Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^2$. &amp;lt;/s&amp;gt;&lt;br /&gt;
# &amp;lt;s&amp;gt; Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^3$. &amp;lt;/s&amp;gt;&lt;br /&gt;
# &amp;lt;s&amp;gt; Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0=a_1= 2$, $a_n = a_{n-1}\cdot a_{n - 2}$. &amp;lt;/s&amp;gt;&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 5a_{n-1}-6a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 6a_{n-2}-a_{n-1}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 4a_{n-1}-4a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Петя заинтересовался, что будет, если последовательность, заданная линейным рекуррентным соотношением, имеет производящую фукнцию, в знаменателе которой стоит $Q(t)=(1-ct)(1+ct)$, ведь тогда асимптотическое поведение членов на четных и нечетных позициях разное. Разберитесь.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 2a_{n-1}-2a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Докажите, что если последовательность $a_n$ допускает представление в виде $a_n = \sum_i p_i(n)q_i^n$, где $p_i(n)$ - полиномы, и все $q_i$ различны, то такое представление единственно с точностью до порядка слагаемых.&lt;br /&gt;
# Используя результат из предыдушего задания, докажите, что формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$ не представим в виде отношения двух полиномов.&lt;br /&gt;
# Произведением Адамара двух производящих функций $A(t)$ и $B(t)$ называется призводящая функция для ряда $C(t) = a_0b_0+a_1b_1t+a_2b_2t^2+\ldots+a_nb_nt^n+\ldots$. Докажите, что если $A(t)$ и $B(t)$ являются отношениями двух полиномов, то таким же свойством обладает и $C(t)$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-x}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x}$ и $\frac{1}{1-3x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1+3x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов. Пусть $M = MSet(A)$, а $P = Set(A)$. Докажите, что $M(t) = P(t)M(t^2)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^k(A)$ множество последовательностей длины $k$, каждый элемент которого является последовательностью из $k$ объектов. Найдите производящую функцию для $Seq^k(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\le k}(A)$ множество последовательностей длины не большей $k$, каждый элемент которого является последовательностью из не более чем $k$ объектов. Найдите производящую функцию для $Seq^{\le k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\ge k}(A)$ множество последовательностей длины не меньшей $k$, каждый элемент которого является последовательностью из не менее чем $k$ объектов. Найдите производящую функцию для $Seq^{\ge k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Пусть $\mathbb{N}$ - множество натуральных чисел, (вес числа $k$ равен $k$). Пусть $T \subset \mathbb{N}$, обозначим как $T(t)$ производящую функцию для множества $T$. Обозначим как $Seq_T(A)$ множество последовательностей элементов из $A$, где длина последовательности лежит в множестве $T$. Обозначим как $Z$ множество из одного элемента веса $1$. Обозначим как $C^T$ множество представлений в виде суммы, где порядок слагаемых важен и слагаемые выбраны из множества $T$. Осознайте, что $C^T = Seq(Seq_T(Z))$. Найдите производяющую функцию для $C^T$.&lt;br /&gt;
# Обозначим как $P^T$ множество разбиений на слагаемые, где порядок слагаемых не важен, а слагаемые выбраны из множества $T$. Осознайте, что $P^T = MSet(Seq_T(Z))$. Найдите производяющую функцию для $P^T$.&lt;br /&gt;
# Индекс Хирша. Докажите, что $\prod\limits_{n=1}^\infty\frac{1}{1-z^n}=\sum\limits_{n\ge 0}\frac{z^{n^2}}{((1-z)\cdots(1-z^n))^2}$.&lt;br /&gt;
# Докажите, что $\frac{1}{1-z}=\prod\limits_{j=0}^\infty(1+z^{2^j})$.&lt;br /&gt;
# Экспоненциальная производящая функция для целочисленной последовательности называется функцией Гурвица. Докажите, что сумма, произведение, интеграл и производная функции Гурвица является функцией Гурвица.&lt;br /&gt;
# Докажите, что результат подстановки функции Гурвица в функцию Гурвица является функцией Гурвица&lt;br /&gt;
# Опишите класс помеченных объектов $seq(cyc(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Будем обозначать $seq_T$, $cyc_T$, $set_T$ соответственно последовательности, циклы и множества, размер которых принадлежит множеству $T$. Опишите класс помеченных объектов $set(cyc_{&amp;gt; 1}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Опишите класс помеченных объектов $set(cyc_{1, 2}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Сюрьекции на $r$-элементное множество. Осознайте, что $seq_{=r}(set_{\ge 1}(Z))$ задаёт сюрьекции на $r$-элементное множество. Найдите экспоненциальную производящую функцию.&lt;br /&gt;
# Разбиения на $r$ множеств. Осознайте, что $set_{=r}(set_{\ge 1}(Z))$ задаёт разбиения на $r$-элементное множество. Найдите экспоненциальную производящую функцию. Что стоит при $z^n$?&lt;br /&gt;
# Гиперболический синус $\mathrm{sh}\,z$ равен $\frac{1}{2}(e^{z}-e^{-z})$. Гиперболический косинус $\mathrm{ch}\,z$ равен $\frac{1}{2}(e^{z}+e^{-z})$. Рассмотрим разбиения $n$-элементного множества на непустые подмножества. Для произвольных подмножеств экспоненциальная производящая функция равна $e^{e^z-1}$. Докажите, что для разбиений на нечетное число подмножеств экспоненциальная производящая функция равна $\mathrm{sh}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на четное число подмножеств экспоненциальная производящая функция равна $\mathrm{ch}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит нечетное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{sh}\,z}$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит четное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{ch}\,z-1}$. Почему здесь в показателе степени есть $-1$, а в предыдущем задании нет?&lt;br /&gt;
# Обобщите четыре предыдущих задания. Как выглядят экспоненциальные производящие функции для разбиений на (не)четное число подмножеств, каждое из которых содержит (не)четное число элементов? (Необходимо дать четыре ответа для всех комбинаций)&lt;br /&gt;
# Найдите производящую функцию для слов над $m$-буквенным алфавитом (вес каждой буквы равен 1, слова равен его длине).&lt;br /&gt;
# Обозначим как $W$ множество слов над алфавитом $\{a, b\}$. Осознайте, что $W=Seq\{a\}\times Seq(\{b\}\times Seq\{a\})$. Проверьте равенство для производящих функций.&lt;br /&gt;
# Обозначим как $W^{(k)}$ множество слов над алфавитом $\{a, b\}$, не содержащих $k$ букв $a$ подряд. Запишите $W^{(k)}$ через $Seq_T$ и $\times$. Найдите производящую функцию для $W^{(k)}$.&lt;br /&gt;
# Обобщите задание 72 на произвольный алфавит.&lt;br /&gt;
# Обобщите задание 73 на произвольный алфавит.&lt;br /&gt;
# Неявное задание КО. Пусть $A$, $B$ и $X$ - семейства комбинаторных объектов, причем $B \cap X = \varnothing$, $A = B \cup X$. Пусть производящие функции для $A$ и $B$ - $A(t)$ и $B(t)$, соответственно. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 2. Пусть $A$, $B$ и $X$ - семейства комбинаторных объектов, причем $A = B \times X$. Пусть производящие функции для $A$ и $B$ - $A(t)$ и $B(t)$, соответственно. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 3. Пусть $A$ и $X$ - семейства комбинаторных объектов, причем $A = Seq(X)$. Пусть производящая функция для $A$ - $A(t)$. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 4. Пусть $A$ и $X$ - семейства комбинаторных объектов, причем $A = MSet(X)$. Пусть производящая функция для $A$ - $A(t)$. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Докажите, что объединение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что пересечение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что конкатенация перечислимых языков перeчислима.&lt;br /&gt;
# Докажите, что замыкание Клини перечислимого языка перeчислимо.&lt;br /&gt;
# Докажите, что декартово произведение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что проекция перечислимого языка пар на каждую из осей перечислима.&lt;br /&gt;
# Пусть $A \subset \Sigma^*$. Функция $f:A \to \Sigma^*$ называется вычислимой, если существует программа, которая по входу $x \in A$ выдает $f(x)$, а на входах не из $A$ зависает. Приведите пример невычислимой функции.&lt;br /&gt;
# Докажите, что функция вычислима тогда и только тогда, когда ее график перечислим.&lt;br /&gt;
# Докажите, что образ перечислимого множества под действием вычислимой функции перечислим.&lt;br /&gt;
# Докажите, что прообраз перечислимого множества под действием вычислимой функции перечислим.&lt;br /&gt;
# В этой и последующих задачах вместо разрешимых и перечислимых языков рассматриваются разрешимые и перечислимые множества натуральных чисел. Это на самом деле одно и то же, достаточно установить естественную биекцию между натуральными числами и словами в градуированном лексикографическом порядке. Теорема об униформизации. Пусть $F$ — перечислимое множество пар натуральных чисел. Докажите. что существует вычислимая функция $f$, определённая на тех и только тех $x$, для которых найдётся $y$, при котором $\langle x,y\rangle \in F$, причём значение $f(x)$ является одним из таких $y$&lt;br /&gt;
# Даны два перечислимых множества $X$ и $Y$. Докажите, что найдутся два непересекающихся перечислимых множества $X'$ и $Y'$, таких что $X' \subset X$, $Y' \subset Y$, $X' \cup Y' = X \cup Y$.&lt;br /&gt;
# Докажите, что если перечислимое множество перечислимо в возрастающем порядке, то оно является разрешимым.&lt;br /&gt;
# Докажите, что любое бесконечное перечислимое множество содержит бесконечное разрешимое подмножество.&lt;br /&gt;
# Покажите, что для всякой вычислимой функции $f$ существует вычислимая функция, являющаяся «псевдообратной» к $f$ в следующем смысле: область определения $g$ совпадает с областью значений $f$, и при этом $f(g(f(x))) = f(x)$ для всех $x$, при которых $f(x)$ определено.&lt;br /&gt;
# Вещественное число $\alpha$ называется вычислимым, если существует вычислимая функция $a$, которая по любому рациональному $\varepsilon &amp;gt; 0$ даёт рациональное приближение к $\alpha$ с ошибкой не более $\varepsilon$, то есть $|\alpha − a(\varepsilon)| \le \varepsilon$ для любого рационального $\varepsilon &amp;gt; 0$. Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда множество рациональных чисел, меньших $\alpha$, разрешимо.&lt;br /&gt;
# Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда последовательность знаков представляющей его десятичной (или двоичной) дроби вычислима.&lt;br /&gt;
# Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к $\alpha$ (последнее означает, что можно алгоритмически указать $N$ по $\varepsilon$ в стандартном $\varepsilon$-$N$-определении сходимости.)&lt;br /&gt;
# Покажите, что сумма, произведение, разность и частное вычислимых вещественных чисел вычислимы. Покажите, что корень многочлена с вычислимыми коэффициентами вычислим.&lt;br /&gt;
# Сформулируйте и докажите утверждение о том, что предел вычислимо сходящейся последовательности вычислимых вещественных чисел вычислим.&lt;br /&gt;
# Вещественное число $\alpha$ называют перечислимым снизу, если множество всех рациональных чисел, меньших $\alpha$, перечислимо. (Перечислимость сверху определяется аналогично.) Докажите, что число $\alpha$ перечислимо снизу тогда и только тогда, когда оно является пределом некоторой вычислимой возрастающей последовательности рациональных чисел.&lt;br /&gt;
# Докажите, что действительное число вычислимо тогда и только тогда, когда оно перечислимо снизу и сверху.&lt;br /&gt;
# Покажите, что следующие три свойства множества $X$ равносильны: (1) $X$ можно представить в виде $A \setminus B,$ где $A$ — перечислимое множество, а $B$ — его перечислимое подмножество; (2) $X$ можно представить в виде $A \setminus B$, где $A$ и $B$ — перечислимые множества; (3) $X$ можно представить в виде симметрической разности двух перечислимых множеств.&lt;br /&gt;
# Покажите, что множество $X$ можно представить в виде $A\setminus (B \setminus C)$, где $A \supset B \supset C$ — перечислимые множества, если и только если его можно представить в виде симметрической разности (суммы по модулю 2) трёх перечислимых множеств.&lt;br /&gt;
# Докажите, что множество $\langle p \rangle$ программ, останавливающихся на своём собсвтенном исходном коде, перечислимо, но не разрешимо.&lt;br /&gt;
# Некоторое множество $S$ натуральных чисел разрешимо. Разложим все числа из $S$ на простые множители и составим множество $D$ всех простых чисел, встречающихся в этих разложениях. Можно ли утверждать, что множество $D$ перечислимо?&lt;br /&gt;
# Некоторое множество $S$ натуральных чисел разрешимо. Разложим все числа из $S$ на простые множители и составим множество $D$ всех простых чисел, встречающихся в этих разложениях. Можно ли утверждать, что множество $D$ разрешимо?&lt;br /&gt;
# Множество $U \subset \mathbb{N} \times \mathbb{N}$ разрешимо. Можно ли утверждать, что множество «нижних точек» множества $U$, то есть множество $V = \{\langle x,y\rangle | (\langle x,y\rangle \in U)$ и $(\langle x,z\rangle \not\in U$ для всех $z &amp;lt; y)\}$ является разрешимым? &lt;br /&gt;
# В предыдущем задании можно ли утверждать, что $V$ перечислимо, если $U$ перечислимо?&lt;br /&gt;
# Покажите, что существуют перечислимые снизу, но не вычислимые числа. Указание: рассмотрим сумму ряда $\sum 2^{-k}$ по $k$ из какого-либо перечислимого множества $P$. Она всегда перечислима снизу, но будет вычислимой только при разрешимом $P$.)&lt;br /&gt;
# Покажите, что существует множество, которое можно представить в виде симметрической разности трёх перечислимых множеств, но нельзя представить в виде симметрической разности двух перечислимых множеств&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые останавливаются на пустом вводе, является неразрешимым. Является ли этот язык перечислимым?&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые не останавливаются на пустом вводе, является неразрешимым. Является ли этот язык перечислимым?&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые допускают бесконечное число слов, является неразрешимым.&lt;br /&gt;
# Докажите, что существуют две различные программы $p$ и $q$, такие что программа $p$ печатает текст программы $q$, а программа $q$ печатает текст программы $p$.&lt;br /&gt;
# Докажите, что существует бесконечная последовательность различных программ $p_i$, такая что $p_i$ печатает текст программы $p_{i+1}$.&lt;br /&gt;
# Докажите, что существует бесконечная последовательность различных программ $p_i$, такая что $p_1$ печатает пустую строку, а $p_i$ печатает текст программы $p_{i-1}$.&lt;br /&gt;
# Докажите, что для любого конечного $n$ существует последовательность программ $p_1, p_2, \ldots, p_n$, что $p_i$ печатает текст $p_{i+1}$, а $p_n$ печатает текст $p_1$.&lt;br /&gt;
# Рассмотрим два множества $A$ и $B$. Назовём их вычислимо изоморфными, если существует всюду определенная вычислимая биекция $\varphi : \mathbb{N} \to \mathbb{N}$, такая что $x \in A$ тогда и только тогда, когда $\varphi(x) \in B$. Приведите пример различных бесконечных вычислимо изоморфных множеств.&lt;br /&gt;
# Докажите или опровергните, что любые два бесконечных разрешимых множества, дополнения к которым также бесконечны, являются вычислимо изоморфными.&lt;br /&gt;
# Докажите или опровергните, что любые два бесконечных перечислимых множества, дополнения к которым также бесконечны, являются вычислимо изоморфными.&lt;br /&gt;
# Множество $A$ называется m-сводимым к $B$, если существует вычислимая всюду определенная функция $f$, для которой $x \in A$ тогда и только тогда, когда $f(x) \in B$. Пишут $A \le_m B$. Докажите, что если $A$ неразрешимо и $A \le_m B$, то $B$ неразрешимо.&lt;br /&gt;
# Докажите, что если $A$ неперечислимо и $A \le_m B$, то $B$ неперечислимо.&lt;br /&gt;
# Верно ли, что для любого непустого $A$ с непустым дополнением выполнено $A \le_m \mathbb{N} \setminus A$?&lt;br /&gt;
# Пусть $A$ перечислимо и $\mathbb{N} \setminus A \le_m A$. Что можно сказать про $A$?&lt;br /&gt;
# Пусть $A$ перечислимо и $A \le_m \mathbb{N} \setminus A$. Что можно сказать про $A$?&lt;br /&gt;
# Существует ли множество натуральных чисел $A$, к которому m-сводится любой множество натуральных чисел?&lt;br /&gt;
# Множество называется m-полным, если к нему m-сводится любое перечислимое множество. Докажите, что универсальное множество является $m$-полным.&lt;br /&gt;
# Докажите, что диагональ универсального множества (множество $\{u | (u, u) \in U\}$ является m-полным.&lt;br /&gt;
# Рассмотрим список слов $A = \{\alpha_1, \alpha_2, \ldots, \alpha_n\}$ над алфавитом $\Sigma$. Введем $n$ новых различных символов $d_1, d_2, \ldots, d_n$. Рассмотрим алфавит $\Sigma' = \Sigma \cup \{d_1, d_2, \ldots, d_n\}$. Рассмотрим КС-грамматику с одним нетерминалом $S$, алфавитом $\Sigma'$ и $n + 1$ правилом: $S \to \alpha_1 S d_1$,  $S \to \alpha_2 S d_2, \ldots, S \to \alpha_n S d_n$, $S \to \varepsilon$. Язык, порождаемый этой грамматикой, называется языком списка $A$ и обозначается как $L_A$. Опишите все слова языка $L_A$. &lt;br /&gt;
# Докажите, что проверка грамматики на однозначность является неразрешимой проблемой. Указание: сведите к ней или её дополнению проблему соответствий Поста, используя конструкцию языка списка из предыдущего задания.&lt;br /&gt;
# Докажите, что для любого списка $A$ дополнение до его языка списка $\overline{L_A}$ является КС-языком. Указание: постройте МП-автомат для $\overline{L_A}$.&lt;br /&gt;
# Докажите, что проблема проверки пустоты пересечения двух КС-грамматик неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки эквивалентности двух КС-грамматик неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки, что язык заданной КС-грамматики совпадает с языком заданного регулярного выражения, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что любое слово можно породить в заданной КС-грамматике, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык одной заданной КС-грамматики входит в язык другой заданной КС-грамматики, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык заданного регулярного выражения входит в язык заданной КС-грамматики, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык заданной КС-грамматики содержит палиндром, неразрешима.&lt;br /&gt;
# Пусть задано два списка $A$ и $B$. Докажите, что $\overline{L_A} \cup \overline{L_B}$ является регулярным тогда и только тогда, когда он совпадает с $\Sigma'^*$. Следовательно проблема проверки того, что КС-грамматика порождает регулярный язык, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что дополнение языка заданной КС-грамматики является КС-языком, неразрешима.&lt;br /&gt;
# Рассмотрим абстрактный вычислитель &amp;quot;автомат с очередью&amp;quot; - по аналогии с автоматом с магазинной памятью, но вместо стека очередь. На переходе автомат извлекает первый символ из головы очереди, смотрит очередной символ на ленте и текущее состояние, переходит в новое состояние и добавляет в конец очереди произвольную строку. Докажите, что автомат с очередью может распознать любой перечислимый язык (указание: просимулируйте на автомате с очередью автомат с двумя стеками).&lt;br /&gt;
# Докажите, что машина Тьюринга без возможности записи на ленту, эквивалентна по вычислительной мощности конечному автомату.&lt;br /&gt;
# Отберем у машины Тьюринга возможность перемещаться налево, но разрешим новую команду RESET, которая перемещает головку на первый символ входного слова. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Пусть машине Тьюринга разрешено производить запись в каждую ячейку ленты только два раза: если значение в этой ячейке менялось уже дважды, запрещается записывать туда другой символ. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Пусть машине Тьюринга разрешено производить запись в каждую ячейку ленты только один раз: если значение в этой ячейке уже менялось, запрещается записывать туда другой символ. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Множество $A$ назвается эффективно бесконечным, если существует всюду определенная вычислимая функция $f$, которая по числу $n$ выводит $n$ различных элементов множества $A$. Докажите, что если множество $A$ содержит бесконечное перечислимое подмножество, то оно эффективно бесконечно.&lt;br /&gt;
# Докажите, что если множество $A$ эффективно бесконечно, то оно содержит бесконечное перечислимое подмножество.&lt;br /&gt;
# Обозначим как $L(p)$ множество слов, которые допускается программой $p$. Множество $A$ назвается эффективно неперечислимым, если существует всюду определенная вычислимая функция $f$, которая по программе $p$ указывает слово $x$, такое что $x \in L(p) \oplus A$. Докажите, что дополнение к диагонали универсального множества $\overline D$, где $D = \left\{p | \langle p, p\rangle \in U\right\}$, является эффективно неперечислимым. &lt;br /&gt;
# Докажите, что дополнение к универсальному множеству $\overline U$ является эффективно неперечислимым.&lt;br /&gt;
# Докажите, что любое эффективно неперечислимое множество является эффективно бесконечным.&lt;br /&gt;
# Множество $A$ называется иммунным, если оно бесконечно, но не является эффективно бесконечным. Множество называется простым, если оно перечислимо, а его дополнение иммунно. Докажите, что существует простое множество. Указание: рассмотрите множество $T = \left\{\langle p, x\rangle | p(x) = 1, x &amp;gt; 2p\right\}$. &lt;br /&gt;
# Докажите, что множество является иммунным тогда и только тогда, когда оно не содержит бесконечных разрешимых подмножеств.&lt;br /&gt;
# Два перечислимых множества $A$ и $B$, где $A \cup B = \varnothing$ называются неотделимыми, если не сущестует разрешимых множеств $X$ и $Y$, таких что $A \subset X$, $B \subset Y$, $X \cup Y = \varnothing$. Покажите, что существуют неотделимые множества. Указание: рассмотрите множества пар $\langle p, x\rangle$, где $p$ - программа, возвращающая целое число, для некоторого условия.&lt;br /&gt;
# Обобщите определение неотделимых множеств на счетное семейство множеств. Докажите, что существует счетное семейство неотделимых множеств.&lt;br /&gt;
# Докажите, что существует вычислимая функция $f$, у которой не существует всюду определенного вычислимого продолжения.&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71319</id>
		<title>Список заданий по ДМ 2к 2019 весна</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71319"/>
				<updated>2019-05-28T10:38:19Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Формальный степенной ряд $\exp(s) = e^s$ определен как $e^s=1+\frac{1}{1!}s+\frac{1}{2!}s^2+\frac{1}{3!}s^3+\ldots+\frac{1}{n!}s^n+\ldots$. Логично, что $e^{-s}=1-\frac{1}{1!}s+\frac{1}{2!}s^2-\frac{1}{3!}s^3+\ldots+(-1)^n\frac{1}{n!}s^n+\ldots$. Докажите, используя определение умножения для степенных рядов, что $e^se^{-s}=1$.&lt;br /&gt;
# Формальный степенной ряд $(1+s)^\alpha$ определен как $(1+s)^\alpha=1+\frac{\alpha}{1}s+\frac{\alpha(\alpha-1)}{1 \cdot 2}s^2+\ldots+\frac{\alpha(\alpha-1)\ldots(\alpha-n+1)}{1 \cdot 2 \cdot\ldots\cdot n}s^n+\ldots$. Докажите, что $(1+s)^\alpha(1+s)^\beta=(1+s)^{\alpha+\beta}$.&lt;br /&gt;
# Формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)$ определен как $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$. Докажите, что $\exp\left(\ln\left(\frac{1}{1-s}\right)\right)=(1-s)^{-1}$.&lt;br /&gt;
# Пусть $B(s) = b_1s+b_2s^2+b_3s^3+\ldots+b_ns^n+\ldots$, причем $b_1\ne 0$. Пусть формальные степенные ряды $A(s)$ и $C(s)$ таковы, что $A(B(s)) = s$, $B(C(s))=s$. Докажите, что $A(s)=C(s)$ Этот ряд называется обратным к $B(s)$, обозначается как $B^{-1}(s)$.&lt;br /&gt;
# Будем называть нулем степенной ряд $0(s) = 0 + 0s + 0s^2 + \ldots$. Докажите, что $A(s) \ne 0(s)$, $B(s) \ne 0(s)$, то $A(s)B(s) \ne 0(s)$.&lt;br /&gt;
# Докажите, что $(A(s)B(s))' = A'(s)B(s) + A(s)B'(s)$.&lt;br /&gt;
# Докажите, что $\int(A'(s)B(s) + A(s)B'(s)) = A(s)B(s) - A(0)B(0)$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $0 \cdot 1, 1 \cdot 2, 2 \cdot 3, 3 \cdot 4, \ldots, (n - 1) \cdot n, \ldots$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $1^2, 2^2, 3^2, \ldots, n^2, \ldots$.&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0 + a_1, a_1 + a_2, \ldots, a_k+a_{k+1}$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_0 + a_1, a_0 + a_1 + a_2, \ldots, \sum\limits_{i=0}^ka_i,\ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_1b, a_2b^2, \ldots, a_kb^k, \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, 0, a_1, 0, a_2, 0, a_3 \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_2, a_4, a_6 \ldots$&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_1+\ldots+f_n=f_{n+2}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_2+\ldots+f_{2n}=f_{2n+1}$.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ доминошками и единичными клетками.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ уголками (квадратами $2\times 2$ с вырезанной одной клеткой) и единичными клетками. &lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_1+f_3+\ldots+f_{2n-1}=f_{2n}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0^2+f_1^2+f_2^2+\ldots+f_n^2=f_nf_{n+1}$.&lt;br /&gt;
# Найдите производящую функцию для чисел &amp;quot;трибоначчи&amp;quot; $f_0=f_1=f_2=1$, $f_n = f_{n-1}+f_{n-2}+f_{n-3}$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентностью $f_0=f_1=f_2=1$, $f_n = f_{n-1}-2f_{n-3}$.&lt;br /&gt;
# Производящая функция называется рациональной, если она представима в виде отношения двух многочленов. Для производящих функций каждой из следующих последовательностей выясните, является ли она рациональной, если да, приведите ее представление в таком виде. Последовательность $1, -2, 3, -4, 5, \ldots$.&lt;br /&gt;
# Последовательность $2, -6, 12, \ldots, (-1)^k(k+1)(k+2),\ldots$&lt;br /&gt;
# Последовательность $0, 1, 4, 9, 16, 25, \ldots, k^2,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 8, 27, 64, 125, \ldots, k^3,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 2^s, 3^s, 4^s, 5^s, \ldots, k^s,\ldots$ для константного целого $s&amp;gt;0$&lt;br /&gt;
# Последовательность $1, -4, 9, -16, \ldots, (-1)^k(k+1)^2,\ldots$&lt;br /&gt;
# Последовательность $1, 1, 4, 9, 25, \ldots, F_k^2,\ldots$&lt;br /&gt;
# Найдите производящую функцию для чисел Каталана.&lt;br /&gt;
# Путь Моцкина - путь, начинающийся в точке $(0, 0)$, составленный из векторов $(1, 1)$, $(1, 0)$, $(1, -1)$, не опускающийся ниже оси $OX$ и заканчивающийся в точке $(n, 0)$. Напишите рекуррентное соотношение для числа путей Моцкина, найдите производящую функцию для числа таких путей.&lt;br /&gt;
# Рассмотрим множество путей на прямой, начинающихся в 0, состоящих из шагов длины 1 вправо или влево. Будем называть такой путь блужданием. Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0 и не заходящих в отрицательную полупрямую. &lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$ и не заходящих в отрицательную полупрямую.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^2$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^3$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0=a_1= 2$, $a_n = a_{n-1}\cdot a_{n - 2}$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 5a_{n-1}-6a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 6a_{n-2}-a_{n-1}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 4a_{n-1}-4a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Петя заинтересовался, что будет, если последовательность, заданная линейным рекуррентным соотношением, имеет производящую фукнцию, в знаменателе которой стоит $Q(t)=(1-ct)(1+ct)$, ведь тогда асимптотическое поведение членов на четных и нечетных позициях разное. Разберитесь.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 2a_{n-1}-2a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Докажите, что если последовательность $a_n$ допускает представление в виде $a_n = \sum_i p_i(n)q_i^n$, где $p_i(n)$ - полиномы, и все $q_i$ различны, то такое представление единственно с точностью до порядка слагаемых.&lt;br /&gt;
# Используя результат из предыдушего задания, докажите, что формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$ не представим в виде отношения двух полиномов.&lt;br /&gt;
# Произведением Адамара двух производящих функций $A(t)$ и $B(t)$ называется призводящая функция для ряда $C(t) = a_0b_0+a_1b_1t+a_2b_2t^2+\ldots+a_nb_nt^n+\ldots$. Докажите, что если $A(t)$ и $B(t)$ являются отношениями двух полиномов, то таким же свойством обладает и $C(t)$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-x}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x}$ и $\frac{1}{1-3x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1+3x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов. Пусть $M = MSet(A)$, а $P = Set(A)$. Докажите, что $M(t) = P(t)M(t^2)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^k(A)$ множество последовательностей длины $k$, каждый элемент которого является последовательностью из $k$ объектов. Найдите производящую функцию для $Seq^k(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\le k}(A)$ множество последовательностей длины не большей $k$, каждый элемент которого является последовательностью из не более чем $k$ объектов. Найдите производящую функцию для $Seq^{\le k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\ge k}(A)$ множество последовательностей длины не меньшей $k$, каждый элемент которого является последовательностью из не менее чем $k$ объектов. Найдите производящую функцию для $Seq^{\ge k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Пусть $\mathbb{N}$ - множество натуральных чисел, (вес числа $k$ равен $k$). Пусть $T \subset \mathbb{N}$, обозначим как $T(t)$ производящую функцию для множества $T$. Обозначим как $Seq_T(A)$ множество последовательностей элементов из $A$, где длина последовательности лежит в множестве $T$. Обозначим как $Z$ множество из одного элемента веса $1$. Обозначим как $C^T$ множество представлений в виде суммы, где порядок слагаемых важен и слагаемые выбраны из множества $T$. Осознайте, что $C^T = Seq(Seq_T(Z))$. Найдите производяющую функцию для $C^T$.&lt;br /&gt;
# Обозначим как $P^T$ множество разбиений на слагаемые, где порядок слагаемых не важен, а слагаемые выбраны из множества $T$. Осознайте, что $P^T = MSet(Seq_T(Z))$. Найдите производяющую функцию для $P^T$.&lt;br /&gt;
# Индекс Хирша. Докажите, что $\prod\limits_{n=1}^\infty\frac{1}{1-z^n}=\sum\limits_{n\ge 0}\frac{z^{n^2}}{((1-z)\cdots(1-z^n))^2}$.&lt;br /&gt;
# Докажите, что $\frac{1}{1-z}=\prod\limits_{j=0}^\infty(1+z^{2^j})$.&lt;br /&gt;
# Экспоненциальная производящая функция для целочисленной последовательности называется функцией Гурвица. Докажите, что сумма, произведение, интеграл и производная функции Гурвица является функцией Гурвица.&lt;br /&gt;
# Докажите, что результат подстановки функции Гурвица в функцию Гурвица является функцией Гурвица&lt;br /&gt;
# Опишите класс помеченных объектов $seq(cyc(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Будем обозначать $seq_T$, $cyc_T$, $set_T$ соответственно последовательности, циклы и множества, размер которых принадлежит множеству $T$. Опишите класс помеченных объектов $set(cyc_{&amp;gt; 1}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Опишите класс помеченных объектов $set(cyc_{1, 2}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Сюрьекции на $r$-элементное множество. Осознайте, что $seq_{=r}(set_{\ge 1}(Z))$ задаёт сюрьекции на $r$-элементное множество. Найдите экспоненциальную производящую функцию.&lt;br /&gt;
# Разбиения на $r$ множеств. Осознайте, что $set_{=r}(set_{\ge 1}(Z))$ задаёт разбиения на $r$-элементное множество. Найдите экспоненциальную производящую функцию. Что стоит при $z^n$?&lt;br /&gt;
# Гиперболический синус $\mathrm{sh}\,z$ равен $\frac{1}{2}(e^{z}-e^{-z})$. Гиперболический косинус $\mathrm{ch}\,z$ равен $\frac{1}{2}(e^{z}+e^{-z})$. Рассмотрим разбиения $n$-элементного множества на непустые подмножества. Для произвольных подмножеств экспоненциальная производящая функция равна $e^{e^z-1}$. Докажите, что для разбиений на нечетное число подмножеств экспоненциальная производящая функция равна $\mathrm{sh}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на четное число подмножеств экспоненциальная производящая функция равна $\mathrm{ch}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит нечетное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{sh}\,z}$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит четное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{ch}\,z-1}$. Почему здесь в показателе степени есть $-1$, а в предыдущем задании нет?&lt;br /&gt;
# Обобщите четыре предыдущих задания. Как выглядят экспоненциальные производящие функции для разбиений на (не)четное число подмножеств, каждое из которых содержит (не)четное число элементов? (Необходимо дать четыре ответа для всех комбинаций)&lt;br /&gt;
# Найдите производящую функцию для слов над $m$-буквенным алфавитом (вес каждой буквы равен 1, слова равен его длине).&lt;br /&gt;
# Обозначим как $W$ множество слов над алфавитом $\{a, b\}$. Осознайте, что $W=Seq\{a\}\times Seq(\{b\}\times Seq\{a\})$. Проверьте равенство для производящих функций.&lt;br /&gt;
# Обозначим как $W^{(k)}$ множество слов над алфавитом $\{a, b\}$, не содержащих $k$ букв $a$ подряд. Запишите $W^{(k)}$ через $Seq_T$ и $\times$. Найдите производящую функцию для $W^{(k)}$.&lt;br /&gt;
# Обобщите задание 72 на произвольный алфавит.&lt;br /&gt;
# Обобщите задание 73 на произвольный алфавит.&lt;br /&gt;
# Неявное задание КО. Пусть $A$, $B$ и $X$ - семейства комбинаторных объектов, причем $B \cap X = \varnothing$, $A = B \cup X$. Пусть производящие функции для $A$ и $B$ - $A(t)$ и $B(t)$, соответственно. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 2. Пусть $A$, $B$ и $X$ - семейства комбинаторных объектов, причем $A = B \times X$. Пусть производящие функции для $A$ и $B$ - $A(t)$ и $B(t)$, соответственно. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 3. Пусть $A$ и $X$ - семейства комбинаторных объектов, причем $A = Seq(X)$. Пусть производящая функция для $A$ - $A(t)$. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Неявное задание КО 4. Пусть $A$ и $X$ - семейства комбинаторных объектов, причем $A = MSet(X)$. Пусть производящая функция для $A$ - $A(t)$. Найдите производящую функцию $X(t)$.&lt;br /&gt;
# Докажите, что объединение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что пересечение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что конкатенация перечислимых языков перeчислима.&lt;br /&gt;
# Докажите, что замыкание Клини перечислимого языка перeчислимо.&lt;br /&gt;
# Докажите, что декартово произведение перечислимых языков перeчислимо.&lt;br /&gt;
# Докажите, что проекция перечислимого языка пар на каждую из осей перечислима.&lt;br /&gt;
# Пусть $A \subset \Sigma^*$. Функция $f:A \to \Sigma^*$ называется вычислимой, если существует программа, которая по входу $x \in A$ выдает $f(x)$, а на входах не из $A$ зависает. Приведите пример невычислимой функции.&lt;br /&gt;
# Докажите, что функция вычислима тогда и только тогда, когда ее график перечислим.&lt;br /&gt;
# Докажите, что образ перечислимого множества под действием вычислимой функции перечислим.&lt;br /&gt;
# Докажите, что прообраз перечислимого множества под действием вычислимой функции перечислим.&lt;br /&gt;
# В этой и последующих задачах вместо разрешимых и перечислимых языков рассматриваются разрешимые и перечислимые множества натуральных чисел. Это на самом деле одно и то же, достаточно установить естественную биекцию между натуральными числами и словами в градуированном лексикографическом порядке. Теорема об униформизации. Пусть $F$ — перечислимое множество пар натуральных чисел. Докажите. что существует вычислимая функция $f$, определённая на тех и только тех $x$, для которых найдётся $y$, при котором $\langle x,y\rangle \in F$, причём значение $f(x)$ является одним из таких $y$&lt;br /&gt;
# Даны два перечислимых множества $X$ и $Y$. Докажите, что найдутся два непересекающихся перечислимых множества $X'$ и $Y'$, таких что $X' \subset X$, $Y' \subset Y$, $X' \cup Y' = X \cup Y$.&lt;br /&gt;
# Докажите, что если перечислимое множество перечислимо в возрастающем порядке, то оно является разрешимым.&lt;br /&gt;
# Докажите, что любое бесконечное перечислимое множество содержит бесконечное разрешимое подмножество.&lt;br /&gt;
# Покажите, что для всякой вычислимой функции $f$ существует вычислимая функция, являющаяся «псевдообратной» к $f$ в следующем смысле: область определения $g$ совпадает с областью значений $f$, и при этом $f(g(f(x))) = f(x)$ для всех $x$, при которых $f(x)$ определено.&lt;br /&gt;
# Вещественное число $\alpha$ называется вычислимым, если существует вычислимая функция $a$, которая по любому рациональному $\varepsilon &amp;gt; 0$ даёт рациональное приближение к $\alpha$ с ошибкой не более $\varepsilon$, то есть $|\alpha − a(\varepsilon)| \le \varepsilon$ для любого рационального $\varepsilon &amp;gt; 0$. Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда множество рациональных чисел, меньших $\alpha$, разрешимо.&lt;br /&gt;
# Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда последовательность знаков представляющей его десятичной (или двоичной) дроби вычислима.&lt;br /&gt;
# Докажите, что число $\alpha$ вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к $\alpha$ (последнее означает, что можно алгоритмически указать $N$ по $\varepsilon$ в стандартном $\varepsilon$-$N$-определении сходимости.)&lt;br /&gt;
# Покажите, что сумма, произведение, разность и частное вычислимых вещественных чисел вычислимы. Покажите, что корень многочлена с вычислимыми коэффициентами вычислим.&lt;br /&gt;
# Сформулируйте и докажите утверждение о том, что предел вычислимо сходящейся последовательности вычислимых вещественных чисел вычислим.&lt;br /&gt;
# Вещественное число $\alpha$ называют перечислимым снизу, если множество всех рациональных чисел, меньших $\alpha$, перечислимо. (Перечислимость сверху определяется аналогично.) Докажите, что число $\alpha$ перечислимо снизу тогда и только тогда, когда оно является пределом некоторой вычислимой возрастающей последовательности рациональных чисел.&lt;br /&gt;
# Докажите, что действительное число вычислимо тогда и только тогда, когда оно перечислимо снизу и сверху.&lt;br /&gt;
# Покажите, что следующие три свойства множества $X$ равносильны: (1) $X$ можно представить в виде $A \setminus B,$ где $A$ — перечислимое множество, а $B$ — его перечислимое подмножество; (2) $X$ можно представить в виде $A \setminus B$, где $A$ и $B$ — перечислимые множества; (3) $X$ можно представить в виде симметрической разности двух перечислимых множеств.&lt;br /&gt;
# Покажите, что множество $X$ можно представить в виде $A\setminus (B \setminus C)$, где $A \supset B \supset C$ — перечислимые множества, если и только если его можно представить в виде симметрической разности (суммы по модулю 2) трёх перечислимых множеств.&lt;br /&gt;
# Докажите, что множество $\langle p \rangle$ программ, останавливающихся на своём собсвтенном исходном коде, перечислимо, но не разрешимо.&lt;br /&gt;
# Некоторое множество $S$ натуральных чисел разрешимо. Разложим все числа из $S$ на простые множители и составим множество $D$ всех простых чисел, встречающихся в этих разложениях. Можно ли утверждать, что множество $D$ перечислимо?&lt;br /&gt;
# Некоторое множество $S$ натуральных чисел разрешимо. Разложим все числа из $S$ на простые множители и составим множество $D$ всех простых чисел, встречающихся в этих разложениях. Можно ли утверждать, что множество $D$ разрешимо?&lt;br /&gt;
# Множество $U \subset \mathbb{N} \times \mathbb{N}$ разрешимо. Можно ли утверждать, что множество «нижних точек» множества $U$, то есть множество $V = \{\langle x,y\rangle | (\langle x,y\rangle \in U)$ и $(\langle x,z\rangle \not\in U$ для всех $z &amp;lt; y)\}$ является разрешимым? &lt;br /&gt;
# В предыдущем задании можно ли утверждать, что $V$ перечислимо, если $U$ перечислимо?&lt;br /&gt;
# Покажите, что существуют перечислимые снизу, но не вычислимые числа. Указание: рассмотрим сумму ряда $\sum 2^{-k}$ по $k$ из какого-либо перечислимого множества $P$. Она всегда перечислима снизу, но будет вычислимой только при разрешимом $P$.)&lt;br /&gt;
# Покажите, что существует множество, которое можно представить в виде симметрической разности трёх перечислимых множеств, но нельзя представить в виде симметрической разности двух перечислимых множеств&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые останавливаются на пустом вводе, является неразрешимым. Является ли этот язык перечислимым?&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые не останавливаются на пустом вводе, является неразрешимым. Является ли этот язык перечислимым?&lt;br /&gt;
# Используя теорему о рекурсии, докажите, что язык программ, которые допускают бесконечное число слов, является неразрешимым.&lt;br /&gt;
# Докажите, что существуют две различные программы $p$ и $q$, такие что программа $p$ печатает текст программы $q$, а программа $q$ печатает текст программы $p$.&lt;br /&gt;
# Докажите, что существует бесконечная последовательность различных программ $p_i$, такая что $p_i$ печатает текст программы $p_{i+1}$.&lt;br /&gt;
# Докажите, что существует бесконечная последовательность различных программ $p_i$, такая что $p_1$ печатает пустую строку, а $p_i$ печатает текст программы $p_{i-1}$.&lt;br /&gt;
# Докажите, что для любого конечного $n$ существует последовательность программ $p_1, p_2, \ldots, p_n$, что $p_i$ печатает текст $p_{i+1}$, а $p_n$ печатает текст $p_1$.&lt;br /&gt;
# Рассмотрим два множества $A$ и $B$. Назовём их вычислимо изоморфными, если существует всюду определенная вычислимая биекция $\varphi : \mathbb{N} \to \mathbb{N}$, такая что $x \in A$ тогда и только тогда, когда $\varphi(x) \in B$. Приведите пример различных бесконечных вычислимо изоморфных множеств.&lt;br /&gt;
# Докажите или опровергните, что любые два бесконечных разрешимых множества, дополнения к которым также бесконечны, являются вычислимо изоморфными.&lt;br /&gt;
# Докажите или опровергните, что любые два бесконечных перечислимых множества, дополнения к которым также бесконечны, являются вычислимо изоморфными.&lt;br /&gt;
# Множество $A$ называется m-сводимым к $B$, если существует вычислимая всюду определенная функция $f$, для которой $x \in A$ тогда и только тогда, когда $f(x) \in B$. Пишут $A \le_m B$. Докажите, что если $A$ неразрешимо и $A \le_m B$, то $B$ неразрешимо.&lt;br /&gt;
# Докажите, что если $A$ неперечислимо и $A \le_m B$, то $B$ неперечислимо.&lt;br /&gt;
# Верно ли, что для любого непустого $A$ с непустым дополнением выполнено $A \le_m \mathbb{N} \setminus A$?&lt;br /&gt;
# Пусть $A$ перечислимо и $\mathbb{N} \setminus A \le_m A$. Что можно сказать про $A$?&lt;br /&gt;
# Пусть $A$ перечислимо и $A \le_m \mathbb{N} \setminus A$. Что можно сказать про $A$?&lt;br /&gt;
# Существует ли множество натуральных чисел $A$, к которому m-сводится любой множество натуральных чисел?&lt;br /&gt;
# Множество называется m-полным, если к нему m-сводится любое перечислимое множество. Докажите, что универсальное множество является $m$-полным.&lt;br /&gt;
# Докажите, что диагональ универсального множества (множество $\{u | (u, u) \in U\}$ является m-полным.&lt;br /&gt;
# Рассмотрим список слов $A = \{\alpha_1, \alpha_2, \ldots, \alpha_n\}$ над алфавитом $\Sigma$. Введем $n$ новых различных символов $d_1, d_2, \ldots, d_n$. Рассмотрим алфавит $\Sigma' = \Sigma \cup \{d_1, d_2, \ldots, d_n\}$. Рассмотрим КС-грамматику с одним нетерминалом $S$, алфавитом $\Sigma'$ и $n + 1$ правилом: $S \to \alpha_1 S d_1$,  $S \to \alpha_2 S d_2, \ldots, S \to \alpha_n S d_n$, $S \to \varepsilon$. Язык, порождаемый этой грамматикой, называется языком списка $A$ и обозначается как $L_A$. Опишите все слова языка $L_A$. &lt;br /&gt;
# Докажите, что проверка грамматики на однозначность является неразрешимой проблемой. Указание: сведите к ней или её дополнению проблему соответствий Поста, используя конструкцию языка списка из предыдущего задания.&lt;br /&gt;
# Докажите, что для любого списка $A$ дополнение до его языка списка $\overline{L_A}$ является КС-языком. Указание: постройте МП-автомат для $\overline{L_A}$.&lt;br /&gt;
# Докажите, что проблема проверки пустоты пересечения двух КС-грамматик неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки эквивалентности двух КС-грамматик неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки, что язык заданной КС-грамматики совпадает с языком заданного регулярного выражения, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что любое слово можно породить в заданной КС-грамматике, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык одной заданной КС-грамматики входит в язык другой заданной КС-грамматики, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык заданного регулярного выражения входит в язык заданной КС-грамматики, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что язык заданной КС-грамматики содержит палиндром, неразрешима.&lt;br /&gt;
# Пусть задано два списка $A$ и $B$. Докажите, что $\overline{L_A} \cup \overline{L_B}$ является регулярным тогда и только тогда, когда он совпадает с $\Sigma'^*$. Следовательно проблема проверки того, что КС-грамматика порождает регулярный язык, неразрешима.&lt;br /&gt;
# Докажите, что проблема проверки того, что дополнение языка заданной КС-грамматики является КС-языком, неразрешима.&lt;br /&gt;
# Рассмотрим абстрактный вычислитель &amp;quot;автомат с очередью&amp;quot; - по аналогии с автоматом с магазинной памятью, но вместо стека очередь. На переходе автомат извлекает первый символ из головы очереди, смотрит очередной символ на ленте и текущее состояние, переходит в новое состояние и добавляет в конец очереди произвольную строку. Докажите, что автомат с очередью может распознать любой перечислимый язык (указание: просимулируйте на автомате с очередью автомат с двумя стеками).&lt;br /&gt;
# Докажите, что машина Тьюринга без возможности записи на ленту, эквивалентна по вычислительной мощности конечному автомату.&lt;br /&gt;
# Отберем у машины Тьюринга возможность перемещаться налево, но разрешим новую команду RESET, которая перемещает головку на первый символ входного слова. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Пусть машине Тьюринга разрешено производить запись в каждую ячейку ленты только два раза: если значение в этой ячейке менялось уже дважды, запрещается записывать туда другой символ. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Пусть машине Тьюринга разрешено производить запись в каждую ячейку ленты только один раз: если значение в этой ячейке уже менялось, запрещается записывать туда другой символ. Докажите, что такая модификация не меняет вычислительной мощности машины Тьюринга.&lt;br /&gt;
# Множество $A$ назвается эффективно бесконечным, если существует всюду определенная вычислимая функция $f$, которая по числу $n$ выводит $n$ различных элементов множества $A$. Докажите, что если множество $A$ содержит бесконечное перечислимое подмножество, то оно эффективно бесконечно.&lt;br /&gt;
# Докажите, что если множество $A$ эффективно бесконечно, то оно содержит бесконечное перечислимое подмножество.&lt;br /&gt;
# Обозначим как $L(p)$ множество слов, которые допускается программой $p$. Множество $A$ назвается эффективно неперечислимым, если существует всюду определенная вычислимая функция $f$, которая по программе $p$ указывает слово $x$, такое что $x \in L(p) \oplus A$. Докажите, что дополнение к диагонали универсального множества $\overline D$, где $D = \left\{\langle p, p\rangle\right\}$, является эффективно неперечислимым. &lt;br /&gt;
# Докажите, что дополнение к универсальному множеству $\overline U$ является эффективно неперечислимым.&lt;br /&gt;
# Докажите, что любое эффективно неперечислимое множество является эффективно бесконечным.&lt;br /&gt;
# Множество $A$ называется иммунным, если оно бесконечно, но не является эффективно бесконечным. Множество называется простым, если оно перечислимо, а его дополнение иммунно. Докажите, что существует простое множество. Указание: рассмотрите множество $T = \left\{\langle p, x\rangle | p(x) = 1, x &amp;gt; 2p\right\}$. &lt;br /&gt;
# Докажите, что множество является иммунным тогда и только тогда, когда оно не содержит бесконечных разрешимых подмножеств.&lt;br /&gt;
# Два перечислимых множества $A$ и $B$, где $A \cup B = \varnothing$ называются неотделимыми, если не сущестует разрешимых множеств $X$ и $Y$, таких что $A \subset X$, $B \subset Y$, $X \cup Y = \varnothing$. Покажите, что существуют неотделимые множества. Указание: рассмотрите множества пар $\langle p, x\rangle$, где $p$ - программа, возвращающая целое число, для некоторого условия.&lt;br /&gt;
# Обобщите определение неотделимых множеств на счетное семейство множеств. Докажите, что существует счетное семейство неотделимых множеств.&lt;br /&gt;
# Докажите, что существует вычислимая функция $f$, у которой не существует всюду определенного вычислимого продолжения.&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B2%D1%83%D0%BC%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D0%B6%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0&amp;diff=71308</id>
		<title>Двумерная разреженная таблица</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B2%D1%83%D0%BC%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D0%B6%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0&amp;diff=71308"/>
				<updated>2019-05-25T11:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Построение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Двумерная разреженная таблица''' (англ. ''2D Sparse Table'') {{---}} структура данных, которая позволяет решать задачу online static RMQ. &lt;br /&gt;
&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition = Дан двумерный массив &amp;lt;tex&amp;gt;A[1 \ldots N][1 \ldots M]&amp;lt;/tex&amp;gt; целых чисел. Поступают запросы вида &amp;lt;tex&amp;gt;(x_1, y_1, x_2, y_2)&amp;lt;/tex&amp;gt; такие, что &amp;lt;tex&amp;gt; x_1 \leqslant x_2 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; y_1 \leqslant y_2 &amp;lt;/tex&amp;gt; , для каждого из которых требуется найти минимум среди &amp;lt;tex&amp;gt;A[i][j], x_1 \leqslant i \leqslant x_2 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; y_1 \leqslant j \leqslant y_2 &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура 2D Sparse Table ==&lt;br /&gt;
&lt;br /&gt;
В целом структура 2D Sparse Table схожа со структурой обычной [[Решение_RMQ_с_помощью_разреженной_таблицы| разреженной таблицы]]. &lt;br /&gt;
&lt;br /&gt;
Разреженная таблица представляет собой четырехмерный массив:&lt;br /&gt;
&amp;lt;tex&amp;gt;ST[N][M][LOGN][LOGM]&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;LOGN = \log(N), LOGM = \log(M)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tex&amp;gt; ST[i][j][k_1][k_2] = \min\limits_{r = i,\dots,i+2^{k_1}-1, c = j,\ldots,j + 2^{k_2}-1} A[r][c], r &amp;lt; N, c &amp;lt; M &amp;lt;/tex&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
То есть в ячейке структуры мы храним минимум для подматрицы, длины сторон которого являются некоторыми степенями двойки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:STP1.png|left]]&lt;br /&gt;
[[Файл:SparseTableExample1Picture.png|right]]&lt;br /&gt;
&lt;br /&gt;
Рассмотрим иллюстрации.&lt;br /&gt;
&lt;br /&gt;
Слева изображен общий случай. Пусть &amp;lt;tex&amp;gt;n + 1&amp;lt;/tex&amp;gt; {{---}} количество строк, &amp;lt;tex&amp;gt;m + 1&amp;lt;/tex&amp;gt; {{---}} количество столбцов массива A. Рассмотрим элемент на позиции &amp;lt;tex&amp;gt;(i, j)&amp;lt;/tex&amp;gt;, который выделен желтым цветом. Данный элемент является левым верхним углом прямоугольника, стороны которого равны &amp;lt;tex&amp;gt;2^{k_1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;2^{k_2}&amp;lt;/tex&amp;gt;. Прямоугольна выделен красным, а проекции его сторон - зеленым. Тогда в &amp;lt;tex&amp;gt;ST[i][j][k_1][k_2]&amp;lt;/tex&amp;gt; будет хранится минимум из всех элементов, которые входят в красную и желтую область.&lt;br /&gt;
&lt;br /&gt;
Справа изображен частный случай, когда N = 11, M = 11. Посмотрим, что будет хранится в &amp;lt;tex&amp;gt;ST[2][1][2][3]&amp;lt;/tex&amp;gt;:&lt;br /&gt;
Клетка (2, 1), которая выделена желтым цветом, является левым верхним углом красного прямоугольника, длины сторон которого &amp;lt;tex&amp;gt;2^{2}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;2^{3}&amp;lt;/tex&amp;gt; (проекции этих сторон выделены зеленым цветом). И по определению выше, &amp;lt;tex&amp;gt;ST[2][1][3][2]&amp;lt;/tex&amp;gt; хранит минимум из элементов красной области.&lt;br /&gt;
&lt;br /&gt;
== Реализация 2D Sparse Table ==&lt;br /&gt;
&lt;br /&gt;
===Построение===&lt;br /&gt;
&lt;br /&gt;
Изначально заполним таблицу следующим образом:&lt;br /&gt;
&lt;br /&gt;
$$ST[i][j][k_1][k_2]=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\infty ,&amp;amp;\text{если $k_1\neq0 \lor k_2\neq0$ ;}\\&lt;br /&gt;
A[i][j], &amp;amp;\text {если $k_1=0 \wedge k_2=0$ ;}&lt;br /&gt;
\end{cases}&lt;br /&gt;
$$&lt;br /&gt;
&lt;br /&gt;
Далее мы считаем [[Решение_RMQ_с_помощью_разреженной_таблицы|одномерную разреженную таблицу]] для каждого столбца:&lt;br /&gt;
 '''for''' &amp;lt;tex&amp;gt; i = 1 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; N &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt; j = 1 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;&lt;br /&gt;
         '''for''' &amp;lt;tex&amp;gt; lg = 1 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; \log(M) &amp;lt;/tex&amp;gt;         &lt;br /&gt;
             &amp;lt;tex&amp;gt;ST[i][j][0][lg] = \min(ST[i][j][0][lg - 1], ST[i][j+ 2^{lg-1}][0][lg - 1])&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим шагом мы можем обновить значения для подматриц, так как для всех столбцов ответы уже известны. Будем это делать по аналогичному алгоритму для 1D Sparse Table.&lt;br /&gt;
 '''for''' &amp;lt;tex&amp;gt; k_1 = 1 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; \log(N) &amp;lt;/tex&amp;gt;&lt;br /&gt;
     '''for''' &amp;lt;tex&amp;gt; i = 1 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; N &amp;lt;/tex&amp;gt;&lt;br /&gt;
         '''for''' &amp;lt;tex&amp;gt; k_2 = 0 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; \log(M) &amp;lt;/tex&amp;gt;&lt;br /&gt;
             '''for''' &amp;lt;tex&amp;gt; j = 1 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt; M &amp;lt;/tex&amp;gt;         &lt;br /&gt;
                 &amp;lt;tex&amp;gt;ST[i][j][k_1][k_2]=\min\left(ST[i][j][k_1 - 1][k_2],ST[i+2^{k_1-1}][j][k_1 - 1][k_2]\right)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким образом мы получили двумерную разреженную таблицу за &amp;lt;tex&amp;gt;O(NM\log(N)\log(M))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ответы на запросы===&lt;br /&gt;
&lt;br /&gt;
Для ответа на запрос &amp;lt;tex&amp;gt; \mathrm {RMQ(l, r)} &amp;lt;/tex&amp;gt; в 1D Sparse Table использовалось пересечение отрезков &amp;lt;tex&amp;gt; [l, l + 2^{k}] &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; [r - 2^{k} + 1, r] &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt; k = \lfloor  \log(SZ) \rfloor , SZ &amp;lt;/tex&amp;gt; {{---}} размера массива для одномерной задачи.&lt;br /&gt;
&lt;br /&gt;
Тут мы будем пользоваться аналогичным утверждением для матриц. Таким образов минимум на подматрице  &amp;lt;tex&amp;gt;(x_1, y_1, x_2, y_2)&amp;lt;/tex&amp;gt; будет высчитываться следующим образом:&lt;br /&gt;
 &amp;lt;tex&amp;gt; k_1 = \lfloor  \log(x_2 - x_1 + 1) \rfloor &amp;lt;/tex&amp;gt;&lt;br /&gt;
 &amp;lt;tex&amp;gt; k_2 = \lfloor  \log(y_2 - y_1 + 1) \rfloor &amp;lt;/tex&amp;gt;&lt;br /&gt;
 &amp;lt;tex&amp;gt; ans_1 = ST[x_1][y_1][k_1][k_2] &amp;lt;/tex&amp;gt; &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;     // красный прямоугольник&lt;br /&gt;
 &amp;lt;tex&amp;gt; ans_2 = ST[x_2 - 2^{k_1} + 1][y_1][k_1][k_2] &amp;lt;/tex&amp;gt; &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;     // Y-прямоугольник&lt;br /&gt;
 &amp;lt;tex&amp;gt; ans_3 = ST[x_1][y_2 - 2^{k_2} + 1][k_1][k_2] &amp;lt;/tex&amp;gt; &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;     // AA-прямоугольник&lt;br /&gt;
 &amp;lt;tex&amp;gt; ans_4 = ST[x_2 - 2^{k_1} + 1][y_2 - 2^{k_2} + 1][k_1][k_2] &amp;lt;/tex&amp;gt; &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;     // белый прямоугольник&lt;br /&gt;
 &amp;lt;tex&amp;gt; ans = \min\left(ans_1, ans_2, ans_3, ans_4\right) &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Файл:ST3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Таким образом мы получаем ответ на запрос &amp;lt;tex&amp;gt; \mathrm {RMQ(x_1, y_1, x_2, y_2)} &amp;lt;/tex&amp;gt; за &amp;lt;tex&amp;gt; O(1) &amp;lt;/tex&amp;gt;, если предпосчитать логарифмы двоек, например так: &lt;br /&gt;
 &amp;lt;tex&amp;gt; lg[1] = 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''for''' &amp;lt;tex&amp;gt; i = 2 &amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\max\left(N, M\right)&amp;lt;/tex&amp;gt;&lt;br /&gt;
     &amp;lt;tex&amp;gt; lg[i] = lg[i / 2] + 1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Обобщение на большие размерности ===&lt;br /&gt;
&lt;br /&gt;
Можно заметить, что возможно реализовать и D-мерную разреженную таблицу за &amp;lt;tex&amp;gt;O((N\log(n))^{D})&amp;lt;/tex&amp;gt; памяти и &amp;lt;tex&amp;gt;O((N\log(n))^{D})&amp;lt;/tex&amp;gt; времени на построение, где ответ на запрос, например, &amp;lt;tex&amp;gt; \mathrm {RMQ(l, r)} &amp;lt;/tex&amp;gt; будет выполняться за &amp;lt;tex&amp;gt; O(2^{D}) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''Способ построения'': Если в данном случае, для того, чтобы построить двумерную структуру мы сначала должны были построить одномерную, то также и в случае с D-мерной структуре - сначала нужно построить (D-1)-мерную, а из нее получить D-мерную.&lt;br /&gt;
&lt;br /&gt;
''Ответ на запрос'': Абсолютно аналогичен рассмотренному здесь, только обобщается до размерности D.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Решение_RMQ_с_помощью_разреженной_таблицы| Решение RMQ с помощью разреженной таблицы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о наименьшем общем предке]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=Level_Ancestor_problem&amp;diff=71191</id>
		<title>Level Ancestor problem</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=Level_Ancestor_problem&amp;diff=71191"/>
				<updated>2019-05-13T07:25:56Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Задача о уровне предка''' (англ. &amp;quot;Level Ancestor problem&amp;quot;) является задачей о превращении данного корневого дерева &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; в структуру данных, которая сможет определить предка любого узла на заданном расстоянии от корня дерева.&lt;br /&gt;
&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition = Дано корневое дерево &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; c &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинами. Поступают запросы вида &amp;lt;tex&amp;gt;LA(v, k)&amp;lt;/tex&amp;gt;, для каждого из которых необходимо&lt;br /&gt;
найти предка вершины &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, который находится на расстоянии &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; от корня дерева &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
== Наивная реализация и двоичные подъемы ==&lt;br /&gt;
[[Файл:LevelAncestor.png|200px|thumb|right]]&lt;br /&gt;
Используя обход в глубину посчитаем глубину каждой вершины дерева (это можно сделать за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;), после чего можем из вершины &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; подняться до необходимой глубины вершины &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;,&lt;br /&gt;
что так же в худшем случае работает за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Получили алгоритм за &amp;lt; &amp;lt;tex&amp;gt;O(n), O(n)&amp;lt;/tex&amp;gt; &amp;gt;, где время ответа на&lt;br /&gt;
запрос можно улучшить до &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt; c помощью [[Метод двоичного подъёма | предподсчета двоичных подъемов]]  ,&lt;br /&gt;
но тогда и время предподсчета в наивной реализации (посчитать подъемы для всех вершин) ухудшится до &amp;lt; &amp;lt;tex&amp;gt;O(n \log n),&lt;br /&gt;
O(\log n)&amp;lt;/tex&amp;gt; &amp;gt;. Альтернативой данным двум алгоритмам является полный предподсчет всех возможных запросов, что соответственно дает нам асимптотику &amp;lt; &amp;lt;tex&amp;gt;O(n^2), O(1)&amp;lt;/tex&amp;gt; &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В данном примере поступает запрос &amp;lt;tex&amp;gt;LA(v, 2)&amp;lt;/tex&amp;gt;, на который алгоритм должен дать ответ &amp;lt;tex&amp;gt;h&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Использование Heavy-light декомпозиции ==&lt;br /&gt;
Этот алгоритм базируется на различных способах [[Heavy-light декомпозиция | декомпозиции дерева]] (выберем heavy-light декомпозицию), из свойств этого разбиения следует,&lt;br /&gt;
что подняться на любую высоту из вершины &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; мы можем за время &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данное разбиение можно строить за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;, что дает нам алгоритм за &amp;lt; &amp;lt;tex&amp;gt;O(n), O(\log n)&amp;lt;/tex&amp;gt; &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм лестниц ==&lt;br /&gt;
=== Longest path decomposition ===&lt;br /&gt;
Разобьем все вершины на пути следующим образом. Обойдем дерево с помощью обхода в глубину, пусть мы стоим в вершине&lt;br /&gt;
&amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, обойдем всех ее детей, добавив &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в путь, идущий в самое глубокое поддерево,&lt;br /&gt;
т.е. в котором находится вершина с самой большой глубиной.&lt;br /&gt;
Для каждой вершины сохраним номер пути в который она входит.&lt;br /&gt;
=== Ladder decomposition ===&lt;br /&gt;
Увеличим каждый путь в два раза вверх, для каждого нового пути сохраним все входящие в него вершины,&lt;br /&gt;
а для каждой вершины сохраним ее номер в пути, в который она входит. Построение обычной longest-path декомпозиции займет у&lt;br /&gt;
нас &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; времени (обход в глубину), соответственно удлиннение каждого пути ухудшит асимптотику до  &amp;lt;tex&amp;gt;O(n \log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
=== Двоичные подъемы ===&lt;br /&gt;
После этого посчитаем двоичные подъемы для каждой вершины за &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;, что соответственно не ухудшит асимптотику.&lt;br /&gt;
&lt;br /&gt;
Пусть после этого нам пришел запрос &amp;lt;tex&amp;gt;LA(v, k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Сделаем один максимально большой прыжок вверх с помощью насчитанных двоичных подъемов.&lt;br /&gt;
#&amp;lt;tex&amp;gt;i = \log k&amp;lt;/tex&amp;gt;&lt;br /&gt;
#&amp;lt;tex&amp;gt;v = p_i[v]&amp;lt;/tex&amp;gt;&lt;br /&gt;
* Рассмотрим путь, на котором лежит вершина &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; до удвоения. Он длины хотя бы &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt;, так как мы точно знаем, что существует вершина потомок &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, расстояние до которого ровно &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt; (это вершина, из которой мы только что пришли). Значит, после удвоения этот путь стал длины хотя бы &amp;lt;tex&amp;gt;2^{i + 1}&amp;lt;/tex&amp;gt;, причем хотя бы &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt; вершин в нем - предки &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;. Это означает, что вершина, которую мы ищем, находится на этом пути (иначе бы мы могли до этого прыгнуть еще на &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt; вверх). Так как мы знаем позицию &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в этом пути, то нужную вершину мы можем найти за &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом, наш алгоритм работает за &amp;lt; &amp;lt;tex&amp;gt;O(n\log n), O(1)&amp;lt;/tex&amp;gt; &amp;gt;. Методом четырех русских данный метод можно улучшить до &amp;lt; &amp;lt;tex&amp;gt;O(n), O(1)&amp;lt;/tex&amp;gt; &amp;gt; с помощью оптимизации предподсчета.&lt;br /&gt;
==  The Macro-Micro-Tree Algorithm ==&lt;br /&gt;
В данном разделе мы докажем, что предподсчет предыдущего алгоритма можно улучшить до &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Для начала рассмотрим алгоритм &amp;lt; &amp;lt;tex&amp;gt;O(L\log n + n), O(1)&amp;lt;/tex&amp;gt; &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;
*Зададим некую функцию &amp;lt;tex&amp;gt;S(n) = \dfrac{1}{4} \log n&amp;lt;/tex&amp;gt;&lt;br /&gt;
*Посчитаем размер поддерева для каждой вершины с помощью обхода в глубину, после чего удалим все вершины размер поддерева которых меньше чем  &amp;lt;tex&amp;gt;S(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
*Забудем на время про удаленные поддеревья, для оставшегося дерева наш алгоритм работает за &amp;lt; &amp;lt;tex&amp;gt;O(\dfrac{n}{S(n)} \log n + n), O(1)&amp;lt;/tex&amp;gt; &amp;gt;. Получаем алгоритм &amp;lt; &amp;lt;tex&amp;gt;O(n), O(1) &amp;lt;/tex&amp;gt; &amp;gt;. Для удаленных поддеревьев же выполним полный предподсчет: таких деревьев не более чем &amp;lt;tex&amp;gt;2^{2S(n)}&amp;lt;/tex&amp;gt;, что дает асимптотику предподсчета &amp;lt;tex&amp;gt;O(\sqrt{n} \log^2{n}) = o(n) = O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В итоге полученный алгоритм действительно работает за &amp;lt; &amp;lt;tex&amp;gt;O(n), O(1)&amp;lt;/tex&amp;gt; &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*https://www.cadmo.ethz.ch/education/lectures/HS18/SAADS/reports/5.pdf&lt;br /&gt;
*https://en.wikipedia.org/wiki/Level_ancestor_problem&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=Level_Ancestor_problem&amp;diff=71190</id>
		<title>Level Ancestor problem</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=Level_Ancestor_problem&amp;diff=71190"/>
				<updated>2019-05-13T07:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Задача о уровне предка''' (англ. &amp;quot;Level Ancestor problem&amp;quot;) является задачей о превращении данного корневого дерева T в структуру данных, которая сможет определить предка любого узла на заданном расстоянии от корня дерева.&lt;br /&gt;
&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition = Дано корневое дерево &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; c &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинами. Поступают запросы вида &amp;lt;tex&amp;gt;LA(v, k)&amp;lt;/tex&amp;gt;, для каждого из которых необходимо&lt;br /&gt;
найти предка вершины &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, который находится на расстоянии &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; от корня дерева &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
== Наивная реализация и двоичные подъемы ==&lt;br /&gt;
[[Файл:LevelAncestor.png|200px|thumb|right]]&lt;br /&gt;
Используя обход в глубину посчитаем глубину каждой вершины дерева (это можно сделать за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;), после чего можем из вершины &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; подняться до необходимой глубины вершины &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;,&lt;br /&gt;
что так же в худшем случае работает за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Получили алгоритм за &amp;lt; &amp;lt;tex&amp;gt;O(n), O(n)&amp;lt;/tex&amp;gt; &amp;gt;, где время ответа на&lt;br /&gt;
запрос можно улучшить до &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt; c помощью [[Метод двоичного подъёма | предподсчета двоичных подъемов]]  ,&lt;br /&gt;
но тогда и время предподсчета в наивной реализации (посчитать подъемы для всех вершин) ухудшится до &amp;lt; &amp;lt;tex&amp;gt;O(n \log n),&lt;br /&gt;
O(\log n)&amp;lt;/tex&amp;gt; &amp;gt;. Альтернативой данным двум алгоритмам является полный предподсчет всех возможных запросов, что соответственно дает нам асимптотику &amp;lt; &amp;lt;tex&amp;gt;O(n^2), O(1)&amp;lt;/tex&amp;gt; &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В данном примере поступает запрос &amp;lt;tex&amp;gt;LA(v, 2)&amp;lt;/tex&amp;gt;, на который алгоритм должен дать ответ &amp;lt;tex&amp;gt;h&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Использование Heavy-light декомпозиции ==&lt;br /&gt;
Этот алгоритм базируется на различных способах [[Heavy-light декомпозиция | декомпозиции дерева]] (выберем heavy-light декомпозицию), из свойств этого разбиения следует,&lt;br /&gt;
что подняться на любую высоту из вершины &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; мы можем за время &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данное разбиение можно строить за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;, что дает нам алгоритм за &amp;lt; &amp;lt;tex&amp;gt;O(n), O(\log n)&amp;lt;/tex&amp;gt; &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Алгоритм лестниц ==&lt;br /&gt;
=== Longest path decomposition ===&lt;br /&gt;
Разобьем все вершины на пути следующим образом. Обойдем дерево с помощью обхода в глубину, пусть мы стоим в вершине&lt;br /&gt;
&amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, обойдем всех ее детей, добавив &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в путь, идущий в самое глубокое поддерево,&lt;br /&gt;
т.е. в котором находится вершина с самой большой глубиной.&lt;br /&gt;
Для каждой вершины сохраним номер пути в который она входит.&lt;br /&gt;
=== Ladder decomposition ===&lt;br /&gt;
Увеличим каждый путь в два раза вверх, для каждого нового пути сохраним все входящие в него вершины,&lt;br /&gt;
а для каждой вершины сохраним ее номер в пути, в который она входит. Построение обычной longest-path декомпозиции займет у&lt;br /&gt;
нас &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; времени (обход в глубину), соответственно удлиннение каждого пути ухудшит асимптотику до  &amp;lt;tex&amp;gt;O(n \log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
=== Двоичные подъемы ===&lt;br /&gt;
После этого посчитаем двоичные подъемы для каждой вершины за &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;, что соответственно не ухудшит асимптотику.&lt;br /&gt;
&lt;br /&gt;
Пусть после этого нам пришел запрос &amp;lt;tex&amp;gt;LA(v, k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Сделаем один максимально большой прыжок вверх с помощью насчитанных двоичных подъемов.&lt;br /&gt;
#&amp;lt;tex&amp;gt;i = \log k&amp;lt;/tex&amp;gt;&lt;br /&gt;
#&amp;lt;tex&amp;gt;v = p_i[v]&amp;lt;/tex&amp;gt;&lt;br /&gt;
* Рассмотрим путь, на котором лежит вершина &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; до удвоения. Он длины хотя бы &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt;, так как мы точно знаем, что существует вершина потомок &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, расстояние до которого ровно &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt; (это вершина, из которой мы только что пришли). Значит, после удвоения этот путь стал длины хотя бы &amp;lt;tex&amp;gt;2^{i + 1}&amp;lt;/tex&amp;gt;, причем хотя бы &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt; вершин в нем - предки &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;. Это означает, что вершина, которую мы ищем, находится на этом пути (иначе бы мы могли до этого прыгнуть еще на &amp;lt;tex&amp;gt;2^i&amp;lt;/tex&amp;gt; вверх). Так как мы знаем позицию &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в этом пути, то нужную вершину мы можем найти за &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Таким образом, наш алгоритм работает за &amp;lt; &amp;lt;tex&amp;gt;O(n\log n), O(1)&amp;lt;/tex&amp;gt; &amp;gt;. Методом четырех русских данный метод можно улучшить до &amp;lt; &amp;lt;tex&amp;gt;O(n), O(1)&amp;lt;/tex&amp;gt; &amp;gt; с помощью оптимизации предподсчета.&lt;br /&gt;
==  The Macro-Micro-Tree Algorithm ==&lt;br /&gt;
В данном разделе мы докажем, что предподсчет предыдущего алгоритма можно улучшить до &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Для начала рассмотрим алгоритм &amp;lt; &amp;lt;tex&amp;gt;O(L\log n + n), O(1)&amp;lt;/tex&amp;gt; &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;
*Зададим некую функцию &amp;lt;tex&amp;gt;S(n) = \dfrac{1}{4} \log n&amp;lt;/tex&amp;gt;&lt;br /&gt;
*Посчитаем размер поддерева для каждой вершины с помощью обхода в глубину, после чего удалим все вершины размер поддерева которых меньше чем  &amp;lt;tex&amp;gt;S(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
*Забудем на время про удаленные поддеревья, для оставшегося дерева наш алгоритм работает за &amp;lt; &amp;lt;tex&amp;gt;O(\dfrac{n}{S(n)} \log n + n), O(1)&amp;lt;/tex&amp;gt; &amp;gt;. Получаем алгоритм &amp;lt; &amp;lt;tex&amp;gt;O(n), O(1) &amp;lt;/tex&amp;gt; &amp;gt;. Для удаленных поддеревьев же выполним полный предподсчет: таких деревьев не более чем &amp;lt;tex&amp;gt;2^{2S(n)}&amp;lt;/tex&amp;gt;, что дает асимптотику предподсчета &amp;lt;tex&amp;gt;O(\sqrt{n} \log^2{n}) = o(n) = O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В итоге полученный алгоритм действительно работает за &amp;lt; &amp;lt;tex&amp;gt;O(n), O(1)&amp;lt;/tex&amp;gt; &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*https://www.cadmo.ethz.ch/education/lectures/HS18/SAADS/reports/5.pdf&lt;br /&gt;
*https://en.wikipedia.org/wiki/Level_ancestor_problem&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71111</id>
		<title>Список заданий по ДМ 2019 весна</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=71111"/>
				<updated>2019-04-22T10:55:19Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Чему равна вероятность, что две случайно вытянутые кости домино можно приложить друг к другу по правилам домино?&lt;br /&gt;
# Чему равна вероятность, что на двух брошенных честных игральных костях выпадут числа, одно из которых делит другое?&lt;br /&gt;
# Чему равна вероятность, что если вытянуть из 52-карточной колоды две случайные карты, одной из них можно побить другую (одна из мастей назначена козырем, картой можно побить другую, если они одинаковой масти или если одна из них козырь)?&lt;br /&gt;
# Чему равна вероятность, что на двадцати брошенных честных монетах выпадет поровну нулей и единиц?&lt;br /&gt;
# Петя и Вася три раза бросают по одной честной игровой кости. Вася два раза выкинул строго больше, чем Петя, а один раз строго меньше. При этом Петя в сумме выкинул строго больше, чем Вася. С какой вероятностью такое могло произойти?&lt;br /&gt;
# Приведите пример трех событий, для которых $P(A \cap B \cap C) = P(A)P(B)P(C)$, но которые не являются независимыми, причем вероятности всех трех событий больше 0&lt;br /&gt;
# Доказать или опровергнуть, что для независимых событий $A$ и $B$ и события $C$, где $P(C) &amp;gt; 0$ выполнено $P(A \cap B|C) = P(A|C)P(B|C)$&lt;br /&gt;
# Доказать или опровергнуть, что для независимых событий $A$ и $B$ и события $C$, где $P(A) &amp;gt; 0$, $P(B) &amp;gt; 0$ выполнено $P(C|A \cap B) = P(C|A)P(C|B)$&lt;br /&gt;
# Доказать или опровергнуть: если $P(A|B) = P(B|A)$, то $P(A) = P(B)$&lt;br /&gt;
# Доказать или опровергнуть: если $P(A|B) = P(B|A)$, то $A$ и $B$ независимы&lt;br /&gt;
# Доказать или опровергнуть: если $P(A|C) = P(B|C)$, то $P(C|A) = P(C|B)$&lt;br /&gt;
# Доказать или опровергнуть: если $A$ и $B$ независимы, то $\Omega \setminus A$ и $\Omega \setminus B$ независимы&lt;br /&gt;
# Петя собирается смотреть серию матчей финала Флатландской хоккейной лиги. В финале две команды играют до 5 побед, ничьих не бывает, таким образом максимум в финале будет не более 9 матчей. Вася рассказал Пете, что всего в финале было 7 матчей. Петя считает матч интересным, если перед его просмотром он не знает, кто выиграет финал. Пусть все возможные последовательности исходов матчей, удовлетворяющих описанным условиями, равновероятны. Какова вероятность, что будет хотя бы 4 интересных матча?&lt;br /&gt;
# Петя собирается смотреть серию матчей финала Флатландской хоккейной лиги. В финале две команды играют до 5 побед, ничьих не бывает, таким образом максимум в финале будет не более 9 матчей. Вася рассказал Пете, что всего в финале было 7 матчей. Петя считает матч зрелищным, если перед его просмотром он не знает, кто его выиграет. Пусть все возможные последовательности исходов матчей, удовлетворяющих описанным условиями, равновероятны. Какова вероятность, что будет хотя бы 5 зрелищных матчей?&lt;br /&gt;
# Найдите распределение и математическое ожидание следующей случайной величины: число бросков нечестной монеты до первого выпадения 1.&lt;br /&gt;
# Найдите распределение и математическое ожидание следующей случайной величины: число бросков честной монеты до второго выпадения 1.&lt;br /&gt;
# Используя формулу Стирлинга $n!\approx \sqrt{2\pi n}\left(\frac{n}{e}\right)^n$ оцените, чему равна вероятность, что на $2n$ брошенных честных монетах выпадет поровну нулей и единиц.&lt;br /&gt;
# Найдите математическое ожидание числа инверсий в перестановке чисел от 1 до $n$&lt;br /&gt;
# Найдите математическое ожидание числа подъемов в перестановке чисел от 1 до $n$&lt;br /&gt;
# Найдите математическое ожидание числа троек $i$, $j$, $k$, где $i &amp;lt; j &amp;lt; k$ и $a[i] &amp;lt; a[j] &amp;lt; a[k]$ в перестановке чисел от 1 до $n$&lt;br /&gt;
# Предложите метод генерации случайной перестановки порядка $n$ с равновероятным распределением всех перестановок, если мы умеем генерировать равномерно распределенное целое число от 1 до $k$ для любых небольших $k$ ($k = O(n)$). &lt;br /&gt;
# Дает ли следующий метод равномерную генерацию всех перестановок? &amp;quot;p = [1, 2, ..., n]; for i from 1 to n: swap(p[i], p[random(1..n)] )&amp;quot;&lt;br /&gt;
# Дает ли следующий метод равномерную генерацию всех перестановок? &amp;quot;p = [1, 2, ..., n];  for i from 1 to n: swap(p[random(1..n)], p[random(1..n)] )&amp;quot;&lt;br /&gt;
# Предложите метод генерации случайного сочетания из $n$ по $k$ с равновероятным распределением всех сочетаний, если мы умеем генерировать равномерно распределенное целое число от 1 до $t$ для любых небольших $t$ ($t = O(n)$)&lt;br /&gt;
# Предложите метод генерации случайного сочетания из $n$ по $k$ с равновероятным распределением всех сочетаний, если мы умеем генерировать равномерно распределенное целое число от 1 до $t$ для любых небольших $t$ ($t = O(n)$), использующий $O(k)$ времени и памяти.&lt;br /&gt;
# Верно ли, что если $\xi$ и $\eta$ - независимые случайные величины, то таким будут и $f(\xi)$ и $g(\eta)$ для любых функций $f$ и $g$? Достаточно доказать для конечных вероятностных пространств.&lt;br /&gt;
# Постройте случайную величину, имеющую конечное математическое ожидание и бесконечную дисперсию.&lt;br /&gt;
# Постройте случайную величину, имеющую бесконечное математическое ожидание и конечную дисперсию.&lt;br /&gt;
# Улучшить неравенство Маркова в общем случае нельзя. Докажите, что для любого $c &amp;gt; 1$ найдется такая неотрицательная случайная величина $\xi$, что $P(\xi \ge cE\xi) = 1/c$.&lt;br /&gt;
# Можно ли подобрать такую неотрицательную случайную величину $\xi$, чтобы для двух различных $c_1 &amp;gt; 1$ и $c_2 &amp;gt; 1$  выполнялось $P(\xi \ge c_iE\xi) = 1/c_i$ ($i \in \{1, 2\}$)?&lt;br /&gt;
# Для какого максимального $\alpha$ можно подобрать такую неотрицательную случайную величину $\xi$, чтобы для двух различных $c_1 &amp;gt; 1$ и $c_2 &amp;gt; 1$  выполнялось $P(\xi \ge c_iE\xi) = \alpha/c_i$ ($i \in \{1, 2\}$)?&lt;br /&gt;
# Улучшить неравенство Чебышева в общем случае нельзя. Докажите, что для любого $c &amp;gt; 0$ найдется такая случайная величина $\xi$, что $P(|\xi - E\xi| \ge c) = D\xi/c^2$.&lt;br /&gt;
# Улучшить неравенство Чебышева нельзя даже для суммы. Докажите, что для любого $c &amp;gt; 0$ найдется такое семейство одинаково распределенных случайных величин $\xi_1, \xi_2, \ldots, \xi_n$, что $P(|\sum\xi_i - \sum E\xi_i| \ge c) = nD\xi/c^2$.&lt;br /&gt;
# Оцените вероятность, что значение на игральной кости отличается от матожидания больше чем на 2 с помощью неравенства Чебышева. Насколько точна эта оценка?&lt;br /&gt;
# Докажите, что вероятность того, что значения на двух одинаково распределенных нечестных игральных костях совпадает, не меньше $1/6$.&lt;br /&gt;
# Найдите дисперсию следующей случайной величины: число бросков честной монеты до $k$-го выпадения 1.&lt;br /&gt;
# Петя хочет пойти в кино с вероятностью ровно 1/13, а у него есть только честная монета. Может ли он осуществить свой замысел?&lt;br /&gt;
# Решите предудыщее задание для любой дроби $0 \le p/q \le 1$.&lt;br /&gt;
# Постройте схему получения вероятности 1/3 с помощью честной монеты, имеющую минимальное математическое ожидание числа бросков. Докажите оптимальность вашей схемы.&lt;br /&gt;
# Дана нечестная монета. Придумайте метод определения, какое значение выпадает с большей вероятностью. Вероятность того, что этот способ ошибся, должна быть не больше $0.01$. Оцените количество бросков, которое потребуется, в зависимости от того, насколько $p$ отличается от $1/2$.&lt;br /&gt;
# Петя и Вася играют в игру. Они бросают честную монету, и выписывают результаты бросков. У каждого из игроков есть критерий победы, выигрывает тот, чей критерий наступит раньше. Петя выигрывает в тот момент, когда результаты последних двух бросков равны 11. Вася выигрывает, когда результаты последних двух бросков равны 00. С какой вероятностью Петя выиграет?&lt;br /&gt;
# Петя и Вася играют в игру. Они бросают честную монету, и выписывают результаты бросков. У каждого из игроков есть критерий победы, выигрывает тот, чей критерий наступит раньше. Петя выигрывает в тот момент, когда результаты последних трех бросков равны 001. Вася выигрывает, когда результаты последних трех бросков равны 010. С какой вероятностью Петя выиграет?&lt;br /&gt;
# Можно ли сделать игру в предыдущем задании честной (чтобы вероятности выигрышей оказались равны $1/2$), используя нечестную монету?&lt;br /&gt;
# Сколько байт в бите?&lt;br /&gt;
# Докажите, что для монеты энтропия максимальна в случае честной монеты&lt;br /&gt;
# Докажите, что для $n$ исходов энтропия максимальна если они все равновероятны&lt;br /&gt;
# Найдите энтропию для геометрического распределения с $p = 1/2$ (счетное число исходов, $i$-й исход происходит с вероятностью $1/2^i$).&lt;br /&gt;
# Найдите энтропию для геометрического распределения с произвольным $p$ (счетное число исходов, $i$-й исход происходит с вероятностью $(1-p)p^i$).&lt;br /&gt;
# Пусть заданы полные системы событий $A = \{a_1, ..., a_n\}$ и $B = \{b_1, ..., b_m\}$. Определим условную энтропию $H(A | B)$ как $-\sum\limits_{i = 1}^m P(b_i) \sum\limits_{j = 1}^n P(a_j | b_i) \log P(a_j | b_i))$. Докажите, что $H(A | B) + H(B) = H(B | A) + H(A)$&lt;br /&gt;
# Что можно сказать про $H(A | B)$ если $a_i$ и $b_j$ независимы для любых $i$ и $j$?&lt;br /&gt;
# Что можно сказать про $H(A | A)$?&lt;br /&gt;
# Зафиксируем любой язык программирования. Колмогоровской сложностью слова $x$ называется величина $K(x)$ - минимальная длина программы на зафиксированном языке программирования, которая на пустом входе выводит $x$. Обозначим длину слова $x$ как $|x|$. Докажите, что $K(x) \le |x| + c$ для некоторой константы $c$.&lt;br /&gt;
# Предложите семейство слов $x_1, x_2, \ldots, x_n, \ldots$, где $|x_i|$ строго возрастает и выполнено $K(x_i) = o(|x_i|)$.&lt;br /&gt;
# Предложите семейство слов $x_1, x_2, \ldots, x_n, \ldots$, где $|x_i|$ строго возрастает и выполнено $K(x_i) = o(\log_2 |x_i|)$.&lt;br /&gt;
# Колмогоровская сложность и энтропия Шеннона. Для слова $x$, в котором $i$-й символ алфавита встречается $f_i$ раз обозначим как $H(x)$ величину, равную энтропии случайного источника с распределением $p_i = f_i/|x|$. Докажите, что $K(x) \le nH(x) + O(\log n)$.&lt;br /&gt;
# Докажите, что для любого $c &amp;gt; 0$ найдется слово, для которого $K(x) &amp;lt; c n H(x)$&lt;br /&gt;
# Рассмотрим случайное блуждание точки на прямой, пусть точка начинает в точке $p$ ($p$ - целое) и каждую секунду переходит равновероятно на 1 влево или вправо. Точка поглощается в точках 0 и $n$ ($n$ целое, больше $p$). Найдите вероятность поглощения в точке 0.&lt;br /&gt;
# Для заданной рациональной дроби $p/q$ постройте марковскую цепь, все переходы которой имеют вероятность $1/2$, которая имеет поглощающее состояние с вероятностью поглощения $p/q$.&lt;br /&gt;
# Для заданной рациональной дроби $p/q$ постройте марковскую цепь, все переходы которой имеют вероятность $1/3$, которая имеет поглощающее состояние с вероятностью поглощения $p/q$.&lt;br /&gt;
# Для заданной рациональной дроби $p/q$ и целого $n$ постройте марковскую цепь, все переходы которой имеют вероятность $1/n$, которая имеет поглощающее состояние с вероятностью поглощения $p/q$.&lt;br /&gt;
# Рассмотрим случайное блуждание точки на прямой, пусть точка начинает в точке 0 и каждую секунду переходит равновероятно на 1 влево или вправо. Чему равно математическое ожидание координаты точки после $n$ шагов?&lt;br /&gt;
# Рассмотрим случайное блуждание точки на прямой, пусть точка начинает в точке 0  и каждую секунду переходит равновероятно на 1 влево или вправо. Докажите, что математическое ожидание максимума координаты точки за $n$ шагов есть $O(\sqrt{n})$. Поясните разницу с предыдущим заданием.&lt;br /&gt;
# Дана марковская цепь с двумя состояниями и вероятностью перехода из 1 в 2 равной $a$, вероятностью перехода из 2 в 1 равной $b$. Найдите в явном виде $n$-ю степень матрицы переходов.&lt;br /&gt;
# Предложите алгоритм решения задачи 41 для произвольных выигрышных строк Васи и Пети (работающий за полином от суммы длин этих строк).&lt;br /&gt;
# Петя и Вася играют в игру. Они бросают честную монету, и выписывают результаты бросков. У каждого из игроков есть критерий победы, выигрывает тот, чей критерий наступит раньше. Петя выигрывает в тот момент, когда результаты последних трех бросков равны 001. Какую строку длины 3 оптмально выбрать Васе, чтобы его вероятность выигрыша была максимальна?&lt;br /&gt;
# Предложите решение предыдущей задачи для произвольной выигрышной строки Пети (за полином от длины этой строки).&lt;br /&gt;
# Пусть последовательно генерируется последовательность из 0 и 1 длины $n$. Каждый элемент последовательности определяется с помощью броска честной монеты. Определите, с какой вероятностью некоторый префикс этой последовательности представляет собой запись двоичного числа, которое делится на 3.&lt;br /&gt;
# Пусть последовательно генерируется последовательность из 0 и 1 длины $n$. Каждый элемент последовательности определяется с помощью броска честной монеты. Предложите алгоритм определния, с какой вероятностью некоторый префикс этой последовательности представляет собой запись двоичного числа, которое делится на $p$ для заданного целого $p$.&lt;br /&gt;
# Пусть $L$ - формальный язык. Докажите, что $(L^*)^* = L^*$&lt;br /&gt;
# Пусть $R$ и $S$ - языки. Докажите или опровергните, что $(R \cup S)^* = R^* \cup S^*$.&lt;br /&gt;
# Пусть $R$ и $S$ - языки. Докажите или опровергните, что $(R \cap S)^* = R^* \cap S^*$.&lt;br /&gt;
# Пусть $R$ и $S$ - языки. Докажите или опровергните, что $(R \cup S)^* = (R^*S^*)^*$.&lt;br /&gt;
# Пусть $R$ и $S$ - языки. Обозначим как $RS$ язык слов, представимых в виде конкатенации слова из $R$ и слова из $S$ (в этом порядке). Докажите или опровергните, что $(R\cup S)T=RT \cup  ST$, $(R\cap S)T=RT \cap  ST$.&lt;br /&gt;
# Пусть $L$ - язык. Обозначим как $Lc$ язык, который получается из $L$ дописыванием в конец каждому слову символа $c$. Обозначим как $Lc^{-1}$ язык, который получается из $L$ откидыванием всех слов, которые не заканчиваются на $c$, а затем у оставшихся слов откидыванием конечного символа $c$. Докажите или опровергните, что $(Lc)c^{-1}=L$, $(Lc^{-1})c=L$.&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых четность числа 0 равна четности числа 1&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых число нулей кратно 3&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых число нулей не кратно 3. Сделайте вывод из последних двух заданий.&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых нет трех нулей подряд&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых есть три нуля подряд&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, которые представляют собой двоичную запись чисел, кратных 5&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых число нулей кратно 3 и которые представляют собой двоичную запись чисел кратных 5.&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых число нулей кратно 3 или которые представляют собой двоичную запись чисел кратных 5. Сделайте вывод из последних двух заданий.&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, в которых число единиц кратно 3. Сделайте вывод.&lt;br /&gt;
# Постройте детерминированный конечный автомат для языка слов над бинарным алфавитом, в которых второй символ с конца равен последнему символу.&lt;br /&gt;
# Для заданного ДКА размера $n$ посчитать количество слов длины $d$, которые он допускает за $O(dn)$.&lt;br /&gt;
# То же самое, что в предыдущей, но за $O(\log{(d)} \cdot Poly(n))$.&lt;br /&gt;
# Посчитать количество слов длины не больше $d$, которые допускает автомат за $O(\log{(d)} \cdot Poly(n))$.&lt;br /&gt;
# Запишите регулярное выражения для слов над бинарным алфавитом, содержащих два нуля подряд.&lt;br /&gt;
# Запишите регулярное выражения для слов над бинарным алфавитом, содержащих не более одного места, где встречаются два нуля подряд.&lt;br /&gt;
# Запишите регулярное выражения для слов над бинарным алфавитом, не содержащих два нуля подряд.&lt;br /&gt;
# Запишите регулярное выражения для слов над алфавитом $\{a, b, c\}$, содержащих нечетное число букв $a$.&lt;br /&gt;
# Запишите регулярное выражения для слов над бинарным алфавитом, задающих целое число в двоичной системе, не меньшее 8.&lt;br /&gt;
# Запишите регулярное выражения для слов над бинарным алфавитом, задающих целое число в двоичной системе, не меньшее 51.&lt;br /&gt;
# Запишите регулярное выражения для слов над алфавитом $\{a, b, c\}$, содержащих хотя бы одну букву $a$ и хотя бы одну букву $b$.&lt;br /&gt;
# Запишите регулярное выражения для слов над алфавитом $\{a, b, c\}$, содержащих хотя бы две буквы $a$ и хотя бы одну букву $b$.&lt;br /&gt;
# Запишите регулярное выражения для слов над бинарным алфавитом, которые представляют собой двоичную запись числа, кратного трем.&lt;br /&gt;
# Постройте детерминированный конечный автомат для языка слов над бинарным алфавитом, в которых пятый символ с конца - единица.&lt;br /&gt;
# Докажите, что любой детерминированный автомат для языка слов над бинарным алфавитом, в которых $k$-й символ с конца равен 0, содержит $\Omega(2^k)$ состояний. &lt;br /&gt;
# Можно ли обобщить два предыдущих задания для любого размера алфавита $c$ следующим образом: построить семейство языков, для которых будут существовать НКА, содержащий $O(k)$ состояний, но любые ДКА будут содержать $\Omega(c^k)$ состояний?&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, которые представляют собой развернутую двоичную запись чисел кратных 5 (сначала на вход подаются младшие разряды).&lt;br /&gt;
# Постройте конечный автомат для языка слов над бинарным алфавитом, которые представляют собой развернутую двоичную запись чисел кратных 6 (сначала на вход подаются младшие разряды).&lt;br /&gt;
# Докажите нерегулярность языка, каждое слово которого содержит поровну 0 и 1.&lt;br /&gt;
# Докажите нерегулярность языка палиндромов.&lt;br /&gt;
# Докажите нерегулярность языка тандемных повторов $L = \{ ww | w \in \Sigma^* \}$.&lt;br /&gt;
# Докажите нерегулярность языка $0^n1^m$, $n \le m$&lt;br /&gt;
# Докажите нерегулярность языка $0^n1^m$, $n \ne m$&lt;br /&gt;
# Докажите нерегулярность языка $0^{n^2}$&lt;br /&gt;
# Докажите нерегулярность языка $0^p$, $p$ {{---}} простое&lt;br /&gt;
# Докажите нерегулярность языка двоичных записей простых чисел&lt;br /&gt;
# Докажите нерегулярность языка $0^n1^m$, $gcd(n, m) = 1$&lt;br /&gt;
# Докажите нерегулярность языка $0^a1^b2^c$, $a \ne b$ или $b \ne c$&lt;br /&gt;
# Приведите пример нерегулярного языка, для которого выполнена лемма о разрастании&lt;br /&gt;
# Из алгоритма построения множества различимых состояний следует, что $u$ и $v$ автомата различимы, то $u$ и $v$ различимы строкой длины $O(n^2)$. Докажите, что если состояния $u$ и $v$ автомата различимы, то $u$ и $v$ различимы строкой длины $O(n)$.&lt;br /&gt;
# Предложите алгоритм проверки того, что регулярный язык бесконечен&lt;br /&gt;
# Предложите алгоритм подсчёта числа слов в регулярном языке (если язык бесконечен, алгоритм должен выдать информацию, что он бесконечен). Алгоритм должен работать за полином от числа состояний в автомате.&lt;br /&gt;
# Предложите алгоритм проверки того, что регулярный язык является беспрефиксным&lt;br /&gt;
# Предложите алгоритм проверки того, что один регулярный язык является подмножеством другого&lt;br /&gt;
# Предложите алгоритм проверки того, что регулярные языки не пересекаются&lt;br /&gt;
# Предложите алгоритм проверки того, что объединение двух заданных регулярных языков совпадет с некоторым третьим заданным.&lt;br /&gt;
# Приведите пример регулярного языка и двух неизоморфных недетерминированных автоматов для него, которые при этом имеют минимальное число состояний среди всех недетерминированных автоматов для этого языка.&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=70515</id>
		<title>Список заданий по ДМ 2к 2019 весна</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C_2%D0%BA_2019_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0&amp;diff=70515"/>
				<updated>2019-03-20T07:51:41Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Формальный степенной ряд $\exp(s) = e^s$ определен как $e^s=1+\frac{1}{1!}s+\frac{1}{2!}s^2+\frac{1}{3!}s^3+\ldots+\frac{1}{n!}s^n+\ldots$. Логично, что $e^{-s}=1-\frac{1}{1!}s+\frac{1}{2!}s^2-\frac{1}{3!}s^3+\ldots+(-1)^n\frac{1}{n!}s^n+\ldots$. Докажите, используя определение умножения для степенных рядов, что $e^se^{-s}=1$.&lt;br /&gt;
# Формальный степенной ряд $(1+s)^\alpha$ определен как $(1+s)^\alpha=1+\frac{\alpha}{1}s+\frac{\alpha(\alpha-1)}{1 \cdot 2}s^2+\ldots+\frac{\alpha(\alpha-1)\ldots(\alpha-n+1)}{1 \cdot 2 \cdot\ldots\cdot n}s^n+\ldots$. Докажите, что $(1+s)^\alpha(1+s)^\beta=(1+s)^{\alpha+\beta}$.&lt;br /&gt;
# Формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)$ определен как $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$. Докажите, что $\exp\left(\ln\left(\frac{1}{1-s}\right)\right)=(1-s)^{-1}$.&lt;br /&gt;
# Пусть $B(s) = b_1s+b_2s^2+b_3s^3+\ldots+b_ns^n+\ldots$, причем $b_1\ne 0$. Пусть формальные степенные ряды $A(s)$ и $C(s)$ таковы, что $A(B(s)) = s$, $B(C(s))=s$. Докажите, что $A(s)=C(s)$ Этот ряд называется обратным к $B(s)$, обозначается как $B^{-1}(s)$.&lt;br /&gt;
# Будем называть нулем степенной ряд $0(s) = 0 + 0s + 0s^2 + \ldots$. Докажите, что $A(s) \ne 0(s)$, $B(s) \ne 0(s)$, то $A(s)B(s) \ne 0(s)$.&lt;br /&gt;
# Докажите, что $(A(s)B(s))' = A'(s)B(s) + A(s)B'(s)$.&lt;br /&gt;
# Докажите, что $\int(A'(s)B(s) + A(s)B'(s)) = A(s)B(s) - A(0)B(0)$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $0 \cdot 1, 1 \cdot 2, 2 \cdot 3, 3 \cdot 4, \ldots, (n - 1) \cdot n, \ldots$.&lt;br /&gt;
# Найдите производящую функцию для последовательности $1^2, 2^2, 3^2, \ldots, n^2, \ldots$.&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0 + a_1, a_1 + a_2, \ldots, a_k+a_{k+1}$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_0 + a_1, a_0 + a_1 + a_2, \ldots, \sum\limits_{i=0}^ka_i,\ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_1b, a_2b^2, \ldots, a_kb^k, \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, 0, a_1, 0, a_2, 0, a_3 \ldots$&lt;br /&gt;
# Последовательность $a_0, a_1, a_2, \ldots, a_k, \ldots$ имеет производящую функцию $A(s)=a_0+a_1s+a_2s^2+\ldots$. Найдите производящую функцию последовательности $a_0, a_2, a_4, a_6 \ldots$&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_1+\ldots+f_n=f_{n+2}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0+f_2+\ldots+f_{2n}=f_{2n+1}$.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ доминошками и единичными клетками.&lt;br /&gt;
# Найдите производящую функцию для замощений прямоугольника $2\times n$ уголками (квадратами $2\times 2$ с вырезанной одной клеткой) и единичными клетками. &lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_1+f_3+\ldots+f_{2n-1}=f_{2n}-1$.&lt;br /&gt;
# Пользуясь производящей функцией для чисел Фибоначчи, докажите утверждение, что $f_0^2+f_1^2+f_2^2+\ldots+f_n^2=f_nf_{n+1}$.&lt;br /&gt;
# Найдите производящую функцию для чисел &amp;quot;трибоначчи&amp;quot; $f_0=f_1=f_2=1$, $f_n = f_{n-1}+f_{n-2}+f_{n-3}$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентностью $f_0=f_1=f_2=1$, $f_n = f_{n-1}-2f_{n-3}$.&lt;br /&gt;
# Производящая функция называется рациональной, если она представима в виде отношения двух многочленов. Для производящих функций каждой из следующих последовательностей выясните, является ли она рациональной, если да, приведите ее представление в таком виде. Последовательность $1, -2, 3, -4, 5, \ldots$.&lt;br /&gt;
# Последовательность $2, -6, 12, \ldots, (-1)^k(k+1)(k+2),\ldots$&lt;br /&gt;
# Последовательность $0, 1, 4, 9, 16, 25, \ldots, k^2,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 8, 27, 64, 125, \ldots, k^3,\ldots$&lt;br /&gt;
# Последовательность $0, 1, 2^s, 3^s, 4^s, 5^s, \ldots, k^s,\ldots$ для константного целого $s&amp;gt;0$&lt;br /&gt;
# Последовательность $1, -4, 9, -16, \ldots, (-1)^k(k+1)^2,\ldots$&lt;br /&gt;
# Последовательность $1, 1, 4, 9, 25, \ldots, F_k^2,\ldots$&lt;br /&gt;
# Найдите производящую функцию для чисел Каталана.&lt;br /&gt;
# Путь Моцкина - путь, начинающийся в точке $(0, 0)$, составленный из векторов $(1, 1)$, $(1, 0)$, $(1, -1)$, не опускающийся ниже оси $OX$ и заканчивающийся в точке $(n, 0)$. Напишите рекуррентное соотношение для числа путей Моцкина, найдите производящую функцию для числа таких путей.&lt;br /&gt;
# Рассмотрим множество путей на прямой, начинающихся в 0, состоящих из шагов длины 1 вправо или влево. Будем называть такой путь блужданием. Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в 0 и не заходящих в отрицательную полупрямую. &lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$.&lt;br /&gt;
# Найдите рекуррентную формулу и производящую функцию для числа блужданий из $n$ шагов, оканчивающихся в фиксированной точке $N &amp;gt; 0$ и не заходящих в отрицательную полупрямую.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^2$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0 = 2$, $a_n = a_{n-1}^3$.&lt;br /&gt;
# Найдите производящую функцию для последовательности, заданной рекуррентным соотношением $a_0=a_1= 2$, $a_n = a_{n-1}\cdot a_{n - 2}$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 5a_{n-1}-6a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 6a_{n-2}-a_{n-1}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 4a_{n-1}-4a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Петя заинтересовался, что будет, если последовательность, заданная линейным рекуррентным соотношением, имеет производящую фукнцию, в знаменателе которой стоит $Q(t)=(1-ct)(1+ct)$, ведь тогда асимптотическое поведение членов на четных и нечетных позициях разное. Разберитесь.&lt;br /&gt;
# Последовательность задана рекуррентным соотношением $a_0=a_1=1$, $a_n = 2a_{n-1}-2a_{n-2}$. Оцените асимптотическое поведение $a_n$ при $n\to+\infty$.&lt;br /&gt;
# Докажите, что если последовательность $a_n$ допускает представление в виде $a_n = \sum_i p_i(n)q_i^n$, где $p_i(n)$ - полиномы, и все $q_i$ различны, то такое представление единственно с точностью до порядка слагаемых.&lt;br /&gt;
# Используя результат из предыдушего задания, докажите, что формальный степенной ряд $\ln\left(\frac{1}{1-s}\right)=s+\frac{1}{2}s^2+\frac{1}{3}s^3+\ldots+\frac{1}{n}s^n+\ldots$ не представим в виде отношения двух полиномов.&lt;br /&gt;
# Произведением Адамара двух производящих функций $A(t)$ и $B(t)$ называется призводящая функция для ряда $C(t) = a_0b_0+a_1b_1t+a_2b_2t^2+\ldots+a_nb_nt^n+\ldots$. Докажите, что если $A(t)$ и $B(t)$ являются отношениями двух полиномов, то таким же свойством обладает и $C(t)$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-x}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x}$ и $\frac{1}{1-3x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1+3x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Найдите произведение Адамара $\frac{1}{1-2x-x^2}$ и $\frac{1}{1-2x}$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов. Пусть $M = MSet(A)$, а $P = Set(A)$. Докажите, что $M(t) = P(t)M(t^2)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^k(A)$ множество последовательностей длины $k$, каждый элемент которого является последовательностью из $k$ объектов. Найдите производящую функцию для $Seq^k(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\le k}(A)$ множество последовательностей длины не большей $k$, каждый элемент которого является последовательностью из не более чем $k$ объектов. Найдите производящую функцию для $Seq^{\le k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Обозначим как $Seq^{\ge k}(A)$ множество последовательностей длины не меньшей $k$, каждый элемент которого является последовательностью из не менее чем $k$ объектов. Найдите производящую функцию для $Seq^{\ge k}(A)$.&lt;br /&gt;
# Пусть $A$ - семейство комбинаторных объектов с производящей функцией $A(t)$. Пусть $\mathbb{N}$ - множество натуральных чисел, (вес числа $k$ равен $k$). Пусть $T \subset \mathbb{N}$, обозначим как $T(t)$ производящую функцию для множества $T$. Обозначим как $Seq_T(A)$ множество последовательностей элементов из $A$, где длина последовательности лежит в множестве $T$. Обозначим как $Z$ множество из одного элемента веса $1$. Обозначим как $C^T$ множество представлений в виде суммы, где порядок слагаемых важен и слагаемые выбраны из множества $T$. Осознайте, что $C^T = Seq(Seq_T(Z))$. Найдите производяющую функцию для $C^T$.&lt;br /&gt;
# Обозначим как $P^T$ множество разбиений на слагаемые, где порядок слагаемых не важен, а слагаемые выбраны из множества $T$. Осознайте, что $P^T = MSet(Seq_T(Z))$. Найдите производяющую функцию для $P^T$.&lt;br /&gt;
# Индекс Хирша. Докажите, что $\prod\limits_{n=1}^\infty\frac{1}{1-z^n}=\sum\limits_{n\ge 0}\frac{z^{n^2}}{((1-z)\cdots(1-z^n))^2}$.&lt;br /&gt;
# Докажите, что $\frac{1}{1-z}=\prod\limits_{j=0}^\infty(1+z^{2^j})$.&lt;br /&gt;
# Экспоненциальная производящая функция для целочисленной последовательности называется функцией Гурвица. Докажите, что сумма, произведение, интеграл и производная функции Гурвица является функцией Гурвица.&lt;br /&gt;
# Докажите, что результат подстановки функции Гурвица в функцию Гурвица является функцией Гурвица&lt;br /&gt;
# Опишите класс помеченных объектов $seq(cyc(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Будем обозначать $seq_T$, $cyc_T$, $set_T$ соответственно последовательности, циклы и множества, размер которых принадлежит множеству $T$. Опишите класс помеченных объектов $set(cyc_{&amp;gt; 1}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Опишите класс помеченных объектов $set(cyc_{1, 2}(Z))$. Найдите его экспоненциальную производящую функцию.&lt;br /&gt;
# Сюрьекции на $r$-элементное множество. Осознайте, что $seq_{=r}(set_{\ge 1}(Z))$ задаёт сюрьекции на $r$-элементное множество. Найдите экспоненциальную производящую функцию.&lt;br /&gt;
# Разбиения на $r$ множеств. Осознайте, что $set_{=r}(set_{\ge 1}(Z))$ задаёт разбиения на $r$-элементное множество. Найдите экспоненциальную производящую функцию. Что стоит при $z^n$?&lt;br /&gt;
# Гиперболический синус $\mathrm{sh}\,z$ равен $\frac{1}{2}(e^{z}-e^{-z})$. Гиперболический косинус $\mathrm{ch}\,z$ равен $\frac{1}{2}(e^{z}+e^{-z})$. Рассмотрим разбиения $n$-элементного множества на непустые подмножества. Для произвольных подмножеств экспоненциальная производящая функция равна $e^{e^z-1}$. Докажите, что для разбиений на нечетное число подмножеств экспоненциальная производящая функция равна $\mathrm{sh}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на четное число подмножеств экспоненциальная производящая функция равна $\mathrm{ch}(e^z-1)$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит нечетное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{sh}\,z}$.&lt;br /&gt;
# Докажите, что для разбиений на произвольное число подмножеств, каждое из которых содержит четное число элементов, экспоненциальная производящая функция равна $e^{\mathrm{ch}\,z-1}$. Почему здесь в показателе степени есть $-1$, а в предыдущем задании нет?&lt;br /&gt;
# Обобщите четыре предыдущих задания. Как выглядят экспоненциальные производящие функции для разбиений на (не)четное число подмножеств, каждое из которых содержит (не)четное число элементов? (Необходимо дать четыре ответа для всех комбинаций)&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%BE%D0%B3%D0%BE&amp;diff=68273</id>
		<title>Диаграмма Вороного</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%BE%D0%B3%D0%BE&amp;diff=68273"/>
				<updated>2019-01-10T13:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Источники */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Определения ==&lt;br /&gt;
=== Совсем неформальное определение ===&lt;br /&gt;
[[Файл:voronoi-diagram.png|200px|thumb|right|Пример диаграммы Вороного]]&lt;br /&gt;
Пусть есть карта города, на которой точками обозначены почтовые отделения. Человек хочет отправить письмо, и он пойдёт на ближайшую почту. Ему интересно знать, какое отделение ближе, для любой точки города — необходимость отправить письмо может наступить неожиданно. Для этого он может взять карту и расчертить её на ячейки так, чтобы внутри каждой ячейки находилось только одно отделение, а для всех остальных точек ячейки именно эта почта была ближайшей. Полученная картинка и будет диаграммой Вороного для точек-почт.&lt;br /&gt;
&lt;br /&gt;
=== Неформальное определение ===&lt;br /&gt;
Есть множество точек &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; на плоскости. Кусочек плоскости из точек &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; такой, что для всех &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; ближайшей точкой из множества &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; является одна и та же точка &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, называется ячейкой Вороного точки &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;. Разбиение плоскости на такие ячейки для всех точек &amp;lt;tex&amp;gt;p_i \in P&amp;lt;/tex&amp;gt; называется диаграммой Вороного для множества &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Формальное определение ===&lt;br /&gt;
&amp;lt;tex&amp;gt;P = \{ p_1, p_2, ..., p_n\}&amp;lt;/tex&amp;gt; — множество точек на плоскости.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&amp;lt;tex&amp;gt;p_i \in P&amp;lt;/tex&amp;gt; называется '''сайтом''' (''site'').&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition='''Ячейка Вороного''' (''Voronoi cell'', &amp;lt;tex&amp;gt;\mathcal{V}(p_i)&amp;lt;/tex&amp;gt;) — множество точек плоскости &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; таких, что для фиксированного сайта &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; и любых других сайтов &amp;lt;tex&amp;gt;p_j \in P, \ j \neq i&amp;lt;/tex&amp;gt; верно неравенство &amp;lt;tex&amp;gt;\rho(q, p_i) &amp;lt; \rho(q, p_j)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition='''Диаграмма Вороного''' (''Voronoi diagram'', &amp;lt;tex&amp;gt;Vor(P)&amp;lt;/tex&amp;gt;) для сайтов &amp;lt;tex&amp;gt;P = \{ p_1, p_2, ..., p_n\}&amp;lt;/tex&amp;gt; на плоскости — это разбиение плоскости на ячейки Вороного для каждого сайта из &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
В зависимости от контекста будем называть диаграммой Вороного как разбиение на ячейки, так и [[Основные определения теории графов|граф]] из вершин и рёбер, составляющих эти ячейки.&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
=== Связь с пересечением полуплоскостей ===&lt;br /&gt;
Возьмём две точки плоскости: &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;. Проведём серединный перпендикуляр к отрезку &amp;lt;tex&amp;gt;pq&amp;lt;/tex&amp;gt;; полученную полуплоскость, которая содержит в себе &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, обозначим &amp;lt;tex&amp;gt;h(p, q)&amp;lt;/tex&amp;gt;, другую — &amp;lt;tex&amp;gt;h(q, p)&amp;lt;/tex&amp;gt;. Заметим, что для точки &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; выполняется &amp;lt;tex&amp;gt;r \in h(p, q)&amp;lt;/tex&amp;gt; тогда и только тогда, когда &amp;lt;tex&amp;gt;\rho(r, p) &amp;lt; \rho(r, q)&amp;lt;/tex&amp;gt;. Отсюда вытекает следующее:&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=intersect&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;\mathcal{V}(p_i) = \bigcap\limits_{1 \leqslant j \leqslant n, j \neq i} h(p_i, p_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Отсюда получаем, что ячейка Вороного — это пересечение &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt; полуплоскостей, и поэтому представляет собой (возможно, неограниченную) открытую выпуклую область с не более чем &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt; вершинами и &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt; рёбрами.&lt;br /&gt;
&lt;br /&gt;
=== Топология диаграммы Вороного ===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; — множество из &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; сайтов. Если они все лежат на одной прямой, то &amp;lt;tex&amp;gt;Vor(P)&amp;lt;/tex&amp;gt; представляет собой &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt; параллельную прямую. Иначе &amp;lt;tex&amp;gt;Vor(P)&amp;lt;/tex&amp;gt; связная и все её рёбра — либо отрезки, либо лучи.&lt;br /&gt;
|proof=[[Файл:voronoi-not-lines.png|200px|right]] В случае, если все сайты лежат на одной прямой, каждая пара соседних сайтов порождает серединный перпендикуляр к отрезку, содержащему их, и, соответственно, к прямой, которая содержит все сайты. Так получаются &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt; прямая, каждая из которых перпендикулярна прямой, содержащей сайты, а значит, эти прямые параллельны.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь случай, когда сайты не лежат на одной прямой. Покажем, что рёбра — это отрезки или лучи, от противного. Предположим, что есть ребро &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;, являющееся прямой. Пусть оно — граница ячеек &amp;lt;tex&amp;gt;\mathcal{V}(p_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathcal{V}(p_j)&amp;lt;/tex&amp;gt;. Пусть точка &amp;lt;tex&amp;gt;p_k \in P&amp;lt;/tex&amp;gt; не лежит на прямой &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt; (по условию такая точка существует). Тогда серединный перпендикуляр к &amp;lt;tex&amp;gt;p_j p_k&amp;lt;/tex&amp;gt; не параллелен &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;, и, значит, он его пересекает. Но тогда та часть &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;, что лежит в &amp;lt;tex&amp;gt;h(p_k, p_j)&amp;lt;/tex&amp;gt;, не может быть границей &amp;lt;tex&amp;gt;\mathcal{V}(p_j)&amp;lt;/tex&amp;gt;, потому что она ближе к &amp;lt;tex&amp;gt;p_k&amp;lt;/tex&amp;gt;, чем к &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt;. Пришли к противоречию.&lt;br /&gt;
&lt;br /&gt;
Докажем теперь, что диаграмма связна. Предположим, что это не так. Тогда на её рёбрах найдутся две точки &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;, между которыми нет пути по рёбрам диаграммы. Рассмотрим отрезок &amp;lt;tex&amp;gt;st&amp;lt;/tex&amp;gt;. Он пересекает некоторое количество ячеек диаграммы. Пусть он пересекает какую-то ячейку в точках &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt;. От точки &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; до точки &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt; можно добраться по рёбрам тогда и только тогда, когда ячейка связна. Раз пути из &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нет, то какая-то из ячеек, пересекаемых отрезком &amp;lt;tex&amp;gt;st&amp;lt;/tex&amp;gt;, несвязная. Это возможно, только если она представляет собой полосу, ограниченную двумя параллельными прямыми. Но в нашем случае в диаграмме не может быть прямых, пришли к противоречию.&lt;br /&gt;
&lt;br /&gt;
[[Файл:voronoi-connected.png|500px]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Размер структуры ===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=Для &amp;lt;tex&amp;gt;n \geqslant 3&amp;lt;/tex&amp;gt; сайтов диаграмма Вороного содержит не больше &amp;lt;tex&amp;gt;2n - 5&amp;lt;/tex&amp;gt; вершин и &amp;lt;tex&amp;gt; 3n - 6&amp;lt;/tex&amp;gt; рёбер.&lt;br /&gt;
|proof=[[Файл:voronoi-infinite-vertex.png|200px|right]]Для случая сайтов, лежащих на одной прямой, утверждение напрямую следует из вида диаграммы для этого случая, поэтому рассмотрим общий случай. По [[Формула Эйлера|формуле Эйлера]] &amp;lt;tex&amp;gt;v - e + f = 2&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; — число вершин, &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt; — число рёбер и &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; — число граней связного планарного графа. Мы не можем сразу применить эту формулу к &amp;lt;tex&amp;gt;Vor(P)&amp;lt;/tex&amp;gt;, потому что в этом графе есть полубесконечные рёбра. Поэтому добавим вершину &amp;lt;tex&amp;gt;v_\infty&amp;lt;/tex&amp;gt;, и все полубесконечные рёбра мы превратим в рёбра, инцидентные ей. Таким образом мы увеличили число вершин на одну, а число рёбер не изменилось. Число граней равно &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; по определению диаграммы Вороного. Тогда по формуле Эйлера получаем &amp;lt;tex&amp;gt;(v + 1) - e + n = 2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Сумма степеней всех вершин полученного графа равна &amp;lt;tex&amp;gt;2e&amp;lt;/tex&amp;gt;, так как у каждого ребра есть ровно два конца (нет петель). Также из каждой вершины исходят как минимум три ребра. Отсюда получаем &amp;lt;tex&amp;gt;2e \geqslant 3 (v + 1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Домножим равенство на два и вычтем из него полученную нижнюю границу для &amp;lt;tex&amp;gt;2 \cdot e&amp;lt;/tex&amp;gt;, в результате получим &amp;lt;tex&amp;gt; v \leqslant 2n - 5&amp;lt;/tex&amp;gt;. Далее подставим этот результат в равенство и получим &amp;lt;tex&amp;gt;e \leqslant 3n - 6&amp;lt;/tex&amp;gt;, что и требовалось доказать.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Связь с триангуляцией Делоне ===&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition='''Наибольшая пустая окружность''' точки &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; по отношению к &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; (''largest empty circle of ''&amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;'' with respect to ''&amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;C_P(q)&amp;lt;/tex&amp;gt;) — наибольшая окружность с центром в &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; такая, что во внутренности соответствующего ей круга не лежит ни одного сайта из &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=Точка &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; — вершина диаграммы Вороного в том и только в том случае, когда &amp;lt;tex&amp;gt;C_P(q)&amp;lt;/tex&amp;gt; содержит три и более сайтов на своей границе.&lt;br /&gt;
|proof=Предположим, что &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; существует, а &amp;lt;tex&amp;gt;p_i, \ p_j, \ p_k&amp;lt;/tex&amp;gt; — соответствующие точки. Так как внутри &amp;lt;tex&amp;gt;C_P(q)&amp;lt;/tex&amp;gt; нет других сайтов, а &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; равноудалена от точек &amp;lt;tex&amp;gt;p_i, \ p_j, \ p_k&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; должна быть на границе &amp;lt;tex&amp;gt;\mathcal{V}(p_i), \ \mathcal{V}(p_j), \ \mathcal{V}(p_k)&amp;lt;/tex&amp;gt; одновременно, то есть вершиной диаграммы.&lt;br /&gt;
Докажем в другую сторону: каждая вершина &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; диаграммы инцидентна минимум трём рёбрам, и, поэтому, как минимум трём ячейкам &amp;lt;tex&amp;gt;\mathcal{V}(p_i), \ \mathcal{V}(p_j), \ \mathcal{V}(p_k)&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; лежит на равном расстоянии от &amp;lt;tex&amp;gt;p_i, \ p_j, \ p_k&amp;lt;/tex&amp;gt; и не может быть другого сайта ближе к &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;, так как иначе &amp;lt;tex&amp;gt;\mathcal{V}(p_i), \ \mathcal{V}(p_j), \ \mathcal{V}(p_k)&amp;lt;/tex&amp;gt; не сойдутся в &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;. Поэтому можно построить окружность с центром в &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;p_i, \ p_j, \ p_k&amp;lt;/tex&amp;gt; на границе так, что внутри не будет других сайтов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=Серединный перпендикуляр к отрезку &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt; образует ребро диаграммы Вороного в том и только в том случае, если на нём есть точка &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; такая, что &amp;lt;tex&amp;gt;C_P(q)&amp;lt;/tex&amp;gt; содержит на своей границе только сайты &amp;lt;tex&amp;gt;p_i, \ p_j&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=[[Файл:voronoi-circles.png|200px|right]]Предположим, что &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; существует. Тогда, так как &amp;lt;tex&amp;gt;C_P(q)&amp;lt;/tex&amp;gt; не содержит в себе сайтов и содержит &amp;lt;tex&amp;gt;p_i, \ p_j&amp;lt;/tex&amp;gt; на границе, &amp;lt;tex&amp;gt; \rho(q, p_i) = \rho(q, p_j) \leqslant \rho(q, p_k), \ 1 \leqslant k \leqslant n&amp;lt;/tex&amp;gt;. Отсюда выходит, что &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; — вершина &amp;lt;tex&amp;gt;Vor(P)&amp;lt;/tex&amp;gt; или лежит на ребре диаграммы. Но по предыдущей лемме выходит, что &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; не может быть вершиной диаграммы. Значит, она лежит на ребре, заданном серединным перпендикуляром к &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Докажем в другую сторону: пусть серединный перпендикуляр к &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt; задаёт ребро диаграммы. Наибольшая пустая окружность любой точки &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; на этом ребре должна содержать на границе &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt; (так как &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; равноудалена от &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt;). Также эта окружность не должна содержать никаких других сайтов на границе, так как тогда она является вершиной.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=Если соединить все сайты, соответствующие смежным ячейкам диаграммы Вороного, получится [[триангуляция Делоне]] для этого множества точек.&lt;br /&gt;
|proof=Если ячейки, соответствующие сайтам &amp;lt;tex&amp;gt;p_i, \ p_j&amp;lt;/tex&amp;gt;, смежны, то серединный перпендикуляр к отрезку &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt; образует ребро диаграммы Вороного, то есть к нему применима предыдущая лемма и можно построить окружность с &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt; на границе, внутри которой не будет других сайтов. Триангуляции Делоне принадлежат [[Триангуляция Делоне#Критерий Делоне для рёбер|те и только те]] рёбра (с поправкой на точки, лежащие на одной окружности), на которых можно построить такую окружность, что внутри неё не будет лежать никаких точек. Тогда ребро &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt; является ребром триангуляции Делоне. За счёт равносильности в обеих используемых леммах мы добавим все рёбра и не построим лишних.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Построение ==&lt;br /&gt;
=== Наивный алгоритм ===&lt;br /&gt;
Будем [[Пересечение полуплоскостей, связь с выпуклыми оболочками|пересекать полуплоскости]] по [[#intersect|свойству ячейки диаграммы]]. Необходимо для каждого сайта пересечь &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt; плоскость, что суммарно делается за &amp;lt;tex&amp;gt;O(n^2 \log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Инкрементальный алгоритм ===&lt;br /&gt;
Храним диаграмму в [[ППЛГ и РСДС (PSLG и DCEL): определение, построение РСДС множества прямых|РСДС]]. Пусть у нас уже есть диаграмма для точек &amp;lt;tex&amp;gt;p_1, p_2, ..., p_i&amp;lt;/tex&amp;gt;. Добавим новый сайт &amp;lt;tex&amp;gt;p_{i+1}&amp;lt;/tex&amp;gt;. Сначала найдём сайт &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt;, в ячейку которого попадает &amp;lt;tex&amp;gt;p_{i+1}&amp;lt;/tex&amp;gt;, перебором. После этого строим новую ячейку: сначала проведём серединный перпендикуляр для &amp;lt;tex&amp;gt;p_{i+1}p_j&amp;lt;/tex&amp;gt;, он пересечёт границу ячейки &amp;lt;tex&amp;gt;\mathcal{V}(p_j)&amp;lt;/tex&amp;gt; с ячейкой &amp;lt;tex&amp;gt;\mathcal{V}(p_k)&amp;lt;/tex&amp;gt;; на следующем шаге будем строить серединный перпендикуляр для &amp;lt;tex&amp;gt;p_{i+1} p_k&amp;lt;/tex&amp;gt; и так далее.&lt;br /&gt;
&lt;br /&gt;
В процессе построения перпендикуляров необходимо обновлять РСДС. Каждый раз, когда новое полуребро &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;, порождаемое &amp;lt;tex&amp;gt;p_{i+1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt;, пересекает существовавшее ранее полуребро &amp;lt;tex&amp;gt;e'&amp;lt;/tex&amp;gt;, создаётся новая вершина &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и начинается новое полуребро &amp;lt;tex&amp;gt;e+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Обновление РСДС происходит следующим образом:&lt;br /&gt;
&lt;br /&gt;
* создаём вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; с полуребром &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;;&lt;br /&gt;
* для полуребра &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt; в РСДС второй конец в вершине &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, следующее полуребро — &amp;lt;tex&amp;gt;e'&amp;lt;/tex&amp;gt;, инцидентные грани — слева &amp;lt;tex&amp;gt;\mathcal{V}(i+1)&amp;lt;/tex&amp;gt;, справа — &amp;lt;tex&amp;gt;\mathcal{V}(j)&amp;lt;/tex&amp;gt;;&lt;br /&gt;
* добавляем в РСДС полуребро &amp;lt;tex&amp;gt;e + 1&amp;lt;/tex&amp;gt; с началом в &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и предыдущим полуребром &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;;&lt;br /&gt;
* удаляем все полурёбра, лежащие между вершиной начала &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt; и вершиной конца &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;, по часовой стрелке;&lt;br /&gt;
* обновляем полуребро, соответствующее грани для &amp;lt;tex&amp;gt;\mathcal{V}(p_j)&amp;lt;/tex&amp;gt; — им становится &amp;lt;tex&amp;gt;e&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждый шаг выполняется за &amp;lt;tex&amp;gt;O(i)&amp;lt;/tex&amp;gt;, значит, суммарно диаграмма из &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; сайтов с нуля создаётся за &amp;lt;tex&amp;gt;O(n^2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Файл:voronoi-incremental-zero-step.png|200px|thumb|Локализация]]&lt;br /&gt;
|[[Файл:voronoi-incremental-first-step.png|200px|thumb|Добавление первого ребра]]&lt;br /&gt;
|[[Файл:voronoi-incremental.png|200px|thumb|Добавление третьего ребра]]&lt;br /&gt;
|[[Файл:voronoi-update-dcel.png|400px|thumb|Обновление структуры при добавлении ребра]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Диаграмма k-го порядка ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition='''Ячейка Вороного''' &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;'''-го порядка''' (&amp;lt;tex&amp;gt;\mathcal{V}_k(p_1, p_2, ..., p_k)&amp;lt;/tex&amp;gt;) — множество точек, имеющих в качестве ближайших &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; соседей множество сайтов &amp;lt;tex&amp;gt;p_1, p_2, ..., p_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Чтобы построить диаграмму &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-го порядка, возьмём диаграмму &amp;lt;tex&amp;gt;k - 1&amp;lt;/tex&amp;gt;-го порядка. Каждая ячейка построена для некоторого набора &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; сайтов. Обозначим множество этих сайтов за &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;. [[Пересечение выпуклых многоугольников|Пересечём]] каждую из этих ячеек с ячейками диаграммы первого порядка, построенной на множестве сайтов &amp;lt;tex&amp;gt;P \setminus S&amp;lt;/tex&amp;gt;. Когда мы пересекаем ячейку &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt;-го порядка для точек &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; с ячейкой первого порядка для точки &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt;, получаем ячейку для множества &amp;lt;tex&amp;gt;S \cup \{p_i\}&amp;lt;/tex&amp;gt;. После пересечения ячеек необходимо объединить те, которые отвечают за одинаковый набор сайтов (это могут быть только соседние по ребру ячейки).&lt;br /&gt;
&lt;br /&gt;
Итого совершаем &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; шагов, на каждом строим &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; диграмм Вороного за время &amp;lt;tex&amp;gt;O(n^3)&amp;lt;/tex&amp;gt;, пересекаем &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; ячеек с &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; ячейками за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; времени, а потом объединяем ячейки за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; (линейное количество соседних рёбер ячейки, а объединение происходит за &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt; за счёт структуры РСДС). Итого &amp;lt;tex&amp;gt;O(k \cdot n^3)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Файл:voronoi-first-order.png|200px|thumb|Диаграмма первого порядка]]&lt;br /&gt;
|[[Файл:voronoi-second-order.png|200px|thumb|Диаграмма второго порядка]]&lt;br /&gt;
|[[Файл:voronoi-third-order.png|200px|thumb|Диаграмма третьего порядка]]&lt;br /&gt;
|[[Файл:voronoi-tenth-order.png|200px|thumb|Диаграмма &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt;-го порядка (она же farthest-point диаграмма) для данного набора сайтов]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Farthest-point диаграмма ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=Диаграмма &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt;-го порядка является '''farthest-point диаграммой''', т.е. в каждой её ячейке все точки являются наиболее удалёнными от какого-то сайта.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Свойства ===&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=Для любой точки &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; плоскости самый удалённый от неё сайт из &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; должен лежать на [[Статические выпуклые оболочки: Джарвис, Грэхем, Эндрю, Чен, QuickHull|выпуклой оболочке]] &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=[[Файл:voronoi-farthest-inside.png|200px|right]]Сайт, не находящийся на выпуклой оболочке, лежит внутри неё по свойствам выпуклой оболочки.&lt;br /&gt;
&lt;br /&gt;
Пусть самый удалённый от точки &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; сайт &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; не лежит на выпуклой оболочке (т.е. лежит внутри неё). Проведём луч &amp;lt;tex&amp;gt;q p_i&amp;lt;/tex&amp;gt;. Он пересечёт ребро выпуклой оболочки &amp;lt;tex&amp;gt;p_j p_k&amp;lt;/tex&amp;gt;. Получатся два смежных угла, рассмотрим тот, который оказался прямым или тупым. Тогда в полученном треугольнике &amp;lt;tex&amp;gt;\rho(q, p_j) &amp;gt; \rho(q, p_i)&amp;lt;/tex&amp;gt;, так как напротив большего угла лежит большая сторона. Пришли к противоречию.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=Сайт, который лежит внутри выпуклой оболочки сайтов, не может иметь ячейку в farthest-point диаграмме.&lt;br /&gt;
|proof=Пусть это не так и сайт &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; лежит внутри выпуклой оболочки и имеет ячейку в farthest-point диаграмме. Тогда внутри неё есть точка &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;. Но по предыдущей лемме самый удалённый для &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; сайт лежит на выпуклой оболочке, а значит, сайт &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; не может быть самым удалённым для &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt;. Пришли к противоречию.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=Каждый сайт, который является вершиной выпуклой оболочки сайтов, имеет ячейку в farthest-point диаграмме.&lt;br /&gt;
|proof=Докажем по индукции.&lt;br /&gt;
&lt;br /&gt;
База индукции: для двух сайтов они оба являются вершинами выпуклой оболочки и оба имеют ячейку в farthest-point диаграмме (дальняя от сайта полуплоскость).&lt;br /&gt;
&lt;br /&gt;
Переход: добавим сайт &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; так, что он станет новой вершиной выпуклой оболочки. Пусть он не имеет ячейку в farthest-point диаграмме, то есть уже имеющаяся перед его добавлением диаграмма не меняется. Для построения farthest-point диаграммы проводятся серединные перпендикуляры между всеми парами сайтов, и полученные полуплоскости пересекаются; раз новой ячейки не добавилось, то серединные перпендикуляры между &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; и остальными сайтами совпали с уже имеющимися перпендикулярами. Это возможно, только если &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; совпал с другим сайтом. Пришли к противоречию.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Сайт имеет ячейку в farthest-point диаграмме тогда и только тогда, когда он является вершиной выпуклой оболочки всех сайтов.&lt;br /&gt;
|proof=Непосредственно следует из двух предыдущих лемм.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|statement=Все ячейки в farthest-point диаграмме неограничены.&lt;br /&gt;
|proof=[[Файл:voronoi-farthest-unbounded.png|200px|right]]Пусть &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; — сайт на выпуклой оболочке сайтов, а &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; — точка, для которой он является наиболее удалённым. Тогда для всех точек на луче, лежащем на &amp;lt;tex&amp;gt;p_i q&amp;lt;/tex&amp;gt;, начинающемся в &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; и не проходящим через &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt;, сайт &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; будет наиболее удалённым среди остальных сайтов. Значит, ячейка сайта &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; в farthest-point диаграмме включает в себя этот луч, а значит, неограничена.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Алгоритм ===&lt;br /&gt;
Чтобы найти farthest-point диаграмму, сначала найдём выпуклую оболочку всех сайтов. Обозначим сайты, её образующие, через &amp;lt;tex&amp;gt;p_1, p_2, ..., p_m&amp;lt;/tex&amp;gt;. Запомним порядки обхода для каждой вершины выпуклой оболочки по часовой стрелке (&amp;lt;tex&amp;gt;cw(p_i)&amp;lt;/tex&amp;gt;) и против часовой (&amp;lt;tex&amp;gt;ccw(p_i)&amp;lt;/tex&amp;gt;) и сделаем случайную перестановку точек. Далее удаляем из выпуклой оболочки все точки, кроме первых трёх (запоминая при этом их соседей в оболочке на момент удаления). После этого строим farthest-point диаграмму для первых трёх точек (пересекая полуплоскости) и последовательно добавляем остальные (удалённые) в порядке, обратном порядку удаления.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Файл:voronoi-farthest-construct.png|600px|thumb|Построение очередной ячейки farthest-point диаграммы]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Для точки &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; ячейка встанет «между» ячейками, соответствующими &amp;lt;tex&amp;gt;cw(p_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;ccw(p_i)&amp;lt;/tex&amp;gt;. Перед добавлением &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;cw(p_i)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;ccw(p_i)&amp;lt;/tex&amp;gt; — соседи, поэтому между ними построен серединный перпендикуляр. Серединный перпендикуляр к &amp;lt;tex&amp;gt;p_i ccw(p_i)&amp;lt;/tex&amp;gt; даст новое ребро, которое лежит в farthest-point ячейке &amp;lt;tex&amp;gt;ccw(p_i)&amp;lt;/tex&amp;gt; и является частью границы ячейки &amp;lt;tex&amp;gt; p_i&amp;lt;/tex&amp;gt;. Обойдём ячейку &amp;lt;tex&amp;gt;ccw(p_i)&amp;lt;/tex&amp;gt; по часовой стрелке, чтоб понять, какое ребро пересечёт перпендикуляр. С другой стороны этого ребра лежит ячейка какой-то точки &amp;lt;tex&amp;gt;p_j&amp;lt;/tex&amp;gt;, и серединный перпендикуляр &amp;lt;tex&amp;gt;p_i p_j&amp;lt;/tex&amp;gt; тоже даст ребро ячейке &amp;lt;tex&amp;gt;p_i&amp;lt;/tex&amp;gt;. Аналогично совершим обход и так далее. Последний серединный перпендикуляр будет построен для &amp;lt;tex&amp;gt;p_i cw(p_i)&amp;lt;/tex&amp;gt;. После этого удаляем рёбра, которые лежат внутри новой ячейки.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Трапецоидная карта]]&lt;br /&gt;
* [[Триангуляция Делоне]]&lt;br /&gt;
* [[Straight skeleton]]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
* de Berg, Cheong, van Kreveld, Overmars. Computational Geometry, Algorithms and Applicants, 2008. pp. 147-151, 164-166&lt;br /&gt;
* [http://students.info.uaic.ro/~emilian.necula/vor2.pdf Algorithms for constructing Voronoi diagrams, Vera Sacrist´an {{---}} Incremental algorithm]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Voronoi_diagram Wikipedia — Voronoi diagram]&lt;br /&gt;
* [https://web.archive.org/web/20170329014016/http://www.cs.uu.nl/docs/vakken/ga/slides7b.pdf Computational Geometry {{---}} Lecture 13: More on Voronoi diagrams]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Вычислительная геометрия]]&lt;br /&gt;
[[Категория: Триангуляция Делоне и диаграмма Вороного]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B2_%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2&amp;diff=68004</id>
		<title>Алгоритм построения базы в объединении матроидов</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B2_%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2&amp;diff=68004"/>
				<updated>2018-12-24T09:22:38Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Алгоритм */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Задача&lt;br /&gt;
|definition=&lt;br /&gt;
Даны [[Определение матроида|матроиды]] &amp;lt;tex&amp;gt;M_1 = (S, \mathcal{I}_1), \ldots ,(S, \mathcal{I}_k)&amp;lt;/tex&amp;gt;. Необходимо найти максимальное по мощности [[Определение матроида#def_matroid|независимое множество]] в объединении &amp;lt;tex&amp;gt;M_1\ldots M_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Объединение матроидов''' (англ. ''matroid union'') &amp;lt;tex&amp;gt;M = (S,\mathcal{I}) = \bigcup\limits_{k=1}^{n}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;M_i = (S,\mathcal{I}_i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
&lt;br /&gt;
Эта задача [[Объединение матроидов, проверка множества на независимость#Проверка множества на независимость| сводится к пересечению матроидов]], однако есть другой способ её решить. &lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;I_i \in \mathcal{I}_i&amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt;i = 1\ldots k&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;I_i \cap I_j = \emptyset&amp;lt;/tex&amp;gt;, если &amp;lt;tex&amp;gt;i \neq j&amp;lt;/tex&amp;gt;. Определим [[Граф замен|граф замен]]: для каждого &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt; построим [[Основные определения теории графов#defBiparateGraph|двудольный ориентированный граф]] &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; так, что в левой доле находятся вершины из &amp;lt;tex&amp;gt;I_i&amp;lt;/tex&amp;gt;, а в правой — вершины из &amp;lt;tex&amp;gt;S \setminus I_i&amp;lt;/tex&amp;gt;. Построим ориентированные ребра из &amp;lt;tex&amp;gt;y \in I_i&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;x \in S \setminus I_i&amp;lt;/tex&amp;gt;, при условии, что &amp;lt;tex&amp;gt;(I_i \setminus y) \cup x \in \mathcal{I}_i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Объединим все &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; в один граф &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, который будет суперпозицией ребер из этих графов. Пусть для каждого &amp;lt;tex&amp;gt;i:&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;F_i&amp;lt;/tex&amp;gt; {{---}} множество элементов &amp;lt;tex&amp;gt;s \notin I_i&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;I_i \cup {s} \in \mathcal{I}_i&amp;lt;/tex&amp;gt;. Определим &amp;lt;tex&amp;gt;I = I_1 \cup \ldots \cup I_k&amp;lt;/tex&amp;gt;,  &amp;lt;tex&amp;gt;F = F_1 \cup \ldots \cup F_k&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Нам известно, что объединение матроидов — матроид. При поиске базы матроида используется жадный алгоритм. На каждом шаге мы выбираем элемент не из текущего множества в новом графе замен &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; ([[Алгоритм построения базы в объединении матроидов#th_1|следующая теорема]] отвечает на вопрос, как представить это в графе). Здесь мы обозначим текущее множество как &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Тогда нужно найти такой элемент &amp;lt;tex&amp;gt;s \in S \setminus I&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;I \cup s&amp;lt;/tex&amp;gt; — снова независимо.&lt;br /&gt;
Все наши кандидаты находятся в &amp;lt;tex&amp;gt;S \setminus I&amp;lt;/tex&amp;gt; . Если мы найдем путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S \setminus I&amp;lt;/tex&amp;gt;, то элемент &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt;, которым путь закончился, можно будет добавить в &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;.&lt;br /&gt;
То есть шаг жадного алгоритма заключается в создании нового &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt; и поиске такого пути.&lt;br /&gt;
&lt;br /&gt;
Это подразумевает, что максимальное независимое множество в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt; мы можем найти за полиномиальное время (жадно наращивать независимое множество в &amp;lt;tex&amp;gt;M = M_1 \cup \ldots \cup M_k&amp;lt;/tex&amp;gt;). Cunningham разработал алгоритм, которым за &amp;lt;tex&amp;gt;O((n^{(3/2)} + k)mQ + n^{(1/2)}km)&amp;lt;/tex&amp;gt; можно найти максимальное независимое множество в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; максимальный размер множества в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; размер подмножества и &amp;lt;tex&amp;gt;Q&amp;lt;/tex&amp;gt; время, необходимое, чтобы определить принадлежит ли множество &amp;lt;tex&amp;gt; \mathcal{I}_j&amp;lt;/tex&amp;gt; для каждого &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Псевдокод ===&lt;br /&gt;
  &amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt;\emptyset&amp;lt;/tex&amp;gt;&lt;br /&gt;
  '''for''' &amp;lt;tex&amp;gt;i \leftarrow 0&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
      построить [[Граф замен|граф замен]] &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
      '''if''' &amp;lt;tex&amp;gt;I_i + s \in \mathcal{I}_i&amp;lt;/tex&amp;gt;&lt;br /&gt;
          &amp;lt;tex&amp;gt;J \leftarrow I_i + s&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=th_1&lt;br /&gt;
|statement=&lt;br /&gt;
Для любого &amp;lt;tex&amp;gt;s \in S \setminus I&amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt;I \cup s \in \mathcal{I} \Leftrightarrow &amp;lt;/tex&amp;gt; существует ориентированный путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; по ребрам графа &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть существует путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; — самый короткий такой путь. Запишем его вершины как {&amp;lt;tex&amp;gt;s_0, s_1, \ldots s_p&amp;lt;/tex&amp;gt;}. &amp;lt;tex&amp;gt;s_0 \in F&amp;lt;/tex&amp;gt;, так что не умаляя общности можно сказать, что &amp;lt;tex&amp;gt;s_0 \in F_1&amp;lt;/tex&amp;gt;. Для каждого &amp;lt;tex&amp;gt;j = 1\ldots k&amp;lt;/tex&amp;gt; определим множество вершин &amp;lt;tex&amp;gt;S_j =&amp;lt;/tex&amp;gt; {&amp;lt;tex&amp;gt;s_i, s_{i+1}:(s_i, s_{i+1}) \in D_{M_j}(I_j)&amp;lt;/tex&amp;gt;}, где &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; пробегает от &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;p - 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Положим, что &amp;lt;tex&amp;gt;I'_1 = (I_1 \oplus S_1) \cup \{s_0\}&amp;lt;/tex&amp;gt;, для всех &amp;lt;tex&amp;gt;j &amp;gt; 1&amp;lt;/tex&amp;gt; положим &amp;lt;tex&amp;gt;I'_j = (I_j \oplus S_j)&amp;lt;/tex&amp;gt;. Ясно, что &amp;lt;tex&amp;gt;\cup _j I'_j = I + s&amp;lt;/tex&amp;gt;. Для того, чтобы показать независимость &amp;lt;tex&amp;gt;I + s&amp;lt;/tex&amp;gt; в объединении матроидов нужно показать, что &amp;lt;tex&amp;gt;I'_j \in J_j&amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;. Заметим, что так как мы выбирали путь &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; таким, что он будет наименьшим, для каждого &amp;lt;tex&amp;gt;j &amp;gt; 1&amp;lt;/tex&amp;gt; существует единственное паросочетание между элементами, которые мы добавляли и удаляли, чтобы сконструировать &amp;lt;tex&amp;gt;I'_j = I_j \oplus S_j&amp;lt;/tex&amp;gt;. Так как паросочетание единственно, &amp;lt;tex&amp;gt;I'_j \in J_j&amp;lt;/tex&amp;gt;. Аналогично &amp;lt;tex&amp;gt;s_0 \in F_1&amp;lt;/tex&amp;gt;, значит &amp;lt;tex&amp;gt;I'_1 \in J_1&amp;lt;/tex&amp;gt;. Следовательно &amp;lt;tex&amp;gt;I + s&amp;lt;/tex&amp;gt; независимо в объединении матроидов.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть нет пути из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; по ребрам &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;. Тогда пусть существует множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, состоящее из вершин &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, из которого мы можем достичь &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; : &amp;lt;tex&amp;gt;T = \{x, \exists x \leadsto s\}&amp;lt;/tex&amp;gt; по допущению &amp;lt;tex&amp;gt;F\cap T = \varnothing&amp;lt;/tex&amp;gt;. Утверждается, что для всех &amp;lt;tex&amp;gt;i : |I_i \cap T| = r_i(T)&amp;lt;/tex&amp;gt;(что означает, что &amp;lt;tex&amp;gt;I_i \cap T&amp;lt;/tex&amp;gt; — максимальное подмножество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, независимое в &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Предположим, что это не так. &amp;lt;tex&amp;gt;|I_i \cap T| = r_i(I_i\cap T) \leqslant r_i(T)&amp;lt;/tex&amp;gt;, это возможно только если &amp;lt;tex&amp;gt;|I_i \cap T| &amp;lt; r_i(T)&amp;lt;/tex&amp;gt;. Значит существует такой &amp;lt;tex&amp;gt;x \in T \cap (S \setminus I_i)&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;(I_i \cap T) + x \in J_i&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;x \notin F&amp;lt;/tex&amp;gt; (по предположению вначале доказательства), значит &amp;lt;tex&amp;gt;I_i + x \notin J_i&amp;lt;/tex&amp;gt;. Из этого следует, что &amp;lt;tex&amp;gt;I_i + x&amp;lt;/tex&amp;gt; содержит единственный цикл. Значит существует &amp;lt;tex&amp;gt;y \in I_i - T&amp;lt;/tex&amp;gt;, такой что &amp;lt;tex&amp;gt;I_i + x - y \in J_i&amp;lt;/tex&amp;gt;. Получается, что &amp;lt;tex&amp;gt;(y, x)&amp;lt;/tex&amp;gt; — ребро в &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; и оно содержит этот &amp;lt;tex&amp;gt;y \in T&amp;lt;/tex&amp;gt;, что противоречит тому как был выбран &amp;lt;tex&amp;gt;y \in I_i \setminus T&amp;lt;/tex&amp;gt;. Следовательно для всех &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; нам известно : &amp;lt;tex&amp;gt;|I_i \cap T| = r_i(T)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
У нас есть &amp;lt;tex&amp;gt;s \in T&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(I + s) \cap T = (\cup I_i + s)\cap T = \cup(I_i \cap T) + s&amp;lt;/tex&amp;gt; . Из определния функции [[Определение матроида#def_rank_of_matroid|ранга]] объединения матроидов имеем : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_M(I + s) \leqslant (|(I + s)\setminus T| + \sum\limits_{k=1}^{n}r_i(T))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_M(I + s) \leqslant |(I + s)\setminus T| + \sum\limits_{k=1}^{n} |I_i \cap T| = |I\setminus T| + \sum\limits_{k=1}^{n} |I_i \cap T| = |I| &amp;lt; |I + s|&amp;lt;/tex&amp;gt; &lt;br /&gt;
и значит &amp;lt;tex&amp;gt;(I + s) \notin J&amp;lt;/tex&amp;gt; — противоречие.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также==&lt;br /&gt;
* [[Пересечение матроидов, определение, примеры]]&lt;br /&gt;
* [[Алгоритм построения базы в пересечении матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
[https://math.mit.edu/~goemans/18438F09/lec13.pdf Michel X. Goemans. Advanced Combinatorial Optimization. Lecture 13]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Объединение матроидов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B2_%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2&amp;diff=68003</id>
		<title>Алгоритм построения базы в объединении матроидов</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B2_%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2&amp;diff=68003"/>
				<updated>2018-12-24T09:17:55Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Алгоритм */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Задача&lt;br /&gt;
|definition=&lt;br /&gt;
Даны [[Определение матроида|матроиды]] &amp;lt;tex&amp;gt;M_1 = (S, \mathcal{I}_1), \ldots ,(S, \mathcal{I}_k)&amp;lt;/tex&amp;gt;. Необходимо найти максимальное по мощности [[Определение матроида#def_matroid|независимое множество]] в объединении &amp;lt;tex&amp;gt;M_1\ldots M_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Объединение матроидов''' (англ. ''matroid union'') &amp;lt;tex&amp;gt;M = (S,\mathcal{I}) = \bigcup\limits_{k=1}^{n}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;M_i = (S,\mathcal{I}_i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
&lt;br /&gt;
Эта задача [[Объединение матроидов, проверка множества на независимость#Проверка множества на независимость| сводится к пересечению матроидов]], однако есть другой способ её решить. &lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;I_i \in \mathcal{I}_i&amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt;i = 1\ldots k&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;I_i \cap I_j = \emptyset&amp;lt;/tex&amp;gt;, если &amp;lt;tex&amp;gt;i \neq j&amp;lt;/tex&amp;gt;. Определим [[Граф замен|граф замен]]: для каждого &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt; построим [[Основные определения теории графов#defBiparateGraph|двудольный ориентированный граф]] &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; так, что в левой доле находятся вершины из &amp;lt;tex&amp;gt;I_i&amp;lt;/tex&amp;gt;, а в правой — вершины из &amp;lt;tex&amp;gt;S \setminus I_i&amp;lt;/tex&amp;gt;. Построим ориентированные ребра из &amp;lt;tex&amp;gt;y \in I_i&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;x \in S \setminus I_i&amp;lt;/tex&amp;gt;, при условии, что &amp;lt;tex&amp;gt;(I_i \setminus y) \cup x \in \mathcal{I}_i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Объединим все &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; в один граф &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, который будет суперпозицией ребер из этих графов. Пусть для каждого &amp;lt;tex&amp;gt;i:&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;F_i&amp;lt;/tex&amp;gt; {{---}} множество элементов &amp;lt;tex&amp;gt;s \notin I_i&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;I_i \cup {s} \in \mathcal{I}_i&amp;lt;/tex&amp;gt;. Определим &amp;lt;tex&amp;gt;I = I_1 \cup \ldots \cup I_k&amp;lt;/tex&amp;gt;,  &amp;lt;tex&amp;gt;F = F_1 \cup \ldots \cup F_k&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Нам известно, что объединение матроидов — матроид. При поиске базы матроида используется жадный алгоритм. На каждом шаге мы выбираем элемент не из текущего множества в новом графе замен &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; ([[Алгоритм построения базы в объединении матроидов#th_1|следующая теорема]] отвечает на вопрос, как представить это в графе). Здесь мы обозначим текущее множество как &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Тогда нужно найти такой элемент &amp;lt;tex&amp;gt;s \in S \setminus I&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;I \cup s&amp;lt;/tex&amp;gt; — снова независимо.&lt;br /&gt;
Все наши кандидаты находятся в &amp;lt;tex&amp;gt;S \setminus I&amp;lt;/tex&amp;gt; . Если мы найдем путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S \setminus I&amp;lt;/tex&amp;gt;, то элемент &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt;, которым путь закончился, можно будет добавить в &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;.&lt;br /&gt;
То есть шаг жадного алгоритма заключается в создании нового &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt; и поиске такого пути.&lt;br /&gt;
&lt;br /&gt;
Это подразумевает, что максимальное независимое множество в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt; мы можем найти за полиномиальное время (жадно наращивать независимое множество в &amp;lt;tex&amp;gt;M = M_1 \cup \ldots \cup M_k&amp;lt;/tex&amp;gt;). Cunningham разработал алгоритм, которым за &amp;lt;tex&amp;gt;O((n^(3/2) + k)mQ + n^(1/2)km)&amp;lt;/tex&amp;gt; можно найти максимальное независимое множество в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; максимальный размер множества в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; размер подмножества и &amp;lt;tex&amp;gt;Q&amp;lt;/tex&amp;gt; время, необходимое, чтобы определить принадлежит ли множество &amp;lt;tex&amp;gt; \mathcal{I}_j&amp;lt;/tex&amp;gt; для каждого &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Псевдокод ===&lt;br /&gt;
  &amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt;\emptyset&amp;lt;/tex&amp;gt;&lt;br /&gt;
  '''for''' &amp;lt;tex&amp;gt;i \leftarrow 0&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
      построить [[Граф замен|граф замен]] &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
      '''if''' &amp;lt;tex&amp;gt;I_i + s \in \mathcal{I}_i&amp;lt;/tex&amp;gt;&lt;br /&gt;
          &amp;lt;tex&amp;gt;J \leftarrow I_i + s&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=th_1&lt;br /&gt;
|statement=&lt;br /&gt;
Для любого &amp;lt;tex&amp;gt;s \in S \setminus I&amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt;I \cup s \in \mathcal{I} \Leftrightarrow &amp;lt;/tex&amp;gt; существует ориентированный путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; по ребрам графа &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть существует путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; — самый короткий такой путь. Запишем его вершины как {&amp;lt;tex&amp;gt;s_0, s_1, \ldots s_p&amp;lt;/tex&amp;gt;}. &amp;lt;tex&amp;gt;s_0 \in F&amp;lt;/tex&amp;gt;, так что не умаляя общности можно сказать, что &amp;lt;tex&amp;gt;s_0 \in F_1&amp;lt;/tex&amp;gt;. Для каждого &amp;lt;tex&amp;gt;j = 1\ldots k&amp;lt;/tex&amp;gt; определим множество вершин &amp;lt;tex&amp;gt;S_j =&amp;lt;/tex&amp;gt; {&amp;lt;tex&amp;gt;s_i, s_{i+1}:(s_i, s_{i+1}) \in D_{M_j}(I_j)&amp;lt;/tex&amp;gt;}, где &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; пробегает от &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;p - 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Положим, что &amp;lt;tex&amp;gt;I'_1 = (I_1 \oplus S_1) \cup \{s_0\}&amp;lt;/tex&amp;gt;, для всех &amp;lt;tex&amp;gt;j &amp;gt; 1&amp;lt;/tex&amp;gt; положим &amp;lt;tex&amp;gt;I'_j = (I_j \oplus S_j)&amp;lt;/tex&amp;gt;. Ясно, что &amp;lt;tex&amp;gt;\cup _j I'_j = I + s&amp;lt;/tex&amp;gt;. Для того, чтобы показать независимость &amp;lt;tex&amp;gt;I + s&amp;lt;/tex&amp;gt; в объединении матроидов нужно показать, что &amp;lt;tex&amp;gt;I'_j \in J_j&amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;. Заметим, что так как мы выбирали путь &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; таким, что он будет наименьшим, для каждого &amp;lt;tex&amp;gt;j &amp;gt; 1&amp;lt;/tex&amp;gt; существует единственное паросочетание между элементами, которые мы добавляли и удаляли, чтобы сконструировать &amp;lt;tex&amp;gt;I'_j = I_j \oplus S_j&amp;lt;/tex&amp;gt;. Так как паросочетание единственно, &amp;lt;tex&amp;gt;I'_j \in J_j&amp;lt;/tex&amp;gt;. Аналогично &amp;lt;tex&amp;gt;s_0 \in F_1&amp;lt;/tex&amp;gt;, значит &amp;lt;tex&amp;gt;I'_1 \in J_1&amp;lt;/tex&amp;gt;. Следовательно &amp;lt;tex&amp;gt;I + s&amp;lt;/tex&amp;gt; независимо в объединении матроидов.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть нет пути из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; по ребрам &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;. Тогда пусть существует множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, состоящее из вершин &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, из которого мы можем достичь &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; : &amp;lt;tex&amp;gt;T = \{x, \exists x \leadsto s\}&amp;lt;/tex&amp;gt; по допущению &amp;lt;tex&amp;gt;F\cap T = \varnothing&amp;lt;/tex&amp;gt;. Утверждается, что для всех &amp;lt;tex&amp;gt;i : |I_i \cap T| = r_i(T)&amp;lt;/tex&amp;gt;(что означает, что &amp;lt;tex&amp;gt;I_i \cap T&amp;lt;/tex&amp;gt; — максимальное подмножество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, независимое в &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Предположим, что это не так. &amp;lt;tex&amp;gt;|I_i \cap T| = r_i(I_i\cap T) \leqslant r_i(T)&amp;lt;/tex&amp;gt;, это возможно только если &amp;lt;tex&amp;gt;|I_i \cap T| &amp;lt; r_i(T)&amp;lt;/tex&amp;gt;. Значит существует такой &amp;lt;tex&amp;gt;x \in T \cap (S \setminus I_i)&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;(I_i \cap T) + x \in J_i&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;x \notin F&amp;lt;/tex&amp;gt; (по предположению вначале доказательства), значит &amp;lt;tex&amp;gt;I_i + x \notin J_i&amp;lt;/tex&amp;gt;. Из этого следует, что &amp;lt;tex&amp;gt;I_i + x&amp;lt;/tex&amp;gt; содержит единственный цикл. Значит существует &amp;lt;tex&amp;gt;y \in I_i - T&amp;lt;/tex&amp;gt;, такой что &amp;lt;tex&amp;gt;I_i + x - y \in J_i&amp;lt;/tex&amp;gt;. Получается, что &amp;lt;tex&amp;gt;(y, x)&amp;lt;/tex&amp;gt; — ребро в &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; и оно содержит этот &amp;lt;tex&amp;gt;y \in T&amp;lt;/tex&amp;gt;, что противоречит тому как был выбран &amp;lt;tex&amp;gt;y \in I_i \setminus T&amp;lt;/tex&amp;gt;. Следовательно для всех &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; нам известно : &amp;lt;tex&amp;gt;|I_i \cap T| = r_i(T)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
У нас есть &amp;lt;tex&amp;gt;s \in T&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(I + s) \cap T = (\cup I_i + s)\cap T = \cup(I_i \cap T) + s&amp;lt;/tex&amp;gt; . Из определния функции [[Определение матроида#def_rank_of_matroid|ранга]] объединения матроидов имеем : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_M(I + s) \leqslant (|(I + s)\setminus T| + \sum\limits_{k=1}^{n}r_i(T))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_M(I + s) \leqslant |(I + s)\setminus T| + \sum\limits_{k=1}^{n} |I_i \cap T| = |I\setminus T| + \sum\limits_{k=1}^{n} |I_i \cap T| = |I| &amp;lt; |I + s|&amp;lt;/tex&amp;gt; &lt;br /&gt;
и значит &amp;lt;tex&amp;gt;(I + s) \notin J&amp;lt;/tex&amp;gt; — противоречие.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также==&lt;br /&gt;
* [[Пересечение матроидов, определение, примеры]]&lt;br /&gt;
* [[Алгоритм построения базы в пересечении матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
[https://math.mit.edu/~goemans/18438F09/lec13.pdf Michel X. Goemans. Advanced Combinatorial Optimization. Lecture 13]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Объединение матроидов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B2_%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2&amp;diff=68002</id>
		<title>Алгоритм построения базы в объединении матроидов</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B2_%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%82%D1%80%D0%BE%D0%B8%D0%B4%D0%BE%D0%B2&amp;diff=68002"/>
				<updated>2018-12-24T09:14:24Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Алгоритм */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Задача&lt;br /&gt;
|definition=&lt;br /&gt;
Даны [[Определение матроида|матроиды]] &amp;lt;tex&amp;gt;M_1 = (S, \mathcal{I}_1), \ldots ,(S, \mathcal{I}_k)&amp;lt;/tex&amp;gt;. Необходимо найти максимальное по мощности [[Определение матроида#def_matroid|независимое множество]] в объединении &amp;lt;tex&amp;gt;M_1\ldots M_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Объединение матроидов''' (англ. ''matroid union'') &amp;lt;tex&amp;gt;M = (S,\mathcal{I}) = \bigcup\limits_{k=1}^{n}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;M_i = (S,\mathcal{I}_i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
&lt;br /&gt;
Эта задача [[Объединение матроидов, проверка множества на независимость#Проверка множества на независимость| сводится к пересечению матроидов]], однако есть другой способ её решить. &lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;I_i \in \mathcal{I}_i&amp;lt;/tex&amp;gt;, для &amp;lt;tex&amp;gt;i = 1\ldots k&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;I_i \cap I_j = \emptyset&amp;lt;/tex&amp;gt;, если &amp;lt;tex&amp;gt;i \neq j&amp;lt;/tex&amp;gt;. Определим [[Граф замен|граф замен]]: для каждого &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt; построим [[Основные определения теории графов#defBiparateGraph|двудольный ориентированный граф]] &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; так, что в левой доле находятся вершины из &amp;lt;tex&amp;gt;I_i&amp;lt;/tex&amp;gt;, а в правой — вершины из &amp;lt;tex&amp;gt;S \setminus I_i&amp;lt;/tex&amp;gt;. Построим ориентированные ребра из &amp;lt;tex&amp;gt;y \in I_i&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;x \in S \setminus I_i&amp;lt;/tex&amp;gt;, при условии, что &amp;lt;tex&amp;gt;(I_i \setminus y) \cup x \in \mathcal{I}_i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Объединим все &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; в один граф &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, который будет суперпозицией ребер из этих графов. Пусть для каждого &amp;lt;tex&amp;gt;i:&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;F_i&amp;lt;/tex&amp;gt; {{---}} множество элементов &amp;lt;tex&amp;gt;s \notin I_i&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;I_i \cup {s} \in \mathcal{I}_i&amp;lt;/tex&amp;gt;. Определим &amp;lt;tex&amp;gt;I = I_1 \cup \ldots \cup I_k&amp;lt;/tex&amp;gt;,  &amp;lt;tex&amp;gt;F = F_1 \cup \ldots \cup F_k&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Нам известно, что объединение матроидов — матроид. При поиске базы матроида используется жадный алгоритм. На каждом шаге мы выбираем элемент не из текущего множества в новом графе замен &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; ([[Алгоритм построения базы в объединении матроидов#th_1|следующая теорема]] отвечает на вопрос, как представить это в графе). Здесь мы обозначим текущее множество как &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Тогда нужно найти такой элемент &amp;lt;tex&amp;gt;s \in S \setminus I&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;I \cup s&amp;lt;/tex&amp;gt; — снова независимо.&lt;br /&gt;
Все наши кандидаты находятся в &amp;lt;tex&amp;gt;S \setminus I&amp;lt;/tex&amp;gt; . Если мы найдем путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S \setminus I&amp;lt;/tex&amp;gt;, то элемент &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt;, которым путь закончился, можно будет добавить в &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;.&lt;br /&gt;
То есть шаг жадного алгоритма заключается в создании нового &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt; и поиске такого пути.&lt;br /&gt;
Это подразумевает, что максимальное независимое множество в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt; мы можем найти за полиномиальное время (жадно наращивать независимое множество в &amp;lt;tex&amp;gt;M = M_1 \cup \ldots \cup M_k&amp;lt;/tex&amp;gt;). В частности, проверить, является ли данное множество независимым в &amp;lt;tex&amp;gt;M = M_1 \cup \ldots \cup M_k&amp;lt;/tex&amp;gt;. Cunningham разработал алгоритм, которым за &amp;lt;tex&amp;gt;O((n^(3/2) + k)mQ + n^(1/2)km)&amp;lt;/tex&amp;gt; можно найти максимальное независимое множество в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; максимальный размер множества в &amp;lt;tex&amp;gt; \mathcal{I} = \mathcal{I}_1 \cup \ldots \cup  \mathcal{I}_k&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; размер подмножества и &amp;lt;tex&amp;gt;Q&amp;lt;/tex&amp;gt; время, необходимое для &lt;br /&gt;
&lt;br /&gt;
=== Псевдокод ===&lt;br /&gt;
  &amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; = &amp;lt;tex&amp;gt;\emptyset&amp;lt;/tex&amp;gt;&lt;br /&gt;
  '''for''' &amp;lt;tex&amp;gt;i \leftarrow 0&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;n - 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
      построить [[Граф замен|граф замен]] &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
      '''if''' &amp;lt;tex&amp;gt;I_i + s \in \mathcal{I}_i&amp;lt;/tex&amp;gt;&lt;br /&gt;
          &amp;lt;tex&amp;gt;J \leftarrow I_i + s&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=th_1&lt;br /&gt;
|statement=&lt;br /&gt;
Для любого &amp;lt;tex&amp;gt;s \in S \setminus I&amp;lt;/tex&amp;gt; имеем &amp;lt;tex&amp;gt;I \cup s \in \mathcal{I} \Leftrightarrow &amp;lt;/tex&amp;gt; существует ориентированный путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; по ребрам графа &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть существует путь из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; — самый короткий такой путь. Запишем его вершины как {&amp;lt;tex&amp;gt;s_0, s_1, \ldots s_p&amp;lt;/tex&amp;gt;}. &amp;lt;tex&amp;gt;s_0 \in F&amp;lt;/tex&amp;gt;, так что не умаляя общности можно сказать, что &amp;lt;tex&amp;gt;s_0 \in F_1&amp;lt;/tex&amp;gt;. Для каждого &amp;lt;tex&amp;gt;j = 1\ldots k&amp;lt;/tex&amp;gt; определим множество вершин &amp;lt;tex&amp;gt;S_j =&amp;lt;/tex&amp;gt; {&amp;lt;tex&amp;gt;s_i, s_{i+1}:(s_i, s_{i+1}) \in D_{M_j}(I_j)&amp;lt;/tex&amp;gt;}, где &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; пробегает от &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;p - 1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Положим, что &amp;lt;tex&amp;gt;I'_1 = (I_1 \oplus S_1) \cup \{s_0\}&amp;lt;/tex&amp;gt;, для всех &amp;lt;tex&amp;gt;j &amp;gt; 1&amp;lt;/tex&amp;gt; положим &amp;lt;tex&amp;gt;I'_j = (I_j \oplus S_j)&amp;lt;/tex&amp;gt;. Ясно, что &amp;lt;tex&amp;gt;\cup _j I'_j = I + s&amp;lt;/tex&amp;gt;. Для того, чтобы показать независимость &amp;lt;tex&amp;gt;I + s&amp;lt;/tex&amp;gt; в объединении матроидов нужно показать, что &amp;lt;tex&amp;gt;I'_j \in J_j&amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;. Заметим, что так как мы выбирали путь &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; таким, что он будет наименьшим, для каждого &amp;lt;tex&amp;gt;j &amp;gt; 1&amp;lt;/tex&amp;gt; существует единственное паросочетание между элементами, которые мы добавляли и удаляли, чтобы сконструировать &amp;lt;tex&amp;gt;I'_j = I_j \oplus S_j&amp;lt;/tex&amp;gt;. Так как паросочетание единственно, &amp;lt;tex&amp;gt;I'_j \in J_j&amp;lt;/tex&amp;gt;. Аналогично &amp;lt;tex&amp;gt;s_0 \in F_1&amp;lt;/tex&amp;gt;, значит &amp;lt;tex&amp;gt;I'_1 \in J_1&amp;lt;/tex&amp;gt;. Следовательно &amp;lt;tex&amp;gt;I + s&amp;lt;/tex&amp;gt; независимо в объединении матроидов.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть нет пути из &amp;lt;tex&amp;gt;F&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; по ребрам &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;. Тогда пусть существует множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, состоящее из вершин &amp;lt;tex&amp;gt;D&amp;lt;/tex&amp;gt;, из которого мы можем достичь &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; : &amp;lt;tex&amp;gt;T = \{x, \exists x \leadsto s\}&amp;lt;/tex&amp;gt; по допущению &amp;lt;tex&amp;gt;F\cap T = \varnothing&amp;lt;/tex&amp;gt;. Утверждается, что для всех &amp;lt;tex&amp;gt;i : |I_i \cap T| = r_i(T)&amp;lt;/tex&amp;gt;(что означает, что &amp;lt;tex&amp;gt;I_i \cap T&amp;lt;/tex&amp;gt; — максимальное подмножество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, независимое в &amp;lt;tex&amp;gt;M_i&amp;lt;/tex&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Предположим, что это не так. &amp;lt;tex&amp;gt;|I_i \cap T| = r_i(I_i\cap T) \leqslant r_i(T)&amp;lt;/tex&amp;gt;, это возможно только если &amp;lt;tex&amp;gt;|I_i \cap T| &amp;lt; r_i(T)&amp;lt;/tex&amp;gt;. Значит существует такой &amp;lt;tex&amp;gt;x \in T \cap (S \setminus I_i)&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;(I_i \cap T) + x \in J_i&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;x \notin F&amp;lt;/tex&amp;gt; (по предположению вначале доказательства), значит &amp;lt;tex&amp;gt;I_i + x \notin J_i&amp;lt;/tex&amp;gt;. Из этого следует, что &amp;lt;tex&amp;gt;I_i + x&amp;lt;/tex&amp;gt; содержит единственный цикл. Значит существует &amp;lt;tex&amp;gt;y \in I_i - T&amp;lt;/tex&amp;gt;, такой что &amp;lt;tex&amp;gt;I_i + x - y \in J_i&amp;lt;/tex&amp;gt;. Получается, что &amp;lt;tex&amp;gt;(y, x)&amp;lt;/tex&amp;gt; — ребро в &amp;lt;tex&amp;gt;D_{M_i}(I_i)&amp;lt;/tex&amp;gt; и оно содержит этот &amp;lt;tex&amp;gt;y \in T&amp;lt;/tex&amp;gt;, что противоречит тому как был выбран &amp;lt;tex&amp;gt;y \in I_i \setminus T&amp;lt;/tex&amp;gt;. Следовательно для всех &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; нам известно : &amp;lt;tex&amp;gt;|I_i \cap T| = r_i(T)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
У нас есть &amp;lt;tex&amp;gt;s \in T&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;(I + s) \cap T = (\cup I_i + s)\cap T = \cup(I_i \cap T) + s&amp;lt;/tex&amp;gt; . Из определния функции [[Определение матроида#def_rank_of_matroid|ранга]] объединения матроидов имеем : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_M(I + s) \leqslant (|(I + s)\setminus T| + \sum\limits_{k=1}^{n}r_i(T))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_M(I + s) \leqslant |(I + s)\setminus T| + \sum\limits_{k=1}^{n} |I_i \cap T| = |I\setminus T| + \sum\limits_{k=1}^{n} |I_i \cap T| = |I| &amp;lt; |I + s|&amp;lt;/tex&amp;gt; &lt;br /&gt;
и значит &amp;lt;tex&amp;gt;(I + s) \notin J&amp;lt;/tex&amp;gt; — противоречие.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также==&lt;br /&gt;
* [[Пересечение матроидов, определение, примеры]]&lt;br /&gt;
* [[Алгоритм построения базы в пересечении матроидов]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
[https://math.mit.edu/~goemans/18438F09/lec13.pdf Michel X. Goemans. Advanced Combinatorial Optimization. Lecture 13]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Матроиды]]&lt;br /&gt;
[[Категория:Объединение матроидов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67240</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67240"/>
				<updated>2018-11-28T13:55:08Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Значения чисел Рамсея */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Оценки снизу===&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===Значения чисел Рамсея===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;color: blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!colspan=&amp;quot;11&amp;quot;|Числа Рамсея&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;m,\ s&amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;3 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;4 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;5 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;6 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;7 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;8 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;9 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;3 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;4 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;5 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;6 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;7 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;8 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;9 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;6&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;14&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;18&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;23&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;28&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;36&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[40, 42]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;18&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;25&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[36, 41]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[49, 61]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[59, 84]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[73, 115]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[92, 149]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;5&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;5&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;14&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;25&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[43, 48]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[58, 87]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[80, 143]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[101, 216]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[133, 316]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[149, 442]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;6&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;6&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;18&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[36, 41]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[58, 87]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[102, 165]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[115, 298]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[134, 495]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[183, 780]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[204, 1171]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;7&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;7&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;23&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[49, 61]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[80, 143]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[115, 298]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[205, 540]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[217, 1031]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[252, 1713]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[292, 2826]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;28&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[56, 84]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[101, 216]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[127, 495]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[217, 1031]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[282, 1870]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[329, 3583]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[343, 6090]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;36&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[73, 115]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[133, 316]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[183, 780]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[252, 1713]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[329, 3583]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[565, 6588]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[580, 12677]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[40, 42]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[92, 149]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[149, 442]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[179, 1171]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[289, 2826]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[343, 6090]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[581, 12677]&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;[798, 23556]&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Графы Рамсея===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67239</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67239"/>
				<updated>2018-11-28T13:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Значения чисел Рамсея */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Оценки снизу===&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===Значения чисел Рамсея===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;color: blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!colspan=&amp;quot;11&amp;quot;|Числа Рамсея&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;m,\ s&amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;2 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;3 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;4 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;5 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;6 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;7 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;8 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;9 &amp;lt;/tex&amp;gt;&lt;br /&gt;
! &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;1 &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 3&lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
| 9&lt;br /&gt;
| 14&lt;br /&gt;
| 18&lt;br /&gt;
| 23&lt;br /&gt;
| 28&lt;br /&gt;
| 36&lt;br /&gt;
| [40, 42]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 4&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| 9&lt;br /&gt;
| 18&lt;br /&gt;
| 25&lt;br /&gt;
| [36, 41]&lt;br /&gt;
| [49, 61]&lt;br /&gt;
| [59, 84]&lt;br /&gt;
| [73, 115]&lt;br /&gt;
| [92, 149]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 5&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 14&lt;br /&gt;
| 25&lt;br /&gt;
| [43, 48]&lt;br /&gt;
| [58, 87]&lt;br /&gt;
| [80, 143]&lt;br /&gt;
| [101, 216]&lt;br /&gt;
| [133, 316]&lt;br /&gt;
| [149, 442]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 6&lt;br /&gt;
| 1&lt;br /&gt;
| 6&lt;br /&gt;
| 18&lt;br /&gt;
| [36, 41]&lt;br /&gt;
| [58, 87]&lt;br /&gt;
| [102, 165]&lt;br /&gt;
| [115, 298]&lt;br /&gt;
| [134, 495]&lt;br /&gt;
| [183, 780]&lt;br /&gt;
| [204, 1171]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 7&lt;br /&gt;
| 1&lt;br /&gt;
| 7&lt;br /&gt;
| 23&lt;br /&gt;
| [49, 61]&lt;br /&gt;
| [80, 143]&lt;br /&gt;
| [115, 298]&lt;br /&gt;
| [205, 540]&lt;br /&gt;
| [217, 1031]&lt;br /&gt;
| [252, 1713]&lt;br /&gt;
| [292, 2826]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 8&lt;br /&gt;
| 1&lt;br /&gt;
| 8&lt;br /&gt;
| 28&lt;br /&gt;
| [56, 84]&lt;br /&gt;
| [101, 216]&lt;br /&gt;
| [127, 495]&lt;br /&gt;
| [217, 1031]&lt;br /&gt;
| [282, 1870]&lt;br /&gt;
| [329, 3583]&lt;br /&gt;
| [343, 6090]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 9&lt;br /&gt;
| 1&lt;br /&gt;
| 9&lt;br /&gt;
| 36&lt;br /&gt;
| [73, 115]&lt;br /&gt;
| [133, 316]&lt;br /&gt;
| [183, 780]&lt;br /&gt;
| [252, 1713]&lt;br /&gt;
| [329, 3583]&lt;br /&gt;
| [565, 6588]&lt;br /&gt;
| [580, 12677]&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
! 10&lt;br /&gt;
| 1&lt;br /&gt;
| 10&lt;br /&gt;
| [40, 42]&lt;br /&gt;
| [92, 149]&lt;br /&gt;
| [149, 442]&lt;br /&gt;
| [179, 1171]&lt;br /&gt;
| [289, 2826]&lt;br /&gt;
| [343, 6090]&lt;br /&gt;
| [581, 12677]&lt;br /&gt;
| [798, 23556]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Графы Рамсея===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67238</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67238"/>
				<updated>2018-11-28T13:29:20Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Оценки снизу===&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===Значения чисел Рамсея===&lt;br /&gt;
===Графы Рамсея===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67237</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67237"/>
				<updated>2018-11-28T13:28:08Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Графы Рамсея */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Оценки снизу===&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===Графы Рамсея===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67236</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67236"/>
				<updated>2018-11-28T13:27:50Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Числа Рамсея */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Оценки снизу===&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===Графы Рамсея===&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67235</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67235"/>
				<updated>2018-11-28T13:26:34Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Экстремальные примеры и оценки снизу */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Оценки снизу===&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67234</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67234"/>
				<updated>2018-11-28T13:08:53Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Экстремальные примеры и оценки снизу */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;r(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67233</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67233"/>
				<updated>2018-11-28T13:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Экстремальные примеры и оценки снизу */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67232</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67232"/>
				<updated>2018-11-28T13:08:05Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Экстремальные примеры и оценки снизу */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67230</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67230"/>
				<updated>2018-11-28T13:01:51Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Экстремальные примеры и оценки снизу */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67229</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67229"/>
				<updated>2018-11-28T13:00:54Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Существование. Оценки сверху */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67228</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67228"/>
				<updated>2018-11-28T12:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Существование. Оценки сверху */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67226</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67226"/>
				<updated>2018-11-28T12:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Экстремальные примеры и оценки снизу */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;  . При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition='''Графом Рамсея''' &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67225</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67225"/>
				<updated>2018-11-28T12:51:46Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Существование. Оценки сверху */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;  . При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1 &amp;lt;/tex&amp;gt;   вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition=Графом Рамсея &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67224</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67224"/>
				<updated>2018-11-28T12:50:35Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Существование. Оценки сверху */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;  . При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1&amp;lt;/tex&amp;gt; вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition=Графом Рамсея &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67223</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67223"/>
				<updated>2018-11-28T12:49:50Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Существование. Оценки сверху */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt; . При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид  &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1&amp;lt;/tex&amp;gt; вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition=Графом Рамсея &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67222</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67222"/>
				<updated>2018-11-28T12:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Существование. Оценки сверху */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt; . При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство принимает вид r(n,m) \le r(n,m-1)+r(n-1,m) - 1&amp;lt;/tex&amp;gt; .&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1&amp;lt;/tex&amp;gt; вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition=Графом Рамсея &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67220</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67220"/>
				<updated>2018-11-28T12:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство строгое.&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1&amp;lt;/tex&amp;gt; вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition=Графом Рамсея &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
==См. также==&lt;br /&gt;
*[[Раскраска графа]]&lt;br /&gt;
*[[Раскраска двудольного графа в два цвета]]&lt;br /&gt;
*[[Теорема Турана об экстремальном графе]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67218</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_%D0%A0%D0%B0%D0%BC%D1%81%D0%B5%D1%8F&amp;diff=67218"/>
				<updated>2018-11-28T12:41:49Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Источники */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теория Рамсея''' — раздел математики, названный в честь Фрэнка Рамсея, изучающий условия, при которых в произвольно формируемых математических объектах обязан появиться некоторый порядок.&lt;br /&gt;
==Числа Рамсея==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1&lt;br /&gt;
|definition='''Кликой''' в неориентированном графе &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется подмножество вершин &amp;lt;tex&amp;gt;C \subseteq V&amp;lt;/tex&amp;gt;, такое что для любых двух вершин в &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; существует ребро, их соединяющее.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def2&lt;br /&gt;
|definition='''Числом Рамсея''' &amp;lt;tex&amp;gt;r(m, n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m, n \in \mathbb N &amp;lt;/tex&amp;gt; называют наименьшее из таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске ребер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета найдется клика на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или клика на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с ребром цвета &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
===Существование. Оценки сверху===&lt;br /&gt;
{{Теорема|id=ter1|about=1&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда &amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m)&amp;lt;/tex&amp;gt;. При этом если числа &amp;lt;tex&amp;gt;r(n,m-1)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(n-1,m)&amp;lt;/tex&amp;gt; четные, то неравенство строгое.&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1)&amp;lt;/tex&amp;gt; Докажем с помощью метода математической индукции по &amp;lt;tex&amp;gt;n+m&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''База:''' &amp;lt;tex&amp;gt;r(n,\;1) = r(1,\;n) = 1&amp;lt;/tex&amp;gt;, так как 1-вершинный граф можно считать полным графом любого цвета.&lt;br /&gt;
&lt;br /&gt;
'''Индукционный переход:''' Пусть &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим полный чёрно-белый граф из &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)&amp;lt;/tex&amp;gt; вершин. Возьмём произвольную вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; и обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; множества инцидентные &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; в чёрном и белом подграфе соответственно. Так как в графе &amp;lt;tex&amp;gt;r(n-1,\;m)+r(n,\;m-1)=|M|+|N|+1&amp;lt;/tex&amp;gt; вершин, согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;|M|\geqslant r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; (и следовательно во всём графе) есть белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt;, что завершает доказательство, либо в &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; есть чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2)&amp;lt;/tex&amp;gt;  Предположим, &amp;lt;tex&amp;gt;p=r(n-1,\;m)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;q=r(n,\;m-1)&amp;lt;/tex&amp;gt; оба чётны. Положим &amp;lt;tex&amp;gt;t=p+q-1&amp;lt;/tex&amp;gt; и рассмотрим чёрно-белый граф из &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; вершин. Если &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt; степень &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;-й вершины в чёрном подграфе, то, согласно [[Лемма о рукопожатиях|лемме о рукопожатиях]], &amp;lt;tex&amp;gt;\sum_{i=1}^t d_i&amp;lt;/tex&amp;gt; — чётно. Поскольку &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; нечётно, должно существовать чётное &amp;lt;tex&amp;gt;d_i&amp;lt;/tex&amp;gt;. Для определённости положим, что &amp;lt;tex&amp;gt;d_1&amp;lt;/tex&amp;gt; чётно. Обозначим через &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершины инцидентные вершине 1 в чёрном и белом подграфах соответственно. Тогда &amp;lt;tex&amp;gt;|M|=d_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;|N|=t-1-d_1&amp;lt;/tex&amp;gt; оба чётны. Согласно принципу Дирихле, либо &amp;lt;tex&amp;gt;|M|\geqslant p-1&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;N\geqslant q&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;|M|&amp;lt;/tex&amp;gt; чётно, а &amp;lt;tex&amp;gt;p-1&amp;lt;/tex&amp;gt; нечётно, первое неравенство можно усилить, так что либо &amp;lt;tex&amp;gt;|M|\geqslant p&amp;lt;/tex&amp;gt;, либо &amp;lt;tex&amp;gt;|N|\geqslant q&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Предположим &amp;lt;tex&amp;gt;|M|\geqslant p=r(n-1,\;m)&amp;lt;/tex&amp;gt;. Тогда либо подграф, порождённый множеством &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, содержит белый &amp;lt;tex&amp;gt;K_m&amp;lt;/tex&amp;gt; и доказательство завершено, либо он содержит чёрный &amp;lt;tex&amp;gt;K_{n-1}&amp;lt;/tex&amp;gt;, который вместе с вершиной 1 образует чёрный &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;. Случай &amp;lt;tex&amp;gt;|N|\geqslant q=r(n,\;m-1)&amp;lt;/tex&amp;gt; рассматривается аналогично.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u1|about=1|statement=Для натуральных чисел &amp;lt;tex&amp;gt;m,n&amp;lt;/tex&amp;gt; выполняется равенство &amp;lt;tex&amp;gt;r(n,m) \le C_{n+m-2}^{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Очевидно, &amp;lt;tex&amp;gt;C^{n-1}_{n+m-2}=1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;m=1&amp;lt;/tex&amp;gt;, как и соответствующие числа Рамсея. Индукцией по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n,m \ge 2&amp;lt;/tex&amp;gt; получаем &lt;br /&gt;
&amp;lt;tex&amp;gt;r(n,m) \le r(n,m-1)+r(n-1,m) \le C^{n-1}_{n+m-3}+C^{n-2}_{n+m-3}=C^{n-1}_{n+m-2}&amp;lt;/tex&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
С помощью неравенства из [[#ter1|теоремы 1]] можно получить несколько точных значений чисел Рамсея.&lt;br /&gt;
Отметим что &amp;lt;tex&amp;gt;r(3,3) \le 2r(2,3)=6&amp;lt;/tex&amp;gt;. Так как числа &amp;lt;tex&amp;gt;r(3,3)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r(2,4)&amp;lt;/tex&amp;gt; четны, можно вывести неравенства &amp;lt;tex&amp;gt;r(3,4) \le r(3,3)+r(2,4)-1=9&amp;lt;/tex&amp;gt;. И, наконец, &amp;lt;tex&amp;gt;r(3,5) \le r(2,5)+r(3,4)=14&amp;lt;/tex&amp;gt;, а также &amp;lt;tex&amp;gt;r(4,4) \le 2r(3,4)=18&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Экстремальные примеры и оценки снизу===&lt;br /&gt;
Задача нахождения точных значений чисел Рамсея чрезвычайно трудна, этих значении известно немногим больше, чем перечислено выше.&lt;br /&gt;
{{Определение|id=def3&lt;br /&gt;
|definition=Графом Рамсея &amp;lt;tex&amp;gt;R(n,m)&amp;lt;/tex&amp;gt; назовем такой граф на &amp;lt;tex&amp;gt;r(n,m)-1&amp;lt;/tex&amp;gt; вершинах, не содержащий ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах ни независимого множества на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах(то есть, граф на ребрах цвета 1 из раскраски в два цвета ребер графа &amp;lt;tex&amp;gt;K_{r(m,n)-1}&amp;lt;/tex&amp;gt;, не содержащей ни клики на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 ни клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2).&lt;br /&gt;
}}&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;R(3,3)&amp;lt;/tex&amp;gt; — это цикл на пяти вершинах. Экстремальный граф &amp;lt;tex&amp;gt;R(3,4)&amp;lt;/tex&amp;gt; — это цикл на 8 вершинах с проведёнными четырьмя главными диагоналями. Графы &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; имеют интересную числовую природу.&lt;br /&gt;
&lt;br /&gt;
Так, если ассоциировать 13 вершин графа &amp;lt;tex&amp;gt;R(3,5)&amp;lt;/tex&amp;gt; с элементами поля вычетов по модулю 13, то рёбра будут соединять вычеты разность которых — кубический вычет по модулю 13 (то есть, 1, 5, 8 или 12).&lt;br /&gt;
&lt;br /&gt;
Если считать 17 вершин графа &amp;lt;tex&amp;gt;R(4,4)&amp;lt;/tex&amp;gt; элементами поля вычетов по модулю 17, то рёбра будут соединять вычеты, разность которых — квадратичный вычет по модулю 17 (то есть, 1, 2, 4, 8, 9, 13, 15 или 16).&lt;br /&gt;
&lt;br /&gt;
Существует гипотеза что любой граф &amp;lt;tex&amp;gt;R(k,k)&amp;lt;/tex&amp;gt; изоморфен своему дополнению(или что в раскраске полного графа на &amp;lt;tex&amp;gt;r(k,k)-1&amp;lt;/tex&amp;gt; вершинах в два цвета граф с рёбрами цвета 1 обязательно изоморфен графу с рёбрами цвета 2). Однако, это не белее чем красивое предположение, в обоснование которого можно положите лишь немногие известные примеры.&lt;br /&gt;
&lt;br /&gt;
{{Теорема|id=ter2|about=2&lt;br /&gt;
|statement=Для любого натурального числа &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt; выполняется неравенство &amp;lt;tex&amp;gt;r(k,k) \ge k^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;R(2,2)=2&amp;lt;/tex&amp;gt;, достаточно рассмотреть случай &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Зафиксируем множество различных помеченных вершин &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;g(n,k)&amp;lt;/tex&amp;gt; — деля среди всех графов на вершинах &amp;lt;tex&amp;gt;v_i,...,v_n&amp;lt;/tex&amp;gt; тех графов, что содержат клику на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Всего графов на наших вершинах, очевидно &amp;lt;tex&amp;gt;2^{C^2_n}&amp;lt;/tex&amp;gt; (каждое из возможных &amp;lt;tex&amp;gt;C^2_n&amp;lt;/tex&amp;gt; можно провести или не провести).&lt;br /&gt;
&lt;br /&gt;
Посчитаем графы с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах так: существует &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов выбрать &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин для клики в нашем множестве, после чего все рёбра между ними будем считать проведенными, а остальные ребра выбираются произвольным образом. Таким образом, каждый граф с кликой на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах будет посчитан причём некоторые даже более одного раза. Количестве графов с кликой оказывается не более, чем &amp;lt;tex&amp;gt;C^k_n\cdot 2^{C^2_n-C^2_k}&amp;lt;/tex&amp;gt;. Следовательно,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k) \le \frac{C^k_n}{2^{C^2_k}}&amp;lt;\frac{n^k}{k!\cdot 2^{C^2_k}}&amp;lt;/tex&amp;gt; '''*'''&lt;br /&gt;
&lt;br /&gt;
Подставив &amp;lt;tex&amp;gt;n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; в неравенство '''*''' мы получаем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac{2^{k^2/2}\cdot 2^{-C^2_k}}{k!}=\frac{2^{k/2}}{k!}&amp;lt;\frac12&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;k \ge 3&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предположим, что &amp;lt;tex&amp;gt;r(k,k)=n&amp;lt;2^{k/2}&amp;lt;/tex&amp;gt; и разобьём все графы на n вершинах на пары &amp;lt;tex&amp;gt;G, \overline G&amp;lt;/tex&amp;gt; (граф и его дополнение) Так как &amp;lt;tex&amp;gt;g(n,k)&amp;lt;\frac12&amp;lt;/tex&amp;gt;, то существует пара, в которой ни &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, ни &amp;lt;tex&amp;gt;\overline G&amp;lt;/tex&amp;gt; не содержат клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах. Рассмотрим раскраску рёбер &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt; в два цвета, в которой ребра цвета 1 образуют граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;. В такой раскраске нет клики на &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинах ни цвета 1, ни цвета 2, противоречие. Следовательно &amp;lt;tex&amp;gt;r(k,k) \ge 2^{k/2}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение|id=u2&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=Для любых &amp;lt;tex&amp;gt;k,m \in \mathbb N&amp;lt;/tex&amp;gt; таких, что &amp;lt;tex&amp;gt;2 \le k \le m&amp;lt;/tex&amp;gt;, выполняется неравенство &amp;lt;tex&amp;gt;r(k,m) \ge 2^{k/2}&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Числа Рамсея для раскрасок в несколько цветов===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def4 &lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r(k;n_1,...,n_k)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся клика на &amp;lt;tex&amp;gt;n_i&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u3|about=3&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что &amp;lt;tex&amp;gt;r(2;n,m)&amp;lt;/tex&amp;gt; — это определённое ранее число Рамсея &amp;lt;tex&amp;gt;r(n,m)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Обобщение оказывается настолько естественным что по сути не добавляет нам ничего нового:  полностью аналогично [[#ter1|теореме 1]] и [[#u1| утверждению 1]] можно доказать следующие факты.&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter3|about=3 &lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;k,n_1,...,n_k \ge 2&amp;lt;/tex&amp;gt; {{---}} натуральные числа. Тогда выполняются следующие утверждения:&lt;br /&gt;
&amp;lt;tex&amp;gt;1) r(k;n_1,...,n_k) \le r(k;n_1-1,n_2,...,n_k)+r(k;n_1,n_2-1,...,n_k)++r(k;n_1,n_2,...,n_k-1)-k+2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;2)r(k;n_1,...,n_k) \le \frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
1) Доказательстве полностью аналогично пункту 1 доказательства [[#ter1|теоремы 1]]&lt;br /&gt;
&lt;br /&gt;
2) Доказательство аналогично [[#u1|утверждению 1]]. Нужно лишь убедиться в очевидном неравенстве для случая, когда хотя бы одно из чисел &amp;lt;tex&amp;gt;n_1,...,n_k&amp;lt;/tex&amp;gt; равно 1 (левая часть в этом случае равна 1, а правая, очевидно не меньше 1) и заметить, что полиномиальные коэффициенты из очевидных комбинаторных соображений удовлетворяют соотношению:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex dpi=&amp;quot;150&amp;quot;&amp;gt;\frac{(n_1+n_2+...+n_k)!}{n_1!\cdot n_2!\cdot ...\cdot n_k!}=\sum\limits_{i = 1}^k\frac{(n_1+...+(n_i-1)+...+n_k)!}{n_1!\cdot ...\cdot (n_i-1)!\cdot ...\cdot n_k!}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следовательно, 2 неравенство из данной [[#ter3|теоремы]] выводится из неравенства 1 по индукции.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея больших размерностей==&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def5&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k \in \mathbb N&amp;lt;/tex&amp;gt;, причём &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Число Рамсея &amp;lt;tex&amp;gt;r_m(k; n_1,...,n_k)&amp;lt;/tex&amp;gt; —  наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;-элементного множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; цветов для некоторого &amp;lt;tex&amp;gt;i \in [1..k]&amp;lt;/tex&amp;gt; обязательно найдётся такое множество &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W_i|=n_i&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;-элементные подмножества множества &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; имеют цвет &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def6&lt;br /&gt;
|definition=&lt;br /&gt;
Число &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; называется размерностью числа Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u4|about=4&lt;br /&gt;
|statement=&lt;br /&gt;
1) Нетрудно понять что числа Рамсея размерности 2 — это определённые выше числа Рамсея для клик&amp;lt;br&amp;gt;2) При количестве цветов, равном 2, этот параметр мы будем опускать и писать &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;r_m(2;n_1,n_2)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def7|definition=&lt;br /&gt;
Для каждою множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;M^k&amp;lt;/tex&amp;gt; мы будем обозначать множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter4|about=4|statement=Пусть &amp;lt;tex&amp;gt;m,k,n_1,...,n_k&amp;lt;/tex&amp;gt; {{---}} натуральные числа, причем &amp;lt;tex&amp;gt;k \ge 2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;n_1,...,n_k \ge m&amp;lt;/tex&amp;gt;. Тогда число Рамсея &amp;lt;tex&amp;gt;r_m(k;n_1,...n_k)&amp;lt;/tex&amp;gt; существует(то есть, конечно)&lt;br /&gt;
|proof=&lt;br /&gt;
1)Мы будем доказывать теорему по индукции. Начнем со случая &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. Приступая к доказательству для числа &amp;lt;tex&amp;gt;r_m(n_1,n_2)&amp;lt;/tex&amp;gt; мы будем считать доказанным утверждение теоремы для чисел Рамсея всех меньших размерностей и чисел Рамсея размерности &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; с меньшей суммой &amp;lt;tex&amp;gt;n_1+n_2&amp;lt;/tex&amp;gt;. В качестве базы будем использовать случай чисел Рамсея размерности 2 разобранный выше. Итак, мы докажем, что&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(n_1,n_2)-1 \le p=r_{m-1}(r_m(n_1-1,n_2),r_m(n_1,n_2-1))&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим &amp;lt;tex&amp;gt;(p+1)&amp;lt;/tex&amp;gt;-элементное множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; и выделим в нём элемент &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;M_0=M&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;\rho:M^m\rightarrow&amp;lt;/tex&amp;gt; {1,2} — произвольная раскраска в два цвета. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho': M_0^{m-1}\rightarrow&amp;lt;/tex&amp;gt; {1,2}, определённую следующим образом: для каждого множества &amp;lt;tex&amp;gt;B \in M_0^{m-1}&amp;lt;/tex&amp;gt; пусть &amp;lt;tex&amp;gt;\rho'(В) = \rho(B U&amp;lt;/tex&amp;gt;{a}&amp;lt;tex&amp;gt;)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;|M_0|=p&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1 — 1,n_2)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_i \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(В)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_1^{m-1}&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;r_m(n_1,n_2-1)&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_2 \subset M_0&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho'(B)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;B \in M_2^{m-1}&amp;lt;/tex&amp;gt;. Случаи аналогичны, рассмотрим первый случай и множество &amp;lt;tex&amp;gt;M_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположен из &amp;lt;tex&amp;gt;|M_1|=r_m(n_1-1,n_2)&amp;lt;/tex&amp;gt; следует, что либо существует &amp;lt;tex&amp;gt;n_1-1&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_1 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N^m_1&amp;lt;/tex&amp;gt;, либо существует &amp;lt;tex&amp;gt;n_2&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;N_2 \subset M_1&amp;lt;/tex&amp;gt;, для которого &amp;lt;tex&amp;gt;\rho(A)=2&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in N_2^m&amp;lt;/tex&amp;gt;. Во втором случае искомое подмножество найдено (это &amp;lt;tex&amp;gt;N_2&amp;lt;/tex&amp;gt;), рассмотрим первый случай и множество &amp;lt;tex&amp;gt;N=N_1 \cup &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}. Пусть &amp;lt;tex&amp;gt;A \in N^m&amp;lt;/tex&amp;gt;. Если &amp;lt;tex&amp;gt;A \not\ni a&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;A \in N_1^m&amp;lt;/tex&amp;gt; и следовательно &amp;lt;tex&amp;gt;\rho(A)=1&amp;lt;/tex&amp;gt;. Если же &amp;lt;tex&amp;gt;A \ni a&amp;lt;/tex&amp;gt;, то множество &amp;lt;tex&amp;gt;A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;\in N_1^{m-1} \subset M_1^{m-1}&amp;lt;/tex&amp;gt; и поэтому &amp;lt;tex&amp;gt;\rho(A)=\rho'(A&amp;lt;/tex&amp;gt;\{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;}&amp;lt;tex&amp;gt;)=1&amp;lt;/tex&amp;gt;. Учитывая, что &amp;lt;tex&amp;gt;|N|=n_1&amp;lt;/tex&amp;gt;, мы нашли искомое подмножество и в этом случае.&lt;br /&gt;
&lt;br /&gt;
2)При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; будем вести индукцию по &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; с доказанной выше базой &amp;lt;tex&amp;gt;k=2&amp;lt;/tex&amp;gt;. При &amp;lt;tex&amp;gt;k&amp;gt;2&amp;lt;/tex&amp;gt; мы докажем неравенство&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;r_m(k;n_1,...,n_k) \le q=r_m(r_m(k-1;n_1,...,n_{k-1}),n_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого мы рассмотрим множество &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; вершинах и произвольную раскраску &amp;lt;tex&amp;gt;\rho:M^m \rightarrow [1..k]&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;цветов. Рассмотрим раскраску &amp;lt;tex&amp;gt;\rho':M^m \rightarrow &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;0,k&amp;lt;/tex&amp;gt;}, в которой цвета &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt; раскраски &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; склеены в цвет 0. Тогда существует либо таксе подмножество &amp;lt;tex&amp;gt;M_0 \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|M_0|=r_m(k-1;n_1,...,n_{k-1})&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt;, либо существует такое &amp;lt;tex&amp;gt;n_k&amp;lt;/tex&amp;gt;-элементное подмножество &amp;lt;tex&amp;gt;M_k \subset M&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\rho(A)=\rho'(A)=k&amp;lt;/tex&amp;gt; на всех &amp;lt;tex&amp;gt;A \in M^m_k&amp;lt;/tex&amp;gt;. Во втором случае &amp;lt;tex&amp;gt;M_k&amp;lt;/tex&amp;gt; — искомое подмножество, а в первом случае заметим, что на любом подмножестве &amp;lt;tex&amp;gt;A \in M_0^m&amp;lt;/tex&amp;gt; из &amp;lt;tex&amp;gt;\rho'(A)=0&amp;lt;/tex&amp;gt; следует &amp;lt;tex&amp;gt;\rho(A) \in [1..k-1]&amp;lt;/tex&amp;gt;. Исходя из размера множества &amp;lt;tex&amp;gt;M_0&amp;lt;/tex&amp;gt; по индукционному предположению получаем, что найдется искомое подмножество множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; для одного из цветов &amp;lt;tex&amp;gt;1,...,k-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Числа Рамсея для произвольных графов==&lt;br /&gt;
Еще один способ обобщения классической теории Рамсея — замена клик на произвольные графы-шаблоны.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def8&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H_1,h_2&amp;lt;/tex&amp;gt; — два данных графа. Число Рамсея &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; — это наименьшее из всех таких чисел &amp;lt;tex&amp;gt;x \in \mathbb N&amp;lt;/tex&amp;gt;, что при любой раскраске рёбер полного графа на &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; вершинах в два цвета обязательно найдется подграф, изоморфный &amp;lt;tex&amp;gt;H_1&amp;lt;/tex&amp;gt; с рёбрами цвета 1 или подграф изоморфный &amp;lt;tex&amp;gt;H_2&amp;lt;/tex&amp;gt; с рёбрами цвета 2&lt;br /&gt;
}}&lt;br /&gt;
В принципе из результатов классической теории Рамсея понятие, что числа &amp;lt;tex&amp;gt;r(H_1,H_2)&amp;lt;/tex&amp;gt; обязательно существуют (то есть, конечны).&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l1|about=1|statement=Пусть &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt;, а граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; таков, что &amp;lt;tex&amp;gt;v(H) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(H) \le m-1&amp;lt;/tex&amp;gt;. Тогда граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
|proof=&lt;br /&gt;
Зафиксируем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; и проведем индукцию по &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt; очевидна. Докажем индукционный переход &amp;lt;tex&amp;gt;n-1 \rightarrow n(n&amp;gt;1&amp;lt;/tex&amp;gt;. Рассмотрим произвольное дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах, пусть дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt; получено из &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; удалением висячей вершины. Пусть &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; — максимальное независимое множестве вершин графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;|U|=\alpha(H) \le m-1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;v(H-U) \ge (m-1)(n-2)+1&amp;lt;/tex&amp;gt; и очевидно &amp;lt;tex&amp;gt;\alpha(H-U) \le m-1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
По индукционному предположению, граф &amp;lt;tex&amp;gt;H-U&amp;lt;/tex&amp;gt; содержит в качестве подграфа дерево &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; — вершина этого дерева, присоединив к ксторой висячую вершину мы получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Заметим, что множество &amp;lt;tex&amp;gt;U \cup&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt;} не является независимым ввиду максимальности &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;. Следовательно, вершина &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; смежна хотя с одной вершиной &amp;lt;tex&amp;gt;x \in U&amp;lt;/tex&amp;gt;. Отметим, что &amp;lt;tex&amp;gt;x \not\in V(T_{n-1})&amp;lt;/tex&amp;gt; и, присоединив вершину &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; к вершине &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; дерева &amp;lt;tex&amp;gt;T_{n-1}&amp;lt;/tex&amp;gt;, получим дерево &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; в качестве подграфа графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter5 &lt;br /&gt;
|author=5&lt;br /&gt;
|statement=Пусть &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt; — дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах. Тогда &amp;lt;tex&amp;gt;r(T_n,K_m)=(m-1)(n-1)+1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
1) Докажем, что &amp;lt;tex&amp;gt;r(T_n,K_m) \ge (m-1)(n-1)+1&amp;lt;/tex&amp;gt;. Для этого предъявим раскраску рёбер графа K_{(m-1)(n-1)}, в которой нет ни одного связного подграфа на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 1 и нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Разобьём вершины графа на &amp;lt;tex&amp;gt;m-1&amp;lt;/tex&amp;gt; клику по &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершине и покрасим все рёбра этих клик в цвет 1. Тогда любой связный подграф с рёбрами цвета 1 содержит не более &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;gt; вершины, в частности, нет подграфа с рёбрами цвета 1, изоморфного &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;. Рёбра цвета 2 (то есть, все оставшиеся рёбра) образуют &amp;lt;tex&amp;gt;(m-1)&amp;lt;/tex&amp;gt;-дольный граф, в котором, очевидно, нет клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах.&lt;br /&gt;
&lt;br /&gt;
2) Рассмотрим произвольную раскраску рёбер полного графа &amp;lt;tex&amp;gt;K_{(m-1)(n-1)+1}&amp;lt;/tex&amp;gt; в два цвета. Предположим, что не существует клики на &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt; вершинах с рёбрами цвета 2. Тогда &amp;lt;tex&amp;gt;m&amp;gt;1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\alpha(G_1) \le m-1&amp;lt;/tex&amp;gt;. По [[#l1|лемме 1]], граф &amp;lt;tex&amp;gt;G_1&amp;lt;/tex&amp;gt; содержит в качестве подграфа любое дерево на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; вершинах в частности, дерево, изоморфное &amp;lt;tex&amp;gt;T_n&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Индуцированная теорема Рамсея==&lt;br /&gt;
Докажем похожее на теорему Рамсея, но значительно более сложнее утверждение.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def9&lt;br /&gt;
|definition=Пусть &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; — граф. Граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; называется рамсеееским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, если при любой раскраске рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета существует одноцветный по рёбрам индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфный &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;}}&lt;br /&gt;
При замене произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; на клику мы получаем частный случай классической теоремы Рамсея. Для клики добавленное слово &amp;quot;индуцированный&amp;quot; ничего не меняет. Но значительно усложняет ситуацию для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. &lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter6 &lt;br /&gt;
|about=6, Индуцированная теорема Рамсея&lt;br /&gt;
|statement=Для любого графа существует рамсеевский граф&lt;br /&gt;
}}&lt;br /&gt;
===Случай двудольного графа===&lt;br /&gt;
Здесь мы будем рассматривать двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, как&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;G=(V_1(G),V_2(G),E(G))&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;tex&amp;gt;V_1(G)&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_2(G)&amp;lt;/tex&amp;gt; — разбиение множества вершин &amp;lt;tex&amp;gt;V(G)&amp;lt;/tex&amp;gt; на две доли, а рёбра соединяют вершины из разных долей.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def10&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;H,G&amp;lt;/tex&amp;gt; — двудольные графы. Инъективное отображение &amp;lt;tex&amp;gt;\phi:V(H)\rightarrow V(G)&amp;lt;/tex&amp;gt; назовём погружением, если оно удовлетворяет двум условиям.&amp;lt;br&amp;gt;&lt;br /&gt;
1)&amp;lt;tex&amp;gt;\phi(V_1(H)) \subset V_1(G), \phi(V_2(H)) \subset v_2(G)&amp;lt;/tex&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2)&amp;lt;tex&amp;gt;\phi(u)\phi(v) \in E(G)&amp;lt;/tex&amp;gt; тогда и только тогда когда &amp;lt;tex&amp;gt;uv\in E(H)&amp;lt;/tex&amp;gt;&lt;br /&gt;
В этом случае будем говорить, что двудольный граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; погружён в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; и использовать обозначение &amp;lt;tex&amp;gt;\phi(H)=G(\phi(V(H)))&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u5|about=5&lt;br /&gt;
|statement=&lt;br /&gt;
Отметим, что если существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; то индуцированный подграф &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Напомним, что для множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;X^k&amp;lt;/tex&amp;gt; мы обозначаем множество всех &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-элементных подмножеств множества &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def11&lt;br /&gt;
|definition=Назовем особым двудольный граф вида&lt;br /&gt;
&amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;E(H)=&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;xY|x\in V,Y\in V^k, x\in Y&amp;lt;/tex&amp;gt;}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l2|about=2&lt;br /&gt;
|statement=Любой двудольный граф может быть погружен в особый двудольный граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Рассмотрим произвольный двудольный граф &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;, пусть &amp;lt;tex&amp;gt;V_1(P)=\{a_1,...,a_n\}, V_2(P)=\{b_1,...,b_n\}&amp;lt;/tex&amp;gt;. Положим&lt;br /&gt;
&amp;lt;tex&amp;gt;V=\{x_1,...,x_n,y_1,...,y_n,z_1,...,z_m\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Построим погружение &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt; в особый двудольный граф &amp;lt;tex&amp;gt;H=(V,V^{n+1},E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Изначально положим &amp;lt;tex&amp;gt;\phi(a_i)=x_i&amp;lt;/tex&amp;gt;. Попробуем построить такое множество &amp;lt;tex&amp;gt;Y_j\in V^{n+1}&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;\phi(b_j)=Y_j&amp;lt;/tex&amp;gt;. По определению погружения и множества &amp;lt;tex&amp;gt;E(H)&amp;lt;/tex&amp;gt;, должно выполняться условие:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;Y_j\cap\{x_1,...,x_n\}=\phi(N_P(b_j)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Условие оставляет незаполненными &amp;lt;tex&amp;gt;n+1-d_P(b_j)\ge 1&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; (единственное ограничение эти элементы не могут быть вершинами &amp;lt;tex&amp;gt;x_1,...,x_n&amp;lt;/tex&amp;gt;). Поместим в &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; элемент-индекс &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; (чтобы &amp;lt;tex&amp;gt;Y_j\not=Y_l&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;j \not=l&amp;lt;/tex&amp;gt;, и дополним произвольно элементами из &amp;lt;tex&amp;gt;y_1,...,y_n&amp;lt;/tex&amp;gt;, чтобы в множестве &amp;lt;tex&amp;gt;Y_j&amp;lt;/tex&amp;gt; было ровно &amp;lt;tex&amp;gt;n+1&amp;lt;/tex&amp;gt; элементов.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|id=l3|about=3&lt;br /&gt;
|statement=Для любого двудольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует такой двудольный граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, что для любой раскраски рёбер &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета обязательно существует погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в котором все рёбра &amp;lt;tex&amp;gt;\phi(H)&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof= &lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u6|about=6&lt;br /&gt;
|statement=&lt;br /&gt;
Разумеется, указанный в условии [[#l3|леммы 3]] граф &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; будет рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Утверждение леммы более сильное: мы дополнительно требуем, чтобы все вершины одной доли &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; можно было погрузить в одну долю графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Ввиду [[#l2|леммы 2]] достаточно доказать утверждение для особого двудольного графа &amp;lt;tex&amp;gt;H=(V,V^k,E(H))&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;|V|=n&amp;lt;/tex&amp;gt;. Докажем что рамсеевским графом для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; будет особый двудольный граф &amp;lt;tex&amp;gt;G=(U,U^{2k-1},E(G))&amp;lt;/tex&amp;gt;, где&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;|U|=r_{2k-1}(2C^k_{2k-1};kn+k-1,...,kn+k-1).&amp;lt;/tex&amp;gt; '''**'''&amp;lt;br&amp;gt;&lt;br /&gt;
Рассмотрим произвольную раскраску рёбер графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета 1 и 2. Каждое множество &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; смежно как вершина особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; с &amp;lt;tex&amp;gt;2k-1&amp;lt;/tex&amp;gt; вершиной, хотя бы &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; из этих рёбер имеет одинаковый цвет. Выберем и зафиксируем для каждого множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; его подмножество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;, состоящее из &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин доли &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; соединённых с &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; рёбрами одинакового цвета. Пусть &amp;lt;tex&amp;gt;c(Y)\in \{1,2\}&amp;lt;/tex&amp;gt; — это цвет рёбер соединяющий &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; с вершинами из &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Можно считать, что элементы &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; упорядочены. Тогда элементы каждого множества &amp;lt;tex&amp;gt;Y\in U^{2k-1}&amp;lt;/tex&amp;gt; будут упорядочены. Обозначим через &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; множество номеров &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; в порядке элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\sigma(Y)&amp;lt;/tex&amp;gt; может принимать ровно &amp;lt;tex&amp;gt;C^k_{2k-1}&amp;lt;/tex&amp;gt; значений.&lt;br /&gt;
&lt;br /&gt;
Покрасим множество &amp;lt;tex&amp;gt;U^{2k-1}&amp;lt;/tex&amp;gt; (то есть все &amp;lt;tex&amp;gt;(2k-1)&amp;lt;/tex&amp;gt;-элементные подмножества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;) в &amp;lt;tex&amp;gt;2C^k_{2k-1}&amp;lt;/tex&amp;gt;цветов: цветом подмножества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; будет пара &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt;. Из выбора размера множества &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt; (см. условие **) следует, что ceotcndetn такое подмножество &amp;lt;tex&amp;gt;W\subset U&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;|W|=kn+k-1&amp;lt;/tex&amp;gt; и все подмножества &amp;lt;tex&amp;gt;Y\subset W^{2k-1}&amp;lt;/tex&amp;gt; имеют одинаковый цвет &amp;lt;tex&amp;gt;(\sigma(Y),c(Y))&amp;lt;/tex&amp;gt; (не умаляя общности будем считать, что &amp;lt;tex&amp;gt;\sigma(Y)=\sigma, c(Y)=1)&amp;lt;/tex&amp;gt;. Мы найдём погружение графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;G(W)&amp;lt;/tex&amp;gt;, все рёбра в котором покрашены в исходной раскраске в цвет 1 и тем самым докажем лемму.&lt;br /&gt;
&lt;br /&gt;
Занумеруем элементы множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; в порядке их следования в &amp;lt;tex&amp;gt;U&amp;lt;/tex&amp;gt;: пусть &amp;lt;tex&amp;gt;W=\{w_1,...,w_{kn+k-1}\}&amp;lt;/tex&amp;gt;. Введем обозначения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;t_j=w_kj, T=\{t_1,...,t_n\}, V=\{a_1,...,a_n\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Положим &amp;lt;tex&amp;gt;\phi(a_i)=t_i&amp;lt;/tex&amp;gt;. Остаётся корректно определить &amp;lt;tex&amp;gt;\phi(Z)&amp;lt;/tex&amp;gt; для каждого множества &amp;lt;tex&amp;gt;Z\in V^k&amp;lt;/tex&amp;gt;. Прежде чем построить &amp;lt;tex&amp;gt;\phi(Z)=Y\in U^{2k-1}&amp;lt;/tex&amp;gt; мы положим &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt;. Из определения погружения понятно, что тогда должно выполняться условие &amp;lt;tex&amp;gt;S(Y)=Y\cap T&amp;lt;/tex&amp;gt;, а следовательно, нам нужно дополнить множество &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; еще &amp;lt;tex&amp;gt;k-1&amp;lt;/tex&amp;gt; элементами, не входящими в множество &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Мы сделаем это так, чтобы множество порядков номеров элементов множества &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; среди элементов множества &amp;lt;tex&amp;gt;Y&amp;lt;/tex&amp;gt; было &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;: так как &amp;lt;tex&amp;gt;t_i=w_ki&amp;lt;/tex&amp;gt;, не входящих в &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элементов &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; хватит, чтобы обеспечить это.&lt;br /&gt;
&lt;br /&gt;
Так как по выбору множества &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt; мы имеем &amp;lt;tex&amp;gt;\sigma(Y)=\sigma&amp;lt;/tex&amp;gt;, множество &amp;lt;tex&amp;gt;S(Y)&amp;lt;/tex&amp;gt; выбрано корректно и, опять же в силу выбора &amp;lt;tex&amp;gt;W&amp;lt;/tex&amp;gt;, все рёбра особого двудольного графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; между вершинами из &amp;lt;tex&amp;gt;S(Y)=\{\phi(x):x\in Z\}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Y=\phi(Z)&amp;lt;/tex&amp;gt; покрашены в цвет 1. В завершение остается лишь добавить, что при &amp;lt;tex&amp;gt;Z\not=Z'&amp;lt;/tex&amp;gt; мы по построению имеем &amp;lt;tex&amp;gt;S(\phi(Z))\not=S(\phi(Z'))&amp;lt;/tex&amp;gt;, поэтому &amp;lt;tex&amp;gt;\phi(Z)\not=\phi(Z')&amp;lt;/tex&amp;gt;. Таким образом искомое погружение построено.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Случай произвольного графа===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=ter7|about=7&lt;br /&gt;
|statement=Для произвольного графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; существует рамсеевский граф.&lt;br /&gt;
|proof=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;k=v(H),n=r(k,k)&amp;lt;/tex&amp;gt;. Пронумеруем вершины графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Построим граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; следующим образом: разместим его вершины в виде таблице &amp;lt;tex&amp;gt;n \times C^k_n&amp;lt;/tex&amp;gt;. Таким образом в каждом столбце вершины окажутся пронумерованы числами от 1 до &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, как соответствующие строки таблицы. В каждом столбце одним из &amp;lt;tex&amp;gt;C^k_n&amp;lt;/tex&amp;gt; способов разместим граф &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; (каждый столбец соответствует одному из возможных способов размещения). Все рёбра графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; будут рёбрами указанных копий графа &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; является &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольным, его естественное разбиение на доли задаётся таблицей: &amp;lt;tex&amp;gt;V_i(G^0)&amp;lt;/tex&amp;gt; — это вершины, соответствующие &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; ряду таблицы. Мы последовательно в несколько шагов будем перестраивать наш граф с помощью [[#l3|леммы 3]], так, чтобы вершины последующих графов также разбивались на &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; долей и записывались в виде таблицы. Каждый шаг будет соответствовать одной паре строк таблицы.&lt;br /&gt;
&lt;br /&gt;
'''Шаг перестройки графа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, пусть мы имеем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-дольный граф &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;, доли которого &amp;lt;tex&amp;gt;V_i=V_i(G^l)&amp;lt;/tex&amp;gt; (где &amp;lt;tex&amp;gt;i\in [1..n]&amp;lt;/tex&amp;gt;). Пусть с парой строк (и, соответственно, долей) &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; мы еще не выполняли шаг. Очевидно, граф &amp;lt;tex&amp;gt;G_{i,j}=G^l(V_i\cup V_j)&amp;lt;/tex&amp;gt; двудолен и для него по [[#l3|лемме 3]] существует двудольный рамсеевский граф &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Более того если вершины &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; разбиты на две доли &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, то для любой раскраски рёбер в два цвета существует одноцветное погружение &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; в котором &amp;lt;tex&amp;gt;\phi(V_i)\subset W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\phi(V_j)\subset W_j&amp;lt;/tex&amp;gt;. Назовём таксе погружение одноцветным.&lt;br /&gt;
&lt;br /&gt;
Перейдём к построению &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;. Заменим &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;W_j&amp;lt;/tex&amp;gt;, проведем между этими долями все рёбра графа &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;. Наша цель в том, чтобы для любого погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; была содержащая его копия &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; (причем доли этой копии лежали в соответствующих строках таблицы графа &amp;lt;tex&amp;gt;G^{l+1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Занумеруем всевозможные погружения &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt;: пусть это &amp;lt;tex&amp;gt;G_{i,j}(1),...,G_{i,j}(q)&amp;lt;/tex&amp;gt;. Каждому погружению &amp;lt;tex&amp;gt;G_{i,j}(s)&amp;lt;/tex&amp;gt; мы поставим в соответствие отдельные копии всех отличных от &amp;lt;tex&amp;gt;V_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j&amp;lt;/tex&amp;gt; долей: &amp;lt;tex&amp;gt;V_1(s),...,V_n(s)&amp;lt;/tex&amp;gt;. Положим &amp;lt;tex&amp;gt;V_i(s)=V(G_{i,j}(s))\cap W_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;V_j(s)=V(G_{i,j}(s))\cap W_j&amp;lt;/tex&amp;gt;. На этих долях построим копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;. В результате для каждого погружения графа &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; мы построили свою копию графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Выделение одноцветного индуцированного подграфа.'''&lt;br /&gt;
&lt;br /&gt;
Итак, докажем, что &amp;lt;tex&amp;gt;G=G^{C^2_n}&amp;lt;/tex&amp;gt; и есть рамсеевский граф для &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;. Пусть &amp;lt;tex&amp;gt;p_1,...,p_{C^2_n}&amp;lt;/tex&amp;gt; — именно такая нумерация пар строк в нашей таблице, в порядке которой совершались шаги перестройки графа. Рассмотрим произвольную раскраску рёбер &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; в два цвета и докажем следующий факт.&lt;br /&gt;
{{Утверждение&lt;br /&gt;
|id=u7|about=7&lt;br /&gt;
|statement=Для каждого &amp;lt;tex&amp;gt;l\in [0..C^2_n]&amp;lt;/tex&amp;gt; существует изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для пар строк &amp;lt;tex&amp;gt;p_{l+1},...,p_{C^2_n}&amp;lt;/tex&amp;gt; все рёбра между вершинами соответствующих пар строк в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; одноцветны.&lt;br /&gt;
|proof=&lt;br /&gt;
Индукция с обратным ходом от &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;l=0&amp;lt;/tex&amp;gt;. База для &amp;lt;tex&amp;gt;l=C^2_n&amp;lt;/tex&amp;gt; очевидна. Докажем переход &amp;lt;tex&amp;gt;l\rightarrow l-1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак рассмотрим наш изоморфный &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; подграф, который мы для простоты будем обозначать &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; и пару строку &amp;lt;tex&amp;gt;p_l&amp;lt;/tex&amp;gt; в нем: пусть это строки &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt;, a &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; — те двудольные графы между этими строками, что описаны в шаге построения. Так как &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; (подграф графа &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt;) — рамсеевский граф для &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt;, мы можем выбрать одноцветное в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt; погружение &amp;lt;tex&amp;gt;G_{i,j}&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;P_{i,j}&amp;lt;/tex&amp;gt; и соответствующая ему по построению копия &amp;lt;tex&amp;gt;G^{l-1}&amp;lt;/tex&amp;gt; будет искомым (из построения очевидно, что индуцированным!) подграфом &amp;lt;tex&amp;gt;G^l&amp;lt;/tex&amp;gt; а значит, и &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
Таким образом, существует изоморфный &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; индуцированный под­граф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;, в котором для каждой пары строк &amp;lt;tex&amp;gt;i,j&amp;lt;/tex&amp;gt; все ребра между вершинами соответствующих строк одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Будем обозначать этот граф просто &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;. Рассмотрим граф &amp;lt;tex&amp;gt;K_n&amp;lt;/tex&amp;gt;, вершины которого соответствуют строкам таблицы и покрасим каждое ребро в цвет, в который покрашены рёбра &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; между соответствующими строками. Так как &amp;lt;tex&amp;gt;n=r(k,k)&amp;lt;/tex&amp;gt;, существуют &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершин, между которыми все рёбра одноцветны. Рассмотрим столбец графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt;, в котором &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt; размещён именно в строчках, соответствующих этим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; вершинам. Подграф &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; на вершинах этого столбца и соответствующих строчках изоморфен &amp;lt;tex&amp;gt;H&amp;lt;/tex&amp;gt;, по построению является индуцированным подграфом графа &amp;lt;tex&amp;gt;G^0&amp;lt;/tex&amp;gt; и все его рёбра одноцветны в раскраске &amp;lt;tex&amp;gt;\rho&amp;lt;/tex&amp;gt;. Остаётся лишь заметить, что &amp;lt;tex&amp;gt;H'&amp;lt;/tex&amp;gt; — индуцированный подграф графа &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Ramsey's theorem|Wikipedia — Ramsey's theorem]]&lt;br /&gt;
* [[wikipedia:Ramsey theory|Wikipedia — Ramsey theory]]&lt;br /&gt;
* [http://scholar.lib.vt.edu/theses/available/etd-05162011-093603/unrestricted/Dickson_JO_T_2011.pdf An Introduction to Ramsey Theory on Graphs]&lt;br /&gt;
* [http://people.maths.ox.ac.uk/~gouldm/ramsey.pdf Ramsey Theory]&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Раскраски графов]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC_%D0%96%D0%B5%D0%B3%D0%B0%D0%BB%D0%BA%D0%B8%D0%BD%D0%B0&amp;diff=66255</id>
		<title>Полином Жегалкина</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BB%D0%B8%D0%BD%D0%BE%D0%BC_%D0%96%D0%B5%D0%B3%D0%B0%D0%BB%D0%BA%D0%B8%D0%BD%D0%B0&amp;diff=66255"/>
				<updated>2018-09-25T12:25:23Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Полином Жегалкина''' (англ. ''Zhegalkin polynomial'') — полином с коэффициентами вида &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;, где в качестве произведения берётся конъюнкция, а в качестве сложения исключающее или. Полином был предложен в 1927 году И. И. Жегалкиным в качестве средства для представления [[Определение булевой функции|функций булевой логики]]. Полином Жегалкина имеет следующий вид:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;P = a_{000\ldots000} \oplus a_{100\ldots0} x_1 \oplus a_{010\ldots0}  x_2 \oplus \ldots \oplus a_{00\ldots01}  x_n \oplus a_{110\ldots0} x_1 x_2 \oplus \ldots \oplus a_{00\ldots011} x_{n-1} x_n \oplus \ldots \oplus a_{11\ldots1} x_1 x_2 \ldots x_n  &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Полнота ==&lt;br /&gt;
&lt;br /&gt;
По [[Теорема Поста о полной системе функций|теореме Поста]], чтобы система булевых функций была полной, надо, чтобы в ней существовали&lt;br /&gt;
&lt;br /&gt;
#Хотя бы одна функция, не сохраняющая &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;;&lt;br /&gt;
#Хотя бы одна функция, не сохраняющая &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;;&lt;br /&gt;
#Хотя бы одна нелинейная функция;&lt;br /&gt;
#Хотя бы одна немонотонная функция;&lt;br /&gt;
#Хотя бы одна несамодвойственная функция.&lt;br /&gt;
&lt;br /&gt;
Исходя из этого, система функций &amp;lt;tex&amp;gt;\bigl\langle \wedge, \oplus, 1 \bigr\rangle&amp;lt;/tex&amp;gt; является полной:&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:8cm&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
 !&amp;lt;tex&amp;gt;x_0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;x_n&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\land&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\oplus&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
 !&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
 !&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
 !&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\vdots&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
 !&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
 !colspan=&amp;quot;4&amp;quot;|[[Полные_системы_функций._Теорема_Поста_о_полной_системе_функций#.D0.97.D0.B0.D0.BC.D0.BA.D0.BD.D1.83.D1.82.D1.8B.D0.B5_.D0.BA.D0.BB.D0.B0.D1.81.D1.81.D1.8B_.D0.B1.D1.83.D0.BB.D0.B5.D0.B2.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9|Сохраняет 0]]&lt;br /&gt;
|&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; &lt;br /&gt;
 !colspan=&amp;quot;4&amp;quot;|[[Полные_системы_функций._Теорема_Поста_о_полной_системе_функций#.D0.97.D0.B0.D0.BC.D0.BA.D0.BD.D1.83.D1.82.D1.8B.D0.B5_.D0.BA.D0.BB.D0.B0.D1.81.D1.81.D1.8B_.D0.B1.D1.83.D0.BB.D0.B5.D0.B2.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9|Сохраняет 1]]&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; &lt;br /&gt;
 !colspan=&amp;quot;4&amp;quot;|[[Полные_системы_функций._Теорема_Поста_о_полной_системе_функций#.D0.97.D0.B0.D0.BC.D0.BA.D0.BD.D1.83.D1.82.D1.8B.D0.B5_.D0.BA.D0.BB.D0.B0.D1.81.D1.81.D1.8B_.D0.B1.D1.83.D0.BB.D0.B5.D0.B2.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9|Самодвойственная]]&lt;br /&gt;
|&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; &lt;br /&gt;
 !colspan=&amp;quot;4&amp;quot;|[[Полные_системы_функций._Теорема_Поста_о_полной_системе_функций#.D0.97.D0.B0.D0.BC.D0.BA.D0.BD.D1.83.D1.82.D1.8B.D0.B5_.D0.BA.D0.BB.D0.B0.D1.81.D1.81.D1.8B_.D0.B1.D1.83.D0.BB.D0.B5.D0.B2.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9|Монотонная]]&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; &lt;br /&gt;
 !colspan=&amp;quot;4&amp;quot;|[[Полные_системы_функций._Теорема_Поста_о_полной_системе_функций#.D0.97.D0.B0.D0.BC.D0.BA.D0.BD.D1.83.D1.82.D1.8B.D0.B5_.D0.BA.D0.BB.D0.B0.D1.81.D1.81.D1.8B_.D0.B1.D1.83.D0.BB.D0.B5.D0.B2.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9|Линейная]]&lt;br /&gt;
|&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;||&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
На основе этой системы и строятся полиномы Жегалкина.&lt;br /&gt;
&lt;br /&gt;
== Существование и единственность представления (теорема Жегалкина) ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|author=Жегалкина&lt;br /&gt;
|statement=&lt;br /&gt;
Каждая булева функция единственным образом представляется в виде полинома Жегалкина.&lt;br /&gt;
|proof=&lt;br /&gt;
Заметим, что различных булевых функций от &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; переменных &amp;lt;tex&amp;gt;2^{2^n}&amp;lt;/tex&amp;gt; штук. При этом конъюнкций вида &amp;lt;tex&amp;gt;x_{i_1} \ldots x_{i_k}&amp;lt;/tex&amp;gt; существует ровно &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt;, так как из &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;  возможных сомножителей каждый или входит в конъюнкцию, или нет. В полиноме у каждой такой конъюнкции стоит &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;, то есть существует &amp;lt;tex&amp;gt;2^{2^n}&amp;lt;/tex&amp;gt; различных полиномов Жегалкина от &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; переменных.&lt;br /&gt;
&lt;br /&gt;
Теперь достаточно лишь доказать, что различные полиномы реализуют различные функции. Предположим противное. Тогда приравняв два различных полинома и перенеся один из них в другую часть равенства, получим полином, тождественно равный нулю и имеющий ненулевые коэффициенты. Тогда рассмотрим слагаемое с единичным коэффициентом наименьшей длины, то есть с наименьшим числом переменных, входящих в него (любой один, если таких несколько). Подставив единицы на места этих переменных, и нули на места остальных, получим, что на этом наборе только одно это слагаемое принимает единичное значение, то есть нулевая функция на одном из наборов принимает значение 1. Противоречие. Значит, каждая булева функция реализуется полиномом Жегалкина единственным образом.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Построение полинома Жегалкина ==&lt;br /&gt;
&lt;br /&gt;
Существует несколько способов построения полинома Жегалкина. &lt;br /&gt;
&lt;br /&gt;
=== По таблице истинности ===&lt;br /&gt;
Пусть для функции &amp;lt;tex&amp;gt;f(x_1,x_2,\ldots,x_n)&amp;lt;/tex&amp;gt;  задана таблица истинности. Запишем сначала данную функцию в виде полинома Жегалкина с неопределёнными коэффициентами. Затем по очереди подставляем всевозможные наборы в порядке увеличения количества единиц и находим коэффициенты с учётом того, что &amp;lt;tex&amp;gt; a \oplus 1 = \bar{a}&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt; a \oplus 0 = a&amp;lt;/tex&amp;gt;. За каждую подстановку находим только один коэффициент.&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
Дана функция &amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4)&amp;lt;/tex&amp;gt; и её таблица истинности:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:8cm&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
 |- &lt;br /&gt;
 !class=&amp;quot;dark&amp;quot; style=&amp;quot;font-weight:normal&amp;quot;| &amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
 !class=&amp;quot;dark&amp;quot; style=&amp;quot;font-weight:normal&amp;quot;| &amp;lt;tex&amp;gt;x_2&amp;lt;/tex&amp;gt; &lt;br /&gt;
 !class=&amp;quot;dark&amp;quot; style=&amp;quot;font-weight:normal&amp;quot;| &amp;lt;tex&amp;gt;x_3&amp;lt;/tex&amp;gt; &lt;br /&gt;
 !class=&amp;quot;dark&amp;quot; style=&amp;quot;font-weight:normal&amp;quot;| &amp;lt;tex&amp;gt;x_4&amp;lt;/tex&amp;gt; &lt;br /&gt;
 !class=&amp;quot;dark&amp;quot; style=&amp;quot;font-weight:normal&amp;quot;| &amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4)&amp;lt;/tex&amp;gt;&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||0||0||0||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||0||0||1||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||0||1||0||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||0||1||1||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||1||0||0||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||1||0||1||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||1||1||0||1&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||0||1||1||1||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||0||0||0||1&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||0||0||1||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||0||1||0||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||0||1||1||1&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||1||0||0||1&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||1||0||1||0&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||1||1||0||1&lt;br /&gt;
 |- align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ||1||1||1||1||0&lt;br /&gt;
|}&lt;br /&gt;
Построим для неё полином Жегалкина:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = a_{0000} \oplus a_{1000} x_1 \oplus a_{0100} x_2 \oplus a_{0010} x_3 \oplus a_{0001} x_4 \oplus a_{1100} x_1 x_2 \oplus a_{1010} x_1 x_3 \oplus a_{1001} x_1 x_4 \oplus a_{0110} x_2 x_3 \oplus a_{0101} x_2 x_4 \oplus a_{0011} x_3 x_4 \oplus a_{1110} x_1 x_2 x_3 \oplus a_{1101} x_1 x_2 x_4 \oplus a_{1011} x_1 x_3 x_4 \oplus a_{0111} x_2 x_3 x_4  \oplus a_{1111} x_1 x_2 x_3 x_4&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;f(0,0,0,0) = 0&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;a_{0000} = 0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Далее подставляем все остальные наборы в порядке возрастания числа единиц, подставляя вновь полученные значения в следующие формулы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,0,0,0) = a_{0000} \oplus a_{1000} = 1 \Rightarrow a_{1000} = 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,1,0,0) = a_{0000} \oplus a_{0100} = 0 \Rightarrow a_{0100} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,0,1,0) = a_{0000} \oplus a_{0010} = 0 \Rightarrow a_{0010} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,0,0,1) = a_{0000} \oplus a_{0001} = 0 \Rightarrow a_{0001} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,1,0,0) = a_{0000} \oplus a_{1000} \oplus a_{0100} \oplus a_{1100} = 1 \Rightarrow a_{1100} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,0,1,0) = a_{0000} \oplus a_{1000} \oplus a_{0010} \oplus a_{1010} = 0 \Rightarrow a_{1010} = 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,0,0,1) = a_{0000} \oplus a_{1000} \oplus a_{0001} \oplus a_{1001} = 0 \Rightarrow a_{1001} = 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,1,1,0) = a_{0000} \oplus a_{0100} \oplus a_{0010} \oplus a_{0110} = 1 \Rightarrow a_{0110} = 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,1,0,1) = a_{0000} \oplus a_{0100} \oplus a_{0001} \oplus a_{0101} = 0 \Rightarrow a_{0101} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,0,1,1) = a_{0000} \oplus a_{0010} \oplus a_{0001} \oplus a_{0011} = 0 \Rightarrow a_{0011} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,1,1,0) = a_{0000} \oplus a_{1000} \oplus a_{0100} \oplus a_{0010} \oplus a_{1100} \oplus a_{1010} \oplus a_{0110} \oplus a_{1110} = 1 \Rightarrow a_{1110} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,1,0,1) = a_{0000} \oplus a_{1000} \oplus a_{0100} \oplus a_{0001} \oplus a_{1100} \oplus a_{1001} \oplus a_{0101} \oplus a_{1101} = 0 \Rightarrow a_{1101} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,0,1,1) = a_{0000} \oplus a_{1000} \oplus a_{0010} \oplus a_{0001} \oplus a_{1010} \oplus a_{1001} \oplus a_{0011} \oplus a_{1011} = 1 \Rightarrow a_{1011} = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(0,1,1,1) = a_{0000} \oplus a_{0100} \oplus a_{0010} \oplus a_{0001} \oplus a_{0110} \oplus a_{0101} \oplus a_{0011} \oplus a_{0111} = 0 \Rightarrow a_{0111} = 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(1,1,1,1) = a_{0000} \oplus a_{1000} \oplus a_{0100} \oplus a_{0010} \oplus a_{0001} \oplus a_{1100} \oplus a_{1010} \oplus a_{1001} \oplus a_{0110} \oplus a_{0101} \oplus a_{0011} \oplus a_{1110} \oplus a_{1101} \oplus a_{1011} \oplus a_{0111} \oplus a_{1111} = 0 \Rightarrow a_{1111} = 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким образом, полином Жегалкина выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = x_1 \oplus x_1 x_3 \oplus x_1 x_4 \oplus x_2 x_3 \oplus x_2 x_3 x_4 \oplus x_1 x_2 x_3 x_4&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование [[Определение_булевой_функции#Дизъюнктивная нормальная форма (ДНФ)|дизъюнктивной нормальной формы]] ===&lt;br /&gt;
Этот способ основан на том, что &amp;lt;tex&amp;gt; X \oplus 1 = \bar{X} &amp;lt;/tex&amp;gt;. Если функция задана в виде ДНФ, то можно сначала убрать дизъюнкцию, используя правило де Моргана, а все отрицания заменить прибавлением единицы по модулю два, после чего раскрыть скобки по обычным правилам, при этом учитывая, что четное число одинаковых слагаемых равно нулю (так как &amp;lt;tex&amp;gt; X \oplus X = 0 &amp;lt;/tex&amp;gt;), а нечетное число одинаковых слагаемых равно одному такому слагаемому. Либо же можно заменить дизъюнкцию по следующему правилу:&lt;br /&gt;
&amp;lt;tex&amp;gt; A \lor B = AB \oplus A \oplus B &amp;lt;/tex&amp;gt; &amp;amp;nbsp; &amp;lt;tex&amp;gt; (1) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если функция задана в СДНФ, то так как при любых значениях входных переменных в единицу обращается не более одного члена выражения, то достаточно просто заменить все дизъюнкции исключающим ИЛИ.&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
Дана функция в ДНФ &amp;lt;tex&amp;gt; f(x_1,x_2,x_3,x_4) = (x_1 \land x_2 \land \neg x_3 \land x_4) \lor (\neg x_1 \land \neg x_4) \lor (x_1 \land x_2) \lor x_2 &amp;lt;/tex&amp;gt;, построим полином Жегалкина.&lt;br /&gt;
&lt;br /&gt;
Запишем функцию так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = x_1 x_2 \neg x_3 x_4 + \neg x_1 \neg x_4 + x_1 x_2 + x_2&amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
Сгруппируем слагаемые и воспользуемся преобразованием (1):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = (x_1 x_2 \neg x_3  x_4 \oplus \neg x_1 \neg x_4 \oplus x_1 x_2 \neg x_3 x_4 \neg x_1 \neg x_4) + (x_1 x_2 \oplus x_2 \oplus \oplus  x_1 x_2 x_2)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Воспользуемся свойствами конъюнкции &amp;lt;tex&amp;gt;A \land A = A&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\neg A \land A = 0&amp;lt;/tex&amp;gt;, а также тем, что &amp;lt;tex&amp;gt;A \oplus A = 0&amp;lt;/tex&amp;gt;, и упростим выражение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = (x_1 x_2 \neg x_3 x_4 \oplus \neg x_1 \neg x_4) + x_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ещё раз воспользуемся преобразованием (1):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = x_1 x_2 \neg x_3 x_4 \oplus \neg x_1 \neg x_4 \oplus x_2 \oplus (x_1 x_2 \neg x_3 x_4 \oplus \neg x_1 \neg x_4) x_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Раскроем скобку по алгебраическим правилам:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = x_1 x_2 \neg x_3 x_4 \oplus \neg x_1 \neg x_4 \oplus x_2 \oplus x_1 x_2 x_2 \neg x_3 x_4 \oplus \neg x_1 x_2 \neg x_4&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Снова воспользуемся свойствами конъюнкции и исключающего ИЛИ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = \neg x_1 \neg x_4 \oplus x_2 \oplus \neg x_1 x_2 \neg x_4&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заменим отрицание на прибавление &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = (x_1 \oplus 1) (x_4 \oplus 1) \oplus x_2 \oplus (x_1 \oplus 1) x_2 (x_4 \oplus 1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Раскроем скобки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = x_1 x_4 \oplus x_1 \oplus x_4 \oplus 1 \oplus x_2 \oplus x_1 x_2 x_4 \oplus x_1 x_2 \oplus x_2 x_4 \oplus x_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выкинем парные слагаемые и получим окончательную формулу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x_1,x_2,x_3,x_4) = x_1 x_2 x_4 \oplus x_1 x_2 \oplus x_1 x_4 \oplus x_2 x_4 \oplus x_1 \oplus x_4 \oplus 1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Метод треугольника === &amp;lt;!-- Да, копипаста с википедии, и что? Метод же прост и удобен --&amp;gt;&lt;br /&gt;
Метод треугольника позволяет преобразовать таблицу истинности в полином Жегалкина путём построения вспомогательной треугольной таблицы в соответствии со следующими правилами:&lt;br /&gt;
# Строится полная таблица истинности, в которой строки идут в порядке возрастания двоичных кодов от &amp;lt;tex&amp;gt;000\ldots00&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;111\ldots11&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Строится вспомогательная треугольная таблица, в которой первый столбец совпадает со столбцом значений функции в таблице истинности.&lt;br /&gt;
# Ячейка в каждом последующем столбце получается путём сложения по модулю 2 двух ячеек предыдущего столбца — стоящей в той же строке и строкой ниже.&lt;br /&gt;
# Столбцы вспомогательной таблицы нумеруются двоичными кодами в том же порядке, что и строки таблицы истинности.&lt;br /&gt;
# Каждому двоичному коду ставится в соответствие один из членов полинома Жегалкина в зависимости от позиций кода, в которых стоят единицы. Например, ячейке &amp;lt;tex&amp;gt;111&amp;lt;/tex&amp;gt; соответствует член &amp;lt;tex&amp;gt;ABC&amp;lt;/tex&amp;gt;, ячейке &amp;lt;tex&amp;gt;101&amp;lt;/tex&amp;gt; — член &amp;lt;tex&amp;gt;AC&amp;lt;/tex&amp;gt;, ячейке &amp;lt;tex&amp;gt;010&amp;lt;/tex&amp;gt; — член &amp;lt;tex&amp;gt;B&amp;lt;/tex&amp;gt;, ячейке &amp;lt;tex&amp;gt;000&amp;lt;/tex&amp;gt; — член &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; и т.д.&lt;br /&gt;
# Если в верхней строке какого-либо столбца стоит единица, то соответствующий член присутствует в полиноме Жегалкина.&lt;br /&gt;
&lt;br /&gt;
Фактически, этот метод является модификацией метода построения по таблице истинности, описанного выше. По сравнению с ним он удобнее тем, что расчёты занимают мало места и в них сложнее ошибиться, но метод треугольника требует бо́льшего количества операций.&lt;br /&gt;
&lt;br /&gt;
Пример преобразования таблицы истинности в полином Жегалкина для функции трёх переменных &amp;lt;tex&amp;gt;P(A,B,C)&amp;lt;/tex&amp;gt; показан на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Преобразование таблицы истинности в полином Жегалкина методом треугольника.gif]]&lt;br /&gt;
&lt;br /&gt;
Чтобы получить формулу, по которой рассчитывается какой-либо коэффициент, нужно из клетки, в которой он записан, пройтись всеми возможными путями влево, до столбца &amp;lt;tex&amp;gt;''P''&amp;lt;/tex&amp;gt; таблицы истинности, делая ходы влево и влево-вниз, записать значения в конечных ячейках и сложить их все между собой по модулю 2.&lt;br /&gt;
&lt;br /&gt;
Таким образом, в первом столбце сверху записан коэффициент &amp;lt;tex&amp;gt; a_0 = P(0,0,0) &amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
во втором — &amp;lt;tex&amp;gt; a_1 = P(0,0,0) \oplus P(0,0,1) &amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
в третьем — &amp;lt;tex&amp;gt; a_2 = P(0,0,0) \oplus P(0,0,1) \oplus P(0,0,1) \oplus P(0,1,0) = P(0,0,0) \oplus P(0,1,0) &amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
в четвёртом —&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; a_3 = P(0,0,0) \oplus P(0,0,1) \oplus P(0,0,1) \oplus P(0,0,1)  \oplus P(0,1,0) \oplus P(0,1,0) \oplus P(0,1,0) \oplus P(0,1,1) = P(0,0,0) \oplus P(0,1,0) \oplus P(0,0,1) \oplus P(0,1,1), &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и так далее, то есть при построении вспомогательной таблицы коэффициенты полинома просчитываются автоматически.&lt;br /&gt;
&lt;br /&gt;
=== Преобразование Мёбиуса ===&lt;br /&gt;
Пусть задана [[Определение булевой функции|булева функция]] &amp;lt;tex&amp;gt;f: B^n \rightarrow B, \;\; B=\{ 0; 1 \}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Любая булева функция представима в виде полинома Жегалкина, притом единственным образом.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt; i = (i_1, i_2, \ldots i_n), \;\; i_k \in \{0 ; 1\}&amp;lt;/tex&amp;gt;, и введем обозначение &amp;lt;tex&amp;gt; x ^{i_k} \sim \left\{\begin{matrix} x, \;\; i_k=1&lt;br /&gt;
\\ 1, \;\; i_k=0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда полином Жегалкина можно записать как:&lt;br /&gt;
&amp;lt;tex&amp;gt; f(x) = \bigoplus\limits_i \alpha_i \cdot x_1^{i_1} \cdot x_2^{i_2} \cdot&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\cdot x_n^{i_n}&amp;lt;/tex&amp;gt;, где   &amp;lt;tex&amp;gt;\alpha_i \in  \{ 0; 1 \}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Множество коэффициентов &amp;lt;tex&amp;gt;\{\alpha _i\}&amp;lt;/tex&amp;gt; можно рассматривать как функцию &amp;lt;tex&amp;gt;\alpha&amp;lt;/tex&amp;gt;, заданной на множестве индексов &amp;lt;tex&amp;gt; i = (i_1, i_2, \ldots i_n)&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;\alpha: i \mapsto \alpha_i&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Очевидно, функцию &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt; можно записать и следующим образом: &amp;lt;tex&amp;gt; f(x) = \bigoplus \limits_i \alpha_i \cdot [x_1 , \; &amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt; \;\; i_1] \cdot [x_2 , \; &amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt; \;\; i_2] \cdot&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\cdot [x_n , \; &amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt; \;\; i_n]&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Тут запись &amp;lt;tex&amp;gt;[x_k , \; &amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt; \; i_k]&amp;lt;/tex&amp;gt; означает, что элелемент &amp;lt;tex&amp;gt; x_k &amp;lt;/tex&amp;gt; присутствует в соответствующем члене полинома только если &amp;lt;tex&amp;gt; i_k = 1 &amp;lt;/tex&amp;gt;.&lt;br /&gt;
Тогда если для какого-то &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;i \succ x*&amp;lt;/tex&amp;gt; ,то в слагаемом будет существовать хотя бы один множитель, равный нулю, и такое слагаемое на сумму не повлияет.&lt;br /&gt;
Отсюда ясно, что &amp;lt;tex&amp;gt; f(x) = \bigoplus \limits_{i \preceq x} \alpha_i &amp;lt;/tex&amp;gt;&amp;amp;nbsp; &amp;lt;tex&amp;gt; (2) &amp;lt;/tex&amp;gt;&lt;br /&gt;
Найдем отображение &amp;lt;tex&amp;gt; f \mapsto \alpha&amp;lt;/tex&amp;gt; (То есть такое, которое по заданной функции вычисляет значения всех коэффициентов).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;i \succ x&amp;lt;/tex&amp;gt; обозначает, что &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; &amp;quot;меньше&amp;quot; &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; как последовательность бит&lt;br /&gt;
&lt;br /&gt;
{{Теорема &lt;br /&gt;
|statement=Пусть задана функция &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt;. Тогда функцию &amp;lt;tex&amp;gt; \alpha_x &amp;lt;/tex&amp;gt; можно найти по формуле: &amp;lt;tex&amp;gt;\alpha_x = \bigoplus \limits_{j\preceq  x} f(j)&amp;lt;/tex&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;tex&amp;gt; (3) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
||proof=Докажем при помощи индукции по количеству единиц в векторе &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; ( иначе говоря, по сумме &amp;lt;tex&amp;gt;x_1+x_2+&amp;lt;/tex&amp;gt;&amp;lt;tex&amp;gt;\ldots&amp;lt;/tex&amp;gt;&amp;lt;tex&amp;gt;+x_n&amp;lt;/tex&amp;gt; ) и для удобства обозначим это количество единиц(сумму) &amp;lt;tex&amp;gt; wt(x) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''1)''' База: если &amp;lt;tex&amp;gt; x = 0 &amp;lt;/tex&amp;gt;, то, очевидно &amp;lt;tex&amp;gt; f(0) = \alpha_0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''2)''' Пускай теорема справедлива для всех сумм &amp;lt;tex&amp;gt;wt(x) &amp;lt; k&amp;lt;/tex&amp;gt;. Покажем, что в таком случае она верна и для &amp;lt;tex&amp;gt;wt(x) = k&amp;lt;/tex&amp;gt;. По &amp;lt;tex&amp;gt; (2) &amp;lt;/tex&amp;gt;, а далее по предположению индукции видим: &amp;lt;tex&amp;gt; f(x) = \bigoplus \limits_{i \preceq x} \alpha_i = \left [ \bigoplus \limits_{i \prec x} \bigoplus \limits_{j\preceq  i} f(j) \right ] \oplus \alpha_x&amp;lt;/tex&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Рассмотрим сумму &amp;lt;tex&amp;gt; \left [ \bigoplus \limits_{i \prec x} \bigoplus \limits_{j\preceq  i} f(j) \right ]  &amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt; f(j) &amp;lt;/tex&amp;gt; содержится в ней, только если &amp;lt;tex&amp;gt; j \prec x &amp;lt;/tex&amp;gt;, и для фиксированных &amp;lt;tex&amp;gt; j&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; элемент &amp;lt;tex&amp;gt; f(j)&amp;lt;/tex&amp;gt; встречается ровно столько раз, сколько существует &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt; , таких, что &amp;lt;tex&amp;gt; j \preceq i \prec x&amp;lt;/tex&amp;gt;. Несложно увидеть, что таких &amp;lt;tex&amp;gt; i &amp;lt;/tex&amp;gt; существует ровно &amp;lt;tex&amp;gt; 2^{wt(x)-wt(j)}-1 &amp;lt;/tex&amp;gt;, то есть нечетное количество раз. Тогда &amp;lt;tex&amp;gt; \left [ \bigoplus \limits_{i \prec x} \bigoplus \limits_{j\preceq  i} f(j) \right ] =  \bigoplus \limits_{j\prec  x} f(j) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
Но тогда &amp;lt;tex&amp;gt; f(x) = \left [ \bigoplus \limits_{j\prec  x} f(j) \right ] \oplus \alpha_x \Leftrightarrow f(x) \oplus \bigoplus \limits_{j\prec  x} f(j) = \alpha_x \Leftrightarrow \alpha_x = \bigoplus \limits_{j\preceq  x} f(j)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
То есть при &amp;lt;tex&amp;gt;wt(x) = k&amp;lt;/tex&amp;gt; формула также выполняется, значит при любых &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;  выполняется &amp;lt;tex&amp;gt;\alpha_x = \bigoplus \limits_{j\preceq  x} f(j)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
Отображение &amp;lt;tex&amp;gt; f \rightarrow \alpha&amp;lt;/tex&amp;gt; также называется преобразованием Мёбиуса.&lt;br /&gt;
&lt;br /&gt;
Видно, что &amp;lt;tex&amp;gt; (2) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; (3) &amp;lt;/tex&amp;gt; — это одно и тоже преобразование. Значит, если применить преобразование Мёбиуса к функции, а затем вновь применить то же преобразование к получившейся функции, тогда вновь получим исходную функцию &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt;. То есть преобразование Мёбиуса обратно самому себе, иными словами, является инволюцией.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Определение_булевой_функции|Булевы функции]]&lt;br /&gt;
* [[Полные_системы_функций._Теорема_Поста_о_полной_системе_функций|Полные системы функций, теорема Поста]]&lt;br /&gt;
* [[СДНФ|ДНФ]]&lt;br /&gt;
* [[СКНФ|КНФ]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.stat-mat.com/?p=330 Cтатистика | Математика НГУ]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/Полином_Жегалкина Википедия {{---}} Полином Жегалкина]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская, дискретная математика]&lt;br /&gt;
* Логачёв О.А, Сальников А.А., Ященко В.В. Булевы фунции в теории кодирования и криптологии — МЦНМО, 2004. - 470с. — ISBN 5-94057-117-4.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Булевы функции]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65706</id>
		<title>Алгоритм Витерби</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65706"/>
				<updated>2018-05-18T07:36:22Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Псевдокод */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== История ==&lt;br /&gt;
'''Алгоритм Витерби''' (англ. ''Viterbi algorithm'') был представлен в 1967 году для декодирования сверточных кодов, поступающих через зашумленный канал связи. В 1969 году Омура (Omura) показал, что основу алгоритма Витерби составляет оценка максимума правдоподобия, которая является популярным статистическим методом для создания статистической модели на основе данных и обеспечения оценки параметров модели (т.е. оценка неизвестного параметра максимизацией функции правдоподобия).&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Сверточный код''' (англ. ''Convolutional code '') {{---}} это корректирующий ошибки код, в котором&lt;br /&gt;
#На каждом такте работы кодера &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; символов входной полубесконечной последовательности преобразуются в &amp;lt;tex&amp;gt;\mathtt{n} &amp;gt; \mathtt{k}&amp;lt;/tex&amp;gt; символов выходной&lt;br /&gt;
#Также в преобразовании участвуют &amp;lt;tex&amp;gt;\mathtt{m}&amp;lt;/tex&amp;gt; предыдущих символов&lt;br /&gt;
#Выполняется свойство линейности (если &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;\mathtt{y}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\mathtt{ax} + \mathtt{by}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{aX} + \mathtt{bY}&amp;lt;/tex&amp;gt;).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Алгоритм Витерби позволяет сделать наиболее вероятное предположение о последовательности состояний [[Скрытые Марковские модели|скрытой Марковской модели]] на основе последовательности наблюдений.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Путь Витерби''' (англ. ''Viterbi path'') {{---}} наиболее правдоподобная (наиболее вероятная) последовательность скрытых состояний.&lt;br /&gt;
}}&lt;br /&gt;
'''Предположения, которые делает алгоритм:'''&lt;br /&gt;
#Скрытые и наблюдаемые события должны быть последовательностью, которая упорядочена по времени.&lt;br /&gt;
#Каждое скрытое событие должно соответствовать только одному наблюдаемому.&lt;br /&gt;
#Вычисление наиболее вероятной скрытой последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; зависит только от наблюдаемого события в этот момент времени и наиболее вероятной последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t} - 1&amp;lt;/tex&amp;gt; (динамическое программирование).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
'''Входные данные:'''&lt;br /&gt;
&lt;br /&gt;
#Пространство наблюдений &amp;lt;tex&amp;gt;\mathtt{O} =\{\mathtt{o_1},\mathtt{o_2} \ldots \mathtt{o_N}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Пространство состояний &amp;lt;tex&amp;gt;\mathtt{S} =\{\mathtt{s_1},\mathtt{s_2} \ldots \mathtt{s_K}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Последовательность наблюдений &amp;lt;tex&amp;gt;\mathtt{Y} =\{\mathtt{y_1},\mathtt{y_2} \ldots \mathtt{y_T}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Матрица &amp;lt;tex&amp;gt;\mathtt{A}&amp;lt;/tex&amp;gt; переходов из &amp;lt;tex&amp;gt;\mathtt{i}&amp;lt;/tex&amp;gt;-того состояния в &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ое, размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{K}&amp;lt;/tex&amp;gt; &lt;br /&gt;
#Матрица эмиссии &amp;lt;tex&amp;gt;\mathtt{B}&amp;lt;/tex&amp;gt; размера &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{N}&amp;lt;/tex&amp;gt;, которая определяет вероятность наблюдения &amp;lt;tex&amp;gt;\mathtt{o_j}&amp;lt;/tex&amp;gt; из состояния &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Массив начальных вероятностей &amp;lt;tex&amp;gt;\mathtt{\pi}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K}&amp;lt;/tex&amp;gt;, показывающий вероятность того, что начальное состояние &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Выходные данные''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathtt{X} =\{\mathtt{x_1},\mathtt{x_2} \ldots \mathtt{x_T}\}&amp;lt;/tex&amp;gt; {{---}} последовательность состояний, которые привели к последовательности наблюдений &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм:'''&lt;br /&gt;
&lt;br /&gt;
Создадим две матрицы &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{T}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит вероятность того, что на &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ом шаге мы находимся в состоянии &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит индекс наиболее вероятного состояния на &amp;lt;tex&amp;gt;\mathtt{j} - 1&amp;lt;/tex&amp;gt;-ом шаге. &lt;br /&gt;
 &lt;br /&gt;
'''Шаг 1.''' Заполним первый столбец матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; на основании начального распределения, и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; нулями.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2.''' Последовательно заполняем следующие столбцы матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, используя матрицы вероятностей эмиссий и переходов.  &lt;br /&gt;
&lt;br /&gt;
'''Шаг 3.''' Рассматривая максимальные значения в столбцах матрицы &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, начиная с последнего столбца, выдаем ответ.&lt;br /&gt;
&lt;br /&gt;
'''Доказательство корректности:'''&lt;br /&gt;
&lt;br /&gt;
Наиболее вероятная последовательность скрытых состояний получается следующими реккурентными соотношениями:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{1,k}} = \mathrm{P}(\mathtt{y_1} \mid \mathtt{k}) \cdot \pi_k&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{t,k}} = \max\limits_{\mathtt{x} \in \mathtt{S}}\left(\mathrm{P}(\mathtt{y_t} \mid \mathtt{k}) \cdot \mathtt{A_{x,k}} \cdot \mathtt{V_{t-1,x}}\right)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Где &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; это вероятность наиболее вероятной последовательности, которая ответственна за первые &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; наблюдений, у которых &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; является завершающим состоянием. Путь Витерби может быть получен сохранением обратных указателей, которые помнят какое состояние было использовано во втором равенстве. Пусть &amp;lt;tex&amp;gt;\mathrm{Ptr}(\mathtt{k},\mathtt{t})&amp;lt;/tex&amp;gt; {{---}} функция, которая возвращает значение &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt;, использованное для подсчета &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t} &amp;gt; 1&amp;lt;/tex&amp;gt;, или &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t}=1&amp;lt;/tex&amp;gt;.  Тогда:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_T} = \mathtt{x} \in \mathtt{S} : \mathtt{V_{T,x}} \leadsto \max&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_{t-1}} = \mathrm{Ptr}(\mathtt{x_t},\mathtt{t})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Псевдокод ==&lt;br /&gt;
Функция возвращает вектор &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt; : последовательность номеров наиболее вероятных состояний, которые привели к данным наблюдениям. &lt;br /&gt;
    &amp;lt;tex&amp;gt;\mathrm{Viterbi}(\mathtt {O}, \mathtt {S},  \mathtt {P} , \mathtt {Y}, \mathtt {A}, \mathtt {B})&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i}, 1] = \mathtt{P}[\mathtt{i}] * \mathtt{B}[\mathtt{i}, \mathtt{Y}[1]]&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i}, 1] = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = 2&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {T}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{j}, \mathtt{i}] = \mathtt{k} \in \mathtt{K} : (\mathtt{TState}[\mathtt{k}, \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]]) \leadsto \max&amp;lt;/tex&amp;gt;&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{j}, \mathtt{i}] = \mathtt{TState}[\mathtt{TIndex}[\mathtt{j}, \mathtt{i}], \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]]&amp;lt;/tex&amp;gt;  &lt;br /&gt;
        &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{T}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{T}])&amp;lt;/tex&amp;gt; &lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = \mathtt{T}&amp;lt;/tex&amp;gt; '''downto''' &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{i} - 1] = \mathtt{TIndex}[\mathtt{X}[\mathtt{i}], \mathtt{i}]&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''return''' &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, алгоритму требуется &amp;lt;tex&amp;gt;\mathrm{O}(\mathtt{T}\times\left|{\mathtt{K}}\right|^2)&amp;lt;/tex&amp;gt; времени.&lt;br /&gt;
&lt;br /&gt;
== Применение ==&lt;br /&gt;
Алгоритм используется в &amp;lt;tex&amp;gt;\mathrm{CDMA}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{GSM}&amp;lt;/tex&amp;gt; цифровой связи, в модемах и космических коммуникациях. Он нашел применение в распознавании речи и письма, компьютерной лингвистике и биоинформатике, а также в алгоритме свёрточного декодирования Витерби.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Скрытые Марковские модели]]&lt;br /&gt;
*[[Алгоритм &amp;quot;Вперед-Назад&amp;quot;]]&lt;br /&gt;
*[[Алгоритм Баума-Велша]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Viterbi_algorithm|Wikipedia {{---}} Viterbi algorithm]]&lt;br /&gt;
* [http://www.cs.sfu.ca/~oschulte/teaching/726/spring11/slides/mychapter13b.pdf Презентация]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Марковские цепи]]&lt;br /&gt;
[[Категория: Динамическое программирование]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65705</id>
		<title>Алгоритм Витерби</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65705"/>
				<updated>2018-05-18T07:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Алгоритм */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== История ==&lt;br /&gt;
'''Алгоритм Витерби''' (англ. ''Viterbi algorithm'') был представлен в 1967 году для декодирования сверточных кодов, поступающих через зашумленный канал связи. В 1969 году Омура (Omura) показал, что основу алгоритма Витерби составляет оценка максимума правдоподобия, которая является популярным статистическим методом для создания статистической модели на основе данных и обеспечения оценки параметров модели (т.е. оценка неизвестного параметра максимизацией функции правдоподобия).&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Сверточный код''' (англ. ''Convolutional code '') {{---}} это корректирующий ошибки код, в котором&lt;br /&gt;
#На каждом такте работы кодера &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; символов входной полубесконечной последовательности преобразуются в &amp;lt;tex&amp;gt;\mathtt{n} &amp;gt; \mathtt{k}&amp;lt;/tex&amp;gt; символов выходной&lt;br /&gt;
#Также в преобразовании участвуют &amp;lt;tex&amp;gt;\mathtt{m}&amp;lt;/tex&amp;gt; предыдущих символов&lt;br /&gt;
#Выполняется свойство линейности (если &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;\mathtt{y}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\mathtt{ax} + \mathtt{by}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{aX} + \mathtt{bY}&amp;lt;/tex&amp;gt;).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Алгоритм Витерби позволяет сделать наиболее вероятное предположение о последовательности состояний [[Скрытые Марковские модели|скрытой Марковской модели]] на основе последовательности наблюдений.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Путь Витерби''' (англ. ''Viterbi path'') {{---}} наиболее правдоподобная (наиболее вероятная) последовательность скрытых состояний.&lt;br /&gt;
}}&lt;br /&gt;
'''Предположения, которые делает алгоритм:'''&lt;br /&gt;
#Скрытые и наблюдаемые события должны быть последовательностью, которая упорядочена по времени.&lt;br /&gt;
#Каждое скрытое событие должно соответствовать только одному наблюдаемому.&lt;br /&gt;
#Вычисление наиболее вероятной скрытой последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; зависит только от наблюдаемого события в этот момент времени и наиболее вероятной последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t} - 1&amp;lt;/tex&amp;gt; (динамическое программирование).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
'''Входные данные:'''&lt;br /&gt;
&lt;br /&gt;
#Пространство наблюдений &amp;lt;tex&amp;gt;\mathtt{O} =\{\mathtt{o_1},\mathtt{o_2} \ldots \mathtt{o_N}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Пространство состояний &amp;lt;tex&amp;gt;\mathtt{S} =\{\mathtt{s_1},\mathtt{s_2} \ldots \mathtt{s_K}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Последовательность наблюдений &amp;lt;tex&amp;gt;\mathtt{Y} =\{\mathtt{y_1},\mathtt{y_2} \ldots \mathtt{y_T}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Матрица &amp;lt;tex&amp;gt;\mathtt{A}&amp;lt;/tex&amp;gt; переходов из &amp;lt;tex&amp;gt;\mathtt{i}&amp;lt;/tex&amp;gt;-того состояния в &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ое, размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{K}&amp;lt;/tex&amp;gt; &lt;br /&gt;
#Матрица эмиссии &amp;lt;tex&amp;gt;\mathtt{B}&amp;lt;/tex&amp;gt; размера &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{N}&amp;lt;/tex&amp;gt;, которая определяет вероятность наблюдения &amp;lt;tex&amp;gt;\mathtt{o_j}&amp;lt;/tex&amp;gt; из состояния &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Массив начальных вероятностей &amp;lt;tex&amp;gt;\mathtt{\pi}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K}&amp;lt;/tex&amp;gt;, показывающий вероятность того, что начальное состояние &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Выходные данные''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathtt{X} =\{\mathtt{x_1},\mathtt{x_2} \ldots \mathtt{x_T}\}&amp;lt;/tex&amp;gt; {{---}} последовательность состояний, которые привели к последовательности наблюдений &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм:'''&lt;br /&gt;
&lt;br /&gt;
Создадим две матрицы &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{T}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит вероятность того, что на &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ом шаге мы находимся в состоянии &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит индекс наиболее вероятного состояния на &amp;lt;tex&amp;gt;\mathtt{j} - 1&amp;lt;/tex&amp;gt;-ом шаге. &lt;br /&gt;
 &lt;br /&gt;
'''Шаг 1.''' Заполним первый столбец матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; на основании начального распределения, и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; нулями.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2.''' Последовательно заполняем следующие столбцы матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, используя матрицы вероятностей эмиссий и переходов.  &lt;br /&gt;
&lt;br /&gt;
'''Шаг 3.''' Рассматривая максимальные значения в столбцах матрицы &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, начиная с последнего столбца, выдаем ответ.&lt;br /&gt;
&lt;br /&gt;
'''Доказательство корректности:'''&lt;br /&gt;
&lt;br /&gt;
Наиболее вероятная последовательность скрытых состояний получается следующими реккурентными соотношениями:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{1,k}} = \mathrm{P}(\mathtt{y_1} \mid \mathtt{k}) \cdot \pi_k&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{t,k}} = \max\limits_{\mathtt{x} \in \mathtt{S}}\left(\mathrm{P}(\mathtt{y_t} \mid \mathtt{k}) \cdot \mathtt{A_{x,k}} \cdot \mathtt{V_{t-1,x}}\right)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Где &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; это вероятность наиболее вероятной последовательности, которая ответственна за первые &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; наблюдений, у которых &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; является завершающим состоянием. Путь Витерби может быть получен сохранением обратных указателей, которые помнят какое состояние было использовано во втором равенстве. Пусть &amp;lt;tex&amp;gt;\mathrm{Ptr}(\mathtt{k},\mathtt{t})&amp;lt;/tex&amp;gt; {{---}} функция, которая возвращает значение &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt;, использованное для подсчета &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t} &amp;gt; 1&amp;lt;/tex&amp;gt;, или &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t}=1&amp;lt;/tex&amp;gt;.  Тогда:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_T} = \mathtt{x} \in \mathtt{S} : \mathtt{V_{T,x}} \leadsto \max&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_{t-1}} = \mathrm{Ptr}(\mathtt{x_t},\mathtt{t})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Псевдокод ==&lt;br /&gt;
Функция возвращает вектор &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt; : последовательность номеров наиболее вероятных состояний, которые привели к данным наблюдениям. &lt;br /&gt;
    &amp;lt;tex&amp;gt;\mathrm{Viterbi}(\mathtt {O}, \mathtt {S},  \mathtt {P} , \mathtt {Y}, \mathtt {A}, \mathtt {B})&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i}, 1] = \mathtt{P}[\mathtt{i}] * \mathtt{B}[\mathtt{i}, \mathtt{Y}[1]]&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i}, 1] = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = 2&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {T}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{j}, \mathtt{i}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]])&amp;lt;/tex&amp;gt; &lt;br /&gt;
                ''&amp;lt;font color=green&amp;gt;// функция arg max() возвращает аргумент(в нашем случае &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt;), при котором достигается этот максимум&amp;lt;/font&amp;gt;''&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{j}, \mathtt{i}] = \mathtt{TState}[\mathtt{TIndex}[\mathtt{j}, \mathtt{i}], \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]]&amp;lt;/tex&amp;gt;  &lt;br /&gt;
        &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{T}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{T}])&amp;lt;/tex&amp;gt; &lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = \mathtt{T}&amp;lt;/tex&amp;gt; '''downto''' &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{i} - 1] = \mathtt{TIndex}[\mathtt{X}[\mathtt{i}], \mathtt{i}]&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''return''' &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, алгоритму требуется &amp;lt;tex&amp;gt;\mathrm{O}(\mathtt{T}\times\left|{\mathtt{K}}\right|^2)&amp;lt;/tex&amp;gt; времени.&lt;br /&gt;
&lt;br /&gt;
== Применение ==&lt;br /&gt;
Алгоритм используется в &amp;lt;tex&amp;gt;\mathrm{CDMA}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{GSM}&amp;lt;/tex&amp;gt; цифровой связи, в модемах и космических коммуникациях. Он нашел применение в распознавании речи и письма, компьютерной лингвистике и биоинформатике, а также в алгоритме свёрточного декодирования Витерби.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Скрытые Марковские модели]]&lt;br /&gt;
*[[Алгоритм &amp;quot;Вперед-Назад&amp;quot;]]&lt;br /&gt;
*[[Алгоритм Баума-Велша]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Viterbi_algorithm|Wikipedia {{---}} Viterbi algorithm]]&lt;br /&gt;
* [http://www.cs.sfu.ca/~oschulte/teaching/726/spring11/slides/mychapter13b.pdf Презентация]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Марковские цепи]]&lt;br /&gt;
[[Категория: Динамическое программирование]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65704</id>
		<title>Алгоритм Витерби</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65704"/>
				<updated>2018-05-18T07:29:47Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Псевдокод */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== История ==&lt;br /&gt;
'''Алгоритм Витерби''' (англ. ''Viterbi algorithm'') был представлен в 1967 году для декодирования сверточных кодов, поступающих через зашумленный канал связи. В 1969 году Омура (Omura) показал, что основу алгоритма Витерби составляет оценка максимума правдоподобия, которая является популярным статистическим методом для создания статистической модели на основе данных и обеспечения оценки параметров модели (т.е. оценка неизвестного параметра максимизацией функции правдоподобия).&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Сверточный код''' (англ. ''Convolutional code '') {{---}} это корректирующий ошибки код, в котором&lt;br /&gt;
#На каждом такте работы кодера &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; символов входной полубесконечной последовательности преобразуются в &amp;lt;tex&amp;gt;\mathtt{n} &amp;gt; \mathtt{k}&amp;lt;/tex&amp;gt; символов выходной&lt;br /&gt;
#Также в преобразовании участвуют &amp;lt;tex&amp;gt;\mathtt{m}&amp;lt;/tex&amp;gt; предыдущих символов&lt;br /&gt;
#Выполняется свойство линейности (если &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;\mathtt{y}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\mathtt{ax} + \mathtt{by}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{aX} + \mathtt{bY}&amp;lt;/tex&amp;gt;).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Алгоритм Витерби позволяет сделать наиболее вероятное предположение о последовательности состояний [[Скрытые Марковские модели|скрытой Марковской модели]] на основе последовательности наблюдений.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Путь Витерби''' (англ. ''Viterbi path'') {{---}} наиболее правдоподобная (наиболее вероятная) последовательность скрытых состояний.&lt;br /&gt;
}}&lt;br /&gt;
'''Предположения, которые делает алгоритм:'''&lt;br /&gt;
#Скрытые и наблюдаемые события должны быть последовательностью, которая упорядочена по времени.&lt;br /&gt;
#Каждое скрытое событие должно соответствовать только одному наблюдаемому.&lt;br /&gt;
#Вычисление наиболее вероятной скрытой последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; зависит только от наблюдаемого события в этот момент времени и наиболее вероятной последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t} - 1&amp;lt;/tex&amp;gt; (динамическое программирование).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
'''Входные данные:'''&lt;br /&gt;
&lt;br /&gt;
#Пространство наблюдений &amp;lt;tex&amp;gt;\mathtt{O} =\{\mathtt{o_1},\mathtt{o_2} \ldots \mathtt{o_N}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Пространство состояний &amp;lt;tex&amp;gt;\mathtt{S} =\{\mathtt{s_1},\mathtt{s_2} \ldots \mathtt{s_K}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Последовательность наблюдений &amp;lt;tex&amp;gt;\mathtt{Y} =\{\mathtt{y_1},\mathtt{y_2} \ldots \mathtt{y_T}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Матрица &amp;lt;tex&amp;gt;\mathtt{A}&amp;lt;/tex&amp;gt; переходов из &amp;lt;tex&amp;gt;\mathtt{i}&amp;lt;/tex&amp;gt;-того состояния в &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ое, размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{K}&amp;lt;/tex&amp;gt; &lt;br /&gt;
#Матрица эмиссии &amp;lt;tex&amp;gt;\mathtt{B}&amp;lt;/tex&amp;gt; размера &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{N}&amp;lt;/tex&amp;gt;, которая определяет вероятность наблюдения &amp;lt;tex&amp;gt;\mathtt{o_j}&amp;lt;/tex&amp;gt; из состояния &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Массив начальных вероятностей &amp;lt;tex&amp;gt;\mathtt{\pi}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K}&amp;lt;/tex&amp;gt;, показывающий вероятность того, что начальное состояние &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Выходные данные''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathtt{X} =\{\mathtt{x_1},\mathtt{x_2} \ldots \mathtt{x_T}\}&amp;lt;/tex&amp;gt; {{---}} последовательность состояний, которые привели к последовательности наблюдений &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм:'''&lt;br /&gt;
&lt;br /&gt;
Создадим две матрицы &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{T}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит вероятность того, что на &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ом шаге мы находимся в состоянии &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит индекс наиболее вероятного состояния на &amp;lt;tex&amp;gt;\mathtt{j} - 1&amp;lt;/tex&amp;gt;-ом шаге. &lt;br /&gt;
 &lt;br /&gt;
'''Шаг 1.''' Заполним первый столбец матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; на основании начального распределения, и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; нулями.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2.''' Последовательно заполняем следующие столбцы матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, используя матрицы вероятностей эмиссий и переходов.  &lt;br /&gt;
&lt;br /&gt;
'''Шаг 3.''' Рассматривая максимальные значения в столбцах матрицы &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, начиная с последнего столбца, выдаем ответ.&lt;br /&gt;
&lt;br /&gt;
'''Доказательство корректности:'''&lt;br /&gt;
&lt;br /&gt;
Наиболее вероятная последовательность скрытых состояний получается следующими реккурентными соотношениями:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{1,k}} = \mathrm{P}(\mathtt{y_1} \mid \mathtt{k}) \cdot \pi_k&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{t,k}} = \max\limits_{\mathtt{x} \in \mathtt{S}}\left(\mathrm{P}(\mathtt{y_t} \mid \mathtt{k}) \cdot \mathtt{A_{x,k}} \cdot \mathtt{V_{t-1,x}}\right)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Где &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; это вероятность наиболее вероятной последовательности, которая ответственна за первые &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; наблюдений, у которых &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; является завершающим состоянием. Путь Витерби может быть получен сохранением обратных указателей, которые помнят какое состояние было использовано во втором равенстве. Пусть &amp;lt;tex&amp;gt;\mathrm{Ptr}(\mathtt{k},\mathtt{t})&amp;lt;/tex&amp;gt; {{---}} функция, которая возвращает значение &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt;, использованное для подсчета &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t} &amp;gt; 1&amp;lt;/tex&amp;gt;, или &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t}=1&amp;lt;/tex&amp;gt;.  Тогда:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_T} = \mathtt{x} \in \mathtt{S} : \mathtt{V_{T,x}} \rightarrow \max&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_{t-1}} = \mathrm{Ptr}(\mathtt{x_t},\mathtt{t})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Псевдокод ==&lt;br /&gt;
Функция возвращает вектор &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt; : последовательность номеров наиболее вероятных состояний, которые привели к данным наблюдениям. &lt;br /&gt;
    &amp;lt;tex&amp;gt;\mathrm{Viterbi}(\mathtt {O}, \mathtt {S},  \mathtt {P} , \mathtt {Y}, \mathtt {A}, \mathtt {B})&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i}, 1] = \mathtt{P}[\mathtt{i}] * \mathtt{B}[\mathtt{i}, \mathtt{Y}[1]]&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i}, 1] = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = 2&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {T}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{j}, \mathtt{i}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]])&amp;lt;/tex&amp;gt; &lt;br /&gt;
                ''&amp;lt;font color=green&amp;gt;// функция arg max() возвращает аргумент(в нашем случае &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt;), при котором достигается этот максимум&amp;lt;/font&amp;gt;''&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{j}, \mathtt{i}] = \mathtt{TState}[\mathtt{TIndex}[\mathtt{j}, \mathtt{i}], \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]]&amp;lt;/tex&amp;gt;  &lt;br /&gt;
        &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{T}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{T}])&amp;lt;/tex&amp;gt; &lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = \mathtt{T}&amp;lt;/tex&amp;gt; '''downto''' &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{i} - 1] = \mathtt{TIndex}[\mathtt{X}[\mathtt{i}], \mathtt{i}]&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''return''' &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, алгоритму требуется &amp;lt;tex&amp;gt;\mathrm{O}(\mathtt{T}\times\left|{\mathtt{K}}\right|^2)&amp;lt;/tex&amp;gt; времени.&lt;br /&gt;
&lt;br /&gt;
== Применение ==&lt;br /&gt;
Алгоритм используется в &amp;lt;tex&amp;gt;\mathrm{CDMA}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{GSM}&amp;lt;/tex&amp;gt; цифровой связи, в модемах и космических коммуникациях. Он нашел применение в распознавании речи и письма, компьютерной лингвистике и биоинформатике, а также в алгоритме свёрточного декодирования Витерби.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Скрытые Марковские модели]]&lt;br /&gt;
*[[Алгоритм &amp;quot;Вперед-Назад&amp;quot;]]&lt;br /&gt;
*[[Алгоритм Баума-Велша]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Viterbi_algorithm|Wikipedia {{---}} Viterbi algorithm]]&lt;br /&gt;
* [http://www.cs.sfu.ca/~oschulte/teaching/726/spring11/slides/mychapter13b.pdf Презентация]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Марковские цепи]]&lt;br /&gt;
[[Категория: Динамическое программирование]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65703</id>
		<title>Алгоритм Витерби</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B8%D1%82%D0%B5%D1%80%D0%B1%D0%B8&amp;diff=65703"/>
				<updated>2018-05-18T07:28:46Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Псевдокод */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== История ==&lt;br /&gt;
'''Алгоритм Витерби''' (англ. ''Viterbi algorithm'') был представлен в 1967 году для декодирования сверточных кодов, поступающих через зашумленный канал связи. В 1969 году Омура (Omura) показал, что основу алгоритма Витерби составляет оценка максимума правдоподобия, которая является популярным статистическим методом для создания статистической модели на основе данных и обеспечения оценки параметров модели (т.е. оценка неизвестного параметра максимизацией функции правдоподобия).&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Сверточный код''' (англ. ''Convolutional code '') {{---}} это корректирующий ошибки код, в котором&lt;br /&gt;
#На каждом такте работы кодера &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; символов входной полубесконечной последовательности преобразуются в &amp;lt;tex&amp;gt;\mathtt{n} &amp;gt; \mathtt{k}&amp;lt;/tex&amp;gt; символов выходной&lt;br /&gt;
#Также в преобразовании участвуют &amp;lt;tex&amp;gt;\mathtt{m}&amp;lt;/tex&amp;gt; предыдущих символов&lt;br /&gt;
#Выполняется свойство линейности (если &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;\mathtt{y}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\mathtt{ax} + \mathtt{by}&amp;lt;/tex&amp;gt; соответствует &amp;lt;tex&amp;gt;\mathtt{aX} + \mathtt{bY}&amp;lt;/tex&amp;gt;).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Алгоритм Витерби позволяет сделать наиболее вероятное предположение о последовательности состояний [[Скрытые Марковские модели|скрытой Марковской модели]] на основе последовательности наблюдений.&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=def1. &lt;br /&gt;
|definition='''Путь Витерби''' (англ. ''Viterbi path'') {{---}} наиболее правдоподобная (наиболее вероятная) последовательность скрытых состояний.&lt;br /&gt;
}}&lt;br /&gt;
'''Предположения, которые делает алгоритм:'''&lt;br /&gt;
#Скрытые и наблюдаемые события должны быть последовательностью, которая упорядочена по времени.&lt;br /&gt;
#Каждое скрытое событие должно соответствовать только одному наблюдаемому.&lt;br /&gt;
#Вычисление наиболее вероятной скрытой последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; зависит только от наблюдаемого события в этот момент времени и наиболее вероятной последовательности до момента &amp;lt;tex&amp;gt;\mathtt{t} - 1&amp;lt;/tex&amp;gt; (динамическое программирование).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм ==&lt;br /&gt;
'''Входные данные:'''&lt;br /&gt;
&lt;br /&gt;
#Пространство наблюдений &amp;lt;tex&amp;gt;\mathtt{O} =\{\mathtt{o_1},\mathtt{o_2} \ldots \mathtt{o_N}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Пространство состояний &amp;lt;tex&amp;gt;\mathtt{S} =\{\mathtt{s_1},\mathtt{s_2} \ldots \mathtt{s_K}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Последовательность наблюдений &amp;lt;tex&amp;gt;\mathtt{Y} =\{\mathtt{y_1},\mathtt{y_2} \ldots \mathtt{y_T}\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Матрица &amp;lt;tex&amp;gt;\mathtt{A}&amp;lt;/tex&amp;gt; переходов из &amp;lt;tex&amp;gt;\mathtt{i}&amp;lt;/tex&amp;gt;-того состояния в &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ое, размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{K}&amp;lt;/tex&amp;gt; &lt;br /&gt;
#Матрица эмиссии &amp;lt;tex&amp;gt;\mathtt{B}&amp;lt;/tex&amp;gt; размера &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{N}&amp;lt;/tex&amp;gt;, которая определяет вероятность наблюдения &amp;lt;tex&amp;gt;\mathtt{o_j}&amp;lt;/tex&amp;gt; из состояния &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
#Массив начальных вероятностей &amp;lt;tex&amp;gt;\mathtt{\pi}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K}&amp;lt;/tex&amp;gt;, показывающий вероятность того, что начальное состояние &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Выходные данные''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathtt{X} =\{\mathtt{x_1},\mathtt{x_2} \ldots \mathtt{x_T}\}&amp;lt;/tex&amp;gt; {{---}} последовательность состояний, которые привели к последовательности наблюдений &amp;lt;tex&amp;gt;\mathtt{Y}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Алгоритм:'''&lt;br /&gt;
&lt;br /&gt;
Создадим две матрицы &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; размером &amp;lt;tex&amp;gt;\mathtt{K} \times \mathtt{T}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит вероятность того, что на &amp;lt;tex&amp;gt;\mathtt{j}&amp;lt;/tex&amp;gt;-ом шаге мы находимся в состоянии &amp;lt;tex&amp;gt;\mathtt{s_i}&amp;lt;/tex&amp;gt;. Каждый элемент &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i},\mathtt{j}]&amp;lt;/tex&amp;gt; содержит индекс наиболее вероятного состояния на &amp;lt;tex&amp;gt;\mathtt{j} - 1&amp;lt;/tex&amp;gt;-ом шаге. &lt;br /&gt;
 &lt;br /&gt;
'''Шаг 1.''' Заполним первый столбец матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; на основании начального распределения, и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt; нулями.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2.''' Последовательно заполняем следующие столбцы матриц &amp;lt;tex&amp;gt;\mathtt{TState}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, используя матрицы вероятностей эмиссий и переходов.  &lt;br /&gt;
&lt;br /&gt;
'''Шаг 3.''' Рассматривая максимальные значения в столбцах матрицы &amp;lt;tex&amp;gt;\mathtt{TIndex}&amp;lt;/tex&amp;gt;, начиная с последнего столбца, выдаем ответ.&lt;br /&gt;
&lt;br /&gt;
'''Доказательство корректности:'''&lt;br /&gt;
&lt;br /&gt;
Наиболее вероятная последовательность скрытых состояний получается следующими реккурентными соотношениями:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{1,k}} = \mathrm{P}(\mathtt{y_1} \mid \mathtt{k}) \cdot \pi_k&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{V_{t,k}} = \max\limits_{\mathtt{x} \in \mathtt{S}}\left(\mathrm{P}(\mathtt{y_t} \mid \mathtt{k}) \cdot \mathtt{A_{x,k}} \cdot \mathtt{V_{t-1,x}}\right)&amp;lt;/tex&amp;gt;&lt;br /&gt;
Где &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; это вероятность наиболее вероятной последовательности, которая ответственна за первые &amp;lt;tex&amp;gt;\mathtt{t}&amp;lt;/tex&amp;gt; наблюдений, у которых &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; является завершающим состоянием. Путь Витерби может быть получен сохранением обратных указателей, которые помнят какое состояние было использовано во втором равенстве. Пусть &amp;lt;tex&amp;gt;\mathrm{Ptr}(\mathtt{k},\mathtt{t})&amp;lt;/tex&amp;gt; {{---}} функция, которая возвращает значение &amp;lt;tex&amp;gt;\mathtt{x}&amp;lt;/tex&amp;gt;, использованное для подсчета &amp;lt;tex&amp;gt;\mathtt{V_{t,k}}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t} &amp;gt; 1&amp;lt;/tex&amp;gt;, или &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;\mathtt{t}=1&amp;lt;/tex&amp;gt;.  Тогда:&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_T} = \mathtt{x} \in \mathtt{S} : \mathtt{V_{T,x}} \rightarrow \max&amp;lt;/tex&amp;gt;&lt;br /&gt;
*&amp;lt;tex&amp;gt;\mathtt{x_{t-1}} = \mathrm{Ptr}(\mathtt{x_t},\mathtt{t})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Псевдокод ==&lt;br /&gt;
Функция возвращает вектор &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt; : последовательность номеров наиболее вероятных состояний, которые привели к данным наблюдениям. &lt;br /&gt;
    &amp;lt;tex&amp;gt;\mathrm{Viterbi}(\mathtt {O}, \mathtt {S},  \mathtt {P} , \mathtt {Y}, \mathtt {A}, \mathtt {B})&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{i}, 1] = \mathtt{P}[\mathtt{i}] * \mathtt{B}[\mathtt{i}, \mathtt{Y}[1]]&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{i}, 1] = 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = 2&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {T}&amp;lt;/tex&amp;gt;&lt;br /&gt;
            '''for''' &amp;lt;tex&amp;gt;\mathtt{j} = 1&amp;lt;/tex&amp;gt; '''to''' &amp;lt;tex&amp;gt;\mathtt {K}&amp;lt;/tex&amp;gt;&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TIndex}[\mathtt{j}, \mathtt{i}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]])&amp;lt;/tex&amp;gt; &lt;br /&gt;
                ''&amp;lt;font color=green&amp;gt;// функция arg max() ищет максимум выражения в скобках и возвращает аргумент(в нашем случае &amp;lt;tex&amp;gt;\mathtt{k}&amp;lt;/tex&amp;gt;), при котором достигается этот максимум&amp;lt;/font&amp;gt;''&lt;br /&gt;
                &amp;lt;tex&amp;gt;\mathtt{TState}[\mathtt{j}, \mathtt{i}] = \mathtt{TState}[\mathtt{TIndex}[\mathtt{j}, \mathtt{i}], \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]]&amp;lt;/tex&amp;gt;  &lt;br /&gt;
        &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{T}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{T}])&amp;lt;/tex&amp;gt; &lt;br /&gt;
        '''for''' &amp;lt;tex&amp;gt;\mathtt{i} = \mathtt{T}&amp;lt;/tex&amp;gt; '''downto''' &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
            &amp;lt;tex&amp;gt;\mathtt{X}[\mathtt{i} - 1] = \mathtt{TIndex}[\mathtt{X}[\mathtt{i}], \mathtt{i}]&amp;lt;/tex&amp;gt;&lt;br /&gt;
        '''return''' &amp;lt;tex&amp;gt;\mathtt{X}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Таким образом, алгоритму требуется &amp;lt;tex&amp;gt;\mathrm{O}(\mathtt{T}\times\left|{\mathtt{K}}\right|^2)&amp;lt;/tex&amp;gt; времени.&lt;br /&gt;
&lt;br /&gt;
== Применение ==&lt;br /&gt;
Алгоритм используется в &amp;lt;tex&amp;gt;\mathrm{CDMA}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{GSM}&amp;lt;/tex&amp;gt; цифровой связи, в модемах и космических коммуникациях. Он нашел применение в распознавании речи и письма, компьютерной лингвистике и биоинформатике, а также в алгоритме свёрточного декодирования Витерби.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Скрытые Марковские модели]]&lt;br /&gt;
*[[Алгоритм &amp;quot;Вперед-Назад&amp;quot;]]&lt;br /&gt;
*[[Алгоритм Баума-Велша]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Viterbi_algorithm|Wikipedia {{---}} Viterbi algorithm]]&lt;br /&gt;
* [http://www.cs.sfu.ca/~oschulte/teaching/726/spring11/slides/mychapter13b.pdf Презентация]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Марковские цепи]]&lt;br /&gt;
[[Категория: Динамическое программирование]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BA%D0%B2%D0%B8%D0%B2%D0%B0%D0%BB%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=64501</id>
		<title>Отношение эквивалентности</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BA%D0%B2%D0%B8%D0%B2%D0%B0%D0%BB%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=64501"/>
				<updated>2018-03-19T13:00:51Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Примеры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
[[Бинарное отношение]] &amp;lt;tex&amp;gt;R&amp;lt;/tex&amp;gt; на множестве &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt; называется '''отношением эквивалентности''' (англ. ''equivalence binary relation''), если оно обладает следующими свойствами:&lt;br /&gt;
* [[Рефлексивное отношение|Рефлексивность]]: &amp;lt;tex&amp;gt;\forall x \in X: xRx&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* [[Симметричное отношение|Симметричность]]: &amp;lt;tex&amp;gt;\forall x, y \in X:&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;xRy&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;yRx&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* [[Транзитивное отношение|Транзитивность]]: &amp;lt;tex&amp;gt;\forall x, y, z \in X:&amp;lt;/tex&amp;gt; если &amp;lt;tex&amp;gt;xRy&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;yRz&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;xRz&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
Отношение эквивалентности обозначают символом &amp;lt;tex&amp;gt;\thicksim&amp;lt;/tex&amp;gt;. Запись вида &amp;lt;tex&amp;gt;a \thicksim b&amp;lt;/tex&amp;gt; читают как &amp;quot;&amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; эквивалентно &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Примеры отношений эквивалентности ==&lt;br /&gt;
* Отношение ''равенства''(&amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt;) является тривиальным примером отношения эквивалентности на любом множестве.&lt;br /&gt;
* Отношение ''равенства по модулю &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;'': &amp;lt;tex&amp;gt;a \equiv b \mod k &amp;lt;/tex&amp;gt; на множестве целых чисел.&lt;br /&gt;
* Отношение ''параллельности'' прямых на плоскости.&lt;br /&gt;
* Отношение ''подобия'' фигур на плоскости.&lt;br /&gt;
* Отношение ''равносильности'' на множестве уравнений.&lt;br /&gt;
* Отношение ''связности'' вершин в графе.&lt;br /&gt;
* Отношение ''быть одного роста'' на множестве людей.&lt;br /&gt;
Следующие отношения не являются отношениями эквивалентности:&lt;br /&gt;
* [[Отношение порядка|Отношения порядка]], так как они не являются симметричными.&lt;br /&gt;
* Отношение ''быть знакомым'' на множестве людей, так как оно не транзитивное.&lt;br /&gt;
&lt;br /&gt;
== Классы эквивалентности ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
Система непустых подмножеств &amp;lt;tex&amp;gt;\{M_1, M_2, \ldots, M_n, \ldots\}&amp;lt;/tex&amp;gt; множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; называется '''разбиением''' (англ. ''partition'') данного множества, если:&lt;br /&gt;
* &amp;lt;tex&amp;gt;M = M_1 \cup M_2 \cup \ldots \cup M_n \cup \ldots&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;M_i \cap M_j = \varnothing&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;i \neq j&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Множества &amp;lt;tex&amp;gt;M_1, M_2, \ldots, M_n, \ldots&amp;lt;/tex&amp;gt; называются '''классами''' данного разбиения.&lt;br /&gt;
}}&lt;br /&gt;
Примерами разбиений являются:&lt;br /&gt;
* Разбиение многоугольников на группы по числу вершин.&lt;br /&gt;
* Разбиение треугольников по свойствам углов (остроугольные, прямоугольные, тупоугольные).&lt;br /&gt;
* Разбиение учащихся школы по классам.&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement =&lt;br /&gt;
Если на множестве M задано отношение эквивалентности &amp;lt;tex&amp;gt;\thicksim&amp;lt;/tex&amp;gt;, то оно порождает разбиение этого множества на '''классы эквивалентности''' такое, что:&lt;br /&gt;
* любые два элемента одного класса находятся в отношении &amp;lt;tex&amp;gt;\thicksim&amp;lt;/tex&amp;gt;&lt;br /&gt;
* любые два элемента разных классов не находятся в отношении &amp;lt;tex&amp;gt;\thicksim&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Семейство всех классов эквивалентности множества образует множество, называемое ''фактор-множеством'', или ''факторизацией'' множества &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; по отношению &amp;lt;tex&amp;gt;\thicksim&amp;lt;/tex&amp;gt;, и обозначаемое &amp;lt;tex&amp;gt;M/^{\thicksim}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
* ''Равенство'' - классический пример отношения эквивалентности на любом множестве, в т. ч. [[Вещественные числа|вещественных чисел]]&lt;br /&gt;
* Равенство по ''модулю:'' &amp;lt;tex&amp;gt; a \equiv b~(mod ~ m) &amp;lt;/tex&amp;gt;&lt;br /&gt;
* В ''Евклидовой геометрии:''&lt;br /&gt;
** отношение подобия&amp;lt;tex&amp;gt; (&amp;quot;\thicksim &amp;quot;) &amp;lt;/tex&amp;gt;&lt;br /&gt;
** отношение параллельности&amp;lt;tex&amp;gt;\colon ~ (&amp;quot;\parallel &amp;quot;) &amp;lt;/tex&amp;gt;&lt;br /&gt;
** отношение конгруэнтности&amp;lt;tex&amp;gt;\colon ~ (&amp;quot;\cong &amp;quot;) &amp;lt;/tex&amp;gt;&lt;br /&gt;
* Разбиение многоугольников по количеству вершин&lt;br /&gt;
* Отношение ''равносильности'' на множестве уравнений&lt;br /&gt;
* Отношение [[Мощность множества|равномощности]] множеств&lt;br /&gt;
* Отношение ''принадлежать к одному виду'' на множестве животных&lt;br /&gt;
* Отношение ''жить в одном городе'' на множестве людей&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Определение_отношения|Определение отношения]]&lt;br /&gt;
* [[Рефлексивное_отношение|Рефлексивное отношение]]&lt;br /&gt;
* [[Симметричное_отношение|Симметричное отношение]]&lt;br /&gt;
* [[Транзитивное_отношение|Транзитивное отношение]]&lt;br /&gt;
* [[Отношение_порядка|Отношение порядка]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/Отношение_эквивалентности Wikipedia | Отношение эквивалентности]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Equivalence_relation Wikipedia | Equivalence relation]&lt;br /&gt;
* [http://www.smolensk.ru/user/sgma/MMORPH/N-3-html/1.htm Бинарные отношения. Отношение эквивалентности]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Отношения]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%BB%D1%8F_WCP&amp;diff=64394</id>
		<title>Централизованный алгоритм для WCP</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%BB%D1%8F_WCP&amp;diff=64394"/>
				<updated>2018-03-15T11:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Параллельное программирование]]&lt;br /&gt;
'''Централизованный алгоритм для WCP''' – алгоритм для поиска наименьшего (проще говоря, самого левого) [[Срез, согласованный срез|согласованного среза]] в котором выполняется слабый конъюнктивный предикат.&lt;br /&gt;
&lt;br /&gt;
В централизованном алгоритме используются векторные часы. В таком случае, срезом будет задается векторами.&lt;br /&gt;
&lt;br /&gt;
Суть алгоритма:&lt;br /&gt;
* Есть один процесс-координатор, который ответственный за поиск согласованного среза;&lt;br /&gt;
* Остальные процессы обычные, их задача проверять свои локальные предикаты;&lt;br /&gt;
* Всякий раз, когда впервые с момента последнего отправленного или принятого сообщения локальный предикат становится true, оповещаем об этом координатора, указывая свое векторное время;&lt;br /&gt;
* Координатор поддерживает в памяти срез-кандидат и очередь необработанных сообщений от каждого процесса;&lt;br /&gt;
* Срез-кандидат согласован тогда и только тогда, когда все соответствующие вектора попарно несравнимы;&lt;br /&gt;
* Координатор хранит вектора среза-кандидата и флажок для каждой его компоненты: красный – этот элемент не может быть частью согласованного среза, зеленый – может;&lt;br /&gt;
* Начальное состояние – все по нулям, красные;&lt;br /&gt;
* Обрабатываем приходящие сообщения только от красных процессов, сообщения от зеленых ставим в очередь:&lt;br /&gt;
** Сравниваем пришедший вектор попарно с другими процессами, если новый вектор больше, то делаем меньший процесс красным;&lt;br /&gt;
** После обработки сообщения делаем процесс зеленым.&lt;br /&gt;
* Если все зеленое, то мы нашли согласованный срез.&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D0%B0%D0%B1%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D1%8A%D1%8E%D0%BD%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%B5%D0%B4%D0%B8%D0%BA%D0%B0%D1%82_(WCP)&amp;diff=64393</id>
		<title>Слабый конъюнктивный предикат (WCP)</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D0%B0%D0%B1%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D1%8A%D1%8E%D0%BD%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%B5%D0%B4%D0%B8%D0%BA%D0%B0%D1%82_(WCP)&amp;diff=64393"/>
				<updated>2018-03-15T11:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Параллельное программирование]]&lt;br /&gt;
'''Слабый конъюнктивный предикат (WCP)''' – предикат, имеющий вид конъюнкции локальных предикатов над состоянием каждого процесса.&lt;br /&gt;
&lt;br /&gt;
Его истинность будем определять, как истинность хотя бы на одном согласованном срезе.&lt;br /&gt;
&lt;br /&gt;
'''Локальный предикат''' – предикат по состоянию одного процесса. Например, если у процесса есть состояние (переменная) x, то локальным предикатом может быть (x &amp;lt; 0).&lt;br /&gt;
&lt;br /&gt;
Используется для нежелательных предикатов, например, классическая проблема взаимного исключения. &lt;br /&gt;
&lt;br /&gt;
Обнаруживает ошибки, которые могли бы быть скрыты в определенном запуске из-за race conditions.&lt;br /&gt;
&lt;br /&gt;
Пример WCP предиката: “в системе нет координатора”, причем локальное условие – “я не координатор”.&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64392</id>
		<title>Автоматы в современном мире</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64392"/>
				<updated>2018-03-15T07:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Несколько полезных оптимизаций на примере Haskell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Реализация регулярных выражений в современных языках ==&lt;br /&gt;
В настоящее время используется несколько различных подходов к реализации регулярных выражений. Всегда можно довольно просто построить НКА. Но после построения есть несколько вариантов:&lt;br /&gt;
# Можно конвертировать его в детерминированный конечный автомат.&lt;br /&gt;
# Можно идти по каждому из возможных путей, а в случае неудачи возвращаться назад и пробовать другой.&lt;br /&gt;
# Можно идти по автомату одновременно по всем возможным состояниям.&lt;br /&gt;
# Можно конвертировать НКА в ДКА лениво (на лету).&lt;br /&gt;
Следующее изображение наглядно показывает, что можно выделить более менее два основных подхода к реализации, давайте же разберемся почему так получилось.&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
|[[Файл:RegExp.png|779px|thumb|regular expression and text size n &amp;lt;tex&amp;gt;a?^na^n&amp;lt;/tex&amp;gt; matching &amp;lt;tex&amp;gt;a^n&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
|}&lt;br /&gt;
Это произошло из-за того, что обычного функционала регулярных выражений зачастую недостаточно, не хватает выразительной мощности. В языках PCRE, Ruby, Python, Perl добавили поддержку обратных ссылок (англ. ''back reference''). Она позволяет связывать ранее найденное сгруппированное выражение в скобках с числом от &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;. Например: &amp;lt;tex&amp;gt;\mathtt{(cat|dog)\backslash1}&amp;lt;/tex&amp;gt; найдет &amp;lt;tex&amp;gt;\mathtt{catcat}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogdog}&amp;lt;/tex&amp;gt;, но никак не &amp;lt;tex&amp;gt;\mathtt{catdog}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogcat}&amp;lt;/tex&amp;gt;. Интересно, что с добавлением обратных ссылок регулярные выражения перестаю относиться к классу регулярных языков. К сожалению, лучшая реализация требует экспоненциального времени работы. Приведенная на графике синяя кривая является реализацией построения НКА по регулярному выражению написанная на C, занимающая чуть меньше, чем &amp;lt;tex&amp;gt;400&amp;lt;/tex&amp;gt; строк и описанная в  данной статье&amp;lt;ref&amp;gt;[https://swtch.com/~rsc/regexp/regexp1.html Article: Regular Expression Matching Can Be Simple And Fast]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
=== Построение НКА ===&lt;br /&gt;
Для построения автомата нам нужно построить отдельно части НКА для каждой части выражения, финальным шагом будет соединение всего автомата вместе. Представим НКА как связанный список структур состояний &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''struct''' state:&lt;br /&gt;
     '''int''' c&lt;br /&gt;
     '''state''' out&lt;br /&gt;
     '''state''' out1&lt;br /&gt;
     '''int''' lastlist&lt;br /&gt;
Каждый &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt; представляет один из фрагментов НКА, зависящий от символа &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данная реализация будет поддерживать постфиксную нотацию регулярного выражения. Допустим у нас есть функция &amp;lt;tex&amp;gt;\mathrm{re2post}&amp;lt;/tex&amp;gt;, которая переписывает инфиксную форму регулярного выражения &amp;lt;tex&amp;gt;``a(bb)+a&amp;quot;&amp;lt;/tex&amp;gt; в эквивалентную постфиксную вида &amp;lt;tex&amp;gt;``abb.+.a.&amp;quot;&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;.&amp;lt;/tex&amp;gt; используется в качестве разделителя). По мере сканирования постфиксного выражения, будем поддерживать стек вычисленных НКА фрагментов. Символы добавляют новый НКА фрагмент в стек, а операторы вынимают фрагменты и добавляют новые. Каждый фрагмент определяется стартовым состояние и исходящей стрелкой:&lt;br /&gt;
 '''struct''' frag:&lt;br /&gt;
     '''state''' start&lt;br /&gt;
     '''ptrList''' out&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{start}&amp;lt;/tex&amp;gt; указывает на стартовое состояние фрагмента, а &amp;lt;tex&amp;gt;\mathrm{out}&amp;lt;/tex&amp;gt; {{---}} лист указателей на &amp;lt;tex&amp;gt;\mathrm{state*}&amp;lt;/tex&amp;gt; указатели, которые ещё не соединены. &lt;br /&gt;
Некоторые полезные функции для управления списком указателей:&lt;br /&gt;
 '''fun''' list1('''state''' outp): '''ptrList'''&lt;br /&gt;
 '''fun''' append('''ptrList''' l1, '''ptrList''' l2): '''ptrList'''&lt;br /&gt;
 '''fun''' patch('''ptrList''' l, '''state''' s)&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{list1}&amp;lt;/tex&amp;gt; создает новый список указателей состоящий из одного указателя &amp;lt;tex&amp;gt;\mathrm{outp}&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;\mathrm{append}&amp;lt;/tex&amp;gt; конкатенирует два списка указателей, возвращая результат. &amp;lt;tex&amp;gt;\mathrm{patch}&amp;lt;/tex&amp;gt; связывает повисшую стрелку в списке &amp;lt;tex&amp;gt;\mathrm{l}&amp;lt;/tex&amp;gt; с состоянием &amp;lt;tex&amp;gt;\mathrm{s}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Используя данные примитивы и стек фрагментов можно реализовать построение НКА.&lt;br /&gt;
 '''fun''' post2nfa('''string''' postfix): '''state'''&lt;br /&gt;
     '''frag''' stack[1000], e1, e2, e&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''for''' i = 0 '''to''' postfix.length - 1&lt;br /&gt;
         '''switch'''(postfix[i])&lt;br /&gt;
             '''case''' '.': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// конкатенация&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 patch(e1.out, e2.start)&lt;br /&gt;
                 push(frag(e1.start, e2.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '|': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// альтернатива&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 s = state(Split, e1.start, e2.start)&lt;br /&gt;
                 push(frag(s, append(e1.out, e2.out)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '?': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или один&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 push(frag(s, append(e.out, list1(s.out1))))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '*': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 push(frag(s, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '+': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// один или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 stack.push(frag(e.start, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''defaul'''t: &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// символ&amp;lt;/span&amp;gt;&lt;br /&gt;
                 s = state(postfix[i], NULL, NULL)&lt;br /&gt;
                 push(frag(s, list1(s.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
     e = stack.pop()&lt;br /&gt;
     patch(e.out, matchState)&lt;br /&gt;
     '''return''' e.start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь когда мы построили НКА, нужно научиться ходить по нему. Будем сохранять посещенные состояния в массиве.&lt;br /&gt;
 '''struct''' List:&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''int''' n&lt;br /&gt;
&lt;br /&gt;
Обход будет использовать два списка: &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; набор состояний, в которых уже находится, и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt; набор состояний в которых НКА будет после обработки текущего символа. Цикл исполнения инициализирует &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; стартовым состоянием и пошагово проходит.&lt;br /&gt;
 '''fun''' match('''state''' start, '''string''' s): '''int'''&lt;br /&gt;
     '''List''' cList, nList, t&lt;br /&gt;
     '''cList''' = startList(start, l1)&lt;br /&gt;
     '''nList''' = l2&lt;br /&gt;
     '''for''' i = 0 '''to''' s.length - 1&lt;br /&gt;
         step(cList, s[i], nList)&lt;br /&gt;
         t = cList&lt;br /&gt;
         cList = nList&lt;br /&gt;
         nList = t&lt;br /&gt;
     '''return''' isMatch(cList)&lt;br /&gt;
Чтобы избежать преаллокаций на каждой итерации цикла, &amp;lt;tex&amp;gt;\mathrm{match}&amp;lt;/tex&amp;gt; использует два преаллоцированных списка &amp;lt;tex&amp;gt;\mathrm{l1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{l2}&amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;, и меняет их на каждом шаге. &lt;br /&gt;
&lt;br /&gt;
Если список последних вершин содержит терминальную вершину, то строка распознана.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' isMatch('''List''' l): '''int'''&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''for''' i = 0 '''to''' l.n - 1&lt;br /&gt;
         '''if''' (l.s[i] == matchState)&lt;br /&gt;
         '''return''' 1&lt;br /&gt;
     '''return''' 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{addState}&amp;lt;/tex&amp;gt; добавляет состояние в список, но только если их ещё не было в нем.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' addState('''List''' l, '''state''' s):&lt;br /&gt;
     '''if''' (s == NULL || s.lastlist == listid)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     s.lastlist = listid&lt;br /&gt;
     '''if'''(s.c == split)&lt;br /&gt;
         addState(l, s.out)&lt;br /&gt;
         addState(l, s.out1)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     l.s[l.n++] = s&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{startList}&amp;lt;/tex&amp;gt; создает начальный список состояний и добавляет туда стартовое состояние.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' startList('''state''' s, '''List''' l): '''List'''&lt;br /&gt;
     listid++&lt;br /&gt;
     l.n = 0&lt;br /&gt;
     addState(l, s)&lt;br /&gt;
     '''return''' l&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{step}&amp;lt;/tex&amp;gt; вычисляет по символу, использую список текущих состояний &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; следующий список &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' step('''List''' client, '''int''' c, '''List''' nList)&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     listid++&lt;br /&gt;
     nList.n = 0&lt;br /&gt;
     '''for''' i = 0 '''to''' cList.n - 1&lt;br /&gt;
         s = cList.s[i]&lt;br /&gt;
         '''if''' (s.c == c)&lt;br /&gt;
             addState(nList, s.out)&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные возможности регулярных выражений ===&lt;br /&gt;
&lt;br /&gt;
==== Символьные классы ==== &lt;br /&gt;
Набор символов в квадратных скобках &amp;lt;tex&amp;gt;[ ]&amp;lt;/tex&amp;gt; именуется символьным классом и позволяет указать интерпретатору регулярных выражений, что на данном месте в строке может стоять один из перечисленных символов. Можно указывать диапазоны &amp;lt;tex&amp;gt;\mathrm{[0-9]}, \mathrm{[a-z]}&amp;lt;/tex&amp;gt;, а также существуют дополнительные символьные классы &amp;lt;tex&amp;gt;\mathtt{[[:upper:]]}, \mathtt{[[:word:]]}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==== Квантификация. ====&lt;br /&gt;
Позволяет установить точное соответствие повторов равное числу &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;{n};&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;{n,m}&amp;lt;/tex&amp;gt; {{---}} не меньше чем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, и не больше чем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;{n,}&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и больше. Можно найти эквиваленты символам &amp;lt;tex&amp;gt;*, +, ?&amp;lt;/tex&amp;gt;.  С помощью символов &amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{0,1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{1,}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Позиция внутри строки ====&lt;br /&gt;
Следующие символы позволяют с позиционировать регулярное выражение относительно элементов текста: начала и конца строки, границ слова.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Представление&lt;br /&gt;
! Позиция&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt; \wedge &amp;lt;/tex&amp;gt;&lt;br /&gt;
| Начало текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;$&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Конец текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash b&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Граница слова&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash G&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Предыдущий успешный поиск&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Жадная и ленивая квантификация ====&lt;br /&gt;
В некоторых реализациях квантификаторам в регулярных выражениях соответствует максимально длинная строка из возможных (квантификаторы являются жадными, англ. ''greedy''). Это может оказаться значительной проблемой. Например, часто ожидают, что выражение &amp;lt;tex&amp;gt;(&amp;lt;.*&amp;gt;)&amp;lt;/tex&amp;gt; найдёт в тексте теги HTML. Однако если в тексте есть более одного HTML-тега, то этому выражению соответствует целиком строка, содержащая множество тегов.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ленивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;+?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Эту проблему можно решить двумя способами.&lt;br /&gt;
&lt;br /&gt;
Учитывать символы, не соответствующие желаемому образцу ( &amp;lt;tex&amp;gt;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;lt;/tex&amp;gt; для вышеописанного случая).&lt;br /&gt;
Определить квантификатор как нежадный (ленивый, англ. ''lazy'') {{---}} большинство реализаций позволяют это сделать, добавив после него знак вопроса.&lt;br /&gt;
&lt;br /&gt;
==== Ревнивая квантификация (Сверхжадная) ====&lt;br /&gt;
В отличие от обычной (жадной) квантификации, ревнивая (англ. ''possessive'') квантификация не только старается найти максимально длинный вариант, но ещё и не позволяет алгоритму возвращаться к предыдущим шагам поиска для того, чтобы найти возможные соответствия для оставшейся части регулярного выражения.&lt;br /&gt;
&lt;br /&gt;
Использование квантификаторов увеличивает скорость поиска, особенно в тех случаях, когда строка не соответствует регулярному выражению. Кроме того, ревнивые квантификаторы могут быть использованы для исключения нежелательных совпадений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ревнивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;?+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;++&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Несколько полезных оптимизаций на примере Haskell ==&lt;br /&gt;
&lt;br /&gt;
Gabriel Gonzalez &amp;lt;ref&amp;gt;[https://begriffs.com/posts/2016-06-27-fast-haskell-regexes.html Gabriel Gonzalez {{---}} Regex in Haskell]&amp;lt;/ref&amp;gt; реализовал алгоритм Томпсона на языке Haskell. В первоначальном варианте это алгоритм получился в &amp;lt;tex&amp;gt;480&amp;lt;/tex&amp;gt; раз медленнее, чем grep на том же тесте, чтобы улучшить результат он предпринял ряд оптимизаций:&lt;br /&gt;
* вместо &amp;lt;tex&amp;gt;\mathrm{Set Int}&amp;lt;/tex&amp;gt; использовал &amp;lt;tex&amp;gt;\mathrm{Integer}&amp;lt;/tex&amp;gt;, а также использовал битовые операции, в результате производительность выросла в &amp;lt;tex&amp;gt;5&amp;lt;/tex&amp;gt; раз&lt;br /&gt;
* использовал &amp;lt;tex&amp;gt;\mathrm{Word}&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;\mathrm{Integer}&amp;lt;/tex&amp;gt;, ещё в &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt; раз быстрее&lt;br /&gt;
* а также использовал &amp;lt;tex&amp;gt;\mathrm{ByteString}&amp;lt;/tex&amp;gt; оптимизации, что увеличило производительность ещё &amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt; раза.&lt;br /&gt;
В итоге его реализация оказалась всего в &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt; раза медленнее grep. Но это не предел, у него получилось реализовать  параллельный конечный автомат&amp;lt;ref&amp;gt;[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-State Machines]&amp;lt;/ref&amp;gt; и сделать свою реализацию в &amp;lt;tex&amp;gt;1.5&amp;lt;/tex&amp;gt; раза быстрее, чем grep.&lt;br /&gt;
&lt;br /&gt;
== ReDoS (regular expression denial of service) ==&lt;br /&gt;
Интересно, что злоумышленники научились атаковать системы используя то, что некоторые алгоритмы имеют экспоненциальную сложность. В регулярных выражениях использующих обратную связь есть несколько вариантов:&lt;br /&gt;
* использовать повторение &amp;lt;tex&amp;gt;(``+&amp;quot;,``*&amp;quot;)&amp;lt;/tex&amp;gt; для достаточно сложных подвыражений;&lt;br /&gt;
* сделать так, чтобы повторяющиеся подвыражения были суффиксами валидного совпадения.&lt;br /&gt;
Примеры вредоносных регулярных выражений:&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a+)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;([a-zA-Z]+)*&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|aa)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|a?)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(.*a)\{11,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Все эти выражения чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Также вредоносные регулярные выражения были обнаружены в онлайн репозиториях.&lt;br /&gt;
# RegExLib, email validation &amp;lt;ref&amp;gt;[http://regexlib.com/REDetails.aspx?regexp_id=1757 RegEx for email validation]&amp;lt;/ref&amp;gt; {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^([a-zA-Z0-9])'''(([\-.]|[_]+)?([a-zA-Z0-9]+))*'''(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$&amp;lt;/code&amp;gt;&lt;br /&gt;
# OWASP Validation Regex Repository  &amp;lt;ref&amp;gt;[http://www.owasp.org/index.php/OWASP_Validation_Regex_Repository OWASP Validation Regex Repository]&amp;lt;/ref&amp;gt;, Java Classname {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^'''(([a-z])+.)+'''[A-Z]([a-z])+$&amp;lt;/code&amp;gt;&lt;br /&gt;
Эти два примера также чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[ Регулярные языки: два определения и их эквивалентность ]]&lt;br /&gt;
* [[ Недетерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Детерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Построение по НКА эквивалентного ДКА, алгоритм Томпсона ]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [https://swtch.com/~rsc/regexp/regexp1.html  Regular Expression Matching Can Be Simple And Fast]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/ReDoS ReDos]&lt;br /&gt;
* [https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-state Machines]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Автоматы и регулярные языки]]&lt;br /&gt;
[[Категория: Контекстно-свободные грамматики]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64391</id>
		<title>Автоматы в современном мире</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64391"/>
				<updated>2018-03-15T07:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Несколько полезных оптимизаций на примере Haskell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Реализация регулярных выражений в современных языках ==&lt;br /&gt;
В настоящее время используется несколько различных подходов к реализации регулярных выражений. Всегда можно довольно просто построить НКА. Но после построения есть несколько вариантов:&lt;br /&gt;
# Можно конвертировать его в детерминированный конечный автомат.&lt;br /&gt;
# Можно идти по каждому из возможных путей, а в случае неудачи возвращаться назад и пробовать другой.&lt;br /&gt;
# Можно идти по автомату одновременно по всем возможным состояниям.&lt;br /&gt;
# Можно конвертировать НКА в ДКА лениво (на лету).&lt;br /&gt;
Следующее изображение наглядно показывает, что можно выделить более менее два основных подхода к реализации, давайте же разберемся почему так получилось.&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
|[[Файл:RegExp.png|779px|thumb|regular expression and text size n &amp;lt;tex&amp;gt;a?^na^n&amp;lt;/tex&amp;gt; matching &amp;lt;tex&amp;gt;a^n&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
|}&lt;br /&gt;
Это произошло из-за того, что обычного функционала регулярных выражений зачастую недостаточно, не хватает выразительной мощности. В языках PCRE, Ruby, Python, Perl добавили поддержку обратных ссылок (англ. ''back reference''). Она позволяет связывать ранее найденное сгруппированное выражение в скобках с числом от &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;. Например: &amp;lt;tex&amp;gt;\mathtt{(cat|dog)\backslash1}&amp;lt;/tex&amp;gt; найдет &amp;lt;tex&amp;gt;\mathtt{catcat}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogdog}&amp;lt;/tex&amp;gt;, но никак не &amp;lt;tex&amp;gt;\mathtt{catdog}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogcat}&amp;lt;/tex&amp;gt;. Интересно, что с добавлением обратных ссылок регулярные выражения перестаю относиться к классу регулярных языков. К сожалению, лучшая реализация требует экспоненциального времени работы. Приведенная на графике синяя кривая является реализацией построения НКА по регулярному выражению написанная на C, занимающая чуть меньше, чем &amp;lt;tex&amp;gt;400&amp;lt;/tex&amp;gt; строк и описанная в  данной статье&amp;lt;ref&amp;gt;[https://swtch.com/~rsc/regexp/regexp1.html Article: Regular Expression Matching Can Be Simple And Fast]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
=== Построение НКА ===&lt;br /&gt;
Для построения автомата нам нужно построить отдельно части НКА для каждой части выражения, финальным шагом будет соединение всего автомата вместе. Представим НКА как связанный список структур состояний &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''struct''' state:&lt;br /&gt;
     '''int''' c&lt;br /&gt;
     '''state''' out&lt;br /&gt;
     '''state''' out1&lt;br /&gt;
     '''int''' lastlist&lt;br /&gt;
Каждый &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt; представляет один из фрагментов НКА, зависящий от символа &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данная реализация будет поддерживать постфиксную нотацию регулярного выражения. Допустим у нас есть функция &amp;lt;tex&amp;gt;\mathrm{re2post}&amp;lt;/tex&amp;gt;, которая переписывает инфиксную форму регулярного выражения &amp;lt;tex&amp;gt;``a(bb)+a&amp;quot;&amp;lt;/tex&amp;gt; в эквивалентную постфиксную вида &amp;lt;tex&amp;gt;``abb.+.a.&amp;quot;&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;.&amp;lt;/tex&amp;gt; используется в качестве разделителя). По мере сканирования постфиксного выражения, будем поддерживать стек вычисленных НКА фрагментов. Символы добавляют новый НКА фрагмент в стек, а операторы вынимают фрагменты и добавляют новые. Каждый фрагмент определяется стартовым состояние и исходящей стрелкой:&lt;br /&gt;
 '''struct''' frag:&lt;br /&gt;
     '''state''' start&lt;br /&gt;
     '''ptrList''' out&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{start}&amp;lt;/tex&amp;gt; указывает на стартовое состояние фрагмента, а &amp;lt;tex&amp;gt;\mathrm{out}&amp;lt;/tex&amp;gt; {{---}} лист указателей на &amp;lt;tex&amp;gt;\mathrm{state*}&amp;lt;/tex&amp;gt; указатели, которые ещё не соединены. &lt;br /&gt;
Некоторые полезные функции для управления списком указателей:&lt;br /&gt;
 '''fun''' list1('''state''' outp): '''ptrList'''&lt;br /&gt;
 '''fun''' append('''ptrList''' l1, '''ptrList''' l2): '''ptrList'''&lt;br /&gt;
 '''fun''' patch('''ptrList''' l, '''state''' s)&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{list1}&amp;lt;/tex&amp;gt; создает новый список указателей состоящий из одного указателя &amp;lt;tex&amp;gt;\mathrm{outp}&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;\mathrm{append}&amp;lt;/tex&amp;gt; конкатенирует два списка указателей, возвращая результат. &amp;lt;tex&amp;gt;\mathrm{patch}&amp;lt;/tex&amp;gt; связывает повисшую стрелку в списке &amp;lt;tex&amp;gt;\mathrm{l}&amp;lt;/tex&amp;gt; с состоянием &amp;lt;tex&amp;gt;\mathrm{s}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Используя данные примитивы и стек фрагментов можно реализовать построение НКА.&lt;br /&gt;
 '''fun''' post2nfa('''string''' postfix): '''state'''&lt;br /&gt;
     '''frag''' stack[1000], e1, e2, e&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''for''' i = 0 '''to''' postfix.length - 1&lt;br /&gt;
         '''switch'''(postfix[i])&lt;br /&gt;
             '''case''' '.': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// конкатенация&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 patch(e1.out, e2.start)&lt;br /&gt;
                 push(frag(e1.start, e2.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '|': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// альтернатива&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 s = state(Split, e1.start, e2.start)&lt;br /&gt;
                 push(frag(s, append(e1.out, e2.out)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '?': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или один&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 push(frag(s, append(e.out, list1(s.out1))))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '*': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 push(frag(s, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '+': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// один или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 stack.push(frag(e.start, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''defaul'''t: &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// символ&amp;lt;/span&amp;gt;&lt;br /&gt;
                 s = state(postfix[i], NULL, NULL)&lt;br /&gt;
                 push(frag(s, list1(s.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
     e = stack.pop()&lt;br /&gt;
     patch(e.out, matchState)&lt;br /&gt;
     '''return''' e.start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь когда мы построили НКА, нужно научиться ходить по нему. Будем сохранять посещенные состояния в массиве.&lt;br /&gt;
 '''struct''' List:&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''int''' n&lt;br /&gt;
&lt;br /&gt;
Обход будет использовать два списка: &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; набор состояний, в которых уже находится, и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt; набор состояний в которых НКА будет после обработки текущего символа. Цикл исполнения инициализирует &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; стартовым состоянием и пошагово проходит.&lt;br /&gt;
 '''fun''' match('''state''' start, '''string''' s): '''int'''&lt;br /&gt;
     '''List''' cList, nList, t&lt;br /&gt;
     '''cList''' = startList(start, l1)&lt;br /&gt;
     '''nList''' = l2&lt;br /&gt;
     '''for''' i = 0 '''to''' s.length - 1&lt;br /&gt;
         step(cList, s[i], nList)&lt;br /&gt;
         t = cList&lt;br /&gt;
         cList = nList&lt;br /&gt;
         nList = t&lt;br /&gt;
     '''return''' isMatch(cList)&lt;br /&gt;
Чтобы избежать преаллокаций на каждой итерации цикла, &amp;lt;tex&amp;gt;\mathrm{match}&amp;lt;/tex&amp;gt; использует два преаллоцированных списка &amp;lt;tex&amp;gt;\mathrm{l1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{l2}&amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;, и меняет их на каждом шаге. &lt;br /&gt;
&lt;br /&gt;
Если список последних вершин содержит терминальную вершину, то строка распознана.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' isMatch('''List''' l): '''int'''&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''for''' i = 0 '''to''' l.n - 1&lt;br /&gt;
         '''if''' (l.s[i] == matchState)&lt;br /&gt;
         '''return''' 1&lt;br /&gt;
     '''return''' 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{addState}&amp;lt;/tex&amp;gt; добавляет состояние в список, но только если их ещё не было в нем.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' addState('''List''' l, '''state''' s):&lt;br /&gt;
     '''if''' (s == NULL || s.lastlist == listid)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     s.lastlist = listid&lt;br /&gt;
     '''if'''(s.c == split)&lt;br /&gt;
         addState(l, s.out)&lt;br /&gt;
         addState(l, s.out1)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     l.s[l.n++] = s&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{startList}&amp;lt;/tex&amp;gt; создает начальный список состояний и добавляет туда стартовое состояние.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' startList('''state''' s, '''List''' l): '''List'''&lt;br /&gt;
     listid++&lt;br /&gt;
     l.n = 0&lt;br /&gt;
     addState(l, s)&lt;br /&gt;
     '''return''' l&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{step}&amp;lt;/tex&amp;gt; вычисляет по символу, использую список текущих состояний &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; следующий список &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' step('''List''' client, '''int''' c, '''List''' nList)&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     listid++&lt;br /&gt;
     nList.n = 0&lt;br /&gt;
     '''for''' i = 0 '''to''' cList.n - 1&lt;br /&gt;
         s = cList.s[i]&lt;br /&gt;
         '''if''' (s.c == c)&lt;br /&gt;
             addState(nList, s.out)&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные возможности регулярных выражений ===&lt;br /&gt;
&lt;br /&gt;
==== Символьные классы ==== &lt;br /&gt;
Набор символов в квадратных скобках &amp;lt;tex&amp;gt;[ ]&amp;lt;/tex&amp;gt; именуется символьным классом и позволяет указать интерпретатору регулярных выражений, что на данном месте в строке может стоять один из перечисленных символов. Можно указывать диапазоны &amp;lt;tex&amp;gt;\mathrm{[0-9]}, \mathrm{[a-z]}&amp;lt;/tex&amp;gt;, а также существуют дополнительные символьные классы &amp;lt;tex&amp;gt;\mathtt{[[:upper:]]}, \mathtt{[[:word:]]}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==== Квантификация. ====&lt;br /&gt;
Позволяет установить точное соответствие повторов равное числу &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;{n};&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;{n,m}&amp;lt;/tex&amp;gt; {{---}} не меньше чем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, и не больше чем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;{n,}&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и больше. Можно найти эквиваленты символам &amp;lt;tex&amp;gt;*, +, ?&amp;lt;/tex&amp;gt;.  С помощью символов &amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{0,1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{1,}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Позиция внутри строки ====&lt;br /&gt;
Следующие символы позволяют с позиционировать регулярное выражение относительно элементов текста: начала и конца строки, границ слова.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Представление&lt;br /&gt;
! Позиция&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt; \wedge &amp;lt;/tex&amp;gt;&lt;br /&gt;
| Начало текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;$&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Конец текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash b&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Граница слова&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash G&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Предыдущий успешный поиск&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Жадная и ленивая квантификация ====&lt;br /&gt;
В некоторых реализациях квантификаторам в регулярных выражениях соответствует максимально длинная строка из возможных (квантификаторы являются жадными, англ. ''greedy''). Это может оказаться значительной проблемой. Например, часто ожидают, что выражение &amp;lt;tex&amp;gt;(&amp;lt;.*&amp;gt;)&amp;lt;/tex&amp;gt; найдёт в тексте теги HTML. Однако если в тексте есть более одного HTML-тега, то этому выражению соответствует целиком строка, содержащая множество тегов.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ленивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;+?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Эту проблему можно решить двумя способами.&lt;br /&gt;
&lt;br /&gt;
Учитывать символы, не соответствующие желаемому образцу ( &amp;lt;tex&amp;gt;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;lt;/tex&amp;gt; для вышеописанного случая).&lt;br /&gt;
Определить квантификатор как нежадный (ленивый, англ. ''lazy'') {{---}} большинство реализаций позволяют это сделать, добавив после него знак вопроса.&lt;br /&gt;
&lt;br /&gt;
==== Ревнивая квантификация (Сверхжадная) ====&lt;br /&gt;
В отличие от обычной (жадной) квантификации, ревнивая (англ. ''possessive'') квантификация не только старается найти максимально длинный вариант, но ещё и не позволяет алгоритму возвращаться к предыдущим шагам поиска для того, чтобы найти возможные соответствия для оставшейся части регулярного выражения.&lt;br /&gt;
&lt;br /&gt;
Использование квантификаторов увеличивает скорость поиска, особенно в тех случаях, когда строка не соответствует регулярному выражению. Кроме того, ревнивые квантификаторы могут быть использованы для исключения нежелательных совпадений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ревнивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;?+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;++&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Несколько полезных оптимизаций на примере Haskell ==&lt;br /&gt;
&lt;br /&gt;
Gabriel Gonzalez &amp;lt;ref&amp;gt;[https://begriffs.com/posts/2016-06-27-fast-haskell-regexes.html Gabriel Gonzalez {{---}} Regex in Haskell]&amp;lt;/ref&amp;gt; реализовал алгоритм Томпсона на языке Haskell. В первоначальном варианте это алгоритм получился в &amp;lt;tex&amp;gt;480&amp;lt;/tex&amp;gt; раз медленнее, чем grep на том же тесте, чтобы улучшить результат он предпринял ряд оптимизаций:&lt;br /&gt;
* вместо &amp;lt;tex&amp;gt;\mathrm{Set Int}&amp;lt;/tex&amp;gt; использовал &amp;lt;tex&amp;gt;\mathrm{Integer}&amp;lt;/tex&amp;gt;, а также использовал битовые операции, в результате производительность выросла в &amp;lt;tex&amp;gt;5&amp;lt;/tex&amp;gt; раз&lt;br /&gt;
* использовал &amp;lt;tex&amp;gt;\mathrm{Word}&amp;lt;/tex&amp;gt; вместо &amp;lt;tex&amp;gt;\mathrm{Integer}&amp;lt;/tex&amp;gt;, ещё в &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt; раз быстрее&lt;br /&gt;
* а также использовал ByteString оптимизации, что увеличило производительность ещё &amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt; раза.&lt;br /&gt;
В итоге его реализация оказалась всего в &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt; раза медленнее grep. Но это не предел, у него получилось реализовать  параллельный конечный автомат&amp;lt;ref&amp;gt;[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-State Machines]&amp;lt;/ref&amp;gt; и сделать свою реализацию в &amp;lt;tex&amp;gt;1.5&amp;lt;/tex&amp;gt; раза быстрее, чем grep.&lt;br /&gt;
&lt;br /&gt;
== ReDoS (regular expression denial of service) ==&lt;br /&gt;
Интересно, что злоумышленники научились атаковать системы используя то, что некоторые алгоритмы имеют экспоненциальную сложность. В регулярных выражениях использующих обратную связь есть несколько вариантов:&lt;br /&gt;
* использовать повторение &amp;lt;tex&amp;gt;(``+&amp;quot;,``*&amp;quot;)&amp;lt;/tex&amp;gt; для достаточно сложных подвыражений;&lt;br /&gt;
* сделать так, чтобы повторяющиеся подвыражения были суффиксами валидного совпадения.&lt;br /&gt;
Примеры вредоносных регулярных выражений:&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a+)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;([a-zA-Z]+)*&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|aa)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|a?)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(.*a)\{11,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Все эти выражения чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Также вредоносные регулярные выражения были обнаружены в онлайн репозиториях.&lt;br /&gt;
# RegExLib, email validation &amp;lt;ref&amp;gt;[http://regexlib.com/REDetails.aspx?regexp_id=1757 RegEx for email validation]&amp;lt;/ref&amp;gt; {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^([a-zA-Z0-9])'''(([\-.]|[_]+)?([a-zA-Z0-9]+))*'''(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$&amp;lt;/code&amp;gt;&lt;br /&gt;
# OWASP Validation Regex Repository  &amp;lt;ref&amp;gt;[http://www.owasp.org/index.php/OWASP_Validation_Regex_Repository OWASP Validation Regex Repository]&amp;lt;/ref&amp;gt;, Java Classname {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^'''(([a-z])+.)+'''[A-Z]([a-z])+$&amp;lt;/code&amp;gt;&lt;br /&gt;
Эти два примера также чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[ Регулярные языки: два определения и их эквивалентность ]]&lt;br /&gt;
* [[ Недетерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Детерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Построение по НКА эквивалентного ДКА, алгоритм Томпсона ]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [https://swtch.com/~rsc/regexp/regexp1.html  Regular Expression Matching Can Be Simple And Fast]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/ReDoS ReDos]&lt;br /&gt;
* [https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-state Machines]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Автоматы и регулярные языки]]&lt;br /&gt;
[[Категория: Контекстно-свободные грамматики]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64390</id>
		<title>Автоматы в современном мире</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64390"/>
				<updated>2018-03-15T07:32:27Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Несколько полезных оптимизаций на примере Haskell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Реализация регулярных выражений в современных языках ==&lt;br /&gt;
В настоящее время используется несколько различных подходов к реализации регулярных выражений. Всегда можно довольно просто построить НКА. Но после построения есть несколько вариантов:&lt;br /&gt;
# Можно конвертировать его в детерминированный конечный автомат.&lt;br /&gt;
# Можно идти по каждому из возможных путей, а в случае неудачи возвращаться назад и пробовать другой.&lt;br /&gt;
# Можно идти по автомату одновременно по всем возможным состояниям.&lt;br /&gt;
# Можно конвертировать НКА в ДКА лениво (на лету).&lt;br /&gt;
Следующее изображение наглядно показывает, что можно выделить более менее два основных подхода к реализации, давайте же разберемся почему так получилось.&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
|[[Файл:RegExp.png|779px|thumb|regular expression and text size n &amp;lt;tex&amp;gt;a?^na^n&amp;lt;/tex&amp;gt; matching &amp;lt;tex&amp;gt;a^n&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
|}&lt;br /&gt;
Это произошло из-за того, что обычного функционала регулярных выражений зачастую недостаточно, не хватает выразительной мощности. В языках PCRE, Ruby, Python, Perl добавили поддержку обратных ссылок (англ. ''back reference''). Она позволяет связывать ранее найденное сгруппированное выражение в скобках с числом от &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;. Например: &amp;lt;tex&amp;gt;\mathtt{(cat|dog)\backslash1}&amp;lt;/tex&amp;gt; найдет &amp;lt;tex&amp;gt;\mathtt{catcat}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogdog}&amp;lt;/tex&amp;gt;, но никак не &amp;lt;tex&amp;gt;\mathtt{catdog}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogcat}&amp;lt;/tex&amp;gt;. Интересно, что с добавлением обратных ссылок регулярные выражения перестаю относиться к классу регулярных языков. К сожалению, лучшая реализация требует экспоненциального времени работы. Приведенная на графике синяя кривая является реализацией построения НКА по регулярному выражению написанная на C, занимающая чуть меньше, чем &amp;lt;tex&amp;gt;400&amp;lt;/tex&amp;gt; строк и описанная в  данной статье&amp;lt;ref&amp;gt;[https://swtch.com/~rsc/regexp/regexp1.html Article: Regular Expression Matching Can Be Simple And Fast]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
=== Построение НКА ===&lt;br /&gt;
Для построения автомата нам нужно построить отдельно части НКА для каждой части выражения, финальным шагом будет соединение всего автомата вместе. Представим НКА как связанный список структур состояний &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''struct''' state:&lt;br /&gt;
     '''int''' c&lt;br /&gt;
     '''state''' out&lt;br /&gt;
     '''state''' out1&lt;br /&gt;
     '''int''' lastlist&lt;br /&gt;
Каждый &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt; представляет один из фрагментов НКА, зависящий от символа &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данная реализация будет поддерживать постфиксную нотацию регулярного выражения. Допустим у нас есть функция &amp;lt;tex&amp;gt;\mathrm{re2post}&amp;lt;/tex&amp;gt;, которая переписывает инфиксную форму регулярного выражения &amp;lt;tex&amp;gt;``a(bb)+a&amp;quot;&amp;lt;/tex&amp;gt; в эквивалентную постфиксную вида &amp;lt;tex&amp;gt;``abb.+.a.&amp;quot;&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;.&amp;lt;/tex&amp;gt; используется в качестве разделителя). По мере сканирования постфиксного выражения, будем поддерживать стек вычисленных НКА фрагментов. Символы добавляют новый НКА фрагмент в стек, а операторы вынимают фрагменты и добавляют новые. Каждый фрагмент определяется стартовым состояние и исходящей стрелкой:&lt;br /&gt;
 '''struct''' frag:&lt;br /&gt;
     '''state''' start&lt;br /&gt;
     '''ptrList''' out&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{start}&amp;lt;/tex&amp;gt; указывает на стартовое состояние фрагмента, а &amp;lt;tex&amp;gt;\mathrm{out}&amp;lt;/tex&amp;gt; {{---}} лист указателей на &amp;lt;tex&amp;gt;\mathrm{state*}&amp;lt;/tex&amp;gt; указатели, которые ещё не соединены. &lt;br /&gt;
Некоторые полезные функции для управления списком указателей:&lt;br /&gt;
 '''fun''' list1('''state''' outp): '''ptrList'''&lt;br /&gt;
 '''fun''' append('''ptrList''' l1, '''ptrList''' l2): '''ptrList'''&lt;br /&gt;
 '''fun''' patch('''ptrList''' l, '''state''' s)&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{list1}&amp;lt;/tex&amp;gt; создает новый список указателей состоящий из одного указателя &amp;lt;tex&amp;gt;\mathrm{outp}&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;\mathrm{append}&amp;lt;/tex&amp;gt; конкатенирует два списка указателей, возвращая результат. &amp;lt;tex&amp;gt;\mathrm{patch}&amp;lt;/tex&amp;gt; связывает повисшую стрелку в списке &amp;lt;tex&amp;gt;\mathrm{l}&amp;lt;/tex&amp;gt; с состоянием &amp;lt;tex&amp;gt;\mathrm{s}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Используя данные примитивы и стек фрагментов можно реализовать построение НКА.&lt;br /&gt;
 '''fun''' post2nfa('''string''' postfix): '''state'''&lt;br /&gt;
     '''frag''' stack[1000], e1, e2, e&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''for''' i = 0 '''to''' postfix.length - 1&lt;br /&gt;
         '''switch'''(postfix[i])&lt;br /&gt;
             '''case''' '.': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// конкатенация&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 patch(e1.out, e2.start)&lt;br /&gt;
                 push(frag(e1.start, e2.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '|': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// альтернатива&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 s = state(Split, e1.start, e2.start)&lt;br /&gt;
                 push(frag(s, append(e1.out, e2.out)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '?': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или один&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 push(frag(s, append(e.out, list1(s.out1))))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '*': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 push(frag(s, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '+': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// один или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 stack.push(frag(e.start, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''defaul'''t: &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// символ&amp;lt;/span&amp;gt;&lt;br /&gt;
                 s = state(postfix[i], NULL, NULL)&lt;br /&gt;
                 push(frag(s, list1(s.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
     e = stack.pop()&lt;br /&gt;
     patch(e.out, matchState)&lt;br /&gt;
     '''return''' e.start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь когда мы построили НКА, нужно научиться ходить по нему. Будем сохранять посещенные состояния в массиве.&lt;br /&gt;
 '''struct''' List:&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''int''' n&lt;br /&gt;
&lt;br /&gt;
Обход будет использовать два списка: &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; набор состояний, в которых уже находится, и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt; набор состояний в которых НКА будет после обработки текущего символа. Цикл исполнения инициализирует &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; стартовым состоянием и пошагово проходит.&lt;br /&gt;
 '''fun''' match('''state''' start, '''string''' s): '''int'''&lt;br /&gt;
     '''List''' cList, nList, t&lt;br /&gt;
     '''cList''' = startList(start, l1)&lt;br /&gt;
     '''nList''' = l2&lt;br /&gt;
     '''for''' i = 0 '''to''' s.length - 1&lt;br /&gt;
         step(cList, s[i], nList)&lt;br /&gt;
         t = cList&lt;br /&gt;
         cList = nList&lt;br /&gt;
         nList = t&lt;br /&gt;
     '''return''' isMatch(cList)&lt;br /&gt;
Чтобы избежать преаллокаций на каждой итерации цикла, &amp;lt;tex&amp;gt;\mathrm{match}&amp;lt;/tex&amp;gt; использует два преаллоцированных списка &amp;lt;tex&amp;gt;\mathrm{l1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{l2}&amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;, и меняет их на каждом шаге. &lt;br /&gt;
&lt;br /&gt;
Если список последних вершин содержит терминальную вершину, то строка распознана.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' isMatch('''List''' l): '''int'''&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''for''' i = 0 '''to''' l.n - 1&lt;br /&gt;
         '''if''' (l.s[i] == matchState)&lt;br /&gt;
         '''return''' 1&lt;br /&gt;
     '''return''' 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{addState}&amp;lt;/tex&amp;gt; добавляет состояние в список, но только если их ещё не было в нем.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' addState('''List''' l, '''state''' s):&lt;br /&gt;
     '''if''' (s == NULL || s.lastlist == listid)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     s.lastlist = listid&lt;br /&gt;
     '''if'''(s.c == split)&lt;br /&gt;
         addState(l, s.out)&lt;br /&gt;
         addState(l, s.out1)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     l.s[l.n++] = s&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{startList}&amp;lt;/tex&amp;gt; создает начальный список состояний и добавляет туда стартовое состояние.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' startList('''state''' s, '''List''' l): '''List'''&lt;br /&gt;
     listid++&lt;br /&gt;
     l.n = 0&lt;br /&gt;
     addState(l, s)&lt;br /&gt;
     '''return''' l&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{step}&amp;lt;/tex&amp;gt; вычисляет по символу, использую список текущих состояний &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; следующий список &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' step('''List''' client, '''int''' c, '''List''' nList)&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     listid++&lt;br /&gt;
     nList.n = 0&lt;br /&gt;
     '''for''' i = 0 '''to''' cList.n - 1&lt;br /&gt;
         s = cList.s[i]&lt;br /&gt;
         '''if''' (s.c == c)&lt;br /&gt;
             addState(nList, s.out)&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные возможности регулярных выражений ===&lt;br /&gt;
&lt;br /&gt;
==== Символьные классы ==== &lt;br /&gt;
Набор символов в квадратных скобках &amp;lt;tex&amp;gt;[ ]&amp;lt;/tex&amp;gt; именуется символьным классом и позволяет указать интерпретатору регулярных выражений, что на данном месте в строке может стоять один из перечисленных символов. Можно указывать диапазоны &amp;lt;tex&amp;gt;\mathrm{[0-9]}, \mathrm{[a-z]}&amp;lt;/tex&amp;gt;, а также существуют дополнительные символьные классы &amp;lt;tex&amp;gt;\mathtt{[[:upper:]]}, \mathtt{[[:word:]]}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==== Квантификация. ====&lt;br /&gt;
Позволяет установить точное соответствие повторов равное числу &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;{n};&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;{n,m}&amp;lt;/tex&amp;gt; {{---}} не меньше чем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, и не больше чем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;{n,}&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и больше. Можно найти эквиваленты символам &amp;lt;tex&amp;gt;*, +, ?&amp;lt;/tex&amp;gt;.  С помощью символов &amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{0,1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{1,}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Позиция внутри строки ====&lt;br /&gt;
Следующие символы позволяют с позиционировать регулярное выражение относительно элементов текста: начала и конца строки, границ слова.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Представление&lt;br /&gt;
! Позиция&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt; \wedge &amp;lt;/tex&amp;gt;&lt;br /&gt;
| Начало текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;$&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Конец текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash b&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Граница слова&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash G&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Предыдущий успешный поиск&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Жадная и ленивая квантификация ====&lt;br /&gt;
В некоторых реализациях квантификаторам в регулярных выражениях соответствует максимально длинная строка из возможных (квантификаторы являются жадными, англ. ''greedy''). Это может оказаться значительной проблемой. Например, часто ожидают, что выражение &amp;lt;tex&amp;gt;(&amp;lt;.*&amp;gt;)&amp;lt;/tex&amp;gt; найдёт в тексте теги HTML. Однако если в тексте есть более одного HTML-тега, то этому выражению соответствует целиком строка, содержащая множество тегов.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ленивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;+?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Эту проблему можно решить двумя способами.&lt;br /&gt;
&lt;br /&gt;
Учитывать символы, не соответствующие желаемому образцу ( &amp;lt;tex&amp;gt;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;lt;/tex&amp;gt; для вышеописанного случая).&lt;br /&gt;
Определить квантификатор как нежадный (ленивый, англ. ''lazy'') {{---}} большинство реализаций позволяют это сделать, добавив после него знак вопроса.&lt;br /&gt;
&lt;br /&gt;
==== Ревнивая квантификация (Сверхжадная) ====&lt;br /&gt;
В отличие от обычной (жадной) квантификации, ревнивая (англ. ''possessive'') квантификация не только старается найти максимально длинный вариант, но ещё и не позволяет алгоритму возвращаться к предыдущим шагам поиска для того, чтобы найти возможные соответствия для оставшейся части регулярного выражения.&lt;br /&gt;
&lt;br /&gt;
Использование квантификаторов увеличивает скорость поиска, особенно в тех случаях, когда строка не соответствует регулярному выражению. Кроме того, ревнивые квантификаторы могут быть использованы для исключения нежелательных совпадений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ревнивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;?+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;++&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Несколько полезных оптимизаций на примере Haskell ==&lt;br /&gt;
&lt;br /&gt;
Gabriel Gonzalez &amp;lt;ref&amp;gt;[https://begriffs.com/posts/2016-06-27-fast-haskell-regexes.html Gabriel Gonzalez {{---}} Regex in Haskell]&amp;lt;/ref&amp;gt; реализовал алгоритм Томпсона на языке Haskell. В первоначальном варианте это алгоритм получился в &amp;lt;tex&amp;gt;480&amp;lt;/tex&amp;gt; раз медленнее, чем grep на том же тесте, чтобы улучшить результат он предпринял ряд оптимизаций:&lt;br /&gt;
* вместо Set Int использовал Integer, а также использовал битовые операции, в результате производительность выросла в &amp;lt;tex&amp;gt;5&amp;lt;/tex&amp;gt; раз&lt;br /&gt;
* использовал Word вместо Integer, ещё в &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt; раз быстрее&lt;br /&gt;
* а также использовал ByteString оптимизации, что увеличило производительность ещё &amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt; раза.&lt;br /&gt;
В итоге его реализация оказалась всего в &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt; раза медленнее grep. Но это не предел, у него получилось реализовать  параллельный конечный автомат&amp;lt;ref&amp;gt;[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-State Machines]&amp;lt;/ref&amp;gt; и сделать свою реализацию в &amp;lt;tex&amp;gt;1.5&amp;lt;/tex&amp;gt; раза быстрее, чем grep.&lt;br /&gt;
&lt;br /&gt;
== ReDoS (regular expression denial of service) ==&lt;br /&gt;
Интересно, что злоумышленники научились атаковать системы используя то, что некоторые алгоритмы имеют экспоненциальную сложность. В регулярных выражениях использующих обратную связь есть несколько вариантов:&lt;br /&gt;
* использовать повторение &amp;lt;tex&amp;gt;(``+&amp;quot;,``*&amp;quot;)&amp;lt;/tex&amp;gt; для достаточно сложных подвыражений;&lt;br /&gt;
* сделать так, чтобы повторяющиеся подвыражения были суффиксами валидного совпадения.&lt;br /&gt;
Примеры вредоносных регулярных выражений:&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a+)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;([a-zA-Z]+)*&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|aa)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|a?)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(.*a)\{11,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Все эти выражения чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Также вредоносные регулярные выражения были обнаружены в онлайн репозиториях.&lt;br /&gt;
# RegExLib, email validation &amp;lt;ref&amp;gt;[http://regexlib.com/REDetails.aspx?regexp_id=1757 RegEx for email validation]&amp;lt;/ref&amp;gt; {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^([a-zA-Z0-9])'''(([\-.]|[_]+)?([a-zA-Z0-9]+))*'''(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$&amp;lt;/code&amp;gt;&lt;br /&gt;
# OWASP Validation Regex Repository  &amp;lt;ref&amp;gt;[http://www.owasp.org/index.php/OWASP_Validation_Regex_Repository OWASP Validation Regex Repository]&amp;lt;/ref&amp;gt;, Java Classname {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^'''(([a-z])+.)+'''[A-Z]([a-z])+$&amp;lt;/code&amp;gt;&lt;br /&gt;
Эти два примера также чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[ Регулярные языки: два определения и их эквивалентность ]]&lt;br /&gt;
* [[ Недетерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Детерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Построение по НКА эквивалентного ДКА, алгоритм Томпсона ]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [https://swtch.com/~rsc/regexp/regexp1.html  Regular Expression Matching Can Be Simple And Fast]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/ReDoS ReDos]&lt;br /&gt;
* [https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-state Machines]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Автоматы и регулярные языки]]&lt;br /&gt;
[[Категория: Контекстно-свободные грамматики]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64389</id>
		<title>Автоматы в современном мире</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64389"/>
				<updated>2018-03-15T07:27:47Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Построение НКА */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Реализация регулярных выражений в современных языках ==&lt;br /&gt;
В настоящее время используется несколько различных подходов к реализации регулярных выражений. Всегда можно довольно просто построить НКА. Но после построения есть несколько вариантов:&lt;br /&gt;
# Можно конвертировать его в детерминированный конечный автомат.&lt;br /&gt;
# Можно идти по каждому из возможных путей, а в случае неудачи возвращаться назад и пробовать другой.&lt;br /&gt;
# Можно идти по автомату одновременно по всем возможным состояниям.&lt;br /&gt;
# Можно конвертировать НКА в ДКА лениво (на лету).&lt;br /&gt;
Следующее изображение наглядно показывает, что можно выделить более менее два основных подхода к реализации, давайте же разберемся почему так получилось.&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
|[[Файл:RegExp.png|779px|thumb|regular expression and text size n &amp;lt;tex&amp;gt;a?^na^n&amp;lt;/tex&amp;gt; matching &amp;lt;tex&amp;gt;a^n&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
|}&lt;br /&gt;
Это произошло из-за того, что обычного функционала регулярных выражений зачастую недостаточно, не хватает выразительной мощности. В языках PCRE, Ruby, Python, Perl добавили поддержку обратных ссылок (англ. ''back reference''). Она позволяет связывать ранее найденное сгруппированное выражение в скобках с числом от &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;. Например: &amp;lt;tex&amp;gt;\mathtt{(cat|dog)\backslash1}&amp;lt;/tex&amp;gt; найдет &amp;lt;tex&amp;gt;\mathtt{catcat}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogdog}&amp;lt;/tex&amp;gt;, но никак не &amp;lt;tex&amp;gt;\mathtt{catdog}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogcat}&amp;lt;/tex&amp;gt;. Интересно, что с добавлением обратных ссылок регулярные выражения перестаю относиться к классу регулярных языков. К сожалению, лучшая реализация требует экспоненциального времени работы. Приведенная на графике синяя кривая является реализацией построения НКА по регулярному выражению написанная на C, занимающая чуть меньше, чем &amp;lt;tex&amp;gt;400&amp;lt;/tex&amp;gt; строк и описанная в  данной статье&amp;lt;ref&amp;gt;[https://swtch.com/~rsc/regexp/regexp1.html Article: Regular Expression Matching Can Be Simple And Fast]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
=== Построение НКА ===&lt;br /&gt;
Для построения автомата нам нужно построить отдельно части НКА для каждой части выражения, финальным шагом будет соединение всего автомата вместе. Представим НКА как связанный список структур состояний &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''struct''' state:&lt;br /&gt;
     '''int''' c&lt;br /&gt;
     '''state''' out&lt;br /&gt;
     '''state''' out1&lt;br /&gt;
     '''int''' lastlist&lt;br /&gt;
Каждый &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt; представляет один из фрагментов НКА, зависящий от символа &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Данная реализация будет поддерживать постфиксную нотацию регулярного выражения. Допустим у нас есть функция &amp;lt;tex&amp;gt;\mathrm{re2post}&amp;lt;/tex&amp;gt;, которая переписывает инфиксную форму регулярного выражения &amp;lt;tex&amp;gt;``a(bb)+a&amp;quot;&amp;lt;/tex&amp;gt; в эквивалентную постфиксную вида &amp;lt;tex&amp;gt;``abb.+.a.&amp;quot;&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;.&amp;lt;/tex&amp;gt; используется в качестве разделителя). По мере сканирования постфиксного выражения, будем поддерживать стек вычисленных НКА фрагментов. Символы добавляют новый НКА фрагмент в стек, а операторы вынимают фрагменты и добавляют новые. Каждый фрагмент определяется стартовым состояние и исходящей стрелкой:&lt;br /&gt;
 '''struct''' frag:&lt;br /&gt;
     '''state''' start&lt;br /&gt;
     '''ptrList''' out&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{start}&amp;lt;/tex&amp;gt; указывает на стартовое состояние фрагмента, а &amp;lt;tex&amp;gt;\mathrm{out}&amp;lt;/tex&amp;gt; {{---}} лист указателей на &amp;lt;tex&amp;gt;\mathrm{state*}&amp;lt;/tex&amp;gt; указатели, которые ещё не соединены. &lt;br /&gt;
Некоторые полезные функции для управления списком указателей:&lt;br /&gt;
 '''fun''' list1('''state''' outp): '''ptrList'''&lt;br /&gt;
 '''fun''' append('''ptrList''' l1, '''ptrList''' l2): '''ptrList'''&lt;br /&gt;
 '''fun''' patch('''ptrList''' l, '''state''' s)&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{list1}&amp;lt;/tex&amp;gt; создает новый список указателей состоящий из одного указателя &amp;lt;tex&amp;gt;\mathrm{outp}&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;\mathrm{append}&amp;lt;/tex&amp;gt; конкатенирует два списка указателей, возвращая результат. &amp;lt;tex&amp;gt;\mathrm{patch}&amp;lt;/tex&amp;gt; связывает повисшую стрелку в списке &amp;lt;tex&amp;gt;\mathrm{l}&amp;lt;/tex&amp;gt; с состоянием &amp;lt;tex&amp;gt;\mathrm{s}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Используя данные примитивы и стек фрагментов можно реализовать построение НКА.&lt;br /&gt;
 '''fun''' post2nfa('''string''' postfix): '''state'''&lt;br /&gt;
     '''frag''' stack[1000], e1, e2, e&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''for''' i = 0 '''to''' postfix.length - 1&lt;br /&gt;
         '''switch'''(postfix[i])&lt;br /&gt;
             '''case''' '.': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// конкатенация&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 patch(e1.out, e2.start)&lt;br /&gt;
                 push(frag(e1.start, e2.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '|': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// альтернатива&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 s = state(Split, e1.start, e2.start)&lt;br /&gt;
                 push(frag(s, append(e1.out, e2.out)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '?': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или один&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 push(frag(s, append(e.out, list1(s.out1))))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '*': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 push(frag(s, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '+': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// один или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 stack.push(frag(e.start, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''defaul'''t: &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// символ&amp;lt;/span&amp;gt;&lt;br /&gt;
                 s = state(postfix[i], NULL, NULL)&lt;br /&gt;
                 push(frag(s, list1(s.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
     e = stack.pop()&lt;br /&gt;
     patch(e.out, matchState)&lt;br /&gt;
     '''return''' e.start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь когда мы построили НКА, нужно научиться ходить по нему. Будем сохранять посещенные состояния в массиве.&lt;br /&gt;
 '''struct''' List:&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''int''' n&lt;br /&gt;
&lt;br /&gt;
Обход будет использовать два списка: &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; набор состояний, в которых уже находится, и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt; набор состояний в которых НКА будет после обработки текущего символа. Цикл исполнения инициализирует &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; стартовым состоянием и пошагово проходит.&lt;br /&gt;
 '''fun''' match('''state''' start, '''string''' s): '''int'''&lt;br /&gt;
     '''List''' cList, nList, t&lt;br /&gt;
     '''cList''' = startList(start, l1)&lt;br /&gt;
     '''nList''' = l2&lt;br /&gt;
     '''for''' i = 0 '''to''' s.length - 1&lt;br /&gt;
         step(cList, s[i], nList)&lt;br /&gt;
         t = cList&lt;br /&gt;
         cList = nList&lt;br /&gt;
         nList = t&lt;br /&gt;
     '''return''' isMatch(cList)&lt;br /&gt;
Чтобы избежать преаллокаций на каждой итерации цикла, &amp;lt;tex&amp;gt;\mathrm{match}&amp;lt;/tex&amp;gt; использует два преаллоцированных списка &amp;lt;tex&amp;gt;\mathrm{l1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{l2}&amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;, и меняет их на каждом шаге. &lt;br /&gt;
&lt;br /&gt;
Если список последних вершин содержит терминальную вершину, то строка распознана.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' isMatch('''List''' l): '''int'''&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''for''' i = 0 '''to''' l.n - 1&lt;br /&gt;
         '''if''' (l.s[i] == matchState)&lt;br /&gt;
         '''return''' 1&lt;br /&gt;
     '''return''' 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{addState}&amp;lt;/tex&amp;gt; добавляет состояние в список, но только если их ещё не было в нем.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' addState('''List''' l, '''state''' s):&lt;br /&gt;
     '''if''' (s == NULL || s.lastlist == listid)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     s.lastlist = listid&lt;br /&gt;
     '''if'''(s.c == split)&lt;br /&gt;
         addState(l, s.out)&lt;br /&gt;
         addState(l, s.out1)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     l.s[l.n++] = s&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{startList}&amp;lt;/tex&amp;gt; создает начальный список состояний и добавляет туда стартовое состояние.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' startList('''state''' s, '''List''' l): '''List'''&lt;br /&gt;
     listid++&lt;br /&gt;
     l.n = 0&lt;br /&gt;
     addState(l, s)&lt;br /&gt;
     '''return''' l&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{step}&amp;lt;/tex&amp;gt; вычисляет по символу, использую список текущих состояний &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; следующий список &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' step('''List''' client, '''int''' c, '''List''' nList)&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     listid++&lt;br /&gt;
     nList.n = 0&lt;br /&gt;
     '''for''' i = 0 '''to''' cList.n - 1&lt;br /&gt;
         s = cList.s[i]&lt;br /&gt;
         '''if''' (s.c == c)&lt;br /&gt;
             addState(nList, s.out)&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные возможности регулярных выражений ===&lt;br /&gt;
&lt;br /&gt;
==== Символьные классы ==== &lt;br /&gt;
Набор символов в квадратных скобках &amp;lt;tex&amp;gt;[ ]&amp;lt;/tex&amp;gt; именуется символьным классом и позволяет указать интерпретатору регулярных выражений, что на данном месте в строке может стоять один из перечисленных символов. Можно указывать диапазоны &amp;lt;tex&amp;gt;\mathrm{[0-9]}, \mathrm{[a-z]}&amp;lt;/tex&amp;gt;, а также существуют дополнительные символьные классы &amp;lt;tex&amp;gt;\mathtt{[[:upper:]]}, \mathtt{[[:word:]]}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==== Квантификация. ====&lt;br /&gt;
Позволяет установить точное соответствие повторов равное числу &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;{n};&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;{n,m}&amp;lt;/tex&amp;gt; {{---}} не меньше чем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, и не больше чем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;{n,}&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и больше. Можно найти эквиваленты символам &amp;lt;tex&amp;gt;*, +, ?&amp;lt;/tex&amp;gt;.  С помощью символов &amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{0,1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{1,}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Позиция внутри строки ====&lt;br /&gt;
Следующие символы позволяют с позиционировать регулярное выражение относительно элементов текста: начала и конца строки, границ слова.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Представление&lt;br /&gt;
! Позиция&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt; \wedge &amp;lt;/tex&amp;gt;&lt;br /&gt;
| Начало текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;$&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Конец текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash b&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Граница слова&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash G&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Предыдущий успешный поиск&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Жадная и ленивая квантификация ====&lt;br /&gt;
В некоторых реализациях квантификаторам в регулярных выражениях соответствует максимально длинная строка из возможных (квантификаторы являются жадными, англ. ''greedy''). Это может оказаться значительной проблемой. Например, часто ожидают, что выражение &amp;lt;tex&amp;gt;(&amp;lt;.*&amp;gt;)&amp;lt;/tex&amp;gt; найдёт в тексте теги HTML. Однако если в тексте есть более одного HTML-тега, то этому выражению соответствует целиком строка, содержащая множество тегов.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ленивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;+?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Эту проблему можно решить двумя способами.&lt;br /&gt;
&lt;br /&gt;
Учитывать символы, не соответствующие желаемому образцу ( &amp;lt;tex&amp;gt;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;lt;/tex&amp;gt; для вышеописанного случая).&lt;br /&gt;
Определить квантификатор как нежадный (ленивый, англ. ''lazy'') {{---}} большинство реализаций позволяют это сделать, добавив после него знак вопроса.&lt;br /&gt;
&lt;br /&gt;
==== Ревнивая квантификация (Сверхжадная) ====&lt;br /&gt;
В отличие от обычной (жадной) квантификации, ревнивая (англ. ''possessive'') квантификация не только старается найти максимально длинный вариант, но ещё и не позволяет алгоритму возвращаться к предыдущим шагам поиска для того, чтобы найти возможные соответствия для оставшейся части регулярного выражения.&lt;br /&gt;
&lt;br /&gt;
Использование квантификаторов увеличивает скорость поиска, особенно в тех случаях, когда строка не соответствует регулярному выражению. Кроме того, ревнивые квантификаторы могут быть использованы для исключения нежелательных совпадений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ревнивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;?+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;++&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Несколько полезных оптимизаций на примере Haskell ==&lt;br /&gt;
&lt;br /&gt;
Gabriel Gonzalez &amp;lt;ref&amp;gt;[https://begriffs.com/posts/2016-06-27-fast-haskell-regexes.html Gabriel Gonzalez {{---}} Regex in Haskell]&amp;lt;/ref&amp;gt; реализовал алгоритм Томпсона на языке Haskell. В первоначальном варианте это алгоритм получился в 480 раз медленнее, чем grep на том же тесте, чтобы улучшить результат он предпринял ряд оптимизаций:&lt;br /&gt;
* вместо Set Int использовал Integer, а также использовал битовые операции, в результате производительность выросла в 5 раз&lt;br /&gt;
* использовал Word вместо Integer, ещё в 8 раз быстрее&lt;br /&gt;
* а также использовал ByteString оптимизации, что увеличило производительность ещё 3 раза.&lt;br /&gt;
В итоге его реализация оказалась всего в 4 раза медленнее grep. Но это не предел, у него получилось реализовать  параллельный конечный автомат&amp;lt;ref&amp;gt;[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-State Machines]&amp;lt;/ref&amp;gt; и сделать свою реализацию в 1.5 раза быстрее, чем grep.&lt;br /&gt;
&lt;br /&gt;
== ReDoS (regular expression denial of service) ==&lt;br /&gt;
Интересно, что злоумышленники научились атаковать системы используя то, что некоторые алгоритмы имеют экспоненциальную сложность. В регулярных выражениях использующих обратную связь есть несколько вариантов:&lt;br /&gt;
* использовать повторение &amp;lt;tex&amp;gt;(``+&amp;quot;,``*&amp;quot;)&amp;lt;/tex&amp;gt; для достаточно сложных подвыражений;&lt;br /&gt;
* сделать так, чтобы повторяющиеся подвыражения были суффиксами валидного совпадения.&lt;br /&gt;
Примеры вредоносных регулярных выражений:&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a+)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;([a-zA-Z]+)*&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|aa)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|a?)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(.*a)\{11,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Все эти выражения чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Также вредоносные регулярные выражения были обнаружены в онлайн репозиториях.&lt;br /&gt;
# RegExLib, email validation &amp;lt;ref&amp;gt;[http://regexlib.com/REDetails.aspx?regexp_id=1757 RegEx for email validation]&amp;lt;/ref&amp;gt; {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^([a-zA-Z0-9])'''(([\-.]|[_]+)?([a-zA-Z0-9]+))*'''(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$&amp;lt;/code&amp;gt;&lt;br /&gt;
# OWASP Validation Regex Repository  &amp;lt;ref&amp;gt;[http://www.owasp.org/index.php/OWASP_Validation_Regex_Repository OWASP Validation Regex Repository]&amp;lt;/ref&amp;gt;, Java Classname {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^'''(([a-z])+.)+'''[A-Z]([a-z])+$&amp;lt;/code&amp;gt;&lt;br /&gt;
Эти два примера также чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[ Регулярные языки: два определения и их эквивалентность ]]&lt;br /&gt;
* [[ Недетерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Детерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Построение по НКА эквивалентного ДКА, алгоритм Томпсона ]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [https://swtch.com/~rsc/regexp/regexp1.html  Regular Expression Matching Can Be Simple And Fast]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/ReDoS ReDos]&lt;br /&gt;
* [https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-state Machines]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Автоматы и регулярные языки]]&lt;br /&gt;
[[Категория: Контекстно-свободные грамматики]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64388</id>
		<title>Автоматы в современном мире</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D1%8B_%D0%B2_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC_%D0%BC%D0%B8%D1%80%D0%B5&amp;diff=64388"/>
				<updated>2018-03-15T07:27:03Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Построение НКА */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Реализация регулярных выражений в современных языках ==&lt;br /&gt;
В настоящее время используется несколько различных подходов к реализации регулярных выражений. Всегда можно довольно просто построить НКА. Но после построения есть несколько вариантов:&lt;br /&gt;
# Можно конвертировать его в детерминированный конечный автомат.&lt;br /&gt;
# Можно идти по каждому из возможных путей, а в случае неудачи возвращаться назад и пробовать другой.&lt;br /&gt;
# Можно идти по автомату одновременно по всем возможным состояниям.&lt;br /&gt;
# Можно конвертировать НКА в ДКА лениво (на лету).&lt;br /&gt;
Следующее изображение наглядно показывает, что можно выделить более менее два основных подхода к реализации, давайте же разберемся почему так получилось.&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
|[[Файл:RegExp.png|779px|thumb|regular expression and text size n &amp;lt;tex&amp;gt;a?^na^n&amp;lt;/tex&amp;gt; matching &amp;lt;tex&amp;gt;a^n&amp;lt;/tex&amp;gt;]]&lt;br /&gt;
|}&lt;br /&gt;
Это произошло из-за того, что обычного функционала регулярных выражений зачастую недостаточно, не хватает выразительной мощности. В языках PCRE, Ruby, Python, Perl добавили поддержку обратных ссылок (англ. ''back reference''). Она позволяет связывать ранее найденное сгруппированное выражение в скобках с числом от &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;9&amp;lt;/tex&amp;gt;. Например: &amp;lt;tex&amp;gt;\mathtt{(cat|dog)\backslash1}&amp;lt;/tex&amp;gt; найдет &amp;lt;tex&amp;gt;\mathtt{catcat}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogdog}&amp;lt;/tex&amp;gt;, но никак не &amp;lt;tex&amp;gt;\mathtt{catdog}&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;\mathtt{dogcat}&amp;lt;/tex&amp;gt;. Интересно, что с добавлением обратных ссылок регулярные выражения перестаю относиться к классу регулярных языков. К сожалению, лучшая реализация требует экспоненциального времени работы. Приведенная на графике синяя кривая является реализацией построения НКА по регулярному выражению написанная на C, занимающая чуть меньше, чем &amp;lt;tex&amp;gt;400&amp;lt;/tex&amp;gt; строк и описанная в  данной статье&amp;lt;ref&amp;gt;[https://swtch.com/~rsc/regexp/regexp1.html Article: Regular Expression Matching Can Be Simple And Fast]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
=== Построение НКА ===&lt;br /&gt;
Для построения автомата нам нужно построить отдельно части НКА для каждой части выражения, финальным шагом будет соединение всего автомата вместе. Представим НКА как связанный список структур состояний &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''struct''' state:&lt;br /&gt;
     '''int''' c&lt;br /&gt;
     '''state''' out&lt;br /&gt;
     '''state''' out1&lt;br /&gt;
     '''int''' lastlist&lt;br /&gt;
Каждый &amp;lt;tex&amp;gt;\mathrm{state}&amp;lt;/tex&amp;gt; представляет один из фрагментов НКА, зависящий от символа &amp;lt;tex&amp;gt;c&amp;lt;\tex&amp;gt;.&lt;br /&gt;
Данная реализация будет поддерживать постфиксную нотацию регулярного выражения. Допустим у нас есть функция &amp;lt;tex&amp;gt;\mathrm{re2post}&amp;lt;/tex&amp;gt;, которая переписывает инфиксную форму регулярного выражения &amp;lt;tex&amp;gt;``a(bb)+a&amp;quot;&amp;lt;/tex&amp;gt; в эквивалентную постфиксную вида &amp;lt;tex&amp;gt;``abb.+.a.&amp;quot;&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;.&amp;lt;/tex&amp;gt; используется в качестве разделителя). По мере сканирования постфиксного выражения, будем поддерживать стек вычисленных НКА фрагментов. Символы добавляют новый НКА фрагмент в стек, а операторы вынимают фрагменты и добавляют новые. Каждый фрагмент определяется стартовым состояние и исходящей стрелкой:&lt;br /&gt;
 '''struct''' frag:&lt;br /&gt;
     '''state''' start&lt;br /&gt;
     '''ptrList''' out&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{start}&amp;lt;/tex&amp;gt; указывает на стартовое состояние фрагмента, а &amp;lt;tex&amp;gt;\mathrm{out}&amp;lt;/tex&amp;gt; {{---}} лист указателей на &amp;lt;tex&amp;gt;\mathrm{state*}&amp;lt;/tex&amp;gt; указатели, которые ещё не соединены. &lt;br /&gt;
Некоторые полезные функции для управления списком указателей:&lt;br /&gt;
 '''fun''' list1('''state''' outp): '''ptrList'''&lt;br /&gt;
 '''fun''' append('''ptrList''' l1, '''ptrList''' l2): '''ptrList'''&lt;br /&gt;
 '''fun''' patch('''ptrList''' l, '''state''' s)&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{list1}&amp;lt;/tex&amp;gt; создает новый список указателей состоящий из одного указателя &amp;lt;tex&amp;gt;\mathrm{outp}&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;\mathrm{append}&amp;lt;/tex&amp;gt; конкатенирует два списка указателей, возвращая результат. &amp;lt;tex&amp;gt;\mathrm{patch}&amp;lt;/tex&amp;gt; связывает повисшую стрелку в списке &amp;lt;tex&amp;gt;\mathrm{l}&amp;lt;/tex&amp;gt; с состоянием &amp;lt;tex&amp;gt;\mathrm{s}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Используя данные примитивы и стек фрагментов можно реализовать построение НКА.&lt;br /&gt;
 '''fun''' post2nfa('''string''' postfix): '''state'''&lt;br /&gt;
     '''frag''' stack[1000], e1, e2, e&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''for''' i = 0 '''to''' postfix.length - 1&lt;br /&gt;
         '''switch'''(postfix[i])&lt;br /&gt;
             '''case''' '.': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// конкатенация&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 patch(e1.out, e2.start)&lt;br /&gt;
                 push(frag(e1.start, e2.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '|': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// альтернатива&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e2 = stack.pop()&lt;br /&gt;
                 e1 = stack.pop()&lt;br /&gt;
                 s = state(Split, e1.start, e2.start)&lt;br /&gt;
                 push(frag(s, append(e1.out, e2.out)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '?': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или один&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 push(frag(s, append(e.out, list1(s.out1))))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '*': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// ноль или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 push(frag(s, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''case''' '+': &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// один или больше&amp;lt;/span&amp;gt;&lt;br /&gt;
                 e = stack.pop()&lt;br /&gt;
                 s = state(Split, e.start, NULL)&lt;br /&gt;
                 patch(e.out, s)&lt;br /&gt;
                 stack.push(frag(e.start, list1(s.out1)))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
             '''defaul'''t: &amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;// символ&amp;lt;/span&amp;gt;&lt;br /&gt;
                 s = state(postfix[i], NULL, NULL)&lt;br /&gt;
                 push(frag(s, list1(s.out))&lt;br /&gt;
                 '''break'''&lt;br /&gt;
     e = stack.pop()&lt;br /&gt;
     patch(e.out, matchState)&lt;br /&gt;
     '''return''' e.start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь когда мы построили НКА, нужно научиться ходить по нему. Будем сохранять посещенные состояния в массиве.&lt;br /&gt;
 '''struct''' List:&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     '''int''' n&lt;br /&gt;
&lt;br /&gt;
Обход будет использовать два списка: &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; набор состояний, в которых уже находится, и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt; набор состояний в которых НКА будет после обработки текущего символа. Цикл исполнения инициализирует &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; стартовым состоянием и пошагово проходит.&lt;br /&gt;
 '''fun''' match('''state''' start, '''string''' s): '''int'''&lt;br /&gt;
     '''List''' cList, nList, t&lt;br /&gt;
     '''cList''' = startList(start, l1)&lt;br /&gt;
     '''nList''' = l2&lt;br /&gt;
     '''for''' i = 0 '''to''' s.length - 1&lt;br /&gt;
         step(cList, s[i], nList)&lt;br /&gt;
         t = cList&lt;br /&gt;
         cList = nList&lt;br /&gt;
         nList = t&lt;br /&gt;
     '''return''' isMatch(cList)&lt;br /&gt;
Чтобы избежать преаллокаций на каждой итерации цикла, &amp;lt;tex&amp;gt;\mathrm{match}&amp;lt;/tex&amp;gt; использует два преаллоцированных списка &amp;lt;tex&amp;gt;\mathrm{l1}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{l2}&amp;lt;/tex&amp;gt; как &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;, и меняет их на каждом шаге. &lt;br /&gt;
&lt;br /&gt;
Если список последних вершин содержит терминальную вершину, то строка распознана.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' isMatch('''List''' l): '''int'''&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''for''' i = 0 '''to''' l.n - 1&lt;br /&gt;
         '''if''' (l.s[i] == matchState)&lt;br /&gt;
         '''return''' 1&lt;br /&gt;
     '''return''' 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{addState}&amp;lt;/tex&amp;gt; добавляет состояние в список, но только если их ещё не было в нем.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' addState('''List''' l, '''state''' s):&lt;br /&gt;
     '''if''' (s == NULL || s.lastlist == listid)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     s.lastlist = listid&lt;br /&gt;
     '''if'''(s.c == split)&lt;br /&gt;
         addState(l, s.out)&lt;br /&gt;
         addState(l, s.out1)&lt;br /&gt;
         '''return'''&lt;br /&gt;
     l.s[l.n++] = s&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{startList}&amp;lt;/tex&amp;gt; создает начальный список состояний и добавляет туда стартовое состояние.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' startList('''state''' s, '''List''' l): '''List'''&lt;br /&gt;
     listid++&lt;br /&gt;
     l.n = 0&lt;br /&gt;
     addState(l, s)&lt;br /&gt;
     '''return''' l&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{step}&amp;lt;/tex&amp;gt; вычисляет по символу, использую список текущих состояний &amp;lt;tex&amp;gt;\mathrm{cList}&amp;lt;/tex&amp;gt; следующий список &amp;lt;tex&amp;gt;\mathrm{nList}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 '''fun''' step('''List''' client, '''int''' c, '''List''' nList)&lt;br /&gt;
     '''int''' i&lt;br /&gt;
     '''state''' s&lt;br /&gt;
     listid++&lt;br /&gt;
     nList.n = 0&lt;br /&gt;
     '''for''' i = 0 '''to''' cList.n - 1&lt;br /&gt;
         s = cList.s[i]&lt;br /&gt;
         '''if''' (s.c == c)&lt;br /&gt;
             addState(nList, s.out)&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные возможности регулярных выражений ===&lt;br /&gt;
&lt;br /&gt;
==== Символьные классы ==== &lt;br /&gt;
Набор символов в квадратных скобках &amp;lt;tex&amp;gt;[ ]&amp;lt;/tex&amp;gt; именуется символьным классом и позволяет указать интерпретатору регулярных выражений, что на данном месте в строке может стоять один из перечисленных символов. Можно указывать диапазоны &amp;lt;tex&amp;gt;\mathrm{[0-9]}, \mathrm{[a-z]}&amp;lt;/tex&amp;gt;, а также существуют дополнительные символьные классы &amp;lt;tex&amp;gt;\mathtt{[[:upper:]]}, \mathtt{[[:word:]]}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==== Квантификация. ====&lt;br /&gt;
Позволяет установить точное соответствие повторов равное числу &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;{n};&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;{n,m}&amp;lt;/tex&amp;gt; {{---}} не меньше чем &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, и не больше чем &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;{n,}&amp;lt;/tex&amp;gt; {{---}} &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и больше. Можно найти эквиваленты символам &amp;lt;tex&amp;gt;*, +, ?&amp;lt;/tex&amp;gt;.  С помощью символов &amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{0,1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;{1,}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;\{ \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Позиция внутри строки ====&lt;br /&gt;
Следующие символы позволяют с позиционировать регулярное выражение относительно элементов текста: начала и конца строки, границ слова.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Представление&lt;br /&gt;
! Позиция&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt; \wedge &amp;lt;/tex&amp;gt;&lt;br /&gt;
| Начало текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;$&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Конец текста&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash b&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Граница слова&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\backslash G&amp;lt;/tex&amp;gt;&lt;br /&gt;
| Предыдущий успешный поиск&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Жадная и ленивая квантификация ====&lt;br /&gt;
В некоторых реализациях квантификаторам в регулярных выражениях соответствует максимально длинная строка из возможных (квантификаторы являются жадными, англ. ''greedy''). Это может оказаться значительной проблемой. Например, часто ожидают, что выражение &amp;lt;tex&amp;gt;(&amp;lt;.*&amp;gt;)&amp;lt;/tex&amp;gt; найдёт в тексте теги HTML. Однако если в тексте есть более одного HTML-тега, то этому выражению соответствует целиком строка, содержащая множество тегов.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ленивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;+?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}?&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Эту проблему можно решить двумя способами.&lt;br /&gt;
&lt;br /&gt;
Учитывать символы, не соответствующие желаемому образцу ( &amp;lt;tex&amp;gt;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;lt;/tex&amp;gt; для вышеописанного случая).&lt;br /&gt;
Определить квантификатор как нежадный (ленивый, англ. ''lazy'') {{---}} большинство реализаций позволяют это сделать, добавив после него знак вопроса.&lt;br /&gt;
&lt;br /&gt;
==== Ревнивая квантификация (Сверхжадная) ====&lt;br /&gt;
В отличие от обычной (жадной) квантификации, ревнивая (англ. ''possessive'') квантификация не только старается найти максимально длинный вариант, но ещё и не позволяет алгоритму возвращаться к предыдущим шагам поиска для того, чтобы найти возможные соответствия для оставшейся части регулярного выражения.&lt;br /&gt;
&lt;br /&gt;
Использование квантификаторов увеличивает скорость поиска, особенно в тех случаях, когда строка не соответствует регулярному выражению. Кроме того, ревнивые квантификаторы могут быть использованы для исключения нежелательных совпадений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Жадный&lt;br /&gt;
! Ревнивый&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;*&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;*+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;?&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;?+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;+&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;++&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
| &amp;lt;tex&amp;gt;\{n,\}+&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Несколько полезных оптимизаций на примере Haskell ==&lt;br /&gt;
&lt;br /&gt;
Gabriel Gonzalez &amp;lt;ref&amp;gt;[https://begriffs.com/posts/2016-06-27-fast-haskell-regexes.html Gabriel Gonzalez {{---}} Regex in Haskell]&amp;lt;/ref&amp;gt; реализовал алгоритм Томпсона на языке Haskell. В первоначальном варианте это алгоритм получился в 480 раз медленнее, чем grep на том же тесте, чтобы улучшить результат он предпринял ряд оптимизаций:&lt;br /&gt;
* вместо Set Int использовал Integer, а также использовал битовые операции, в результате производительность выросла в 5 раз&lt;br /&gt;
* использовал Word вместо Integer, ещё в 8 раз быстрее&lt;br /&gt;
* а также использовал ByteString оптимизации, что увеличило производительность ещё 3 раза.&lt;br /&gt;
В итоге его реализация оказалась всего в 4 раза медленнее grep. Но это не предел, у него получилось реализовать  параллельный конечный автомат&amp;lt;ref&amp;gt;[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-State Machines]&amp;lt;/ref&amp;gt; и сделать свою реализацию в 1.5 раза быстрее, чем grep.&lt;br /&gt;
&lt;br /&gt;
== ReDoS (regular expression denial of service) ==&lt;br /&gt;
Интересно, что злоумышленники научились атаковать системы используя то, что некоторые алгоритмы имеют экспоненциальную сложность. В регулярных выражениях использующих обратную связь есть несколько вариантов:&lt;br /&gt;
* использовать повторение &amp;lt;tex&amp;gt;(``+&amp;quot;,``*&amp;quot;)&amp;lt;/tex&amp;gt; для достаточно сложных подвыражений;&lt;br /&gt;
* сделать так, чтобы повторяющиеся подвыражения были суффиксами валидного совпадения.&lt;br /&gt;
Примеры вредоносных регулярных выражений:&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a+)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;([a-zA-Z]+)*&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|aa)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(a|a?)+&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;(.*a)\{11,\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
Все эти выражения чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Также вредоносные регулярные выражения были обнаружены в онлайн репозиториях.&lt;br /&gt;
# RegExLib, email validation &amp;lt;ref&amp;gt;[http://regexlib.com/REDetails.aspx?regexp_id=1757 RegEx for email validation]&amp;lt;/ref&amp;gt; {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^([a-zA-Z0-9])'''(([\-.]|[_]+)?([a-zA-Z0-9]+))*'''(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$&amp;lt;/code&amp;gt;&lt;br /&gt;
# OWASP Validation Regex Repository  &amp;lt;ref&amp;gt;[http://www.owasp.org/index.php/OWASP_Validation_Regex_Repository OWASP Validation Regex Repository]&amp;lt;/ref&amp;gt;, Java Classname {{---}} '''выделенная''' часть является вредоносной&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;^'''(([a-z])+.)+'''[A-Z]([a-z])+$&amp;lt;/code&amp;gt;&lt;br /&gt;
Эти два примера также чувствительны к входной строке &amp;lt;tex&amp;gt;aaaaaaaaaaaaaaaaaaaaaaaa&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[ Регулярные языки: два определения и их эквивалентность ]]&lt;br /&gt;
* [[ Недетерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Детерминированные конечные автоматы ]]&lt;br /&gt;
* [[ Построение по НКА эквивалентного ДКА, алгоритм Томпсона ]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [https://swtch.com/~rsc/regexp/regexp1.html  Regular Expression Matching Can Be Simple And Fast]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/ReDoS ReDos]&lt;br /&gt;
* [https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/asplos302-mytkowicz.pdf Data-Parallel Finite-state Machines]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Автоматы и регулярные языки]]&lt;br /&gt;
[[Категория: Контекстно-свободные грамматики]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%22%D0%92%D0%BF%D0%B5%D1%80%D0%B5%D0%B4-%D0%9D%D0%B0%D0%B7%D0%B0%D0%B4%22&amp;diff=64387</id>
		<title>Алгоритм &quot;Вперед-Назад&quot;</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%22%D0%92%D0%BF%D0%B5%D1%80%D0%B5%D0%B4-%D0%9D%D0%B0%D0%B7%D0%B0%D0%B4%22&amp;diff=64387"/>
				<updated>2018-03-15T07:18:59Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Псевдокод */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Алгоритм &amp;quot;Вперед-Назад&amp;quot;''' (англ. ''forward–backward algorithm'') {{---}} алгоритм, позволяющий найти в [[Скрытые Марковские модели|скрытой Марковской модели]] вероятность попадания в состояние &amp;lt;tex&amp;gt;s_i&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;-ом шаге при последовательности наблюдений &amp;lt;tex&amp;gt;O&amp;lt;/tex&amp;gt; и (скрытой) последовательности состояний &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Вычисление ==&lt;br /&gt;
Пусть дана скрытая Марковская модель &amp;lt;tex&amp;gt;\lambda = \{S, \Omega, \Pi, A, B\}&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;S = \{s_1,\ldots, s_n\}&amp;lt;/tex&amp;gt; {{---}} состояния, &amp;lt;tex&amp;gt;\Omega = \{\omega_1,\ldots, \omega_m\}&amp;lt;/tex&amp;gt; {{---}} возможные события, &amp;lt;tex&amp;gt;\Pi = \{\pi_1,\ldots, \pi_n\}&amp;lt;/tex&amp;gt; {{---}} начальные вероятности, &amp;lt;tex&amp;gt;A = \{a_{ij}\}&amp;lt;/tex&amp;gt; {{---}} матрица переходов, а &amp;lt;tex&amp;gt;B = \{b_{i\omega_k}\}&amp;lt;/tex&amp;gt; {{---}} вероятность наблюдения события &amp;lt;tex&amp;gt;\omega_k&amp;lt;/tex&amp;gt; после перехода в состояние &amp;lt;tex&amp;gt;s_i&amp;lt;/tex&amp;gt;.&lt;br /&gt;
За &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; шагов в этой модели получилась последовательность наблюдений &amp;lt;tex&amp;gt;O_{1,T} = {o_1,\ldots, o_T}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть в момент &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; мы оказались в состоянии &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;: &amp;lt;tex&amp;gt;X_t = i&amp;lt;/tex&amp;gt;. Назовем &amp;lt;tex&amp;gt;\alpha_{i}(t)&amp;lt;/tex&amp;gt; вероятность того, что при этом во время переходов образовалась последовательность наблюдений &amp;lt;tex&amp;gt;O_{1,t-1}&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;\beta_{i}(t)&amp;lt;/tex&amp;gt; {{---}} вероятность того, что после этого состояния мы будем наблюдать последовательность наблюдений &amp;lt;tex&amp;gt;O_{t,T}&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\alpha_{i}(t) \overset{def}{=} P(O_{1, t-1} \mid X_t = i) \\&lt;br /&gt;
\beta_i(t) \overset{def}{=} P(O_{t,T} \mid X_t = i)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нам требуется найти &amp;lt;tex&amp;gt;P(X_t = i \mid O) = P(X_t = i \mid O_{1,t-1} \cap O_{t,T})&amp;lt;/tex&amp;gt;. Поскольку будущее Марковской цепи не зависит от прошлого, мы можем утверждать, что вероятность того, что мы будем наблюдать события &amp;lt;tex&amp;gt;O_{t,T}&amp;lt;/tex&amp;gt; не зависит от того, что в прошлом мы наблюдали последовательность &amp;lt;tex&amp;gt;O_{1,t-1}&amp;lt;/tex&amp;gt;, и, следовательно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;P(X_t = i \mid O_{1,t-1} \cap O_{t,T}) =&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{P(X_t = i \mid O_{1,t-1}) \cdot P(X_t = i \mid O_{t,T})}{P(O)}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_{i}(t) \cdot \beta_{i}(t)}{P(O)}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Проход вперед ===&lt;br /&gt;
Заметим, что в &amp;lt;tex&amp;gt;\{\alpha_s(1)\}&amp;lt;/tex&amp;gt; нужно считать равной &amp;lt;tex&amp;gt;\pi_s b_{so_1}&amp;lt;/tex&amp;gt;, как вероятность получить первое событие из начального распределения.&lt;br /&gt;
&lt;br /&gt;
Для следующих &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; можно вычислить &amp;lt;tex&amp;gt;\alpha_s(t)&amp;lt;/tex&amp;gt;  рекуррентно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\alpha_{s}(t) = P(O_{1, t} \mid X_t = s_i) = \\&lt;br /&gt;
= \displaystyle\sum\limits_{j \in S} P(O_{1, t} \mid X_t = s \cap X_{t-1} = j) = \\&lt;br /&gt;
= \displaystyle\sum\limits_{j \in S} P(O_{1, t-1} \mid X_{t-1} = j) \cdot P(X_t = s \mid X_{t-1} = j) \cdot P(O_t = o_t \mid X_t = s) = \\&lt;br /&gt;
= \displaystyle\sum\limits_{j \in S} \alpha_{j}(t-1) \cdot a_{js} \cdot b_{so_t} = \\&lt;br /&gt;
= b_{so_t} \cdot \displaystyle\sum\limits_{j \in S} \alpha_{j}(t-1) \cdot a_{js}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак, вероятность попасть в состояние &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;-ом шаге, учитывая, что после перехода произойдет событие &amp;lt;tex&amp;gt;o_t&amp;lt;/tex&amp;gt; будет равна вероятности быть в состоянии &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;(t - 1)&amp;lt;/tex&amp;gt;-ом шаге, умноженной на вероятность перейти из состояния &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt;, произведя событие &amp;lt;tex&amp;gt;o_t&amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt;j \in S&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Проход назад ===&lt;br /&gt;
Аналогично, &amp;lt;tex&amp;gt;\beta_s(T+1) = 1&amp;lt;/tex&amp;gt;, так как произвольная цепочка наблюдений будет произведена, какими бы ни были состояния.&lt;br /&gt;
&lt;br /&gt;
Предыдущие &amp;lt;tex&amp;gt;\beta_s(t)&amp;lt;/tex&amp;gt; считаются рекуррентно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\beta_s(t) = P(O_{t, T} \mid X_t = s) = \\&lt;br /&gt;
= \displaystyle\sum\limits_{j \in S} P(O_{t+1,T} \mid X_{t+1} = j) \cdot P(X_{t+1} = j \mid X_t = s) \cdot P(o_{t+1} \mid X_t = s) = \\&lt;br /&gt;
= \displaystyle\sum\limits_{j \in S} \beta_j(t+1) \cdot a_{sj} \cdot b_{jo_{t+1}}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Сглаживание вероятности  ===&lt;br /&gt;
Итак, для произвольного состояния &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; в произвольный шаг &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; теперь известна вероятность того, что на пути к нему была произведена последовательность &amp;lt;tex&amp;gt;O_{1,t}&amp;lt;/tex&amp;gt; и вероятность того, что после него будет произведена последовательность &amp;lt;tex&amp;gt;O_{t+1,T}&amp;lt;/tex&amp;gt;. Чтобы найти вероятность того, что будет произведена цепочка событий, найти &amp;lt;tex&amp;gt;P(O)&amp;lt;/tex&amp;gt;, нужно просуммировать произведение обеих вероятностей для всех состояний при произвольном шаге t: &amp;lt;tex&amp;gt;P(O) = \sum_{s \in S} \alpha_s(t)\beta_s(t)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь найдем вероятность того, что в момент &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; цепь будет в состоянии &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;P(X_t = s \mid O) = P(X_t = s \mid O_{1,t-1} \cap O_{t,T}) =&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{P(X_t = s \mid O_{1,t-1}) \cdot P(X_t = s \mid O_{t,T})}{P(O)}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_{s}(t) \cdot \beta_{s}(t)}{P(O)}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_s(t)\cdot \beta_s(t)}{\sum_{i \in S}\alpha_s(t)\cdot \beta_s(t)}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример ==&lt;br /&gt;
[[Файл:HMM-Forward-Backward-Example.png|thumb|right|Пример СММ]]&lt;br /&gt;
Пусть ваша жизнь не удалась и вам пришлось работать охранником в холле офисного здания. Каждое утро вы наблюдали за тем, как один и тот же мужчина либо приносил, либо не приносил зонтик в зависимости от погоды. Увлекаясь статистикой, вы выяснили, что за день погода может поменяться с вероятностью &amp;lt;tex&amp;gt;0.3&amp;lt;/tex&amp;gt;; если на улице идет дождь, то мужчина приносит зонтик с вероятностью &amp;lt;tex&amp;gt;0.9&amp;lt;/tex&amp;gt;, а если солнечно {{---}} то с вероятностью &amp;lt;tex&amp;gt;0.2&amp;lt;/tex&amp;gt; (пример справа).&lt;br /&gt;
&lt;br /&gt;
Но вот вас переводят смотреть за камерами наблюдения: теперь вы не можете наблюдать за погодой, но каждый день видите того мужчину. За рабочую неделю вы заметили, что он не принес зонтик лишь в среду. С какой вероятностью во вторник шел дождь?&lt;br /&gt;
&lt;br /&gt;
По вышесказанному, &amp;lt;tex&amp;gt;P(X_2 = Rain  \mid \{umbrella, umbrella, no, umbrella, umbrella\}) = &amp;lt;/tex&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_{Rain}(2)\cdot \beta_{Rain}(2)}{\sum_{i \in \{Rain, Sun\}}\alpha_i(2)\cdot \beta_i(2)}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_{Rain}(2)\cdot \beta_{Rain}(2)}{\alpha_{Rain}(2)\cdot \beta_{Rain}(2) + \alpha_{Sun}(2)\cdot \beta_{Sun}(2)}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\approx 0.820&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Итак, с вероятностью &amp;lt;tex&amp;gt;\approx 82\%&amp;lt;/tex&amp;gt; во вторник шел дождь.&lt;br /&gt;
&lt;br /&gt;
== Псевдокод ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=darkgreen&amp;gt;&lt;br /&gt;
 // fwd, bkw {{---}} матрицы размера |S|*T, которым во время работы присваиваются промежуточные результаты alpha и beta &lt;br /&gt;
 // probabilities {{---}} матрица размера |S|*T, в которую заносится ответ&lt;br /&gt;
 // S - массив состояний, П - массив начальных вероятностей, O - последовательность наблюдений  &amp;lt;/font&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   '''fun''' alpha(s: '''int''', t: '''int'''): '''int'''&lt;br /&gt;
       '''if''' (s, t) '''in''' fwd&lt;br /&gt;
           '''return''' fwd[s, t]&lt;br /&gt;
       f = 0&lt;br /&gt;
       '''for''' j '''in''' S&lt;br /&gt;
           f += alpha(j, t - 1) * transitionProbability[j, s]&lt;br /&gt;
       f *= emitProbability[s, observations[t]]&lt;br /&gt;
       fwd[s, t] = f&lt;br /&gt;
       '''return''' fwd[s, t]&lt;br /&gt;
      &lt;br /&gt;
   '''fun''' beta(s: '''int''', t: '''int'''): '''int'''&lt;br /&gt;
       '''if''' (s, t) '''in''' bkw&lt;br /&gt;
           '''return''' bkw[s, t]&lt;br /&gt;
       b = 0&lt;br /&gt;
       '''for''' j '''in''' S&lt;br /&gt;
           b += beta(j, t + 1) * transitionProbability[s, j] * emitProbability[j, O[t + 1]]&lt;br /&gt;
       bkw[s, t] = b&lt;br /&gt;
       '''return''' bkw[s, t]&lt;br /&gt;
      &lt;br /&gt;
   '''fun''' forward_backward():&lt;br /&gt;
       '''for''' s '''in''' S&lt;br /&gt;
           fwd[s, 1] = emitProbability[s, observations[1]] * П[s]&lt;br /&gt;
           bkw[s, observations.length - 1] = 1&lt;br /&gt;
       chainProbability = 0&lt;br /&gt;
       '''for''' j '''in''' S&lt;br /&gt;
           chainProbability += alpha(j, 1) * beta(j, 1)&lt;br /&gt;
       '''for''' s '''in''' S&lt;br /&gt;
           '''for''' t '''in''' [1, T]&lt;br /&gt;
               probabilities[s, t] = (alpha(s, t) * beta(s, t)) / chainProbability&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
*[[Скрытые Марковские модели]]&lt;br /&gt;
*[[Алгоритм Баума-Велша]]&lt;br /&gt;
*[[Алгоритм Витерби]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [[wikipedia:Forward–backward_algorithm|Wikipedia {{---}} Forward–backward algorithm]]&lt;br /&gt;
* [http://web.cecs.pdx.edu/~mperkows/JUNE1a/010.Intorduction-to-HMM.ppt Forward/Backward Algorithms for Hidden Markov Models]&lt;br /&gt;
* [http://faculty.washington.edu/fxia/courses/LING572/forward_backward.ppt Forward-backward algorithm, Fei Xia, University of Washington]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Марковские цепи]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D0%B0%D1%83%D0%BC%D0%B0-%D0%92%D0%B5%D0%BB%D1%88%D0%B0&amp;diff=64386</id>
		<title>Алгоритм Баума-Велша</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D0%B0%D1%83%D0%BC%D0%B0-%D0%92%D0%B5%D0%BB%D1%88%D0%B0&amp;diff=64386"/>
				<updated>2018-03-15T07:16:32Z</updated>
		
		<summary type="html">&lt;p&gt;77.234.212.37: /* Пример */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
'''Алгоритм Баума-Велша''' (англ. ''Baum–Welch algorithm'') — алгоритм для нахождения неизвестных параметров [[Скрытые_Марковские_модели | скрытой Марковской модели]]. Использует [[Алгоритм_&amp;quot;Вперед-Назад&amp;quot; | алгоритм прямого-обратного хода]].&lt;br /&gt;
==История==&lt;br /&gt;
[[Скрытые_Марковские_модели | Скрытые Марковские модели]] (англ. ''Hidden Markov Models'', ''HMMs'') и алгоритм Баума-Велша впервые были описаны в заметках Леонарда Баума и его сверстников в конце &amp;lt;tex&amp;gt;1960&amp;lt;/tex&amp;gt; годов. Одно из первых основных приложений на основе HMMs было использовано в области обработки речи. В &amp;lt;tex&amp;gt;1980&amp;lt;/tex&amp;gt; годах HMMs стали эффективным инструментом в анализе биологических систем и информации, особенно в генном анализе.&lt;br /&gt;
&lt;br /&gt;
== Описание алгоритма==&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;Q_t&amp;lt;/tex&amp;gt; — это дискретная случайная переменная, принимающая одно из &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; значений &amp;lt;tex&amp;gt;(1 \ldots N)&amp;lt;/tex&amp;gt;. Будем полагать, что данная модель Маркова, определенная как &amp;lt;tex&amp;gt;P(Q_t \mid Q_{t - 1})&amp;lt;/tex&amp;gt; однородна по времени, то есть независима от &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;. Тогда можно задать &amp;lt;tex&amp;gt;P(Q_t \mid Q_{t - 1}) &amp;lt;/tex&amp;gt; как независящую от времени стохастическую матрицу перемещений &amp;lt;tex&amp;gt;A = \{a_{ij}\} = p(Q_t = j \mid Q_{t - 1} = i)&amp;lt;/tex&amp;gt;. Особый случай для времени &amp;lt;tex&amp;gt;t = 1&amp;lt;/tex&amp;gt; определяется начальным распределением &amp;lt;tex&amp;gt;\pi_i = P(Q_1 = i)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Будем считать, что мы в состоянии &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; в момент времени &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;, если &amp;lt;tex&amp;gt;Q_t = j&amp;lt;/tex&amp;gt;. Последовательность заданных состояний определяется как &amp;lt;tex&amp;gt;q = \{q_1 \dots q_T \}&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;q_t \in \{ 1\ldots N\}&amp;lt;/tex&amp;gt; является состоянием в момент времени &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Наблюдение может иметь одно из &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; возможных значений, &amp;lt;tex&amp;gt;Q_t \in \{o_1 \dots o_L\}&amp;lt;/tex&amp;gt;. Вероятность заданного вектора наблюдений в момент времени &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt; для состояния &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; определяется как &amp;lt;tex&amp;gt;b_j(o_t) = P(O_t = o_t \mid Q_t = j)\ ( B = \{ b_{ij}\}&amp;lt;/tex&amp;gt; —  это матрица &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;N)&amp;lt;/tex&amp;gt;. Заданная последовательность наблюдений &amp;lt;tex&amp;gt;O&amp;lt;/tex&amp;gt; выражается как &amp;lt;tex&amp;gt; O = (O_1 = o_1, \dots ,O_T = o_T)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Следовательно, мы можем описать скрытую модель Маркова с помощью &amp;lt;tex&amp;gt; \lambda = (A, B, \pi)&amp;lt;/tex&amp;gt;. При заданном векторе наблюдений &amp;lt;tex&amp;gt;O&amp;lt;/tex&amp;gt; алгоритм Баума-Велша находит &amp;lt;tex&amp;gt; \lambda^*=\max_\lambda P(O\mid\lambda)&amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt;\lambda&amp;lt;/tex&amp;gt; максимизирует вероятность наблюдений &amp;lt;tex&amp;gt;O&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
'''Исходные данные: '''&amp;lt;tex&amp;gt; \lambda = (A, B, \pi)&amp;lt;/tex&amp;gt; со случайными начальными условиями.&lt;br /&gt;
Алгоритм итеративно обновляет параметр &amp;lt;tex&amp;gt;\lambda&amp;lt;/tex&amp;gt; до схождения в одной точке.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Прямая процедура ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;a_i(t) = p(O_1 = o_1 \dots O_t = o_t, Q_t = \lambda_i )&amp;lt;/tex&amp;gt;, что является вероятностью получения заданной последовательности &amp;lt;tex&amp;gt;\{ o_1 \dots o_t \}&amp;lt;/tex&amp;gt; для состояния &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; в момент времени &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;a_i(t)&amp;lt;/tex&amp;gt; можно вычислить рекурсивно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1.\,&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;a_i(1) = \pi_i \cdot b_i(O_1) &amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2.\,&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;a_j(t + 1) = b_j(O_{t + 1})\displaystyle\sum^N_{i=1}a_i(t) \cdot a_{ij}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Обратная процедура ===&lt;br /&gt;
&lt;br /&gt;
Данная процедура позволяет вычислить вероятность конечной заданной последовательности &amp;lt;tex&amp;gt;\{ o_{t + 1} \dots o_T \}&amp;lt;/tex&amp;gt; при условии, что мы начали из исходного состояния &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt;, в момент времени &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\beta_i(t)&amp;lt;/tex&amp;gt; можно вычислить рекурсивно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;1.\,&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\beta_i(T) = 1&amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2.\,&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;\beta_i(t) = \displaystyle\sum^N_{j = 1}\beta_j(t + 1)a_{ij}b_j(O_{t + 1})&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Обновление переменных ===&lt;br /&gt;
&lt;br /&gt;
Определим временные переменные:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\gamma_i(t) = p(Q_t=i\mid O,\;\lambda)=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_i(t)\beta_i(t)}{\displaystyle\sum^N_{j=1}\alpha_j(t)\beta_j(t)}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\xi_{ij}(t) = p(Q_t=i,\;Q_{t+1}=j\mid O,\;\lambda)=&amp;lt;/tex&amp;gt; &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{\alpha_i(t)a_{ij}\beta_j(t+1)b_j(o_{t+1})}{\displaystyle\sum^N_{i=1}\displaystyle\sum^N_{j=1}\alpha_i(t)a_{ij}\beta_j(t+1)b_j(O_{t+1})}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Имея &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\xi&amp;lt;/tex&amp;gt;, можно определить:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\bar\pi_i=\gamma_i(1)&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\bar{a}_{ij}=\dfrac{\displaystyle\sum^{T-1}_{t=1}\xi_{ij}(t)}{\displaystyle\sum^{T-1}_{t=1}\gamma_i(t)}&amp;lt;/tex&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\bar{b}_i(k)=\dfrac{\displaystyle\sum^T_{t=1}\delta_{O_t,\;o_k}\gamma_i(t)}{\displaystyle\sum^T_{t=1}\gamma_i(t)}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Используя новые переменные &amp;lt;tex&amp;gt; A, B, \pi&amp;lt;/tex&amp;gt; итерации продолжаются до схождения.&lt;br /&gt;
&lt;br /&gt;
== Пример ==&lt;br /&gt;
Предположим, у нас есть курица, с которой мы собираем яйца. Снесла ли курица яйца — зависит от некоторых неизвестных факторов. Для простоты предположим, что существуют лишь два состояния, которые определяют есть ли яйца. В начальный момент нам неизвестно текущее состояние, также нам неизвестна вероятность перехода из одного состояния в другое. Для начала возьмем произвольные матрицы переходов и состояний.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Переходы&lt;br /&gt;
|-&lt;br /&gt;
! !! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; !! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.5&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.5&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.3&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.7&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
||&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Состояния&lt;br /&gt;
|-&lt;br /&gt;
! !! Яйца не отложены !! Яйца отложены&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;0.3&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.7&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;0.8&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
||&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Начальное состояние&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.8&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим набор наблюдений (&amp;lt;tex&amp;gt;E&amp;lt;/tex&amp;gt; — яйца отложены, &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; — яйца не отложены):  &amp;lt;tex&amp;gt;NN, NN, NN, NN, NE, EE, EN, NN, NN&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Следующим шагом оценим новую матрицу переходов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность !! Вероятность последовательности и состояний !! Наибольшая вероятность наблюдения&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NN&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.024&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.3584\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NN&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.024&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.3584\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NN&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.024&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.3584\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NN&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.024&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.3584\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NE&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.006&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.1344\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;EE&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.014&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0490\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_1,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;EN&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.056&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0896\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NN&amp;lt;/tex&amp;gt; ||  &amp;lt;tex&amp;gt;0.024&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.3584\,&amp;lt;/tex&amp;gt;   &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  &amp;lt;tex&amp;gt;NN&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.024&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.3584\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Итог&lt;br /&gt;
| &amp;lt;tex&amp;gt;0.22&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;2.4234&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким образом получаем новую оценку перехода из &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;, которая составляет &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{0.22}{2.4234}&amp;lt;/tex&amp;gt;&amp;lt;tex&amp;gt; = 0.0908&amp;lt;/tex&amp;gt;. После этого можно подсчитать вероятность переходов из &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; и изменим их так, чтобы в суммы вероятностей давали &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;. В итоге получаем новую матрицу переходов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Старая матрица                              &lt;br /&gt;
|-&lt;br /&gt;
! !! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; !! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.5&amp;lt;/tex&amp;gt; ||&amp;lt;tex&amp;gt; 0.5&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;  &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.3 &amp;lt;/tex&amp;gt;|| &amp;lt;tex&amp;gt;0.7&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
||&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Новая матрица (Псевдовероятности)&lt;br /&gt;
|-&lt;br /&gt;
! !! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; !! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;0.0598&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0908&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;  &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.2179&amp;lt;/tex&amp;gt; ||&amp;lt;tex&amp;gt; 0.9705&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
||&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Новая матрица (После изменения)&lt;br /&gt;
|-&lt;br /&gt;
! !! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; !! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.3973&amp;lt;/tex&amp;gt; ||&amp;lt;tex&amp;gt; 0.6027&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;  &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.1833&amp;lt;/tex&amp;gt; ||&amp;lt;tex&amp;gt; 0.8167&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее оценим новую матрицу состояний:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательности !! Наибольшая вероятность наблюдения &amp;lt;br/&amp;gt; Если допустимо, что E получено из &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; !! Наибольшая вероятность наблюдения&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;NE&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.1344\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt; S_2, &amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.1344\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_2,&amp;lt;/tex&amp;gt;&amp;lt;tex&amp;gt; S_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;EE&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0490\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt; S_1, &amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0490\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_1,&amp;lt;/tex&amp;gt;&amp;lt;tex&amp;gt; S_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;EN&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0560\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt; S_1, &amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.0896\,&amp;lt;/tex&amp;gt;  &amp;lt;tex&amp;gt;S_1,&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Итог&lt;br /&gt;
| &amp;lt;tex&amp;gt;0.2394&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.2730&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Новая оценка для &amp;lt;tex&amp;gt;E&amp;lt;/tex&amp;gt;, полученная из &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt;, составляет &amp;lt;tex dpi=&amp;quot;160&amp;quot;&amp;gt;\dfrac{0.2394}{0.2730}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt; = 0.8769&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Благодаря этому, возможно рассчитать матрицу состояний:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Старая матрица                              &lt;br /&gt;
|-&lt;br /&gt;
! !! Яйца не отложены  !! Яйца отложены &lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.3&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.7&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;  &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.8&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
||&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Новая матрица (Оценка)&lt;br /&gt;
|-&lt;br /&gt;
! !! Яйца не отложены  !! Яйца отложены &lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.0876&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.8769&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;1.0000&amp;lt;/tex&amp;gt; ||&amp;lt;tex&amp;gt; 0.7385&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
||&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Новая матрица (После изменения)&lt;br /&gt;
|-&lt;br /&gt;
! !! Яйца не отложены  !! Яйца отложены &lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; &lt;br /&gt;
|&amp;lt;tex&amp;gt;0.0908&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.9092&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Состояние &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&lt;br /&gt;
|&amp;lt;tex&amp;gt;0.5752&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;0.4248&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для оценки начальной вероятности, мы предполагаем, что все последовательности начаты со скрытого состояния &amp;lt;tex&amp;gt;S_1&amp;lt;/tex&amp;gt; и рассчитаны с высокой вероятностью, а затем повторяем для &amp;lt;tex&amp;gt;S_2&amp;lt;/tex&amp;gt;. После нормализации получаем обновленный исходный вектор.&lt;br /&gt;
&lt;br /&gt;
Повторяем эти шаги до тех пор, пока вероятности не сойдутся.&lt;br /&gt;
&lt;br /&gt;
== Псевдокод ==&lt;br /&gt;
  &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;// T — конечный момент времени&amp;lt;/font&amp;gt;&lt;br /&gt;
  '''int'''[] DynamicOptionalStateSequance(&amp;lt;tex&amp;gt;\lambda&amp;lt;/tex&amp;gt;, d):&lt;br /&gt;
      '''double''' &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[1, i] = &amp;lt;tex&amp;gt;\pi&amp;lt;/tex&amp;gt;[i] * b[i, d[1]]&lt;br /&gt;
      '''int''' &amp;lt;tex&amp;gt;\psi&amp;lt;/tex&amp;gt;[1, i] = []&lt;br /&gt;
      '''int''' ans[]&lt;br /&gt;
      '''for''' t = 2 '''to''' T&lt;br /&gt;
          '''for''' i = 1 '''to''' n&lt;br /&gt;
              '''if''' &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[t, j] &amp;lt; &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[t - 1, i] * a[i, j] * b[j, d[t]]&lt;br /&gt;
                  &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[t, j] = &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[t - 1, i] * a[i, j] * b[j, d[t]]&lt;br /&gt;
                  &amp;lt;tex&amp;gt;\psi&amp;lt;/tex&amp;gt;[t, j] = i&lt;br /&gt;
      ans[T] = 1 &lt;br /&gt;
      '''for''' i = 2 '''to''' n&lt;br /&gt;
          '''if''' &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[T, i] &amp;gt; &amp;lt;tex&amp;gt;\gamma&amp;lt;/tex&amp;gt;[T, i - 1]&lt;br /&gt;
              ans[T] = i    &lt;br /&gt;
      '''for''' t = T - 1 '''downto''' 1&lt;br /&gt;
          ans[t] = &amp;lt;tex&amp;gt;\psi&amp;lt;/tex&amp;gt;[t + 1, ans[t + 1]]&lt;br /&gt;
  '''return''' ans&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
*[[Скрытые Марковские модели]]&lt;br /&gt;
*[[Алгоритм &amp;quot;Вперед-Назад&amp;quot;]]&lt;br /&gt;
*[[Алгоритм Витерби]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации==&lt;br /&gt;
*[https://ru.wikipedia.org/wiki/Алгоритм_Баума_—_Велша Википедия — Алгоритм Баума-Велша]&lt;br /&gt;
&lt;br /&gt;
*[http://logic.pdmi.ras.ru/~sergey/teaching/asr/notes-09-hmm.pdf Лекция &amp;quot;Скрытые Марковские Модели&amp;quot; Сергея Николенко]&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Baum%E2%80%93Welch_algorithm Wikipedia — Baum–Welch algorithm]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Марковские цепи]]&lt;/div&gt;</summary>
		<author><name>77.234.212.37</name></author>	</entry>

	</feed>