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

 
Andrey Dik:
Isso é ótimo! Abordagens não convencionais são, se não a chave para o sucesso, pelo menos uma boa base para isso. Então, você vai competir contra seus colegas no campeonato?
Eu estava interessado em resolver o problema proposto.
Eu terminei o jardim de infância há muito tempo :)
 
Andrey Dik:

"Eu não acredito!" (с)

Bem, é claro, você pode colar o dicionário de Dahl ou Ozhegov no algoritmo e compará-lo com palavras conhecidas, mas então se o texto no problema não tiver palavras significativas (por exemplo - um conjunto aleatório de letras), então o algoritmo definitivamente falhará.

Eu não faria declarações infundadas.

Para esta seqüência específica, meu algoritmo precisa de 904 acessos ao FF.

Para o mesmo comprimento de cadeia (49 caracteres), mas com qualquer outro texto (mesmo com um conjunto completo de letras sem sentido e aleatórias), a quantidade de chamadas FF será ligeiramente diferente.

Em outras palavras, as próprias letras determinam o número exato de acessos.

A variação é em torno de ( +/- 40) chamadas, dependendo do conjunto particular de cartas.

Quando você muda o comprimento da corda, o número de acertos aumenta, mas a proporção permanece a mesma. Isto é, para cada personagem, uma média de 15 a 20 chamadas para o FF.

Portanto, pode-se estimar que para uma seqüência de 100 caracteres, cerca de 2000 chamadas são necessárias. E assim por diante...

A precisão do fio será sempre 100%.

É assim que meu algoritmo funciona.

 
Event:
Eu estava interessado em resolver o problema proposto.
Luta - Eu terminei o jardim de infância há muito tempo :)
você pode verificar

//+------------------------------------------------------------------+
//|                                                  OptimFFtext.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

// тестовая фитнес функция чемпионата, не известна участникам
#import "FFtext.ex5"
int    GetParamCount();
void   GetParamProperties(double &min,double &max,double &step);
double FF(double &array[]);
int    GetCountRunsFF();
void   PrintCodeToFile(double &param[]);
#import

const int TextLen= 49;
const double EPS = 1 e-6;
double param[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   int Nparam=GetParamCount();
   ArrayResize(param,Nparam);
   ArrayInitialize(param,0.0);
   double temp[];
   ArrayResize(temp,Nparam);
   for(int n=0; n<Nparam;++n)
     {
      ArrayCopy(temp,param);
      double ffParam=FF(param);
      for(int k=1; k<TextLen;++k)
        {
         temp[n]=(double)k;
         double ffTemp=FF(temp);
         if(ffTemp<ffParam-EPS)
           {
            break;
           }
         if(ffTemp>ffParam+EPS)
           {
            ArrayCopy(param,temp);
            break;
           }
        }
     }
   Print("Количество вызовов FF = "+IntegerToString(GetCountRunsFF()));
   PrintCodeToFile(param);
  }
 
Event:
Você pode verificar.

Eu verifiquei - seu algoritmo está algumas chamadas à frente do meu em 49 caracteres, mas quando você aumenta o número de caracteres, o meu está claramente à frente do seu em algumas centenas.

Tente colocar isto: "raramente, um trabalho acadêmico combina, estes, dois, tipos". Você recebe 1113 chamadas, eu recebo 891.

Acho que se você continuar aumentando o número de caracteres na linha, a diferença só vai aumentar.

Vou verificar isso amanhã.

 
Реter Konow:

Eu verifiquei - seu algoritmo está algumas chamadas à frente do meu em 49 caracteres, mas quando você aumenta o número de caracteres, o meu está claramente à frente do seu em algumas centenas.

Tente colocar isto: "raramente, um trabalho acadêmico combina, estes, dois, tipos". Você recebe 1113 chamadas, eu recebo 891.

Acho que se você aumentar ainda mais o número de caracteres na corda, a diferença só vai aumentar.

Vou verificar isso amanhã.

