Page 1 of 2

Naraku: clone or not???

Posted: Sat Mar 26, 2011 2:45 pm
by noctiferus
What do you think about Chris Conkie's claim that Naraku is a clone? I couldn't find any comment here (my fault?), and would like to know our experts' opinion.

http://74.220.23.57/forum/viewtopic.php ... =&start=20

Note that Naraku won Martin's F division...

Re: Naraku: clone or not???

Posted: Sat Mar 26, 2011 4:16 pm
by Matthias Gemuh
noctiferus wrote:What do you think about Chris Conkie's claim that Naraku is a clone? I couldn't find any comment here (my fault?), and would like to know our experts' opinion.

http://74.220.23.57/forum/viewtopic.php ... =&start=20

Note that Naraku won Martin's F division...
It is a clone. The Naraku guy has no clue about chess programming.

Matthias.

Re: Naraku: clone or not???

Posted: Sat Mar 26, 2011 4:21 pm
by Martin Thoresen
Matthias Gemuh wrote: It is a clone. The Naraku guy has no clue about chess programming.

Matthias.
Matthias,

These are rather bold statements. Before I take action I would like to see some more concrete proof.
With that said, I value you as one of the experts on matters like these.

Best,
Martin

Re: Naraku: clone or not???

Posted: Sat Mar 26, 2011 8:03 pm
by Matthias Gemuh
Martin Thoresen wrote:
Matthias Gemuh wrote: It is a clone. The Naraku guy has no clue about chess programming.

Matthias.
Matthias,

These are rather bold statements. Before I take action I would like to see some more concrete proof.
With that said, I value you as one of the experts on matters like these.

Best,
Martin
When he read Bob's post that parallelization is normally not do-able in a few weeks, some text disappeared from his website: "In the next weeks i will add multi core support.".
Why have the old Narakus linked with Fruit now disappeared from his website ?
He is now admitting that the Ippo family has shaped his search. I don't believe that he said so months ago in Italian. Why only in Italian ? Analyzing his binaries would be a waste of precious time.

There are more clues of the cloning, in several fora.

Matthias.

Re: Naraku: clone or not???

Posted: Sat Mar 26, 2011 10:07 pm
by noctiferus
Matthias, with the respect you deserve for what you do for chess, I would give you here some informations I read in Naraku's forum

http://www.miroku79.info/blog/?page_id=88#comment-220

( I'm doing it, because as far as i see I'm the only italian speaking contributor, here, and some of the posts in there are in italian).

First of all I'm not trying to defend, neither to accuse, the author: IMHO, if there is a fault by him in taking parts of, he is not trying to hide it.

He plainly and clearly states, in a post:
" Io per imparare a sviluppare il motore di scacchi mi sono avvalso essenzialmente dello studio dei codici sorgenti di altri motori open source (in particolare la serie ippolit/ivanhoe, crafty, varie versioni di fruit, gull e in
piccola parte stockfish), di alcuni articoli universitari (lo scorso anno ho lavorato all’università la sapienza e ho avuto così la possibilità di accedere a parecchi articoli universitari), e di alcuni siti che trattano, seppure non in modo molto dettagliato, tutte le fasi della creazione di un motore scacchistico. All’inizio sembra molto complicato, ma analizzando i codici si notano parecchie analogie. Per esempio: gull usa una bitboard che è quasi
identica a quella della serie ippolit/ivanhoe, con alcune costanti proprio identiche (anche quella che uso per naraku è molto simile). Houdini ce l’ha proprio identica, fruit, toga e ora si è scoperto anche rybka, hanno praticamente il 90% delle funzioni di valutazioni identiche. Una volta “scomposto” un motore nelle sue parti principali (di solito acquisizione dei dati dall’interfaccia, valutazione dei dati, avvio della ricerca, , valutazione, controllo del tempo rimanente e visualizzazione della mossa migliore), risulta più semplice costruirsi un proprio motore. "

