GA fun

posted in Perpetual Alpha
Published April 11, 2008
Advertisement
Very long time without a post. In college now, doing computer science. Coming to the end of the second year of the course. Fun, fun, fun. But what I really want to talk about is my end of year project that me and a few guys got permission to do and are currently working away on. I'm really excited about this, it's working out much better than I'd hoped.

The project abstract is "To determine the applicabilty of genetic algorithms to the solving of real world phyisical problems". We reduced the problem by choosing to create support latices for structures under complex sets of forces, and then further reduced it for demonstration purposes by creating support latices for bridges, to show some real world application.

So, I think this is really cool. We're currently working away on the systems required to allow us to experiment with the genetic algorithms themselves. Myself I've been developing a distributed network system for processing a scenario. Others have been working on the GUI / Editor and the physics simulator.

We're using XNA in WinForms for presentation, mostly because of the handiness of the content pipeline. The physics is being handled by the Farseer library, though that's requiring some tertiary research into materials to solve problems relating to correct coefficients for materials' properties. And my section, the evolver, is just stright C#. It takes an initial scenario, a specified genetic algorithm script and sorts out all the processing, returning the most successful structure back to the GUI to be presented.

There are a few things I've discovered in the .NET framework that have made everything so much more pleasurable. The XmlSerializer has made developing and implementing a network protocol trivial. The reflection capabilities make deserializing polymorphically a non-issue. I can later swap this out with binary serialization to reduce network traffic, or implement my own formatting without having to change anything in the code that uses the protocol.

The GAs themselves are written as C# script files. Again, I was very pleasantly surprised by how easy it is to compile code stored in memory and load the resulting assemblies, with full error reporting.

I'm not sure how successful we are going to be in creating a GA to solve this problem. The fitness function for how a structure performs is going to be extremely tricky. But no matter I can't wait to dive into that section of the project.

The GUI is coming along nicely, hopefully I'll have screenshots soon, and I very much hope updates on how developing fitness functions are coming. Yes, definitely screenshots soon.
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement