מבוא לשיטות נומריות/אופטימיזציה

מתוך testwiki
קפיצה לניווט קפיצה לחיפוש

הקדמה: בעיית אופטימיזציה משמשות לפתרון בעיות רבות:

- תכנון ותפעול אופטימליים

- אמידת מודלים סטטיסטיים

- פתרון מערכת משוואות לא לינאריות

שיטות:

  1. שיטת יחס הזהב - Golden Section (שיטת תחום).
  2. שיטת ניוטון (שיטה פתוחה).
  3. שיטת הגרדיאנט.


1) שיטת יחס הזהב

  • נחפש מינימום בתחום סגור בפונקציה [L, U]

יש נקודת אופטימום אחת התחום.

  • הרעיון - להקטין את התחום בין איטרציה לאיטרציה ע"י יחס הזהב.


 ULX2L=5+12X2=L+0.618(UL)

 ULUX1=5+12X1=L+0.3819(UL)


קובץ:Numeriot (9).png


  • שלבי השיטה:

(1) נמצא  X1 ו-  X2 (לפי הנוסחאות למעלה).

(2) נחשב את ערכי הפונקציה בנקודות  F(X1) ו-  f(X2)

(3) אם  f(X1)>f(X2) אז  L=X1 ו-  X1=X2 ומעדכנים את  X2 :  X2=L+0.618(UL)

(4) אם  f(X1)<f(X2) אז  U=X2 ו-  X1=X2 ומעדכנים את  X1 :  X1=L+0.3819(UL)

(5) ממשיכים עד להתכנסות  X1=X2 או  f(X1)=f(X2)

  • השוואת  f(X1)=f(X2) היא בעייתית כי יכול להיות מצב שבו אנחנו משני צידיה של נקודת מינימום
    קובץ:Numeriot (10).png
    ואז אנו מפספסים את נקודת המינימום. אם מצב זה קורה, אז ניתן לזרוק את שתי הנקודות  X1 ו-  X2 ולהקטין את התחום כולו, סימטרית ב-20%.


  • תכונות השיטה:

- זוהי שיטת תחום, כאשר בתחום נקודת אופטימום יחידה.

- התכנסות לינארית

- החלק ה"כבד" הוא חישוב F(X) כי בדר"כ מדובר בפונקציות מאוד מורכבות. בחירה יעילה של נקודת החישוב תחסוך בחישובים.


2) שיטת ניוטון

  • בשיטה זו נחפש נקודה שמאפסת את הנגזרת של הפונקציה וכך נמצא מינימום. איפוס הנגזרת יעשה כמו מציאת שורש של  f(x) באמצעות שיטת ניוטון רפסון.
  • שלבים:

- מנחשים ניחוש התחלתי  x0

- קירוב טיילור סביב הניחוש  f(x)=f(x0)f(x0)(xx0)

- חיתוך עם ציר x:  x=x0f(x0)f(x0)

- האיטרציה הכללית:  x(n+1)=x(n)f(x(n))f(x(n))

  • תכונות השיטה: בדומה לשיטת ניוטון רפסון למציאת שורשים.

- התכנסות מהירה

- נקודת ההתכנסות יכולה להיות מינימום רו מקסימום.

- עלול להתבדר.

- דורש חישוב נגזרות - חלק בדר"כ כבד בתהליך.


3) שיטת הגרדיאנט (ירידה) - משמשת לאופטימיזציה במשתנים מרובים

  • שלבי השיטה:

1) מוצאים את גרדיאנט הפונקציה  f(x)=(fx1,,fxn)

2) בוחרים וקטור פתרון התחלתי

 X(0)=(x1(0)x2(0)xn(0))

3) מחשבים גרדיאנט עבור  x(0) (זיהוי כיוון ירידה מהפתרון הנוכחי).

4) כדי לעדכן את וקטור הפתרון  X עלינו לקבוע את גודל הצעד האופטימלי  α, שיוביל את הפונקציה למינימום ביכוון הירידה.

עדכון הפתרון:  X(k+1)=X(k0α(k)f(X(k))

  • כדי למצוא את  α(k) האופטימלי נשתמש בשיטה נומרית: התקבלה בעיית אופטימיזציה עם משתנה בודד  α(k).

- נגדיר משתנים

 X1(k1)=X1(k)α(k)f(X1(k))

 

 X1(kn)=Xn(k)α(k)f(Xn(k))

- נגדיר פונקציה חדשה:  g(α)=f(X(αk)(k+1))

  • נחפש מינימום של  minαg(α) ולאחר מציאת  α(k) נציב אותו ב-  X(k+1) ונקבל ערך לוקטור, נמשיך עד להתכנסות.