Tuesday, October 27, 2009

FYP Presentaion

Wednesday 21st of October, on a cold wet morning 6 student were slowly roast, much to the joy of the 3 baying lecturers.
I'm exaggerating, but nobody got out of the presentation without a solid attack on there project.

Here is a copy of my slides:




















Some of the best questions I was ask at the end are;


How is this different from the traditional GP paradigm?

Why are you using genetic programming?

What sort if API's do your virtual environment's have?


I won't answer these now but they will leak out eventually.

Friday, October 23, 2009

Updated timetable

This is the updated timetable.


Milestone 1 Deciding and coding of the XML format 31st Oct

Milestone 2 Programming of Genetic logic 28th Nov

Milestone 3 First working entity 25th Dec

Milestone 4 Second working VE 17th Jan

Incremental addition of more VE's as time permits


Those of you paying attention will notice that the distributed part of the project has been dropped. Time is the main reason for this tho I hope to re-include it again before the end.


There will be a post regarding my presentation up soon.............

Monday, October 12, 2009

Code has Begun!

C++ is pouring out.
1st on the hitlist, file structure.

Monday, October 5, 2009

Timeline Change

I have started working on the ml first. This is because, while the distrubited aspect is not critical to making a prototype, the markup language is.

Expect a post with the update time table soon.

Friday, October 2, 2009

Forum Transcript

This is of little project value but I found it humours. These are the people I go to for /prog/ramming help.


C# vs C++

1

I'm not looking to start some sort of fanboy arguement.

Is the ease in development brought by C# worth more than the power/speed of C++?

I'm writing a genetic algorithim so speed is pretty important.
I can't find any legit benchmark test so I'm lookin for oppinions here.

2

OMG PONIES

3

I'm not looking to start some sort of fanboy arguement.
Now you have 2 problems.

4

Who the fuck even uses C# ? Just use sepples.

5

On behalf of C#, I have to say, that LINQ thing looks pretty interesting. But I never used it, so what the fuck do I know?

6

>>1
Is the ease in development brought by C# worth more than the power/speed of C++?
C++ has no power or speed. However, in reality, ease of development trumps both of those most of the time anyway.

But for a genetic algorithm, use C. Preferably C calls from a Foreign Function Interface of a higher level language.

7

C# is only good if you want to make money

8

>>5
I have used LINQ and can tell you it's fucking amazing. Being able to write queries directly in the language is a major advantage, and that LINQ works against many different types of things (objects, XML, SQL, Entities, etc.) is even better.

9

>>8
Does it gain you all that much over list expressions when you're not dealing with SQL? I haven't seen many compelling examples.

10

>>1
Sepples is only worthwhile for things that absolutely need the performance and would benefit from the features of Sepples, e.g. inheritance.

Games are a specific problem domain that work decently with Sepples, but that's about it. Outside of gaming, there really isn't much use in Sepples.

Almost all other languages do other functions better, e.g. C for device drivers, C#, D, Delphi, etc. for userspace, and so on.

11

>>1
I can't find any legit benchmark test
That's because no such thing exists


Thursday, October 1, 2009

Genetic Logic

What do I need this part of the system to do?
This part is where the guts of the work will take place. I need a system that can interpret my markup language and apply generational logic to it. A mutation system and a way remove the least fit from every generation.


How will it do this?
There are a few(read thousands) libraries out there for genetic algorithms. I have not decided which one I will be using, or if i will be making my own.

Further reading
http://lancet.mit.edu/ga/

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.19.1906&rep=rep1&type=pdf

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.