Sondaggi


Sondaggi

Vajolet 2

L’anno scorso alcuni membri del gsei mi hanno fatto notare parecchie somiglianze tra Vajolet e Stockfish soprattutto nella search. Dopo l’indicazione del mº jose Velasco su Talkchess anche io non ho potuto fare a meno di effettuare qualche comparazione tra il codice di winglet e quello di Vajolet: effettivamente in alcuni punti il codice e i commenti sono uguali, anche se sembrerebbero non essere richiamati. Ricordo che nel contesto di competizioni eque tra engines gsei è importante che tutti partano alla pari, ossia scrivendo un codice completamente originale (il concetto di originale è espresso bene da Peter Skinner in un suo post http://www.cctchess.com/selective-search-issue-150-my-article/).

In chat e via email, ho avuto modo di conoscere e chiedere lumi al programmatore, Marco Belli, persona disponibile e aperta al dialogo (ho riportato sotto integralmente la sua email). Fino ad ora la collocazione dei chess engines nella categoria originali o nella cosiddetta categoria ‘free’ non ha richiesto particolari coinvolgimenti. Adesso, ci siamo trovati nella classica zona grigia… un engine sembra essere stato sviluppato da zero ma sembra anche avere codice copiato da altri noti motori. Come da regolamento abbiamo chiesto e ottenuto l’opinione del nostro technical consultant, Mark Watkins (ho riportato sotto integralmente anche la sua email).

Adesso, noi registrati al sito, attraverso il semplice accesso,  siamo nella condizione di poter prendere una decisione (dopo l’autenticazione è possibile vedere le due possibili scelte). Considerando che questo potrebbe stabilire un precedente importante in merito alla storia del nostro gruppo, vi invito a riflettere bene prima di dire se, per voi Vajolet è originale o no. Ovviamente se non siete sicuri non votate.  Fine sondaggio sabato 18 alle ore 12:00.

Sperando in questo piccolo antefatto di non avere condizionato nessuno, nè pro Vajolet-originale, nè pro Vajolet-derivato, invito tutti a partecipare a tale sondaggio. Sono un programmatore, anche io so cosa significa trovar tempo per i propri hobbies solo di notte e cerco di non rubarlo a nessuno ma riflettete un momento: Quante volte dopo le votazioni politiche siamo rimasti delusi da questo o quel partito? Questa è la nostra occasione per far pesare la nostra voce, il nostro parere.

Pepe Mujica dice:
“MENTRE LA NOSTRA VITA DI INDIVIDUI CI APPARE PREDA DEL DESTINO,
CHE UN MOMENTO CI PORTA GIOIA, IN UN ALTRO DOLORE,
ABBIAMO L’IMPRESSIONE CHE L’ESISTENZA DELLE ISTITUZIONI SIA FISSA, IMMUTABILE.
NON È COSÌ, CAMBIANO GLI STATI, I CONTINENTI, CAMBIANO LE IMPRESE, LE ABITUDINI…
PER QUESTO OGNI CONQUISTA VA DIFESA TUTTI I GIORNI.
DA SOLI POSSIAMO FARE POCO,
MA SE REMIAMO TUTTI INSIEME CI MUOVEREMO NELLA DIREZIONE GIUSTA.”

In questo gruppo non ci sono persone che decidono per altre, ci siamo Noi.
Più di 10 giorni per esprimere un giudizio, un click, un colpo di remo. Grazie.

LL

Visualizza la mail di Marco Belli Visualizza la mail di Mark Watkins

There seem to be some novel items (like ProbCut, I thought was out of fashion).

But the Reductions array (search.h) seems to come from Stockfish.

// Init reductions array
for (hd = 1; hd < 64; hd++) for (mc = 1; mc < 64; mc++) { double pvRed = log(double(hd)) * log(double(mc)) / 3.0; double nonPVRed = 0.33 + log(double(hd)) * log(double(mc)) / 2.25; Reductions[1][hd][mc] = (int) ( pvRed >= 1.0 ? floor( pvRed ) : 0);
Reductions[0][hd][mc] = (int) (nonPVRed >= 1.0 ? floor(nonPVRed) : 0); }

This is essentially what SF has if I recall correctly.
On the other hand, the Futility margins are different,
and the razoring is also. They are also combined in a different order
in the search compared to SF.

The eval looks pretty standard, I can’t say that it’s exactly a copy
of anything. Enough of the eval elements differ from other engines I
have seen in my opinion. Nor is the PST a copy as far as I can tell.

I don’t see anything particularly from Fruit or Cheng in it.

The eval of Winglet is different (I was not familiar with this engine),
but the bitops.cpp and data.cpp stuff does have more in common (though
some of this is formulaic in bitboards I suppose, and comes from CPW).
Winglet also seems rather primitive (not many reductions for instance)
in my opinion.

I would say that it’s OK overall, though I might ask him why the SF
late move reduction formulas are used (if I am correct about that).



Ciao luca,

nello scrivere vajolet ( programma opensource ) ho scritto molte righe di codice e ho copiato molto codice opensource degli engine che studio regolarmente.

posso dire senza ombra di dubbio che le funzioni per le magic bitboard che uso sono quelle che sono state spiegate nel blog ( ormai defunto ahime) di winglet
Per quanto riguarda la ricerca, come hai potuto vedere, ho usato molte idee e codice di Stockfish.
Alcune idee di stockfish le ho buttate via perche nel mio codice non funzionavano, alcune cose presenti in vajolet non sono presenti in stockfish. ( per esembio la sibling pruning, che infatti è un bel casino e spero di poterla riscrivere)

altri engine che ho studiato e se vuoi “copiato” sono cheng e fruit.

Cosa sia simile fra vajolet e winglet a parte le funzioni per le magic bitboard non lo so. potrei essermi dimenticato qualcosa.


Sondaggio chiuso! Intervallo di date:
start_date 2014-01-06 12:30:28
end_date 2014-01-18 11:59:59
Risultati:
----------------------------------------------------------------------------------------------------------------------------

Regola I.g.w.t.

Gruppo D:
E’ successo che un engine ha avuto qualche problema bloccante.
L’engine è stato aggiornato e le sue partite precedenti sono state cancellate.
Ho dovuto far questo perchè già fatto in precedenza sul gruppo E.

In chat c’è chi era d’accordo e chi no, per questo son qui a scrivere 2 righe per capire come potrebbe essere meglio procedere in questi casi per le edizioni web future dell’Igwt.
Per capire meglio il contesto basta elencare cosa entra in gioco:

– La definizione del bug critico (cosa ci sta dentro e cosa no);
– La possibilità di sostituzione ‘in corsa’ (tra un turno ed un’altro);
– Il tipo di sostituzione (se con l’ultima release funzionante o con una nuova versione col baco fissato);
– La necessità di cancellare o meno le sue partite precedenti in quello specifico match/round robin;
– La quantità di cancellazioni o delle sostituzioni disponibili;

Io personalmente ero allineato a quello che fanno nelle altre competizioni web, ma c’è una frase che mi ha fatto riflettere: “Questo non è un test è una competizione”.
Questo effettivamente cambia le le cose, almeno dal mio punto di vista.
Come td non potevo fare diversamente rispetto a quanto fatto, ma per regolamentare meglio questo aspetto per le prossime edizioni, vorrei prendere una decisione condivisa (almeno dalla maggior parte).
Per rispondere ai seguenti sondaggi basta registrarsi. Grazie.


Nel contesto di un round robin o di un match, se si verifica un bug critico ad un engine, cosa fareste?
  • - 5% ( 1 vote )
  • - 11% ( 2 votes )
  • - 0% ( 0 votes )
  • - 47% ( 9 votes )
  • - 32% ( 6 votes )
  • - 5% ( 1 vote )
  • - ( )


6 commenti »

  1. stegemma stegemma scrive:

    Io ho dato maggior importanza a quanto scritto da Marco: “ho scritto molte righe di codice e ho copiato molto codice opensource”. Leggendo l’analisi di Mark, ciò viene essenzialmente confermato ma si dice anche che molte parti sono originali. Mi sembra che Marco abbia lavorato molto al suo motore, non è perciò solo un copia e incolla. Resta il fatto che non si tratta di un lavoro completamente originale e, come dicevi tu, siamo nella zona grigia.

    Per coerenza, applaudo Marco per il suo lavoro ma devo “buzzarlo”.

  2. lucaNaddei scrive:

    Non posso che quotare Stefano “ho copiato molto codice opensource” classifica Vajolet come un motore derivato.
    Alcuni motori (ad esempio El Chinito) sono stati considerati cloni per molto, molto, molto, molto ma moooooooooooolto meno ed hanno avuto la revoca di tutti i titoli vinti.

    LucaN

  3. stegemma stegemma scrive:

    La revoca dei titoli è una misura giusta per chi non dichiara di usare un derivato. In questo caso, mi sembra che ci sia un’assoluta buona fede, starà ai singoli organizzatori di tornei decidere se accettarlo o meno. Nel G6 è comunque benvenuto (PS:come derivato), avendo lavorato molto al suo motore.

  4. Alessandro scrive:

    In base al metodo di classificazione originale/derivato del g-sei secondo me Vajolet va considerato come derivato.
    Senza un’attenta lettura dei sorgenti è difficile dire quanto ci sia di copiato (che nell’ottica open source è un’idea estremamente buona) e quanto di scritto da zero, e così nel valutare caso per caso dove classificare un motore si corre il rischio di creare una qualche ingiustizia. Se accadesse non sarebbe una cosa carina.
    Per questa ragione, e cioè per non creare ingiustizie nei confronti di El Chinito, Vajolet l’ho considerato come derivato.

  5. Ho attivato il download dei sorgenti di Vajolet su questa pagina.
    I link di riferimento per i sorgenti di stockfish e winglet sono già presenti sulla stessa pagina.

    Bye
    LL

  6. Sandro Corsini scrive:

    Anche io ho espresso il mio voto a sfavore della originalita’ di Vajolet, anche se con molte riserve, e’ evidente che Marco ha scritto molto codice suo usando Winglet come base di partenza. Anche il mio engine (come forse tutti ), ha preso spunti qua e la’ dai forum e da qualche sorgente. In generale partire da una base e migliorarla mi pare una buona cosa, anche se avra’ sempre un vantaggio di ottimizzazione ed efficienza rispetto ad un programma scritto da zero.

Lascia un Commento

© 2017 G 6 Tutti i diritti riservati - Buon divertimento!

By continuing to use the site, you agree to the use of cookies. more information

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi