Queens vs Knights

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

Moderators: hgm, Rebel, chrisw

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Queens vs Knights broadcast

Post by Lyudmil Tsvetkov »

Evert wrote:I'm not sure I understand your general term. You can calculate the material part of the evaluation (simplifying to Queens and Knights only) as

Code: Select all

eval = Q * OwnQueens + N * OwnKnights + imbalance&#40;OwnQueens, EnemyKnights&#41; - &#40;Own <=> Enemy&#41;.
For the case at hand (Q/N on one side only), that simplifies to

Code: Select all

eval = Q * OwnQueens - N * EnemyKnights + imbalance&#40;OwnQueens, EnemyKnights&#41;
So any terms in imbalance() that are simply proportional to OwnQueens or EnemyKnights can be absorbed in the piece value, so only cross terms and quadratic (or higher order) terms survive. So the lowest order form should be something like

Code: Select all

imbalance&#40;OQ, EN&#41; = C&#91;0&#93;*OQ*OQ + C&#91;1&#93;*EN*EN + C&#91;2&#93;*OQ*EN
I'm not sure what to make of the quadratic terms, but since they don't depend on the other material present, I'm tempted to split those off from the imbalance, so we get

Code: Select all

eval = &#40;Q + C&#91;0&#93;*OQ&#41;*OQ + &#40;N + C&#91;1&#93;*EN&#41;*EN + imbalance'&#40;OQ, EN&#41;
This gets you something like the "redundancy" terms that Larry Kaufman talked about in his paper on imbalances. Ok, I guess those are the A and B term in your expression. Anyway, this leaves

Code: Select all

imbalance'&#40;OQ, EN&#41; = C&#91;2&#93;*OQ*EN
for the imbalance proper.

Now, the interesting thing about all of this is that Stockfish actually uses a general quadratic form to evaluate material (which I think it inherited from Glaurung), but it clearly doesn't handle this extreme case correctly. I wonder if it can be tuned so that it does, without affecting the normal case (no more than two knights and one queen per side).

Of course, this assumes that higher order than quadratic terms are negligible.

For a mix of pieces, like in the opening position of regular chess, the minors are balanced on both sides, so they are fated to be traded against each other, leaving the Queens (and Rooks) mostly unaffected, as you say.

I have the feeling that I need to sit down and work all of this out into some sort of algorithm, but it's daunting. I would very much like to have something like this for SjaakII though.
the single biggest imbalance raison d'evaluation is the difference in numbers between the side with the higher and side with the lower number of pieces.

second most important is the difference in strength between the more numerous lower-power pieces and the less numerous higher-power pieces.

so, knights gain more vs queens than they do vs rooks.

so maybe, something of the kind B(bonus)=(imbalance coefficient)*(difference in numbers)*(average difference of values)

something like that.

but all that is too general, it will all depend also on the specific constellation.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Queens vs Knights broadcast

Post by Lyudmil Tsvetkov »

hgm wrote:
Evert wrote: I would very much like to have something like this for SjaakII though.
Well, the algorithm is basically this:

The 'material strategy' of each player can be represented by a 'interdiction matrix' of Booleans, which for each pair of piece types indicates whether he will try to avoid that his piece of the pair will be traded 1-on-1 for the opponent's piece in the pair. Usually any higer-valued piece would be interdicted by any lower-valued piece, but in the case of a very small base-value difference, or of a type that is causing extreme imbalance effects, 'counter-intuitive trading' might be better.

The possible material strategies of the players then have to be converted to a score adjustment, to find the optimal strategy for each of them. Pieces amongst which no trade avoidance exists will be traded for each other. If not exactly equally valued, this will result in a loss of the difference in base value. They will be removed from the piece counts, to determine the 'persistent imbalance'.

The latter imbalance will then be used to calculate the Scharnagle effect, based on how much it detracts from the value of a piece of type A to avoid trading of it for a piece of type B, and the number of A and B left. This is then added to any trading loss of the previous step.

The result is a score correction that applies when the two strategies encounter each other. This then has to be calculated for every possible strategy, and the scores have to be minimaxed to determine the optimal one. In principle there is a very large number of possible strategies; in Chess there are 4 piece types, so 16 type pairs. (One assumes it never pays to trade pieces for Pawns, or sacrifice a King.) That makes 64K possible strategies for each player, or 4G strategy encounters.

In practice most strategies make no sense, however. The Q-R and R-minor value differences are so large, that not avoiding these trades is suicidal in any realistic case. This leaves only Q-Q, R-R, B-B, N-N, B-N and N-B interdiction open for modification, for 64 different strategies, or 4096 strategy pairs. (In fact strategy pairs where both sides avoid the same trade never makes sense, as what good is for one is bad for the other in a zero-sum game. So only 3^6 = 729 strategy pairs have to be evaluated and minimaxed. The number could be driven up again by distinguishing first-Vishop and second-Bishop as distinguishable types, though.)
you forget catering for a mix of pieces, not a pure only-piece setting, which is the general form of the phenomenon.

in standard chess, in order to correctly assign values to all possible imbalance piece configurations, one should build an impossibly large table of at least couple of million entries.

that is why the best one could do is use approximate formulas for 1-100(300) imbalance situations.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Queens vs Knights broadcast

Post by Lyudmil Tsvetkov »

