Videos streaming images jeux et buzz
Connexion






Perdu le mot de passe ?

Inscrivez-vous maintenant !
Menu Principal
Communauté




Koreus
Un algorithme apprend à sauter par-dessus une balle
 1  #1
Webhamster
Inscrit: 03/07/2002 23:58
Post(s): 75202
Karma: 36893
Les différentes générations d'un algorithme qui apprend à sauter par-dessus une balle


Genetic algorithm. Learning to jump over ball.

Contribution le : 22/10/2016 18:35
Signaler

Poum45
 0  #2
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Il ne reste plus qu'à apprendre à se replacer 🙂

Contribution le : 22/10/2016 18:46
Signaler

Ethereal
 0  #3
Je suis accro
Inscrit: 26/05/2011 20:44
Post(s): 764
Karma: 878
C'est possible d'avoir plus d'infos ? Parce que là l'intérêt est assez limité.

Contribution le : 22/10/2016 20:21
Signaler

nobrain
 5  #4
Je suis accro
Inscrit: 02/02/2011 00:09
Post(s): 1552
Karma: 1369
@Ethereal le principe du systeme est simple en fait:
la "creature" est une entité qui a plusieurs caractéristiques. Des caracteristiques géometriques (ici, la forme des polygones), et des characteristiques comportementales (la suite de mouvements à effectuer pour sauter au dessus de la balle).

pour la situation de départ (generation 1), on génère une créature en remplissant au hasard toutes ses caracteristiques. On la place dans l'environnement, et on lui lance des balles pendant 1 minute.
A la fin de la session, la créature va générer des enfants. Et chaque enfant subit des mutations (on change un peu sa forme, ou son comportement, ou les deux)
à ce stade, on fait un petit bilan de la performance de la créature sur sa session: a-t-elle reussi à sauter au dessus d'une ou plusieurs balles? a-t-elle presque reussi, ou completement échoué? et on lui attribue un score le plus précis possible (ici, un bon choix serait de calculer la durée pendant laquelle elle était en contact avec la balle, multiplié par l'aire de la surface de collision. Plus cette valeur est faible, plus on monte le score)

à partir d'ici, on reproduit la même experience sur les enfants, et on observe leur score. S'ils font un meilleur score on les laisse se reproduire, sinon on les tue.
Et on recommmence, encore et encore.

au fur et à mesure du temps, donc de génération en génération, l'algorithme va converger vers un ensemble de caractéristiques qui maximisent le score: une créature qui saute au dessus de toutes les balles, pépouze.

Contribution le : 22/10/2016 20:43
Signaler

azerty
 0  #5
Je m'installe
Inscrit: 11/09/2011 18:48
Post(s): 340
Karma: 78
Citation :

@nobrain a écrit:
@Ethereal le principe du systeme est simple en fait:
la "creature" est une entité qui a plusieurs caractéristiques. Des caracteristiques géometriques (ici, la forme des polygones), et des characteristiques comportementales (la suite de mouvements à effectuer pour sauter au dessus de la balle).

pour la situation de départ (generation 1), on génère une créature en remplissant au hasard toutes ses caracteristiques. On la place dans l'environnement, et on lui lance des balles pendant 1 minute.
A la fin de la session, la créature va générer des enfants. Et chaque enfant subit des mutations (on change un peu sa forme, ou son comportement, ou les deux)
à ce stade, on fait un petit bilan de la performance de la créature sur sa session: a-t-elle reussi à sauter au dessus d'une ou plusieurs balles? a-t-elle presque reussi, ou completement échoué? et on lui attribue un score le plus précis possible (ici, un bon choix serait de calculer la durée pendant laquelle elle était en contact avec la balle, multiplié par l'aire de la surface de collision. Plus cette valeur est faible, plus on monte le score)

à partir d'ici, on reproduit la même experience sur les enfants, et on observe leur score. S'ils font un meilleur score on les laisse se reproduire, sinon on les tue.
Et on recommmence, encore et encore.

au fur et à mesure du temps, donc de génération en génération, l'algorithme va converger vers un ensemble de caractéristiques qui maximisent le score: une créature qui saute au dessus de toutes les balles, pépouze.


Intéressant, comment génère t'on les enfants ? (On prends les caractéristiques du parent + un petit peu de hasard ?)

Contribution le : 22/10/2016 22:03
Signaler

