When will the chess programmers write an engine that plans ?

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
mclane
Posts: 16823
Joined: Thu Mar 09, 2006 5:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub
Contact:

Re: When will the chess programmers write an engine that plans ?

Post by mclane » Tue Mar 24, 2020 9:46 pm

In Glasgow richard lang had no contract with H+G.
He was working on his own, at this time producing PSION chess.
Mephisto III was overtaken by others later. This is true.
But richard Lang dominated for years.

So how do you want to judge this ?

Richard Lang won championships from 1984 until 1993.
7 titles as micro computer champ and 10 titles as software champ.

So this was an extra ordinary success.

Any other competitor would have been defeated too.

We don’t know how nitsche would have continued if H+G would not have bought richard for the next mephisto software 1985 on the same hardware thomas nitsche used in 1984.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....

Ras
Posts: 1221
Joined: Tue Aug 30, 2016 6:19 pm
Contact:

Re: When will the chess programmers write an engine that plans ?

Post by Ras » Tue Mar 24, 2020 10:16 pm

mclane wrote:
Tue Mar 24, 2020 9:46 pm
So how do you want to judge this ?
Easy. Same hardware, same era, similar program development time - but Psion was already massively better than Glasgow in the first year where the main concern was to even get it working on the Mephisto platform.
Rasmus Althoff
https://www.ct800.net

Zenmastur
Posts: 782
Joined: Sat May 31, 2014 6:28 am

Re: When will the chess programmers write an engine that plans ?

Post by Zenmastur » Wed Mar 25, 2020 4:14 am

After reading this entire thread, I think the parts that are missing in the discussion is about memory and the way humans interact with their memories and use them to formulate plans and then try to execute them.

Most programs like Stockfish have no memory of their past games. In the few versions that are given some form of memory, if you can call it that, it's ability to interact with it's memory is so limited as to be almost useless.

Lc0 is somewhat different since it has it's NN weights file which I suppose is a some “form” of memory although not directly comparable to human memories. During “normal” play it still has no way to interact with it's memory to alter it's own behavior.

A good example of how memory affects play for humans is in the opening. Little thought is “needed” to play a known opening. Programs like SF and Lc0 will happily re-calculate the opening position every time it's given to them. They have no memory of ever playing it before. Computer books are used to stop this behavior, but the way they're currently constructed and used is VERY limiting. In most cases the program can do nothing but regurgitate a line stored in the book and then start it's calculation once the book line is exited. There is no other way for it to interact with this “memory”. In a few cases it may be given the option to change some variables in certain entries in the book.

There is no chance for the program to make any decisions about exiting the book early by voluntarily calculating a “new” line of play or any of the other things a human might do in the same situation. It can't extend or modify the opening book in any significant way. Furthermore, once the book ends there is no memory of the game, no postmortem analysis done, and no conclusions drawn about the play of the game.

This isn't all the engines/engine designers fault. Much of the fault can be laid squarely on the GUI's used to mediate interactions between players or engines. None of the GUIs that I'm aware of guarantee that an engine will be given information that any human would be give during a tournament or even casual play. Like their opponents name, rating, etc. Even the out come of the game may not be transmitted to the engine. This doesn't allow the engine to do even the most rudimentary things, like update it's opening book with win/loss/draw information and many other things that humans would routinely do after a game.

The inability of programs like SF and Lc0 to modify their behavior based on memories of past encounters (even in rudimentary ways) during “normal” play is a hindrance to more human-like play.

Currently all they can do is calculate. Until this changes Mclane's “wants” while somewhat ill defined have little chance of coming to fruition.

Regards,

Zenmastur
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

User avatar
mclane
Posts: 16823
Joined: Thu Mar 09, 2006 5:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub
Contact:

Re: When will the chess programmers write an engine that plans ?

Post by mclane » Wed Mar 25, 2020 4:31 am

Humans do forget unimportant things, machines do forget all.

When I play an important chess game it is stored in my brain, next time I come into similar position I do maybe play different.
This is Btw the same mechanism that allows humans do drive cars.

We learn how to drive cars.

The learner has to keep everything into memory altogether. And drives very weak.

The better the learning is, the less the human things about the driving.
The whole mechanism gets into unconsciousness, and you automatically drive.

Programs need to learn to forget the unimportant things.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....

User avatar
Ovyron
Posts: 3834
Joined: Tue Jul 03, 2007 2:30 am

Re: When will the chess programmers write an engine that plans ?

Post by Ovyron » Wed Mar 25, 2020 5:56 am

Zenmastur wrote:
Wed Mar 25, 2020 4:14 am
The inability of programs like SF and Lc0 to modify their behavior based on memories of past encounters (even in rudimentary ways) during “normal” play is a hindrance to more human-like play.
You should look up engines with Learning, those will remember all the games they played in the past, avoid blunders that they played before, and explore different lines they haven't played yet in the current game.

