GreKo 2015 ML - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Greko 2015 ML
L'ancienne version programmable


J'ai découvert fortuitement, en lisant un article sur les joueurs simulés de Lucas Chess, que les anciennes versions de GreKo permettaient de créer de nouvelles personnalités. La dernière à le proposer fut la 2015 ML. Cette version était créditée d'une force de 2600 Elo - contre plus de 2800 Elo pour Greko 2021, évolution la plus récente du moteur. Elle est donc sensiblement moins forte, mais les profils produits sont très bons. Greko est ainsi utilisé depuis plusieurs années par l'interface Lucas Chess pour générer quelques uns des nombreux joueurs fictifs du programme. Depuis la version 7.9, le nombre de critères disponibles a peu augmenté mais la qualité de jeu est par contre en forte hausse. Les erreurs grossières sont devenues beaucoup plus rares et le jeu du moteur plus réaliste, plus proche du jeu humain.

Pour les généralités sur GreKo, voir la page dédiée à ce moteur.

 

Les paramètres de la version 2015 ML


Table de hachage (Hash)

La taille de la table de hachage est réglée par défaut sur 32 Mo. L'augmenter permet d'améliorer sensiblement le niveau Elo du moteur, mais il n'y a pratiquement plus de gain au-delà de 256 Mo. Il est à peu près inutile d'aller au delà.


Multi-Pv

Le Multi-Pv est désactivé par défaut (sur "1"). Activer le Multi-Pv équivaut à abaisser fortement le niveau Elo du moteur. Pour une deuxième piste, la chute est sévère : moins 200 points Elo ! Le Multi-Pv a d'ailleurs été supprimé des versions postérieures de GreKo.  


Nombre de nœuds explorés (LimitKnps)


Par défaut 9999 centaines de Nps, c'est à dire en fait aucune limitation. Réduire le nombre de nœuds explorés abaisse la force du moteur mais ce n'est plus très utile ; GreKo 2015 est au standard UCI2 permettant de régler la force au Elo près depuis l'interface (ici entre 1600 et 2400 – ou à la force maximale). A moins que, pour des raisons dont je parle plus bas, vous ne fassiez tourner le moteur en version Winboard. Dans ce cas, le tableau de correspondance approximatives ci-dessous pourra vous être utile :



Comme vous pouvez le voir, la progression n'est pas linéaire. L'augmentation de la force entre 100 et 200 Nps est très élevée, supérieure à 250 Elo,  puis la courbe s’aplatit progressivement et le gain en force devient de plus en plus faible. Pour finir, un doublement du nombre de nœuds explorés ne procure plus que quelques points Elo.

Suivent les sept paramètres agissant sur la fonction d'évaluation, ceux qui nous intéressent le plus :


Material

Ce paramètre permet de régler le tempérament plus ou moins matérialiste du moteur.  Plage de réglage entre 0 et 100 ; valeur par défaut, 50.  Avec des valeur inférieures à 50, GreKo devient plus "spéculatif", plus prompt à échanger des pièces ; des valeurs plus élevées le poussent au contraire à conserver ses pièces et à s'emparer de celles de son adversaire. Ce qui peut l'amener à négliger les facteurs positionnels.


Contrôle de l'échiquier (Board Control)

A priori, à voir comment le moteur réagit sur des valeurs extrêmes, il devrait s'agir de l'équivalent du Center Control de The King, qui sert à déterminer le "désir" plus ou moins grand du moteur de mener le jeu au centre. Plage de réglage entre 0 et 100.  Par défaut, 60.
Des valeurs de Board Control élevées vont en général avec les joueurs au style offensif et mobile. Des valeurs faibles correspondent davantage à des personnalités positionnelles et défensives, avançant prudemment.


Mobilité (Mobility)

Ce paramètre affecte l'évaluation de la mobilité (et donc de l'activité) des deux camps ; des valeurs supérieures à 40 conduisent le moteur vers des positions où ses pièces ont une grande mobilité – c'est-à-dire beaucoup de coups possibles -  alors que des valeurs plus basses rendent le jeu du moteur plus statique. Plage de réglage entre 0 et 100.  Par défaut, 40.
A des valeurs très élevées, GreKo a tendance à devenir un "grinder" : il essaie de maximiser sa mobilité mais aussi d'étouffer son adversaire, en limitant ses mouvements.


Structure de pions (PawnStruct)

Règle le soucis du moteur d'avoir une bonne structure de pions. Plus la valeur est élevée, plus le moteur est attentif à conserver une position solide. Plage de réglage entre 0 et 100.  Par défaut, 40.


Attention aux pions passés (PawnPassed)

