Оптимизация на основе биогеографии
на основе биогеографии ( BBO ) — это эволюционный алгоритм (EA), который оптимизирует функцию Оптимизация путем стохастического и итеративного улучшения возможных решений с учетом заданной меры качества или функции приспособленности . BBO принадлежит к классу метаэвристик , поскольку включает множество вариаций, не делает никаких предположений относительно проблемы и, следовательно, может применяться к широкому классу задач.
BBO обычно используется для оптимизации многомерных вещественных функций, но он не использует градиент функции, а это означает, что он не требует, чтобы функция была дифференцируемой, как того требуют классические методы оптимизации, такие как градиентный спуск и методы квазиньютона. . Таким образом, BBO можно использовать для разрывных функций .
BBO оптимизирует проблему, поддерживая совокупность возможных решений и создавая новые возможные решения, комбинируя существующие по простой формуле. Таким образом, целевая функция рассматривается как черный ящик, который просто обеспечивает меру качества данного возможного решения, и градиент функции не требуется.
Как и многие эксперты, BBO руководствовался естественным процессом; в частности, BBO был мотивирован биогеографией , которая изучает распространение биологических видов во времени и пространстве. [1] BBO был первоначально представлен Дэном Саймоном в 2008 году. [2]
Основополагающие принципы
[ редактировать ]Математические модели биогеографии описывают видообразование (эволюцию новых видов ), миграцию видов (животных, рыб, птиц или насекомых) между островами и исчезновение видов. [3] Говорят, что острова, благоприятные для жизни, имеют высокий индекс пригодности среды обитания (HSI). [4] Характеристики, которые коррелируют с HSI, включают количество осадков, растительное разнообразие, топографическое разнообразие, площадь суши, температуру и другие. Определяющие характеристики называются переменными индекса пригодности (SIV). С точки зрения обитаемости, SIV являются независимыми переменными, а HSI — зависимой переменной.
На островах с высоким HSI могут обитать многие виды, а на островах с низким HSI — только несколько видов. На островах с высоким HSI обитает множество видов, которые мигрируют в близлежащие места обитания из-за больших популяций и большого количества видов, которые на них обитают. Обратите внимание, что эмиграция с острова с высоким HSI происходит не потому, что виды хотят покинуть свой дом; в конце концов, их родной остров — привлекательное место для жизни. Эмиграция происходит из-за накопления случайных воздействий на большое количество видов с большими популяциями. Эмиграция происходит, когда животные передвигаются по обломкам , плавают, летают или летают по ветру на соседние острова. Когда вид эмигрирует с острова, это не означает, что вид полностью исчезает со своего первоначального острова; эмигрируют лишь немногие представители, поэтому мигрирующий вид остается на своем первоначальном острове, одновременно мигрируя на соседний остров. Однако в BBO предполагается, что эмиграция с острова приводит к вымиранию с этого острова. Это предположение необходимо в BBO, поскольку виды представляют собой независимые переменные функции, а каждый остров представляет собой возможное решение проблемы оптимизации функции.
Острова с высоким HSI имеют не только высокий уровень эмиграции, но и низкий уровень иммиграции, поскольку на них уже обитает множество видов. Виды, мигрирующие на такие острова, будут иметь тенденцию вымирать, несмотря на высокий HSI острова, потому что существует слишком большая конкуренция за ресурсы со стороны других видов.
Острова с низким HSI имеют высокий уровень иммиграции из-за низкой численности населения. Опять же, это происходит не потому, что виды хотят иммигрировать на такие острова; в конце концов, эти острова — нежелательное место для жизни. Причина иммиграции на эти острова заключается в том, что здесь много места для дополнительных видов. Смогут ли иммигрирующие виды выжить в своем новом доме и как долго – это другой вопрос. Однако разнообразие видов коррелирует с HSI, поэтому, когда больше видов прибывает на остров с низким HSI, HSI острова будет иметь тенденцию к увеличению. [4]
Рисунок справа иллюстрирует модель островной миграции. [3] Уровень иммиграции и уровень эмиграции являются функцией количества видов на острове. Максимально возможный уровень иммиграции происходит, когда на острове нет видов. По мере увеличения числа видов остров становится более густонаселенным, меньше видов способно пережить иммиграцию, а уровень иммиграции снижается. Максимально возможное количество видов, которое может поддерживать среда обитания, равно , в этот момент уровень иммиграции равен нулю. Если на острове нет видов, то уровень эмиграции равен нулю. По мере увеличения количества видов на острове он становится более перенаселенным, все больше представителей видов могут покинуть остров, а уровень эмиграции увеличивается. Когда на острове обитает наибольшее количество возможных видов , уровень эмиграции достигает максимально возможного значения .
В ББО, это вероятность того, что данная независимая переменная в -то решение-кандидат будет заменено; то есть, вероятность иммиграции . Если необходимо заменить независимую переменную, то решение-кандидат на эмиграцию выбирается с вероятностью, пропорциональной вероятности эмиграции. . Обычно это выполняется с помощью выбора колеса рулетки .
для , где — количество решений-кандидатов в популяции.
Алгоритм
[ редактировать ]Как и большинство других советников, BBO включает мутацию . Базовый алгоритм BBO с размером популяции для оптимизации -мерную функцию можно описать следующим образом.
Initialize a population of candidate solutions While not(termination criterion) For each , set emigration probability fitness of , do with For each , set immigration probability do For each individual do For each independent variable index do Use to probabilistically decide whether to immigrate to If immigrating then Use to probabilistically select the emigrating individual End if Next independent variable index: Probabilistically mutate Next individual: Next generation
Обсуждение алгоритма BBO
[ редактировать ]- Численность населения является параметром настройки. Если слишком мал или слишком велик, то производительность оптимизации BBO пострадает. Типичные реализации BBO используют значение где-то между 20 и 200.
- Начальная совокупность решений-кандидатов обычно генерируется случайным образом. Однако его можно сгенерировать в зависимости от задачи, основываясь на некоторых разумных предположениях или ранее известных хороших решениях задачи оптимизации.
- Критерий завершения зависит от проблемы, как и в любом другом советнике. В большинстве приложений критерием завершения является предел количества генераций или предел оценки функции (то есть частота вычисления целевой функции).
- является временной совокупностью, так что все эмигрирующие переменные могут происходить из совокупности, существующей в начале поколения, то есть .
Алгоритмические варианты
[ редактировать ]Было предложено множество вариаций базового алгоритма BBO, среди которых следующие.
- Элитаризм реализован в большинстве советников, чтобы гарантировать, что лучшее решение-кандидат не потеряется от одного поколения к другому. Это можно реализовать разными способами, но один из распространенных способов — сохранять лучшие возможные решения в начале каждого поколения в наборе. ; затем замените худшие возможные решения на в конце поколения, после завершения миграции и мутации. Размер является параметром настройки, но обычно включает в себя двух лучших людей. для генетических алгоритмов . Первоначально элитизм был предложен ДеДжонгом [5] Элитизм может существенно повлиять на производительность BBO, и его настоятельно рекомендуется использовать.
- Замена дубликатов часто реализуется в BBO. Это процедура в конце каждого поколения, которая заменяет повторяющихся особей в популяции. Сканирование дубликатов может потребовать больших вычислительных ресурсов, поскольку это операция, поэтому она часто выполняется только каждые несколько поколений, а не каждое поколение.
- Смешение может быть реализовано в BBO. Со смешиванием, вместо замены в решении кандидата-иммигранта с из решения эмигрирующего кандидата, устанавливается равным линейной комбинации его исходного значения и :
- где , и соответствует стандартной миграции, как показано в алгоритме выше. Blended BBO основан на смешанном скрещивании генетических алгоритмов. [6] и было показано, что он превосходит стандартный BBO. [7]
- Алгоритм BBO, представленный выше, называется BBO на основе частичной иммиграции, поскольку решение-иммигрирующий кандидат выбирается до того, как будет выбрано решение-эмигрирующий кандидат, и миграция для каждой независимой переменной в решении-кандидате-иммиграции выполняется независимо от всех других независимых переменных. Также были предложены другие подходы к выбору решений для иммигрантов и эмигрирующих кандидатов. [8] [9]
- Кривые миграции на рисунке выше линейны, но нелинейные кривые миграции часто дают лучшую производительность. [10]
Гибридизация
[ редактировать ]- BBO был гибридизирован с несколькими другими советниками, включая оптимизацию роя частиц , [9] [11] дифференциальная эволюция , [12] стратегия эволюции , [13] основанные на оппозиции вычисления , [14] рассуждение по прецедентам , [15] алгоритм искусственной пчелиной семьи , [ нужна ссылка ] оптимизация бактериального кормления, [16] поиск гармонии , [17] и симплексный алгоритм . [18]
- BBO можно объединить с локальным поиском для создания меметического алгоритма , который работает намного лучше, чем один BBO. [19]
Программное обеспечение
[ редактировать ]МАТЛАБ
[ редактировать ]- Следующий код MATLAB дает реализацию BBO для минимизации 20-мерной функции Розенброка . Обратите внимание, что следующий код очень прост, хотя и включает в себя элитарность. Серьезная реализация BBO должна включать некоторые из рассмотренных выше вариантов, такие как замена дубликатов, смешивание, нелинейная миграция и локальная оптимизация.
function BBO% Biogeography-based optimization (BBO) to minimize a continuous function% This program was tested with MATLAB R2012bGenerationLimit = 50; % generation count limit PopulationSize = 50; % population sizeProblemDimension = 20; % number of variables in each solution (i.e., problem dimension)MutationProbability = 0.04; % mutation probability per solution per independent variableNumberOfElites = 2; % how many of the best solutions to keep from one generation to the nextMinDomain = -2.048; % lower bound of each element of the function domainMaxDomain = +2.048; % upper bound of each element of the function domain% Initialize the populationrng(round(sum(100*clock))); % initialize the random number generatorx = zeros(PopulationSize, ProblemDimension); % allocate memory for the populationfor index = 1 : PopulationSize % randomly initialize the population x(index, :) = MinDomain + (MaxDomain - MinDomain) * rand(1, ProblemDimension);endCost = RosenbrockCost(x); % compute the cost of each individual [x, Cost] = PopulationSort(x, Cost); % sort the population from best to worstMinimumCost = zeros(GenerationLimit, 1); % allocate memoryMinimumCost(1) = Cost(1); % save the best cost at each generation in the MinimumCost arraydisp(['Generation 0 min cost = ', num2str(MinimumCost(1))]);z = zeros(PopulationSize, ProblemDimension); % allocate memory for the temporary population% Compute migration rates, assuming the population is sorted from most fit to least fitmu = (PopulationSize + 1 - (1:PopulationSize)) / (PopulationSize + 1); % emigration ratelambda = 1 - mu; % immigration ratefor Generation = 1 : GenerationLimit % Save the best solutions and costs in the elite arrays EliteSolutions = x(1 : NumberOfElites, :); EliteCosts = Cost(1 : NumberOfElites); % Use migration rates to decide how much information to share between solutions for k = 1 : PopulationSize % Probabilistic migration to the k-th solution for j = 1 : ProblemDimension if rand < lambda(k) % Should we immigrate? % Yes - Pick a solution from which to emigrate (roulette wheel selection) RandomNum = rand * sum(mu); Select = mu(1); SelectIndex = 1; while (RandomNum > Select) && (SelectIndex < PopulationSize) SelectIndex = SelectIndex + 1; Select = Select + mu(SelectIndex); end z(k, j) = x(SelectIndex, j); % this is the migration step else z(k, j) = x(k, j); % no migration for this independent variable end end end % Mutation for k = 1 : PopulationSize for ParameterIndex = 1 : ProblemDimension if rand < MutationProbability z(k, ParameterIndex) = MinDomain + (MaxDomain - MinDomain) * rand; end end end x = z; % replace the solutions with their new migrated and mutated versions Cost = RosenbrockCost(x); % calculate cost [x, Cost] = PopulationSort(x, Cost); % sort the population and costs from best to worst for k = 1 : NumberOfElites % replace the worst individuals with the previous generation's elites x(PopulationSize-k+1, :) = EliteSolutions(k, :); Cost(PopulationSize-k+1) = EliteCosts(k); end [x, Cost] = PopulationSort(x, Cost); % sort the population and costs from best to worst MinimumCost(Generation+1) = Cost(1); disp(['Generation ', num2str(Generation), ' min cost = ', num2str(MinimumCost(Generation+1))])end% Wrap it up by displaying the best solution and by plotting the resultsdisp(['Best solution found = ', num2str(x(1, :))])close allplot(0:GenerationLimit, MinimumCost);xlabel('Generation')ylabel('Minimum Cost')return%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function [x, Cost] = PopulationSort(x, Cost)% Sort the population and costs from best to worst[Cost, indices] = sort(Cost, 'ascend');x = x(indices, :);return%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function [Cost] = RosenbrockCost(x)% Compute the Rosenbrock function value of each element in xNumberOfDimensions = size(x, 2);Cost = zeros(size(x, 1), 1); % allocate memory for the Cost arrayfor PopulationIndex = 1 : length(x) Cost(PopulationIndex) = 0; for i = 1 : NumberOfDimensions-1 Temp1 = x(PopulationIndex, i); Temp2 = x(PopulationIndex, i+1); Cost(PopulationIndex) = Cost(PopulationIndex) + 100 * (Temp2 - Temp1^2)^2 + (Temp1 - 1)^2; endendreturn
Р
[ редактировать ]Расширения
[ редактировать ]BBO был расширен до шумных функций (то есть функций, оценка пригодности которых искажена шумом); [21] ограниченные функции; [22] комбинаторные функции; [23] и многоцелевые функции. [24] [25] Кроме того, был реализован алгоритм многокритериальной оптимизации, основанный на микробиогеографии (μBiMO): он подходит для решения многокритериальных оптимизаций в области промышленного дизайна, поскольку основан на небольшом количестве островов (отсюда и название μBiMO), т.е. требуется несколько вызовов целевой функции. [26]
Математический анализ
[ редактировать ]BBO был математически проанализирован с использованием моделей Маркова. [27] и модели динамических систем. [28]
Приложения
[ редактировать ]Ученые применили BBO в различных академических и промышленных приложениях. Они обнаружили, что BBO работает лучше, чем современные методы глобальной оптимизации.
Например, Ван и др. доказал, что BBO показал равную производительность с FSCABC, но с более простыми кодами. [29]
Ян и др. показало, что BBO превосходит GA, PSO и ABC. [30]
Ссылки
[ редактировать ]- ^ Кваммен, Д. (1997). Песня дронта: биогеография острова в эпоху вымирания . Скрибнер.
- ^ Саймон, Д. (2008). «Оптимизация на основе биогеографии» (PDF) . Транзакции IEEE в эволюционных вычислениях . 12 (6): 702–713. дои : 10.1109/tevc.2008.919004 . S2CID 8319014 .
- ^ Jump up to: а б Макартур, Р.; Уилсон, Э. (1967). Теория островной биогеографии . Издательство Принстонского университета.
- ^ Jump up to: а б Веше, Т.; Гертлер, Г.; Хьюберт, В. (1987). «Модифицированная модель индекса пригодности среды обитания для кумжи на юго-востоке Вайоминга». Североамериканский журнал управления рыболовством . 7 (2): 232–237. doi : 10.1577/1548-8659(1987)7<232:mhsimf>2.0.co;2 .
- ^ Де Йонг, К. (1975). Анализ поведения класса генетических адаптивных систем (доктор философии). Мичиганский университет.
- ^ Муленбейн, Х.; Шлиркэмп-Воозен, Д. (1993). «Прогнозирующие модели для селекционного генетического алгоритма: I. Непрерывная оптимизация параметров». Эволюционные вычисления . 1 (1): 25–49. дои : 10.1162/evco.1993.1.1.25 . S2CID 16085506 .
- ^ Ма, Х.; Саймон, Д. (2011). «Смешанная оптимизация на основе биогеографии для ограниченной оптимизации» (PDF) . Инженерные применения искусственного интеллекта . 24 (3): 517–525. дои : 10.1016/j.engappai.2010.08.005 .
- ^ Саймон, Д. (2013). Алгоритмы эволюционной оптимизации . Уайли.
- ^ Jump up to: а б Кундра, Х.; Суд, М. (2010). «Поиск маршрута по пересеченной местности с использованием гибридного подхода PSO и BBO» (PDF) . Международный журнал компьютерных приложений . 7 (6): 15–19. дои : 10.5120/1167-1370 .
- ^ Ма, Х. (2010). «Анализ равновесия моделей миграции для оптимизации на основе биогеографии» (PDF) . Информационные науки . 180 (18): 3444–3464. дои : 10.1016/j.ins.2010.05.035 .
- ^ Чжан, Ю. (2015). «Обнаружение патологического мозга при сканировании магнитно-резонансной томографии с помощью вейвлет-энтропии и гибридизации оптимизации на основе биогеографии и оптимизации роя частиц» (PDF) . Прогресс в исследованиях в области электромагнетизма . 152 : 41–58. дои : 10.2528/pier15040602 .
- ^ Бхаттачарья, А.; Чаттопадхай, П. (2010). «Гибридная дифференциальная эволюция с оптимизацией на основе биогеографии для решения распределения экономической нагрузки». Транзакции IEEE в энергосистемах . 25 (4): 1955–1964. Бибкод : 2010ITPSy..25.1955B . дои : 10.1109/tpwrs.2010.2043270 . S2CID 30052218 .
- ^ Ду, Д.; Саймон, Д.; Эргезер, М. (2009). «Оптимизация на основе биогеографии в сочетании с эволюционной стратегией и отказом от иммиграции» (PDF) . Конференция IEEE по системам, человеку и кибернетике . Сан-Антонио, Техас. стр. 1023–1028.
- ^ Эргезер, М.; Саймон, Д.; Ду, Д. (2009). «Оппозиционная оптимизация на основе биогеографии» (PDF) . Конференция IEEE по системам, человеку и кибернетике . Сан-Антонио, Техас. стр. 1035–1040.
- ^ Кундра, Х.; Каур, А.; Панчал, В. (2009). «Комплексный подход к оптимизации на основе биогеографии с обоснованием конкретных случаев для изучения возможностей подземных вод» (PDF) . The Delving: Журнал технологий и инженерных наук . 1 (1): 32–38.
- ^ Лохокаре, М.; Паттнаик, С.; Деви, С.; Паниграхи, Б.; Дас, С.; Баквад, К. (2009). «Интеллектуальная оптимизация на основе биогеографии для дискретных переменных». Всемирный конгресс по природе и биологическим вычислениям . Коимбатур, Индия. стр. 1088–1093. дои : 10.1109/NABIC.2009.5393808 .
- ^ Ван, Г.; Го, Л.; Дуань, Х.; Ван, Х.; Лю, Л.; Шао, М. (2013). «Гибридизация поиска гармонии с оптимизацией на основе биогеографии для глобальной числовой оптимизации». Журнал вычислительной и теоретической нанонауки . 10 (10): 2312–2322. Бибкод : 2013JCTN...10.2312W . дои : 10.1166/jctn.2013.3207 .
- ^ Ван, Л.; Сюй, Ю. (2011). «Эффективный гибридный алгоритм оптимизации на основе биогеографии для оценки параметров хаотических систем». Экспертные системы с приложениями . 38 (12): 15103–15109. дои : 10.1016/j.eswa.2011.05.011 .
- ^ Саймон, Д.; Омран, М.; Клерк, М. «Линеаризованная оптимизация на основе биогеографии с повторной инициализацией и локальным поиском» . Проверено 6 сентября 2013 г.
- ^ «Bbo: оптимизация на основе биогеографии» . 18 сентября 2014 г.
- ^ Ма, Х.; Фей, М.; Саймон, Д.; Ю, М. "Биогеографическая оптимизация для зашумленных фитнес-функций" . Проверено 7 сентября 2013 г.
- ^ Рой, П.; Гошал, С.; Тхакур, С. (2010). «Оптимизация на основе биогеографии для оптимального потока мощности с множеством ограничений, выбросами и негладкой функцией стоимости». Экспертные системы с приложениями . 37 (12): 8221–8228. дои : 10.1016/j.eswa.2010.05.064 .
- ^ Сонг, Ю.; Лю, М.; Ван, З. (2010). «Оптимизация на основе биогеографии для задач коммивояжера». Международная совместная конференция по вычислительной науке и оптимизации . Хуаншань, Аньхой, Китай. стр. 295–299.
- ^ Рой, П.; Гошал, С.; Тхакур, С. (2010). «Многоцелевой оптимальный поток энергии с использованием оптимизации на основе биогеографии». Электроэнергетические компоненты и системы . 38 (12): 1406–1426. дои : 10.1080/15325001003735176 . S2CID 109069222 .
- ^ Борода, П.; Дугиеро, Ф.; Моньяски, Мэн; Савини, А.; Виак, С. (2016). «Многокритериальная оптимизация на основе биогеографии и проектирование MEMS». Транзакции IEEE по магнетизму . 52 (3): 1–4. Бибкод : 2016ITM.... 5288982D дои : 10.1109/TMAG.2015.2488982 . S2CID 17355264 .
- ^ Моньяски, Мэн (2017). «Многоцелевая оптимизация промышленного электромагнитного проектирования на основе микробиогеографии». Электронные письма . 53 (22): 1458–1460. дои : 10.1049/эл.2017.3072 .
- ^ Саймон, Д.; Эргезер, М.; Ду, Д.; Рарик, Р. (2011). «Марковские модели для оптимизации на основе биогеографии» (PDF) . Транзакции IEEE о системах, человеке и кибернетике. Часть B: Кибернетика . 41 (1): 299–306. дои : 10.1109/tsmcb.2010.2051149 . ПМИД 20595090 . S2CID 11852624 .
- ^ Саймон, Д. (2011). «Модель динамической системы оптимизации на основе биогеографии» (PDF) . Прикладные мягкие вычисления . 1 (8): 5652–5661. дои : 10.1016/j.asoc.2011.03.028 .
- ^ Ван, С. (2015). «Классификация фруктов с помощью вейвлет-энтропии и нейронной сети с прямой связью, обученной с помощью хаотического ABC с масштабированием по фитнесу и оптимизации на основе биогеографии» . Энтропия . 17 (8): 5711–5728. Бибкод : 2015Entrp..17.5711W . дои : 10.3390/e17085711 .
- ^ Ян, Г.; Ян, Дж. (2015). «Автоматическая классификация изображений мозга с использованием вейвлет-энергии и оптимизации на основе биогеографии». Мультимедийные инструменты и приложения . 75 (23): 15601–15617. дои : 10.1007/s11042-015-2649-7 . S2CID 254825916 .