< Earlier Kibitzing · PAGE 9 OF 79 ·
|Apr-20-06|| ||monad: <whatthefat: >
I reckon this Rybka is a bit of a memory hog. Especially compared to a more sophisticated programme like Junior9.
When I had them play each other, I noticed that I could do things, like open PaintShopPro and do a screenshot, no prob. But only whilst Junior was 'thinking'. As soon as it was Rybka's turn to play, I couldn't even open PSP, let alone have it do something.
All that in spite of the vast difference in kN/s, with Junior using around 2000 and Rybka a mere 30. It seems that Rybka is not optimized for RAM use, the way most commercially established programmes are.
I would like to see it reviewed for a bunch of parameters, such as a floating points performance and other arithmetic tests. Does any one know if a Win Count Index measurement has been done on it?
|Apr-20-06|| ||monopole2313: I'm interested in writing my own computer chess program. I know C and assembly language but am fairly inexperienced as a programmer. Could someone suggest some introductory books or articles on writing chess programs? Thanks in advance!|
|Apr-20-06|| ||Shajmaty: <monad: All that in spite of the vast difference in kN/s, with Junior using around 2000 and Rybka a mere 30. It seems that Rybka is not optimized for RAM use, the way most commercially established programmes are.>
The analysis has been refined by Rybka: it "sees" in 1000 kN what other engines need 8000 kN. It usually beats Junior, by the way.|
|Apr-20-06|| ||ganstaman: <monopole2313> I don't know of any materials out there that can help, but here's the little I know (or at least pretend to know). I would suggest first programming a chess game that is playable between two humans, where the computer at least recognizes illegal moves (make sure to get castling, en passant, recognizing check and checkmate, etc). This is all I've done before, and it's quite a task in itself.|
Then you'd probably want to start on the AI portion of the program. So you'd have to determine what legal moves you have and then figure out an algorithm for evaluating positions. I would suggest making this algorithm well documented and easy to tweak since you likely will want to change often until you find the strongest combination of all your parameters.
One thing I've read somewhere (don't remember where, sorry), is that chess programs use a min-max thingy. That is, if it analyzed 4 ply (it moves, opponent moves, it moves, opponent moves), it assumes the opponent will chose the move at that 4th ply that minimizes the positional evaluation (worst move for computer, best for opponent). Then, the computer selects the 3rd ply move that maximizes the positional evaluation after the opponent selects his right 4th ply move. And the opponent would chose the move that minimizes that evaluation of the computer's maximized 3rd ply eval. In the end, the computer chooses the move that maximizes the evaluation after the opponent chooses the minimal move from what the computer maximized of what the opponent minimized.... etc. I feel that I'm getting confusing, so maybe I'd better let someone else (or some article or book) explain this better.
Good luck. Hope I helped at least a little.
|Apr-21-06|| ||RandomVisitor: <monopole2313>I would suggets that you get a copy of the free chess engine Crafty and take a look at it. The code is more complicated than you probably imagine.|
Bob Hyatt has excellent notes where he explains what he is doing.
|Apr-21-06|| ||Appaz: <<monopole2313> writing my own computer chess program> Do a google search on the NegaMax algorithm.|
|Apr-22-06|| ||Appaz: <RandomVisitor: <monopole2313> Crafty [...] The code is more complicated than you probably imagine.> Making a brute force chess playing program is quite easy. You need three bits of code: the NegaMax algorithm (to be called recursively for each ply), a simple evaluation function (to be called from NegaMax), and a logical chess board (to store the position of each recursion).|
|Apr-23-06|| ||notyetagm: Rybka eval please for the following position with Black to play:|
click for larger view
It is from the Fritz 5 tactical demolition Fritz vs Hertneck, 1998 after 17 ♖c1.
|Apr-23-06|| ||RandomVisitor: Rybka sees: 17...Qe4 18.Ng3 Qe6 19.Qf3 Bd6 +0.78/19. In this game, after 17...Qe6 18.Qf3 Black errs with 18...Rg8 allowing white rook penetration to the 7th rank. Better was the simple 18...a5.|
|Apr-23-06|| ||RandomVisitor: <Appaz>Thank you for that info.|
|Apr-23-06|| ||monad: <Rybka sees: 17...Qe4 18.Ng3 Qe6 19.Qf3 Bd6 +0.78/19. >|
So does Junior 9 at 19 ply, but its evaluation is higher: +1.44.
Continuation 20.b3 Rg8 21.Qxb7 Rad8 22.Rce1
|Apr-23-06|| ||notyetagm: Thanks for the evals, <RV> and <monad>.|
|Apr-24-06|| ||notyetagm: Rybka eval please of the following critical position from Leko vs Kramnik, 2004:|
click for larger view
Black has just played 30 ... ♖f8-g8, with terrible pressure against g2.
In the actual game White (Leko) played 31 ♕h3? and cracked under this enormous kingside pressure, going down in flames in just six more moves.
What should White have played in this position? On the kibitzing page for this game you will find ideas of ♔h1/♖g1 and also ♔f1.
|Apr-24-06|| ||AlexandraThess: <notyetagm> Kf1 is aimless move - after Qh4 white have to resign.This move give Black a tempo to remove the Queen from the 5th rank and this makes
possible moves like Rh5,Rg5. For example - 31.Kf1 Qh4 32. Kg1 (on 32.g3 simply follows Q:h2)32... Qf2+ - and white loses his bishop.
In my view the best move is 31.Kh1 , since black cannnot do anything (the bbishop on g7 can't move because it prevents thee mate on h7).After 31.Kh1 Qh4 32. Rf1 Bf6 33.Rb7 Reg5 34.Qh3 Q:h3 black is better. But instead of 32.Rf1 white could try 32.Qg4 Q:g4 33.fg b4! 34.cb Re4 35.b3 R:b4 .|
|Apr-24-06|| ||notyetagm: <AlexandraThess> I didn't mean an immediate ♔f1. The idea I saw on the other page was to play ♕h3 first to prevent ... ♕h4 and then play ♔f1.|
|Apr-24-06|| ||monad: <notyetagm: Rybka eval >|
I'll get on it for you today, in my lunch break.
|Apr-24-06|| ||monad: <notyetagm: Rybka eval >
Analysis by Rybka 1.1 32-bit:
1. = (0.63): 31.Kh1 Qg6 32.Rg1
2. = (0.00): 31.Rda1 Rd5 32.h4 Qxh4
3. = (0.00): 31.b4 Qh4
4. = (0.00): 31.Rb7 Qh4 32.Kh1
5. = (0.00): 31.Rc7 Qh4 32.Kh1
19 ply 2 hours
|Apr-24-06|| ||RandomVisitor: White's mistake in this game was 32.Rad7. Better was possibly 32.Kh1 and now if Rh5 33.Ra6! which is not possible in the Rad7 line actually played.|
I agree with monad, after 31.Kh1 white stands better
|Apr-24-06|| ||monad: <RV>
I reckon it went back earlier even:
The White Queen had no need to place herself on -d7- in the first place.
30.Rd7 Rg8 poss. 31.Bd3 Ree8 32.Qb4 or something like that.
Not brilliant, but safe. And of course, Leko would not have been tempted to play the fatal Qh3.
|Apr-24-06|| ||notyetagm: Thanks for the evals, <RV> and <monad>.|
|Apr-24-06|| ||notyetagm: Rybka eval please for the following critical position with Black to move from
Yusupov vs Kasparov, 1989:|
click for larger view
White has just played 31 ♘c3-d1. Here Kasparov played 31 ... ♘d3-e5 and went on to lose. What does Rybka say Black should play at move 31?
From the kibitzing page for this game:
< In his tribute to Kasparov in New in chess, Timman says Kasparov was easily winning with 31...Nxf4 (and, with more difficulty, still a move later) and suggests that Kasparov had pushed himself so hard early in the game that he lost energy at the end. >
|Apr-24-06|| ||RandomVisitor: After 31...Nxf4 32.Qxf4 Be5 33.Qd2 f4 34.Kg1 Qxh3 White has nothing at all.|
The evaluation of -3.71 increases to mate in 17 (!) after Qxh3.
|Apr-25-06|| ||notyetagm: <RV> Wow, so the line beginning 31 ... ♘xf4! leads to a -3.71 eval and then to a mate in 17(!) after 34 ... ♕xh3. |
So Garry really did miss out on a brilliancy prize. What a shame.
|Apr-25-06|| ||Rimrock: <Shajmaty> Check out http://www.frayn.net/beowulf/theory...|
|Apr-27-06|| ||Shajmaty: <Check out http://www.frayn.net/beowulf/theory...; Thanks for the link, <Rimrock>. I was aware of most of these issues while helping a friend of mine programming a chess machine, back in 1994.|
< Earlier Kibitzing · PAGE 9 OF 79 ·