Documentation
¶
Overview ¶
Package schema provides the input and output schema for nextroute.
Index ¶
- type Defaults
- type Input
- type JSONBasicSolution
- type JSONConstraintValue
- type JSONExpressionValue
- type JSONLocation
- type JSONModelStop
- type JSONObjective
- type JSONSolution
- type JSONStop
- type JSONVehicle
- type RouterInput
- type Stop
- type StopDefaults
- type StopOutput
- type Vehicle
- type VehicleDefaults
- type VehicleOutput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Defaults ¶
type Defaults struct {
Vehicles *VehicleDefaults `json:"vehicles,omitempty"`
Stops *StopDefaults `json:"stops,omitempty"`
}
Defaults contains default values for vehicles and stops.
type Input ¶
type Input struct {
Options any `json:"options,omitempty"`
Defaults *Defaults `json:"defaults,omitempty"`
StopGroups *[][]string `json:"stop_groups,omitempty"`
AlternateStops *[]Stop `json:"alternate_stops,omitempty"`
DurationGroups *[]route.ServiceGroup `json:"duration_groups,omitempty"`
DurationMatrix *[][]float64 `json:"duration_matrix,omitempty"`
DistanceMatrix *[][]float64 `json:"distance_matrix,omitempty"`
Vehicles []Vehicle `json:"vehicles,omitempty"`
Stops []Stop `json:"stops,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
Input is the default input schema for nextroute.
func RouterToNextRoute ¶
func RouterToNextRoute(routerInput RouterInput) Input
RouterToNextRoute transforms router input to nextroute input.
type JSONBasicSolution ¶
type JSONBasicSolution struct {
Unassigned []route.Stop `json:"unassigned"`
Vehicles []VehicleOutput `json:"vehicles"`
Objective JSONObjective `json:"objective"`
}
JSONBasicSolution represents a solutions as JSON.
type JSONConstraintValue ¶
JSONConstraintValue represents a value of a constraint.
type JSONExpressionValue ¶
type JSONExpressionValue struct {
Name string `json:"name"`
Value float64 `json:"value"`
Cumulative float64 `json:"cumulative"`
}
JSONExpressionValue represents an expression value as JSON.
type JSONLocation ¶
JSONLocation represents a location as JSON.
type JSONModelStop ¶
type JSONModelStop struct {
Name string `json:"name"`
Location JSONLocation `json:"location"`
Index int `json:"index"`
}
JSONModelStop represents a model stop as JSON.
type JSONObjective ¶
type JSONObjective struct {
Name string `json:"name"`
Objectives []JSONObjective `json:"objectives"`
Value float64 `json:"value"`
}
JSONObjective represents an objective as JSON.
type JSONSolution ¶
type JSONSolution struct {
Epoch time.Time `json:"epoch"`
Unplanned []JSONModelStop `json:"unplanned"`
Vehicles []JSONVehicle `json:"vehicles"`
Progression []alns.ProgressionEntry `json:"progression"`
Objective JSONObjective `json:"objective"`
}
JSONSolution represents a solutions as JSON.
type JSONStop ¶
type JSONStop struct {
Slack time.Duration `json:"slack"`
Arrival time.Time `json:"arrival"`
EarliestStart time.Time `json:"earliest_start"`
Start time.Time `json:"start"`
End time.Time `json:"end"`
ExpressionValues []JSONExpressionValue `json:"expression_values"`
ConstraintValues []JSONConstraintValue `json:"constraint_values"`
ConstraintReports []map[string]any `json:"constraint_reports"`
JSONModelStop
Position int `json:"position"`
TravelDuration time.Duration `json:"travel_duration"`
}
JSONStop represents a stop as JSON.
type JSONVehicle ¶
type JSONVehicle struct {
Start time.Time `json:"start"`
End time.Time `json:"end"`
Name string `json:"name"`
Stops []JSONStop `json:"stops"`
Index int `json:"index"`
}
JSONVehicle represents a vehicle as JSON.
type RouterInput ¶
type RouterInput struct {
Stops []route.Stop `json:"stops"`
Vehicles []string `json:"vehicles"`
InitializationCosts []float64 `json:"initialization_costs"`
Starts []route.Position `json:"starts"`
Ends []route.Position `json:"ends"`
Quantities []int `json:"quantities"`
Capacities []int `json:"capacities"`
Precedences []route.Job `json:"precedences"`
Windows []route.Window `json:"windows"`
Shifts []route.TimeWindow `json:"shifts"`
Penalties []int `json:"penalties"`
Backlogs []route.Backlog `json:"backlogs"`
VehicleAttributes []route.Attributes `json:"vehicle_attributes"`
StopAttributes []route.Attributes `json:"stop_attributes"`
Velocities []float64 `json:"velocities"`
Groups [][]string `json:"groups"`
ServiceTimes []route.Service `json:"service_times"`
AlternateStops []route.Alternate `json:"alternate_stops"`
Limits []route.Limit `json:"limits"`
DurationLimits []float64 `json:"duration_limits"`
DistanceLimits []float64 `json:"distance_limits"`
ServiceGroups []route.ServiceGroup `json:"service_groups"`
}
RouterInput is the schema for the input of router.
type Stop ¶
type Stop struct {
Precedes any `json:"precedes,omitempty"`
Quantity any `json:"quantity,omitempty"`
Succeeds any `json:"succeeds,omitempty"`
TargetTime *time.Time `json:"target_time,omitempty"`
HardWindow *[]time.Time `json:"hard_window,omitempty"`
MaxWait *int `json:"max_wait,omitempty"`
StopDuration *int `json:"stop_duration,omitempty"`
UnassignedPenalty *int `json:"unassigned_penalty,omitempty"`
EarlinessPenalty *float64 `json:"earliness_penalty,omitempty"`
LatenessPenalty *float64 `json:"lateness_penalty,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes"`
ID string `json:"id,omitempty"`
Position route.Position `json:"position,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
Stop represents a stop.
type StopDefaults ¶
type StopDefaults struct {
UnassignedPenalty *int `json:"unassigned_penalty,omitempty"`
Quantity any `json:"quantity,omitempty"`
HardWindow *[]time.Time `json:"hard_window,omitempty"`
MaxWait *int `json:"max_wait,omitempty"`
StopDuration *int `json:"stop_duration,omitempty"`
TargetTime *time.Time `json:"target_time,omitempty"`
EarlinessPenalty *float64 `json:"earliness_penalty,omitempty"`
LatenessPenalty *float64 `json:"lateness_penalty,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes"`
}
StopDefaults contains default values for stops.
type StopOutput ¶
type StopOutput struct {
route.Stop
EstimatedArrival *time.Time `json:"estimated_arrival,omitempty"`
EstimatedDeparture *time.Time `json:"estimated_departure,omitempty"`
EstimatedService *time.Time `json:"estimated_service,omitempty"`
}
StopOutput adds information to the input stop.
type Vehicle ¶
type Vehicle struct {
Capacity any `json:"capacity,omitempty"`
Start *route.Position `json:"start,omitempty"`
End *route.Position `json:"end,omitempty"`
Speed *float64 `json:"speed,omitempty"`
ID string `json:"id,omitempty"`
ShiftStart *time.Time `json:"shift_start,omitempty"`
ShiftEnd *time.Time `json:"shift_end,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes,omitempty"`
MaxStops *int `json:"max_stops,omitempty"`
MaxDistance *int `json:"max_distance,omitempty"`
MaxDuration *int `json:"max_duration,omitempty"`
StopDurationMultiplier *float64 `json:"stop_duration_multiplier,omitempty"`
Backlog *[]string `json:"backlog,omitempty"`
AlternateStops *[]string `json:"alternate_stops,omitempty"`
InitializationCost *int `json:"initialization_cost,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
Vehicle represents a vehicle.
type VehicleDefaults ¶
type VehicleDefaults struct {
Capacity any `json:"capacity,omitempty"`
Start *route.Position `json:"start,omitempty"`
End *route.Position `json:"end,omitempty"`
Speed *float64 `json:"speed,omitempty"`
ShiftStart *time.Time `json:"shift_start,omitempty"`
ShiftEnd *time.Time `json:"shift_end,omitempty"`
MaxStops *int `json:"max_stops,omitempty"`
MaxDistance *int `json:"max_distance,omitempty"`
MaxDuration *int `json:"max_duration,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes,omitempty"`
}
VehicleDefaults contains default values for vehicles.
type VehicleOutput ¶
type VehicleOutput struct {
ID string `json:"id"`
Route []StopOutput `json:"route"`
RouteDuration int `json:"route_duration"`
}
VehicleOutput holds the solution of the ModelVehicle Routing Problem.