Вены: Как проверить, использует ли изменение маршрута пользовательский алгоритм - PullRequest
0 голосов
/ 08 ноября 2018

Я использую вены 4.6 и пытаюсь оценить изменение выбросов из-за различных протоколов маршрутизации. Исследуя сайт SUMO, мне удалось заложить основу для эксперимента. На данный момент я использую демо-приложение вен с небольшими изменениями конфигурации. Вот содержимое моего erlangen.sumo.cfg файла:

<?xml version="1.0" encoding="iso-8859-1"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/sumoConfiguration.xsd">

<input>
    <net-file value="erlangen.net.xml"/>
    <route-files value="erlangen.rou.xml"/>
    <additional-files value="erlangen.poly.xml"/>
</input>

<time>
    <begin value="0"/>
    <end value="400"/>
    <step-length value="1"/>
</time>

<routing>
    <routing-algorithm value="CHWrapper"/>
    <device.rerouting.probability value="1"/>       
</routing>

<emissions>
    <device.emissions.probability value="1"/>
</emissions>

<report>
    <no-step-log value="true"/>
</report>

<gui_only>
    <start value="true"/>
</gui_only>

<output>
    <fcd-output value="erlangen.fcd.xml"/>
    <emission-output value="erlangen.emission.xml"/>
    <tripinfo-output value="erlangen.trip_info.xml"/>
    <vehroute-output value="erlangen.route_followed.xml"/>
    <summary value="erlangen.summary.xml" />
</output>
</configuration>

Содержимое файла маршрутов ( erlangen.rou.xml ) выглядит следующим образом:

<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">

<vType id="passenger" vClass="passenger" accel="2.6" decel="4.5" sigma="0.5" length="2.5" minGap="2.5"  
maxSpeed="120" guiShape="passenger/sedan" color="1,0,0" emissionClass="HBEFA3/LDV_G_EU4">   
    <param key="has.emission.device" value="true"/>
    <param key="has.rerouting.device" value="true"/>
    <param key="device.fcd.probability" value="1"/>
</vType>

<flow id="flow0" type="passenger" from="3013106#1" to="29900564#1" begin="0" period="3" number="30" />

erlangen.net.xml без изменений и в omnetpp.ini я изменил *. ConnectionManager.maxInterfDist только с 2600 до 100 м.

Используя эти конфигурации, я запустил симуляцию с использованием алгоритма A * и CHWrapper, но результат обоих - полное копирование. На рисунке ниже видно, что после изменения маршрута узел 25 - 29 следовал по другому пути, но в обоих случаях они одинаковы.

enter image description here

Результаты Tripinfo приведены ниже, как обсуждено здесь"tripinfo_rerouteNo" ясно показывает, что узлы были перенаправлены.

enter image description here

Теперь у меня в голове вращается следующее:

  1. Успешно ли применены алгоритмы маршрутизации (установлено в erlangen.sumo.cfg) или в обоих случаях использовался Dijkstra по умолчанию?
  2. Алгоритмы маршрутизации успешно применены, но результаты те же, потому что сеть была недостаточно перегружена / не имеет достаточного количества альтернативных путей. Так что мне нужно сменить сеть с несколькими подсчетами аварий и т. Д.
  3. Я не понимаю, как здесь работает изменение маршрута.

Я застрял здесь, любые указания будут высоко оценены.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Можно проверить, используя образец сети, как показано ниже:

enter image description here

В моем тестовом примере я установил начальную позицию транспортных средств как крайнюю левую крайнюю полосу движения, а пунктом назначения была верхняя полоса того же края. UTurn не был реализован, поэтому транспортные средства должны были проходить через перекресток, и FCD для каждого алгоритма значительно отличался.

0 голосов
/ 10 ноября 2018

Снаружи нелегко сказать, какой алгоритм маршрутизации был применен, но я бы предположил, что 2. является правильным решением. Разные алгоритмы в основном отличаются тем, как они могут обрабатывать динамические изменения веса ребра в зависимости от скорости расчета, но в большинстве случаев они должны давать один и тот же результат. Возможно, вы захотите попробовать опцию scale, чтобы легко увеличить трафик, или установить для device.rerouting.period значение, например, 10 (секунд), чтобы включить периодическое изменение маршрута транспортных средств, чтобы увидеть больше эффектов. Также может помочь установка weights.random-factor на большое значение.

...