(57)【要約】【目的】ビットマップ地図上に重みベクトルマトリックスを与え、組合せで中継点を公平にばらまき、順列でつなぎ変えを行うことにより、公平な経路探索と公平な仕事の配分を可能にすることを目的にする。【構成】ロジスティック写像から擬似乱数Ｙｔ，１またはＰＮ信号を高速に生成し、組合せまたは順列を取り出し、重みベクトルマトリックスを与えたビットマップ地図上で視覚化した経路探索を行う。【特許請求の範囲】
ビットマップ上の位置座標に、重みベクトルのマトリックスが重ね合わされたビットマップ地図上で、始点を含む中継点の重みベクトルと始点から終点に到る点と点の間の距離との内積の総和を求めることにより、エネルギー消費量を求め、組合せと順列を用い最小エネルギーの経路をもとめることを特徴とする経路探索問題の解法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
公平に仕事を分配してやらねばならない、という産業上の要望は多い。能力に応じて公平に仕事は分配されている方がよい。そういうことは人が考えてやるべきことで、考えるということのできないデジタルコンピュータには不向きだと考えられてきた。デジタルコンピュータが人に役立つ道具となるためには、結果として公平でなければならないという仕事の配分という問題にも答えられるようにならねばならない。
【０００２】
デジタルコンピュータがそれなりに発展した今日、それらがネットワークに接続されるようになった。複数のコンピュータに公平に仕事を分配するというような機能をコンピュータ自身が身につけ、実行できねばならない。本案はそのような場合の１つの可能性ある手法を提供する。
【０００３】
【従来の技術】
複雑な組合せ問題の代表的な例としてＴＳＰ（Ｔｒａｖｅｌｉｎｇ　Ｓａｌｅｓｍａｎ　Ｐｒｏｂｌｅｍ，巡回セールスマン問題）がある。たとえば、６４×６４のビットマップ上に１６都市に番号（０〜１５）をつけてばらまく。どういう順番でまわれば最短経路となるか、という問題である。１６都市のＴＳＰといわれる問題である。１６都市のＴＳＰで最短経路をもとめようとすると、０〜１５の順列を１６！＝２．０９×１０１３通り出力し、そのすべてについて距離計算をし、最も小さい値を解とすればよい。
【０００４】
０〜１５の順列を今日のデジタルコンピュータで順番に生成することは不可能ではない。しかし、天文学的に膨大な時間がかかって、実際の役には立たない。１６都市のＴＳＰを解く、たとえば、左回りの最短距離と右回りの最短距離が求まって、値が一致したとき、問題が解けたとしよう。まだ、こういう実験に成功した人はいない。
【０００５】
【発明が解決しようとする課題】
障害物がもうけられたビットマップ上の経路探索では、障害物を横切ることが禁止される。障害物をさけるように問題を設定するのに、重みマトリックスをビットマップに重ね合わせる手法がある。重みベクトルのマトリックスは連立方程式に与える係数の行列と等価である。
【０００６】
ビットマップ上のＡ点からＢ点に到るのに、中継点の３点０，１，２を経由するものとしよう。Ａ，Ｂ，中継点の３点０，１，２の座標が与えられると、Ａ−０−１−２−Ｂの経路に沿った、それぞれの距離は容易にもとめられる。中継点（０，１，２）には、それぞれに重みベクトルが与えられている。例えば、ＡからＢへ、（０，１，２）を経由して荷物を運ぶとしよう。重みベクトルは、それぞれの地点で積み込む荷物の重さをあらわす。荷物の積みおろしをした結果とみなしてもよい。ＡからＢに到るエネルギー消費量は重みベクトルと距離との内積の総和である。Ａから（０，１，２）が順番に並んでいるとは限らない。順列を用いて（０，１，２）の順序をかえ、最短の経路についてエネルギー消費量を求める。
【０００７】
２つ立場がある。１つは運転者の立場である。運転者は出来るだけ短い距離を出来るだけ少ない荷物を運んで走ろうとする。エネルギー消費の最小の経路を選択したい。
【０００８】
もう１つは、配送係の立場である。すべての荷物をＢに集めてしまいたい。複数の車と運転者がいるとき、全体としては消費エネルギーを最小にしたい。一方、仕事の分配は公平に行なわねばならぬ。このような要求を満足するには、連立方程式をたて、あらゆる条件を満足するように方程式の解をもとめていけばよいが、毎日毎日荷物の量が変化する、すなわち重みベクトルが様々に変化するようなときには、実際問題としていちいち数値解をもとめているわけにはいかない。ベストの解でなくても、ほどほど公平な経路をそれぞれの運転手に指示できるようになっていなければならない。
【０００９】
【課題を解決するための手段】
ロジスティック写像Ｘｔ＋１＝４Ｘｔ（１−Ｘｔ），Ｘｔ＝Ｘｔ＋１がリャプノフ指数λ＝Ｉｎ２＝０．６９３…をもつカオスを生成することは知られている。タイムシリーズＸｔ（ｔは離散時間ｔ＝０，１，２，…）が周期に入るまでが、カオス的振る舞いをしているタイムシリーズである。デジタルコンピュータのＯＳ上で浮動小数点６４ビット倍精度、有効数字５２ビットでロジスティック写像を計算し、同相変換量子化ｎ＝１（量子化分解能ｎ＝１）の出力Ｙｔ，１は擬似乱数である。０と１の連なりの分布は確率分布となっている。
【００１０】
また、有効数字５２ビットを整数になおして５２ビットコードを配列したＰＮ信号も、０と１の連なりの分布は確率分布となっている。擬似乱数Ｙｔ，１からも、ＰＮ信号からも、任意の長さの組合せや順列を取り出すことができる。ただし、ＯＳ上のプログラムにもとづくロジスティック写像の計算には、約１μｓ／写像の時間がかかり、十分な問題解決能力をもっているとはいえない。
【００１１】
計算精度は、カオスがカオスであり続け、周期に入らないことを保証するために、できるだけ高精度に維持しなければならない。ソフト的に実行できることを、集積回路の専用計算器とすることにより、その処理速度は１００倍にも１０００倍にでも高速化が計れる。たとえば、有効数字５２ビットでのロジスティック写像の計算は、Ｘｔ（１−Ｘｔ）乗算器を５２ビット固定小数点乗算器の集積回路で実現すると、ＦＰＧＡ（ｆｉｅｌｄ　ｐｒｏｇｒａｍｍａｂｌｅ　ｇａｔｅ
ａｒｒａｙ）で２０〜５０ｎｓ／写像と高速化できる。
【００１２】
【作用】
初期値Ｘ０から生成されるタイムシリーズの擬似乱数Ｙｔ，１もＰＮ信号も、０と１の連なりの分布が確率分布である、０と１のビット列のよく混じりあった配列である。初期値からの再現性は保証されている。０と１のよく混じりあった配列が初期値Ｘ０に固有である。
【００１３】
たとえば、０〜１５の組合せを取得するときには、擬似乱数Ｙｔ，１またはＰＮ信号の先頭から４ビットづつ、４ビットコードを切り出すとよい。４ビットコードに２進の重みをかけて和をとった整数は０〜１５のうちの１つである。任意の０〜１５の組合せを自由に取り出すことができる。
【００１４】
０〜１５の順列は、重なりを許さない、０〜１５を一度だけ使った１組の配列である。擬似乱数Ｙｔ，１またはＰＮ信号から４ビットコードを切り出し、重なったコードを捨て、重なり合わない４ビットコード１６種類を並べると、１組（本）の順列が取り出される。
【００１５】
組合せはビットマップ上に中継点を公平にばらまくのに使われる。一方、順列は始点Ａから中継点を介して終点Ｂに到る経路のつなぎ変えにつかわれる。
【００１６】
【実施例】
表１にビットマップ１６×１６に対応した。重みベクトルの１６×１６マトリックスの一例を示す。重みの与え方は、たとえば配車系の仕事の内容と経験にもとづく知恵を反映している。ＡとＢが１６×１６のビットマップ地図上の左下と右上にあるとしよう。運転手は最短距離を通りたいから、負荷（重みベクトル）が平等であれば、４５°線に沿って直線に進みたいであろう。都市の中心部を通ると思ってよい。表１にしたがえば、そこには１．０という重みが与えられているから、重い荷物を積まねばならない。一方、周辺には０．２という小さな重みが与えられている。走る距離は長いが軽い荷物を積んで走ったほうがエネルギーの消費がすくない。
【００１７】
【表１】
2004144726.tif 000002
【００１８】
配車係が優先をして立ち寄ってもらいたい地点（支店、倉庫など）があったとすると、そこでの負荷を０．１以下と小さい重みベクトルとしておくと、運転手は率先してその地点を通る経路を選択したがるであろう。
【００１９】
１６×１６のビットマップ上で、１６×１６の表１のような重みベクトルマトリックスを与えた実験は、ビットマップサイズが小さすぎて実際的ではないが、内積の総和をもとめるという極めて小さい計算量で、複雑な組合せ問題に組合せと順列がいかに有効に作用するかを理解するのには十分である。中継点の数を４点（０，１，２，３）としよう。ばらまかれた４点について、順列を用いてつなぎかえをし、えられた最短経路を出力として観測する。
【００２０】
表１は現象の理解を容易にするために、重みベクトルは対象に与えられている。繰り返し実験をして最短距離のあらわれ方を観測していると、少し気のきいた運転手ならこうするだろうというルートがすぐに発見される。すなわち、出発点Ａを左下においたとき、出発点近傍の重みの小さいところを２ヶ所あるいは３ヶ所立ち寄って４５°線に沿って終点Ｂの近傍の重みの小さいところを２ヶ所か１ヶ所経由してＢに到達する。そのルートの総計は、たとえば５．３７６４０６である。一方、周辺を経由したルートもたびたびみつかるが、このままの重みでは、たとえば７．６２３３５ぐらいが短い経路の例である。
【００２１】
左上の中心部、あるいは右下の中心部に重みベクトル０．１という２点をおくと、ルートの総計が４．４５３０２８という小さい値がもとまる。重みを小さく変えることにより、そこにルートをもってくることもできる。逆に、重みを大きく与えることにより、そこを経由しないように選択させることもできる。
【００２２】
総計がバスやタクシーの運賃であるとみなしてもよい。距離だけに依存した共通運賃制が公平で公正な運賃制度とは限らない。都市の交通政策を重みベクトルマトリックスに反映させれば、みんなが納得する合理的な運賃がきめられる可能性がある。こういった場合に、実際に役に立つためには、経路探索の処理時間がデジタルコンピュータの待ち時間（コンピュータに実行を指示して結果が出力されるまで、人が待っていられる時間）が約１秒以内でなければならない。ビットマップサイズが６４×６４程度で、中継点が８点以下の規模の問題に対し、５２ビット固定小数点乗算器が生成する擬似乱数Ｙｔ，１またはＰＮ信号は経路探索に必要な組合せと順列を十分な処理速度で提供できている。
【発明の効果】
【００２３】
連立方程式を立てて解くという複雑な組合せ問題を、ビットマップ上に視覚化し、コンピュータの待ち時間約１秒の間にもっともらしい答えを表示するというヒューリスティックな手法で、問題解決を計った。正解に結びつかない経路探索を含めて可能性のある組合せを高速に繰り返し、確率的に期待できる答えをうることに成功している。そのキーポイントは、擬似乱数Ｙｔ，１またはＰＮ信号を高速に生成することにある。その成果をふまえることにより、複雑な組合せ問題を、制限された範囲においてではあるが、もっともらしく解いているといえる。