Presentation is loading. Please wait.

Presentation is loading. Please wait.

Decision-making Levels on Logistics Engineering deals with decisions that have a long lasting effect on the firm. includes decisions that are updated anywhere.

Similar presentations


Presentation on theme: "Decision-making Levels on Logistics Engineering deals with decisions that have a long lasting effect on the firm. includes decisions that are updated anywhere."— Presentation transcript:

1 Decision-making Levels on Logistics Engineering deals with decisions that have a long lasting effect 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 INFORMS SEOUL 2000

2 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 timewaiting time 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

3 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++. INFORMS SEOUL 2000

4 Main Classes and Algorithm Classes VRPMain Run() VRPAlgo Execute() ExecuteChild() 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 of Reusable Object-Oriented Software”, Gamma-Helm-Johnson-Vissides, 1995. INFORMS SEOUL 2000

5 Procedure Two-opt Local Search restart: tour representation for 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 Solution Classes Route Tour Next() Prev() Between() Flip() Insert() Delete() DLList a b c d bd a c P_TourArray n < : array Fredman, Johnson, McGeoch and Ostheimer 1995 manages the objects of the subclasses of class Tour for each tour. represents doubly linked list. INFORMS SEOUL 2000

6 Data Classes GWGraph 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. INFORMS SEOUL 2000

7 ① ② ④ ⑥ ⑦ ⑧ ⑨ ⑩ cutdim = X cutval = X(5) ⑥⑨③ ②①⑤ ⑧⑩⑪ ⑦④⑫ cutdim = Y cutval = Y(3) cutdim = Y cutval = Y(11) Semidynamic K-d Tree ( Frnn ) ⑪ ⑫ ⑤ ③ INFORMS SEOUL 2000

8 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) MltFragmentCrossOptLS VRPAlgo Each algorithm is implemented in function Execute of the concrete subclass of VRPAlgo class. Execute() INFORMS SEOUL 2000

9 Handling Time Window Constraints (1) Kindervater and Savelsbergh 1997 p1p1 pkpk q1q1 qlql P Q TT P : total time (sum of travel time and service time) on path P ED P : earliest departure time at customer p k of path P, assuming customer p 1 is arrived at E p 1 LA P : latest arrival time at customer p 1, 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 ED P +T p k,q 1 ≦ LA Q and the variables for the resulting path R are given as follows. TT R =TT P +T p k,q 1 +TT Q ED R =max{ED P +T p k,q 1 +TT Q, ED Q } LA R =min{LA P, LA Q ‐ TT P ‐ T p k,q 1 } R INFORMS SEOUL 2000

10 Handling Time Window Constraints (2) p TTto, EDto, LAto TTfrom, EDfrom, LAfrom TTto p : total time (sum of travel time and service time) on the path {depot, …, p} EDto p : earliest departure time at customer p of the path {depot, …, p}, assuming depot is left at E depo LAto p : 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 TTfrom p, EDfrom p and LAfrom p are defined similarly. INFORMS SEOUL 2000

11 VRPTW Control Construct Improve SetData SelCstAlgo SelImpAlgo VRP.SetData( data and parameta files ) VRP.SelCstAlgo( id ) VRP.SelImpAlgo( id ) VRP.Construct( parameta ) VRP.Improve( parameta ) VRPTW Control INFORMS SEOUL 2000

12 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. INFORMS SEOUL 2000


Download ppt "Decision-making Levels on Logistics Engineering deals with decisions that have a long lasting effect on the firm. includes decisions that are updated anywhere."

Similar presentations


Ads by Google