Exemple de moteur d’analyse
Exemple de moteur d’analyse
L’une des jalons que les échecs ont révolutionné au cours des 20 dernières années, c’est l’apparition de ceux connus sous le nom de « moteurs » ou modules d’analyse. Aujourd’hui ce jour-là, pratiquement tous les acteurs Leur départ avec l’amie inhumaine, à la recherche des erreurs qui ont été faites dans le jeu. Tel est le cas, que l’évaluation d’un module soit prononcée, à l’heure actuelle, comme le plus proche de la « vérité » que nous sachions; en fait, il n’est pas étrange d’écouter des fans et des professionnels, de faire des commentaires du type: « Ici J’ai 0.20 avantage « .
Cependant, je me trouve constamment que cet outil est mauvais ou très mauvais, utilisé par la plupart des joueurs; Et cela implique que le travail effectué devant l’ordinateur peut être utilisé peu ou plutôt rien. Je vois constamment que ni les analyses effectuées n’ont de valeur (car elles contiennent des erreurs en vrac, comme je vais vous enseigner), ni les conclusions qui sont extraites d’eux servent à améliorer notre jeu et, ce qui est pire, que le module nuit à notre façon de Penser au tableau, perdant par exemple toute notion stratégique. Par conséquent, j’écris cette série d’articles sur les moteurs d’analyse avec quelques idées et des conseils qui peuvent nous aider à nous améliorer.
Fondamentaux
Je suis l’une de ces personnes qui, afin d’utiliser quelque chose bien, j’ai besoin de comprendre ce que c’est. C’est pourquoi, d’abord, je vais expliquer, dans un schéma et de manière télégraphique, ce qu’un moteur est à l’intérieur pour nous offrir ces variantes et ces évaluations.
Premièrement, nous devons comprendre qu’une analyse de module consiste, fondamentalement, dans Deux sous-programmes (techniquement, nous parlerions des sous-programmes, mais le terme sous-programme, je pense qu’il est mieux compris). Les premiers calcule toutes les pièces légales de la position actuelle. La seconde, prend chaque position et l’évalue à travers une fonction d’évaluation. Cela convertit la position au-dessus de la carte dans un certain nombre qui sera l’évaluation. Enfin, le programme ordonne toutes les évaluations du plus haut à mineur et nous donne le meilleur endroit situé sur cette liste, ce qui sera le jeu que l’ordinateur propose.
dans le jargon, chaque position est appelée nœud, et Par conséquent, si vous examinez les informations que le module offre pendant son calcul, vous pouvez voir dans KN (Kilo Nœuds, c’est-à-dire 1000 nœuds) autant de positions évaluant votre ordinateur par seconde. Vous pouvez faire une idée de la vitesse de votre ordinateur (techniquement de votre processeur, qui est celui qui calcule).
La fonction d’évaluation est l’une des « formules magiques » de chaque moteur et est Ce qui caractérise, essentiellement, chaque module. Ainsi, lorsque vous choisissez un moteur, vous achetez essentiellement cette fonction d’évaluation. Normalement, il consiste en un calcul du matériel sur le tableau, donnez un certain nombre à la mobilité ou à la menace, et même beaucoup d’entre elles. inclure des motifs à évaluer numériquement. Par exemple, de profonds bleu ajout d’un « plus » numérique au cas où un pion de tour est arrivé en sixième près de la poussée rivale (pion in H6 avec le roi noir énoncé en G8); o Le module Crafty a un motif pour reconnaître un évêque enfermé dans H2 lorsque l’adversaire joue G3 (comme dans le célèbre jeu Spassky-Fischer). Par conséquent, travailler avec différents modules me propose des jeux différents pour la même position, car chacun évalue à sa manière.
Les chiffres qui attribuent la fonction d’évaluation sont totalement arbitraires, car la seule chose qui compte est ce qui compte Le nœud a la plus grande évaluation. Cependant, les programmeurs ont changé l’ampleur de ces chiffres afin d’avoir une relation certaine avec ce que les humains comprennent (pion = 1 point). Mais les yeux, chaque fonction d’évaluation est différente, et nous ne pouvons pas comparer les « cheveux » les nombres d’un et un autre module. C’est l’une des premières erreurs que j’ai détectées entre les joueurs et que nous devons éviter. Nous ne pouvons pas non plus prendre l’évaluation. En tant que nombre absolu, « avoir 0,25 » ne signifie rien, plutôt que par la mobilité des pièces, il est probable que notre position soit plus confortable; Mais ce n’est pas l’information qu’un joueur de tournois a besoin de: s’il a un avantage, comme il est exécuté s’il suffit de gagner, quel type de position vous attend, etc.
Profondeur, pli et calcul grossier
Les programmeurs sont posés la même question que les joueurs se font nous-mêmes, lors de l’arrêt de calcul et d’évaluer simplement la position? Comme cela nous arrive, la réponse n’est pas facile. Par conséquent, l’ordinateur est en train de calculer dans « niveaux de profondeur »; alors que nous laissons le temps de calculer une position, elle va plus loin dans son calcul.
Les niveaux de profondeur sont mesurés dans « plis », ce qui est ce que nous considérons dans les échecs « demi-jeu » (qui joue en blanc ou en noir); C’est-à-dire que si j’ai une position (noeud) et à travers un mouvement blanc, j’atteigne une autre position (noeud), les deux positions sont de 1 plis. Par conséquent, une profondeur de 2 plis implique que l’ordinateur a calculé toutes les positions possibles qui se produisent après une pièce blanche et une pièce de lecture.
L’ordinateur progresse dans cette profondeur. Tout d’abord, il génère toutes les avancées légales possibles et génère donc tous les nœuds possibles que nous pouvons atteindre de la position actuelle. Ensuite, il évalue tous ces nœuds et les ordonne mieux d’une évaluation pire. Une fois que tout cela est fait, l’ordinateur a fini de calculer à la profondeur 1. Ensuite, prenez toutes les positions générées sur un pli et calculez toutes les avancées légales possibles, générant tous les nœuds possibles que nous arriverons après 2 plis et l’évaluation; Nous aurons donc atteint la profondeur 2; et ainsi de suite.
à ce processus que j’ai décrit est appelé calcul brut.
Calcul sélectif
Le calcul brut est formellement correct, ce qui se passe que notre ordinateur est obligé de calculer toutes les positions possibles résultant de chaque pièce, de sorte que cela perdra souvent du temps dans des positions absolument perdues (avec dame et deux tours de moins, par exemple).
une idée de Améliorer la performance des moteurs consiste à utiliser ce qui a été appelé le calcul sélectif. En cela, l’ordinateur calcule toutes les pièces possibles et les évalue; Mais il ne sélectionne que quelques-uns, le meilleur, pour effectuer le prochain niveau de profondeur. Disons par exemple que le « niveau de sélectif » est trois; puis l’ordinateur prend les trois positions qui ont conduit aux trois meilleures évaluations et génère toutes les pièces possibles de ces trois positions (nœuds). Maintenant, il évalue les pièces de théâtre et retourne Pour choisir les trois premiers pour calculer toutes les positions du prochain niveau de profondeur, etc.
Le calcul sélectif est beaucoup plus rapide que le calcul brut. De plus, il est basé sur la façon dont les humains calculent quand Ils choisissent les joueurs candidats. Cependant, il risquait d’être des variantes intéressantes dans l’encre. Si une pièce de théâtre offre la dame à donner cinq mouvements maternels plus tard, vous pouvez difficilement être compris entre les trois meilleurs du niveau de profondeur.. De plus, L’ordinateur devrait atteindre un niveau de profondeur 9 (brut) pour voir le compagnon.
Comment ajustez-vous le nombre de pièces que nous voulons dans le sélectif ?, la plupart des ordinateurs qu’ils ont une Paramètre qui est « nombre de lignes de calcul ». Eh bien, chaque fois que vous mettez 1, 3 ou 10, vous ajustez le nombre de pièces de lecture candidat qui utilisent votre ordinateur dans le calcul sélectif.
calcul brut / sélectif
pour profiter de la Le meilleur des deux mondes, les programmeurs ont opté pour un calcul mixte, qui combine le brut et le sélectif. L’ordinateur est d’abord calcule rarement à un niveau de profondeur et avant de passer à la suite, il effectue un calcul sélectif à une plus grande profondeur. C’est-à-dire que l’ordinateur calcule cru à la profondeur 20, puis prend les trois premiers et continue d’approfondir jusqu’à 33 avec la technique de calcul sélective; Ensuite, il fait le calcul brut à une profondeur 21 et revient à faire le sélectif; Et ainsi de suite.
Pour cela, lorsque vous regardez les informations du module de la profondeur de la section, vous allez voir une fraction 20/33, ce qui signifie une profondeur de niveau 20 dans le calcul brut, niveau 33 en sélectif.
Certaines moteurs d’analyse font peu confiance à la sélective (par exemple, poisson stock), tandis que d’autres pensent que c’est le plus important (Houdini). Pour le moment, je vais seulement vous dire qu’il est très important que, dans chaque calcul que vous faites, vous avez ces chiffres présents, car nous allons nous dire combien l’ordinateur s’est approfondi et comment l’assurance nous pouvons en résulter. Cela nous offre.
Vitesse de la CPU et table de hachage
Enfin, nous allons commenter deux aspects « physiques » de notre ordinateur: la vitesse de la CPU et la table de hachage. L’ordinateur A un processeur, qui est celui qui calcule (c’est-à-dire celui qui effectue des opérations sur les « chiffres » entrant et offre des chiffres dans sa production). Cette vitesse est maintenant, le fameux GHz qui apparaît. Par exemple, un Pentium 4 à 3 GHz signifie que l’ordinateur a une « vitesse » de 3 GHz. Si vous avez un ordinateur plus rapide, dans la fonction de calcul des nœuds et de l’évaluation, votre ordinateur le rendra plus rapide, et donc vous atteindrez Plus de niveaux de profondeur en moins de temps.
Je tiens à souligner que, en aucun cas, un meilleur processeur (plus rapide) implique que votre ordinateur trouvera de meilleures pièces.Tout ancien ordinateur, si nous vous donnons suffisamment de temps, vous trouverez le même jeu pour le même niveau de profondeur, que l’ordinateur le plus rapide du monde (avec le même moteur d’analyse).
Tous ces calculs et évaluations Cela rend l’ordinateur les stocke en mémoire, car au niveau de la profondeur suivant, au lieu de partir de 0 des calculs, l’ordinateur utilise ce qui est calculé au niveau précédent pour ajouter « une pièce de plus » « (c’est beaucoup plus rapide, évidemment). Le problème est que l’ordinateur dispose de trois niveaux de mémoire (en termes de base): cache, bélier et disque dur. Le cache est celui qui est « plus proche » du processeur, il est généralement petit et sert de sorte que l’ordinateur contienne Il a enregistré des résultats intermédiaires pendant que les calculs font. C’est l’accès le plus rapide. La RAM est une étape intermédiaire, c’est un accès assez rapide et est l’endroit où la plupart des programmes sont exécutés sur notre ordinateur. Le disque dur est, avec beaucoup de différence, plus lent, mais c’est là que nous gardons les choses de manière permanente.
pendant le calcul des positions d’échecs, l’ordinateur génère une quantité intime d’informations (nœuds, évaluations) Vous devez être stocké quelque part. Le cache est plein très rapidement, la mémoire suivante à utiliser est la RAM, qui a une capacité finie et que, à mesure que nous avançons, il est également rempli. Enfin, nous avons le disque dur, qui est très lent pour nos objectifs.
La table de hachage est une table qui fonctionne comme un index de la mémoire que nous utilisons et qui organise tous les calculs que nous avons déjà faits De tels que si l’ordinateur souhaite trouver où l’évaluation d’une position est, la première chose que vous demandez est de la table de hachage si vous l’avez dans l’index; Et sinon, cela le calcule à nouveau.
La plupart des moteurs nous permettent de former (donner la taille) à cette table de hachage; C’est-à-dire que cela nous permet de dire quelle est la taille du bloc-notes que notre moteur d’échecs peut utiliser pour enregistrer vos positions et vos évaluations. Si cet ordinateur portable est très volumineux, l’ordinateur passera beaucoup de temps à exécuter l’index à la recherche si vous avez la position que vous souhaitez calculer maintenant. S’il est très petit, l’ordinateur devra constamment calculer les positions pouvant avoir déjà été calculées dans le passé. Par conséquent, il n’est pas aussi simple que de lui donner la plus grande valeur possible à la table de hachage.
La règle générale indique que si notre processeur est très rapide, mieux que la mémoire n’est pas très grosse (car cela coûte moins cher Calculez-vous que vous regardez en mémoire), tandis que si cela est lent, nous devons le faire au contraire. Certains moteurs ont publié Cúl est la valeur de mémoire optimale avec laquelle elles doivent fonctionner. Mon expérience est qu’il est préférable de régler « à la main » ces valeurs pour optimiser les performances.
Il existe de nombreux autres facteurs que nous devons ajuster lorsque nous allons travailler aux échecs avec un ordinateur: utilisation Les compilateurs appropriés, choisissent la bonne façon de compiler le moteur, etc. Un moteur bien optimisé peut supposer une amélioration de 40% en termes de vitesse de traitement (kilonodos par seconde).
dans l’article suivant; une fois que Nous avons les bases, et nous comprenons essentiellement comment cela fonctionne, nous allons parler de la manière d’améliorer notre travail avec un ordinateur.