Modifie la tendance du moteur à créer ou conserver un ou plusieurs pions passés, même en négligeant d'autres facteurs. En dessus de 50, le moteur cherchera davantage à obtenir des pions passés ; il les évitera dans le cas de valeurs plus faibles. Plage de réglage entre 0 et 100. Par défaut 60.


Sécurité du roi (KingSafety)

Modifie le comportement du moteur concernant la sécurité de son roi et de celui de l'adversaire. Des valeurs supérieures à 50 forcent le moteur à être plus prudent et à mobiliser davantage de pièces pour la protection de son roi (posture défensive) ;  des valeurs plus basses aboutissent au comportement inverse. Plage de réglage entre 0 et 100.  Par défaut 50.


Rapport à la nullité (DrawScore)

Détermine l'attitude du moteur vis-à-vis de la nullité. C'est l'équivalent du paramètre Contempt que proposent beaucoup de moteurs. Plus le chiffre est élevé, plus la personnalité sera réticente à accepter la nullité dans une position qui lui est défavorable. Plage de réglage entre -1200 (hyper-frileux) et + 1200 (ne renonce jamais). Par défaut, 0.

Tous les paramètres suivants concernent la recherche. Il s'agit du réglage des diverses heuristiques d'élagage de Greko :


Null Move pruning (élagage du mouvement nul)

MoveRéduction (entre 1 et 5, défaut 3).
MoveMinDepth (entre 1 et 9999, défaut 2).
PruningMargin1 (entre 1 et 9999, défaut 50)
PruningMargin2 (entre 1 et 9999, défaut 350)
PruningMargin3 (entre 1 et 9999, défaut 550)


Late Move Reduction (réduction des mouvements tardifs)

LmrMinDepth (entre 1 et 999, défaut 3)
LmrMinMoveNumber (entre 1 et 9999, défaut 4)
Qchecks (entre 0 et 64, par défaut 2)


Lazy Evaluation (évaluation paresseuse)

LazyEvalMargin (entre 50 et 500, par défaut, 200)

On peut raisonnablement supposer que les paramètres par défaut constituent un choix optimal autorisant le niveau de force le plus élevé compatible avec une bonne qualité de jeu.  Je propose de ne pas les modifier.  


Programmation de personnalités

En terme de capacités de programmation, GreKo 2015 est assez comparable à Cdrill. Avec seulement six paramètres  agissant sur l'évaluation, on ne peut pas vraiment envisager de reproduire finement le jeu de tel ou tel grand maître.
Le moteur NagaSkaki est un peu plus développé sur ce plan avec dix paramètres agissant sur l'évaluation, dont cinq concernent le poids des pièces et le dernier, blunder, ayant pour fonction de créer du flou dans le jeu du moteur. Toutefois GreKo a plusieurs avantages sur ses ''concurrents'' : il est beaucoup plus fort (Au mieux 2000 Elo pour Cdrill et 2200 Elo pour NagaSkaki), c'est un moteur plus polyvalent, à l'aise aussi bien en attaque qu'en défense, et enfin son jeu est de meilleure qualité. Au fils des versions, l'auteur, Vladimir Medvedev, a corrigé la plupart des aberrations que l'on observait encore sur la version 7.9.  Notons également que les critères disponibles sont bien choisis et permettent d'ajuster pas moins de 27 variables différentes.  Le seul problème est qu'on ne sait pas toujours comment les réglages des six paramètres visibles vont impacter ces 27 variables.


Style

Nativement, GreKo est un moteur plutôt tactique et offensif, conçu davantage pour l'attaque, avec un style qui ressemble à celui de Kasparov. Contrairement à beaucoup de moteurs tactiques, qui misent trop sur le calcul, il peut s'appuyer sur une bonne maîtrise de la position. Il pourra donc être utilisé avec succès pour créer des personnalités positionnelles et défensives.


Méthode

J'ai rencontré des difficultés pour créer des profils autonomes. Il y a bien un fichier "Greko.ini" mais il semble inutile. Changer les paramètres affichés ne modifie en rien le jeu du moteur qui continue à fonctionner avec les paramètres standards. On peut d'ailleurs le supprimer sans que cela ne provoque le moindre problème. Par contre, ça fonctionne bien si l'on change les valeurs dans le menu de configuration du moteur, depuis l'interface, comme vu plus haut.

Y a t-il un moyen de conserver les nouveaux paramètres dans un fichier quelconque, pour une utilisation ultérieure ? Je n'en ai pas trouvé, du moins lorsque GreKo fonctionne avec le protocole UCI. En revanche, si on force le moteur à utiliser le protocole Winboard, ça marche ! Mais dans ce cas, on ne pourra plus employer GreKo avec Lucas Chess ou Mayura – lesquels n'acceptent pas les moteurs Winboard. Arena sera alors la meilleure option.
D'autre part nous ne bénéficierons pas non plus de la possibilité de régler la force du moteur depuis l'interface.

