Hello, Firstly I wanted to say that this is a nice and very clear video, I especially like that you blend theory and programming tutorial. I am personally not a fan of checking the improvement on the objective function as a way to create a stop condition as, in my experience, GAs tend to make huge improvements by doing rare jumps, in addition to the gradual stream of small improvements you illustrated, at least on some problems. I did some research on GAs for uni and I found that most GAs (the ones that allow fitness to decrease) can be seen as Monte Carlo Markov Chains, that are processes that don't converge but are very useful nonetheless, especially in statistics. I like to think that we should stop GAs the same ways we stop a MCMC process, by checking that the stationary distribution is reached (convergence in probabilities). In simpler terms, this notion corresponds to a sufficiently explored search space, unfortunately, methods to automatically check that the stationary distribution is reached in a general case is still a problem in computer science research. For now, it seems to me that we have to use properties of the problem at hand to create good stop conditions. Then, a local search method like gradient descent with a traditional convergence stop condition like the one you taught can be used to improve a bit the best solution(s) found. In Mouret and Clune 2015, they showed that MAP-Elite, a kind of GA that focus on diversity of solutions instead of on fitness optimization tend to produce even better solutions that traditional GA search, a finding that seemed to be confirmed by my own experiments. This suggests that we should not focus on fitness improvements alone, indeed...
@TutorialsWithGary4 жыл бұрын
Thanks for the feedback! I couldn’t agree more, The idea behind the series is a gentle introduction of sorts to most of the concepts around GA’s with the intent to complete this series and move onto more advanced techniques. So for now there is a simplistic approach taken but it’s mostly a means to an ends to explain core concepts. Thanks for the informed comment, I really hope that my videos can spark more conversations like this and drum up interest in GAs.
@SolvingOptimizationProblems4 жыл бұрын
I usually use the number of generations or computing time to stop GA. Sometimes I use the convergence to restart search process of my GA, which I called adaptive restart GA. By the way, very good tutorial, clear and informative. Many thanks
@TutorialsWithGary4 жыл бұрын
That’s cool! When you restart, do you re-spawn the entire population?
@SolvingOptimizationProblems4 жыл бұрын
@@TutorialsWithGary no, not entire the population, about 99 %. we keep some top chromosomes
@imukai4 жыл бұрын
Started watching the series tonight, and while I am anxiously awaiting more... I think you should now change the colour of GA in your name.
@TutorialsWithGary4 жыл бұрын
Hah that’s amazing!
@xySkyline4 жыл бұрын
Very cool series. Just wanted to add that you should probably not compare floating points by equality, but check if the absolute difference is less than some threshold. Thank you for the clear explanations !
@mukanyandwihilary5935 Жыл бұрын
Thank you for this wonderful video. However, I am having issue with references. I try to add them by clicking project, add references but nothing happens. even System one is not found. Is it caused by visual studio version you have used to create the project? I was able to run all previous examples by setting project path to lib folder of the project with no issue but this one is blocking me.
@jeanbaptisteminani9546 Жыл бұрын
Thanks for wonderful video. Can we display the sequence of town may be in console? I want to see different sequences.
@TutorialsWithGary Жыл бұрын
Of course :) you can use a Console.WriteLine any in the app to log to console
@jeanbaptisteminani9546 Жыл бұрын
@@TutorialsWithGary Yes... I tried this before but just wanted to know exactly where to put it. I mean, where to write this statement. I am just learning it.
@erikkokalj4 жыл бұрын
Awesome video! I was curious, which extension for VS do you use for the code formatting (eg. arrow instead of =>)?
@TutorialsWithGary4 жыл бұрын
It’s a font called FiraCode, You can find the github for it here: github.com/tonsky/FiraCode