<?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=109.205.252.183&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=109.205.252.183&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/109.205.252.183"/>
		<updated>2026-06-12T15:33:20Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<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%94%D0%B6%D0%BE%D0%BD%D1%81%D0%BE%D0%BD%D0%B0&amp;diff=27248</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%94%D0%B6%D0%BE%D0%BD%D1%81%D0%BE%D0%BD%D0%B0&amp;diff=27248"/>
				<updated>2012-10-15T18:38:42Z</updated>
		
		<summary type="html">&lt;p&gt;109.205.252.183: /* Теорема о существовании потенциальной функции */&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;
Алгоритм Джонсона позволяет найти кратчайшие пути между всеми парами вершин в течение времени &amp;lt;tex&amp;gt; O(V^2\log(V) + VE) &amp;lt;/tex&amp;gt;. Для разреженных графов этот алгоритм ведет себя асимптотически быстрее алгоритма Флойда. Этот алгоритм либо возвращает матрицу кратчайших расстояний между всеми парами вершин, либо сообщение о том, что в графе существует цикл отрицательной длины.&lt;br /&gt;
&lt;br /&gt;
В этом алгоритме используется метод '''изменения веса''' (англ. reweighting). Суть его заключается в том, что для заданного графа &amp;lt;tex&amp;gt; G &amp;lt;/tex&amp;gt; строится новая весовая функция &amp;lt;tex&amp;gt; \omega_\varphi &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;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt; \varphi : V \rightarrow \mathbb R &amp;lt;/tex&amp;gt; - произвольное отображение из множества вершин в вещественные числа. Тогда новой весовой функцией будет &amp;lt;tex&amp;gt; \omega_\varphi(u, v) = \omega(u, v) + \varphi(u) - \varphi(v) &amp;lt;/tex&amp;gt;.&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;
Теперь, когда мы знаем, что веса всех ребер неотрицательны, и кратчайшие пути сохранятся, можно запустить алгоритм Дейкстры из каждой вершины и таким образом найти кратчайшие расстояния между всеми парами вершин.&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; \omega &amp;lt;/tex&amp;gt;, то он будет кратчайшим и относительно новой весовой функции &amp;lt;tex&amp;gt; \omega_\varphi &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;P,\; Q &amp;lt;/tex&amp;gt; {{---}} 2 пути &amp;lt;tex&amp;gt; a \rightsquigarrow b\;&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\omega(P) &amp;lt; \omega(Q).&amp;lt;/tex&amp;gt; Тогда &amp;lt;tex&amp;gt;\forall \varphi: \; \omega_\varphi(P) &amp;lt; \omega_\varphi(Q)&amp;lt;/tex&amp;gt; &lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
:Рассмотрим путь &amp;lt;tex&amp;gt;P: \;u_0 \rightarrow u_1 \rightarrow u_2 \rightarrow ... \rightarrow u_k &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Его вес с новой весовой функцией равен &amp;lt;tex&amp;gt;\omega_\varphi(P) = \omega_\varphi(u_0u_1) + \omega_\varphi(u_1u_2) + ... + \omega_\varphi(u_{k-1}u_k) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:Вставим определение функции &amp;lt;tex&amp;gt; \omega_\varphi : \omega_\varphi(P) = \varphi(u_0) + \omega(u_0u_1) - \varphi(u_1) + ... + \varphi(u_{k-1}) + \omega(u_{k-1}u_k) - \varphi(u_k) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Заметим, что потенциалы все промежуточных вершин в пути сократятся. &amp;lt;tex&amp;gt; \omega_\varphi(P) = \varphi(u_0) + \omega(P) - \varphi(u_k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:По изначальному предположению: &amp;lt;tex&amp;gt;\omega(P) &amp;lt; \omega(Q)&amp;lt;/tex&amp;gt;. С новой весовой функцией веса соответствующих путей будут: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tex&amp;gt;\omega_\varphi(P) = \varphi(a) + \omega(P) - \varphi(b)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tex&amp;gt;\omega_\varphi(Q) = \varphi(a) + \omega(Q) - \varphi(b)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Отсюда, &amp;lt;tex&amp;gt;\omega_\varphi(P) &amp;lt; \omega_\varphi(Q)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Теорема о существовании потенциальной функции ===&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement= &lt;br /&gt;
&lt;br /&gt;
В графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; нет отрицательных циклов &amp;lt;tex&amp;gt;\Leftrightarrow&amp;lt;/tex&amp;gt; существует потенциальная функция &amp;lt;tex&amp;gt; \phi:\; \forall uv \in E\; \omega_\varphi(uv) \ge 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|proof=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Leftarrow &amp;lt;/tex&amp;gt;: Рассмотрим произвольный &amp;lt;tex&amp;gt;C&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; \omega(C) = \omega_\varphi(C) - \varphi(u_0) - \varphi(u_0) = \omega_\varphi(C) \ge 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Rightarrow &amp;lt;/tex&amp;gt;: Добавим фиктивную вершину &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; в граф, а также ребра &amp;lt;tex&amp;gt; s \to u &amp;lt;/tex&amp;gt; весом &amp;lt;tex&amp;gt; 0 &amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt; u &amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:Обозначим &amp;lt;tex&amp;gt;\delta(u,v)&amp;lt;/tex&amp;gt; как минимальное расстояние между вершинами &amp;lt;tex&amp;gt;u,\; v&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:Введем потенциальную функцию &amp;lt;tex&amp;gt; \phi &amp;lt;/tex&amp;gt; следующим образом: &amp;lt;tex&amp;gt;\phi(u) = \delta(s,u)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Рассмотрим вес произвольного ребра &amp;lt;tex&amp;gt; uv \in E &amp;lt;/tex&amp;gt;: &amp;lt;tex&amp;gt;\omega_\phi(uv) = \phi(u) + \omega(uv) - \phi(v) = \delta(s, u) + \omega(uv) - \delta(s, v)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:Поскольку &amp;lt;tex&amp;gt;\delta(s, u) + \omega(uv) &amp;lt;/tex&amp;gt; {{---}} вес какого-то пути &amp;lt;tex&amp;gt; s \rightsquigarrow v &amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt; \delta(s, v) &amp;lt;/tex&amp;gt; {{---}} вес кратчайшего пути &amp;lt;tex&amp;gt; s \rightsquigarrow v&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt; \delta(s, u) + \omega(uv) \ge \delta(s, v) \Rightarrow \delta(s, u) + w\omega(uv) - \delta(s, v) = \omega_\varphi(uv) \ge 0 &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;
 Строится граф &amp;lt;tex&amp;gt;G' = (V',\;E')&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;V' = V \cup \{s\}&amp;lt;/tex&amp;gt;, &lt;br /&gt;
 для некоторой новой вершины &amp;lt;tex&amp;gt;s \not\in V&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;E' = E \cup \{(s,\;v): \omega(s, v) = 0,\ v \in V \}&amp;lt;/tex&amp;gt;&lt;br /&gt;
 '''if''' Bellman_Ford&amp;lt;tex&amp;gt;(G',\;\omega,\;s)&amp;lt;/tex&amp;gt; == FALSE&lt;br /&gt;
    '''then''' out &amp;lt;&amp;lt; «Входной граф содержит цикл с отрицательным весом»&lt;br /&gt;
    '''else''' '''for''' для каждой &amp;lt;tex&amp;gt;v \in V'&amp;lt;/tex&amp;gt;&lt;br /&gt;
         '''do''' присвоить величине &amp;lt;tex&amp;gt;\varphi(v)&amp;lt;/tex&amp;gt; значение &amp;lt;tex&amp;gt;\delta(s,\;v)&amp;lt;/tex&amp;gt;,&lt;br /&gt;
            вычисленное алгоритмом Беллмана — Форда&lt;br /&gt;
         '''for''' для каждого ребра &amp;lt;tex&amp;gt;(u,\;v) \in E'&amp;lt;/tex&amp;gt;&lt;br /&gt;
             '''do''' &amp;lt;tex&amp;gt;\omega_\varphi(u,\;v) \leftarrow \omega(u,\;v) + \varphi(u) - \varphi(v)&amp;lt;/tex&amp;gt;&lt;br /&gt;
         '''for''' для каждой вершины &amp;lt;tex&amp;gt;u \in V&amp;lt;/tex&amp;gt;&lt;br /&gt;
             '''do''' вычисление с помощью алгоритма Дейкстры&lt;br /&gt;
             &amp;lt;tex&amp;gt;(G,\;\omega_\varphi,\;u)&amp;lt;/tex&amp;gt; величин &amp;lt;tex&amp;gt;\delta_\varphi(u,\;v)&amp;lt;/tex&amp;gt;&lt;br /&gt;
             для всех вершин &amp;lt;tex&amp;gt;v \in V&amp;lt;/tex&amp;gt;&lt;br /&gt;
             '''for''' для каждой вершины &amp;lt;tex&amp;gt;v \in V&amp;lt;/tex&amp;gt;&lt;br /&gt;
                 '''do''' &amp;lt;tex&amp;gt;d_{uv} \leftarrow \delta_\varphi(u,\;v) + \varphi(v) - \varphi(u)&amp;lt;/tex&amp;gt;&lt;br /&gt;
    '''return''' &amp;lt;tex&amp;gt;d&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;O(VE + VD)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;O(D)&amp;lt;/tex&amp;gt; - время работы [[Алгоритм Дейкстры| алгоритма Дейкстры]]. Если в алгоритме Дейкстры неубывающая очередь с приоритетами реализована в виде [[Фибоначчиевы кучи| фибоначчиевой кучи]], то время работы алгоритма Джонсона есть &amp;lt;tex&amp;gt;O(V^2\log V + V E)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Алгоритм Дейкстры]]&lt;br /&gt;
* [[Алгоритм Форда-Беллмана]]&lt;br /&gt;
* [[Алгоритм Флойда]]&lt;br /&gt;
* [http://rain.ifmo.ru/cat/view.php/vis/graph-paths/johnson-2001 Визуализатор алгоритма]&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* ''Кормен Т., Лейзерсон Ч., Ривест Р.'' Алгоритмы: построение и анализ. 2-е изд. — М.: Издательский дом «Вильямс», 2007. — С. 1296.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Кратчайшие пути в графах ]]&lt;/div&gt;</summary>
		<author><name>109.205.252.183</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%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8,_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=27187</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%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8,_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=27187"/>
				<updated>2012-09-10T12:09:37Z</updated>
		
		<summary type="html">&lt;p&gt;109.205.252.183: /* Случай неориентированного графа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Случай неориентированного графа ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Две вершины &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; называются '''связными''', если в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; существует [[Основные определения теории графов|путь]] из &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; (обозначение: &amp;lt;tex&amp;gt;u \rightsquigarrow v &amp;lt;/tex&amp;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;\forall a \in V a \rightsquigarrow a&amp;lt;/tex&amp;gt; (очевидно).&lt;br /&gt;
&lt;br /&gt;
'''Симметричность''': &amp;lt;tex&amp;gt;a\rightsquigarrow b \Rightarrow b\rightsquigarrow a&amp;lt;/tex&amp;gt; (в силу неориентированности графа).&lt;br /&gt;
&lt;br /&gt;
'''Транзитивность''': &amp;lt;tex&amp;gt;a\rightsquigarrow b \land b\rightsquigarrow c \Rightarrow a\rightsquigarrow c&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;b&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt;, что и означает существования пути  &amp;lt;tex&amp;gt;a \rightsquigarrow c&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Компонентой связности''' называется класс эквивалентности относительно связности.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G=(V, E)&amp;lt;/tex&amp;gt; называется '''связным''', если он состоит из одной компоненты связности. В противном случае граф называется '''несвязным'''.}}&lt;br /&gt;
&lt;br /&gt;
== Случай ориентированного графа ==&lt;br /&gt;
В общем случае для ориентированного графа существование пути — не симметричное отношение, поэтому вместо понятия связности различают понятие слабой и сильной связности.&lt;br /&gt;
=== Слабая связность ===&lt;br /&gt;
&amp;lt;wikitex&amp;gt;{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Отношение $R(v, u)$ называется отношением '''слабой связности''', если вершины $u$ и $v$ связаны в неориентированном графе $G'$, полученном из графа $G$ удалением с ребер ориентации.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Слабая связность '''является отношением эквивалентности'''.&lt;br /&gt;
|proof=&lt;br /&gt;
Аналогично доказательству соответствующей теоремы для неориентированного графа.&lt;br /&gt;
}}&lt;br /&gt;
[[Файл:components1.png|400px|thumb|left|Пример ориентированного графа с тремя компонентами слабой связности.]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/wikitex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Сильная связность ===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=sc_def&lt;br /&gt;
|definition=&lt;br /&gt;
Отношение &amp;lt;tex&amp;gt;R(v, u) = v \rightsquigarrow u \land  u \rightsquigarrow v&amp;lt;/tex&amp;gt; на вершинах графа называется отношением '''сильной связности'''.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Сильная связность {{---}} '''отношение эквивалентности'''.&lt;br /&gt;
|proof=&lt;br /&gt;
'''Рефлексивность''' и '''симметричность''' очевидны. Рассмотрим '''транзитивность''': &lt;br /&gt;
&amp;lt;tex&amp;gt;(a\rightsquigarrow b \land b\rightsquigarrow a) \land  (b\rightsquigarrow c \land c\rightsquigarrow b)\Leftrightarrow (a\rightsquigarrow b \land b\rightsquigarrow c) \land (c\rightsquigarrow b \land b\rightsquigarrow a) \Leftrightarrow a\rightsquigarrow c \land c\rightsquigarrow a&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; — ориентированный граф. '''Компонентой сильной связности''' называется класс эквивалентности множества вершин этого графа относительно сильной связности.}}&lt;br /&gt;
[[Файл:Components2.png|400px|thumb|left|Пример ориентированного графа с тремя компонентами сильной связности.]]&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Ориентированный граф &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется '''сильно связным''', если он состоит из одной компоненты сильной связности.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://xn--90abr5b.xn--p1ai/wiki/doku.php?id=examination:diskretka:question12 Отношения связности для вершин неорграфа на ivtb.ru]&lt;br /&gt;
* Харари Фрэнк '''Теория графов''': Пер. с англ./ Предисл. В. П. Козырева; Под ред. Г.П.Гаврилова. Изд. 4-е. — М.: Книжный дом &amp;quot;ЛИБРОКОМ&amp;quot;, 2009. — 296 с. — ISBN 978-5-397-00622-4.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Связность в графах]]&lt;/div&gt;</summary>
		<author><name>109.205.252.183</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%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8,_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=27186</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%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8,_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B_%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=27186"/>
				<updated>2012-09-10T12:06:58Z</updated>
		
		<summary type="html">&lt;p&gt;109.205.252.183: /* Случай неориентированного графа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Случай неориентированного графа ==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Две вершины &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; называются '''связными''', если в графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; существует [[Основные определения теории графов|путь]] из &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; (обозначение: &amp;lt;tex&amp;gt;u \rightsquigarrow v &amp;lt;/tex&amp;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;\forall a \in V a \rightsquigarrow a&amp;lt;/tex&amp;gt; (очевидно).&lt;br /&gt;
&lt;br /&gt;
'''Симметричность''': &amp;lt;tex&amp;gt;a\rightsquigarrow b \Rightarrow b\rightsquigarrow a&amp;lt;/tex&amp;gt; (в силу неориентированности графа).&lt;br /&gt;
&lt;br /&gt;
'''Транзитивность''': &amp;lt;tex&amp;gt;a\rightsquigarrow b \land b\rightsquigarrow c \Rightarrow a\rightsquigarrow c&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;b&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt;, что и означает существования пути  &amp;lt;tex&amp;gt;a \rightsquigarrow с&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Компонентой связности''' называется класс эквивалентности относительно связности.}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Граф &amp;lt;tex&amp;gt;G=(V, E)&amp;lt;/tex&amp;gt; называется '''связным''', если он состоит из одной компоненты связности. В противном случае граф называется '''несвязным'''.}}&lt;br /&gt;
&lt;br /&gt;
== Случай ориентированного графа ==&lt;br /&gt;
В общем случае для ориентированного графа существование пути — не симметричное отношение, поэтому вместо понятия связности различают понятие слабой и сильной связности.&lt;br /&gt;
=== Слабая связность ===&lt;br /&gt;
&amp;lt;wikitex&amp;gt;{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Отношение $R(v, u)$ называется отношением '''слабой связности''', если вершины $u$ и $v$ связаны в неориентированном графе $G'$, полученном из графа $G$ удалением с ребер ориентации.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Слабая связность '''является отношением эквивалентности'''.&lt;br /&gt;
|proof=&lt;br /&gt;
Аналогично доказательству соответствующей теоремы для неориентированного графа.&lt;br /&gt;
}}&lt;br /&gt;
[[Файл:components1.png|400px|thumb|left|Пример ориентированного графа с тремя компонентами слабой связности.]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/wikitex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Сильная связность ===&lt;br /&gt;
{{Определение&lt;br /&gt;
|id=sc_def&lt;br /&gt;
|definition=&lt;br /&gt;
Отношение &amp;lt;tex&amp;gt;R(v, u) = v \rightsquigarrow u \land  u \rightsquigarrow v&amp;lt;/tex&amp;gt; на вершинах графа называется отношением '''сильной связности'''.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Сильная связность {{---}} '''отношение эквивалентности'''.&lt;br /&gt;
|proof=&lt;br /&gt;
'''Рефлексивность''' и '''симметричность''' очевидны. Рассмотрим '''транзитивность''': &lt;br /&gt;
&amp;lt;tex&amp;gt;(a\rightsquigarrow b \land b\rightsquigarrow a) \land  (b\rightsquigarrow c \land c\rightsquigarrow b)\Leftrightarrow (a\rightsquigarrow b \land b\rightsquigarrow c) \land (c\rightsquigarrow b \land b\rightsquigarrow a) \Leftrightarrow a\rightsquigarrow c \land c\rightsquigarrow a&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; — ориентированный граф. '''Компонентой сильной связности''' называется класс эквивалентности множества вершин этого графа относительно сильной связности.}}&lt;br /&gt;
[[Файл:Components2.png|400px|thumb|left|Пример ориентированного графа с тремя компонентами сильной связности.]]&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Ориентированный граф &amp;lt;tex&amp;gt;G = (V, E)&amp;lt;/tex&amp;gt; называется '''сильно связным''', если он состоит из одной компоненты сильной связности.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Источники==&lt;br /&gt;
* [http://xn--90abr5b.xn--p1ai/wiki/doku.php?id=examination:diskretka:question12 Отношения связности для вершин неорграфа на ivtb.ru]&lt;br /&gt;
* Харари Фрэнк '''Теория графов''': Пер. с англ./ Предисл. В. П. Козырева; Под ред. Г.П.Гаврилова. Изд. 4-е. — М.: Книжный дом &amp;quot;ЛИБРОКОМ&amp;quot;, 2009. — 296 с. — ISBN 978-5-397-00622-4.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория:Связность в графах]]&lt;/div&gt;</summary>
		<author><name>109.205.252.183</name></author>	</entry>

	</feed>