Я разработал приложение с Java, которое использует генетические алгоритмы.Моему приложению нужны такие параметры как:
How many genes will be populate at first?
How many genes will be killed after crossover and mutation?
What will be the mutation rate?
Я могу проверить что-то вроде:
How long(milliseconds) does it take to find a solution.
Как мне найти хорошие значения в качестве параметров для моего приложения.Я имею в виду, я дам в качестве входных данных, что результаты:
Genes to populate | Genes to kill | Mutation rate | Result(milliseconds)
---------------------------------------------------------------------------------
50 5 16/1000 146
50 5 16/1000 208
50 5 16/1000 1000
50 5 16/1000 216
100 5 16/1000 178
100 5 16/1000 546
100 5 16/1000 646
100 5 16/1000 46
100 5 16/1000 186
50 10 16/1000 346
50 10 16/1000 246
50 10 16/1000 546
50 5 34/1000 746
50 5 34/1000 186
50 5 34/1000 196
50 10 34/1000 496
50 10 34/1000 23
50 10 34/1000 169
Это случайные результаты.Я не тестировал свою программу.
После запуска этого алгоритма (думаю, я дам результат, который мне подходит, например, 78 миллисекунд), он скажет что-то вроде этого:
You should use that parameters to get a result that takes 78 milliseconds:
Genes to populate | Genes to kill | Mutation rate
--------------------------------------------------------
34 7 24/1000
PS1: Еще один вопрос заключается в том, какой стратегии я должен следовать, чтобы проверить это.Например, просто изменив один параметр и протестировав их несколько раз, изменив другой параметр и т. Д. (Я попытался привести значения в моем примере таким образом) или протестировав некоторые значения и найдя один параметр, всегда используя этот параметр и тестируя другие параметрыкоторый меняет один за другим и находит другой параметр и использует эти два параметра и меняет другой по одному и так далее.
PS2 Я могу использовать API или программу для поискаэто тоже.
РЕДАКТИРОВАТЬ: Это мои переменные, которые я использую сейчас со своими значениями:
MAX_POPULATION_SIZE = 50;
HARD_WEIGHTS = {1,20,1,1,1,20,1};/* It means that I have 7 variables for this */
NUMBER_OF_GENES_TO_KILL = 5;
MUTATION_RATE = 100;
MAX_MUTATION_NUMBER = 1000;
/* Mutation rate is MUTATION_RATE/MAX_MUTATION_NUMBER */