Algoritmos, métodos de solução, comparação de seu desempenho - página 23

 
Andrey Khatimlianskii:

Você poderia ter apenas um intervalo maior. Pelo menos 30 segundos para o teste.

Com a normalização.

pass 0 returned result 100000.000000 in 0:00:35.296
pass 1 returned result 100000.000000 in 0:00:29.361
pass 2 returned result 100000.000000 in 0:00:24.549
pass 3 returned result 100000.000000 in 0:00:25.067
pass 4 returned result 100000.000000 in 0:00:24.578
pass 5 returned result 100000.000000 in 0:00:24.634
pass 6 returned result 100000.000000 in 0:00:25.079
optimization finished, total passes 7
optimization done in 3 minutes 09 seconds
shortest pass 0:00:24.549, longest pass 0:00:35.296, average pass 0:00:26.937


Sem normalização.

pass 0 returned result 100000.000000 in 0:00:33.035
pass 1 returned result 100000.000000 in 0:00:26.020
pass 2 returned result 100000.000000 in 0:00:20.137
pass 3 returned result 100000.000000 in 0:00:20.859
pass 4 returned result 100000.000000 in 0:00:21.130
pass 5 returned result 100000.000000 in 0:00:20.664
pass 6 returned result 100000.000000 in 0:00:21.001
optimization finished, total passes 7
optimization done in 2 minutes 50 seconds
shortest pass 0:00:20.137, longest pass 0:00:33.035, average pass 0:00:23.263


Os mesmos 20%.

 
fxsaber:

É assim que um Agente trabalha, conta consistentemente a mesma coisa. Se você tirar toda a aleatoriedade, o desempenho líquido é próximo do mais curto.

Net não é interessante, pois não é realizável na realidade.

Obrigado pelos testes.

 
fxsaber:

Com a normalização.

Sem normalização.

Os mesmos 20%.


20% para uma EA falsa que não faz nada... Não é muito significativo. Em código real o número seria muitas vezes menor. Vale a pena perder tempo com tais trivialidades.

E por falar em otimização dos cálculos, devemos começar com o fato de que não há necessidade de monitorar constantemente os níveis de todos os pedidos pendentes. Só precisamos verificar o mais próximo. Se for alcançado, então o próximo nível e assim por diante.

 
Alexey Navoykov:

20% para uma EA falsa que não faz nada... Não é muito significativo. Em código real o número seria muitas vezes menor. Vale a pena perder tempo com tais trivialidades.

A observação é justa. No meu robô normal, vejo muito atraso no Testador. Há muitas razões para isso. E esta é uma delas. Um passe é de 100 milhões de carrapatos. Vamos levar a genética padrão para passes de 10K. Isso é um trilhão de carrapatos, pelo menos. Em cada tique, o testador faz pelo menos uma normalização. Quando não podia fazer absolutamente nada. O que é a economia em tal otimização? Além disso, preocupar-se é fazer uma normalização em cada comparação, como está acontecendo agora. Na verdade, é mais fácil e mais eficiente normalizar apenas os preços de entrada.

E por falar em otimização dos cálculos, devemos começar com o fato de que não precisamos monitorar constantemente os níveis de todas as ordens pendentes. Só precisamos verificar o mais próximo. Se for atingido, o próximo nível é verificado, etc.

O testador incorporado se atrasa dramaticamente quando o número de pedidos aumenta. A grade TS são seus "assassinos". Eu sugeri tal otimização algorítmica. Não creio que eles o empreenderão.

Aqui não estamos discutindo uma grande quantidade de cálculos internos que acompanham cada tick do testador.