Sumo имеет код Dijkstra.h в каталоге маршрутизатора. Любая помощь в реализации алгоритма маршрутизации колонии муравьев, чтобы найти кратчайший путь от источника до места назначения?
SUMO: Как реализовать алгоритм маршрутизации ACO
Ответы (1)
Если производительность во время выполнения не критична, я бы начал не с кода C ++, а с гораздо более короткой и понятной реализации Python в https://github.com/eclipse/sumo/blob/master/tools/sumolib/net/ init .py # L482 < / а>. Для начала вы можете спокойно пропустить все, что касается внутренних ребер, и получить алгоритм маршрутизации, работающий в сети сумо, примерно в 25 строках кода. Он всегда дает вам список ребер в качестве возврата, который вы можете либо передать в файл маршрута, либо динамически использовать с TraCI. Затем замените его собственным алгоритмом.
person
Michael
schedule
31.12.2019
Спасибо, Майкл. Означает ли это, что мне нужно заменить существующий код кратчайшего пути кодом муравьиной колонии? Если да, то как использовать это в Traci?
- person Dhaval Varia; 01.01.2020
Нет, не заменяя, просто добавьте другой метод. Затем вы должны вызвать свой новый метод из скрипта Python TraCI, извлечь все идентификаторы ребер и использовать метод setRoute транспортного средства.
- person Michael; 02.01.2020
Спасибо, Майкл, есть идея или справочный код по реализации ACO в init.py?
- person Dhaval Varia; 05.01.2020
Нет, к сожалению нет.
- person Michael; 17.03.2020