Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard...

Post on 08-Jun-2020

5 views 0 download

Transcript of Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard...

Une petite histoire de la programmation des jeux

JM Alliot

Donald Michie

« La recherche sur le jeu d’échecs est le champ le plus important de la recherche cognitive. Les échecs seront pour nous ce que la drosophile a été pour les généticiens : un moyen simple et pratique de développer de nouvelles techniques. »

Points forts

Domaine complètement spécifiable et à information totale

Résultats facilement lisibles: victoire ou défaite Domaine « représentatif » de l’intelligence humaine Domaine « populaire » qui attire l’attention…et les

financements Domaine riche et complexe

Le Turk

Construit en 1770 par Wolfgang von Kempelen

El Ajedrecista (1910)

Leonardo Torres y Quevedo. Joue la finale Roi contre Roi+Tour. En 1920, version magnétique.

Shannon (1950) Machine pour les fins de parties. « Programming a computer for

playing chess" Philosophical Magazine, Series 7, Vol. 41 (No. 314, March 1950) : premier article sur la programmation des échecs

Définition des stratégies de type A et B

Le nimrod (1951)

Construit par Ferranti pour une exposition. Joue parfaitement au

jeu de Nim. Dietrich Prinz écrit un

programme résolvant des mats à deux pièces 6Kw, 40m3

Le turochamp (1950-1952)

A partir de 1950, Alan Turing construit un jeu d ’instructions (le turochamp) qui constitue le premier « programme » d ’échecs existant. Faute de machine capable de l ’exécuter, le programme sera simulé par Turing dans une partie contre un étudiant, Alick Glennie en 1952.

Chess for MANIAC (1956)

Ecrit par Stanislas Ulam et Paul Stein à Los Alamos Fonctionne sur un

MANIAC I (conçu par Von Neuman et Metropolis) Joue à une variante

6x6 des échecs

Paul Stein et Nick Metropolis

The Bernstein Chess Program (1957)

Ecrit par Alex Bernstein sur un IBM 704 Premier vrai programme

d’échecs Calcule 4 niveaux en

minimax en 8 minutes, avec de l’élagage (Shannon B) Alex Bernstein

The Bernstein Chess Program

NSS (Newell, Simon and Shaw) 1958

« Goal directed » Reste extrêmement

faible Shannon type B

Kotok-McCarthy (Stanford) program (1962)

Ecrit Par Kotok alors qu’il était un étudiant de John McCarthy Basé sur le programme de Bernstein Tourne sur IBM 7090 Implante l’alpha-béta Utilise extensivement de l’élagage (Shannon

B) Premier programme à jouer « correctement »

ITEP chess program (1963)

Developpé en Russie par Adelson-Velski, et Arlazarov sur des calculateurs russes M-2 et M-20 Support du maitre Alexander Bitman Alpha-béta, pas d’élagage (Shannon A) Match en 1965 contre le programme de

Stanford: victoire 3-1

2001,l’odyssée de l’espace Kubrick, (1968) Film très documenté qui reprend beaucoup de ce

que certains scientifiques pensaient à l’époque

« Bishop to b3… »

Mac Hack (1967) Développé par Richard

Greenblatt Librairie de 5000 coups

(Larry Kaufman) Shannon B Première utilisation des

tables de transposition Premier programme à jouer

dans des tournois humains Classement ELO autour de

1400

Chess (1968-1980) Développé par Slate et

Atkin comme un programme Shannon B (de Chess 1.0 à Chess 3.6), transformé en Shannon A en 1973 (Chess 4.0)

Utilisation de bitboards 8 fois vainqueurs de l’ACM

North American (70-73, 75-77, 79) et du WCCC 1977

Tournait sur CDC 6600

Kaissa (1970-1980)

Suite du programme ITEP

Pure Shannon A, bitboards, élagage « null move »

Remporte le premier WCC en 1974 sur un ICL 4/70

Alan Bailey (Tech) - Mikhail Donskoy (Kaissa)

The Technology Chess Program (1971)

Développé par James Gillogly Premier programme (américain) à utiliser

une stratégie pure Shannon A Sera en service jusqu’en 1978

Belle (1973-1986) Première approche

hybride incluant des circuits spécialisés

5 fois vainqueurs de l’ACM, une fois du WCC (1980)

