Discussion de l'article "Algorithmes Génétiques - C'est Facile !" - page 2

 
joo:

....

J'ai posté quelques fonctions de test intéressantes dans le fil de discussion du forum MQL4 "Test Multivariable Multiextremal Function", l'une d'entre elles est présentée dans l'article.

Si vous le souhaitez, vous pouvez essayer de trouver les extrema des fonctions proposées en utilisant d'autres algorithmes d'optimisation que l'AG et poster les résultats ici. Vous êtes les bienvenus. Ce sera intéressant pour tout le monde et pour moi en premier lieu.

....

J'ai vu mon matcad préféré.

Dans l'article, les chiffres sont donnés ...21,7 secondes contre 1,6e32 années ! Avez-vous essayé de résoudre le(s) même(s) problème(s) à l'aide de matcad. A quel point est-ce plus rapide (plus lent) que MQL5 ?

 
Prival :

J'ai vu mon logiciel favori mathcad.

Dans l'article il y a des chiffres ...21.7 secondes vs. 1.6e32 années ! Avez-vous essayé de résoudre le même problème (les problèmes de test) en utilisant matcad. A quel point est-ce plus rapide (plus lent) que MQL5 ?

Oui, l'image provient de matcad. Elle concerne le premier problème.

Et les chiffres sont ceux de la deuxième tâche. Malheureusement, je ne suis pas très doué avec ce package matcad, et je ne l'ai pas utilisé pour résoudre le second problème. Comme vous, j'aimerais connaître la réponse à votre question.

 

La solution de votre deuxième problème est nécessaire pour résoudre ce problème.

https://www.mql5.com/ru/forum/123072/page6#254964 (fil de discussion très intéressant d'ailleurs).

A une époque je voulais (combiner ces deux problèmes) et calculer, regarder, réfléchir, mais mes mains comme toujours n'y arrivaient pas (il y a peu de temps comme toujours).

Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
  • www.mql5.com
Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
 
Prival :

C'est juste que la solution de votre deuxième tâche (sa) est nécessaire pour résoudre cette tâche ici

https://www.mql5.com/ru/forum/123072/page6#254964 (fil de discussion très intéressant par ailleurs)

A un moment donné, j'ai voulu (combiner ces deux problèmes) et calculer, regarder, réfléchir, mais comme toujours, je n'ai pas eu le temps (le temps est court, comme toujours).

Oui, les algorithmes heuristiques sont une aubaine pour les problèmes qui n'ont pas de solution analytique ou lorsque la formalisation du problème est difficile.

La moitié des problèmes, si ce n'est plus, par exemple, de cette branche peuvent être résolus avec l'aide de l'UGA. Au fait, il est très agréable d'être le destructeur de l'un des mythes les plus célèbres des traders liés à ZZ (la deuxième tâche de l'article) :)

[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
  • www.mql5.com
[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
 

Je pense que cet article est une excellente contribution, mais le titre sous-estime le contenu. Je pensais trouver une introduction simple à GA, mais j'ai une bibliothèque déjà développée avec laquelle travailler. Je vous remercie.

 

Sur la santé ! :)

PS Oui, et encore. Si mon article s'intitulait :"Les algorithmes génétiques c'est très difficile !", qui le lirait ? :)

Bien qu'aussi cela ne correspondrait pas à la réalité. Néanmoins, les AG sont simples si un peu pour faire des efforts de jugement. Comme pourtant, tout demande du jugement, comme pour les marchés. Si on veut gagner sur eux...

PPS Je préviens tout de suite, maintenant et par la suite j'utiliserai des moyens de traduction automatique. Je m'en excuse.
 

Bon article ! Merci.

Mais je vais quand même commencer à écrire la même chose, sur OOP.
Rien n'a été inventé mieux que la pratique)))

 

Votre recherche de doublons est organisée sous une forme ouverte, c'est-à-dire que vous stockez tous les chromosomes uniques, du moins c'est ce qu'il m'a semblé.

C'est-à-dire qu'il y a une recherche de chromosomes et dans chaque chromosome est comparé chaque gène (presque)
Je me demande, si vous appliquez un algorithme de hachage des chromosomes, alors idéalement la vitesse de la recherche d'un duplicata devrait augmenter, surtout avec un grand nombre de gènes.
Il ne reste plus qu'à imaginer ou trouver un moyen rapide et approprié pour l'algorithme.

Je suis allé fouiller dans mathcad))))

 
mrProF:

Votre recherche de doublons est organisée de manière ouverte, c'est-à-dire que vous stockez tous les chromosomes uniques, du moins c'est ce qu'il m'a semblé.

C'est le cas, tous les chromosomes uniques sont stockés dans un tableau séparé - jusqu'à 100 000 pièces (cent mille). C'est plus que suffisant pour les tâches pratiques.

mrProF:

En d'autres termes, il y a une recherche de chromosomes et dans chaque chromosome, chaque gène (ou presque) est comparé.

Tous les gènes du chromosome ne sont pas comparés. Il serait au moins peu pratique de comparer tous les gènes, et encore plus insensé. Le critère d'unicité d'un chromosome est la présence d'au moins un gène différent par rapport aux chromosomes de l'"archive". Par conséquent, dès qu'un gène unique est trouvé dans un chromosome, la comparaison s'arrête et le chromosome entier est reconnu comme unique et placé dans l'archive pour un stockage "éternel".

mrProF:

Je me demande si, en appliquant un algorithme de hachage des chromosomes, la vitesse de recherche des doublons devrait augmenter, en particulier pour un grand nombre de gènes.
Il ne reste plus qu'à imaginer ou à trouver un moyen rapide et adapté à l'algorithme.

Je suis allé creuser dans mathcad))))

Je ne sais pas - je ne sais pas... Et puis il faudra que je compare avec le hash ? :)

Si vous trouvez un moyen plus rapide de vérifier l'unicité d'un chromosome, n'hésitez pas à m'en faire part, je vous en serai reconnaissant.

 
joo:

En effet, tous les chromosomes uniques sont stockés dans un tableau séparé - jusqu'à 100 000 pièces (cent mille). C'est plus qu'il n'en faut pour les tâches pratiques.

Tous les gènes d'un chromosome ne sont pas comparés. Il serait au moins peu pratique de comparer tous les gènes, et tout au plus stupide. Le critère d'unicité d'un chromosome est la présence d'au moins un gène différent par rapport aux chromosomes de l'"archive". Par conséquent, dès qu'un gène unique est trouvé dans un chromosome, la comparaison s'arrête et le chromosome entier est reconnu comme unique et placé dans les archives pour un stockage "éternel".

Je ne sais pas - je ne sais pas... Et puis il faut encore comparer avec le hash ? :)

Si vous trouvez un moyen plus rapide de vérifier l'unicité d'un chromosome, veuillez m'en informer, je vous en serai reconnaissant.
.

C'est ce que je voulais dire par "presque")))

La comparaison avec un hash est plus rapide qu'avec 100 gènes dans une boucle....

Ici, il est nécessaire de calculer la vitesse de l'algorithme de recherche directe des gènes ou de comparaison avec le hash.
Si, par exemple, le nombre de gènes est inférieur à 20, alors il faut procéder à une comparaison directe, sinon il faut utiliser le hash.
Maintenant, je vais me pencher sur les méthodes de calcul du hash, peut-être trouverai-je quelque chose d'assez rapide tout en garantissant l'unicité du hash.
D'après ce que j'ai compris en lisant des livres et des articles, l'élimination des doublons n'est pas trop critique, même s'il y aura un hash non unique sur 100.
Il est très probable que la mutation couvrira cette clé non unique, s'il y a une augmentation notable de la vitesse.

Il est vrai que ce n'est encore qu'une théorie, j'ai GA deuxième jour je suis engagé dans seulement)))
Dans la tête terrible désordre, et la littérature n'est pas assez pour voir))).