(57)【要約】      （修正有）【課題】遷移平均値が所定の値以下になった場合に、準最適解の探索を打ち切り他の準最適解の探索を開始するようにしたことにより、より評価関数値の良い解を見逃す可能性を減少させることができるとともに、探索時間を短くすることができる。【解決手段】遷移平均値算出手段において、遷移前の現在解の評価関数値と、遷移後の現在解の評価関数値を比較し、遷移平均値を算出する（ステップ１１１）。探索再開手段において、この遷移平均値が所定の値以下になった場合に、現在解を準最適解候補と設定し、準最適解の探索を打ち切り、他の準最適解の探索を開始する（ステップ１１２−ステップ１１４）。【選択図】図２
2009025873.tif 000002
【特許請求の範囲】
【請求項１】
組合せ状態を解としてその評価関数値を求める評価関数値算出手段を有し、前記評価関数値が最良となる組合せ状態である最良解を求めるために、１の組合せ状態を現在解として初期設定し、現在解の隣の状態と定義された複数の隣接解の中から遷移すべき隣接解を決定し、現在解を遷移すべき隣接解へ遷移させることを繰り返すことで探索を行う組合せ最適解算出装置において、
遷移前の現在解の評価関数値と遷移後の現在解の評価関数値との比率を遷移平均値として算出する遷移平均値算出手段と、
前記遷移平均値が所定の値以下である場合に、１の組合せ状態を現在解として設定し、探索を再度開始する探索再開手段を備えたことを特徴とする組合せ最適解算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、組合せ最適解を求める組合せ最適解算出装置に関する。
【背景技術】
【０００２】
組合せ最適解を求めるには、１の組合せ状態を現在解として定義し、現在解の隣の状態と定義された複数の隣接解の中から評価関数値が最良のものを遷移すべき隣接解として選定し、現在解を選定した隣接解に遷移させることを繰り返して探索を行う。現在解の評価関数値が、すべての隣接解の評価関数値より良い場合には、この現在解が準最適解（評価関数値が小さい値のほうが良い場合は極小解で、評価関数値が大きい値のほうがよい場合は極大解となる）となるが、他に最適解が存在する可能性があるため、再度、１の組合せ状態からの探索を行う。一定の探索終了条件を満たした場合に探索を終了し、求められた中から最良の解を最適解として出力する。
【０００３】
従来の組合せ最適解演算システムでは、現在解とこの現在解のすべての隣接解とについて遷移判定関数値を算出し、現在解の遷移判定関数値がすべての隣接解の遷移判定関数値より良い場合に、この現在解を準最適解として設定し、再度１の組合せ状態からの探索を行い、探索終了条件を満たした時点でこれまで求めた解の中から最良のものを出力することとしている。（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００６−１９５５３０号公報（請求項１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の組合せ最適解算出装置では、準最適解を求めるまで、新たな探索を開始しないため、準最適解周辺の探索に探索時間の大部分を費やすことにより、探索時間の長大化を招くことや、より評価関数値の良い解を見逃す可能性が有るという問題点があった。
【０００６】
この発明は、上述のような問題を解決するためになされたもので、準最適解周辺の探索を途中で打ち切り、他の準最適解を探索することを課題とする。
【課題を解決するための手段】
【０００７】
この発明に係る組合せ最適解算出装置においては、遷移前の現在解の評価関数値と、遷移後の現在解の評価関数値を比較し、遷移平均値を算出する。この遷移平均値が所定の値以下になった場合に、現在解を準最適解候補と設定し、準最適解の探索を打ち切り、他の準最適解の探索を開始するものである。
【発明の効果】
【０００８】
この発明は、遷移平均値が所定の値以下になった場合に、準最適解の探索を打ち切り他の準最適解の探索を開始するようにしたことにより、より評価関数値の良い解を見逃す可能性を減少させることができるとともに、探索時間を短くすることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１はこの発明を実施するための実施の形態１における組合せ最適解算出装置のブロック図、図２はこの発明を実施するための実施の形態１における組合せ最適解算出装置の動作フロー図である。
【００１０】
図１において、１０はこの発明における解のデータベースであり、解とは評価関数値を算出することができる複数の要素からなる組合せ状態を示すものである。この解１０は、入力手段２０により最初に定められる解である初期解１１と、評価関数値算出手段４０にて算出したすべての解１０のうち、評価関数値が最も良い値の解である最良解１２と、評価関数値の算出対象となる着目している解である現在解１３と、この現在解１３のうち要素の１つの値を一定値のみ変化させた解である隣接解１４と、探索を行い評価関数値の改善率が一定以下になり探索を打ち切ったときの現在解である準最適解候補１５とからなる。このうち、隣接解１４は現在解１３の複数ある要素の１つの値を変化させたものであるため複数存在し、準最適解候補１５は或るルートについて探索を行いこの探索を打ち切ったときの現在解を保存しておくもので、複数のルートについて探索した後は複数存在する。なお、この実施の形態１では用いないため図１に記載していないが、すべての解のうち評価関数値が最良のものが最適解であり、探索を行い現在解及び隣接解の遷移判定関数値の中で現在解の遷移判定関数値が最良になったときの現在解が準最適解である。
【００１１】
入力手段２０は、初期解１１を設定し、この初期解１１を最良解１２および現在解１３として保存する手段である。なお、入力手段２０はユーザの手による入力だけでなく、他の装置などからの入力でもよいし、各要素の値をランダムな値を発生させる手段などからの入力であってもよい。出力手段３０は、探索を終了した後に最良解１２を出力する手段であり、表示手段への表示や、他の装置への出力などである。評価関数値算出手段４０は、解１０の１つを与えると対応する評価関数値を算出する手段である。最良解設定手段５０は、現在解１３の評価関数値が最良解１２の評価関数値より良い場合に、現在解１３を最良解１２に上書きして保存する手段である。
【００１２】
遷移判定関数値算出手段６０は準最適解候補１５が保存されているときは、解と最短の距離にある準最適解候補との距離に対して単調に減少する関数により算出する値にこの解の評価関数値を加えた遷移判定関数値を算出する手段であり、準最適解候補１５が保存されていないときは、解の評価関数値を算出して遷移判定関数値とする。２つの解の距離とは、この２つの解の要素ごとの差から求めることができ、通常は要素ごとの差の２乗を足し合わせたものの平方根である。また、距離に対して単調に減少する関数は、例えば距離に反比例する関数や２乗で反比例する関数などである。
【００１３】
現在解遷移手段７０は、現在解１３および複数の隣接解１４の遷移判定関数値の比較で遷移判定関数値が最良の解に現在解を遷移させる手段である。遷移平均値算出手段８０は、遷移前の現在解の評価関数値と、遷移後の現在解１３の評価関数値の比を遷移平均値として算出する手段であり、遷移前の現在解は複数回前であり比の平均を算出しても良い。探索再開手段９０は、遷移平均値算出手段８０で求めた遷移平均値が所定の値以下の場合は探索を打ち切り、現在解１３を準最適解候補１５として保存し、初期解１１を現在解に再設定する手段であり、現在解遷移手段７０で現在解１３が最良であった場合は、現在解１３を準最適解候補１５として保存し、遷移平均値算出手段８０で求めた遷移平均値が所定の値以下にならなかった場合は、現在解１３を再設定せず準最適解候補１５も保存せずに探索を再開する。また、探索終了条件を満たしている場合は、探索を終了する。なお、準最適解候補１５の保存は、すでに保存されている準最適解候補１５がある場合でも、追加して保存することとするため、準最適解候補１５は複数存在することがある。また、探索終了条件とは、例えば探索開始からの経過時間や、探索回数、あるいは評価関数値に目標を設定しておきその目標より良い値になったときなどの条件である。
【００１４】
次に動作について、図２を基に説明する。この組合せ最適解算出装置の動作を開始すると、入力手段２０にて初期解１１を初期設定し、この初期解１１を最良解１２および現在解１３として設定する（ステップ１０１）。評価関数値算出手段４０にて最良解の評価関数値を算出する（ステップ１０２）。
【００１５】
続いて、遷移判定関数値算出手段６０にて現在解１３の遷移判定関数値を算出する（ステップ１０３）。後述するステップ１１３で準最適解候補１５が初めて保存されるまでは、準最適解候補が無いため現在解の遷移判定関数値は評価関数値と同じになる。また、準最適解候補１５が複数保存されている場合は、現在解１３とそれぞれの準最適解候補との距離を求め、その距離が最小となる準最適解候補と現在解とで遷移判定関数値を算出する。１０４−１０６ステップでは、遷移判定関数値算出手段６０にて、現在解のすべての隣接解に順次注目し、隣接解の遷移判定関数値を算出する。すべての隣接解の遷移判定関数値の算出が終了すると１０７ステップに移動する。
【００１６】
１０３−１０６ステップで、準最適解候補１５が保存されていない場合に評価関数値を遷移判定関数値とする理由は、本発明の実施の形態１における組合せ最適解算出装置で出力する最良解が最良の評価関数値を算出した解であり、現在解から評価関数値が良い隣接解に遷移していくことが最良解に近づくと考えられるからである。その一方で、準最適解候補１５が保存されている場合に、評価関数値を遷移判定関数値としない理由は、再度同じ評価関数値で現在解を順次隣接解に遷移していくと、すでに求めた準最適解候補に近づくからであり、これを避けるため評価関数値に準最適解候補からの距離に対して単調に減少する関数により算出できる値を加えた遷移判定関数値で評価することにしている。すなわち、遷移判定関数値により現在解を隣接解に遷移させるということは、これまでに求めた準最適解候補から距離が大きく、評価関数値が小さい値に遷移させるということである。
【００１７】
１０７ステップでは現在解遷移手段７０にて、すべての隣接解１４の遷移判定関数値のうち最良のものと、現在解１３の遷移判定関数値を比較し、すべての隣接解１４の遷移判定関数値のうち最良のもののほうが良い場合に１０８ステップに進み、同じか現在解１３のほうが良い値の場合にはこの現在解１３を準最適解としてステップ１１３に進む。１０８ステップでは、現在解遷移手段７０にて現在解１３をすべての隣接解１４のうち最良の遷移判定関数値を算出した隣接解に遷移させる。評価関数値算出手段４０にて遷移後の現在解１３の評価関数値を算出し（１０９ステップ）、最良解設定手段５０にて現在解１３の評価関数値が最良解１２の評価関数値より良ければ現在解１３を最良解１２として保存する（１１０ステップ）。
【００１８】
遷移平均値算出手段８０にて、遷移前の現在解の評価関数値と遷移後の現在解１３の評価関数値の比を遷移平均値とする（１１１ステップ）。すなわち、遷移平均値＝（遷移後の現在解の評価関数値）／（遷移前の現在解の評価関数値）である。なお、遷移前の現在解の評価関数値は複数回前であってもよく、３回前であれば、［（遷移後の現在解の評価関数値）／（遷移前の現在解の評価関数値）／３］を遷移平均値とする。
【００１９】
１１２ステップでは検索再開手段９０にて、遷移平均値が所定の値以下であった場合は１１３ステップに進み、所定の値以下になっていない場合は１１４ステップに進む。遷移平均値が所定の値以下とは、遷移後の現在解の評価関数値と遷移前の現在解の評価関数値の変化が少ないということである。現在解から遷移すべき隣接解へ順次遷移させていくときに、始めのうちは評価関数値が大幅に良くなるが、準最適解の近くまでくると評価関数値の変化が少なくなる。解の要素が多数あると、評価関数値の変化が少なくなっても準最適解を求めるまでの探索回数が多くなる場合があるが、評価関数値の変化が少なくなった時点での現在解と、探索を続けて求められる準最適解の評価関数値の差はそれほど大きくないと推定できるとともに、この差が大きくなる場合は次以降の探索で求められる可能性がある。従って、遷移平均値が所定の値以下の場合は、この探索を打ち切る意味で１１３ステップに進む。
【００２０】
１１３ステップでは、１０８ステップから移動してきた場合には、現在解１３は準最適解であり、１１２ステップから移動してきた場合には最適解１３は準最適解の近傍の値であるが、この現在解１３を準最適解候補１５として保存し、現在解１３に初期解１１を設定する。すなわち、この探索を打ち切り、次の探索で再度初期解から行うということである。なお、この初期解１１は、入力手段２０にて設定した初期解と必ずしも同じ値でなくてもよく、各要素の値をランダムな値を発生させる手段などを用いて設定させた値であってもよい。
【００２１】
１１４ステップでは、探索終了条件を満足しているかどうかの判断を行い、探索終了条件を満たしておらず再度探索が必要であれば１０３ステップに移動して探索を続け、探索終了条件を満足している場合には１１５ステップに移動する。１１５ステップでは出力手段３０にて最良解１２を出力する。
【００２２】
このように、遷移平均値が所定の値以下になった場合に、準最適解の探索を打ち切り他の準最適解の探索を開始するようにしたことにより、より評価関数値の良い解を見逃す可能性を減少させることができるとともに、探索時間を短くすることができる。
【図面の簡単な説明】
【００２３】
【図１】この発明の実施の形態１を示す組合せ最適解算出装置のブロック図である。
【図２】この発明の実施の形態１を示す組合せ最適解算出装置の動作フロー図である。
【符号の説明】
【００２４】
１２最良解
１３現在解
１４隣接解
４０評価関数値算出手段
８０遷移平均値算出手段
９０探索再開手段
【図１】
2009025873.tif 000003
【図２】
2009025873.tif 000004