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
真の評価を行う個体数を絞ることで,全体の評価コストを大幅に削減します.