Author: Dave Gomboc
Date: 15:30:04 05/03/99
Go up one level in this thread
On May 02, 1999 at 12:58:26, Christophe Theron wrote: >On May 02, 1999 at 12:19:18, Dave Gomboc wrote: > >>On May 01, 1999 at 16:49:51, Peter Fendrich wrote: >> >>>On May 01, 1999 at 14:00:40, Christophe Theron wrote: >>> >>>- snip - >>> >>>>So what you call knowledge is "knowledge in the evaluation only"? >>>> >>>>Why do you want to narrow the field of knowledge? >>>> >>>>Through the years I have learned that chess knowledge is not only about >>>>evaluating positions, but also about deciding which lines to search. Ask any >>>>grandmaster: this is a fundamental issue in chess. >> >>This was not my suggestion. I do not see it anywhere in the thread either. > >So what do you mean? I am not trying to define "chess knowledge". I am trying to make a distinction between "knowledge-based" and "search-based" methods. >>>>If you want to know if program A has better knowledge than prog B, just let them >>>>play a long match. The one that wins is the one that has the most knowledge >>>>about chess (I mean the most relevant knowledge, I suppose you are not >>>>interested in irrelevant knowledge). >>>> >>>>It is as simple as that. Any other dichotomy about what is knowledge and what is >>>>not is artificial. >> >>This isn't true. There is a difference between means and ends. There is also a >>difference between ability and understanding. >> >>>> >>>> Christophe >>> >>>Agree! >>>There are (at least) two ways to use the term Knowledge-based: >>> 1) Strictly as in the AI field. I know of no program worth mentioning >>> that uses knowledge engineering, knowledge bases or something like >>> that. I don't even think it would be a good idea... >> >>Well, as a graduate student in the AI field, I hope that Christophe and you will >>permit me my insistance that _this_ is the way that attaches real semantic >>meaning to the term, and other uses debase the term's value. > >OK, so can you describe knowledge (or better knowledge) without using a >reference to the fact that better knowledge gives better performance? What other >concept can you use to decide that some "knowledge" is better than another? > >We are not talking about any kind of knowledge, are we? We are talking about >what's efficient, what describes the best the world we are living in, what you >have to know to win the game. > > >>> 2) In a more general way, meaning that the program is build up by more or less >>> *pure* chess knowledge. >>> There are no *pure* chess knowledge in the program. Everything in the >>> program has to be tuned, including the chess knowledge. It is not possible >>> to include some evaluation term without thinking about how it cooperates >>> with the search. For the same reason it is not possible to make good >>> changes in the search heuristics without thinking about how it affects >>> the evaluation code. The different parts of the program has to work together >>> as a whole. The best program as a whole has the best chess knowledge. >>> Of course we have something called luck but that's another story... :) >> >>The best program as a whole might not have the best chess knowkedge, it might >>simply execute compute things more quicky. The computer is not self-aware that >>it is computing something more quickly than it would had it chosen an >>alternative way, so I reject that e.g. code optimization implies more knowledge, >>even though performance may be improved. > >I don't agree. The fact that "thinking" faster (or looking at more variations in >the same time) gives better play IS chess knowledge. Yes man. This is _your_ knowledge, not your software's. >There are games (tic-tac-toe for example) where you can find the absolute best >move after a practical limited amount of time. In chess the amount of time to >compute the absolute best move is so long that it is practically infinite. So >thinking longer gives better play (unless you have a pathological search). This >is chess knowledge. This is trivial chess knowledge, but any player knows that, >and it is part of any chess program. > >If you want to deny this idea you have to find a definition of knowledge that >don't rely on the concept of performance. > >Failing to do so you'll have to include many things into the concept of >"knowledge", and some of them will not fit common sense. And suddenly the term >"knowledge based" will look terribly useless. > > > Christophe I am arguing that the use of the term "knowledge-based" to describe today's high-performance chess software is misleading. The role that chess knowledge plays in these programs is to guide their search. An Othello program is structured very similarly to a chess program. The domain knowledge is different, the tricks are different, even the search pruning and extensions change, but some enhanced variant of alpha-beta is still running the show. Humans search in long games too. But how often have you played blitz chess, where you just whip off moves, and play a reasonably strong game with just about no explicit look-ahead? Our capacity to search is extremely limited, we might look at what, 10^9 times less positions that a computer over a three minute think. (Something big, anyway.) You can say that how we play chess (compared to a program) is merely a difference in the degree of chess knowledge and search that we use, but the difference is so vast that it is more suitable to discuss a difference in kind. A GM looks at the same order of magnitude of positions that a B-class player does: it is their domain knowledge that differentiates one from the other. Our ability to play relies extremely heavily on our chess knowledge. Now take some chess software, and replace the evaluation function with a random number generator. It will still play resonable chess! At least, it will still beat the average beginner. Inform it about material and pawn structure, and you will probably have a near master chess player. Almost no knowledge is needed to acquire a competent computer chess player: the software is heavily reliant on the ability to search. Humans and today's high-performance chess software rely heavily on different things. I hope that the text above explains how I differentiate between "knowledge-based" and "search-based". Like I said before, it is certainly possible for software to be truly "knowledge-based". I just don't know of any 2500+ Elo programs that actually are. Let's imagine an (oversimplified) performance curve that looks like y=1/x (for x>0), where the amount of domain knowledge a chess playing entity has is represented by its x-coordinate, and its ability to search is represented by its y-coordinate. All of the humans are way to the right on the x-axis, at some large number. They are only slightly above y=0. The software we are talking about is way up the y-axis, with x slightly greater than zero. A visual inspection of the graph easily makes the distinction between the two groups. I am labeling them: the former group is knowledge-based, and the latter group is search-based. Let's take a look at a particular (search-based) point, say Chess Tiger. Of course, when you find a change that will increase its x value independently of its y value, you will make it. Also, when you find a change that will increase y independently of x, you will make that too. I understand that much (most?) of your work to improve Chess Tiger is weighing the effects of changes that increase x, but decrease y, or vice-versa. I appreciate that you are trading off between the two. In my eyes, having to make these trade-offs does not justify categorizing Chess Tiger (or Crafty, or whatever) as "knowledge-based". I wrote a post a few weeks (?) back that I took a different approach to describing what I thought the distinction was. Maybe I should dig through the archives and see if I can come up with it. Certainly, one can imagine there being points representing chess-playing entities that are outside of these two groups that I envision. I am not going to argue, like so many, that future progress in computer chess depends on increasing x. It might, but a (relatively larger) increase in y will work too. Most likely, both will happen. Dave
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.