First of all .. Thank you very much for the help!

I tried to apply the penalties with a basic code consisting out of 
.setAdaptedTraveltime and search for new routes with .findRoute . But 
unfortunately when I want to .setRoute the new route of .findRoute, I get an 
error. Furthermore the actually supposed to be different routes 
(route_1,route_2 and route_3) are all the same. So my questions for the code 
below:


Q1: Why is the setRoute function not working for the .findRoute --> new_route ?

Q2: Why is findRoute not finding different routes due to the penalyzed weights 
of the edges with setAdaptedTraveltime?

Q3: Is the findRoute using the currentTravelTimes like reroute and if not, how 
is it possible?

Q4: How can I set the adapedTraveltime back to the current after finding a new 
route?


def run():
    step = 0
    while traci.simulation.getMinExpectedNumber() >0:
        traci.simulationStep()
        print(step)
        step+=1
        det_vehs = traci.inductionloop.getLastStepVehicleIDs("det_0")   
#creates an induction loop
        IDlist = traci.vehicle.getIDList()                              
#creates a list of all current vehicle in the simulation
        assign = 1
        if step > 40:
            for veh in det_vehs:
                traci.vehicle.setSpeed(veh, 0.0)                        #sets 
the speed of the vehicle,
                                                                        # which 
drives on the induction loop, to zero
                for veh_1 in IDlist:
                    traci.vehicle.setRoutingMode(veh_1, 1)              #sets 
the RoutingMode to aggregated
                    #traci.vehicle.rerouteTraveltime(veh_1)             
#reroutes the vehicles

                    current_start = traci.vehicle.getRoadID(veh_1)
                    trip = traci.vehicle.getRoute(veh_1)
                    end = trip[-1]

                    if assign == 1:                                             
        #assignment on/off
                        route_inf_1 = traci.simulation.findRoute(current_start, 
end)    #findRoute with all information
                        route_1 = route_inf_1[4]                                
        #just list of edges of findRoute

                        for edges1 in route_1:                                  
        #penalyzing
                             traci.vehicle.setAdaptedTraveltime(veh_1, edges1, 
90.0)
                        route__inf_2 = 
traci.simulation.findRoute(current_start, end)   #new route find with penalyzed
                        route_2 = route__inf_2[4]                               
        #just list of edges of findRoute
                        for edges2 in route_2:
                             traci.vehicle.setAdaptedTraveltime(veh_1, edges2, 
90.0 )   #penalyzing
                        route_inf_3 = traci.simulation.findRoute(current_start, 
end)    #new route find with penalyzed
                        route_3 = route_inf_3[4]                                
        #just list of edges of findRoute

                        new_route = random.choice([route_1, route_2, route_3])
                        if len(new_route) > 1:                                  
        #check vehicle is at final
                            traci.vehicle.setRoute(veh_1, new_route)
    traci.close()
    sys.stdout.flush()


--> Error:
Traceback (most recent call last):
  File 
"G:/TE-F1/Studenten/Hoffmann_Pascal/04_Simulation/ma_routing_via_traci/input.py",
 line 78, in <module>
    run()
  File 
"G:/TE-F1/Studenten/Hoffmann_Pascal/04_Simulation/ma_routing_via_traci/input.py",
 line 61, in run
    traci.vehicle.setRoute(veh_1, new_route)
  File "C:\Program Files (x86)\Eclipse\Sumo\tools\traci\_vehicle.py", line 
1124, in setRoute
    self._connection._sendExact()
  File "C:\Program Files (x86)\Eclipse\Sumo\tools\traci\connection.py", line 
112, in _sendExact
    raise TraCIException(err, prefix[1], _RESULTS[prefix[2]])
traci.exceptions.TraCIException: Route replacement failed for carflow_1.1


________________________________
Von: [email protected] <[email protected]> im Auftrag 
von Jakob Erdmann <[email protected]>
Gesendet: Montag, 8. Juli 2019 16:46:16
An: Sumo project User discussions
Betreff: Re: [sumo-user] Using own created assignment

1) start sumo with option --routing-algorithm astar
2) You can apply the penalties yourself by increasing the weight/traveltime for 
all edges in the previously found routes.
3) Yes. See 
https://sumo.dlr.de/wiki/Simulation/Routing#Travel-time_values_for_routing

regards,
Jakob

Am Mo., 8. Juli 2019 um 16:28 Uhr schrieb Hoffmann, Pascal 
<[email protected]<mailto:[email protected]>>:

Dear sumo-users,


I am using SUMO via TraCI. My target is to assign vehicles in case of 
congestion randomly on a set of alternative path to reduce waiting times. So 
far I'm rerouting with the TraCI rerouters, but now I want to implement my own 
assignment. Therefore I want to ask some questions:


Q1: Is it possible to use the "build in" astar routing algorithm 
(AStarRouter.h?) via TraCI and if, how?


Q2: I know that SUMO uses the penalty method in the MARouter to find 
alternative routes. But so far, I couldn't find, where and how it was realized 
to adapt this method for the astar multi-path.


Q3: Is it possible to adapt the traci.vehicle.rerouteTraveltime especially with 
the aggregated travel times in a new external python script to use the "new" 
made routing algorithm concerned in Q1&Q2?


Thanks in advance!


Best regards,

Pascal

_______________________________________________
sumo-user mailing list
[email protected]<mailto:[email protected]>
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to