Does making a chess engine make you good at chess?

Sort:
waffllemaster
corrijean wrote:
nameno1had wrote:

I think a better way of view good engine algorithm writes as good at mathematics, as it pertains to chess tactics...

I think I need a translation.

I'll try :p

"It may be that writing a good engine algorithm suggests the person is good at mathematics more than it suggests they're good at chess because chess is mostly tactics."

So it may contain a pun?  Both math and tactics are calculated.  Honestly not sure though heh.

atarw
pfren wrote:

Some engine developers play pretty decently (the Rybka one is an IM, while Houdart used to have many years ago a rating around 2250), but some of them are just class players.

But that was before they programmed the engine, I think he's asking if people have became stronger as a RESULT of making the engine.

nameno1had

I hate spell check...

PatrickDaly

I'm an AI programmer, but I haven't made a chess engine yet. I can tell you that from automating other games, my gameplay in them increased.

Most games which can be mathematically defined (chess is one of them) you can tell someone whether or not a given move is "Right." The algorithm which "plays" the game is the same across all games, its just the way you teach it to play chess that matters.

Alpha-beta is the algorithm most used for chess engines, with very, very good reason. It is a highly appropriate algorithm. The way you decide to teach your Alpha-beta algorithm to score a chess board is really how you teach it chess. AB is going to do it's little thing, you just have to make sure your scoring function scores the chess board right.

This is fairly similar to real chess. Over 1400~1500 rating, move prediction becomes easier and easier. Below, you can't count on your opponent to make "The right move" but as you progress over 1500 in rating, your moves are predictable with some high degree of mathematical accuracy. Why? Because over 1500 everyone has nearly the same evaluation function of the board. So chess becomes not so much making the right move, as seeing the right move to make, 3+ moves before its time to make it.

Computers win because they don't break from their eval function, and because they don't break they can play as many moves forward as they want without losing too much accuracy.

nameno1had
That is certainly a fair premise that understanding how a computer picks it's move will help you to also apply the concepts, but put it in the context of the OP's question, even with "good" being a loose term, a human having the same ability to calculate like an engine, using the same principles as an engine is a pipe dream....maybe with a human having weeks to think about and record potentially brain cell blasting amounts of data, the human might keep up, with one exception. The engine will make far less mistakes.
PatrickDaly

Quite. But as you go about programming your chess engine, if you start from (as an example) 1200 rating, you'll learn as you go along. You might learn to play like a computer rather than playing like a person, but computers are winning these days.

I am a better player in several games today because I programmed AI algorithms for them. Many games, chess included, players think their subconscious is doing them a lot of good. It very well may be, if they've trained it well, but during the AI programming process you have to solidify things in math which are normally handled by the subconscious.

The act of programming an AI forces you to mathematically analyze the game to a depth greater than normal for that game.

waffllemaster

@ nameno1had
Well I think it's more accurate to say the human is teaching the computer how to evaluate like a human.  It's the process of laying it all out for the computer step by step that has the potential to make you a better player.  Computers don't do anything different except extreme amounts of calculation and as patrickdaly said they never vary (get tired, upset, confused, etc).

PatrickDaly
waffllemaster wrote:

@ nameno1had
 It's the process of laying it all out for the computer step by step that has the potential to make you a better player. 


You nailed it.

nameno1had

yeah said basically the same thing....if you play chess applying the prinicples that engines are programmed to used, it is most likely to make you better...."good" is what is in question....can applying the idea make you good, according to the op's idea of good ? maybe....but can you play like houdini by trying to apply houdini's math.....doubtfull

irobeth

Chess "AI" is actually just "search" right now. It has nothing to do with Chess and everything to do with analyzing an evaluation function.

Writing an evaluation function might make you better at Chess, but only if you study what it takes to write a good one.

honinbo_shusaku

Actually, if you examine the source code of strong open source chess engines, you will find that their evaluation function is somewhat primitive. I suppose it isn't easy to fully translate human thought processes into precise mathematical forms. At the same time, it may also amaze you how such crude elements slabbed together enables these engines to play strong chess. The saving grace of these engines is their computation strength. They can easily see 40 moves down the road, while humans struggle to see their 6 moves. This is why computer algorithm is not of much help for an improving chess player.

I agree with 1ernie. Making chess engine will teach you more about programming than chess. 

beardogjones

The reason most chess engines do not have lots of knowledge is

because the time to process such knowledge usually does not

pay for the search depth that is lost. Basically chess computers

are theorem provers which can prove whether material gain

can be forced within their search depth.

AndyClifton
PatrickDaly wrote:

Because over 1500 everyone has nearly the same evaluation function of the board. So chess becomes not so much making the right move, as seeing the right move to make, 3+ moves before its time to make it.

Boy, am I having a tough time buying that (whatever it may mean)...

DrSpudnik

If I wrote a book about Shakespeare, would that make me the greatest wordsmith in the Enlish language? (please, please, please say yes!)

NimzoRoy

A programmer might learn more about chess and improve their own game by making up a chess program, but I doubt if that's a "forced" continuation. 

Is someone a better driver because they build cars for GM or Ford? I think not, anymore than someone must be or will be a chess master just because they write chess programs.

AndyClifton

Yes Spudnik, you are a master of Enlish!

And anyway, I don't really like Shaxberd all that much.

This is good though, you have provided a way to tie all this together.  The question now is:  did the fact that Staunton wrote a book about Shakespeare make him good at chess?

ElKitch

I do think it would be quite an achievement to program an engine and not be good at chess.

AndyClifton

I think it's an achieved achievement. Smile

DrSpudnik

by a made man

PatrickDaly
NimzoRoy wrote:

Is someone a better driver because they build cars for GM or Ford? 

Bad comparison. Could someone become a better driver by programming a driving AI? Maybe so. When you program ANYTHING, what you're learning how to do is codify your knowledge. How to take a human's knowledge and put it into a super solid form that a computer can understand, without any "feel" aspect. You don't program "stay within the lines," you program a function to measure the distance from the lines and then either split the difference, hug a set distance from the left or right, etc. Plus this has to be overridden whenever you change lanes. The program is concrete, but still has to behave rationally, as most humans do, and there is the challenge. 

Honinbo and irobeth: good points. Most use alpha-beta search, which is why no engine can find the "correct" move on sprung halosar trap (at least not when I tried 2 years ago). It writes off (prunes) the queen sacrifice. Writing a better evaluation function would indeed make for a better gameplay, assuming the calculations could be done far enough down the tree. Playing 20 moves out is useless if you miss the "good move," but sometimes you can't tell the good move till 5+ out. 

Humans don't brute force: Chess engines do. Chess engines play for straight material or board position points (largely) while humans can sacrifice pieces better. I think if chess engines can be made more effective through a better eval function they'd be able to actually calculate less (pruning more- though depth 1 pruning is why they miss halosar!) so it's a balancing act until we get large enough computers to solve chess.