الگوریتم سیاه چاله چیه ؟!

تصویر سیاه چاله اخیر کشف شده
تصویر سیاه چاله اخیر کشف شده

اول در مورد این صحبت کنیم که سیاه چاله چیه بعدش بریم سراغ الگوریتم سیاه چاله.

سیاه چاله

به ناحیه از فضا گفته می شه که در آن جرم بسیار زیادی در یک ناحیه کوچک متمرکزه. به عبارت دیگر جرمی به اندازه ۱۰ برابر خورشید در ناحیه ای به اندازه شهر تهران جمع شده است. جالبه بدونید که یک قاشق غذاخوری از سیاه چاله جرمی برابر ۹۰۰ میلیارد تن داره. این جرم متراکم میدان گرانشی قدرتمندی ایجاد می کنه که حتی نور هم نمی تونه از اون فرار کنه. در این حالته که فضا زمان جمع می شود و حالت نقطه ای پیدا می کنه.

افق رویداد (event horizon) ناحیه ای از سیاه چاله است که به محض اینکه نور وارد آن شود جذب می شود این ناحیه شعاعی دارد که با شعاع Schwarzschild شناخته می شود که در ادامه این نوشته با نام شعاع افق رویداد به آن اشاره شده است.

قسمت های مختلف سیاه چاله
قسمت های مختلف سیاه چاله

الگوریتم سیاه چاله

این الگوریتم یک الگوریتم فراابتکاری است که مبتنی برجمعیت است. مثل سایر الگوریتم های فرا ابتکاری این روش هم از طبیعت الهام گرفته است. در این روش از مفهوم مکیدن ستاره ها توسط سیاه چاله به عنوان فضای جستجو استفاده شده است. در این الگوریتم جمعیت اولیه از ستاره ها ایجاد می شوند و ارزش هر راه حل بررسی می شود. بهترین راه حل به عنوان سیاه چاله در نظر گرفته می شود.

طبق رابطه زیر موقعیت جدید هر ستاره برحسب ستاره قبلی و موقعیت سیاه چاله تعیین می شود.

موقعیت جدید هر ستاره بر حسب موقعیت قبلی آن
موقعیت جدید هر ستاره بر حسب موقعیت قبلی آن

مقدار x نشان دهنده موقعیت ستاره در t و t+1

مقدار XBH : موقعیت سیاه چاله

مقدار Rand : تصادفی بین 0 و 1

مقدار N : تعداد ستاره ها (راه حل ها)

بعد از اینکه ستاره به موقعیت جدید رفت تابع ارزش آن و تابع ارزش سیاه چاله را حساب می کنیم. اگر تابع ارزش ستاره بهتر بود آن ستاره به عنوان سیاه چاله در دور بعدی در نظر گرفته می شود و همه ستاره ها به سمت آن حرکت می کنند.

عبور ستاره از افق رویداد

اگر یک ستاره از افق رویداد یک سیاه چاله عبور کند توسط آن سیاه چاله بلعیده می شود (یعنی این جواب حذف می شود) برای اینکه تعداد ستاره ها تغییر نکند اگر چنین شرایطی پیش اومد یک ستاره به صورت تصادفی در فضای جستجو ایجاد می کنیم.

شعاع افق رویداد سیاه چاله توسط رابطه زیر محاسبه می شود

شعاع افق رویداد سیاه چاله
شعاع افق رویداد سیاه چاله

متغیر fBH : مقدار ارزش سیاه چاله

متغیر fi : مقدار ارزش هر یک از ستاره ها

فلوچارت الگوریتم سیاه چاله

همانطور که در شکل نشان داده شده است

  1. ابتدا تعدادی ستاره به عنوان جمعیت اولیه تولید می شود
  2. یک ستاره به عنوان سیاه چاله در نظر گرفته می شود
  3. موقعیت جدید ستاره ها برحسب رابطه ای که گفته شد حساب می شود
  4. اگر تابع ارزش ستاره ای بهتر از تابع ارزش سیاه چاله باشد آن ستاره به عنوان سیاه چاله در نظر گرفته می شود و به مرحله ۳ می رود در غیر این صورت به مرحله بعدی می رود
  5. در این مرحله فاصله هر ستاره از سیاه چاله محاسبه می شود اگر فاصله آن کمتر از شعاع افق رخداد بود آن ستاره حذف می شود و یک ستاره به صورت تصادفی به جای آن در فضای جستجو قرار می گیرد
  6. یک شرطی برای پایان الگوریتم در نظر می گیریم اگر محقق شد الگوریتم تمام شده و موقعیت سیاه چاله به عنوان یک جواب نزدیک به بهینه در نظر گرفته می شود.
فلوچارت الگوریتم سیاه چاله
فلوچارت الگوریتم سیاه چاله