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.
open-vrp/open-vrp.asd
open-vrp-lib/open-vrp-lib.asd
open-vrp/algo/algo-conditions.lisp
open-vrp/algo/tools.lisp
open-vrp/algo/iterator.lisp
open-vrp/algo/best-insertion.lisp
open-vrp/algo/greedy-NN.lisp
open-vrp/algo/greedy-append.lisp
open-vrp/algo/greedy-best-insertion.lisp
open-vrp/algo/TS-classdef.lisp
open-vrp/algo/TS-utils.lisp
open-vrp/algo/TS.lisp
open-vrp/test-cases/test-cases.lisp
open-vrp/test-cases/test-suite.lisp
open-vrp-lib/packages.lisp
open-vrp-lib/lib/class-definitions.lisp
open-vrp-lib/lib/simple-utils.lisp
open-vrp-lib/lib/list.lisp
open-vrp-lib/lib/network.lisp
open-vrp-lib/lib/fleet.lisp
open-vrp-lib/lib/fitness.lisp
open-vrp-lib/lib/output.lisp
open-vrp-lib/lib/route.lisp
open-vrp-lib/lib/draw-solution.lisp
open-vrp-lib/lib/solver.lisp
open-vrp-lib/lib/constraints.lisp
open-vrp-lib/lib/conditions.lisp
open-vrp-lib/lib/init-macros.lisp
open-vrp-lib/lib/read-solomon.lisp
open-vrp-lib/lib/read-cvrp.lisp
open-vrp-lib/lib/config-functions.lisp
open-vrp-lib/lib/read-test-case.lisp
open-vrp-lib/lib/batch-run.lisp
The main system appears first, followed by any subsystem dependency.
open-vrp
open-vrp
Marc Kuo
LLGPL
0.6.3
vecto
(system).
alexandria
(system).
fiveam
(system).
open-vrp-lib
(system).
algo
(module).
test-cases
(module).
open-vrp-lib
open-vrp-library
Marc Kuo
LLGPL
0.6.3
vecto
(system).
alexandria
(system).
fiveam
(system).
cl-fad
(system).
packages.lisp
(file).
lib
(module).
Modules are listed depth-first from the system components tree.
open-vrp/algo
open-vrp
(system).
algo-conditions.lisp
(file).
tools.lisp
(file).
iterator.lisp
(file).
best-insertion.lisp
(file).
greedy-nn.lisp
(file).
greedy-append.lisp
(file).
greedy-best-insertion.lisp
(file).
ts-classdef.lisp
(file).
ts-utils.lisp
(file).
ts.lisp
(file).
open-vrp/test-cases
algo
(module).
open-vrp
(system).
test-cases.lisp
(file).
test-suite.lisp
(file).
open-vrp-lib/lib
packages.lisp
(file).
open-vrp-lib
(system).
class-definitions.lisp
(file).
simple-utils.lisp
(file).
list.lisp
(file).
network.lisp
(file).
fleet.lisp
(file).
fitness.lisp
(file).
output.lisp
(file).
route.lisp
(file).
draw-solution.lisp
(file).
solver.lisp
(file).
constraints.lisp
(file).
conditions.lisp
(file).
init-macros.lisp
(file).
read-solomon.lisp
(file).
read-cvrp.lisp
(file).
config-functions.lisp
(file).
read-test-case.lisp
(file).
batch-run.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
open-vrp/open-vrp.asd
open-vrp-lib/open-vrp-lib.asd
open-vrp/algo/algo-conditions.lisp
open-vrp/algo/tools.lisp
open-vrp/algo/iterator.lisp
open-vrp/algo/best-insertion.lisp
open-vrp/algo/greedy-NN.lisp
open-vrp/algo/greedy-append.lisp
open-vrp/algo/greedy-best-insertion.lisp
open-vrp/algo/TS-classdef.lisp
open-vrp/algo/TS-utils.lisp
open-vrp/algo/TS.lisp
open-vrp/test-cases/test-cases.lisp
open-vrp/test-cases/test-suite.lisp
open-vrp-lib/packages.lisp
open-vrp-lib/lib/class-definitions.lisp
open-vrp-lib/lib/simple-utils.lisp
open-vrp-lib/lib/list.lisp
open-vrp-lib/lib/network.lisp
open-vrp-lib/lib/fleet.lisp
open-vrp-lib/lib/fitness.lisp
open-vrp-lib/lib/output.lisp
open-vrp-lib/lib/route.lisp
open-vrp-lib/lib/draw-solution.lisp
open-vrp-lib/lib/solver.lisp
open-vrp-lib/lib/constraints.lisp
open-vrp-lib/lib/conditions.lisp
open-vrp-lib/lib/init-macros.lisp
open-vrp-lib/lib/read-solomon.lisp
open-vrp-lib/lib/read-cvrp.lisp
open-vrp-lib/lib/config-functions.lisp
open-vrp-lib/lib/read-test-case.lisp
open-vrp-lib/lib/batch-run.lisp
open-vrp/algo/algo-conditions.lisp
algo
(module).
tabu-list
(reader method).
all-moves-tabu
(condition).
moves
(reader method).
moves
(reader method).
no-feasible-move
(condition).
no-initial-feasible-solution
(condition).
select-best-tabu
(function).
open-vrp/algo/tools.lisp
algo
(module).
feasible-movep
(generic function).
get-closest-feasible-vehicle
(method).
get-closest-feasible-vehicle
(method).
get-closest-feasible-vehicle
(method).
get-closest-node
(function).
get-closest-vehicle
(function).
insertion-move
(structure).
make-insertion-move
(function).
move
(structure).
move-fitness
(reader).
(setf move-fitness)
(writer).
move-index
(reader).
(setf move-index)
(writer).
move-node-id
(reader).
(setf move-node-id)
(writer).
move-vehicle-id
(reader).
(setf move-vehicle-id)
(writer).
capacities-left
(function).
copy-insertion-move
(function).
copy-move
(function).
dists-to-vehicles
(function).
get-min-index-with-tabu
(function).
insertion-move-p
(function).
make-move
(function).
move-p
(function).
num-nodes
(function).
num-veh
(function).
route-from
(function).
route-to
(function).
times-of-arriving
(function).
open-vrp/algo/iterator.lisp
algo
(module).
assess-move
(generic function).
assess-moves
(function).
fitness-before-after
(function).
generate-moves
(generic function).
initialize
(generic function).
perform-move
(generic function).
select-move
(generic function).
sort-moves
(function).
open-vrp/algo/best-insertion.lisp
algo
(module).
assess-move
(method).
get-best-insertion-move
(generic function).
get-best-insertion-move-in-vehicle
(function).
perform-move
(method).
perform-move
(method).
generate-insertion-moves
(function).
open-vrp/algo/greedy-append.lisp
algo
(module).
greedy-append
(class).
run-algo
(method).
open-vrp/algo/greedy-best-insertion.lisp
algo
(module).
greedy-best-insertion
(class).
run-algo
(method).
open-vrp/algo/TS-classdef.lisp
algo
(module).
make-ts-best-insertion-move
(function).
tabu-search
(class).
ts-aspirationp
(reader method).
(setf ts-aspirationp)
(writer method).
ts-best-insertion-move
(structure).
ts-candidate-list
(reader method).
(setf ts-candidate-list)
(writer method).
ts-elite-listp
(reader method).
(setf ts-elite-listp)
(writer method).
ts-init-heur
(reader method).
(setf ts-init-heur)
(writer method).
ts-move-type
(reader method).
(setf ts-move-type)
(writer method).
ts-parameter-f
(reader method).
(setf ts-parameter-f)
(writer method).
ts-stopping-condition
(reader method).
(setf ts-stopping-condition)
(writer method).
ts-tabu-list
(reader method).
(setf ts-tabu-list)
(writer method).
ts-tenure
(reader method).
(setf ts-tenure)
(writer method).
copy-ts-best-insertion-move
(function).
ts-best-insertion-move-fitness
(function).
(setf ts-best-insertion-move-fitness)
(function).
ts-best-insertion-move-index
(function).
(setf ts-best-insertion-move-index)
(function).
ts-best-insertion-move-node-id
(function).
(setf ts-best-insertion-move-node-id)
(function).
ts-best-insertion-move-p
(function).
ts-best-insertion-move-vehicle-id
(function).
(setf ts-best-insertion-move-vehicle-id)
(function).
open-vrp/algo/TS-utils.lisp
algo
(module).
add-move-to-tabu
(function).
add-to-tabu
(function).
create-candidate-list
(function).
is-tabu-movep
(function).
is-tabup
(function).
toggle-aspiration
(function).
toggle-elite-list
(function).
clear-tabu-list
(function).
improving-movep
(function).
remove-affected-moves
(method).
stopping-conditionp
(function).
ts-pars-n
(function).
ts-pars-nv
(function).
open-vrp/algo/TS.lisp
algo
(module).
assess-move
(method).
generate-moves
(method).
initialize
(method).
iterate
(method).
iterate
(method).
perform-move
(method).
run-algo
(method).
select-move
(method).
for-node-id
(macro).
for-veh-id
(macro).
useless-move
(function).
open-vrp/test-cases/test-cases.lisp
test-cases
(module).
*node-coords*
(special variable).
christofides-1
(special variable).
christofides-2
(special variable).
solomon100
(special variable).
solomon25
(special variable).
test-tsp
(special variable).
test-vrp
(special variable).
open-vrp/test-cases/test-suite.lisp
test-cases
(module).
asym-net
(special variable).
asym-tsp
(special variable).
asym-vrp
(special variable).
late-v-duration
(function).
late-v-speed
(function).
on-all-testcases
(macro).
on-time-and-in-cap-v
(function).
on-time-but-overfull-v
(function).
on-time-v
(function).
overfull-v
(function).
space-v
(function).
open-vrp-lib/lib/class-definitions.lisp
lib
(module).
algo
(class).
algo-animatep
(reader method).
(setf algo-animatep)
(writer method).
algo-best-fitness
(reader method).
(setf algo-best-fitness)
(writer method).
algo-best-iteration
(reader method).
(setf algo-best-iteration)
(writer method).
algo-best-sol
(reader method).
(setf algo-best-sol)
(writer method).
algo-current-sol
(reader method).
(setf algo-current-sol)
(writer method).
algo-desc
(reader method).
algo-iterations
(reader method).
(setf algo-iterations)
(writer method).
algo-name
(reader method).
cvrp
(class).
cvrptw
(class).
drawer
(structure).
drawer-filename
(reader).
(setf drawer-filename)
(writer).
drawer-legend-x
(reader).
(setf drawer-legend-x)
(writer).
drawer-legend-y
(reader).
(setf drawer-legend-y)
(writer).
drawer-legendp
(reader).
(setf drawer-legendp)
(writer).
drawer-max-coord
(reader).
(setf drawer-max-coord)
(writer).
drawer-max-pix
(reader).
(setf drawer-max-pix)
(writer).
drawer-min-coord
(reader).
(setf drawer-min-coord)
(writer).
drawer-plotp
(reader).
(setf drawer-plotp)
(writer).
drawer-x-pos
(reader).
(setf drawer-x-pos)
(writer).
drawer-y-pos
(reader).
(setf drawer-y-pos)
(writer).
make-drawer
(function).
make-node
(function).
make-vehicle
(function).
node
(structure).
node-demand
(reader).
node-duration
(reader).
node-end
(reader).
node-id
(reader).
node-start
(reader).
node-xcor
(reader).
node-ycor
(reader).
problem
(class).
problem-desc
(reader method).
problem-dist-array
(reader method).
(setf problem-dist-array)
(writer method).
problem-drawer
(reader method).
(setf problem-drawer)
(writer method).
problem-fleet
(reader method).
problem-log-file
(reader method).
(setf problem-log-file)
(writer method).
problem-log-mode
(reader method).
(setf problem-log-mode)
(writer method).
problem-name
(reader method).
problem-network
(reader method).
problem-to-depot
(reader method).
(setf problem-to-depot)
(writer method).
vehicle
(structure).
vehicle-capacity
(reader).
vehicle-id
(reader).
vehicle-route
(reader).
(setf vehicle-route)
(writer).
vehicle-speed
(reader).
vrptw
(class).
copy-drawer
(function).
copy-node
(function).
copy-vehicle
(function).
drawer-p
(function).
node-p
(function).
vehicle-p
(function).
open-vrp-lib/lib/simple-utils.lisp
lib
(module).
vrp-object
(function).
open-vrp-lib/lib/list.lisp
lib
(module).
enumerate-interval
(function).
get-max
(function).
get-max-index
(function).
get-min
(function).
get-min-index
(function).
insert-at-end
(function).
insert-before
(function).
random-list-permutation
(function).
remove-index
(function).
sort-ignore-nil
(function).
with-tabu-indices
(macro).
get-from-list
(function).
get-index-of
(function).
mark-nill
(function).
open-vrp-lib/lib/network.lisp
lib
(module).
distance
(function).
generate-dist-array
(function).
get-array-row
(function).
new-node
(macro).
node
(method).
node-distance
(function).
2d-array-to-list
(function).
2d-list-to-array
(function).
distance-coord-pair
(function).
distance-coords
(function).
open-vrp-lib/lib/fleet.lisp
lib
(module).
new-vehicle
(macro).
node-on-routep
(function).
route-indices
(generic function).
total-dist
(generic function).
vehicle
(method).
vehicle-with-node-id
(function).
open-vrp-lib/lib/fitness.lisp
open-vrp-lib/lib/output.lisp
lib
(module).
log-to-replp
(generic function).
print-final-results
(function).
print-multi-run-stats
(function).
print-routes
(generic function).
print-timestamp
(function).
print-vrp-object
(function).
with-log-or-print
(macro).
append-run-result
(function).
get-multi-run-stats
(function).
insert-time-stamp-in-path
(function).
print-batch-run-table-header
(function).
print-header
(function).
universal-time-to-string
(function).
open-vrp-lib/lib/route.lisp
lib
(module).
append-node
(function).
empty-routep
(function).
get-busy-vehicles
(function).
insert-node
(function).
last-node
(generic function).
one-destinationp
(function).
remove-node-at
(function).
remove-node-id
(generic function).
change-route
(macro).
open-vrp-lib/lib/draw-solution.lisp
lib
(module).
plot-nodes
(generic function).
plot-solution
(generic function).
*b*
(special variable).
*g*
(special variable).
*r*
(special variable).
arrow-to
(function).
coord->pix
(function).
draw-legend-item
(function).
draw-nodes
(function).
get-color
(function).
store-pix
(function).
use-node
(macro).
open-vrp-lib/lib/solver.lisp
lib
(module).
*multi-run-start-time*
(special variable).
*start-time*
(special variable).
get-best-solution-from-multi-run
(function).
init-algo
(function).
iterate
(generic function).
iterate-more
(generic function).
multi-run
(macro).
multi-run-algo
(macro).
run-algo
(generic function).
solve-prob
(generic function).
*finish-time*
(special variable).
*multi-run-finish-time*
(special variable).
open-vrp-lib/lib/constraints.lisp
lib
(module).
constraints-check
(macro).
constraintsp
(generic function).
in-capacityp
(generic function).
in-timep
(method).
time-after-serving-node
(function).
travel-time
(function).
veh-in-timep
(function).
open-vrp-lib/lib/conditions.lisp
lib
(module).
file
(reader method).
list-of-nils
(condition).
same-origin-destination
(condition).
empty-network
(condition).
file-not-recognized
(condition).
from
(reader method).
func
(reader method).
index
(reader method).
index-out-of-bounds
(condition).
infeasible-solution
(condition).
key
(reader method).
lists
(reader method).
ls
(reader method).
ls
(reader method).
missing-drawer-object
(condition).
no-capacities-vehicle
(condition).
no-speed-vehicle
(condition).
not-equal-length
(condition).
pred
(reader method).
prob
(reader method).
sol
(reader method).
to
(reader method).
unaccepted-predicate
(condition).
veh
(reader method).
veh
(reader method).
open-vrp-lib/lib/init-macros.lisp
lib
(module).
create-nodes
(macro).
create-vehicles
(macro).
define-problem
(macro).
get-max-coord
(function).
get-min-coord
(function).
same-lengthp
(function).
open-vrp-lib/lib/read-solomon.lisp
lib
(module).
load-solomon-vrp-file
(function).
couple-lists
(function).
open-vrp-lib/lib/read-cvrp.lisp
lib
(module).
load-tsplib-vrp-file
(function).
%read-string
(function).
read-string-while-member
(function).
read-string-while-not-member
(function).
open-vrp-lib/lib/config-functions.lisp
lib
(module).
set-dist-array
(function).
set-log-file
(function).
set-log-mode
(function).
set-plot-file
(function).
toggle
(macro).
toggle-animate
(function).
toggle-legend
(generic function).
toggle-plot
(generic function).
open-vrp-lib/lib/read-test-case.lisp
lib
(module).
load-test-case-file
(function).
Packages are listed by definition order.
open-vrp.algo
common-lisp
.
open-vrp.classes
.
open-vrp.util
.
add-move-to-tabu
(function).
add-to-tabu
(function).
assess-move
(generic function).
assess-moves
(function).
create-candidate-list
(function).
feasible-movep
(generic function).
fitness-before-after
(function).
generate-moves
(generic function).
get-best-insertion-move
(generic function).
get-best-insertion-move-in-vehicle
(function).
get-closest-feasible-vehicle
(generic function).
get-closest-node
(function).
get-closest-vehicle
(function).
greedy-append
(class).
greedy-best-insertion
(class).
greedy-nn
(class).
initialize
(generic function).
insertion-move
(structure).
is-tabu-movep
(function).
is-tabup
(function).
make-insertion-move
(function).
make-ts-best-insertion-move
(function).
move
(structure).
move-fitness
(reader).
(setf move-fitness)
(writer).
move-index
(reader).
(setf move-index)
(writer).
move-node-id
(reader).
(setf move-node-id)
(writer).
move-vehicle-id
(reader).
(setf move-vehicle-id)
(writer).
perform-move
(generic function).
select-move
(generic function).
sort-moves
(function).
tabu-list
(generic reader).
tabu-search
(class).
toggle-aspiration
(function).
toggle-elite-list
(function).
ts-aspirationp
(generic reader).
(setf ts-aspirationp)
(generic writer).
ts-best-insertion-move
(structure).
ts-candidate-list
(generic reader).
(setf ts-candidate-list)
(generic writer).
ts-elite-listp
(generic reader).
(setf ts-elite-listp)
(generic writer).
ts-init-heur
(generic reader).
(setf ts-init-heur)
(generic writer).
ts-move-type
(generic reader).
(setf ts-move-type)
(generic writer).
ts-parameter-f
(generic reader).
(setf ts-parameter-f)
(generic writer).
ts-stopping-condition
(generic reader).
(setf ts-stopping-condition)
(generic writer).
ts-tabu-list
(generic reader).
(setf ts-tabu-list)
(generic writer).
ts-tenure
(generic reader).
(setf ts-tenure)
(generic writer).
all-moves-tabu
(condition).
capacities-left
(function).
clear-tabu-list
(function).
copy-insertion-move
(function).
copy-move
(function).
copy-ts-best-insertion-move
(function).
dists-to-vehicles
(function).
for-node-id
(macro).
for-veh-id
(macro).
generate-insertion-moves
(function).
get-min-index-with-tabu
(function).
improving-movep
(function).
insertion-move-p
(function).
make-move
(function).
move-p
(function).
moves
(generic reader).
no-feasible-move
(condition).
no-initial-feasible-solution
(condition).
num-nodes
(function).
num-veh
(function).
remove-affected-moves
(generic function).
route-from
(function).
route-to
(function).
select-best-tabu
(function).
stopping-conditionp
(function).
times-of-arriving
(function).
ts-best-insertion-move-fitness
(function).
(setf ts-best-insertion-move-fitness)
(function).
ts-best-insertion-move-index
(function).
(setf ts-best-insertion-move-index)
(function).
ts-best-insertion-move-node-id
(function).
(setf ts-best-insertion-move-node-id)
(function).
ts-best-insertion-move-p
(function).
ts-best-insertion-move-vehicle-id
(function).
(setf ts-best-insertion-move-vehicle-id)
(function).
ts-pars-n
(function).
ts-pars-nv
(function).
useless-move
(function).
open-vrp.test
common-lisp
.
it.bese.fiveam
.
open-vrp.algo
.
open-vrp.classes
.
open-vrp.util
.
*node-coords*
(special variable).
christofides-1
(special variable).
christofides-2
(special variable).
solomon100
(special variable).
solomon25
(special variable).
test-tsp
(special variable).
test-vrp
(special variable).
asym-net
(special variable).
asym-tsp
(special variable).
asym-vrp
(special variable).
late-v-duration
(function).
late-v-speed
(function).
on-all-testcases
(macro).
on-time-and-in-cap-v
(function).
on-time-but-overfull-v
(function).
on-time-v
(function).
overfull-v
(function).
space-v
(function).
open-vrp
common-lisp
.
open-vrp.algo
.
open-vrp.classes
.
open-vrp.test
.
open-vrp.util
.
open-vrp.classes
common-lisp
.
algo
(class).
algo-animatep
(generic reader).
(setf algo-animatep)
(generic writer).
algo-best-fitness
(generic reader).
(setf algo-best-fitness)
(generic writer).
algo-best-iteration
(generic reader).
(setf algo-best-iteration)
(generic writer).
algo-best-sol
(generic reader).
(setf algo-best-sol)
(generic writer).
algo-current-sol
(generic reader).
(setf algo-current-sol)
(generic writer).
algo-desc
(generic reader).
algo-iterations
(generic reader).
(setf algo-iterations)
(generic writer).
algo-name
(generic reader).
cvrp
(class).
cvrptw
(class).
desc
(slot).
desc
(slot).
desc
(slot).
desc
(slot).
drawer
(structure).
drawer-filename
(reader).
(setf drawer-filename)
(writer).
drawer-legend-x
(reader).
(setf drawer-legend-x)
(writer).
drawer-legend-y
(reader).
(setf drawer-legend-y)
(writer).
drawer-legendp
(reader).
(setf drawer-legendp)
(writer).
drawer-max-coord
(reader).
(setf drawer-max-coord)
(writer).
drawer-max-pix
(reader).
(setf drawer-max-pix)
(writer).
drawer-min-coord
(reader).
(setf drawer-min-coord)
(writer).
drawer-plotp
(reader).
(setf drawer-plotp)
(writer).
drawer-x-pos
(reader).
(setf drawer-x-pos)
(writer).
drawer-y-pos
(reader).
(setf drawer-y-pos)
(writer).
iterations
(slot).
make-drawer
(function).
make-node
(function).
make-vehicle
(function).
name
(slot).
name
(slot).
name
(slot).
name
(slot).
node
(generic function).
node
(structure).
node-demand
(reader).
node-duration
(reader).
node-end
(reader).
node-id
(slot).
node-id
(reader).
node-start
(reader).
node-xcor
(reader).
node-ycor
(reader).
problem
(class).
problem-desc
(generic reader).
problem-dist-array
(generic reader).
(setf problem-dist-array)
(generic writer).
problem-drawer
(generic reader).
(setf problem-drawer)
(generic writer).
problem-fleet
(generic reader).
problem-log-file
(generic reader).
(setf problem-log-file)
(generic writer).
problem-log-mode
(generic reader).
(setf problem-log-mode)
(generic writer).
problem-name
(generic reader).
problem-network
(generic reader).
problem-to-depot
(generic reader).
(setf problem-to-depot)
(generic writer).
vehicle
(generic function).
vehicle
(structure).
vehicle-capacity
(reader).
vehicle-id
(slot).
vehicle-id
(reader).
vehicle-route
(reader).
(setf vehicle-route)
(writer).
vehicle-speed
(reader).
vrptw
(class).
copy-drawer
(function).
copy-node
(function).
copy-vehicle
(function).
drawer-p
(function).
node-p
(function).
vehicle-p
(function).
open-vrp.util
common-lisp
.
open-vrp.classes
.
vecto
.
*multi-run-start-time*
(special variable).
*start-time*
(special variable).
aif
(macro).
append-node
(function).
awhile
(macro).
batch-run
(macro).
constraints-check
(macro).
constraintsp
(generic function).
copy-object
(function).
create-nodes
(macro).
create-vehicles
(macro).
define-problem
(macro).
distance
(function).
empty-routep
(function).
enumerate-interval
(function).
fitness
(slot).
fitness
(generic function).
generate-dist-array
(function).
get-array-row
(function).
get-best-solution-from-multi-run
(function).
get-busy-vehicles
(function).
get-max
(function).
get-max-index
(function).
get-min
(function).
get-min-index
(function).
in-capacityp
(generic function).
in-timep
(generic function).
init-algo
(function).
insert-at-end
(function).
insert-before
(function).
insert-node
(function).
iterate
(generic function).
iterate-more
(generic function).
last-node
(generic function).
list-of-nils
(condition).
load-solomon-vrp-file
(function).
load-test-case-file
(function).
load-tsplib-vrp-file
(function).
log-to-replp
(generic function).
mac
(macro).
map0-n
(function).
map1-n
(function).
max-car
(function).
max-cdr
(function).
multi-run
(macro).
multi-run-algo
(macro).
new-node
(macro).
new-vehicle
(macro).
node-distance
(function).
node-on-routep
(function).
one-destinationp
(function).
plot-nodes
(generic function).
plot-solution
(generic function).
print-final-results
(function).
print-multi-run-stats
(function).
print-routes
(generic function).
print-timestamp
(function).
print-vrp-object
(function).
random-list-permutation
(function).
remove-index
(function).
remove-node-at
(function).
remove-node-id
(generic function).
route-indices
(generic function).
run-algo
(generic function).
same-origin-destination
(condition).
set-dist-array
(function).
set-log-file
(function).
set-log-mode
(function).
set-plot-file
(function).
single
(function).
solve-prob
(generic function).
sort-ignore-nil
(function).
sum
(function).
time-after-serving-node
(function).
toggle
(macro).
toggle-animate
(function).
toggle-legend
(generic function).
toggle-plot
(generic function).
total-dist
(generic function).
travel-time
(function).
veh-in-timep
(function).
vehicle-with-node-id
(function).
while
(macro).
with-log-or-print
(macro).
with-tabu-indices
(macro).
%read-string
(function).
*b*
(special variable).
*finish-time*
(special variable).
*g*
(special variable).
*multi-run-finish-time*
(special variable).
*r*
(special variable).
2d-array-to-list
(function).
2d-list-to-array
(function).
append-run-result
(function).
arrow-to
(function).
change-route
(macro).
coord->pix
(function).
couple-lists
(function).
distance-coord-pair
(function).
distance-coords
(function).
draw-legend-item
(function).
draw-nodes
(function).
empty-network
(condition).
file-not-recognized
(condition).
from
(generic reader).
func
(generic reader).
get-color
(function).
get-from-list
(function).
get-index-of
(function).
get-max-coord
(function).
get-min-coord
(function).
get-multi-run-stats
(function).
index
(generic reader).
index-out-of-bounds
(condition).
infeasible-solution
(condition).
insert-time-stamp-in-path
(function).
key
(generic reader).
lists
(generic reader).
ls
(generic reader).
mark-nill
(function).
missing-drawer-object
(condition).
no-capacities-vehicle
(condition).
no-speed-vehicle
(condition).
not-equal-length
(condition).
pred
(generic reader).
print-batch-run-table-header
(function).
print-header
(function).
prob
(generic reader).
read-string-while-member
(function).
read-string-while-not-member
(function).
same-lengthp
(function).
sol
(generic reader).
store-pix
(function).
to
(generic reader).
unaccepted-predicate
(condition).
universal-time-to-string
(function).
use-node
(macro).
veh
(generic reader).
vrp-object
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
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))).
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).
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.
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".
Run algo x times and collect all resulting solution objects in a list.
Run algo x times, print multi-run-stats and return the best result.
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.
Adds <Move> to tabu-list of <tabu-search>. Calls function held in <ts>’s :tabu-parameter-f slot.
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.
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.
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.
A deep-cloner for CLOS.
Given a list of sorted moves, return the list with non-tabu improving moves. Will always at least return one (non-tabu) move.
Read from the distance-table with two indices.
Given a route, return T if the route only has base-nodes.
Returns a list from 1 to n.
Given <Problem> object and an #’operation function that takes the <problem> as input, return the difference of fitness between after and before.
Given a list of coord pairs, generate an array of distances.
Given a 2-dimenstional array and a row-index, return the row as a list
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.
Given a list of solutions (from multi-run), return the best solution.
Returns a list of <Vehicles> that are not empty, given a <Problem> object.
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.
Returns the closest <vehicle> to <node>. Used by insertion heuristic. When multiple <vehicle> are on equal distance, choose first one (i.e. lowest ID).
Gets the maximum value from a list, while ignoring the NIL values.
Returns index of the largest value on list, while ignoring NIL. Returns index and its value (closest node and value).
Gets the minimum value from a list, while ignoring the NIL values.
Returns index of the smallest value on list, while ignoring NIL. Returns index and its value (closest node and value).
Given a solution, sets the :current-sol, :best-fitness and :best-sol slots of the <algo> object. Returns <algo>.
Appends the object at the end of the 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.
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.
Given a <Move>, checks if the parameters returned by calling :tabu-parameter-f are recorded on the list.
Given pars, checks if on tabu list of <tabu-search>
Load testcase from file, which should be Solomon style.
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.
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
maps from 0 to n
maps from 1 to n
Provided a list, return the maximum value considering the cars
Provided a list, return the maximum value considering the cdrs
Given two node objects, calculate and return their distance (Cartesian).
Returns NIL of <vehicle> does not have the node on its route.
Return T if there is only one destination on route, excluding base nodes.
Prints final results of run, helper function to :after methods of run-algo and solve-prob.
Given a list of algo-objects returned by multi-run, print run-stats.
Prints timestamp to stream, source from cl-cookbook.
Given object, will print it’s object’s slots and values
Randomly creates a permutation from 1 to length.
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.
Removes the <node> from the route of <vehicle> at index
Given a <problem> and a 2-dimensional list or array in dist-array, set it in <problem>
Sets the output location of the log-file.
Sets log-mode: 0 for no log, 1 for log to log-file, 2 for REPL log.
Sets the plot output file location.
Sorts the sequence with #’< or #’> while passing all NIL values towards the end of result.
Given a list of <Move>s, sort them according to fitness (ascending). Undestructive.
A quick list summer, 4 times as fast as (reduce #’+ list)
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.
Toggles animation, which means plotting every iteration in run-frames/ folder
Given two <nodes> and optional speed, return the travel-time. When dist-array is not provided, calculate distance directly using coords.
Tests weather the route on <Vehicle> is complying with the time-window constraints. Returns T and the time of finishing its last task.
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.
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.
problem
) (mv ts-best-insertion-move
)) ¶problem
) (m insertion-move
)) ¶problem
) (m move
)) ¶Assesses the effect on fitness when <move> is performed on <problem> (on a clone - undestructive).
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.
and
.
:most-specific-first
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.
and
.
:most-specific-first
vrptw
) (m insertion-move
)) ¶cvrp
) (m insertion-move
)) ¶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.
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.
tabu-search
)) ¶Generates a list of <move> instances (depending on what was defined in the ts slot) for all nodes and vehicles.
Given a node and a solution (that does not have this node yet), return the best <insertion-move>.
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.
node
) (prob cvrp
)) ¶Returns the vehicle closest to the node and has enough capacity.
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.
Initializes the initial solution for the algo object.
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.
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/
tabu-search
)) ¶tabu-search
)) ¶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>.
Returns the last <node> in its route. Depicts the current location (before returning to base).
Returns T if :log-mode is set to 2, which is REPL.
Performs the move defined in <move> on the solution. Returns the new solution (which is a class of <Problem>)
problem
) (mv ts-best-insertion-move
)) ¶Takes <Node> with node-ID and uses get-best-insertion to insert in vehicle-ID. DESTRUCTIVE.
problem
) (mv insertion-move
)) ¶problem
) (m insertion-move
)) ¶Performs the <move> on <problem>.
Draws only the nodes in 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.
Prints solution given a <problem>/<algo> object. Also prints the total distance when the input is a <problem>/<algo> object.
Removes the <node> with node-ID from the route of <vehicle>. Returns NIL if failed to find node-ID.
When input is a <vehicle>, returns its route as a list of node IDs. When input is <fleet>/<problem>, list all routes.
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.
problem
) (ts tabu-search
)) ¶Initialize (if necessary), iterate till finished. Returns <Algo> object.
problem
) (a greedy-best-insertion
)) ¶Randomly insert <Nodes> one by one to best <vehicle> in best location. Returns <Algo> object when done.
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.
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).
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.
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.
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.
all-moves-tabu
)) ¶Toggles legend drawing. When <Algo> is provided, toggles :best-sol
Toggles plotting on/off of best solution. Config boolean is held by <Drawer> object’s plotp slot.
Returns total distance of the route(s) given a vehicle or a fleet.
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
tabu-search
)) ¶automatically generated reader method
tabu-search
)) ¶automatically generated writer method
file-not-recognized
)) ¶keyword
.
file
.
error
.
error
.
structure-object
.
0
0
1000
t
100
900
structure-object
.
structure-object
.
fixnum
0
This slot is read-only.
fixnum
0
This slot is read-only.
fixnum
0
This slot is read-only.
structure-object
.
fixnum
0
This slot is read-only.
fixnum
0
This slot is read-only.
common-lisp
.
1
This slot is read-only.
(setf algo-animatep)
.
algo-animatep
.
(setf algo-best-fitness)
.
algo-best-fitness
.
(setf algo-best-iteration)
.
algo-best-iteration
.
(setf algo-best-sol)
.
algo-best-sol
.
(setf algo-current-sol)
.
algo-current-sol
.
algo-desc
.
(setf algo-iterations)
.
algo-iterations
.
algo-name
.
iterate
.
iterate
.
iterate-more
.
iterate-more
.
log-to-replp
.
plot-solution
.
print-routes
.
run-algo
.
run-algo
.
select-move
.
solve-prob
.
solve-prob
.
solve-prob
.
toggle-legend
.
toggle-plot
.
:best-sol
:best-fitness
0
:current-sol
:iterations
:animatep
assess-move
.
assess-move
.
assess-move
.
assess-move
.
constraintsp
.
feasible-movep
.
fitness
.
get-best-insertion-move
.
get-closest-feasible-vehicle
.
initialize
.
log-to-replp
.
node
.
perform-move
.
perform-move
.
perform-move
.
plot-nodes
.
plot-solution
.
print-routes
.
problem-desc
.
(setf problem-dist-array)
.
problem-dist-array
.
(setf problem-drawer)
.
problem-drawer
.
problem-fleet
.
(setf problem-log-file)
.
problem-log-file
.
(setf problem-log-mode)
.
problem-log-mode
.
problem-name
.
problem-network
.
(setf problem-to-depot)
.
problem-to-depot
.
remove-node-id
.
route-indices
.
run-algo
.
run-algo
.
run-algo
.
run-algo
.
run-algo
.
run-algo
.
solve-prob
.
solve-prob
.
solve-prob
.
toggle-legend
.
toggle-plot
.
total-dist
.
vehicle
.
"vrp"
:name
This slot is read-only.
:class
"vehicle routing problem"
:desc
This slot is read-only.
:network
This slot is read-only.
:dist-array
:fleet
This slot is read-only.
t
:to-depot
:drawer
:log-file
1
:log-mode
algo
.
generate-moves
.
initialize
.
iterate
.
iterate
.
remove-affected-moves
.
run-algo
.
select-move
.
(setf ts-aspirationp)
.
ts-aspirationp
.
(setf ts-candidate-list)
.
ts-candidate-list
.
(setf ts-elite-listp)
.
ts-elite-listp
.
(setf ts-init-heur)
.
ts-init-heur
.
(setf ts-move-type)
.
ts-move-type
.
(setf ts-parameter-f)
.
ts-parameter-f
.
(setf ts-stopping-condition)
.
ts-stopping-condition
.
(setf ts-tabu-list)
.
ts-tabu-list
.
(setf ts-tenure)
.
ts-tenure
.
"tabu search"
"a local search that escapes local optima by means of declaring certain moves tabu."
(quote open-vrp.algo:ts-best-insertion-move)
:move-type
(quote open-vrp.algo:greedy-best-insertion)
:init-heur
20
t
:aspirationp
t
:elite-listp
:tabu-list
15
:tabu-tenure
(function open-vrp.algo::ts-pars-n)
:tabu-parameter-f
:candidate-list
(function open-vrp.algo::stopping-conditionp)
:stopping-condition
Expands into binding the vehicles route to r and setting it to result of body.
Map over all node-IDs, except for base.
Map over all veh-IDs capped at fleet-size. Will consider only busy vehicles and one extra idle vehicle.
Given a 2-dimensional array, return a list of lists.
Given a list of lists, return a 2-dimensional array.
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).
Draws an arrow as in line-to, but creates an arrow in the middle of size. Use with canvas!
Returns a list of all capacities left on the vehicles given the present solution.
Given a <tabu-search>, erase everything that is on the tabu-list. A useful restart in case all moves were declared tabu.
Given a drawer and a coord, calculate the associated x/y pixel. Includes 1 coord as border.
Given a list of x and y-coords, return a list of pairs usable. Used for node-coords or time-windows.
Calculates distance given two coord pairs. Returns NIL if both coords are the same.
Calculates pythagoras distance
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.
Given the <Problem> object, plot the nodes only. Usage only with-canvas!
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).
Returns next color. Deterministically random.
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!
Helper function of the below. Use get-min-index or get-max-index!
Returns index of the first next closest, that is not in chosen (which is a list).
Given a list of algo-objects, as returned by multi-run, return the stats with (values min max avg std runs time time/run)
Returns T if move is an improving one, i.e. has a negative fitness.
Given path, return the string of the path with the timestamp inserted before the .xxx
Marks the indices on list with NIL. DESTRUCTIVE.
Given a problem, return the number of nodes in the network.
Given a problem, return size of the fleet.
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
Returns the route that contains the node that will be moved.
Returns the route that will be affected by the insertion-move.
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.
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.
Store the position of the path (helper function for arrow calculation).
Returns a list of arrival times of the vehicles to node given the present solution.
Returns yymmdd-hhmmss in a string. Used for timestamped log-files.
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.
Tests if the object is an instance of a VRP object that needs deep copy. (problem, fleet, vehicle)
same-origin-destination
)) ¶from
.
infeasible-solution
)) ¶func
.
index-out-of-bounds
)) ¶list-of-nils
)) ¶key
.
not-equal-length
)) ¶list-of-nils
)) ¶ls
.
index-out-of-bounds
)) ¶ls
.
no-feasible-move
)) ¶all-moves-tabu
)) ¶unaccepted-predicate
)) ¶pred
.
missing-drawer-object
)) ¶prob
.
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.
infeasible-solution
)) ¶sol
.
same-origin-destination
)) ¶to
.
no-speed-vehicle
)) ¶veh
.
no-capacities-vehicle
)) ¶veh
.
error
.
error
.
error
.
file
.
error
.
error
.
error
.
prob
.
error
.
veh
.
error
.
error
.
error
.
veh
.
error
.
error
.
pred
.
Jump to: | %
(
2
A B C D E F G I K L M N O P R S T U V W |
---|
Jump to: | %
(
2
A B C D E F G I K L M N O P R S T U V W |
---|
Jump to: | *
A B C D E F I K L M N P R S T V X Y |
---|
Jump to: | *
A B C D E F I K L M N P R S T V X Y |
---|
Jump to: | A B C D E F G I L M N O P R S T U V |
---|
Jump to: | A B C D E F G I L M N O P R S T U V |
---|