une petite histoire de la programmation des jeux · mac hack (1967) développé par richard...

42
Une petite histoire de la programmation des jeux JM Alliot

Upload: others

Post on 08-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Une petite histoire de la programmation des jeux

JM Alliot

Page 2: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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. »

Page 3: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 4: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Le Turk

Construit en 1770 par Wolfgang von Kempelen

Page 5: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

El Ajedrecista (1910)

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

Page 6: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 7: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 8: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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.

Page 9: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 10: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 11: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

The Bernstein Chess Program

Page 12: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

NSS (Newell, Simon and Shaw) 1958

« Goal directed » Reste extrêmement

faible Shannon type B

Page 13: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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 »

Page 14: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 15: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

que certains scientifiques pensaient à l’époque

Page 16: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

« Bishop to b3… »

Page 17: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 18: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 19: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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)

Page 20: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 21: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 22: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

MicroChess80 sur TRS-80 (1976)

Page 23: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Fidelity Chess Challenger (1977)

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

Page 24: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Fidelity Chess Challenger 10 (1979)

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

Page 25: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 26: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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)

Page 27: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Fidelity Elite Champion (1982)

Dan et Kathe Spracklen

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

Page 28: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Sargon III (1983) sur Apple 2

Page 29: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 30: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Mephisto Amsterdam (1985)

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

Page 31: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Psion (1985)

Page 32: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Mephisto Lyon (1990)

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

Page 33: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 34: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Fritz 3 (1995)

Frans Morsch Pentium 90MHz ELO: 2245 Une victoire en

Blitz contre Kasparov

Page 35: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

ChipTest – Deep Thought (1985-1995)

Hardware hybride Ancêtre de Deep

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

Page 36: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 37: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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.

Page 38: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

« 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

Page 39: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

Awele (Awari, Awale)

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

Page 40: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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

Page 41: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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)

Page 42: Une petite histoire de la programmation des jeux · Mac Hack (1967) Développé par Richard Greenblatt Librairie de 5000 coups (Larry Kaufman) Shannon B Première utilisation des

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)