hgm wrote:I now restarted the broadcast (with QueeNy vs QueeNy games). It died tonight because of a very strange network problem with the PC it was running on, and for which I had to reset it this morning to cure it: the network seemed to be working, but any request I made would just give me a blank page. Restarting FireFox, or connecting to the WiFi of the neighbors did not solve it. Other computers on the same WLAN had no access problems at all.

Rebooting solved it. Weird.

[Edit] I changed the TC so that the Queens get 20 min per 40 moves, and the Knights only 2 min (starting with game 23). That way the games will last approximately as long as with 10 min each, and the Queens will have a depth advantage of 2-3 ply.

So the engines have the same knowledge now, but the Queen side is tactically superior, and should normally be some 200 Elo stronger. Which again would be good for a 65% score in an equal position.

I also found the problem with deposition of the game result; this required to deposit "result 0-1" as a move, and I had overlooked that spaces are not allowed in URLs, but have to be encoded as "%20". I now fixed that, so we can see if it works. For games that are finished the result (+, - or =) would be displayed in the game overview, instead of the side to move (w or b). Selecting such a game for viewing would not set the clocks running, or cause periodic polling for new PVs (which would obviously not belong to the game), as it does for unfinished games.
instead of giving the queens time odds, it is much better to use the right engines, with both sides enjoying same knowledge.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Queens vs Knights broadcast

Post by Lyudmil Tsvetkov »

hgm wrote:
hgm wrote:I now restarted the broadcast (with QueeNy vs QueeNy games).
I was wondering why the broadcast suddenly failed to promote Pawns that reached last rank. It turned out that QueeNy fails to put a promotion suffix on promotion moves. The broadcaster takes the moves from the communication with the first engine (because in human-engine mode, which you would have in operator-mediated computer tournaments, there is no second engine!). And before this was Polyglot/Stockfish, which does print moves compliantly, and receives them compliently from the GUI. So I had not noticed this problem before.

I went to 20 min vs 5 min now, because 2 min obviously was too fast for QueeNy, and made it blunder away Pawns like flies... Still a time odds of a factor 4, which should be good for at least 100 Elo.

[Edit] Game 29 was interesting: it went through a 2Q vs 5N stage, and even Q vs 3N, and the Knights won that.
gradually, you will come to time odds for the knights.

why did not you let the whole match end, and post + 18 -1 =1 queen win, at least once?

you don't mention what other pawns/passers were present, and that is decisive.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Need material for a speech

Post by Lyudmil Tsvetkov »

Evert wrote:
Lyudmil Tsvetkov wrote: but the engine does not crash, right?
so, it is quite doable.
Missing the point.
take the human standard when commenting on a position: it is either white wins, or black wins, but never the side on move is winning, this simply does not make sense.
Computers are not human.
I guess engines should follow the human standard here.
You guess wrongly. Why should they, if they are not human?
for example, you will frequently encounter:

- white to play and win, or black to play and win
- or white wins, no matter whose turn it is

and never:

