Viking
Viking and Valkyria are computer go programs that are written by Magnus Persson (Zapp on KGS). Currently Valkyria often play on KGS. Check KGSBotRatings for the current rating on 9x9, and KGSBots for more info about bots!
Viking 4
This older version of Viking uses a very complex full board evaluation function to find good moves. The evaluation function and move generation rely heavily on 1000's of handmade patterns.
14 Mar 04: Was able to connect to KGS with kgsGTP.
Viking 5
Since it was very hard to improve Viking4 I decided to try the monte carlo approach that seems very popular among new bot writers on KGS. Thus Viking5 is a new program but uses a lot of code from Viking 4. I added some extra knowledge about eyes and simple ladders to improve the basic MC algorithm and it started to play quite well. It also uses alfa beta full board search which gets to 2-3 ply on 9x9 in the 30 seconds it uses per move.
It has a fuseki library for 9x9 and 7x7. I add test games and games from KGS to the library. If you beat it, it will learn which moves are good and bad. There are more than 15000 games in the library but most of them are from test games against other bots and has a strong tendency to repeat the same moves over and over again.
The 7x7 fuseki library consists on more than 200 games, with human players only. It is interesting because it is probably possible to develop a strong fuseki library with just a few 100 games. If you play white with the default 7.5 komi it is difficult to win. Note that the correct komi is probably 9.5 for 7x7. This mean that playing black against Viking with the standard 7.5 komi gives you an advantage. If you play white with correct or reduced komi on the other hand I think it is much more of challenge.
Previously Viking5 was very weak with big boards. In january I added a pattern database for move ordering and a system to avoid moves inside territory. This means it plays much stronger on big boards How much is still unknown. It might also be slightly stronger on 9x9 but I do not think it is much of a difference.
3 Feb 05: Viking5 is tested on KGS for the first time.
2 June 05: Fuseki library for 9x9 added!
10 July 05: Second place in the Open 9x9 CG KGS Tournament. http://www.gokgs.com/tournEntrants.jsp?sort=s&id=104
12 July 05: Fuseki library for 7x7 added!
5 August 05: Updated fuseki libraries with new games. IMPORTANT! Some minor tactical improvements. Currently I cannot use KGS games with undo in them so if you want your games to improve viking you should not use undo.
8 August 05: I decided to simplify the code and remove some old stuff. In that process I must have deleted some severe bugs, because the playing strength against Gnugo increased more than anything I did for a long time. Hint to all programmers: best way of improving the program is to delete old code ...
4 September 05: Split first place in the Formal Division 9x9 CG KGS Tournament. http://www.gokgs.com/tournEntrants.jsp?sort=s&id=118 In this tournament I was able to use a 3 Ghz P4 rather than my laptop. The long time controls also favored viking5.
6 November 05: Split fourth place in the 8th Formal Division CG KGS Tournament. http://www.gokgs.com/tournEntrants.jsp?sort=s&id=131 The fuseki library was of no use against the stronger programs. I was running on my 1.7GHz laptop so Viking was weaker and the competition was tougher than ever.
6 December 05: Updated fuseki database with KGS games from November. Thanks to all who played on 7x7!
4 January 06: Viking5 now has proper pattern based move ordering. This improves playing strength on 13x13 and 19x19 a lot.
8 January 06: Fourth place in the 10th Formal Division CG KGS Tournament. http://www.gokgs.com/tournEntrants.jsp?sort=s&id=144 The new version played very strong but it lost a game because of an obscure bug when it resigned instead of passing. The bug was easy to fix.
5 Febuary 06: Second place in the 11th Formal Division CG KGS Tournament. http://www.gokgs.com/tournEntrants.jsp?sort=s&id=150 The first tournament on 13x13. I am happy with how Viking played.
19 Febuary 06: I disabled undo for Viking, because a) The 9x9 rating suffers from people abusing undo b) I cannot use game records where undo was used for the fuseki library.
6 March 06: Viking5 now also plays on the ComputerGoServer for 9x9 go. It is currently on the top of the rating list. It is my laptop which plays these games which means it plays stronger than the computer I use for KGS games.
23 March 06: I created a new fuseki library for 9x9 since the old one contained too many games with bad moves.
6 August 06: First place playing 13x13 in the 17th Formal Division CG KGS Tournament. http://www.gokgs.com/tournEntrants.jsp?sort=s&id=211 I sacrificed evaluation accuracy for deeper search, and a little luck helped as well
16 August 06: Fixed a bug for KGS where Viking would never stop thinking in extreme blitz games with Byoyomi.
Valkyria
For a longer time I have been working on a complete rewrite from scratch designed for Monte-Carlo go. I have two versions of Valkyria. One uses alpha-beta search that uses MC-evaluation of terminal nodes. The second version, Valkyria_UCT, uses UCT to select variations to expand the search tree with. UCT is used by Stonecrazy and Mogo which are two of the top programs right now on small boards. Valkyria_UCT appears to search more effectively than the alpha-beta version which has no transposition table yet. The code for UCT is very simple and it appears difficult to compete with it using alpha-beta, unless one has a very good move ordering. UCT seems to search the principal variation more deep than alpha-beta does. This is risky, but it seems to work.
20 Aug 06: Bug fix: The simulations used a komi of 0.5. New feature: Parts of he search tree is reused for the next movegen. In forced sequences almost the whole move tree can be reused.
29 Aug 06: A lot of new code: Valkyria_UCT has been updated with some basic move selction heuristics which improved the strength a lot. I also added detection and deletion of symmetric moves, so that it searches deeper early in game. Also the search tree now is saved to files for early opening positions which can be reused in later games. The GTP client is threaded which allows Valkyria to Ponder when the opponent is thinking. With these changes Valkyria_UCT has gained about 300 rating points on the ComputerGoServer.
11 Sep 06: A simple system for making an opening book has been added. The main goal is to increase the variety in the early opening and secondary to avoid really bad moves. I have started to add tactical knowledge to the simulation code.
24 Sep 06: I finally implemented a rudimentary ladder reader which will be tested as Valkyria_UCT5 on CGOS. I also realized that my laptop was overheating when the CPU used 100%, which made it drop down 1/3 in speed. I have now inproved airflow and reduced amount of pondering done, so that temperature may stay reasonable.
26 Sep 06: After a little more than 100 games on CGOS, Valkyria is now competing with MoGo on the top of the list. I have trouble giving Valkyria 2 stones handicap on 9x9.It also beat me once with 5 stones on 13x13.
2 Okt 06: Finally Zobristhashing for SuperKo-detection is implemented. I reintroduced some more selective search in Valkyria_UTC6 which might have increased the strength. Valkyria can now connect to KGS and seem to do well against Kyu-players. It has won almost all games on 7x7.
25 Okt 06: Valkyria has now played over 1000 games on the new KGS server. The rating has changed so one cannot directly compare the ratings from the old KGS. I now write that Valkyria is 8 kyu, but I will probably change this soon if it keeps beating players stronger than that.I think it wins many games because of a surprise effect.Many players lose the first game but win the second.