Алгоритм поиска гармонии

Поиск гармонии

Алгоритм поиска гармонии был вдохновлен импровизацией джазовых музыкантов. В частности, процесс, с помощью которого музыканты (которые, возможно, никогда раньше не играли вместе) быстро совершенствуют свою индивидуальную импровизацию посредством вариаций, приводящих к эстетической гармонии.

Каждый музыкант соответствует атрибуту в решении-кандидате в области, а высота тона и диапазон каждого инструмента соответствуют границам и ограничениям переменной решения. Гармония между музыкантами рассматривается как полное возможное решение в данный момент времени, а эстетическая оценка гармонии публикой представляет собой конкретную стоимостную функцию проблемы. Музыканты со временем стремятся к гармонии с помощью небольших вариаций и импровизаций, что приводит к улучшению функции стоимости.

Цель поиска гармонии состоит в том, чтобы использовать уже обнаруженные хорошие решения-кандидаты, чтобы влиять на создание новых решений-кандидатов для локализации оптимумов. Это достигается поэтапным стохастическим созданием возможных решений, где каждый компонент либо выбирается случайным образом из памяти высококачественных решений, либо корректируется из памяти высококачественных решений, либо назначается случайным образом в рамках задачи.

Память решений-кандидатов изначально является случайной, и жадный критерий приемлемости используется для принятия новых решений-кандидатов только в том случае, если они имеют улучшенное объективное значение, заменяя существующий элемент.

поиск гармонии

Регулировка высоты тона, выбранная в памяти поиска гармонии, обычно является линейной, например, для непрерывной оптимизации функций:
х = х + диапазон * е
где диапазон — пользовательский параметр (полоса пропускания основного тона) для управления размером изменений, а e — равномерно случайное число в диапазоне [-1; 1].

Алгоритм поиска гармонии был разработан как обобщенный метод оптимизации оптимизация непрерывный, дискретный и ограниченный и применялся ко многим типам задач оптимизации.

Гармония памяти со скоростью (HMCR) в [0; 1] управляет использованием информации из памяти гармонии или генерацией случайной высоты тона. Таким образом, он контролирует скорость сходимости алгоритма и обычно настраивается в [0,7; 0,95]. Скорость регулировки высоты тона (PAR) в [0; 1] управляет частотой настройки выбранных нот в памяти гармонии, обычно устанавливается в [0,1; 0,5]. Высокие значения могут привести к преждевременной сходимости поиска. Скорость регулировки высоты тона и метод регулировки (величина регулировки или ширина лада) обычно фиксированы, что имеет линейный эффект с течением времени.

При создании новой гармонии скопления высот могут передаваться через музыкантов в память гармонии. Обновление памяти гармонии, как правило, является жадным процессом, хотя при замене наиболее похожей гармонии могут учитываться и другие соображения, такие как разнообразие.

Делиться
ru_RURU