What the computer chess community needs to decide

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
hgm
Posts: 23790
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: What the computer chess community needs to decide

Post by hgm » Fri Feb 11, 2011 5:02 am

h1a8 wrote:No offense but I don't believe you Sir. How would you know about Alpha Beta then unless you invented it.
Either you started to build a chess engine WITHOUT having seen another source (or piece of source) or you later viewed another source and used the ideas to improve your engine. Although I believe more in the former I most certainly believe at least one happened though.

Which engine did you write by the way?
Alpha-beta is described in almost every theory book on AI. To Chess players alpha-beta comes quite natural, btw; they also apply it themselves. Because I had not properly understood or remembered the description from my IA course, my first engine implemented it wrong (I had omitted the deep cutoffs, or, in modern terminology, was not passing alpha through the recursive call), and when tracing the search tree I immediately smelt a rat, like "why is it thinking about this move? with what it knows now this is completely pointless". And by tracing the problem found out how to do the deep cutoffs. So indeed, you could say that I invented (re-discovered) alpha-beta myself. So it is not that difficult. And if you don't believe it, compare the source code of Usurpator I and Usurpator II...

To a scientist, knowledge comes from learning and understanding theory, and then applying it by following its logical implications. Not from copying actual applications by others and modifying them.

Engines I have written are Usurpator I, Usurpator II, Usurpator V, micro-Max/Fairy-Max, Joker/Joker80/JokerKM, HaQiKi D, Shokidoki and Spartaccus.

Gian-Carlo Pascutto
Posts: 1191
Joined: Sat Dec 13, 2008 6:00 pm
Contact:

Re: What the computer chess community needs to decide

Post by Gian-Carlo Pascutto » Fri Feb 11, 2011 7:01 am

h1a8 wrote: No offense but I don't believe you Sir. How would you know about Alpha Beta then unless you invented it.
Either you started to build a chess engine WITHOUT having seen another source (or piece of source) or you later viewed another source and used the ideas to improve your engine.
Huh, by reading a description of it! I had a working checkers program before I even imagined open source chess engines existed.

User avatar
hgm
Posts: 23790
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: What the computer chess community needs to decide

Post by hgm » Fri Feb 11, 2011 8:20 am

h1a8 wrote:
LucenaTheLucid wrote:Several I think:

http://home.hccnet.nl/h.g.muller/chess.html
Oh well he shouldn't have responded. In my original post I said NO CURRENT author (engines that are still being developed TODAY).
Well, so it is obvious that the website is not being developed today. :lol:

If you would look at http://talkchess.com/forum/viewtopic.ph ... 5&start=50 it would have been obvious to you that Spartacus was being developed TODAY. (Which, by now, is actually yesterday.) In fact it seems to be the only engine of which there is written proof here on the forum that it was actually developed yesterday...

Do you read the the programmers section of this forum at all, to see who is developing what? Or is your claim that 'all authors copy code' based on the misconception that there exists only a single engine (Houdini), that happens to have a single author that does this? (And therefore is not really to blame, because, being the only author, there of course was nothing to copy from, so he must have been doing it all from scratch anyway... :wink: ) You seem to be awfully ignoranton the subject ofengines / authors.

paulo
Posts: 53
Joined: Wed Dec 15, 2010 6:31 pm

Re: What the computer chess community needs to decide

Post by paulo » Fri Feb 11, 2011 9:18 am

bob wrote:
paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
Here is one that does not. Copying source is not "software development" by the way, it is "software plagiarism". HUGE difference...
I respect your opinion but I don't see it that way and don't consider copying. Furthermore, modern sw development is heavily based on code-reuse, either yours or, in most cases, from other sources.

regards

Roger Brown
Posts: 782
Joined: Wed Mar 08, 2006 8:22 pm

Re: What the computer chess community needs to decide

Post by Roger Brown » Fri Feb 11, 2011 1:30 pm

Peter Skinner wrote:
3. Rybka misses CCT 7, and shortly after emerges as the strongest program on the planet. Many people including myself called it a Fruit clone at that time, and we were scolded for it. Just as we are now when we say Houdini is nothing more than RobboLitto with some tweaks. (If you really believe that Robert Houdart started from scratch and coded 100% of Houdini himself, then I have a bridge to sell you.).
Hello Peter,

The many that made any connection between Fruit and Rybka must have been a number between two and four because the silence then was deafening. I recall a reliable person I correspond with often enough attempting to say something on the topic being vilified. I suppose now he is bemused....
Peter Skinner wrote: 4. All the bitching and moaning over the past 5 yrs was really pointless as it seems that Rybka (beta) was in fact a clone/derivative of Fruit. Since that time Vas has went on to win nearly every tournament he has entered and made some good money from his program.
Bully for him, huh?
Peter Skinner wrote: 5. It is not known today if any or just how much is remaining from the Rybka 1.0 beta that is believed to be an improved Fruit. Until it is proven that Vas really has an original program, he shouldn't be allowed to participate in competitive tournaments without the permission of Fabian.
Here is a serious question for you - are you prepared to (a) Adopt that position for CCT and (2) Make any notation beside Rybka's win in CCT 11? That would speak far louder about your position than stating it here.
Peter Skinner wrote: 6. Under no circumstances will the Ippolit family of engines _ever_ participate in the CCT events. It is clear to me they are a reversed engineered product, and are less than 1% original.
I am lost here. You knew that Rybka was at best somewhat suspicious from the start but you allowed iterations of the program to compete and indeed, win CCT. Why exactly? Why was Rybka not excluded using the same logic above? It is your event and you exclude or include at will but the inconsistency in the applicaton of the logic is difficult to understand.


