Skip to contents

ClarkeWrightVrp: Clarke and Wright (1964) parallel savings for the capacitated VRP. GravityDistribution: doubly constrained gravity model balanced by Furness. LogitModeShares: multinomial logit shares and logsums. TrafficAssignment: all-or-nothing, Frank-Wolfe user equilibrium or system optimum with BPR costs. WebsterSignal: Webster (1958) cycle, greens and delay.

Usage

ClarkeWrightVrp(D, demand, capacity, depot = 1)

GravityDistribution(
  productions,
  attractions,
  cost,
  beta,
  deterrence = "exp",
  tol = 1e-12,
  max_iter = 10000
)

LogitModeShares(utilities)

TrafficAssignment(
  n,
  links,
  od,
  method = "ue",
  alpha = 0.15,
  beta = 4,
  max_iter = 1000,
  gap = 1e-10
)

WebsterSignal(flows, saturation_flows, lost_time)

Arguments

D

Symmetric distance matrix (depot included).

demand

Demands (0 at the depot).

capacity

Vehicle capacity.

depot

Depot node.

productions, attractions

Trip ends.

cost

Cost matrix.

beta

Deterrence parameter or BPR exponent.

deterrence

"exp" or "power".

tol, max_iter

Convergence controls.

utilities

Zones x modes systematic utilities.

n

Number of nodes.

Matrix of from, to, t0, capacity.

od

Matrix of origin, destination, flow.

method

"aon", "ue" or "so".

alpha

BPR coefficient.

gap

Relative-gap tolerance.

flows, saturation_flows

Critical flows and saturation flows (veh/s).

lost_time

Total lost time per cycle (s).

Value

List.

References

Clarke, G. and Wright, J. W. (1964). Scheduling of vehicles from a central depot to a number of delivery points. Operations Research 12, 568-581.

LeBlanc, L. J., Morlok, E. K. and Pierskalla, W. P. (1975). An efficient approach to solving the road network equilibrium traffic assignment problem. Transportation Research 9, 309-318.

Webster, F. V. (1958). Traffic Signal Settings. Road Research Technical Paper 39, HMSO.

Examples

GravityDistribution(c(100, 50), c(60, 90), rbind(c(1, 2), c(2, 1)), 0.5)$trips
#>          [,1]     [,2]
#> [1,] 47.51002 52.48998
#> [2,] 12.48998 37.51002
WebsterSignal(c(0.25, 0.15), c(0.5, 0.5), 10)$cycle
#> [1] 100