Nous présenterons les smart rockets, une application ludique des algorithmes génétiques, appartenant à la famille des algorithmes évolutionnistes.
Ces algorithmes d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il n'existe pas de méthode exacte (ou que la solution est inconnue) pour le résoudre en un temps raisonnable.
Human Talks Lyon du 13 décembre 2016 à Zenika
Liens:
- Domaine application Marketing, détermination des meilleures implantations de sites touristiques : https://goo.gl/aCc9SJ
- Domaine application Astronautique, détection d’orbites de satellite : https://goo.gl/eauC32
- Domaines d'applications : https://en.wikipedia.org/wiki/List_of_genetic_algorithm_applications
1. GeneticioMake something of your big data
Use genetic algorithms to reach your business goals
Un algorithme génétique, à quoi ça sert?
2. Geneticio
• Autodidacte, passionné de développement.
• Java, Cassandra, Spark, JPPF.
• @jsebrien, julien.sebrien@genetic.io
• Développe et distribue des solutions IT (SaaS, On Premise)
permettant l’implémentation d'algorithmes génétiques,
permettant l’optimisation de processus métiers.
• Architecture nativement distribuée.
• Multi-plateforme (Windows, Unix, Mac), polyglotte (Java, Scala,
Python, Javascript, R).
Geneticio
Make something of your big data
Julien Sebrien
Human Talks Lyon, 13 décembre 2016
3. Domaines d’applications
• Appartiennent à la famille des algorithmes évolutionnistes.
• Permettent d'obtenir une solution approchée à un problème
d'optimisation, lorsqu'il n'existe pas de méthode exacte (ou que la
solution est inconnue) pour le résoudre en un temps raisonnable.
Geneticio
Make something of your big data
Définition
Marketing
Détermination des meilleures implantations de sites
touristiques :
https://goo.gl/aCc9SJ
Détection d’orbites de satellite :
https://goo.gl/eauC32
Astronautique
Et bien d’autres : Imagerie, Linguistique: https://en.wikipedia.org/wiki/List_of_genetic_algorithm_applications
Human Talks Lyon, 13 décembre 2016
5. Sélection
Geneticio
Make something of your big data
Plusieurs manières de sélectionner des individus existent:
proportion au score de fitness, Tournoi, Classement, etc.
Exemple Tournoi :
• Sélectionne aléatoirement 2 individus de la population.
• Génère une valeur aléatoire afin de décider si l’on sélectionne
l’individu le plus faible ou le plus fort (selon leur score).
• Ajoute l’individu choisi à la sélection courante. Les 2 individus
précédents sont ré-insérés dans la population initiale afin de
pouvoir être re-sélectionnés par la suite.
Human Talks Lyon, 13 décembre 2016
6. Croisement
Geneticio
Make something of your big data
NE N E NE S W SW E
E NE N NW W E E NW
NE N E NE S E E NW
E NE N NW W W SW E
parent 1 parent 2
enfant 1 enfant 2
1 point de croisement 1 point de croisement
Human Talks Lyon, 13 décembre 2016
7. Mutation
Geneticio
Make something of your big data
• Injecte de la diversité au sein de la population, permettant de
réduire le risque de stagner au sein d’un optimum local.
• Taux de mutation de l'ordre de 1%.
… W …
… E …
enfant 2
Human Talks Lyon, 13 décembre 2016
8. Evaluation
Geneticio
Make something of your big data
• Fonction de fitness, évaluant la qualité de chaque individu, son
adaptation au contexte du problème donné.
• Le score attribué est idéalement indépendant des autres
individus de la population.
• Primordial afin d’accroître la probabilité de convergence de
l'algorithme.
Human Talks Lyon, 13 décembre 2016
9. Terminaison
Geneticio
Make something of your big data
L’algorithme se termine si l’une des conditions de terminaison
suivantes est satisfaite:
• Un nombre maximum d’itérations de générations est atteint.
• Un candidat a un score de fitness supérieur ou égal à un seuil
préalablement défini.
• L’algorithme s’exécute depuis une trop longue durée.
• Etc.
Human Talks Lyon, 13 décembre 2016
10. Cas « Smart Rockets »
Geneticio
Make something of your big data
Modélisation:
• Une séquence de 300 vecteurs d’accélération unitaires sur un
plan 2D.
Fonction de fitness:
• Le score d’un individu sera d’autant plus élevé qu’il est proche
de la cible, à la fin de son mouvement.
• Le score d’un individu sera fortement pénalisé s’il touche
l’obstacle, au cours de son mouvement.
Score = 1/ R (avec R=distance restante par rapport à la cible) ;
si Obstacle touché, Score = Score / 10 !
Human Talks Lyon, 13 décembre 2016
13. Sélection de sites touristiques
Geneticio
Make something of your big data
Modélisation:
• Une séquence de bits, représentant la présence d’une agence
sur un site:
010100001
Human Talks Lyon, 13 décembre 2016
14. Sélection de sites touristiques
Geneticio
Make something of your big data
Fonction de fitness:
• Dépend des variables suivantes:
- Le nombre de sites touristiques.
- Le nombre de concurrents sur le territoire concerné.
- Le nombre de zones géographiques au sein du territoire concerné.
- Le nombre de catégories de ménages.
- La dépense moyenne d’un individu d’une catégorie k, pour un produit ou
service touristique.
- Le nombre de catégories de ménages de catégorie k, situés dans une zone i.
- Les mesures subjectives d’attraction d’un site j.
- Les mesures subjectives d’attraction des services proposés sur chaque site.
- Le temps de transport d’une zone i à un site j.
- Le temps de transport d’une zone i à un emplacement touristique existant.
Human Talks Lyon, 13 décembre 2016
15. Sélection de sites touristiques
Geneticio
Make something of your big data
Objectif: maximiser
Human Talks Lyon, 13 décembre 2016