多目的最適化

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

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

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

    obj = w1 * in_stock_rate - w2 * inventory_level
    
  2. 1 つの目標を制約として扱う: もう 1 つのアプローチは、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 は各指標に最適なプログラムを保持します。ただし、重み付けされたスコアを組み合わせると、推論とデバッグが簡単になります。