Campeonato de Otimização de Algoritmos. - página 45

 
Andrey Dik:

Seu algoritmo utiliza uma chamada FF direta do algoritmo, ou seja, chamada de *.ex5 para *.ex5. Podemos chamar um comando de parada especial do script de execução que interrompe corretamente a otimização sem usar o ExpertRemove()?

Há alguma armadilha, algum problema nisso?

Apenas para lembrar, hoje tenho que dar um exemplo de como chamar o algoritmo em um roteiro de teste em duas variantes, no qual acontece o seguinte: 1. chamar o FF do roteiro de teste; 2. chamar o FF do algoritmo.

Você não pode. Com uma dica disso em mente, tentei recentemente discutir várias variantes de chamadas. É por isso que sugeri não medir o tempo, mas apenas removê-lo da tabela e descartá-lo quando ele atingir um tempo de funcionamento proibitivo.
 
Yuri Evseenkov:

Pergunto-me por que promotores de MQL como Dmitry Fedoseyev e Andrey Dik não querem explicar tudo popularmente através de um simples exemplo.

Mas eles podem. O artigohttps://www.mql5.com/ru/articles/351 é um exemplo disso.

Talvez a razão não seja a natureza de massa. Talvez eles queiram encontrar usuários tão avançados como eles e organizar uma reunião. Daí a limitação à MQL5, jargão altamente especializado e longas analogias espaço-temporais.

Sobre algoritmos genéticos muito lucidamente aqui https://habrahabr.ru/post/128704/

Eu tentei aqui, ninguém parece ver e não quer ver.

Mas não nessa linha, mas na anterior, que Belkonsky fez e apagou. Você também poderia ter perguntado aqui. Embora, em geral, a sociedade se comporte corretamente, por que postar aqui, se Belkonsky imediatamente vem à merda aqui.

 
Dmitry Fedoseev:
Você não pode. Com uma dica disso em mente, tentei recentemente discutir aqui as várias chamadas. É por isso que sugeri não medir o tempo, mas apenas removê-lo do gráfico e descartá-lo quando ele atingir um tempo de funcionamento proibitivo.
E se dentro da função *.ex5 verificará alguma variável o tempo todo, interna ou global para flag==falso?
 
Andrey Dik:
E se no interior da função *.ex5 for verificar alguma variável permanentemente, interna ou global para flag==falso?

Se uma variável global do terminal. Mas então deve haver um requisito para que os participantes façam isso.

Aqui pode acontecer que o comando seja submetido no meio do processamento de uma época e terá que ser interrompido, parte do trabalho realizado durante uma época será feito em vão.

 
Dmitry Fedoseev:

Se uma variável global do terminal. Mas então deve haver um requisito para que os participantes façam isso.

Aqui pode acontecer que um comando seja submetido no meio do processamento de uma época e tenha que ser interrompido, parte do trabalho feito em uma época será desperdiçado.

Claro.

Então o roteiro precisa ser capaz de escrever uma bandeira de quebra para uma variável global sempre que quiser.

E o algoritmo deve verificar antes do início da época para ver se a bandeira é permitida.

No exemplo do roteiro de verificação, este ponto (verificação global) será refletido.

 
Andrey Dik:

Claro.

Então o roteiro precisa ser capaz de escrever uma bandeira de parada para uma variável global quando ela quiser.

E o algoritmo deve verificar antes de iniciar a época para ver se a bandeira é permitida.

No exemplo do roteiro de verificação, este ponto (verificação global) será refletido.

Portanto, as regras devem exigir que antes de uma época ser executada, a existência de uma variável com tal nome deve ser verificada (especificar o nome).
 
Então, com este nível de treinamento e com muitos anos de experiência na área, você convida pessoas que mal sabem do que estão falando para participar do campeonato? Você lhes mostra desenhos animados e diz "participe, você pode fazer isso"? É moralmente satisfatório para você e alguns outros concorrentes vencê-los? Por que você os está convidando? Talvez a satisfação não esteja na dimensão moral, mas na dimensão material?
 
Реter Konow:
Então, com tal nível de treinamento e muitos anos de experiência na área, você convida pessoas para os campeonatos que mal sabem do que estão falando? Você lhes mostra desenhos animados e diz "participe, você pode fazê-lo"? É moralmente satisfatório para você e alguns outros concorrentes vencê-los? Por que você os está convidando? Talvez a satisfação não esteja na dimensão moral, mas na dimensão material?

Bem, primeiro, não há dois otimistas experientes, mas muitos mais (o fato de que poucos ousam é outra questão). Em segundo lugar, para aqueles que não estão muito bem preparados, o que eles podem fazer agora? - Eles também podem participar do evento, não há qualificações preliminares.

Veja os campeonatos da MQ, os iniciantes verdes estão proibidos lá? - Não, não fizeram, e estavam certos.

Também não há proibição para os "jovens". Todos têm permissão para participar.

E em terceiro lugar, tenho que dizer: "Não participe, você não tem nenhuma chance"? - Pelo contrário, eu disse: "Todos têm uma chance"! E eles o fazem, independentemente do nível de treinamento.

 
Dmitry Fedoseev:
Assim, nas regras, escreva tal requisito - antes de realizar uma verificação de época - a existência da mudança com o nome mais ou menos (especifique especificamente).
OK.
 
Dmitry Fedoseev:

Se uma variável global do terminal. Mas então deve haver um requisito para que os participantes façam isso.

Isto pode fazer com que um comando seja dado no meio do processamento de uma época e tenha que ser interrompido, parte do trabalho feito em uma época será feito para nada.

Penso que existe uma solução, embora eu não goste muito dela. Foi sugerido por alguém, talvez você.

Você pode estipular com antecedência (através de um pedido especial no código) que o número de execuções não deve ser maior do que esse número. Então o FF, que contará o número de chamadas quando este número for excedido, chamará ExpertRemove().

O algoritmo será advertido e então, como dizem, a culpa é dele mesmo).

Está tudo bem?

Razão: