levando a ajuda do salão) - página 3

 

O problema é resolúvel. Todas as ferramentas necessárias estão em CodeBase.

Basta escrever um intérprete para converter os valores dos genes (espaço contínuo) em um espaço discreto necessário para o problema.

O problema é reduzido à minimização do ff=MathAbs(f-H)

onde f=a+b+c+....

 
vitali_yv:

O cálculo em mql5 pode levar uma vida útil do TC)


Na verdade, só estou dizendo que você pode e deve dispensar se, e um pouco sobre o fato de que o mql4 ainda é mais rápido que o vb6 e muito mais rápido.

Comprimento da expressão 6, número de variantes de uma variável - 30, a expressão mql4 é resolvida em 493 segundos (8 min). Assim, a expressão de duração 7 levará 4 horas para ser resolvida. 8 é de 120 horas)).

Se as condições são constantes (os mesmos números) e o comprimento da expressão é limitado, você pode trabalhar duro, criar uma matriz com soluções prontas, e então recuperar o valor em tempo real por índices.

 
Integer:



O comprimento da expressão é 6, o número de variantes de uma variável é 30, em mql4 é resolvido em 493 segundos (8 min). Assim, a duração da expressão 7 será resolvida em 4 horas. 8 é de 120 horas).


E as somas são 17 )
 
vitali_yv:
E as somas são 17 )


Então a tspp também não é uma ajuda.

Em mt5 6 variáveis, 30 números resolvidos em 90 segundos (em um computador diferente, no entanto).

 
Integer:


Então a tspp também não é uma ajuda.

Em mt5 há 6 variáveis, 30 números resolvidos em 90 segundos (mas em um computador diferente).

O que vocês estão fazendo? Onde você conseguiu números tão assustadores? Tenho redes com milhares de balanças treinadas em poucos minutos, e aqui....
 
joo:
O que vocês estão fazendo? De onde vêm esses números assustadores? Tenho redes com milhares de balanças treinadas em poucos minutos, e aqui....


Experimente:

int start()
  {
//----
   int c[]={10, 12, 14, 17, 21, 25, 30, 36, 43, 52, 62, 74, 89, 107, 128, 154, 185, 222, 266, 319, 383, 460, 552, 662, 795, 954, 1145, 1374, 1648, 1978};
   int Find=-1;
   

         int start=TimeLocal();
            for(int i1=0;i1<ArraySize(c);i1++){
            for(int i2=0;i2<ArraySize(c);i2++){
            for(int i3=0;i3<ArraySize(c);i3++){
               Comment(i1," ",i2," ",i3);
            for(int i4=0;i4<ArraySize(c);i4++){
            for(int i5=0;i5<ArraySize(c);i5++){
            for(int i6=0;i6<ArraySize(c);i6++){
               int s=c[i1]+c[i2]+c[i3]+c[i3]+c[i4]+c[i5]+c[i6];   
            } 
            }
            }
            }
            }
            }
      

   
   Alert("! "+(TimeLocal()-start));
//----
   return(0);
  }
 
Integer:


Experimente:

Não, eu não jogo dessa maneira. :(

Eu nem vou tentar. Por que eu deveria? Quando há métodos mais civilizados para encontrar uma solução em vez de força bruta estúpida.

 
joo:

Não, eu não jogo dessa maneira. :(

Eu nem vou experimentá-los. Para quê? Quando há métodos mais civilizados para encontrar uma solução em vez de força bruta estúpida.

Infelizmente, para muitas tarefas, ainda não existem métodos civilizados para resolvê-las.

 
Integer:

Infelizmente, ainda há muitos problemas que carecem de métodos civilizados de solução.

Eles existem. Só que muitas vezes não sabemos sobre eles.

OK. Verificar se entendi corretamente as condições do problema:

Resolva o achado x se a*x+b*x+c*x.....=H, a, b, c pode tomar valores (10, 12, 14, 17, 21, 25, 30, 36, 43, 52, 62, 74, 89, 107, 128, 154, 185, 222, 266, 319, 383, 460, 552, 662, 795, 954, 1145, 1374, 1648, 1978).


A questão permanece pouco clara - quantos a, b, c.... existem no problema?


Sou como uma criança, estou me apaixonando pelo "Fraco? :)

Parece-me que o problema não é de importância prática, posso estar errado. Se eu conseguir condições completas do problema - eu darei uma solução "civilizada". E vou usar esse kit de ferramentas, do qual falei.

 

Essa não é a tarefa em mãos.

Um algoritmo genético não vai ajudar. Aproximar (minimizar) uma função não significa mover-se na direção correta, você pode ficar ao lado dela, mas a entrada está do outro lado. Não pode ser "só um pouquinho certo" aqui.