Fruit & Gambit Fruit - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Moteurs

Fruit et Gambit Fruit


Développé par le français Fabien Letouzey, Fruit fut en 2004 et 2005  le premier logiciel libre à offrir des performances comparables aux puissant moteurs commerciaux Shredder, Rebel, Junior ou Fritz. Il est le père de beaucoup de moteurs d'aujourd'hui, même si certains ne veulent pas reconnaître cette paternité. Il avait une autre qualité - qu'il a conservée jusqu'ici : un jeu équilibré ressemblant beaucoup à celui d'un grand maître humain au style positionnel et plutôt défensif.



Aujourd'hui, le moteur a cessé d'évoluer. Sa force est estimé à environ 2800 Elo, loin derrière les principaux ténors du moment. Mais cela reste un niveau de jeu très élevé et ses qualités demeurent. Fruit sera un adversaire de grande qualité pour les joueurs de bon niveau.  


Plan de l'article

Fruit

Plus que copié, pillé !

Style de jeu : positionnel et attentiste
Téléchargement & installation

  Installation dans Arena
  Installation dans Lucas Chess
  Installation dans Mayura Chess Board
  Installation dans Crafty Chess Interface
  Installation dans PyChess
Configuration
  Fruit 2.3.1 et 2.3.3f
  Fruit 2.2.1
Gérer la force du moteur
  Avec Arena
  Avec Lucas Chess
  Avec Crafty Chess Interface
  Avec Mayura Chess Board

Gambit Fruit

  Téléchargement & installation

  Configuration
  Bibliothèque d'ouvertures de Tal ?



Fruit


Plus que copié, pillé !

Lorsque Fruit est sorti en 2004, Fabien Letouzey a naturellement publié ses sources. C'est le meilleur moyen d'éviter que les autres développeurs s'épuisent inutilement à réinventer ce qui a déjà été découvert et se consacrent plutôt à améliorer ce qui a besoin de l'être. Mais certains ont vu dans l'existence de Fruit une opportunité de se faire facilement de l'argent. Après avoir un peu amélioré le moteur, ils n'ont pas hésité à le commercialiser sous divers autres noms, sources bien sûr fermées. Cela a donné lieu à d'interminables polémiques mais aussi à de retentissantes déchéances. Ainsi Rybka, qui paradait dans les classements entre 2007 et 2010, a été déchu de tous ses titres après que son auteur ait été convaincu de plagiat.  
Toga a été également soupçonné d'être une simple copie améliorée. Sous la pression, son initiateur a fini par reconnaître les emprunts et à présenté ses excuses à Fabien Letouzey. Il a continué à développer le moteur parallèlement sous le nom de Toga II, cette fois sous forme d'un logiciel libre…
Dégouté, l'auteur a cessé de publier les sources de ses améliorations et durant deux ans, Fruit est devenu à son tour un logiciel propriétaire et commercial. En 2007, Fabien a fait don de Fruit à la communauté. Il n'a plus travaillé que modestement  à son amélioration puis il a légué cette responsabilité à Ryan Benitez, partenaire depuis plusieurs années.  A ma connaissance, le moteur a cessé d'évoluer depuis 2011 ou 2012. Fabien Letouzey s'est attaqué au développement d'un nouveau moteur, Senpaï, toujours avec l'aide de Ryan Benitez ; ce dernier a aussi assisté Daniel Mehrmann dans le développement de Fruit reloaded - un "Fruit" amélioré avec des techniques plus modernes.


Style de jeu : positionnel et attentiste

Laissons les auteurs eux-mêmes décrire le style du moteur :

"Le style de jeu de Fruit est très équilibré. Il n'a pas de points forts remarquables, ni de faiblesses sérieuses. Il développera raisonnablement ses pièces dans l'ouverture, trouvera la tactique au milieu du jeu et convertira avec précision un avantage dans une fin de partie technique. Fruit ne joue pas de manière spéculative ou agressive, mais convertira un léger avantage avec une grande précision ou déjouera l'adversaire dans une bataille de position. Si l'adversaire préfère la bagarre, il trouvera cependant la tactique nécessaire."


On ne saurait mieux dire que Fruit est l'antithèse de moteurs hyper-tactiques comme Junior. Il ressemble plutôt à Komodo. Ou, si l'on devait trouver des correspondances humaines, à Karpov ou à Carlsen.

Toutefois, les dernières versions de Fruit permettent de peser sur la fonction d'évaluation afin d'imprimer au moteur un style différent, soit en sélectionnant l'une des autres personnalités pré-programmées, soit en agissant directement sur un grand nombre de paramètres de réglage.


Téléchargement & installation

