دسته بندی محصولات

صبر کن! کجا می خوای بری؟
قبل از اینکه بری از کد تخفیف Fara10
برای 10% تخفیف خرید استفاده کن

قبل از اینکه بری از کد تخفیف Fara10
برای 10% تخفیف خرید استفاده کن

روش جستجوی فیبوناچی (Fibonacci Search Method) یک الگوریتم عددی قدرتمند برای یافتن ریشه معادلات غیرخطی تک متغیره و یکی از انواع روش های جستجوی غیرخطی است. این روش از دنباله اعداد فیبوناچی، که در طبیعت و ریاضیات نقشی شگفتانگیز دارند، برای تقسیم و جستجوی هوشمندانه بازه جستجو استفاده میکند.
ریشه این روش به قرن سیزدهم و ریاضیدان ایتالیایی، لئوناردو فیبوناچی، باز میگردد. دنباله فیبوناچی، که در آن هر عدد مجموع دو عدد قبلی است، به دلیل تناسبات و کاربردهای فراوان در ریاضیات و طبیعت مشهور است. در ادامه به توضیح این روش می پردازیم
به یاد بیاورید که روش جستجوی طلایی در سراسر روش از همان مقدار P استفاده می نماید. حالا فرض کنید که ما مجاز به تغییر مقدارP از هر مرحله به مرحله دیگر باشیم به طوری که در مرحله k ام در روند کاهش، از مقدار Pk ، در مرحله بعدی از Pk+1 و به همین ترتیب باشیم.
همانطور که در بخش جستجو طلایی گفته شد، هدف ما انتخاب مقادیر متوالی از Pk است به طوری که
0< Pk < 1/2
قرار داشته باشد که منجر به تنها یک تابع ارزیابی جدید در هر مرحله می گردد. جهت بدست آوردن استراتژی مناسب برای انتخاب نقاط ارزیابی، شکل زیر را در نظر بگیرید. در این شکل مشاهده می کنیم که کافی است نقطه Pk را طوری انتخاب نماییم که شرط زیر در آن برقرار باشد:
Pk+1(1-Pk) = 1-2pk
بعد از چندین محاسبه، به فرمول زیر خواهیم رسید:
Pk+1 = 1 – ( Pk / 1 – Pk )
دنباله های بسیاری P1, P2, … وجود دارد که شرط فوق در آنها برقرار است به شرطی که Pk در بازه 0< Pk < 1/2 قرار داشته باشد.

