GM Kaufman v.Novag Constellation 3.6 QR Odds (Moves 1-40)

Discussion of computer chess matches and engine tournaments.

Moderator: Ras

gerold
Posts: 10121
Joined: Thu Mar 09, 2006 12:57 am
Location: van buren,missouri

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by gerold »

lkaufman wrote:
Steve B wrote: The Novag Constellation 3.6 Mhz prepares for King-Side Castling(i hope)
with..
10..Nge7

[d] r1b1k2r/ppppnppp/2n5/b3Pq2/2B5/1QN2N2/P4PPP/2B2RK1 w kq - 0 11
I play 11.Ba3, which would normally prepare to develop the queen's rook to d1. Here it at least the bishop will pin the knight if Black castles, and will discourage the freeing move ...d6. Now I wonder if Black will castle or trade on c3 first. So far no clear errors by Black.
Black trade the c3 i think. I would castle if i was to make the move.
If Black trades knights White can check and prevent Black from
castling.
gerold
Posts: 10121
Joined: Thu Mar 09, 2006 12:57 am
Location: van buren,missouri

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by gerold »

Connie has played a great game so far.
Even a top engine makes a weak move once in a while.
So far Connie has made very strong moves.

Best,
Gerold.
Steve B
Posts: 3697
Joined: Tue Jul 31, 2007 4:26 pm

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by Steve B »

gerold wrote:Connie has played a great game so far.
Even a top engine makes a weak move once in a while.
So far Connie has made very strong moves.

Best,
Gerold.
this is a calculated gamble that White made
many of the moves white chose were forcing type of moves ..
offering up material that Forced Connie's hand in a way
the question now...will there be enough material left on the board after White wins back material(inevitable i think) to give white hopes of a won game or will it be drawn(with best play from White)
of course Connie is still in grave danger of being mated or maybe even losing her Q
hopefully she will 0-0 in the next move or two

Will Know Soon Enough Regards
Steve
Steve B
Posts: 3697
Joined: Tue Jul 31, 2007 4:26 pm

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by Steve B »

lkaufman wrote: I play 11.Ba3, which would normally prepare to develop the queen's rook to d1. Here it at least the bishop will pin the knight if Black castles, and will discourage the freeing move ...d6. Now I wonder if Black will castle or trade on c3 first. So far no clear errors by Black.
Jimmy Sherwin Turns to Shelby Lyman as the teletype bells rings

we have a move Shelby!

Connie plays..

11..Bxc3

[d] r1b1k2r/ppppnppp/2n5/4Pq2/2B5/BQb2N2/P4PPP/5RK1 w kq - 0 12

Shades of 1972 Regards
Steve
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by bob »

Don wrote:
bob wrote: Good case is the LMR stuff. I looked briefly at the Stockfish stuff of trying to increase the reduction as you complete more and more moves. But here's a question. Given two sets of moves, MA(i) and MB(i) where both MA and MB have the same number of moves, but in MA the first couple are good and the rest are lemons, while in MB all but the last couple are good. What is the justification for reducing the middle move in MA the same as the middle move in MB, when the middle move in MA is bad while the middle move in MB is good? No justification at all. Just force-fitting a linear value to a polynomial data set, and finding the best liner approximation you can get, even though it is bad in many cases.

I do not like the idea of reducing (or extending) something just because it comes before or after the Nth move in the list. Surely there must be a better reason. I certainly do not do that kind of nonsense as a human. I believe we can do this stuff pretty well (fit the wrong type of curve, but at least optimize the poor fit so that we arrive at the best "poor fit" we can get.)
I think the principle of waiting until the Nth move and then reducing has powerful justification. It turns out that modern chess programs with good move ordering have the characteristic that the first move is by far more likely to the best move than the second, and the second is far more likely than the 3rd and so on. By the time you have gotten to the Nth move, the probability that you have found a good (if not the best) move is extremely high.
If you believe that the "position" of a move should affect its reduction, you can run the test I ran.

Test 1. Rather than just counting fail highs on the first move (which I display in the stats as a rough measure of move ordering) I kept up with fail highs based on the order of the moves. Obviously most (92% on average in my case) happen on the first move. Is there any discernable pattern below that? That is, is there a greater likelihood of a fail high on the second as opposed to the 4th move? Turns out there was. But these were mostly in the good captures, or the killers. So,

