Chess - Play & Learn


FREE - In Google Play

FREE - in Win Phone Store


What engine could defeat Houdini 2.0 so decisively?

  • #21
    Scottrf wrote:

    "Can someone who is good at noticing computer-like moves confirm that the opponent does in fact play like a computer and isn't just a very strong human?"

    I'm not an expert by any means but I think a human would play 44. fxg5.

    I just calculated the position with Deep Rybka 4 calculating for 20 seconds where Rybka suggested fxg5 as the best move, where it apparently leads to a mate in 11. Rybka also said that Qd4, which was what the unnamed opponent played, also leads to a mate in 11.

  • #22

    I said fxg5 as a practical choice of taking a massive material advantage rather than any calculation to mate.

  • #23
    Scottrf wrote:

    I said fxg5 as a practical choice of taking a massive material advantage rather than any calculation to mate.

    Oh I know, that's what I would think any human would do too, but there are apparently (according to Rybka) two ways to checkmate in 11 moves, and the opponent apparently chose the one that didn't go for the material advantage...

  • #24

    See, Houdini 2.0 is apparently the strongest engine period (except for Houdini 3 now). Yet it was defeated easily by some random engine...? And last I checked even Houdini 3 had mild difficulty beating Houdini 2...

  • #25

    Thanks for info Alext190. Do you have a link to that website?

  • #26
    KahZeeMin wrote:


    While the topic is "What engine...?", the "why had engine missed this move?" theme seems to be offtopic, but I'm really interested, so let me continue :

    First of all, I've never written a chess engine, so I may be wrong and probably I am, but:

    1. 50.Qg3 and 50.Qa7 are both non-taking moves, according to the link you gave they are to be in the same queue and can be checked in any order

    2. According to the link you gave alpha-beta alhorithm implements brunch&bound, so if 50.Qg3 node is found to be winning, all other nodes, including 50.Qa7 are to be cut

    3. I can't see why iterative search means all the-same-depth moves first. The definition in the article says about avoiding recursive call, and that's it. Any implementation is possible. But if your interpretation is correct I can't see the way to overlook that 50.Qa7

    At last, I saw such a strange moves while plaing against Chessmaster 11 (30 min game, 1600-1700 rating). Hopefully, I'll remember to save the game then see them again.

    I think it's on topic because finding out why the "engine" missed the move could explain the original question. Some of the moves played aren't the moves a chess program rated at 3000 would play hence we might not be looking at a real game.

    1) there's far more than just piece values included in this move ordering scheme - the piece value calculation is just the tip of the iceberg. Position on the board would be important, how many squares does it control, is it protected etc etc.

    2) brunch&bound(??) - perhaps I should read the link myself Wink Alpha beta searching will only prune moves which can be proved to offer a worse result, it certainly doesn't just stop searching when it finds a good move. If the first move you look at proves to win you a pawn. Now imagine looking at another move and one variation by the oponent produces equality - we can see that the oponent does better here so there's no point completing the tree for this 2nd move as we know we'd do better with the 1st move. It's a difficult concept but that's the easiest way I can explain it.

    3) the idea of iterative searching is to explore the tree to a certain depth. Order the moves and, if there is still time left, try a deeper search. This process is iterative so it might start searching at a depth of 1 ply and then do deeper and deeper searches up until say 8 ply. During these searches the program will complete any captures that are outstanding so even if the search depth is 1 it will still finish of any exchanges to ensure it doesn't miss something that is just beyond it's horizon.

    4) one of the difficulties of writing any games program is not just making it play well, but also making it play realistically at lower levels. You can include a random influence on each score but this makes play eratic - sometimes the machine plays fine then it gives away a pawn for no reason - this sort of thing makes a program frustrating to play against. I spent a moderate amount of time trying to make my own program reasonably entertaining to play against (for your (and my level)) - I don't like playing programs that crush me without even seeming to think, I also didn't like playing programs that make unnatural mistakes in order to achieve a lower level of play.


    PS the terminology in chess programming is quite complex, as are the ideas and I don't mind admiting I often get the terms mixed up. As a hobby, I can't think of anything much more complex, so I figure this is to be expected. This link describes much of what's used in chess programming and does a far better job than me at describing some of the ideas that are used.

  • #27

    Thinking about it makes me belive that fastest checkmate possible isn't a goal for an engine, just a sideeffect of optimization techniques.

    Let me explain. Imagine an engine having 6 moves depth search. Imagine there is two ways to checkmate the opponent, one way leads to checmate on move 80, while other one - on move 81.

    This way the engine will find the first way while evaluating move 74, while second way is out of search depth yet. The second way will never be found becouse the engine will stick to the checkmate allready known, it's evaluated allready, cached allready and goes first in that move ordering procedure to reduce amount of time spent.

    While it's a sideeffect it's not necessary to happen. If a cache miss happens for any reason (unexpected opponent's move for example) the engine has to work like it never saw this game before, and I belive engine sticks to the first checkmate found.

    Why do I think so? Well, "Alpha beta searching will only prune moves which can be proved to offer a worse result", right? The only moves promising a better result are to be evaluated, others are to be pruned. So, if a checkmate is found, what will be that alpha-bound to the rest moves to be checked? Right. Over 9000.  There's no possible result better than checkmating, so no move can overrun the first checkmating move found.

  • #28

    pfren: 12 or 18-ply in one second?

    Yeah, sure...

    I want some of the stuff you are smoking. Urgently.

    I didn't reply to this immediately because I wanted to speak to the other chess program developers to see what search depths they get. I'll also mention that the search depth isn't fixed in stone as it depends on the complexity of the position. I was told Stockfish can do a 16 ply search in one second, more in endgames. This is using a modern quad core processor, using each core fully and having hash tables switched on. The latest versions of Critter and Houdini can do slightly better. I think I was correct in what I originally said.

    KahZeeMin: Thinking about it makes me belive that fastest checkmate possible isn't a goal for an engine, just a sideeffect of optimization techniques.

    A checkmate gets a far higher score than any material, even 9 queens. A checkmate in 2 ply will score higher than a checkmate in 3 ply. The alpha beta pruning will only prune moves that are proveably worse so if the program can already see a checkmate in 3 ply and it then evaluates a move which allows the oponent to avoid the checkmate (but give up a tonne of material) it will prune this part of the search. If it then sees a move which gives a checkmate in 2 ply, it will see that this is better and so not prune. It's a very difficult concept to try and explain in a paragraph though, I'd suggest rereading an article on alpha beta pruning.

  • #29

    If you mess with engines you can get different results.  Such as short time constraints best engines can lose.  There was some nameless engine that was beating Rybka at bullet back when Rybka was the best.  I woudln't want to analyse with the computer bullet champ.  Match them in 40/40 games on the same machine and let us know :p

  • #30

    Going over the game with houdini on my end, it must have been forced to move instantly rather than being given one second per move. The output from my end even at one second show black played a horrible game. I can't even get Houdini to play 18...f6 on any of it's output timelines. Meanwhile white actually agrees more with my Houdini than black does, so I suspect there was some unfair time advantage going on.

    What hardware did the guy use for Houdini? A watch? Anyway, the game is both pointless and worthless from a "look at houdini lose this game" standpoint.

  • #31

    I don't understand why the two engines weren't given identical time controls. (Technically impossible?) That would have enable a fairer comparison. As it is, I'm not sure the result means anything at all.

  • #32


    Got it. Scoring faster checkmate higher really makes the trick. I could not and still can't see a natural reason to do so. It's winning anyway, the same outcome, same "1-0". But it's a logical way to force an engine to search fastest checkmates, I have to agree.

  • #33

    About the mate in the end. My Houdini spotted a mate in 30 after 4 seconds and then reduced it even more after 10 seconds to 23 I think. Was a basic endgame tho.

  • #34

    So basically everyone's agreeing that Houdini was not playing at it's top strength for whatever reason and that it simply lost because it was a derp?

  • #35

    I'm pretty sure that's the case yes.

  • #36

    The PC and CPU running any chess engine also matters, a lot. The latest and greatest engines require the latest and greatest PCs and CPUs to attain maximum performance (ie ELO ratings of +3000) You could run the same version of Houdini or any other strong engine on 2 different PCs, and if one is a brand-new state of the art PC and the other is a real antique, ie over 3 yrs old you would undoubtedly notice much better performance on the brand-new PC. 

    AND how the engine is configured matters too, as in how much CPU time and RAM it's alloted, how much time it's given to compute each move or the entire game, how deep it's ply search is set for etc etc. 

    But basically for 99% of the members here including me this is all nonsense the vast majority of chess players DO NOT have any need whatsoever for an engine rated +3000 that runs in a 64-bit OS using multi-processors and blah blah blah blah - most of us can get by quite nicely with  Fritz 11 not Fritz 13, or better yet with the free versions of Houdini, Stockfish, Firebird running in free chess programs such as Arena and Winboard.

  • #37

    Yeah there's no need for the ultimate engine. I'm fine with my engine as long as I can not even make a draw against it.


Online Now