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

 
Alexander Laur:
Na minha opinião, as regras também deveriam levar em conta o tempo de teste do algoritmo. Desde que haja dois de vocês, o teste do algoritmo pode ser medido em horas, dias. E se mais participantes quiserem participar? Por favor, não perca o tempo do árbitro da competição.
Há um limite para o número de corridas de FF. Alguns concorrentes não pediram um limite para o tempo de teste.
 

Alexander Laur:
1. Еще один момент: Как Вы собираетесь проверять ПРАВДИВОСТЬ полученного результата 

2. Afinal de contas, o resultado mais importante é encontrar o verdadeiro extremo global. E como verificá-lo?

1. A validade do resultado é verificada simplesmente pela substituição dos valores dos parâmetros no FF e pela comparação do resultado do concorrente com o do FF.

2. O resultado global real pode ser obtido de três maneiras:

a) valor exato: resolver analiticamente o problema (não aceitável para nós)

(b) Valor exato: enumeração total (não viável para nós)

c) valor aproximado: usar um algoritmo de otimização - isto é o que faremos, o resultado mais alto será o melhor. O verdadeiro máximo permanecerá desconhecido para nós (é impossível encontrá-lo), e o melhor será o mais alto entre os participantes.

 
Andrey Dik:

1. você pediu um mínimo de restrições e este é o passo mínimo possível.

2.se pode haver problemas, é com o algoritmo do concorrente, não com o FF. Isto significa que qualquer erro crítico causado pelo algoritmo desqualificará o concorrente.

1. Eu não pedi limites mínimos.

Fui contra a tomada de decisão unilateral sobre parâmetros de condições do problema pelo organizador, porque vi nela uma oportunidade (intencional ou não) de adaptar essas condições ao algoritmo existente. Levando em conta que o principal contingente de participantes não tinha experiência em resolver problemas de otimização, tal intenção teria sido injusta para eles.

Pedi para mudar o alcance e o passo, a fim de pelo menos equalizar ligeiramente as chances dos recém-chegados sem um algoritmo pronto e dos participantes que o têm há muito tempo.


2. Erros críticos em uma função desconhecida com valores aleatórios de várias centenas de parâmetros substituídos em sucessão podem ocorrer a qualquer participante independentemente de seu algoritmo, por mero acaso.

Suponha que haja tal entrada dentro da função - (2/(0,000000254345 - x1)); e o algoritmo passa acidentalmente o valor 0,000000254345 para o parâmetro x1 em uma das chamadas.

Neste caso, os parênteses conterão zero, que será divisível por dois.

Isto resultará em um erro crítico. Entretanto, nenhum dos participantes pode saber que o número gerado aleatoriamente enviado para o FF junto com outros números da matriz não é igual a alguma constante e não é subtraído dela ou dividido por outra coisa...

 
Реter Konow:

1. Eu não pedi limites mínimos.

Eu era contra a tomada de decisão unilateral por parte do organizador sobre os parâmetros das condições do problema, porque via nela uma oportunidade (intencional ou não) de ajustar essas condições ao algoritmo já existente. Levando em conta que o principal contingente de participantes não tinha experiência em resolver problemas de otimização, tal intenção teria sido injusta para eles.

Pedi para mudar o alcance e a inclinação, de modo a, pelo menos, nivelar ligeiramente as chances dos recém-chegados sem um algoritmo pronto e dos participantes que já o têm há muito tempo.


2. Erros críticos em uma função desconhecida com valores aleatórios de várias centenas de parâmetros substituídos em sucessão podem ocorrer a qualquer participante independentemente de seu algoritmo, por mero acaso.

Suponha que haja tal entrada dentro da função - (2/(0,000000254345 - x1)); e o algoritmo passa acidentalmente o valor 0,000000254345 para o parâmetro x1 em uma das chamadas.

Neste caso, os parênteses conterão zero, que será dividido por dois.

Isto resultará em um erro crítico. Entretanto, nenhum dos participantes pode saber que o número gerado aleatoriamente enviado para o FF junto com outros números da matriz não é igual a alguma constante e não é subtraído dela ou dividido por outra coisa...

1. Diga-me francamente, você não está pronto para usar a etapa 0,0000000000000001? É muito difícil para você? Se você estiver pronto, sua pergunta é retirada.

2. Eu disse anteriormente, não se preocupe com nenhuma operação matemática dentro do FF, nenhum erro pode ocorrer lá, mesmo que você tente muito. É melhor cuidar da ausência de erros em seu algoritmo, pois ele será claramente visto nos logs do terminal onde exatamente os erros ocorrem.

Além disso, quaisquer requisitos para as propriedades do FF de você não são legítimos, porque você se recusou a fornecer uma função de amostra do formulário f(x1, x2) para sua inclusão no FF. Contente-se com o que já foi trabalhado e preparado para você por outros. Dentro de algumas horas você poderá dar uma última olhada dentro do FF, mas apenas para entender que contemplar o interior do FF não lhe dará nada em termos de aumentar suas chances no concurso. Caixa preta, pense somente nela, o resto é impraticável e impraticável para alcançar o primeiro lugar.

 
Andrey Dik:

1. Diga-me francamente, você não está preparado para usar a etapa 0,0000000000000001? É muito complicado para você? Se você estiver pronto, então a pergunta está fora da mesa.

2. Eu disse anteriormente, não se preocupe com nenhuma operação matemática dentro do FF, nenhum erro pode ocorrer lá, mesmo que você tente muito. É melhor cuidar da ausência de erros em seu algoritmo, pois ele será claramente visto nos logs do terminal onde exatamente os erros ocorrem.

Além disso, quaisquer requisitos para as propriedades do FF de você não são legítimos, porque você se recusou a fornecer uma função de amostra do formulário f(x1, x2) para sua inclusão no FF. Contente-se com o que já foi trabalhado e preparado para você por outros. Dentro de algumas horas você poderá dar uma última olhada dentro do FF, mas apenas para entender que contemplar o interior do FF não lhe dará nada em termos de aumentar suas chances no concurso. Caixa preta, pense somente nela, o resto é impraticável e impraticável para alcançar o primeiro lugar.

Não fique quente e incomodado. Estamos apenas discutindo e concordando de acordo com o ponto 2 que você escreveu aqui: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Estou preparado para usar quaisquer condições que você também use, mas sugiro que você considere se as condições que você propõe levarão a erros independentemente do algoritmo do concorrente.

2. O conhecimento de partes dos blocos de uma função analítica (ou seja, suas constantes e ações matemáticas com parâmetros) pode ser mal utilizado por um participante.

Exemplo: compilei e lhe entreguei a função (2 / (2 - x1)) . Você o incluiu no FF.

Então o árbitro, por sugestão sua, simplesmente baralhou os blocos de funções, deixando constantes e operações nesses blocos...

Além disso, ao compilar o algoritmo, saberei que não posso passar o número 2 para o parâmetro x1, pois isso resultará em um erro crítico de divisão por zero. Entretanto, o outro participante pode não saber disto e, portanto, pode passar o valor de 2 para este parâmetro.

Como resultado, seu algoritmo será desclassificado.

Sugiro que esta nuance seja levada em consideração.

Se as constantes estiverem fora da faixa [2 , -2], nenhuma operação resultará em zero dentro das funções.

P.S. É claro que, neste caso, você também pode receber zero, mas é menos provável. Você poderia excluir a operação de divisão do FF, mas provavelmente é demais...))

Чемпионат Алгоритмов Оптимизации.
Чемпионат Алгоритмов Оптимизации.
  • www.mql5.com
Чемпионат алгоритмов оптимизации задуман как соревнование для людей ищущих, любознательных, для которых стоять на месте означает движение назад...
 
Alexander Laur:

Não quero ficar ofendido, é apenas a minha opinião. :)

E a opinião é que o ponto "c" de sua resposta é um jogo de adivinhação. É um jogo de adivinhação porque um resultado confiável não é conhecido. Se o resultado for desconhecido, como você pode determinar a OPTIMALIDADE do algoritmo?

Se avaliarmos a OPTIMALIDADE dos algoritmos de busca, devemos fazê-lo em Resultados Conhecidos obtidos através de busca exaustiva. Mas nas tarefas do Campeonato, especificar que este resultado conhecido deve ser obtido em 100 vezes a redução das etapas. Isso seria uma competição em que um resultado VERDADEIRO conhecido, seria obtido em Menos etapas SIGNIFICATIVAS! Com esta abordagem, ninguém teria qualquer dúvida sobre o resultado da vitória.

Eu concordo com você.

Acredito que o valor máximo da função deve ser conhecido de forma confiável pelo árbitro.

Caso contrário, todo o concurso se transforma em uma farsa.

Além disso, um dos critérios mais importantes para avaliar a eficácia do algoritmo de um concorrente, juntamente com o número de chamadas FF, é a precisão, que é impossível de determinar sem ter um valor confiável da função de máscara.

 
Реter Konow:

Não fique quente e incomodado. Estamos simplesmente discutindo e concordando, de acordo com o ponto 2 que você especificou aqui: https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1. Estou pronto para usar quaisquer condições que você também use, mas sugiro que você considere se as condições que você propõe levarão a erros independentemente do algoritmo do concorrente.

2. Conhecer partes dos blocos de uma função analítica (ou seja, suas constantes e ações matemáticas com parâmetros) pode ser mal utilizado por um participante.

Exemplo: Eu compilei e passei a função (2 / (2 - x1)) . Você o incluiu no FF.

Então o árbitro, por sugestão sua, simplesmente baralhou os blocos de funções, deixando constantes e operações nesses blocos...

Além disso, ao compilar o algoritmo, saberei que não posso passar o número 2 para o parâmetro x1, pois isso resultará em um erro crítico de divisão por zero. Entretanto, o outro participante pode não saber disto e, portanto, pode passar o valor 2 para este parâmetro.

