Even crazier

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: Leading the chain

Post by Lyudmil Tsvetkov »

carldaman wrote:
syzygy wrote:
carldaman wrote:I don't think the current argument is that humans play stronger chess than the top engines, but rather that top engines can underperform badly against humans of moderate strength (2000-2300 FIDE). Lyudmil Tsvetkov, a player of such strength, has produced quite a few recent examples to support such a thesis.
It's not difficult to produce a winning game against any engine, but under equal conditions it's not so likely to happen.
Even with the extra time that Lyudmil allotted himself, a true 3000+ entity should have performed and played better. Lyudmil also showed that he can overperform vs Stockfish far more than once (that is, with a certain regularity).
Carl, overperforming against Stockfish is one thing, but I am not sure how I will fare in Graham's C League of engines, not to mention qualifying for it :(

For me, it is all about concentration, when I am not focussed, I play very bad, when I am able to concentrate, I have another problem: I have a very hard time losing a game, I might play 10-20 games against any top engine, and they all end in a draw (I will not risk in short TC, just stick to plain solid equality). (actually this is kind of exagerrated, I have not drawn more than 5 or 6 games in a row against Houdini or Stockfish, but, when you do this, you can do more, but it gets boring, better risk and get smashed by the engine in an interesting encounter).

I think the simple truth is that engines do not test against humans, and therefore they are bound to underperform in such an environment. Weaknesses that are observable in play against humans are usually not observable in play against other engines.

And other thing that sometimes slaps me in the face while playing: engines win it all on tactics, they might have a bad, even desparate position, but they will win on tactics. Seemingly they know so little, and at the same time they play so strong without knowledge.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: The phantom of closure

Post by Lyudmil Tsvetkov »

jdart wrote:I am not sure Black can win, but I agree White will have great difficulty making progress.

--Jon
Black is winning, see here:
http://www.talkchess.com/forum/viewtopi ... 81&t=47118
syzygy
Posts: 5569
Joined: Tue Feb 28, 2012 11:56 pm

Re: Leading the chain

Post by syzygy »

carldaman wrote:OK, Ronald, I take it you will stick with what you know best. Nothing wrong with that.
I will certainly not pretend that I will come up with a new paradigm for computer chess that has more potential than alpha-beta.
I'm curious, still, to know if anyone much more skilled than myself has attempted the approach I'm envisioning. Is it accurate to say that it cannot be done, (or done well) ?
What "approach" are you envisioning? The only thing I see is "hey, you should do it all d-i-f-f-e-r-e-n-t-l-y". There is not a single idea behind this.
syzygy
Posts: 5569
Joined: Tue Feb 28, 2012 11:56 pm

Re: Semi, but real

Post by syzygy »

Lyudmil Tsvetkov wrote:[D]6k1/1pp5/1p6/8/PPP5/8/8/6K1 w - - 0 1
Do not you see, an unopposed pawn could be worth because of its ability to advance freely. Instead of assigning just penalty for double, you could assign smaller penalty for double and also a small bonus for unopposed, in this way the chess logic will be better reflected.
Do you not see that this is just adding redudant terms to the evaluation?
syzygy
Posts: 5569
Joined: Tue Feb 28, 2012 11:56 pm

Re: Leading the chain

Post by syzygy »

Lyudmil Tsvetkov wrote:My vision of engines of tomorrow, without knowing what I am talking about, would be much heavier and refined evaluation, combined with much higher selectivity, but smart selectivity, prune completely entire branches, but also consider completely other branches.
You are "envisioning" a Shannon Type B search, which predates all of computer chess. It's the ultimate cypress tree search.

Over 60 years of experience has shown that nobody has a clue on how to make "smart" pruning decisions based on a static inspection of the board position. A vision that states "then get a clue!" is not exactly helpful. Type B engines were tried early on, but were easily outplayed by Type A engines. In the last decades Type B has made somewhat of a comeback: not in its pure form, but in a "smart" form exactly opposite to your vision: entire branches are neither pruned completely nor considered completely. The search itself in combination with chess knowledge is used to guide the search.

Whittington seems to have been speaking more out of some form of resentment than out of wisdom. No two engines search the same "cypress tree". The engine that prunes/reduces/extends smarter than the other will have the advantage. The comparison with a full width search to the same depth is completely irrelevant.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Semi, but real

Post by Lyudmil Tsvetkov »

syzygy wrote:
Lyudmil Tsvetkov wrote:[D]6k1/1pp5/1p6/8/PPP5/8/8/6K1 w - - 0 1
Do not you see, an unopposed pawn could be worth because of its ability to advance freely. Instead of assigning just penalty for double, you could assign smaller penalty for double and also a small bonus for unopposed, in this way the chess logic will be better reflected.
Do you not see that this is just adding redudant terms to the evaluation?
It is quite the opposite, it is adding refined terms.
The idea would be to assess every single meaningful detail in the position, instead of just big bonus obvious terms. Search based on just big bonus obvious terms is going to perform worse than search based on a greater number of more refined terms, even though those might be less conspicuous, with lower values to assign.

