AI: GAI.NET Demo
Sunday night brings a relaxing time to collect my thoughts. There are some old James Bond movies on some cable station that are on in the background, but I'm focused on math. I'm finally feeling MUCH better. I still have a bit of a cough and sore throat, but I'm doing better. I took the day off sick from work on Friday after feeling really weak (the worst I'd been in the last three weeks).
Anyways, I'm making progress on GAI.NET (the .NET Genetic Algorithms Workbench). I have given a copy to The Sunshine Band Leadman (if after looking at his name you have to ask, don't because that's the way uh huh, uh huh I like it) to review and have gotten a good number of comments already. Additionally, I've wanted to show this beast to the core members of Wisconsin INETA as they have all expressed both interest in the application and a willingness to help with testing of the application. I asked my friend and well-connected organizer Gerry to put together a lunch to show GAI.NET to this group.
Last Thursday, we met at Fuddruckers in Brookfield, WI. After the usual gorging of charred animal flesh, I was able to give a brief demo of the application. In attendance were: the lower cased one, Gerry Heidenreich, Scott Isaacs (no, not the MSN guy, but Milwaukee's very own), Travis Feirtag, Dan Bartels (new to the Telligent team), Chad Albrecht, John Mitchell (who still needs a blog), and Kay (don't know her last name; new to the INETA group; the newest member of the Web Development staff at WHD; don't know if she's got a blog, but she needs one if she doesn't, because she asked some smart questions during the demo). If I forgot anyone, I apologize (recall I was still foggy from being sick that day). Conspicuously missing were Damon Payne (who found out at 10:00am that day), Marty Garins (I don't think anyone told him) and Sean McCormack (He's been busy with moving to a new house and being a beer software architect; Great Test, Less Coding).
I did a 10-minute explanation of Genetic Algorithms to the group (wow, 10 minutes and everyone got it). Travis had a new Tablet PC, so I used that to draw cool pictures during the explanation. Nice Tablet, but I can't remember the brand/model or anything else. It had a nice contrast ratio and responded nicely when using OneNote. I draw lousy two dimensional scatter plots and line graphs, but they looked OK on this Tablet. My representation of the population and genotype and phenotype looked good (from my angle) and no one seemed to complain.
I then did a walkthrough of GAI.NET on the lower cased one's portable because I was too lazy to bring in my own (and his has a 17 inch screen for easy demos). I demonstrated a canonical Genetic Algorithm, i.e. an optimization problem for which the answer is known and should be found by the GA in a short period of time. For this example, I chose {max f(x) = x^4 : x ε [0,1]}. The answer is obviously 1.0, but the GA doesn't know this fact. After showing the basics of GAI.NET to the group, we walked through GAI.NET and attempted to get the answer. For each run (experiment), it took less than 15 generations on a population size of 100 to arrive at the answer. Surprisingly, GAI.NET held up well and didn't crash. There were a number of questions, but two stuck out in particular. The first was from Scott who asked if he should throw out everything he learned in college regarding mathematics and problem solving and real analysis other approaches. My answer was no as the GA is not a universal solver, but a competent solver on certain classes of problems. The other question came from Kay, who obviously didn't have a background in GAs, but she asked if it were sensible to break problems up based on the maximization and minimization problems. So she immediately understood that the GA could optimize based on a single function, but wondered whether a multi-objective function was possible, and whether the use of multiple GAs on different aspects of a problem was useful. Yes and yes to those questions. There is a good deal of research on these topics.
If you want to learn more about GAs, get a copy of Dr. David Goldberg's book Genetic Algorithms in Search, Optimization and Machine Learning (a.k.a. GASOML). There are other GA books, but this is the best in my opinion.
I'll be releasing GAI.NET shortly.
Please feel free to contact me here if you have questions or comments or are interested in GAI.NET in beta previous to its release.