算法优化锦标赛。 - 页 130

 
Andrey Dik:

你可以去任何你喜欢的地方。但是,正如我之前所说的那样,这个冠军赛将举行。根据这些规则,你可以与我竞争,也可以与其他竞争者竞争,也可以不与我竞争。

其他冠军赛可能不同,自己安排,按自己的想法去做。这是个自由的国家。

Voilà!

亲爱的理论家,祝你一切顺利!

 
Реter Konow:

Voilà!

再见了,尊敬的理论家!

不要拿我开玩笑。准备并按规则竞争,而不是试图改变规则以适应你。而且不要只是胡言乱语,最好开始阅读有关优化的相关文献。

亲爱的理论家,祝你一切顺利!

 

问候。

将我的代码从四级编辑器转移到五级编辑器。只有一个错误!用TRUE替换了一个,一切都正常了!欣喜若狂。

这是我在F上的第一个代码。能否请你告诉我,我需要在代码中加入什么内容才能连接到冠军赛?

//+------------------------------------------------------------------+
//|                                                 Yuri skript.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"

//----------Блок глобальных переменных кода-----
Глобальные переменные кода не должны совпадать с 
именами глобальных переменных интерфейса?
//----------------------------------------------

//---------- Блок ввода начальных значений------
input double xmin=0;//min диапазона поиска
input double xmax=100;//max диапазона поиска
input double Xnz=10;// начальные значения X[]
input int N=3;     // число параметров
input double e=0.01; // погрешность поиска
Будет ли известен диапазон поиска, число параметров ?
//----------------------------------------------
void OnStart()
  {
OC();
}
//--------------ОСНОВНАЯ ФУНКЦИЯ---------------
void OC()
{
//---------
// ЗДЕСЬ РАСПОЛОЖЕН АЛГОРИТМ ПОИСКА.ИМЕЕТСЯ НЕСКОЛЬКО ПОДФУНКЦИЙ.
// ФУНКЦИЯ ФОРМИРУЕТ МАССИВ ЗНАЧЕНИЙ X[x1,x2...xn]. 
// ФУНКЦИЯ РАСЧЕТА F() ВЫСЧИТЫВАЕТ И ВОЗВРАЩАЕТ ЗНАЧЕНИЕ ЗАДАННОЙ ФУНКЦИИ И ДАЛЕЕ ПО АЛГОРИТМУ
F();
//----------
}
//------ФУНКЦИЯ РАСЧЕТА ЗАДАННОЙ ФУНКЦИИ НАПРИМЕР F=(exp(X[1]+X[2]+X[3]))/(X[1]*X[2]*X[2]*X[3]*X[3]*X[3]);
double F()
{
if(X[1]==0||X[2]==0||X[3]==0){zn=0;return(F);}
F=(exp(X[1]+X[2]+X[3]))/(X[1]*X[2]*X[2]*X[3]*X[3]*X[3]);
return (F);
}
 
Yuri Evseenkov:

问候。

将我的代码从四级编辑器转移到五级编辑器。只有一个错误!用TRUE替换了一个,一切都正常了!欣喜若狂。

这是我在F上的第一个代码。你能告诉我,我需要在我的代码中插入什么来连接到冠军吗?

你好。

不,这不是好事。

你必须像这样做

脚本 -> BiblAO.ex5 -> ff.ex5

支部的早期是代码的例子,请看一下。现在没有时间,我稍后会展示例子的链接。

 

可执行的锦标赛脚本。

#property script_show_inputs
#property strict

//+------------------------------------------------------------------+
// алгоритм оптимизации участника
#import "ao.ex5"
// инициализация АО
void   InitAO (int paramCount, int maxFFruns);
// запуск АО 
void   StartAlgo (); 
// получить максимальное значение ФФ       
double GetMaxFF (); 
#import
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
// тестовая фитнес функция чемпионата, не известна участникам
#import "ff.ex5"
// запросить количество параметров ФФ 
int    GetParamCount (); 
// запуск ФФ, получеие значения соответствующее параметроам ФФ
double FF (double &array []); 
// произведённое количество запусков ФФ
int    GetCountRunsFF (); 
#import
//+------------------------------------------------------------------+

//--- input parameters
input int MaxFFruns_P = 1000; 


