Grasshopper

algorithmic modeling for Rhino

Need help to optimize a space division


Hello, I have an optimization problem to solve via grasshopper. Maybe it can solved by Space Syntax or goat or octopus with galapos or any other suggestion ?!

Here is my problem... I need to arrange Boxes in the most efficient way within boundaries of object and follow the following constraints.

The Goal: To fit 125 boxes in the most efficient way inside the total area. Starting Variables:

(1) 40% of the Boxes need to be between 60 and 85MSQ.
(2) 40% of the boxes need to be between 86 and 110MSQ.

(3) 20% of the boxes need to be between 111 and 125mSQ. The breakdown doesn’t have to be exact to give the script some flexibility. Meaning you can have 41% +39% +20% = 100%.

Constraints:

1. A total MAXIMUM area of approximately 1600M per layer.

2. A maximum of 8 layers for a total of 12,800M per layer. Optimization can make as little or as many as 8 layers vertical to accommodate all boxes. So if script can achieve with 3 levels great. If needed all 8 levels, that's fine too. However, pay attention to next constraint (#3).

3. Approximately 15% of that space on each layer is off limits. (internal area) (blue area in example script) and the shape of the boundary cannot be modified to accommodate box design resulting in jagged lines for the internal area.

4. All generated squares/rectangles must have at least 3m touching an outside border (The Green lines).

5. All boxes must also be touching minimum 1M of border of the blue line.

6. If the boxes generated go outside the green boundary, they must be fillet to maintain the straight lines of the green boundaries.

7. Get as many of the boxes as possible a view towards the dots.

Could any one provide me a method or a way to start, if there are any useful links, please share with me. Thank you!

Views: 737

Attachments:

Replies to This Discussion

Hi Mohamed,

A common characteristic of all optimization plug-ins in Grasshopper (Galapagos, Goat, Octopus, Opossum and Silvereye) is that they assume that nothing is known about the structure of the problem. In the case of simulation-based problems, this assumption often is reasonable.

But in your case, a lot of structure is known, so you'd most likely be better of coding a custom algorithm. I'd start by placing the boxes one by one, making sure I meet the constraints and packing as tight as possible (a "greedy" algorithm). For this kind of algorithm, the order of the boxes most likely makes a big differences (small ones first, large ones first, etc.).

Check this link to see what I'm talking about: http://cs.stackexchange.com/questions/47717/easiest-improvement-on-...

this is so near from what I am working on, thank you so much for your respond and this useful link 

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service