- the side on move/to play wins
There are two pieces of information that need to be communicated: the side on move, and the goal. "White to play and win" is a better way to say "White to play. Side to move wins." for humans.
for me, the human approach makes much more sense.(probably because of this I don't quite understand those repeated lines in engine codes, 'finally return the score from the point of view of the side to move')
It's quite obvious that you don't understand. You might begin by educating yourself rather than elevating your lack of understanding why things are done a certain way to a new standard.
For this particular case, read up on "minimax" versus "negamax", two equivalent (in terms of output) algorithms, where one follows your "human-like" approach and one does not, and one is much simpler to implement and use.
all engine algorithms are based on existing patterns of human thought, there is no denying that.

I know pretty well about minimax and negamax.

you can negamax scores by using colour/side to move, and finally return the score from the point of view of white, nothing simpler than that.

what engines do is the precise opposite: negamax scores by using white point of view(evaluate()), and then returning final score from the point of view of the side to move.

basically the same thing, but engines use an ugly, user-unfriednly implementation.

after all, for engines it does not matter which method is used, while humans are adversely affected by the present scheme.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Need material for a speech

Post by Lyudmil Tsvetkov »

hgm wrote:
Lyudmil Tsvetkov wrote:in any case, I am fully certain with perfect play the knight side can not win this position.
Which is the best guarantee that it is won for the Knights anyone could wish for. Nothing is more certain to be wrong than when Lyudmil Tsvetkov claims it.
how do I know then how both engines evaluate the respective game positions?
Analyze with both engines simultaneously in the same GUI?

Run each of the engines in its own GUI, and set them analyzing?
best guarantee or not, position is at most draw for the knights, in the best-case scenario.

of course, it will all depend on additional factors.

for example, on an empty board, please note very well this, 7Ns always draw 3 Qs.
always.

you can try and retry this for as long as you wish, I have already done that.

so, basically, your theory is already refuted by practice: in a pure setting, 7Ns equal perfectly 3Qs.

using different guis is extremely user-unfriendly, even winboard was created to get rid of that nuisance, and you know that pretty well.

in order to save time, one should use same gui and similar-looking concepts for all engines.

everybody knows that, in economics, that is called economies of scale, in chess engine implementation, it could be called efficient engine use, or something like that.

the effect is, that the human saves twice or even more energy on stupid procedures, while getting the very same essential information.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Need material for a speech

Post by Lyudmil Tsvetkov »

Evert wrote:
Lyudmil Tsvetkov wrote: that makes 27% draws or so, which is by no way negligeable.

nothing like Harm's 100% win rate.
27% draws is small, if all the other games are Black wins. Note that White gets the first move advantage. To measure the actual value of the imbalance, you need to play with reversed colours as well. Of course, if having the first move does not tip the scale in favour of the Queens, taking it away is hardly going to improve things for them.
of course, the precise el.value matters very much.
otherwise, why would you set any specific value at all?

it matters very much if you value the 7/3 knights higher, lower, much higher or much lower than a single queen.
It matters a lot up to the point where you get the value of the exchanges right. After that you can still get some improvements, but you look into diminishing returns for your efforts. In short, you can make the engine score better against a version of itself that is not tuned as much, but you cannot improve the score of the Queens considerably in self-play.

Note that this extra bit of knowledge is just the tip of the iceberg. You can make the engine stronger still by tuning all other evaluation parameters for this particular imbalance. What's the point though?
27% is not small at all, as you need only another 23% for perfect equality concerning the outcome of the game.

please note again, that in a pure setting, on an empty board, 7Ns = 3Qs, so choosing the right additional elements of the position is indeed very important.

if you need a pure setting formula/scenario, it is quite simple, 7Ns = 3Qs.

that is 1 Q = 2.33 Ns.

on the contrary, if 112 cps scores a certain percentage, knowing how 152 cps and 72 cps each score will be very useful in finding the correct imbalance coefficients.

we still don't know them, so doing similar tests is extremely meaningful.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Need material for a speech

Post by Lyudmil Tsvetkov »

Evert wrote:
Evert wrote: It matters a lot up to the point where you get the value of the exchanges right. After that you can still get some improvements, but you look into diminishing returns for your efforts. In short, you can make the engine score better against a version of itself that is not tuned as much, but you cannot improve the score of the Queens considerably in self-play.

Note that this extra bit of knowledge is just the tip of the iceberg. You can make the engine stronger still by tuning all other evaluation parameters for this particular imbalance. What's the point though?
Anyway, it's not hard to calculate the value of the constant that will balance out the material in the opening position (it is 79cp for Stockfish' piece values), so I ran a few (quick) games for it. Doesn't look very promising"
[pgn][Event "Computer Chess Game"]
[Site "vivaine.local"]
[Date "2017.07.19"]
[Round "1"]
[White "Nightfish 190717 64"]
[Black "Nightfish 190717 64"]
[Result "0-1"]
[TimeControl "40/60"]
[FEN "nnnnknnn/pppppppp/8/8/8/8/PPPPPPPP/1Q1KQ1Q1 w - - 0 1"]
[SetUp "1"]

1. f4 {-0.70/17} d6 {+0.72/18 4} 2. b4 {-0.75/19 6} e6 {+0.64/16 1.4} 3. e4
{-0.96/20 4} f6 {+0.88/17 0.9} 4. c4 {-1.00/16 1.6} Nhf7 {+0.96/16 0.9} 5.
d4 {-1.10/17 1.8} Nbd7 {+0.99/17 1.9} 6. c5 {-1.04/15 0.8} c6
{+1.14/17 1.5} 7. Qgf2 {-1.24/17 4} Nc7 {+1.20/16 1.1} 8. Qg3 {-1.68/17 7}
g6 {+1.55/15 1.0} 9. a4 {-1.99/17 5} Nge7 {+1.68/17 1.4} 10. Qd2
{-1.87/18 1.1} f5 {+1.91/16 0.6} 11. e5 {-1.93/18 0.7} dxe5 {+1.97/16 0.4}
12. fxe5 {-1.95/17 0.6} Ned5 {+2.12/17 1.0} 13. Kc1 {-2.22/19 4} Nce7
{+2.20/16 0.8} 14. Qf3 {-2.33/19 4} b5 {+2.34/19 1.1} 15. a5 {-2.89/18 4}
g5 {+2.73/17 1.2} 16. g3 {-3.08/17 1.2} Na6 {+2.92/16 0.8} 17. Qh5
{-3.20/16 1.2} h6 {+3.29/18 1.5} 18. Qb3 {-3.17/17 0.8} Nfg6 {+3.35/15 0.4}
19. Kc2 {-2.86/16 0.7} Kf8 {+3.58/20 2.0} 20. Kb1 {-3.51/17 0.9} Kg7
{+3.81/20 3} 21. Qe1 {-3.69/18 2.2} f4 {+3.90/19 1.4} 22. Qhf3
{-3.62/17 1.4} Nf5 {+3.96/19 1.9} 23. Qff2 {-3.99/17 0.5} Nac7
{+3.97/19 1.6} 24. gxf4 {-3.99/14 0.6} Ngxf4 {+4.16/18 0.9} 25. Qeg1
{-3.83/16 0.5} h5 {+4.45/20 6} 26. Qd2 {-3.92/17 0.7} Nf8 {+4.73/19 1.2}
27. h3 {-3.85/14 0.5} Na6 {+4.56/18 0.4} 28. Qgd1 {-3.70/15 0.6} N7h6
{+5.22/17 1.1} 29. Qg1 {-3.75/15 0.6} Ndf7 {+5.40/18 0.7} 30. Qgd1
{-4.65/14 0.5} N8g6 {+5.53/19 0.9} 31. Qg1 {-4.37/12 0.6} g4 {+6.49/18 1.1}
32. Ka2 {-5.37/10 0.4} Nxh3 {+7.78/17 0.8} 33. Qgb1 {-6.75/9 0.6} Ngf4
{+8.52/18 2.2} 34. Qa3 {-6.96/10 0.5} Nfg5 {+8.73/21 1.7} 35. Qbd1
{-7.15/11 0.5} g3 {+9.89/17 0.7} 36. Qxf4 {-8.77/10 0.4} Ndxf4
{+12.78/19 0.8} 37. Kb3 {-10.11/11 0.6} g2 {+15.37/18 0.8} 38. Qaa1
{-11.13/12 0.4} Ne3 {+17.65/20 1.1} 39. Qdc1 {-11.24/11 0.5} Nhf5
{+20.89/18 1.4} 40. d5 {-13.94/10 0.5} Nfxd5 {+99.67/19 4} 41. Qd2
{-99.76/23 5} g1=Q {+99.79/27 1.5} 42. Qxg1 {-99.80/28 1.5} Nxg1
{+99.81/30 0.5} 43. Kb2 {-99.82/31 1.6} Nc4+ {+99.85/36 1.6} 44. Kc1
{-99.86/31 0.6} Nxd2 {+99.87/37 0.6} 45. Kxd2 {-99.88/37 1.4} Naxb4
{+99.89/39 1.7} 46. a6 {-99.90/38 0.6} Nd4 {+99.91/50 1.7} 47. Kc1
{-99.92/71 1.4} Nd3+ {+99.93/73 0.5} 48. Kd1 {-99.94/95 2.6} N5h3
{+99.95/127 0.6} 49. Kd2 {-99.96/1 0.5} Ngf3+ {+99.97/127 0.4} 50. Kxd3
{-99.98/107 1.5} Nf2# {+99.99/127 0.4}
{Xboard adjudication: Checkmate} 0-1
[/pgn]
by constant you mean increasing the knight value?

