Championnat d'optimisation des algorithmes. - page 79

 
Andrey Dik:
C'est génial ! Les approches non conventionnelles sont, sinon la clé du succès, du moins une bonne base pour celui-ci. Alors, allez-vous vous mesurer à vos collègues dans le championnat ?
J'étais intéressé par la résolution du problème proposé.
J'ai fini le jardin d'enfants il y a longtemps :)
 
Andrey Dik:

"Je n'y crois pas !" (с)

Bien sûr, on peut coller le dictionnaire de Dahl ou d'Ozhegov dans l'algorithme et le comparer avec des mots connus, mais si le texte du problème ne contient aucun mot significatif (par exemple, un ensemble de lettres aléatoires), l'algorithme est sûr de "péter les plombs".

Je ne ferais pas de déclarations non fondées.

Pour cette chaîne particulière, mon algorithme a besoin de 904 accès au FF.

Pour la même longueur de chaîne (49 caractères) mais avec n'importe quel autre texte (même avec des lettres complètement absurdes et aléatoires), le nombre d'appels FF sera légèrement différent.

En d'autres termes, les lettres elles-mêmes déterminent le nombre exact d'accès.

La variation est d'environ ( +/- 40) appels en fonction de l'ensemble particulier de lettres.

Lorsque l'on modifie la longueur de la corde, le nombre d'occurrences augmente, mais la proportion reste la même. Soit, pour chaque personnage, une moyenne de 15 à 20 appels au FF.

On peut donc estimer que pour une chaîne de 100 caractères, environ 2000 appels sont nécessaires. Et ainsi de suite...

La précision de la chaîne sera toujours de 100 %.

Voici comment fonctionne mon algorithme.

 
Event:
J'étais intéressé par la résolution du problème proposé.
Combattre - J'ai fini la maternelle il y a longtemps :)
vous pouvez vérifier

//+------------------------------------------------------------------+
//|                                                  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:
Vous pouvez vérifier.

J'ai vérifié - votre algorithme a quelques appels d'avance sur le mien à 49 caractères, mais lorsque vous augmentez le nombre de caractères, le mien est clairement en avance sur le vôtre de quelques centaines.

Essayez de mettre ça : "rarement, un article académique combine, ces deux types." Tu reçois 1113 appels, j'en reçois 891.

Je pense que si vous continuez à augmenter le nombre de caractères dans la ligne, la différence ne fera qu'augmenter.

Je vérifierai demain.

 
Реter Konow:

J'ai vérifié - votre algorithme a quelques appels d'avance sur le mien à 49 caractères, mais lorsque vous augmentez le nombre de caractères, le mien est clairement en avance sur le vôtre de quelques centaines.

Essayez de mettre ça : "rarement, un article académique combine, ces deux types." Tu reçois 1113 appels, j'en reçois 891.

Je pense que si vous augmentez encore le nombre de caractères de la chaîne, la différence ne fera qu'augmenter.

Je vérifierai demain.

Je n'ai pas prétendu que la mienne était meilleure que la vôtre). (Félicitations !
 
Реter Konow:
Événement:

Vous utilisez tous deux la connaissance du FF du problème d'optimisation. C'est-à-dire que vous résolvez le problème "de front".

Mais le but du championnat est d'optimiser un FF inconnu. Que feront vos algorithmes s'il s'avère que le problème a une étape 0, ou que l'intervalle se trouve sur la ligne des nombres entiers ? Ou si la dépendance de la valeur FF par rapport aux paramètres est non linéaire ?

En connaissant le temps moyen par appel FF, vous pouvez calculer avec précision le temps qu'il faudrait pour résoudre le problème dans un tel cas, et cela pourrait bien prendre plus de temps que le temps d'existence de l'univers.

Vos algorithmes ne sont pas universels et adaptés à une tâche particulière ; ils sont bons à leur manière, mais inadaptés même pour optimiser des conseillers experts simples, sans parler des TS sur les réseaux neuronaux et l'intelligence artificielle.

Pensez à l'universalité, pensez à ce que vous feriez si vous ne connaissez pas le contenu de la tâche avec le texte, sinon la tâche du 11 juillet sera une noix trop dure à casser pour vos algorithmes.

ZZYEvent, en effet, j'ai vérifié, si le texte consiste en les premières lettres d'une touche comme "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", le nombre d'appels FF est ridiculement bas, et c'est totalement compréhensible pourquoi.

ZZZY.rettag,Event, vous êtes bon de toute façon - vous avez fait preuve d'ingéniosité.

 
Andrey Dik:

Vous utilisez tous deux des connaissances sur le FF du problème d'optimisation. C'est-à-dire que vous résolvez le problème "de front".

Mais le but du problème est d'optimiser un FF inconnu. Que feront vos algorithmes s'il s'avère que le problème a une étape 0, ou que l'intervalle se trouve sur la ligne des nombres entiers ? Ou si la dépendance de la valeur FF par rapport aux paramètres est non linéaire ?

En connaissant le temps moyen par appel FF, vous pouvez calculer avec précision le temps qu'il faudrait pour résoudre le problème dans un tel cas, et cela pourrait bien prendre plus de temps que le temps d'existence de l'univers.

Vos algorithmes ne sont pas universels et adaptés à une tâche particulière ; ils sont bons à leur manière, mais inadaptés même pour optimiser des conseillers experts simples, sans parler des TS sur les réseaux neuronaux et l'intelligence artificielle.

Pensez à l'universalité, pensez à ce que vous feriez si vous ne connaissez pas le contenu de la tâche avec le texte, sinon la tâche du 11 juillet sera une noix trop dure à casser pour vos algorithmes.

ZSEvent, en effet, j'ai vérifié, si le texte consiste en les premières lettres d'une touche comme "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", le nombre d'appels FF est ridiculement faible, et il est parfaitement compréhensible pourquoi.

Ne m'agitez pas et ne me prenez pas pour acquis. Je ne suis pas impliqué dans vos jeux.
J'ai même peur d'appeler ma version un algorithme. Juste quelques lignes :)

PS Et ne me traite pas avec tant de condescendance. J'ai même versé une larme ;)
 
Andrey Dik:

Vous utilisez tous deux des connaissances sur le FF du problème d'optimisation. C'est-à-dire que vous résolvez le problème "de front".


C'est ce que j'ai fait, j'ai résolu le problème de front, mais j'ai laissé un certain potentiel pour le développement d'algorithmes. Je pense avoir les bases pour résoudre des problèmes de texte similaires et pouvoir encore m'améliorer.

D'ici le 11 juillet, je disposerai de la solution finale à des problèmes textuels similaires de plus grande complexité.

 
Event:
N'essayez pas de m'agiter et de me mener en bateau. Je ne participe pas à vos jeux.
J'ai même peur d'appeler ça un algorithme. Juste quelques lignes :)

PS Et ne me traite pas avec tant de condescendance. J'ai même versé une larme ;)

Allez, comment le pourrais-je ? Ni l'un ni l'autre.

Je ne suis pas condescendant, je suis juste (dans ce cas particulier, du moins), en plus, je suis grossier et mufle. Si vous ne voulez pas le faire, ne participez pas, je ne tirerai personne par les oreilles !

;)

ZS. Je peux jongler avec trois objets de quelques kilos, et je peux me tenir sur la tête, mais si je viens montrer mes compétences dans un cirque, les artistes me diront la même chose que ce que je vous ai dit.

 
Реter Konow:

C'est vrai, j'ai résolu le problème de front, mais j'ai laissé du potentiel pour développer l'algorithme. Je pense avoir les bases pour résoudre de tels problèmes de texte et pouvoir les améliorer encore.

D'ici le 11 juillet, je disposerai de la version finale de la solution à des problèmes textuels similaires de plus grande complexité.

Alors préparez-vous pour le problème du championnat, vous avez déjà fait un "échauffement" avec "excellent".