Comment faire, avec Arena ?

1/ Bascule UCI/Winboard : Menu ''Modules'' > ''Gérer '', onglet ''Détails'' et cherchez GreKo dans la liste des moteurs. Puis sur l'onglet ''Général'' cherchez le champ ''Nom''. Actuellement, il est sur UCI. Passez sur  ''Winboard''.

2/ Sélection du moteur : comme d'habitude, basculez sur l'onglet ''Choix'' et sélectionnez GreKo. ''Appliquez'' et fermez la fenêtre de gestion des moteurs.

4/ Démarrage : menu ''Modules'' > ''Modules 1'' > ''Démarrage'' (ou Shift + F11). Notez que la zone de notification d'Arena, sous l'échiquier, affiche le changement de protocole.



5/ Édition du fichier ''GreKo.ini'' : menu ''Modules'' > ''Modules 1'' > ''Configurer'' (ou Ctrl +1). Le message suivant s'affiche : ''Pas de fichier de configuration pour module GreKo. Voulez-vous le choisir maintenant ?''
Répondez ''Oui'' et sélectionnez le fichier ''GreKo.ini''.  Le bloc-note de Windows s'ouvre et affiche la configuration standard :

Changez les valeurs à votre convenance et sauvegardez. N'oubliez pas notamment de programmer LimitKnps en vous basant sur le tableau ci-dessus si vous voulez affaiblir la personnalité. Redémarrer GreKo (Shift+F11) après chaque modification afin que les changements soient pris en compte.

6/ Sauvegarder la personnalité :
Donnez un nom à Greko : menu ''Modules'' > ''Gérer '', onglet ''Détails'' et chercher GreKo dans la liste des moteurs. Puis sur l'onglet ''Général'', cherchez le champ ''Nom'' et baptisez votre profil personnel. Par exemple ''Warrior'' si c'est un attaquant féroce.

Copiez le dossier du moteur et collez-le dans le répertoire ''Engines'' d'Arena en lui donnant le même nom que le nouveau moteur.

Installez ce nouveau moteur dans Arena, en n'oubliant pas que le protocole de communication doit être Winboard et non UCI.
N'ayez pas peur de faire des copies du moteur. Sans les sources, avec sa bibliothèque interne, GreKo ne pèse que 300 Ko. Ce n'est pas lui qui va alourdir votre disque dur !


Bibliothèques d'ouvertures