Como resultado, seu algoritmo será desclassificado.

Sugiro que você considere esta nuance.

Se as constantes estiverem fora da faixa [2 , -2], nenhuma operação resultará em zero dentro das funções.

Para que você acha que a fonte FF é mostrada, entre outras coisas? Para ver que não ocorrem erros no FF devido a operações matemáticas e outros erros. Se ocorrerem erros no FF, e eles podem teoricamente surgir, ao visualizar o código fonte do FF você pode usar as vulnerabilidades a seu favor, causando um erro crítico no FF. Se isto acontecer, a culpa é do criador do FF, e como sou o único criador, a culpa será inteiramente minha e eu serei o perdedor e você o vencedor. Você tem uma chance de se tornar um vencedor desta forma, ou melhor - não há nenhuma chance de se tornar um vencedor desta forma.
 
Andrey Dik:
Para que você acha que o FF original é mostrado, entre outras coisas? Ver que é impossível a ocorrência de erros no FF devido a operações matemáticas e outros erros. Se ocorrerem erros no FF, e eles podem teoricamente surgir, ao visualizar o código fonte do FF você pode usar as vulnerabilidades a seu favor, causando um erro crítico no FF. Se isto acontecer, a culpa é do criador do FF, e como sou o único criador, a culpa será inteiramente minha e eu serei o perdedor e você o vencedor. Você tem uma chance de ser um vencedor desta forma, ou melhor - não há nenhuma chance de ser um vencedor desta forma.

Depois de ver o FF original, muito se tornará muito mais claro para mim do que é agora...

Não vou de forma alguma usar seus possíveis erros de redação do FF a meu favor, pois isso invalida a base de minha motivação para participar, que não se trata nada de lutar por uma falsa vitória.

A vitória deve ser inequívoca, confiável e justa. Eu não preciso de nenhum outro.

 
Alexander Laur:

Não quero ficar ofendido, é apenas a minha opinião. :)

E a opinião é que o ponto "c" de sua resposta é um jogo de adivinhação. É um jogo de adivinhação porque um resultado confiável não é conhecido. Se o resultado for desconhecido, como você pode determinar a OPTIMALIDADE do algoritmo?

Se avaliarmos a OPTIMALIDADE dos algoritmos de busca, devemos fazê-lo em Resultados Conhecidos obtidos através de busca exaustiva. Mas nas tarefas do Campeonato, especificar que este resultado conhecido deve ser obtido em 100 vezes a redução das etapas. Isso seria uma competição em que um resultado VERDADEIRO conhecido, seria obtido em Menos etapas SIGNIFICATIVAS! Com esta abordagem, ninguém terá qualquer dúvida sobre o resultado da vitória.

Reg Konow:

Eu concordo com você.

Acho que o valor máximo da função deve ser conhecido de forma confiável pelo árbitro.

Caso contrário, todo o concurso se transforma em uma farsa.

Além disso, um dos critérios mais importantes para avaliar a eficiência do algoritmo de um concorrente, juntamente com o número de chamadas FF, é a precisão, que é impossível de determinar sem ter um valor confiável da função de máscara.

Vocês dois são tão engraçados... ) Sem ofensa. ))))

Se o máximo global é conhecido por todos sem exceção, então, pense novamente, pense cuidadosamente, o que vai acontecer? Um campeonato de algoritmos de otimização pode ser realizado em um caso desses? Claro que não pode, porque qualquer concorrente pode chamar o FF de 60-70 por cento do máximo permitido e produzir um resultado com 100% de precisão! Só podemos competir com os FFs UNLIMITED! O valor máximo de um dos concorrentes é o melhor resultado.

Você realmente me faz rir... )))

Mas se você está falando sério e gostaria realmente de saber quão preciso é um algoritmo para encontrar o máximo, então fora da competição podemos alimentar os algoritmos com um máximo conhecido, para alimentá-los após a publicação dos algoritmos, ninguém proíbe fazer isso, os algoritmos dos participantes estarão disponíveis gratuitamente por vários dias e todos podem verificar e testar os algoritmos o quanto quiserem. Espero que até lá você já tenha pelo menos algumas funções com o máximo conhecido, para verificar e descobrir por si mesmo as propriedades dos algoritmos de qualquer um dos participantes.

 
Реter Konow:

Depois de ver o FF original, muito se tornará muito mais claro para mim do que é agora...

Não vou de forma alguma usar seus possíveis erros de redação do FF em meu benefício, pois isso invalida a base de minha motivação para participar, que não é de forma alguma lutar por uma falsa vitória.

Vencer deve ser inequívoco, confiável e honesto. Eu não preciso de nenhum outro.

Isto significa que o algoritmo ainda não está pronto? Quanto tempo você espera conseguir entender e preparar o algoritmo para um FF conhecido? Que diferença faz o que está contido no FF? O algoritmo deve ser capaz de trabalhar com um FF desconhecido, caso contrário é uma besteira e não um algoritmo.
Razão: