Question

J'ai trouvé ce très cool C ++ échantillon , littéralement le « Bonjour tout le monde ! » des algorithmes génétiques.

J'ai décidé de recoder la chose entière en C # et cette est le résultat.

Maintenant, je me demande: est-il une application pratique dans le sens de la génération d'une chaîne cible à partir d'une population de chaînes aléatoires

EDIT : mon copain sur twitter juste tweeté que "est utile pour les choses de type de transcription tels que la traduction ne doit pas être Singe de." . Je voudrais avoir un indice.

Était-ce utile?

La solution

  

Y at-il une application pratique dans le sens de la génération d'une chaîne cible à partir d'une population de chaînes aléatoires?

Bien sûr. Imaginez un scénario dans lequel vous savez comment évaluer l'aptitude d'une chaîne particulière, et dans lequel les choix sont discrets et contraintes d'une certaine façon:

  • Choisir des noms prononçables ( "Xhjkxc" a une faible remise en forme, "Artekzo" a une grande remise en forme)
  • Essayer une série de mouvements d'échecs
  • Deviner la combinaison à un coffre-fort, supposant que vous pouvez dire à quel point vous êtes proche de déverrouiller chaque gobelet
  • Choisir les numéros de téléphone qui évaluent à des mots (par exemple « 843-2378 » a une grande remise en forme, car il épelle « THE-BEST »)

Autres conseils

Non. Chaque fois que vous exécutez l'AG, vous lui donnons la réponse éventuelle. Ce qui est excellent pour montrer comment un GA fonctionne et de montrer comment il peut être puissant, mais il n'a aucun but au-delà.

Vous pouvez écrire un EA qui écrit le code dans un langage dynamique comme IronPython dans le but de créer du code qui a) exécute sans se briser et b) analyse le marché boursier et achète intelligemment et vend stock.

C'est un développement très simpliste de ce qui serait nécessaire, mais il est possible. Vous auriez besoin d'un hôte qui offre beaucoup de méthodes pour le code IronPython (indicateurs techniques, etc.) et une base de données de tiques.

Il serait également intelligent de ne pas simplement générer un ancien code aléatoire, de peur que vous formatez votre disque dur. Vous avez besoin d'un bac à sable, et vous devez limiter les espaces de noms qui sont atteignables, et vous devrez fournir une limite de temps pour éviter des boucles infinies. Vous pouvez également fournir des directives Symantic qui lui permettent de choisir des mots clés approuvés appropriés au lieu de simplement corder des lettres au hasard ensemble -. Ce permettrait d'accélérer considérablement l'évolution

Alors, je participais à un projet qui a tout fait, mais l'évaluation environnementale. Nous avions une antenne parabolique qui a obtenu stock en temps réel les tiques du NASDAQ, un service de négociation qui avait une API, et une décision primitive rendant « cerveau » qui a pris des décisions que les tiques sont entrés.

Malheureusement, l'un des partenaires flippé, quitter son emploi, fourchue le projet (a obtenu son propre plat, etc.), et a commencé le commerce avec la logique qui était pas prête. Il a perdu beaucoup d'argent. Il se trouve que pour certaines personnes, ce type de projet est seulement un pas de jeu commun. Mais de toute façon, le projet genre de long feu après. L'évolution de la partie logique est le chaînon manquant cependant. Et je sais qu'il ya des gens là-bas qui font ce genre de chose.

Je l'ai utilisé GA en 2 problèmes de recherche de la vie réelle.

L'un était un problème d'optimisation de puissance (maximiser nombre d'appareils sous tension, répondant à la contrainte de puissance disponible et garantie de service pour chaque appareil)

Une autre est pour l'optimisation de réseau radio, ce qui maximise la zone de couverture d'un budget d'équipement fixe

GA a un inconvénient principal, il travaille habituellement avec une vitesse génétique afin de l'utiliser dans certains projets en fonction du temps sérieux est assez risqué.

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