dijkstra-for-robots


Namedijkstra-for-robots JSON
Version 1.0.4 PyPI version JSON
download
home_pagehttps://github.com/latwiks/dijkstra_for_robots
SummaryСистема навигации робота по глобальной карте.
upload_time2024-02-21 18:13:12
maintainer
docs_urlNone
authorlatwiks
requires_python>=3.11
license
keywords dijkstra robot robots дейкстра дейкстры робот алгоритм библиотека путь пути
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Библиотека для работы с графами

Этот код представляет собой класс для работы с графами, использующий библиотеки 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"
}
        
Elapsed time: 0.19396s