Следующий пример показывает, как экспортируют проблема так, чтобы, когда вы импортируете его и нажимаете Start, резюме генетического алгоритма от итоговой генеральной совокупности, сохраненной с экспортируемой проблемой. Чтобы запустить пример, введите следующее в приложение Оптимизации:
Установите Fitness function на @ackleyfcn
, который вычисляет функцию Акли, тестовая функция, которой предоставляют программное обеспечение.
Установите Number of variables на 10
.
Выберите Best fitness в панели Plot functions.
Нажмите Start.
Это отображает следующий график, или подобный.
Предположим, что вы хотите экспериментировать путем выполнения генетического алгоритма с другими настройками опций, и затем более поздним перезапуском это выполнение от его итоговой генеральной совокупности с его текущими настройками опций. Можно сделать это использование следующих шагов:
Нажмите Export to Workspace.
В диалоговом окне, которое появляется,
Выберите Export problem and options to a MATLAB structure named.
Введите имя для проблемы и опций, таких как ackley_uniform
, в текстовом поле.
Выберите Include information needed to resume this run.
Диалоговое окно должно теперь появиться как в следующей фигуре.
Нажмите OK.
Это экспортирует проблему и опции к структуре в рабочей области MATLAB®. Можно просмотреть структуру в Окне Команды MATLAB путем ввода
ackley_uniform ackley_uniform = fitnessfcn: @ackleyfcn nvars: 10 Aineq: [] bineq: [] Aeq: [] beq: [] lb: [] ub: [] nonlcon: [] intcon: [] rngstate: [] solver: 'ga' options: [1x1 struct]
После выполнения генетического алгоритма с настройками различных вариантов или даже различной функцией фитнеса, можно восстановить проблему можно следующим образом:
Выберите Import Problem из меню File. Это открывает диалоговое окно, показанное в следующей фигуре.
Выберите ackley_uniform
.
Нажмите Import.
Это устанавливает поля Initial population и Initial scores в панели Population итоговой генеральной совокупности выполнения, прежде чем вы экспортировали проблему. Все другие опции восстанавливаются своей установке во время того выполнения. Когда вы нажимаете Start, генетический алгоритм возобновляется от сохраненной итоговой генеральной совокупности. Следующие данные показывают лучшие графики фитнеса от исходного выполнения и перезапущенного выполнения.
Если после выполнения генетического алгоритма с импортированной проблемой вы хотите восстановить поведение генетического алгоритма по умолчанию генерации случайной начальной генеральной совокупности, удалите генеральную совокупность в поле Initial population.
Версия функции Акли в тулбоксе отличается от опубликованной версии функции Акли в Ackley [1]. Версия тулбокса имеет другой примененный экспоненциал, ведя к более плоским областям, таким образом, более трудная задача оптимизации.
[1] Ackley, D. H. Ассоциативная машина для генетического преодоления подъема. Kluwer Академические Издатели, Бостон, 1987.
По умолчанию ga
создает новую начальную генеральную совокупность каждый раз, когда вы запускаете его. Однако вы можете получить лучшие результаты при помощи итоговой генеральной совокупности от предыдущего выполнения как начальная генеральная совокупность для нового выполнения. Для этого вы должны иметь сохраненный итоговая генеральная совокупность от предыдущего выполнения путем вызова ga
с синтаксисом
[x,fval,exitflag,output,final_pop] = ga(@fitnessfcn, nvars);
Последним выходным аргументом является итоговая генеральная совокупность. Чтобы запустить ga
с помощью final_pop
в качестве начальной генеральной совокупности, войти
options = optimoptions('ga','InitialPop', final_pop); [x,fval,exitflag,output,final_pop2] = ... ga(@fitnessfcn,nvars,[],[],[],[],[],[],[],options);
Можно затем использовать final_pop2
, итоговую генеральную совокупность от второго выполнения, как начальная генеральная совокупность для третьего выполнения.
В приложении Оптимизации можно принять решение экспортировать проблему способом, которая позволяет вам возобновить выполнение. Просто проверяйте поле Include information needed to resume this run при экспорте проблемы.
Это сохраняет итоговую генеральную совокупность, которая становится начальной генеральной совокупностью, когда импортировано.
Если вы хотите запустить проблему, которая была сохранена с итоговой генеральной совокупностью, но не будет скорее использовать начальную генеральную совокупность, просто удалять или в противном случае изменять начальную генеральную совокупность в панели Options > Population.