schema

package
v0.23.8-dev.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package schema provides the input and output schema for nextroute.

Index

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"`
	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 Location added in v0.23.8

type Location struct {
	Lon float64 `json:"lon"`
	Lat float64 `json:"lat"`
}

Location represents a geographical location.

type ObjectiveOutput added in v0.23.8

type ObjectiveOutput struct {
	Name       string            `json:"name"`
	Objectives []ObjectiveOutput `json:"objectives,omitempty"`
	Factor     float64           `json:"factor,omitempty"`
	Base       float64           `json:"base,omitempty"`
	Value      float64           `json:"value"`
	CustomData any               `json:"custom_data,omitempty"`
}

ObjectiveOutput represents an objective as JSON.

type PlannedStopOutput added in v0.23.8

type PlannedStopOutput struct {
	Stop                     StopOutput `json:"stop"`
	TravelDuration           int        `json:"travel_duration"`
	CumulativeTravelDuration int        `json:"cumulative_travel_duration"`
	TargetArrivalTime        *time.Time `json:"target_arrival_time,omitempty"`
	ArrivalTime              *time.Time `json:"arrival_time,omitempty"`
	WaitingDuration          int        `json:"waiting_duration,omitempty"`
	StartTime                *time.Time `json:"start_time,omitempty"`
	Duration                 int        `json:"duration,omitempty"`
	EndTime                  *time.Time `json:"end_time,omitempty"`
	EarlyArrivalDuration     int        `json:"early_arrival_duration,omitempty"`
	LateArrivalDuration      int        `json:"late_arrival_duration,omitempty"`
	CustomData               any        `json:"custom_data,omitempty"`
}

PlannedStopOutput adds information to the input stop.

type RouterInput

type RouterInput struct {
	Stops               []route.Stop         `json:"stops"`
	Vehicles            []string             `json:"vehicles"`
	InitializationCosts []float64            `json:"initialization_costs"`
	Starts              []Location           `json:"starts"`
	Ends                []Location           `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 SolutionOutput added in v0.23.8

type SolutionOutput struct {
	Unplanned []StopOutput    `json:"unplanned"`
	Vehicles  []VehicleOutput `json:"vehicles"`
	Objective ObjectiveOutput `json:"objective"`
}

SolutionOutput represents a solutions as JSON.

type Stop

type Stop struct {
	Precedes                any          `json:"precedes,omitempty"`
	Quantity                any          `json:"quantity,omitempty"`
	Succeeds                any          `json:"succeeds,omitempty"`
	TargetArrivalTime       *time.Time   `json:"target_arrival_time,omitempty"`
	StartTimeWindow         *[]time.Time `json:"start_time_window,omitempty"`
	MaxWait                 *int         `json:"max_wait,omitempty"`
	Duration                *int         `json:"duration,omitempty"`
	UnplannedPenalty        *int         `json:"unplanned_penalty,omitempty"`
	EarlyArrivalTimePenalty *float64     `json:"early_arrival_time_penalty,omitempty"`
	LateArrivalTimePenalty  *float64     `json:"late_arrival_time_penalty,omitempty"`
	CompatibilityAttributes *[]string    `json:"compatibility_attributes"`
	ID                      string       `json:"id,omitempty"`
	Location                Location     `json:"location,omitempty"`
	CustomData              any          `json:"custom_data,omitempty"`
}

Stop represents a stop.

type StopDefaults

type StopDefaults struct {
	UnplannedPenalty        *int         `json:"unplanned_penalty,omitempty"`
	Quantity                any          `json:"quantity,omitempty"`
	StartTimeWindow         *[]time.Time `json:"start_time_window,omitempty"`
	MaxWait                 *int         `json:"max_wait,omitempty"`
	Duration                *int         `json:"duration,omitempty"`
	TargetArrivalTime       *time.Time   `json:"target_arrival_time,omitempty"`
	EarlyArrivalTimePenalty *float64     `json:"early_arrival_time_penalty,omitempty"`
	LateArrivalTimePenalty  *float64     `json:"late_arrival_time_penalty,omitempty"`
	CompatibilityAttributes *[]string    `json:"compatibility_attributes"`
}

StopDefaults contains default values for stops.

type StopOutput

type StopOutput struct {
	ID         string   `json:"id"`
	Location   Location `json:"location"`
	CustomData any      `json:"custom_data,omitempty"`
}

StopOutput is the basic struct for a stop.

type Vehicle

type Vehicle struct {
	Capacity                any        `json:"capacity,omitempty"`
	StartLocation           *Location  `json:"start_location,omitempty"`
	EndLocation             *Location  `json:"end_location,omitempty"`
	Speed                   *float64   `json:"speed,omitempty"`
	ID                      string     `json:"id,omitempty"`
	StartTime               *time.Time `json:"start_time,omitempty"`
	EndTime                 *time.Time `json:"end_time,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"`
	MaxWait                 *int       `json:"max_wait,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"`
	StartLocation           *Location  `json:"start_location,omitempty"`
	EndLocation             *Location  `json:"end_location,omitempty"`
	Speed                   *float64   `json:"speed,omitempty"`
	StartTime               *time.Time `json:"start_time,omitempty"`
	EndTime                 *time.Time `json:"end_time,omitempty"`
	MaxStops                *int       `json:"max_stops,omitempty"`
	MaxDistance             *int       `json:"max_distance,omitempty"`
	MaxDuration             *int       `json:"max_duration,omitempty"`
	MaxWait                 *int       `json:"max_wait,omitempty"`
	CompatibilityAttributes *[]string  `json:"compatibility_attributes,omitempty"`
}

VehicleDefaults contains default values for vehicles.

type VehicleOutput

type VehicleOutput struct {
	ID                   string              `json:"id"`
	Route                []PlannedStopOutput `json:"route"`
	RouteTravelDuration  int                 `json:"route_travel_duration"`
	RouteStopsDuration   int                 `json:"route_stops_duration,omitempty"`
	RouteWaitingDuration int                 `json:"route_waiting_duration,omitempty"`
	RouteDuration        int                 `json:"route_duration"`
	CustomData           any                 `json:"custom_data,omitempty"`
}

VehicleOutput holds the solution of the ModelVehicle Routing Problem.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL