19
ﺧﻄﯽ ﻏﻴﺮ ﺳﺎزﯼ ﺑﻬﻴﻨﻪ ﻧﺎ ﻣﻘﻳﻞ ﻣﺴﺎ هﺎﻮرﻳ اﻟﮕ ﻳﻞ ﻮرﻳ ﻢ

ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

بهينه سازی غير خطی

مقيد نا مسايل های يالگوريتم يل ی م وري

Page 2: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

. هدف حل مساله است که در آن

لاگ ق ال ل ا ف طال ا ا ش ا لذا اش ذ ش ا ل اش ا ک يک تابع پيوسته باشد و لزوما مشتق پذير نباشد لذا از روشهای به اصطالح مرتبه صفر برای حل مساله قبلfاگر

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

)موضوع سمينار( .است  Nelder‐Meadمتلب تيز از آن استفاده می شود، روش سيمپلکس fminsearchدستور

x = fminsearch(fun,x0)

banana = @(x)100*(x(2)‐x(1)^2)^2+(1‐x(1))^2;

[x,fval] = fminsearch(banana,[‐1.2, 1])[x,fval]   fminsearch(banana,[ 1.2, 1])

x =[1.0000 1.0000], fval = 8.1777e‐010:خروجی متلب

Page 3: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

اگر در نقطه جهتی مانند باشد که. اگر يک تابع مشتق پذير باشد: ١قضيه اين چنين را يک جهت کاهشی . آنگاه وجود دارد بطوريکه

.گويند

Page 4: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

روشهای جهت کاهشی با جستجوی خطی.يک حدس اوليه از جواب انتخاب کنيد: ١

:تا برقراری شرط توقف گامهای زير را انجام دهيدکن٢ انتخا کت ت ک .يک جهت حرکت انتخاب کنيد:٢.طول گام مناسب را انتخاب کنيد:٣دهيد:۴ .قرار ي : ر .ر

.دو نکته اصلی در الگوريتم قبل، انتخاب يک جهت حرکت و محاسبه طول گام مناسب استهم برای انتخاب جهت و هم محاسبه طول گام روشهای متعددی ارايه شده است که در ادامه برخی

.از آنها را معرفی می کنيم

Page 5: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

در اين روش الگوريتم از يک نقطه اوليه شروع و با حرکت در جهت منفی گراديان با طول : روش تندترين کاهش.گام مناسب عمل می کند

:برای تعيين تابع زير را بر حسب در نظر بگيريد

0)( )()()()()1( >∇−=+ kkkkk withxfxx αα

(k)α(k)αيري ب ر ر ب بر ر زير بع يين ی بر

.هدف پيدا کردن بهترين است که

α

(k) (k) (k) (k)g( ) f(x - f(x ))α α= ∇(k)α

(k) (k)g( )<f(x )α

.مقدار پارامتر را با اسنفاده از چند روش می توان تخمين زد که اين را جستجوی خطی گويند:به دنبال حل مساله زير برای پارامتر هستيمdدر جستجوی خطی در جهت کاهشی

( )kα

اين مساله را می توان از روشهای . همانطور که واضح است نياز به حل يک مساله مينيمم سازی يک متغيره داريمک ل اتلف ق تا ا ا فقط ا ت طال تق ش ش ا اش ذ شتق تا اگ اگر تابع مشتق پذير نباشد از روش دوبخشی و تقسيم طاليی می توان فقط با محاسبه تابع مقدار.مختلفی حل کرد

.ولی اگر تابع مشتق پذير باشد می توان از روشهايی همچون نيوتن استفاده کرد. مينيمم آن را بدست اورد

Page 6: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

:تابع زير را در نظر بگيريد: مثال

با شروع از داريم

که در آن

Page 7: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

با استفاده از روش وتری و در نتيجه تکرار جديد نيز به صورتزير است

نمودار ا

Page 8: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

برای تکرار دوم داريم و

.که به دست می آيد و

Page 9: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

برای تکرار سوم داريم و

توجه کنيد که مينيمم .که به دست می آيد و در نتيجه .واقعی است که پس از سه تکرار تقريبا به آن رسيده ايم

تابع درجه دوم را در نظر بگيريد که در آن يک : مثالت ا ت ث ن ه ن ن تقا تات ه ان اد گ ش ها ا تک تکرارهای روش گراديان به صورت .ماتريس متقارن و نيمه معين مثبت است

زير است

Page 10: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

که در آن وآ

گ گ آ چون تابع محدب است پس اگر آنگاه جواب بهينه است و الگورتم خاتمه گپس کمترين مقدار . ولی اگر آنگاه تابع محدب است . پيدا می کند

افتد م اتفاق آن گراديان ريشه در .آن در ريشه گراديان آن اتفاق می افتدآن

ااگ ا .اما پس .اگر

Page 11: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

.بنابراين با شروع از هر نقطه دلخواه، در . تابع را در نظر بگيريد: ١مثال

ن آ نه ا ه ش کا ت تن ش ا تک .يک تکرار روش تندترين کاهش به جواب بهينه آن يعنی می رسدک

گ٢ثال ظ ا اتا ل ق ثال ا قا در مقايسه با مثال قبل، در اين.تابع را در نظر بگيريد: ٢مثال.مثال روش تندترين کاهش تکرارهای زيادی برای رسيدن به جواب نياز دارد

Page 12: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

ا گ تقض ذ شتق ت تا ک کن ض ف فرض کنيد يک تابع پيوسته مشتق پذير روی مجموعه بسته و :قضيه همگرايیآنگاه هر نقطه حدی از دنباله توليد شده توسط . کراندار باشد

.رشو تندترين کاهش در شرط صدق می کند

برای توابع درجه دوم محدب داريم

. کوچکترين مقدار ويژه هسيان تابع است و aبزرگترين مقدار ويژه هسيان و Aکه در آن بخاطر ١٩٧۵کانترويچ برنده جايزه نوبل در سال . نامساوی قبل به نامساوی کانترويچ معروف است. ارايه کاربردهای برنامه ريزی خطی در اقتصاد شد ر ی ريزی بر ی ربر ي ر

متاسفانه اين کران در حل مسايل اغلب اتفاق می افتد که نشان از بد بودن روش تندترين کاهش در حل . مسايلی است که نسبت مقادير ويژه بزرگ به کوچک آن بسيار بزرگ است چ ی

چون در نزديکی جواب بهينه توابع غير درجه دو نيز همانند درجه دو هستند پس چنين رفتاری برای آن .توابع نيز اتفاق می افتد

Page 13: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

خروجی الگوريتم تندترين کاهش به . تابع را در نظر بگيريد: مثال .صورت زير است

Page 14: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

.تابع را در نظر بگيريد: مثال

Page 15: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

ل 22xث2فرض کنيد:مثال

21

21 ,

1)( Rx

xxxxxf ∈−

+=

3 73

⎡ ⎤⎢ ⎥⎡ )با شروع از داريم⎤ ) ( )3 6 4, ( )

