Вы находитесь на странице: 1из 5

Киргашева Суанда Руслановна

Колесникова Антонина Владимировна

Армавирский Государственный Педагогический Университет

студентки 3 курса Института русской и иностранной филологии

Научный руководитель: ст. пр. Лапшин Н.А

«Алгоритм Дейкстры» и его применение.

Ключевые слова: алгоритм Дейкстры, граф, вес, узлы, данные, кратчайший путь.

Kirgasheva Suanda Ruslanovna

Kolesnikova Antonina Vladimirovna

Armavir State Pedagogical University

3rd year students of Institute of Russian and Foreign Philology

Scientific supervisor: N. A. Lapshin, senior lecturer.

"Dijkstra's algorithm" and its application.

Keywords: Dijkstra algorithm, graph, weight, nodes, data, shortest path.

Армавир, 2020
Аннотация: В статье освещается особенность алгоритма Дейкстры как способа
нахождения кратчайшего пути. Рассматривается вопрос возникновения алгоритма, и
определяется круг задач, решаемых им. Даётся целостный взгляд на применение
алгоритма Дейкстры в жизни.

Ключевые слова: алгоритм Дейкстры, граф, вес, узлы, данные, кратчайший


путь.

В информационных технологиях есть ряд проблем, требующих нахождения


кратчайший путь между множеством точек. Применения многочисленны и просты –
от спутниковой навигации до маршрутизации интернет-пакетов; даже поиск самого
короткого провода, необходимого для соединения контактов на печатной плате,
является примером проблемы кратчайшего пути. Поскольку проблемы такого типа
возникают неоднократно, существует ряд стандартных алгоритмов, которые можно
использовать для поиска решения. Один из них известен как алгоритм Дейкстры,
разработанный голландским физиком Эдсгер Дейкстром в 1956 году, когда ему
пришла идея о том, как рассчитать кратчайший путь из Роттердама в Гронинген.

«Какой самый короткий способ добраться из Роттердама в Гронинген в целом:


из заданного города в заданный. Это алгоритм кратчайшего пути, который я
разработал примерно за двадцать минут. Одна из причин, по которой алгоритм так
красив, заключалась в том, что я разработал его без карандаша и бумаги. Позже я
узнал, что одно из преимуществ проектирования без карандаша и бумаги состоит в
том, что вы почти вынуждены избегать всех сложностей, которых можно избежать.
В конце концов, этот алгоритм стал, к моему большому изумлению, одним из
краеугольных камней моей славы».

Эдсгер Дейкстра, в интервью Филиппу Л. Франа, ACM Press, 2001.

Алгоритм Дейкстры – это алгоритм для поиска кратчайших путей между


узлами в графе, которые могут представлять, например, дорожные сети. Он был
задуман компьютерным в 1956 году и опубликован тремя годами позже.

Данный алгоритм работает на взвешенном графе. Графы могут быть:


– Неориентированные: для каждой пары соединенных узлов можно перейти от
одного узла к другому в обоих направлениях.

– Ориентированные: если для каждой пары соединенных узлов можно перейти


только от одного узла к другому в определенном направлении.

Алгоритм Дейкстры может работать только с графами, имеющими


положительные веса. Это происходит из-за того, что во время процесса веса ребер
должны быть добавлены, чтобы найти кратчайший путь.

Каждый узел (также называемый вершиной) хранит данные, относящиеся к


сценарию. К примеру, если используется график для хранения данных для карты,
каждый узел может представлять город и может хранить название города. Если
используется график для хранения данных о локальной сети, каждый узел может
представлять сетевое устройство и может хранить IP-адрес и физическое
местоположение устройства.

Связи между узлами называются ребрами (иногда называемыми дугами). В


взвешенном графе эти ребра имеют связанный с ними вес (или стоимость). В
графике, представляющем карту, края могут представлять автомобильное или
железнодорожное сообщение между городами, а вес может представлять время,
которое нужно пройти между городами. В сетевом графе ребра обычно
представляют соединения между устройствами, такими как Ethernet или
оптоволоконные кабели. В этом случае вес может представлять задержку,
вызванную соединением.

К примеру, если узлы графа представляют города, а затраты на граничные пути


представляют собой расстояния между парами городов, соединенных прямой
дорогой, можно использовать алгоритм Дейкстры. Найти кратчайший маршрут
между одним городом и всеми другими городами. Широко используемым
приложением алгоритма кратчайшего пути являются протоколы сетевой
маршрутизации, в первую очередь IS-IS (от промежуточной системы к
промежуточной системе) и сначала открытый кратчайший путь (OSPF). Он также
используется в качестве подпрограммы в других алгоритмах, таких как алгоритм
Джонсона.

Если на графе есть отрицательный вес, то алгоритм не будет работать должным


образом. Как только узел помечен как "посещенный", текущий путь к этому узлу
помечается как кратчайший путь для достижения этого узла. И отрицательные веса
могут изменить это, если общий вес может быть уменьшен после того, как этот шаг
произошел.

В задачах кратчайшего пути в приоритете «лучший» способ того, чтобы


добраться от одного узла к другому. Это называется «путь наименьшей стоимости».
Стоимость пути рассчитывается путем сложения всех индивидуальных весов для
ребер, составляющих путь.

Алгоритм Дейкстры может использоваться для решения широкого круга


сложных задач. Он написан в контексте взвешенных графов, поэтому весь язык
отражает это (узлы, затраты и т. Д.). Однако это решение будет работать со всем,
что можно абстрагировать до серии узлов, которые связаны и имеют значения,
привязанные к этим соединениям. Его можно использовать для управления сетями,
для управления движением злоумышленников в видеоиграх или для направления
автомобилей по их маршруту.

Список используемой литературы

1. Dijkstra E. W. A note on two problems in connexion with graphs (англ.) //


Numer., 1959. — Vol. 1, Iss. 1. — 269—271 с.
2. William Aspray, Martin Campbell-Kelly (англ.) // Computer: A History of the
Information Machine., 1996. – 173 c.
3. Иванов, Б. Н. Дискретная математика. Алгоритмы и программы.
Расширенный курс / Б. Н. Иванов. – Москва : Известия, 2011. – 89 с.
4. Левитин А. В. Глава 9. Жадные методы: Алгоритм Дейкстры // Алгоритмы.
Введение в разработку и анализ — М.: Вильямс, 2006. 110. — 485 с.
5. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд
Штайн. Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-е изд. —
М.: «Вильямс», 2006. — 129 с.
6. Евстигнеев В.А., Мельников Л.С. Теория графов в комбинаторике. -
Новосибирск: НГУ, 1981. - 25 с.