Monday, March 30, 2009

version 1.17

While testing the future version using GnuGo as a base program to handle the game, I could unveil a major bug in the way games were handled up now. During the transcription of the board, the program would set the value of any given intersection to the same number regardless of the color played. This would lead to the same decision fo black and white players, which is obviously generally wrong. Here is the new version cerrecting this : 

Saturday, March 28, 2009

Goia for GnuGO

I have tweaked GnuGo to allow it to run goia players. It is only working on windows for the moment, I will first find a way to use it for the tournaments, and then adapt it to linux.

Here is the program, see attached readme for information about what has been added: 


For more informations about GnuGo, see the main website: GnuGo Documentation

Thursday, March 26, 2009

Version 1.16

This version changes the description of the players, so this update is mandatory. 

I have changed the way neural input are described in the program, from std::vector<> to std::map<>. It allows to remove unused inputs without corrupting the network. This was necessary because much of the disk space occupied by the players was unused inputs. A couple of mutation bugs have been corrected also.


I am almost done making goia compatible with GnuGo. This weekend I should release a gnugo/goia version, I will do my best to release a linux version also.

Sunday, March 22, 2009

Another major bug fix

/edit : another bug corrected, prevent another kind of crash, v1.14.4

Correcting the previous bug, I saw another one, leading to some weird scoring, ergo probably making the selection not very relevant.

I beg you to keep silent to my boss about the reliability of my release, and please use now this version :

Version 1.14 : putting an end to the hyper-inflation

/edit : upgraded to 1.14.1 due to a major bug introduced in the previous release...

As you may have seen this week, the overall population has grown to a point where it became very slow. It would be ok if the increasing size came with an increased complexity of the players, but it was not the case. What happened was that, to strengthen some connections, the neural network made additionnal connections between neurons instead of increasing the weigth of the existing connection. It led to a neural network where connections where duplicated up to 10 000 times. I think it happened on the 9x9 program because of the limited number of neurons and goban input, which makes duplicating connections more easy. I have added a cleaning function to the program, removing those extra connections and replacing them with one strong connection.


It works far better now, at least on my computers.

I won't be able to deliver a linux version though, I tried to make some cleaning in my project I can't get it back to a working version. I am currently working on adapting the whole thing to GTP, using GnuGo functions for go rules enforcement and scoring. It will be far easier to maintain when it will work, and will bring many interesting functionalities.

However, for the moment, here is what I suggest :
  • for windows users, download the new program and run it as usual : Goia 9x9 1.14.1 for Windows.
  • for linux users, probably the most effective way of running the program will be to erase every players on your local drive, and continue running 1.13. As long as there is enough windows client running in parallel, the players will be cleaned regularly and there should not be the same kind of inflation as we saw last week. I hope I will be able to realease a GTP version in two weeks from now, and this one will be rather easy to compile for linux.

Saturday, March 14, 2009

GOIA opens

This quick note to say I published the source of the program on google code. Anyone is welcome to help, share and give his opinion about the design. In advance, sorry to anyone bold enough to take a peek : it is not very good programming, and to top it all, it is written in french.

Friday, March 13, 2009

Playing against GOIA

Here is some instruction and download material to help you set up a game against one of your favorite players. It only works on windows currently, and one might find it cumbersome, thats yet another feature to improve.

Here is the way for the moment :

  1. Download and unzip the opengo binary client.
  2. Copy the player you want to play against in your c:\ drive as "c:\joueur.gop" (that's the cumbersome part).
  3. Launch opengo.exe.
  4. Create a new game, chosing "person" as white or black and GOIA or GOIA9 as the other player, with a board size respectively 19x19 or 9x9. The player you put in your disk must match the kind of game played.

Unfortunately, opengo has some bug left, and any configuration involving 2 artificial players don't work, so you won't be able to watch GOIA play against himself, or WALLY, or any other computer.

Wednesday, March 11, 2009

Version 1.13

The release of the 9x9 version was the occasion to reveal a couple of bugs. One of them was a major bug causing the program to crash or the player to become corrupted when deleting a gene composed of more than one neuron. This is the reason why the players evolved in the 19x19 version are made with 1 neuron genes. I was thinking it was for some obscure performance reason.

So here it is, version 1.13 with a few bugs fixed, should be far more stable especially concerning the 9x9 version :

(/edit : corrected link to 9x9 for windows)

GOIA for Windows, 19x19
GOIA for Windows, 9x9

GOIA for Linux, 19x19
GOIA for Linux, 9x9

Monday, March 9, 2009

9x9 version

As I have been told, go is hard enough that I should not start by trying to train a good 19x19 go player. This is undoubtedly wise, and very probably true. Whereas I still think that in an evolutionary approach, evolution is not linear thus evolution time does not grow exponentially with size, it can only be faster on a 9x9 board compared to 19x19 board. And I really don't have much to lose in the process of starting anew with 9x9 players.

So, here you are with the new goia program for 9x9 boards :


Note that this version should not be installed in the same folder as the 19x19 one since players have the same name on the local drive. Hope this will save everyone some valuable memory too.

Sunday, March 8, 2009

Version 1.12 available

Here is the new version of the program :

------------------------------------------------
v1.12
Changed : neuron inputs are now removed if no longer used and if their removal doesnt affect overall coherence of the neural network
Changed : endgame score is now used to sort player with the same number of victories in the tournament
Bug fix : only players 0 to 29 are now used on the distant server.

GOIA 1.12 for windows

GOIA 1.12 for Ubuntu-LINUX

Progress so far

The program has been running for about two months on various computers. Despite the numerous updates, the process involved has stayed quite the same across all versions. I will try to keep track of the advance of my players every two weeks from now, starting today. Each time I will dowload the players on the server, put them in "ThePit" with some of the past winners, and see who finishes first after a few generations (ThePit is a closed ecosystem where player mutate but dont travel). I will then examinate the winner. The evolution is followed using three criterions :

  • Genealogy : Each player keeps track of every places he has been through and how long he has stayed in each place. This gives an indication about how old any given player is, although there is no guarantee that this is directly linked to its ability to play go. It is also a good way of letting everyone know wether their work has been useful or not.
  • Size : The size of each player tends naturally to shrink since every mutation is skewed toward the disappearance of neurons versus creation of new ones. Beside, whereas this is meant to change soon, until now ties in tournament points were discriminated considering the size on disk to reflect the cost of having a big neural network. Increasing size is consequently a sign that positive mutation occured.
  • Actual play : I play regularly against the winner of the final tournament. For the moment, I play by myself, I have never had any difficulty so far to beat the players, I rather try to see how the player is trying to win. There will soon be a way to let it play against other computer programs using Go Text Protocol. I will try to let you know about any interesting features the players are showing up.

And the winner is...

Weigth : 2.112 ko
Age : 710 generations

Welcome to Madison, and thanks to StIsmier/BuenosAires who made a great start only one week ago. If you wonder, the "." are linux players who start the program from the folder where it is situated using the command "./goia_ecosysteme.1.11.1". 

As for go skill ability, they are close to zero thus far, whereas not zero since it consistently beats random. It manages to make a few eyes and don't play in them. It seems at first glance weaker than the players from a few weeks ago. Interestingly, it plays lines, I can't figure why... Here is a game exemple, I am playing black and GOIA is playing white :