<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>The Icepack Vehicle Router on API Documentation</title>
    <link>https://docs.icepack.ai/ivr/</link>
    <description>Recent content in The Icepack Vehicle Router on API Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 23 Jan 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://docs.icepack.ai/ivr/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Dimension</title>
      <link>https://docs.icepack.ai/ivr/dimension/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/dimension/</guid>
      <description>Overview Distance, time, capacity, mass, weight, volume are all examples of measurement dimensions. Dimensions are things we measure when creating a model which either participate in the objective function (distance) or represent constraints (time or capacity).&#xA;Time and Distance are actually very similar as they are both a function of both the origin and destination. A capacity dimension (such as in the CVRP) is a function of a single node. So we can add an attribute to each task or location which corresponds to a quantity which should impact this dimension.</description>
    </item>
    <item>
      <title>Window</title>
      <link>https://docs.icepack.ai/ivr/window/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/window/</guid>
      <description>Overview A window defines a feasible interval on a dimension, with a start and an end. Windows are created in attributes which are in turn linked to a dimension and task or location. This allows us to specify what the feasible windows are on a particular dimension for an activity. Windows are added to the attributes of either a task, location or vehicle shift.&#xA;Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Window The Window defines a constraint which restricts the feasible values that may occur on a dimension.</description>
    </item>
    <item>
      <title>Geocode</title>
      <link>https://docs.icepack.ai/ivr/geocode/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/geocode/</guid>
      <description>Overview The term geocode is used to describe a pair of coordinates. In general, we mostly handle routing requests which are on the face of planet earth so we&amp;rsquo;ve biased the terminology used here in that direction. We only support a handful of surface types at the moment.&#xA;Road network Oblate spheroid (Haversine distance for routing) Planar (straight line) User-defined (by providing a complete matrix) We still use the term geocode to describe the point-pairs in these contexts, but don&amp;rsquo;t do the validity checks when the points aren&amp;rsquo;t marked as being on the face of planet earth.</description>
    </item>
    <item>
      <title>Location</title>
      <link>https://docs.icepack.ai/ivr/location/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/location/</guid>
      <description>Overview Locations are used to model where things happen. This is useful when there are multiple tasks which occur at the same location and there are concepts which need to be modelled at a location level. Typical examples of this are modelling the depot as a location, and having times for entering the depot (regardless of how many tasks are picked up or dropped off). Another example is to create location times which incentivises customer orders which are at the same location to be grouped together.</description>
    </item>
    <item>
      <title>Task</title>
      <link>https://docs.icepack.ai/ivr/task/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/task/</guid>
      <description>Overview Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Task The Task defines a single activity that should be performed in a schedule. The task is the most granular modelling level supported.&#xA;Schema definition message Task { required string taskId = 1; required string locationId = 2; repeated Attribute attributes = 3; repeated TripConstraint tripConstraints = 4; optional TaskRelation predecessors = 5; // IVR8 only optional TaskRelation successors = 6; // IVR8 only } Fields taskId The unqiue identifier for this task.</description>
    </item>
    <item>
      <title>Job</title>
      <link>https://docs.icepack.ai/ivr/job/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/job/</guid>
      <description>Overview Jobs are used to link together tasks in a schedule. There are two typical use cases for jobs. The first is a situation where vehicles are being physically loaded with goods and the vehicle capacity is a constraint being considered, one would model both the pickup and dropoff tasks of a vehicle. In this situation, we would also implicitly be modelling the reloading of vehicles (in a typical VRP context).</description>
    </item>
    <item>
      <title>Vehicle</title>
      <link>https://docs.icepack.ai/ivr/vehicle/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/vehicle/</guid>
      <description>Overview Vehicles are the active resources in a schedule. The goal of the optimiser is to find an allocation of tasks to vehicles, and a sequence within each vehicle of the tasks assigned to it, that minimises the total cost. Without vehicles, there can be no schedule.&#xA;In the simplest case there may be a single vehicle. In a more complex case, there could be many vehicles, and our goal is to choose the most cost effective vehicles among them.</description>
    </item>
    <item>
      <title>Vehicle Class</title>
      <link>https://docs.icepack.ai/ivr/vehicle-class/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/vehicle-class/</guid>
      <description>Overview The vehicle class describes the way in which a vehicle behaves with respect to the tasks, locations associated with those tasks, and the transits, or movements, between locations. Vehicle classes can describe general behaviour for a group of vehicles, or each vehicle may belong to its own class. In addition, a vehicle class may specify the transit rules or compartment set which should be inherited by vehicles assigned to this class.</description>
    </item>
    <item>
      <title>Vehicle Cost Class</title>
      <link>https://docs.icepack.ai/ivr/vehicle-cost-class/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/vehicle-cost-class/</guid>
      <description>Overview Vehicle Cost Classes are used to model how vehicles should be priced by the scheduler. This includes two primary components: a fixed cost for using a vehicle belonging to a specified class and a marginal cost related to the cumulative dimension quantities for a vehicle.&#xA;The fixed cost of a vehicle is incurred if the vehicle performs any task other than the shift tasks on the vehicle. The cost per unit of dimension assigned to a vehicle is determined by the attributes assigned to a cost class.</description>
    </item>
    <item>
      <title>Transit Set</title>
      <link>https://docs.icepack.ai/ivr/transit-set/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/transit-set/</guid>
      <description>Overview Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Transit Set Transit sets define a collection of movements between locations. Transit sets are typically included in a model through transit generators directly or through a data upload which is then, again, referenced through a transit generator.&#xA;Schema definition message TransitSet { repeated TransitValue transits = 1; } Fields transits A list of transit values. A transit value defines a dimensional quantity between an origin and destination pair.</description>
    </item>
    <item>
      <title>Transit Generator</title>
      <link>https://docs.icepack.ai/ivr/transit-generator/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/transit-generator/</guid>
      <description>Overview Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Transit Generator A transit generator is a container to describe a way in which transits between locations should be generated for a given model.&#xA;Schema definition message TransitGenerator { required string id = 1; optional string requestId = 2; optional TransitSet transitSet = 3; } Fields id The unique identifier to be used to define this transit generator object. Duplicate id&amp;rsquo;s in a model will result in an invalid payload.</description>
    </item>
    <item>
      <title>Compartment</title>
      <link>https://docs.icepack.ai/ivr/compartment/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/compartment/</guid>
      <description>Overview Compartment modelling is typically used when large vehicles may have their carrying capacity broken up into areas, or compartments. We are interested in modelling the constraints that exist over collections of compartments. There may also be constraints between tasks as to which compartments they may be assigned to or the maximum holding capacity of a single compartment. Typical use cases for compartments include modelling upper and lower &amp;ldquo;decks&amp;rdquo; in a vehicle (where some products may not be placed on the upper deck), fuel compartments in a trailer where certain products may only be assigned to certain areas (such as petrol, diesel or paraffin).</description>
    </item>
    <item>
      <title>Compartment Set</title>
      <link>https://docs.icepack.ai/ivr/compartment-set/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/compartment-set/</guid>
      <description>Overview A compartment set describes a collection of compartments which constitute the total packing space of a single vehicle. A compartment set definition may be reused across different vehicles or assigned to a vehicle class.&#xA;Applicable models IVR8 ivr8-yni1c9k2swof Compartment Set Schema definition message CompartmentSet { required string id = 1; repeated string compartmentIds = 2; repeated GroupLimit groupLimits = 3; } Fields id A unique identifier for the compartment set.</description>
    </item>
    <item>
      <title>Task Sequence</title>
      <link>https://docs.icepack.ai/ivr/task-sequence/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/task-sequence/</guid>
      <description>Overview A task sequence provides a mechanism to specify a particular sequence of tasks on a vehicle. The sequence may be used either as a pure evaluation (to identify points of infeasibility in a model) or to provide a starting point to the solver (if the task sequence is feasible). The solve request should be set in the mode corresponding to the desired usage (ReOptimise or Evaluate).&#xA;Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Task Sequence The task sequence defines a sequence of tasks to be performed by a particular vehicle.</description>
    </item>
    <item>
      <title>Transit rules</title>
      <link>https://docs.icepack.ai/ivr/transit-rule/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/transit-rule/</guid>
      <description>Overview Transit rules provide a mechanism to model conditional rules which are linked to the cumulative value on a dimension at some point in the schedule. Typical examples of this are lunch breaks or fatigue rules for line haul modelling.&#xA;Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Transit Rule Schema definition message TransitRule { required string id = 1; required string dimensionId = 2; optional bool useStandingState = 3 [default = true]; optional bool useTransitState = 4 [default = false]; required string ruleIdPrefix = 5; repeated Trigger triggers = 6; } Fields id The unique identifier for this transit rule.</description>
    </item>
    <item>
      <title>Model</title>
      <link>https://docs.icepack.ai/ivr/model/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/model/</guid>
      <description>Overview The model object pulls all the individually defined pieces together into a single representation which can then be solved. The model encapsulates all the information required by the solver and can be thought of as &amp;ldquo;an instance of the problem to be solved&amp;rdquo;.&#xA;Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Model Schema definition message Model { required DimensionConfiguration dimensions = 1; repeated Location locations = 2; repeated Job jobs = 3; repeated Vehicle vehicles = 4; repeated VehicleClass vehicleClasses = 5; repeated VehicleCostClass vehicleCostClasses = 6; repeated TransitRule transitRules = 7; repeated TransitGenerator transitGenerators = 8; repeated TaskSequence taskSequence = 9; repeated Compartment compartments = 10; //IVR 8 only repeated CompartmentSet compartmentSets = 11; //IVR 8 only } Fields dimensions A Dimension Configuration for this model instance.</description>
    </item>
    <item>
      <title>Solve Request</title>
      <link>https://docs.icepack.ai/ivr/solve-request/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/solve-request/</guid>
      <description>Overview The solve request houses the model and the action that should be performed on the model.&#xA;Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Endpoint POST: https://api.icepack.ai/vehicle-router/solve/ Solve Request Schema definition message SolveRequest { optional Model model = 1; // either model or modelId should be specified optional string modelId = 2; // the model ID from a previously optimised // request (for use with evaluate solve type) repeated TaskSequence routes = 3; // for solveType = [Evaluate, ReOptimise].</description>
    </item>
    <item>
      <title>Solution Response</title>
      <link>https://docs.icepack.ai/ivr/solution-response/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/solution-response/</guid>
      <description>Overview The solution response is the granular feedback provided by the scheduling engine for a given solve request. This is considered the primary output from the engine. The solution response contains all the dimensional evaluation information for each vehicle, i.e. travel durations and distances between locations as well as the instantaneous dimensional information (such as vehicle capacity) at each task performed in the schedule.&#xA;Applicable models IVR7 ivr7-kt461v8eoaif IVR8 ivr8-yni1c9k2swof Endpoint GET: https://api.</description>
    </item>
    <item>
      <title>IVR Data Uploads</title>
      <link>https://docs.icepack.ai/ivr/ivrdata/</link>
      <pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://docs.icepack.ai/ivr/ivrdata/</guid>
      <description>This is considered advanced usage of the API. If you&amp;rsquo;re just starting out, this is probably not the right place to be :-/&#xA;Overview The IVR Data schema provides a simple way to upload data for types which are common across different models (such as transit sets) as well as data which are specific to certain solve requests.&#xA;Applicable models IVRData ivrdata-o43e0dvs78zq IVR7 ivr7-kt461v8eoaif (indirect) IVR8 ivr8-yni1c9k2swof (indirect) Cached Transit Set The cached transit set allows the user to upload a transit set to the API.</description>
    </item>
  </channel>
</rss>
