AlphaEvolve יכול לבצע אופטימיזציה לכמה יעדים בו-זמנית. למרות ש-AlphaEvolve תומך באופטימיזציה של כמה יעדים, כדאי להגביל את מספר היעדים למספר שמומחה אנושי יכול להבין כשהוא מנתח את התוצאות.
כדי לבנות את אסטרטגיית החיפוש עם כמה יעדים, אפשר להשתמש בגישות הבאות:
פונקציית יעד משולבת: גישה אחת לאופטימיזציה של כמה יעדים היא להשתמש בפונקציית יעד משולבת:
obj = w1 * in_stock_rate - w2 * inventory_levelהתייחסות ליעד אחד כמגבלה: גישה אחרת היא להתייחס ליעד אחד כמגבלה. האפשרות הזו שימושית כשרוצים לבצע אופטימיזציה של מדד אחד, ובמקביל למנוע ממדד אחר לרדת מתחת לסף מסוים או לעלות מעליו.
obj = in_stock_rate` # Optimize this # With: inventory_level <= budget (enforced as penalty where if inventory # level exceeds budget then a high negative value is returned)כדי להשתמש בגישה הזו, יכול להיות שתצטרכו להריץ כמה ניסויים ברמות שונות של אילוצים כדי לשרטט את חזית פארטו.
לכלול מדדים שונים כמדדים נפרדים במילון. אלה השיקולים העיקריים שקשורים לגישה הזו:
הגבילו את האופטימיזציה מרובת היעדים ל-3 עד 5 מדדים. אם יש יותר מדי מדדים, ההשוואה לפי פארטו נכשלת – כמעט כל תוכנית שולטת במדד אחד לפחות. ב-MAP Elites, רוב הזמן מושקע בפיתוח הורים שמבצעים אופטימיזציה של מדדים טריוויאליים או רועשים. צמצמו את המאפיינים באמצעות צבירה, בחירה או PCA ל-3 עד 5 מדדים משמעותיים.
ציונים נפרדים לכל נקודת השוואה יכולים לגרום להתאמת יתר (overfitting). העברת ציונים נפרדים ל-5 נקודות השוואה יכולה להוביל להתאמת יתר (overfitting) בחלק מהן, ואילו העברת הסכום המצטבר בלבד מאפשרת הכללה טובה יותר לנקודות השוואה שלא נראו. אם ההכללה חשובה, כדאי לצבור את הציונים לפני שמעבירים אותם ל-AlphaEvolve, במקום לבצע אופטימיזציה של כל נקודת השוואה בנפרד.
כשמפעילים את התכונה הזו, AlphaEvolve עוקב אחרי חזית פארטו ו-MAP-Elites שומר את התוכנית הכי טובה לכל מדד. עם זאת, ציונים משוקללים משולבים מאפשרים הסקה וניפוי באגים פשוטים יותר.