A Simple Experiment for Advancing the Discussion

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: A Simple Experiment for Advancing the Discussion

Post by Rolf »

bob wrote:
Alexander Schmidt wrote:
chrisw wrote:experienced programmers, especially those operating in a confined field, will use fewer different ways to write the same program because they know already which of the subset of chunks will suit
Experienced chessplayers play always nearly the same moves. Nevertheless there are millions of different GM Games. 8-)
Please don't confuse the discussion by introducing insightful comments.
Wrong! Different ways to write a program doesnt correspond with playing different moves but systems, openings and such. Bob this is all not very sophisticated from the campaigners...
-Popper and Lakatos are good but I'm stuck on Leibowitz
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: A Simple Experiment for Advancing the Discussion

Post by Bill Rogers »

Mr Hyatt
While I have always respected your knowledge of computers, programming and your contributions to the world of computer chess I do have a question. On several posts you mentioned duplicate lines of code, I would like to know if you have dissambled Fruit and Rybka yourself or are you taking someone else word for it?
Also as I have pointed out in previous postings there are dozens of reasons you can and might find duplications, ie., alhpa/beta, xboard or winboard routines and even some eval functions, but that does not mean that these were copied from one program to another as you know very well.
When I wrote my first chess program I did so because I could not find any kind of source code for a chess program. I used simple logic to figure out what to do. However, it was a big mess of spegatti because I was a self taught programmer and not any more advance than a beginner in the field. It took me twenty years to figure out how to implement alpha/beta.
So once again I ask "have you personally dissassembled the two sources of are you simply taking the word of someone else, and if you have done your own research are the similiaritys crucial segments of code of just common knowledge?
Thanks
Bill
RegicideX

Re: A Simple Experiment for Advancing the Discussion

Post by RegicideX »

30 lines duplicated in 200 lines of code is _highly_ unusual.
It depends on the lines and on the purpose of the program. If the program assignment asks you to work with a lot of predefined variables, then you have a lot of "duplicate lines" in the initialization of the variables (and note that lines were counted as duplicate even if you had different initializations). If you count absolutely necessary "if" clauses as duplicate lines then that's also faulty.

I would agree that 30 lines --even less-- of identical _blocks_ of significant code are unlikely to be there by chance. But you have nothing like that in the evidence presented so far.
Steve B
Posts: 3697
Joined: Tue Jul 31, 2007 4:26 pm

Re: A Simple Experiment for Advancing the Discussion

Post by Steve B »

bob wrote:
Steve B wrote: Zach should at least "update" us as to the progress of his other evidence....just a word or two that he is still working on it with a guestimate as to its completion date..
in light of the fact that Vas is waiting for a complete list of questions and also because the General forum has basically now been overrun with programming type posts regarding the clone issue
perhaps Zach can mention if he is still working on the other evidence or if his position now is to stand pat and wait for Vas to answer the first and only question presented

if to stand pat...
then we have basically a stalemate here..
if this is the case i move that all technical posts regarding the clone issue be moved to the programming forum ..because in reality this has become a course in programming which really does not belong in General

IMHO Regards
Steve
we have been communicating via email since the signal/noise ratio here is abysmal. This analysis is still going on. The general consensus has been to say nothing more until there is a big body of information to present, so that we don't go down the same path over and over. Too many similarities can't be passed off as "just chance, since parse_go() is very specific in what it must do."
OK
thanks for the behind the scenes update
Steve
Peter Aloysius
Posts: 57
Joined: Thu Mar 09, 2006 12:53 pm
Location: Surabaya, Indonesia

Re: A Simple Experiment for Advancing the Discussion

Post by Peter Aloysius »

experienced programmer will just increase possibilities of how to do something.
For example, to drawing bouncing ball in screen, novice might just clear screen after each iteration while more experienced one think better to redraw the ball with background color.

Even many experienced programmer try to implementing a relatively simple and well known algorithm, let's say djikstra path finding, will came with many implementation. The algorithm is same, but implementations can differ greatly between programmers. And i'm not talking about different variable name here.

If you said that experienced programmer will write similiar code to do something, than take a look at TSCP, glaurung, scorpio, crafty and other open source chess engine, study how differ they are in implementing simple task like protocol communication.
chrisw wrote: Consider this grey scale ....

there's an infinite number of ways to write a program if done by monkeys

