A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus...

14
A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner

Transcript of A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus...

Page 1: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

A Constraint Programming Approach to Solving a Ship Loading Problem

Andreas JordanProfessor Markus Stumptner

Page 2: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

2

Background

• Currently, load plans for amphibious ships are • created by ‘dragging and dropping’ representative size

boxes into a trim and stability software program.

• There is a requirement for some automated support• when planning loads for both the amphibious ‘mother

ships’ and associated watercraft conducting landings / withdrawals.

Page 3: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

3

Objectives

• The primary objective• minimise the space used by the loads => minimising the

number of amphibious ships and watercraft to conduct operations.

• Near-optimal solutions preferred within the order of seconds

• The load must also produce a stable load plan

Page 4: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

4

Problem Description

• Belongs to the general class of “Bin Packing Problems”• Description:

• The packing of a finite number of rectangles into a number of larger sized bins where:

• No items are allowed to extend past the edges of the bin nor any overlap permitted.

• The challenge is to assign all the items, with no overlap, to the minimum number of bins with their edges parallel to those of the bins.

• Problem is NP-Hard (ie. cannot be solved in polynomial time)

• Exhaustive search impractical. Therefore, heuristical methods are required for most practical problems.

Page 5: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

5

Sourcing Software• Description of problem readily lends itself to modelling as a

Constraint Optimisation Problem (COP)

• Possible choices:-• Matlab• Eclipse• Prolog• ILOG CPLEX®• Comet

• Selection criteria• Acquisition costs• Optimised libraries with pre-built constraint-reasoning functionality• Availability of Global Constraints (eg. selectMin)

• => Comet

Page 6: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

6

Modelling as a Constraint Optimisation Problem

• Determine the finite domain decision variables• Packing – establishes a relationship between an item and a bin. eg. • Load – tracks the current load of each bin• X – represents x-positions within each bin• Y – represents y-positions within each bin

• Domains• Items – represents the number of items to be packed• Bins – total number of bins

• Constraints• Constrain load of bin• Constrain placement of items within bin

• Minimise the number bins used to pack items

Page 7: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

7

Packing Heuristic Selection

• Several packing algorithms exist, including:-• Finite-First-Fit• Bottom-Left-Fill• …and many more

• Most not suitable for this application:-• they typically require items to be sorted in non-decreasing order• no advantage taken of additional attributes (eg. weight)

• Key requirements, including:-• Prioritisation of items – Strict, Flexible and None • Stability of packing (lateral and longitudinal)• Can make no assumptions about the distribution of item sizes

Page 8: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

8

• Nine barrier types• C, RL, LR, LCR, CLR, LRC, RCL, RLC, CRL • Barrier composed of (up to) 5 segments• Pack item into lowest barrier• LX, LY, CX, RX, RY represent cartesian barrier coordinates

Packing Barrier (Heidelberg et al,1998)

RLC LR

CLR

RCL

LRCLCR

RLC CRL

LX LY

RY

CX RX

Packed items

Page 9: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

9

Representing Variables in Comet

• Example• var<CP>{int} packing[Items](cp, Bins);

• Explanation • Var<CP> - declaration for a finite domain decision variable• {int} – declares that the domain comprises discrete integers• packing[Items] – name of variable where “Items” represent the

range of variables associated with ‘packing’• (cp, Bins) - range of valid integer values that each variable can

take.• This representation allows the constraint solver to reason

• packing[1] = 1..12• …• packing[100] = 1..12

Page 10: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

10

Representing Constraints in Comet

Solver<CP> cp();//declare the variablesSolve<cp>{//post the constraints

//Constraint which ensures that the load of any bin is less than or equal to a bins capacity

forall(b in Bins) cp.post((load[b] == sum(i in Items) (packing[i]==b)*itemWeight[i]) && load[b] <= binCapacity_) ;

} using{//non deterministic search}

Page 11: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

11

Preliminary Results• 4 items==== Post-processing Results ==== Solution found with: 2 binsload[43800,42000,0,0,0,0,0,0,0,0]packing[1,2,1,1]x[0,0,34,44]y[0,0,0,0]#Choices = 8#fail = 0Time: 0 seconds==== End ====

• 8 items==== Post-processing Results ==== Solution found with: 2 binsload[45400,44000,0,0,0,0,0,0,0,0]packing[1,2,1,1,1,2,2]x[0,0,34,0,18,0,15]y[0,0,0,96,96,96,96]#Choices = 39728#fail = 158149

Time: 4 seconds ==== End ====

• >8 items (using Windows machine with 2GB RAM)• runs out of virtual ram after approximately 3 hours

Page 12: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

12

Further Work

• Implement item placement based on multi-tiered priorities

• Incorporate centre-of-gravity calculations to build solutions already favouring a stable load

• Automatic barrier adjustment after failing to insert any items

• Adjust upper bound on item length to be uppermost adjacent level plus/minus a tolerance, t.

• Incorporate No-Go zones

Page 13: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

13

Thankyou

• Questions?

Source: http://www.tomw.net.au/technology/transport/amphibious.shtml

…different watercraft and ship types should be considered

Source: Wikipedia

Page 14: A Constraint Programming Approach to Solving a Ship Loading Problem Andreas Jordan Professor Markus Stumptner.

14

References

• Dyckhoff, H 1990, 'A typology of cutting and packing problems', European Journal of Operational Research, vol. 44, no. 2, pp. 145-159.

• Sexton, J, et al. 2004, Efficient Solutions in Load Planning, DEFENCE SCIENCE AND TECHNOLOGY ORGANISATION SALISBURY (AUSTRALIA) SYSTEMS SCIENCES LAB.