Temporal problem generator for evaluating the BCDR/CDRU implementations. Currently it supports the creation of three types of problems:
-
AUV: multi-vehicle scheduling problems from autonomous underwater vehicle mission scenarios. It can be configured to support ser-bounded and probabilistic durations, chance constraints, and relaxable constraints.
-
PSP: scheduling problems from partial ordered activities for Resource-Constrained Project Scheduling Problems. Currently it only supports dynamic controllability model. The relaxable version of this problem uses the maximum flexibility objective.
-
Vehicle dispatch scheduling problems generated from Boston's Red Line subway schedule. It can be solved with either string or dynamic controllability model, and the relaxable version uses the minimal cost objective.
The datasets used by this generator are:
-
MBTA GTFS data: http://www.mbta.com/rider_tools/developers/default.asp?id=21895. Unzip the GTFS files and place it under the data/MBTA_GTFS directory.
-
Partially-Scheduled RCPSPs (included in this repo): kindly provided by Patrik Haslum (http://users.cecs.anu.edu.au/~patrik/).
-
AUV: open class
TestGeneratorCCTPin packagemission_plan. The scale of the generated problems are controlled by the following parameters:-
Nvehicles: number of parallel vehicle operations. Larger value means more parallel threads, which makes the problem lookwide. -
Nmissions: number of missions per vehicle. Larger value means more sequential constraints, which makes the problem looklong. -
OutputFolderandOutputFileHeader: specifies the output problem location and file prefixes. -
Leave both
optionLimitLandoptionLimitLto be 1 if no choices are allowed in the output problems. -
To generate *.cctp files, you may use the
IO_CCTP.saveCCTPfunction. -
To generate **.tpn filess, you may use the
IO_CCTP.saveCCTPasTPNfunction.
-
-
PSP: open class
TestGeneratorMaxFlexibilityin packagercpsp. It will convert the RCPSP files under the data/RCPSP_data/J10 directory to scheduling problems in either CCTP or TPN format.-
By default the output problem contains relaxable durations. To disable them, locate line 91 and change both boolean parameters in function
Episode newActivity = createEpisode(...)to be false. -
Similarly, to generate *.cctp files, you may use the
IO_CCTP.saveCCTPfunction. To generate **.tpn filess, you may use theIO_CCTP.saveCCTPasTPNfunction.
-
-
Transit Vehicle Dispatch: open class
TestGeneratorin packagebus_schedule. It extracts route schedule from MBTA's GTFS data and generate scheduling problems for maintaining adequate headways. The following are the key parameters for this generator.-
date,dayandday_of_week: they define the schedule of the date from which the problems are created. Please make sure that the Stringdatais consistent with the integerday, andday_of_week. Also when selecting the date, make sure that it is within the range of dates covered by th GTFS you downloaded from MBTA's website. -
route_idanddirection: they define the route and direction from which the scheduling problems are generated from. You may find all route_id values in theroutes.txtfile. In most scenarios, values fordirectionis either 0 or 1. You may looks up the meaning for a specific route intrips.txtfile. -
stop_ids: a list of unique identifier for transit stops. Only stops in this list will be included in the generated problems. -
max_tripsandmax_stops: these parameters control the scale of the generated problems. The larger their values are, the larger the output problems.max_tripsspecifies how many vehicles along the route should be included in the problem. It makes the output problems look wider. Whilemax_stopsspecifies how many stops should be included for a route, and makes the output problems look longer. For example, for the RedLine operation during a weekday, themax_tripscan be as large as 150 (total number of trains from morning to evening), while themax_stopsis capped at 22. Note that by defaultmax_trips * max_stopsproblems will be generated to cover all possible size variations under the limit. -
outFoldernameandoutFilename: they specify where the output problems should be saved. -
Similar to the other generators, to create *.cctp files, you may use the
IO_CCTP.saveCCTPfunction. To create **.tpn filess, you may use theIO_CCTP.saveCCTPasTPNfunction.
-