Test 2. Count the fail highs by position, but only do this individual counting once I am past the killer move selection. In Crafty parlance, "REMAINING_MOVES" phase of move selection. And guess what? Random. A fail-high was just as likely at the first such move as it was on the last move. Which is why I do not do LMR on non-losing captures, or on killers, but most everything else gets reduced, except for safe checking moves.

granted, if you really do order the moves out in the tree in some way so that somehow "better" moves are searched earlier, then this would make perfect sense. I've not been willing, so far, to evaluate and sort all those moves into some sort of order because of the cost. I may try something with ordering at some point, but at present the "L" in LMR really is not very useful for what I am doing.


But it's not like we just throw out the rest, we evaluate them with a reduced depth search as a "test" to see if they should be search full depth.

So we are actually inspecting every single move pretty thoroughly and leaning on the fact that the best move is almost always one of the first moves considered.

Another way to view this is to speculate how you might improve on this decision without considering a moves position in the move list. The only reasonable thing I can imagine is evaluating each move with a reduced depth search. That is our very best way of evaluating moves. But the hash table move and often the killers are just as good or better than doing that.

Another criteria is dynamic considerations - but we already do that - captures and checks are not reduced either. So what is left?
You might re-think that. I do reduce losing captures, and unsafe checks, and found a measurable Elo gain by doing so. Don't remember the exact amount, but I posted it here a month or two back.


I think the position in the move list is an extremely powerful notion and it's combined with a thorough evaluation on top of that (the reduced depth search) so it's very difficult to improve on this.

You are troubled by the arbitrariness of N and I agree. So you could consider making N variable depending on many other factors such as depth, alpha/beta, score of position, stage of game, type of position and characteristics of moves already tried.
That falls into the trap I was talking to Larry about, that of trying to pick some formula that seems to work overall, but in reality it just works a little better in some positions than in others, just enough better to give a boost, while still being wrong in plenty of cases.

In fact we do a little of that. For LMR purposes we don't count moves that we would not normally reduce anyway. So we require N "quiet" moves before reducing. That is a small but measurable improvement for us and makes N slightly less arbitrary.
Don't disagree there. I try killers because I believe they are good "tries" at producing a cutoff, ditto for non-losing (SEE) captures. But that gives a justification, which is all I am looking for. In Crafty, the remainder of the moves are not in any particular order that suggests that the ones earlier in the list are better moves. I do generate moves by piece, and can control which pieces I search first, and I do control the order of the moves generated for each piece so that advances or centralizing moves come first. But a good knight move might be followed by 8 bad bishop moves followed by a good rook move, etc.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by Don »

bob wrote:
Don wrote:
bob wrote: Good case is the LMR stuff. I looked briefly at the Stockfish stuff of trying to increase the reduction as you complete more and more moves. But here's a question. Given two sets of moves, MA(i) and MB(i) where both MA and MB have the same number of moves, but in MA the first couple are good and the rest are lemons, while in MB all but the last couple are good. What is the justification for reducing the middle move in MA the same as the middle move in MB, when the middle move in MA is bad while the middle move in MB is good? No justification at all. Just force-fitting a linear value to a polynomial data set, and finding the best liner approximation you can get, even though it is bad in many cases.

I do not like the idea of reducing (or extending) something just because it comes before or after the Nth move in the list. Surely there must be a better reason. I certainly do not do that kind of nonsense as a human. I believe we can do this stuff pretty well (fit the wrong type of curve, but at least optimize the poor fit so that we arrive at the best "poor fit" we can get.)
I think the principle of waiting until the Nth move and then reducing has powerful justification. It turns out that modern chess programs with good move ordering have the characteristic that the first move is by far more likely to the best move than the second, and the second is far more likely than the 3rd and so on. By the time you have gotten to the Nth move, the probability that you have found a good (if not the best) move is extremely high.
If you believe that the "position" of a move should affect its reduction, you can run the test I ran.
It's more correct to say that I believe it a rough approximation of quality in relation to the other possible moves.

Test 1. Rather than just counting fail highs on the first move (which I display in the stats as a rough measure of move ordering) I kept up with fail highs based on the order of the moves. Obviously most (92% on average in my case) happen on the first move. Is there any discernable pattern below that? That is, is there a greater likelihood of a fail high on the second as opposed to the 4th move? Turns out there was. But these were mostly in the good captures, or the killers. So,