The REASON this was never advanced was because the rating lists refused to do testing with Learning ON, because they wanted users to know the ELO of some engine out-o-the-box (even though it'd have been easy to share the learning files so users could have enjoyed the advertised elo at home). With all their work put on Learning going to waste because it wasn't reflected on the ELO list, ALL programmers decided to take Learning off their engines, or they just quit computer chess altogether (like Richard Vida which could provide a Learning Critter with its Session File, but he retired.)

This has nothing to do with human-like play, or planning, though, because an engine could make a human-like move supported by a human-like plan (for those that think a chess line counts as a plan), only to use Learning to learn it's bad and play a computer-like move supported by a computer-like plan on future games.

Zenmastur
Posts: 782
Joined: Sat May 31, 2014 6:28 am

Re: When will the chess programmers write an engine that plans ?

Post by Zenmastur » Wed Mar 25, 2020 6:38 am

mclane wrote:
Wed Mar 25, 2020 4:31 am
Humans do forget unimportant things, machines do forget all.

When I play an important chess game it is stored in my brain, next time I come into similar position I do maybe play different.
This is Btw the same mechanism that allows humans do drive cars.

We learn how to drive cars.

The learner has to keep everything into memory altogether. And drives very weak.

The better the learning is, the less the human things about the driving.
The whole mechanism gets into unconsciousness, and you automatically drive.

Programs need to learn to forget the unimportant things.
Before programs need to forget things, they first need to have the ability to remember things. None of the top engines have this capability. If/when we see engines come to the for that have such capabilities, and before they are taught to forget certain things they need to be able to interact with their memories is some meaningful and useful ways. Simply adding the ability to "remember" while useful isn't sufficient. It's the ability to use and interact with what's remembered to alter future behavior that's important. Without this ability all you have is current day books and EGTBs.
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

Zenmastur
Posts: 782
Joined: Sat May 31, 2014 6:28 am

Re: When will the chess programmers write an engine that plans ?

Post by Zenmastur » Wed Mar 25, 2020 6:57 am

Ovyron wrote:
Wed Mar 25, 2020 5:56 am
Zenmastur wrote:
Wed Mar 25, 2020 4:14 am
The inability of programs like SF and Lc0 to modify their behavior based on memories of past encounters (even in rudimentary ways) during “normal” play is a hindrance to more human-like play.
You should look up engines with Learning, those will remember all the games they played in the past, avoid blunders that they played before, and explore different lines they haven't played yet in the current game.

The REASON this was never advanced was because the rating lists refused to do testing with Learning ON, because they wanted users to know the ELO of some engine out-o-the-box (even though it'd have been easy to share the learning files so users could have enjoyed the advertised elo at home). With all their work put on Learning going to waste because it wasn't reflected on the ELO list, ALL programmers decided to take Learning off their engines, or they just quit computer chess altogether (like Richard Vida which could provide a Learning Critter with its Session File, but he retired.)

This has nothing to do with human-like play, or planning, though, because an engine could make a human-like move supported by a human-like plan (for those that think a chess line counts as a plan), only to use Learning to learn it's bad and play a computer-like move supported by a computer-like plan on future games.
This has everything to do with both human-like play and planning. You might be able to get human-like play and planning without learning but I figure "AT BEST" it will only be an imitation if learning isn't included. Learning from one's mistakes is one of the big difference between how humans play and how SF or Lc0 play. The engines learn nothing during "normal" play.

I agree that the GUI's authors and those that test engines haven't done anything to facilitate learning engines. Many of their practices preclude engines from learning. Large testing efforts are "THE" perfect example of lost opportunities for learning. Lc0's/alpha Zero's learning is perhaps an exception to the rule of A/B engines. But even here their is no opportunity for the engine to alter it's behavior as a result of "normal" game play.
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.

User avatar
Ovyron
Posts: 3834
Joined: Tue Jul 03, 2007 2:30 am

Re: When will the chess programmers write an engine that plans ?

Post by Ovyron » Wed Mar 25, 2020 8:02 am

Let me quote once again this link:

https://open-chess.org/viewtopic.php?t=2663

That's an open source engine with learning, managing to do everything you talk about, so there's no excuses for any programmer wanting to implement full learning code in their engines to do it. This doesn't need a $1000000 prize pool, just one programmer that steps forward and implements it on current Stockfish (...aaand that makes the result public. I'm not complaining if I'm the only one that benefits but learning engines will not advance if progress remains private...)

Dann Corbit
Posts: 10469
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: When will the chess programmers write an engine that plans ?

Post by Dann Corbit » Wed Mar 25, 2020 8:59 am

Bernstein's engine did not learn. It memorized. It could parlay that data into new ideas at all.
It stored pv nodes to disk. It reloaded them on startup.
But if it encountered a position it did not know, it had no new knowledge at all to deal with it,

It is an idea called position learning,
Crafty had a variant that did this a very long time ago.

It's not what you think it is, though it is nice
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.

User avatar
mclane
Posts: 16823
Joined: Thu Mar 09, 2006 5:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub
Contact:

Re: When will the chess programmers write an engine that plans ?

Post by mclane » Wed Mar 25, 2020 9:40 am

Learning means also forgetting
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....

Post Reply