Grasshopper

algorithmic modeling for Rhino

Hi.

I know that there has been a lot of posts on Galapagos and multiple fitness functions. I believe that I have tried most of them, but it seems that I am missing a point. I have a simple structure connected to karamba3d.

 

I wanna change my cross sections as genomes for Galapagos and find the solution that is within the allowed deflection, with the smallest amount of materials. This just means that I want to minimize two values I guess. With target "max displacement" for the displacement value and "as small as possible" for the mass of the structure.

 

I did the following fitness function, trying to follow Dave's great explanation in earlier posts.

 

A = mass, B = displacement

 

A = { min. = 50, max = 5000, range = 4950, target= 50}

B = {min. = 0, max = 1000, range = 1000, target = 10}

 

f(A,B) = -((A-50)/4950)-((B-10)/1000)

 

I don't know if I should then add some weigths to it, since the displacement is more important than the weigth.

 

But using this function I just get the smallest numbers for discplacement (around 1mm), and a pretty big cross sections.

Any ideas of what I am doing wrong?

 

Thanks Rasmus

 

Views: 1865

Replies to This Discussion

I would suggest to use karamba as the FE-solver and Octopus as the multi-objective optimizer.
Really great work by these guys from austria!!
manymany things are already there.
I tried it for my master thesis and it worked out quite well ;)
results will follow/be presented within the next days.
regards
Ole

Hi Rasmus,

it seems that your two target are not the same kind of optimization target. You want to use as little material as possible, so every gram you manage to shave off should increase your fitness. However your deviation sounds like a sudden On/Off constraint. Either it is small enough for you not too care or it is too big to be allowed. Is that correct?

If so, then I'd suggest simply minimizing the material property and adding a heavy penalty clause for deviation. If you measure your deviation as a single number, and you know that that number is not supposed to be larger than X, then you can use the following expression:

if(d <= X, 0, 100000)

where d is the measured displacement and X is the maximum allowed displacement. You then add this number to your material value causing the fitness value to suddenly increase drastically as soon as the boundary is overstepped.

I'm not entirely sure this will work, but it's worth a try.

--

David Rutten

david@mcneel.com

Tirol, Austria

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service