Pour obtenir diverses versions de Fruit, vous pouvez bien sûr visiter le site officiel du moteur… Vous y trouverez aussi des informations utiles, des versions pour Linux et MacOs (nous nous concentrons sur Windows)... Il y a toutefois longtemps que plus rien ne se passe sur ces pages et par exemple, le lien vers la dernière version connue, la 2.3 de Ryan Benitez, n'est plus valide depuis des années. C'est pourquoi je vous propose de télécharger le moteur depuis mon espace Mega :

Télécharger Fruit ?

L'archive contient trois versions différentes du moteur : la 2.2.1, ultime évolution de Fruit avant que Fabien Letouzey ne passe le témoin à Benitez ; la 2.3.1, dernière version officielle de Ryan Benitez ; et la 2.3.3f, ultime version, jamais officialisée.
Son présentes également dans l'archive les bibliothèques d'ouvertures qui accompagnaient la 2.2.1 : "book.bin", centrée sur la performance ; "book-varied.bin", moins performante mais à la palette plus large.
Notez que la 2.1 est disponible pour MacOs et Linux sur le site officiel.


Installation dans Arena

Menu "Modules" > "Installer nouveau module" et allez chercher l'un des fichiers exécutables. Pour changer la personnalité de Fruit, ouvrir le menu de configuration du moteur : menu "Module" > "Module 1" > "Configurer" (voir plus bas, "Configuration").


Installation dans Lucas Chess

Fruit 2.31 est déjà un moteur interne de Lucas Chess. On peut toutefois le réinstaller en "moteur externe", ce qui permettra d'accéder au menu de configuration et de changer la personnalité du moteur : menu "Options" > "Configuration des moteurs" ; onglet "Moteurs externes", bouton "Nouveau" et allez chercher l'un des fichiers exécutables.



Installation dans Mayura Chess Board


Menu "Engine" > "Change engine" > "Add or remove engines". Cliquez sur "Add", indiquez le nom "Fruit", puis allez chercher l'exécutable du moteur là où vous l'avez stocké. La version gratuite de Mayura ne permet pas l'accès au menu de configuration. Il serait donc impossible de changer la personnalité de Fruit, qui jouera avec son style "Normal".


Installation dans Crafty Chess Interface

Menu "Moteurs" > "Ajouter nouveau moteur". Glissez-déposez l'exécutable de moteur dans la fenêtre où allez le chercher à son emplacement. A partir de là, la prise en charge est automatique. A la fin de la procédure, CCI vous demande si vous voulez le prendre comme moteur principal (à la place de Crafty). Si oui, il devient le moteur #1. Répondez "non" car s'il y a deux moteurs actifs, vous jouez toujours contre #2. Le principe est de conserver Crafty en #1, afin de l'utiliser pour les commodités qu'il offre. CCI ne permettant pas l'accès au menu de configuration, il sera impossible de changer la personnalité de Fruit, qui jouera avec son style "Normal".



Installation dans PyChess

Menu "Éditer" > "Moteurs" puis bouton "Nouveau"... Utilisez le navigateur pour localiser l'exécutable de Fruit que vous souhaitez employer et injectez-le dans l'interface avec "Ouvrir".  Le menu de gestion des moteurs s'ouvre et si vous cliquez sur "Options" vous pourrez dès à présent intervenir dans le menu de configuration (notamment pour choisir une personnalité au moteur).



Configuration


Fruit 2.3.1 et 2.3.3f

Quelque soit l'interface, le contenu du menu de configuration est identique mais l'apparence et la méthode pour l'ouvrir varie en fonction de l'interface.

➤Pour Arena : menu "Module" > "Module 1" > "Configurer" (Si certains paramètres importantes sont absents du menu de configuration c'est certainement parce qu'Arena est paramétré pour régler ensemble tous les moteurs UCI. Voir ici à ce sujet).
➤Pour Lucas Chess : menu "Options" > "Configuration des moteurs". Cliquez sur Fruit et dans la partie droite de la page changez les paramètres à votre convenance. Notez qu'un double-clic sur le nom du moteur ouvre un menu qui permet de choisir un alias, donner quelques information dans un champ de texte, indiquer le niveau Elo du moteur (2800), et de limiter le moteur soit en profondeur de recherche, soit en temps de réflexion par coup en secondes (Il faut bien sûr que Fruit ait été réinstallé comme moteur externe).
➤Pour PyChess : menu "Editer" > "Moteurs", choisir AnMon dans la liste, onglet "Options".
Rappel : pour Crafty Chess Interface et la version gratuite de Mayura Chess Board, il n'y a pas d'accès à la configuration des moteurs.