Test 2. Count the fail highs by position, but only do this individual counting once I am past the killer move selection. In Crafty parlance, "REMAINING_MOVES" phase of move selection. And guess what? Random. A fail-high was just as likely at the first such move as it was on the last move. Which is why I do not do LMR on non-losing captures, or on killers, but most everything else gets reduced, except for safe checking moves.
But as I understand it you don't order moves beyond killers and captures and so on - unless that has changed. What do you currently do about move ordering beyond captures and killers?

granted, if you really do order the moves out in the tree in some way so that somehow "better" moves are searched earlier, then this would make perfect sense. I've not been willing, so far, to evaluate and sort all those moves into some sort of order because of the cost. I may try something with ordering at some point, but at present the "L" in LMR really is not very useful for what I am doing.
It's my opinion that this is a huge blunder in Crafty. If you have tried it and it doesn't work, then you must have done something wrong because it's a huge deal in my program and not just mine but many other programs. Ordering using the original Shaffer butterfly boards (from/to) does not work at all in my program, but if you do it with the piece/to (or piece/from/to) it should boost Crafty significantly. There is a bit of an art to it however, there are things you can do to make sure the later results are weighted more heavily and that is an important part of doing this right. But I'm pretty sure this is one of the biggest things missing in an otherwise very awesome program and it would open the door for you to do more aggressive LMR and probably put your program in the top 10.


But it's not like we just throw out the rest, we evaluate them with a reduced depth search as a "test" to see if they should be search full depth.

So we are actually inspecting every single move pretty thoroughly and leaning on the fact that the best move is almost always one of the first moves considered.

Another way to view this is to speculate how you might improve on this decision without considering a moves position in the move list. The only reasonable thing I can imagine is evaluating each move with a reduced depth search. That is our very best way of evaluating moves. But the hash table move and often the killers are just as good or better than doing that.

Another criteria is dynamic considerations - but we already do that - captures and checks are not reduced either. So what is left?
You might re-think that. I do reduce losing captures, and unsafe checks, and found a measurable Elo gain by doing so. Don't remember the exact amount, but I posted it here a month or two back.
Well sure, I'm talking in generalities not details.


I think the position in the move list is an extremely powerful notion and it's combined with a thorough evaluation on top of that (the reduced depth search) so it's very difficult to improve on this.

You are troubled by the arbitrariness of N and I agree. So you could consider making N variable depending on many other factors such as depth, alpha/beta, score of position, stage of game, type of position and characteristics of moves already tried.
That falls into the trap I was talking to Larry about, that of trying to pick some formula that seems to work overall, but in reality it just works a little better in some positions than in others, just enough better to give a boost, while still being wrong in plenty of cases.
But isn't this an improvement in the direction of specificity? I'm just thinking out loud because as of this date we don't do anything in those areas other than what I mentioned.

In fact we do a little of that. For LMR purposes we don't count moves that we would not normally reduce anyway. So we require N "quiet" moves before reducing. That is a small but measurable improvement for us and makes N slightly less arbitrary.
Don't disagree there. I try killers because I believe they are good "tries" at producing a cutoff, ditto for non-losing (SEE) captures. But that gives a justification, which is all I am looking for. In Crafty, the remainder of the moves are not in any particular order that suggests that the ones earlier in the list are better moves. I do generate moves by piece, and can control which pieces I search first, and I do control the order of the moves generated for each piece so that advances or centralizing moves come first. But a good knight move might be followed by 8 bad bishop moves followed by a good rook move, etc.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by bob »

Don wrote:
bob wrote:
Don wrote:
bob wrote: Good case is the LMR stuff. I looked briefly at the Stockfish stuff of trying to increase the reduction as you complete more and more moves. But here's a question. Given two sets of moves, MA(i) and MB(i) where both MA and MB have the same number of moves, but in MA the first couple are good and the rest are lemons, while in MB all but the last couple are good. What is the justification for reducing the middle move in MA the same as the middle move in MB, when the middle move in MA is bad while the middle move in MB is good? No justification at all. Just force-fitting a linear value to a polynomial data set, and finding the best liner approximation you can get, even though it is bad in many cases.

I do not like the idea of reducing (or extending) something just because it comes before or after the Nth move in the list. Surely there must be a better reason. I certainly do not do that kind of nonsense as a human. I believe we can do this stuff pretty well (fit the wrong type of curve, but at least optimize the poor fit so that we arrive at the best "poor fit" we can get.)
I think the principle of waiting until the Nth move and then reducing has powerful justification. It turns out that modern chess programs with good move ordering have the characteristic that the first move is by far more likely to the best move than the second, and the second is far more likely than the 3rd and so on. By the time you have gotten to the Nth move, the probability that you have found a good (if not the best) move is extremely high.
If you believe that the "position" of a move should affect its reduction, you can run the test I ran.
It's more correct to say that I believe it a rough approximation of quality in relation to the other possible moves.