GreKo utilise une petite bibliothèque interne contenue dans le fichier ''book.bin''. Elle rassemble des ouvertures typiques de joueurs actifs et ne sera pas vraiment adaptée aux personnalités lentes et défensives. Malheureusement, malgré les apparences, cette bibliothèque n'est pas au format Polyglot. Aucune autre bibliothèque *.bin n'est acceptée. Si vous utilisez Arena pour faire fonctionner GreKo, il reste la solution de forcer l'usage de l'une des bibliothèques Abk de l'interface. Pour accompagner les 49 profils de grands maîtres du moteur The King de Chessmaster, j'ai créé 126 bibliothèques Abk – deux ou trois bibliothèques par joueur, selon les profils (Voir l'article sur The King). Vous trouverez forcément des bibliothèques pouvant s'accorder avec les styles de vos créations.  

Télécharger le pack de bibliothèque d'ouvertures au format Abk ?

Pour guider le moteur vers l'une de ces bibliothèques, commencez par copier les fichiers abk que vous comptez utiliser dans le répertoires "Books" de l'interface (ce n'est pas obligatoire mais c'est mieux). Ensuite, menu "Modules" > "Gérer" puis choix du moteur dans la liste, onglet "Détails", onglet "Bibliothèque" et utilisez le sélecteur de fichiers pour aller chercher la bibliothèque qui vous convient le mieux.


Quelques propositions de personnalités

Le joueur équilibré

Ce joueur n'a pas de style particulier, il a une position moyenne dans tous les compartiments du jeu. Il n'en est pas moins presque aussi fort que le profil standard.
Force : ******

Material=50
BoardControl=50
Mobility=50
PawnStruct=50
PawnPassed=50
KingSafety=50
DrawScore=0

Suggestion de bibliothèques Abk pour ce profil : Vishy Anand, Jan Timman, Bobby Fischer, Boris Spassky...

Le défenseur positionnel

Matérialiste et très attentif à conserver une bonne position. Privilégie la promotion comme moyen offensif.
Force : *****

Material=65 (matérialiste)
BoardControl=30 (jeu central faible)
Mobility=30 (avance prudemment)
PawnStruct=60 (conserve une bonne structure de pions)
PawnPassed=70 (aime promouvoir ses pions)
KingSafety=60 (protège bien son roi)
DrawScore=-200 (accepte facilement la nullité)

Suggestion de bibliothèques Abk pour ce profil : Tigran Petrossian, Salo Flohr, Peter Léko, Gata Kamsky...

L'attaquant tactique

Joueur un peu plus offensif que le joueur par défaut : moins matérialiste et plus mobile.
Force : ****

Material=40 (peu matérialiste)
BoardControl=60 (jeu au centre vigoureux)
Mobility=50 (actif)
PawnStruct=40 (intérêt limité pour avoir une bonne position)
PawnPassed=60 (ne néglige pas la promotion de pion)
KingSafety=45 (protection du roi modérée)
DrawScore=250 (n'accepte pas facilement la nullité)

Suggestion de bibliothèques Abk pour ce profil : Garry Kasparov, Judit Polgar, Larry Christiansen, Joshua Waitzkin...

L'attaquant positionnel

C'est un joueur qui apprécie les jeux fermés et joue d'abord en défense, veillant à maintenir une bonne position. Lorsque le plateau a commencé à se vider, il devient plus agressif.
Force : ****

Material=55 (économe de ses pièces)
BoardControl=70 (jeu fort au centre)
Mobility=40 (avancée prudente)
PawnStruct=60 (conserve une position très solide)
PawnPassed=60 (privilégie la promotion des pions)
KingSafety=45 (protection un peu allégée du roi)
DrawScore=0

Suggestion de bibliothèques Abk pour ce profil : Anatoli Karpov, Viktor Kortchnoï, Larry Evans, Vassily Ivanchuk, Vladimir Kramnik...

L'attaquant sacrificiel


Hyper-actif et agressif, ce joueur n'accorde que peu de valeur à ses pièces et les sacrifie allègrement. Par contrecoup, il n'accorde pas beaucoup d'importance à la solidité de sa position et préfère mobiliser ses pièces pour attaquer que pour protéger son roi. La promotion de pion nécessite trop d'efforts positionnels pour s’accommoder  de son style va-t-en-guerre. Il n'accorde donc pas d'intérêt à cette tactique offensive.  
Force : **

Material=35 (très peu matérialiste)
BoardControl=90 (jeu au centre très vigoureux)
Mobility=70 (fortement actif)
PawnStruct=37 (faible intérêt pour maintenir une bonne position)
PawnPassed=20 (pas intéressé par la promotion de pion)
KingSafety=38 (ne mobilise que le minimum de pièces pour la protection de son roi)
DrawScore=250 (n'accepte pas facilement la nullité)

Suggestion de bibliothèques Abk pour ce profil : utiliser les bibliothèques de MiKhaïl Tal ou d'Alexei Shirov,

Classement des joueurs

J'ai fait jouer mes cinq personnalités et le profil par défaut de GreKo un tournoi toute ronde de 150 parties 40/12. Sans trop de surprises, c'est la personnalité par défaut qui gagne facilement.  Depuis le temps que Vladimir Medvedev travaille sur GreKo, il a appris à connaître son moteur ! Mais le joueur équilibré, aux paramètres proches, fait presque jeu égal.



Le défenseur positionnel, l'attaquant tactique et l'attaquant positionnel sont un bon cran en dessous, se suivant d'assez près. C'est la preuve que GreKo est, malgré ses capacités tactiques un moteur assez polyvalent, capable de camper avec succès un rôle de joueur positionnel et défensif.
Par contre, l'attaquant sacrificiel subi une véritable déroute ! Ce n'est pas qu'il soit le dernier qui m'a étonné, car les profils hyper-agressifs subissent toujours une forte décote, mais qu'il se situe aussi loin des autres : 11 points sur 50 possibles, 4 parties gagnées, 32 perdues, 14 nulles, c'est un maigre résultat. Néanmoins, ce joueur est intéressant à voir fonctionner.


Téléchargement

GreKo 2015 ML est téléchargeable avec toutes les autres versions du moteur sur le site de l'auteur.

Par ailleurs, si les 5 personnalités mentionnées ci-dessus vous intéressent, vous les trouverez toutes prêtes à être utilisées en les téléchargeant sur mon espace Mega, avec GreKo 2015 ML.

Télécharger  les personnalités pour GreKo 2015 ML ?

Vous les installerez dans Arena de la manière habituelle : menu "Modules" > "Installer nouveau module". Cette fois Arena vous demandera quel protocole de communication vous souhaitez utiliser, UCI ou Winboard. Répondez Winboard. Et n'oubliez pas d'abaisser LimitKnps si vous souhaitez réduire la force du moteur.

Rob Rob, juillet 2021

 
 
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); })();