Следующий пример показывает, как экспортируют проблема так, чтобы, когда вы импортируете его и нажимаете 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.