[SNIP]
Peter Skinner wrote: For now, I am taking the wait and see approach before deciding anything further. Evidence with eventually have to be produced and a ruling will be handed down. Once that is done, this conversation will probably take a dramatic turn.

Again the hesitation to act when you have already indicated that you have no problem with being decisive in the case of the Ippp* engines and their alleged derivatives. This is one of the things that bothers some - the inconsistency in the application of the rules and "outrage".

Before I am tarred and feathered for being a Ipp* fan or anti-Vas let me be clear - based on the engines that I actually use with regularity then I am a fan of Richard Pijl, Miguel Ballicora, Dr. Robert Hyatt, Gian-Carlo Pascutto, Ed Schröder and of course, the ever irrepressible, H.G. Mueller.

:-)

Later.

User avatar
Evert
Posts: 2923
Joined: Fri Jan 21, 2011 11:42 pm
Location: NL
Contact:

Re: What the computer chess community needs to decide

Post by Evert » Fri Feb 11, 2011 3:42 pm

h1a8 wrote: No offense but I don't believe you Sir. How would you know about Alpha Beta then unless you invented it.
I wrote my first chess program around 1996, based on a description of how an alpha-beta search works and how you might represent a chess board on a computer in a book by Jaap van den Herik that I got out of a public library. This was several years before we had internet.
For my second program (around 2003), I used what I'd learned from writing the first as well as from reading some on-line resources (most notably from Bruce Moreland's website; what happened to him, by the way?). For my third program (2009-present) I again built on what I'd learned earlier, and what I could learn from reading articles on-line, mainly the Chess programming wiki and Ed Schroeder's pages describing Rebel.
For what I guess is my fourth program (not counting the two Xiangqi programs I wrote in 2004 and 2010, otherwise it's actually the sixth) I didn't look up any resources other than my latest existing chess program.

So the point I'm trying to make here is that it's perfectly easy to write a chess program without looking at someone else's code. There is only one real reason I can think of for doing that, and that's that a particular idea or algorithm is not immediately clear from reading a description of it, especially if that description is very brief. Even then, pseudo-code would have been more useful because it isn't bogged down with all those other minor things that bloat and obscure actual code, not to mention all the other ideas that get mixed in.
It's much easier to learn how to do alpha-beta from a pseudo-code description of the algorithm than it is to learn it from looking at the source of a chess program (any chess program) where you get hash probes, null moves, reduction/extension heuristics, legality checking, mate score adjustments, updating killer tables...

Yeah, I know, you've never heard of any of my programs and you've never seen any of them play. That's because they spend most of their time playing games for my amusement on my laptop. I still wrote them though, it's not impossible to do.

lkaufman
Posts: 3760
Joined: Sun Jan 10, 2010 5:15 am
Location: Maryland USA
Contact:

Re: What the computer chess community needs to decide

Post by lkaufman » Fri Feb 11, 2011 4:07 pm

Christopher Conkie wrote:
paulo wrote:
Christopher Conkie wrote:
paulo wrote:
Don wrote:

On the basis that Houdini is a complete copy of Robbolito.

I thought you might have worked that out by now.

It is hilarious that you seem unable to.......
If you would like to say to me that Mr. Houdart is the programmer of Ippolit, I would say to you that Ippolit is a disassembled Rybka 2.3.2b.

Fin.

Chris


Two questions: 1. Can you tell us anything about the DIFFERENCES between Houdini 1.5 and Robbolito? It is also obvious to me that Houdini started at Robbo, but something is substantially different in 1.5 to cause such a large rating gain.
2. Why do you say Ippo was based on Rybka 2.3.2b, rather than Rybka 3.0 as everyone else says? The evaluation terms in Ippo/Robbo seem to match my R3 values much more closely than my R2.3.2b values, and also the rating gain from 2.3.2b is something like 150 Elo, way too much for mere tweaks.

Larry

Gerd Isenberg
Posts: 2128
Joined: Wed Mar 08, 2006 7:47 pm
Location: Hattingen, Germany

Re: What the computer chess community needs to decide

Post by Gerd Isenberg » Fri Feb 11, 2011 4:23 pm

Evert wrote:
h1a8 wrote: No offense but I don't believe you Sir. How would you know about Alpha Beta then unless you invented it.
I wrote my first chess program around 1996, based on a description of how an alpha-beta search works and how you might represent a chess board on a computer in a book by Jaap van den Herik that I got out of a public library. This was several years before we had internet.
For my second program (around 2003), I used what I'd learned from writing the first as well as from reading some on-line resources (most notably from Bruce Moreland's website; what happened to him, by the way?). For my third program (2009-present) I again built on what I'd learned earlier, and what I could learn from reading articles on-line, mainly the Chess programming wiki and Ed Schroeder's pages describing Rebel.
For what I guess is my fourth program (not counting the two Xiangqi programs I wrote in 2004 and 2010, otherwise it's actually the sixth) I didn't look up any resources other than my latest existing chess program.

So the point I'm trying to make here is that it's perfectly easy to write a chess program without looking at someone else's code. There is only one real reason I can think of for doing that, and that's that a particular idea or algorithm is not immediately clear from reading a description of it, especially if that description is very brief. Even then, pseudo-code would have been more useful because it isn't bogged down with all those other minor things that bloat and obscure actual code, not to mention all the other ideas that get mixed in.
It's much easier to learn how to do alpha-beta from a pseudo-code description of the algorithm than it is to learn it from looking at the source of a chess program (any chess program) where you get hash probes, null moves, reduction/extension heuristics, legality checking, mate score adjustments, updating killer tables...

Yeah, I know, you've never heard of any of my programs and you've never seen any of them play. That's because they spend most of their time playing games for my amusement on my laptop. I still wrote them though, it's not impossible to do.
Yes, same for me. In the early 90s I had the German "computer chess bible" Bartel/Schrüfer/Kraas: "Das große Computerschachbuch" (The concrete Basic code was not that interesting, but the explanation on Alpha-Beta, ID, Quiescence, and Eval topics) and Levy's Computer Chess Compendum with the Atkin/Slate paper on Chess 4.x, and I was able to program in 386 Assembly and Pascal/C/C++.

Otherwise, the history of open source in computer chess and its influence is quite old. Richard Lang had reported he got a push after studying Spracklens Sargon assembly sources from 1978, the Austrian Merlin team started with Chess 0.5 (Pascal) by Atkin/Frey published 1978 in BYTE. I think many started with Turbo Chess (Torbo Pascal) by Kaare Danielsen, and later GNU-Chess, i.e. Uli Türke's Comet.

When Crafty and other strong open source programs appeared, many took these source as base for their own ideas with more or less lack of mens rea. Simple cloning based on copying ROMs is quite older, see the story of the Chess Champion MK I.

Christopher Conkie
Posts: 6068
Joined: Sat Apr 01, 2006 7:34 pm
Location: Scotland
Contact:

Re: What the computer chess community needs to decide

Post by Christopher Conkie » Fri Feb 11, 2011 4:35 pm

lkaufman wrote:
Christopher Conkie wrote:

On the basis that Houdini is a complete copy of Robbolito.

I thought you might have worked that out by now.

It is hilarious that you seem unable to......

If you would like to say to me that Mr. Houdart is the programmer of Ippolit, I would say to you that Ippolit is a disassembled Rybka 2.3.2b.

Fin.

Chris


Two questions: 1. Can you tell us anything about the DIFFERENCES between Houdini 1.5 and Robbolito? It is also obvious to me that Houdini started at Robbo, but something is substantially different in 1.5 to cause such a large rating gain.
2. Why do you say Ippo was based on Rybka 2.3.2b, rather than Rybka 3.0 as everyone else says? The evaluation terms in Ippo/Robbo seem to match my R3 values much more closely than my R2.3.2b values, and also the rating gain from 2.3.2b is something like 150 Elo, way too much for mere tweaks.

Larry
Specifically Houdini is Ivanhoe (which is a parallel Roboolito) that has had the strings changed from Italian to English and then had various bug fixes to make the smp work.

The values may come from 3 but the exe that was disassembled to make Ippolit was 2.3.2 is my belief.

There exists a vesion of Rybka 2.3.2 that did not have its symbols stripped. Would make the disassembly so much easier. It was given to various people one of whom leaked it. It was used as you know to tune Rybka and had it's own interface for that purpose.

The date of the executable is 10/5/2006.

It is programmable. I have learned how to program it.

Chris

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 2:27 pm

Re: What the computer chess community needs to decide

Post by Don » Fri Feb 11, 2011 5:04 pm

Someone got their quotations mixed up - but I am not the one that made the statement that has been assigned to me here.

Don
lkaufman wrote:
Christopher Conkie wrote:
paulo wrote:
Christopher Conkie wrote:
paulo wrote:
Don wrote:

On the basis that Houdini is a complete copy of Robbolito.

I thought you might have worked that out by now.

It is hilarious that you seem unable to.......
If you would like to say to me that Mr. Houdart is the programmer of Ippolit, I would say to you that Ippolit is a disassembled Rybka 2.3.2b.

Fin.

Chris


Two questions: 1. Can you tell us anything about the DIFFERENCES between Houdini 1.5 and Robbolito? It is also obvious to me that Houdini started at Robbo, but something is substantially different in 1.5 to cause such a large rating gain.
2. Why do you say Ippo was based on Rybka 2.3.2b, rather than Rybka 3.0 as everyone else says? The evaluation terms in Ippo/Robbo seem to match my R3 values much more closely than my R2.3.2b values, and also the rating gain from 2.3.2b is something like 150 Elo, way too much for mere tweaks.

Larry

Post Reply