That's definitely true. The problem I've noticed with Grasshopper's GA is that it tends to crash after the first generation when running for very complex systems. Hopefully they'll fix this in a future release!
It's a scripted component I made myself for convenience. To create one, make a C# script component. Scroll forward to zoom in until you can see little +s and -s on the component's left and right. On the left, add new inputs by clicking the +s, right click the input name (eg, right click "X"), then re-name them to c, T, and F. Right click the "c" input and set its "type hint" to bool. Now you've done that, double click the C# component. A window will pop up to let you write code.
The ternary component is a scripted component that I made myself. It's a C# scripted component, and the only code I wrote in it is a "ternary statement", which looks like this: A = c?T:F; The three input parameters for the component (c, T, and F) were added by right clicking the component and adding / renaming inputs. I then right clicked the c input and set its type hint to boolean, which is needed for the code to work.
It seems like you want to get the average of the collection of points, then get the average between that and your other point. So, connect the collection of points to an "Average" component. Take the output of that (a single point), connect it to another "Average" component, and also connect your "one point" to that "Average" component.
Galapagos has changed a little since this video was uploaded. It's likely there won't be many tutorials out there for newer versions of it. To find what components I used, for most, you can search for the name on the component in Grasshopper. To do so, doubleclick on the Grasshopper canvas and in the text box that pops up, type the name of the component. Most times, you'll find what you're looking for. There are some exceptions, but I think this will do everything you need to follow this video.
To answer your question, if I recall correctly, the Galapagos component in the current version of Grasshopper can work with multiple fitness values, but it just adds them together the same way a "Mass Addition" component would, so it really just ends up with one value.
Very useful video, could you please show us how to bound this in a box (Site) and how to open various evolutionary models that area result of galapagos and then go to the next generation
When you say "equalizes", do you mean "gets the average"? Or perhaps "gets a weighted average"? You can do that either using the "Average" component (give it a list of points), or the "Weighted Average" component (give it a list of points + a list of weights, one weight per point; if a point's weight is larger, the average is placed closer to that point).
Great tutorial! Fucking loving the abstraction levels of programming (meaning, somebody else coded this for me and now I am only calling the built in functions)!
Hi, this is the only tututorial that I've found about Galapagos. But is being very hard for my to find which commands were used in Grasshopper. Is there any chance that you can upload a lick for the Grasshopper files?. Or perhaps recomend to me another tutorial for getting started in Galapagos. Thanks a lot.
Write the following: A = c ? T : F; This is what coders call a "ternary statement". If c (a BOOLean value) is true, the output A will have the value of the input T. If c is false, the output A will have the value of the input F. If you're unsure why I use those letters, it's as a reminder for what those variables mean: c -> "condition" (which coders use for true/false boolean things), T -> true, F -> false.
Hey, i was trying to make a deffinition that equalizes the distance between one point and a collection of others. I was trying to promediate the solution, but the distance still very unaccurated. Can galapagos work with two or more fitness?
*using Galapagos to brute force a wifi password :P* nice tutorial. the evolve test should be a lot easier to iterate each letter separately. But galapagos does not support branches does it?
Hey mate, I was wondering if you can give me some tips on how you added this C# component? if you can post the file somewhere or even show the code? Best, A
Pretty much, with the benefit of working reasonably easier for people who don't know how to use calculus to optimise their forms, or want to pick and choose from a set of sufficiently optimised solutions. It'd benefit from repeatability, though...
some problems cannot be solved by just setting derivatives to zero and checking maximum and minimum values. when part of your fitness function is actually composed of output values being retrieved from, let's say, a daylighting simulation (or any other stand-alone algorithmic procedure - cfd, topology optimizations, etc), you won't be able to come up with a single function for every possible geometry. that would be REALLY hard to solve entirely by differential calculus (if not impractible, in current design processes status quo). that's exactly where genetic algorithms come in handy. it's not just about handing an easy to use tool for people who can't handle math. :)