What is saealib

saealibはサロゲート型進化的アルゴリズム(SAEA)のpython向け汎用ライブラリです. 進化的アルゴリズム(EA)やサロゲートモデル,モデル管理戦略などがモジュール化されており,組み合わせることでアルゴリズムを構築,実行します.

What is SAEAs

進化的アルゴリズム(EA)は生物の進化を模倣した最適化アルゴリズムです. しかし進化の過程で,個体の評価を繰り返し行う必要があるため,高コスト最適化問題に対して課題があります.

SAEAはこの課題のために,軽量な数理モデルによる評価の代替を行い,高コストな評価の回数を削減します.

一般的なEA (GA)

        flowchart TD
    A[初期集団の生成] --> B["目的関数による評価"]
    B --> C[親の選択]
    C --> D[選択・交叉・突然変異]
    D --> E["目的関数による評価"]
    E --> F[次世代の選択]
    F --> G{終了条件?}
    G -- No --> C
    G -- Yes --> H[最良解を返す]

    style B fill:#e57373,color:#fff,stroke:#c62828
    style D fill:#e57373,color:#fff,stroke:#c62828
    

世代ごとに集団全体を評価するため,評価コストが大きくなります.

SAEA (個体ベースGA)

        flowchart TD
    A[初期集団の生成] --> B["目的関数による評価"]
    B --> D[親の選択]
    D --> E[選択・交叉・突然変異]
    E --> F[サロゲートモデルの構築]
    F --> G["獲得関数によるスコアリング"]
    G --> H[有望な候補解の選択]
    H --> I["目的関数による評価"]
    I --> J{終了条件?}
    J -- No --> D
    J -- Yes --> K[最良解を返す]

    style B fill:#e57373,color:#fff,stroke:#c62828
    style H fill:#e57373,color:#fff,stroke:#c62828
    style F fill:#81c784,color:#fff,stroke:#2e7d32
    

真の評価を行う個体数を絞ることで,全体の評価コストを大幅に削減します.