Discussão do artigo "Algoritmos genéticos - é fácil!" - página 2

 
joo:

....

Eu publiquei algumas funções de teste interessantes no tópico do fórum MQL4 "Test Multivariable Multiextremal Function", uma delas é apresentada no artigo.

Se quiser, você pode tentar encontrar os extremos das funções propostas usando outros algoritmos de otimização além do GA e publicar os resultados aqui. Você está convidado a fazer isso. Será interessante para todos e para mim, em primeiro lugar.

....

Eu vi meu matcad favorito.

No artigo, os números são fornecidos ... 21,7 segundos vs. 1,6e32 anos! Você já tentou resolver o mesmo problema (problemas de teste) por meio do matcad? Quanto mais rápido (mais lento) que o MQL5?

 
Prival :

Eu vi meu mathcad favorito.

O artigo cita números ... 21,7 segundos vs. 1,6e32 anos! Você já tentou resolver o mesmo problema (problemas de teste) usando o matcad. Quanto mais rápido (mais lento) que o MQL5?

Sim, a imagem é do matcad. É para o primeiro problema.

E os números são da segunda tarefa. Infelizmente, não sou muito bom com esse pacote matkad e não o usei para resolver o segundo problema. Assim como você, também estou interessado em saber a resposta à sua pergunta.

 

Apenas a solução de seu segundo problema é necessária para resolver esse problema

https://www.mql5.com/ru/forum/123072/page6#254964 (tópico muito interessante, a propósito).

Certa vez, eu queria (combinar esses dois problemas) e calcular, olhar, pensar, mas minhas mãos, como sempre, não alcançaram (há pouco tempo, como sempre).

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

É que sua segunda tarefa (sua) solução é necessária para resolver essa tarefa aqui

https://www.mql5.com/ru/forum/123072/page6#254964 (tópico muito interessante, a propósito)

Em um determinado momento, eu quis (combinar esses dois problemas) e calcular, olhar, pensar, mas, como sempre, não tive tempo (o tempo é curto, como sempre).

Sim, os algoritmos heurísticos são uma dádiva de Deus para problemas que não têm solução analítica ou quando a formalização do problema é difícil.

Metade dos problemas, se não mais, por exemplo, desse ramo pode ser resolvida com a ajuda do UGA. A propósito, é muito agradável ser o destruidor de um dos mais famosos mitos de operadores relacionados ao ZZ (a segunda tarefa do artigo) :)

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

Na minha opinião, este artigo é uma grande contribuição, mas o título subestima o conteúdo. Eu esperava encontrar uma introdução simples ao GA, mas já tenho uma biblioteca desenvolvida para trabalhar. Obrigado!

 

Com saúde! :)

PS: Sim, e ainda. Se eu escrevesse um artigo chamado:"Algoritmos genéticos são muito difíceis!", quem o leria? :)

Mas isso também não corresponderia à verdade. No entanto, os AG são simples, embora um pouco difíceis de julgar. No entanto, tudo exige julgamento, como no caso dos mercados. Se quisermos ganhar com eles...

PPS Aviso desde já que, agora e posteriormente, usarei meios de tradução automática. Desculpe-me.
 

Ótimo artigo! Obrigado.

Mas, mesmo assim, vou começar a escrever a mesma coisa, em OOP.
Nada foi inventado melhor do que a prática)))

 

Sua busca por duplicatas é organizada de forma aberta, ou seja, você armazena todos os cromossomos exclusivos, pelo menos foi o que me pareceu.

Ou seja, há uma busca de cromossomos e, em cada cromossomo, cada gene é comparado (quase)
Eu me pergunto se, ao aplicar algum algoritmo de hashing no cromossomo, a velocidade da busca por uma duplicata deveria aumentar, especialmente com um grande número de genes.
Só resta pensar ou encontrar uma maneira rápida e adequada para o algoritmo.

Fui pesquisar no mathcad))))

 
mrProF:

Sua busca por duplicatas é organizada de forma aberta, ou seja, você armazena todos os cromossomos exclusivos, pelo menos foi o que me pareceu.

É isso mesmo, todos os cromossomos exclusivos são armazenados em uma matriz separada - até 100.000 peças (cem mil). Isso é mais do que suficiente para tarefas práticas.

mrProF:

Ou seja, há uma pesquisa de cromossomos e, em cada cromossomo, cada gene (quase) é comparado.

Nem todos os genes do cromossomo são comparados. Seria, no mínimo, impraticável comparar todos os genes, e ainda mais insensato. O critério de exclusividade de um cromossomo é a presença de pelo menos um gene diferente em comparação com os cromossomos do "arquivo". Portanto, assim que um gene exclusivo é encontrado em um cromossomo, a comparação é interrompida e o cromossomo inteiro é reconhecido como exclusivo e colocado no arquivo para armazenamento "eterno".

mrProF:

Eu me pergunto se, ao aplicar algum algoritmo de hashing de cromossomo, a velocidade da pesquisa de duplicatas deve aumentar, especialmente em um grande número de genes.
Só resta pensar ou encontrar uma maneira rápida e adequada para o algoritmo.

Fui pesquisar no mathcad))))

Não sei, não sei... E então teremos que compará-lo com o hash? :)

Se você encontrar uma maneira mais rápida de verificar a exclusividade de um cromossomo, informe-me - ficarei grato.

 
joo:

É isso mesmo, todos os cromossomos exclusivos são armazenados em uma matriz separada - até 100.000 peças (cem mil). Isso é mais do que suficiente para tarefas práticas.

Nem todos os genes de um cromossomo são comparados. No mínimo, não seria prático comparar todos os genes e, no máximo, seria uma estupidez. O critério de exclusividade de um cromossomo é a presença de pelo menos um gene diferente em comparação com os cromossomos do "arquivo". Portanto, assim que um gene exclusivo é encontrado em um cromossomo, a comparação é interrompida e o cromossomo inteiro é reconhecido como exclusivo e colocado no arquivo para armazenamento "eterno".

Não sei, não sei... E então você ainda precisa comparar com o hash? :)

Se você encontrar uma maneira mais rápida de verificar a exclusividade de um cromossomo, informe-me sobre ela - ficarei grato.
.

Bem, foi isso que eu quis dizer com "quase")))

Bem, a comparação com um hash é mais rápida do que com 100 genes em um loop....

Aqui é necessário calcular a velocidade do algoritmo de pesquisa direta de genes ou com comparação com hash.
Se, por exemplo, o número de genes for menor que 20, então a comparação direta, se for maior, com hash.
Agora vou me aprofundar nas formas de calcular o hash, talvez eu encontre algo rápido o suficiente e, ao mesmo tempo, com exclusividade suficiente de hash.
Pelo que entendi ao ler livros e artigos, a remoção de duplicatas não é muito crítica, mesmo que haja um hash não exclusivo entre 100.
Provavelmente, a mutação cobrirá essa chave não exclusiva, se houver um aumento perceptível na velocidade.

É verdade que isso ainda é apenas uma teoria, eu GA segundo dia eu estou envolvido em apenas)))
Na cabeça terrível bagunça, e a literatura não é suficiente para ver)))