﻿<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://v.michm.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://v.michm.ru/index.php?action=history&amp;feed=atom&amp;title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2</id>
		<title>Wiki Легостаев - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://v.michm.ru/index.php?action=history&amp;feed=atom&amp;title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2"/>
		<link rel="alternate" type="text/html" href="http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;action=history"/>
		<updated>2026-05-05T00:54:15Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.23</generator>

	<entry>
		<id>http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;diff=53050&amp;oldid=prev</id>
		<title>Легостаев Максим в 05:33, 22 декабря 2025</title>
		<link rel="alternate" type="text/html" href="http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;diff=53050&amp;oldid=prev"/>
				<updated>2025-12-22T05:33:55Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 05:33, 22 декабря 2025&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;вик1&lt;/del&gt;.jpg]][[Файл:вик2.jpg]][[Файл:вик3.jpg]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;В1&lt;/ins&gt;.jpg]][[Файл:вик2.jpg]][[Файл:вик3.jpg]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff:version:1.11a:oldid:53049:newid:53050 --&gt;
&lt;/table&gt;</summary>
		<author><name>Легостаев Максим</name></author>	</entry>

	<entry>
		<id>http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;diff=53049&amp;oldid=prev</id>
		<title>Легостаев Максим в 05:32, 22 декабря 2025</title>
		<link rel="alternate" type="text/html" href="http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;diff=53049&amp;oldid=prev"/>
				<updated>2025-12-22T05:32:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 05:32, 22 декабря 2025&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Алгоритм Дейкстры''' — алгоритм на графах, изобретённый нидерландским учёным [[Дейкстра, Эдсгер Вибе|Эдсгером Дейкстрой]] в 1959 году. Находит [[Кратчайший путь|кратчайшие пути]] от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёбер отрицательного веса.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Файл:вик1.jpg]][[Файл:вик2.jpg]][[Файл:вик3.jpg]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''Полужирное начертание'''&lt;/ins&gt;'''Алгоритм Дейкстры''' — алгоритм на графах, изобретённый нидерландским учёным [[Дейкстра, Эдсгер Вибе|Эдсгером Дейкстрой]] в 1959 году. Находит [[Кратчайший путь|кратчайшие пути]] от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёбер отрицательного веса.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;__TOC__&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;__TOC__&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff:version:1.11a:oldid:52920:newid:53049 --&gt;
&lt;/table&gt;</summary>
		<author><name>Легостаев Максим</name></author>	</entry>

	<entry>
		<id>http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;diff=52920&amp;oldid=prev</id>
		<title>Легостаев Максим: Новая страница: «'''Алгоритм Дейкстры''' — алгоритм на графах, изобретённый нидерландским учёным [[Дейкстр…»</title>
		<link rel="alternate" type="text/html" href="http://v.michm.ru/index.php?title=Wiki_%D0%9B%D0%B5%D0%B3%D0%BE%D1%81%D1%82%D0%B0%D0%B5%D0%B2&amp;diff=52920&amp;oldid=prev"/>
				<updated>2025-12-16T03:30:29Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;Алгоритм Дейкстры&amp;#039;&amp;#039;&amp;#039; — алгоритм на графах, изобретённый нидерландским учёным [[Дейкстр…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Алгоритм Дейкстры''' — алгоритм на графах, изобретённый нидерландским учёным [[Дейкстра, Эдсгер Вибе|Эдсгером Дейкстрой]] в 1959 году. Находит [[Кратчайший путь|кратчайшие пути]] от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёбер отрицательного веса.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Математическое описание ==&lt;br /&gt;
Алгоритм Дейкстры использует [[Жадный алгоритм|жадную стратегию]]. Для каждой вершины ''v'' хранится текущая длина &amp;lt;math&amp;gt;d[v]&amp;lt;/math&amp;gt; кратчайшего пути из начальной вершины ''s'' в ''v'', а также булевый флаг &amp;lt;math&amp;gt;used[v]&amp;lt;/math&amp;gt; — посещена ли вершина.&lt;br /&gt;
&lt;br /&gt;
Изначально &amp;lt;math&amp;gt;d[s] = 0&amp;lt;/math&amp;gt;, для всех остальных вершин расстояние считается бесконечным (&amp;lt;math&amp;gt;d[v] = \infty&amp;lt;/math&amp;gt;), &amp;lt;math&amp;gt;used[v] = false&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
На каждом шаге алгоритма выбирается вершина &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; с минимальным &amp;lt;math&amp;gt;d[u]&amp;lt;/math&amp;gt; среди ещё не посещённых. Для каждого соседа &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; вершины &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; пересчитывается расстояние:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;d[v] = \min(d[v], d[u] + w(u, v))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;w(u, v)&amp;lt;/math&amp;gt; — вес ребра из &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; в &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Алгоритм завершается, когда все вершины посещены или минимальное расстояние среди непосещённых равно бесконечности.&lt;br /&gt;
&lt;br /&gt;
== Пример реализации на Python ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import heapq&lt;br /&gt;
&lt;br /&gt;
def dijkstra(graph, start):&lt;br /&gt;
    distances = {vertex: float('infinity') for vertex in graph}&lt;br /&gt;
    distances[start] = 0&lt;br /&gt;
    priority_queue = [(0, start)]&lt;br /&gt;
&lt;br /&gt;
    while priority_queue:&lt;br /&gt;
        current_distance, current_vertex = heapq.heappop(priority_queue)&lt;br /&gt;
&lt;br /&gt;
        if current_distance &amp;gt; distances[current_vertex]:&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        for neighbor, weight in graph[current_vertex].items():&lt;br /&gt;
            distance = current_distance + weight&lt;br /&gt;
            if distance &amp;lt; distances[neighbor]:&lt;br /&gt;
                distances[neighbor] = distance&lt;br /&gt;
                heapq.heappush(priority_queue, (distance, neighbor))&lt;br /&gt;
&lt;br /&gt;
    return distances&lt;br /&gt;
&lt;br /&gt;
# Пример графа в виде словаря смежности&lt;br /&gt;
graph = {&lt;br /&gt;
    'A': {'B': 1, 'C': 4},&lt;br /&gt;
    'B': {'A': 1, 'C': 2, 'D': 5},&lt;br /&gt;
    'C': {'A': 4, 'B': 2, 'D': 1},&lt;br /&gt;
    'D': {'B': 5, 'C': 1}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print(dijkstra(graph, 'A'))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Химическая аналогия ==&lt;br /&gt;
Процесс поиска кратчайшего пути можно сравнить с [[Диффузия|диффузией]] вещества в среде с переменной проводимостью. Рассмотрим реакцию диффузии ионов через мембрану:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;chem&amp;gt;Na^+_{(aq)} + Cl^{-}_{(aq)} -&amp;gt;[\text{diffusion}] Na^+_{(membrane)} + Cl^{-}_{(membrane)}&amp;lt;/chem&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Скорость перемещения ионов аналогична «весу» ребра в графе — чем выше проводимость (меньше сопротивление), тем быстрее ион достигает цели, что соответствует меньшему весу ребра в алгоритме Дейкстры.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Dijkstra1959&amp;quot;&amp;gt;{{статья|автор=Dijkstra, E.W.|заглавие=A note on two problems in connexion with graphs|издание=Numerische Mathematik|год=1959|том=1|страницы=269—271}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Cormen&amp;quot;&amp;gt;{{книга|автор=Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К.|заглавие=Алгоритмы: построение и анализ|издание=2-е|место=М.|издательство=Вильямс|год=2005|страницы=595—601}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Алгоритм Беллмана — Форда]]&lt;br /&gt;
* [[Алгоритм Флойда — Уоршелла]]&lt;br /&gt;
* [[Алгоритм A*]]&lt;br /&gt;
* [[Теория графов]]&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* {{книга|автор=Дейкстра Э. В.|заглавие=Заметки по структурному программированию|место=М.|издательство=Мир|год=1975|страницы=34—45}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы на графах]]&lt;br /&gt;
[[Категория:Теория графов]]&lt;br /&gt;
{{DEFAULTSORT:Дейкстры, Алгоритм}}&lt;/div&gt;</summary>
		<author><name>Легостаев Максим</name></author>	</entry>

	</feed>