SUMO: Как реализовать алгоритм маршрутизации ACO

Sumo имеет код Dijkstra.h в каталоге маршрутизатора. Любая помощь в реализации алгоритма маршрутизации колонии муравьев, чтобы найти кратчайший путь от источника до места назначения?


person Dhaval Varia    schedule 18.12.2019    source источник


Ответы (1)


Если производительность во время выполнения не критична, я бы начал не с кода C ++, а с гораздо более короткой и понятной реализации Python в https://github.com/eclipse/sumo/blob/master/tools/sumolib/net/ init .py # L482 < / а>. Для начала вы можете спокойно пропустить все, что касается внутренних ребер, и получить алгоритм маршрутизации, работающий в сети сумо, примерно в 25 строках кода. Он всегда дает вам список ребер в качестве возврата, который вы можете либо передать в файл маршрута, либо динамически использовать с TraCI. Затем замените его собственным алгоритмом.

person Michael    schedule 31.12.2019
comment
Спасибо, Майкл. Означает ли это, что мне нужно заменить существующий код кратчайшего пути кодом муравьиной колонии? Если да, то как использовать это в Traci? - person Dhaval Varia; 01.01.2020
comment
Нет, не заменяя, просто добавьте другой метод. Затем вы должны вызвать свой новый метод из скрипта Python TraCI, извлечь все идентификаторы ребер и использовать метод setRoute транспортного средства. - person Michael; 02.01.2020
comment
Спасибо, Майкл, есть идея или справочный код по реализации ACO в init.py? - person Dhaval Varia; 05.01.2020
comment
Нет, к сожалению нет. - person Michael; 17.03.2020