(57)【要約】【課題】組合せ最適化問題で「いかに極小解から脱出し探索を継続するか」に関し、新しい効率的な方法を提供できる組合せ最適解演算システムを得る。【解決手段】保存されている極小解のうち、現在解に最も距離が近い極小解に着目し、この距離に対して単調に減少する関数により極小解離脱関数値を算出し、極小解離脱関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出し（１０４）、保存されている極小解のうち、隣接解に最も距離が近い極小解に着目し、この距離に対して単調に減少する関数により極小解離脱関数値を算出し、極小解離脱関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出し（１０９）、現在解の遷移判定関数値が、隣接解の遷移判定関数値の最も小さい隣接解の遷移判定関数値よりも小さいか等しい場合に、現在解を極小解として保存し、現在解を遷移判定関数値が最小の隣接解に遷移させる（１１３〜１１５）。【選択図】図２
2006195530.tif 000002
【特許請求の範囲】
【請求項１】
評価関数値が最良となる組合せ状態を求めるために、初期の組合せ状態から出発し、隣の状態と定義された組合せ状態の中から遷移すべき組合せ状態を決定して、順次、組合せ状態の遷移を繰返す探索を行う組合せ最適解演算システムであって、
保存されている解のうち、現在解から所定の距離以内の解に全て着目し、前記所定の距離に対して変化する所定の関数により所定の関数値を算出し、前記所定の関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出する第１の遷移判定関数値算出手段と、
保存されている解のうち、隣接解から一定距離以内の解に全て着目し、前記一定距離に対して変化する所定の関数により所定の関数値を算出し、前記所定の関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出する第２の遷移判定関数値算出手段と、
遷移すべき状態の決定を前記現在解及び隣接解の遷移判定関数値の大小比較で行う状態遷移手段と
を備えたことを特徴とする組合せ最適解演算システム。
【請求項２】
前記第１の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、現在解に最も距離が近い極小解又は極大解に着目し、前記距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出し、
前記第２の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、隣接解に最も距離が近い極小解又は極大解に着目し、前記距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出し、
前記状態遷移手段は、前記現在解の遷移判定関数値が、前記隣接解の遷移判定関数値の最も小さい又は大きい隣接解の遷移判定関数値よりも小さい又は大きいか等しい場合に、現在解を極小解又は極大解として保存し、現在解を遷移判定関数値が最小又は最大の隣接解に遷移させる
ことを特徴とする請求項１記載の組合せ最適解演算システム。
【請求項３】
前記第１の遷移判定関数値算出手段は、保存されている解のうち、現在解から一定距離以内の解に全て着目し、前記一定距離に対して単調に減少又は増加する関数により広域探索関数値を算出し、前記広域探索関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出し、
前記第２の遷移判定関数値算出手段は、保存されている解のうち、隣接解から一定距離以内の解に全て着目し、前記一定距離に対して単調に減少又は増加する関数により広域探索関数値を算出し、前記広域探索関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出し、
前記状態遷移手段は、現在解を全て保存し、現在解を遷移判定関数値が最小又は最大の隣接解に遷移させる
ことを特徴とする請求項１記載の組合せ最適解演算システム。
【請求項４】
前記第１の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、現在解から一定距離以内の解に全て着目し、前記一定距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出し、
前記第２の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、隣接解から一定距離以内の解に全て着目し、前記一定距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出し、
前記状態遷移手段は、前記現在解の遷移判定関数値が、前記隣接解の遷移判定関数値の最も小さい又は大きい隣接解の遷移判定関数値よりも小さい又は大きいか等しい場合に、現在解を極小解又は極大解として保存し、現在解を遷移判定関数値が最小又は最大の隣接解に遷移させる
ことを特徴とする請求項１記載の組合せ最適解演算システム。
【請求項５】
前記第１の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、現在解に最も距離が近い極小解又は極大解に着目し、前記距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出し、
前記第２の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、隣接解に最も距離が近い極小解又は極大解に着目し、前記距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出し、
前記状態遷移手段は、前記現在解の遷移判定関数値が、前記隣接解の遷移判定関数値の最も小さい又は大きい隣接解の遷移判定関数値よりも小さい又は大きいか等しい場合に、現在解を極小解又は極大解として保存し、遷移判定関数値が最小又は最大の隣接解の評価関数値が、最良解の評価関数値よりも一定値以上大きい場合には、現在解を最良解に遷移させ、小さい場合には、現在解を遷移判定関数値が最小又は最大の隣接解に遷移させる
ことを特徴とする請求項１記載の組合せ最適解演算システム。
【請求項６】
前記第１の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、現在解に最も距離が近い極小解又は極大解に着目し、前記距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出し、
前記第２の遷移判定関数値算出手段は、保存されている極小解又は極大解のうち、隣接解に最も距離が近い極小解又は極大解に着目し、前記距離に対して単調に減少又は増加する関数により極小解離脱関数値又は極大解離脱関数値を算出し、前記極小解離脱関数値又は極大解離脱関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出し、
前記状態遷移手段は、前記現在解の遷移判定関数値が、前記隣接解の遷移判定関数値の最も小さい又は大きい隣接解の遷移判定関数値よりも小さい又は大きいか等しい場合に、現在解を極小解又は極大解として保存し、かつ極小解又は極大解カウンタを更新し、
前記極小解又は極大解カウンタが一定回数以上大きい場合には、現在解を最良解に遷移させ、小さい場合には、現在解を遷移判定関数値が最小又は最大の隣接解に遷移させる
ことを特徴とする請求項１記載の組合せ最適解演算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、組合せ最適解を求める組合せ最適解演算システムに関するものであり、ロジスティクス、ＤＮＡの塩基配列類似度を決定する配列アライメント、ＬＳＩ最適配線決定などの各種最適化設計、電力系統における発電機起動停止問題、系統構成作成、目標系統作成ならびに開閉器操作手順作成、最適スケジュール作成、各種最適制御等に使用される。
【背景技術】
【０００２】
従来のシミュレーテッドアニーリング法による組合せ最適化問題の解法は、例えば、次の通りである。第１のステップでは、組合せ状態を表すｘと温度を表すＴの初期値（初期解ｘ、初期温度Ｔ）を設定する。第２のステップでは、ｘの隣接解である近接解ｙを生成する。第３のステップでは、ｙとｘの目的関数（評価関数）の変化量ΔＥ＝ｆ（ｘ）−ｆ（ｙ）を計算する。第４のステップでは、ΔＥが負（ｙの方がｘより良い解）なら処理を第６のステップに遷移させ、ΔＥが非負なら処理を第５のステップに遷移させる。第５のステップでは、区間［０，１］の一様乱数γを発生させ、Ｅｘｐ（−ΔＥ／Ｔ）＞γが成立するかの判定を行い、成立する場合には解の悪化を許容し処理を第６のステップに遷移させ、成立しない場合には、ｘの更新を行わないこととし処理を第７のステップに遷移する。なお、Ｅｘｐ（−ΔＥ／Ｔ）＞γが成立する確率は、ΔＥが小さく（ｘに比べたｙの解の悪化度合いが小さく）、温度Ｔが大きいほど大きくなる。第６のステップでは、ｘをｙに更新する（ｘをｙに遷移させる）、つまり、近接解ｙを採用する。第７のステップでは、平衡状態（多数回この判定を行ってもｘに変化がない状態）になっているかの判定を行い、平衡状態でない場合には、処理を第２のステップに戻し、平衡状態の場合には、温度Ｔを下げるために処理を第８のステップに遷移させる。第８のステップでは、温度Ｔを下げるためにＴをρ（０＜ρ＜１）倍する。第９のステップでは、基底状態（充分に温度Ｔが低い状態）になったかの判定を行い、基底状態と判定される場合にはその時点のｘを最適解として処理を終了し、その他の場合には、処理を第２のステップに戻す（例えば、非特許文献１参照）。
【０００３】
以上の説明した方法によれば、より悪い状態への遷移が確率的に許されており、組合せ状態を表すｘが極小解に到達しても、極小解に捕まらずに遷移を継続することが可能となり、より良い解を見つけ出すことが可能となっている。
【０００４】
このように、探索方法を用いて組合せ最適化問題を解く上での最大の技術課題は、いかに極小解から脱出し探索を継続するかにあり、従来から様々な方法が提案されている。これらを大きく分類すると下記のようになる。
１）ある確率でより悪い状態への遷移を許す（上述の方法）。
２）許される遷移の中で最良の状態への遷移を繰り返す（極小解においては評価関数値が悪化する遷移が発生する）こととし、遷移に伴い組合せの内容に変化のあった部分に関しては、ある期間、逆向きの変化を禁止することにより、通過した極小解へ戻ることを抑制する。
【０００５】
【非特許文献１】電気学会技術報告第６４７号「新しい電力システム計画手法」財団法人電気学会、１９９７年８月８日発行、第５０頁−第５３頁
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これら、従来の方式では、特に、極小解の周辺に極小解と同等または悪い評価関数値の状態が数多く存在する場合や、極小解が密集している場合などは、探索の効率が悪いという問題点があった。
【０００７】
この発明は、上述のような課題を解決するためになされたもので、その目的は、探索方法を用いて組合せ最適化問題を解く上での最大の技術課題である「いかに極小解から脱出し探索を継続するか」に関して、新しい効率的な方法を提供することができる組合せ最適解演算システムを得るものである。この発明に係る組合せ最適解演算システムでは、各状態について、探索過程で発見した極小解からの状態間の距離で定まる値と、その状態の評価関数値の和で構成される遷移判定関数値を定義し、遷移すべき状態の決定を遷移判定関数値の大小比較で行う。極小解からの状態間の距離で定まる値としては、距離が大きいほど遷移判定関数値が良くなる方向とする。
【課題を解決するための手段】
【０００８】
この発明に係る組合せ最適解演算システムは、評価関数値が最良となる組合せ状態を求めるために、初期の組合せ状態から出発し、隣の状態と定義された組合せ状態の中から遷移すべき組合せ状態を決定して、順次、組合せ状態の遷移を繰返す探索を行う組合せ最適解演算システムであって、保存されている解のうち、現在解から所定の距離以内の解に全て着目し、前記所定の距離に対して変化する所定の関数により所定の関数値を算出し、前記所定の関数値に現在解の評価関数値を加えて現在解の遷移判定関数値を算出する第１の遷移判定関数値算出手段と、保存されている解のうち、隣接解から一定距離以内の解に全て着目し、前記一定距離に対して変化する所定の関数により所定の関数値を算出し、前記所定の関数値に隣接解の評価関数値を加えて隣接解の遷移判定関数値を算出する第２の遷移判定関数値算出手段と、遷移すべき状態の決定を前記現在解及び隣接解の遷移判定関数値の大小比較で行う状態遷移手段とを設けたものである。
【発明の効果】
【０００９】
この発明に係る組合せ最適解演算システムは、遷移判定関数が評価関数を基本としているため、評価関数値の良い組合せ状態をきめ細かく探索しながらも、極小解を発見する度に、それら極小解から遠ざかる方向へ遷移判定関数が修正されていくので、容易に極小解を脱出しながら探索を継続することが可能となるとともに、既に探索を実施した状態の代表点である極小解から遠ざかる傾向の探索を行うため、距離の近い状態の探索だけにとらわれることなく、広域にわたる効率的な探索が可能となる。また、この発明は評価関数の形式によらないため、どのような形式の評価関数に対しても適用可能であるという利点と、アルゴリズムが単純で実施が容易という利点がある。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
この発明の実施の形態１に係る組合せ最適解演算システムについて図１及び図２を参照しながら説明する。図１は、この発明の実施の形態１に係る組合せ最適解演算システムの構成を示す図である。なお、各図中、同一符号は同一又は相当部分を示す。
【００１１】
図１において、この実施の形態１に係る組合せ最適解演算システムは、後述するアルゴリズムを記述したプログラムに従ってデータ処理を行うＣＰＵと、プログラム部２１及びデータ部２２を含むメモリ２とが設けられている。
【００１２】
プログラム部２１には、後述する各実施の形態のアルゴリズムを記述したプログラムが格納されている。また、データ部２２には、入出力データとデータ処理過程のデータが格納される。
【００１３】
つぎに、この実施の形態１に係る組合せ最適解演算システムの動作について図面を参照しながら説明する。図２は、この発明の実施の形態１に係る組合せ最適解演算システムの動作を示すフローチャートである。
【００１４】
この実施の形態１は、最小化問題の解法例、すなわち、評価関数値のより小さな状態を求める問題の解法例であるが、最大化問題の解法例についても同様である。
【００１５】
図２のステップ１０１において、その時点の組合せの状態を表す現在解に初期状態を設定し、その評価関数値を算出する。
【００１６】
次に、ステップ１０２において、現在解（現在状態）を最良解として保存し、最良解更新フラグを１とする。
【００１７】
次に、ステップ１０３において、最良解更新フラグによって処理を振り分け、最良解更新フラグが０であればステップ１０４へ処理を進め、１であればステップ１０５へ処理を進める。
【００１８】
ステップ１０４（第１の遷移判定関数値算出手段）では、保存されている極小解のうち、現在解に最も距離が近い極小解に着目し、この距離に対して単調に減少する関数により極小解離脱関数値を算出する。この極小解離脱関数値に現在解の評価関数値を加え、現在解の遷移判定関数値を算出する。
【００１９】
一方、ステップ１０５では、現在解の評価関数値を、そのまま現在解の遷移判定関数値とする。
【００２０】
ステップ１０６からステップ１１２まででは、現在解（現在状態）の全ての隣接解（隣接状態）から、遷移判定関数値の最も小さい隣接解を探す。
【００２１】
ステップ１０６において、現在解の隣接解のうちの１つに着目し、ステップ１０７では、着目した隣接解の評価関数値を算出する。
【００２２】
次に、ステップ１０８において、最良解更新フラグによって処理を振り分け、最良解更新フラグが０であればステップ１０９へ処理を進め、１であればステップ１１０へ処理を進める。
【００２３】
ステップ１０９（第２の遷移判定関数値算出手段）では、上記のステップ１０４と同じ方法で、保存されている極小解のうち、隣接解に最も距離が近い極小解に着目し、この距離に対して単調に減少する関数により極小解離脱関数値を算出し、これに隣接解の評価関数値を加え、隣接解の遷移判定関数値を算出する。
【００２４】
一方、ステップ１１０では、隣接解の評価関数値を、そのまま隣接解の遷移判定関数値とする。
【００２５】
次に、ステップ１１１において、隣接解のうちで遷移判定関数値の最も小さい隣接解を更新保存する。
【００２６】
次に、ステップ１１２において、現在解の全ての隣接解に着目したかどうかを判定し、着目していない隣接解が残っていれば、処理をステップ１０６に戻し、全ての隣接解に着目済みであれば、ステップ１１３へ進む。なお、全ての隣接解に着目する前に、現在解よりも遷移判定関数値の小さな隣接解が見つかった段階でステップ１１５に処理を移しても良い。
【００２７】
次に、ステップ１１３において、現在解の遷移判定関数値が、遷移判定関数値の最も小さい隣接解の遷移判定関数値よりも小さいか等しい場合に、現在解を極小解として判定する。（一般には、極小解は評価関数値で定まるものであるが、この実施の形態１では、遷移判定関数値で定めることとする。）現在解が極小解であれば、次にステップ１１４を実施し、そうでなければ、処理をステップ１１５へ進む。
【００２８】
ステップ１１４では、現在解を極小解として保存する。ステップ１１５では、現在解を遷移判定関数値が最も良い（最小の）隣接解（ステップ１１１で更新保存した隣接解）に遷移させる。ステップ１１３〜１１５は、状態遷移手段を構成する。
【００２９】
なお、ステップ１０６からステップ１１２までで、隣接解に順に着目しながら遷移判定関数値の最も小さい隣接解を探しているが、その過程で、現在解の遷移判定関数値よりも小さな遷移判定関数値を持つ隣接解が見つかった場合には、現在解は極小解ではないことが判るので、全ての隣接解に着目する前にステップ１１５に処理を進めても構わない。
【００３０】
ステップ１１６において、現在解の評価関数値を算出する。次に、ステップ１１７では、最良解更新フラグを０にする。次に、ステップ１１８では、現在解の評価関数値が最良解より良ければ（小さければ）現在解を最良解として更新保存し、最良解更新フラグを１にする。
【００３１】
ステップ１１９では、探索終了条件を満たしたかどうかを判定し、満たしていれば処理を終了し、満たしていなければステップ１０３へ処理を戻して探索を継続する。探索終了条件判定は、例えば、「現在解の遷移を所定回数実施したかどうか」で判定する。
【００３２】
ステップ１０４やステップ１０９で、極小解離脱関数値の算出に使用する状態間の距離としては、１つの状態から最短何回の隣接解への遷移でもう１つの状態に到達するかを示す量、またはそれに比例する量であることが望ましいが、隣接解の定義の仕方によってはそのような定義の距離の算出が困難、もしくは算出に要する時間が長くなることがある。その場合、状態間の距離としては、１つの状態から最短何回の隣接解への遷移でもう１つの状態に到達するかを大まかに示す量、またはそれに大まかに比例する量であれば良く、距離算出が大まかであっても本実施の形態１の効果に大きな影響は無い。ただし、距離０の判定、すなわち１つの状態ともう１つの状態が一致していることの判定については正確であることが望ましい。
【００３３】
次に、極小解離脱関数値の算出例を示す。評価関数値の取り得る値に対して充分大きな値をＣとし、着目する状態から最も距離が近い極小解までの距離をｄ（ｄ≧０）、極小解離脱関数が有効な距離の上限を３０と設定し、極小解離脱関数値ｆを例えば次のように定義する。
例１：  ｄ≦３０の場合、ｆ  ＝  Ｃ／（ｄ＋１）、
ｄ＞３０の場合、ｆ  ＝  ０。
例２：  ｄ≦３０の場合、ｆ  ＝  Ｃ／（ｄ＋１）２、
ｄ＞３０の場合、ｆ  ＝  ０。
例３：  ｄ≦２の場合、  ｆ  ＝  Ｃ／（ｄ＋１）、
２＜ｄ≦３０の場合、ｆ  ＝  Ｃ・（３１−ｄ）／１００、
ｄ＞３０の場合、ｆ  ＝  ０。
【００３４】
距離ｄの増加に対する極小解離脱関数の減少分が大きいほど、現在解が極小解から離れる方向に探索が進む傾向が強くなり、距離ｄの増加に対する極小解離脱関数の減少分が小さいほど、互いに隣り合う状態間の評価関数値の大小関係に従った探索を行う傾向が強くなる。なお、探索効率向上の観点から、一度極小解として保存された状態に再度遷移することを回避するために、極小解近傍の極小解離脱関数値と、距離ｄの増加に対する極小解離脱関数の減少分は大きく設定する。
【００３５】
極小解離脱関数は、以下の点に留意して定める。
（１）極小解近傍に探索が停留することを避けるために、極小解近傍では距離ｄの増加に対する極小解離脱関数の減少分が、評価関数値の変化量ｄに対して充分大きくなるようにする。また、一度極小解として保存された状態に再度遷移することを回避するために、極小解近傍の極小解離脱関数値を大きくする。
（２）極小解近傍よりも極小解離脱関数によって極小解から離れる方向へ探索を誘導することにより、広域にわたる探索を実施することができるが、距離ｄの増加に対する極小解離脱関数の増分が大き過ぎると、極小解周辺の最良解を見逃す可能性が大きくなる。
【００３６】
以上のように構成することにより、効果的に極小解を脱出しながら短時間で広い問題空間を探索することが可能となる。
【００３７】
実施の形態２．
この発明の実施の形態２に係る組合せ最適解演算システムについて図３を参照しながら説明する。図３は、この発明の実施の形態２に係る組合せ最適解演算システムの動作を示すフローチャートである。
【００３８】
この実施の形態２も最小化問題の解法例であるが、最大化問題の解法例についても同様である。以下、上記の実施の形態１との差異に着目して説明する。
【００３９】
図３のステップ１０４Ａ（第１の遷移判定関数値算出手段）において、保存されている解のうち、現在解から一定距離以内の解に全て着目し、この距離に対して単調に減少する関数により広域探索関数値を算出する。この広域探索関数値に現在解の評価関数値を加え、現在解の遷移判定関数値を算出する。
【００４０】
ステップ１０９Ａ（第２の遷移判定関数値算出手段）において、上記のステップ１０４Ａと同じ方法で、保存されている解のうち、隣接解から一定距離以内の解に全て着目し、この距離に対して単調に減少する関数により広域探索関数値を算出する。この広域探索関数値に隣接解の評価関数値を加え、隣接解の遷移判定関数値を算出する。
【００４１】
ステップ１１４Ａにおいて、ステップ１１２で全ての隣接解に着目済みであれば、現在解を保存する。
【００４２】
この実施の形態２では、現在解を全て保存して遷移判定関数値の算出に使用し、極小解の判定や保存は行っていないため、ステップ１１２で全ての隣接解に着目済みと判定した場合には、ステップ１１４Ａへ進み、このステップ１１４Ａでは、現在解を保存する。ステップ１１４Ａ〜１１５は、状態遷移手段を構成する。
【００４３】
以上のように構成することにより、既に探索した状態から効果的に遠ざかりながら広い空間を探索することが可能となる。
【００４４】
実施の形態３．
この発明の実施の形態３に係る組合せ最適解演算システムについて図４を参照しながら説明する。図４は、この発明の実施の形態３に係る組合せ最適解演算システムの動作を示すフローチャートである。
【００４５】
この実施の形態３も最小化問題の解法例であるが、最大化問題の解法例についても同様である。以下、上記の実施の形態１との差異に着目して説明する。
【００４６】
図４のステップ１０４Ｂ（第１の遷移判定関数値算出手段）において、保存されている極小解のうち、現在解から一定距離以内の解に全て着目し、この距離に対して単調に減少する関数により極小解離脱関数値を算出する。この極小解離脱関数値に現在解の評価関数値を加えて、現在解の遷移判定関数値を算出する。
【００４７】
ステップ１０９Ｂ（第２の遷移判定関数値算出手段）において、上記のステップ１０４Ｂと同じ方法で、保存されている極小解のうち、隣接解から一定距離以内の解に全て着目し、この距離に対して単調に減少する関数により極小解離脱関数値を算出する。この極小解離脱関数値に隣接解の評価関数値を加えて、隣接解の遷移判定関数値を算出する。ステップ１１３〜１１５は、状態遷移手段を構成する。
【００４８】
以上のように構成することにより、既に探索した状態から遠ざかりながら、極小解から早期に脱出することが可能となる。
【００４９】
実施の形態４．
この発明の実施の形態４に係る組合せ最適解演算システムについて図５を参照しながら説明する。図５は、この発明の実施の形態４に係る組合せ最適解演算システムの動作を示すフローチャートである。
【００５０】
この実施の形態４も最小化問題の解法例であるが、最大化問題の解法例についても同様である。以下、上記の実施の形態１との差異に着目して説明する。
【００５１】
図５のステップ１１３において、遷移判定関数値で比較して現在解が極小解でない場合、および、ステップ１１４の処理の終了後に、ステップ１２０へ進む。
【００５２】
ステップ１２０において、遷移判定関数値が最小の隣接解の評価関数値は、最良解の評価関数値よりも一定値以上大きいかどうかを判定し、大きい場合にはステップ１２１へ進み、小さい場合にはステップ１１５へ進む。
【００５３】
ステップ１２１において、現在解を最良解に遷移させ、ステップ１１６へ進む。すなわち、これまで探索した状態のうち最も評価関数値の良い状態に戻して探索を継続する。ステップ１１３〜１１５、１２０〜１２１は、状態遷移手段を構成する。
【００５４】
以上のように構成することにより、広い領域を探索するにあたり、大域的な探索方向を修正しつつ、効果的な探索が可能となる。
【００５５】
実施の形態５．
この発明の実施の形態５に係る組合せ最適解演算システムについて図６を参照しながら説明する。図６は、この発明の実施の形態５に係る組合せ最適解演算システムの動作を示すフローチャートである。
【００５６】
この実施の形態５も最小化問題の解法例であるが、最大化問題の解法例についても同様である。以下、上記の実施の形態４との差異に着目して説明する。
【００５７】
図６のステップ１０２Ｄにおいて、現在解を最良解として保存し、最良解更新フラグを１とし、極小解カウンタを０にする。この極小解カウンタは、直前の最良解発見から数えて何回極小解に到達されたかを保存するカウンタである。処理終了後、ステップ１０３へ進む。
【００５８】
ステップ１１４Ｄにおいて、現在解を極小解として保存し、極小解カウンタに１を加算する。
【００５９】
ステップ１３０において、極小解カウンタが一定回数以上大きいかどうかを判定し、大きい場合にはステップ１２１へ進み、小さい場合にはステップ１１５へ進む。ステップ１１３、１１４Ｄ、１１５、１３０、１２１は、状態遷移手段を構成する。
【００６０】
ステップ１１８Ｄにおいて、現在解の評価関数値が最良解より小さければ、現在解を最良解として保存し、最良解更新フラグを１にし、極小解カウンタを０にする。
【００６１】
以上のように構成することにより、最良解を発見してから当該最良解に戻るまでに極小解を確実に保存するため、同じ探索ルートを辿る可能性が大きく減り、効果的に大域的な探索方向の修正が可能となる。
【図面の簡単な説明】
【００６２】
【図１】この発明の実施の形態１に係る組合せ最適解演算システムの構成を示す図である。
【図２】この発明の実施の形態１に係る組合せ最適解演算システムの動作を示すフローチャートである。
【図３】この発明の実施の形態２に係る組合せ最適解演算システムの動作を示すフローチャートである。
【図４】この発明の実施の形態３に係る組合せ最適解演算システムの動作を示すフローチャートである。
【図５】この発明の実施の形態４に係る組合せ最適解演算システムの動作を示すフローチャートである。
【図６】この発明の実施の形態５に係る組合せ最適解演算システムの動作を示すフローチャートである。
【符号の説明】
【００６３】
１  ＣＰＵ、２  メモリ、２１  プログラム部、２２  データ部。
【図１】
2006195530.tif 000003
【図２】
2006195530.tif 000004
【図３】
2006195530.tif 000005
【図４】
2006195530.tif 000006
【図５】
2006195530.tif 000007
【図６】
2006195530.tif 000008