The Busted Dutch

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: The Busted Dutch

Post by zullil »

Ovyron wrote: Wed Sep 18, 2019 2:13 pm Because setting up the engine and clicking a button so it analyzes a position requires SO MUCH time and energy :roll:
Because I misunderstood your claim. I thought you were claiming that, from the position we started at, you could achieve an advantageous position due to your private analysis and weaknesses in Stockfish. Since you are not, in fact, claiming that, I see no point in continuing. Playing my Stockfish against your Stockfish to an inevitable draw isn't of interest to me.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: The Busted Dutch

Post by Ovyron »

zullil wrote: Wed Sep 18, 2019 3:24 pmBecause I misunderstood your claim. I thought you were claiming that, from the position we started at, you could achieve an advantageous position due to your private analysis and weaknesses in Stockfish.
My claim is that if I can, then you can too. Give someone a fish and they'll be happy for a day, teach them to fish and they'll be happy for life. I suppose.

So if you want, I can tell you how you can "achieve an advantageous position" against Stockfish. Let's say, Depth 70.

This isn't about Stockfish, but about A/B engines in general. This wouldn't work against the likes of Leela, but for those you'd just need to play a tactical position and do a similar thing.

The "weakness" of A/B engines is that their PVs are garbage. Seriously, I have tried every single analysis method I could think about with them, the most successful ones by far were the ones where I put in my analysis tree the move that the engine played (the 1st move in its PV), and threw away the rest, which was never useful (if you use MultiPV, you take note of all the 1st moves on the many PVs, and throw the rest away, or you can exclude the best move from analysis, see what's the second best, and throw the rest of its PV away).

The problem with engines is that, for this PV that they show there's a "weakest link", that is, a move that if they have the position in their face, they wouldn't play at all. Never. If you can find this move, you can refute their line.

What happens is that on a given PV, only the main move is analyzed to this depth, the next move for this side that appears will have been analyzed to 2 depths less, and the next one to 4 depths less...

For an analysis to Depth 70, from move 11 (which is the case here), the engine will show a line like this:

11.A a 12.B b 13.C c 14.D d 15.E e 16.F f 17.G g 18.H h 19.I i 20.J j 21.K k 22.L l 23.M m 24.N n 25.O o 26.P p 27.Q q 28.R r 29.S s 30.T t 31.U u ...

Now, due to reductions and extensions, what follows isn't precise, but it is accurate, only A is at depth 70, you can see how the move quality of the rest of the moves goes downhill like this:

A/70 Depth
B/68 Depth
C/66 Depth
D/64 Depth
E/62 Depth
F/60 Depth
G/58 Depth
H/56 Depth
I/54 Depth
J/52 Depth
K/50 Depth
L/48 Depth
M/46 Depth
O/44 Depth
P/42 Depth
Q/40 Depth
R/38 Depth
S/36 Depth
T/34 Depth
U/32 Depth

That is, to get a better PV than the one you have, you don't need to wait till depth 71, all you need to do is jumping into any of these positions, and reach what I call "relative depth +1". Say, you can jump to 24...n and reach depth 45 on there, or to move 27...q and reach depth 39 on there.

But what you want is to find the weakest link, where is it? Who knows, but you'll notice the closer you get to the root, the longer it takes to reach "relative depth +1." So you can follow the next procedure:

1.Jump to move 30...t and reach depth 33.
IF score == 0.00 THEN go to 2. ELSE score >= 0.00 you refuted the line! Congrats!

2.Jump to move 29...s and reach depth 35.
IF score == 0.00 THEN go to 3. ELSE score >= 0.00 you refuted the line! Congrats!

3.Jump to move 28...r and reach depth 37.
IF score == 0.00 THEN go to 4. ELSE score >= 0.00 you refuted the line! Congrats!

...

If you do it all the way up to 11...a at Depth 69 and you got 0.00 all along, then I concede, Stockfish's line is solid, and it is 0.00, and I couldn't have refuted it, blah blah blah.

Otherwise, you'll see that there was some garbage in the PV, but that Stockfish couldn't see at this relative depth, because it was outside its horizon. You can make the horizon larger in a much faster time than it takes Stockfish to reach Depth 71. Heck, it takes Stockfish so long to get to the next depth, that you probably can do "relative depth +2" or "relative depth +3" and get ahead of Stockfish's depth when it is done!

What do you do when you've refuted this line? Well, you know from the root that it's 0.00 because if this falls Stockfish has another 0.00 line somewhere. You can explore the variations until you find it, and then you can use the same trick to refute this line to a >0.00 score. Once this is done, you can find another one and find the same.

Eventually, Stockfish will run out of 0.00 lines, so you'll be able to have a root score that is >0.00. You'll have a score of >0.00 even though Stockfish at Depth 71 or Depth 72 will continue to show 0.00. Why is this? Because the moves that take it down are still outside of its horizon, and there's moves it will just not see unless the relevant position is on its face (sometimes it will not even see it on its face, you need to use MultiPV on there, or use a different engine that sees the move so you feed it and it sees the truth.)

And now that the root position has a >0.00 score in your tree, you can do this all over again, but shotgun all the variations with this score, which you can call S, and after your root position has score S, you can do this all over again to make the root position >S on your tree, and so on.

What you'll find out if that this is a much more productive endeavor than letting the engine unassisted with Infinite Analysis for hours. SO MUCH that I could easily let my engine analyzing some position unassisted while I'm asleep, having some high depth PV when I wake up, but I don't do it, because it's a waste of time, because only the first move of the PV is useful and the rest is garbage, because you're much better off building a consistent line that has the same relative depth for the moves like this:

A/26 Depth
B/26 Depth
C/26 Depth
D/26 Depth
E/26 Depth
F/26 Depth
G/26 Depth
H/26 Depth
I/26 Depth
J/26 Depth
K/26 Depth
L/26 Depth
M/26 Depth
O/26 Depth
P/26 Depth
Q/26 Depth
R/26 Depth
S/26 Depth
T/26 Depth
U/26 Depth

Because Depth 70 continues V/30 W/28 X/26 Y/24 Z/22 - And you'll have Y/26 Z/26 - You'll be outsearching Depth 70 by 4 depths and they'll continue to go up after move Z, where Depth 70 will be relative Depth 20, and you can refute it in a second.

I wasn't claiming I could do something extraordinary, or that Stockfish had some glaring weakness, all this is natural, and if it wasn't, corr chess would have died years ago, but nobody can prove that their moves are perfect, and Stockfish Depth 70 isn't close to perfection, at all.
Your beliefs create your reality, so be careful what you wish for.
ouachita
Posts: 454
Joined: Tue Jan 15, 2013 4:33 pm
Location: Ritz-Carlton, NYC
Full name: Bobby Johnson

Re: The Busted Dutch

Post by ouachita »

Ovyron wrote: Wed Sep 18, 2019 8:29 am
ouachita wrote: Sun Sep 15, 2019 2:37 amjoin chessbase and we should be able to find/friend each other or challenge each other
I don't see a way to challenge people to correspondence time controls, though. We haven't discussed this, does some 30 Day and 2 day increment/move sound good?
I prefer much shorter time controls wherein a game can be finished in one site visit- 10 min, 15+2, or some other rapid TC.
SIM, PhD, MBA, PE
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: The Busted Dutch

Post by Ovyron »

ouachita wrote: Wed Sep 18, 2019 8:39 pmI prefer much shorter time controls wherein a game can be finished in one site visit- 10 min, 15+2, or some other rapid TC.
Without engine assistance I'd get crunched, and with it I never learned Freestyle. My line only stands at correspondence time controls so I guess this is the end of the line.
Your beliefs create your reality, so be careful what you wish for.
Uri Blass
Posts: 10268
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: The Busted Dutch

Post by Uri Blass »

Ovyron wrote: Wed Sep 18, 2019 4:40 pm
zullil wrote: Wed Sep 18, 2019 3:24 pmBecause I misunderstood your claim. I thought you were claiming that, from the position we started at, you could achieve an advantageous position due to your private analysis and weaknesses in Stockfish.
My claim is that if I can, then you can too. Give someone a fish and they'll be happy for a day, teach them to fish and they'll be happy for life. I suppose.

So if you want, I can tell you how you can "achieve an advantageous position" against Stockfish. Let's say, Depth 70.

This isn't about Stockfish, but about A/B engines in general. This wouldn't work against the likes of Leela, but for those you'd just need to play a tactical position and do a similar thing.

The "weakness" of A/B engines is that their PVs are garbage. Seriously, I have tried every single analysis method I could think about with them, the most successful ones by far were the ones where I put in my analysis tree the move that the engine played (the 1st move in its PV), and threw away the rest, which was never useful (if you use MultiPV, you take note of all the 1st moves on the many PVs, and throw the rest away, or you can exclude the best move from analysis, see what's the second best, and throw the rest of its PV away).

The problem with engines is that, for this PV that they show there's a "weakest link", that is, a move that if they have the position in their face, they wouldn't play at all. Never. If you can find this move, you can refute their line.

What happens is that on a given PV, only the main move is analyzed to this depth, the next move for this side that appears will have been analyzed to 2 depths less, and the next one to 4 depths less...

For an analysis to Depth 70, from move 11 (which is the case here), the engine will show a line like this:

11.A a 12.B b 13.C c 14.D d 15.E e 16.F f 17.G g 18.H h 19.I i 20.J j 21.K k 22.L l 23.M m 24.N n 25.O o 26.P p 27.Q q 28.R r 29.S s 30.T t 31.U u ...

Now, due to reductions and extensions, what follows isn't precise, but it is accurate, only A is at depth 70, you can see how the move quality of the rest of the moves goes downhill like this:

A/70 Depth
B/68 Depth
C/66 Depth
D/64 Depth
E/62 Depth
F/60 Depth
G/58 Depth
H/56 Depth
I/54 Depth
J/52 Depth
K/50 Depth
L/48 Depth
M/46 Depth
O/44 Depth
P/42 Depth
Q/40 Depth
R/38 Depth
S/36 Depth
T/34 Depth
U/32 Depth

That is, to get a better PV than the one you have, you don't need to wait till depth 71, all you need to do is jumping into any of these positions, and reach what I call "relative depth +1". Say, you can jump to 24...n and reach depth 45 on there, or to move 27...q and reach depth 39 on there.

But what you want is to find the weakest link, where is it? Who knows, but you'll notice the closer you get to the root, the longer it takes to reach "relative depth +1." So you can follow the next procedure:

1.Jump to move 30...t and reach depth 33.
IF score == 0.00 THEN go to 2. ELSE score >= 0.00 you refuted the line! Congrats!

2.Jump to move 29...s and reach depth 35.
IF score == 0.00 THEN go to 3. ELSE score >= 0.00 you refuted the line! Congrats!

3.Jump to move 28...r and reach depth 37.
IF score == 0.00 THEN go to 4. ELSE score >= 0.00 you refuted the line! Congrats!

...

If you do it all the way up to 11...a at Depth 69 and you got 0.00 all along, then I concede, Stockfish's line is solid, and it is 0.00, and I couldn't have refuted it, blah blah blah.

Otherwise, you'll see that there was some garbage in the PV, but that Stockfish couldn't see at this relative depth, because it was outside its horizon. You can make the horizon larger in a much faster time than it takes Stockfish to reach Depth 71. Heck, it takes Stockfish so long to get to the next depth, that you probably can do "relative depth +2" or "relative depth +3" and get ahead of Stockfish's depth when it is done!

What do you do when you've refuted this line? Well, you know from the root that it's 0.00 because if this falls Stockfish has another 0.00 line somewhere. You can explore the variations until you find it, and then you can use the same trick to refute this line to a >0.00 score. Once this is done, you can find another one and find the same.

Eventually, Stockfish will run out of 0.00 lines, so you'll be able to have a root score that is >0.00. You'll have a score of >0.00 even though Stockfish at Depth 71 or Depth 72 will continue to show 0.00. Why is this? Because the moves that take it down are still outside of its horizon, and there's moves it will just not see unless the relevant position is on its face (sometimes it will not even see it on its face, you need to use MultiPV on there, or use a different engine that sees the move so you feed it and it sees the truth.)

And now that the root position has a >0.00 score in your tree, you can do this all over again, but shotgun all the variations with this score, which you can call S, and after your root position has score S, you can do this all over again to make the root position >S on your tree, and so on.

What you'll find out if that this is a much more productive endeavor than letting the engine unassisted with Infinite Analysis for hours. SO MUCH that I could easily let my engine analyzing some position unassisted while I'm asleep, having some high depth PV when I wake up, but I don't do it, because it's a waste of time, because only the first move of the PV is useful and the rest is garbage, because you're much better off building a consistent line that has the same relative depth for the moves like this:

A/26 Depth
B/26 Depth
C/26 Depth
D/26 Depth
E/26 Depth
F/26 Depth
G/26 Depth
H/26 Depth
I/26 Depth
J/26 Depth
K/26 Depth
L/26 Depth
M/26 Depth
O/26 Depth
P/26 Depth
Q/26 Depth
R/26 Depth
S/26 Depth
T/26 Depth
U/26 Depth

Because Depth 70 continues V/30 W/28 X/26 Y/24 Z/22 - And you'll have Y/26 Z/26 - You'll be outsearching Depth 70 by 4 depths and they'll continue to go up after move Z, where Depth 70 will be relative Depth 20, and you can refute it in a second.

I wasn't claiming I could do something extraordinary, or that Stockfish had some glaring weakness, all this is natural, and if it wasn't, corr chess would have died years ago, but nobody can prove that their moves are perfect, and Stockfish Depth 70 isn't close to perfection, at all.
There is one way to prove stockfish's depth 70 is not close to perfection in case it is correct.
Simply beat stockfish depth 70.

stockfish with more than 1 core is not deterministic and I wonder how often correspondence players can beat stockfish depth 70 no opening book with white and with black.

Note that I am not sure if stockfish can get depth 70 in a reasonable time in every position so maybe it is better to use some fixed time or some fixed number of nodes.
ouachita
Posts: 454
Joined: Tue Jan 15, 2013 4:33 pm
Location: Ritz-Carlton, NYC
Full name: Bobby Johnson

Re: The Busted Dutch

Post by ouachita »

Ovyron wrote: Sun Sep 22, 2019 5:34 pm
ouachita wrote: Wed Sep 18, 2019 8:39 pmI prefer much shorter time controls wherein a game can be finished in one site visit- 10 min, 15+2, or some other rapid TC.
Without engine assistance I'd get crunched, and with it I never learned Freestyle. My line only stands at correspondence time controls so I guess this is the end of the line.
I'm suggesting we play each other using engines, which are what this site is all about
SIM, PhD, MBA, PE
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: The Busted Dutch

Post by Ovyron »

Uri Blass wrote: Sun Sep 22, 2019 6:02 pmThere is one way to prove stockfish's depth 70 is not close to perfection in case it is correct. Simply beat stockfish depth 70.
There's nothing special about Stockfish at Depth 70, this is now the third thread I bring this up, but what you can do is start from the very bottom and prove Stockfish Depth 1 is not close to perfection, Stockfish Depth 2 is not close to perfection, and increase its Depth as you go.

One of these will happen:

1. You eventually beat Depth 70, you prove that it's not close to perfection.

2. You reach some depth that you can't beat.

IF 2 happens, then the cool thing about this is that if, say, you can't beat Depth 50, then the time playing Depth 50 + all previous depths takes less time than just playing Depth 70. And if Depth 50 is already close to perfection, then all Depths beyond 50 play close to perfection too (you won't see Depth 55 suddenly playing worse and being easier to beat.)

My experience with doing this is that the reason Stockfish loses games don't go away with more Depth, and the stupidness it shows when unassisted can be exploited at any point, and at least, you can play at its very high depth level in a much shorter time because the engine wasn't designed to reach this depth in the first place.

Some key positions in the Dutch are an example, where Stockfish claims black has a big -1.00 advantage, when in reality it's white that does (though not enough to win...) at least there's some non-Stockfish engine that evaluates the position correctly. Presumably, the easiest way to beat Stockfish Depth 70 is to get into a position that it doesn't understand, that another engine does, and you build a powerful tree outside of Stockfish's horizon (if they were in the horizon it wouldn't give a wrong score to its root) and then the high Depth will not matter. It's not clear if something like that can be done in these Dutch variations.
Last edited by Ovyron on Sun Sep 22, 2019 7:01 pm, edited 1 time in total.
Your beliefs create your reality, so be careful what you wish for.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: The Busted Dutch

Post by Ovyron »

ouachita wrote: Sun Sep 22, 2019 6:44 pmI'm suggesting we play each other using engines, which are what this site is all about
Yeah, but I want correspondence time controls, below them it's very easy to blunder, and then losing to your Bf4 in a drawn position because 15 +2 isn't enough time to see it's a blunder isn't interesting.
Your beliefs create your reality, so be careful what you wish for.
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: The Busted Dutch

Post by zullil »

Ovyron wrote: Sun Sep 22, 2019 6:58 pm
Some key positions in the Dutch are an example, where Stockfish claims black has a big -1.00 advantage, when in reality it's white that does (though not enough to win...)
Let me guess, you can't give even one example.
Uri Blass
Posts: 10268
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: The Busted Dutch

Post by Uri Blass »

Ovyron wrote: Sun Sep 22, 2019 6:58 pm
Uri Blass wrote: Sun Sep 22, 2019 6:02 pmThere is one way to prove stockfish's depth 70 is not close to perfection in case it is correct. Simply beat stockfish depth 70.
There's nothing special about Stockfish at Depth 70, this is now the third thread I bring this up, but what you can do is start from the very bottom and prove Stockfish Depth 1 is not close to perfection, Stockfish Depth 2 is not close to perfection, and increase its Depth as you go.

One of these will happen:

1. You eventually beat Depth 70, you prove that it's not close to perfection.

2. You reach some depth that you can't beat.

IF 2 happens, then the cool thing about this is that if, say, you can't beat Depth 50, then the time playing Depth 50 + all previous depths takes less time than just playing Depth 70. And if Depth 50 is already close to perfection, then all Depths beyond 50 play close to perfection too (you won't see Depth 55 suddenly playing worse and being easier to beat.)

My experience with doing this is that the reason Stockfish loses games don't go away with more Depth, and the stupidness it shows when unassisted can be exploited at any point, and at least, you can play at its very high depth level in a much shorter time because the engine wasn't designed to reach this depth in the first place.

Some key positions in the Dutch are an example, where Stockfish claims black has a big -1.00 advantage, when in reality it's white that does (though not enough to win...) at least there's some non-Stockfish engine that evaluates the position correctly. Presumably, the easiest way to beat Stockfish Depth 70 is to get into a position that it doesn't understand, that another engine does, and you build a powerful tree outside of Stockfish's horizon (if they were in the horizon it wouldn't give a wrong score to its root) and then the high Depth will not matter. It's not clear if something like that can be done in these Dutch variations.
Note that close to perfection does not mean perfect so one game that you win does not prove it is not close to perfection.
The question is how often you can beat it(remember that stockfish with many cores is not deterministic).

Note that I am sure that it is easy to find positions when it does a bad move that lose instead of draw but the question is if you can get one of these position in games.