P3 =… = (3 – √5) /2 در شرایط فوق صدق نموده و بهبودی در روش جستجوی طلایی ایجاد می نماید. حال فرض کنید که ما یک دنباله از P1, P2, … داده می شود که شرط های فوق را راضی می نماید و ما از این الگوریتم جستجو در این دنباله استفاده می نماییم. سپس، پس از N بار تکرار الگوریتم، محدوده عدم قطعیت توسط عامل (1- P1) … (1-PN) کاهش می یابد.
بسته به نوع دنباله P1, P2, …، ما عامل کاهش متفاوتی را بدست خواهیم آورد. حال این سوال به ذهن ما خطور می نماید که کدام دنباله P1, P2, … عامل کاهش بالا را به حداقل می رساند؟ این مساله یک مسئله بهینه سازی محدود است که می تواند به طور زیر عنوان گردد:
Min (1- P1) … (1-PN)
S.to Pk+1 = 1 – (Pk / 1 – Pk), k = 1… N -1
0< Pk < 1/2, k = 1… N
قبل از پاسخ دادن به مساله بهینه سازی فوق، ابتدا لازم است دنباله فیبوناچی F1, F2, …را تعریف نماییم. این دنباله به صورت زیر تعریف می گردد. ابتدا با توجه به تعریف مقادیر F-1 =0 , F0 = 1 تعیین می شود. سپس برای هر مقدار k≥0
Fk+1 = Fk + Fk-1
برخی از مقادیر عناصر در روش فیبوناچی به صورت زیر می باشد:
| F8 | F7 | F6 | F5 | F4 | F3 | F2 | F1 |
| 34 | 21 | 13 | 8 | 5 | 3 | 2 | 1 |
حال معلوم است که راه حل مساله بهینه سازی بالا به شرح زیر است:
P1 = 1 – (FN / FN+1), P2 = 1 – (FN -1/ FN) … Pk = 1 – (FN-k+1 / FN-k+2), P1 = 1 – (F1 / F2)
که Fk عناصر دنباله فیبوناچی می باشند. به الگوریتم فوق روش جستجوی فیبوناچی گفته می شود. در روش جستجوی فیبوناچی محدوده عدم قطعیت بوسیله عامل زیر کاهش می یابد:
(1- P1) … (1-PN) = (FN / FN+1)*(FN -1/ FN) … (F1 / F2) = F1 / FN+1 = 1 / FN+1
از آنجا که روش فیبوناچی از مقادیر مطلوب P1, P2, … استفاده می نماید، عامل کاهش دهنده فوق از روش جستجوی طلایی کمترخواهد بود. به عبارت دیگر، روش فیبوناچی بهتر از روش جستجوی طلایی می باشد چرا که طیف عدم قطعیت نهایی را کوچکتر می نماید.
این نکته قابل ذکر اشاره است که یک ناهنجاری در تکرار پایانی روش جستجو فیبوناچی وجود دارد ، زیرا
PN = 1 – (F1 / F2) = 1/2.
به یاد بیاورید که ما به دو نقطه میانی در هر مرحله نیاز داریم، یکی که از تکرار قبلی و دیگری با ارزیابی نقطه جدید بدست می آید. با این حال، با PN =1/2، دو نقطه میانی همزمان در وسط فاصله عدم قطعیت بدست آمده و در نتیجه نمی توانیم محدوده عدم قطعیت را بیشتر کاهش دهیم.
برای رفع این مشکل، ما یک ارزیابی جدید برای آخرین تکرار با استفاده از PN =1/2 – e انجام می دهیم که در آن e مقدار کمی می باشد. به عبارت دیگر، نقطه های جدید ارزیابی نزدیک به سمت چپ یا راست از نقطه میانی فاصله عدم قطعیت قرار خواهند گرفت. این تغییر در روش فیبوناچی، تغییر قابل توجهی در نتیجه عملی به همراه نخواهد داشت.
به عنوان یک نتیجه از تغییر بالا، کاهش عدم قطعیت در آخرین تکرار ممکن است یکی از دو حالت
1 – PN =1/2 یا PN =1 – (PN – e) = 1/2 + e = (1 +2e)/2
بسته به این که کدام یک از دو نقطه مقدار تابع هدف کوچکتری دارد، باشد. بنابراین در بدترین حالت، عامل کاهش دهنده در محدوده عدم قطعیت برای روش فیبوناچی برابر با مقدار زیر خواهد بود:
(1 +2e)/ FN+1
فرض کنید میخواهیم کمینه تابع f(x) را در بازه [a,b] پیدا کنیم.
روش جستجوی فیبوناچی (Fibonacci Search Method) مزایای متعددی دارد که آن را به یک روش قدرتمند و کارآمد برای یافتن ریشه معادلات غیرخطی تک متغیره تبدیل میکند.
مزایای اصلی این روش عبارتند از:
1. سادگی:
2. عدم نیاز به مشتق:
3. پایداری:
4. کاربرد گسترده:

5. سرعت همگرایی مناسب:
6. قابلیت تنظیم دقت:
7. عدم نیاز به حافظه زیاد:
8. پویایی:
در کنار مزایای ذکر شده، روش جستجوی فیبوناچی معایبی نیز دارد که در ادامه به آنها اشاره خواهیم کرد.
در کنار مزایای متعدد، روش جستجوی فیبوناچی (Fibonacci Search Method) دارای معایبی نیز هست که باید قبل از استفاده از آن در نظر گرفته شوند.
معایب اصلی این روش عبارتند از:
1. سرعت همگرایی:
2. محاسبات:
3. عدم وجود ضمانت همگرایی:
4. انتخاب نقاط اولیه:
5. پیچیدگی در پیاده سازی:
6. عدم کارایی برای معادلات با مشتق ساده:
7. نیاز به حافظه:
8. عدم انعطاف پذیری:
با وجود معایب ذکر شده، روش جستجوی فیبوناچی یک روش قدرتمند و کارآمد برای یافتن ریشه معادلات غیرخطی تک متغیره است. انتخاب روش مناسب برای یافتن ریشه معادله به عوامل مختلفی مانند نوع معادله، دقت مورد نظر، منابع محاسباتی موجود بستگی دارد.
روش جستجوی فیبوناچی (Fibonacci Search Method) به دلیل مزایای متعددی که دارد، در طیف وسیعی از مسائل و کاربردهای مختلف به کار میرود.

