(57)【特許請求の範囲】
【請求項１】
複数のオペレーションのそれぞれを複数のタイムスロットのどこで実行するかのスケジューリング問題の近似解を算出する方法であって、
前記複数のオペレーションに課される制約条件を満たし、かつ、予め与えられた終了時間Ｔｕで前記複数のオペレーションを終了できる実行可能解を見つける解算出ステップと、
前記解算出ステップで実行可能解が見つかった場合に、終了時間ＴｕをＴｕ−１に更新して前記解算出ステップを繰り返す繰返ステップと、
前記解算出ステップで実行可能解が見つからなかった場合に、前記繰返ステップを終了する終了ステップと、
前記実行可能解を出力する出力ステップと
を備え、
前記解算出ステップにおいて、前記終了時間までのタイムスロットｔ（ｔ＝１、・・・、Ｔｕ）で実行するオペレーションを貪欲法で決定する、方法。
【請求項２】
前記解算出ステップは、
前記タイムスロットｔで前記複数のオペレーションをそれぞれ実行するか否かを示す決定変数の値を、イジングモデルの複数のビットの複数の状態に対応させ、前記貪欲法に対応しかつ前記制約条件に基づいた目的関数を前記複数のビットの関数として設定する設定ステップと、
前記目的関数をイジングマシンで評価した結果に含まれる前記複数のビットの状態に基づいて、前記複数のオペレーションのそれぞれを、前記タイムスロットｔで実行すべきかを決定する決定ステップと
を含む請求項１に記載の方法。
【請求項３】
前記設定ステップにおいて、オペレーションの時間的な優先度と前記制約条件に基づいて、量子アニーリングにおける前記複数のビットの間の結合定数に相当する物理量と各ビットに作用する外場に相当する物理量を決定し、
前記決定ステップで前記イジングマシンとして前記量子アニーリングに特化した計算機を用いる請求項２に記載の方法。
【請求項４】
前記設定ステップにおいて、オペレーションの時間的な優先度と前記制約条件に基づいて、シミュレーテッドアニーリングにおける前記複数のビットの間の積に掛ける係数と各ビットに掛ける係数に相当する量を決定し、
前記決定ステップで前記イジングマシンとして前記シミュレーテッドアニーリングに特化した計算機を用いる請求項２に記載の方法。
【請求項５】
前記解算出ステップの繰り返しに先立って、前記制約条件から解析的に決定される決定変数を前記解算出ステップで決定する決定変数から除く変数枝刈りを行う変数刈りステップをさらに備える請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記変数刈りステップで用いられる前記制約条件には、前記複数のオペレーションの順序の制約の条件、および、同時処理の制約の条件の少なくとも一方が含まれる請求項５に記載の方法。
【請求項７】
前記貪欲法としてグラフ理論におけるＭＩＳ（Maximum Independent Set）問題を用いる請求項１から６のいずれか１項に記載の方法。
【請求項８】
コンピュータで、複数のオペレーションのそれぞれを複数のタイムスロットのどこで実行するかのスケジューリング問題の近似解を算出するプログラムであって、
前記複数のオペレーションに課される制約条件を満たし、かつ、予め与えられた終了時間Ｔｕで前記複数のオペレーションを終了できる実行可能解を見つける解算出ステップと、
前記解算出ステップで実行可能解が見つかった場合に、終了時間ＴｕをＴｕ−１に更新して前記解算出ステップを繰り返す繰返ステップと、
前記解算出ステップで実行可能解が見つからなかった場合に、前記繰返ステップを終了する終了ステップと、
前記実行可能解を出力する出力ステップと
を実行させ、
前記解算出ステップにおいて、前記終了時間までのタイムスロットｔ（ｔ＝１、・・・、Ｔｕ）で実行するオペレーションを貪欲法で決定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジューリング問題の近似解を算出する方法およびプログラムに関する。
【背景技術】
【０００２】
非特許文献１には、ＴＤＭＡスケジューリング問題が記載されている。
［先行技術文献］
［非特許文献］
［非特許文献１］  M. Sasaki et al "TDMA scheduling problem avoiding interference in multi-hop wireless sensor network," Journal of Advanced Mechanical Design, Systems, and Manufacturing, vol. 10, 2016.
【発明の概要】
【０００３】
本発明の第１の態様においては、複数のオペレーションのそれぞれを複数のタイムスロットのどこで実行するかのスケジューリング問題の近似解を算出する方法であって、複数のオペレーションに課される制約条件を満たし、かつ、予め与えられた終了時間Ｔｕで複数のオペレーションを終了できる実行可能解を見つける解算出ステップと、解算出ステップで実行可能解が見つかった場合に、終了時間ＴｕをＴｕ−１に更新して解算出ステップを繰り返す繰返ステップと、解算出ステップで実行可能解が見つからなかった場合に、繰返ステップを終了する終了ステップと、実行可能解を出力する出力ステップとを備え、解算出ステップにおいて、終了時間までのタイムスロットｔ（ｔ＝１、・・・、Ｔｕ）で実行するオペレーションを貪欲法で決定する。
【０００４】
本発明の第２の態様においては、コンピュータで、複数のオペレーションのそれぞれを複数のタイムスロットのどこで実行するかのスケジューリング問題の近似解を算出するプログラムであって、複数のオペレーションに課される制約条件を満たし、かつ、予め与えられた終了時間Ｔｕで複数のオペレーションを終了できる実行可能解を見つける解算出ステップと、解算出ステップで実行可能解が見つかった場合に、終了時間ＴｕをＴｕ−１に更新して解算出ステップを繰り返す繰返ステップと、解算出ステップで実行可能解が見つからなかった場合に、繰返ステップを終了する終了ステップと、実行可能解を出力する出力ステップとを実行させ、解算出ステップにおいて、終了時間までのタイムスロットｔ（ｔ＝１、・・・、Ｔｕ）で実行するオペレーションを貪欲法で決定する。
【０００５】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態の方法を適用するための計算システム１００を概念的に示す。
【図２】計算システム１００を用いて近似解を算出する問題の一例を説明する概略図である。
【図３】上記スケジューリング問題を定式化するのに用いられる決定変数を説明するための模式図である。
【図４】順序制約をグラフ理論で説明する模式図である。
【図５】同時処理制約をグラフ理論で説明する模式図である。
【図６】本実施形態で近似解を算出する動作のフローの一例を示す。
【図７】与えられた収集時間の上界値で実行可能解を見つける方法をより詳細に示した動作フローの一例である。
【図８】図６のステップＳ１０３で決定変数を枝刈りした結果を模式的に示す。
【図９】イジングモデル２００の模式図である。
【図１０】本実施形態の方法と比較例の方法で計算にかかった時間を示すグラフである。
【図１１】それぞれの方法で得られた最小の収集時間を示す表である。
【図１２】上記実施例において枝刈りをした場合としない場合とで、センサーノードの数に対する決定変数の数を比較したグラフである。
【図１３】計算システム１００を用いて近似解を算出する問題の他の例を説明する概略図である。
【図１４】順序制約をグラフ理論で説明する模式図である。
【図１５】同時処理制約をグラフ理論で説明する模式図である。
【図１６】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ１２００の例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は本実施形態の方法を適用するための計算システム１００を概念的に示す。本実施形態では、複数のオペレーションのそれぞれを複数のタイムスロットのどこで実行するかというスケジューリング問題の近似解を算出する。
【０００９】
計算システム１００は、コンピュータ１０２とイジングマシン１２０とを備える。コンピュータ１０２はパーソナルコンピュータなどの古典的な計算機である。ここで「古典的な」とは、擬似的または実際の量子力学的効果を利用した計算機であるイジングマシン１２０と区別するための表現である。
【００１０】
コンピュータ１０２は、設定部１１０、格納部１１２及び決定部１１４を有する。設定部１１０はキーボード等の入力インターフェースによりユーザから、本実施形態で近似解を得ようとする問題の入力を受け付ける。設定部１１０はさらに、入力された問題に応じた情報を格納部１１２から読み出し、決定部１１４で計算が可能な問題を設定する。
【００１１】
決定部１１４は、設定部１１０により設定された問題に対する近似解を算出する。その場合に、決定部１１４はイジングマシン１２０を用いる。決定部１１４はさらに、算出した近似解を表示装置等の出力インターフェースによりユーザに提示する。それに加えてまたはそれに代えて、決定部１１４は、近似解を他の情報機器が読み取り可能なデータとして出力してもよい。
【００１２】
格納部１１２は、ユーザから入力された情報、設定部１１０および決定部１１４から参照される情報、例えば計算ライブラリなど、を格納する。格納部１１２はさらに決定部１１４で算出された近似解も格納する。
【００１３】
イジングマシン１２０は、後述するイジングモデルについて、与えられた物理量で基底状態を計算する装置である。その場合に、量子アニーリングを用いる。アニーリングを用いているので、イジングマシン１２０はアニーリングマシンとも呼ばれる。
【００１４】
図２は、計算システム１００を用いて近似解を算出する問題の一例を説明する概略図である。図２はセンサーネットワークモデルと呼ばれるものの一例を示している。
【００１５】
センサーネットワークモデルでは、図中で番号が付された黒丸で示すセンサーノードで生成された全てのデータを、図中でＢＳと記されたベースステーションに集める。各センサーノードで生成されるデータは、例えば、気圧や温度などの物理量を計測したものである。図２の例で１２個のセンサーノードが示されているが、これは説明のための例であって、１１個以下でもよいし、１３個以上でもよい。
【００１６】
生成されたデータのパケットはツリー状のネットワークを通じて下記の通りベースステーションに運ばれる。当該ツリーは近似解の算出に先立って与えられており、最小全域木を構成している。なお、ツリー構造になっていれば必ずしも最小全域木でなくてよい。
【００１７】
子ノードを有しているセンサーノードは、自身の全ての子ノードからデータを受信するまで、自身が生成したデータを含むパケットを自身の親ノードに送信するのを待たなければならない。自身の全ての子ノードからデータを受信した後に、当該センサーノードは子ノードから受信した全てのデータと自身で生成したデータとを一つのパケットに集約して、当該パケットを自身の親ノードに送信する。この処理が繰り返され、センサーノードで生成された全てのデータがツリーの根にあたるベースステーションに最終的に集められる。ここで、センサーノードで生成された全てのデータがベースステーションに集められるまでに要する時間を収集時間と呼ぶ。この収集時間は短いほど好ましい。
【００１８】
媒体アクセス制御には、ＴＤＭＡ（すなわち時分割多重アクセス方式）が採用される。ここで、１つのパケットの伝送時間を１つのタイムスロットとする。センサーノードは１つの無線チャンネルを共用しているので、伝送スケジュールはセンサーノード間の干渉を避ける必要がある。なお、干渉がない限り伝送は常に成功するものと仮定する。
【００１９】
各センサーノードの伝送半径を一様にｒとすると、干渉は下記の条件で生じる。あるタイムスロットにおいてセンサーノードｉからセンサーノードｊにパケットを送るとする。センサーノードｉとセンサーノードｊとの距離はｒ以下である（隣接している、ともいう）。センサーノードｊに隣接する他のセンサーノードが存在して、同じタイムスロットで当該他のセンサーノードがパケットを送信する場合にのみ、センサーノードｉからセンサーノードｊへの伝送に対して干渉が生じる。
【００２０】
図２の例を用いて干渉が生じる場合と生じない場合とを説明する。同じタイムスロットにおいて、センサーノード１、４および９がそれぞれの親ノード５、８および７にパケットを伝送すると仮定する。図２において（５）、（７）および（８）の破線はそれぞれセンサーノード５、７および８の伝送半径を示す。
【００２１】
センサーノード９はセンサーノード７にパケットを送るが、センサーノード７はセンサーノード１とも隣接しており（すなわち受信側であるセンサーノード７の伝送半径以内に、受信すべき送信側のセンサーノード９以外に送信側のセンサーノード１も入っており）、センサーノード１も同じタイムスロットでパケットを送る。したがって、センサーノード７において、センサーノード１とセンサーノード９との間に干渉が生じる。
【００２２】
一方、センサーノード４はセンサーノード８にパケットを送るが、センサーノード１はセンサーノード８とは隣接していない（すなわち受信側であるセンサーノード８の伝送半径内に、受信すべき送信側のセンサーノード４は入っているが、他の送信側であるセンサーノード１は入っていない）。したがって、センサーノード４とセンサーノード１とが同じタイムスロットでパケットを送っても、センサーノード８においてそれらの間に干渉は生じない。
【００２３】
以上の通り、図２に示すようなセンサーネットワークモデルに対するスケジューリング問題を整数計画法として定式化することができる。この問題で目標とするのは、干渉が生じないという条件の下で、複数のセンサーノードからの全てのデータをできるだけ早くベースステーションに集めるようなスケジュールを決定することである。付言すれば、当該スケジューリング問題は、複数のオペレーションとしての複数のセンサーノードからの伝送のそれぞれを複数のタイムスロットのどこで実行するか、というスケジューリング問題になっている。
【００２４】
定式化のために下記の通り変数を定義する。
【数１】
0006778942.tif 000002
【００２５】
図３は上記スケジューリング問題を定式化するのに用いられる決定変数ｘｉｔを説明するための模式図である。決定変数ｘｉｔは０か１かのいずれかの値を取る。決定変数ｘｉｔは、センサーノードｉがタイムスロットｔでパケットを送る場合は値１を取り、それ以外は値０を取る。決定変数ｘｉｔは図３に示すように、センサーノードの数×タイムスロットの数の行列の要素であるともいえる。
【００２６】
決定変数ｘｉｔを用いると、ＴＤＭＡスケジューリング問題は下記の通り定式化される。
【数２】
0006778942.tif 000003
【００２７】
目的関数（１）は、収集時間を最小化することに対応している。制約条件（２）は、干渉を生じるいかなるセンサーノードの組も同時に伝送できないことに対応している。制約条件（３）は、いずれのセンサーノードも自身の子ノードのすべてが伝送を完了するまでパケットを伝送できないことに対応している。制約条件（４）は、いずれのセンサーノードも１からＴまでのタイムスロットの間にただ１回だけパケットを送ることに対応している。制約条件（５）は、すべての決定変数は０か１かの値を取ることに対応している。
【００２８】
上記数２で与えられるようなスケジューリング問題は決定変数の数が多く、ＮＰ困難である。ＮＰ困難な問題の近似解を得る方法として貪欲法がある。貪欲法は、当該スケジューリング問題に適用すると、制約条件を満たしつつ各々のタイムスロットで最も多くの数のセンサーノードからパケットを送ることができるようなノード伝送のスケジューリングを選ぶことに相当する。
【００２９】
スケジューリング問題に貪欲法を適用する場合に、具体的な解法としてグラフ理論におけるＭＩＳ（Maximum Independent Set）問題を用いることができる。
【００３０】
図４は、順序制約をグラフ理論で説明する模式図である。図４は図２のネットワークモデルに対応したグラフである。当該順序制約は、センサーノードがパケットを送る順序に関する制約条件であって、制約条件（３）に対応する。
【００３１】
順序制約はグラフ理論上で有向グラフとして表される。ＴＤＭＡスケジューリング問題の場合には、順序制約の有向グラフは図４に例示するように連結成分は１つで、その成分はツリー構造になる。
【００３２】
図５は、同時処理制約をグラフ理論で説明する模式図である。図５は図２のネットワークモデルに対応したグラフである。当該同時処理制約は、複数のセンサーノード間での干渉に関する制約条件であって、制約条件（２）に対応する。
【００３３】
同時処理制約のグラフ理論上のグラフは、伝送半径内にあるセンサーノード間をエッジ（線）で結んだものであり、センサーノードの配置と伝送半径とによってさまざまな形になり得る。干渉に関する制約条件は、当該グラフにおいてエッジで結ばれたセンサーノードの組は同じタイムスロットにおいて選択できないことに対応する。
【００３４】
図４および図５を利用したＭＩＳ問題は、図４の順序を満足しつつ、図５で互いにエッジで結ばれないようなセンサーノードをできるだけ多く選択することに対応する。
【００３５】
ＭＩＳ問題を用いた貪欲法を適用すると決定すべき決定変数の数は大幅に減る。しかしながら、ＭＩＳ問題自体もＮＰ困難であるから、ＭＩＳ問題を用いた貪欲法を適用したスケジューリング問題も依然としてＮＰ困難である。そこで本実施形態では図６以降で説明するように、ある収集時間で実行可能解の算出を試み、実行可能解が見つかったら収集時間を短くして改めて実行可能解の算出を試みることを繰り返すことにより、近似解を算出する。
【００３６】
図６は、本実施形態で近似解を算出する動作のフローの一例を示す。まず、問題を設定する（Ｓ１０１）。この場合に、設定部１１０はユーザから問題の種類、当該問題で用いられる変数、制約条件等の入力を受け付ける。図２に示す例の場合、問題として「ＴＤＭＡスケジューリング問題」、当該問題で用いられる変数であるセンサーノードの数とその配置、および、上記（２）から（５）の制約条件の入力を受け付ける。センサーネットワークのツリーは、ユーザから直接入力されてもよいし、設定部１１０がセンサーノードの数とその配置に基づいて計算してもよく、例えば最小全域木を構成するように計算してもよい。
【００３７】
設定部１１０はさらに繰り返し計算のための初期値を設定する（Ｓ１０２）。具体的には、収集時間Ｔの上界値Ｔｕをセンサーノードの数と同じＮとする。なお、ノードの数Ｎよりも小さい上界値で実行可能解が存在することが予め分かっている場合には、当該上界値を初期値として用いてもよい。
【００３８】
設定部１１０はさらに、当該問題に対して決定変数の数を減らすための枝刈りを行う（Ｓ１０３）。設定部１１０はさらに、上界値Ｔｕで伝送が終了する実行可能解を見つける試みをした回数ｋを０に初期設定する（Ｓ１０４）。決定部１１４は枝刈りで残った決定変数について、実行可能解を算出する（Ｓ１０５）。実行可能解は、複数のセンサーノードからの伝送に課される制約条件を満たし、かつ、予め与えられた収集時間の上界値Ｔｕ以内で全ての伝送を終了できるスケジュールである。
【００３９】
実行可能解が見つかった場合に（Ｓ１０７：Ｙｅｓ）、収集時間の上界値Ｔｕを１つ短くした値Ｔｕ−１に更新し（Ｓ１１１）、ステップＳ１０３からＳ１０７を繰り返す。決定部１１４は見つけた実行可能解を、その時の上界値Ｔｕに対応付けて格納部１１２に格納する。
【００４０】
一方、実行可能解が見つからない場合には（Ｓ１０７：Ｎｏ）、予め設定された上限回Ｋまで（Ｓ１１３：Ｎｏ）、回数ｋに１を加えて、ステップＳ１０５からＳ１０７を繰り返す（Ｓ１１７）。上限回Ｋまで試みたにも関わらず実行可能解が見つからなかった場合に（Ｓ１０７：Ｎｏ，Ｓ１１３：Ｙｅｓ）、繰り返しを終了し、決定部１１４は格納部１１２に格納されている実行可能解を近似解として出力する（Ｓ１１５）。この近似解は、最後に試みた上界値Ｔｕの１つ前に試みた上界値Ｔｕ＋１を収集時間Ｔとした実行可能解である。
【００４１】
図７は与えられた上界値Ｔｕで実行可能解を見つける方法（図６のステップ１０５）をより詳細に示した動作フローの一例である。まず、タイムスロットｔの初期値を１に設定する（Ｓ２０１）。当該タイムスロットｔにおいて、貪欲法で、すなわち、送信可能なできるだけ多くのノードｉを選択する（Ｓ２０３）。「送信可能な」とは制約条件を満たして、ということに相当する。
【００４２】
式で示すと下記のように表せる。
【数３】
0006778942.tif 000004
【００４３】
ここで、（１５）が目的関数であり、（１６）から（１８）は制約条件である。なお、０から上界値Ｔｕまでのあるタイムスロットｔ（ｔ＝０、１、・・・、Ｔｕ）に注目しているので、決定変数はｚｊのように、添え字ｔの記載を省略することができる（図３も参照）。またｆｊｋは干渉行列Ｆのｊｋ成分であり、制約条件（１６）が制約条件（２）に対応するように設定される。
【００４４】
Ｖ（ｉ）は、タイムスロットｉの時点で、未送信かつ自身の子ノードがすべて送信済であるセンサーノードの集合である。すなわち、タイムスロットｉの送信候補の集合である。図４と対応させると下記の通りである。図４のツリーのグラフからすでに送信したセンサーノードを除いた部分グラフを考える。その部分グラフもツリーを構成しており、そのツリーのリーフノードの集合がＶ（ｉ）である。
【００４５】
Ｙ（ｉ）は、遅くともタイムスロットｉまでに送信しなければならないセンサーノードの集合である。すなわち、送信時間の上界値がｉであるノードの集合である。
【００４６】
上界値Ｔｕまでのタイムスロットｔの各段階で貪欲法が適用される（Ｓ２０５、Ｓ２０７：Ｎｏ）。これにより、１から上界値Ｔｕまでのタイムスロットｔに対する実行可能解が算出される。なお、タイムスロットｔが上界値Ｔｕに達するまでのいずれかの時点で送信可能なセンサーノードｉが選択できなくなった場合には、「実行可能解なし」として計算を中止する。
【００４７】
図８は、図６のステップＳ１０３で決定変数を枝刈りした結果を模式的に示す。決定変数の枝刈りとは、言い換えれば、実行可能解を算出するのに先立って、制約条件から解析的に決定される、または、既知の、決定変数とその値を特定することにより、実行可能解を算出する計算から当該決定変数に関する計算を除くことである。これにより、実行可能解の算出において、計算すべき決定変数の数を減らすことである。
【００４８】
枝刈りは各制約条件に基づいて行われる。例えば、図４の順序制約から各センサーノードｉの下界ｌ（ｉ）を決定する。当該下界ｌ（ｉ）は、センサーノードｉがいつのタイムスロットまでスロットを送ることができないか、を示している。例えば、図４に示す例のうちの、センサーノード８は順序制約からセンサーノード１０とセンサーノード４の伝送の後でなければパケットを送ることができない。したがって、タイムスロット２が下界となる。
【００４９】
さらに、図４の順序制約から各ノードｉの上界ｕ（ｉ）を決定する。当該上界ｕ（ｉ）は、センサーノードｉがいつのタイムスロットまでにスロットを送っていなければならないか、を示している。例えば、図４に示す例のうちの、センサーノード３は、順序制約からベースステーションＢＳまでセンサーノード６を経由しなければならないから、収集時間Ｔの上界値Ｔｕに対してタイムスロット（Ｔｕ−１）までにスロットを送っていなければならない。したがって、タイムスロット（Ｔｕ−１）が下界となる。
【００５０】
このように、ノードｉごとに、順序制約から上界ｕ（ｉ）および上界ｕ（ｉ）が決まり、当該下界以前のタイムスロットｔ（ｔ＜ｌ（ｉ））の決定変数、および、上界以後のタイムスロットｔ（ｕ（ｉ）＜ｔ）の決定変数ｘｉｔが０であることが解析的にわかる。よって、当該決定変数（より具体的には、当該決定変数ｘｉｔに対応するタイムスロットｔの決定変数ｚｉ）は図６のステップＳ１０５の計算から除く。図８では図３の決定変数のうち、そのように枝刈りされた部分がグレーで表示されている。
【００５１】
なお、図６のステップＳ１１１で収集時間Ｔの上界値Ｔｕを減らすことも、計算すべき決定変数を減らす枝刈りになっている。すなわち、上界値Ｔｕ以後のタイムスロットｔ（Ｔｕ＜ｔ）の決定変数ｘｉｔは０であることが明らかであって、計算不要である。この場合には、当該変数枝刈りは順序制約と同時処理制約の両方の条件に基づいているといえる。
【００５２】
図７のステップＳ２０３で用いられる目的関数（１５）は、制約条件（１６）をペナルティ項として加えた下記数４のＨ（ｉ）を最小化することに対応する。
【数４】
0006778942.tif 000005
ここで、γｊ（ｉ）は上界ｕ（ｉ）に近いセンサーノードｉほど選択されやすくするための重み付け係数であり、下記数５で表される。また、αはペナルティ項自体の重み付け係数である。
【数５】
0006778942.tif 000006
【００５３】
上記目的関数Ｈ（ｉ）は、０または１の２値のいずれかをとるｚｊを変数とする高々２次の関数である。よって、目的関数Ｈ（ｉ）を最小にするｚｊの組み合わせを見つけるという問題が、２つの状態のいずれかをとり得る複数のビットからなる物理的な系の、目的関数Ｈに対応するエネルギーの最小値すなわち基底状態をとるときの各ビットの状態の組み合わせを見つける問題に帰着する。２つの状態のいずれかをとり得る複数のビットからなる物理的な系の一例として、イジングモデルがある。
【００５４】
図９は、イジングモデル２００の模式図である。イジングモデル２００は、広義には、２つの量子化された状態のいずれかをとり得る、離散的に配された、複数のビットの集合である。イジングモデル２００のハードウェアの例は、格子状の各点に配され、＋１または−１のスピン状態σｊのいずれかをとり得る複数の磁気素子である。ｊ番目の磁気素子とｋ番目の磁気素子とは結合定数Ｊｊｋで相互作用する。隣接していない磁気素子間にも相互作用があってよい。また、ｊ番目の磁気素子には外部磁場ｈｊが働く。
【００５５】
ここで、決定変数ｚｊから状態σｊへは、σｊ＝１−２ｚｊで変数変換できる。よって、上記数４の目的関数Ｈは下記数６の目的関数Ｈと等価であるといえる。なお数６において、σｊに依らない定数項は以降の計算に影響を与えないので省略した。
【数６】
0006778942.tif 000007
【００５６】
当該評価関数Ｈはイジングモデル２００におけるハミルトニアンであるともいえる。上記変数変換は線形なので、上記数６の評価関数Ｈも、σｊの高々２次の関数である。これにより、あるタイムスロットｔにおいて、ネットワークモデルの複数のセンサーノードｊにおけるオペレーション、すなわち、伝送するかしないかを、イジングモデル２００の複数のビット２０２、２０４のアップ（σｊ＝＋１）またはダウン（σｊ＝−１）に対応させた評価関数Ｈが設定された。
【００５７】
付言すれば、タイムスロットｔで複数のオペレーションをそれぞれ実行するか否かを示す決定変数の値を、イジングモデルの複数のビットの複数の状態に対応させ、貪欲法に対応しかつ制約条件に基づいた目的関数を複数のビットの関数として設定する設定ステップが実行されたことになる。その場合に、オペレーションの時間的な優先度と制約条件に基づいて、量子アニーリングにおける複数のビットの間の結合定数に相当する物理量と各ビットに作用する外場に相当する物理量が決定されているといえる。
【００５８】
図９の例では、ビット２０２がスピン状態「−１」である状態が示されており、これは当該ビットに対応する決定変数の値が「１」であることに対応する。一方、ビット２０２がスピン状態「＋１」である状態が示されており、これは当該ビットに対応する決定変数の値が「０」であることに対応する。
【００５９】
決定部１１４は、上記数６で示された目的関数Ｈをイジングマシン１２０で評価する（Ｓ１１３）。より具体的には、イジングモデル２００において目的関数Ｈに対応するエネルギーが最小値となる基底状態を、イジングマシン１２０で計算する。本実施形態ではイジングマシン１２０として量子アニーリングに特化した計算機を用いる。量子アニーリングに特化した計算機では、初期状態から基底状態への状態遷移が量子力学に裏付けられた物理現象として計算機内で現実に発現することで計算が実行される。
【００６０】
量子アニーリングでは、イジングモデルの各スピンの状態を横磁場項の固有状態であるスピン＋１とスピン−１の均等な重ね合わせ状態に初期設定する。その後徐々に横磁場項を小さくし、結合定数Ｊｉ ｊと外場ｈｉの影響を相対的に大きくしていくと、イジングモデルのハミルトニアン（すなわち評価関数Ｈ）の基底状態を構成する各スピンが＋１または−１のいずれかの状態に近づいていく。最終的に横磁場項をゼロにすると基底状態が選ばれる。
【００６１】
決定部１１４は、イジングマシン１２０の計算結果に基づいて、ネットワークモデルの各センサーノードの決定変数の値を決定する。この場合、上記のσｊ＝１−２ξｊの関係から、イジングモデル２０４０における計算結果におけるｊ番目のビットのスピン状態σｊを、計算の対象としているタイムスロットｔにおけるネットワークモデルのセンサーノードｊの決定変数ｚｊに割り当てる。付言すれば、目的関数をイジングマシンで評価した結果に含まれる複数のビットの状態に基づいて、複数のオペレーションのそれぞれを、タイムスロットｔで実行すべきかを決定する決定段階が実行されたといえる。
【００６２】
以上、本実施形態によれば、ＮＰ困難なスケジューリング問題に対し、複数のオペレーションに課される制約条件を満たし、かつ、予め与えられた終了時間Ｔｕで複数のオペレーションを終了できる実行可能解を見つけ、見つかった場合に、終了時間ＴｕをＴｕ−１に更新して実行可能解を見つけることを繰り返すことにより近似解を算出する。これにより、最適解に近い近似解を現実的な時間内で算出することができる。
【００６３】
さらに、実行可能解を見つける計算に先立って制約条件から決定変数を予め枝刈りする。よって、計算すべき組み合わせの数を減らして計算の時間をさらに短くすることができる。さらに、実行可能解を見つける計算においてイジングモデルの基底状態を算出する量子アニーリングを用いることにより古典的なコンピュータで現実的な時間内で算出できない数の決定変数に対しても実行可能解を算出することができる。
【００６４】
［実施例］
図１０は本実施形態の方法と比較例の方法で計算にかかった時間を示すグラフである。図１１はそれぞれの方法で得られた最小の収集時間を示す表である。
【００６５】
図１０および図１１において、ＱＡ（１）は本実施形態においてα＝２．５、Ｋ＝１とした計算例である。ＱＡ（２）は本実施形態においてα＝２．５、Ｋ＝２とした計算例である。Ｇ（ｏｐｔ）はGurobi Optimizerと呼ばれるソルバーをＴＤＭＡ問題に適用したものであり、ＴＤＭＡ問題の最適解を得ることができる。Ｇ（ＭＩＳ）は、ＴＤＭＡ問題の近似解を貪欲法で算出するにあたり、各タイムスロットｔのＭＩＳ問題にGurobi Optimizerを適用したものである。よって、各ＭＩＳ問題に対しては最適解が得られるが、その解がＴＤＭＡ問題の最適解であるとは限らない。ＳＦＵＩは、非特許文献１で提案されている方法である。ＮＸは、Ｐｙｔｈｏｎのパッケージとして提供されているＮｅｔｗｏｒｋＸを、ＴＤＭＡ問題の近似解を貪欲法で算出するにあたり、各タイムスロットｔのＭＩＳ問題に適用したものである。
【００６６】
センサーネットワークの領域として、頂点［０，０］、［０，１］、［１，０］および［１，１］で囲まれる正方形を考えた。センサーノードは当該領域内に一様に分布し、伝送半径を０．４と仮定した。ベースステーションＢＳは［０．５，１．０５］にあるとした。センサーネットワークのツリーは最小全域木を仮定した。センサーノードの数は、１６、２８、４０、５２、６４、７６、８８とした。
【００６７】
計算にはいずれも同一の古典的コンピュータを用いた。ＱＡ（１）およびＱＡ（２）についてはさらにイジングマシンとして超電導閉回路でビットが構成されている量子アニーリングマシンを用いた。
【００６８】
図１０は、各方法について５回ずつ計算をした計算時間の結果を示している。エラーバーは５回のうちの最大値と最小値を示している。この結果によれば、ＱＡ（１）、ＱＡ（２）およびＮＸは、Ｇ（Ｏｐｔ）、ＳＦＵＩおよびＧ（ＭＩＳ）に比べて非常によい。Ｇ（Ｏｐｔ）の計算時間はセンサーノードの数が増えると急激に長くなる。これに対して、ＱＡ（１）、ＱＡ（２）およびＮＸの計算時間もセンサーノードの数が増えると長くはなるものの、Ｇ（Ｏｐｔ）に比べれば非常に小さい。
【００６９】
図１１は、各方法で計算して得られた近似解を示している。ＱＡ（１）およびＱＡ（２）については、５回の結果の平均値、最小値および最大値を載せた。問題のサイズが小さいと（センサーノードの数が２８まで）、全ての方法で最適解が得られている。センサーノードの数が５２になると、ＱＡ（１）、ＱＡ（２）およびＧ（ＭＩＳ）は最適解を得られているが、ＳＦＵＩおよびＮＸは得られていない。センサーノードの数が７６になると、ＱＡ（２）は依然として５回の結果の中で最適解が得られているが、ＱＡ（１）、Ｇ（ＭＩＳ）、ＳＦＵＩおよびＮＸでは得られていない。
【００７０】
上記実施例によれば、本実施形態の方法は、ＴＤＭＡスケジューリング問題において、センサーノードの数が多くても最適解そのものまたはそれに近い近似解を現実的な時間内で算出することができる。
【００７１】
図１２は、上記実施例において枝刈りをした場合としない場合とで、センサーノードの数に対する決定変数の数を比較したグラフである。図１２に示すように、枝刈りをしない場合にはセンサーノードの数が増えるに従い、決定変数の数も急激に増える。一方、枝刈りをすることにより、センサーノードの数が増えても、決定変数の数の増加を抑えることができている。
【００７２】
図１３は、計算システム１００を用いて近似解を算出する問題の他の例を説明する概略図である。図１３はジョブショップスケジューリング問題と呼ばれるものの一例を示している。
【００７３】
ジョブショップスケジューリング問題は、複数のジョブを複数の機械を用いてなるべく早く処理するスケジューリングを考えるものである。それぞれのジョブは複数のオペレーションからなっており、オペレーションのそれぞれには使うべき機械とかかる時間とが設定されている。図１３の例は３つのジョブを３つの機械を用いて処理する問題の例になっている。ジョブショップスケジューリング問題も、オペレーションを図２のセンサーノードに対応させて考えれば、ＴＤＭＡスケジューリング問題と同様の方法により近似解を得ることができる。
【００７４】
図１４は、図１３のジョブショップスケジューリング問題の順序制約をグラフ理論で説明する模式図である。丸の中の番号はオペレーションの番号を示す。順序制約の有向グラフは図１４に例示するように連結成分はジョブの数と同じだけあり、それぞれの成分はシンプルなツリー構造になる。
【００７５】
図１５は、図１３のジョブショップスケジューリング問題の同時処理制約をグラフ理論で説明する模式図である。同時処理制約のグラフは図１５に例示するように連結成分は機械の数と同じだけあり、それぞれの成分は完全グラフを構成している。
【００７６】
ジョブショップスケジューリング問題においても、図１４および図１５を利用してＭＩＳ問題を解くことにより、近似解を得ることができる。付言すれば、本実施形態の方法は、下記のように統合されて一般化した問題に適応できる。
・ジョブは１つまたは複数で、各ジョブは複数のオペレーションからなるツリー構造。
・オペレーションごとに処理時間は同じであっても異なっていてもよい。
・制約条件１：ジョブを構成するオペレーションの順序制約。
・制約条件２：オペレーションの同時処理制約。
・制約条件３：各オペレーションはちょうど１回ずつ処理される。
【００７７】
上記実施形態においては、イジングマシン１２０として、量子アニーリングに特化した計算機を用いた。しかしながら、イジングマシン１２０はこれに限られず、例えば、シミュレーテッドアニーリングに特化した計算機を用いてもよい。シミュレーテッドアニーリングに特化した計算機は、シミュレーテッドアニーリングを高速に実行できる計算機を含む。
【００７８】
シミュレーテッドアニーリングは、イジングモデルの各スピンの状態に対応するビットを古典的なコンピュータ上で表し、熱ゆらぎを表す古典的な確率過程で最適解を探索する方法である。この場合に、上記Ｊｉｊは複数のビットの間の積に掛ける係数であり、ｈｉは各ビットに掛ける係数に相当する量である。
【００７９】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および／またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび／またはアナログハードウェア回路を含んでよく、集積回路（ＩＣ）および／またはディスクリート回路を含んでよい。プログラマブル回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【００８０】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー（登録商標）ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、コンパクトディスクリードオンリメモリ（ＣＤ-ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（ＲＴＭ）ディスク、メモリスティック、集積回路カード等が含まれてよい。
【００８１】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ、ＪＡＶＡ（登録商標）、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、１または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【００８２】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク（ＬＡＮ）、インターネット等のようなワイドエリアネットワーク（ＷＡＮ）を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【００８３】
図１６は、本発明の複数の態様が全体的または部分的に具現化されてよい古典的なコンピュータ１２００の例を示す。コンピュータ１２００にインストールされたプログラムは、コンピュータ１２００に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の１または複数のセクションとして機能させることができ、または当該操作または当該１または複数のセクションを実行させることができ、および／またはコンピュータ１２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ１２００に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、ＣＰＵ１２１２によって実行されてよい。
【００８４】
本実施形態によるコンピュータ１２００は、ＣＰＵ１２１２、ＲＡＭ１２１４、グラフィックコントローラ１２１６、およびディスプレイデバイス１２１８を含み、それらはホストコントローラ１２１０によって相互に接続されている。コンピュータ１２００はまた、通信インタフェース１２２２、ハードディスクドライブ１２２４、ＤＶＤ−ＲＯＭドライブ１２２６、およびＩＣカードドライブのような入／出力ユニットを含み、それらは入／出力コントローラ１２２０を介してホストコントローラ１２１０に接続されている。コンピュータはまた、ＲＯＭ１２３０およびキーボード１２４２のようなレガシの入／出力ユニットを含み、それらは入／出力チップ１２４０を介して入／出力コントローラ１２２０に接続されている。
【００８５】
ＣＰＵ１２１２は、ＲＯＭ１２３０およびＲＡＭ１２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ１２１６は、ＲＡＭ１２１４内に提供されるフレームバッファ等またはそれ自体の中にＣＰＵ１２１２によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス１２１８上に表示されるようにする。
【００８６】
通信インターフェース１２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ１２２４は、コンピュータ１２００内のＣＰＵ１２１２によって使用されるプログラムおよびデータを格納する。ＤＶＤ−ＲＯＭドライブ１２２６は、プログラムまたはデータをＤＶＤ‐ＲＯＭ１２０１から読み取り、ハードディスクドライブ１２２４にＲＡＭ１２１４を介してプログラムまたはデータを提供する。ＩＣカードドライブは、プログラムおよびデータをＩＣカードから読み取り、および／またはプログラムおよびデータをＩＣカードに書き込む。
【００８７】
ＲＯＭ１２３０はその中に、アクティブ化時にコンピュータ１２００によって実行されるブートプログラム等、および／またはコンピュータ１２００のハードウェアに依存するプログラムを格納する。入／出力チップ１２４０はまた、様々な入／出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入／出力コントローラ１２２０に接続してよい。
【００８８】
プログラムが、ＤＶＤ−ＲＯＭ１２０１またはＩＣカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ１２２４、ＲＡＭ１２１４、またはＲＯＭ１２３０にインストールされ、ＣＰＵ１２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ１２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ１２００の使用に従い情報の操作または処理を実現することによって構成されてよい。
【００８９】
例えば、通信がコンピュータ１２００および外部デバイス間で実行される場合、ＣＰＵ１２１２は、ＲＡＭ１２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェース１２２２に対し、通信処理を命令してよい。通信インターフェース１２２２は、ＣＰＵ１２１２の制御下、ＲＡＭ１２１４、ハードディスクドライブ１２２４、ＤＶＤ‐ＲＯＭ１２０１、またはＩＣカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【００９０】
また、ＣＰＵ１２１２は、ハードディスクドライブ１２２４、ＤＶＤ‐ＲＯＭドライブ１２２６（ＤＶＤ‐ＲＯＭ１２０１）、ＩＣカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ１２１４に読み取られるようにし、ＲＡＭ１２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ１２１２は次に、処理されたデータを外部記録媒体にライトバックする。
【００９１】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ１２１２は、ＲＡＭ１２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ１２１４に対しライトバックする。また、ＣＰＵ１２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ１２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【００９２】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ１２００上またはコンピュータ１２００近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ１２００に提供する。
【００９３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００９４】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００９５】
１００  計算システム、１０２  コンピュータ、１１０  設定部、１１２  格納部、１１４  決定部、１２０  イジングマシン、２００  イジングモデル、２０２、２０４  ビット
【要約】      （修正有）【課題】複数のオペレーションのそれぞれを複数のタイムスロットのどこで実行するかのスケジューリング問題の近似解を算出する方法を提供する。【解決手段】複数のオペレーションに課される制約条件を満たし、かつ、予め与えられた終了時間Ｔｕで複数のオペレーションを終了できる実行可能解を見つける解算出ステップと、解算出ステップで実行可能解が見つかった場合に、終了時間ＴｕをＴｕ−１に更新して解算出ステップを繰り返す繰返ステップと、解算出ステップで実行可能解が見つからなかった場合に、繰返ステップを終了する終了ステップと、実行可能解を出力する出力ステップとを備え、解算出ステップにおいて、終了時間までのタイムスロットで実行するオペレーションを貪欲法で決定する。【選択図】図６【図１】
0006778942.tif 000008
【図２】
0006778942.tif 000009
【図３】
0006778942.tif 000010
【図４】
0006778942.tif 000011
【図５】
0006778942.tif 000012
【図６】
0006778942.tif 000013
【図７】
0006778942.tif 000014
【図８】
0006778942.tif 000015
【図９】
0006778942.tif 000016
【図１０】
0006778942.tif 000017
【図１１】
0006778942.tif 000018
【図１２】
0006778942.tif 000019
【図１３】
0006778942.tif 000020
【図１４】
0006778942.tif 000021
【図１５】
0006778942.tif 000022
【図１６】
0006778942.tif 000023