Test 1. Rather than just counting fail highs on the first move (which I display in the stats as a rough measure of move ordering) I kept up with fail highs based on the order of the moves. Obviously most (92% on average in my case) happen on the first move. Is there any discernable pattern below that? That is, is there a greater likelihood of a fail high on the second as opposed to the 4th move? Turns out there was. But these were mostly in the good captures, or the killers. So,

Test 2. Count the fail highs by position, but only do this individual counting once I am past the killer move selection. In Crafty parlance, "REMAINING_MOVES" phase of move selection. And guess what? Random. A fail-high was just as likely at the first such move as it was on the last move. Which is why I do not do LMR on non-losing captures, or on killers, but most everything else gets reduced, except for safe checking moves.
But as I understand it you don't order moves beyond killers and captures and so on - unless that has changed. What do you currently do about move ordering beyond captures and killers?
I thought I had made that clear. I search the hash move, non-losing captures, and then two killer moves. After that, I throw up my hands and search the moves in the order they were generated, which is, to say, more or less random. Not quite, but close enough. I generate moves from smallest piece to largest, except that pawn moves go last. So knights, ..., queens, and then pawns (castling moves do come first here however, but that's irrelevant for most of the game). Within a piece type, I generate for the most advanced piece of that type first, and within that, I generate moves that advance before moves that retreat. But that is still reasonably random since there are two levels of this stuff.

Rather than then just reducing the last N moves, in the current version, I require searching 1 move (which may well get reduced 1 ply if it is not a hash, good capture or killer). Beyond the first move, I reduce by 2 plies. Again excepting that first batch of moves plus safe checks. My personal feeling here is that the position within a list is the wrong criterion. My original question still stands. What if you have a position where most moves are reasonable, and another position where most are bad. A value of N will be wrong since it will only be optimal for one of those cases. Makes more sense to me to use something else (I have been playing with various ideas here) to decide whether a move looks reducible or not, rather than its position in the move list. If you spend a ton of time ordering the moves, so that there is some correlation between quality and position, this will work better. But it still doesn't handle the case above (A and B).


granted, if you really do order the moves out in the tree in some way so that somehow "better" moves are searched earlier, then this would make perfect sense. I've not been willing, so far, to evaluate and sort all those moves into some sort of order because of the cost. I may try something with ordering at some point, but at present the "L" in LMR really is not very useful for what I am doing.
It's my opinion that this is a huge blunder in Crafty. If you have tried it and it doesn't work, then you must have done something wrong because it's a huge deal in my program and not just mine but many other programs. Ordering using the original Shaffer butterfly boards (from/to) does not work at all in my program, but if you do it with the piece/to (or piece/from/to) it should boost Crafty significantly. There is a bit of an art to it however, there are things you can do to make sure the later results are weighted more heavily and that is an important part of doing this right. But I'm pretty sure this is one of the biggest things missing in an otherwise very awesome program and it would open the door for you to do more aggressive LMR and probably put your program in the top 10.

Are you talking about the history stuff for ordering? I worked on various ideas there for a year and concluded "crapola". The counters look ugly and my Elo went up when I took that out completely. BTW I am a bit more aggressive in LMR than you might guess. :) Been twiddling with it for 6+ months now and have some things that are working better.


But it's not like we just throw out the rest, we evaluate them with a reduced depth search as a "test" to see if they should be search full depth.

So we are actually inspecting every single move pretty thoroughly and leaning on the fact that the best move is almost always one of the first moves considered.

Another way to view this is to speculate how you might improve on this decision without considering a moves position in the move list. The only reasonable thing I can imagine is evaluating each move with a reduced depth search. That is our very best way of evaluating moves. But the hash table move and often the killers are just as good or better than doing that.
Or perhaps a "delta evaluation" for each move showing whether it helps or hurts positionally (not tactically of course).

Another criteria is dynamic considerations - but we already do that - captures and checks are not reduced either. So what is left?
You might re-think that. I do reduce losing captures, and unsafe checks, and found a measurable Elo gain by doing so. Don't remember the exact amount, but I posted it here a month or two back.
Well sure, I'm talking in generalities not details.