there's many ways to write a program if done by your inexperienced students, for they have learnt no chunks yet

experienced programmers, especially those operating in a confined field, will use fewer different ways to write the same program because they know already which of the subset of chunks will suit

an experienced programmer who looked at another experienced programmer's program may well tend to write something similar
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: A Simple Experiment for Advancing the Discussion

Post by bob »

RegicideX wrote:
30 lines duplicated in 200 lines of code is _highly_ unusual.
It depends on the lines and on the purpose of the program. If the program assignment asks you to work with a lot of predefined variables, then you have a lot of "duplicate lines" in the initialization of the variables (and note that lines were counted as duplicate even if you had different initializations). If you count absolutely necessary "if" clauses as duplicate lines then that's also faulty.

I would agree that 30 lines --even less-- of identical _blocks_ of significant code are unlikely to be there by chance. But you have nothing like that in the evidence presented so far.
just wait for a bit...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: A Simple Experiment for Advancing the Discussion

Post by bob »

Bill Rogers wrote:Mr Hyatt
While I have always respected your knowledge of computers, programming and your contributions to the world of computer chess I do have a question. On several posts you mentioned duplicate lines of code, I would like to know if you have dissambled Fruit and Rybka yourself or are you taking someone else word for it?
Also as I have pointed out in previous postings there are dozens of reasons you can and might find duplications, ie., alhpa/beta, xboard or winboard routines and even some eval functions, but that does not mean that these were copied from one program to another as you know very well.
You are mixing algorithms and implementations of algorithms. It is _highly_ unlikely two different people will write alpha/beta the same way. Not even close. The way the code is written, what is procedural and what is inline, when is done when, how the results are backed up, how the repetition check and hash probe is done. How extensions are triggered. How reductions are performed. Futility pruning? razoring? The probability of significant blocks of duplicate code is near zero. That is what this is based on.
When I wrote my first chess program I did so because I could not find any kind of source code for a chess program. I used simple logic to figure out what to do. However, it was a big mess of spegatti because I was a self taught programmer and not any more advance than a beginner in the field. It took me twenty years to figure out how to implement alpha/beta.
I figured out alpha/beta from AI books that were available, in addition to research papers. The original shannon paper was done years before I started. I didn't use negamax until crafty. Early fortran did not support recursion. So I made do with what was available. And several of us exchanged source code over the early years, and in every case the neat ideas I found could not be borrowed by cut/paste because the programs, although written in the same language (fortran was popular, as in coko, chaos, etc) the underlying data structures and such were hopelessly different. I extracted the SEE idea from Coko IV. I couldn't use the source because we didn't store the board or pieces in the same way and couldn't generate the swap list in the same way.

So once again I ask "have you personally dissassembled the two sources of are you simply taking the word of someone else, and if you have done your own research are the similiaritys crucial segments of code of just common knowledge?
Thanks
Bill
As of now, I have not started with an executable of Rybka and worked my way backward. I became interested when the chorus of "duplicate lines are common" first came up, because that is simply false. I don't have the time to invest in this myself, other than looking at what is being done and offering advice on what/where to look next, etc. That will all be done over time by many people to verify the results.
Alexander Schmidt
Posts: 1205
Joined: Thu May 10, 2007 2:49 pm

Re: A Simple Experiment for Advancing the Discussion

Post by Alexander Schmidt »

bob wrote:Please don't confuse the discussion by introducing insightful comments.
I am sorry, I forgot where I am...
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: A Simple Experiment for Advancing the Discussion

Post by Bill Rogers »

Mr Hyatt
Thanks for the honest reply. I too collected at least half-a-dozen papers on alpha/beta but could not figure out how to implement it in good old Basic. As I previously stated I never have taken any classes on programming except with a short introduction into machine language coding.
I just can't believe all the fuss people are making based upon the concept that Vas copied some routines from Fruit when no one has any real proof, just theories. It reminds me of a game I once saw between to teenagers. Upon losing to his opponent the looser screamed 'you cheated' simpley because he could not believe his opponent was smarter or a better player.
If someone would tell me where I can get a good dissassembler and see to it that I have the executable of both Fruit and Rybka I will dissassemble both and do a line for line comparison. They must remember I can not at this time program in "C" so changing some names of some variables is something I can not do.
I woud be happy to make both sources available to all who are interested.
Bill