Quelques algos en Java issus de l’Intelligence Artificielle
Recherche aveugle
- A-Star présente des classes java pour la recherche de solution par l’algorithme A*
Recherche aléatoire
-
compteEstBonSimplifié est un exemple de recherche aléatoire pour la solution au problème du “compte est bon” : https://fr.wikipedia.org/wiki/Des_chiffres_et_des_lettres#Le_Compte_est_bon
-
nQueensRandom est un exemple de résolution du problème des n-reines par placement aléatoire puis adaptation pour diminuer les conflits. temps de traitement : env. 1.5 secondes pour placer 1000 reines dans un echiquier de 1000x1000; 11ms pour placer 100 reines sur un echiquier de 100x100, et 0.6ms pour placer 8 reines, etc.
Programmation par contraintes
Jeux (alphabeta, minimax, MCTS)
- MCTS : MonteCarlo Tree Search : 2 applications permettant à 1 joueur d’affronter une IA qui s’est entrainée à l’aide d’un algorithme basé sur le principe du MonteCarlo Tree Search.
- TicTacToe est donc le jeu du morpion du du OXO.. L’IA par MonteCarlo n’a pas été optimisée, vous pouvez gagner.
- P4 est le jeu de ‘Puissance4’ ou ‘Aligne4’. L’IA a été ici optimisée..
- JeuxLudii : utilisation de l’application et de la librairie Ludii pour le développement d’IAs basées sur MCTS.
- jeux : contient des classes java permettant à 2 joueurs de s’affronter sur le jeu du Carré, et du Surakarta. A vous de définir une IA..
Minimax et alphabeta
- alphabeta : implementation of the minimax algorithm with alpha-beta pruning in Java. The example is based on the game of TicTacToe.
- Evaluations of situations are not perfect, so the AI can be beaten. Can you improve it? ((see
evaluate method in Situation.java and/or values in SpecialSituations.java))
- alphabetaConnect4 : implementation of the minimax algorithm with alpha-beta pruning in Java. The example is based on the game of Connect4 (Puissance4)
- Evaluations of situations are not perfect, so the AI can be beaten. Can you improve it? (see
dangerValue method in Situation.java (you can also change data in DangerPattern.java))