Page 2 of 2

Re: How long would it take for a novice to be able to progra

Posted: Tue Sep 29, 2015 10:54 pm
by d180cf
I came up with the same idea half a year ago: to write a strong tsumego solver and use it in sites like goproblems. At that moment I estimated the task as "rougly two days of work to implement a basic depth-first search and another day to make it handle ko fights" and I had good reasons to think so: I had exceptionally solid math, computer science and programming background. Today, after half a year of study, I have only realized that this task at the edge of my mental ability (I made the "wtf? this stone's disappeared!" -> KGS 1 dan path in 8 months) and I'm barely able to comprehend algorithms that are necessary to write a decent (not a top notch, just decent) tsumego solver. This is just to give you an idea how hard this task is :)

I highly recommend to not spend time on learning any programming language at the moment - that's the simplest and the least significant part of the task. Learn how search on graphs work: start with basic best-first and depth-first search algorithms and advance to the lamda depth-first proof-number search that handles repetitions (lambda df-pn(r)). Read the Kishi's PhD thesis about tsumego solvers and the Martin Muller's paper about lambda df-pn(r):

http://www.is.titech.ac.jp/~kishi//pdf_ ... thesis.pdf
www.ijcai.org/papers07/Papers/IJCAI07-387.pdf

I also recommend to take a look at machine learning / neural networks. Even if you don't find it directly applicable to the tsumego solvers, it will let you look at existing problems at an entirely new angle:

arxiv.org/abs/1412.3409
en.wikipedia.org/wiki/Backpropagation

Re: How long would it take for a novice to be able to progra

Posted: Wed Sep 30, 2015 7:02 am
by Mike Novack
d180cf wrote:
I also recommend to take a look at machine learning / neural networks. Even if you don't find it directly applicable to the tsumego solvers, it will let you look at existing problems at an entirely new angle:
This is why I think we are only in the "infancy" days with neural nets and go and have no idea how far we can get with this approach to a go playing program.

1) We know that (simply) training to predict "the move an expert would make" can at least play the game an not too shabbily.

2) I don't know if anybody is yet working on a neural net "tsumego solver" and I don't think all by itself could even play go.

3) But the training of neural nets involves "annealing" (repeated slight disruption of cell values, like a "mild stroke" followed by retraining --- how to escape from a "local summit" in the learning surface. What if "tsumego training" were used as the "annealing disrupter" in "expert prediction" training.

4) Not to say that there aren't other possibilities.