New go engine i am developing.
Posted: Fri Feb 25, 2011 7:20 pm
Hello. This is my first post on the forums. I am developing a computer go engine, mostly as a hobby, with a unique algorithm for analysis of the board.
The algorithm, essentially, relies on treating columns and rows of the board as separate objects. And the board is percieved by the computer as two separate arrays of length 9.
A move is counted as essentially a division between one row of one object. In addition, there is an additional variable to determine different colors between divisions.
The analysis of the board is essentially an additive process, with only the distance between the ne divided columns having to be recalculated with each move, while state of the rest of the data structures don't have to be reassesed.
In addition, liberties are counted as rows are divided, and subtracted on each side for every row or column of length zero(which indicates that two stones are adjacent), I scale the algorith of counting liberties for groups of dividedx rows, ad keep a hash table of the adjacent length 0 row and columns. Those that, upon an update, would reach 0 liberties, are considerex dead.
I estimate the program's strength to be about 9kyu or so. I am still in the development stage, and I may look to combine a monte carlo algorithm with the main routines as well.
Thank you for reading!
The algorithm, essentially, relies on treating columns and rows of the board as separate objects. And the board is percieved by the computer as two separate arrays of length 9.
A move is counted as essentially a division between one row of one object. In addition, there is an additional variable to determine different colors between divisions.
The analysis of the board is essentially an additive process, with only the distance between the ne divided columns having to be recalculated with each move, while state of the rest of the data structures don't have to be reassesed.
In addition, liberties are counted as rows are divided, and subtracted on each side for every row or column of length zero(which indicates that two stones are adjacent), I scale the algorith of counting liberties for groups of dividedx rows, ad keep a hash table of the adjacent length 0 row and columns. Those that, upon an update, would reach 0 liberties, are considerex dead.
I estimate the program's strength to be about 9kyu or so. I am still in the development stage, and I may look to combine a monte carlo algorithm with the main routines as well.
Thank you for reading!