Le menu de configuration de Fruit (ci-dessus) est le plus imposant que j'ai jamais vu jusqu'ici : j'ai compté environ 80 bascules et paramètres à régler, un record absolu ! L'une des raisons est que Fruit 2.3 permet de régler le style du moteur avec plusieurs dizaines de paramètres et que cela se fait depuis ce menu.  Ces paramètres ne sont pas documentés et donc je ferai l'impasse sur leur conditions d'utilisation. Lorsque je veux créer un joueur d'échecs bien particulier, je le fais avec Rodent, un moteur plus moderne que Fruit. Par ailleurs, nous pouvons d'ici accéder à six variantes pré-programmées. J'y reviens plus bas.

Les paramètres de base

Hash : la table de hachage est à 32 Mo par défaut. C'est faible ! Portez-là au moins à 64 Mo, voire 128, surtout si vous jouez à un haut niveau.

Ponder : Pondération. Activez là et vous pourrez la désactiver ou l'activer à la demande depuis l'interface d'Arena.

MultiPv : choisissez le nombre de pistes à faire suivre par le MultiPV ("1" pour le désactiver).

UCI_Chess960 : le moteur peut jouer à cette variante de Bobby Fischer.  Il suffit de cocher la case.

Ownbook et Book File : la bibliothèque interne "book.bin" est activée par défaut, mais n'importe quelle bibliothèque au format polyglot (à l'extension.bin) fera l'affaire. Il suffira d'utiliser le sélecteur de fichiers pour guider le moteur vers cette bibliothèque alternative.

TimeAllocation : modifie la façon dont Fruit gère la pression du temps. Des valeurs plus élevées entraîneront une utilisation du temps plus agressive et plus de temps passé en ouverture ;  des valeurs plus faibles entraîneront une utilisation du temps conservatrice et plus de temps restant sur l'horloge en fin de partie (défaut : 100)

Accès aux tables de finales


NalimovPath : Fruit fut le premier logiciel libre à utiliser les tables de fin de parties Nalimov (voir mon article sur les tables de finales). Ici, indiquez lui le chemin si vous les avez.

EGBB path : alternativement Fruit utilise les tablebases Scorpio. Mêmes observations que ci- dessus.

EGTB : cocher pour utiliser l'une ou l'autre des tablebases (EGTB = End Game Data Bases).

Nalimov cache et EGBB cache : taille du cache, par défaut 16 (éventuellement, porter à 32 Mo).


Réglage de l'élagage

Le menu donne beaucoup de possibilités d'agir sur l'élagage de l'arbre de recherche. Rappelons que, d'une manière générale, un élagage agressif permet au moteur d'explorer beaucoup en profondeur et augmente sensiblement le niveau, MAIS que cela se fait au détriment de la qualité du jeu, le moteur pouvant mal juger certaines positions -  notamment les complexes situations de Zugzwang. Personnellement, j'ai tendence à considérer qu'il faut mieux avoir un jeu de qualité qu'un moteur aussi fort que Magnus Carlsen.

Pruning : les routines d'élagage de l'arbre de recherche peuvent être utilisées de manière "Normal" ou "Agressive". Le mode agressif permettra au moteur d'explorer davantage en profondeur et certainement de faire gagner des points de Elo ; mais il risque de mal évaluer certaines positions et de faire des erreurs notables. Fruit est déjà bien assez fort. Mieux vaut conserver "Normal", valeur par défaut, pour la meilleure qualité de jeu.

Verification Search : (Always / Endgame / Never, default: Always) : cette heuristique tente de résoudre certains problèmes liés au Zugzwang. Nous avons le choix entre "Always" (la routine est active toute la partie, choix par défaut), "Endgame" (seulement en fin de partie) ou "Never" (jamais). Conserver "Always" bien sûr.  

Cinq autres paramètres concernant l'élagage sont disponibles mais pas documentés. Ils sont décochés sauf "Use fast eval" et "Use search focus". Je propose de conserver les choses en l'état.

Paramètres de style

Play Style
est le plus utile. Il permet de choisir l'une des sept personnalités préprogrammées - six en fait car le choix "Gambit" n'est pas fonctionnel. Ryan Benitez a voulu adapter Fruit pour le faire jouer à la manière de son propre fork de Fruit, Gambit Fruit (voir plus bas) mais il s'est arrêté en chemin et ne compte pas terminer ce travail.  Reste donc "Cowardly" (couarde), "Passive", "Normale" (personnalité par défaut), "Semi-Agressive", "Agressive" et "Very-Agressive". Des choix qui se passent de commentaire.

Les nombreux autres paramètres (j'en ai compté plus d'une cinquantaine) n'étant pas documentés, je n'en dirai rien.