Développé par l’archi-gourou Ken Thompson

MicroChess80 sur TRS-80 (1976)

Fidelity Chess Challenger (1977)

Ron Nelson 8080, 2Mhz RAM: 256 octets ROM: 2Ko 850 ELO

Fidelity Chess Challenger 10 (1979)

Ron Nelson Z80, 4Mhz, RAM: 512 octets ROM: 4Ko 1175 ELO

Le backgammon

Examiné de bonne heure, en particulier par Hans Berliner Un des premiers jeux à utiliser des

techniques de type Monte-Carlo En 1980, BKG bat le champion du monde

humain Les meilleurs programmes sont

aujourd’hui probablement meilleurs que les meilleurs humains

Cray Blitz (1980-1994)

Développé par Bob Hyatt sur des Crays

Shannon A Rotated biboards Premier algorithme

parallèle (Principal Variation Search)

2 ACM et deux WCC (83 et 86)

Fidelity Elite Champion (1982)

Dan et Kathe Spracklen

1580 ELO 6502, 4MHz RAM 4Ko ROM 16 Ko

Sargon III (1983) sur Apple 2

Hitech (1985-1995)

Développé par Hans Berliner

Shannon type A et « B* »

Hardware spécialisé 2530 ELO en 1985 1988: classement

GMI 2ACM, 1 WCC

Mephisto Amsterdam (1985)

Richard Lang 68000, 12Mhz RAM: 16 Ko ROM: 48 Ko ELO: 1930

Psion (1985)

Mephisto Lyon (1990)

Richard Lang 68030, 50Mhz RAM: 2048 Ko ROM: 128 Ko ELO: 2152

Les checkers

Dames américaines 8x8 Chinook: meilleur programme développé

par l’équipe de Jonathan Schaeffer En 1992, Chinook bat le champion du

monde humain Marion Tinsley +4-2=34

Fritz 3 (1995)

Frans Morsch Pentium 90MHz ELO: 2245 Une victoire en

Blitz contre Kasparov

ChipTest – Deep Thought (1985-1995)

Hardware hybride Ancêtre de Deep

Blue Murray Campbell Feng-Hsiung Hsu Thomas Anantharam Mike Browne Andreas Nowatzyk

DeepBlue (1995-1997)

Supercalculateur fabriqué sur mesure par IBM 200 millions de positions

par seconde Premier ordinateur à

battre un champion du monde humain avec un contrôle de temps standard sur 6 parties

Othello

Les programmes sont aujourd’hui beaucoup plus forts que les meilleurs joueurs humains 1997: Logistello

bat Takeshi Murakami 6-0

Les développements nouveaux ont quasiment cessés.

« Chess in the Stratosphere »

Les meilleurs programmes actuels: Stockfish: open source Komodo: close source

ELO >? 3300 sur un Q6600 (quad core) 2.4GHz ELO sur un processeur plus récent

probablement >? 3400

Awele (Awari, Awale)

2002: Awele is solved (Romein-Bal). La partie est nulle en cas de jeu parfait.

Les checkers

2007: l’équipe de Schaeffer et Chinook prouvent que le jeu de checkers est nul en cas de jeu parfait.

Les checkers sont résolus

Le bridge

Il est difficile d’évaluer le niveau d’un programme de façon objective.

Le meilleur programme actuel (GIB/Matthew Ginsberg) est moins fort que les meilleurs humains, mais est meilleur que la majorité des joueurs de club

Il utilise des méthodes de force brute (Double Dummy Solver et Monte-Carlo)

Go Longtemps considéré comme inaccessible aux ordinateurs Facteur de branchement trop important Notion d’influence difficile à traduire informatiquement 03/2013: CrazyStone (Remi Coulom) bat Yoshio Ishida (9p)

avec 4 de handicap 09/2015: AlphaGo bat FanHui 03/2016: AlphaGo bat Lee Sedol (2ème mondial) 4-1 Durant la fin de l’année 2016, AlphaGo « updated » joue en

ligne contre les meilleurs joueurs mondiaux et gagne 60-0 “After humanity spent thousands of years improving our tactics,

computers tell us that humans are completely wrong... I would go as far as to say not a single human has touched the edge of the truth of Go.” (Ke Jie)