[computer-go] Selecting tree child objects, was Hydra theory (was Hybrid theory)

2008-02-02 Thread Harri Salakoski
Hi such question that do you typically traverse all child objects or is 
there faster way to select explored node child object.
I have concluded that it is not at least easy as multiple nodes uct values 
change each simulation so trying to keep biggest uct value in first in list 
is maybe too expensive best practical way is go trough all child moves.


Or if _all_ UCT leaf nodes could be uctvalue heap or similar,
   then biggest leaf is selected,
   traversed for root,
   game from root-leaf re-played- then random simulation
   leaf is stored its right position.

So atleast in this scenario selecting uct node is fast but this heap 
updating is it worth it?


t. Harri

- Original Message - 
From: Gunnar Farnebäck [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Saturday, February 02, 2008 7:47 PM
Subject: Re: [computer-go] Hydra theory (was Hybrid theory)



David Doshay wrote:
 I looked up borda voting on Wikipedia. I did not know this was called
 Borda voting, and it might be called a zeroth-order version of what I
 am thinking. Rather than just take rank order from each, I intended to
 try to include other metrics, for example, some measure of distance
 from top. One engine may evaluate that there is one really great move
 with all others considered very bad. That is different than many nearly
 equal good moves.

[Commenting a somewhat arbitrary message in the thread.]

MonteGNU (and gnugo --monte-carlo in the next development release)
is doing a simple form of voting. Internally there are two engines;
one UCT-MC engine and the ordinary GNU Go move generation. The UCT
engine is allowed to nominate a number of moves and the ordinary move
generation must choose one of those.

More specifically the UCT engine nominates the following moves:

1. The highest scoring move in terms of win rate. Let N be the number
   of simulations for this move.
2. All moves with more than N/2 simulations
3. All moves with win rate win rate greater than 0.9 and more than
   N/10 simulations.
4. All moves if the highest scoring move has win rate less than 0.1.

The move values from the ordinary move generation are then used to
choose one of the nominated moves. If all nominated moves are thought
useless the highest scoring UCT move is chosen. Pass is generated if
and only if the ordinary move generation wants to pass.

Usually this works fairly well. Most of the strength (on 9x9) comes
from the UCT part and if it finds a clear winner the ordinary move
generation only has a single move to choose from. When safely ahead
many moves are nominated and the ordinary move generation gets to play
for points, providing sensibly looking moves. Similarly when clearly
losing and resignation is disabled, ordinary move generation gets to
finish the game off in a tidy manner.

A nice point is that with too few simulations the UCT engine will
nominate lots of moves and the total result is that it more or less
reverts to the ordinary move generation.

Occasionally, however, it gives the worst of two worlds. The UCT
engine may have a good move A first but a bad move B close behind and
also nominated . The ordinary move generation maybe likes another good
move C best and hates B but has completely missed A. Then B will be
played, although both engines prefer better moves.

/Gunnar
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Is MC-UCT really scalable against humans?

2008-01-22 Thread Harri Salakoski

In go we talk instead about moves that lose points.  UCT programs

often play moves that clearly lose points in an attempt to maximize the
probability of winning.
I am just started reguraly observe how this uct really plays as my bot is 
started play in CGOS, so I am kind of newbie in this but observed several 
games.


So it atleast seems that UCT with random playouts maximises propability of 
winning for random playouts :).
It really is different than propability of winning in heavy or real play 
those shapes are just not defendable any means those are suboptimal for real 
play, but optimal for random play. Like it favors unnesessary strong shapes 
which clearly lose points, but otherways it plays kind of solid play I 
think.


t. harri


- Original Message - 
From: David Fotland [EMAIL PROTECTED]

To: 'computer-go' computer-go@computer-go.org
Sent: Tuesday, January 22, 2008 7:51 PM
Subject: RE: [computer-go] Is MC-UCT really scalable against humans?



I didn't say that :)  Please read what I wrote.

The UCT programs often find moves that are unconventional.  This makes
patterns that aren't in the database, so the traditional programs can't
cope.  People are a little more flexible, especially strong players, and 
can

still find good responses to unconventional moves.

I don't know what you mean by unsound.  That's chess terminology and I
think it refers to a trick move that should lead to a loss against good
play.  In go we talk instead about moves that lose points.  UCT programs
often play moves that clearly lose points in an attempt to maximize the
probability of winning.  These moves are unconventional because people 
learn

the optimal moves in standard situations.  Weaker players and traditional
programs can have trouble finding the best response to these non-optimal
moves.  So the UCT programs gain strength for two reasons, first, because
the maximize the probability of winning rather than maximize the score. 
And
second because this causes them to play unconventional moves, which make 
the

game more difficult for their opponent.  There is nothing inherently wrong
with playing unconventional moves that are still good.  Strong players do 
it

whenever they can to make the game more difficult.

David


Please don't say the style is to find an unsound move that
is
difficult to defend,  that's not what it's trying to do,  it's just
trying to find a move that it is IMPOSSIBLE to defend,  and if it

- Don



David Fotland wrote:
 I share this opinion.  9x9 was a good simple test to get things
started, but
 go is a 19x19 game.  9x9 has limited interest.  An analogy for chess
 programmers would be if a group of people worked on programs to solve
rook
 and pawn endgames.  This kind of chess endgame is a good test to try
out
 algorithms, but if they claim to be making strong chess programs, at
some
 point they have to implement the full game.  In go it turned out that
to be
 good at 19x19, some new algorithms were needed (patterns and heavy
 playouts).  I think that to take the next step in 19x19 strength the
 programs will need to be stronger at life and death.



 The UCT-MC programs do particularly well against traditional programs
 because they expose the brittleness inherent in the pattern databases
they
 use.  Strong humans are not so easily beaten by playing
unconventional and
 somewhat inferior moves.



 David



 Personally I think 9x9 is good for trying out ideas. But in the end,
if it
 doesn't play well on 19x19 then I don't care one bit how well it
plays on
 9x9. Just my opinion of course.



 Mark







 -
---

 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] On average how many board updates/sec can top Go programs do these days?

2008-01-15 Thread Harri Salakoski

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.

The *average* length of a 9x9 playout is roughly 100 moves.
The max length is much larger.
Hmm, sorry if this is old subject but does it effect much for playout 
quality if I cut playouts for example max 110 moves in 9*9 board?

Is that studied subject for almost random playouts.

Another thing, do you include random moves for playouts, after some number 
of playouts or when there is K number empty points or using some other 
way.


By the wat made java board for random playouts it is currently 30 games 
/13sec 9*9 board having max 110 moves(double core 4000+), I have no lightest 
clue how to make it faster as optimized it as much i can, using two threads 
it is 7 seconds/30 games. Have think that maybe somekind of state 
machine could be faster.


t. Harri




On a 2.2Ghz Athlon64, I get about 10 000 playouts/second, at an
average of 100 moves per game this is 1 million updates/second.

There are many programs that are much faster. On the same hardware
libego would be about 6 million updates/second.

19 x 19 is a bit slower, because strings are bigger on average.



This also explains that when I read the games MoGo against GNUGo, toward
the
end of the game, GNUGo would play PASS, but MoGo would continue to play 
at

some very uncommon positions that a normal player would never consider.


Pass behaviour has little to do with the playouts themselves.

--
GCP
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] On average how many board updates/sec can top Goprograms do these days?

2008-01-15 Thread Harri Salakoski

Hmm, sorry if this is old subject but does it effect much for playout
quality if I cut playouts for example max 110 moves in 9*9 board?

Yes, that will significantly hurt your play-outs.Do you throw away
the results or score it as is?

I have a very liberal cutoff on my program - from any position I play to
move 81*4 in 9x9  as long as I have played at least 20 moves.
Aha, sounds fair. I asked that when I noticed that my impl have constant 110 
moves preventing max playouts. After investigated that more that particular 
case NaruGo project ArrayBoard it really seems not to matter, because 
current implementation throws away empty points after point is investigated 
to be illegal only for other player. That I think should be corrected after 
it is figure out how should that be done. Other hand playouts 
non-naturally end more early than 110 moves regulary because empty points 
which are illegal for other are thrown away(and removed from playable empty 
points array) and so on change for that constant made no big effect. So 
thats situation no clue should I fix that, it seems so painfull to fix as 
afraid which slowdown it makes. But I am sure that atleast in end game 
playouts(which start near end game) all moves should offcourse be included, 
so I have think to use different playout code for playouts starting near end 
or starting early positions. So I should be asking is it bad for playouts 
throw away empty points if those are only illegal for other player? I afraid 
to hear yes it is very bad for playout quality :|


t. hArri 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] On average how many board updates/sec cantop Goprograms do these days?

2008-01-15 Thread Harri Salakoski

I'm trying to understand what you are saying.

If a point is illegal for black, are you saying that black can never
play at that point, or are you saying white can never play there?   Or
are you saying neither side can?

Yep currently neither side can anymore use that point.


What is the reason for this?   I'm not sure I understand what you are
saying.
Reason is that I have empty point array, it is fast to choose played points 
from that array.

Points which are consireded illegal or bad are thrown away.


Once I tried something I hoped would speed up play-outs a lot without
hurting the quality.   I  considered all large captured points as out
of play.For instance if white captures a 10 stone group,  it becomes
permanently owned by white and neither side can move there again.The
assumption is that if you capture a large group,  you will  more than
likely be able to hold that space down.I tried a few variations of
this, but these things only hurt the program.

I add empty points from killed groups to back that empty points array;
sound like that is not mandatory either. I know if I don't add points from 
killed groups back for empty stone array that is about 20% speedup.


I agree if group is big, other hand if group is big, game is usually over so 
maybe should stop playout for that, wonder if that only hurts program..



I think with more
analysis you might be able to find shortcuts - one example is the mercy
rule which leans on certain assumptions.

mercy rule?

t. Harri





- Don



Harri Salakoski wrote:

Hmm, sorry if this is old subject but does it effect much for playout
quality if I cut playouts for example max 110 moves in 9*9 board?

Yes, that will significantly hurt your play-outs.Do you throw away
the results or score it as is?

I have a very liberal cutoff on my program - from any position I play to
move 81*4 in 9x9  as long as I have played at least 20 moves.

Aha, sounds fair. I asked that when I noticed that my impl have
constant 110 moves preventing max playouts. After investigated that
more that particular case NaruGo project ArrayBoard it really seems
not to matter, because current implementation throws away empty points
after point is investigated to be illegal only for other player. That
I think should be corrected after it is figure out how should that be
done. Other hand playouts non-naturally end more early than 110
moves regulary because empty points which are illegal for other are
thrown away(and removed from playable empty points array) and so on
change for that constant made no big effect. So thats situation no
clue should I fix that, it seems so painfull to fix as afraid which
slowdown it makes. But I am sure that atleast in end game
playouts(which start near end game) all moves should offcourse be
included, so I have think to use different playout code for playouts
starting near end or starting early positions. So I should be asking
is it bad for playouts throw away empty points if those are only
illegal for other player? I afraid to hear yes it is very bad for
playout quality :|

t. hArri
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] On average how many boardupdates/sec cantop Goprograms do these days?

2008-01-15 Thread Harri Salakoski

This is a mistake.  There are often moves that are illegal for black that
are big for white.  If you don't let white play there, white can lose a 
lot

of points.  Connections through false eyes are one example.
Yep agree that, knowing that it is not fair for other but kind of 
rationalized it that it is same for both players and there is half chance
that other player tries it before. I kind of think that it keeps spirit of 
random result still because it is same for both players,

but I change it.
t. Harri


- Original Message - 
From: David Fotland [EMAIL PROTECTED]

To: 'computer-go' computer-go@computer-go.org
Sent: Wednesday, January 16, 2008 8:56 AM
Subject: RE: [computer-go] On average how many boardupdates/sec cantop 
Goprograms do these days?







 If a point is illegal for black, are you saying that black can never
 play at that point, or are you saying white can never play there?
Or
 are you saying neither side can?
Yep currently neither side can anymore use that point.


This is a mistake.  There are often moves that are illegal for black that
are big for white.  If you don't let white play there, white can lose a 
lot

of points.  Connections through false eyes are one example.

David


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Microsoft Research Lectures: Akihiro Kishimoto

2007-12-12 Thread Harri Salakoski

How much nodes does it uses for this ?
B B B B B B B
B B B B . B B
B B B B B . B
w w w . B B B
. . . w B B B
. . w . B B B
A B C D E F G

Its same, I define area for movegenerator allowed points are same in both 
cases.
It lets white play after whole first group is killed at least that increases 
combinations, I suspect there should be small heuristic
for OR/FirstPlayer node proof path which has most kills first, I add that, 
which maybe don't fix it alone as exact calculation child node proof and 
disproof tresholds is little vaque for me.


t. Harri


Le mercredi 12 décembre 2007, Harri Salakoski a écrit :
Such comment just take my word back little it is maybe awesome but I can't
say is it or not, as have still bugs left.

E E E
E E E
BEE
WWWEBEE
E E EWBEE
E E WEBEE
ABCDEFG
For example current version(not released) goes trought 162438 nodes before
it proofs black B2 kills(without any ordering help).


. . . . . . .
. . . . . . .
B B B B B . .
w w w . B . .
. . . w B . .
. . w . B . .
A B C D E F G

with 7 empty places, should'nt it be less than 7**3 = 2187 ?

How much nodes does it uses for this ?
B B B B B B B
B B B B . B B
B B B B B . B
w w w . B B B
. . . w B B B
. . w . B B B
A B C D E F G

Alain

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Microsoft Research Lectures: Akihiro Kishimoto

2007-12-12 Thread Harri Salakoski
Actually adding lines for second player that if it has zero stones it is win 
for first player.
Thats true at least normal life-dead problems :|, not maybe some seki kind 
of things but for this it changed node count for 2282 nodes.



with 7 empty places, should'nt it be less than 7**3 = 2187 ?
Yep so there is also pass, does it increase it, ok it maybe has bugs left I 
have no clue.


t. harri

- Original Message - 
From: Alain Baeckeroot [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Thursday, December 13, 2007 12:35 AM
Subject: Re: [computer-go] Microsoft Research Lectures: Akihiro Kishimoto


Le mercredi 12 décembre 2007, Harri Salakoski a écrit :

Such comment just take my word back little it is maybe awesome but I can't
say is it or not, as have still bugs left.

E E E
E E E
BEE
WWWEBEE
E E EWBEE
E E WEBEE
ABCDEFG
For example current version(not released) goes trought 162438 nodes before
it proofs black B2 kills(without any ordering help).


. . . . . . .
. . . . . . .
B B B B B . .
w w w . B . .
. . . w B . .
. . w . B . .
A B C D E F G

with 7 empty places, should'nt it be less than 7**3 = 2187 ?

How much nodes does it uses for this ?
B B B B B B B
B B B B . B B
B B B B B . B
w w w . B B B
. . . w B B B
. . w . B B B
A B C D E F G

Alain

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Microsoft Research Lectures: Akihiro Kishimoto

2007-12-12 Thread Harri Salakoski
Now it is only 2282 nodes, and it still has maybe bugs. It returns 
immediately which is good, I have hopes for that it comes better even it has 
no bugs because it lacs move ordering logic,
If I only find couple bugs its start to be what I expected. Then need to 
make desision is it good enough to be used in bot code in such or

should it be used to train static patterns.

t. Harri
- Original Message - 
From: David Fotland [EMAIL PROTECTED]

To: 'computer-go' computer-go@computer-go.org
Sent: Thursday, December 13, 2007 5:14 AM
Subject: RE: [computer-go] Microsoft Research Lectures: Akihiro Kishimoto



This is awful for such a simple problem.  Many Faces' static evaluation
function sees that the white group is unsettled, and
the life/death search finds the B2 killing move in one node (since after 
B2
the group is dead with no further search, and the move generator returns 
B2

as the first candidate move).  It spends another 100 nodes proving that D1
and D3 lead to a ko, and the other moves don't work.

David



 For example current version(not released) goes trought 162438 nodes
before
 it proofs black B2 kills(without any ordering help).

 . . . . . . .
 . . . . . . .
 B B B B B . .
 w w w . B . .
 . . . w B . .
 . . w . B . .
 A B C D E F G




___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] RE: Microsoft Research Lectures: Akihiro Kishimoto

2007-12-12 Thread Harri Salakoski
I am sure that it is good, can't compare node counts for anything which uses 
any static knowledge.
2282 is current count and you can increase or decrease those 
proofCounter/disProofCounter limits and it still

works but don't know exactly when it is doing it right.

t. hArri
- Original Message - 
From: Dave Dyer [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Thursday, December 13, 2007 5:52 AM
Subject: [computer-go] RE: Microsoft Research Lectures: Akihiro Kishimoto



My tsumego applet determines without a search that black can kill,
and white might live if he moves first.
http://www.andromeda.com/people/ddyer/go/shape/ShapeApplet.html

A table lookup is a little better than searching 162438 nodes :)




 For example current version(not released) goes trought 162438 nodes
before
 it proofs black B2 kills(without any ordering help).

 . . . . . . .
 . . . . . . .
 B B B B B . .
 w w w . B . .
 . . . w B . .
 . . w . B . .
 A B C D E F G



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] RE: Microsoft Research Lectures: Akihiro Kishimoto

2007-12-12 Thread Harri Salakoski

5 ...
4 WW.
3 BBB..W.
2 ...B.W.
1 ..B..W.
 ABCDEFG

Ha, I give blacks more room to play, and shape database did not find it, or 
maybe I used it wrong :).
But this search find B2 now in 1258437 nodes :| which is quite much and 
takes couple seconds.

Don't know but really hope it goes better so it comes more useful.

t. Harri

- Original Message - 
From: Dave Dyer [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Thursday, December 13, 2007 5:52 AM
Subject: [computer-go] RE: Microsoft Research Lectures: Akihiro Kishimoto



My tsumego applet determines without a search that black can kill,
and white might live if he moves first.
http://www.andromeda.com/people/ddyer/go/shape/ShapeApplet.html

A table lookup is a little better than searching 162438 nodes :)




 For example current version(not released) goes trought 162438 nodes
before
 it proofs black B2 kills(without any ordering help).

 . . . . . . .
 . . . . . . .
 B B B B B . .
 w w w . B . .
 . . . w B . .
 . . w . B . .
 A B C D E F G



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] cgos

2007-12-05 Thread Harri Salakoski

Hi is last black move A4 really illegal in cgos rules?
Just ensure before start change things. It seemed weird.
White D9 shouls change board situation and white kills two stones before A4 
is getting then

one stone back fine? t. harri

W A4
9 WW..W.WWW
8 ...W.W.W.
7 WBW..
6 WBBWBBWWW
5 .WWWB
4 BWBBB
3 .BBB.B.B.
2 B.B.B
1 .
 ABCDEFGHJ

W D9
9 WW.WW.WWW
8 ...W.W.W.
7 WBW..
6 WBBWBBWWW
5 .WWWB
4 BWBBB
3 .BBB.B.B.
2 B.B.B
1 .
 ABCDEFGHJ

B A5
9 WW.WW.WWW
8 ...W.W.W.
7 WBW..
6 WBBWBBWWW
5 BWWWB
4 BWBBB
3 .BBB.B.B.
2 B.B.B
1 .
 ABCDEFGHJ

W A3
9 WW.WW.WWW
8 ...W.W.W.
7 WBW..
6 WBBWBBWWW
5 .WWWB
4 .WBBB
3 WBBB.B.B.
2 B.B.B
1 .
 ABCDEFGHJ

B A4
9 WW.WW.WWW
8 ...W.W.W.
7 WBW..
6 WBBWBBWWW
5 .WWWB
4 BWBBB
3 .BBB.B.B.
2 B.B.B
1 .
 ABCDEFGHJ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


[computer-go] CGOS down? Java client

2007-11-27 Thread Harri Salakoski
Hmm, I am not sure as only trying to make Java bot connect CGOS, but it 
seems to be down.
It seems that it does not give feedback after password. Also I found cgos 
email list cgos-developers is it also for users or is this list ok?


t. harri 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] CGOS down? Java client - basic GTP problem

2007-11-27 Thread Harri Salakoski

command genmove w 30
reply=30 E3
cgos replys   gameover 2007-11-27 B+Illegal do not understand syntax

GTP specc says : Success Responses - A successful response has one of the 
syntaxes

=id response\n\n
=id\n\n
= response\n\n
=\n\n

code is:
return = + id +   + s + \n\n;

stream is written using PrintWriter:
myToServer.println(line);

Anybody used java with cgos could help or if it is otherway obivious.

t.Harii


27.11.2007 20:30:14 narugo.util.MyLog log
INFO: Server:gameover 2007-11-27 B+Illegal do not understand syntax
- Original Message - 
From: Harri Salakoski [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Tuesday, November 27, 2007 6:32 PM
Subject: [computer-go] CGOS down? Java client


Hmm, I am not sure as only trying to make Java bot connect CGOS, but it 
seems to be down.
It seems that it does not give feedback after password. Also I found cgos 
email list cgos-developers is it also for users or is this list ok?


t. harri
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] CGOS down? Java client - basic GTP problem

2007-11-27 Thread Harri Salakoski
I use pure java solutions when it is possible.  plain E3 atleast don't seem 
work, tried many other combinations also without success.

t. harri