Fruit 2.2.1

J'aime bien Fruit 2.2.1, dernière version sur laquelle a travaillé Fabien Letouzey. Le moteur est un peu moins fort que 2.2.3 (entre 2730 et 2750 Elo) mais baigne dans son ju d'époque. Pour moi c'est la version historique, celle qu'il faut privilégier.  Son menu de configuration est plus modeste.



Pour l'essentiel, les éléments qu'il contient ont déjà été vus pour Fruit 2.3. Pour ceux qui n'ont pas été vus, il n'y a pas lieu d'envisager de changement. Sauf peut-être en ce qui concerne les 12 derniers, qui concernent la personnalité de Fruit. Celle-ci peut être modifiée d'ici. Ce sont des critères très classiques :

Material : poids du matériel
Piece activity : placement et mobilité des pièces
King safety : protection du roi
Pawn structure : solidité de la structure de pions.
Passed pawns : attention au passage des pions
Pawn : poids des pions
Knight : poids des cavaliers
Bishop : poids des fous
Queen : poids de la dame
Bishop pair : poids de la paire de fous.

Contempt factor : facteur de "mépris". Il s'agit ici de fixer une valeur en centipawn permettant de régler l'attitude du moteur devant un choix d'annulation. Plus la valeur est négative, moins le moteur sera enclin à accepter la nullité ; plus la valeur est supérieure à zéro, plus le moteur recherchera la nullité.


Pour un Fruit plus dynamique, nous pourrions par exemple essayer les réglages suivants :

Material : 92%
Piece activity : 120%
King safety : 92%
Pawn structure : 95%
Passed pawns : 100%
Pawn : 95%
Knight : 100%
Bishop : 105%
Queen : 105%
Bishop pair : 110

Contempt factor : -500



Gérer la force du moteur


Avec Arena