Google translation:
"I am learning to develop chess engine, I used essentially the study of the source code of other open source engines (in particular the series Ippolit / Ivanhoe, crafty, various versions of fruit, and gull
stockfish small part), some articles of university (last year I worked at La Sapienza University and I had the opportunity to have access to several academic articles), and some sites that deal, though not in great detail, all stages of creating a chess engine. At first it seems very complicated, but analyzing the code you see many similarities. For example, gull use a bitboard which is almost identical to that of the series Ippolit / Ivanhoe, with its few constants are identical (even the one I use for Naraku is very similar). Houdini's got just the same, fruit, toga and has now also discovered rybka, have almost 90% of the evaluation function the same. Once "broken down" an engine in its main parts (usually the data acquisition interface, data evaluation, launch the research, evaluation, control and display the remaining time of the best move), it is easier to build his own engine ."

This as a contribution. dunno if it is in his favour or not, no matter, as I said.

Re: Naraku: clone or not???

Posted: Sat Mar 26, 2011 11:23 pm
by Matthias Gemuh
noctiferus wrote:Matthias, with the respect you deserve for what you do for chess, I would give you here some informations I read in Naraku's forum

http://www.miroku79.info/blog/?page_id=88#comment-220

( I'm doing it, because as far as i see I'm the only italian speaking contributor, here, and some of the posts in there are in italian).

First of all I'm not trying to defend, neither to accuse, the author: IMHO, if there is a fault by him in taking parts of, he is not trying to hide it.

He plainly and clearly states, in a post:
" Io per imparare a sviluppare il motore di scacchi mi sono avvalso essenzialmente dello studio dei codici sorgenti di altri motori open source (in particolare la serie ippolit/ivanhoe, crafty, varie versioni di fruit, gull e in
piccola parte stockfish), di alcuni articoli universitari (lo scorso anno ho lavorato all’università la sapienza e ho avuto così la possibilità di accedere a parecchi articoli universitari), e di alcuni siti che trattano, seppure non in modo molto dettagliato, tutte le fasi della creazione di un motore scacchistico. All’inizio sembra molto complicato, ma analizzando i codici si notano parecchie analogie. Per esempio: gull usa una bitboard che è quasi
identica a quella della serie ippolit/ivanhoe, con alcune costanti proprio identiche (anche quella che uso per naraku è molto simile). Houdini ce l’ha proprio identica, fruit, toga e ora si è scoperto anche rybka, hanno praticamente il 90% delle funzioni di valutazioni identiche. Una volta “scomposto” un motore nelle sue parti principali (di solito acquisizione dei dati dall’interfaccia, valutazione dei dati, avvio della ricerca, , valutazione, controllo del tempo rimanente e visualizzazione della mossa migliore), risulta più semplice costruirsi un proprio motore. "

Google translation:
"I am learning to develop chess engine, I used essentially the study of the source code of other open source engines (in particular the series Ippolit / Ivanhoe, crafty, various versions of fruit, and gull
stockfish small part), some articles of university (last year I worked at La Sapienza University and I had the opportunity to have access to several academic articles), and some sites that deal, though not in great detail, all stages of creating a chess engine. At first it seems very complicated, but analyzing the code you see many similarities. For example, gull use a bitboard which is almost identical to that of the series Ippolit / Ivanhoe, with its few constants are identical (even the one I use for Naraku is very similar). Houdini's got just the same, fruit, toga and has now also discovered rybka, have almost 90% of the evaluation function the same. Once "broken down" an engine in its main parts (usually the data acquisition interface, data evaluation, launch the research, evaluation, control and display the remaining time of the best move), it is easier to build his own engine ."

This as a contribution. dunno if it is in his favour or not, no matter, as I said.
Hi noctiferus,

the question is whether he said this before the accusations.
If he is saying this after the accusations, it is merely to rationalize away cloning.
Clearly most (if not all) people who have been testing Naraku since first version, did not know about its Fruit/Ippo connections.

Matthias.

