# Библиотека для работы с графами
Этот код представляет собой класс для работы с графами, использующий библиотеки NetworkX и Matplotlib. Он позволяет создавать графы на основе координат вершин и связей между ними, вычислять расстояния между вершинами, находить кратчайший путь между двумя заданными вершинами с помощью алгоритма Дейкстры и отрисовывать графы с учетом кратчайшего пути.
## Установка
Для работы с этим кодом вам нужно установить Python 3.11 и выше и саму библиотеку:
`pip install dijkstra-for-robots`
## Использование
Для использования этого кода вам нужно импортировать класс Graph из файла main.py:
```python
from dijkstra_for_robots import Graph
```
Затем вам нужно создать объект класса Graph, передав ему координаты вершин и связи между ними в виде списков кортежей:
```python
coordinates = [
(1, 1.5),
(4, 1.5), (15, 1.5),
(15, 6.5), (12, 6.5),
(8, 6.5), (4, 6.5),
(1, 6.5), (1, 16),
(6, 16), (7, 13),
(9, 13), (12, 14),
(16, 14), (16, 18),
(12, 18), (9, 18),
(9, 19.5), (8, 19.5),
(8, 22), (6, 20),
(4, 20), (4, 22),
(10, 22), (10, 24),
(16, 24), (15, 24)
]
connections = {
(1, 1.5): [(4, 1.5)],
(4, 1.5): [(15, 1.5), (4, 6.5)],
(15, 1.5): [(15, 6.5)],
(15, 6.5): [(12, 6.5)],
(12, 6.5): [(8, 6.5)],
(8, 6.5): [(7, 13), (4, 6.5), (9, 13)],
(7, 13): [(9, 13)],
(9, 13): [(9, 18)],
(9, 18): [(9, 19.5), (12, 18)],
(9, 19.5): [(8, 19.5)],
(8, 19.5): [(8, 22)],
(8, 22): [(10, 22)],
(10, 22): [(10, 24)],
(10, 24): [(15, 24)],
(12, 18): [(16, 18)],
(16, 18): [(16, 24)],
(16, 24): [(15, 24)],
(7, 13): [(6, 16)],
(6, 16): [(6, 20)],
(6, 20): [(4, 20)],
(4, 20): [(4, 22)],
(4, 22): [(8, 22)],
(4, 6.5): [(1, 6.5)],
(1, 6.5): [(1, 16)],
(1, 16): [(6, 16)],
(12, 14): [(16, 14), (12, 18)],
(16, 14): [(16, 18)],
}
graph = Graph(coordinates, connections)
```
Для нахождения кратчайшего пути между двумя вершинами, вам нужно вызвать метод dijkstra_algorithm, передав ему координаты начальной и конечной вершины. Этот метод вернет список координат, составляющих кратчайший путь, и выведет его длину и последовательность на экран.
```python
shortest_path = graph.dijkstra_algorithm((1, 1.5), (15, 24))
```
Для отрисовки графа с учетом кратчайшего пути, вам нужно вызвать метод draw_graph, передав ему список координат кратчайшего пути. Этот метод создаст графическое окно, в котором вы увидите граф с метками вершин и ребер, а также выделенный кратчайший путь.
```python
graph.draw_graph(shortest_path)
```
Вы также можете использовать другие методы класса Graph, такие как:
- get_distances: возвращает список расстояний между всеми вершинами в графе.
- get_nodes: возвращает список всех вершин графа.
- get_outgoing_edges: возвращает список вершин, с которыми у заданной вершины есть связь.
- value: возвращает длину между двумя вершинами.
- calculate_distance: вычисляет расстояние между двумя координатами точек.
## Пример
Вот пример использования этого кода для создания и отрисовки графа, а также нахождения кратчайшего пути между двумя вершинами:
```python
"""Пример использования"""
# импорт самого класса
from dijkstra_for_robots import Graph
# сами координаты
coordinates = [
(1, 1.5),
(4, 1.5), (15, 1.5),
(15, 6.5), (12, 6.5),
(8, 6.5), (4, 6.5),
(1, 6.5), (1, 16),
(6, 16), (7, 13),
(9, 13), (12, 14),
(16, 14), (16, 18),
(12, 18), (9, 18),
(9, 19.5), (8, 19.5),
(8, 22), (6, 20),
(4, 20), (4, 22),
(10, 22), (10, 24),
(16, 24), (15, 24)
]
# пути куда можно пойти
connections = {
(1, 1.5): [(4, 1.5)],
(4, 1.5): [(15, 1.5), (4, 6.5)],
(15, 1.5): [(15, 6.5)],
(15, 6.5): [(12, 6.5)],
(12, 6.5): [(8, 6.5)],
(8, 6.5): [(7, 13), (4, 6.5), (9, 13)],
(7, 13): [(9, 13)],
(9, 13): [(9, 18)],
(9, 18): [(9, 19.5), (12, 18)],
(9, 19.5): [(8, 19.5)],
(8, 19.5): [(8, 22)],
(8, 22): [(10, 22)],
(10, 22): [(10, 24)],
(10, 24): [(15, 24)],
(12, 18): [(16, 18)],
(16, 18): [(16, 24)],
(16, 24): [(15, 24)],
(7, 13): [(6, 16)],
(6, 16): [(6, 20)],
(6, 20): [(4, 20)],
(4, 20): [(4, 22)],
(4, 22): [(8, 22)],
(4, 6.5): [(1, 6.5)],
(1, 6.5): [(1, 16)],
(1, 16): [(6, 16)],
(12, 14): [(16, 14), (12, 18)],
(16, 14): [(16, 18)],
}
# вызываются методы для нахождения кратчайшего пути и отрисовки графа с этим путем.
graph = Graph(coordinates, connections)
shortest_path = graph.dijkstra_algorithm((1, 1.5), (15, 24))
graph.draw_graph(shortest_path)
print(graph.value((1, 1.5), (4, 1.5)))
print(graph.get_nodes())
print(graph.construct_graph())
```
Raw data
{
"_id": null,
"home_page": "https://github.com/latwiks/dijkstra_for_robots",
"name": "dijkstra-for-robots",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "",
"keywords": "dijkstra robot robots \u0434\u0435\u0439\u043a\u0441\u0442\u0440\u0430 \u0434\u0435\u0439\u043a\u0441\u0442\u0440\u044b \u0440\u043e\u0431\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0443\u0442\u044c \u043f\u0443\u0442\u0438",
"author": "latwiks",
"author_email": "latwiks@vk.com",
"download_url": "https://files.pythonhosted.org/packages/52/25/cbaec95ee814509f7496f49cb8fb4c8ec54683906944e62ec22fa2c50f72/dijkstra_for_robots-1.0.4.tar.gz",
"platform": null,
"description": "# \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0430\u0444\u0430\u043c\u0438\r\n\r\n\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0430\u0444\u0430\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 NetworkX \u0438 Matplotlib. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0414\u0435\u0439\u043a\u0441\u0442\u0440\u044b \u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438.\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u044d\u0442\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Python 3.11 \u0438 \u0432\u044b\u0448\u0435 \u0438 \u0441\u0430\u043c\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443:\r\n`pip install dijkstra-for-robots`\r\n\r\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 Graph \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 main.py:\r\n\r\n```python\r\nfrom dijkstra_for_robots import Graph\r\n```\r\n\r\n\u0417\u0430\u0442\u0435\u043c \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 Graph, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043a\u043e\u0440\u0442\u0435\u0436\u0435\u0439:\r\n\r\n```python\r\ncoordinates = [\r\n (1, 1.5),\r\n (4, 1.5), (15, 1.5),\r\n (15, 6.5), (12, 6.5),\r\n (8, 6.5), (4, 6.5),\r\n (1, 6.5), (1, 16),\r\n (6, 16), (7, 13),\r\n (9, 13), (12, 14),\r\n (16, 14), (16, 18),\r\n (12, 18), (9, 18),\r\n (9, 19.5), (8, 19.5),\r\n (8, 22), (6, 20),\r\n (4, 20), (4, 22),\r\n (10, 22), (10, 24),\r\n (16, 24), (15, 24)\r\n]\r\n\r\nconnections = {\r\n (1, 1.5): [(4, 1.5)],\r\n (4, 1.5): [(15, 1.5), (4, 6.5)],\r\n (15, 1.5): [(15, 6.5)],\r\n (15, 6.5): [(12, 6.5)],\r\n (12, 6.5): [(8, 6.5)],\r\n (8, 6.5): [(7, 13), (4, 6.5), (9, 13)],\r\n (7, 13): [(9, 13)],\r\n (9, 13): [(9, 18)],\r\n (9, 18): [(9, 19.5), (12, 18)],\r\n (9, 19.5): [(8, 19.5)],\r\n (8, 19.5): [(8, 22)],\r\n (8, 22): [(10, 22)],\r\n (10, 22): [(10, 24)],\r\n (10, 24): [(15, 24)],\r\n (12, 18): [(16, 18)],\r\n (16, 18): [(16, 24)],\r\n (16, 24): [(15, 24)],\r\n (7, 13): [(6, 16)],\r\n (6, 16): [(6, 20)],\r\n (6, 20): [(4, 20)],\r\n (4, 20): [(4, 22)],\r\n (4, 22): [(8, 22)],\r\n (4, 6.5): [(1, 6.5)],\r\n (1, 6.5): [(1, 16)],\r\n (1, 16): [(6, 16)],\r\n (12, 14): [(16, 14), (12, 18)],\r\n (16, 14): [(16, 18)],\r\n}\r\ngraph = Graph(coordinates, connections)\r\n```\r\n\r\n\u0414\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 dijkstra_algorithm, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0432\u0435\u0440\u043d\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c, \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0443 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d.\r\n\r\n```python\r\nshortest_path = graph.dijkstra_algorithm((1, 1.5), (15, 24))\r\n```\r\n\r\n\u0414\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0433\u0440\u0430\u0444\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 draw_graph, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u043c\u0443 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043a\u043d\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0433\u0440\u0430\u0444 \u0441 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0440\u0435\u0431\u0435\u0440, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c.\r\n\r\n```python\r\ngraph.draw_graph(shortest_path)\r\n```\r\n\r\n\u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Graph, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a:\r\n\r\n- get_distances: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0432\u0441\u0435\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438 \u0432 \u0433\u0440\u0430\u0444\u0435.\r\n- get_nodes: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0448\u0438\u043d \u0433\u0440\u0430\u0444\u0430.\r\n- get_outgoing_edges: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0435\u0440\u0448\u0438\u043d, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0443 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0435\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u044c.\r\n- value: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438.\r\n- calculate_distance: \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0442\u043e\u0447\u0435\u043a.\r\n\r\n## \u041f\u0440\u0438\u043c\u0435\u0440\r\n\r\n\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0433\u0440\u0430\u0444\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438:\r\n\r\n```python\r\n\"\"\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\"\"\"\r\n# \u0438\u043c\u043f\u043e\u0440\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430\r\nfrom dijkstra_for_robots import Graph\r\n# \u0441\u0430\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b\r\ncoordinates = [\r\n (1, 1.5),\r\n (4, 1.5), (15, 1.5),\r\n (15, 6.5), (12, 6.5),\r\n (8, 6.5), (4, 6.5),\r\n (1, 6.5), (1, 16),\r\n (6, 16), (7, 13),\r\n (9, 13), (12, 14),\r\n (16, 14), (16, 18),\r\n (12, 18), (9, 18),\r\n (9, 19.5), (8, 19.5),\r\n (8, 22), (6, 20),\r\n (4, 20), (4, 22),\r\n (10, 22), (10, 24),\r\n (16, 24), (15, 24)\r\n]\r\n\r\n# \u043f\u0443\u0442\u0438 \u043a\u0443\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438\r\nconnections = {\r\n (1, 1.5): [(4, 1.5)],\r\n (4, 1.5): [(15, 1.5), (4, 6.5)],\r\n (15, 1.5): [(15, 6.5)],\r\n (15, 6.5): [(12, 6.5)],\r\n (12, 6.5): [(8, 6.5)],\r\n (8, 6.5): [(7, 13), (4, 6.5), (9, 13)],\r\n (7, 13): [(9, 13)],\r\n (9, 13): [(9, 18)],\r\n (9, 18): [(9, 19.5), (12, 18)],\r\n (9, 19.5): [(8, 19.5)],\r\n (8, 19.5): [(8, 22)],\r\n (8, 22): [(10, 22)],\r\n (10, 22): [(10, 24)],\r\n (10, 24): [(15, 24)],\r\n (12, 18): [(16, 18)],\r\n (16, 18): [(16, 24)],\r\n (16, 24): [(15, 24)],\r\n (7, 13): [(6, 16)],\r\n (6, 16): [(6, 20)],\r\n (6, 20): [(4, 20)],\r\n (4, 20): [(4, 22)],\r\n (4, 22): [(8, 22)],\r\n (4, 6.5): [(1, 6.5)],\r\n (1, 6.5): [(1, 16)],\r\n (1, 16): [(6, 16)],\r\n (12, 14): [(16, 14), (12, 18)],\r\n (16, 14): [(16, 18)],\r\n}\r\n\r\n# \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0433\u0440\u0430\u0444\u0430 \u0441 \u044d\u0442\u0438\u043c \u043f\u0443\u0442\u0435\u043c.\r\ngraph = Graph(coordinates, connections)\r\nshortest_path = graph.dijkstra_algorithm((1, 1.5), (15, 24))\r\ngraph.draw_graph(shortest_path)\r\nprint(graph.value((1, 1.5), (4, 1.5)))\r\nprint(graph.get_nodes())\r\nprint(graph.construct_graph())\r\n```\r\n",
"bugtrack_url": null,
"license": "",
"summary": "\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0440\u043e\u0431\u043e\u0442\u0430 \u043f\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0435.",
"version": "1.0.4",
"project_urls": {
"GitHub": "https://github.com/latwiks/dijkstra_for_robots",
"Homepage": "https://github.com/latwiks/dijkstra_for_robots"
},
"split_keywords": [
"dijkstra",
"robot",
"robots",
"\u0434\u0435\u0439\u043a\u0441\u0442\u0440\u0430",
"\u0434\u0435\u0439\u043a\u0441\u0442\u0440\u044b",
"\u0440\u043e\u0431\u043e\u0442",
"\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c",
"\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430",
"\u043f\u0443\u0442\u044c",
"\u043f\u0443\u0442\u0438"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5225cbaec95ee814509f7496f49cb8fb4c8ec54683906944e62ec22fa2c50f72",
"md5": "ad72aab62175f983109fcc6f4523fa1f",
"sha256": "c3cb4302cde197a07c880cbcc63b9fe5eadf8055e2241e3b7ded5833153e24ec"
},
"downloads": -1,
"filename": "dijkstra_for_robots-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "ad72aab62175f983109fcc6f4523fa1f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 5782,
"upload_time": "2024-02-21T18:13:12",
"upload_time_iso_8601": "2024-02-21T18:13:12.539674Z",
"url": "https://files.pythonhosted.org/packages/52/25/cbaec95ee814509f7496f49cb8fb4c8ec54683906944e62ec22fa2c50f72/dijkstra_for_robots-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-21 18:13:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "latwiks",
"github_project": "dijkstra_for_robots",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "dijkstra-for-robots"
}