that certainly should be handled by the imbalance formula.

this is an awful game, white had very easy draw by closing all files, but SF captured with fe5 instead of de5, breaking pawn symmetry and allowing black dangerous passed pawn.

certainly, this speaks nothing about the objective outcome of the position, but only about how well tuned are engines for the specific imbalance.

my results show that normal SF draws normal SF with the imbalance.

you have convincing results for SF+knowledge vs SF + knowledge.

maybe, by tuning that knowledge, we can achieve a whole range of different, even contradictory results, who knows?

in any case, it is obvious, 7Ns at most draw 3Qs.
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Need material for a speech

Post by hgm »

Lyudmil Tsvetkov wrote:
hgm wrote:
how do I know then how both engines evaluate the respective game positions?
Analyze with both engines simultaneously in the same GUI?

Run each of the engines in its own GUI, and set them analyzing?
using different guis is extremely user-unfriendly, even winboard was created to get rid of that nuisance, and you know that pretty well.

in order to save time, one should use same gui and similar-looking concepts for all engines.
Who says you have to use different GUIs? If you run each engine in its own GUI, you can use two instance of the same GUI (e.g. WinBoard). I usually have 4 instances of WinBoard open on my screan when analyzing, because I want to analyze 4 different positions at the time.

But when you want to run them on the same position, you can simply analyze them with two engines in one GUI.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Perfect draw

Post by Lyudmil Tsvetkov »

as said, and tested in practice, in pure case scenario, 7Ns equal 3Qs.

I have played many games like that, and all games end in a draw.

[pgn][Event "Shootout (Stockfish864POPCNT, Blitz 1m)"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "New game"]
[Black "?"]
[Result "1/2-1/2"]
[SetUp "1"]
[FEN "2nnknn1/3nnn2/8/8/8/8/8/2QQKQ2 w - - 0 1"]
[PlyCount "165"]