Eu não disse que o meu era melhor que o seu). (Parabéns!
 
Реter Konow:
Evento:

Ambos utilizam o conhecimento do FF do problema de otimização. Ou seja, você está resolvendo o problema "de frente".

Mas o objetivo do campeonato é otimizar um FF desconhecido. O que seus algoritmos farão se se verificar que o problema tem o passo 0, ou se o intervalo estiver em toda a linha numérica? Ou se a dependência do valor de FF dos parâmetros for não linear?

Sabendo o tempo médio por chamada FF, você pode calcular com precisão quanto tempo levaria para resolver o problema em tal caso, e pode bem levar mais tempo do que o tempo de existência do universo.

Seus algoritmos não são universais e ajustados a uma tarefa específica; eles são bons à sua maneira, mas inadequados até mesmo para otimizar Expert Advisors simples, sem mencionar o TS em redes neurais e inteligência artificial.

Pense na universalidade, pense no que você faria se não soubesse o conteúdo da tarefa com texto, caso contrário, a tarefa de 11 de julho será muito difícil de quebrar para seus algoritmos.

ZZYEvento, de fato, eu verifiquei, se o texto consiste das primeiras letras de uma chave como "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", o número de chamadas FF é ridiculamente baixo, e é totalmente compreensível o porquê.

ZZZY.rettag,Event, você é bom de qualquer forma - você mostrou um pouco de engenhosidade.

 
Andrey Dik:

Ambos estão usando o conhecimento do FF do problema de otimização. Ou seja, você está resolvendo o problema "de frente".

Mas o objetivo do problema é otimizar um FF desconhecido. O que seus algoritmos farão se se verificar que o problema tem o passo 0, ou se o intervalo estiver em toda a linha numérica? Ou se a dependência do valor de FF dos parâmetros for não linear?

Sabendo o tempo médio por chamada FF você pode calcular com precisão quanto tempo levará para resolver o problema em tal caso e pode bem levar mais tempo do que o tempo de existência do universo.

Seus algoritmos não são universais e ajustados a uma tarefa específica; eles são bons à sua maneira, mas inadequados até mesmo para otimizar Expert Advisors simples, sem mencionar o TS em redes neurais e inteligência artificial.

Pense na universalidade, pense no que você faria se não soubesse o conteúdo da tarefa com texto, caso contrário, a tarefa de 11 de julho será muito difícil de quebrar para seus algoritmos.

ZSEvento, de fato, eu verifiquei, se o texto consiste das primeiras letras de uma chave como "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", o número de chamadas FF é ridiculamente pequeno, e é perfeitamente compreensível o porquê.

Não me agitar e tomar-me como certa. Eu não estou envolvido em seus jogos.
Tenho até medo de chamar minha versão de algoritmo. Apenas algumas linhas :)

PS E não seja tão condescendente comigo. Eu até verto uma lágrima ;)
 
Andrey Dik:

Ambos estão usando o conhecimento do FF do problema de otimização. Ou seja, você está resolvendo o problema "de frente".


Assim fiz, resolvi o problema de frente, mas deixei algum potencial para o desenvolvimento de algoritmos. Acho que tenho a base para resolver problemas de texto similares e posso ser melhorado ainda mais.

Até 11 de julho, terei pronta a versão final de um problema textual similar de maior complexidade.

 
Event:
Não tente me agitar e me leve para dar uma volta. Eu não participo de seus jogos.
Tenho medo até de chamá-lo de algoritmo. Apenas algumas linhas :)

PS E não seja tão condescendente comigo. Eu até verto uma lágrima ;)

Vá lá, como posso? Nenhum dos dois.

Não sou condescendente, sou justo (neste caso particular, pelo menos), além disso, sou mal-educado e um rústico. Se você não quer fazer isso, não participe, eu não estou arrastando ninguém pelos ouvidos!

;)

ZS. Eu posso fazer malabarismos com quaisquer 3 objetos dentro de um par de quilos, e posso ficar de pé sobre minha cabeça, mas se eu vier e mostrar minhas habilidades em um circo, vou ouvir dos artistas mais ou menos o mesmo que eu disse a vocês.

 
Реter Konow:

É verdade, resolvi o problema de frente, mas deixei algum potencial para o desenvolvimento do algoritmo. Acho que tenho a base para resolver tais problemas de texto e posso melhorá-los ainda mais.

Até 11 de julho, terei pronta a versão final da solução para problemas de texto similares de maior complexidade.

Então se prepare para o problema do campeonato, você já fez o "aquecimento" com "excelente".