# What is saealib saealibはサロゲート型進化的アルゴリズム(SAEA)のpython向け汎用ライブラリです. 進化的アルゴリズム(EA)やサロゲートモデル,モデル管理戦略などがモジュール化されており,組み合わせることでアルゴリズムを構築,実行します. ## What is SAEAs 進化的アルゴリズム(EA)は生物の進化を模倣した最適化アルゴリズムです. しかし進化の過程で,個体の評価を繰り返し行う必要があるため,高コスト最適化問題に対して課題があります. SAEAはこの課題のために,軽量な数理モデルによる評価の代替を行い,高コストな評価の回数を削減します. ### 一般的なEA (GA) ```{mermaid} 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) ```{mermaid} 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 ``` 真の評価を行う個体数を絞ることで,全体の評価コストを大幅に削減します.