1. Qf2 {7.37/15 6} Ngf6 {6.62/17 4} 2. Qg1 {6.16/15 2 (Qa4)} Ncd6 {5.93/18 5
(Nfe6)} 3. Kf1 {5.65/17 1} Nfe6 {5.03/17 2} 4. Qb3 {4.75/16 2 (Qa3)} Nde4 {4.
34/16 2} 5. Qh3 {4.27/15 1} Ned5 {4.25/19 2} 6. Qc2 {4.23/16 1 (Qb2)} Nef4 {4.
04/19 1} 7. Qa3 {4.00/18 1} Nec3 {3.95/20 2} 8. Qcf2 {4.07/18 0} Nde5 {3.90/21
1} 9. Qg7 {3.85/19 1} Nfe6 {3.82/22 2} 10. Qfxf6 {3.89/19 1 (Qgxf6)} Nxf6 {3.
83/21 1} 11. Qxf6 {3.77/19 1} Nd5 {3.70/19 1} 12. Qf5 {3.79/20 2} Nef4 {3.58/
22 2} 13. Kg1 {3.58/20 1 (Qa7)} Nde6 {3.28/20 2} 14. Qc2 {3.43/19 1 (Qe4)} Nfg5
{3.08/21 1} 15. Qa7 {3.08/22 1} Ndc7 {3.08/24 1} 16. Qf5 {3.08/24 1 (Qaa4+)}
Ned3 {3.08/26 2} 17. Qb8+ {3.08/23 0 (Qf6)} Kd7 {3.08/27 3} 18. Qb6 {2.93/25 4}
Ncd5 {2.86/26 4} 19. Qa7+ {2.79/20 0} Kd6 {2.79/25 2} 20. Qa3+ {2.79/24 2
(Qa6+)} N5b4 {2.38/26 3} 21. Kh1 {1.52/21 3} Nf3 {1.70/21 1} 22. Qa7 {1.35/19 0
} Nbd5 {1.10/19 1} 23. Qff7 {0.88/17 1 (Qfh7)} Ke5 {0.37/20 2} 24. Qh7 {0.28/
18 1} Nec5 {0.25/20 1} 25. Qa1+ {0.24/17 0} Kd6 {0.19/20 1} 26. Qh6+ {0.25/20
0 (Qf1)} Nce6 {0.18/20 1} 27. Qf1 {0.17/20 0} Nd2 {0.18/21 1} 28. Qg1 {0.17/20
1} Ne4 {0.17/21 1} 29. Qa7 {0.17/19 1} Ndf2+ {0.16/20 1} 30. Kg1 {0.16/23 2}
Ne2+ {0.16/22 1} 31. Kf1 {0.16/23 5} Ndf4 {0.13/17 0 (N2g3+)} 32. Qb8+ {0.13/
18 0 (Qb6+)} Kd5 {0.13/21 1} 33. Qb3+ {0.13/21 1} Kc5 {0.13/22 1} 34. Qa3+ {0.
13/19 0} Kd5 {0.13/21 0} 35. Qh8 {0.13/21 2 (Qh2)} N2g3+ {0.13/20 0} 36. Qxg3 {
0.13/23 1} Nxg3+ {0.13/23 1} 37. Kxf2 {0.13/25 2} Ne4+ {0.13/25 0} 38. Kf3 {0.
13/26 1} N4c5 {0.13/25 0} 39. Qa1 {0.13/24 0 (Qa8+)} Nfd3 {0.13/24 0} 40. Qa8+
{0.13/22 2 (Ke3)} Kc4 {0.13/22 0 (Ke5)} 41. Qa2+ {0.13/22 0} Kd4 {0.13/23 0}
42. Qd2 {0.13/23 0} Nef4 {0.12/20 0} 43. Qh2 {0.12/19 0} Nd5 {0.12/19 0} 44.
Qg1+ {0.12/19 0 (Qh8+)} Kc4 {0.12/17 0} 45. Qg4+ {0.12/17 0} Kc3 {0.12/13 0}
46. Kg3 {0.12/16 0 (Qg7+)} Ne5 {0.12/13 0 (Nf6)} 47. Qe2 {0.09/16 0} Ncd3 {0.
09/16 0} 48. Qe4 {0.10/18 0 (Qa2)} Nf6 {0.11/16 0} 49. Qb7 {0.12/19 0 (Qe3)}
Nfd7 {0.12/18 0} 50. Qa7 {0.12/20 0} N7c5 {0.12/19 0 (Kd2)} 51. Kh4 {0.12/20 0}
Kd4 {0.12/18 0 (Kd2)} 52. Kg5 {0.12/19 0} Ke3 {0.12/15 0 (Ke4)} 53. Kf6 {0.12/
17 0} Kf4 {0.12/17 0} 54. Qa8 {0.12/18 0} Ke3 {0.12/14 0} 55. Qh1 {0.12/17 0
(Qa3)} Nf3 {0.12/16 0} 56. Ke7 {0.12/19 0} Nde5 {0.12/18 0} 57. Qc1+ {0.11/18 0
} Kd4 {0.11/18 0} 58. Qa1+ {0.12/20 0} Ke3 {0.12/21 0} 59. Kd6 {0.12/21 0} Ncd3
{0.12/19 0} 60. Qa7+ {0.12/21 0} Ke4 {0.12/21 0} 61. Qe7 {0.12/22 0} Ke3 {0.12/
20 0} 62. Kd5 {0.12/22 0} Nf4+ {0.12/21 0} 63. Kc5 {0.12/23 0} Nfd3+ {0.12/22 0
} 64. Kd6 {0.12/23 0} Ke4 {0.12/22 0} 65. Qb7+ {0.12/20 0 (Qe8)} Ke3 {0.12/19
0 (Kd4)} 66. Qd5 {0.12/20 0} Kf4 {0.12/20 0} 67. Qa2 {0.12/20 0} Ke4 {0.12/20 0
} 68. Qa8+ {0.11/19 0} Kf4 {0.11/20 0} 69. Qa4+ {0.11/20 0 (Ke6)} Ke3 {0.11/19
0} 70. Kc7 {0.11/20 0} Nf4 {0.11/20 0} 71. Qa7+ {0.11/17 0 (Qa2)} Ke4 {0.11/18
0} 72. Qb7+ {0.11/18 0} Ke3 {0.11/18 0} 73. Qb6+ {0.11/18 0} Ke4 {0.11/15 0}
74. Qb1+ {0.11/17 0 (Qa6)} Kd4 {0.11/18 0} 75. Qa1+ {0.11/18 0} Ke3 {0.11/16 0
(Ke4)} 76. Qa4 {0.11/17 0 (Qc3+)} Nd5+ {0.11/16 0} 77. Kd6 {0.10/15 0} Nf4 {0.
11/15 0} 78. Qa8 {0.11/14 0} Ned3 {0.09/14 0} 79. Ke7 {0.08/13 0} Ng6+ {0.08/
11 0} 80. Kf7 {0.08/13 0 (Kd7)} Ngf4 {0.07/13 0} 81. Qa3 {0.00/12 0 (Kf6)} Ke4
{0.00/14 0} 82. Qa8+ {0.00/17 0} Ke3 {0.00/23 0} 83. Kg7 {0.00/20 0 (Qa3)}
1/2-1/2

[Event "Shootout (Stockfish864POPCNT, Blitz 1m)"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "New game"]
[Black "?"]
[Result "1/2-1/2"]
[SetUp "1"]
[FEN "2nnknn1/3nnn2/8/8/8/8/8/2QQKQ2 w - - 0 1"]
[PlyCount "165"]

1. Qf2 {7.37/15 6} Ngf6 {6.62/17 4} 2. Qg1 {6.16/15 2 (Qa4)} Ncd6 {5.93/18 5
(Nfe6)} 3. Kf1 {5.65/17 1} Nfe6 {5.03/17 2} 4. Qb3 {4.75/16 2 (Qa3)} Nde4 {4.
34/16 2} 5. Qh3 {4.27/15 1} Ned5 {4.25/19 2} 6. Qc2 {4.23/16 0 (Qb2)} Nef4 {4.
04/19 1} 7. Qa3 {4.00/18 1} Nec3 {3.95/20 2} 8. Qcf2 {4.07/18 0} Nde5 {3.90/21
1} 9. Qg7 {3.85/19 1} Nfe6 {3.82/22 2} 10. Qfxf6 {3.89/19 0 (Qgxf6)} Nxf6 {3.
83/21 1} 11. Qxf6 {3.77/19 1} Nd5 {3.70/19 1} 12. Qf5 {3.79/20 2} Nef4 {3.58/
22 2} 13. Kg1 {3.58/20 1 (Qa7)} Nde6 {3.28/20 2} 14. Qc2 {3.43/19 1 (Qe4)} Nfg5
{3.08/21 1} 15. Qa7 {3.08/22 1} Ndc7 {3.08/24 1} 16. Qf5 {3.08/24 1 (Qaa4+)}
Ned3 {3.08/26 2} 17. Qb8+ {3.08/23 0 (Qf6)} Kd7 {3.08/27 3} 18. Qb6 {2.93/25 4}
Ncd5 {2.86/26 4} 19. Qa7+ {2.87/22 1} Kd6 {2.85/26 1} 20. Kh2 {2.79/25 1} Ndc5
{2.79/26 1} 21. Qb8+ {2.79/24 0 (Qa3)} Ke7 {2.79/28 1} 22. Kh1 {2.79/28 1} Nd7
{2.79/28 1} 23. Qa7 {2.71/22 1 (Qb3)} N5f6 {2.58/21 1} 24. Qa3+ {2.73/18 1} Kf7
{2.41/20 2 (Ke8)} 25. Qb3 {2.20/19 1} Ke8 {2.37/20 2} 26. Qb7 {2.20/19 1 (Qa4)}
Nfe4 {1.87/19 2} 27. Qa5 {1.69/17 1 (Qfb5)} N6c5 {1.72/16 0} 28. Qaa8+ {1.60/
18 1 (Qc8+)} Kf7 {1.08/18 1} 29. Qc7 {0.78/18 1} Nge6 {0.93/17 0} 30. Qca7 {0.
52/17 1} Nef6 {0.36/16 0} 31. Kg1 {0.16/19 1 (Qh8)} Kg6 {0.12/18 1} 32. Kf1 {
0.12/19 0} Ne5 {0.15/20 1} 33. Ke1 {0.18/20 0} Ned3+ {0.18/20 1} 34. Kd1 {0.14/
19 1} N4d5 {0.12/19 0} 35. Q7b8 {0.12/19 0 (Q8b8)} Nce4 {0.16/18 0} 36. Kc2 {
0.11/20 1 (Qa1)} N6c5 {0.11/20 0} 37. Qa3 {0.11/22 0} N3b4+ {0.11/21 0} 38.
Qbxb4 {0.11/24 1} Nxb4+ {0.11/25 1} 39. Qxb4 {0.11/27 0} Kf5 {0.11/27 0 (Ne6)}
40. Qb8 {0.11/27 0} Ne6 {0.11/27 0} 41. Kb3 {0.11/25 0 (Kd3)} N6c5+ {0.11/23 0
(Nd5)} 42. Kc4 {0.11/27 0} Ne6 {0.11/27 0} 43. Qb1 {0.11/26 0 (Qh2)} Kg6 {0.11/
26 0} 44. Qg1+ {0.11/27 0} Kf5 {0.11/28 0} 45. Kb3 {0.11/26 0 (Qf1+)} N6c5+ {
0.11/26 0} 46. Kb4 {0.11/28 0} Nd5+ {0.11/25 0 (Nd3+)} 47. Kc4 {0.11/28 2} Ndf6
{0.11/28 0} 48. Kb5 {0.11/27 0 (Qh2)} Ne6 {0.11/25 0} 49. Qf1+ {0.11/28 0} Nf4
{0.11/27 0} 50. Kb4 {0.11/24 0 (Qh1)} N6d5+ {0.11/23 0} 51. Ka3 {0.11/27 0} Ke5
{0.11/26 0} 52. Qa1+ {0.11/27 0} Kf5 {0.11/27 0} 53. Qh8 {0.11/28 0} Ne6 {0.11/
26 0} 54. Qh7+ {0.11/25 0 (Qh5+)} Ke5 {0.11/25 0} 55. Qh5+ {0.11/25 0} Kd4 {0.
11/26 0} 56. Qd1+ {0.11/25 1} Ke5 {0.11/25 0} 57. Qa1+ {0.11/25 0} Kf5 {0.11/
25 0} 58. Qh8 {0.11/26 0} Ndf4 {0.11/22 0} 59. Qh7+ {0.11/25 0} Ke5 {0.11/25 0}
60. Kb4 {0.11/25 0} Nd5+ {0.11/18 0} 61. Kc4 {0.11/25 0} Nd6+ {0.11/24 0} 62.
Kd3 {0.11/25 0} Nf6 {0.11/23 0} 63. Qh2+ {0.11/25 0} Nf4+ {0.11/26 0} 64. Kc2 {
0.11/28 1} Nde4 {0.11/25 0} 65. Qg1 {0.11/27 0} Ne6 {0.11/26 0} 66. Qa1+ {0.11/
26 0} Kf5 {0.11/27 0} 67. Qb1 {0.11/27 0 (Kb3)} Nd4+ {0.11/17 0 (N6c5)} 68. Kb2
{0.11/23 0} Ke5 {0.11/22 0} 69. Qg1 {0.11/23 0} Ne6 {0.11/22 0} 70. Kb3 {0.11/
24 0} N6c5+ {0.11/24 0} 71. Kb4 {0.11/25 0} Nd3+ {0.11/24 0} 72. Kc4 {0.11/25 0
} Nb2+ {0.11/24 0} 73. Kb3 {0.11/23 0 (Kb5)} Nd3 {0.11/23 0} 74. Qa1+ {0.11/24
0} Kf5 {0.11/25 0} 75. Qf1+ {0.11/22 0 (Kc2)} Ke5 {0.11/22 0} 76. Kc2 {0.11/23
0} Ndc5 {0.11/22 0 (Nb4+)} 77. Qa1+ {0.11/22 1} Kf4 {0.11/16 0} 78. Kb2 {0.11/
20 0 (Qa8)} Kf5 {0.11/19 0 (Ke5)} 79. Ka3 {0.11/18 0} Nd5 {0.11/17 0} 80. Qd1 {
0.04/19 1} Nf4 {0.04/13 0} 81. Qh1 {0.00/16 0 (Kb4)} Nfd3 {0.00/16 0 (Ke5)} 82.
Qh5+ {0.00/19 0} Kf4 {0.00/20 0} 83. Qd1 {0.00/21 0 (Qh2+)} 1/2-1/2