3 2 16 4

k kx f x⎢ ⎥⎡ ⎤

= ⇒ ∇ = ⎢ ⎥⎢ ⎥⎣ ⎦ ⎢ ⎥

⎢ ⎥⎣ ⎦

⎤⎡ 37

⎥⎥⎥

⎢⎢⎢

−⎥⎦

⎤⎢⎣

⎡=+

64216437

33 )()1( kkx α

37

1)64213)(

64373(

)64373(

64373)(

)()(

2)(

)()(

−−−

−+−=

kk

k

kkgαα

ααα

Page 16: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

:روش نيوتن:در اين روش يک تقريب درجه دوم از تابع در نقطه به صورت زير استفاده می شود

حاال اگر هسيان معين مثبت .. سپس با استفاده از شرط الزم مرتبه اول داريم باشد داريم

.طول گام در اين حالت يک فرض شده است ولی در حالت کلی لزوما اينطور نيست.معين مثبت باشد آنگاه جهت يک جهت کاهشی است fاگر هسيان تابع : قضيه

تابع زير را در نظر بگيريد: ١مثال

با شروع از نقطه داريم

H=H

Page 17: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

:تکرار اول

:تکرار دوم

:تکرار سوم

Page 18: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

:روش نيوتنکنيد:١ حل را دستگاه .دستگاه را حل کنيد:١.قرار دهيد : ٢

گ :تابع درجه دوم زير را در نظر بگيريد:مثال

گراديان و هسيان آن به صورت زير است

اگر هسيان معين مثبت باشد آنگاه روش نيوتن برای اين مساله به صورت زير است

.به عبارت ديگر روش نيوتن در يک گام به جواب بهينه می رسد

Page 19: ﺪﻴﻘﻣ ﺎﻧ ﻞﻳﺎﺴﻣ ﯼﺎه …staff.guilan.ac.ir/staff/users/salahi/fckeditor_repo/...α()k ﯼﺎﻬﺷور زا ناﻮﺗ ﯽﻣ ار ﻪﻟﺎﺴﻣ ﻦﻳا

.تابع را در نظر بگيريد: مثالاست زير صورت به آن بهينه جواب و هسيان :گراديان، ور زير ن ب ب بهي ن و جو ي ن ي :ر

است آمده زير جدول در نيوتن روش تکرارهای روش نيوتن در جدول زير آمده استتکرارهای