Skip to content

Run Config with SMC

smart-fm edited this page Nov 9, 2018 · 1 revision

To run Smart Mobility Controller the following configurations are required in the XML files

configuration in simulation.xml

  • controller id: id to which drivers are subscribed in the taxi_fleet table in the database.

  • controller type: types are specified in the xml file. For more info about the each controller click here

  • vehicleIds: not used anymore

  • scheduleComputationPeriod: This value indicates the number of time ticks after which controller will compute the schedule. e.g. in Mid-term if this value set to 1 means every 5 sec the schedule will be computed. in short-term the same configuration indicates it will compute the schedule every 100ms

  • maxFleetSize: taxi_fleet table will contains the fleet but the overall fleet size can be configured through this configuration. e.g. if taxi_fleet stored procedure returns 20K drivers and maxFleetSize=10K then the simulation will run only with 10K drivers, if taxi_fleet stored procedure returns 5K and maxFleetSize=10K then the simulation will run only with 5K drivers

  • tripSupportMode: in the Daily Activity Schedule (DAS), travellers choose a mode. Each controller can support one or more modes. The modes available now are: "Rail_SMS_Pool" "AMOD_Pool" "Rail_SMS" "SMS_Pool" "SMS" "AMOD". SMS indicates Smart Mobility Services, with human-driven cars, AMOD mobility services served by automated cars. If the mode is just "SMS" or "AMOD", it means that the traveller intends to use just SMS or AMOD for the trip. If "Rail" is specified as prefix, the travellers intends to use the mobility service as first and last mile service to connect to the train. If "Pool" is used as suffix, it means that the traveller is willing to share the trip with others. If no such suffix is specified, the traveller want to be alone in her trip.

  • rebalancerType: There are different types of "rebalancer". In shared/entities/controllers/Rebalancer.hpp you can see the various rebalancer classes that extend the parent Rebalancer class. Currently, we have LazyRebalancer (default if none is specified), SimpleRebalancer and KasiaRebalancer. To select or change the rebalancer in use, modify the parameter rebalancerType in the simulation.xml file as follows:

    • 1 : selects the LazyRebalancer (does nothing; essentially no rebalancing)
    • 2 : selects the SimpleRebalancer (sends a vehicle to cruise at each node a request is made)
    • 3 : selects the KasiaRebalancer (solves an LP to minimize travel time for zone-based redispatching)
  • rebalancingInterval: to select the interval at which the rebalancing is performed during the simulation, modify the rebalancingInterval parameter that follows in the controller field. The number represents the number of frames in the simulation. For instance, if the base granularity is set to 5 seconds, then a rebalancingInterval of 720 frames will correspond to 1 hr, which means that the selected rebalancing routine will be executed every hour.

<mobilityServiceController enabled="true">
<!--  SERVICE_CONTROLLER_UNKNOWN = 0,
      SERVICE_CONTROLLER_ON_HAIL = 1,
      SERVICE_CONTROLLER_GREEDY = 2,
      SERVICE_CONTROLLER_SHARED = 3,
      SERVICE_CONTROLLER_FRAZZOLI = 4,
      SERVICE_CONTROLLER_INCREMENTAL = 5,
      SERVICE_CONTROLLER_PROXIMITY = 6,
      SERVICE_CONTROLLER_AMOD = 7

Note: Controller id indicates the subscribed_controller field specified in the taxi_fleet table-->

     <!-- Trip Support Modes available
    "Rail_SMS_Pool" "AMOD_Pool" "Rail_SMS" "SMS_Pool" "SMS" "AMOD"
    -->

    <controller id="16" type="7" tripSupportMode = "|AMOD|AMOD_Pool|" vehicleIds="" scheduleComputationPeriod="1" maxFleetSize="500" rebalancerType="3" rebalancingInterval="720"/> -->
    <controller id="5" type="3" tripSupportMode = "|SMS|SMS_Pool|Rail_SMS|Rail_SMS_Pool|" vehicleIds="" scheduleComputationPeriod="1" maxFleetSize="5000"/>
    <controller id="4" type="1" tripSupportMode = "|Taxi|" vehicleIds="" scheduleComputationPeriod="1" maxFleetSize="4000"/>
</mobilityServiceController>

configuration in simrun_MidTerm.xml

  • taxi_fleet: input for taxi fleet supply
  • sms_parking: location for parking stations. If this stored procedure is not supplied then the SMS vehicles will keep roaming between pickup and drop-off
  • rail_sms_pathset/rail_sms_edges/rail_sms_vertices: Input for first mile or last mile route choice
 <!-- Smart Mobility Controller related stored procedures -->
            <mapping name="taxi_fleet" procedure="get_taxi_fleet_on_call_test_simon"/>
            <mapping name="sms_parking" procedure="get_all_parking()"/>
            <mapping name="rail_sms_pathset" procedure="get_pt_pathset_tr_sms_mrt"/>
            <mapping name="rail_sms_edges" procedure="get_pt_tr_edges_sms_mrt()"/>
            <mapping name="rail_sms_vertices" procedure="get_pt_tr_vertices_sms_mrt()"/>
Clone this wiki locally