Monday, September 28, 2009

Markup Language

What do I need this part of the system to do?
This part is needed to force the user to translate there language into a format that my genetic logic can deal with, need to be broad enough to be able to cover most/all modern languages, needs to be easy enough to learn, needs to be efficient so that there isn't a gigantic overhead


How will it do this?
I will be creating my own style markup language. The exact style has yet to be decided. With a combination of several levels and termination sets it should work well with the genetic logic.

This is NOT a compiler, tho I will be reading compiler books and papers as the natural language processing is similar.

Further reading

Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. ('2006'). Compilers - Principles, Techniques and Tools.

Sunday, September 27, 2009

Distributed System

What do I need this part of the system to do?

Pass out the files containing all information that a system will need to run the VE and genetic algorithm. Return a log file to the master machine. Run checks to insure the others machines are accessible and how far along they are in there current generation.


How will it do this?

A simple combination of messages and acknowledgments will do for the running checks bit. FTP protocols will be used to send the Files across.
A separate tread will be need to listen for calls so that ongoing work will not be effected.

Further reading

www.code.google.com/edu/parallel/dsd-tutorial.html

Book: Optimization using distributed genetic algorithms
ISBN: 978-3-540-54148-6
Publisher: Springer Berlin / Heidelberg

Plans

As some of ye may have noticed I have split my project into three separate sections. These are the distributed logic, that will establish and maintain the external client machines, the markup language, that will be used to record the syntax of the entities language, and the genetic logic, which will do the mutation and recombination of my entities.

I'll be throwing up three posts in quick succession detailing exactly what ,why and how these sections will work.

First up, Distributed logic.

Thursday, September 24, 2009

Some Interesting Reading

http://cs.conncoll.edu/comp112-3/GA_shooter.pdf

http://www.cs.bgu.ac.il/~sipper/papabs/eurogprobo-final.pdf


There is loads more out there, I post them as I come across them. Respect to these guys.

This weekend is going to be very educating.

She's not UML but she'll do for the moment


Monday, September 21, 2009

My big crazy over the top timeline!!!!

Here is my intended timelines. I'll be posting three versions. The first will be my overly optimistic plan. The second will have slightly more realism. The third will be my emergence plan, the plan I use when everything is going tits up and I just need something that will pass me.


_______________________________________________

Plan 1

Milestone 1: Set up of distributed system: 4th Oct
Milestone 2: Deciding and coding of the XML format: 18th Oct
Milestone 3: Programming of Genetic logic: 1st Nov

Time off for exam studying.

Milestone 4: First working entity: 25th Dec
Milestone 5: Second working VE: 17th Jan

Out there ideas: Getting CStike working. Having 5 VE's. Full How-To guide. Having an external party use my system.

_______________________________________________


Plan 2

Milestone 1: Set up of distributed system: 11th Oct
Milestone 2: Deciding and coding of XML format: 1st Nov

Time off for exam studying.

Milestone 3: Program genetic logic: 25th Dec
Milestone 4: First working entity: 17th Jan
Milestone 5: Second working VE: 14th Feb

Out there ideas: 3 working VE's.
_______________________________________________


Plan 3

Milestone 1: Deciding I'm screwed. 3weeks before deadline
Milestone 2: Desperately creating genetic logic. 1.5 weeks
Milestone 3: Forcing Corewar to work with it. 1 week
Milestone 4: Manically writing report. .5 week

Out there ideas: Not failing

_______________________________________________


All these plan are subject to change depending on other events. I'll set up a widget to track how I'm going with my milestones.

Monday, September 14, 2009

Confusing? My posts? Never!

I've decided to throw up a clearer outline of what my system will do. Partly because I'll need it in a few weeks for a presentation and mostly because I'm sick of explaining it to people.

My program will be passed a potential syntax, all possible calls, cmd's for compilation of the previously mentioned syntax, IP addresses of other available machines and a virtual environment (VE). Using the potential syntax the program will genetically create AI's for the passed virtual environment.

What this means is that, my program will be able to efficiently create controller class for any object in any virtual environment. Manually creating controller classes can take upwards of a month for large and complex VE's. Even then you don't know if your result is the most efficient. My system will be structured in such a way that one person will need less than 8 hours to set it running and you are guarantied to the get the most efficient output. (eventually)

For all those still confused I'll be outting together a flow chart later.

OS Decided

The winner is..........


My rational behind this was based on the VE post.
I know all those things work on Widows platform while it could be an uphill strugle if I decide to use the others.
I'll be using 32 bit XP.

Saturday, September 12, 2009

Virtual Enviroments

In this project I'll be working with several virtual environments. The goal is to get at least two working with my system to prove it's modularity, but I hope to have three or more running by the end.

Corewar




This will probably be my first test field. It's a game created in the 80's and and tho old is still activity being played by large groups on the Internet. Two bots created in RedCode, a form of assembly, fight over the memory locations on a virtual computer. The game contains a relatively small set of commands so it will hopefully be an easy and simple environment to test my system to on.

Edited to correct glaring mistakes on my part

RoboCode



This is another game quite similar to Care War. It is of far greater complexity tho, so once I have decided the system works I will escalate it to this. The idea of the game to have two or more bots, which have been written in Java, fight. There have been several other bots for robocode written genetically so it will give me a good idea how my genetic algorithm logic compares (expect a post on this soon)


Engineering VE

For my 3rd Environment I'd like to work on a system where the fitness of the current generation was not in comparison to another. I'm currently looking to find a free VE that involves possible robotic arm movement or something similar. Preferably with industry applications. The college has a program like this is a separate research stream. I'll see what I can do about robing it.


Counter Strike 1.6



This is the most complex set up I could figure. This is only if I have time to spare towards the end of the development cycle. A relatively complex VE that would require advanced movement, action and reaction algorithms to be considered fit in. There is issues due to the waypoint technology some bots are based on, an alternative method would need to be found. A 3rd party interface like BotMans setup would also be required.

But a man can dream.



There you go. Potential Virtual Environments that I plan on testing my system with. This will probably change issues arise.