برخی از کاربردهای این روش عبارتند از:
1. مهندسی:
2. علوم کامپیوتر:
3. مسائل مالی:
4. علوم پایه:
5. پزشکی:
علاوه بر کاربردهای ذکر شده، روش جستجوی فیبوناچی در زمینه های دیگری مانند اکتشاف معادن، هواشناسی، و مهندسی هوافضا نیز کاربرد دارد. در مجموع، روش جستجوی فیبوناچی (Fibonacci Search Method) یک الگوریتم عددی قدرتمند برای یافتن ریشه معادلات غیرخطی تک متغیره است. در ادامه می توانید مثال روش جستجوی طلایی را مشاهده نمایید.
فرض کنید می خواهیم ریشه معادله زیر را با استفاده از روش جستجوی فیبوناچی پیدا کنیم.
F(x) = x4 – 14x3 + 60x2 -70x
از روش جستجوی فیبوناچی به منظور یافتن مقدار x که مقدارf بر روی بازه [0, 2] استفاده نمایید. مقدار x را در میان بازه 0.3 قرار دهید. بعد از N تکرار در بدترین وضعیت بازه جواب توسط (1+2e)/FN+1 کاهش خواهد یافت. لذا باید مقدار N را به صورت زیر انتخاب نماییم.
(1+2e)/FN+1 ≤ بازه نهایی / بازه اولیه ≤ 0.3 /2 = 0.15
لذا باید
FN+1 ≥ (1 + 2e) / 0.15
اگر مقدار e ≤ 0.1 باشد، سپس N =4 خواهد بود.
تکرار اول مثال روش جستجوی فیبوناچی
با این مقدار شروع می کنیم:
1 – P1 = F4 / F5 = 5/8.
حال مقادیر زیر را محاسبه می نماییم:
a1 = a0 + P1 (b0 – a0) = 3/4. b1 = a0 + (1-P1) (b0 – a0) = 5/4.
f(a1) = -24.34 f(b1) = -18.65 f(a1) < f(b1).
بازه به صورت زیر کاهش می یابد:
[a0, b1] = [0, 5/4]
تکرار دوم مثال روش جستجوی فیبوناچی
با این مقدار شروع می کنیم:
1 – P2 = F3 / F4 = 3/5.
حال مقادیر زیر را محاسبه می نماییم:
a2 = a0 + P2 (b1 – a0) = 1/2. b2 = a1 = 3/4
f(a2) = -21.69 f(b2) =f(a1) = -24.34 f(a2) > f(b2).
بازه به صورت زیر کاهش می یابد:
[a2, b1] = [1/2, 5/4]

تکرار سوم مثال روش جستجوی فیبوناچی
با این مقدار شروع می کنیم:
1 – P3 = F2 / F3 = 2/3.
حال مقادیر زیر را محاسبه می نماییم:
a3 = b2= 3/4. b3 = a2 + (1 – p3) (b1 – a2) = 1
f(a3) = f(b2) = -24.34 f(b3) = -23 f(a3) < f(b3).
بازه به صورت زیر کاهش می یابد:
[a2, b3] = [1/2, 1]
تکرار چهارم مثال روش جستجوی فیبوناچی
با این e = 0.05 شروع می کنیم:
1 – P4 = F1 / F2 = 1/2.
حال مقادیر زیر را محاسبه می نماییم:
a4 = a2 + (p4 – e) (b3 – a2) = 0.725. b4 = a3 = 3/4.
f(a4) = -24.27 f(b4) = f(a3) = -24.34 f(a4) > f(b4).
بازه به صورت زیر کاهش می یابد:
[a2, b3] = [0.725, 1] (b3 – a2) => 1 – 0.725 = 0.275 <0.3.
از مقدار تعیین شده کمتر می باشد لذا متوقف می شویم.
اگر به مباحث بهینهسازی و تحقیق در عملیات علاقهمند هستید، پیشنهاد میشود در کنار این مقاله، مطالب مرتبطی مانند روش گرادیان، روش تندترین شیب، روش جستجوی فیبوناچی، روش سکانت، روش نیوتن رافسون و انواع روشهای جستجوی خطی را نیز مطالعه کنید. این روشها از مهمترین الگوریتمهای بهینهسازی هستند و شناخت تفاوتها، مزایا و کاربردهای هر یک، در انتخاب مناسبترین تکنیک برای حل مسائل مختلف نقش مهمی دارد.
همچنین برای آشنایی با سایر روشهای تصمیمگیری و بهینهسازی، مطالعه مقالات روش LINMAP و روش تبادل و جانشینی، روش نیوتن رافسون، روش جستجوی فیبوناچی، روش جستجوی طلایی نیز توصیه میشود. این مطالب به درک بهتر الگوریتمهای بهینهسازی، روشهای جستجو و تکنیکهای حل مسائل پیچیده در تحقیق در عملیات کمک کرده و دید جامعتری نسبت به ابزارهای موجود در اختیار شما قرار میدهند.