When you do not have refined terms in the evaluation, you are missing an awful lot of interesting variations. Adding a couple of refined terms with very small values (even just 3-5-10cps) could completely change the assessment of a given position, as well as the choice of moves during the search.

But, basically, there is nothing new here: all I am saying is what has been done throughout the years, the most simple engines had only material values, then you add mobility, then you add some pawns, then refine those, then add something new, and all of those have helped a bit to make better programs. There is nothing new here, it is just that the suggestions look a bit strange, because untested and unfamiliar.

You are right that testing is everything, so why do not test in your engine to split double to double and unopposed instead, and maybe also the influence of apex pawns, and report the results, it would be interesting. If something is real, it is not redundant. I am very happy with Stockfish and even check from time to time the patches tested. In terms of evaluation, they have really some very strange suggestions, like bonus for a knight on d3 (it makes some sense, but very little, not a general chess rule), or bonus for squares defended by a rook behind a passer (makes some sense, but the term is really extremely tiny), and other whole range of similar concepts (only among the working ones).

How is this better than having some more fundamental terms, reflecting the deeper essence of chess? For example, some nice bonus for the most advanced pawns of a chain. Quite probably, within the Stockfish environment, introducing a new term would be very difficult to test without changing significantly the structure and tuning many parameters simultaneously. Quite probably, superficial testing with such a term will fail, but that is a real and significant term. On the other hand, cosmetic changes are going to be successful, will not require extensive tuning, but will this lead to a significant overhaul of the vision? Is this the true way to proceed in terms of evaluation? Or are you done with evaluation altogether? How are you going to achieve another 500 elo increase in performance? Or, if you are not done with evaluation, what other significant ideas would you propose?
syzygy
Posts: 5569
Joined: Tue Feb 28, 2012 11:56 pm

Re: Semi, but real

Post by syzygy »

Lyudmil Tsvetkov wrote:
syzygy wrote:
Lyudmil Tsvetkov wrote:[D]6k1/1pp5/1p6/8/PPP5/8/8/6K1 w - - 0 1
Do not you see, an unopposed pawn could be worth because of its ability to advance freely. Instead of assigning just penalty for double, you could assign smaller penalty for double and also a small bonus for unopposed, in this way the chess logic will be better reflected.
Do you not see that this is just adding redudant terms to the evaluation?
It is quite the opposite, it is adding refined terms.
One more double pawn for one side means one more unopposed pawn for the other side... It is redundant.
The idea would be to assess every single meaningful detail in the position, instead of just big bonus obvious terms. (...)
Hardly a new idea. This is how evaluation functions have worked since forever.
There is nothing new here, it is just that the suggestions look a bit strange, because untested and unfamiliar.
I don't see anything new in the "apex" and "unopposed" concepts. Evaluation functions already take such aspects into account.

But if you agree that nothing is new here, why argue that chess programming should start from scratch with a new paradigm (or at least agree with those that argue this)?
Quite probably, within the Stockfish environment, introducing a new term would be very difficult to test without changing significantly the structure and tuning many parameters simultaneously. Quite probably, superficial testing with such a term will fail, but that is a real and significant term. (...)
This is part of what the Stockfish developers are doing all the time.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Semi, but real

Post by bob »

In your first diagram, how is that a pawn NOT weak? If it stays where it is, it can't be defended by a pawn. If it advances, it becomes an instant isolani on an open file...

It is blocked just as surely as it would be by a ram in front of it here. You are trying to get into dynamic chess terms and evaluate them statically. I don't think the a-pawn's value (either positive or negative) can be determined without a search to see whether it can be attacked and won, or if there is some advantage in advancing it.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Semi, but real

Post by Lyudmil Tsvetkov »

bob wrote:In your first diagram, how is that a pawn NOT weak? If it stays where it is, it can't be defended by a pawn. If it advances, it becomes an instant isolani on an open file...

It is blocked just as surely as it would be by a ram in front of it here. You are trying to get into dynamic chess terms and evaluate them statically. I don't think the a-pawn's value (either positive or negative) can be determined without a search to see whether it can be attacked and won, or if there is some advantage in advancing it.
Not all pawns that are not defended by another pawn are weak, they could be defended by pieces, etc. One and the same pawn could be at the same time backward, weak, unopposed, isolated, etc. Unopposed is just one additional quality of the pawn that provieds added value. Why consider just some features of a pawn and not consider other. The unopposed quality of the pawn will receive bonus for ability to advance easier; with a rook behind, for example, you could open with it a file, where otherwise it would be impossible or more difficult.

