Репозиторий проекта "Безградиентная оптимизация в задаче светофорного регулирования" в рамках смены "Современные методы теории информации и оптимизации"
Для работы потребуется пакет traffic_model
, который в настоящий момент нельзя выкладывать в открытый доступ.
Чтобы его получить напишите мне на почту.
Создать виртуальное окружения и запулить зависимости:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.lock.txt
Настройка графа в sumo:
- Граничным нодам нужно прописывать property
end_node=true
- На полосе ставится N детекторов с названиями
{lane_id}_{n}_loop
. В начале входных полос дополнительно ставится детектор с название{lane_id}_start_loop
. Для установки детекторов можно использовать скриптadd_loop_detectors
- В
grid.net.xml
необходимо задавать базовые планы сprogramID="default"
- Для фаз в программе нужно добавлять поле
name
(основной такт -{phase_number}
, пром такты -{phase_number}_int
) tlLogic.id
должен совпадать сnode_id
на котором стоит светофор- Для оптимизации в папку со сценарием нужно добавить ограничения
plan_constraints.json
(можно использовать скриптadd_plan_constraints
)
В папке scripts
лежат следующие скрипты:
add_loop_detectors.py
- добавляет детекторы на граф транспортной сетиadd_plan_constraints.py
- строит ограничения для оптимизацииplot_score.py
- визуализация сходимости локального поиска
Как запускать:
python -m scripts.script_name [OPTIONS]