# Multi-objective Optimization of Two-Dimensional Sheet Cutting Problem using Genetic Algorithms Santosh Tiwari.

## Presentation on theme: "Multi-objective Optimization of Two-Dimensional Sheet Cutting Problem using Genetic Algorithms Santosh Tiwari."— Presentation transcript:

Multi-objective Optimization of Two-Dimensional Sheet Cutting Problem using Genetic Algorithms Santosh Tiwari

Sheet Cutting Frameworks Guillotine Cutting – (cutting from edge to edge, Detached parts treated as separate entities) – Applicable to metallic sheets Guillotine Cutting – (cutting from edge to edge, Detached parts treated as separate entities) – Applicable to metallic sheets Non-guillotine Cutting – (cutting from edge to edge not mandatory, Detached parts treated as same entity) – Applicable to piles of paper Non-guillotine Cutting – (cutting from edge to edge not mandatory, Detached parts treated as same entity) – Applicable to piles of paper Guillotine cutting is of practical importance to industry Guillotine cutting is of practical importance to industry Sheet Cutting formulated as an optimization problem for Industry Sheet Cutting formulated as an optimization problem for Industry

Optimization Problem Objective 1: Minimize the length of mother- sheet required (Trim loss) Objective 1: Minimize the length of mother- sheet required (Trim loss) Objective 2: Minimize the number of cuts required (Tool life) Objective 2: Minimize the number of cuts required (Tool life) Non-guillotine Cutting: Both real and binary formulations Non-guillotine Cutting: Both real and binary formulations Guillotine Cutting: Only binary formulation Guillotine Cutting: Only binary formulation Binary formulation greatly outperforms real variable formulation Binary formulation greatly outperforms real variable formulation

Real variable formulation Two real variables and one binary variable Variables (x 1, y 1 ) and a bit ‘0’ or ‘1’ for every rectangle

Representation of an Individual Let number of parts be ‘n’ Let number of parts be ‘n’ Length of gene of real variables = ‘2n’ Length of gene of real variables = ‘2n’ (x 1, y 1, x 2, y 2,..,..,..,..) Length of gene of binary variables = ‘n’ Length of gene of binary variables = ‘n’ (‘0’, ‘1’,.,.,.,.)

Objective Functions Objective 1: Objective 1: Objective 2: (Non-guillotine cutting) Objective 2: (Non-guillotine cutting)

Objective 2 contd…

Number of cuts (Non-guillotine cutting) 1. Number of cuts = 4*n. 2. For every rectangle ‘i’ do the following 3.For every edge of rectangle ‘i’ that lies on the boundary decrease the number of cuts by one and mark that edge using a flag. cuts by one and mark that edge using a flag. 4. For every rectangle ‘j’ from ‘i+1’ to ‘n’ do the following 5.For every unmarked edge of rectangle ‘i’ compare it with all the (suitable) edges of rectangle ‘j’ to find out if they are aligned. 6.If they are aligned then find out if they are touching or not, if they are touching, then decrease the number of cuts by one and mark the corresponding edge of rectangle ‘j’. 7.If the rectangles are not touching then find out the line joining the aligning edges and for every rectangle ‘k’ ≠ ‘i’ and ≠ ‘j’ find out whether the line and rectangle ‘k’ interfere or not. If none of the rectangle ‘k’ interfere then decrease the number of cuts by one and mark the corresponding edge of rectangle ‘j’ 8. Increase the number of cuts by one to account for the final cut that is made at the end of the mother sheet.

Constraints Constraint 1: Error in location of rectangular parts – should be inside the mother sheet Constraint 1: Error in location of rectangular parts – should be inside the mother sheet Constraint 2: Overlap error – no two triangles should overlap one another Constraint 2: Overlap error – no two triangles should overlap one another

Overlap Error 1.For i ← 0 to i ← n do 2.{ 3.if (rect[i].x1<0)return ERROR 4.if (rect[i].y1<0)return ERROR 5.if (rect[i].x2>l)return ERROR 6.if (rect[i].y2>b)return ERROR 7.For j ← i+1 to j ← n do 8.{ 9.if (rect[i].x2≤rect[j].x1 or rect[i].x1≥rect[j].x2 or rect[i].y1≥rect[j].y2 or rect[i].y2≤rect[j].y1 ) rect[i].y1≥rect[j].y2 or rect[i].y2≤rect[j].y1 ) 10.{ do nothing } 11.else 12.return ERROR 13.} 14.} 15. return NO_ERROR

Binary Formulation

Equation representing the Individual “1 2 H 3 4 H V 5 6 V 7 8 V H H” “0, 1, 1, 0, 0, 0, 1, 0” Tree View

