«بسم الله الرّحمن الرّحیم»
سعی و خطا (trial and error) همچنان مبنای بسیاری از روشهای محاسبات عددی در ریاضیات است. وقتی پای حل معادلات چندمتغیره یا دستگاههای چندمعادله و چندمجهول بزرگ که حل تحلیلی آنها دشوار یا بسیار زمانبر است در میان باشد، روشهای عددی اغلب گزینههای کارآمد و بهصرفهای هستند، بهویژه با کمک گرفتن از کامپیوترها.
مسائل نسبتاً پیچیدهی بهینهسازی (optimization) یا بهینهیابی از جمله مواردی هستند که کاربرد روشهای عددی در آنها چشمگیر است. حالا سالها است که الگوریتمهای فراکاوشی (metaheuristic) برای حل مسائل بهینهسازی معرفی میشوند، از الگوریتم ژنتیک (genetic algorithm) که سالها پیش معرفی شده است تا نمونههای جدیدتر مثل ازدحام ذرات (particle swarm)، کلونی مورچگان (ant colony)، جستوجوی فاخته (cuckoo search)، گرگ خاکستری (grey wolf)، جهش قورباغه (shuffled frog leaping) و بسیاری دیگر. همهی این الگوریتمها کارشان این است که فضای پاسخ را برای رسیدن به پاسخ بهینهی (optimum solution) (مقدار بیشینه یا کمینه) مسألهی موردنظر جستوجو کنند. در اکثر روشهای عددی یک راهبرد مشترک برای رسیدن به پاسخ دنبال میشود: ابتدا یک حدس اولیه برای پاسخ در نظر گرفته میشود و سپس در هر دور تکرار محاسبات، پاسخ جدید یافتشده با بهترین پاسخ پیشین مقایسه میشود و در صورتی که از آن بهتر (بهینهتر) باشد بهعنوان پاسخ مسأله ذخیره میشود تا دور بعد که با پاسخ جدید مقایسه شود و اگر بهتر بود همچنان بهعنوان پاسخ بماند و اگرنه با پاسخ بهتر جدید جایگزین شود. فرآیند تکرار محاسبات تا همگرا شدن به یک پاسخ مشخص و کمتر شدن تغییرات از یک مقدار از پیش تعیینشده ادامه مییابد تا پاسخ مطلوب که در اصطلاح بهینهی سراسری (global optimum) خوانده میشود، حاصل شود. البته باید تدابیری هم برای پرهیز از همگرا شدن به بهینههای موضعی اندیشیده شود، مثل اینکه جستوجو از نقاط مختلف آغاز شود، یا فضای جستوجو به چندین زیرفضا تقسیم شود.
اما در مسائل بهینهسازی یک موضوع مهم وجود دارد که میتواند رسیدن به پاسخ را تا حد زیادی آسان و سریع کند و آن تعریف قیود مسأله است. مثلاً فرض کنید z تابعی از x و y است که جستوجوی پاسخ بهینهی آن مدنظر است. یک قید y > x2 بهسادگی میتواند فضای جستوجوی پاسخ را بسیار محدودتر کند، یعنی جستوجو فقط در ناحیهای انجام میگیرد که شرط بالا در آن صدق کند، فقط جایی که در آن y بزرگتر از x2 باشد. حالا اگر یک قید مثل y = x + 4 هم تعریف شود که دیگر ناحیهی جستوجو به یک پارهخط محدود میشود. یعنی با تعریف این دو قید ساده، از فضای نامحدود مختصات به یک پارهخط رسیدیم. برای پرهیز از همگرا شدن به بهینههای موضعی هم میتوان قیودی را اعمال کرد.
***
ابراهیم (ع) در پی جواب بود. یک جواب پیدا کرد:
«فَلَمَّا جَنَّ عَلَیْهِ اللَّیْلُ رَأَى کَوْکَبًا قَالَ هَذَا رَبِّی فَلَمَّا أَفَلَ قَالَ لَا أُحِبُّ الْآفِلِینَ(1)».
پاسخ قیدش را ارضا نکرد و رد شد. دوباره گشت تا یک جواب بهتر پیدا کرد:
«فَلَمَّا رَأَى الْقَمَرَ بَازِغًا قَالَ هَذَا رَبِّی فَلَمَّا أَفَلَ قَالَ لَئِنْ لَمْ یَهْدِنِی رَبِّی لَأَکُونَنَّ مِنَ الْقَوْمِ الضَّالِّینَ(2)».
بهتر بود، اما باز هم از پس قید ابراهیم (ع) برنمیآمد. پس او باز هم جویای جواب بهتری شد و آن را یافت:
«فَلَمَّا رَأَى الشَّمْسَ بَازِغَةً قَالَ هَذَا رَبِّی هَذَا أَکْبَرُ فَلَمَّا أَفَلَتْ قَالَ یَا قَوْمِ إِنِّی بَرِیءٌ مِمَّا تُشْرِکُونَ(3)».
اما قید ابراهیم (ع) این یکی را هم رد کرد. او قیدهایش را خوب انتخاب کرده بود. قیدهایش جز جواب واقعی، همهی جوابهای دیگر را رد میکردند. جستوجوی او به هیچ بهینهی محلی ختم نمیشد. پس بهخواست پروردگارش به جواب رسید:
«إِنِّی وَجَّهْتُ وَجْهِیَ لِلَّذِی فَطَرَ السَّمَاوَاتِ وَالْأَرْضَ حَنِیفًا وَ مَا أَنَا مِنَ الْمُشْرِکِینَ(4)»
قیدهایمان را که خوب انتخاب کنیم، کمتر سرگردان میشویم، زودتر به جواب میرسیم، به جوابهای واقعی و سراسری، نه بهینههای محلی و دلخوشکنهای موقت.
_________________________________________________________________________
1. أنعام، 76.
2. أنعام، 77.
3. أنعام، 78.
4. أنعام، 79.
_________________________________________________________________________
پینوشت: قبلاً هم عرض کردم که نوشتههایی از این دست ممکن است خیلی عمیق و در جزئیات دقیق نباشند، اما چیزهایی در ذهنم به هم وصل میشوند و حاصل را اینجا مینویسم که شاید بتوانم از نکات دوستان هم بهرهمند شوم. خدا خیرتان دهد اگر حوصله میکنید و این نوع نوشتهها را میخوانید و مضاعف خیرتان دهد اگر مرا هم از نکتهای و نظری بهرهمند میکنید!