INTRODUCTION

Je m'intéresse depuis longtemps aux échecs. J'ai appris seul vers l'âge de 5 ans en regardant une émission de télévision qui parlait des échecs (on ne voit plus guère cela de nos jours). Mais ce n'est que vers 20 ans que j'ai décidé d'y jouer plus sérieusement. Cependant les études dans un premier temps (doctorat en physique théorique) et la vie professionnelle et familiale dans un second temps m'ont éloigné des échiquiers. Aujourd'hui à 32 ans mon niveau est assez modeste faute de temps (1750 Elo) et le temps qui passe n'arrange rien à l'affaire. Je me suis donc de plus en plus intéressé aux parties entre ordinateurs avec l'idée d'essayer un jour de développer un programme pouvant jouer aux échecs. Récemment, le nombre de moteurs disponibles gratuitement sur internet s'est grandement accru. De plus, le niveau de ces moteurs s'est également nettement amélioré. Cela est dû en partie au fait que les ordinateurs sont de plus en plus performants, mais surtout au fait que les algorithmes d'évaluation de la position au cours d'une partie semblent avoir fait de grands progrès. Ce dernier point est extrêmement important car compter sur l'évolution croissante de la rapidité des machines pour augmenter la force des programmes est sans réel intérêt à mes yeux (ainsi que d'utiliser un grand nombre de processeurs), il n'y a pas grande créativité à ce niveau de la part des programmeurs, hormis peut-être au niveau de l'optimisation des programmes. Le réel challenge à mon sens est d'essayer de concevoir un programme qui "comprend" les échecs, en tout cas jusqu'à un certain point. Cela me paraît donc un bon moment pour entreprendre de tester ce nombre croissant de moteurs.

L'idée est donc de tester ces programmes en les faisant participer à des tournois sur un matériel donné. Opposer deux programmes, chacun tournant sur une machine différente ayant des processeurs significativement différents, n'a pas beaucoup de sens. L'idéal est sans doute de posséder un processeur dual core afin de pouvoir laisser les deux programmes calculer constamment (ponder on) durant la partie. Pour l'instant je ne possède qu'un seul processeur par machine. Voir la section MATERIEL.

Ces tournois seront réalisés au sein d'un certain nombre de divisions contenant un certain nombre de moteurs d'échecs. Ces deux nombres dépendent du nombre de moteurs utilisés pour l'ensemble des tournois. Pour l'instant (janvier 2007), le nombre de moteurs retenu s'élève à 30 et ils sont répartis en 5 divisions de 6 moteurs chacune.

Pourquoi des divisions? Simplement pour diminuer le nombre de parties entre programmes d'échecs tout en gardant un sens aux résultats obtenus. Cela permet d'estimer le niveau des programmes via leur "rating" et d'effectuer un classement global. Pour effectuer ce classement global, il faut évidemment que les moteurs des différentes divisions jouent ensemble dans des compétitions inter-divisions (basées sur un système suisse pour également diminuer le nombre de parties). Evidemment, pour que le rating soit significatif il faut un grand nombre de parties jouées car le calcul de ce classement est un calcul de type statistique.

Pour déterminer que tel moteur devait se trouver dans telle division, j'ai effectué un "pré-tournoi" identique aux tournois pour les divisions excepté la cadence qui était 2 minutes + 2 secondes par coup joué.

Le but d'OrdiChec n'est pas de concurrencer UCI Engine Ligue ou tout autre site dédié à ce type d'activité mais d'avoir du plaisir à effectuer ces tournois et de faire connaître les résultats, ce qui peut être éventuellement utile pour les concepteurs de programmes. De plus, l'objectif est bien plus restreint que celui de l'UEL puisque je ne considère qu'un nombre bien moins important de moteurs d'échecs pour ces compétitions avec une cadence et une configuration unique. L'avantage est peut-être d'obtenir un classement "plus significatif" mais de portée moins large. En effet, je suis convaincu que doubler le temps de réflexion moyen par coup d'un facteur 2 peut avoir des conséquences au niveau des ratings. Peut-être pas très important mais suffisant pour avoir un classement sous forme de divisions différent.
 
Design provided by Free Web Templates - your source for free website templates