maxchgr wrote:Out of curiosity, besides mental torture, if you know that it runs slower in basic, why write it in basic?
It is the challenge that gets me. It has been written that if your evaluation was perfect you might not have to search very deep at all so I just keep experiementing, besides at the present time Basic is the only language that I know.
I can read a little "C" but have never been able to compile a program written in "C" for that purpose.
I have tried many times to compile Tom's TSCP with no luck at all. So Basic is will remain, but one day I might learn and then rewrite my Basic program in "C" and if it works out Maybe it'll kick some butts.
Bill
I must admit that whilst I'm not much of a chess player (maybe 1600 ELO, who knows?)... I certainly enjoy playing vicariously through my engine TRACE.
So, chess programming is a way of playing chess by proxy - through a silicon agent. And I study chess, and observe thousands of games, and have become fairly proficient at judging a good position from a bad one. So, my role is to give TRACE wisdom about such things.
And I try to make her see these things faster than other engines. That's a challenge too.
It has less and less to do with defeating humans. Its all about being the strongest chess playing entity - man or machine. That struggle will never end.
I don't know why exactly - but it really fascinates me.
Bill, if you write BASIC with nice sub-routines, and not GOTOs, you are pretty close to understanding C. I remember making the leap, and it was scary, but that was years ago. Now I try every computer language someone puts in front of me. (You should see Forth!).
Start with C for Dummies. Or try writing some very simple C programs with an old DOS compiler. Stay away from Visual C++, which takes six hours to install, etc.
And if you really want to take a leap into C, try to find a BASIC to C converter. Experiment with that.
Hope this is encouraging. C is gratifying. I love BASIC but if it's interpreted it's slow.
Are you using a BASIC compiler? And it's still slower than C??
PG
In reality I own three different Basic compilers but only one was developed for windows and yes even compiled they are much slower than "C".
As I said I understand C a little but have never been able to compile a program written in it.
Bill
rfadden wrote:I posted this on the Rybka forum. These are some honest thoughts of mine. I'm posting here for the purpose of discussion...
We may be at a dead end for computer chess. Consider this... Take the chess playing abilities of the top computer chess programs (Rybka on down). Is this level of play good, or do we need vast improvements in order to finally have a good chess playing program? Ha! That's a laugh. We not only have good chess playing programs, we have ultra mega monsters of chess, with no mercy who will slay you at the game of chess, rapidly, as if you are watching a kitchen utensil slice through vegetables!
...
For those who see chess as a game of knowledge no engine can be ever good enough as long as it doesn't answer a single question about openings on its own without help of history of human games and statistic and without being asked the right questions.
You must not blame the engine when you don't know what to ask from it.
Everybody who knows how chessmen move and how to use the engine can beat any engine with its own help by leading it the right opening to a lost postition. As long as computer does what it is told to, it has to solve the questions of yours, if you don't have any questions, it's your fault.
Chess studies often enough show how long good engines need for solutions, some endgames are still unsolveable to them with or without tbs without human help.
In freestyle engine alone stands no chance against a good team of man and machine and the better the machine gets is the better the team gets even more cause better knowledge of openings we learn by machine games will always help man using machine more than machine alone
regards
Peter.
Progress is made in jumps and starts. Programmers try a lot of things to find something that works, and every so often a new idea really pays off. Us scientist and engineers and programmers just cannot leave things alone and want to make them better. People have commented on the death of computer chess for over 20 years. By the mid 1990s, chess machines were good enough to beat the best in the world, yet more than 10 years later, we are still working on it.
Nothing ever dies. I know people who still restore Model T automobiles. Chess programming will probably never die. Maybe it will change to having a program that can beat grandmasters on a chip running at 1 MHz, but it will still be around for a long time.
mjlef wrote:I do not think there is a dead end. Two reasons:
Progress is made in jumps and starts. Programmers try a lot of things to find something that works, and every so often a new idea really pays off. Us scientist and engineers and programmers just cannot leave things alone and want to make them better. People have commented on the death of computer chess for over 20 years. By the mid 1990s, chess machines were good enough to beat the best in the world, yet more than 10 years later, we are still working on it.
Nothing ever dies. I know people who still restore Model T automobiles. Chess programming will probably never die. Maybe it will change to having a program that can beat grandmasters on a chip running at 1 MHz, but it will still be around for a long time.
The best of anything is always popular.
Mark
Well said, I second that.
Btw, Interesting poll idea, Thanks to Rick for initiating the thread.
rfadden wrote:I posted this on the Rybka forum. These are some honest thoughts of mine. I'm posting here for the purpose of discussion...
We may be at a dead end for computer chess. Consider this... Take the chess playing abilities of the top computer chess programs (Rybka on down). Is this level of play good, or do we need vast improvements in order to finally have a good chess playing program? Ha! That's a laugh. We not only have good chess playing programs, we have ultra mega monsters of chess, with no mercy who will slay you at the game of chess, rapidly, as if you are watching a kitchen utensil slice through vegetables!
In almost all cases the top program decimates all human opponents as if the people are weak, as if these people don't even know how to play chess, and the only people on this planet who stand a chance against these engines at full tilt are a handful of Grandmasters. Right now, mentally take the person who you consider to be the best chess player on the planet, and assume that they play 10 games of chess against Rybka 2.3x as run on an Intel Q6600 based computer. What is the outcome of this imagined 10 game match?
The answer is that the top program when run on a chip that costs just over $200. will lead to the program winning the match, repeatable, repeatedly...
Imagine if I were to say that the world desperately needs a really good chess program, one that is much more capable of playing chess than current technology. Could you imagine turning to me and replying "Why do you need that?" Yes, that's what I'm thinking... why do we need that?
I think one key is that we are enjoying our hobbies and we are not necessarily asking tough or prying questions about our own hobby. Roughly I would say that we have arrived at the finish line. More improvement in the ability of a program to play chess would be nice, but I imagine what we would see is endgame performance that surpasses the best Grandmasters most of the time. After that, then what?
I think what is happening is that we are getting caught up in the battles between the top engines, and this process of battling for the top can continue with no end in sight for years and years. In the mean time we should realize that the hobby becomes machine versus machine contests. For human use the programs reach everything that we really need, and I believe that the top programs essentially are already at the goal. The program can beat everyone on the planet, period.
What would have been the outcome of the last Fritz versus Kramnik match if those folks had used the best program instead of Fritz? Well with Rybka on the fastest machine available at the time, the outcome would have been even more lopsided in favor of the machine. Rybka on the fastest hardware would essentially crush Kramnik in a typical World Champion style match.
Imagine that I eagerly await the latest ultra-mega chess program that is about to hit the market. Honestly I'm thinking "oh boy, this will be great, I'll get this engine and it will clearly beat all of my other engines!" I would gladly pay to see this. But that's part of the problem...
After I watch my new amazing engine decimate the other engines, I then share these results with others and yes the other hobbyists are doing the same thing, and then what? Well we all come up with the same answer and after a while you realize that you are just a spectator. There is no actual reason for me to run an engine match. This doesn't accomplish anything. It's a hobby, it's fun to watch, for a while... but then you realize there is really nothing to it. You plug in a new engine and you launch it, and it does the rest. Hey the hobby of Radio Controlled Helicopters at least has you controlling the helicopter, and some real skill is involved.
Imagine the skill that is involved in me downloading and using the latest ultra mega chess engine. I click download, I wait a few seconds, I unpack, I go to my GUI and add the engine, and I create a match and I start it, and then I watch. That's it. That's all there is to this hobby of computer chess at the top.
So someone might pipe up and say "Ya, but you will want to play chess against that new engine, right?" No Way! Man those engines crush me all the time. What fun is that?
Hey I could probably download a chess engine called "GoatRope 0.39a" and it would beat me at chess... I don't get chess engines to play chess against them - they all are way too good! They crush me mercilessly, actually in very few moves.
So what is this hobby? The hobby may be in writing your own engine, or it may be in collecting all of the top engines, or it may be...
Why don't you help me out and tell me more about this hobby of ours. Instead of focusing on how wrong I am, please consider the ideas here and please come on and add your own ideas. What do you think? Be creative...
You do like to hear yourself talk don't you? I don't think you have a clue why Kramnik lost outside the fact he allowed a mate in one.
Don't you worry there are plenty of us left that win against programs!
Actually he is right, Chess Engines would easily crush human GM's all the time, without handicap, that is.
I bet even 2650 rated Hamsters running on Q6600 would beat Adams or Morozevich.
Bill Rogers wrote:PG
In reality I own three different Basic compilers but only one was developed for windows and yes even compiled they are much slower than "C".
As I said I understand C a little but have never been able to compile a program written in it.
Bill
I am not a professional programmer and I used to do things only in Pascal. In 2000, I wanted to learn C and I started an engine to learn the language. A critical thing is to have a good book. The Kernighan and Ritchie "The C programming language" classic is short and good.
Bill Rogers wrote:My programs are written in Basic and then compiled but programs written in "C" run 10 times faster than basic.
In a tournement where we are allowed 1 minute per move I can only get about six plys deep (3 moves) while most "C" program can reach 12 plys or more without any problems at all.
As even the best engines have branching ratios of around 3, programming in a 10 times slower language would only cost you about 2 plies of depth. Programs with poorer branching ratios would even lose fewer plies.
So if you only reach 6 ply in positions where C programs reach 12 ply, you cannot blame it alone on the fact that you use BASIC. If it was only that, you would reach 10 ply in those positions, in stead of 6.
What happens if you compensate the factor 10 by playing a time-odds tourney, so that your program has 10 min/move and the opponent 1 min? Which depth do you reach then? (Perhaps it is more practical to give your program 1 min, and the opponent 6 sec.)