Releases: Mapotempo/optimizer-api
Releases · Mapotempo/optimizer-api
v1.8.0
Added
- Support skills in periodic heuristic (
first_solution_strategy='periodic'
) #194 - Implementation of
vehicle_trips
relation: the routes can be successive or with a minimum durationlapse
in between #123 - CSV headers adapts to the language provided through HTTP_ACCEPT_LANGUAGE header to facilitate import in Mapotempo-Web #196
- Return route day/date and visits' index in result #196
- Treat complex shipments (multi-pickup-single-delivery and single-pickup-multi-delivery) as multiple simple shipments internally to increase performance #261
- Prioritize the vehicles (and trips of
vehicle_trips
relation) via modifying the fixed costs so that first vehicles (and trips) are preferred over the latter ones #266 - Document return codes #224
- OR-Tools wrapper can use
initial
capacity value #245
Changed
- Improve cases where a service has two visits in periodic heuristic: ensure that the second visit can be assigned to the right day #227
- Relation
lapse
becomeslapses
: we can now provide a specific lapse for every consecutive ID in the relation #265
Removed
- Field
trips
in vehicle model. Usevehicle_trips
relation instead #123
Fixed
- VROOM was used incorrectly in various cases: negative quantities, vehicle duration, activity position #223 #242
- Capacity violation in periodic heuristic algorithm (
first_solution_strategy='periodic'
) #227 - Service timewindows without an
end
were not respected #262 total_time
,total_travel_time
and related values are correctly calculated #237
v1.7.0
Added
- Corresponding vehicle_id is returned within each service's skills if problem is partitioned with vehicle entity #110
- Support initial routes and skills in split_solve (max_split_size) algorithm #140
- Support relations (order, same_route, sequence, shipment) in split_solve algorithm (max_split_size) and partitions ([:configuration][:preprocessing][:partitions]) PR145
- split_solve algorithm (max_split_size) respects relations (vehicle_trips, meetup, minimum_duration_lapse, maximum_duration_lapse, minimum_day_lapse, maximum_day_lapse) PR145
- Return geojsons structure according to geometry parameter #165
Changed
- Bump grape to v1.5.0 - It speeds up the processing of POST requests for nested problems (up to 20 times faster, ruby-grape/grape#2096) #107
- Bump grape-swagger to v1.3.0 - The documentation is now correctly generated. It allows SDK generation. #107
- The fields costs introduced in v0.1.5 is renamed cost_details to avoid confusion with field cost #107
- Bump VROOM to v1.8.0 and start using the features integrated since v1.3.0 #107
- Bump OR-Tools v7.8 in docker image #107
- VROOM were previously always called synchronously, it is now reserved to a set of effective router_mode (:car, :truck_medium) within a limit of points (<200). #107
- Heuristic selection (first_solution_strategy='self_selection') takes into account the supplied initial routes (routes) and the best solution is used as the initial route #159
Removed
- geometry_polyline parameter now be provided through geometry parameter #165
Fixed
v1.6.0
Added
- Allow support for semicolumn and tabulation in CSV files
- Initial routes are now correctly grouped when using partitions (Especially for Scheduling Problems). However, this feature is still under development within split based algorithms (
split_solve
anddichotomous
) position
field for activities- Unfeasible missions are removed from routes #31
- Detailed route costs both for routes and solutions #46
- [WIP] Allow multidepot within clustering. For now, this only influences clusters initialization #56
- Introduce direct shipments: pickup and delivery must be consecutive #51
- Return original ids for missions and vehicles #73
- Return
total_waiting_time
#83 - Introduce
minimize_days_worked
parameter for scheduling heuristic. The default behavior of scheduling heuristic is now to balance work load over the period, the introduced parameter allows to return to the previous behavior #89 - Detect inconsistent
same_point_day
definition #76
Changed
- Cache is now part of wrappers hash
- Collect current distance from OR-Tools
- Refactoring of the chaining of the various solving procedures (Rework
define_process
) - Now use OR-Tools asserts instead or recompiling the entire project
- Reject too small lapses
- Bump OR-Tools to v7.8
- Various edits, improvements and refactoring within scheduling heuristic
- Scheduling heuristic now empties under-filled routes to reassign them #28
- Improve unfeasible service detection performance #28 #65
- Avoid heuristic selection when unnecessary #31
- Shipments are now tolerated within
split_clustering
if the pickup or the delivery is located at a depot #46 - Reduce clustering default restarts from 50 to 10 #49
- Replace
balanced_kmeans
bybalanced_vrp_clustering
gem #49 - Factorize get operation status codes #52
- VROOM is no more refused due to initial routes #59
- Improved kill of jobs within scheduling heuristic #57
- CSV is now only returned for completed jobs #60
- Update fronts accordingly to CSV edits #61
- Ensure matrix, matrix_id and matrix_index consistency #62
- Dump filtered problems #62
- Default
multi_trips
value is now 1 #47 - Bump VROOM to v1.5.0 #66
- Reduce memory usage for scheduling problems #71
- Reduce OR-Tools computation time within scheduling heuristic #78
- Rework route referents definition within scheduling heuristic, in order to improve routes initialization #89
- Bump Ruby to 2.5.5 #97
- Delegate quantity rounding to optimizer-ortools #98
- Improve Force start & breaks through optimizer-ortools #98
Removed
solver_parameter
from the internal model, it is replaced bysolver
andfirst_solution_strategy
parameters- Relation
id
was mandatory, but was never used or returned #31 - Vehicle sort by day index #31
overall_duration
parameter from API as it is not functional #46
Fixed
- Resolution time when using split_independent or max_split procedures
- Alternative activities with empties and fills
- Shift computation for sheduling problems
- Sheduling heuristic now rejects shipments and rests #28
- Reject empty problems #35
- Negative time limits #35
- Expand multi_trips only once #36
- Remove data from already started jobs #38
- Clean interrupted working jobs at startup #38
- Error when delete operation is invoked immedialty after get #38
- Coerce
first_solution_strategy
into array #38 - Avoid unnecessary route generation #46
- Correctly handle consecutive delete operations #52
- Returned http error codes #62
- Split by skills generating unexpected sub-problems #47
- Remove duplicated empty routes for the same vehicle #50
- Return
total_time
andtotal_travel_distance
from scheduling heuristic #63 - Infinite loop due to impossible split within
dichotomous
#67 - Avoid depot duplication #72
- Wrong number of visits #86
- Parsing of intermediate protobuf file returned by optimizer-ortools #87
- Uniformize wrappers output accordingly to API documentation #83
Deprecated
- Positions are no longer relations and must be defined at activity level
- Route
indice
is nowindex
#31