JP2000010953A - 問題解決装置 - Google Patents

問題解決装置

Info

Publication number
JP2000010953A
JP2000010953A JP17558298A JP17558298A JP2000010953A JP 2000010953 A JP2000010953 A JP 2000010953A JP 17558298 A JP17558298 A JP 17558298A JP 17558298 A JP17558298 A JP 17558298A JP 2000010953 A JP2000010953 A JP 2000010953A
Authority
JP
Japan
Prior art keywords
evaluation value
solution
user
search
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP17558298A
Other languages
English (en)
Inventor
Hiroaki Sengoku
浩明 仙石
Junichi Taguchi
順一 田口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP17558298A priority Critical patent/JP2000010953A/ja
Publication of JP2000010953A publication Critical patent/JP2000010953A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】経験的知識に基づいた探索によって組み合わせ
最適化問題を解く場合において、その知識が、効率的な
探索を行う上で十分ではなく、しかも常に適応可能とは
限らない場合でも、ユーザと対話しつつ問題の緒条件に
適応して、効率的に解を求めることを目的とする。 【解決手段】探索において、経験的知識に基づいて求め
た中間評価値と、遺伝的アルゴリズムに基づいて求めた
優先度との双方の値を引数とする枝刈り関数の値に基づ
いて枝刈りを行う。探索の結果得られる解の評価値が高
くなるように、遺伝的アルゴリズムが優先度を調節す
る。中間評価値は、種々の項目ごとに経験的知識に基づ
いて求めた副評価値を、多層ニューラルネットワークに
入力して求める。適切な中間評価値が出力されるよう
に、ユーザと対話しつつニューラルネットワークの学習
を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】組み合わせ最適化問題を解く
ことにより、必要とする資源あるいはコストを削減する
方法および装置に関するものである。例えば、o基板上
に電子部品を配置する際、部品間を結ぶ信号線の長さを
より短くすることによりコスト削減を図るレイアウト問
題。
【0002】o複数の材料と、それを加工する複数の機
械があるとき、全体の加工時間を短くすることを図るス
ケジュール問題。
【0003】o複数の都市を重複せずに訪れる際、移動
コストをより小さくすることを図る計画問題。
【0004】などの組み合わせ最適化問題を解くことに
関する。
【0005】
【従来の技術】従来人手で解かれてきた問題を計算機で
解く場合、経験的知識に基づいた探索(以後、知的探索
と略記する) が広く用いられてきた。すなわち、解空間
全体を探索することは組み合わせ爆発により現実的でな
いから、経験的に良い解が得られそうな部分空間に探索
範囲を限定する (以後、限定した部分解空間を部分探索
空間と略記する)。
【0006】探索空間の限定は、具体的には、探索木の
各ノードにおいて枝刈を行うことにより行う。つまり経
験的知識に基づいて各選択枝の評価値を求め、評価値が
悪い選択枝の探索を打ち切る。
【0007】しかし、経験的知識とは専門家の頭の中に
経験として蓄えられている知識であるから、それを抽出
することは困難である。不十分な知識に基づいて部分探
索空間を設定すると、最適解あるいは実用上十分良い解
(以下、近似解と略記) が含まれない恐れがある。逆
に、近似解が含まれるように十分広い範囲を部分探索空
間として設定すると、探索に時間がかかりすぎる。
【0008】近似解が含まれる、十分広い部分探索空間
を探索する手法として、遺伝的アルゴリズム(GA) を用
いた解法が特許「スケジュール自動作成装置」 (特願平
7-033326) で提案さている。すなわち、探索木の各ノ
ードにおいて、各選択枝に遺伝的アルゴリズムによって
優先順位を割り振り、経験的知識による枝刈りの後、残
った枝の中で優先順位が高い枝を探索の対象とし、その
他の枝の探索を打ち切る。
【0009】つまり、部分探索空間を、遺伝的アルゴリ
ズムによってさらに限定する手法である。したがって部
分探索空間は十分広く設定することができる。
【0010】他に、遺伝的アルゴリズムと経験的知識を
併用する解法としては、特許「状態遷移の概念を導入し
た問題解決演算装置および方法」 (特開平 7-225752)、
特許「スケジューリグ方法」 (特開平 9-146773) があ
る。
【0011】前者の特許は、複数の解探索手段を持ち、
解探索の過程においてあらかじめ定められた条件が達成
された時、他の解探索手段へ遷移させることにより、解
の改善度合が鈍化することを防ぐ。
【0012】それぞれの探索手段は、単体でも求解が可
能であり、独立している。
【0013】後者の特許は、制約競合が発生した時、そ
れを解消するためのルールを選択する手段として、遺伝
的アルゴリズムを利用している。
【0014】なお、遺伝的アルゴリズムおよび遺伝的ア
ルゴリズムを利用した技術については、北野宏明編「遺
伝的アルゴリズム」「遺伝的アルゴリズム 2」「遺伝的
アルゴリズム 3」産図書発行が詳しい。
【0015】
【発明が解決しようとする課題】経験的知識には常に適
用可能なものと、多くの場合適用可能なものがある。例
えばバス仕業ダイヤ作成 (発明の実施の形態を参照) に
おいては、o時間的に重複する山ダイヤを同一運転手が
乗務してはいけない。
【0016】o一部あるいは全部の運転手は、勤務時間
中に食事する必要がある。
【0017】o勤務時間および運転時間の上限を超えて
はいけない。
【0018】などの知識が、常に適用可能な知識であ
る。一方、多くの場合適用可能な知識には、o郊外の停
留所では折り返し運転をするとよい。
【0019】oあき時間が一時間半を超えることは望ま
しくない。
【0020】o食事する必要がある運転手は、食事が可
能な停留所に食事可能な時間帯に到着したら、直ちに食
事するほうがよい。
【0021】などがある。後者の知識は、多くの仕業ダ
イヤにあてはまるが例外もある。
【0022】部分探索空間を、遺伝的アルゴリズムによ
ってさらに限定する手法である、前記従来技術 (特許
「スケジュール自動作成装置」) の場合、経験的知識に
基づいて部分探索空間を設定した後は、その部分探索空
間に含まれない部分は全く探索しないから、確実な知識
しか利用できない。つまり、常に適用可能な知識は利用
可能だが、多くの場合適用可能な知識は利用することが
できない。
【0023】そこで本発明は、多くの場合適用可能な知
識を利用することを目的とする。
【0024】前記従来技術 (特許「状態遷移の概念を導
入した問題解決演算装置および方法」) の場合、各解法
は独立しており、経験的知識に基づく探索は、遺伝的ア
ルゴリズムに基づく解法と相互作用すること無しに、求
解できることが前提とされているから、知的探索に、遺
伝的アルゴリズムを組み込むことによって初めて現実的
な時間で求解が可能になる本発明とは目的が異なる。
【0025】前記従来技術 (特許「スケジューリング方
法」) の場合、知的探索ではなく、制約緩和法が元にな
っている点、および遺伝的アルゴリズムを、解探索に用
いるのではなく、制約競合を解消するルールを選択する
手段として、用いている点で、本発明とは異なる。
【0026】
【課題を解決するための手段】本発明で扱う問題を探索
するときの探索木の例を図 2 に示す。この例では、ア
ルファベット a, b, c の長さ 3 の順列組合せが解であ
る。評価関数が f (σ) であるとすると、f (aaa), f
(aab), f (aac), f (aba),. . ., f (ccc) の中で最大
であるものを探すことが目標である。
【0027】各ノードは探索途中の中間解に対応する。
例えばノード 205 は、解 cca, ccb, ccc の探索に至る
途中の中間解 cc に対応する。頂点に位置するノード 2
01をルートノードと呼ぶ。
【0028】そこで各ノードを中間解と同一視し、各ノ
ードを中間解で表す。例えばノード205 はσ = cc と表
す。
【0029】各ノードには選択枝 a, b, c がある。例
えばノード 201 には選択枝 a (図中202), b (図中20
3), c (図中 204) がある。選択枝がないノードを末端
ノードと呼ぶ。末端ノードは解である。例えば末端ノー
ド 206 は、解 bca を表し、末端ノード 207 は、解 cc
b を表す。
【0030】本発明のブロック図を図 1 に示す。解を
探索する探索部 102 と、中間解を評価して中間評価値
を算出する中間評価値算出部 104 と、中間評価値を補
正する優先度を遺伝的アルゴリズムに基づいて生成する
GA (遺伝的アルゴリズム) 演算部 110 と、探索部が探
索した解を評価する評価値演算部 108 を備える。
【0031】探索部 102 では、探索途中である探索木
の各ノード σ において、各選択枝s を選んだと仮定し
た時に得られる中間解 σ・s それぞれについて、中間
評価値算出部 104 が算出した中間評価値 h = h(σ, s)
と、 GA 演算部 110 が生成した優先度列 112 に基づ
く優先度g = g(σ, s) との双方の値を引数とする枝刈
り関数 f (g, h) の値に基づいて、枝刈りを行なうか否
かを決定する。
【0032】つまり、知的探索による求解の場合は、中
間評価値 h(σ, s) が低い選択枝を探索対象から外す
が、本発明では、枝刈り関数 f (g, h) の値が低い選択
枝を探索対象から外す。
【0033】間評価値算出部 104 は、中間解 σ・s
を、知識記憶部 103 に記憶された複数の評価項目ごと
に副評価値を算出し、それぞれの副評価値を総合評価す
る関数を用いて中間評価値を算出する。例えば、副評価
値が x1 , x2 , x3 , x4 , x5であるならば、中間評価
値を副評価値の加重和、すなわち w1 x1 + w2 x2 + w3x
3 + w4 x4 + w5 x5 (w1 , w2 , w3 , w4 , w5 は副評
価値それぞれの重み)とすれば良い。
【0034】中間解をユーザに提示する中間解表示装置
105 を備えることにより、ユーザは探索途中の中間解
を見ながら、重み w1 , w2 , w3 , w4 , w5 の値を変
化させることにより、副評価値を総合評価する関数を調
整できる。
【0035】すなわち、各ノード σ において、選択枝
s それぞれについて、中間解 σ・s をユーザに提示
し、それに対しユーザはどの選択枝が好ましいか判断
し、どの副評価値の重みを大きくすれば、好ましい選択
枝に対応する中間解の中間評価値が高くなるか試行錯誤
し、副評価値の重みを調節する。
【0036】前述した中間評価値算出部 104 は、副評
価値を入力とし、中間評価値を出力とするニューラルネ
ットワークを用いて実現しても良い。
【0037】ニューラルネットワークを用いて中間評価
値算出部 104 を実現した場合は、中間解をユーザに提
示する中間解表示装置 105 を備えることにより、ユー
ザがニューラルネットワークを調整できる。
【0038】つまり、中間解表示装置 105 を介してユ
ーザに中間解および次に選択可能な複数の選択枝を提示
し、ユーザが選択枝ごとに好ましさの度合いを入力する
と、これを教師信号として、誤差逆伝播法によってニュ
ーラルネットワークの学習を行う。
【0039】ニューラルネットワークの学習について
は、中野馨著「ニューロコンピュータの基礎」コロナ社
発行において詳しく説明されている。
【0040】中間解表示装置 105 を介してユーザに中
間解および次に選択可能な複数の選択枝を提示し、ユー
ザが好ましいと判断する一つまたは複数の選択枝を入力
すると、入力した選択枝の中間評価値が高くなるような
教師信号を生成し、誤差逆伝播法によってニューラルネ
ットワークの学習を行うようにしても良い。
【0041】あるいは逆に、ユーザが好ましくないと判
断する一つまたは複数の選択枝を入力すると、入力した
選択枝の中間評価値が低くなるような教師信号を生成
し、誤差逆伝播法によってニューラルネットワークの学
習を行うようにしても良い。
【0042】GA 演算部 110 が生成する優先度列 112
は図 3 に示す、三つ組 (ui, si, pi) を要素とする集
合である。要素数を |g| で表す。三つ組 (ui, si, pi)
は、探索局面 ui における選択枝si の優先度が pi で
あることを示す。ここで探索局面とは、探索木の各ノー
ド σ の関数である。すなわちこの三つ組は各ノードに
おける選択枝 si の優先度 g(σ, si) を与える。
【0043】優先度列 112 から、各探索局面 uj の各
選択枝 sk の優先度 pjk = p(uj, sk ) を求めるフロ
ーチャートを図 4 に示す。
【0044】ステップ 401 において、優先度列 112 か
ら一つずつ三つ組を取り出す (ただし優先度列自体は変
化させない)。これを (ui, si, pi) とおく。ステップ
402において、もし ui = ujかつ si = sk が成り立つ
ならば、優先度 pjk は piであるから、ステップ 403
において piを返す。ステップ 402 の条件が成り立たな
いときは、ステップ 404 において全ての三つ組を取り
出したか調べ、まだ取り出していない三つ組が優先度列
112 に残っているならば、ステップ 401 に戻る。全て
の三つ組を取り出しても、ステップ 402 の条件が成り
立つ三つ組が無い場合は、ステップ 405 において新た
に三つ組を生成する。つまり、ランダムに優先度を生成
して pl (ただし pl は 0 < pl < 1 を満たす実数) と
し、三つ組 (uj , sk , pl) を優先度列 112 に追加す
る (優先度列を変化させる)。そしてステップ 403 にお
いて pl を返す。
【0045】さて、枝刈り関数 f (g, h) は、例えば優
先度 g と中間評価値 h の加重和、すなわちf (g, h)
= αh + (1 - α)g (ただし 0 < α < 1) とすれば良
い。α の値を変化させることによって、枝刈りにおい
て中間評価値と優先度のどちらを重視した探索を行なう
か、調整できる。つまり、 α の値が大きくするほど経
験的知識を重視した探索となり、 α の値が小さくする
ほど遺伝的アルゴリズムを重視した探索となる。
【0046】あるノード σ において、選択枝 s の中
間評価値 h(σ, s) が最大であったとしても、別の選択
枝 s0 の優先度 g(σ, s0) が g(σ, s) に比べて十分
大きければ、枝刈り関数の値は s0の方が大きくなる。
【0047】つまり、不十分な知識が中間評価値の算出
に用いられていても、遺伝的アルゴリズムが適切な優先
度を割り当てれば、最適解あるいは実用上十分良い解を
得ることができる。
【0048】GA 演算部 110 は、優先度列 112 を個体
の遺伝子とし、解 106 を個体とし、解 106 を評価値演
算部 108 に入力することによって得られた評価値 109
に基づく値を個体の適応度として、遺伝的アルゴリズム
(実施例参照) に基づいて演算を行ない、優先度列 112
の最適化を行う。すなわち評価値 109 が最大となるよ
うな優先度列 112 を生成する。
【0049】ここで、評価値演算部 108 は、制約条件
記憶部 107 に記憶された制約条件それぞれを、解 106
が満たしているか調べ、満たしていない場合は制約違反
の度合いに応じて評価値を減ずる。
【0050】遺伝的アルゴリズムにおける世代を X 軸
とし、それぞれの世代毎の、適応度が最も高い個体に対
応する評価値を Y 軸とした収束特性グラフ (図 10) を
収束特性表示装置 111 を介してユーザに提示する。
【0051】Y 軸として評価値の代りに適応度を表示し
ても良い。
【0052】すなわち、 GA 演算部 110 は、優先度列
に対応する遺伝子を複数個記憶し、各遺伝子の適応度
は、対応する優先度列および前記中間評価値に基づい
て、探索部 102 が探索した結果得られた解を、評価値
演算部 108 へ入力することによって得られた評価値に
対応する値とする。
【0053】GA 演算部 110 が行う遺伝的アルゴリズム
に基づく演算における世代毎の、適応度が最も高い遺伝
子の適応度または対応する評価値を、グラフにて表示す
る収束特性表示装置111 を備える。
【0054】収束特性表示装置 111 に表示された収束
特性グラフを見て、ユーザは世代毎の適応度あるいは評
価値の改善度合を判断し、枝刈りにおいて中間評価値と
優先度のどちらを重視した探索を行なうか、 α の値を
変化させることによって調整する。
【0055】例えば収束特性グラフが図 10 の様である
場合は、短い時間でそこそこの解を求めることが重要で
あれば、 α = 0.9 (つまり経験的知識重視) とする方
が良く、時間は重要ではなく解の質が重要であれば、
α = 0.1 (つまり遺伝的アルゴリズム重視) とする方が
良い。
【0056】経験的知識を重視する場合は、中間評価値
算出部 104 の調整が重要である。
【0057】収束特性表示装置 111 に表示された収束
特性グラフを見て、ユーザは世代毎の適応度あるいは評
価値の改善度合すなわち求解効率を判断し、中間評価値
を算出する際の、各副評価値の比重を調整する。
【0058】つまり、副評価値それぞれについて、その
重みを変化させると求解効率がどう変化するか調べ、適
切な重みの比を試行錯誤で求める。
【0059】ユーザは α の値や副評価値の重みを調節
しつつ、実用上十分良い解に速やかに収束するα の値
および副評価値の重みを探す。一度、最適な α の値お
よび副評価値の重みを定めれば、同種の問題に対しては
同じ値および重みを用いることができる。
【0060】また、 α の値を小さくすると、遺伝的ア
ルゴリズムを重視した求解が行われるが、この時、 α
の値が大きい場合と比べて、より良い解が得られるよう
であれば、中間評価値の算出方法があまり適切ではな
く、改善する余地があることを意味する。したがって、
α の値を小さくしたときに、どのくらい良い解が得ら
れるかを、中間評価値を算出する関数がどのくらい優れ
ているかの指標として用いることができる。
【0061】つまり、探索部 102 の枝刈りにおいて、
中間評価値を重視した探索を行った場合と、優先度を重
視した探索を行った場合と、それぞれの場合について、
遺伝的アルゴリズムに基づいて優先度の最適化を行い、
どちらの場合が良い解を求めることができるかにより、
前記中間評価値を算出する関数を改善する余地があるか
否かをユーザが判断できる。
【0062】
【発明の実施の形態】以下、バス仕業ダイヤの自動作成
の場合に対する一実施例を用いて、本発明を詳細に説明
する。図 1 にブロック図を示す。バス仕業ダイヤ自動
作成システムでは、問題 101 として、バス山ダイヤの
集合 (図 11、以降「バスダイヤ」と略記) を入力し、
解 106 として、バス仕業ダイヤ (図 12) を出力する。
中間解の評価項目を記憶する知識記憶部 103 と、中間
解の評価項目ごとの副評価値を総合評価して中間評価値
を算出する中間評価値算出部104 と、中間評価値を補正
する優先度を遺伝的アルゴリズムに基づいて生成する G
A (遺伝的アルゴリズム)演算部 110 と、中間評価値と
優先度に基づいて解を探索する探索部 102と、探索部が
探索した解を、制約条件記憶部に記憶した制約条件に基
づいて評価する評価値演算部 108 を備える。
【0063】バスダイヤ (図 11) において、横軸は時
間であり、バスの運行が斜めの直線で表されている。例
えば、「野球場前」停留所を 6:50 に出発したバスは、
「万台駅」停留所に 7:08分に到着することが読みとれ
る。「野球場前」から「万台駅」までのこのような一続
きのバスの運行を、山ダイヤと呼ぶ。つまり山ダイヤ
は、山ダイヤの集合を定める。この山ダイヤの集合を
{y1 , y2 , . . ., yL }とおく (ただし L は山ダイヤ
の個数)。
【0064】バス仕業ダイヤ (図 12) において、横軸
は時間であり、山ダイヤが線分で表される。各行は運転
手を表し、同じ行にある山ダイヤ全てを運転することを
表す。例えば運転手「A」は、「恵 (恵田町)」停留所か
ら出発して、「及」、「恵」を通って「長」に至り、
8:44 から 9:30 までは朝食休憩を取り、 13:24 「長」
まで乗務することを表している。各運転手の勤務を仕業
と呼ぶ。つまりバス仕業ダイヤは、山ダイヤの運転手へ
の割当てを定める。
【0065】探索部 102 は、中間評価値算出部 104 が
算出した中間評価値と、 GA 演算部110 が生成した優先
度列 112 を参照して、仕業ダイヤ 106 を作成する。
【0066】探索部 102 のフローチャートを図 5 に示
す。
【0067】ステップ 501 の初期化において、山ダイ
ヤ 611 をあらかじめ決められた順に並べておき、山ダ
イヤリスト 610 とする。割当はこのリストの順に行
う。山ダイヤの順番は原則として時間順であるが、制約
条件により次の 2 つのバリエーションがある。
【0068】1 つは、ラッシュアワーにおける運転手の
人数の制約が強い場合である。朝と夕の特定の時間に山
ダイヤが集中している場合、この時間の山ダイヤをリス
トの先頭の方に置いて、割当の早い段階で割り当てるこ
とにより、運転手の必要人数が少ない仕業ダイヤを優先
して作ることができる。
【0069】もう 1 つは、朝食を食べる場所、時間が
限定されている場合である。特定の停留所で、決められ
た時間以上空き時間があって、かつ特定の時間帯である
必要がある場合などでは、朝食時間帯の割当を先に行っ
た方が効率が良い。そこで山ダイヤリストの先頭の方に
朝食時間帯の山ダイヤを置く。
【0070】どちらのバリエーションを選択するにせ
よ、山ダイヤの割当て順は固定であるから、山ダイヤを
割当て順に並べ、順に y1 , y2 , y3 , . . ., yL と
名前を付ける。
【0071】すると、仕業ダイヤは dj1 dj2 dj3 … dj
L と表現できる。ただし dji (ji∈ {1, 2, .. .N },
N は運転手の人数) は山ダイヤ yi を割り当てる運転手
を表す。 この場合、 中間解はdj1 dj2 dj3 … dj(k-1)
(ただし k < L) であり、選択枝は運転手である。選
択した運転に山ダイヤ yk が割当てられ、割当て後の
中間解は dj1 dj2 dj3 … dj(k-1) djk になる。
【0072】探索途中の例を図 6 に示す。図中、仕業
ダイヤ 630 は途中まで山ダイヤの割当てが済んでいる
中間解である。ステップ 502 で、山ダイヤリスト 610
の先頭から順に山ダイヤ 620を取り出して yk とす
る。
【0073】山ダイヤ yk の例を 620 に示す。山ダイ
ヤ 620 は、「C」停留所 (図中 621) を 14:00 に出発
して 14:25 に「E」停留所 (図中 623) に到着すること
を示す。
【0074】山ダイヤ 620 をどの運転手に割当てるか
を、次のように選択する。
【0075】まずステップ 504 で、山ダイヤ yk を、
i (i = 1, 2, 3, . . .N ) 番目の運転手 (以下、運転
手 i と略記) へ割当てることを試みる。
【0076】ステップ 505 で、山ダイヤ yk を運転手
i に割当てたときできる中間解を、中間評価値算出部
104 で評価し、中間評価値 h を得る。
【0077】また、 GA 演算部 110 が生成した優先度
列 112 に基づき、山ダイヤ yk に対して運転手i を選
ぶ場合の優先度を g とする。本実施例では、探索局面
u として山ダイヤ yk を、選択枝 s として yk に隣
接する山ダイヤ yk0 (隣接する山ダイヤが無い場合は
運転手 i) を用い、優先度 g = p(u, s) を前述した方
法 (図 4) で求めた。
【0078】ステップ 506 で、枝刈り関数の値 αh +
(1 - α)g を求め、変数 v に代入する。
【0079】そして、ステップ 507 〜 510 で、枝刈り
関数の値 v が最大となるような運転手 i を選ぶ。
【0080】以上のようにして選んだ運転手に、ステッ
プ 512 で山ダイヤ yk を割り当てる。これを山ダイヤ
リストが空になるまで繰り返す (ステップ 513) ことに
より仕業ダイヤを作成する。
【0081】つまり、本実施例では、探索木の各ノード
における選択枝それぞれについて、中間評価値とそれを
補正する優先度を引数として枝刈り関数の値 v を計算
し、v が最大である選択枝のみを探索し、それ以外の枝
を枝刈りする。
【0082】枝刈り関数の値 v が最大である選択枝の
みを探索するかわりに、複数の選択枝を探索しても良
い。各ノードにおいて例えば枝刈り関数の値が大きいも
のから順に一定数個探索を行う。ただし、枝刈り関数の
値が一定の水準以下である場合は探索を打ち切り、バッ
クトラックを行う。バックトラック可能な段数に制限を
設け、一定段数以上のバックトラックが生じる場合は、
前記探索を打ち切ったノードから探索を再開するように
しても良い。
【0083】中間評価値算出部 104 は、各評価項目ご
との副評価値に基づいて中間評価値を算出する。
【0084】本実施例では、中間解を、回送時間、折り
返し運転、あき時間、食事、および連続運転、の各項目
ごとに副評価値を算出し、それぞれの副評価値を総合評
価する関数を用いて中間評価値を算出した。
【0085】副評価値の算出方法を次に示す。ただし、
山ダイヤ yk を運転手 i に割当てたとき、山ダイヤ y
k に隣接する山ダイヤを yk0 とし、山ダイヤ yk , y
k0における隣接する側の停留所を a, a0 とし、停留所
a, a0 間を回送するために必要な運転時間を t [分] と
し、停留所 aまたは a0 で停車している待ち時間をu
[分] とする。
【0086】(1)項目: 副評価値 (2)回送時間:-t (3)折り返し運転:t, t0 が同一で郊外の停留所なら
ば -u, そうでないなら0. (4)あき時間:u > 90 ならば -u, そうでないなら
0. (5)食事:i が食事する必要がある運転手で、かつ a
または a0が食事可能な停留所で、かつ u が食事する
のに十分な時間ならば 1, そうでないなら 0. (6)連続運転:u が休憩するのに十分な時間ならば
0, そうでないなら、前回の休憩からの累計運転時間を
w [分] として-w. 副評価値を総合評価する関数として、本実施例では、図
8 に示す三層ニューラルネットワークを用いた。
【0087】つまり、前述した副評価値それぞれを、正
規化して三層ニューラルネットワークに入力し、この三
層ニューラルネットワークの出力を中間評価値とした。
【0088】ただし、次にあげる制約違反が割当てによ
って生じている場合は、ペナルティとして中間評価値を
下げる。
【0089】o 停留所 a, a0 間の回送が不可能である
場合。
【0090】o 運転手 i の勤務時間帯に収まらない場
合。
【0091】前者の場合、割当てが不可能であるから、
ニューラルネットワークの出力値に関わらず、中間評価
値として -∞ (負の無限大) を与える。後者の場合、勤
務時間帯からはみ出す時間に比例した値を、ニューラル
ネットワークの出力値から減じたものを、中間評価値と
する。
【0092】本実施例では単一の三層ニューラルネット
ワークを用いるが、時間帯ごと、運転手ごと、あるいは
山ダイヤごと、別のニューラルネットワークを用いるよ
うにしても良い。
【0093】なお、運転手 i にすでに割当てられてい
る山ダイヤが無いとき (図 6 中 633)、山ダイヤyk に
隣接する山ダイヤは存在しない。この場合は、運転手ご
とにあらかじめ設定した中間評価値を用いる。
【0094】評価値演算部 108 は、作成した仕業ダイ
ヤが、制約条件 107 をどの程度満足しているか、また
各運転手の労働時間が均等になっているかなどを総合的
に判断して、評価値 106を出力する。
【0095】本実施例では、未割当山ダイヤの運転時間
(単位: 分) を百倍した時間、各運転手の運転時間の
上限を越えた運転時間 (単位: 分)、各運転手の勤務時
間の上限を越えた勤務時間 (単位: 分) の合計に、 -1
を掛けたものを評価値 106とした。つまり制約違反が
ないとき、評価値は最大値 0 となる。
【0096】未割当である山ダイヤが存在する仕業ダイ
ヤは、実際に運用することが不可能であるので、ペナル
ティとして百倍している。この他にも、各運転手の運転
時間などの分散を評価値に加えることにより、運転時間
などの均一化を図ることが可能である。
【0097】この評価値を元に図 1 の GA 演算部 110
は、優先度列を逐次最適化し、探索部にフィードバック
する。 GA 演算部と探索部および評価値演算部との間の
フィードバックループを繰り返すことにより、最適な優
先度列を得ることができ、その結果最適な仕業ダイヤを
作成することができる。
【0098】GA 演算部 110 は、遺伝的アルゴリズムを
用いて優先度列を最適化する。図 7に本実施例における
遺伝的アルゴリズムの流れ図を示す。初期化 701 にお
いて、長さ 0 の優先度列を m 個生成し、遺伝的アルゴ
リズムにおける個体とする。
【0099】交差・増殖 702 においてランダムに r 組
の個体を選び、それぞれ交差し子個体を生成する。この
結果個体数は m + r になる。
【0100】交差は、 一点交差法を用いる。 すなわ
ち、 親個体の優先度列 g1 = {(u1i, s1i , p1i )},g
2 = {(u2j , s2j , p2j )} に対して、 0 <= r <= |g2
| を満たす乱数 r ∈ Z (整数) を生成し、子個体の優
先度列 g = (g1\h1 ) ∪ (g2\h2 ) を作る (`\' は
差集合演算子)。ここで、 o h1 = {(u1i , s1i , p1i ) |∃j, j >= r ∧ u2
j = u1i ∧ s2j = s1i } o h2 = {(u2j , s2j , p2j ) |∃i, j < r ∧ u1i
= u2j ∧ s1i = s2j )} つまり、 g1 と g2 の和集合から、重複する探索局面
・選択枝の組を取り除いたものを子個体とする。 r を
交差点と呼ぶ。
【0101】個体評価 703 において、評価値が定まっ
ていない個体の優先度列を、それぞれ図 1 の探索部 10
2 へ渡して探索を行い、それぞれの解を評価値演算部 1
08において評価して評価値109 を求め、それぞれの個体
の評価値とする。
【0102】そして自然淘汰 704 で r 個の個体を淘汰
して、個体数を m に戻す。
【0103】淘汰は、個体集合の多様性を維持するため
に、次のように行う。まず評価値が高い順に個体を並べ
る。評価値が高い方から順に個体の評価値を調べ、直前
の個体の評価値との差の絶対値が ε 以下である個体を
全て淘汰する。ただし r 個以上は淘汰しない。淘汰し
た個体数を r0 とする。次に、淘汰した個体数 r0 がr
未満である場合は、 r - r0 個の個体を評価値が低い方
から順に淘汰する。
【0104】突然変異 705 において、全ての個体の優
先度列の全ての三つ組における優先度 p の値を、確率
P でランダムに変更する。
【0105】個体集合の中で一番評価値が高い個体の評
価値が十分高いかを 706 で調べ、十分高いならば終
了、そうでなければ 702 に戻って繰り返す。ただし、
一定回数繰り返した場合は終了する。
【0106】ステップ 702 からステップ 706 までを、
一世代と呼び、繰り返し回数を世代数と呼ぶ。n 回の繰
り返しの後の個体を、 n 世代目の個体と呼ぶ。
【0107】世代数を X 軸に取り、各世代ごとの、適
応度が最も高い個体に対応する評価値を Y 軸とした収
束特性グラフ (図 10) を収束特性表示装置 111 を介し
てユーザに提示する。
【0108】ユーザは評価値の改善度合いを見て、枝刈
り関数における中間評価値と優先度のどちらを重視した
探索を行うか、すなわち α の値を調整する。例えば、
改善が遅い場合 (図 10 中α = 0.1 の場合) は、 α
の値を大きくして知識が探索に直接反映するようにす
る。一方、改善が急速に進み早い段階で改善度合いが鈍
り、以後改善がなかなか進まない場合 (図 10中 α =
0.9 の場合) は、 α の値を小さくして遺伝的アルゴリ
ズムによる解の改善を重視した探索を行うようにすれば
良い。
【0109】α の値の調整では所望の水準の解が得ら
れないときは、ユーザの判断で、遺伝的アルゴリズムに
よる解の改善を中断し、中間評価値の算出方法を調節す
る。
【0110】中断した時点において最も評価値が高い個
体の優先度列を探索部 102 へ渡し、探索部は山ダイヤ
を一つ割当てるごとに、中間解表示装置を介して、その
時点における中間解(図 9) をユーザに提示する。次に
割当てる山ダイヤ 902 をそれぞれの運転手に割当てた
と仮定したときの、枝刈り関数の値 v をそれぞれ求め
表示する (図中 901)。そして v が最大となる運転手に
マークを表示する (図中903)。なお、 v の算出方法お
よび v が最大となる運転手の求め方は、図 5 のフロー
チャートと同一である。運転手 905 の場合、割当て済
み山ダイヤ 904 と、次に割当てる山ダイヤ 902 が時間
的に重なり、割当て不可能であるので、中間評価値は -
∞ であり、したがって v の値も -∞ となっている。
【0111】マークされた運転手への割当てが好ましく
ないと、ユーザが判断した場合は、この割当てに対応す
る副評価値を三層ニューラルネットワークに入力したと
き出力される中間評価値を下げるように誤差逆伝播法に
より前記三層ニューラルネットワークの学習を行う。
【0112】あるいは、ユーザが好ましいと判断する割
当て先がある場合は、対応する中間評価値を上げるよう
に前記三層ニューラルネットワークの学習を行う。
【0113】あるいは、現在の v の値が妥当であると
ユーザが判断した場合は、学習を行わない。
【0114】本実施例では、単一の中間層を持つ三層ニ
ューラルネットワークを用いたが、複数の中間層を持つ
多層ニューラルネットワークを用いても良い。
【0115】学習を行った場合は、学習後のニューラル
ネットワークを用いて枝刈り関数の値 v を再計算す
る。
【0116】v が最大となる運転手へ山ダイヤ 902 を
割当てる。
【0117】全ての山ダイヤを割当てるまで以上の操作
を繰り返した後、遺伝的アルゴリズムによる解の改善を
再開する。
【0118】つまり、収束特性表示装置 111 を介して
ユーザは収束特性グラフを監視し、評価値の改善度合い
が遅いと判断した場合は、上述した方法でニューラルネ
ットワークの学習を行うことによって、中間評価値を算
出する際の、各副評価値の比重を調整することができ
る。
【0119】さて一般に、 α の値が大きいときは中間
評価値を重視した探索が行われ、α の値を小さくする
ほど、優先度が重視されるようになるから、もし、 α
の値を小さくしたとき、より良い解が得られるならば、
中間評価値の算出方法に改善の余地があることを意味す
る。したがって、小さい α の値 (例えば α = 0.1)
および大きい α の値 (例えば α = 0.9) れぞれにつ
いて遺伝的アルゴリズムによる解の改善を行い、得られ
る解を比較することにより、中間評価値の算出方法に改
善の余地があるか否かをユーザが知ることができる。
【0120】改善の余地がある場合は、前述した方法で
中間評価値を算出するニューラルネットワークの学習を
行い、中間評価値の算出方法を改善すれば良い。
【0121】
【発明の効果】枝刈りを経験的知識に基づく中間評価値
と、遺伝的アルゴリズムに基づく優先度の総合評価によ
り行うことで、常に正しいとは限らない経験的知識を利
用することが可能になった。
【0122】また、ユーザが会話的に、中間評価値を算
出する関数および枝刈り関数を調整できるようにするこ
とで、ユーザの持つ経験的知識を効率的に抽出すること
が可能になった。
【0123】枝刈り関数において中間評価値の比重を変
化させて、得られる解がどのように変化するか調べるこ
とにより、中間評価値の算出方法がどのくらい改善する
余地があるか、目安を提供することが可能になった。
【図面の簡単な説明】
【図1】本発明のブロック図。
【図2】本発明で扱う問題を探索するときの探索木の
例。
【図3】GA演算部が生成する優先度列。
【図4】優先度列から、各選択枝の優先度を求めるフロ
ーチャート。
【図5】実施例における探索部のフローチャート。
【図6】実施例における、山ダイヤから仕業ダイヤを生
成する探索部の概要図。
【図7】実施例における、遺伝的アルゴリズムのフロー
チャート。
【図8】実施例における、中間評価値を算出する三層ニ
ューラルネットワーク。
【図9】実施例における、中間解表示装置の表示例。
【図10】実施例における、収束特性グラフの例。
【図11】実施例における、バスダイヤの例。
【図12】実施例における、バス仕業ダイヤの例。
【符号の説明】 101…問題記憶部、102…探索部、103…知識記憶部、104
…中間評価値算出部、105…中間解表示装置、106…解、
107…制約条件記憶部、108…評値演算部、109…評価
値、110…GA演算部、111…収束特性表示装置、112…優
先度列、113…解記憶部、201…ルートノード、205…ノ
ード、206…末端ノード、630…仕業ダイヤ、610 …山ダ
イヤリスト、620…山ダイヤ、900…仕業ダイヤ。

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】組合せ最適化問題を解く装置であって、解
    を探索する探索部と、中間解を評価して中間評価値を算
    出する中間評価値算出部と、前記中間評価値を補正する
    優先度を遺伝的アルゴリズムに基づいて生成する遺伝的
    アルゴリズム演算部と、前記探索部が探索した解を評価
    する評価値演算部とを備え、前記探索部は、前記中間評
    価値と前記優先度との双方の値を引数とする枝刈り関数
    の値に基づいて枝刈りを行なう問題解決装置。
  2. 【請求項2】請求項1記載の中間評価値算出部は、中間
    解を複数の評価項目ごとに副評価値を算出し、それぞれ
    の副評価値を総合評価する関数を用いて中間評価値を算
    出する、請求項1記載の問題解決装置。
  3. 【請求項3】請求項2記載の中間評価値算出部は、前記
    副評価値を入力とし、中間評価値を出力とする、ニュー
    ラルネットワークを用いて実現することを特徴とする、
    請求項2記載の問題解決装置。
  4. 【請求項4】請求項1記載の中間解をユーザに提示する
    中間解表示装置を備え、ユーザが請求項2記載の副評価
    値を総合評価する関数を調整できることを特徴とする、
    請求項1または2記載の問題解決装置。
  5. 【請求項5】請求項1記載の中間解をユーザに提示する
    中間解表示装置を備え、ユーザが請求項3記載のニュー
    ラルネットワークを調整できることを特徴とする、請求
    項1または3記載の問題解決装置。
  6. 【請求項6】請求項4記載の中間解表示装置を介してユ
    ーザに中間解および次に選択可能な複数の選択枝を提示
    し、ユーザが選択枝ごとに好ましさの度合を入力する
    と、これを教師信号として、誤差逆伝播法によって、請
    求項3または5記載のニューラルネットワークの学習を
    行なうことを特徴とする、請求項3または5記載の問題
    解決装置。
  7. 【請求項7】請求項4記載の中間解表示装置を介してユ
    ーザに中間解および次に選択可能な複数の選択枝を提示
    し、ユーザが好ましいと判断する一つまたは複数の選択
    枝を入力すると、入力した選択枝の中間評価値が高くな
    るような教師信号を生成し、誤差逆伝播法によって、請
    求項3または5記載のニューラルネットワークの学習を
    行なうことを特徴とする、請求項3または5記載の問題
    解決装置。
  8. 【請求項8】請求項1記載の遺伝的アルゴリズム演算部
    は、請求項1記載の優先度の集合に対応する遺伝子を複
    数個記憶し、各遺伝子の適応度は、対応する優先度の集
    合および前記中間評価値に基づいて、請求項1記載の探
    索部が探索した結果得られた解を、請求項1記載の評価
    値演算部へ入力することによって得られた評価値に対応
    する値とし、遺伝的アルゴリズムにおける世代毎の、適
    応度が最も高い遺伝子の適応度または対応する評価値
    を、グラフにて表示する収束特性表示装置を備えること
    を特徴とする、請求項1乃至7記載の問題解決装置。
  9. 【請求項9】請求項8記載の収束特性表示装置を介し
    て、前記グラフをユーザに提示し、前記適応度または対
    応する評価値の改善度合をユーザが判断し、請求項1記
    載の枝刈りにおいて、前記中間評価値と前記優先度のど
    ちらを重視した探索を行なうか、ユーザが調整できるこ
    とを特徴とする、請求項1乃至8記載の問題解決装置。
  10. 【請求項10】請求項8記載の収束特性表示装置を介し
    て、前記グラフをユーザに提示し、前記適応度または対
    応する評価値の改善度合をユーザが判断し、請求項2記
    載の中間評価値を算出する際の、各副評価値の比重を調
    整できることを特徴とする、請求項7乃至9記載の問題
    解決装置。
  11. 【請求項11】請求項1記載の枝刈りにおいて、前記中
    間評価値を重視した探索を行った場合と、前記優先度を
    重視した探索を行った場合と、それぞれの場合につい
    て、遺伝的アルゴリズムに基づいて前記優先度の最適化
    を行い、どちらの場合が良い解を求めることができるか
    により、前記中間評価値を算出する関数を改善する余地
    があるか否かをユーザが判断できることを特徴とする、
    請求項1乃至10記載の問題解決装置。
JP17558298A 1998-06-23 1998-06-23 問題解決装置 Pending JP2000010953A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17558298A JP2000010953A (ja) 1998-06-23 1998-06-23 問題解決装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17558298A JP2000010953A (ja) 1998-06-23 1998-06-23 問題解決装置

Publications (1)

Publication Number Publication Date
JP2000010953A true JP2000010953A (ja) 2000-01-14

Family

ID=15998614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17558298A Pending JP2000010953A (ja) 1998-06-23 1998-06-23 問題解決装置

Country Status (1)

Country Link
JP (1) JP2000010953A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560881A (zh) * 2019-09-25 2021-03-26 北京四维图新科技股份有限公司 对象识别方法和装置、数据处理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560881A (zh) * 2019-09-25 2021-03-26 北京四维图新科技股份有限公司 对象识别方法和装置、数据处理方法
CN112560881B (zh) * 2019-09-25 2024-04-19 北京四维图新科技股份有限公司 对象识别方法和装置、数据处理方法

Similar Documents

Publication Publication Date Title
US7966272B2 (en) Methods and systems for multi-participant interactive evolutionary computing
Ponnambalam et al. Genetic algorithms for sequencing problems in mixed model assembly lines
Walker et al. Vehicle routing and adaptive iterated local search within the hyflex hyper-heuristic framework
Chou et al. A multiobjective hybrid genetic algorithm for TFT-LCD module assembly scheduling
Chang et al. Adaptive multi-objective genetic algorithms for scheduling of drilling operation in printed circuit board industry
Hajipour et al. Novel Pareto-based meta-heuristics for solving multi-objective multi-item capacitated lot-sizing problems
Guo et al. Genetic optimization of order scheduling with multiple uncertainties
El-Bouri et al. A neural network for dispatching rule selection in a job shop
JP2013025509A (ja) 巡回路決定についてのプログラム、方法及び装置
CN107944748B (zh) 柔性作业车间人员配置及作业排序方法
CN110298615A (zh) 用于选择仓库中的货品的方法、装置、介质和计算设备
Asta et al. An apprenticeship learning hyper-heuristic for vehicle routing in HyFlex
CN116644931A (zh) 一种基于遗传算法的任务调度方法
Park et al. Practical Human Resource Allocation in Software Projects Using Genetic Algorithm.
CN110400020A (zh) 用于输出信息的方法和装置
JP2000010953A (ja) 問題解決装置
Upasani et al. Integrating a decomposition procedure with problem reduction for factory scheduling with disruptions: a simulation study
Kamalinia et al. Hybrid task scheduling method for cloud computing by genetic and PSO algorithms
Sakurai et al. A multi-inner-world genetic algorithm to optimize delivery problem with interactive-time
JPH11118501A (ja) 最適経路探索方法
CN114077947A (zh) 配送调度方法、装置、电子设备及存储介质
Hoffmann et al. Google challenge: A hyperheuristic for the machine reassignment problem
JP2000132604A (ja) 要員配置スケジューリング方法および装置と要員配置スケジューリングプログラムを記録した記録媒体
Nurdiansyah et al. An Improved Differential Evolution Algorithm for Permutation Flow Shop Scheduling Problem.
Ali et al. Hyper-heuristic approaches for the travelling thief problem