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...bob wrote:Please don't confuse the discussion by introducing insightful comments.Alexander Schmidt wrote:Experienced chessplayers play always nearly the same moves. Nevertheless there are millions of different GM Games.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
A Simple Experiment for Advancing the Discussion
Moderators: hgm, Rebel, chrisw
-
- Posts: 6081
- Joined: Fri Mar 10, 2006 11:14 pm
- Location: Munster, Nuremberg, Princeton
Re: A Simple Experiment for Advancing the Discussion
-Popper and Lakatos are good but I'm stuck on Leibowitz
-
- Posts: 3562
- Joined: Thu Mar 09, 2006 3:54 am
- Location: San Jose, California
Re: A Simple Experiment for Advancing the Discussion
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
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
Re: A Simple Experiment for Advancing the Discussion
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.30 lines duplicated in 200 lines of code is _highly_ unusual.
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.
-
- Posts: 3697
- Joined: Tue Jul 31, 2007 4:26 pm
Re: A Simple Experiment for Advancing the Discussion
OKbob wrote: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."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
thanks for the behind the scenes update
Steve
-
- Posts: 57
- Joined: Thu Mar 09, 2006 12:53 pm
- Location: Surabaya, Indonesia
Re: A Simple Experiment for Advancing the Discussion
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.
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
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: A Simple Experiment for Advancing the Discussion
just wait for a bit...RegicideX wrote: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.30 lines duplicated in 200 lines of code is _highly_ unusual.
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.
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: A Simple Experiment for Advancing the Discussion
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?
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.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.
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.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.
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.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
-
- Posts: 1205
- Joined: Thu May 10, 2007 2:49 pm
Re: A Simple Experiment for Advancing the Discussion
I am sorry, I forgot where I am...bob wrote:Please don't confuse the discussion by introducing insightful comments.
-
- Posts: 3562
- Joined: Thu Mar 09, 2006 3:54 am
- Location: San Jose, California
Re: A Simple Experiment for Advancing the Discussion
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
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