- Original Message - 
From: Don Dailey [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Tuesday, November 27, 2007 10:00 PM
Subject: Re: [computer-go] CGOS down? Java client - basic GTP problem



Cgos has it's own syntax - it's not GTP although it superficially
resembles GTP.

cgos3.tcl  sits between your program and the server and converts the
conversation to gtp for your program.

- Don


Harri Salakoski wrote:

command genmove w 30
reply=30 E3
cgos replys   gameover 2007-11-27 B+Illegal do not understand syntax

GTP specc says : Success Responses - A successful response has one of
the syntaxes
=id response\n\n
=id\n\n
= response\n\n
=\n\n

code is:
return = + id +   + s + \n\n;

stream is written using PrintWriter:
myToServer.println(line);

Anybody used java with cgos could help or if it is otherway obivious.

t.Harii


27.11.2007 20:30:14 narugo.util.MyLog log
INFO: Server:gameover 2007-11-27 B+Illegal do not understand syntax
- Original Message - From: Harri Salakoski
[EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Tuesday, November 27, 2007 6:32 PM
Subject: [computer-go] CGOS down? Java client



Hmm, I am not sure as only trying to make Java bot connect CGOS, but
it seems to be down.
It seems that it does not give feedback after password. Also I found
cgos email list cgos-developers is it also for users or is this
list ok?

t. harri
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] CGOS down? Java client - basic GTP problem

2007-11-27 Thread Harri Salakoski
Yep and thanks, thanks also everybody else who replyed. It is quite solved, 
it is pure A1 or E3 coordinates which cgos server expects for genmove 
commands, unfortunately own loop implementation send replys for info and 
other stuff which i quess was buffered for server, when it was time to 
handle A1 it server parsed maybe ===A1 or if that was not reason 
then I have no qlue but anyway now it accepts generated moves.

Now played full game without problems.


There are a few advantages to implementing the protocol within your
program.
I'm probably missing something, but I don't see how you get those 
advantages.
At least for Java there is reasons why java code more nice than script. java 
api calling external binaries is no fun to use,
easier debugging, no tcl needed, IDE  helps handling java code several vays, 
no qlue what should be done with tcl, it is anyway

simple small piece of code this cgos protocol after it started work.
t. harri
- Original Message - 
From: Jason House [EMAIL PROTECTED]
To: Phil Garcia [EMAIL PROTECTED]; computer-go 
computer-go@computer-go.org

Sent: Wednesday, November 28, 2007 5:39 AM
Subject: Re: [computer-go] CGOS down? Java client - basic GTP problem




On Tue, 2007-11-27 at 19:00 -0800, Phil Garcia wrote:

There are a few advantages to implementing the protocol within your
program. You can implement custom actions between commands, like
additional setup commands, and support for pondering.



I'm probably missing something, but I don't see how you get those
advantages.  I don't get how pondering is easier with your own
implementation.  Is there extra information that the client receives
from the server that the client doesn't share with the engine?  If not,
I don't see how extra setup differs from calling extra functions when
receiving specific gtp commands.


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Solving Go

2007-11-14 Thread Harri Salakoski

If black plays first move on corner,  white wins by 9 points.

Hmm does white also capture that first stone and win 10 points.

I am fixing search algorithm, which was little faulty as not done small 
board investigations for some time.
So if there is list for right scores in different rule sets for small 
boards(2-5) in different first moves available in net like to see that.


t. hArri


- Original Message - 
From: Don Dailey [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Monday, November 12, 2007 8:39 PM
Subject: Re: [computer-go] Solving Go



Ok,  on 2x2 I get a consistent result now that I implemented PSK.   It
gives the same result with SSK too.  It's a 1 point win for the first
player. I'm not sure this is in agreement with other peoples
findings.   But it appears to be consistent.I can work my way
through the game and it always returns the same score if I make the
move(s) the search believes is best.

After black plays the first move,  white's best response is to move to
the opposite corner.Otherwise it's a 4 point win for black.


Here are the parameters I use:

  1.  positional superko unless otherwise stated.
  2.  evaluation function:   Each stone is alive - an empty point
belongs to a player if only his stones touch it.
  3.  game over after 2 passes.
  4.  suicide illegal.


3x3 gives a black win by 9 points (the whole board.)

If black plays first move on the edge (a2 for instance)  then he wins by
3 points instead of 9.
If black plays first move on corner,  white wins by 9 points.

Does anyone have any data to check these facts ??

It may try this with 4x4 after doing something to improve the move 
ordering.



- Don





Harri Salakoski wrote:

5x5 was solved with a massive brute force search approach.   Memory was
used for large hash tables and endgames were scored early using Bensons
algorithm, otherwise it would not have been feasible from what I
understand.

Yes it was proof level paper, doing something lot less
mathematically valid for example only some open source code which can
do good search against 7*7 is more realistic. Kind of allowing all
possible short-cuts, like using several patterns to judge board score
even it is not absolutely sure that score is right for combination of
patterns.


Although that's interesting,  it's just a search.   I would like to try
something a little more clever (I'm just not clever enough to figure out
what that should be!)
I'm thinking perhaps in terms of a database assist.   It would be
interesting if we could come up with a small board scoring system that
is very accurate.

Agree that goal, scoring system must be accurate _when_ it thinks it
knows score. I see score meaning minimal score for player archieves
from this position if plays right.


  A database system might identify rules and
exceptions that can be applied. For example, we have the eye rule in
our monte carlo programs - although that is extremely powerful it's not
100% admissible - there are some exceptions although they probably occur
only a fraction of a percent of the time. The eye rule would be
powerful in a hybrid system because it is a fairly large class of
positions where we can say, never move to that point - it will never be
the best move.

But is this other class of used patterns also to guide search, I see
this estimator goal should proof minmum scores for player.
All kind of eye knowledge is offcourse important for minimal scoring
patterns.


A trivial way to include it in a hybrid system is to just put an entry
in a table for the few times that is wrong.   Or even better, try to
determine the exact context where it's wrong.Perhaps it's never
wrong in a 5x5 game?

I have thinked patterns which take area of board and proof that
another player can take X points from that area/group.
If that player has benson alive groups in other areas on board score
can be proven benson alive groups + one group which is not benson
alive but can be proven to get X points if only defending that group
for rest of game.


Tables like this can be stored compactly with bloom filters.

Here is a question.  How do you determine what a final board looks
like?   If you are actually building an endgame table, you start with
all the final positions.   But seki seems to be very difficult to
identify.

I am planning partial table patterns. Seki and other consepts should
be used with patterns if possible.


I'm doing a little experiment right now with small boards and a table
with a few million hashed entries.   I'm trying to store only perfect
scores in this table but my definition is weak.I search a position
using alpha/beta and if several iterations consecutively return the same
score,  I consider it a perfect score. I know this definition is
subject to error.

Yep, such practical problems are intresting, but atleast those are
possible to fix as 5*5 and earlier proofs show.

It can be intresting attack 7*7 from end positions side, trying

Re: [computer-go] Solving Go

2007-11-12 Thread Harri Salakoski

5x5 was solved with a massive brute force search approach.   Memory was
used for large hash tables and endgames were scored early using Bensons
algorithm, otherwise it would not have been feasible from what I 
understand.
Yes it was proof level paper, doing something lot less mathematically 
valid for example only some open source code which can do good search 
against 7*7 is more realistic. Kind of allowing all possible short-cuts, 
like using several patterns to judge board score even it is not absolutely 
sure that score is right for combination of patterns.



Although that's interesting,  it's just a search.   I would like to try
something a little more clever (I'm just not clever enough to figure out
what that should be!)
I'm thinking perhaps in terms of a database assist.   It would be
interesting if we could come up with a small board scoring system that
is very accurate.
Agree that goal, scoring system must be accurate _when_ it thinks it knows 
score. I see score meaning minimal score for player archieves from this 
position if plays right.



  A database system might identify rules and
exceptions that can be applied. For example, we have the eye rule in
our monte carlo programs - although that is extremely powerful it's not
100% admissible - there are some exceptions although they probably occur
only a fraction of a percent of the time. The eye rule would be
powerful in a hybrid system because it is a fairly large class of
positions where we can say, never move to that point - it will never be
the best move.
But is this other class of used patterns also to guide search, I see this 
estimator goal should proof minmum scores for player.
All kind of eye knowledge is offcourse important for minimal scoring 
patterns.



A trivial way to include it in a hybrid system is to just put an entry
in a table for the few times that is wrong.   Or even better, try to
determine the exact context where it's wrong.Perhaps it's never
wrong in a 5x5 game?
I have thinked patterns which take area of board and proof that another 
player can take X points from that area/group.
If that player has benson alive groups in other areas on board score can be 
proven benson alive groups + one group which is not benson alive but can 
be proven to get X points if only defending that group for rest of game.



Tables like this can be stored compactly with bloom filters.

Here is a question.  How do you determine what a final board looks
like?   If you are actually building an endgame table, you start with
all the final positions.   But seki seems to be very difficult to 
identify.
I am planning partial table patterns. Seki and other consepts should be used 
with patterns if possible.



I'm doing a little experiment right now with small boards and a table
with a few million hashed entries.   I'm trying to store only perfect
scores in this table but my definition is weak.I search a position
using alpha/beta and if several iterations consecutively return the same
score,  I consider it a perfect score. I know this definition is
subject to error.
Yep, such practical problems are intresting, but atleast those are possible 
to fix as 5*5 and earlier proofs show.


It can be intresting attack 7*7 from end positions side, trying to make 
solver that gives exact score for part of positions and try to increase 
that procent but keep score exact. When end position scoring system is good 
enought then it could be possible try start search from some near end middle 
positions. I don't know is anybody really deebly investigated 7*7, kind of 
more like started existing go programs search algorithms from scratch and 
gived up. I also lack of 7*7 board knowledge, other hand 7*7 sounds 
practical, fast and light board.


t. harri


To handle ko,  I ignore everything except simple ko.   I don't store
positions where the previous move was a single stone capture since it
might be a simple ko. My hope is that long superko loops will be
avoiding by some winning side.This is probably not a correct
assumption, but I have read that it works on 5x5 and less - it's always
better for one side to break the loop.

The evaluation function is to consider every stone alive, and any empty
intersection that touches only one color to belong to that color.The
evaluation function is not really used though - except to identify
perfect scores (where several search iterations return the same
results.)

In all the 4x4 examples I've seen,  I've never seen a 3 iterations in a
row return the same score unless it was correct.   However, I'm using 4
in a row to determine that a score for a position is exact. If the
last 4 iterations return the same score, I put the root position in the
hash table as a perfect score.  I sample the space randomly by
making a random move after searching some position, so that it explores
the full space eventually. This is not very systematic, but it's
just for fun right now.


- Don



Harri

[computer-go] Machine Learning, Probability and Graphical Models

2007-11-10 Thread Harri Salakoski
There is many good videos in videolectures, seen some UCT, e.t.c but as I 
was specially delighted this particular video, which covers many practical 
points for machine learning and is propably useful remind some things in 
go-game AI coders also.


http://videolectures.net/mlss06tw_roweis_mlpgm/

t. Harri
narugo project 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Solving Go

2007-11-10 Thread Harri Salakoski
 Has anyone did this before or has anybody thoughts about this?
I have done that for 4*4 and 3*3, my code is not in shape that it could be used 
5*5 but have high believes it is anyway possible used for 6*6 some day. But 
this was discussed in this group earlier and nothing new has occurred since 
then. 
7*7 is solved in ten years ... hahaa no need to reply that. You need very good 
solver to proof that in this particular middle position Black or White can 
archieve better than optimal score and no reason to continue search. Bigger cut 
better..

Doing investigations in http://sourceforge.net/projects/narugo  project and 
happy to co-operate.

t. hArri
  - Original Message - 
  From: Ben Lambrechts 
  To: 'computer-go' 
  Sent: Wednesday, November 07, 2007 9:03 PM
  Subject: [computer-go] Solving Go


  I want to create a perfect player on board sizes 3x3, 5x5 and maybe 7x7 and 
beyond.

  But I have no idea how to start. How do I create the move database and how do 
I select the perfect move for every position?

   

  I know Go is solved on boards 5x5 and smaller, but there is no program that 
plays by this perfect moves.

   

  Has anyone did this before or has anybody thoughts about this?

   

  Ben



--


  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Former Deep Blue Research working on Go

2007-10-13 Thread Harri Salakoski

Absolutelu _great_ link, raises my go rank I hope.
thanks.


Do they exist?
I have watched many hilarious youtube stuff, but no clue to search go stuff, 
great.


t. harri

- Original Message - 
From: Chris Fant [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Saturday, October 13, 2007 2:31 AM
Subject: Re: [computer-go] Former Deep Blue Research working on Go



How do I find the ones narrated in English?  Do they exist?  The
closest I could find was this one which is almost unwatchable.

http://www.youtube.com/watch?v=uArhCnJu7LM


On 10/12/07, Ray Tayek [EMAIL PROTECTED] wrote:

At 07:36 AM 10/12/2007, you wrote:
Chris Fant wrote:
  Ho can I find Go vids on youtube?  Searching for go obviously
 does nothing.
 
 
Atari was also a good keyword here. There it is:
http://www.youtube.com/watch?v=qt1FvPxmmfE

searching for: go baduk weiqi

returns a bunch.

---
vice-chair http://ocjug.org/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Re: Former Deep Blue Research working on Go

2007-10-13 Thread Harri Salakoski



Considering how monte carlo actually works, I think it's plausible
to argue that it works best where the distance to endgame is small.

Is it then natural use it only after middle game.
Build fuseki-joseki-extend scripted engine and change for monte-carlo engine 
in middle game?


t. harri 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] U. of Alberta bots vs. the Poker pros

2007-07-26 Thread Harri Salakoski
Every hand has theoretical winning propability but if you bet exactly according 
winning odds you tell too much about your hand,
other players fold and call and raise according your bets, only when they think 
they have better cards, that is bad, obivious book play works only starter 
levels.

In poker you example should not raise too much, very often opponent has for 
example nuts, such cards that they can't lose, so it is stupid to but all your 
money in if there is very little money in bot. If you raise too little that is 
bad either as you not get full value of your good cards and turn or river can 
give better cards for opponents. I don't think have you mist anything, but 
_modeling opponents behaviour_, that is quite much ask from bot. So what is 
best play, it depends also how you play, but how bot plays, humans are good for 
observer simplified behaviour and find weak points from bot. 

Other hand I think that it should be possible easily measure bots quality, even 
lot faster and easier than in go game as one hand typically can be played very 
fast. You could play in one 300 turn go-game 300 poker rounds, so quality of 
poker bots should be easily evaluated, in 1 rounds small differences start 
to show up, but that is maybe out of topic.

So following things should fafor bot in poker:
Exact mathematic.
Exact memory is possible. In Prisoners dilemma, atleas if you remember 
longer opponent moves than your opponent remembers
your moves, it does not quarantee your win but it makes it easier if you 
can use your data right.
Bot don't lose temper, and don't care if it is losing or not, attleast 
starter levels thats not case in humans.
Also like money poker is quite much waiting for opportunity and bot should 
have time to wait.

Practical issues are imho much more demanding in go-game AI than in poker AI. 
For example generating random table in go-game and poker was nice to notice how 
easy it is generate random flop in poker...

t. Harri

- Original Message - 
  From: [EMAIL PROTECTED] 
  To: computer-go@computer-go.org 
  Sent: Friday, July 27, 2007 4:26 AM
  Subject: Re: [computer-go] U. of Alberta bots vs. the Poker pros


  I don't understand this. For a given hand the odds of winning can be easily 
calculated for poker and the best play can be formulated accordingly. It's like 
to program a com[uter to win a coin toss. I would be surprised if any side win 
big. The only thing a computer can to is to model opponent's behavior, which 
may deviate from the best play. What did I miss?




  DL



--
  AOL now offers free email to everyone. Find out more about what's free from 
AOL at AOL.com.



--


  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Intelligence

2007-07-22 Thread Harri Salakoski

A hypothetical almighty oracle that already knows the correct answer
to every question and the right response in every situation would
never have to adapt. Hence evidence of intelligence according to your
definition would not be observed.


I think it is normal to expect, or at least in my common sense, that 
rationality is somehow constrained with practical limitations. So that 
anything intelligent in world can't know everything. Because of that 
intelligence means and needs adaptation for current context and enviroment 
kind of choosing what needs to be known depending of goals ofcourse. So 
because rationality is bounded it needs adapt because world around this 
intelligent behaviour (allways) changes, to staying intelligent it needs to 
adapt its enviroment which is never same than it was before, expect maybe in 
game of Go which nesessary don't need adaptive intelligence kind of static 
intelligence should be enought then but then nobody needs to call that for 
intelligent anymore and so on, but that does not matter because such 
philosophical questions are rarely solved anyway so thats fine.


t. harri



- Original Message - 
From: Jim O'Flaherty, Jr. [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Sunday, July 22, 2007 6:40 PM
Subject: Re: [computer-go] Intelligence



Erik,

In perfect theory, I agree with you.  In the practicality of attempting to 
generate more effective computer Go players, I disagree.


In theory, there is a perfect girlfriend for me.  In practicality, there 
is my adapting to make the current girlfriend good enough and better, with 
perfection never really obtainable.



Jim


Erik van der Werf wrote:

On 7/21/07, Weimin Xiao [EMAIL PROTECTED] wrote:

Intelligence is the ability to adapt or learn.


A hypothetical almighty oracle that already knows the correct answer
to every question and the right response in every situation would
never have to adapt. Hence evidence of intelligence according to your
definition would not be observed.

IMO the adaptation is just a means to an end. The end (Intelligence,
whatever it is) does not necessarily require adaptation.

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


[computer-go] Pattern definition problem

2007-07-22 Thread Harri Salakoski
Hi has anybody defined nice pattern definition markup for situations where 
optimal playing 

depends game history.

My example situation is from 2*2 board.

.X

O. 

If game is 

[passA1B2A2B1A2A1A2B1] -  [E-A1] Whites turn 2,  E-A1 is optimal move for white

[passB2A1A2B1A2B2A2B1] - [E-B2] Whites turn 2, ,  E-B2 is optimal move for white

I need to model that difference using some kind of pattern language, but I am 
wondering if somebody is done

nice practical definition for that allready.

ty. 

t. Harri Salakoski

http://sourceforge.net/projects/narugo






___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Draughts / Checkers solved

2007-07-19 Thread Harri Salakoski
Awesome. I believe similar aproach also in game of Go.
I short that there is no limit how smartly you can store information and thats 
why I believe Erik e.t.c research in small board sizes is important and why I 
have tried to study TSP kernighan kind of algorithms those don't search even 
1/100.. of all possible routes in big problem instances.

For example if some patterns say from 100 board positions that Black is 
winning thats is end of search
in that branch. Like it was in this group earlier random position is allmost 
end position in go game and so on and believe such facts minimize impossible 
looking search space enought and make search possible in near future atleast 
in 9*9 board.

 Of the 5 x 1020 possible positions, Schaeffer needed to evaluate only 1014 
 to prove that checkers, played perfectly, results in a draw.
Even similar things are lot harder in game of go, but there is living groups 
you can prove you can get minimun scores for white and black and atleast in 
theory you can reduce search space a lot. In NaruGo project goal is generate 
patters which make search faster to found new better patterns and repeat that. 
http://sourceforge.net/projects/narugo

t. harri

  - Original Message - 
  From: terry mcintyre 
  To: computer-go 
  Sent: Thursday, July 19, 2007 11:31 PM
  Subject: Re: [computer-go] Draughts / Checkers solved


  http://www.spectrum.ieee.org/jul07/5379 seems to be a fairly decent article 
about the Chinook 
  teams' solving of the Checkers game. 

  To recap, they built an endgame database which has all board positions with 
10 or fewer pieces. Once you reach the endgame database, you no longer expand 
the tree; the solution is known. 

  Start from the root of the tree, one uses best-first search to narrow the 
search to those positions which are in the endgame database.

  Of the 5 x 1020 possible positions, Schaeffer needed to evaluate only 1014 
to prove that checkers, played perfectly, results in a draw.

  Terry McIntyre [EMAIL PROTECTED]
  They mean to govern well; but they mean to govern. They promise to be kind 
masters; but they mean to be masters. -- Daniel Webster



  - Original Message 
  From: Álvaro Begué [EMAIL PROTECTED]
  To: computer-go computer-go@computer-go.org
  Sent: Thursday, July 19, 2007 1:17:59 PM
  Subject: Re: [computer-go] Draughts / Checkers solved


  On 7/19/07, Chris Fant [EMAIL PROTECTED] wrote:
   On 7/19/07, steve uurtamo [EMAIL PROTECTED] wrote:
my guess is that you are in fact missing something --
it seems unlikely that they enumerated _on disk_ all
possible games and their correct response moves.
   
anything taking up less space than that would require
something more intelligent (or at least with a better
capacity to collapse situations) than brute force.
   
please someone set me straight -- if it's simply a list,
generated one at a time, of board positions and response moves,
i'll have a merry laugh tonight.
   
s.
  
  
   You would not need to enumerate positions that cannot be reached when
   neither player is playing perfect.   Not sure how many that leaves.

  That leaves about the square root of the total number of nodes, if you
  are using a good heuristic to sort the moves.
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/





--
  Got a little couch potato? 
  Check out fun summer activities for kids.


--


  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] creating a random position

2007-07-08 Thread Harri Salakoski
In normal board size 1% random positions is legal, so it needs some rounds, 
but method is still superior propably any other if position must be random.

t. Harri

- Original Message - 
From: Paul Pogonyshev [EMAIL PROTECTED]

To: computer-go@computer-go.org
Sent: Monday, July 09, 2007 12:38 AM
Subject: Re: [computer-go] creating a random position



George Dahl wrote:

How would one go about creating a random board position with a uniform
distribution over all legal positions?  Is this even possible?  I am
not quite sure what I mean by uniform.  If one flipped a three sided
coin to determine if each vertex was white,black or empty, then one
would have to deal with stones with no liberties somehow.  Could those
just removed?


As I remember from theory of probability, you can create such a uniformly
random position this way[1]:

 1. create a really random position, i.e. traverse all intersection and
assign a black/white/empty state at random to each;

 2. if it happens to be not legal, discard and repeat step 1.

I believe it should be very fast, and this mustn't be difficult to check.
I.e. rate of discards should be low enough for speed of algorithm to be
speed of step 1 times C, where C is small.

However, this will tend to give you very artificial-looking positions.
Whether it is fine for your use-case, you know better.

 [1] http://en.wikipedia.org/wiki/Rejection_sampling

Paul
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Re: pseudoliberties

2007-04-01 Thread Harri Salakoski
It seems kind of dream algorithm to be able extend results for bigger board 
sizes. Exact knowledge is allways good anyway.


So amazing, it is suitable for max pseudo liberties for one string, count of 
legal board positions,
maybe there is other properties for board this fits or more complex issues 
which this algorithm could be somehow extended any studies about that? I 
need to study it anyway, thanks.


t. harri
- Original Message - 
From: Gunnar Farneback [EMAIL PROTECTED]

To: computer-go computer-go@computer-go.org
Sent: Sunday, April 01, 2007 9:22 PM
Subject: Re: [computer-go] Re: pseudoliberties



Chris wrote:

Just out of curiosity, how did you calculate these numbers?


Dynamic programming, along the same lines as the algorithm to count
legal board positions which was discussed on this list two years ago and
is described in depth in the paper linked from
http://homepages.cwi.nl/~tromp/go/legal.html

/Gunnar
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/ 


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Re: A nearest-neighbor heuristic

2007-03-14 Thread Harri Salakoski

On Mar 13, 2007, at 23:27 , Peter Drake wrote:

Hmmm -- p. 735 of Russell  Norvig's AI text contains a strong  argument 
that nearest-neighbor methods cannot be trusted for high- dimensional 
data.


AFAIK that's because when you add more and more dimensions and try to 
calculate the distance
between two data points you get less and less different values the  higher 
the number of
dimensions. You have so many dimensions that have the same distances 
(between different sets
of data points I mean) that the few that are different get lost. Or 
that's at least that's what

I've been told.

Urban
- --
http://bettong.net
Explanation makes sense. My comment is maybe out of context, sorry about 
that but just ask this anyway. In other context? EA search, I had idea of 
using dynamic distance functions help local optimum problem. Kind of 
accepting fact that don't know how distance should be calculated. For fixing 
that distance function changes in search time dimension, and weights 
different dimensions differently, so algorithm has even possibility to 
advance from local optimum in longer search run and so on don't converge 
local optimum. I don't know/remember any studies related dynamic distance(in 
my case dynamic fitness) function but kind of intrested if there is as it is 
kind of simple idea. It is kind of biologically realistic to think that 
enviroment changes and values different attributes differently depending 
situation.
This allows such behaviour that small change in one dimension can cause big 
difference between data-points without knowing anything about data-point 
semantics.


t. Harri

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A nearest-neighbor heuristic

2007-03-08 Thread Harri Salakoski


http://sourceforge.net/projects/narugo
--
Is project for pattern matching AI generation.
Has pattern profiling, EA and NN e.t.c.

if java1.5,xml are part of your tools check that.
t. Harri


From: Stuart A. Yeates [EMAIL PROTECTED]
To: computer-go computer-go@computer-go.org
Sent: Thursday, March 08, 2007 12:19 PM
Subject: Re: [computer-go] A nearest-neighbor heuristic



On 3/8/07, Eduardo Sabbatella [EMAIL PROTECTED] wrote:


Regex'like, pattern maching, a lot have been done on
this direction. The most complex pattern db / engine
is not good enough to beat the modest, simple MC
engine.


I'm aware of the challenges.

cheers
stuart
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Situational super KO?

2007-03-07 Thread Harri Salakoski
Thanks for detailed explanation, so first similar looking black position has no 
ko and next has.

t. harri
  - Original Message - 
  From: Erik van der Werf 
  To: computer-go 
  Sent: Wednesday, March 07, 2007 10:46 PM
  Subject: Re: [computer-go] Situational super KO?


  On 3/7/07, Harri Salakoski [EMAIL PROTECTED] wrote:


   Hi
   As reading
   http://www.cs.unimaas.nl/~vanderwerf/pubdown/solving_go_on_sm all_boards.pdf
   don't understand chapter 5.1. Following 3*3 go game. 

  Maybe you were not actually reading the above link, but chapter 5 of my 
thesis? The thesis contains more info, so that's fine, but then it's better to 
use that as reference.

  All can be found at http://erikvanderwerf.tengen.nl/publications.html

 
   -A2 
   eee
   bee 
   eee 

  Don't like your formatting :-(


  ...
  #..
  ... 

   -B2

  ...
  #O.
  ...

   -B1
  ...
  #O.
  .#. 

   -C3 - can be bad move according chapter 5.1

  Subtle details in the rules can occasionally make a huge difference.

  ..O
  #O.
  .#.

   -B3? - don't understand how black wins using this move(a in diagram 10) 
  .#O
  #O. 
  .#.

   -A3
  O.O
  #O.
  .#.
 
   -C2
  O.O 
  #O#
  .#.

  !!! situation: white to move, no consecutive passes, no point illegal due to 
basic ko !!!
 
   -A1
  O.O
  .O#
  O#.

   -B3
  O#.
  .O#
  O#. 

   -C1

  O#.
  .O#
  O.O

   -A2
  .#.
  #O#
  O.O 
 
   -C3 
  .#O
  #O.
  O.O
 
   -B1
  .#O
  #O.
  .#O
 
   -A3
  O.O 
  #O.
  .#O



 
   And now black has no legal moves as position repeats?
   at least my test code says so. 

  Move at C2

  O.O
  #O#
  .#.


  situation: white to move, no consecutive passes, C1 Illegal due to basic ko 


 
   Somebody could enlight me what I have misunderstanded chapter 5.1. 

  The situation is different. For details see section 2.2.1 and appendix A of 
the thesis, or the section about the rules in the ICGA article.

  Erik




--


  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/