אופטימיזצית הנחיל

מתוך המכלול, האנציקלופדיה היהודית
גרסה מ־03:39, 18 בפברואר 2020 מאת אור האמת (שיחה | תרומות) (ראו גם: תיקון שם הערך, כך שהקישור יוכחל)
קפיצה לניווט קפיצה לחיפוש

אופטימיזצית הנחיל (באנגלית: Particle Swarm Optimization, או בקיצור PSO) היא שיטת אופטימיזציה המבוססת על התנהגות חברתית של נחילים ולהקות בטבע תחת ההבחנה שכל פרט בלהקה מבסס את תנועתו על פי מידע או זיכרון שיש ברשותו לגבי נקודות עניין במרחב ועל פי מיקומם של חברים אחרים בלהקה. שיטה זו הוצגה לראשונה על ידי קנדי ואברהרט בשנת 1995 ושוכללה על ידי שיי (Shi) ב-1998. אופטימיזצית הנחיל היא שיטת אופטימיזציה מטה-היוריסטית, דהיינו לא נסמכת על תכונה כלשהי של הבעיה לפתרון אלא מספקת מנגנון כללי למציאת אופטימום לוקאלי של פונקציית שיערוך נתונה f(x).

אלגוריתם בסיסי

  1. אתחל את אוכלוסיית הנחיל x1,...,xn (מרחב הפתרונות הפוטנציאלים) לערכים אקראיים במרחב החיפוש.
  2. לכל פרט xi באוכלוסייה קבע את besti=xi ואת מהירותו ההתחלתית vi=0.
  3. קבע את gbest כפתרון בעל הערך הטוב ביותר של פונקציית השיערוך f(x) מתוך x1,...,xn.
  4. כל עוד לא התקבל תנאי עצירה בצע:
    1. הסט כל פרט על פי המידע הלוקאלי שלו לגבי הפתרון הטוב ביותר והפתרון הגלובאלי הטוב ביותר: vi=vi+c1*U(0,1)*(bestixi)+c2*U(0,1)*(gbestxi);xi=xi+vi
    2. עדכן עבור כל פרט את הפתרון הלוקאלי הטוב ביותר: besti=argmaxxi,besti{f(x)}
    3. עדכן את הפתרון הגלובאלי הטוב ביותר שיש בנמצא: gbest=argmaxbest1,...,bestn{f(x)}
  5. החזר את gbest

כאשר:

  • U(0,1) היא פונקציה המחזירה וקטור במימד הפתרון שרכיביו נבחרים בהתפלגות אחידה מהתחום (0,1).
  • c1,c2 הם קבועים שמווסתים את מידת הנטייה של הפתרונות בין פתרונות עצמיים מיטביים ופתרון גלובאלי מיטבי ברמת הנחיל. לרוב ניתן לקבוע c12,c22.

ראו גם

קישורים חיצוניים