はじめに 前回の記事でチーム分けの問題を平均偏差最小化問題として定式化し、Python+PuLPで厳密に解く方法を紹介しました。その中で、組合せ最適化問題は問題が大規模になると厳密に解くことが難しくなることを述べました。 そこで、今回はPython+simannealを使った焼きなまし法による近似解法を紹介します。 simannealとは simannealは焼きなまし法のためのパッケージです。 インストール方法 基本的な使い方 Annealerクラスのサブクラスを作成する。 move()をオーバーライドし、探索点の移動ルールを実装 energy()をオーバーライドし、目的関数を実装 作成したクラスのコンストラクタに初期解を与えて問題オブジェクトを作成する。 問題オブジェクト.anneal()で焼きなまし法を実行する。 問題オブジェクト.stateで解を取得する。 最適化問題の制約はmov