Re: [Computer-go] A few questions from a beginner
The speed of your program would mostly depends on what features you want to support and what data structures you decide to incrementally maintain in the lowest level. Back in 2010, in Erica I got only about 5000-6000 pure random playouts per second on 19x19 at one 2.26 GHz core. For me what really important was the speed of the heavy playouts but of course the light playouts shouldn't be too slow anyway. To learn the tricks (such as using pseudo liberty) for making your program fast, check out Lukasz Lew's libego. Aja 2014-03-20 5:08 GMT+00:00 David Fotland fotl...@smart-games.com: On 9x9 you should be getting about 100k light playouts per second per core on a recent core i7. I was getting almost that many in 2008, and libego was faster. David *From:* computer-go-boun...@dvandva.org [mailto: computer-go-boun...@dvandva.org] *On Behalf Of *Xavier Combelle *Sent:* Wednesday, March 19, 2014 11:44 AM *To:* computer-go@dvandva.org *Subject:* Re: [Computer-go] A few questions from a beginner As other engine: - There is Łukasz Lew. libego https://github.com/lukaszlew/libego (I belived it will give you what you want) - There is oakfoam http://oakfoam.com/ - There is fuego http://fuego.sourceforge.net/ On Wed, Mar 19, 2014 at 5:28 PM, Mikko Aarnos mikko.aar...@kolumbus.fi wrote: Thanks for the info all. Does a fast open-source program exist which uses only light playouts? If there would be one I could get some reliable info on the amount of playouts per second I _should_ be getting. The only open-source I've found is Pachi and that isn't suitable for that purpose. I considered the playout method before asking but I rejected it because I didn't think it was any good at figuring out life/death. Apparently this is not the case so seems like that's what I'm going to be doing. Regards, Mikko Aarnos ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
Thanks for the info all. Does a fast open-source program exist which uses only light playouts? If there would be one I could get some reliable info on the amount of playouts per second I _should_ be getting. The only open-source I've found is Pachi and that isn't suitable for that purpose. I considered the playout method before asking but I rejected it because I didn't think it was any good at figuring out life/death. Apparently this is not the case so seems like that's what I'm going to be doing. Regards, Mikko Aarnos ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
Orego is open-source and reasonably fast. You can modify the heaviness of playouts. https://sites.google.com/a/lclark.edu/drake/research/orego On Wed, Mar 19, 2014 at 9:28 AM, Mikko Aarnos mikko.aar...@kolumbus.fiwrote: Thanks for the info all. Does a fast open-source program exist which uses only light playouts? If there would be one I could get some reliable info on the amount of playouts per second I _should_ be getting. The only open-source I've found is Pachi and that isn't suitable for that purpose. I considered the playout method before asking but I rejected it because I didn't think it was any good at figuring out life/death. Apparently this is not the case so seems like that's what I'm going to be doing. Regards, Mikko Aarnos ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go -- Peter Drake https://sites.google.com/a/lclark.edu/drake/ ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
As other engine: - There is Łukasz Lew. libego https://github.com/lukaszlew/libego (I belived it will give you what you want) - There is oakfoam http://oakfoam.com/ - There is fuego http://fuego.sourceforge.net/ On Wed, Mar 19, 2014 at 5:28 PM, Mikko Aarnos mikko.aar...@kolumbus.fiwrote: Thanks for the info all. Does a fast open-source program exist which uses only light playouts? If there would be one I could get some reliable info on the amount of playouts per second I _should_ be getting. The only open-source I've found is Pachi and that isn't suitable for that purpose. I considered the playout method before asking but I rejected it because I didn't think it was any good at figuring out life/death. Apparently this is not the case so seems like that's what I'm going to be doing. Regards, Mikko Aarnos ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
On 9x9 you should be getting about 100k light playouts per second per core on a recent core i7. I was getting almost that many in 2008, and libego was faster. David From: computer-go-boun...@dvandva.org [mailto:computer-go-boun...@dvandva.org] On Behalf Of Xavier Combelle Sent: Wednesday, March 19, 2014 11:44 AM To: computer-go@dvandva.org Subject: Re: [Computer-go] A few questions from a beginner As other engine: - There is Łukasz Lew. libego https://github.com/lukaszlew/libego (I belived it will give you what you want) - There is oakfoam http://oakfoam.com/ - There is fuego http://fuego.sourceforge.net/ On Wed, Mar 19, 2014 at 5:28 PM, Mikko Aarnos mikko.aar...@kolumbus.fi wrote: Thanks for the info all. Does a fast open-source program exist which uses only light playouts? If there would be one I could get some reliable info on the amount of playouts per second I _should_ be getting. The only open-source I've found is Pachi and that isn't suitable for that purpose. I considered the playout method before asking but I rejected it because I didn't think it was any good at figuring out life/death. Apparently this is not the case so seems like that's what I'm going to be doing. Regards, Mikko Aarnos ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
Hi Mikko, Welcome to the list. 2014-03-16 18:35 GMT+00:00 Mikko Aarnos mikko.aar...@kolumbus.fi: 1. On single-point eye detection: how is this generally done? I first used the definition that we have a single-point eye if a point has only our stones as neighbours and at most 1 diagonal neighbour is not our stone if in the middle of the board or that all diagonal neighbours are ours if on the edge of the board. This was however very slow, and when I replaced my definition with the definition found in Pachi(all neighbouring stones must be ours, at most 1 enemy stone is our diagonal neighbour if in the middle of the board and none if at the edge of the board) I get 4x the amount of playouts with longer games. Which one is the correct one, or is something else? Pachi's definition looks correct to me. There are a few rare exceptions to this definition but it should work well in general. 2. On playouts: How many light playouts per second on 9x9/19x19 on a single thread is considered fast nowadays? The fastest programs got roughly 80k-100k pure random games per sec on 9x9, and 5k-10k on 19x19, depending on the speed of the CPU. 3. On GTP-protocol and final_score: How do you score a board where the game hasn't ended(i.e. there are moves left which are legal and don't kill off our groups)? Almost all scoring methods require that dead stones are removed, and I can't figure out how to do that easily. Or do you just assume everything on the board is alive? Check out Tromp-Taylor Rules http://senseis.xmp.net/?LogicalRules Aja ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
Welcome to the abyss! :-) On Sun, Mar 16, 2014 at 11:35 AM, Mikko Aarnos mikko.aar...@kolumbus.fiwrote: 3. On GTP-protocol and final_score: How do you score a board where the game hasn't ended(i.e. there are moves left which are legal and don't kill off our groups)? Almost all scoring methods require that dead stones are removed, and I can't figure out how to do that easily. Or do you just assume everything on the board is alive? One reasonable approach, which Orego uses, is to do a bunch of extra Monte Carlo playouts. If a group survives often enough, consider it alive. -- Peter Drake https://sites.google.com/a/lclark.edu/drake/ ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
Pachi's definition looks correct to me. There are a few rare exceptions to this definition but it should work well in general. Agreed. The classic exception is: http://senseis.xmp.net/?TwoHeadedDragon (I *think* that represents *all* the exceptions; everything else that is regarded as alive without two proper eyes is consider seki.) A heavy-looking attempt at generality: http://senseis.xmp.net/?FormalDefinitionsOfEye Darren P.S. Incidentally, you can write a go program with no concept of eyes: playouts continue until no legal moves left. The light playout idea of not filling your eyes is just an optimization. (Better is to replace it with the concept of Avoid Stupid Sacrifice, as that will cover snapbacks, under-the-stones and seki too... much harder though!) ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
Re: [Computer-go] A few questions from a beginner
On Mar 16, 2014, at 2:35 PM, Mikko Aarnos mikko.aar...@kolumbus.fi wrote: 3. On GTP-protocol and final_score: How do you score a board where the game hasn't ended(i.e. there are moves left which are legal and don't kill off our groups)? Almost all scoring methods require that dead stones are removed, and I can't figure out how to do that easily. Or do you just assume everything on the board is alive? As a general rule, your bot should not pass a game it cannot score. The two typical methods are 1. Play until all opponent stones have been captured (and mark everything as alive) 2. Determine life/death status from playouts. #1 is easier, but frustrates humans. If you plan to compete in KGS tournaments, check out http://www.weddslist.com/kgs/rules.html (game end protocol) ___ Computer-go mailing list Computer-go@dvandva.org http://dvandva.org/cgi-bin/mailman/listinfo/computer-go