Harmony Search که با عناوین "soft computing algorithm" یا "evolutionary algorithm" نیز شناخته می شود، الگوریتمی است که با الهام از نحوه شکل گیری و چگونگی عملکرد یک ارکستر موسیقی به دنبال راه حل بهینه و یا به عبارت ملموس تر، بهترین هماهنگی بین اجزا دخیل در راهبری یک پروسه است ... همان طور که نوازنده ها در یک ارکستر قطعات موسیقایی را می نوازند تا از بین آنها بهترین ترکیب، محصول نهایی را پدید آورد Harmony Search نیز از بررسی نتیجه عملکرد اجزا به دنبال هماهنگی مطلوب است .
Harmony Search برای حل مسائل به دنبال یافتن Vector (مسیر) x است تا بوسیله آن cost (هزینه) توابع محاسباتی را کاهش دهد (کوتاهتر نماید).
مراحل این الگوریتم بدین شکل است :
1 : k مسیر(vector) اتفاقی برمیگزیند
2: برای هر بخش مسیر، x' جدید به شکل x'i با شروط زیر خواهیم ساخت :
* با در نظر گرفتن احتمال phmcr یکی از بخش های
را از اجزاء موجود در حافظه انتخاب میکنیم (ازبین مسیرهایی که قبلا گفته شد).
* حال، با احتمال 1 − phmcr از بازه مجاز یک "مقدار" را انتخاب می کنیم.(اجزاء حاظر در حافظه)
3 : جفت و جور کردن تنظیمات : برای هر x'i بدین شرح :
* تغییر x'i با در نظر داشتن احتمال ppar به میزان کمی چون
* و احتمالات 1 − ppar را هیچ تغییری نخواهیم داد .
4 : اگر x' از بدترین xi که در بین اجزاء موجود در حافظه وجود دارد، بهتر باشد آنگاه xi را با x' جابجا می کنیم.
5 : مرحله 2 به بعد را تا آخرین عضو از اجزاءحافظه تکرار می کنیم.
پارامترهای جستجو عبارتند از :
> k, سایز حافظه زا مشخص می کند، مقدر توصیه شده بین 4 تا 10 می باشد.
> phmcr, نرخ انتخاب از اجزاء حافظه است و مقدار پیشنهادی 0.95 می باشد.
> ppar, نرخ تنظیم گام، مقدار پیش فرض بین 0.3 تا 0.99 است.
> bw پهنای باند مسیر است که تغییر مقدار تنظیم گام را نیز دربر دارد.
تغییر پارامترها در حین عمل جستجو میسر می باشد (همانند تاثیری که در simulated annealing خواهیم داشت)
در جهت بهبود عملکرد Harmony Search افزایش خطی مقدار ppar با کاهش نمایی bw پیشنهاد می شود.
HS کـجا ؟
از زمره مسائلی که با این الگوریتم قابل حل و بهینه سازی اند می توان به موارد زیر اشاره نمود :
> مسئله فروشنده دوره گرد
> توابع مختلف ریاضی
> طراحی شبکه توزیع آب
> کالیبراسیون پارامتر هیدرولوجیک