Avec Arena le mieux est d'abord de désactiver la pendule (on ne peut pas se donner un bonus de temps) puis de sélectionner un contrôle de temps relativement bref.
➤Menu "Niveau" > "Régler" (ou Ctrl+L),  choisir "Blitz" ou "Tournoi" puis préciser le contrôle de temps et fermer la fenêtre.
➤Menu "Options" > "Pendule arrêtée" (l'icône en forme d'horloge doit être entourée d'un filet bleu. Dans ce cas, seul le moteur subit la pression du temps.
➤Mais on peut également handicaper le moteur :  menu "Module" > "Module 1" > "Configurer". Régler "% Cpu" à votre convenance (les valeurs inférieures à 100 ralentissent le moteur).


Avec Lucas Chess

Il faut d'abord commencer une partie : "Jouer" > "Jouer contre un moteur" ; cliquer sur le gros bouton du moteur courant, puis "Moteur externe" et choisir Chessterfield ou l'une de ses personnalités. A partir de là, voici les options possibles :
➤Ne pas s'imposer de contrainte de temps : onglet "Temps". Si "Activer le contrôle de temps" est décoché, seul l'ordinateur subira la pression du temps. Le joueur humain pourra réfléchir tant qu'il voudra.  
➤Accepter une contrainte de temps plus favorable : depuis le même onglet "Temps", cliquer sur "Activer le contrôle du temps" puis en dessous déterminer un contrôle de temps pour le moteur et indiquer ensuite à combien de minutes de jeu supplémentaire aura droit le joueur humain. Dans ce cas, le moteur se conformera aux conditions prévues initialement mais le joueur humain bénéficiera d'un bonus de temps plus ou moins important.


Avec Crafty Chess Interface

Avec Crafty Chess Interface, tout se passe dans la fenêtre "Control panel". La réglette de force n'est utilisable que par le moteur Crafty interne mais deux possibilités intéressantes sont accessibles :
➤Ne pas imposer au joueur humain la pression du temps. Il suffit de régler le contrôle de temps souhaité pour le moteur, de valider (bouton "Set") puis de cliquer sur le bouton "Go" sans avoir coché la case "On".
➤Accepter de subir la pression du temps mais en se donnant une marge supplémentaire : cocher "On",  double-cliquer sur l'horloge du joueur humain dans la fenêtre "Horloge & Statuts": une fenêtre s'ouvre. Entrez un temps sous la forme minutes:seconde. Par exemple 30:00, pour porter à 30 minutes le temps dont le joueur humain disposera.


Avec Mayura Chess Board

Depuis le menu "Level", choisir "Time per move", "Blitz game" ou "Long game". Comme toujours, je déconseille "Fixed depth" ; "Limit engine strenght" n'est pas fonctionnel. A partir de là, deux possibilités :
➤Suspendre l'horloge : bouton pause ("II") de la barre d'outils ou menu "Clock" > "Pause". L'horloge continue à fonctionner pour le moteur mais plus pour le joueur humain.
➤S'octroyer un volume de temps supplémentaire : menu "Clock" > "Set clock". On fixe ici le temps pour les blancs et pour les noirs.




Gambit Fruit


Gambit Fruit a été développé par Ryan Benitez en C ++ à partir des sources de Fruit 2.1 et de Toga. Son niveau de force est un peu inférieur (2700  Elo) mais le but de l'auteur était surtout d'obtenir un jeu fun, beaucoup plus agressif que celui du très sage Fruit. C'est même un moteur "risque-tout", à la Mikhaïl Tal. C'est ce choix et non la qualité de l'adaptation qui fait perdre de la force à Gambit Fruit.
Par la suite, Ryan Benitez a rejoint l'équipe de Fruit et en est même devenu le développeur officiel. Les idées qui faisaient l'originalité de Gambit fruit ont été en partie employées sur les dernières versions de Fruit - ce qui a permis de doter ce moteur de personnalités beaucoup plus agressives. Toutefois, la personnalité "Gambit" de Fruit 2.3 n'a jamais été achevée, de sorte que Gambit Fruit reste la seule véritable personnalité ultra-agressive de Fruit.

Ci-contre : Mikhaïl Tal en 1982 au quatrième tour du tournoi d'échecs Hoogovens (Archives nationales néerlandaises, La Haye, collection de photographies General Dutch Press Office).



Téléchargement et installation

Il est à présent très difficile de mettre la main sur Gambit Fruit. La dernière source connue de moi s'étant tarie j'héberge la version 4bx sur mon espace Mega :

Télécharger Gambit Fruit ?

Son installation est tout à fait standard : procéder comme avec Fruit mais en sélectionnant le fichier "GFruit-4bx.exe".


Configuration

Le menu de configuration est lui aussi assez imposant mais il ressemble à celui de Fruit. Concentrez-vous sur les paramètres classiques : Hash, Ponder, Ownbook, MultiPV...



Enormément de réglages concernent l'élagage de l'arbre de recherche. Je suggère de conserver les paramètres par défaut.

Affinement de la personnalité

Un nombre encore plus grand de paramètres concerne les réglages de l'évaluation. J'en ai compté 26. Certains paramètres proviennent de Fruit 2.1 : Piece activity, Passed pawns, Pawn structure, Contempt factor (voir plus haut). Les paramètres de poids des pièces sont repris mais précisés par un poids de début de partie (Opening value) et par un poids de milieu et de fin de partie (Engame value). Enfin, il y a quelques paramètres totalement nouveaux, qui ne sont pas documentés mais dont l'effet peut être déduit :

Chess Knowledge (connaissances d'échecs) : . Il faut probablement comprendre que si on augmente la valeur de ce paramètre, Gambit Fruit va recourir davantage à ses connaissances positionnelles et moins à ses capacités tactiques. Bref, on réduira le côté hyper-tactique du moteur.

Pawn shelter (protection de pions) : difficile de savoir comment ce paramètre agit exactement. S'agit-il de mettre les pions plus ou moins à l'abri ou de les utiliser davantage en protection du roi, par exemple ?

Pawn storm (tempête de pions) semble clair, par contre, bien que pawn soit au singulier. Il s'agit certainement de diminuer ou d'augmenter la propension du moteur à lancer des offensives de pions.

Bad trade value (mauvais échanges) :
"bad trade" signifie généralement en anglais "mauvaise transaction commerciale". En vocabulaire d'échecs on traduirait plutôt cela par "mauvais échanges". Remis dans le contexte d'un moteur inspiré par Tal, il s'agit probablement de régler le caractère plus ou moins spéculatif de l'échange de pièces. En l'abaissant, l'échange serait conditionné davantage par des considérations saines. En l'augmentant on obtiendrait plus souvent le type de sacrifice un peu fou auquel Tal se laissait souvent aller. Mais ce n'est qu'une hypothèse... A vérifier.


Bibliothèque d'ouvertures de Tal ?

Vous aimeriez peut-être fournir à Gambit Fruit les ouvertures de Tal ? Dans ce cas, téléchargez ma bibliothèque "Small_Tall.bin", que j'ai créée à partir de plusieurs milliers de jeu de l'ancien champion du monde.

Pour le reste, par exemple la gestion de la force du moteur, ce qui a été vu pour Fruit est valable pour gambit Fruit

Rob Rob, mai 2019
(article revu et approfondi en juin 2024).



 
 
 
 
 
 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();