//+------------------------------------------------------------------+
void OnStart () 
{ 
  // узнаем, сколько параметров нужно оптимизировать
  int    paramCount = GetParamCount (); 

  ulong  startTime = GetMicrosecondCount (); 
  
  //------------------------------------------------------------------
  InitAO (paramCount, MaxFFruns_P);
  StartAlgo ();
  //------------------------------------------------------------------
  
  startTime = GetMicrosecondCount () - startTime; 
  
  Print ("Макс: " + DoubleToString (GetMaxFF (), 16)); 
  Print ("Запусков ФФ: " + (string)GetCountRunsFF ()); 
  Print ("Время: " + (string)startTime + " мкс; " + DoubleToString ((double)startTime / 1000000.0, 8) + " c"); 
  Print ("---------------------------------");
}
//+------------------------------------------------------------------+
 

现在我将准备一个FF库的样本(演示界面)和一个参与者的优化算法的例子(工作,可以在任何地方应用)。

请注意:上述脚本已经是自给自足的,要了解对参与者的要求,通过接口和折旧的功能连接你的algo,并准备好参与。剧本在很多页之前就已经给出了....

 

一个FF锦标赛的例子(一切都将是相同的,除了FF函数的内容和分别是G_paramCount 变量--它们将不被参赛者知道,裁判员将进行编译)。

#property library
#property strict

int G_countRuns  = 0; 
int G_paramCount = 3; 

//+------------------------------------------------------------------+
int GetParamCount () export
{ 
  return (G_paramCount);
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
void GetParamProperties (double &min, double &max, double &step) export
{ 
  min  = 0.1; 
  max  = 10.0; 
  step = 0.1;
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
int GetCountRunsFF () export
{ 
  return (G_countRuns);
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
double FF (double &param []) export
{ 
  G_countRuns++; 
  
  int sizeArray = ArraySize (param); 
  if(sizeArray != G_paramCount) 
    return (-DBL_MAX); 
  
  double x1 = param [0];
  double x2 = param [1];
  double x3 = param [2];

  double ffVolue = (-exp(x1+x2+x3))/(x1*x2*x2*x3*x3*x3);
  
  return (ffVolue);
}
//+------------------------------------------------------------------+
 
Andrey Dik:

FF冠军的例子(一切都将是相同的,除了FF函数的内容和相应的变量G_paramCount--它们将不为竞争对手所知,裁判员将进行编译)。

令人惊叹。

当我要求提供这个例子时,你尽然不提供。

现在我已经走了,请--FF的例子。

这有什么意义呢?

 
Реter Konow:

令人惊叹。

当我要求提供这个例子时,你尽然不提供。

现在我走了,而你走了--一个FF的例子。

你这话是什么意思?

这只是一个例子,和文字问题一样,我已经告诉你很多次了。仔细看--连接界面完全一样,就像两滴月光。

你要问的是锦标赛FF的代码,当然你不会得到它,没有人会得到,而且现在的例子中没有,我也不会知道。唯一知道的是通过函数导入的 FF连接接口,这就是例子中显示的内容。清楚吗?那么,我们还能解释多少呢?我不知道。

这些代码已经在分支中显示出来了,我只是为了方便而把它们集中起来。

所以要理解,最好不要让我再解释,而且是对同一个人解释....。

如果你终于明白了一切,那就去吧,写好算法,去战斗吧。你早就应该这样做了,每个人几乎都已经写完了他们的算法(不算那些有现成的算法的人)。

 
Andrey Dik:

这只是一个例子,和文字问题一样,我已经告诉你很多次了。仔细看--连接界面完全一样,就像两滴月光。

你要求的是FF代码,当然你不会得到它,没有人会得到它,而且它现在不在例子中,我也不会知道它。唯一知道的是通过函数导入的 FF连接接口,这就是例子中显示的内容。清楚吗?那么,我们还能解释多少呢?我不知道。

这些代码已经在分支中显示出来了,我只是为了方便而把它们集中起来。

所以要理解,最好是让我不用再解释,而且是对同一个人解释....。

我就是需要这样一个例子。

问题中的那个文本与这个不同。

有一个字符串,而在这里--一个分析函数。

这就是为什么我要求提供一个例子。