Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
2005 Xmas holiday AI challenge
#1
2005 Xmas holiday AI challenge

Write a BASIC solver for the well-known tangled net problem.

This is a quite manageable exercise in artificial neural network coding,
see for instance:

http://www.generation5.org/content/2002/kdjava.asp
http://www.generation5.org/content/2004/aiSomPic.asp ( under "1) Grid Layout" )
http://fuzzy.cs.uni-magdeburg.de/~borgel.../somd.html
http://www-ti.informatik.uni-tuebingen.d...enApp.html
http://www.shef.ac.uk/psychology/gurney/...3_3_3.html

Contrary to popular belief, building a neural net in BASIC doesn't
necessarily lead to a twisted mess.

My own skewed FB version is here, the source will be released after
there's been some competition:
http://home.graffiti.net/vspickelen:graf...wirwar.zip
(sorry, windοws .exe only)


The rules are very plain:

Your program must use Kohonen's self-organizing feature map to
straighten out the net:
http://www.cis.hut.fi/projects/somtoolbo...ithm.shtml

(Of course, any other genius invention that does the job is welcome.)

Kohonen's method supposedly emulates the unsupervised learning of
the brain in an elegant, extremely simple manner.

So in this case, the simplest readable code is regarded the highest.
Ideally, it should run on the qbasic 1.0 interpreter.

If you haven't got clue-one where to begin, or thinkin's too much toil,
this Idiot's Guide to NN has code that only needs to be stitched together:
http://richardbowles.tripod.com/neural/k...ohonen.htm

schene Ferien,
vspickelen
Reply
#2
:o that makes no sense to me.. but i didnt read any of the docs either ;P

looks kewl tho!
Reply
#3
Sweet! A chance for me to finally learn NNs and show it. If only I knew how. I've been trying to learn these for months. I love that site you pointed me to though. I'll be reading that extensivly.
quote="Deleter"]judging gameplay, you can adaquately compare quake 4 with pong[/quote]
Reply
#4
Y're all very welcome of course, but I want some contenders...or else pretenders.
I mean, t'were nice if someone builded a fake solver, posted only the .exe,
it would've been my private challenge to find out if the thing had any brains at all.

Remember guys, this could be your 1st step on the way to mastering true AI!
vspickelen
Reply
#5
I'm very interested. This would be my very first NN. I'll see what I can come up with. Though I'm still confused about the whole SOM thing.
quote="Deleter"]judging gameplay, you can adaquately compare quake 4 with pong[/quote]
Reply
#6
Since my holidays are nearly over and I won't be able to monitor the here
proceedings anymore, it's time to close this challenge-with-no-entries.

As a New Years Gift to all would-be contestants out there,
I present this link to some neural networks and cellular automata code
dug up from my deep & dark QB vaults specially for this occasion.
All sources have been freshly updated to utilize the power of mighty FreeBasic.
http://home.graffiti.net/vspickelen:graf...index.html

The source for the WirWar.exe Tangled Net solver is added to
subdirectory Grids\Kohonen in:
http://home.graffiti.net/vspickelen:graf.../Grids.zip

Interested readers may want to follow this enthralling thread, in which
an ambitious young programmer is patiently guided towards producing
a working FreeBasic NN backpropagation program - to sadly falter only
at a pace-length's distance from reaching his goal:
http://forum.qbasicnews.com/viewtopic.php?t=11193

Best wishes,
vspickelen
Reply
#7
I'm still confused about how this works. It may take me another week to get my entry in if that is ok.

I got to ask you for three hints: How many dimensions are being inputed into the SOM, and what is the input supposed to be? What is the output supposed to be?
quote="Deleter"]judging gameplay, you can adaquately compare quake 4 with pong[/quote]
Reply
#8
Hulloder,

In this case, both input and output are two-dimensional.
Input is a set of coordinate vectors { (x0,y0), (x1,y1),..., (xn,yn) },
output is the position of each input vector in the SOM-model,
thus another set of coordinates, artfully displayed on the screen.
So there isn't much happening, which is why this is perfect for
judging the performance of your SOM implementation.

Good luck!
vspickelen
Reply
#9
So the input will always be the tangled up net, and the output should slowly become an untangled one? Also, are the coordinates a value between -1 and 1? Or can they be any number?
quote="Deleter"]judging gameplay, you can adaquately compare quake 4 with pong[/quote]
Reply
#10
If you feed it random vectors, a well-behaving SOM will distribute them evenly over its 'model space'.
If you feed it grid coordinates, it will do the same, with the additional comfort for the programmer of being able to display the connexions easily.

But whichever method you choose, you must always first normalize the input, i.e. bringing all coordinates in the range [-1, 1].

So, go either way.
vspickelen
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)