[Event "Shootout (Stockfish864POPCNT, Blitz 1m)"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "New game"]
[Black "?"]
[Result "1/2-1/2"]
[SetUp "1"]
[FEN "2nnknn1/3nnn2/8/8/8/8/8/2QQKQ2 w - - 0 1"]
[PlyCount "170"]

1. Qf2 {7.37/15 6} Ngf6 {6.62/17 4} 2. Qg1 {6.16/15 2 (Qa4)} Ncd6 {5.93/18 4
(Nfe6)} 3. Kf1 {5.65/17 2} Nfe6 {5.03/17 2} 4. Qb3 {4.75/16 3 (Qa3)} Nde4 {4.
34/16 2} 5. Qh3 {4.27/15 1} Ned5 {4.25/19 2} 6. Qc2 {4.23/16 0 (Qb2)} Nef4 {4.
04/19 1} 7. Qa3 {4.00/18 1} Nec3 {3.95/20 2} 8. Qcf2 {4.07/18 0} Nde5 {3.90/21
1} 9. Qg7 {3.85/19 1} Nfe6 {3.82/22 2} 10. Qfxf6 {3.89/19 0 (Qgxf6)} Nxf6 {3.
83/21 1} 11. Qxf6 {3.77/19 1} Nd5 {3.70/19 1} 12. Qf5 {3.79/20 2} Nef4 {3.58/
22 2} 13. Kg1 {3.58/20 1 (Qa7)} Nde6 {3.28/20 2} 14. Qc2 {3.43/19 1 (Qe4)} Nfg5
{3.08/21 1} 15. Qa7 {3.08/22 1} Ndc7 {3.08/24 1} 16. Qf5 {3.08/24 1 (Qaa4+)}
Ned3 {3.08/26 2} 17. Qb8+ {3.08/23 0 (Qf6)} Kd7 {3.08/27 3} 18. Qb6 {2.93/25 4}
Ncd5 {2.86/26 4} 19. Qa7+ {2.79/19 0} Kd6 {2.79/24 1} 20. Kh1 {2.79/24 1 (Qa6+)
} Nf3 {2.53/25 4} 21. Qff7 {1.83/18 1 (Qe4)} Ke5 {1.81/19 1} 22. Qh7 {0.60/18 1
} Nec5 {0.37/20 1} 23. Qa1+ {0.29/20 1} Kd6 {0.32/22 1} 24. Qh6+ {0.27/20 1}
Nce6 {0.27/23 1} 25. Qf1 {0.27/23 2} Nd2 {0.25/21 1} 26. Qg1 {0.23/21 0} Ne4 {
0.20/22 2} 27. Qa1 {0.19/22 2} Ndf2+ {0.18/21 1} 28. Kg1 {0.16/22 1} Ne2+ {0.
16/22 1} 29. Kf1 {0.16/21 0} N2g3+ {0.16/21 1} 30. Kg2 {0.16/23 1} Ndf4+ {0.16/
23 1} 31. Kf3 {0.16/24 2} Nge2 {0.16/24 0} 32. Qa3+ {0.15/21 1 (Qag7)} Kd5 {0.
15/22 1} 33. Qa8+ {0.15/22 1} Kc4 {0.15/21 0} 34. Qc8+ {0.15/18 0 (Qc6+)} Kb4 {
0.12/19 0} 35. Qb7+ {0.14/20 1 (Qhxe6)} Kc3 {0.12/19 0 (Kc4)} 36. Qc6+ {0.12/
20 0} Kb4 {0.12/21 0} 37. Qb6+ {0.12/21 1} Kc3 {0.12/20 0} 38. Qe3+ {0.12/22 1}
Kb4 {0.12/23 0} 39. Qxe6 {0.12/23 0} Nxe6 {0.12/23 0} 40. Kxe2 {0.12/22 0} N6c5
{0.12/22 0} 41. Qd4+ {0.12/23 0} Kb5 {0.12/24 0} 42. Qa1 {0.11/24 1 (Ke3)} Nfd3
{0.11/24 0} 43. Qb1+ {0.11/20 1 (Ke3)} Kc4 {0.11/22 0} 44. Ke3 {0.11/24 0} Nc3
{0.11/24 0} 45. Qb8 {0.11/23 2} Nd5+ {0.11/19 0} 46. Kf3 {0.11/20 0} Ne1+ {0.
11/19 0} 47. Kg4 {0.11/21 0} Ned3 {0.11/21 0} 48. Kf5 {0.11/22 0} Ne3+ {0.11/
22 0} 49. Kg6 {0.11/23 0} Nd5 {0.11/22 0} 50. Qh2 {0.11/22 1} Kd4 {0.11/20 0}
51. Qg1+ {0.11/22 2} Kc4 {0.11/15 0 (Kc3)} 52. Qa1 {0.11/20 0} Ne4 {0.11/19 0}
53. Qa4+ {0.11/21 0} N3b4 {0.11/22 0} 54. Kf5 {0.11/21 0} Nc5 {0.11/21 0} 55.
Qa8 {0.11/20 0} Ne3+ {0.11/18 0 (Nbd3)} 56. Kf4 {0.09/19 0} Ned5+ {0.09/19 0}
57. Ke5 {0.09/22 0} Nbd3+ {0.09/21 0} 58. Kf5 {0.09/22 0} Ne3+ {0.09/21 0} 59.
Kg5 {0.09/23 0} Nb4 {0.09/23 0} 60. Qa1 {0.09/20 0 (Kh6)} Nbd5 {0.09/19 0} 61.
Kg6 {0.09/22 0 (Qa2+)} Nc3 {0.09/19 0 (Kd3)} 62. Qa7 {0.09/22 0} Ned5 {0.09/20
0 (Kd4)} 63. Kf5 {0.09/22 0} Ne3+ {0.09/22 0} 64. Kf4 {0.09/23 0} Ned5+ {0.09/
23 0} 65. Ke5 {0.10/23 0 (Kf3)} Nd3+ {0.10/22 0} 66. Kf5 {0.09/22 0} Nc5 {0.09/
21 0} 67. Qf7 {0.09/20 0} Ne2 {0.09/19 0} 68. Qg8 {0.09/20 0} Nd4+ {0.09/19 0}
69. Kg4 {0.09/21 0} Nb5 {0.09/19 0} 70. Kf3 {0.09/23 0} Nbc3 {0.09/23 0} 71.
Qg4+ {0.09/24 0} Kd3 {0.09/25 0} 72. Qg1 {0.09/25 0} Kc4 {0.09/23 0} 73. Qa1 {
0.09/25 0} Nd3 {0.09/24 0} 74. Qa6+ {0.09/24 0} Kd4 {0.09/23 0} 75. Qa7+ {0.09/
24 0} Kc4 {0.09/24 0} 76. Qa1 {0.09/19 0 (Kg4)} Nc5 {0.09/20 0} 77. Kg4 {0.09/
22 0 (Qg1)} Nd3 {0.09/14 0 (N5e4)} 78. Qa6+ {0.09/13 0 (Qg1)} Kd4 {0.08/16 0}
79. Kf5 {0.09/16 0 (Kf3)} Nc5 {0.08/14 0 (Ne3+)} 80. Qa1 {0.08/15 0 (Qa8)} Ne3+
{0.08/13 0} 81. Kf6 {0.08/13 0} Kd3 {0.09/12 0} 82. Qa7 {0.08/14 0 (Ke5)} Ned5+
{0.08/13 0 (N5e4+)} 83. Ke5 {0.01/14 0 (Kf7)} Kc4 {0.00/14 0} 84. Qa1 {0.00/17
0 (Qf7)} Nd3+ {0.00/19 0} 85. Kf5 {0.00/23 0} Ne3+ {0.00/23 0} 1/2-1/2

[/pgn]

very obviously, any claims the knights are stronger are simply incorrect.

any specific game results with this imbalance would be only due to engine lack of knowledge, or specific biassed positions.

as simple as that.