Grasshopper

algorithmic modeling for Rhino

hi john, 

I wonder if you had this before. I link 2 fitnesses to the component and only one is showing when I click on the designs tab. 

I just updated from 030 where it was showing both of them but of course without the controllers for maximizing and minimizing each fitness on its own. 

this was the reason i updated using both 060 then 050 

i even tried to delete all biomorpher setup files and copy it again yet still the same result only one fitness is available to be controlled and the other is not showing anywhere. 

thanks in advance for your expected concern

anas 

Views: 58

Replies to This Discussion

Hi Anas,

Never had this before. Could you attach an example gh file and I can have a look.

Thanks,

John.

hi john, 

it is my thesis work where I am trying to optimize a neighborhood geometry based on performance and floor area ratio

the file is too complicated to share other than it is not published work yet. the issue is that with version 0.4.0 it is working but it is very slow than what it takes on 0.6.0 

it is consuming too much RAM 

with 0.6.0 it takes from 10 to 20 minutes for one generation while it reaches to 3 hours with 0.4.0 

the 0.6.0 tends to show only the first fed fitness either I give it the two in a list, grafted or flatten or merged in one list 

I would appreciate if you can tell me more about how does it receive the fitness just to check if I am doing it wrong. 

thanks and best regards

anas 

Hi Anas,

With regards the performances, you're right that if you have a list it doesn't repeat the elements. It might have something to do with the fact it gets the nickname from the wire (so rarely would you want to have the same name for several things), but that doesn't explain why it isn't working at present, because the code looks ok as it flattens all input volatile data:

<code>

foreach (IGH_Param param in Params.Input[2].Sources){
  foreach (Object myObj in param.VolatileData.AllData(true)){
    if (myObj is GH_Number && pCount < 8){
      if(!criteria.Contains(param.NickName)){
        GH_Number temp = (GH_Number)myObj;
        performas.Add(temp.Value);
        criteria.Add(param.NickName);
        pCount++;

      }

    }

  }

}

</code>

Anyway, you can only have 8 performance criteria max, so I would suggest splitting your list and naming each performance measure accordingly:

As for the speed, this is very hard to tell without a file to go on. Ultimately biomorpher is doing practically nothing compared to the time it takes to calculate each grasshopper instance.

However, I would recommend reducing the population size and disabling the grasshopper preview (on the initial screen). Also, try running the thing but just inputting a simple mesh sphere instead of the actual geometry (whilst still inputting the correct performance measures), and see if you get any speed improvement then let me know. That would be interesting to know, because there might be ways I can improve the speed by not importing meshes necessarily.

Alternatively, just send me a cut down version of your definition and I'll have a look.

Thanks,

John.

hi john 

thank you for the advice

it is working fine now it was the naming and of the fitnesses tree, yet still, the time aspect is challenging but it is reasonable considering the fitness time consumption. 

on the other hand, I have a different question do you have any advice regarding a large pool of iterations. is there is a way for it to avoid looping around local optimal? 

it seems to stick to a certain group after 4-5 generation and I wonder if there is a way to look further in the pool

?  

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service