Madoss
 0  #6
Je suis accro
Inscrit: 29/10/2008 14:39
Post(s): 610
Citation :

@azerty a écrit:

Intéressant, comment génère t'on les enfants ? (On prends les caractéristiques du parent + un petit peu de hasard ?)


bah tu mets tout dedans !!!

Contribution le : 22/10/2016 22:14
Signaler

lvishd
 0  #7
Je poste trop
Inscrit: 28/11/2010 19:49
Post(s): 12664
Karma: 5543
Citation :

@Madoss a écrit:
Citation :

@azerty a écrit:

Intéressant, comment génère t'on les enfants ? (On prends les caractéristiques du parent + un petit peu de hasard ?)


bah tu mets tout dedans !!!

Et après, papa, il pousse la graine bien au fond avec sa b*te 😃

Contribution le : 22/10/2016 22:24
Signaler

Ethereal
 0  #8
Je suis accro
Inscrit: 26/05/2011 20:44
Post(s): 764
Karma: 878
@nobrain Merci beaucoup pour ta réponse. Donc la suite de mouvements est prédéfinie et les enfants générés au hasards, et ceux qui ont les meilleures caractéristiques sont sélectionnés ?

Contribution le : 22/10/2016 22:32
Signaler

nobrain
 2  #9
Je suis accro
Inscrit: 02/02/2011 00:09
Post(s): 1552
Karma: 1369
@azerty @Ethereal difficile d'être catégorique avec le peu d'info qu'il donne sur la vidéo. Les deux scénarios sont possible, mais vu la régularité des boules je pense en effet que c'est toute la séquence de mouvements qui est mémorisée en tant que caracteristique. Dans cette approche, l'individu trouve une solution et l'apprend par coeur sans chercher plus loin. Si tu prends le meilleur et que tu le mets dans un environnement qui envoie les balles à un rythme différent, il sera baisé parce que la balle n'intervient pas dans sa reflexion (il apprend juste une choregraphie viable sur 1 minute dans cet environnement precis).

l'autre solution possible est plus compliquée à mettre en oeuvre, mais beaucoup plus efficace: ca impliquerait de doter l'individu d'une forme de perception de son environnement. Concretement, il verrait venir les balles et agirait en conséquence (c'est ce qu'on peut voir avec marI/O par exemple). Une IA sur ce modèle serait donc parfaitement capable d'eviter les balles même si on décide de les envoyer toutes les 3 secondes au lieu de toute les 2 secondes

Dans les 2 cas, à chaque nouvelle génération on modifie juste un peu les caractéristiques (les gènes, d'où le terme d'algorithme génétique).

Apres, il existe des milliers d'approches possibles pour determiner les enfants viables et les mutations. On n'est pas obligé de selectionner que le meilleur enfant, on pourrait aussi décider de selectionner des groupes de 3 enfants et de prendre le meilleur dans chaque groupe. Ca coute plus cher en calcul mais ça donne un meilleur brassage génétique

Contribution le : 22/10/2016 23:06
Signaler

Nwc-Vincent2
 0  #10
J'aime glander ici
Inscrit: 22/05/2011 16:21
Post(s): 5370
Karma: 154
C'est dingue y'a rien jusqu'à la génération 75 😃

Contribution le : 22/10/2016 23:15
Signaler

 0  #11
Fantôme
on peut exécuter cet algorithme en ligne

boxcar2D est le plus connu :
http://boxcar2d.com/

Contribution le : 23/10/2016 00:00
Signaler

Skity
 0  #12
Je masterise !
Inscrit: 29/12/2013 23:48
Post(s): 2024
Karma: 521
@nobrain Très intéressant 😉 Merci pour l'explication 🙂

Contribution le : 23/10/2016 01:44
Signaler

Djoach
 0  #13
Je masterise !
Inscrit: 13/08/2008 11:42
Post(s): 4082
Karma: 2515
Génération T^1000 :

ipfs QmYkFLBUWAURjMCxWYMyTXHPcjEN4u38jTb12fYhfED31b

Contribution le : 23/10/2016 01:45
Signaler


 Haut   Précédent   Suivant






Si vous êtes l'auteur d'un élément de ce site, vous pouvez si vous le souhaitez, le modifier ou le supprimer
Merci de me contacter par mail. Déclaré à la CNIL N°1031721.