The open-vrp Reference Manual

This is the open-vrp Reference Manual, version 0.6.3, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 08 19:06:39 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 open-vrp

open-vrp

Author

Marc Kuo

License

LLGPL

Version

0.6.3

Dependencies
  • vecto (system).
  • alexandria (system).
  • fiveam (system).
  • open-vrp-lib (system).
Source

open-vrp.asd.

Child Components

2.2 open-vrp-lib

open-vrp-library

Author

Marc Kuo

License

LLGPL

Version

0.6.3

Dependencies
  • vecto (system).
  • alexandria (system).
  • fiveam (system).
  • cl-fad (system).
Source

open-vrp-lib.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 open-vrp/algo

Source

open-vrp.asd.

Parent Component

open-vrp (system).

Child Components

3.2 open-vrp/test-cases

Dependency

algo (module).

Source

open-vrp.asd.

Parent Component

open-vrp (system).

Child Components

3.3 open-vrp-lib/lib

Dependency

packages.lisp (file).

Source

open-vrp-lib.asd.

Parent Component

open-vrp-lib (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 open-vrp/open-vrp.asd

Source

open-vrp.asd.

Parent Component

open-vrp (system).

ASDF Systems

open-vrp.


4.1.2 open-vrp-lib/open-vrp-lib.asd

Source

open-vrp-lib.asd.

Parent Component

open-vrp-lib (system).

ASDF Systems

open-vrp-lib.


4.1.3 open-vrp/algo/algo-conditions.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface

tabu-list (reader method).

Internals

4.1.4 open-vrp/algo/tools.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface
Internals

4.1.5 open-vrp/algo/iterator.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface

4.1.6 open-vrp/algo/best-insertion.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface
Internals

generate-insertion-moves (function).


4.1.7 open-vrp/algo/greedy-NN.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface

4.1.8 open-vrp/algo/greedy-append.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface

4.1.9 open-vrp/algo/greedy-best-insertion.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface

4.1.10 open-vrp/algo/TS-classdef.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface
Internals

4.1.11 open-vrp/algo/TS-utils.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface
Internals

4.1.12 open-vrp/algo/TS.lisp

Source

open-vrp.asd.

Parent Component

algo (module).

Public Interface
Internals

4.1.13 open-vrp/test-cases/test-cases.lisp

Source

open-vrp.asd.

Parent Component

test-cases (module).

Public Interface

4.1.14 open-vrp/test-cases/test-suite.lisp

Source

open-vrp.asd.

Parent Component

test-cases (module).

Internals

4.1.15 open-vrp-lib/packages.lisp

Source

open-vrp-lib.asd.

Parent Component

open-vrp-lib (system).

Packages

4.1.16 open-vrp-lib/lib/class-definitions.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.17 open-vrp-lib/lib/simple-utils.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

vrp-object (function).


4.1.18 open-vrp-lib/lib/list.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.19 open-vrp-lib/lib/network.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.20 open-vrp-lib/lib/fleet.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

4.1.21 open-vrp-lib/lib/fitness.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

fitness (generic function).


4.1.22 open-vrp-lib/lib/output.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.23 open-vrp-lib/lib/route.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

change-route (macro).


4.1.24 open-vrp-lib/lib/draw-solution.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.25 open-vrp-lib/lib/solver.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.26 open-vrp-lib/lib/constraints.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

4.1.27 open-vrp-lib/lib/conditions.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.28 open-vrp-lib/lib/init-macros.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.29 open-vrp-lib/lib/read-solomon.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

load-solomon-vrp-file (function).

Internals

couple-lists (function).


4.1.30 open-vrp-lib/lib/read-cvrp.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

load-tsplib-vrp-file (function).

Internals

4.1.31 open-vrp-lib/lib/config-functions.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

4.1.32 open-vrp-lib/lib/read-test-case.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

load-test-case-file (function).


4.1.33 open-vrp-lib/lib/batch-run.lisp

Source

open-vrp-lib.asd.

Parent Component

lib (module).

Public Interface

batch-run (macro).


5 Packages

Packages are listed by definition order.


5.1 open-vrp.algo

Source

packages.lisp.

Use List
Used By List
Public Interface
Internals

5.2 open-vrp.test

Source

packages.lisp.

Use List
Used By List

open-vrp.

Public Interface
Internals

5.3 open-vrp

Source

packages.lisp.

Use List

5.4 open-vrp.classes

Source

packages.lisp.

Use List

common-lisp.

Used By List
Public Interface
Internals

5.5 open-vrp.util

Source

packages.lisp.

Use List
Used By List
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *multi-run-start-time*
Package

open-vrp.util.

Source

solver.lisp.

Special Variable: *node-coords*
Package

open-vrp.test.

Source

test-cases.lisp.

Special Variable: *start-time*
Package

open-vrp.util.

Source

solver.lisp.

Special Variable: christofides-1
Package

open-vrp.test.

Source

test-cases.lisp.

Special Variable: christofides-2
Package

open-vrp.test.

Source

test-cases.lisp.

Special Variable: solomon100
Package

open-vrp.test.

Source

test-cases.lisp.

Special Variable: solomon25
Package

open-vrp.test.

Source

test-cases.lisp.

Special Variable: test-tsp
Package

open-vrp.test.

Source

test-cases.lisp.

Special Variable: test-vrp
Package

open-vrp.test.

Source

test-cases.lisp.


6.1.2 Macros

Macro: aif (test-form then-form &optional else-form)
Package

open-vrp.util.

Source

simple-utils.lisp.

Macro: awhile (expr &body body)
Package

open-vrp.util.

Source

simple-utils.lisp.

Macro: batch-run ((x dir-path &key plotp log-mode) output-file num-times &body algo-call)

Given a directory, will call algo-call on each file that is loaded using the loader-fn and bound to x. Output-file is a mandatory filepath to which the results will be written. Algo-call must return an <Algo> object (e.g. multi-run-algo or solve-prob). Num-times is the number of times the algo-call will run on each test-case, which will be used for stats. Will return a list of list of algo objects holding the solutions.

Example: (batch-run (test-case "test-cases/Solomon-25/")
"run-logs/Solomon-25-batch.txt" 20
(solve-prob test-case (make-instance ’tabu-search :iterations 300))).

Package

open-vrp.util.

Source

batch-run.lisp.

Macro: constraints-check (arglist init-forms next-forms testform &optional endtest)
Package

open-vrp.util.

Source

constraints.lisp.

Macro: create-nodes (&key node-coords demands time-windows durations dist-matrix)

Will return a vector of nodes that are numbered starting from 0 (which should be the base node, by convention over configuration). All attribute parameters are optional but must be of the same length. Note that dist-matrix parameter is not used, but only to create nodes when no other parameter is passed (called from define-problem).

Package

open-vrp.util.

Source

init-macros.lisp.

Macro: create-vehicles (fleet-size base-node to-depot &key capacities speeds)

Returns a list of vehicles, starting with ID 0. The starting location of their routes are all initialized at base-node. When to-depot is set to T, initialize their routes with 2 base nodes (departure and destination). For capacities and speeds, only accepts a list that is of equal lenght to fleet-size.

Package

open-vrp.util.

Source

init-macros.lisp.

Macro: define-problem (name fleet-size &key node-coords-list demands capacities time-windows-list durations speeds to-depot plot-filename log-filename dist-matrix log-mode plotp)

Creates the appropriate <Problem> object from the inputs. Extra key attributes only accept lists that are of equal length to node-coords-list or fleet-size (depending on what attributes it sets). For demands, durations, capacities and speeds, will also accept a single value, which will set all attributes to this value.

A(n asymmetric) dist-matrix may be passed, instead of node-coords, in which case plotting will be disabled. dist-matrix must be a list of lists or 2-dimensional array.

With only the demands-list and capacities, creates a CVRP problem. With time-windows, creates a VRPTW problem. When durations and speeds are not provided, defaults to 0 and 1. When plot-filename is not given, it will plot in "plots/name.png". When log-filename is not given, it will log by default in "run-logs/name.txt".

Package

open-vrp.util.

Source

init-macros.lisp.

Macro: mac (expr)
Package

open-vrp.util.

Source

simple-utils.lisp.

Macro: multi-run (times &body algo-call)

Run algo x times and collect all resulting solution objects in a list.

Package

open-vrp.util.

Source

solver.lisp.

Macro: multi-run-algo (times &body algo-call)

Run algo x times, print multi-run-stats and return the best result.

Package

open-vrp.util.

Source

solver.lisp.

Macro: new-node (id xcor ycor &key demand start end duration)
Package

open-vrp.util.

Source

network.lisp.

Macro: new-vehicle (id base-node to-depot &key capacity speed)
Package

open-vrp.util.

Source

fleet.lisp.

Macro: toggle (place)
Package

open-vrp.util.

Source

config-functions.lisp.

Macro: while (test &body body)
Package

open-vrp.util.

Source

simple-utils.lisp.

Macro: with-log-or-print ((stream prob time &optional appendp) &body body)

A wrapper on top of with-open-file, where we use the filepath stored in the :log-file slot of a problem object. When :log-mode is 0, return nil. If 1, use the file stream; if 2, use the T stream. Optional parameter appendp can be set to NIL in order to :supersede if file exists. By default appends. Returns T if logging is succesful. Requires universal-time, to append to log-file.

Package

open-vrp.util.

Source

output.lisp.

Macro: with-tabu-indices (tabu-indices fn arg-list)
Package

open-vrp.util.

Source

list.lisp.


6.1.3 Ordinary functions

Function: add-move-to-tabu (ts mv)

Adds <Move> to tabu-list of <tabu-search>. Calls function held in <ts>’s :tabu-parameter-f slot.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: add-to-tabu (ts pars)

Add pars to the tabu-list of <tabu-search>. Expects pars to be a list when more than one parameter is recorded. When tabu-list gets larger than the tenure, will prune away the oldest pars on the list. Destructive.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: append-node (veh node)

Appends <Node> to the end of the route of <vehicle>. Wrapper of insert-node. If the route includes returning to-depot, then append before the last return to depot.

Package

open-vrp.util.

Source

route.lisp.

Function: assess-moves (solution moves)

Given a list of <Move> objects, assess them all on the solution (uses assess-move), and setf the move’s :fitness slots. Returns the list of moves.

Package

open-vrp.algo.

Source

iterator.lisp.

Function: copy-object (object)

A deep-cloner for CLOS.

Package

open-vrp.util.

Source

simple-utils.lisp.

Function: create-candidate-list (ts sorted-moves)

Given a list of sorted moves, return the list with non-tabu improving moves. Will always at least return one (non-tabu) move.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: distance (i j dist-array)

Read from the distance-table with two indices.

Package

open-vrp.util.

Source

network.lisp.

Reader: drawer-filename (instance)
Writer: (setf drawer-filename) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

filename.

Reader: drawer-legend-x (instance)
Writer: (setf drawer-legend-x) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

legend-x.

Reader: drawer-legend-y (instance)
Writer: (setf drawer-legend-y) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

legend-y.

Reader: drawer-legendp (instance)
Writer: (setf drawer-legendp) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

legendp.

Reader: drawer-max-coord (instance)
Writer: (setf drawer-max-coord) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

max-coord.

Reader: drawer-max-pix (instance)
Writer: (setf drawer-max-pix) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

max-pix.

Reader: drawer-min-coord (instance)
Writer: (setf drawer-min-coord) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

min-coord.

Reader: drawer-plotp (instance)
Writer: (setf drawer-plotp) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

plotp.

Reader: drawer-x-pos (instance)
Writer: (setf drawer-x-pos) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

x-pos.

Reader: drawer-y-pos (instance)
Writer: (setf drawer-y-pos) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

y-pos.

Function: empty-routep (route)

Given a route, return T if the route only has base-nodes.

Package

open-vrp.util.

Source

route.lisp.

Function: enumerate-interval (n)

Returns a list from 1 to n.

Package

open-vrp.util.

Source

list.lisp.

Function: fitness-before-after (sol operation)

Given <Problem> object and an #’operation function that takes the <problem> as input, return the difference of fitness between after and before.

Package

open-vrp.algo.

Source

iterator.lisp.

Function: generate-dist-array (coord-list)

Given a list of coord pairs, generate an array of distances.

Package

open-vrp.util.

Source

network.lisp.

Function: get-array-row (array row-index)

Given a 2-dimenstional array and a row-index, return the row as a list

Package

open-vrp.util.

Source

network.lisp.

Function: get-best-insertion-move-in-vehicle (sol vehicle-id node-id)

Given the <solution> object, vehicle-id and node-id (integers), return the best <insertion-move> (i.e. with the lowest fitness) for inserting node-id in vehicle-id. When no move is feasible, throws error.

Package

open-vrp.algo.

Source

best-insertion.lisp.

Function: get-best-solution-from-multi-run (solutions)

Given a list of solutions (from multi-run), return the best solution.

Package

open-vrp.util.

Source

solver.lisp.

Function: get-busy-vehicles (problem)

Returns a list of <Vehicles> that are not empty, given a <Problem> object.

Package

open-vrp.util.

Source

route.lisp.

Function: get-closest-node (prob veh-id &optional tabu)

Returns the closest node from the last location of vehicle. Requires <problem> and vehicle-ID. A tabu list of node-IDs is optional to exclude consideration of some nodes.

Package

open-vrp.algo.

Source

tools.lisp.

Function: get-closest-vehicle (n prob)

Returns the closest <vehicle> to <node>. Used by insertion heuristic. When multiple <vehicle> are on equal distance, choose first one (i.e. lowest ID).

Package

open-vrp.algo.

Source

tools.lisp.

Function: get-max (list &key key)

Gets the maximum value from a list, while ignoring the NIL values.

Package

open-vrp.util.

Source

list.lisp.

Function: get-max-index (list &key key)

Returns index of the largest value on list, while ignoring NIL. Returns index and its value (closest node and value).

Package

open-vrp.util.

Source

list.lisp.

Function: get-min (list &key key)

Gets the minimum value from a list, while ignoring the NIL values.

Package

open-vrp.util.

Source

list.lisp.

Function: get-min-index (list &key key)

Returns index of the smallest value on list, while ignoring NIL. Returns index and its value (closest node and value).

Package

open-vrp.util.

Source

list.lisp.

Function: init-algo (sol algo)

Given a solution, sets the :current-sol, :best-fitness and :best-sol slots of the <algo> object. Returns <algo>.

Package

open-vrp.util.

Source

solver.lisp.

Function: insert-at-end (object list)

Appends the object at the end of the list

Package

open-vrp.util.

Source

list.lisp.

Function: insert-before (object index list)

Insert object before index of list. 0 implies inserting in front, length of list implies appending at the end. Throws index out of bounds when index is larger.

Package

open-vrp.util.

Source

list.lisp.

Function: insert-node (veh node index)

Adds the <Node> object before the index of the route of <vehicle>. An index of 0 implies inserting in front, length of list implies at the end.

Package

open-vrp.util.

Source

route.lisp.

Function: is-tabu-movep (ts mv)

Given a <Move>, checks if the parameters returned by calling :tabu-parameter-f are recorded on the list.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: is-tabup (ts pars)

Given pars, checks if on tabu list of <tabu-search>

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: load-solomon-vrp-file (file)

Load testcase from file, which should be Solomon style.

Package

open-vrp.util.

Source

read-solomon.lisp.

Function: load-test-case-file (filepath)

Given a file, will recognize the format based on some cues and dispatch to appropriate reader function to parse the file. File with .vrp extension will be read as TSPLIB.

Package

open-vrp.util.

Source

read-test-case.lisp.

Function: load-tsplib-vrp-file (file)

Load a subset of the VRP in the TSPLIB. Do not support time windows. ###################
NAME: xxxx
...
DIMENSION: xxx
...
EDGE_WEIGHT_FORMAT: FUNCTION
...
EDGE_WEIGHT_TYPE: EXACT_2D
CAPACITY: xxx
...
NODE_COORD_SECTION
....
DEPOT_SECTION
1
-1
EOF
####################
EDGE_WEIGHT_FORMAT and EDGE_WEIGHT_TYPE are optional

Package

open-vrp.util.

Source

read-cvrp.lisp.

Function: make-drawer (&key min-coord max-coord x-pos y-pos max-pix legendp legend-x legend-y filename plotp)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: make-insertion-move (&key fitness node-id vehicle-id index)
Package

open-vrp.algo.

Source

tools.lisp.

Function: make-node (&key id xcor ycor demand start end duration)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: make-ts-best-insertion-move (&key fitness node-id vehicle-id index)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: make-vehicle (&key id route capacity speed)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: map0-n (fn n)

maps from 0 to n

Package

open-vrp.util.

Source

simple-utils.lisp.

Function: map1-n (fn n)

maps from 1 to n

Package

open-vrp.util.

Source

simple-utils.lisp.

Function: max-car (list)

Provided a list, return the maximum value considering the cars

Package

open-vrp.util.

Source

simple-utils.lisp.

Function: max-cdr (list)

Provided a list, return the maximum value considering the cdrs

Package

open-vrp.util.

Source

simple-utils.lisp.

Reader: move-fitness (instance)
Writer: (setf move-fitness) (instance)
Package

open-vrp.algo.

Source

tools.lisp.

Target Slot

fitness.

Reader: move-index (instance)
Writer: (setf move-index) (instance)
Package

open-vrp.algo.

Source

tools.lisp.

Target Slot

index.

Reader: move-node-id (instance)
Writer: (setf move-node-id) (instance)
Package

open-vrp.algo.

Source

tools.lisp.

Target Slot

node-id.

Reader: move-vehicle-id (instance)
Writer: (setf move-vehicle-id) (instance)
Package

open-vrp.algo.

Source

tools.lisp.

Target Slot

vehicle-id.

Reader: node-demand (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

demand.

Function: node-distance (n1 n2)

Given two node objects, calculate and return their distance (Cartesian).

Package

open-vrp.util.

Source

network.lisp.

Reader: node-duration (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

duration.

Reader: node-end (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

end.

Reader: node-id (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

id.

Function: node-on-routep (node-id vehicle)

Returns NIL of <vehicle> does not have the node on its route.

Package

open-vrp.util.

Source

fleet.lisp.

Reader: node-start (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

start.

Reader: node-xcor (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

xcor.

Reader: node-ycor (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

ycor.

Function: one-destinationp (route)

Return T if there is only one destination on route, excluding base nodes.

Package

open-vrp.util.

Source

route.lisp.

Function: print-final-results (prob algo &optional stream)

Prints final results of run, helper function to :after methods of run-algo and solve-prob.

Package

open-vrp.util.

Source

output.lisp.

Function: print-multi-run-stats (algo-objects &optional str)

Given a list of algo-objects returned by multi-run, print run-stats.

Package

open-vrp.util.

Source

output.lisp.

Function: print-timestamp (&optional stream)

Prints timestamp to stream, source from cl-cookbook.

Package

open-vrp.util.

Source

output.lisp.

Function: print-vrp-object (object &optional stream)

Given object, will print it’s object’s slots and values

Package

open-vrp.util.

Source

output.lisp.

Function: random-list-permutation (length)

Randomly creates a permutation from 1 to length.

Package

open-vrp.util.

Source

list.lisp.

Function: remove-index (index list)

Given a list, remove the object on index. Does not accept index out of bounds. Returns the new list AND the object that was removed.

Package

open-vrp.util.

Source

list.lisp.

Function: remove-node-at (veh index)

Removes the <node> from the route of <vehicle> at index

Package

open-vrp.util.

Source

route.lisp.

Function: set-dist-array (problem dist-array)

Given a <problem> and a 2-dimensional list or array in dist-array, set it in <problem>

Package

open-vrp.util.

Source

config-functions.lisp.

Function: set-log-file (prob path)

Sets the output location of the log-file.

Package

open-vrp.util.

Source

config-functions.lisp.

Function: set-log-mode (prob x)

Sets log-mode: 0 for no log, 1 for log to log-file, 2 for REPL log.

Package

open-vrp.util.

Source

config-functions.lisp.

Function: set-plot-file (prob path)

Sets the plot output file location.

Package

open-vrp.util.

Source

config-functions.lisp.

Function: single (lst)
Package

open-vrp.util.

Source

simple-utils.lisp.

Function: sort-ignore-nil (list predicate &key key)

Sorts the sequence with #’< or #’> while passing all NIL values towards the end of result.

Package

open-vrp.util.

Source

list.lisp.

Function: sort-moves (moves)

Given a list of <Move>s, sort them according to fitness (ascending). Undestructive.

Package

open-vrp.algo.

Source

iterator.lisp.

Function: sum (list)

A quick list summer, 4 times as fast as (reduce #’+ list)

Package

open-vrp.util.

Source

simple-utils.lisp.

Function: time-after-serving-node (node arrival-time)

Given a node to serve and the current time, return the new time (if on-time to begin with). When arrival-time is too early, wait till earliest start time.

Package

open-vrp.util.

Source

constraints.lisp.

Function: toggle-animate (algo)

Toggles animation, which means plotting every iteration in run-frames/ folder

Package

open-vrp.util.

Source

config-functions.lisp.

Function: toggle-aspiration (ts)
Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: toggle-elite-list (ts)
Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: travel-time (n1 n2 &key dist-array speed)

Given two <nodes> and optional speed, return the travel-time. When dist-array is not provided, calculate distance directly using coords.

Package

open-vrp.util.

Source

constraints.lisp.

Function: veh-in-timep (v &optional dist-array)

Tests weather the route on <Vehicle> is complying with the time-window constraints. Returns T and the time of finishing its last task.

Package

open-vrp.util.

Source

constraints.lisp.

Reader: vehicle-capacity (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

capacity.

Reader: vehicle-id (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

id.

Reader: vehicle-route (instance)
Writer: (setf vehicle-route) (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

route.

Reader: vehicle-speed (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Target Slot

speed.

Function: vehicle-with-node-id (prob node-id)

Given a node-ID, return the vehicle-ID that has the node in its route. The function for the input of the base-node 0 is undefined. Returns NIL if node-ID cannot be found.

Package

open-vrp.util.

Source

fleet.lisp.


6.1.4 Generic functions

Generic Reader: algo-animatep (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-animatep ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

animatep.

Generic Writer: (setf algo-animatep) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf algo-animatep) ((algo algo))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

animatep.

Generic Reader: algo-best-fitness (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-best-fitness ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

best-fitness.

Generic Writer: (setf algo-best-fitness) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf algo-best-fitness) ((algo algo))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

best-fitness.

Generic Reader: algo-best-iteration (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-best-iteration ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

best-iteration.

Generic Writer: (setf algo-best-iteration) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf algo-best-iteration) ((algo algo))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

best-iteration.

Generic Reader: algo-best-sol (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-best-sol ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

best-sol.

Generic Writer: (setf algo-best-sol) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf algo-best-sol) ((algo algo))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

best-sol.

Generic Reader: algo-current-sol (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-current-sol ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

current-sol.

Generic Writer: (setf algo-current-sol) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf algo-current-sol) ((algo algo))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

current-sol.

Generic Reader: algo-desc (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-desc ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

desc.

Generic Reader: algo-iterations (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-iterations ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

iterations.

Generic Writer: (setf algo-iterations) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf algo-iterations) ((algo algo))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

iterations.

Generic Reader: algo-name (object)
Package

open-vrp.classes.

Methods
Reader Method: algo-name ((algo algo))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

name.

Generic Function: assess-move (sol move)

The <Move> is assessed by calculating the fitness of solution before, and after. The fitness is the difference and is stored in the :fitness slot of the <Move> object.

Package

open-vrp.algo.

Source

iterator.lisp.

Methods
Method: assess-move ((sol problem) (mv ts-best-insertion-move))
Source

ts.lisp.

Method: assess-move ((sol problem) (m insertion-move))
Source

best-insertion.lisp.

Method: assess-move :around ((sol problem) (m move))
Method: assess-move ((sol problem) (m move))

Assesses the effect on fitness when <move> is performed on <problem> (on a clone - undestructive).

Method: assess-move (sol move)
Generic Function: constraintsp (prob)

Tests weather the solution in the <problem> is complying with the constraints. If the problem is a CVRP, check for capacity. If it is a VRPTW, check for time-windows. For CVRPTW, that inherits from both classes, check both constraints.

Package

open-vrp.util.

Source

constraints.lisp.

Method Combination

and.

Options

:most-specific-first

Methods
Method: constraintsp and ((sol vrptw))
Method: constraintsp and ((sol cvrp))
Method: constraintsp and ((prob problem))
Generic Function: feasible-movep (sol move)

Given a current solution, assess feasibility of the <Move>. For CVRP, just check if it fits in the total vehicle capacity. For VRPTW, check for TW feasibility of the whole route. For CVRPTW, checks both by means of multiple-inheritance and method-combination.

Package

open-vrp.algo.

Source

tools.lisp.

Method Combination

and.

Options

:most-specific-first

Methods
Method: feasible-movep and ((sol vrptw) (m insertion-move))
Method: feasible-movep and ((sol cvrp) (m insertion-move))
Method: feasible-movep and ((sol problem) (m move))
Generic Function: fitness (problem)

The generic fitness function. To be defined for each class of <problem> specifically. This function allows for custom fitness-functions for your own defined <problem> classess. The default fitness function is total distance.

Package

open-vrp.util.

Source

fitness.lisp.

Methods
Method: fitness ((prob problem))
Method: fitness (problem)
Generic Function: generate-moves (algo)

Given the algo object, that contains the current solution, generate potential <moves> for next iteration as defined by the algo. e.g. insertion moves for TS and chromosome pool for GA.

Package

open-vrp.algo.

Source

iterator.lisp.

Methods
Method: generate-moves ((ts tabu-search))

Generates a list of <move> instances (depending on what was defined in the ts slot) for all nodes and vehicles.

Source

ts.lisp.

Method: generate-moves (algo)
Generic Function: get-best-insertion-move (prob node)

Given a node and a solution (that does not have this node yet), return the best <insertion-move>.

Package

open-vrp.algo.

Source

best-insertion.lisp.

Methods
Method: get-best-insertion-move ((sol problem) (n node))
Method: get-best-insertion-move (prob node)
Generic Function: get-closest-feasible-vehicle (n prob)
Package

open-vrp.algo.

Methods
Method: get-closest-feasible-vehicle ((n node) (prob vrptw))

Returns the vehicle closest to the node that has enough time at the end of its route. Used for appending nodes. Use get-optimal-insertion instead for inserting feasibly into routes.

Source

tools.lisp.

Method: get-closest-feasible-vehicle ((n node) (prob cvrp))

Returns the vehicle closest to the node and has enough capacity.

Source

tools.lisp.

Method: get-closest-feasible-vehicle ((n node) (prob problem))
Source

tools.lisp.

Generic Function: in-capacityp (veh/cvrp)

Tests weather the route on <vehicle> is complying with the capacity constraint. Returns T and the remaining capacity if it does. When <CVRP> is provided, test all vehicles.

Package

open-vrp.util.

Source

constraints.lisp.

Methods
Method: in-capacityp ((pr cvrp))
Method: in-capacityp ((v vehicle))
Method: in-capacityp (obj)
Generic Function: in-timep (pr)
Package

open-vrp.util.

Methods
Method: in-timep ((pr vrptw))
Source

constraints.lisp.

Generic Function: initialize (problem algo)

Initializes the initial solution for the algo object.

Package

open-vrp.algo.

Source

iterator.lisp.

Methods
Method: initialize ((prob problem) (ts tabu-search))

Creates inital solution and sets it to :algo-current-sol. Returns the <tabu-search> object. For Tabu Search, the default heuristic for generating an initial solution is ’greedy-best-insertion, which is read from the slot :init-heur.

Source

ts.lisp.

Method: initialize (problem algo)
Generic Function: iterate (algo)

Runs the algo one iteration. Implementation of this method should use the algo’s slot current-sol as current solution and destructively adjust it to a new solution. When algo’s slot iterations is 0, then print the best solution found by this algo object. Returns the <algo> object. After each iterate, will automatically check if a new best solution has been found and adjust the :best-sol and :best-fitness slots for you. When :animatep is set to T, will plot current solution in run-frames/

Package

open-vrp.util.

Source

solver.lisp.

Methods
Method: iterate :around ((ts tabu-search))
Source

ts.lisp.

Method: iterate ((ts tabu-search))
Source

ts.lisp.

Method: iterate :after ((a algo))
Method: iterate :around ((a algo))
Method: iterate (algo)
Generic Function: iterate-more (algo int)

When an algo finished (i.e. iterations = 0) using iterate-more allows you to keep running it x more iterations. Also resets :best-iteration, which the stopping condition uses. Calls run-algo on the :current-sol of and with <algo>.

Package

open-vrp.util.

Source

solver.lisp.

Methods
Method: iterate-more :after ((a algo) int)
Method: iterate-more ((a algo) int)
Method: iterate-more (algo int)
Generic Function: last-node (vehicle)

Returns the last <node> in its route. Depicts the current location (before returning to base).

Package

open-vrp.util.

Source

route.lisp.

Methods
Method: last-node ((v vehicle))
Method: last-node (route)
Generic Function: log-to-replp (prob/algo)

Returns T if :log-mode is set to 2, which is REPL.

Package

open-vrp.util.

Source

output.lisp.

Methods
Method: log-to-replp ((a algo))
Method: log-to-replp ((p problem))
Generic Function: node (prob id)
Package

open-vrp.classes.

Methods
Method: node ((prob problem) id)
Source

network.lisp.

Generic Function: perform-move (sol move)

Performs the move defined in <move> on the solution. Returns the new solution (which is a class of <Problem>)

Package

open-vrp.algo.

Source

iterator.lisp.

Methods
Method: perform-move ((sol problem) (mv ts-best-insertion-move))

Takes <Node> with node-ID and uses get-best-insertion to insert in vehicle-ID. DESTRUCTIVE.

Source

ts.lisp.

Method: perform-move :after ((prob problem) (mv insertion-move))
Source

best-insertion.lisp.

Method: perform-move ((sol problem) (m insertion-move))

Performs the <move> on <problem>.

Source

best-insertion.lisp.

Method: perform-move (sol move)
Generic Function: plot-nodes (problem)

Draws only the nodes in output file.

Package

open-vrp.util.

Source

draw-solution.lisp.

Methods
Method: plot-nodes ((prob problem))
Method: plot-nodes (problem)
Generic Function: plot-solution (problem/algo &optional output-file)

Given a solution object (<problem>/<algo>), draw the solution in output file given in the drawer object’s :filename slot (which is held in problem-drawer slot). When <algo> object as input, draw the best found solution by that algo object.

Package

open-vrp.util.

Source

draw-solution.lisp.

Methods
Method: plot-solution ((a algo) &optional output-file)
Method: plot-solution ((sol problem) &optional output-file)
Generic Function: print-routes (prob/algo &optional stream)

Prints solution given a <problem>/<algo> object. Also prints the total distance when the input is a <problem>/<algo> object.

Package

open-vrp.util.

Source

output.lisp.

Methods
Method: print-routes ((a algo) &optional stream)
Method: print-routes ((prob problem) &optional stream)
Generic Reader: problem-desc (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-desc ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

desc.

Generic Reader: problem-dist-array (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-dist-array ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

dist-array.

Generic Writer: (setf problem-dist-array) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf problem-dist-array) ((problem problem))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

dist-array.

Generic Reader: problem-drawer (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-drawer ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

drawer.

Generic Writer: (setf problem-drawer) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf problem-drawer) ((problem problem))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

drawer.

Generic Reader: problem-fleet (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-fleet ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

fleet.

Generic Reader: problem-log-file (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-log-file ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

log-file.

Generic Writer: (setf problem-log-file) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf problem-log-file) ((problem problem))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

log-file.

Generic Reader: problem-log-mode (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-log-mode ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

log-mode.

Generic Writer: (setf problem-log-mode) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf problem-log-mode) ((problem problem))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

log-mode.

Generic Reader: problem-name (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-name ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

name.

Generic Reader: problem-network (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-network ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

network.

Generic Reader: problem-to-depot (object)
Package

open-vrp.classes.

Methods
Reader Method: problem-to-depot ((problem problem))

automatically generated reader method

Source

class-definitions.lisp.

Target Slot

to-depot.

Generic Writer: (setf problem-to-depot) (object)
Package

open-vrp.classes.

Methods
Writer Method: (setf problem-to-depot) ((problem problem))

automatically generated writer method

Source

class-definitions.lisp.

Target Slot

to-depot.

Generic Function: remove-node-id (veh/prob node-id)

Removes the <node> with node-ID from the route of <vehicle>. Returns NIL if failed to find node-ID.

Package

open-vrp.util.

Source

route.lisp.

Methods
Method: remove-node-id ((prob problem) node-id)
Method: remove-node-id ((v vehicle) node-id)
Method: remove-node-id (vehicle node-id)
Generic Function: route-indices (obj)

When input is a <vehicle>, returns its route as a list of node IDs. When input is <fleet>/<problem>, list all routes.

Package

open-vrp.util.

Source

fleet.lisp.

Methods
Method: route-indices ((p problem))
Method: route-indices ((v vehicle))
Method: route-indices (vehicle)
Generic Function: run-algo (problem algo)

Runs the algo on the problem. Destructive - will have side-effects on the <problem> and <algo> objects. Use solve-prob to prevent <problem> object being touched. Will return the <Algo> object, which will contain the solution (in the form of a copy of the <problem> object) in the :best-sol slot. When defining your own algorithms, make sure to implement a run-algo method for your algo, which sets the <algo> slots appropriately, and returns the <algo> object. For algorithms that just build a solution (like greedy-best-insertion or greedy-append), you can use init-algo to set :current-sol, :best-sol, :best-fitness simultaneously. For search algorithms – such as local search, population based algorithms – may make use of the iterate method to automatically set the slots after each iteration.

Package

open-vrp.util.

Source

solver.lisp.

Methods
Method: run-algo ((prob problem) (ts tabu-search))

Initialize (if necessary), iterate till finished. Returns <Algo> object.

Source

ts.lisp.

Method: run-algo ((p problem) (a greedy-best-insertion))

Randomly insert <Nodes> one by one to best <vehicle> in best location. Returns <Algo> object when done.

Source

greedy-best-insertion.lisp.

Method: run-algo ((p problem) (a greedy-append))

Randomly append <Nodes> one by one to the closest <Vehicle>. Returns <Algo> object when done. Also prints the fitness and solution.

Source

greedy-append.lisp.

Method: run-algo ((p problem) (a greedy-nn))

While there exists unchosen nodes, keep appending it. Returns the <Algo> object when done. Also prints the fitness and solution (run-algo :after method).

Source

greedy-nn.lisp.

Method: run-algo :after ((p problem) (a algo))
Method: run-algo :around ((p problem) (a algo))
Method: run-algo (problem algo)
Generic Function: select-move (algo moves)

Given an <Algo> object and the list of <Moves>, select a move. By default, sort the moves and select the best one, but e.g. for tabu-search, check first of the <Move> is tabu.

Package

open-vrp.algo.

Source

iterator.lisp.

Methods
Method: select-move ((ts tabu-search) all-moves)

This function selects best non-tabu move from a list of assessed moves. When aspiration criteria is set to T, then if by performing the move we get a new best solution, circumvent the tabu-list.

Source

ts.lisp.

Method: select-move ((a algo) moves)
Method: select-move (algo moves)
Generic Function: solve-prob (problem algo)

Solves the problem with the algo. Uses run-algo, but leaves the <problem> object untouched (<Algo> will suffer side-effects). Works with a clone (copy-object in lib/simple-utils.lisp). NON-destructive wrapper to the run-algo method.

Package

open-vrp.util.

Source

solver.lisp.

Methods
Method: solve-prob :after ((p problem) (a algo))
Method: solve-prob :before ((p problem) (a algo))
Method: solve-prob ((problem problem) (algo algo))
Method: solve-prob (problem algo)
Generic Reader: tabu-list (condition)
Package

open-vrp.algo.

Methods
Reader Method: tabu-list ((condition all-moves-tabu))
Source

algo-conditions.lisp.

Target Slot

tabu-list.

Generic Function: toggle-legend (problem/algo)

Toggles legend drawing. When <Algo> is provided, toggles :best-sol

Package

open-vrp.util.

Source

config-functions.lisp.

Methods
Method: toggle-legend ((a algo))
Method: toggle-legend ((pr problem))
Generic Function: toggle-plot (problem/algo)

Toggles plotting on/off of best solution. Config boolean is held by <Drawer> object’s plotp slot.

Package

open-vrp.util.

Source

config-functions.lisp.

Methods
Method: toggle-plot ((a algo))
Method: toggle-plot ((pr problem))
Generic Function: total-dist (veh/prob dist-array)

Returns total distance of the route(s) given a vehicle or a fleet.

Package

open-vrp.util.

Source

fleet.lisp.

Methods
Method: total-dist ((p problem) dist-array)
Method: total-dist ((v vehicle) dist-array)
Method: total-dist (veh/prob dist-array)
Generic Reader: ts-aspirationp (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-aspirationp ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

aspirationp.

Generic Writer: (setf ts-aspirationp) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-aspirationp) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

aspirationp.

Generic Reader: ts-candidate-list (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-candidate-list ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

candidate-list.

Generic Writer: (setf ts-candidate-list) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-candidate-list) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

candidate-list.

Generic Reader: ts-elite-listp (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-elite-listp ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

elite-listp.

Generic Writer: (setf ts-elite-listp) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-elite-listp) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

elite-listp.

Generic Reader: ts-init-heur (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-init-heur ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

init-heur.

Generic Writer: (setf ts-init-heur) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-init-heur) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

init-heur.

Generic Reader: ts-move-type (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-move-type ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

move-type.

Generic Writer: (setf ts-move-type) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-move-type) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

move-type.

Generic Reader: ts-parameter-f (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-parameter-f ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

tabu-parameter-f.

Generic Writer: (setf ts-parameter-f) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-parameter-f) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

tabu-parameter-f.

Generic Reader: ts-stopping-condition (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-stopping-condition ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

stopping-condition.

Generic Writer: (setf ts-stopping-condition) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-stopping-condition) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

stopping-condition.

Generic Reader: ts-tabu-list (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-tabu-list ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

tabu-list.

Generic Writer: (setf ts-tabu-list) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-tabu-list) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

tabu-list.

Generic Reader: ts-tenure (object)
Package

open-vrp.algo.

Methods
Reader Method: ts-tenure ((tabu-search tabu-search))

automatically generated reader method

Source

ts-classdef.lisp.

Target Slot

tabu-tenure.

Generic Writer: (setf ts-tenure) (object)
Package

open-vrp.algo.

Methods
Writer Method: (setf ts-tenure) ((tabu-search tabu-search))

automatically generated writer method

Source

ts-classdef.lisp.

Target Slot

tabu-tenure.

Generic Function: vehicle (p id)
Package

open-vrp.classes.

Methods
Method: vehicle ((p problem) id)
Source

fleet.lisp.


6.1.5 Standalone methods

Reader Method: file ((condition file-not-recognized))
Package

keyword.

Source

conditions.lisp.

Target Slot

file.


6.1.6 Conditions

Condition: list-of-nils
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: ls
Initargs

:ls

Readers

ls.

Writers

This slot is read-only.

Slot: key
Initargs

:key

Readers

key.

Writers

This slot is read-only.

Condition: same-origin-destination
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: from
Initargs

:from

Readers

from.

Writers

This slot is read-only.

Slot: to
Initargs

:to

Readers

to.

Writers

This slot is read-only.


6.1.7 Structures

Structure: drawer
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: min-coord
Readers

drawer-min-coord.

Writers

(setf drawer-min-coord).

Slot: max-coord
Readers

drawer-max-coord.

Writers

(setf drawer-max-coord).

Slot: x-pos
Initform

0

Readers

drawer-x-pos.

Writers

(setf drawer-x-pos).

Slot: y-pos
Initform

0

Readers

drawer-y-pos.

Writers

(setf drawer-y-pos).

Slot: max-pix
Initform

1000

Readers

drawer-max-pix.

Writers

(setf drawer-max-pix).

Slot: legendp
Initform

t

Readers

drawer-legendp.

Writers

(setf drawer-legendp).

Slot: legend-x
Initform

100

Readers

drawer-legend-x.

Writers

(setf drawer-legend-x).

Slot: legend-y
Initform

900

Readers

drawer-legend-y.

Writers

(setf drawer-legend-y).

Slot: filename
Readers

drawer-filename.

Writers

(setf drawer-filename).

Slot: plotp
Readers

drawer-plotp.

Writers

(setf drawer-plotp).

Structure: insertion-move
Package

open-vrp.algo.

Source

tools.lisp.

Direct superclasses

move.

Direct subclasses

ts-best-insertion-move.

Direct methods
Direct slots
Slot: node-id
Package

open-vrp.classes.

Readers

move-node-id.

Writers

(setf move-node-id).

Slot: vehicle-id
Package

open-vrp.classes.

Readers

move-vehicle-id.

Writers

(setf move-vehicle-id).

Slot: index
Readers

move-index.

Writers

(setf move-index).

Structure: move
Package

open-vrp.algo.

Source

tools.lisp.

Direct superclasses

structure-object.

Direct subclasses

insertion-move.

Direct methods
Direct slots
Slot: fitness
Package

open-vrp.util.

Readers

move-fitness.

Writers

(setf move-fitness).

Structure: node
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: id
Type

fixnum

Initform

0

Readers

node-id.

Writers

This slot is read-only.

Slot: xcor
Initform

0

Readers

node-xcor.

Writers

This slot is read-only.

Slot: ycor
Initform

0

Readers

node-ycor.

Writers

This slot is read-only.

Slot: demand
Type

fixnum

Initform

0

Readers

node-demand.

Writers

This slot is read-only.

Slot: start
Type

fixnum

Initform

0

Readers

node-start.

Writers

This slot is read-only.

Slot: end
Type

fixnum

Initform

0

Readers

node-end.

Writers

This slot is read-only.

Slot: duration
Type

fixnum

Initform

0

Readers

node-duration.

Writers

This slot is read-only.

Structure: ts-best-insertion-move
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Direct superclasses

insertion-move.

Direct methods
Structure: vehicle
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: id
Type

fixnum

Initform

0

Readers

vehicle-id.

Writers

This slot is read-only.

Slot: route
Readers

vehicle-route.

Writers

(setf vehicle-route).

Slot: capacity
Type

fixnum

Initform

0

Readers

vehicle-capacity.

Writers

This slot is read-only.

Slot: speed
Package

common-lisp.

Initform

1

Readers

vehicle-speed.

Writers

This slot is read-only.


6.1.8 Classes

Class: algo
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

algo-name.

Writers

This slot is read-only.

Slot: desc
Allocation

:class

Initargs

:desc

Readers

algo-desc.

Writers

This slot is read-only.

Slot: best-sol
Initargs

:best-sol

Readers

algo-best-sol.

Writers

(setf algo-best-sol).

Slot: best-fitness
Initargs

:best-fitness

Readers

algo-best-fitness.

Writers

(setf algo-best-fitness).

Slot: best-iteration
Initform

0

Readers

algo-best-iteration.

Writers

(setf algo-best-iteration).

Slot: current-sol
Initargs

:current-sol

Readers

algo-current-sol.

Writers

(setf algo-current-sol).

Slot: iterations
Initargs

:iterations

Readers

algo-iterations.

Writers

(setf algo-iterations).

Slot: animatep
Initargs

:animatep

Readers

algo-animatep.

Writers

(setf algo-animatep).

Class: cvrp
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct superclasses

problem.

Direct subclasses

cvrptw.

Direct methods
Direct slots
Slot: name
Initform

"cvrp"

Slot: desc
Initform

"capacitated vehicle routing problem"

Class: cvrptw
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct superclasses
Direct slots
Slot: name
Initform

"cvrptw"

Slot: desc
Initform

"capacitated vehicle routing problem with time windows"

Class: greedy-append
Package

open-vrp.algo.

Source

greedy-append.lisp.

Direct superclasses

algo.

Direct methods

run-algo.

Direct slots
Slot: name
Package

open-vrp.classes.

Initform

"greedy appending heuristic"

Slot: desc
Package

open-vrp.classes.

Initform

"random greedy insertion heuristic; append nodes to closest vehicle successively. used as initial solution for search algos."

Class: greedy-best-insertion
Package

open-vrp.algo.

Source

greedy-best-insertion.lisp.

Direct superclasses

algo.

Direct methods

run-algo.

Direct slots
Slot: name
Package

open-vrp.classes.

Initform

"greedy best insertion heuristic"

Slot: desc
Package

open-vrp.classes.

Initform

"randomly insert nodes one by one to best vehicle at best location. used as initial solution for search algos."

Class: greedy-nn
Package

open-vrp.algo.

Source

greedy-nn.lisp.

Direct superclasses

algo.

Direct methods

run-algo.

Direct slots
Slot: name
Package

open-vrp.classes.

Initform

"greedy nn-algo"

Slot: desc
Package

open-vrp.classes.

Initform

"nearest neighborhood algo; from base/random, select next closest one"

Class: problem
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: name
Initform

"vrp"

Initargs

:name

Readers

problem-name.

Writers

This slot is read-only.

Slot: desc
Allocation

:class

Initform

"vehicle routing problem"

Initargs

:desc

Readers

problem-desc.

Writers

This slot is read-only.

Slot: network
Initargs

:network

Readers

problem-network.

Writers

This slot is read-only.

Slot: dist-array
Initargs

:dist-array

Readers

problem-dist-array.

Writers

(setf problem-dist-array).

Slot: fleet
Initargs

:fleet

Readers

problem-fleet.

Writers

This slot is read-only.

Slot: to-depot
Initform

t

Initargs

:to-depot

Readers

problem-to-depot.

Writers

(setf problem-to-depot).

Slot: drawer
Initargs

:drawer

Readers

problem-drawer.

Writers

(setf problem-drawer).

Slot: log-file
Initargs

:log-file

Readers

problem-log-file.

Writers

(setf problem-log-file).

Slot: log-mode
Initform

1

Initargs

:log-mode

Readers

problem-log-mode.

Writers

(setf problem-log-mode).

Class: tabu-search
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Direct superclasses

algo.

Direct methods
Direct slots
Slot: name
Package

open-vrp.classes.

Initform

"tabu search"

Slot: desc
Package

open-vrp.classes.

Initform

"a local search that escapes local optima by means of declaring certain moves tabu."

Slot: move-type
Initform

(quote open-vrp.algo:ts-best-insertion-move)

Initargs

:move-type

Readers

ts-move-type.

Writers

(setf ts-move-type).

Slot: init-heur
Initform

(quote open-vrp.algo:greedy-best-insertion)

Initargs

:init-heur

Readers

ts-init-heur.

Writers

(setf ts-init-heur).

Slot: iterations
Package

open-vrp.classes.

Initform

20

Slot: aspirationp
Initform

t

Initargs

:aspirationp

Readers

ts-aspirationp.

Writers

(setf ts-aspirationp).

Slot: elite-listp
Initform

t

Initargs

:elite-listp

Readers

ts-elite-listp.

Writers

(setf ts-elite-listp).

Slot: tabu-list
Initargs

:tabu-list

Readers

ts-tabu-list.

Writers

(setf ts-tabu-list).

Slot: tabu-tenure
Initform

15

Initargs

:tabu-tenure

Readers

ts-tenure.

Writers

(setf ts-tenure).

Slot: tabu-parameter-f
Initform

(function open-vrp.algo::ts-pars-n)

Initargs

:tabu-parameter-f

Readers

ts-parameter-f.

Writers

(setf ts-parameter-f).

Slot: candidate-list
Initargs

:candidate-list

Readers

ts-candidate-list.

Writers

(setf ts-candidate-list).

Slot: stopping-condition
Initform

(function open-vrp.algo::stopping-conditionp)

Initargs

:stopping-condition

Readers

ts-stopping-condition.

Writers

(setf ts-stopping-condition).

Class: vrptw
Package

open-vrp.classes.

Source

class-definitions.lisp.

Direct superclasses

problem.

Direct subclasses

cvrptw.

Direct methods
Direct slots
Slot: name
Initform

"vrptw"

Slot: desc
Initform

"vehicle routing problem with time windows"


6.2 Internals


6.2.1 Special variables

Special Variable: *b*
Package

open-vrp.util.

Source

draw-solution.lisp.

Special Variable: *finish-time*
Package

open-vrp.util.

Source

solver.lisp.

Special Variable: *g*
Package

open-vrp.util.

Source

draw-solution.lisp.

Special Variable: *multi-run-finish-time*
Package

open-vrp.util.

Source

solver.lisp.

Special Variable: *r*
Package

open-vrp.util.

Source

draw-solution.lisp.

Special Variable: asym-net
Package

open-vrp.test.

Source

test-suite.lisp.

Special Variable: asym-tsp
Package

open-vrp.test.

Source

test-suite.lisp.

Special Variable: asym-vrp
Package

open-vrp.test.

Source

test-suite.lisp.


6.2.2 Macros

Macro: change-route (vehicle &body body)

Expands into binding the vehicles route to r and setting it to result of body.

Package

open-vrp.util.

Source

route.lisp.

Macro: for-node-id ((node-id prob) &body body)

Map over all node-IDs, except for base.

Package

open-vrp.algo.

Source

ts.lisp.

Macro: for-veh-id ((veh-id prob) &body body)

Map over all veh-IDs capped at fleet-size. Will consider only busy vehicles and one extra idle vehicle.

Package

open-vrp.algo.

Source

ts.lisp.

Macro: on-all-testcases (algo-symbol)
Package

open-vrp.test.

Source

test-suite.lisp.

Macro: use-node (drawer node &body body)
Package

open-vrp.util.

Source

draw-solution.lisp.


6.2.3 Ordinary functions

Function: %read-string (stream fn)
Package

open-vrp.util.

Source

read-cvrp.lisp.

Function: 2d-array-to-list (array)

Given a 2-dimensional array, return a list of lists.

Package

open-vrp.util.

Source

network.lisp.

Function: 2d-list-to-array (matrix)

Given a list of lists, return a 2-dimensional array.

Package

open-vrp.util.

Source

network.lisp.

Function: append-run-result (filepath results)

Given the output filepath (with table headers initialized) and a list of algo-objects (as returned by multi-run), append one line that summarizes the run (by calling get-multi-run-stats).

Package

open-vrp.util.

Source

output.lisp.

Function: arrow-to (drawer pix-x pix-y size skew)

Draws an arrow as in line-to, but creates an arrow in the middle of size. Use with canvas!

Package

open-vrp.util.

Source

draw-solution.lisp.

Function: capacities-left (prob)

Returns a list of all capacities left on the vehicles given the present solution.

Package

open-vrp.algo.

Source

tools.lisp.

Function: clear-tabu-list (ts)

Given a <tabu-search>, erase everything that is on the tabu-list. A useful restart in case all moves were declared tabu.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: coord->pix (drawer x)

Given a drawer and a coord, calculate the associated x/y pixel. Includes 1 coord as border.

Package

open-vrp.util.

Source

draw-solution.lisp.

Function: copy-drawer (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: copy-insertion-move (instance)
Package

open-vrp.algo.

Source

tools.lisp.

Function: copy-move (instance)
Package

open-vrp.algo.

Source

tools.lisp.

Function: copy-node (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: copy-ts-best-insertion-move (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: copy-vehicle (instance)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: couple-lists (list1 list2)

Given a list of x and y-coords, return a list of pairs usable. Used for node-coords or time-windows.

Package

open-vrp.util.

Source

read-solomon.lisp.

Function: distance-coord-pair (n1 n2)

Calculates distance given two coord pairs. Returns NIL if both coords are the same.

Package

open-vrp.util.

Source

network.lisp.

Function: distance-coords (x1 y1 x2 y2)

Calculates pythagoras distance

Package

open-vrp.util.

Source

network.lisp.

Function: dists-to-vehicles (node prob)

Given a <Node> and a <Problem>, return the list of all the distances from the <Node> to the current positions of the fleet. Used by get-closest-(feasible)-vehicle.

Package

open-vrp.algo.

Source

tools.lisp.

Function: draw-legend-item (drawer veh-obj r g b)
Package

open-vrp.util.

Source

draw-solution.lisp.

Function: draw-nodes (prob)

Given the <Problem> object, plot the nodes only. Usage only with-canvas!

Package

open-vrp.util.

Source

draw-solution.lisp.

Function: drawer-p (object)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: generate-insertion-moves (sol vehicle-id node-id)

Given the <solution> object, vehicle-id and node-id (integers), create all possible insertion-moves, and return them in a list. Avoid generating moves that won’t do anything (when doing intra-route insertion).

Package

open-vrp.algo.

Source

best-insertion.lisp.

Function: get-color ()

Returns next color. Deterministically random.

Package

open-vrp.util.

Source

draw-solution.lisp.

Function: get-from-list (list pred &key key)

Gets from list the value (max or min) while ignoring NIL’s. Returns NIL if the whole list is nil. Use get-min or get-max!

Package

open-vrp.util.

Source

list.lisp.

Function: get-index-of (list fn &key key)

Helper function of the below. Use get-min-index or get-max-index!

Package

open-vrp.util.

Source

list.lisp.

Function: get-max-coord (node-coords)
Package

open-vrp.util.

Source

init-macros.lisp.

Function: get-min-coord (node-coords)
Package

open-vrp.util.

Source

init-macros.lisp.

Function: get-min-index-with-tabu (distances tabu)

Returns index of the first next closest, that is not in chosen (which is a list).

Package

open-vrp.algo.

Source

tools.lisp.

Function: get-multi-run-stats (algo-objects)

Given a list of algo-objects, as returned by multi-run, return the stats with (values min max avg std runs time time/run)

Package

open-vrp.util.

Source

output.lisp.

Function: improving-movep (move)

Returns T if move is an improving one, i.e. has a negative fitness.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: insert-time-stamp-in-path (path time)

Given path, return the string of the path with the timestamp inserted before the .xxx

Package

open-vrp.util.

Source

output.lisp.

Function: insertion-move-p (object)
Package

open-vrp.algo.

Source

tools.lisp.

Function: late-v-duration ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: late-v-speed ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: make-move (&key fitness)
Package

open-vrp.algo.

Source

tools.lisp.

Function: mark-nill (list indices)

Marks the indices on list with NIL. DESTRUCTIVE.

Package

open-vrp.util.

Source

list.lisp.

Function: move-p (object)
Package

open-vrp.algo.

Source

tools.lisp.

Function: node-p (object)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: num-nodes (prob)

Given a problem, return the number of nodes in the network.

Package

open-vrp.algo.

Source

tools.lisp.

Function: num-veh (prob)

Given a problem, return size of the fleet.

Package

open-vrp.algo.

Source

tools.lisp.

Function: on-time-and-in-cap-v ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: on-time-but-overfull-v ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: on-time-v ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: overfull-v ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: print-batch-run-table-header (stream)
Package

open-vrp.util.

Source

output.lisp.

Function: print-header (prob algo &optional stream)

Given a <Problem> and <Algo> object, print out a short description for the objects, and a line that logs the time of start of solving

Package

open-vrp.util.

Source

output.lisp.

Function: read-string-while-member (stream lst)
Package

open-vrp.util.

Source

read-cvrp.lisp.

Function: read-string-while-not-member (stream lst)
Package

open-vrp.util.

Source

read-cvrp.lisp.

Function: route-from (ins-move sol)

Returns the route that contains the node that will be moved.

Package

open-vrp.algo.

Source

tools.lisp.

Function: route-to (ins-move sol)

Returns the route that will be affected by the insertion-move.

Package

open-vrp.algo.

Source

tools.lisp.

Function: same-lengthp (&rest lists)

Returns NIL if lists are not of equal length. Returns their length if all are equal. Accepts NIL arguments or single numbers, which will be ignored. Also accepts 2-dimensional arrays.

Package

open-vrp.util.

Source

init-macros.lisp.

Function: select-best-tabu (c)
Package

open-vrp.algo.

Source

algo-conditions.lisp.

Function: space-v ()
Package

open-vrp.test.

Source

test-suite.lisp.

Function: stopping-conditionp (ts)

Given a <tabu-search>, tests whether the number of iterations since the best solution was found is larger than triple tenure value. This is an indicator of cycling behaviour. Minimum 20 iterations in case tenure is smaller than 10. Usefull for many multi-runs.

Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: store-pix (drawer pix-x pix-y)

Store the position of the path (helper function for arrow calculation).

Package

open-vrp.util.

Source

draw-solution.lisp.

Function: times-of-arriving (node prob)

Returns a list of arrival times of the vehicles to node given the present solution.

Package

open-vrp.algo.

Source

tools.lisp.

Function: ts-best-insertion-move-fitness (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: (setf ts-best-insertion-move-fitness) (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: ts-best-insertion-move-index (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: (setf ts-best-insertion-move-index) (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: ts-best-insertion-move-node-id (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: (setf ts-best-insertion-move-node-id) (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: ts-best-insertion-move-p (object)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: ts-best-insertion-move-vehicle-id (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: (setf ts-best-insertion-move-vehicle-id) (instance)
Package

open-vrp.algo.

Source

ts-classdef.lisp.

Function: ts-pars-n (mv)
Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: ts-pars-nv (mv)
Package

open-vrp.algo.

Source

ts-utils.lisp.

Function: universal-time-to-string (&optional time)

Returns yymmdd-hhmmss in a string. Used for timestamped log-files.

Package

open-vrp.util.

Source

output.lisp.

Function: useless-move (mv prob)

Returns T if move is useless. Two options: 1. move concerns node and vehicle that has the node as it’s only destination, e.g. (0 2 0). 2. Moving node from one-destination vehicle to empty-vehicle, which becomes another one-destination vehicle.

Package

open-vrp.algo.

Source

ts.lisp.

Function: vehicle-p (object)
Package

open-vrp.classes.

Source

class-definitions.lisp.

Function: vrp-object (object)

Tests if the object is an instance of a VRP object that needs deep copy. (problem, fleet, vehicle)

Package

open-vrp.util.

Source

simple-utils.lisp.


6.2.4 Generic functions

Generic Reader: from (condition)
Package

open-vrp.util.

Methods
Reader Method: from ((condition same-origin-destination))
Source

conditions.lisp.

Target Slot

from.

Generic Reader: func (condition)
Package

open-vrp.util.

Methods
Reader Method: func ((condition infeasible-solution))
Source

conditions.lisp.

Target Slot

func.

Generic Reader: index (condition)
Package

open-vrp.util.

Methods
Reader Method: index ((condition index-out-of-bounds))
Source

conditions.lisp.

Target Slot

index.

Generic Reader: key (condition)
Package

open-vrp.util.

Methods
Reader Method: key ((condition list-of-nils))
Source

conditions.lisp.

Target Slot

key.

Generic Reader: lists (condition)
Package

open-vrp.util.

Methods
Reader Method: lists ((condition not-equal-length))
Source

conditions.lisp.

Target Slot

lists.

Generic Reader: ls (condition)
Package

open-vrp.util.

Methods
Reader Method: ls ((condition list-of-nils))
Source

conditions.lisp.

Target Slot

ls.

Reader Method: ls ((condition index-out-of-bounds))
Source

conditions.lisp.

Target Slot

ls.

Generic Reader: moves (condition)
Package

open-vrp.algo.

Methods
Reader Method: moves ((condition no-feasible-move))
Source

algo-conditions.lisp.

Target Slot

moves.

Reader Method: moves ((condition all-moves-tabu))
Source

algo-conditions.lisp.

Target Slot

moves.

Generic Reader: pred (condition)
Package

open-vrp.util.

Methods
Reader Method: pred ((condition unaccepted-predicate))
Source

conditions.lisp.

Target Slot

pred.

Generic Reader: prob (condition)
Package

open-vrp.util.

Methods
Reader Method: prob ((condition missing-drawer-object))
Source

conditions.lisp.

Target Slot

prob.

Generic Function: remove-affected-moves (ts move)
Package

open-vrp.algo.

Methods
Method: remove-affected-moves ((ts tabu-search) move)

Given a <Tabu-search> and one <Move> (to be performed), remove all the moves from the candidate-list that do not apply anymore after the selected move is performed.

Source

ts-utils.lisp.

Generic Reader: sol (condition)
Package

open-vrp.util.

Methods
Reader Method: sol ((condition infeasible-solution))
Source

conditions.lisp.

Target Slot

sol.

Generic Reader: to (condition)
Package

open-vrp.util.

Methods
Reader Method: to ((condition same-origin-destination))
Source

conditions.lisp.

Target Slot

to.

Generic Reader: veh (condition)
Package

open-vrp.util.

Methods
Reader Method: veh ((condition no-speed-vehicle))
Source

conditions.lisp.

Target Slot

veh.

Reader Method: veh ((condition no-capacities-vehicle))
Source

conditions.lisp.

Target Slot

veh.


6.2.5 Conditions

Condition: all-moves-tabu
Package

open-vrp.algo.

Source

algo-conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: moves
Initargs

:moves

Readers

moves.

Writers

This slot is read-only.

Slot: tabu-list
Initargs

:tabu-list

Readers

tabu-list.

Writers

This slot is read-only.

Condition: empty-network
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Condition: file-not-recognized
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

file.

Direct slots
Slot: file
Initargs

:file

Readers

file.

Writers

This slot is read-only.

Condition: index-out-of-bounds
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: index
Initargs

:index

Readers

index.

Writers

This slot is read-only.

Slot: ls
Initargs

:ls

Readers

ls.

Writers

This slot is read-only.

Condition: infeasible-solution
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: sol
Initargs

:sol

Readers

sol.

Writers

This slot is read-only.

Slot: func
Initargs

:func

Readers

func.

Writers

This slot is read-only.

Condition: missing-drawer-object
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

prob.

Direct slots
Slot: prob
Initargs

:prob

Readers

prob.

Writers

This slot is read-only.

Condition: no-capacities-vehicle
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

veh.

Direct slots
Slot: veh
Initargs

:veh

Readers

veh.

Writers

This slot is read-only.

Condition: no-feasible-move
Package

open-vrp.algo.

Source

algo-conditions.lisp.

Direct superclasses

error.

Direct methods

moves.

Direct slots
Slot: moves
Initargs

:moves

Readers

moves.

Writers

This slot is read-only.

Condition: no-initial-feasible-solution
Package

open-vrp.algo.

Source

algo-conditions.lisp.

Direct superclasses

error.

Condition: no-speed-vehicle
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

veh.

Direct slots
Slot: veh
Initargs

:veh

Readers

veh.

Writers

This slot is read-only.

Condition: not-equal-length
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

lists.

Direct slots
Slot: lists
Initargs

:lists

Readers

lists.

Writers

This slot is read-only.

Condition: unaccepted-predicate
Package

open-vrp.util.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

pred.

Direct slots
Slot: pred
Initargs

:pred

Readers

pred.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (   2  
A   B   C   D   E   F   G   I   K   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

%
%read-string: Private ordinary functions

(
(setf algo-animatep): Public generic functions
(setf algo-animatep): Public generic functions
(setf algo-best-fitness): Public generic functions
(setf algo-best-fitness): Public generic functions
(setf algo-best-iteration): Public generic functions
(setf algo-best-iteration): Public generic functions
(setf algo-best-sol): Public generic functions
(setf algo-best-sol): Public generic functions
(setf algo-current-sol): Public generic functions
(setf algo-current-sol): Public generic functions
(setf algo-iterations): Public generic functions
(setf algo-iterations): Public generic functions
(setf drawer-filename): Public ordinary functions
(setf drawer-legend-x): Public ordinary functions
(setf drawer-legend-y): Public ordinary functions
(setf drawer-legendp): Public ordinary functions
(setf drawer-max-coord): Public ordinary functions
(setf drawer-max-pix): Public ordinary functions
(setf drawer-min-coord): Public ordinary functions
(setf drawer-plotp): Public ordinary functions
(setf drawer-x-pos): Public ordinary functions
(setf drawer-y-pos): Public ordinary functions
(setf move-fitness): Public ordinary functions
(setf move-index): Public ordinary functions
(setf move-node-id): Public ordinary functions
(setf move-vehicle-id): Public ordinary functions
(setf problem-dist-array): Public generic functions
(setf problem-dist-array): Public generic functions
(setf problem-drawer): Public generic functions
(setf problem-drawer): Public generic functions
(setf problem-log-file): Public generic functions
(setf problem-log-file): Public generic functions
(setf problem-log-mode): Public generic functions
(setf problem-log-mode): Public generic functions
(setf problem-to-depot): Public generic functions
(setf problem-to-depot): Public generic functions
(setf ts-aspirationp): Public generic functions
(setf ts-aspirationp): Public generic functions
(setf ts-best-insertion-move-fitness): Private ordinary functions
(setf ts-best-insertion-move-index): Private ordinary functions
(setf ts-best-insertion-move-node-id): Private ordinary functions
(setf ts-best-insertion-move-vehicle-id): Private ordinary functions
(setf ts-candidate-list): Public generic functions
(setf ts-candidate-list): Public generic functions
(setf ts-elite-listp): Public generic functions
(setf ts-elite-listp): Public generic functions
(setf ts-init-heur): Public generic functions
(setf ts-init-heur): Public generic functions
(setf ts-move-type): Public generic functions
(setf ts-move-type): Public generic functions
(setf ts-parameter-f): Public generic functions
(setf ts-parameter-f): Public generic functions
(setf ts-stopping-condition): Public generic functions
(setf ts-stopping-condition): Public generic functions
(setf ts-tabu-list): Public generic functions
(setf ts-tabu-list): Public generic functions
(setf ts-tenure): Public generic functions
(setf ts-tenure): Public generic functions
(setf vehicle-route): Public ordinary functions

2
2d-array-to-list: Private ordinary functions
2d-list-to-array: Private ordinary functions

A
add-move-to-tabu: Public ordinary functions
add-to-tabu: Public ordinary functions
aif: Public macros
algo-animatep: Public generic functions
algo-animatep: Public generic functions
algo-best-fitness: Public generic functions
algo-best-fitness: Public generic functions
algo-best-iteration: Public generic functions
algo-best-iteration: Public generic functions
algo-best-sol: Public generic functions
algo-best-sol: Public generic functions
algo-current-sol: Public generic functions
algo-current-sol: Public generic functions
algo-desc: Public generic functions
algo-desc: Public generic functions
algo-iterations: Public generic functions
algo-iterations: Public generic functions
algo-name: Public generic functions
algo-name: Public generic functions
append-node: Public ordinary functions
append-run-result: Private ordinary functions
arrow-to: Private ordinary functions
assess-move: Public generic functions
assess-move: Public generic functions
assess-move: Public generic functions
assess-move: Public generic functions
assess-move: Public generic functions
assess-move: Public generic functions
assess-moves: Public ordinary functions
awhile: Public macros

B
batch-run: Public macros

C
capacities-left: Private ordinary functions
change-route: Private macros
clear-tabu-list: Private ordinary functions
constraints-check: Public macros
constraintsp: Public generic functions
constraintsp: Public generic functions
constraintsp: Public generic functions
constraintsp: Public generic functions
coord->pix: Private ordinary functions
copy-drawer: Private ordinary functions
copy-insertion-move: Private ordinary functions
copy-move: Private ordinary functions
copy-node: Private ordinary functions
copy-object: Public ordinary functions
copy-ts-best-insertion-move: Private ordinary functions
copy-vehicle: Private ordinary functions
couple-lists: Private ordinary functions
create-candidate-list: Public ordinary functions
create-nodes: Public macros
create-vehicles: Public macros

D
define-problem: Public macros
distance: Public ordinary functions
distance-coord-pair: Private ordinary functions
distance-coords: Private ordinary functions
dists-to-vehicles: Private ordinary functions
draw-legend-item: Private ordinary functions
draw-nodes: Private ordinary functions
drawer-filename: Public ordinary functions
drawer-legend-x: Public ordinary functions
drawer-legend-y: Public ordinary functions
drawer-legendp: Public ordinary functions
drawer-max-coord: Public ordinary functions
drawer-max-pix: Public ordinary functions
drawer-min-coord: Public ordinary functions
drawer-p: Private ordinary functions
drawer-plotp: Public ordinary functions
drawer-x-pos: Public ordinary functions
drawer-y-pos: Public ordinary functions

E
empty-routep: Public ordinary functions
enumerate-interval: Public ordinary functions

F
feasible-movep: Public generic functions
feasible-movep: Public generic functions
feasible-movep: Public generic functions
feasible-movep: Public generic functions
file: Public standalone methods
fitness: Public generic functions
fitness: Public generic functions
fitness: Public generic functions
fitness-before-after: Public ordinary functions
for-node-id: Private macros
for-veh-id: Private macros
from: Private generic functions
from: Private generic functions
func: Private generic functions
func: Private generic functions
Function, %read-string: Private ordinary functions
Function, (setf drawer-filename): Public ordinary functions
Function, (setf drawer-legend-x): Public ordinary functions
Function, (setf drawer-legend-y): Public ordinary functions
Function, (setf drawer-legendp): Public ordinary functions
Function, (setf drawer-max-coord): Public ordinary functions
Function, (setf drawer-max-pix): Public ordinary functions
Function, (setf drawer-min-coord): Public ordinary functions
Function, (setf drawer-plotp): Public ordinary functions
Function, (setf drawer-x-pos): Public ordinary functions
Function, (setf drawer-y-pos): Public ordinary functions
Function, (setf move-fitness): Public ordinary functions
Function, (setf move-index): Public ordinary functions
Function, (setf move-node-id): Public ordinary functions
Function, (setf move-vehicle-id): Public ordinary functions
Function, (setf ts-best-insertion-move-fitness): Private ordinary functions
Function, (setf ts-best-insertion-move-index): Private ordinary functions
Function, (setf ts-best-insertion-move-node-id): Private ordinary functions
Function, (setf ts-best-insertion-move-vehicle-id): Private ordinary functions
Function, (setf vehicle-route): Public ordinary functions
Function, 2d-array-to-list: Private ordinary functions
Function, 2d-list-to-array: Private ordinary functions
Function, add-move-to-tabu: Public ordinary functions
Function, add-to-tabu: Public ordinary functions
Function, append-node: Public ordinary functions
Function, append-run-result: Private ordinary functions
Function, arrow-to: Private ordinary functions
Function, assess-moves: Public ordinary functions
Function, capacities-left: Private ordinary functions
Function, clear-tabu-list: Private ordinary functions
Function, coord->pix: Private ordinary functions
Function, copy-drawer: Private ordinary functions
Function, copy-insertion-move: Private ordinary functions
Function, copy-move: Private ordinary functions
Function, copy-node: Private ordinary functions
Function, copy-object: Public ordinary functions
Function, copy-ts-best-insertion-move: Private ordinary functions
Function, copy-vehicle: Private ordinary functions
Function, couple-lists: Private ordinary functions
Function, create-candidate-list: Public ordinary functions
Function, distance: Public ordinary functions
Function, distance-coord-pair: Private ordinary functions
Function, distance-coords: Private ordinary functions
Function, dists-to-vehicles: Private ordinary functions
Function, draw-legend-item: Private ordinary functions
Function, draw-nodes: Private ordinary functions
Function, drawer-filename: Public ordinary functions
Function, drawer-legend-x: Public ordinary functions
Function, drawer-legend-y: Public ordinary functions
Function, drawer-legendp: Public ordinary functions
Function, drawer-max-coord: Public ordinary functions
Function, drawer-max-pix: Public ordinary functions
Function, drawer-min-coord: Public ordinary functions
Function, drawer-p: Private ordinary functions
Function, drawer-plotp: Public ordinary functions
Function, drawer-x-pos: Public ordinary functions
Function, drawer-y-pos: Public ordinary functions
Function, empty-routep: Public ordinary functions
Function, enumerate-interval: Public ordinary functions
Function, fitness-before-after: Public ordinary functions
Function, generate-dist-array: Public ordinary functions
Function, generate-insertion-moves: Private ordinary functions
Function, get-array-row: Public ordinary functions
Function, get-best-insertion-move-in-vehicle: Public ordinary functions
Function, get-best-solution-from-multi-run: Public ordinary functions
Function, get-busy-vehicles: Public ordinary functions
Function, get-closest-node: Public ordinary functions
Function, get-closest-vehicle: Public ordinary functions
Function, get-color: Private ordinary functions
Function, get-from-list: Private ordinary functions
Function, get-index-of: Private ordinary functions
Function, get-max: Public ordinary functions
Function, get-max-coord: Private ordinary functions
Function, get-max-index: Public ordinary functions
Function, get-min: Public ordinary functions
Function, get-min-coord: Private ordinary functions
Function, get-min-index: Public ordinary functions
Function, get-min-index-with-tabu: Private ordinary functions
Function, get-multi-run-stats: Private ordinary functions
Function, improving-movep: Private ordinary functions
Function, init-algo: Public ordinary functions
Function, insert-at-end: Public ordinary functions
Function, insert-before: Public ordinary functions
Function, insert-node: Public ordinary functions
Function, insert-time-stamp-in-path: Private ordinary functions
Function, insertion-move-p: Private ordinary functions
Function, is-tabu-movep: Public ordinary functions
Function, is-tabup: Public ordinary functions
Function, late-v-duration: Private ordinary functions
Function, late-v-speed: Private ordinary functions
Function, load-solomon-vrp-file: Public ordinary functions
Function, load-test-case-file: Public ordinary functions
Function, load-tsplib-vrp-file: Public ordinary functions
Function, make-drawer: Public ordinary functions
Function, make-insertion-move: Public ordinary functions
Function, make-move: Private ordinary functions
Function, make-node: Public ordinary functions
Function, make-ts-best-insertion-move: Public ordinary functions
Function, make-vehicle: Public ordinary functions
Function, map0-n: Public ordinary functions
Function, map1-n: Public ordinary functions
Function, mark-nill: Private ordinary functions
Function, max-car: Public ordinary functions
Function, max-cdr: Public ordinary functions
Function, move-fitness: Public ordinary functions
Function, move-index: Public ordinary functions
Function, move-node-id: Public ordinary functions
Function, move-p: Private ordinary functions
Function, move-vehicle-id: Public ordinary functions
Function, node-demand: Public ordinary functions
Function, node-distance: Public ordinary functions
Function, node-duration: Public ordinary functions
Function, node-end: Public ordinary functions
Function, node-id: Public ordinary functions
Function, node-on-routep: Public ordinary functions
Function, node-p: Private ordinary functions
Function, node-start: Public ordinary functions
Function, node-xcor: Public ordinary functions
Function, node-ycor: Public ordinary functions
Function, num-nodes: Private ordinary functions
Function, num-veh: Private ordinary functions
Function, on-time-and-in-cap-v: Private ordinary functions
Function, on-time-but-overfull-v: Private ordinary functions
Function, on-time-v: Private ordinary functions
Function, one-destinationp: Public ordinary functions
Function, overfull-v: Private ordinary functions
Function, print-batch-run-table-header: Private ordinary functions
Function, print-final-results: Public ordinary functions
Function, print-header: Private ordinary functions
Function, print-multi-run-stats: Public ordinary functions
Function, print-timestamp: Public ordinary functions
Function, print-vrp-object: Public ordinary functions
Function, random-list-permutation: Public ordinary functions
Function, read-string-while-member: Private ordinary functions
Function, read-string-while-not-member: Private ordinary functions
Function, remove-index: Public ordinary functions
Function, remove-node-at: Public ordinary functions
Function, route-from: Private ordinary functions
Function, route-to: Private ordinary functions
Function, same-lengthp: Private ordinary functions
Function, select-best-tabu: Private ordinary functions
Function, set-dist-array: Public ordinary functions
Function, set-log-file: Public ordinary functions
Function, set-log-mode: Public ordinary functions
Function, set-plot-file: Public ordinary functions
Function, single: Public ordinary functions
Function, sort-ignore-nil: Public ordinary functions
Function, sort-moves: Public ordinary functions
Function, space-v: Private ordinary functions
Function, stopping-conditionp: Private ordinary functions
Function, store-pix: Private ordinary functions
Function, sum: Public ordinary functions
Function, time-after-serving-node: Public ordinary functions
Function, times-of-arriving: Private ordinary functions
Function, toggle-animate: Public ordinary functions
Function, toggle-aspiration: Public ordinary functions
Function, toggle-elite-list: Public ordinary functions
Function, travel-time: Public ordinary functions
Function, ts-best-insertion-move-fitness: Private ordinary functions
Function, ts-best-insertion-move-index: Private ordinary functions
Function, ts-best-insertion-move-node-id: Private ordinary functions
Function, ts-best-insertion-move-p: Private ordinary functions
Function, ts-best-insertion-move-vehicle-id: Private ordinary functions
Function, ts-pars-n: Private ordinary functions
Function, ts-pars-nv: Private ordinary functions
Function, universal-time-to-string: Private ordinary functions
Function, useless-move: Private ordinary functions
Function, veh-in-timep: Public ordinary functions
Function, vehicle-capacity: Public ordinary functions
Function, vehicle-id: Public ordinary functions
Function, vehicle-p: Private ordinary functions
Function, vehicle-route: Public ordinary functions
Function, vehicle-speed: Public ordinary functions
Function, vehicle-with-node-id: Public ordinary functions
Function, vrp-object: Private ordinary functions

G
generate-dist-array: Public ordinary functions
generate-insertion-moves: Private ordinary functions
generate-moves: Public generic functions
generate-moves: Public generic functions
generate-moves: Public generic functions
Generic Function, (setf algo-animatep): Public generic functions
Generic Function, (setf algo-best-fitness): Public generic functions
Generic Function, (setf algo-best-iteration): Public generic functions
Generic Function, (setf algo-best-sol): Public generic functions
Generic Function, (setf algo-current-sol): Public generic functions
Generic Function, (setf algo-iterations): Public generic functions
Generic Function, (setf problem-dist-array): Public generic functions
Generic Function, (setf problem-drawer): Public generic functions
Generic Function, (setf problem-log-file): Public generic functions
Generic Function, (setf problem-log-mode): Public generic functions
Generic Function, (setf problem-to-depot): Public generic functions
Generic Function, (setf ts-aspirationp): Public generic functions
Generic Function, (setf ts-candidate-list): Public generic functions
Generic Function, (setf ts-elite-listp): Public generic functions
Generic Function, (setf ts-init-heur): Public generic functions
Generic Function, (setf ts-move-type): Public generic functions
Generic Function, (setf ts-parameter-f): Public generic functions
Generic Function, (setf ts-stopping-condition): Public generic functions
Generic Function, (setf ts-tabu-list): Public generic functions
Generic Function, (setf ts-tenure): Public generic functions
Generic Function, algo-animatep: Public generic functions
Generic Function, algo-best-fitness: Public generic functions
Generic Function, algo-best-iteration: Public generic functions
Generic Function, algo-best-sol: Public generic functions
Generic Function, algo-current-sol: Public generic functions
Generic Function, algo-desc: Public generic functions
Generic Function, algo-iterations: Public generic functions
Generic Function, algo-name: Public generic functions
Generic Function, assess-move: Public generic functions
Generic Function, constraintsp: Public generic functions
Generic Function, feasible-movep: Public generic functions
Generic Function, fitness: Public generic functions
Generic Function, from: Private generic functions
Generic Function, func: Private generic functions
Generic Function, generate-moves: Public generic functions
Generic Function, get-best-insertion-move: Public generic functions
Generic Function, get-closest-feasible-vehicle: Public generic functions
Generic Function, in-capacityp: Public generic functions
Generic Function, in-timep: Public generic functions
Generic Function, index: Private generic functions
Generic Function, initialize: Public generic functions
Generic Function, iterate: Public generic functions
Generic Function, iterate-more: Public generic functions
Generic Function, key: Private generic functions
Generic Function, last-node: Public generic functions
Generic Function, lists: Private generic functions
Generic Function, log-to-replp: Public generic functions
Generic Function, ls: Private generic functions
Generic Function, moves: Private generic functions
Generic Function, node: Public generic functions
Generic Function, perform-move: Public generic functions
Generic Function, plot-nodes: Public generic functions
Generic Function, plot-solution: Public generic functions
Generic Function, pred: Private generic functions
Generic Function, print-routes: Public generic functions
Generic Function, prob: Private generic functions
Generic Function, problem-desc: Public generic functions
Generic Function, problem-dist-array: Public generic functions
Generic Function, problem-drawer: Public generic functions
Generic Function, problem-fleet: Public generic functions
Generic Function, problem-log-file: Public generic functions
Generic Function, problem-log-mode: Public generic functions
Generic Function, problem-name: Public generic functions
Generic Function, problem-network: Public generic functions
Generic Function, problem-to-depot: Public generic functions
Generic Function, remove-affected-moves: Private generic functions
Generic Function, remove-node-id: Public generic functions
Generic Function, route-indices: Public generic functions
Generic Function, run-algo: Public generic functions
Generic Function, select-move: Public generic functions
Generic Function, sol: Private generic functions
Generic Function, solve-prob: Public generic functions
Generic Function, tabu-list: Public generic functions
Generic Function, to: Private generic functions
Generic Function, toggle-legend: Public generic functions
Generic Function, toggle-plot: Public generic functions
Generic Function, total-dist: Public generic functions
Generic Function, ts-aspirationp: Public generic functions
Generic Function, ts-candidate-list: Public generic functions
Generic Function, ts-elite-listp: Public generic functions
Generic Function, ts-init-heur: Public generic functions
Generic Function, ts-move-type: Public generic functions
Generic Function, ts-parameter-f: Public generic functions
Generic Function, ts-stopping-condition: Public generic functions
Generic Function, ts-tabu-list: Public generic functions
Generic Function, ts-tenure: Public generic functions
Generic Function, veh: Private generic functions
Generic Function, vehicle: Public generic functions
get-array-row: Public ordinary functions
get-best-insertion-move: Public generic functions
get-best-insertion-move: Public generic functions
get-best-insertion-move: Public generic functions
get-best-insertion-move-in-vehicle: Public ordinary functions
get-best-solution-from-multi-run: Public ordinary functions
get-busy-vehicles: Public ordinary functions
get-closest-feasible-vehicle: Public generic functions
get-closest-feasible-vehicle: Public generic functions
get-closest-feasible-vehicle: Public generic functions
get-closest-feasible-vehicle: Public generic functions
get-closest-node: Public ordinary functions
get-closest-vehicle: Public ordinary functions
get-color: Private ordinary functions
get-from-list: Private ordinary functions
get-index-of: Private ordinary functions
get-max: Public ordinary functions
get-max-coord: Private ordinary functions
get-max-index: Public ordinary functions
get-min: Public ordinary functions
get-min-coord: Private ordinary functions
get-min-index: Public ordinary functions
get-min-index-with-tabu: Private ordinary functions
get-multi-run-stats: Private ordinary functions

I
improving-movep: Private ordinary functions
in-capacityp: Public generic functions
in-capacityp: Public generic functions
in-capacityp: Public generic functions
in-capacityp: Public generic functions
in-timep: Public generic functions
in-timep: Public generic functions
index: Private generic functions
index: Private generic functions
init-algo: Public ordinary functions
initialize: Public generic functions
initialize: Public generic functions
initialize: Public generic functions
insert-at-end: Public ordinary functions
insert-before: Public ordinary functions
insert-node: Public ordinary functions
insert-time-stamp-in-path: Private ordinary functions
insertion-move-p: Private ordinary functions
is-tabu-movep: Public ordinary functions
is-tabup: Public ordinary functions
iterate: Public generic functions
iterate: Public generic functions
iterate: Public generic functions
iterate: Public generic functions
iterate: Public generic functions
iterate: Public generic functions
iterate-more: Public generic functions
iterate-more: Public generic functions
iterate-more: Public generic functions
iterate-more: Public generic functions

K
key: Private generic functions
key: Private generic functions

L
last-node: Public generic functions
last-node: Public generic functions
last-node: Public generic functions
late-v-duration: Private ordinary functions
late-v-speed: Private ordinary functions
lists: Private generic functions
lists: Private generic functions
load-solomon-vrp-file: Public ordinary functions
load-test-case-file: Public ordinary functions
load-tsplib-vrp-file: Public ordinary functions
log-to-replp: Public generic functions
log-to-replp: Public generic functions
log-to-replp: Public generic functions
ls: Private generic functions
ls: Private generic functions
ls: Private generic functions

M
mac: Public macros
Macro, aif: Public macros
Macro, awhile: Public macros
Macro, batch-run: Public macros
Macro, change-route: Private macros
Macro, constraints-check: Public macros
Macro, create-nodes: Public macros
Macro, create-vehicles: Public macros
Macro, define-problem: Public macros
Macro, for-node-id: Private macros
Macro, for-veh-id: Private macros
Macro, mac: Public macros
Macro, multi-run: Public macros
Macro, multi-run-algo: Public macros
Macro, new-node: Public macros
Macro, new-vehicle: Public macros
Macro, on-all-testcases: Private macros
Macro, toggle: Public macros
Macro, use-node: Private macros
Macro, while: Public macros
Macro, with-log-or-print: Public macros
Macro, with-tabu-indices: Public macros
make-drawer: Public ordinary functions
make-insertion-move: Public ordinary functions
make-move: Private ordinary functions
make-node: Public ordinary functions
make-ts-best-insertion-move: Public ordinary functions
make-vehicle: Public ordinary functions
map0-n: Public ordinary functions
map1-n: Public ordinary functions
mark-nill: Private ordinary functions
max-car: Public ordinary functions
max-cdr: Public ordinary functions
Method, (setf algo-animatep): Public generic functions
Method, (setf algo-best-fitness): Public generic functions
Method, (setf algo-best-iteration): Public generic functions
Method, (setf algo-best-sol): Public generic functions
Method, (setf algo-current-sol): Public generic functions
Method, (setf algo-iterations): Public generic functions
Method, (setf problem-dist-array): Public generic functions
Method, (setf problem-drawer): Public generic functions
Method, (setf problem-log-file): Public generic functions
Method, (setf problem-log-mode): Public generic functions
Method, (setf problem-to-depot): Public generic functions
Method, (setf ts-aspirationp): Public generic functions
Method, (setf ts-candidate-list): Public generic functions
Method, (setf ts-elite-listp): Public generic functions
Method, (setf ts-init-heur): Public generic functions
Method, (setf ts-move-type): Public generic functions
Method, (setf ts-parameter-f): Public generic functions
Method, (setf ts-stopping-condition): Public generic functions
Method, (setf ts-tabu-list): Public generic functions
Method, (setf ts-tenure): Public generic functions
Method, algo-animatep: Public generic functions
Method, algo-best-fitness: Public generic functions
Method, algo-best-iteration: Public generic functions
Method, algo-best-sol: Public generic functions
Method, algo-current-sol: Public generic functions
Method, algo-desc: Public generic functions
Method, algo-iterations: Public generic functions
Method, algo-name: Public generic functions
Method, assess-move: Public generic functions
Method, assess-move: Public generic functions
Method, assess-move: Public generic functions
Method, assess-move: Public generic functions
Method, assess-move: Public generic functions
Method, constraintsp: Public generic functions
Method, constraintsp: Public generic functions
Method, constraintsp: Public generic functions
Method, feasible-movep: Public generic functions
Method, feasible-movep: Public generic functions
Method, feasible-movep: Public generic functions
Method, file: Public standalone methods
Method, fitness: Public generic functions
Method, fitness: Public generic functions
Method, from: Private generic functions
Method, func: Private generic functions
Method, generate-moves: Public generic functions
Method, generate-moves: Public generic functions
Method, get-best-insertion-move: Public generic functions
Method, get-best-insertion-move: Public generic functions
Method, get-closest-feasible-vehicle: Public generic functions
Method, get-closest-feasible-vehicle: Public generic functions
Method, get-closest-feasible-vehicle: Public generic functions
Method, in-capacityp: Public generic functions
Method, in-capacityp: Public generic functions
Method, in-capacityp: Public generic functions
Method, in-timep: Public generic functions
Method, index: Private generic functions
Method, initialize: Public generic functions
Method, initialize: Public generic functions
Method, iterate: Public generic functions
Method, iterate: Public generic functions
Method, iterate: Public generic functions
Method, iterate: Public generic functions
Method, iterate: Public generic functions
Method, iterate-more: Public generic functions
Method, iterate-more: Public generic functions
Method, iterate-more: Public generic functions
Method, key: Private generic functions
Method, last-node: Public generic functions
Method, last-node: Public generic functions
Method, lists: Private generic functions
Method, log-to-replp: Public generic functions
Method, log-to-replp: Public generic functions
Method, ls: Private generic functions
Method, ls: Private generic functions
Method, moves: Private generic functions
Method, moves: Private generic functions
Method, node: Public generic functions
Method, perform-move: Public generic functions
Method, perform-move: Public generic functions
Method, perform-move: Public generic functions
Method, perform-move: Public generic functions
Method, plot-nodes: Public generic functions
Method, plot-nodes: Public generic functions
Method, plot-solution: Public generic functions
Method, plot-solution: Public generic functions
Method, pred: Private generic functions
Method, print-routes: Public generic functions
Method, print-routes: Public generic functions
Method, prob: Private generic functions
Method, problem-desc: Public generic functions
Method, problem-dist-array: Public generic functions
Method, problem-drawer: Public generic functions
Method, problem-fleet: Public generic functions
Method, problem-log-file: Public generic functions
Method, problem-log-mode: Public generic functions
Method, problem-name: Public generic functions
Method, problem-network: Public generic functions
Method, problem-to-depot: Public generic functions
Method, remove-affected-moves: Private generic functions
Method, remove-node-id: Public generic functions
Method, remove-node-id: Public generic functions
Method, remove-node-id: Public generic functions
Method, route-indices: Public generic functions
Method, route-indices: Public generic functions
Method, route-indices: Public generic functions
Method, run-algo: Public generic functions
Method, run-algo: Public generic functions
Method, run-algo: Public generic functions
Method, run-algo: Public generic functions
Method, run-algo: Public generic functions
Method, run-algo: Public generic functions
Method, run-algo: Public generic functions
Method, select-move: Public generic functions
Method, select-move: Public generic functions
Method, select-move: Public generic functions
Method, sol: Private generic functions
Method, solve-prob: Public generic functions
Method, solve-prob: Public generic functions
Method, solve-prob: Public generic functions
Method, solve-prob: Public generic functions
Method, tabu-list: Public generic functions
Method, to: Private generic functions
Method, toggle-legend: Public generic functions
Method, toggle-legend: Public generic functions
Method, toggle-plot: Public generic functions
Method, toggle-plot: Public generic functions
Method, total-dist: Public generic functions
Method, total-dist: Public generic functions
Method, total-dist: Public generic functions
Method, ts-aspirationp: Public generic functions
Method, ts-candidate-list: Public generic functions
Method, ts-elite-listp: Public generic functions
Method, ts-init-heur: Public generic functions
Method, ts-move-type: Public generic functions
Method, ts-parameter-f: Public generic functions
Method, ts-stopping-condition: Public generic functions
Method, ts-tabu-list: Public generic functions
Method, ts-tenure: Public generic functions
Method, veh: Private generic functions
Method, veh: Private generic functions
Method, vehicle: Public generic functions
move-fitness: Public ordinary functions
move-index: Public ordinary functions
move-node-id: Public ordinary functions
move-p: Private ordinary functions
move-vehicle-id: Public ordinary functions
moves: Private generic functions
moves: Private generic functions
moves: Private generic functions
multi-run: Public macros
multi-run-algo: Public macros

N
new-node: Public macros
new-vehicle: Public macros
node: Public generic functions
node: Public generic functions
node-demand: Public ordinary functions
node-distance: Public ordinary functions
node-duration: Public ordinary functions
node-end: Public ordinary functions
node-id: Public ordinary functions
node-on-routep: Public ordinary functions
node-p: Private ordinary functions
node-start: Public ordinary functions
node-xcor: Public ordinary functions
node-ycor: Public ordinary functions
num-nodes: Private ordinary functions
num-veh: Private ordinary functions

O
on-all-testcases: Private macros
on-time-and-in-cap-v: Private ordinary functions
on-time-but-overfull-v: Private ordinary functions
on-time-v: Private ordinary functions
one-destinationp: Public ordinary functions
overfull-v: Private ordinary functions

P
perform-move: Public generic functions
perform-move: Public generic functions
perform-move: Public generic functions
perform-move: Public generic functions
perform-move: Public generic functions
plot-nodes: Public generic functions
plot-nodes: Public generic functions
plot-nodes: Public generic functions
plot-solution: Public generic functions
plot-solution: Public generic functions
plot-solution: Public generic functions
pred: Private generic functions
pred: Private generic functions
print-batch-run-table-header: Private ordinary functions
print-final-results: Public ordinary functions
print-header: Private ordinary functions
print-multi-run-stats: Public ordinary functions
print-routes: Public generic functions
print-routes: Public generic functions
print-routes: Public generic functions
print-timestamp: Public ordinary functions
print-vrp-object: Public ordinary functions
prob: Private generic functions
prob: Private generic functions
problem-desc: Public generic functions
problem-desc: Public generic functions
problem-dist-array: Public generic functions
problem-dist-array: Public generic functions
problem-drawer: Public generic functions
problem-drawer: Public generic functions
problem-fleet: Public generic functions
problem-fleet: Public generic functions
problem-log-file: Public generic functions
problem-log-file: Public generic functions
problem-log-mode: Public generic functions
problem-log-mode: Public generic functions
problem-name: Public generic functions
problem-name: Public generic functions
problem-network: Public generic functions
problem-network: Public generic functions
problem-to-depot: Public generic functions
problem-to-depot: Public generic functions

R
random-list-permutation: Public ordinary functions
read-string-while-member: Private ordinary functions
read-string-while-not-member: Private ordinary functions
remove-affected-moves: Private generic functions
remove-affected-moves: Private generic functions
remove-index: Public ordinary functions
remove-node-at: Public ordinary functions
remove-node-id: Public generic functions
remove-node-id: Public generic functions
remove-node-id: Public generic functions
remove-node-id: Public generic functions
route-from: Private ordinary functions
route-indices: Public generic functions
route-indices: Public generic functions
route-indices: Public generic functions
route-indices: Public generic functions
route-to: Private ordinary functions
run-algo: Public generic functions
run-algo: Public generic functions
run-algo: Public generic functions
run-algo: Public generic functions
run-algo: Public generic functions
run-algo: Public generic functions
run-algo: Public generic functions
run-algo: Public generic functions

S
same-lengthp: Private ordinary functions
select-best-tabu: Private ordinary functions
select-move: Public generic functions
select-move: Public generic functions
select-move: Public generic functions
select-move: Public generic functions
set-dist-array: Public ordinary functions
set-log-file: Public ordinary functions
set-log-mode: Public ordinary functions
set-plot-file: Public ordinary functions
single: Public ordinary functions
sol: Private generic functions
sol: Private generic functions
solve-prob: Public generic functions
solve-prob: Public generic functions
solve-prob: Public generic functions
solve-prob: Public generic functions
solve-prob: Public generic functions
sort-ignore-nil: Public ordinary functions
sort-moves: Public ordinary functions
space-v: Private ordinary functions
stopping-conditionp: Private ordinary functions
store-pix: Private ordinary functions
sum: Public ordinary functions

T
tabu-list: Public generic functions
tabu-list: Public generic functions
time-after-serving-node: Public ordinary functions
times-of-arriving: Private ordinary functions
to: Private generic functions
to: Private generic functions
toggle: Public macros
toggle-animate: Public ordinary functions
toggle-aspiration: Public ordinary functions
toggle-elite-list: Public ordinary functions
toggle-legend: Public generic functions
toggle-legend: Public generic functions
toggle-legend: Public generic functions
toggle-plot: Public generic functions
toggle-plot: Public generic functions
toggle-plot: Public generic functions
total-dist: Public generic functions
total-dist: Public generic functions
total-dist: Public generic functions
total-dist: Public generic functions
travel-time: Public ordinary functions
ts-aspirationp: Public generic functions
ts-aspirationp: Public generic functions
ts-best-insertion-move-fitness: Private ordinary functions
ts-best-insertion-move-index: Private ordinary functions
ts-best-insertion-move-node-id: Private ordinary functions
ts-best-insertion-move-p: Private ordinary functions
ts-best-insertion-move-vehicle-id: Private ordinary functions
ts-candidate-list: Public generic functions
ts-candidate-list: Public generic functions
ts-elite-listp: Public generic functions
ts-elite-listp: Public generic functions
ts-init-heur: Public generic functions
ts-init-heur: Public generic functions
ts-move-type: Public generic functions
ts-move-type: Public generic functions
ts-parameter-f: Public generic functions
ts-parameter-f: Public generic functions
ts-pars-n: Private ordinary functions
ts-pars-nv: Private ordinary functions
ts-stopping-condition: Public generic functions
ts-stopping-condition: Public generic functions
ts-tabu-list: Public generic functions
ts-tabu-list: Public generic functions
ts-tenure: Public generic functions
ts-tenure: Public generic functions

U
universal-time-to-string: Private ordinary functions
use-node: Private macros
useless-move: Private ordinary functions

V
veh: Private generic functions
veh: Private generic functions
veh: Private generic functions
veh-in-timep: Public ordinary functions
vehicle: Public generic functions
vehicle: Public generic functions
vehicle-capacity: Public ordinary functions
vehicle-id: Public ordinary functions
vehicle-p: Private ordinary functions
vehicle-route: Public ordinary functions
vehicle-speed: Public ordinary functions
vehicle-with-node-id: Public ordinary functions
vrp-object: Private ordinary functions

W
while: Public macros
with-log-or-print: Public macros
with-tabu-indices: Public macros


A.3 Variables

Jump to:   *  
A   B   C   D   E   F   I   K   L   M   N   P   R   S   T   V   X   Y  
Index Entry  Section

*
*b*: Private special variables
*finish-time*: Private special variables
*g*: Private special variables
*multi-run-finish-time*: Private special variables
*multi-run-start-time*: Public special variables
*node-coords*: Public special variables
*r*: Private special variables
*start-time*: Public special variables

A
animatep: Public classes
aspirationp: Public classes
asym-net: Private special variables
asym-tsp: Private special variables
asym-vrp: Private special variables

B
best-fitness: Public classes
best-iteration: Public classes
best-sol: Public classes

C
candidate-list: Public classes
capacity: Public structures
christofides-1: Public special variables
christofides-2: Public special variables
current-sol: Public classes

D
demand: Public structures
desc: Public classes
desc: Public classes
desc: Public classes
desc: Public classes
desc: Public classes
desc: Public classes
desc: Public classes
desc: Public classes
desc: Public classes
dist-array: Public classes
drawer: Public classes
duration: Public structures

E
elite-listp: Public classes
end: Public structures

F
file: Private conditions
filename: Public structures
fitness: Public structures
fleet: Public classes
from: Public conditions
func: Private conditions

I
id: Public structures
id: Public structures
index: Public structures
index: Private conditions
init-heur: Public classes
iterations: Public classes
iterations: Public classes

K
key: Public conditions

L
legend-x: Public structures
legend-y: Public structures
legendp: Public structures
lists: Private conditions
log-file: Public classes
log-mode: Public classes
ls: Public conditions
ls: Private conditions

M
max-coord: Public structures
max-pix: Public structures
min-coord: Public structures
move-type: Public classes
moves: Private conditions
moves: Private conditions

N
name: Public classes
name: Public classes
name: Public classes
name: Public classes
name: Public classes
name: Public classes
name: Public classes
name: Public classes
name: Public classes
network: Public classes
node-id: Public structures

P
plotp: Public structures
pred: Private conditions
prob: Private conditions

R
route: Public structures

S
Slot, animatep: Public classes
Slot, aspirationp: Public classes
Slot, best-fitness: Public classes
Slot, best-iteration: Public classes
Slot, best-sol: Public classes
Slot, candidate-list: Public classes
Slot, capacity: Public structures
Slot, current-sol: Public classes
Slot, demand: Public structures
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, desc: Public classes
Slot, dist-array: Public classes
Slot, drawer: Public classes
Slot, duration: Public structures
Slot, elite-listp: Public classes
Slot, end: Public structures
Slot, file: Private conditions
Slot, filename: Public structures
Slot, fitness: Public structures
Slot, fleet: Public classes
Slot, from: Public conditions
Slot, func: Private conditions
Slot, id: Public structures
Slot, id: Public structures
Slot, index: Public structures
Slot, index: Private conditions
Slot, init-heur: Public classes
Slot, iterations: Public classes
Slot, iterations: Public classes
Slot, key: Public conditions
Slot, legend-x: Public structures
Slot, legend-y: Public structures
Slot, legendp: Public structures
Slot, lists: Private conditions
Slot, log-file: Public classes
Slot, log-mode: Public classes
Slot, ls: Public conditions
Slot, ls: Private conditions
Slot, max-coord: Public structures
Slot, max-pix: Public structures
Slot, min-coord: Public structures
Slot, move-type: Public classes
Slot, moves: Private conditions
Slot, moves: Private conditions
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, network: Public classes
Slot, node-id: Public structures
Slot, plotp: Public structures
Slot, pred: Private conditions
Slot, prob: Private conditions
Slot, route: Public structures
Slot, sol: Private conditions
Slot, speed: Public structures
Slot, start: Public structures
Slot, stopping-condition: Public classes
Slot, tabu-list: Public classes
Slot, tabu-list: Private conditions
Slot, tabu-parameter-f: Public classes
Slot, tabu-tenure: Public classes
Slot, to: Public conditions
Slot, to-depot: Public classes
Slot, veh: Private conditions
Slot, veh: Private conditions
Slot, vehicle-id: Public structures
Slot, x-pos: Public structures
Slot, xcor: Public structures
Slot, y-pos: Public structures
Slot, ycor: Public structures
sol: Private conditions
solomon100: Public special variables
solomon25: Public special variables
Special Variable, *b*: Private special variables
Special Variable, *finish-time*: Private special variables
Special Variable, *g*: Private special variables
Special Variable, *multi-run-finish-time*: Private special variables
Special Variable, *multi-run-start-time*: Public special variables
Special Variable, *node-coords*: Public special variables
Special Variable, *r*: Private special variables
Special Variable, *start-time*: Public special variables
Special Variable, asym-net: Private special variables
Special Variable, asym-tsp: Private special variables
Special Variable, asym-vrp: Private special variables
Special Variable, christofides-1: Public special variables
Special Variable, christofides-2: Public special variables
Special Variable, solomon100: Public special variables
Special Variable, solomon25: Public special variables
Special Variable, test-tsp: Public special variables
Special Variable, test-vrp: Public special variables
speed: Public structures
start: Public structures
stopping-condition: Public classes

T
tabu-list: Public classes
tabu-list: Private conditions
tabu-parameter-f: Public classes
tabu-tenure: Public classes
test-tsp: Public special variables
test-vrp: Public special variables
to: Public conditions
to-depot: Public classes

V
veh: Private conditions
veh: Private conditions
vehicle-id: Public structures

X
x-pos: Public structures
xcor: Public structures

Y
y-pos: Public structures
ycor: Public structures


A.4 Data types

Jump to:   A   B   C   D   E   F   G   I   L   M   N   O   P   R   S   T   U   V  
Index Entry  Section

A
algo: The open-vrp/algo module
algo: Public classes
algo-conditions.lisp: The open-vrp/algo/algo-conditions․lisp file
all-moves-tabu: Private conditions

B
batch-run.lisp: The open-vrp-lib/lib/batch-run․lisp file
best-insertion.lisp: The open-vrp/algo/best-insertion․lisp file

C
Class, algo: Public classes
Class, cvrp: Public classes
Class, cvrptw: Public classes
Class, greedy-append: Public classes
Class, greedy-best-insertion: Public classes
Class, greedy-nn: Public classes
Class, problem: Public classes
Class, tabu-search: Public classes
Class, vrptw: Public classes
class-definitions.lisp: The open-vrp-lib/lib/class-definitions․lisp file
Condition, all-moves-tabu: Private conditions
Condition, empty-network: Private conditions
Condition, file-not-recognized: Private conditions
Condition, index-out-of-bounds: Private conditions
Condition, infeasible-solution: Private conditions
Condition, list-of-nils: Public conditions
Condition, missing-drawer-object: Private conditions
Condition, no-capacities-vehicle: Private conditions
Condition, no-feasible-move: Private conditions
Condition, no-initial-feasible-solution: Private conditions
Condition, no-speed-vehicle: Private conditions
Condition, not-equal-length: Private conditions
Condition, same-origin-destination: Public conditions
Condition, unaccepted-predicate: Private conditions
conditions.lisp: The open-vrp-lib/lib/conditions․lisp file
config-functions.lisp: The open-vrp-lib/lib/config-functions․lisp file
constraints.lisp: The open-vrp-lib/lib/constraints․lisp file
cvrp: Public classes
cvrptw: Public classes

D
draw-solution.lisp: The open-vrp-lib/lib/draw-solution․lisp file
drawer: Public structures

E
empty-network: Private conditions

F
File, algo-conditions.lisp: The open-vrp/algo/algo-conditions․lisp file
File, batch-run.lisp: The open-vrp-lib/lib/batch-run․lisp file
File, best-insertion.lisp: The open-vrp/algo/best-insertion․lisp file
File, class-definitions.lisp: The open-vrp-lib/lib/class-definitions․lisp file
File, conditions.lisp: The open-vrp-lib/lib/conditions․lisp file
File, config-functions.lisp: The open-vrp-lib/lib/config-functions․lisp file
File, constraints.lisp: The open-vrp-lib/lib/constraints․lisp file
File, draw-solution.lisp: The open-vrp-lib/lib/draw-solution․lisp file
File, fitness.lisp: The open-vrp-lib/lib/fitness․lisp file
File, fleet.lisp: The open-vrp-lib/lib/fleet․lisp file
File, greedy-append.lisp: The open-vrp/algo/greedy-append․lisp file
File, greedy-best-insertion.lisp: The open-vrp/algo/greedy-best-insertion․lisp file
File, greedy-nn.lisp: The open-vrp/algo/greedy-nn․lisp file
File, init-macros.lisp: The open-vrp-lib/lib/init-macros․lisp file
File, iterator.lisp: The open-vrp/algo/iterator․lisp file
File, list.lisp: The open-vrp-lib/lib/list․lisp file
File, network.lisp: The open-vrp-lib/lib/network․lisp file
File, open-vrp-lib.asd: The open-vrp-lib/open-vrp-lib․asd file
File, open-vrp.asd: The open-vrp/open-vrp․asd file
File, output.lisp: The open-vrp-lib/lib/output․lisp file
File, packages.lisp: The open-vrp-lib/packages․lisp file
File, read-cvrp.lisp: The open-vrp-lib/lib/read-cvrp․lisp file
File, read-solomon.lisp: The open-vrp-lib/lib/read-solomon․lisp file
File, read-test-case.lisp: The open-vrp-lib/lib/read-test-case․lisp file
File, route.lisp: The open-vrp-lib/lib/route․lisp file
File, simple-utils.lisp: The open-vrp-lib/lib/simple-utils․lisp file
File, solver.lisp: The open-vrp-lib/lib/solver․lisp file
File, test-cases.lisp: The open-vrp/test-cases/test-cases․lisp file
File, test-suite.lisp: The open-vrp/test-cases/test-suite․lisp file
File, tools.lisp: The open-vrp/algo/tools․lisp file
File, ts-classdef.lisp: The open-vrp/algo/ts-classdef․lisp file
File, ts-utils.lisp: The open-vrp/algo/ts-utils․lisp file
File, ts.lisp: The open-vrp/algo/ts․lisp file
file-not-recognized: Private conditions
fitness.lisp: The open-vrp-lib/lib/fitness․lisp file
fleet.lisp: The open-vrp-lib/lib/fleet․lisp file

G
greedy-append: Public classes
greedy-append.lisp: The open-vrp/algo/greedy-append․lisp file
greedy-best-insertion: Public classes
greedy-best-insertion.lisp: The open-vrp/algo/greedy-best-insertion․lisp file
greedy-nn: Public classes
greedy-nn.lisp: The open-vrp/algo/greedy-nn․lisp file

I
index-out-of-bounds: Private conditions
infeasible-solution: Private conditions
init-macros.lisp: The open-vrp-lib/lib/init-macros․lisp file
insertion-move: Public structures
iterator.lisp: The open-vrp/algo/iterator․lisp file

L
lib: The open-vrp-lib/lib module
list-of-nils: Public conditions
list.lisp: The open-vrp-lib/lib/list․lisp file

M
missing-drawer-object: Private conditions
Module, algo: The open-vrp/algo module
Module, lib: The open-vrp-lib/lib module
Module, test-cases: The open-vrp/test-cases module
move: Public structures

N
network.lisp: The open-vrp-lib/lib/network․lisp file
no-capacities-vehicle: Private conditions
no-feasible-move: Private conditions
no-initial-feasible-solution: Private conditions
no-speed-vehicle: Private conditions
node: Public structures
not-equal-length: Private conditions

O
open-vrp: The open-vrp system
open-vrp: The open-vrp package
open-vrp-lib: The open-vrp-lib system
open-vrp-lib.asd: The open-vrp-lib/open-vrp-lib․asd file
open-vrp.algo: The open-vrp․algo package
open-vrp.asd: The open-vrp/open-vrp․asd file
open-vrp.classes: The open-vrp․classes package
open-vrp.test: The open-vrp․test package
open-vrp.util: The open-vrp․util package
output.lisp: The open-vrp-lib/lib/output․lisp file

P
Package, open-vrp: The open-vrp package
Package, open-vrp.algo: The open-vrp․algo package
Package, open-vrp.classes: The open-vrp․classes package
Package, open-vrp.test: The open-vrp․test package
Package, open-vrp.util: The open-vrp․util package
packages.lisp: The open-vrp-lib/packages․lisp file
problem: Public classes

R
read-cvrp.lisp: The open-vrp-lib/lib/read-cvrp․lisp file
read-solomon.lisp: The open-vrp-lib/lib/read-solomon․lisp file
read-test-case.lisp: The open-vrp-lib/lib/read-test-case․lisp file
route.lisp: The open-vrp-lib/lib/route․lisp file

S
same-origin-destination: Public conditions
simple-utils.lisp: The open-vrp-lib/lib/simple-utils․lisp file
solver.lisp: The open-vrp-lib/lib/solver․lisp file
Structure, drawer: Public structures
Structure, insertion-move: Public structures
Structure, move: Public structures
Structure, node: Public structures
Structure, ts-best-insertion-move: Public structures
Structure, vehicle: Public structures
System, open-vrp: The open-vrp system
System, open-vrp-lib: The open-vrp-lib system

T
tabu-search: Public classes
test-cases: The open-vrp/test-cases module
test-cases.lisp: The open-vrp/test-cases/test-cases․lisp file
test-suite.lisp: The open-vrp/test-cases/test-suite․lisp file
tools.lisp: The open-vrp/algo/tools․lisp file
ts-best-insertion-move: Public structures
ts-classdef.lisp: The open-vrp/algo/ts-classdef․lisp file
ts-utils.lisp: The open-vrp/algo/ts-utils․lisp file
ts.lisp: The open-vrp/algo/ts․lisp file

U
unaccepted-predicate: Private conditions

V
vehicle: Public structures
vrptw: Public classes