Re: Naraku: clone or not???

Posted: Sun Mar 27, 2011 9:11 am
by noctiferus
Hi, Matthias
the post in his forum is dated 5 march.

Re: Naraku: clone or not???

Posted: Sun Mar 27, 2011 12:59 pm
by Matthias Gemuh
noctiferus wrote:Hi, Matthias
the post in his forum is dated 5 march.
Hi noctiferus,

the guy should have put the infos on the website of Naraku so that people can read about the Fruit/Ippo connection before they decide whether to test the engines, or reject them as derivatives.

Thanks for informing us here.

Matthias.

Re: Naraku: clone or not???

Posted: Sun Mar 27, 2011 7:13 pm
by BB+
I'm not going to look at this too thoroughly right now (32-bit code makes my head hurt also), but here is an IvanHoe (or R3) remnant in Naraku 1.4:

Code: Select all

0x004129e8:     cmp    $0x5,%eax
0x004129eb:     jne    0x412a0a
0x004129ed:     mov    0x8c(%ebx),%eax
0x004129f3:     or     0x9c(%ebx),%eax
0x004129f9:     xor    %ecx,%ecx
0x004129fb:     and    $0xffffff00,%eax
0x00412a00:     or     %eax,%ecx
0x00412a02:     je     0x412a0a
0x00412a04:     add    $0x5000f,%esi
So it checks if the rook is on the 6th rank, then if the opponent has a pawn or king on the 6th-8th, and if so, gives a bonus of 5 in the opening and 15 in the endgame.

Right before this is the 7th rank code:

Code: Select all

0x0041298e:     cmp    $0x6,%eax
0x00412991:     jne    0x4129e8
0x00412993:     mov    0x98(%ebx),%ecx
0x00412999:     mov    0x9c(%ebx),%edx
0x0041299f:     mov    %ecx,0xe8(%esp)
0x004129a6:     mov    %edx,%ecx
0x004129a8:     or     0x8c(%ebx),%ecx
0x004129ae:     xor    %edi,%edi
0x004129b0:     and    $0xffff0000,%ecx
0x004129b6:     or     %ecx,%edi
0x004129b8:     je     0x4129e8
0x004129ba:     and    $0xff000000,%edx
0x004129c0:     xor    %ecx,%ecx
0x004129c2:     add    $0xa001e,%esi
0x004129c8:     or     %edx,%ecx
0x004129ca:     je     0x4129e8
0x004129cc:     mov    0x7c(%ebx),%ecx
0x004129cf:     or     0x74(%ebx),%ecx
0x004129d2:     xor    %edx,%edx
0x004129d4:     and    0x34(%esp),%ecx
0x004129d8:     and    $0xff0000,%ecx
0x004129de:     or     %ecx,%edx
0x004129e0:     je     0x4129e8
0x004129e2:     add    $0x60008,%esi
So the (10,30) bonus stayed the same, but the one for doubled rooks changed (at least from the IvanHoe version I am looking at).

And lo and behold, right before this we have rooks on the 8th:

Code: Select all

0x00412971:     cmp    $0x7,%eax
0x00412974:     jne    0x41298e
0x00412976:     mov    0x9c(%ebx),%edx
0x0041297c:     and    $0xff000000,%edx
0x00412982:     xor    %ecx,%ecx
0x00412984:     or     %edx,%ecx
0x00412986:     je     0x41298e
0x00412988:     add    $0x5000a,%esi
And right before that (1,2) is added for a rook outpost, with (3,4) if it is guarded. The RookHalfOpen bonus is (3,6) the RookOpenFile bonus is (10,20), the RookOpenMinor bonus is still (15,5), etc. There are some minor modifications.

I would thus but the engine in the "suspect" category until evidence to the contrary.

Re: Naraku: clone or not???

Posted: Mon Mar 28, 2011 7:05 am
by noctiferus
http://www.miroku79.info/blog/?p=218

it looks like this is the last piece of information about Naraku I can post here... :o