Physical Layout

Tree-String Conversion Algorithm to convert the tree to string – we use in-order traversal Traverse-tree (x) 1if x ≠ NIL 2then traverse-tree (left[x]) 3 traverse-tree (right[x]) 4 print key[x]

Feasibility and Validity of Gene N o – number of operators N o – number of operators N p – number of parts N p – number of parts N o = N p – 1 N o = N p – 1 In tree, In tree, all intermediate nodes are operators all intermediate nodes are operators All leaf nodes are parts All leaf nodes are parts Tree should be complete Tree should be complete Leaf nodes should be unique Leaf nodes should be unique In string, In string, N p – number of parts to its left for any operator N p – number of parts to its left for any operator N o – number of operators to its left including itself for any operator N o – number of operators to its left including itself for any operator

Advantages of String Notation Constant size of string Constant size of string No parenthesis required No parenthesis required Unique representation Unique representation Finite search space Finite search space Optimal representation of the set Optimal representation of the set Powerful crossover and mutation operators can be designed Powerful crossover and mutation operators can be designed Both guillotine and non-guillotine sets can be represented Both guillotine and non-guillotine sets can be represented

Coordinate allocation and Tree Construction 1. If it is a part number push it into stack1. 2. If it is an operator then pop two elements from stack1 make a new part number and push it into stack1 and stack2. Keep track of the breadth of the newly formed part number, if it is more than the breadth of the master sheet, then change the operator and communicate the change back to the GAs. 3. When all the elements are interpreted then only one entry remains in stack1 and n-1 entries remain in stack2. 4.Pop the first entry from stack2, assign it the coordinates, and then assign the coordinates to its constituents. 5.Pop next entry from stack2 and assign the coordinates to its constituents. 6. Proceed until stack2 is empty.

Number of Cuts – Guillotine Cutting key ← 2n-1 calculate number of cuts (key) 1.a ← rect[key].a 2.b ← rect[key].b 3.op ← rect[key].op 4.number of cuts ← 1 5.if (rect[key].breadthnumber of rectangles) 20.number of cuts ← number of cuts+calculate number of cuts (a) 21.if (b>number of rectangles) 22.number of cuts ← number of cuts+calculate number of cuts (b) 23.return number of cuts

Crossover Operation Done with the string Done with the string Three types of crossover routines implemented Three types of crossover routines implemented PMX Partial mapped crossover PMX Partial mapped crossover Ordered Crossover Ordered Crossover Cyclic Crossover Cyclic Crossover Uniform one point crossover done to the string keeping record of orientation Uniform one point crossover done to the string keeping record of orientation

Mutation Operation Done to the tree Done to the tree Pick up any two intermediate nodes and swap them Pick up any two intermediate nodes and swap them Pick any two leaf nodes and swap them Pick any two leaf nodes and swap them Pick any intermediate node and flip it Pick any intermediate node and flip it Pick any location on the state string and flip it Pick any location on the state string and flip it

Simulation Results Case 1: Breadth of mother sheet = 6 units Case 1: Breadth of mother sheet = 6 units 5 rectangles of size 1x1 units 5 rectangles of size 1x1 units Two pareto-optimal solutions Two pareto-optimal solutions

Simulation Results contd… Case 2: Breadth of mother sheet = 5 units Case 2: Breadth of mother sheet = 5 units 5 rectangles of size 1x1 units 5 rectangles of size 1x1 units Only one solution obtained Only one solution obtained

Simulation Results contd… Case 3: Breadth of mother sheet = 1 units Case 3: Breadth of mother sheet = 1 units 5 rectangles of size 1x1 units 5 rectangles of size 1x1 units Only one solution obtained Only one solution obtained

Simulation Results contd… Case 4: Breadth of mother sheet = 10 units Case 4: Breadth of mother sheet = 10 units 10 rectangles of dimensions 10 rectangles of dimensions

Simulation Results contd… Case 5: Breadth of mother sheet = 20 units Case 5: Breadth of mother sheet = 20 units 20 rectangles of dimensions 20 rectangles of dimensions

For Guillotine Cutting Case 6: Breadth of mother sheet = 10 units Case 6: Breadth of mother sheet = 10 units 20 rectangles of dimensions 20 rectangles of dimensions

For Guillotine Cutting contd… Case 7: Breadth of mother sheet = 20 units Case 7: Breadth of mother sheet = 20 units 20 rectangles of dimensions 20 rectangles of dimensions

Download ppt "Multi-objective Optimization of Two-Dimensional Sheet Cutting Problem using Genetic Algorithms Santosh Tiwari."

Similar presentations