L'algorithme génétique et ses applications possibles - page 3

 
Igor Makanu:

Il convient, en mode d'optimisation génétique par "Maximum du critère de l'utilisateur" GA du testeur maximisera le résultat obtenu par le double OnTester() - tout fonctionne, mais il y a un problème dans l'automatisation "pour remonter GA" quand il commence à converger autour du maximum local trouvé et ne veut pas chercher d'autres variantes par les paramètres d'entrée, en général dans le réglage fin GA doit aider en ajoutant des conditions à OnTester() ou en divisant les paramètres d'optimisation en plusieurs intervalles

Au fait, comment le mettre en œuvre ? J'ai aussi commencé à penser à le faire de cette façon.

Tag Konow:
Vous voulez dire "intelligent" - optimisé et adapté à un certain environnement ?

Eh bien, oui, la sélection est toujours effectuée selon un certain critère. D'ailleurs, le critère lui-même peut changer avec les générations, si nécessaire.

 
Реter Konow:
Vous voulez dire "intelligent" - optimisé et adapté à un environnement particulier ?

OK. Créer un environnement fermé, à partir d'un complexe de systèmes en interaction. Par exemple : les individus à trois gènes "dévorent" (s'attachent à eux et grandissent) les individus à deux gènes s'ils ne peuvent pas leur "échapper" (disons que les gènes X et Y sont des coordonnées sur le plan). L'individu à trois gènes se voit ajouter un gène Z - la troisième dimension. Il a un avantage. La tâche de l'individu à deux gènes est de survivre et de ne pas être attrapé, et la tâche de l'individu à trois gènes est d'attraper l'individu à deux gènes aussi vite que possible et d'économiser du temps et des ressources.

Le but : l'individu génétiquement plus faible doit calculer celui qui est génétiquement plus fort pour survivre.
Nous le savons - un individu trigénique "voit" un digénique dans l'avion, comme un oiseau voit une souris dans un champ, et un digénique perçoit tout en deux dimensions, et n'est donc pas conscient de l'approche de l'ennemi avant le dernier moment. Cependant, dans un grand groupe, il y a beaucoup d'individus bi-génétiques et chacun d'entre eux capture les événements de dévoration de ses membres de la tribu - où et quand ils ont été capturés. Ainsi, les dvigens peuvent former des "perceptions" généralisées - l'expérience et les connaissances acquises par toutes les générations sur les obstacles naturels dans l'espace tridimensionnel dont disposent leurs ennemis et sur la meilleure façon de s'adapter pour survivre.
 
Aleksey Mavrin:

Au fait, comment mettez-vous cela en œuvre ? J'ai aussi commencé à penser à le faire de cette façon.

il est habituel de travailler avec le testeur - d'abord vous définissez tous les paramètres pour l'optimisation, puis vous testez jusqu'au moment où le testeur commence à dessiner des lignes horizontales à chaque passage - c'est un signe que GA a convergé autour d'un maximum local, puis vous voyez dans l'onglet d'optimisation quels paramètres GA a cessé de changer, et ensuite l'optimisation suivante s'exécute, en cassant ces paramètres (que GA ne change pas) sur d'autres intervalles, bien qu'il soit souvent suffisant de redémarrer le testeur en supprimant (sauvegardant) les caches d'optimisation - GA est initialisé accidentellement.

 
Igor Makanu:

il est habituel de travailler avec le testeur - d'abord vous définissez tous les paramètres pour l'optimisation, puis vous avez testé jusqu'au moment où le testeur commence à dessiner des lignes horizontales à chaque passage - c'est un signe que GA a convergé autour d'un maximum local, puis vous voyez dans l'onglet d'optimisation quels paramètres GA a arrêté de changer et ensuite les prochaines optimisations vous cassez ces paramètres (que GA ne change pas) sur d'autres intervalles, bien qu'il soit souvent suffisant de redémarrer le testeur en supprimant (en sauvegardant) les caches d'optimisation - GA initialise

Je pense que GA devrait converger vers un maximum général (et non local) si le pas de changement des paramètres est suffisamment faible. Si le pas est trop élevé, la modification de l'intervalle ne sert à rien, les maxima peuvent glisser entre les valeurs voisines.

Il est alors plus simple de procéder à une énumération complète avec l'échelon le plus bas, puis à une AG, en éliminant les plus mauvaises plages.

 
Aleksey Mavrin:

Il est alors plus facile d'aller à fond de train avec le pas le plus bas, et ensuite GA, en éliminant les plus mauvaises gammes.

pas plus facile, voici mon EA optimisé :


un passage d'un seul test de cette EA pendant 1,5 ans prend 1,5-2 secondes, dans l'optimiseur environ la même vitesse, vous pouvez estimer combien prendra une recherche complète, et GA dans les 20-50 minutes je trouve déjà des résultats qui me satisfont

 
Igor Makanu:

pas plus facile, voici mon EA en cours d'optimisation :


un passage d'un seul test de cet EA en 1,5 ans prend 1,5-2 secondes, l'optimiseur a approximativement la même vitesse, vous pouvez estimer combien de temps il faut pour faire un passage complet, et GA en 20-50 minutes j'ai déjà trouvé des résultats qui me satisfont

Lorsque le nombre de passages est affiché de manière scientifique, c'est le chiffre génétique qui déborde, et cela ne fonctionne pas du tout (voire pas du tout). Je devais le faire :

