多目的最適化

AlphaEvolve は、複数の同時目標に対して最適化できます。AlphaEvolve は複数目標の最適化をサポートしていますが、個々の目標の数は、結果を分析する際に人間の専門家が把握できる程度の数に制限してください。

次のアプローチを使用して、多目的検索戦略を構築します。

  1. 複合目的関数: 多目的最適化のアプローチの 1 つは、複合目的関数を活用することです。

    obj = w1 * in_stock_rate - w2 * inventory_level
    
  2. 1 つの目標を制約として扱う: 別の方法として、1 つの目標を制約として扱う方法があります。これは、一方の指標がしきい値を上回ったり下回ったりしないようにしながら、もう一方の指標を最適化する場合に便利です。

    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. 辞書に個別の指標としてさまざまな指標を含めます。このアプローチに関連する主な考慮事項は次のとおりです。

    • 複数目標の最適化は 3 ~ 5 個の指標に制限します。指標が多すぎると、パレート比較が失敗します。ほぼすべてのプログラムが少なくとも 1 つの指標で優位になります。MAP Elites は、些細な指標やノイズの多い指標を最適化する親の進化にほとんどの時間を費やします。集計、選択、PCA を使用して次元を削減し、3 ~ 5 個の有意義な指標にします。

    • ベンチマークごとの個々のスコアは、過適合を引き起こす可能性があります。5 つのベンチマークの個々のスコアを渡すと、一部のベンチマークで過適合が発生する可能性があります。一方、集計された合計のみを渡すと、見えないベンチマークに対してより適切に一般化されます。一般化が重要な場合は、各ベンチマークを個別に最適化するのではなく、AlphaEvolve に渡す前にスコアを集計することを検討してください。

この機能を有効にすると、AlphaEvolve はパレート フロンティアを追跡し、MAP-Elites は各指標の最適なプログラムを保持します。ただし、重み付けされたスコアを組み合わせることで、推論とデバッグがよりシンプルになります。