Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 5, 2013 02:44:49

alexashka
Зарегистрирован: 2013-11-05
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Алгоритм выбора пути в зависимости от условий задачи

Здравствуйте.

Уважаемые специалисты, прошу помощи для выбора направлении решения.
Дано:
————————-
50 42 80 <- ID 1
————————-
45 60 80 <- ID 2
————————-
50 60 60 <- ID 3
————————
Грубо говоря - Есть три дороги с тремя разными отрезками пути, по которым можно двигаться с разной сторостью.
После любого отрезка пути можно переместиться на другую дорогу.
Требуется перебрать все возможные варианты перемещения и выбрать наиболее быстрый путь.
Записи по каждому ID находятся в базе (Django)
То есть варианты движения
ID1(1)-ID1(2)-ID1(3)
ID1(1)-ID2(2)-ID1(3)
ID1(1)-ID2(2)-ID2(3) и так далее.
С 1 на 3 дорогу тоже можно перемещаться(условно они расположены одна над другой).
Если кто сталкивался с подобной задачей- прошу совета, каким образом эффективно организовать перебор наборов вариантов в данной матрице значений.

Заранее благодарю за ответы.

Офлайн

#2 Ноя. 5, 2013 04:21:42

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Алгоритм выбора пути в зависимости от условий задачи

Похоже все сводится к поиску кратчайшего пути на графе? Какой размер данных? ИМХО, лучше всего все данные в память. Если такие расчеты все время, то в отдельный процесс.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Ноя. 5, 2013 06:00:21

alexashka
Зарегистрирован: 2013-11-05
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Алгоритм выбора пути в зависимости от условий задачи

В память- устроит, размер данных небольшой- максимум 10-15 записей “каждой дороги”, количество узлов- в обычном случае- от 3 до 10. Теоретически может быть и 20-30, но в редких случаях. Рассчет не постоянный, потребовалось- просчитали.
Если не тяжело, подскажите пожалуйста, как это правильно реализовать.
Вопросы- какой правильный массив для хранения этих данных сформировать(какая структура), как построить все возможные варианты “путей”, в каком виде хранить их в памяти с результатами просчета, чтобы сравнив итоговые значения можно было бы указать верный путь.
И, прошу прощения, совсем забыл уточнить- возможны условия на узле, что-то вроде “на второй узел ID2 нельзя переехать, если предыдущая дорога была ID1”.
Откровенно говоря, полный ноль в высшей математике, незнаю даже откуда подступиться.

Офлайн

#4 Ноя. 5, 2013 06:34:13

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Алгоритм выбора пути в зависимости от условий задачи

Ну в таком случае, наверное, проще всего будет взять готовую библиотеку, вот эту, например. Каждых участок становится ребром графа, скорость на участке - весом ребра, а точки начала, конца и перехода между дорогами - вершинами. Потом воспользоваться pygraph.algorithms.minmax.shortest_path, описание этого метода можно почитать здесь



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Ноя. 5, 2013 07:26:49

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Алгоритм выбора пути в зависимости от условий задачи

ну какой граф ) Тут же короткий путь будет равен последовательности из минимумов каждого столбца(отрезка)

Отредактировано sergeek (Ноя. 5, 2013 07:28:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version