1. Réduire le nombre d'étapes. Pour que le nombre de pas ne soit pas grossier et couvre la plage souhaitée, j'ai rendu le nombre de pas non linéaire. Modification du paramètre 0,001-0,099, 0,01-0,99, 0,1-9,9, ... C'est-à-dire un pas avec une précision d'environ 1%.

2. Réduire le nombre de variables à optimiser, voilà l'essentiel.

2а. Divisez les variables en groupes qui sont (groupes) presque indépendants et optimisez-les séparément.

2б. Trouvez les variables qui dépendent d'une autre, et reliez-les. J'ai supprimé quelques variables de cette façon, après un très long cheminement.

2в. Trouver des variables qui peuvent être rendues constantes au prix d'une minuscule diminution de la rentabilité. Également trouvé.

3. et réduire l'éventail des variables après de nombreuses évaluations.

Tant que je n'ai pas fait de tels sacrifices, mon optimisation n'était pas efficace. Il s'agit d'une optimisation avec trop de variables. En soi, c'est une erreur, mais certains experts évoluent vers la simplification plutôt que la complication.

 
Igor Makanu:

pas plus facile, voici mon EA en cours d'optimisation :


un passage d'un seul test de cet EA en 1,5 ans prend 1,5-2 secondes, dans l'optimiseur à peu près la même vitesse, vous pouvez estimer combien de temps il faut pour une énumération complète, et GA en 20-50 minutes je trouve déjà des résultats qui me satisfont

C'est une question de complexité du système. J'en discutais dans le fil de discussion GU. Je fais 3 à 5 pas pour une énumération complète. Vous avez 18 paramètres sur la capture d'écran, ce serait (3-5)^18 = 400M à 3,8 trillions, déjà sur la pitié, bien que ce soit beaucoup, et surtout des paires, c'est beaucoup, je fais une recherche complète pas sur tous, et ayant fixé certains, et dans les groupes, qui alors déjà ensemble sur GA déterminé - rétrécissement GM.

et tout à fait d'accord avec la déclaration plus détaillée

Edgar Akhmadeev:

Lorsque le nombre de passages est affiché scientifiquement, c'est la numérisation de la génétique qui est dépassée et elle ne fonctionne pas du tout (voire pas du tout). Je devais le faire :

1. Réduire le nombre d'étapes. Pour éviter que le nombre de pas ne soit grossier et pour couvrir la plage souhaitée, j'ai rendu le nombre de pas non linéaire. Modification du paramètre 0,001-0,099, 0,01-0,99, 0,1-9,9, ... C'est-à-dire un pas avec une précision d'environ 1%.

2. Réduire le nombre de variables à optimiser, voilà l'essentiel.

2а. Divisez les variables en groupes qui sont (groupes) presque indépendants et optimisez-les séparément.

2б. Trouvez les variables qui dépendent d'une autre, et reliez-les. J'ai supprimé quelques variables de cette façon, après un très long cheminement.

2в. Trouver des variables qui peuvent être rendues constantes au prix d'une minuscule diminution de la rentabilité. Également trouvé.

3. et réduire l'éventail des variables après de nombreuses évaluations.

Tant que je n'ai pas fait de tels sacrifices, mon optimisation n'était pas efficace. Il s'agit d'une optimisation avec trop de variables. En soi, c'est une erreur, mais certains experts évoluent vers la simplification plutôt que la complication.

chacun a ses propres méthodes, en gros tout le monde comprend probablement.
 
Edgar Akhmadeev:

Lorsque le nombre de passages est affiché scientifiquement, c'est la numérisation de la génétique qui déborde et qui fonctionne complètement mal (si elle fonctionne).


Que voulez-vous dire par "fonctionne complètement mal" ?

Comment reproduire l'incorrection de l'œuvre ?

 
Edgar Akhmadeev:

Lorsque le nombre de passages est affiché sous forme scientifique, c'est le chiffre de la génétique qui déborde et cela ne fonctionne pas du tout (voire pas du tout).

avec moi, GA fonctionne sans ambiguïté, j'écris dans le fichier de paramètres EA des passes réussies, je crée le nom du fichier à partir du hash MD5 des paramètres d'optimisation d'entrée eux-mêmes, c'est-à-dire que pendant l'optimisation je vois les fichiers apparaître dans le dossier commun

Je n'ai qu'un seul problème jusqu'à présent - au bout d'un certain temps, les GA peuvent commencer à converger autour d'un petit groupe de paramètres d'optimisation - je pense que c'est normal, tous les GA fonctionnent de cette façon et c'est un problème lié à leur utilisation.

Mais sans ambiguïté, GA fonctionne et ne se bloque pas - je le vois dans les fichiers ajoutés et les noms uniques.

 
Slava:

Que voulez-vous dire par "il ne fonctionne pas du tout correctement" ?

Comment pouvez-vous reproduire le dysfonctionnement ?

J'ai écrit à ce sujet il y a longtemps, lorsque j'utilisais des cadres dans l'EA. Je ne me souviens plus du moment exact, je pense que j'ai commencé à ne pas avoir toutes les images qui viennent (avec de meilleurs résultats). Je vais rechercher les anciens messages et essayer de les clarifier.

Mais je me souviens très bien qu'il était clairement reproductible dans mon Expert Advisor - dès que le nombre de dépassements dépassait un certain nombre et qu'il était affiché sous une forme scientifique, ma génétique était cassée. L'important n'était pas seulement un grand nombre d'étapes d'une variable, mais aussi un grand nombre de variables.