(57)【要約】【課題】効率的に最適解の探索を継続することのできる組合せ最適解演算装置を得る。【解決手段】初期の組合せ状態を現在解及び最適解として出発し、現在解の隣の状態と定義された第１の隣接状態セットの中から評価関数値が最小である最小隣接解を抽出して現在解に対する改善率が所定値以上のとき現在解を最小隣接解に遷移させ、遷移させた現在解の評価関数値が既得の最適解の評価関数値よりも良ければ現在解を最適解にする。改善率が所定値未満のときは、第１の隣接状態セットとは別の隣の状態と定義された第２の隣接状態セットによる探索に切り替え、第２の隣接状態セットの中から最小隣接解を抽出して現在解に対する改善率が所定値以上のとき現在解を最小隣接解に遷移させ、現在解が最適解よりも良ければ現在解を最適解にする。改善率が所定値未満のときは、第１の隣接状態セットの探索に戻す。この動作を繰り返し、評価関数値が最小となる最適解を求める。【選択図】図２
2009265867.tif 000002
【特許請求の範囲】
【請求項１】
所定の評価関数値が最良となる組合せ状態を最適解として求めるための組合せ最適解演算装置であって、
初期の組合せ状態を現在解及び最適解として出発し、上記現在解の隣の状態と定義された組合せ状態である第１の隣接状態セットの中から上記評価関数値が最良となる第１の最良隣接解を抽出し、
この抽出した第１の最良隣接解の上記評価関数値が上記現在解の上記評価関数値に比較して所定値以上改善されているときすなわち第１の改善率が所定値以上のとき上記現在解を上記第１の最良隣接解に遷移させ、この遷移させた現在解の上記評価関数値が上記最適解の上記評価関数値よりも良い値であれば上記遷移させた現在解を最適解とし、上記第１の改善率が上記所定値以上でないときは上記第１の隣接状態セットとは別の上記現在解の隣の状態と定義された組合せ状態であって上記組合せ状態を大きく変化させる第２の隣接状態セットの中から上記評価関数値が最良となる第２の最良隣接解を抽出し、
上記抽出した第２の最良隣接解の上記評価関数値が上記現在解の上記評価関数値に比較して所定値以上改善されているときすなわち第２の改善率が上記所定値以上のとき上記現在解を上記第２の最良隣接解に遷移させ、この遷移させた現在解の上記評価関数値が上記最適解の上記評価関数値よりも良い値であれば上記遷移させた現在解を最適解とし、上記第２の改善率が上記所定値以上でないとき上記第１の隣接状態セットに戻り上記最適解の探索を継続するものである
組合せ最適解演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、組合せ最適解を求める組合せ組合せ最適解演算装置に関するものであり、ロジスティクス、ＤＮＡの塩基配列類似度を決定する配列アライメント、ＬＳＩ最適配線決定などの各種最適化設計、電力系統における発電機起動停止問題、系統構成作成、目標系統作成ならびに開閉器操作手順作成、最適スケジュール作成、各種最適制御等に使用される。
【背景技術】
【０００２】
従来の組合せ最適化問題の解法として、例えばシミュレーテッドアニーリング法（以下、ＳＡ法という）が提案されている。ＳＡ法は、物理系における焼きなまし過程を計算機上で模擬するものであり、その内容は次の通りである。最初のステップにおいて、組合せ状態を表す初期解ｘと温度を表す値Ｔの初期値（初期温度Ｔ）を設定する。２番目のステップでは、初期解ｘの隣接解ｙを生成する。３番目のステップでは、隣接解ｙと初期解ｘの目的関数（評価関数、この場合はエネルギー）の変化量ΔＥ＝ｆ（ｘ）−ｆ（ｙ）を計算する。４番目のステップでは、ΔＥが負（隣接解ｙの方が初期解ｘより良い解）なら処理を６番目のステップに遷移させ、ΔＥが負でないなら処理を５番目のステップに遷移させる。
【０００３】
５番目のステップでは、区間［０，１］の一様乱数γを発生させ、Ｅｘｐ（−ΔＥ／Ｔ）＞γが成立するかの判定を行い、成立する場合には解の悪化を許容し、処理を６番目のステップに遷移させ、成立しない場合には、初期解ｘの更新を行わないこととし、処理を７番目のステップに遷移させる。なお、Ｅｘｐ（−ΔＥ／Ｔ）＞γが成立する確率は、ΔＥが小さく（初期解ｘに比べた隣接解ｙの解の悪化度合いが小さく）、温度Ｔが大きいほど大きくなる。６番目のステップでは、初期解ｘを隣接解ｙに更新する（初期解ｘを隣接解ｙに遷移させる）、つまり、隣接解ｙを採用する。
【０００４】
７番目のステップでは、平衡状態（多数回この判定を行っても初期解ｘに変化がない状態）になっているかの判定を行い、平衡状態でない場合には、処理を２番目のステップに戻し、平衡状態の場合には、温度Ｔを下げるために処理を８番目のステップに遷移させる。８番目のステップでは、温度Ｔを下げるためにＴをρ（０＜ρ＜１）倍する。９番目のステップでは、基底状態（充分に温度Ｔが低い状態）になったかの判定を行い、基底状態と判定される場合にはその時点の初期解ｘを最適解として処理を終了し、その他の場合には、処理を２番目のステップに戻す（例えば、非特許文献１参照）。
【０００５】
以上のように、このような方法によれば、より悪い状態への遷移が確率的に許されており、組合せ状態を表す初期解ｘが極小解に到達しても、極小解に捕まらずに遷移を継続することが可能となり、より良い解を見つけ出すことが可能となっている。
【０００６】
【非特許文献１】電気学会技術報告第６４７号「新しい電力システム計画手法」財団法人電気学会、１９９７年８月８日発行、第５０頁−第５３頁
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、従来の探索方法を用いて組合せ最適化問題を解く上での最大の技術課題は、いかに極小解から脱出し探索を継続するかにあり、従来から様々な方法が提案されている。これらを大きく分類すると次のようになる。
１）ある確率でより悪い状態への遷移を許す（上述の方法）。
２）許される遷移の中で最良の状態への遷移を繰り返す（極小解においては評価関数値が悪化する遷移が発生する）こととし、遷移に伴い組合せの内容に変化のあった部分に関しては、ある期間、逆向きの変化を禁止することにより、通過した極小解へ戻ることを抑制する。
【０００８】
これら、従来の方式では、探索の効率が隣接状態の定義および初期解の選択に大きく依存し、一部の極小解周辺の探索に探索時間の大部分を費やし、より評価関数値の良い準最適解を見逃すことがしばしばあるという問題点があった。
この発明は、探索方法を用いて組合せ最適化問題を解く上での最大の技術課題である「いかに極小解から脱出し探索を継続するか」に関して、効率的に最適解の探索を継続することのできる組合せ最適解演算装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る組合せ最適解演算装置においては、
所定の評価関数値が最良となる組合せ状態を最適解として求めるための組合せ最適解演算装置であって、
初期の組合せ状態を現在解及び最適解として出発し、現在解の隣の状態と定義された組合せ状態である第１の隣接状態セットの中から評価関数値が最良となる第１の最良隣接解を抽出し、
この抽出した第１の最良隣接解の評価関数値が現在解の評価関数値に比較して所定値以上改善されているときすなわち第１の改善率が所定値以上のとき現在解を第１の最良隣接解に遷移させ、この遷移させた現在解の評価関数値が最適解の評価関数値よりも良い値であれば遷移させた現在解を最適解とし、第１の改善率が所定値以上でないときは第１の隣接状態セットとは別の現在解の隣の状態と定義された組合せ状態であって組合せ状態を大きく変化させる第２の隣接状態セットの中から評価関数値が最良となる第２の最良隣接解を抽出し、
抽出した第２の最良隣接解の評価関数値が現在解の評価関数値に比較して所定値以上改善されているときすなわち第２の改善率が所定値以上のとき現在解を第２の最良隣接解に遷移させ、この遷移させた現在解の評価関数値が最適解の評価関数値よりも良い値であれば遷移させた現在解を最適解とし、第２の改善率が所定値以上でないとき第１の隣接状態セットに戻り最適解の探索を継続するものである。
【発明の効果】
【００１０】
この発明は、所定の評価関数値が最良となる組合せ状態を最適解として求めるための組合せ最適解演算装置であって、
初期の組合せ状態を現在解及び最適解として出発し、現在解の隣の状態と定義された組合せ状態である第１の隣接状態セットの中から評価関数値が最良となる第１の最良隣接解を抽出し、
この抽出した第１の最良隣接解の評価関数値が現在解の評価関数値に比較して所定値以上改善されているときすなわち第１の改善率が所定値以上のとき現在解を第１の最良隣接解に遷移させ、この遷移させた現在解の評価関数値が最適解の評価関数値よりも良い値であれば遷移させた現在解を最適解とし、第１の改善率が所定値以上でないときは第１の隣接状態セットとは別の現在解の隣の状態と定義された組合せ状態であって組合せ状態を大きく変化させる第２の隣接状態セットの中から評価関数値が最良となる第２の最良隣接解を抽出し、
抽出した第２の最良隣接解の評価関数値が現在解の評価関数値に比較して所定値以上改善されているときすなわち第２の改善率が所定値以上のとき現在解を第２の最良隣接解に遷移させ、この遷移させた現在解の評価関数値が最適解の評価関数値よりも良い値であれば遷移させた現在解を最適解とし、第２の改善率が所定値以上でないとき第１の隣接状態セットに戻り最適解の探索を継続するものであるので、
効率的に最適解の探索を継続することができる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１、図２はこの発明の実施の一形態を示すものであり、図１は組合せ最適解演算装置の構成を示すブロック図、図２は組合せ最適解演算装置の動作を示すフローチャートである。この実施の形態は、最小化問題の解法例、すなわち評価関数値のより小さな状態を求める問題の解法例であるが、最大化問題の解法例についても同様に行うことができる。
【００１２】
図１において、組合せ最適解演算装置は、初期状態設定手段１１、評価関数値算出手段１２、定義セット切替手段１３、隣接解着目手段１４、評価関数値評価手段１５、隣接解・現在解比較手段１６、探索条件判定手段１７、隣接状態定義保存手段２１、現在解保存手段２２、最適解保存手段２３、隣接解保存手段２４を有する。このような組合せ最適解演算装置は、例えばＣＰＵと記憶装置を有する計算機により、所定の動作を行うアルゴリズムを記述したプログラムに従ってデータ処理を行うことで実現される。
【００１３】
次に動作について、図２のフローチャートにより説明する。ステップＳ１０１では、初期状態設定手段１１が現在解を開始時点の組合せの状態を表す初期状態の初期解に設定し、評価関数値算出手段１２がその評価関数値を算出する。ステップＳ１０２では、評価関数値算出手段１２が現在解を現在解保存手段２２に記憶させるとともに、最適解保存手段２３に最適解として保存する。ステップＳ１０３では、定義セット切替手段１３が隣接状態の定義を、隣接状態定義保存手段２１から読み出して通常の隣の定義である隣接状態セット１に初期設定する。ステップＳ１０４では、隣接解着目手段１４が現在解の隣接解のうちの１つに着目し、ステップＳ１０５では、着目した隣接解の評価関数値を評価関数値算出手段１２が算出する。
【００１４】
ステップＳ１０６では、評価関数値評価手段１５が評価関数値算出手段１２が算出した隣接解の評価関数値と隣接解保存手段２４に保存されている隣接解の評価関数値とを比較して小さい方の隣接解を隣接解保存手段２４に保存する。ステップＳ１０７では、隣接解着目手段１４が現在解の全ての隣接解に着目したかどうかを判定し、着目していない隣接解が残っていれば、処理をステップＳ１０４に戻し、全ての隣接解に着目済みであれば、ステップＳ１０８へ進む。以上のステップＳ１０７までの動作により、評価関数値が最小の隣接解すなわち最良隣接解としての最小隣接解が抽出される。
【００１５】
ステップＳ１０８では、隣接解・現在解比較手段１６は隣接解保存手段２４に保存されている最小隣接解の評価関数値が、現在解保存手段２２に保存されている現在解の評価関数値よりも一定値以上小さいかどうか、すなわち現在解の評価関数値に対する最小隣接解の評価関数値の改善率としての第１の改善率が所定値以上かどうかを判定し、現在解の評価関数値よりも一定値以上小さければ、処理をステップＳ１０９に進め、ステップＳ１０９では、隣接解・現在解比較手段１６は現在解を評価関数値が最小となる隣接解すなわち評価関数値が最良となる第１の組合せ状態である最小隣接解に遷移させる。つまり、現在解を最小隣接解に置き換える。そうでなければ、処理をステップＳ１１１まで進める。
【００１６】
ステップＳ１１０では、現在解（最小隣接解）の評価関数値が最適解保存手段２３に保存されている最適解の評価関数値より小さければ（良ければ）現在解を最適解として最適解を更新保存する。ステップＳ１１１では、定義セット切替手段１３は隣接状態の定義を切り替える。すなわち、それまで隣接状態セット１で探索していれば隣接状態セット２へ切り替え、逆に、それまで隣接状態セット２で探索していれば隣接状態１へ切り替える。同様の探索を繰り返す。なお、隣接状態セット２での探索においては、ステップＳ１０８における改善率の判定は、現在解の評価関数値に対する最小隣接解の評価関数値の改善率としての第２の改善率が所定値以上かどうかで判定する。
【００１７】
ステップＳ１１２では、探索条件判定手段１７が探索終了条件を満たしたかどうかを判定し、満たしていれば処理を終了し、満たしていなければステップＳ１０４へ処理を戻して探索を継続する。探索終了条件判定は、例えば、「現在解の遷移を所定回数実施したかどうか」で判定する。
【００１８】
なお、上記実施の形態では、組合せ状態の評価関数値が最小になるものが最適解である場合について説明したが、組合せ状態の評価関数値が最大になるものが最適解となる場合も同様にして最適解を求めることができる。この場合、例えば、図２のステップＳ１０６において評価関数値が最小となる最小隣接解を求める代わりに最大となる最大隣接解を求め、ステップＳ１０８において最大隣接解の評価関数値が、現在解の評価関数値よりも一定値以上大きいか否かで判定するなど、大小の関係を逆にする。この発明においては、「最良となる」なる用語は上述のような場合における「最小となる」及び「最大となる」の両者を含むものであり、「改善率が所定値以上」なる用語は「最小隣接解の評価関数値が、現在解の評価関数値よりも一定値以上小さい」場合及び「最大隣接解の評価関数値が、現在解の評価関数値よりも一定値以上大きい」場合の両者を含むものである。
【００１９】
以上のように構成することにより、１つの隣接状態定義での準最適解周辺の探索に捕らわれることなく、短時間で広い問題空間を探索することが可能となり、効率的に最適解の探索を継続することができる。
【図面の簡単な説明】
【００２０】
【図１】この発明の実施の形態１である組合せ最適解演算装置の構成を示すブロック図である。
【図２】組合せ最適解演算装置の動作を示すフローチャートである。
【符号の説明】
【００２１】
１１  初期状態設定手段、１２  評価関数値算出手段、１３  定義セット切替手段、
１４  隣接解着目手段、１５  評価関数値評価手段、１６  隣接解・現在解比較手段、
１７  探索条件判定手段、２１  隣接状態定義保存手段、２２  現在解保存手段、
２３  最適解保存手段、２４  隣接解保存手段。
【図１】
2009265867.tif 000003
【図２】
2009265867.tif 000004