‏הצגת רשומות עם תוויות Global Optimization Toolbox. הצג את כל הרשומות
‏הצגת רשומות עם תוויות Global Optimization Toolbox. הצג את כל הרשומות

יום שלישי, 1 בינואר 2013

אז מה היה לנו ?

הבלוג MATLAB with Fun יחגוג בחודש הבא 3 שנים להיווסדו, וזה זמן טוב לעשות כמה סיכומים.

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

בין היתר, יכלתם לקרוא ב-2012 על החידושים בכלי MATLAB ו-Simulink בשתי הגרסאות שיצאו במהלכה (R2012a, R2012b), על יכולות של כלים שונים (כלי אופטימיזציה, כלים לשוק הפיננסי, Wavelet ,SimEvents וכו'...) ועל דרכים ליעל את שיטות העבודה, הקוד והסימולציות שלכם
(System Objects, Simulation Data Inspector, Model Referencing, האצת ביצועים באמצעות FPGA וכו'...). ואפילו יכלתם להוריד קוד MATLAB המסמלץ את פעולת מערכת כיפת ברזל !

העלאת מספר הפוסטים בחודש הביאה לעלייה מרשימה בנתוני הגלישה בבלוג, על פי אתר Google Analytics. בהשוואה ל-2011, חלה ב-2012 עליה במספר הביקורים
בבלוג (31%), במספר המבקרים הייחודיים בו (37%), במספר הדפים הנצפים
בו (33%), בזמן הביקור הממוצע באתר (17%) ובמספר התגובות (88%, הפוסט הכי מטוקבק, אגב, הוא "גילוי פנים בעזרת MATLAB" – קיבל 11 תגובות בחצי שנה).

לפני כשלושה חודשים, הבלוג אפילו הוזכר במסגרת הבלוג "MATLAB Spoken Here" של חברת MathWorks, בפוסט שעסק בקהילות MATLAB ברחבי העולם !

לסיום, הנה רשימת חמשת הפוסטים הנקראים ביותר מאז השקת הבלוג, מהפופולרי ביותר והלאה, אתם מוזמנים לקרוא את אלה שפספסתם:

1. כנגד ארבעה System Toolboxes דיברה תורה (פורסם לפני 20 חודשים)

2. כל המוסיף גורע מזמן הריצה (פורסם לפני 18 חודשים)

3. כיפת ברזל (פוסט של אריאל רובננקו שפורסם לפני 12 חודשים)

4. מה חדש ב-MATLAB ו-Simulink בגרסת R2012a ? (פורסם לפני 10 חודשים)

5. MATLAB 8 ו-Simulink 8 כבר כאן ! (פורסם רק לפני 4 חודשים וכבר במקום החמישי, מסתמן כלהיט היסטרי...)

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

יום ראשון, 15 באפריל 2012

אופטימיות לגבי כלי האופטימיזציה


חנן קביץ "משתלט" על הבלוג פעם נוספת, ובפוסט הנוכחי הוא מספר על כלי האופטימיזציה של MathWorks.

אופטימיזציה הינה תהליך של מציאת הפתרון הטוב ביותר מתוך מגוון פתרונות הקיימים בתוך מרחב מוגדר.

בבית הספר למדנו לפתור בעיות מינימום ומקסימום פשוטות, אך בחיים האמיתיים קיימות בעיות מינימום ומקסימום אשר אינן ניתנות לפתרון באמצעות מספר שורות או אפילו באמצעות דף ועט, ונדרש שימוש בתוכנות מחשב ואלגוריתמים מתקדמים לצורך מציאת הפתרון האופטימלי. וכאן נכנסים לתמונה כלי האופטימיזציה של MathWorks.

האופטימיזציה בסביבת MATLAB מתבצעת באמצעות שני כלים:

1) Optimization Toolbox – אוסף של אלגוריתמים איטרטיבים, נפוצים בתעשיה, המוצאים פתרונות אופטימליים באמצעות חישוב נגזרות (Steepest Descent). בין האלגוריתמים:
  •  fmincon- אלגוריתם למציאת מינימום לבעיות בעלות פונקצית מטרה לא לינארית, תחת אילוצים שונים (לינאריים ולא לינאריים).
  •  fminmax- אלגוריתם למציאת מינימום לבעיות MinMax, תחת אילוצים שונים.
  •  Linear Programming- לפתרון בעיות בעלות פונקצית מטרה לינארית, תחת אילוצים שונים.
  •  Quadratic Programming- לפתרון בעיות קוואדרטיות, תחת אילוצים שונים.
 האוסף העשיר של האלגוריתמים ב-Optimization Toolbox מאפשר לפתור מגוון רחב של בעיות, וזמני הריצה שלהם עד ההתכנסות לפתרון בהחלט סבירים. החסרון המרכזי של הכלי הוא שתמיד קיים סיכוי שהפתרון שמצאנו לבעיה הוא מינימום מקומי ולא מינימום גלובלי.
 2) Global Optimization Toolbox – אוסף של שיטות היוריסטיות למציאת פתרונות אופטימליים גלובלים (הכלי לא מבוסס על חישובי נגזרות). בין האלגוריתמים:
  •  Simulated Annealing- אלגוריתם הממדל את הפיסיקה של תהליך קירור של מתכת. האלגוריתם עובד טוב במיוחד כאשר מרחב חיפוש הפתרון הוא גדול והבעיה היא ללא אילוצים.
  •  Genetic Algorithm- אלגוריתם איטרטיבי זה ממדל תהליך אבולוציוני למציאת פתרונות אופטימליים, והינו נפוץ לביצוע אופטימיזציה גלובלית תחת אילוצים שונים. האלגוריתם מתאים במיוחד לפתרון בעיות אופטימיזציה קומבינטוריות (דוגמת בעית הסוכן הנוסע) בתוך מרחב חיפוש גדול .
  •  Direct Search- אלגוריתם איטרטיבי אשר בכל איטרציה מחפש בסביבה הקרובה של נקודה כלשהי נקודות בהן ערך הפונקציה נמוך יותר, ואם מוצא אחת כזו - הוא בוחר בה כנקודת התחלה לאיטרציה הבאה. האלגוריתם מתאים במיוחד לבעיות בהן פונקצית המטרה איננה גזירה או אינה רציפה. 
היתרון של ה-Global Optimization Toolbox הוא באלגוריתמים המאפשרים למצוא פתרון גלובלי בתוך אוסף גדול של מינימות מקומיות ומאפשרים לפתור בעיות אופטימזיציה קומבינטוריות.

ועם שני כלי האופטימיזציה של MathWorks שפורטו לעיל, בטוח שמעתה פתרון בעיות האופטימיזציה שלכם יהיה אופטימלי ! אז אפשר להיות קצת יותר אופטימיים...

האם ידעתם שבעברית אומרים "מיטוב" ולא "אופטימיזציה"? האם השתמשתם באלגוריתם גנטי על מנת לפתור את בעית הסוכן הנוסע בטיול שערכתם במהלך חופשת הפסח האחרונה?