Tuesday, December 2, 2014

Parametric Design - Cutting Stock Problem: Optimization


Parametric Design - ARCH 655

Cutting Stock Problem: Leftover Reduction for 2D Materials


Cutting Stock Problem is an interesting problem in the mathematics.It is basically to find an optimal way to cut required pieces from raw material in the way that the leftover will be minimum. This problem has been applied in many fields including steel, textile and paper. It can also be used in architecture and construction.

In the simple version of this problem, it can be assumed that all the required pieces are rectangular and the objective is to put them together in the way that the bounding rectangle has the minimum area possible.

The very first step is to solve the mentioned problem for only two pieces. It can be assumed that one of them can be rotated while the other one can be both rotated and translated. The rotation angles and the translation vector can be controlled by sliders. Then, utilizing Galapagos which is a GA-based optimization node, the sliders can be manipulated in order to do the optimization.


The next step is to solve the problem for several objects. Galapagos only works on sliders and it is not very pleasant to create 3 sliders for each object. Therefore, another external node called PackRat is used. PackRat basically put the required pieces together - i.e. pack them - in another geometry called container. Then Galapagos can be used to optimize the dimension of the container. The fitness function should be the difference between the volume of container - i.e. bounding box - and the sum of volume of geometries inside it. A penalty factor can be defined for iterations in which PackRat is not putting all the objects in the container.



Another issue is that PackRat does not consider the possibility of objects being rotated. This issue can be addressed by adding a python script which generates a string containing the rotation angle based on a slider. Then the slider can be also manipulated by Galapagos in order to achieve the optimal solution.



This python script is generating a binary string based on a number slider. The digits of this string determines whether each object is being rotated - only 90 degree rotation was considered.









No comments:

Post a Comment