Decision-making Levels on Logistics Engineering deals with decisions that have a long lasting effect...
-
Upload
lester-arnold -
Category
Documents
-
view
212 -
download
0
Transcript of Decision-making Levels on Logistics Engineering deals with decisions that have a long lasting effect...
Decision-making Levels on Logistics Engineering
deals with decisions that have a long lastingeffect on the firm.
includes decisions that are updated anywhere between once every quarter and once every year.
deals with day-to-day and real-time decisions.
Vehicle Routing Problem
INFORMSSEOUL 2000
Vehicle Routing Problem with Time Windows (VRPTW)
vehicle
route
customer
depot tour
Given a set of customers requiring a quantity of goods to be delivered and a fleet of vehicles located at a central depot, the objective is to find a set of feasible tours (route) for the vehicles of minimal objective function value.
service timewaitingtime
earliest start time
customer
latest start time
earliest start time
customer
latest start time
service time
• Each customer is visited by exactly one vehicle.• The limited capacity for each vehicle must be respected. • The beginning time of service at each customer must occur in its time window. INFORMS
SEOUL 2000
Component Structure
• Algorithm Classes implement algorithms by which the problem is solved.
• Solution Classes represent a structure of solution.
• Data Classes manage the data that define the problem.
• Main Classes reference and control all objects of the above classes.
The software is developed subject to an object-oriented manner and is coded in C++.
INFORMSSEOUL 2000
Main Classes and Algorithm Classes
VRPMainRun()
VRPAlgoExecute()
ExecuteChild()
p_Algo
p_Algo
p_Algo→Execute()
ConcVRPAlgo1
Execute()
ConcVRPAlgo2
Execute()
declares a function Run that calls function Execute of VRPAlgo object.
declares a virtual function Execute and self-reference pointer p_Algo.
Algorithms for solving the problem are implemented in function Execute of a concrete subclass of VRPAlgo class.
Strategy define a family of algorithms, encapsulate each one, and make them interchangeable.
Book “Design Patterns: Elements ofReusable Object-Oriented Software”,Gamma-Helm-Johnson-Vissides, 1995.
INFORMSSEOUL 2000
Procedure Two-opt Local Searchrestart: tour representationfor i=1 to n do array two-level tree a:=tour[i] b:=Next(a) O(1) O(1) for all c Frnn(a, |ab|) ∈ do d:=Next(c) O(1) O(1) if |ab|+|cd| > |ac|+|bd| then Flip(a, b, c, d) O(n) O( ) goto restart
n
Solution ClassesRoute Tour
Next()Prev()
Between()Flip()Insert()Delete()
DLList
a
b
c
dbd
a c
P_TourArray
n < : array103
Fredman, Johnson, McGeoch and Ostheimer 1995
manages the objects of the subclasses ofclass Tour for each tour.
represents doubly linked list.
INFORMSSEOUL 2000
Data ClassesGWGraph manages k-dimensional vertices and has a function that returns attributes between vertices.
CustomerSet is a subclass of GWGraph and manages additional data related to customers.
Vehicle manages data related to vehicles.
KdTree represents semidynamic k-d tree data structure (Betley 1990).
NN(i) returns the index of the nearest neighbor to vertex i.Frnn(i, rad) asks which vertices in the set are contained in a given sphere that is defined by vertex i and radius rad.Deletept(i) removes vertex i from the set.Undeletept(i) returns vertex i to the set.
INFORMSSEOUL 2000
①
②
④
⑥
⑦
⑧⑨⑩
cutdim = Xcutval = X(5)
⑥⑨③ ②①⑤ ⑧⑩⑪ ⑦④⑫
cutdim = Ycutval = Y(3)
cutdim = Ycutval = Y(11)
Semidynamic K-d Tree (Frnn)
⑪
⑫
⑤
③
INFORMSSEOUL 2000
Algorithms for VRPTW• Route Construction Heuristics construct an initial route for route improvement heuristics. (multiple fragment method, saving method, insertion method, grasp)• Route Improvement Heuristics make an attempt to improve a given route by neighborhood search for a better one. (cross-opt local search, (1,0)-opt tabu search)
MltFragment CrossOptLS
VRPAlgo
Each algorithm is implemented in function Execute of the concretesubclass of VRPAlgo class.
Execute() Execute()
Execute()
INFORMSSEOUL 2000
Handling Time Window Constraints (1)
Kindervater and Savelsbergh 1997
p1 pk q1 ql
P Q
TTP : total time (sum of travel time and service time) on path PEDP : earliest departure time at customer pk of path P, assuming customer p1 is arrived at Ep1
LAP : latest arrival time at customer p1, such that the time window constraints of all the customers on path P are satisfied(E :earliest start time, L :latest start time, S :service time, T :travel time)
Proposition If two (vertex-disjoint) feasible paths P and Q are concatenated, the
resulting path R is feasible if and only if EDP+Tpk,q1LA≦ Q
and the variables for the resulting path R are given as follows.
TTR=TTP+Tpk,q1+TTQ
EDR=max{EDP+Tpk,q1+TTQ , EDQ}
LAR=min{LAP , LAQ‐TTP‐Tpk,q1}
R
INFORMSSEOUL 2000
Handling Time Window Constraints (2)
p
TTto, EDto, LAto
TTfrom, EDfrom, LAfrom
TTtop : total time (sum of travel time and service time) on the path {depot, … , p}EDtop : earliest departure time at customer p of the path {depot, … , p}, assuming depot is left at Edepo
LAtop : latest arrival time at depot (latest departure time from depot), such that the time window constraints of all the customers on the path {depot, … , p} are satisfied
For path {p, … ,depot}, variables TTfromp, EDfromp
and LAfromp are defined similarly.INFORMSSEOUL 2000
VRPTW Control
ConstructImprove
SetDataSelCstAlgoSelImpAlgo
VRP.SetData(data and parameta files)VRP.SelCstAlgo(id)VRP.SelImpAlgo(id)VRP.Construct(parameta)VRP.Improve(parameta)
VRPTWControl
INFORMSSEOUL 2000
Concluding Remarks
• We showed how to combine the techniques of which effectiveness are proven from the literature through our implementation.
• We illustrated a way of developing VRPTW software that is easy to use and maintain.
• This work is a first step toward developing fundamental software components to deal with complex problems on logistics.
INFORMSSEOUL 2000