If there are no terms whose real value could be determined without an extensive search, why have evaluation at all?

Why have passer evaluation, when you could just stick to piece material values?
Then why have potential passers, is not this redundant? I think you might know better than me, but I am sure potential passers had come into wider use much later than passers, am I right? And many still do not do them. If you do potential passers, why not do unopposed pawns too? They are just a more sophisticated expression of the same idea. Without trying, many would have thought there is no added value to potential passers, but then they see it is not like that.

If you do potential passers, why not do semi-backward pawns? The relation of passers to potential passers is almost the same as the one of backward pawns to semi-backward pawns. It is absolutely the same. Semis are just extension of the idea. And both are real. If you have added value with potential passers, quite probably you will have added value also with semi-backward pawns.

Well, another example.

[D]8/3n2k1/5n2/1P6/2Pb4/1Q6/6K1/8 w - - 0 1

I already posted this, suggesting that in deciding that the position is a draw, one must have to resort to a special eval term that I would call intensity of interaction, i.e., giving some bonus for squares mutually controlled by pieces. In endgames like that, the mutual control of squares of pieces of lower power, especially in front of passers, is very important. I do not know if some book author has already mentioned this term, the name of the term is not of significance, but the fact that the term is real and represents existing chess knowledge.

How are you going to make your engine know this ending is drawn, if you do not have some special refined term to guide it? Search is very difficult to help here, so what are you going to do? Those are real weaknesses of engines, so why close our eyes to them?
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Semi, but real

Post by Lyudmil Tsvetkov »

syzygy wrote:
Lyudmil Tsvetkov wrote:
syzygy wrote:
Lyudmil Tsvetkov wrote:[D]6k1/1pp5/1p6/8/PPP5/8/8/6K1 w - - 0 1
Do not you see, an unopposed pawn could be worth because of its ability to advance freely. Instead of assigning just penalty for double, you could assign smaller penalty for double and also a small bonus for unopposed, in this way the chess logic will be better reflected.
Do you not see that this is just adding redudant terms to the evaluation?
It is quite the opposite, it is adding refined terms.
One more double pawn for one side means one more unopposed pawn for the other side... It is redundant.
The idea would be to assess every single meaningful detail in the position, instead of just big bonus obvious terms. (...)
Hardly a new idea. This is how evaluation functions have worked since forever.
There is nothing new here, it is just that the suggestions look a bit strange, because untested and unfamiliar.
I don't see anything new in the "apex" and "unopposed" concepts. Evaluation functions already take such aspects into account.

But if you agree that nothing is new here, why argue that chess programming should start from scratch with a new paradigm (or at least agree with those that argue this)?
Quite probably, within the Stockfish environment, introducing a new term would be very difficult to test without changing significantly the structure and tuning many parameters simultaneously. Quite probably, superficial testing with such a term will fail, but that is a real and significant term. (...)
This is part of what the Stockfish developers are doing all the time.
You really amaze me.
You ask me why consider passers when we have already considered the pawn as material that is a passer at the same time?

If you have odd number of pawns, one more unopposed pawn would not add another double one.

If terms like apex and unopposed pawns are already taken into account, why do you consider them as new, strange and unnecessary, redundant?? (sorry for the 2 question marks, but I am really amazed at how the discussion proceeds)

What I say is that the approach has been the same, but that the eval terms used and search routines are gradually refined, and you need just another refinement in order to improve meaningfully engines further. As you can observe, both apex and unopposed would have values lower than most accepted terms, so they are in a way subtler to observe (maybe you might have a bit of difficulty with it, as I have with programming) and a refined expression of chess knowledge. But, if you can really test in your engine the influence, why not do that, if testing is everything. Why not test a reasonable idea, and test many unreasonable ones? Where is the added value to that?

[[D]8/3n2k1/5n2/1P6/2Pb4/1Q6/6K1/8 w - - 0 1

Finally, I want also a very concrete answer. On the above diagram you see a position that is drawn. How many engines would see this? Does your engine see it? If not, is not this a failure of the engine? What would be wrong with introducing an eval term, like I have suggested, named intensity of interaction (or whatever you call it), giving bonus for the squares mutually controlled by pieces. In similar endgames, such a term, especially the squares mutually controlled by pieces of lower power in front of enemy passers, would be very useful and allow the engine to see the draw. What would be wrong with such a suggestion? Or maybe it is wrong, because I have suggested it, and not someone else, I do not know.

In any case, do not you see, at least here, the real added value? I intentionally posted a very simple position, where you can not argue, to make my point, but other terms are similarly valid, just probably more difficult to observe. (Sometimes, you need a microscope :) )