Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как освобожусь, сделаю тесты Вашей FF. По поводу крутости - сами себе противоречите.
Где противоречие? Я ж сказал - оптимизатор МТ самый эффективный из всех свободно доступных в мире, противоречий нет.
Предложенная задача с текстом оформлена в виде библиотеки *.ex5, эксперт для решения задачи в оптимизаторе МТ дан по ссылке выше. Результаты сравнить будет очень интересно.
Результаты сравнить будет очень интересно.
int GetParamCount ();
void GetParamProperties (double &min, double &max, double &step);
double FF ( const double &array [] );
void PrintCodeToFile (double ¶m []);
#import
#define OnStart TmpStart
#include "testpso.mq4" // https://www.mql5.com/en/blogs/post/683577
#undef OnStart
class JooFF: public BaseFunctor
{
public:
JooFF( void ) : BaseFunctor(FFtext::GetParamCount())
{
for(int i = 0; i < this.params; i++)
FFtext::GetParamProperties(this.min[i], this.max[i], this.steps[i]);
}
virtual void test( const int loop )
{
Print("Optimizing " + typename(this));
Swarm swarm(params, max, min, steps);
swarm.optimize(this, loop);
double result[];
swarm.getSolution(result);
FFtext::PrintCodeToFile(result);
}
virtual double calculate( const double &vec[] )
{
return(FFtext::FF(vec));
}
};
void OnStart()
{
JooFF jooFF;
const ulong StartTime = GetMicrosecondCount();
PSOTests::run(1000);
Print("Время: " + (string)(GetMicrosecondCount() - StartTime) + " мкс");
}
Результат
PSO[49] created: 245/15
PSO Processing...
PSO Finished 134584 of 245000 planned passes: true
Время: 1976275 мкс
decodeFF.csv
Т.е. данная МРЧ-реализация не справилась с задачей совсем, либо я не умею ей пользоваться.
Просьба приложить ex5-алгоритма (если исходники закрыты) и пример Script OAC Dik его использования на данной FF.
Хочется погонять Ваш алгоритм.
Возможно, еще кто-нибудь присоединится.
Уже:
rm(list=ls());gc()
library(GenSA)
letters_s <- c(LETTERS, month.name, 1, 2, ' ')
print(letters_s)
set.seed(1)
strings <- letters_s[round(runif(49, 1, 41))]
print(strings)
predictor_number <- 49
par_v <- as.numeric(runif(predictor_number, min = 1, max = length(letters_s)))
par_low <- as.numeric(rep(1, times = predictor_number))
par_upp <- as.numeric(rep(length(letters_s), times = predictor_number))
fitness_f <- function(par){
letters_s <- letters_s
strings <- strings
return(as.numeric(-sum(strings == letters_s[round(par)])))
# print(-sum(strings == letters_s[round(par)]))
}
start <- Sys.time()
sao <- GenSA(par = par_v, fn = fitness_f, lower = par_low, upper = par_upp
, control = list(max.call = 45000, smooth = FALSE, simple.function = FALSE))
trace_ff <- data.frame(sao$trace)$function.value
plot(trace_ff, type = "l")
percent(- sao$value)
final_vector <- letters_s[round(sao$par)]
Sys.time() - start
print(sum(letters_s[round(sao$par)] == strings))
Копия задачи, только с английскими буквами. время работы 2 секунды. Если я не ошибся в вопросе или в теме.
Поясните, пожалуйста, график. Если не тяжело, немного комментариев в коде хотелось бы видеть.
Это сходимость по целевой фукнции: совпадение последовательности символов в векторе длиной 49 с вектором, подгоняемым симуляцией отжига (порядок символов важен). Алфавит из 41 символа...
Задачка колется на 100% менее чем за 2 секунды.
Это сходимость по целевой фукнции: совпадение последовательности символов в векторе длиной 49 с вектором, подгоняемым симуляцией отжига (порядок символов важен). Алфавит из 41 символа...
Задачка колется на 100% менее чем за 2 секунды.
Результаты и само решение непонятно. Поясните пожалуйста.
ЗЫ. не вижу в коде использование библиотеки задачи, посему не факт, что ФФ считается идентично.
decodeFF.csv
Т.е. данная МРЧ-реализация не справилась с задачей совсем.
Ну вот, говорю же, задача со сферой это фантик.