Quelque chose d'assez gênant dans l'informatique évolutive est que les concepts légèrement différents et qui se chevauchent ont tendance à choisir des noms de manière spectaculaire. Ma dernière confusion à cause de cela est que la programmation d'expression génique semble très similaire à la programmation génétique cartésiennes. p>
3 Réponses :
Eh bien, il semble qu'il existe une différence entre la programmation d'expression génique (GEP) et la programmation génétique cartésienne (CGP ou ce que je considère comme classique em> programmation génétique), mais la différence pourrait être plus excitée que ce qui devrait être vraiment. Veuillez noter que je n'ai jamais utilisé GEP, alors tous mes commentaires sont basés sur mon expérience avec CGP. P>
Dans CGP, il n'y a aucune distinction entre le génotype et un phénotype, en d'autres termes, si vous regardez les "gènes" d'un CGP, vous examinez également leur expression. Il n'y a pas de codage ici, c'est-à-dire que l'arbre d'expression est le gène lui-même. P>
dans GEP Le génotype est exprimé dans un phénotype, donc si vous regardez le GENES Vous ne saurez pas facilement à quoi ressemblera l'expression. L'inventeur "de GP, Cândida Ferreira, a écrit un vraiment bon papier A et il y a des Autres ressources qui essaient de donner un aperçu plus court de tout le concept. p>
Ferriera dit que les avantages sont "évidents", mais je ne vois vraiment rien qui rendrait nécessairement le GPP mieux que le CGP. Apparemment, GEP est multigénique, ce qui signifie que plusieurs gènes sont impliqués dans l'expression d'un trait (c'est-à-dire un arbre d'expression). Dans tous les cas, la condition physique est calculée sur l'arbre exprimé. Il ne semble donc pas que GEP fait quelque chose pour augmenter la forme physique. Ce que l'auteur affirme que le GEP augmente la vitesse à laquelle la condition physique est atteinte (c'est-à-dire en moins de générations), mais franchement, vous pouvez voir des changements de performance spectaculaire d'un CGP juste en ayant un algorithme de sélection différent, une structure de tournoi différente, une structure de tournoi différente, la scission de la Population en tribus, des spécimens migrateurs entre tribus, y compris la diversité dans la forme physique, etc. p>
Sélection: strong> p>
Fréquence du tournoi: strong> p>
tribus strong> Ce ne sont que quelques-unes des choses qui peuvent affecter grandement la performance d'un CGP et quand je dis grandement, je veux dire que c'est dans le même ordre ou plus grand que la performance de Ferriera. Donc, si Ferriera ne brignait pas trop avec ces idées, elle aurait pu avoir beaucoup plus de performances plus lentes du CGPS ... surtout si elle n'a rien fait pour lutter contre la stagnation. Je ferais donc attention lorsque vous lisiez des statistiques de performance sur le GEP, car parfois des personnes ne comptaient pas en compte toutes les "optimisations" disponibles là-bas. P>
Une population peut être divisée en tribus qui évoluent indépendamment de l'autre: p>
Incorporer la diversité dans la condition physique, où vous comptez combien d'individus ont la même valeur de condition physique (sont donc susceptibles d'avoir le même phénotype) et que vous pénalisez leur condition physique par une valeur proportionnelle: plus les personnes ayant la même valeur de condition physique, plus la peine de fitness ces personnes. De cette façon, les échantillons avec des phénotypes uniques seront encouragés, donc il y aura beaucoup moins la stagnation de la population. P>
Cette réponse n'est pas correcte. Cartesian GP n'est pas la même chose que le GP classique. Cartesian GP a également une représentation indirecte (de la même manière au GEP) et n'est pas basée sur des arbres, même si vous finissez par construire un graphique similaire à un arbre GP classique.
En général, GEP est plus simple du GP. Disons que vous autorisons les nœuds suivants dans votre programme: constantes, variables, +, -, *, /, si, ... Pour chacun de ces nœuds avec GP, vous devez créer les opérations suivantes: - randomise - subir une mutation - Crossover - et probablement d'autres opérateurs génétiques aussi bien p>
dans GEP Pour chacun de ces nœuds, une seule opération est nécessaire pour être implémentée: désérialisze, qui prend des numéros (comme Double en C ou Java) et renvoie le nœud. Il ressemble à une désérialisation de l'objet dans des langues telles que Java ou Python (la différence est que la désérialisation dans les langages de programmation utilise des tableaux d'octets, où nous avons ici des matrices de chiffres). Même cette opération «désérialisation» ne doit pas nécessairement être mise en œuvre par le programmeur: elle peut être mise en œuvre par un algorithme générique, tout comme elle est faite dans la désérialisation Java ou Python. P>
Cette simplicité d'un point de vue peut effectuer la recherche de la meilleure solution moins réussie, mais de l'autre côté: nécessite moins de travail à partir de programmeur et d'algorithmes simples peut exécuter plus rapidement (plus facile à optimiser, plus de code et de données dans le cache de la CPU, et bientôt). Je dirais donc que GEP est légèrement meilleur, mais bien sûr, la réponse définitive dépend du problème et de nombreux problèmes que le contraire peut être vrai. P>
Il semble y avoir une certaine confusion dans ces réponses qui doivent être clarifiées. GP cartésien est différent du GP classique (aka GP arborescente) et GEP. Même si elles partagent de nombreux concepts et se inspirer des mêmes mécanismes biologiques, la représentation des individus (les solutions) varie. P>
CGP la représentation (correspondance entre le génotype et le phénotype) est indirect, en d'autres termes, pas tous les gènes dans un génome CGP sera exprimé dans le Phenome (un concept trouvé aussi dans GEP et bien d'autres). Les génotypes peuvent être codées dans une grille ou un réseau de noeuds, et le graphique de programme qui en résulte est l'expression de noeuds actifs seulement. P>
GEP la représentation est également indirecte, et pas non plus tous les gènes seront exprimés en le phénotype. La représentation dans ce cas est très différent de treeGP ou CGP, mais les génotypes sont également exprimés dans un arbre de programme. Dans mon GEP d'opinion est une représentation plus élégante, plus facile à mettre en œuvre, mais souffre aussi de quelques défauts comme: vous devez trouver la taille de la queue et la tête appropriée qui est spécifique de problème, la version mnltigenic est un peu d'une colle forcée entre les arbres d'expression , et enfin il a trop ballonnement . p>
Indépendamment dont la représentation peut-être mieux que l'autre dans un certain domaine de problème spécifique, ils sont à usage général, peuvent être appliqués à un domaine aussi longtemps que vous pouvez l'encoder. P>