4

I am trying to figure out whether given those constraints regular 2D packing problem can be simplified. You have n regular s-sided polygons for s between 3 and 12. All of them have the same side length. We need to minimise the area of bounding square.

I would think that having all of the regular with same side length the packing can be easier since some configurations will always fit perfectly next to each other. Though I am not sure whether this property is of any use since local minimum might not translate to global minimum.

Ali
  • 56,466
  • 29
  • 168
  • 265
robert3005
  • 83
  • 1
  • 5
  • This is surprisingly difficult problem -- e.g. a regular grid is not the most dense configuration for 4x6 bottles of beer. I'd go for simulated annealing / genetic algorithms... http://en.wikipedia.org/wiki/Circle_packing_in_a_square – Aki Suihkonen Feb 28 '14 at 14:41
  • I think you have a good idea for a first cut of a solution, but I don't think you're going to be able to simplify the program -- you'll probably need to do quite the opposite and try several things within your final algorithm to overcome the local minimum problem. – pattivacek Feb 28 '14 at 14:43
  • 1
    When you say fill, HOW are we allowed to fill, do we need sides to be fully touching other sides of other polygons, or can we have polygons floating by themselves, or can we have a single point from lets say a triangular poly touching a point or side of another poly without a full tri side touching another full poly side??? Also, bounding "square" or rectangle, because those MAY be different! – trumpetlicks Feb 28 '14 at 15:14
  • @trumpetlicks Packing problems do not require objects to touch each other or the sides. You may be thinking of "tiling". Of course, the only regular polygon that can tile a square is itself a square. – Sneftel Feb 28 '14 at 15:50
  • IMHO, If you have polygons that are not regular or having the same side, some of them could tile anyway. Only the concave polygons will make the task more difficult. I would start from placing two convex polygons in another convex polygon. This task you could use for the start and step of induction. – Gangnus Mar 01 '14 at 19:47
  • @trumpetlicks there is no requirement for the polygons to be touching or floating. Any alignment is acceptable. I am looking to minimise the area of the bounding SQUARE. All of regular polygons with 3 to 12 sides are convex. The difficulty is that you still can have many different configurations and the number of possibilities to explore grows exponentially. – robert3005 Mar 02 '14 at 16:24

1 Answers1

2

From your description, the polygons are regular polygons with all sides having the same length

This means that every polygon edges can connect to form a circle which can fit into a sub-square of size of 2r^2 perfectly

So an easy solution is to fit N polygons aligned in a square of size >= N * 2r^2, this is not an optimal solution, but works perfectly when you only have squares.

Here is an illustration that explains it:

enter image description here

First, knowing that all polygon sides have length of m

The polygon fits perfectly into a circle of ratio r

That circle fits perfectly into a square of size 2r^2

enter image description here

So we finally merge the fitting squares into one big square by tiling them in a matrix of M x M squares, where M * M >= N

Khaled.K
  • 5,828
  • 1
  • 33
  • 51