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 שומר את התוכנית הכי טובה לכל מדד. עם זאת, ציונים משוקללים משולבים מאפשרים הסבר וניפוי באגים פשוטים יותר.