I think the position in the move list is an extremely powerful notion and it's combined with a thorough evaluation on top of that (the reduced depth search) so it's very difficult to improve on this.

You are troubled by the arbitrariness of N and I agree. So you could consider making N variable depending on many other factors such as depth, alpha/beta, score of position, stage of game, type of position and characteristics of moves already tried.
That falls into the trap I was talking to Larry about, that of trying to pick some formula that seems to work overall, but in reality it just works a little better in some positions than in others, just enough better to give a boost, while still being wrong in plenty of cases.
But isn't this an improvement in the direction of specificity? I'm just thinking out loud because as of this date we don't do anything in those areas other than what I mentioned.
It leads to a false sense of accomplishment. Suppose your N is better in 50.5% of the time (after tuning) and is therefore worse in 49.5% of the time. Think about the potential gain if you could first improve those cases where you are worse, and then improve those cases where you are only slightly better but could be much better. I do not believe that this is a single-valued property where a single number works. Nor do I believe it is tied to material remaining on the board.

I don't have an answer for this yet, but I have the ability to test a ton of possible solutions.


In fact we do a little of that. For LMR purposes we don't count moves that we would not normally reduce anyway. So we require N "quiet" moves before reducing. That is a small but measurable improvement for us and makes N slightly less arbitrary.
Don't disagree there. I try killers because I believe they are good "tries" at producing a cutoff, ditto for non-losing (SEE) captures. But that gives a justification, which is all I am looking for. In Crafty, the remainder of the moves are not in any particular order that suggests that the ones earlier in the list are better moves. I do generate moves by piece, and can control which pieces I search first, and I do control the order of the moves generated for each piece so that advances or centralizing moves come first. But a good knight move might be followed by 8 bad bishop moves followed by a good rook move, etc.
lkaufman
Posts: 6260
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA
Full name: Larry Kaufman

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by lkaufman »

Steve B wrote: Connie plays..

11..Bxc3

[d] r1b1k2r/ppppnppp/2n5/4Pq2/2B5/BQb2N2/P4PPP/5RK1 w kq - 0 12

Steve
Well, not much need to think here, I play 12.Qxc3. In a non-handicap game I would now prefer White, as the pressure and development are easily worth 1.5 pawns (I count the bishop pair as half a pawn). But given the handicap, perhaps it would have been wiser to preserve the knight with 11.Ne2 as was suggested, as it would have been trickier though not objectively better. Now I have to hope that Black has trouble finding good moves that don't give anything away. A human might return a pawn (after castling) with ...d6, but I don't think computers of the 1980s ever played such pawn sacs.
Steve B
Posts: 3697
Joined: Tue Jul 31, 2007 4:26 pm

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by Steve B »

lkaufman wrote: Well, not much need to think here, I play 12.Qxc3. In a non-handicap game I would now prefer White, as the pressure and development are easily worth 1.5 pawns (I count the bishop pair as half a pawn). But given the handicap, perhaps it would have been wiser to preserve the knight with 11.Ne2 as was suggested, as it would have been trickier though not objectively better. Now I have to hope that Black has trouble finding good moves that don't give anything away. A human might return a pawn (after castling) with ...d6, but I don't think computers of the 1980s ever played such pawn sacs.

Actually i could have included a conditional move(IF 12.Qxc3 ..then..) with my last move as 12.Qxc3 was basically forced but it didn't occur to me to do that until now
however i did wake Connie up extra early this morning to have her reply to the obvious recapture

not such a good idea on my part as instead of playing it safe and Castling she continues to walk on the wild side with...
12..b6

[d] r1b1k2r/p1ppnppp/1pn5/4Pq2/2B5/B1Q2N2/P4PPP/5RK1 w kq - 0 13

Postcards From The Edge Regards
Steve
lkaufman
Posts: 6260
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA
Full name: Larry Kaufman

Re: GM Kaufman v. Novag Constellation 3.6 QR Odds Game

Post by lkaufman »

Steve B wrote: instead of playing it safe and Castling she continues to walk on the wild side with...
12..b6

[d] r1b1k2r/p1ppnppp/1pn5/4Pq2/2B5/B1Q2N2/P4PPP/5RK1 w kq - 0 13

Postcards From The Edge Regards
Steve
I play 13.h3, which takes a square from the Black queen, makes luft, and gives the option of g4 at any time. I don't think Black's b6 was a bad move; she can still castle now or after ..Bb7, or even castle long then. So still no mistakes by Connie.