Public forum discussion.
20 Jan 2014
It looks like there are two new Hex users called "mohex_bot" and "wolve_bot" (they joined in January):
http://www.littlegolem.net/jsp/game/game.jsp?gid=1606855
For those who don't know, wolve and mohex are the strongest Hex programs available, developed by the University of Alberta.
21 Jan 2014
Excellent! Do you know what their target rating is likely to be?
I have no problem desperately trying, but failing, to not fling ratings points in their direction a couple of times until they're closer to where they should be. It's always painful on the way up, but everything levels out in the end, so I encourage others to join the hex13 MC party...
21 Jan 2014
21 Jan 2014
Over 2000 but not by much... but their strenght/weakness is probably different from that of humans... i think they probably play 2600 near the end and sub 1900 near the start... :)
21 Jan 2014
Playing B12 and L2 as first 2 moves the bot is over 2000 level? This is insane, let me play the MC then :>
21 Jan 2014
B12 was probably ok after A10, but I agree L2 is pretty crazy. But look how the game turned out!
It's also interesting to go back and try to find Ignatius's mistakes.
21 Jan 2014
I came to this thread to confess that I was about to lose a game against mohex, but I see that this has already been discussed. I was not expecting the bots to be very strong, so I played very quickly the first several moves. My 25 b5 was a silly mistake. Clearly I made some mistakes before this but I haven't gone back to analyze. The L2 J3 H4 sequence led me to believe that mohex was adopting a very simple-minded strategy, but these moves were more useful than I initially gave them credit for.
21 Jan 2014
Regarding L2 + B12:
Thirty years ago I wrote a very simple hex-playing program which used a simulated electrical network to select promising moves (and also to evaluate board positions) and then did some alpha-beta pruning, looking ahead four moves. The program worked surprisingly well, given the very short amount of time I spent writing the program. Initially I was disappointed with my program, because it tended to play its first two moves at L2 and B12 (or rather, the equivalent locations on a smaller board). But I soon found that L2 and B12 were stronger than I realized. For a while I adopted this strategy in my own games.
21 Jan 2014
What I find strange about L2 in this particular game is that after i9, the second player can play j10 and gain some strength on the left reasonably efficiently. Instead, Mohex chose to play L2+j3, gaining a ladder escape on the obtuse corner, which I think is less efficient here (although in general I like obtuse corner escapes).
By the way, Ignatius, 9.f5 was probably a mistake... I didn't really analyze, but 9.g5 feels a lot better.
21 Jan 2014
Yes, I didn't put much thought into 9.f5. At that point in the game I did not have much respect for my opponent.
21 Jan 2014
Looking forward to playing them.
21 Jan 2014
Hello,
I met two of the programmers of "MoHex" and "Wolve" during
a computer games conference in August 2013, in Japan.
If I remember correctly after their talk (on Hex programming)
it was, amongst other things, discussed that it might be
interesting to test the bots on LittleGolem.
By the way, in that conference also Richard Lorentz presented
his work on Breakthrough programming.
Ingo.
22 Jan 2014
22 Jan 2014
Arek, I think the bots have some randomness, so I don't think it's likely that the bot will play the same game.
23 Jan 2014
This time I donated some ranking points to a bot...
Gotta admit I played badly and also miscalculated the finish, but the wolve_bot took his chances perfectly I would say. I didn't expect this after seeing some L2 or L3 play. We have to be really careful against AI!
23 Jan 2014
It looks like they play a perfect ending ;-)
23 Jan 2014
This is exciting - the existence of strong bots could really expand our Hex knowledge!
I just started a game against mohex_bot. I'll try to play carefully. Let's see how it goes! (Of course, don't comment on the game before it's over).
23 Jan 2014
just in case mohex_bot is reading :P
23 Jan 2014
mo_hex vs shalev game so far: 1.c2 2.f8 3.j9 4.h7
First L2 mania, now 4 H7... seems they play like me.. or i play like them..
hehe :)
and in fact i had noticed they're strong at the end while playing with mohex some years ago, on my computer... i've already experimented with them... :)
23 Jan 2014
23 Jan 2014
@Gregorio: LOL
@lazyplayer: I just played 5. J6. I think mohex's H7 is not very good... I'd be embarrassed if I lost from here.
23 Jan 2014
shalev, i agree it is not very good but it is not totally absurd.. some games can be won by playing like that.. but.. only some :D
23 Jan 2014
shalev, i agree it is not very good but it is not totally absurd.. some games can be won by playing like that.. but.. only some :D
24 Jan 2014
shalev, will you post a full commentary on your game when it's done? That would be very interesting.
24 Jan 2014
@Art Duval: Sure, I'll be happy to!
26 Jan 2014
28 Jan 2014
There are several mohex moves that seem very very odd to me, and I predicted lots of Maciej's moves, so I'm happy that in the face of a mental box, I can occasionally pick a right move.
Maybe mohex gets performance anxiety when faced with someone so strong.
I'm glad to have donated a few dozen points already to their flotation campaign, I'll sign up for a few more MCs...
28 Jan 2014
MoHex is likely the strongest engine, but could use improvement. For example, one of the parameters you can set is number of threads, but when increased beyond 1, it crashes. Maybe some of the code for the solver algorithm, which recently mapped out 9x9 and is all about multiple thread management, could be incorporated?
28 Jan 2014
Just finished my game against mohex. I'll write up an analysis.
29 Jan 2014
!http://www.trmph.com/diagram/1,hex,13,c2f8j9h7j6j5e7f6i6j7i7i4h5h4g5g4e5f5d9e6c7d8b9b12c10d11c12c11e10,-1!
Dumb question time again! Looking at the ladder that formed, and your escape, did mohex play that little sequence as best he could? I tried a few other alternatives for mohex deviating from the same row after a different number of steps across, and with white in my incapable hands each one lead to your escape providing a connection for black. So was that move 29 effectively a black connection to the bottom?
(Feel free to just push this to one side until later - don't get disturbed from the bigger task.)
29 Jan 2014
Phil, that's right: move 29 is connected to the bottom. In fact, already at move 21 my c7 stone is connected to both the top and the bottom. I can probably prove I had a win even before that, but I think c7 is the first stone that is guaranteed to be in the winning path.
29 Jan 2014
Yeah, thanks for that, I've just read through your full game, and worked backwards from 29 to see where *I* can actually detect futility set in. I'm happy that I've managed to push it back at least 5 plies. It would be nice to have a strong AI to play against, so that I can try out my what-if's. I'd like to check if I really could connect to the bottom from move 24 onwards, against any white play, for example.
2 Feb 2014
@shalev: interesting! Sometimes when I'm pretty sure I'm in a losing position that (but it's maybe hard to see that it's losing), especially to a lower-rated player, my only hope is to make the game as confusing as I can. (I prefer not to give examples, because I don't want to embarrass anyone.) Maybe this is the same thing.
So, maybe not "stupid" moves when it sees the opponent is winning, but maybe less straightforward. It could be a design feature, or it could be that the less straightforward move leads to a longer or more complicated game, in some measure. But I'm just speculating.
3 Feb 2014
"Does wolve play stupid moves if it can see a forced win for the opponent?"
That is very likely. Monte Carlo Go programs often do. When all moves are really losing, it's hard to make the program pick one that's sensible from a human perspective (at least without sacrificing play strength).
But last time I checked, Wolve was the traditional alpha-beta search program and MoHex the Monte Carlo one, so it might simply be a bug. I made that error in a connect four player I wrote once, it didn't value later losses more highly than early losses, so as soon as it reached a theoretically lost position, it would play randomly.
7 Feb 2014
2000+, yeah, right!
If there's anything interesting in that game, I'd like to know, I suspect there isn't, except from a bug-squashing perspective in MoHex. I played my same naive 1600 "strategy" of panicking every move and playing reactively. I think the only move where I thought I didn't fit that pattern was 31, where I thought I could push the game in the direction I wanted. Didn't feel stressed until move 72, as I hadn't envisioned that, it disrupted the neat easy finish that I guessed ought to be there. Endgame-wise I probably played it terribly, I was just trying to keep in mind that I always need to choices of where a connection should be, and each of those two choices should leave me with 2 choices... I have no idea when the game was academically over - some insight into the end would be nice if someone has the time. Similarly, what was the final goof from the bot? I don't remember seeing any, as I said I felt I was just following his lead for the first 30 moves of the game, but of course, I only have very shallow insight into the game.
I signed up to the MC in order to charitably donate ratings points to the bot - all such charity is revoked, it's gonna have to find its own level without my help!
Thanks in advance for any feedback which might help my game.
Right, I'm buzzed now, I need a beer!
7 Feb 2014
MoHex's 46.b4 struck me as a bad move.
8 Feb 2014
Congratulations Phil!
I took a look at the game. It's somewhat complicated. I think Phil wins after move 32, but I didn't verify 100%. Move 34 is terrible, so I'm more certain after that. I'm not sure if mohex had a way to win at move 32. It's complicated, but even then position is likely already lost. Mohex's chances are possibly better if he deviates at move 26:
http://www.trmph.com/hex/board#13,l12g7j6j5h6h7d8d9b10b11c10c11d10d11e10e11f10f6e6c9b9c8b8c7b7c5
But I actually think mohex is behind most of the game. I don't really like move 18, and white's opening moves are questionable.
This is interesting, because I was sort of expecting the game to go back and forth, with both players making mistakes and the winning player switching. Instead, it seems like black is just leading the whole time...
I wonder if other players agree with me about this. I definitely could be mistaken in my analysis.
8 Feb 2014
@MG: Yes - 46.b4 elicited a "?!?!?" from me.
@Shalev: Thanks - I'm glad that the time I made a decisive move correlates with the bot entering a state of almost certain loss. If only I knew why I made that move! I don't know if 34 actually is terrible, but it took only a fraction of a second to respond with a move that I thought made my connection easier. However, that's probably one definition of a bad move. I don't know what I'd have done with your move 26, and that makes it immediately superior to what the bot did.
Who runs the bots? Can we ask them (the bots, but presumably via their human proxies) why they made the choices they did. If they're MC, then can the moves be run again and again, to see if the bot has consensus with itself? This is for the benefit of the bot, situations like move 26, 34, 46 are surely good test cases?
8 Feb 2014
Don't write a sequence of interobangs, as they'll get converted into
10 Feb 2014
25 Feb 2014
I'm pretty sure that the bots can see (with 100% certainty) if they're winning or losing after around 30 moves or less. It would be a nice feature if they just resigned at a set moment when losing - they cannot do "tricks" after all.
Maybe I'm overreacting, but it really annoys me to play until the very last piece of the winning line is put on the board... What do you think?
25 Feb 2014
@arek Yes, it's stupid for the bots to play until the very end. It should be reasonably simple to come up with a resignation strategy. For example, the canonical 9x9 game posted in a pdf recently seemed to stop at exactly the right time; the opponent's win should be "trivial" in some definable sense.
25 Feb 2014
The give up algorithm should consider the opponent's rank.
25 Feb 2014
The only Hex engine I know that would resign was Six.
At least, this isn't Amazons :-)
25 Feb 2014
If introducing the give up algorithm is too time consuming then I think it would be just right to set a maximum number of moves - say, 40 for 13x13 board. It is extremely rare for the game not to be obvious after 40 moves and don't tell me that bots might not recognise a losing position!
Do the bots' authors read this forum? :)
25 Feb 2014
Conway also writes about how to play when in hopeless position. One then should make it as hard as possible for the winner, give as much chances to loose as possible, he says.
The human "give up algorithm" is quite complex and takes into account not only the (objective) strength of the opponent but expresses the believe that there is no chance to win and also it is a social concept to not bore others. Please note that these are relative terms in the human world, e.g. it might be a boring game for a strong player while the opponent still believes in the possibility of a win. Moreover, these terms are hard to implement.
However, it certainly would make it more enjoyable for humans when the algorithms would be tuned to play more like a human. Not only wrt. to resign, e.g. the Havannah bots often go to much for the sudden death instead of trying to achieve strategic goals.
@Arek: Right, if it is _impossible_ to win, then the bot should resign. But "impossible" is relative to the worst possible player, not guys like you.
26 Feb 2014
Arek, 40 is a bit too little, no? I played several games that lasted longer than 40 moves, including a few against you.
50 moves for 13x13 sounds more reasonable, but it could be over a lot sooner depending on the situation. I think it's reasonable to ask the bots to resign when they detect that they lost for sure. If that's too harsh, they can maybe spend a few moves testing the opponent, but not too many. Any player good enough to get into a surely winning position against the bot is likely to see the win at that point.
26 Feb 2014
@shalev: Our recent game was uncommonly long and it was still not obvious only at move 35 - http://littlegolem.net/jsp/game/game.jsp?gid=1597330&nmove=35.
Later I was blindly following a bad idea by confusion.
Hence I think 40 is more than enough considering that bots are unable to attempt to trick humans, even more than that - they play nonsense near the end.
Also na_wspak made a good suggestion. The number could differ regarding to opponent's rank.
I'm not persistent that this is a good idea, but this is the easiest idea to implement.
26 Feb 2014
What exactly do you mean by "to trick"?
You are right, better give up than play nonsense but I can not see why, in principle, a machine can not play in a way that makes the winning path as long as possible.