Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » Concours d'IA : 1ère édition
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Concours d'IA : 1ère édition

Posté le 07/02/2014 20:42

Bonjour à tous et à toutes, casiofans !
Pour la première fois sur Casio, j'ai le privilège de vous annoncer le commencement d'un nouveau style de concours : le combat d'intelligences artificielles !



pour la petite histoire
et oui !
Il y a 2 ans, je me lançais avec Ne0tux dans un concours d'IA, nous avions déjà bien avancé quand le bac puis de la prépa de ce dernier ne nous laissa pas le temps de le finir...
Suite à un crash de mon ordi, je perdit tous les squelette de jeux qu'on avait programmé, ce qui arrêta définitivement notre projet, mais aujourd'hui suite à une discussion avec Limachi et vu l'engouement que provoque Prologin, je pense qu'il est l'heure de remettre à jour ce projet.
(D'ailleurs Neo' a réussi à retrouver le squelette d'un programme et la belle image que vous avez quand vous lancez le programme.)


Tout d'abord qu'est ce qu'une IA (intelligence artificielle) ?
Wikipédia nous explique un peu ce que c'est mais je vais vous simplifier l'histoire.

Le but d'une IA est de faire réfléchir l'ordinateur, en l’occurrence la calculatrice, comme un humain l'aurait fait.
Pour ce faire, vous allez devoir apprendre à gérer l'algorithmie.

Je vois déjà quelques visages interrogateurs "Qu'est ce qu'il est en train de me raconter celui-là"
Et bien, en fait, c'est beaucoup plus simple que ça n'en a l'air.
Si vous avez le courage, vous verrez que dans 5 minutes, tout sera déjà beaucoup plus clair dans votre esprit et vous serez fin prêts pour débuter le concours.

Voici comment se déroule une étape du concours :

1) Je sors le "squelette" du programme, c'est moi qui gère tout l'aspect graphique du programme, les menus...
2) Je vous propose également un fichier vide, que vous devrez remplir avec votre IA.
3) Toutes vos IA se battent l'une contre l'autre et un certain nombre de points vous est attribué en fonction de vos résultats.


Parlons dès à présent du "comment" d'une intelligence artificielle. J'utiliserai dans cet exemple un jeu de morpion :
Une première approche d'une IA est de la coder en conditions préférentielles. Je m'explique, vous devez lui indiquer en fonction de la situation, ce qu'elle doit d'abord faire, puis ensuite cela, si elle ne peut pas faire la première action.
Exemple du morpion:
1) Regarder si vous pouvez gagner.
2) Vérifier que l'autre ne peut pas gagner.
3) Trouver quel est le meilleur coup à jouer.

Facile à dire hein mais un peu moins à faire

Comment vérifier si vous pouvez gagner : c'est très simple, il suffit de regarder si deux de vos pions ne sont pas mis l'un a côté de l'autre et si la troisième case est vide (pareil pour vérifier si l'autre ne peut pas gagner).
Par après la partie (un peu) plus dure consiste à trouver quel est le coup le plus avantageux pour vous. Mais je suis sur que vous allez vous en sortir
Avec un peu de réflexion, je suis sur que vous trouverez plein d'idées auxquelles je n'aurais même pas pensé.

Il vous suffit ensuite de ne retourner à la fin de votre programme que la valeur de deux variables, A et B qui seront les coordonnées de votre coup stocké dans une matrice ( mat B[ B , A ] ).


Parlons dès à présent du concours en lui-même :

- C'est un concours qui se déroule sur une année entière.
- Tous les deux mois, un nouveau squelette de programme vous est proposé.
- Vous avez deux semaines pour remettre votre intelligence artificielle.
- Vous n'êtes pas obligé de participer à tous les éditions pour gagner un prix à la fin de l'année.
- Chaque participation vous rapportera plus ou moins de points en fonction de vos résultats et un classement sera établi à partir de ces points.
- Le concours est exclusivement en Basic pour toucher plus de monde et pour vous obliger à réfléchir à quelle IA est la plus rapide et comment l'optimiser au lieu de faire une méthode bourrin en C.
- Quand vous êtes satisfait de votre IA, vous pouvez l'envoyez à Email address, replace the 【arobase】 with a @ and ▶ with a . : btlcasio【arobase】gmail▶com
vous aveez le droit de me l'envoyer plusieurs fois, si vous vous rendez compte que vous vous êtes trompé, mais ne me spammez pas non plus.

Critères de notations :

1.5 point pour le niveau de programmation
1 point pour l’optimisation du code
1 point pour absence de bugs
2 points pour la rapidité
2 points pour l’efficacité contre une autre IA
2.5 points pour l’efficacité contre un joueur humain

Si, vous vous demandez pourquoi j'ai décidé de favoriser l'efficacité contre des joueurs humains, est que :
Imaginons que toutes les IA soient globalement mauvaises (on ne l'espère pas), la moins mauvaise gagnerait plus de points et auraient à la fin un plutôt bon score alors qu'elle ne le mérite pas vraiment au vu de ses performances contre des personnes réelles.


J'espère que vous êtes aussi motivés que je le suis et que vous allez nous pondre des IA de qualité.

Pour cette première édition :

Vous avez 2 semaines (donc jusqu'au 22/02/2014) pour écrire une Intelligence Artificielle du jeu du morpion (ou OXO) qui sera écrite dans le programme OXOIA et qui renverra A et B, comme les coordonnées du coup de votre IA.
Le fichier contenant le programme OXO, OXOIA, la picture 2 et 3 est dans le fichier joint.
Attention à ne pas changer la matrice B, pour le bon déroulement du jeu. Vous êtes libres d'utiliser tout ce qui est autres matrices, str, list, fn,variables... mais faites attention au fait que ces données peuvent être modifiées par les autres joueurs aussi. Sauf les variables C, H, U, M, N, r !

Pour le menu du squelette, les cases vides à gauche et à droite, contiendront les IA quand elles auront été programmées.

participants :
- Positon
- Totoyo
- BTL
- Tenmatx
- Limachi
- Julien_1
- Javierxd
- Nemhardy
- Kirafi
- Pie3636
- Eltoredo
- Dark Storm
- Thomatos
- Maliafo
- Drac0300

...

N'hésitez pas à participer, il ne faut pas forcément être très bon en programmation, il faut juste savoir réfléchir et réussir à faire réfléchir votre calculatrice.
Je compte sur vous pour participer en masse et ainsi créer le plus gros combat d'IA jamais programmé sur CASIO !

Si vous avez des questions, n'hésitez pas à les poser, je répondrai volontiers (et je ne serai pas le seul).

BTL

Fichier joint


Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Suivante
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

Citer : Posté le 11/02/2014 14:33 | #


Dans les 5 pages de commentaires, il y a plusieurs exemples pour savoir quel joueur joue, dans sur cette même page. Donc oui, ton IA peut savoir si elle est le joueur 1 ou 2

Ajouté le 11/02/2014 à 14:35 :
Limachi a écrit :
Compter les tours (comme propose Totoyo) n'est pas faisable dans le cas ou l'IA joue pour la 2ème fois (ou +ième fois) et les quantité de pions sur le plateau sont identiques (on peut avoir un 1 et 2 et donc l'IA ne peut pas savoir qui elle est)

En supposant que le joueur 1 joue toujours en 1er, si le nombre de coups total est pair alors c'est au tour du joueur 1, s'il est impair, c'est au joueur 2.
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 11/02/2014 18:47 | #


Le premier joueur à jouer, il met des 1 ou des 2 dans la matrice ?
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 11/02/2014 21:16 | #


Btl a écrit :
je suis sur que passer d'un morpion à un algorithme polynomial en O(n^k) à k fixé...


MAIS NON!!! Je ne demande pas de résoudre le problème P=NP!!! (50 ans de recherche vaine et 1'000'000$ à la clé...)
Ni de faire des gros trucs d'informatique théorique! Evidemment!

Je dis que ce serait marrant de voir comment les gens se débrouilleraient avec des problèmes NP-complets à approximer, DONC par exemple: une IA qui joue à Tetris!

On peut aussi l'étendre au TAS (Tool Assisted Speedrun) c'est un peu dans la même veine!

Tu peux même réutiliser des jeux existants sur PC!

(t'as du me prendre pour un malade en fait... )
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

Citer : Posté le 11/02/2014 21:22 | #


BTL, on a le droit d'y répondre ? (message de Cartix)

Totoyo a écrit :
J'ai terminé mon IA, elle gère toutes les combinaisons possibles (verticales, horizontales et diagonales) et est à la fois offensive et défensive, avec une priorité sur l'attaque. Elle pèse 468 octets (dont les 32 de base)

Maintenant, elle ne fait plus que 400 octets (dont les 32 de base), j'ai optimisé quelques trucs et supprimé un gros bloc inutile !

Par contre, elle n'a pas de vision sur le long terme (2 tours ou plus). Si j'en ai le temps, je lui apprendrai une ou deux stratégies sympa.
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 11/02/2014 21:48 | #


Alex_1186, tu as mal interprété le message de Btl
Quand il parlait de "passer" d'une intelligence artificielle de morpion à un algorithme polynômial, il ne parlait pas de résoudre le problème avec cette histoire de P=NP, il voulait simplement souligner la transition que tu as effectué pendant le débat entre une I.A. en basic toute conne et des concepts mathématiques plus avancés.
Et cela justifie tout autant sa remarque :
Btl a écrit :
@Alex, je suis sur que passer d'un morpion à un algorithme polynomial en O(n^k) à k fixé va enchanter la communauté, à qui j'essaie de montrer que l'algorithmique n'est pas si dur et peut être très amusante.
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 11/02/2014 22:56 | #


@Cartix, elle met des 2... mais on n'arrête pas de le dire depuis 5 pages... (après je comprends que tu n'ais pas tout lu)

@Alex, bien sur que je me rendais compte que tu ne parlais pas de créer un algorithme polynomial en O(n^k) à k fixé, mais son approximation.
Mais, comme l'a dit Positon, c'est monter un peu trop vite dans les étapes et que je vais monter un peu plus graduellement, pour perdre un minimum de monde. Quand tout le monde sera pro (hum), on pourra alors tenter des trucs free-style dans ton genre.
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 11/02/2014 23:40 | #


Ça a l'air très intéressant, je participe ,mais c'est quand la date limite?
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 12/02/2014 00:22 | #


Btl a écrit :
Vous avez 2 semaines (donc jusqu'au 21/02/2014)

On est vraiment nombreux là, je crois qu'on bat le record des 48h CPC non?
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 12/02/2014 06:28 | #


En même temps on a un peu plus de temps
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 12/02/2014 17:42 | #


Btl Bah... Il suffit de pas leur dire... Evidemment présenté avec tout le cadre formel ça fait peur, c'est logique!
(surtout: QUI sur le site sait ce qu'est un "O(...)" ??? A part ceux qui sont en prépa...?)

Si si j'avais bien interprété ton message alors, mais je voyais juste pas pourquoi tu te formalisais avec toutes ces histoires de polynômes!

Il fallait comprendre:
Alex_1186 a écrit :
OLOL Tetris ça s'rait cool!!!

Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 12/02/2014 18:13 | #


Alex_1186 a écrit :
(surtout: QUI sur le site sait ce qu'est un "O(...)" ??? A part ceux qui sont en prépa...?)

C'est marrant que tu dises ça, parce que c'est justement la raison pour laquelle ça va les faire fuir
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 12/02/2014 20:43 | #




Meuh non, ya vraiment pas de quoi !

Alex, le coup de stocker toutes les possibilités, c'est faisable en deux matrices (un peu larges tout de même) !
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 12/02/2014 21:00 | #


Ne0 Oui mais c'est surtout que ça marche pas...
(288000 feuilles quand même...)

Non j'aurais plutôt pensé à recréer l'arbre moi-même à chaque coup... (je sacrifie ma complexité temporelle au profit de la complexité spatiale!)

Mais bref, c'est pas au point, parce que même en Caml ça donne des mauvais résultats, je sais pas pourquoi...
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 13/02/2014 00:58 | #


Alex_1186 a écrit :
(surtout: QUI sur le site sait ce qu'est un "O(...)" ??? A part ceux qui sont en prépa...?)

Je suis pas en prépa et je connais O(...), il suffit d'être intéressé par la programmation pour connaitre des choses pareilles, nôtre niveau scolaire et nôtre orientation scolaire n'est pas nôtre seule limite de connaissance.

Pour faire simple, pour ceux qui ne savent pas ce qu'est O(...), c'est une façon d'écrire le temps de résolution d'un calcul par un algorithme, ou en mathématique, la croissance d'une fonction.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 13/02/2014 14:09 | #


Je t'ai rajouté Javierxd

Et on va peut-être clore le HS du jeu de tetris (O(...)), en disant que c'est une bonne idée auquel il va falloir qu'on réfléchisse, mais que dans tout les cas, ce ne sera pas pour tout de suite.
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Alex_1186 Hors ligne Membre Points: 1215 Défis: 46 Message

Citer : Posté le 13/02/2014 14:42 | #


(bah oui, faut pas prendre au sérieux ce que je dis... C'était juste pour vous expliquer la raison de cette suggestion...
Désolé de vous avoir fait si peur! )
Projets que je soutiens
Projets que je soutiens
Robscape 2 de Ray
Les tests vidéo de Marmotti
Mes projets
Mes projets
Une dizaine de projets top secrets...

Timeless Remix Airwolf
"And the dream will never die..."
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 13/02/2014 19:02 | #


La mienne est prête .
Le hasard n'existe pas...
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 13/02/2014 19:23 | #


La mienne est presque prête, il reste un bug bizarre, elle détecte quand la partie est finie (ce que le squelette ne fait pas XD), elle refuse de remplir la dernière case quand un joueur a déjà gagné
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 13/02/2014 19:27 | #


Tu nous mets le code en fichier joint pour qu'on puisse voir ?
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 13/02/2014 21:05 | #


La mienne aussi est prête, je l'enverrai demain si aucun bug n'est trouvé. Pour l'instant j'ai 100% de matchs nul en I.A. versus I.A. et je suis incapable de gagner contre elle.
Elle fait 1172 octets (hé oui).
Mais elle connaît trois stratégies usuelles, qu'elle est également capable de contrer 8)
Et ce avec un temps d'attente raisonnable.
D'ailleurs il se trouve que j'ai parlé un peu vite puisqu'elle utilise la liste 24 pour son plan
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 76 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd