Re: [Computer-go] What's a good playout speed?
I suspected you'd say something like this. ;) It is definitely on my list of things to steal a few things from Michi. But maybe I'll start with simpler and/or well defined things like RAVE or the hand picked MoGo 3x3 patterns. That way it's easy to see if I really screwed something up. The bot is still rather weak so adding some of those features should really improve the strength. How many playouts (per move) does 'stop_0.9-2b??? do? 0 (none, zero, keine, geen) (to clarify: it is _not_ doing a monte carlo search) Folkert van Heusden -- www.vanheusden.com/multitail - win een vlaai van multivlaai! zorg ervoor dat multitail opgenomen wordt in Fedora Core, AIX, Solaris of HP/UX en win een vlaai naar keuze -- Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Sat, Mar 28, 2015 at 11:51 AM, Petr Baudis pa...@ucw.cz wrote: On Sat, Mar 28, 2015 at 11:45:48AM +0100, Urban Hafner wrote: Good to know Petr! Where does the strength come from? Sophisticated playouts or a search algorithm or both? Frankly, I don't know for sure! The downside of Michi's slowness is that playtesting takes too many resources so configuration performance exploration is awkward. But my guess based on ad hoc tests during the development is that the contribution of basic playout heuristics and RAVE+priors may be about 1:1 (with large pattern priors giving further extra boost). Now that I have a bit of time again, what would be a good starting point to improve upon UCT and light playouts? RAVE definitely comes to mind, as well as enhancing the playouts with heuristics like the MoGo 3x3 patterns. Are there are any good papers on adding priors to the search tree (and where the underlying data is coming from)? I'm sure there must be, but I think I just don't know how to search for it. Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Urban Hafner: cahmxpnnkr-ixqou4stxi_dfojfhj7j_qccj_duit6uqw4o8...@mail.gmail.com: On Sat, Mar 28, 2015 at 11:51 AM, Petr Baudis pa...@ucw.cz wrote: On Sat, Mar 28, 2015 at 11:45:48AM +0100, Urban Hafner wrote: Good to know Petr! Where does the strength come from? Sophisticated playouts or a search algorithm or both? Frankly, I don't know for sure! The downside of Michi's slowness is that playtesting takes too many resources so configuration performance exploration is awkward. But my guess based on ad hoc tests during the development is that the contribution of basic playout heuristics and RAVE+priors may be about 1:1 (with large pattern priors giving further extra boost). Now that I have a bit of time again, what would be a good starting point to improve upon UCT and light playouts? RAVE definitely comes to mind, as well as enhancing the playouts with heuristics like the MoGo 3x3 patterns. Are there are any good papers on adding priors to the search tree (and where the underlying data is coming from)? I'm sure there must be, but I think I just don't know how to search for it. For prior values in the tree, almost(?) all strong programs use Remi's method these days. http://remi.coulom.free.fr/Amsterdam2007/MMGoPatterns.pdf Hideki -- Hideki Kato mailto:hideki_ka...@ybb.ne.jp ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Tue, Apr 7, 2015 at 12:56 PM, Petr Baudis pa...@ucw.cz wrote: Hi! On Tue, Apr 07, 2015 at 12:03:12PM +0200, Urban Hafner wrote: Now that I have a bit of time again, what would be a good starting point to improve upon UCT and light playouts? RAVE definitely comes to mind, as well as enhancing the playouts with heuristics like the MoGo 3x3 patterns. Well, my suggestions would be in the form of Michi (and its git history). ;-) I suspected you'd say something like this. ;) It is definitely on my list of things to steal a few things from Michi. But maybe I'll start with simpler and/or well defined things like RAVE or the hand picked MoGo 3x3 patterns. That way it's easy to see if I really screwed something up. The bot is still rather weak so adding some of those features should really improve the strength. Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Tue, Apr 7, 2015 at 12:20 PM, Hideki Kato hideki_ka...@ybb.ne.jp wrote: For prior values in the tree, almost(?) all strong programs use Remi's method these days. http://remi.coulom.free.fr/Amsterdam2007/MMGoPatterns.pdf Thank you! I will put that one on my reading list! Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Hi! On Tue, Apr 07, 2015 at 12:03:12PM +0200, Urban Hafner wrote: Now that I have a bit of time again, what would be a good starting point to improve upon UCT and light playouts? RAVE definitely comes to mind, as well as enhancing the playouts with heuristics like the MoGo 3x3 patterns. Well, my suggestions would be in the form of Michi (and its git history). ;-) there are any good papers on adding priors to the search tree (and where the underlying data is coming from)? I'm sure there must be, but I think I just don't know how to search for it. Basically, you can either do progressive widening / unpruning / bias. The terminology is rather confusing. In case of progressive bias, you can either initialize the winrate with N wins (positive bias) and M losses (negative bias) with N and M determined by various heuristics (Fuego, Pachi, Michi use this), or have (1-alpha)*winrate + alpha*bias with bias being a hypothetical winrate determined by the heuristics and alpha: 1 - 0 as #simulations: 0 - infty (e.g. alpha=sqrt(c/n) or some other random formula like that). I know about no good survey papers personally. On Tue, Apr 07, 2015 at 07:20:37PM +0900, Hideki Kato wrote: For prior values in the tree, almost(?) all strong programs use Remi's method these days. http://remi.coulom.free.fr/Amsterdam2007/MMGoPatterns.pdf Do you mean all the strong programs do progressive widening? -- Petr Baudis If you do not work on an important problem, it's unlikely you'll do important work. -- R. Hamming http://www.cs.virginia.edu/~robins/YouAndYourResearch.html ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Petr Baudis: 20150407105648.gp6...@machine.or.cz: On Tue, Apr 07, 2015 at 07:20:37PM +0900, Hideki Kato wrote: For prior values in the tree, almost(?) all strong programs use Remi's method these days. http://remi.coulom.free.fr/Amsterdam2007/MMGoPatterns.pdf Do you mean all the strong programs do progressive widening? No. I meant that strong programs use prior in various ways (just an initial value for a move, for example) but (almost) all use Remi's method to compute the prior. Hideki -- Hideki Kato mailto:hideki_ka...@ybb.ne.jp ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Apr 7, 2015, at 4:34 AM, Urban Hafner cont...@urbanhafner.com wrote: I suspected you'd say something like this. ;) It is definitely on my list of things to steal a few things from Michi. But maybe I'll start with simpler and/or well defined things like RAVE or the hand picked MoGo 3x3 patterns. That way it's easy to see if I really screwed something up. The bot is still rather weak so adding some of those features should really improve the strength. How many playouts (per move) does 'stop_0.9-2b’ do? Christoph ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
I suspected you'd say something like this. ;) It is definitely on my list of things to steal a few things from Michi. But maybe I'll start with simpler and/or well defined things like RAVE or the hand picked MoGo 3x3 patterns. That way it's easy to see if I really screwed something up. The bot is still rather weak so adding some of those features should really improve the strength. How many playouts (per move) does 'stop_0.9-2b??? do? 0 (none, zero, keine, geen) Folkert van Heusden ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Tue, Apr 7, 2015 at 4:04 PM, Christoph Birk b...@obs.carnegiescience.edu wrote: On Apr 7, 2015, at 4:34 AM, Urban Hafner cont...@urbanhafner.com wrote: I suspected you'd say something like this. ;) It is definitely on my list of things to steal a few things from Michi. But maybe I'll start with simpler and/or well defined things like RAVE or the hand picked MoGo 3x3 patterns. That way it's easy to see if I really screwed something up. The bot is still rather weak so adding some of those features should really improve the strength. How many playouts (per move) does 'stop_0.9-2b’ do? I wouldn't know, Christoph. My (and Igor's) bot is called Iomrascálaí. :P It's running as the various Imrscl-XYZ bots on CGOS due to the username length restriction and the fact that the current CGOS can't handle Unicode characters. This bot however does around 4.5k pips on 9x9 and 1k apps on 19x19 running on a 2,2 GHz Intel Core i7 (6 months only MacBook pro). The versions on CGOS run using 8 threads and I get a speedup of about 4.5x. Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Apr 7, 2015, at 7:16 AM, Urban Hafner cont...@urbanhafner.com wrote: I wouldn't know, Christoph. My (and Igor's) bot is called Iomrascálaí. :P It's running as the various Imrscl-XYZ bots on CGOS due to the username length restriction and the fact that the current CGOS can't handle Unicode characters. This bot however does around 4.5k pips on 9x9 and 1k apps on 19x19 running on a 2,2 GHz Intel Core i7 (6 months only MacBook pro). The versions on CGOS run using 8 threads and I get a speedup of about 4.5x. thanks, I agree 1400 is about as far as simple UCT will get you. My simple UCT implementation (myCtest-xxk-UCT) gets about 1200, but it does not do any adjustments to the number of playouts per move depending on the time remaining, so I have to limit it to 40k playouts per move. Have you thought about using the partial tree of the previous move as a bias? Chrisoph ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
It doesn't matter with simple UCT, but it's a huge difference when you have more targeted playouts because you can find a subtree you really like and spend 99%+ of your time exploiting that particular line (for example, not dying in one move). I see Fuego re-use most of its existing tree on a 9x9 almost every move. On 2015-04-07 11:16, Urban Hafner wrote: On Tue, Apr 7, 2015 at 4:44 PM, Christoph Birk b...@obs.carnegiescience.edu mailto:b...@obs.carnegiescience.edu wrote: thanks, I agree 1400 is about as far as simple UCT will get you. My simple UCT implementation (myCtest-xxk-UCT) gets about 1200, but it does not do any adjustments to the number of playouts per move depending on the time remaining, so I have to limit it to 40k playouts per move. Have you thought about using the partial tree of the previous move as a bias? You mean keeping the subtree and not starting from scratch every time? That sounds interesting, but I don't think it would lead to a huge strength boost. But I guess I may give that a try. Pondering on the opponent's time would be the natural follow up for that of course. Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Tue, Apr 7, 2015 at 4:44 PM, Christoph Birk b...@obs.carnegiescience.edu wrote: thanks, I agree 1400 is about as far as simple UCT will get you. My simple UCT implementation (myCtest-xxk-UCT) gets about 1200, but it does not do any adjustments to the number of playouts per move depending on the time remaining, so I have to limit it to 40k playouts per move. Have you thought about using the partial tree of the previous move as a bias? You mean keeping the subtree and not starting from scratch every time? That sounds interesting, but I don't think it would lead to a huge strength boost. But I guess I may give that a try. Pondering on the opponent's time would be the natural follow up for that of course. Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Can you put in the game description: really bad, only play if you're patient and put in quicker time controls? s. On Mar 28, 2015 3:25 PM, hughperkins2 hughperki...@gmail.com wrote: You can name name a specific opponent, and then your bot will play against it. Automatch works, but tends to result in lots of people being forced to play your bot, and then leaving the game, after the bot took ages to play in some ridiculous location, which is kind of embarrassing :-P ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
You can name name a specific opponent, and then your bot will play against it. Automatch works, but tends to result in lots of people being forced to play your bot, and then leaving the game, after the bot took ages to play in some ridiculous location, which is kind of embarrassing :-P ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
I can offer you a factor of 2 speedup... s. On Mar 28, 2015 7:59 PM, hughperkins2 hughperki...@gmail.com wrote: By the way, for mcts you dont need time controls. Each move takes the same amount of time, since you just do n playouts, and choose n as you like. I think my playouts took 2s, which was enoufht for 4 playouts i suppose, but it was in novemebr, dont remember clearly... It was obvious that adding more playouts didnt increase the strength libearly, more like logarithmically, or, at best as the square root, and i dont want to program heursitics by hand, not going to get a papet out of that :-) The atari paper looks interesting. Kind of dabbling in that a bit... By the way, for mcts you dont need time controls. Each move takes the same amount of time, since you just do n playouts, and choose n as you like. I think my playouts took 2s, which was enoufht for 4 playouts i suppose, but it was in novemebr, dont remember clearly... It was obvious that adding more playouts didnt increase the strength libearly, more like logarithmically, or, at best as the square root, and i dont want to program heursitics by hand, not going to get a papet out of that :- out of that :-) The atari paper looks interesting. Kind of dabbling in that a bit... ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Automatch is automatch: the other person doesnt choose to play rhe bot. ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
By the way, for mcts you dont need time controls. Each move takes the same amount of time, since you just do n playouts, and choose n as you like. I think my playouts took 2s, which was enoufht for 4 playouts i suppose, but it was in novemebr, dont remember clearly... It was obvious that adding more playouts didnt increase the strength libearly, more like logarithmically, or, at best as the square root, and i dont want to program heursitics by hand, not going to get a papet out of that :-) The atari paper looks interesting. Kind of dabbling in that a bit... By the way, for mcts you dont need time controls. Each move takes the same amount of time, since you just do n playouts, and choose n as you like. I think my playouts took 2s, which was enoufht for 4 playouts i suppose, but it was in novemebr, dont remember clearly... It was obvious that adding more playouts didnt increase the strength libearly, more like logarithmically, or, at best as the square root, and i dont want to program heursitics by hand, not going to get a papet out of that :- out of that :-) The atari paper looks interesting. Kind of dabbling in that a bit... ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
But my guess based on ad hoc tests during the development is that the contribution of basic playout heuristics and RAVE+priors may be about 1:1 (with large pattern priors giving further extra boost). I'll have to start reading papers on those concepts then, I guess. :) Thanks Petr! ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
What does that translate to on CGOS 13x13? I have a hard time estimating how strong my bot is in real terms. How exactly do you measure the strength? Rated games on KGS? Von meinem iPhone gesendet Am 28.03.2015 um 12:33 schrieb Hugh Perkins hughperk...@gmail.com: Still, it would be nice if the computer could learn the heuristics itself, by self-play. Which is why my bot is still stuck on 25k rating :-D At least, that's my excuse :-P On Sat, Mar 28, 2015 at 7:18 PM, Urban Hafner cont...@urbanhafner.com wrote: But my guess based on ad hoc tests during the development is that the contribution of basic playout heuristics and RAVE+priors may be about 1:1 (with large pattern priors giving further extra boost). I'll have to start reading papers on those concepts then, I guess. :) Thanks Petr! ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Well, what I did was connect my bot to kgs a few times, and watch as it go repeatedly beaten by anything much better than 25k :-) Normally, there's a few 'randombots' there to start with. Once you can beat those (which is harder than it sounds, or it is if your program has bugs, which mine did :-P ), then you can work your way up through mildly harder ones. ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Still, it would be nice if the computer could learn the heuristics itself, by self-play. Which is why my bot is still stuck on 25k rating :-D At least, that's my excuse :-P On Sat, Mar 28, 2015 at 7:18 PM, Urban Hafner cont...@urbanhafner.com wrote: But my guess based on ad hoc tests during the development is that the contribution of basic playout heuristics and RAVE+priors may be about 1:1 (with large pattern priors giving further extra boost). I'll have to start reading papers on those concepts then, I guess. :) Thanks Petr! ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Sat, Mar 28, 2015 at 2:34 PM, Hugh Perkins hughperk...@gmail.com wrote: Well, what I did was connect my bot to kgs a few times, and watch as it go repeatedly beaten by anything much better than 25k :-) Normally, there's a few 'randombots' there to start with. Once you can beat those (which is harder than it sounds, or it is if your program has bugs, which mine did :-P ), then you can work your way up through mildly harder ones. Alright. Thank you! Do you have to manually pair your program with another one or does the server pick an opponent automatically for you? I haven't used KGS for a long, long time you know. Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Sat, Mar 28, 2015 at 6:14 PM, Urban Hafner cont...@urbanhafner.com wrote: On Sat, Mar 28, 2015 at 2:34 PM, Hugh Perkins hughperk...@gmail.com wrote: Well, what I did was connect my bot to kgs a few times, and watch as it go repeatedly beaten by anything much better than 25k :-) Normally, there's a few 'randombots' there to start with. Once you can beat those (which is harder than it sounds, or it is if your program has bugs, which mine did :-P ), then you can work your way up through mildly harder ones. Alright. Thank you! Do you have to manually pair your program with another one or does the server pick an opponent automatically for you? I haven't used KGS for a long, long time you know. So it seems that the server is supposed to automatically pair you with others, right? Is this the correct way to set it up? verbose=true engine=iomrascalai-0.1.7 -r chinese -t 8 -e amaf -p no-eyes name=Imrscl password=VERYSECRET room=Computer Go mode=auto automatch.rank=25k undo=f The bot connects just fine according to the server according to the log output but then stops at FINER: No games to join. Starting automatch.. Do I just have to wait or is there something else I can or should do? Also, how do I make the bot appear at the top of the list in the computer go room as being open to play? Urban -- Blog: http://bettong.net/ Twitter: https://twitter.com/ujh Homepage: http://www.urbanhafner.com/ ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Sat, Mar 28, 2015 at 11:45:48AM +0100, Urban Hafner wrote: Good to know Petr! Where does the strength come from? Sophisticated playouts or a search algorithm or both? Frankly, I don't know for sure! The downside of Michi's slowness is that playtesting takes too many resources so configuration performance exploration is awkward. But my guess based on ad hoc tests during the development is that the contribution of basic playout heuristics and RAVE+priors may be about 1:1 (with large pattern priors giving further extra boost). Petr Baudis ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
hi! On Sat, Mar 28, 2015 at 11:30:37AM +0100, folkert wrote: Because I read here that people can do 25k playouts per second while my program can only do ~ 20 per second when doing full validity checks on all steps. Do you have a reference, some context for the 25K playouts? Look for the topic What's a good playout speed? in the mailinglist archives. http://computer-go.org/pipermail/computer-go/ On Wed, Jan 14, 2015 at 09:14:24AM +0100, Urban Hafner wrote: ..snip.. Right now I'm at ~2000pps on 9x9 and ~1000pps on 19x19. This is for playouts with simple ko and suicide checks and no concurrency. Now I wonder if this is fast enough to even start thinking about implementing a UCT/MCTS player Michi does 30 playouts/s (sic! single thread) on 9x9 on my oldish i3 notebook, and can be much stronger than GNUGo on that board size. I think people worry about playout speed too much. ;-) Petr Baudis ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Good to know Petr! Where does the strength come from? Sophisticated playouts or a search algorithm or both? Von meinem iPhone gesendet Am 28.03.2015 um 11:38 schrieb Petr Baudis pa...@ucw.cz: hi! On Sat, Mar 28, 2015 at 11:30:37AM +0100, folkert wrote: Because I read here that people can do 25k playouts per second while my program can only do ~ 20 per second when doing full validity checks on all steps. Do you have a reference, some context for the 25K playouts? Look for the topic What's a good playout speed? in the mailinglist archives. http://computer-go.org/pipermail/computer-go/ On Wed, Jan 14, 2015 at 09:14:24AM +0100, Urban Hafner wrote: ..snip.. Right now I'm at ~2000pps on 9x9 and ~1000pps on 19x19. This is for playouts with simple ko and suicide checks and no concurrency. Now I wonder if this is fast enough to even start thinking about implementing a UCT/MCTS player Michi does 30 playouts/s (sic! single thread) on 9x9 on my oldish i3 notebook, and can be much stronger than GNUGo on that board size. I think people worry about playout speed too much. ;-) Petr Baudis ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Hi all, I am working on a successor to Valkyria written in C++. I agree with Petr here. I am still tweaking the basic engine and I have still lot to fix. With a sloppy implementation initially I have 20 kpps for 9x9 and 4.5 kpps for 19x19. When the basic stuff is running I will build feature detection directly into the engine first based on my experiences from Valkyria. It will not be fast when board features are calculated but a lot of features necessary for heavy playouts will come for almost free. Magnus Persson On 2015-01-14 13:32, Petr Baudis wrote: On Wed, Jan 14, 2015 at 01:26:44PM +0100, Urban Hafner wrote: If I did it again, after picking some really low-hanging optimization fruit I'd rther focus on implementing playout heuristics, only then coming back to optimize the board code when it is clear what all information I need to compute the heuristics efficiently (list of up to N libs, maybe pre-computed pattern hashes, etc.). ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
Housebot was probably on the low end with 10kpps on 9x9. Libego was probably the highest with 100kpps. I attribute some of the difference to compiler maturity (D vs. C++). I don't know how rust will perform. On Jan 14, 2015 3:14 AM, Urban Hafner cont...@urbanhafner.com wrote: Hey everyone, I'm currently in the early stages of writing my own Go engine and right now I'm trying to make my playouts reasonably fast. I've come a long way in the past few days. Probably not because the payouts are really fast right now, but because they were just so slow before. :) Right now I'm at ~2000pps on 9x9 and ~1000pps on 19x19. This is for playouts with simple ko and suicide checks and no concurrency. Now I wonder if this is fast enough to even start thinking about implementing a UCT/MCTS player and also if there's something I'm missing with the playouts, e.g. is the suicide check necessary? Thanks for your input! Urban ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Wed, Jan 14, 2015 at 01:26:44PM +0100, Urban Hafner wrote: Hey Jason, thanks. Rust is probably not very well optimised, yet. It hasn't even reached 1.0 and there are still many language changes happening. But I attribute the slowness to the fact that I'm not used to writing code in compiled languages (I'm a web developer). :P But learning how to write performant code is half the fun and I guess I still have a bit of work to do here. Note that the mistake I did with Pachi is that I worked hard to optimize the Go board (playout) code with minimal functionality to perform a playout correct by the rules, only then discovering how much other information I need to keep to add some useful heuristics to the playout, and maybe the hotspots change then. If I did it again, after picking some really low-hanging optimization fruit I'd rther focus on implementing playout heuristics, only then coming back to optimize the board code when it is clear what all information I need to compute the heuristics efficiently (list of up to N libs, maybe pre-computed pattern hashes, etc.). -- Petr Baudis If you do not work on an important problem, it's unlikely you'll do important work. -- R. Hamming http://www.cs.virginia.edu/~robins/YouAndYourResearch.html ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] What's a good playout speed?
On Wed, Jan 14, 2015 at 1:32 PM, Petr Baudis pa...@ucw.cz wrote: Note that the mistake I did with Pachi is that I worked hard to optimize the Go board (playout) code with minimal functionality to perform a playout correct by the rules, only then discovering how much other information I need to keep to add some useful heuristics to the playout, and maybe the hotspots change then. If I did it again, after picking some really low-hanging optimization fruit I'd rther focus on implementing playout heuristics, only then coming back to optimize the board code when it is clear what all information I need to compute the heuristics efficiently (list of up to N libs, maybe pre-computed pattern hashes, etc.). That's a good point Petr! But as I started with 50pps on 9x9 (yes, really) I actually needed to do some optimisations as this made the bot completely unusable. There are still a few low hanging fruit (or learning opportunities for me), but it's probably time to finally start implementing UCT. BTW, the board.c from pachi is very readable and it (together with Board.java from the current Orego) serves me well as an inspiration on how to design the board. Urban ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go