Question

Je cherche une application pratique pour utiliser un algorithme génétique. Certaines choses qui ont pensé à sont:

  • Optimisation de l'interface du site Web
  • Optimisation du véhicule avec un simulateur physique
  • Programmation génétique
  • Génération automatique de scénarios de test

Mais personne ne m'a vraiment échappé. Donc, si vous aviez du temps libre (quelques mois) à consacrer à un projet d’algorithmes génétiques, à quoi choisiriez-vous de vous attaquer?

Était-ce utile?

La solution

Un des domaines offrant de nombreuses possibilités consiste à utiliser des algorithmes évolutifs pour élaborer des stratégies de jeu. Les gens ont utilisé evolution pour générer des stratégies de poker, de dames, de jeux de hasard et autres. Les utilisateurs de J-GAP ont utilisé la programmation génétique pour faire évoluer les bots de Robocode .

J'ai récemment publié un article d'introduction sur le calcul évolutif. Il inclut des détails sur certaines des choses pour lesquelles les algorithmes évolutifs ont été utilisés. Adam Marczyk a également écrit un excellent article avec de nombreux exemples. Le blog de Genetic Argonaut contient des dizaines de liens vers des projets évolutifs intéressants.

Un système de classificateur d'apprentissage est un type d'algorithme moins courant. Ceci développe un ensemble de règles pour classer les entrées. Il peut être appliqué au même type de problèmes que ceux utilisés pour les réseaux de neurones. Il pourrait être intéressant de développer un SCL pour un problème particulier, comme tenter de prédire les résultats sportifs en fonction de la forme.

Autres conseils

Vous pourriez être intéressé par quelque chose comme de Roger Alsing Mona Lisa

Je considère les structures de lego en évolution de loin les plus performantes. projet de jouet intéressant pour GA.

http://static.23.nu/md/Pictures/ZZ099735B6.jpg

J'ai lu quelque chose de similaire à celui proposé dans la question relative à la génération automatique de scénarios de test. En fait, c'était assez opposé. Vous spécifiez des cas de test et laissez ensuite un algorithme (programmation génétique) créer le code qui réussira. De cette façon, vous fournissez des spécifications et vous créez votre programme. Si vous en cherchez un peu, vous pouvez trouver des études à ce sujet.
Je trouve cette idée très intrigante. Bien sûr, personne ne créerait une telle application, mais c’est un excellent domaine d’étude.

Peut-être trouver une visite de voyageur de commerce . J'ai récemment essayé de trouver une promenade à pied dans quelque 66 lieux parisiens et j'ai trouvé coder toutes ces choses très amusant. Je pensais que mon enthousiasme provenait de deux sources: le fait que je pouvais dessiner les tournées (une bonne chose également à propos de l’idée de Mona Lisa, ou si vous aimez l’ingénierie, les structures de Lego) et le fait qu’il existe de nombreuses approches possibles. comparer:

  • Vous pouvez utiliser des méthodes heuristiques simples, telles que "commencer quelque part et toujours aller à l'emplacement non visité le plus proche".
  • Vous pouvez utiliser des méthodes heuristiques plus complexes, telles que "continuer à ajouter des bords (n'importe où) dans l'ordre en augmentant les coûts", sauf si cela entraînait la formation de trois bords sur un sommet ou un cycle plus petit ".
  • Vous pouvez utiliser des algorithmes d'approximation, tels que un algorithme facile basé sur des arbres de recouvrement minimaux si vos coûts satisfont l'inégalité du triangle. En prime, vous pouvez coder des arbres minimum (peut-être même y utiliser des GA, malgré la disponibilité d’algorithmes exacts rapides et faciles). Si vous vous sentez confiant, vous pouvez coder l'algorithme de approximation le plus difficile (3/2) basé sur des arbres de recouvrement minimaux et des correspondances parfaites.
  • Si vous organisez une tournée de voyageur de commerce et que celle-ci se croise, vous pouvez l’améliorer en la "décroisant". Là encore, cela suppose certaines conditions pour la fonction de coût.
  • Vous pouvez même essayer de trouver vous-même un circuit et voir si vous pouvez battre votre ordinateur.
  • Dernier point, mais non le moindre, les algorithmes génétiques! Le problème convient très bien aux AG car il existe une fonction de mise en forme très claire et un moyen très simple de recombinaison.

Il a été utilisé dans des synthétiseurs complexes pour générer des patchs sonores (par exemple, le Clavia Nord Modular G2 ) Je l’essayerais également pour d’autres machines, je pense au Yamaha DX7, mais j’imagine qu’il existe de nombreuses alternatives logicielles. Ou génération d'images.

Découvrez la théorie des algorithmes de correctifs dans un article de Palle Dahlstedt . Il semble être en panne pour le moment cependant ...

Les algorithmes génétiques sont bien adaptés à l’optimisation et à la planification. Un exemple serait la planification d'un ensemble de machines, avec des pièces et des opérateurs au fil du temps pour effectuer un ensemble de tâches. Bien que ce ne soit probablement pas le projet le plus excitant, il aurait des applications concrètes.

Je me suis amusé à jouer avec le jeu de la vie et les algorithmes génétiques de Conway,
essayer de faire évoluer les formes de vie avancées .. Vous ne savez pas si cela vous occupera pour
plusieurs mois cependant ..

Je pense avoir vu la mention de un projet à utiliser pour tenter de trouver le meilleur la disposition du clavier serait - pour "battre Dvorak", comme c'était. : D

Au collège, j’ai fait la minimisation de fonctions multidimensionnelle .. disons que vous avez af (x) qui prend les paramètres x1, x2, x3, ..., xn et génère une valeur Y .. vous devez trouver les paramètres x1, .., xn tel que Y = Y1 .. pas si difficile .. moyen intéressant d'apprendre néanmoins. Bien que Nedlermead soit bien plus efficace, il n’est pas enclin à rester coincé dans les minimas locaux.

Générez des compositions musicales! Lisez à propos de David Cope et de son programme Emily Howell.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top