以下、図面を参照しながら複数の実施形態に係る通信システム10について説明する。
図1は、実施形態に係る通信システム10の構成を示す図である。通信システム10は、3GPPにおいて規格化された第5世代移動通信方式(5G方式)を採用した無線通信システムである。
通信システム10は、複数の端末装置20と、コアネットワーク22と、基地局24と、割当決定装置26と、を備える。
5G方式は、無線信号として直交周波数分割多重(OFDM)変調により変調された変調信号を用いて、複数の端末装置20のそれぞれと基地局24との間で無線通信がされる。5G方式で用いる変調信号は、Mixed-numerology方式を採用し、サブキャリア間隔を変更可能な信号である。5G方式は、所定個(例えば14個)のOFDMシンボルを含むスロットと呼ばれる単位を定めている。従って、Mixed-numerology方式を採用する5G方式の変調信号は、スロットの時間長が、サブキャリア間隔毎に異なる。5G方式は、所定本(例えば12本)のサブキャリアおよび1個のスロットを含むリソースブロックと呼ばれる単位が定められており、リソースブロックの単位でサブキャリア間隔を変更することが可能である。
また、5G方式は、1本のサブキャリアおよび1個のOFDMシンボルで構成されるリソースエレメントと呼ばれる単位を定めている。複数のリソースエレメントのそれぞれは、変調信号における周波数方向の位置を示すサブキャリア位置および時間方向の位置を示すシンボル位置により特定される。1個のリソースブロックは、複数のリソースエレメント(例えば、12本のサブキャリア×14個のOFDMシンボル=168個のリソースエレメント)を含む。また、5G方式は、複数のリソースブロックを束ねたリソースブロックグループと呼ばれる単位も定めている。
また、5G方式は、Massive MIMO(multiple-input and multiple-multiple-output)と呼ばれる、送信および受信の双方において複数のアンテナを利用する方式を用いて、複数の端末装置20のそれぞれと基地局24との間で、変調信号を電波により送受信させる。
複数の端末装置20のそれぞれは、例えば、無線通信機能を有する情報処理装置であって、ユーザにより所有される。複数の端末装置20のそれぞれは、固有の番号が付与され、5G方式で定められた変調信号を無線通信により基地局24と送受信する。複数の端末装置20のそれぞれは、ユーザにより持ち運びが可能である。複数の端末装置20の何れかは、所定の場所に固定されていてもよい。
コアネットワーク22は、5G方式における基幹通信網である。コアネットワーク22は、2つの基地局24と基地局24との間のパケットの通信を中継したり、基地局24と他のネットワークとの間のパケットを中継したりする。
基地局24は、5G方式に従った変調信号を複数の端末装置20のそれぞれと無線通信により送受信する。また、基地局24は、複数の端末装置20のそれぞれとコアネットワーク22との間のパケットの通信を中継する。
基地局24は、通信装置32と、制御装置34とを有する。
通信装置32は、制御装置34による制御に従って、5G方式の変調信号を複数の端末装置20のそれぞれと無線通信により送受信する。
制御装置34は、複数の端末装置20および通信装置32における変調信号の送受信を制御する。例えば、制御装置34は、複数の端末装置20のうちの割り当て対象となる1または複数の対象装置のそれぞれを、変調信号に含まれる複数の通信ブロックの何れによりデータを送受信させるかを割り当てる割当処理を実行する。ここで、複数の通信ブロックのそれぞれは、変調信号における周波数方向の位置および時間方向の位置により特定される。複数の通信ブロックのそれぞれは、リソースブロックグループ、リソースブロックまたはリソースエレメントである。すなわち、制御装置34は、複数の端末装置20のそれぞれを、リソースブロックグループに割り当ててもよいし、リソースブロックに割り当ててもよいし、リソースブロック内の何れかのリソースエレメントに割り当ててもよい。
制御装置34は、割当処理において、さらに、変調信号に含まれる複数のリソースブロックのそれぞれに対するサブキャリア間隔を割り当ててもよい。また、制御装置34は、割当処理において、さらに、複数の通信ブロックのそれぞれに含まれるデータにおける、直交変調方式、送信電力および符号化率を割り当ててもよい。また、制御装置34は、割当処理において、さらに、割り当て対象となる1または複数の対象装置のそれぞれについて、Massive MIMO方式において用いる伝搬チャネル行列を割り当ててもよい。
制御装置34は、割当処理をする場合、割当要求を割当決定装置26に出力する。制御装置34は、割当要求に応じて生成された割当情報を割当決定装置26から取得し、取得した割当情報に基づき、割当処理を実行する。そして、制御装置34は、割当処理に従って複数の端末装置20および通信装置32に対して変調信号を送受信させる。
割当決定装置26は、例えば情報処理装置である。割当決定装置26は、基地局24に含まれていてもよいし、基地局24とは別個の装置であって、基地局24とネットワークを介して接続されていてもよい。
割当決定装置26は、制御装置34からの割当要求に応じて、複数の端末装置20のそれぞれが、複数の通信ブロックのうちの何れの通信ブロックによりデータを送受信するかを示す割当情報を生成する。また、割当決定装置26は、複数のリソースブロックのそれぞれに対するサブキャリア間隔をさらに示す割当情報を生成してもよい。また、割当決定装置26は、複数の通信ブロックのそれぞれに含まれるデータにおける、直交変調方式、送信電力および符号化率をさらに示す割当情報を生成してもよい。また、割当決定装置26は、割り当て対象となる1または複数の対象装置のそれぞれについて、Massive MIMO方式において用いる伝搬チャネル行列をさらに示す割当情報を生成してもよい。割当決定装置26は、生成した割当要求を、割当要求を送信した制御装置34に返信する。
図2は、5G方式の変調信号のフレーム構成を示す図である。
5G方式は、予め定められた時間長のフレームを定める。1個のフレームは、10m秒である。1個のフレームは、それぞれが予め定められた時間長の10個のサブフレームを含む。1個のサブフレームは、1m秒である。
5G方式は、サブキャリア間隔として、15kHz(μ=0)、30kHz(μ=1)、60kHz(μ=2)、120kH(μ=3)および240kH(μ=4)の5種類を定める。なお、μは、サブキャリア間隔を識別する値である。
5G方式は、14個のOFDMシンボルから構成されるスロットと呼ばれる単位を定める。OFDMシンボルは、サブキャリア間隔によって時間長が異なる。従って、スロットの時間長は、サブキャリア間隔によって異なる。
1個のサブフレームは、1または複数のスロットを含む。サブキャリア間隔が15kHzに設定されている場合、1個のサブフレームは、1個のスロットを含む。サブキャリア間隔が30kHzに設定されている場合、1個のサブフレームは、2個のスロットを含む。サブキャリア間隔が60kHzに設定されている場合、1個のサブフレームは、4個のスロットを含む。サブキャリア間隔が120kHzに設定されている場合、1個のサブフレームは、8個のスロットを含む。サブキャリア間隔が240kHzに設定されている場合、1個のサブフレームは、16個のスロットを含む。
サブキャリア間隔は、小さいほど、スロットの時間長が長くなり、マルチパスに対して強いが、遅延量が大きい。例えば、サブキャリア間隔が15kHzである場合、スロットの時間長が1m秒となり、マルチパスに対して強いが、遅延量が大きくなる。また、サブキャリア間隔は、大きいほど、スロットの時間長が短くなり、遅延量は小さいが、ISI(inter symbol interference)の影響を受けやすい。例えば、サブキャリア間隔が120kHzである場合、スロットの時間長が0.125m秒となり、遅延量は小さいが、ISIの影響を受けやすくなる。
従って、制御装置34は、例えば低速移動をしており、許容遅延時間が大きいデータを送受信する端末装置20を、サブキャリア間隔が小さいリソースブロック、または、サブキャリア間隔が小さいリソースブロックに含まれるリソースエレメントに割り当てることが好ましい。また、制御装置34は、例えば高速移動をしており、許容遅延時間が小さいデータを送受信する端末装置20を、サブキャリア間隔が大きいリソースブロック、または、サブキャリア間隔が大きいリソースブロックに含まれるリソースエレメントに割り当てることが好ましい。
図3は、リソースブロックの第1の配置例を示す図である。リソースブロックは、時間方向に1個のスロット(14個のOFDMシンボル)および周波数方向に所定本のサブキャリアにより構成される。また、5G方式の変調信号は、複数個のリソースブロックが1つのリソースブロックグループにまとめられる。例えば、5G方式の変調信号は、100MHz幅の帯域を利用する場合、1個のサブフレームに、17個のリソースブロックグループを含む。
例えば、1個のサブフレームに16個のリソースブロックが含まれるとする。この場合、16個のリソースブロックは、1個のスロット(14個のOFDMシンボル)、および、192本(12×16)のサブキャリアにより構成される。例えば、制御装置34は、図3に示すように、帯域の全ての領域を、最も大きい15kHz(μ=0)のサブキャリア間隔に割り当ててもよい。このようにサブキャリア間隔を割り当てた場合、制御装置34は、複数の端末装置20の全てに対して、許容遅延時間が大きいが、マルチパスに強いデータを送受信させることができる。
図4は、リソースブロックの第2の配置例を示す図である。また、例えば、制御装置34は、図4に示すように、帯域の全ての領域を、最も小さい240kHz(μ=4)のサブキャリア間隔に割り当ててもよい。このようにサブキャリア間隔を割り当てた場合、制御装置34は、複数の端末装置20の全てに対して、許容遅延時間が小さいデータを送受信させることができる。
図5は、リソースブロックの第3の配置例を示す図である。また、例えば、制御装置34は、図5に示すように、帯域を2つの領域に分割し、一方の領域を最も大きい15kHz(μ=0)のサブキャリア間隔に割り当て、他方の領域を60kHz(μ=2)のサブキャリア間隔に割り当ててもよい。このようにサブキャリア間隔を割り当てた場合、制御装置34は、許容遅延時間が大きいが、高い品質を要求するデータを送受信する端末装置20と、高い品質を要求できないが、許容遅延時間が小さいデータを送受信する端末装置20とを、サブフレーム内に混在させてデータを送受信させることができる。
制御装置34は、このように帯域を複数の領域に分割して、複数の領域のそれぞれに対して異なるサブキャリア間隔を割り当てることができる。これにより、制御装置34は、端末装置20を適切なサブキャリア間隔のリソースブロックに割り当てることができ、この結果、複数の端末装置20の要求を満たさせることができる。
図6は、リソースブロックの構成およびmini-slotの割り当て例を示す図である。
1個のリソースブロックは、例えば、時間方向に14個のOFDMシンボルと、周波数方向に12本のサブキャリアを含む。従って、1個のリソースブロックは、168個(12本×14個)のリソースエレメントを含む。168個のリソースエレメントのそれぞれは、変調信号における周波数方向の位置を示すサブキャリア位置および時間方向の位置を示すシンボル位置により特定可能である。
5G方式は、連続するη個のOFDMシンボルと、1本のサブキャリアとにより構成される、mini-slotと呼ばれる単位が定義される。ηは、2、4、7または14である。制御装置34は、このようなmini-slotの単位で、リソースブロック内における任意のリソースエレメントに対して、データを送受信する端末装置20を割り当てることも可能である。
例えば、制御装置34は、端末装置20を、このようなmini-slotに割り当てるとともに、このようなmini-slotを含むリソースブロックを最も小さい240kHz(μ=4)のサブキャリア間隔に設定することにより、割り当てた端末装置20に超低遅延を要求するデータを送受信させることができる。
図7は、割当処理のタイミングを示す図である。制御装置34は、割当処理の実行に先立って、複数の端末装置20のうちの、第1時刻における割り当て対象となる1または複数の対象装置を選択する。第2時刻は、第1時刻よりも後の時刻であり、選択した第1時刻における1または複数の対象装置を、第2時刻以降のリソースブロックまたはリソースエレメントに割り当てる割当処理を実行する割当時刻である。
制御装置34は、第1時刻から第2時刻までの間に、第1時刻における1または複数の対象装置を、第2時刻以降の複数のリソースブロックまたは複数のリソースエレメントの何れに割り当てるかを決定する。この場合、制御装置34は、割当決定装置26に対して割当要求を出力し、第2時刻までに割当決定装置26から割当情報を取得する。そして、制御装置34は、割当決定装置26から取得した割当情報に基づき、第2時刻において割当処理を実行して、複数の端末装置20および通信装置32に対して割当処理に従って変調信号を送受信させる。あるいは、制御装置34は、第2時刻以前に割当処理を実行して、複数の端末装置20および通信装置32に対して割当処理に従って変調信号を送受信させても良い。
図8は、第1時刻および第2時刻の第1設定例を示す図である。
例えば、第1時刻および第2時刻は、スケジューリングにより予め定められた時刻である。制御装置34が所定個のサブフレーム毎に割当処理を実行する場合、第1時刻は、割当処理の対象となる所定個のサブフレームよりも前の時刻である。第1時刻は、サブフレームの開始時刻であってもよいし、サブフレームの開始時刻から所定時間前または後にずれた時刻であってもよい。制御装置34が所定個のサブフレーム毎に割当処理を実行する場合、第2時刻は、割り当て対象の所定個のサブフレームの開始時刻であってもよいし、対象の所定個のサブフレームの開始時刻より前の時刻であってもよい。
例えば、第1時刻および第2時刻は、サブフレームとは非同期の時刻であってもよい。例えば、第1時刻および第2時刻は、所定イベントが発生したことにより設定される時刻であってもよい。例えば、制御装置34は、通信装置32にダウンリンクのデータが所定量以上蓄積された時刻、または、送受信の割り当ての予約要求が所定量以上蓄積された時刻を、第1時刻と判定してもよい。また、所定イベントが発生した時刻を第1時刻に設定した場合、例えば、制御装置34は、第1時刻から所定時間後の時刻を第2時刻に設定してもよい。また、所定イベントが発生した時刻を第1時刻に設定した場合、例えば、制御装置34は、第1時刻の直後のサブフレームの開始時刻、または、第1時刻の直後のサブフレームの開始時刻の所定時間前の時刻を第2時刻に設定してもよい。
図9は、第1時刻および第2時刻の第2設定例を示す図である。
制御装置34は、mini-slotの単位で、データを送受信する端末装置20を割り当てることができる。従って、制御装置34は、第1時刻と第2時刻との差を、OFDMシンボルの最小の時間長に設定してもよい。OFDMシンボルの最小の時間長は、サブキャリア間隔が最も小さい240kHz(μ=4)の場合のOFDMシンボルの時間長である。
また、制御装置34は、第1時刻と第2時刻との差を変化させてもよい。例えば、制御装置34は、1または複数の対象装置により送受信されるデータの許容遅延時間に応じて、第2時刻を決定してもよい。例えば、制御装置34は、許容遅延時間が短いほど、第1時刻と第2時刻との差を短くしてもよい。これにより、制御装置34は、許容遅延時間が短いデータほど、早い時刻にデータを送受信させることができる。
図10は、制御装置34の処理の流れを示すフローチャートである。制御装置34は、図10に示す流れで処理を実行する。
まず、S11において、制御装置34は、第1時刻か否かを判断する。第1時刻は、例えば、予めスケジューリングされた時刻、または、所定イベントが発生した時刻である。
続いて、S12において、制御装置34は、複数の端末装置20のうちの第1時刻における割り当て対象となる1または複数の対象装置を選択する。第1時刻における割り当て対象となる1または複数の対象装置は、基地局24に無線接続された複数の端末装置20の全てであってもよいし、複数の端末装置20の一部であってもよい。例えば、1回の割当処理において、割り当て可能な端末装置20の最大数が予め定められている場合には、制御装置34は、最大数を超えない範囲の数の端末装置20を対象装置として選択してもよい。
また、例えば、第1時刻においてダウンリンクのデータが通信装置32に蓄積されている場合、制御装置34は、通信装置32に蓄積されているダウンリンクのデータを受信する端末装置20を優先して対象装置として選択してもよい。さらに、第1時刻において送受信の割り当ての予約要求が通信装置32に蓄積されている場合、制御装置34は、通信装置32に蓄積されている予約要求の対象となる端末装置20を優先して対象装置として選択してもよい。
また、第1時刻において許容遅延時間が予め定められた時間以下であるダウンリンクのデータが通信装置32に蓄積されている場合、制御装置34は、許容遅延時間が予め定められた時間以下であるダウンリンクのデータを受信する端末装置20を優先して対象装置として選択してもよい。また、さらに、第1時刻において、許容遅延時間が予め定められた時間以下であるデータの送受信の割り当ての予約要求が通信装置32に蓄積されている場合、制御装置34は、予約対象となっている許容遅延時間が予め定められた時間以下であるデータを送受信する端末装置20を、優先して対象装置として選択してもよい。
続いて、S13において、制御装置34は、割当処理を実行する第2時刻を決定する。
続いて、S14において、制御装置34は、変調信号における割当範囲を決定する。割当範囲は、複数本のサブキャリア、および、第2時刻より後における複数個のOFDMシンボルにより構成される範囲である。例えば、割当範囲は、予め定められた本数のサブキャリア、および、第2時刻より後における予め定められた個数のOFDMシンボルから構成される範囲である。例えば、所定個のサブフレーム毎に割当処理を実行する場合には、割当範囲は、変調信号に含まれる全てのサブキャリア、および、第2時刻より後の所定個のサブフレームに含まれる複数のOFDMシンボルから構成される範囲である。
なお、割当範囲は、割当処理毎に変更されてもよい。例えば、制御装置34は、1または複数の対象装置の個数に応じて割当範囲を変更してもよい。また、例えば、制御装置34は、1または複数の対象装置に、許容遅延時間が予め定められた時間以下のデータを送受信する端末装置20を含む場合には、割当範囲を、第2時刻の直後の第1数のOFDMシンボルを含む範囲としてもよい。そして、制御装置34は、1または複数の対象装置に、許容遅延時間が予め定められた時間以下のデータを送受信する端末装置20を含まない場合には、割当範囲を、第1数よりも大きい第2数のOFDMシンボルを含む範囲としてもよい。これにより、制御装置34は、許容遅延時間が予め定められた時間以下のデータをより早い時刻に送受信させることができる。
続いて、S15において、制御装置34は、割当範囲に含まれる、データを送受信する装置が既に割り当て済みの割当済通信ブロックを取得する。より具体的には、制御装置34は、割当範囲に含まれる、データを送受信する端末装置20が既に割り当て済みのリソースブロックである割当済リソースブロック、および、データを送受信する端末装置20が既に割り当て済みのリソースエレメントである割当済リソースエレメントを取得する。
続いて、S16において、制御装置34は、割当範囲に含まれる割当済通信ブロックを除く一部の通信ブロックを、複数の割当可能通信ブロックとして決定する。より具体的には、制御装置34は、割当範囲に含まれる、割当済リソースブロックを除く複数のリソースブロックを複数の割当可能リソースブロックとして決定する。また、制御装置34は、割当範囲に含まれる、割当済リソースエレメントを除く複数のリソースエレメントを、複数の割当可能リソースエレメントとして決定する。
続いて、S17において、制御装置34は、1または複数の対象装置のそれぞれの通信に関する参照情報を取得する。
参照情報は、例えば、1または複数の対象装置のそれぞれにおける送受信されるデータの許容遅延時間を含む。また、参照情報は、1または複数の対象装置のそれぞれにおける、過去に送受信されたデータの通信品質を含んでもよい。データ品質に関する情報は、対象装置についての、CQI(Channel Quality Indicator)、MCS(Modulation and Coding Scheme)、送信電力、および、誤り率等である。CQIは、対象装置の受信品質を示す指標値である。MCSは、直交変調方式および符号化率を含む情報である。CQI、MCS、送信電力および誤り率は、過去の平均的な値であってもよいし、直前の時間帯の値であってもよい。
また、参照情報は、1または複数の対象装置のそれぞれにおける、データ量に関する情報を含んでもよい。データ量に関する情報は、対象装置についての、未送信のデータ量、過去に送受信されたデータの単位時間当たりのデータ量、過去に送受信されたデータの発生頻度、過去に送受信されたデータの発生傾向、将来のデータの予測発生頻度、将来のデータの予測発生傾向等を含んでもよい。参照情報は、1または複数の対象装置のそれぞれにおける、過去の伝搬チャネル行列を含んでもよい。
続いて、S18において、制御装置34は、割当要求を生成して、割当決定装置26に出力する。割当要求は、1または複数の対象装置を示す情報、1または複数の対象装置のそれぞれの通信に関する参照情報、および、第2時刻を示す情報を含む。割り当て要求はさらに複数の割当可能通信ブロックを示す情報を含んでも良い。複数の割当可能通信ブロックを示す情報は、複数の割当可能リソースブロックのそれぞれ、および、複数の割当可能リソースエレメントのそれぞれについての、周波数方向の位置および時間方向の位置を特定する情報である。
割当決定装置26は、制御装置34から割当要求を受け取った場合、割当情報を生成し、第2時刻までに制御装置34に割当情報を出力する。割当情報は、1または複数の対象装置のそれぞれが、割当範囲における複数のリソースエレメントのうちに何れのリソースエレメントによりデータを送受信するかを示す。
また、割当情報は、割当範囲における複数のリソースブロックのそれぞれに対する、サブキャリア間隔をさらに示してもよい。また、割当情報は、複数の通信ブロックのそれぞれに含まれるデータにおける、直交変調方式、送信電力および符号化率をさらに示してもよい。また、割当情報は、割り当て対象となる1または複数の対象装置のそれぞれについて、Massive MIMO方式において用いる伝搬チャネル行列をさらに示してもよい。
割当決定装置26は、S18で制御装置34から出力された割当要求を受け取る。割当決定装置26は、割当要求を受け取った場合、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、割当情報を生成する。割当決定装置26は、生成した割当情報を、制御装置34が第2時刻に割当処理を実行することが可能な返信時刻までに、制御装置34に出力する。すなわち、割当決定装置26は、割当情報を、制御装置34が第2時刻より前の返信時刻までに、制御装置34に出力する。
例えば、割当決定装置26は、機械学習モデルを用いて、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、割当情報を生成する。また、例えば、割当決定装置26は、例えば、QUBO(Quadratic unconstrained binary optimization)問題の解を算出するソルバーを用いて、割当情報を生成してもよい。この場合、割当決定装置26は、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づきQUBO問題の目的関数を生成し、生成した目的関数をQUBOソルバーに与えて目的関数を最小化する解を取得し、取得した解に基づき割当情報を生成する。
ここで、割当決定装置26は、情報を入力してから割当情報を出力するまでの演算時間を変更することができる。そして、割当決定装置26は、割当要求を受け取った場合、割当要求に含まれる第2時刻に基づき、返信時刻までに確実に割当情報を生成することができるように、処理時間を設定する。
例えば、割当決定装置26は、演算時間が異なる複数の機械学習モデルを含んでもよい。この場合、割当決定装置26は、複数の機械学習モデルのうちの返信時刻までに割当情報を出力可能な機械学習モデルを選択し、選択した機械学習モデルを用いて割当情報を生成してもよい。また、例えば、割当決定装置26は、演算時間を設定可能なQUBOソルバーを用いてもよい。この場合、割当決定装置26は、返信時刻までに割当情報を出力可能なように、第2時刻に基づきQUBOソルバーにおける演算時間に関するパラメータを設定する。
続いて、S19において、制御装置34は、割当情報を割当決定装置26から取得する。
続いて、S20において、制御装置34は、第2時刻になったか否かを判断する。制御装置34は、第2時刻となっていない場合(S20のNo)、処理をS20で待機し、第2時刻となった場合(S20のYes)、処理をS21に進める。
そして、S21において、制御装置34は、割当決定装置26から取得した割当情報に基づき割当処理を実行し、複数の端末装置20および通信装置32に対して割当処理に従って変調信号を送受信させる。割当処理は、例えば、制御装置34が通信装置32に割当てられた通信ブロックに関する情報を端末装置20へ送信させることによって実行することが出来る。
以上の処理が実行されることにより、通信装置32は、割当範囲において、割当処理において割り当てられた端末装置20とデータを送受信することができる。
図11は、割当情報の記述形式の一例を示す図である。
例えば、割当情報は、割当範囲に含まれる複数のリソースエレメントのそれぞれにおいて、何れの端末装置20がデータを送信または受信するかを示す。なお、複数のリソースエレメントのうちの一部は、何れの端末装置20も割り当てられなくてもよい。
このような割当情報は、一例として、割当範囲内の複数のリソースエレメントを表すマトリクス状に並べられた複数の箱により表される。この場合、複数の箱のそれぞれは、1個のリソースエレメントに対応する。マトリクス状に並べられた複数の箱は、行方向または列方向のうちの一方の位置が、割当範囲における、サブキャリアの位置により特定される。また、マトリクス状に並べられた複数の箱は、行方向または列方向のうちの他方の位置が、OFDMシンボルの位置により特定される。
このような記述形式の割当情報は、複数の箱のそれぞれに、複数の端末装置20のうちの何れを入れるかを解く箱詰め問題の解を表す。従って、割当決定装置26は、箱詰め問題の解を解くためのアルゴリズムを用いて、割当情報を生成することができる。
例えば、割当決定装置26は、ニューラルネットワーク等の機械学習モデルを予め学習させておくことにより、箱詰め問題の解を表す割当情報を生成することができる。例えば、割当決定装置26の設計者は、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報を含む入力情報を与えて、箱詰め問題の解を出力するニューラルネットワークを作成する。そして、設計者は、作成したニューラルネットワークを、過去の入力情報と理想解とを含む教師データに基づき学習させる。割当決定装置26は、このように作成された機械学習モデルを用いることにより、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、割当情報を生成することができる。
また、割当決定装置26は、複数の2値変数を含む2次関数を目的関数とするQUBO問題を解くことによっても、このような割当情報を生成することができる。この場合、目的関数である2次関数は、複数の端末装置20に一対一に対応する複数の2値変数を、マトリクスを構成する複数の箱に対応する個数分含む。さらに、2次関数は、制約条件を表す複数の2値変数をさらに含んでもよい。
割当決定装置26の設計者は、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、最小化した場合の解が、予め設定された条件により近い割当情報が得られる2次関数を作成する。そして、割当決定装置26の設計者は、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、このような2次関数を生成する定式化アルゴリズムを作成する。
割当決定装置26は、このように作成された定式化アルゴリズムを用いることにより、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、目的関数である2次関数を生成する。続いて、割当決定装置26は、生成した2次関数を、QUBOソルバーに与えて、2次関数の解を算出する。そして、割当決定装置26は、QUBOソルバーにより算出された2次関数の解のうちの、箱詰め問題の解を表す複数の2値変数の解に基づき、割当情報を生成する。
また、割当決定装置26は、例えば、1または複数の対象装置のそれぞれに対して割り当て順位を決定し、決定した順位に従ってマトリクス状に並べられた複数の箱に対象装置を割り当てることにより割当情報を生成してもよい。この場合、割当決定装置26は、送受信するデータ量の少ない順に対象装置に順位を付けてもよいし、許容遅延時間が短い順に順位を付けてもよいし、過去に送受信したデータ量が少ない順に対象装置に順位を付けてもよい。
図12は、割当決定装置26により生成された割当情報の一例を示す図である。図12に示されているA~Hは、リソースエレメントに割り当てられた端末装置20のユーザを識別する情報である。
例えば、参照情報は、1または複数の対象装置のそれぞれにおける送受信されるデータの許容遅延時間を含んでいるとする。この場合、割当決定装置26は、許容遅延時間が短い対象装置を、許容遅延時間が長い対象装置よりも、早い時刻において送受信が完了するリソースエレメントに割り当てるように、割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いる。より具体的には、割当決定装置26は、許容遅延時間が短い対象装置を、許容遅延時間が長い対象装置よりも、時間的に早いOFDMシンボルのリソースエレメントに割り当てるように、割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いる。例えば、ユーザAの端末装置20は、ユーザDの端末装置20よりも、送受信するデータの許容遅延時間が短いことが参照情報に示されているとする。この場合、機械学習モデルまたは定式化アルゴリズムを用いることにより、割当決定装置26は、図12に示されるように、ユーザAの端末装置20を、ユーザDの端末装置20よりも、時間的に早いリソースブロックに割り当てることができる。
また、割当決定装置26は、1または複数の対象装置のうち許容遅延時間内に無線通信可能な対象装置を多くするように、割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いてもよい。
また、例えば、参照情報は、1または複数の対象装置のそれぞれにおける過去に送受信されたデータの単位時間当たりのデータ量または将来予測される単位時間当たりのデータ量を含んでいるとする。この場合、割当決定装置26は、単位時間当たりのデータの送受信量を満たす対象装置を多くするように、割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いてもよい。また、この場合、割当決定装置26は、過去に送受信されたデータの単位時間当たりのデータ量または将来予測される単位時間当たりのデータ量が閾値を超える対象装置について、単位時間当たりのデータの送受信量を満たすように割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いてもよい。
また、割当決定装置26は、全体の単位時間当たりのデータの送受信量が最大となるように、割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いてもよい。
また、例えば、参照情報は、1または複数の対象装置のそれぞれにおける、過去に送受信されたデータの通信品質を含んでいるとする。この場合、割当決定装置26は、過去に送受信されたデータの通信品質の高い対象装置を、通信品質の低い対象装置よりも、高い符号化率または高い直交変調方式に割り当てるように割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いてもよい。
より具体的には、割当決定装置26は、過去に送受信されたデータの通信品質の高い対象装置を、通信品質の低い対象装置よりも、サブキャリア間隔が大きいリソースブロックに含まれるリソースエレメントに割り当てるように、割当情報を生成する機械学習モデルまたは定式化アルゴリズムを用いる。例えば、ユーザCの端末装置20は、ユーザDの端末装置20よりも、通信品質が高いことが参照情報に示されているとする。この場合、機械学習モデルまたは定式化アルゴリズムを用いることにより、割当決定装置26は、図12に示されるように、ユーザCの端末装置20を、ユーザDの端末装置20よりも、多くの本数のサブキャリアに割り当てることができる。
以上のように、割当決定装置26は、箱詰め問題の解を解くためのアルゴリズムを用いて、割当情報を生成することができる。
図13は、第1例に係る割当決定装置26の構成を示す図である。第1例に係る割当決定装置26は、機械学習モデルを用いて、割当情報を生成する。
第1例に係る割当決定装置26は、要求取得部52と、割当決定部54と、設定部56とを有する。
要求取得部52は、制御装置34から割当要求を取得する。要求取得部52は、割当要求に含まれる、1または複数の対象装置を示す情報、割当可能通信ブロック(複数の割当可能リソースブロックおよび複数の割当可能リソースエレメント)を示す情報、および、参照情報を割当決定部54に与える。また、要求取得部52は、割当要求に含まれる第2時刻を設定部56に与える。
割当決定部54は、複数の機械学習モデルを含む。複数の機械学習モデルのそれぞれは、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報、および、参照情報を入力して、割当情報を出力する。複数の機械学習モデルのそれぞれは、例えば予め学習されたニューラルネットワークである。
複数の機械学習モデルのそれぞれは、情報を入力してから、割当情報を出力するまでの演算時間が、他と異なる。また、複数の機械学習モデルのそれぞれは、内部の演算構造および演算アルゴリズムが他と異なっている。例えば、複数の機械学習モデルのそれぞれは、ニューラルネットワークである場合、層の数およびノード数が異なっている。従って、複数の機械学習モデルのそれぞれは、入力される情報に対して得られるべき理想的な割当情報に対する、実際に出力される割当情報の精度が異なる。
例えば、割当決定部54は、第1機械学習モデルから、第N(Nは2以上の整数)機械学習モデルまでのN個の機械学習モデルを含むとする。この場合、例えば、第1機械学習モデルは、最も高速であるが、最も精度が低い。第N機械学習モデルは、最も精度が高いが、最も低速である。第2機械学習モデルから、第(N-1)機械学習モデルは、速度が段階的に低くなり、精度が段階的に高くなる。
このような割当決定部54は、機械学習モデルから出力された割当情報を制御装置34に返信する。
設定部56は、割当要求を受け取った場合、複数の機械学習モデルのうちの、制御装置34に第2時刻までに割当処理を実行させることが可能な返信時刻までに割当情報を出力する機械学習モデルを選択する。例えば、設定部56は、割当要求を受け取った場合、複数の機械学習モデルのうちの、返信時刻までに割当情報する機械学習装置であって、最も精度の高い割当情報を出力する機械学習モデルを選択する。そして、設定部56は、割当決定部54に、選択した機械学習モデルを用いて割当情報を生成させる。
このような第1例に係る割当決定装置26は、割当要求を取得した時刻から第2時刻までの時間が短い場合には、精度が低いが、高速に演算を実行する機械学習モデルを用いて、割当情報を生成することができる。また、このような第1例に係る割当決定装置26は、割当要求を取得した時刻から第2時刻までの時間が長い場合には、低速に演算を実行するが、精度が高い機械学習モデルを用いて、割当情報を生成することができる。
これにより、第1例に係る割当決定装置26は、第2時刻までに確実に割当情報を制御装置34に返信するとともに、より精度の高い割当情報を返信することができる。
図14は、第2例に係る割当決定装置26の構成を示す図である。第2例に係る割当決定装置26は、QUBO問題を解くことにより割当情報を生成する。
第1例に係る割当決定装置26は、要求取得部52と、定式化部62と、解算出部64と、割当情報出力部66と、設定部56とを有する。
第2例に係る要求取得部52は、制御装置34から割当要求を取得する。要求取得部52は、割当要求に含まれる、1または複数の対象装置を示す情報、割当可能通信ブロック(複数の割当可能リソースブロックおよび複数の割当可能リソースエレメント)を示す情報、および、参照情報を定式化部62に与える。また、要求取得部52は、割当要求に含まれる第2時刻を設定部56に与える。
定式化部62は、1または複数の対象装置を示す情報、複数の割当可能通信ブロックを示す情報および参照情報に基づき、予め設計者により生成された定式化アルゴリズムに従って、QUBO問題における目的関数を生成する。QUBO問題は、複数の2値変数を含む2次関数である。複数の2値変数のうちの少なくとも一部のそれぞれは、複数のリソースエレメントの何れかに対応するとともに、1または複数の対象装置の何れかに対応し、対応する対象装置が対応するリソースエレメントに割り当てられているか否かを表す。すなわち、複数の2値変数のうちの少なくとも一部は、割当情報を表す箱詰め問題の解を表す。定式化部62は、生成した目的関数を解算出部64に与える。
解算出部64は、定式化部62により生成された目的関数を入力して、求解装置70を用いてQUBO問題の解を算出する。求解装置70は、QUBOソルバーの一例であり、目的関数を最小化するような解を算出する。求解装置70は、割当決定装置26に備えられていてもよいし、割当決定装置26の外部に設けられていてもよい。
求解装置70は、目的関数を入力してから、解を出力するまでの演算時間を、パラメータの設定を変更することにより、変更可能な装置である。例えば、求解装置70は、演算時間を長く設定するほど、最適解に近い近似解を出力する確率が高く、演算時間を短く設定するほど、最適解から遠い近似解を出力する確率が高い装置であってもよい。
例えば、求解装置70は、特許文献1または特許文献2に示されたSB(Simulated Bifurcation)アルゴリズムを用いた装置である。SBアルゴリズムを用いた求解装置70は、終了時刻を表すパラメータTを変更することにより、解を出力するまでの時間を変更することが可能である。なお、SBアルゴリズムを用いた求解装置70については、詳細を後述する。
割当情報出力部66は、解算出部64からQUBO問題の解を取得する。割当情報出力部66は、QUBO問題の解に基づき割当情報を生成する。より具体的には、割当情報出力部66は、目的関数に含まれる複数の2値変数のうちの、箱詰め問題の解を表す一部の2値変数の解を取得し、割当情報を生成する。そして、割当情報出力部66は、生成した割当情報を制御装置34に返信する。
設定部56は、割当要求を受け取った場合、第2時刻に基づき、求解装置70における演算時間に関するパラメータを設定する。より詳しくは、設定部56は、制御装置34に第2時刻までに割当処理を実行させることが可能な返信時刻までに割当情報を出力するように、求解装置70の演算時間を設定する。例えば、設定部56は、割当要求を受け取った場合、返信時刻までに割当情報を出力可能な範囲で、最も精度の高い割当情報を出力するように、求解装置70の演算時間を設定する。例えば、求解装置70がSBアルゴリズムを用いる場合、設定部56は、終了時刻を表すパラメータTを設定する。
このような第2例に係る割当決定装置26は、割当要求を取得した時刻から第2時刻までの時間が短い場合には、精度が低いが、短い時間で演算を実行するように求解装置70を設定して、割当情報を生成することができる。また、このような第2例に係る割当決定装置26は、割当要求を取得した時刻から第2時刻までの時間が長い場合には、長い時間で演算を実行するが、精度が高くなるように求解装置70を設定して、割当情報を生成することができる。
これにより、第2例に係る割当決定装置26は、第2時刻までに確実に割当情報を制御装置34に返信するとともに、より精度の高い割当情報を返信することができる。
図15は、第1変形例に係る通信システム10の構成を示す図である。通信システム10は、例えば図15に示すような構成であってもよい。すなわち、割当決定装置26は、複数の基地局24に接続されてもよい。この場合、割当決定装置26は、複数の基地局24から割当要求を受け付ける。そして、割当決定装置26は、割当要求を受け取ったことに応じて割当情報を生成し、生成した割当情報を、割当要求を送信した基地局24に返信する。
図16は、第2変形例に係る通信システム10の構成を示す図である。通信システム10は、例えば図16に示すような構成であってもよい。すなわち、割当決定装置26は、コアネットワーク22に接続される。この場合、1または複数の基地局24のそれぞれは、割当要求をコアネットワーク22を介して割当決定装置26に出力する。そして、割当決定装置26は、割当要求を受け取ったことに応じて割当情報を生成し、生成した割当情報をコアネットワーク22を介して、割当要求を出力した基地局24に返信する。
図17は、第3変形例に係る通信システム10の構成を示す図である。通信システム10は、例えば図17に示すような構成であってもよい。すなわち、通信システム10は、中継装置80をさらに備えてもよい。第3変形例の中継装置80は、基地局24と割当決定装置26との間の情報の送受信を中継する。さらに、中継装置80は、割当情報を生成するために必要となる参照情報の一部をコアネットワーク22から取得する。この場合、基地局24は、割当要求を中継装置80を介して割当決定装置26に出力する。そして、中継装置80は、割当要求を受け取ったことに応じて、参照情報に含める一部の情報をコアネットワーク22から取得し、取得した情報を割当要求に含め、割当決定装置26に転送する。そして、割当決定装置26は、割当要求を受け取ったことに応じて割当情報を生成し、生成した割当情報を中継装置80を介して、基地局24に返信する。
図18は、第4変形例に係る通信システム10の構成を示す図である。通信システム10は、例えば図18に示すような構成であってもよい。すなわち、通信システム10は、中継装置80をさらに備えてもよい。第4変形例の中継装置80は、複数の基地局24のそれぞれと、割当決定装置26との間の情報の送受信を中継する。この場合、複数の基地局24のそれぞれは、割当要求を中継装置80を介して割当決定装置26に出力する。そして、割当決定装置26は、割当要求を受け取ったことに応じて割当情報を生成し、生成した割当情報を中継装置80を介して、割当要求を出力した基地局24に返信する。
図19は、第5変形例に係る通信システム10の構成を示す図である。通信システム10は、例えば図19に示すような構成であってもよい。すなわち、通信システム10は、複数の中継装置80をさらに備えてもよい。また、通信システム10は、複数の中継装置80に一対一に対応した複数の割当決定装置26を備える。第5変形例の中継装置80は、対応する複数の基地局24のそれぞれと、対応する割当決定装置26との間の情報の送受信を中継する。この場合、複数の基地局24のそれぞれは、割当要求を、対応する中継装置80を介して、対応する割当決定装置26に出力する。そして、割当決定装置26は、割当要求を受け取ったことに応じて割当情報を生成し、生成した割当情報を、対応する中継装置80を介して、割当要求を出力した基地局24に返信する。
(SBアルゴリズムを用いた求解装置70)
つぎに、SBアルゴリズムを実行する求解装置70について説明する。
求解装置70の説明の前提として、まず、イジング問題およびQUBO問題について説明する。
イジング問題を解くために使われる装置の一例として、イジングマシンが挙げられる。イジングマシンは、イジングモデルの基底状態のエネルギーを計算する。これまで、イジングモデルは、主に強磁性体や相転移現象のモデルとして使われることが多かった。しかし、近年、イジングモデルは、QUBO問題を解くためのモデルとしての利用が増えている。式(1)は、イジングモデルのエネルギーを示す。
si、sjはスピンを表す。スピンは、+1または-1の何れかの値をとる2値変数である。siは、i番目のスピンを表す。sjは、j番目のスピンを表す。iおよびjは、1以上、N以下の整数である。Nは、スピンの数を表し、2以上の整数である。hiは、i番目のスピンに作用する局所磁場を表す。Jは、2つのスピン間に作用する力を表す結合係数の行列である。Jは、対角成分が0である実対称行列である。Jijは、Jのi行j列の要素を表す。つまり、Jijは、i番目のスピンと、j番目のスピンとの間に作用する力を表す結合係数である。
イジングマシンは、式(1)により表されるエネルギーEIsingを目的関数とし、エネルギーEIsingを可能な限り小さくする解を算出する。エネルギーEIsingが最小値となるイジングモデルの解(s1、s2、・・・、sN)は、最適解と呼ばれる。ただし、イジングモデルの解は、最適解ではなく、エネルギーEIsingが最小値に近い近似解であってもよい。すなわち、イジング問題は、最適解のみならず、近似解を算出する問題であってもよい。
また、QUBO問題は、0または1の何れかの値をとる2値変数の2次関数を目的関数とする。0または1の何れかの値をとる2値変数は、(1+si)/2の演算を用いることにより、siに変換される。つまり、QUBO問題は、式(1)で表されるイジング問題と等価であるといえる。従って、QUBO問題は、イジング問題に変換し、イジングマシンにより解を算出することが可能である。
特許文献1および特許文献2には、QUBO問題を解くためのアルゴリズムとして、SBアルゴリズムが提案されている。SBアルゴリズムは、イジングモデルを用いて、デジタルコンピュータによって、規模の大きいQUBO問題を高速に解くことが可能である。SBアルゴリズムは、CPU(Central Processing Unit)、マイクロプロセッサ、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、または、これらの組合せの回路等の電子回路によっても、規模の大きいQUBO問題を高速に解くことが可能である。
つぎに、SBアルゴリズムについて説明する。
SBアルゴリズムは、それぞれがN個の要素に対応する変数xiおよび変数yiを用いる。変数xiを第1変数、変数yiを第2変数と呼ぶ場合もある。SBアルゴリズムにおいて、N個の要素のそれぞれは、仮想的な粒子を表す。N個の要素は、イジング問題のN個のスピンに対応する。従って、N個の要素は、QUBO問題のN個の2値変数に対応する。変数xiおよび変数yiは、何れも、実数で表される連続変数である。変数xiは、N個の粒子のうちのi番目の粒子の位置を表す。変数yiは、i番目の粒子の運動量を表す。Nは、2以上の整数である。iは、1以上、N以下の整数を表し、N個の要素のそれぞれを特定するインデックスを表す。
SBアルゴリズムは、それぞれN個ある変数x
iおよび変数y
iについて、下記の式(2)の連立常微分方程式を数値的に解く。
係数Dは、予め定められた定数であり、離調(detuning)に相当する。係数p(t)は、ポンピング振幅(pumping amplitude)に相当し、SBアルゴリズムの計算時に更新回数に応じて値が単調増加する。tは、時刻を表す変数である。係数p(t)の初期値は0に設定されていてもよい。係数Kは、予め定められた定数であって、正のカー係数(Kerr coefficient)に相当する。なお、係数Kは、0であってもよい。
式(4)のziは、式(3)の中の小カッコの内の数式を変数xiで偏微分した式である。式(3)の中の小カッコの内の数式は、イジングモデルのエネルギーEIsingに対応する。
cは、係数である。cは、例えば、計算を実行する前に予め定められる定数であってもよい。また、α(t)は、p(t)とともに増加する係数である。
そして、SBアルゴリズムは、p(t)の値を初期値(例えば、0)から所定の値まで増加させた後における変数xiの符号に基づき、スピンsiの値を算出する。SBアルゴリズムは、例えば、xi>0の場合にsgn(xi)=1、xi<0の場合にsgn(xi)=-1となる符号関数を用いて、スピンsiの値を算出する。
SBアルゴリズムは、シンプレクティック・オイラー法を用いて、式(2)、式(3)および式(4)によって与えられる微分方程式を解く。
ここで、シンプレクティック・オイラー法を使う場合、式(2)、式(3)および式(4)によって与えられる微分方程式は、式(5)または式(6)に示すような、離散的な漸化式に書き換えられる。
tは、時刻を表す。Δtは、単位時間(時間ステップ、時間刻み幅)を表す。
SBアルゴリズムを実行する場合、デジタルコンピュータまたはFPGA等の電子回路は、式(5)または式(6)のアルゴリズムに基づき、それぞれN個ある変数xiおよび変数yiを初期時刻から単位時間毎に順次に、且つ、変数xiと変数yiとを交互に、更新する。そして、デジタルコンピュータまたはFPGA等の電子回路は、終了時刻におけるN個の変数xiの値を、符号関数を用いて2値化して、N個のスピンの値を出力する。
なお、式(5)および式(6)は、微分方程式との対応関係を示すために、時刻tおよび単位時間Δtを用いて表されている。ただし、シンプレクティック・オイラー法をデジタルコンピュータまたはFPGA等の電子回路で実行する場合、式(5)および式(6)を演算するためのアルゴリズムは、明示的なパラメータとして時刻tおよび単位時間Δtを含まなくてよい。例えば、単位時間Δtを1とする場合、式(5)および式(6)を演算するためのアルゴリズムは、単位時間Δtを含まなくてよい。例えば、明示的なパラメータとして時刻tを含まない場合、式(5)および式(6)を演算するアルゴリズムは、xi(t+Δt)をxi(t)の更新後の値として処理を実行する。すなわち、式(5)および式(6)を演算するアルゴリズムは、“t”を更新前の変数を特定するパラメータ、“t+Δt”を更新後の変数を特定するパラメータとして処理を実行する。
図20は、SBアルゴリズムを実行する求解装置70の機能構成を示す図である。
求解装置70は、図20に示すように、機能構成として、入力部112と、更新部114と、出力部116とを備える。
入力部112は、QUBO問題の目的関数を定義するための情報(例えば、N、J、h)、および、SBアルゴリズムを実行するために必要な係数を表す情報(例えば、D、c、Δt、T、p(t)、α(t))を外部装置から受け取る。
なお、Tは、終了時刻を表す。本実施形態において、入力部112は、終了時刻を表すTを設定部56から受け取る。
更新部114は、SBアルゴリズムを用いて、第1変数(xi)および第2変数(yi)が対応付けられた複数の要素のそれぞれについて、初期時刻(t=0)から終了時刻(t=T)まで単位時間(Δt)毎に順次に、第1変数(xi)および第2変数(yi)を交互に更新する。
出力部116は、終了時刻(t=T)における複数の要素のそれぞれの第1変数(xi)に基づき、QUBO問題の解を出力する。例えば、出力部116は、終了時刻における複数の要素のそれぞれについて、第1変数(xi)を予め設定された閾値により2値化した2値変数の値を算出する。そして、出力部116は、算出した複数の2値変数の値をQUBO問題の解として出力する。
ここで、複数の要素は、QUBO問題の複数の2値変数に対応する。また、第1変数(xi)および第2変数(yi)のそれぞれは、実数により表される。
そして、単位時間毎の更新処理において、更新部114は、複数の要素のそれぞれについて、第1変数(xi)を第2変数(yi)に基づき更新する。また、単位時間毎の更新処理において、更新部114は、複数の要素のそれぞれについて、第2変数(yi)を第1変数(xi)に基づき更新する。
例えば、単位時間毎の更新処理において、更新部114は、複数の要素のそれぞれについて、第1変数(xi)を更新した後に第2変数(yi)を更新する。これに代えて、単位時間毎の更新処理において、更新部114は、複数の要素のそれぞれについて、第2変数(yi)を更新した後に第1変数(xi)を更新してもよい。
図21は、更新部114の処理の流れの第1例を示すフローチャートである。更新部114は、例えば、図21に示す流れで処理を実行する。
まず、S101において、更新部114は、QUBO問題を解くためのパラメータを設定する。具体的には、更新部114は、N×N個の結合係数を含む行列であるJ、および、N個の局所磁場を表す局所磁場係数を含む配列であるhを設定する。さらに、更新部114は、係数であるD、係数であるc、単位時間を表すΔt、終了時刻を表すT、関数であるp(t)、および、関数であるα(t)を設定する。p(t)およびα(t)は、t=初期時刻(例えば0)で0、t=終了時刻(T)で1となる増加関数である。更新部114は、J、hを入力部112からの受け取った情報に応じて設定する。更新部114は、D、c、Δt、p(t)およびα(t)を、入力部112から受け取った値に応じて設定してもよいし、予め決定されており変更できない値を設定してもよい。なお、本実施形態において、Tは、設定部56から設定された第2時刻に応じて定まる値であり、QUBO問題を実行する毎に変更される。
続いて、S102において、更新部114は、変数を初期化する。具体的には、更新部114は、時刻を表す変数であるtを初期時刻(例えば、0)に初期化する。さらに、更新部114は、N個の第1変数(x1(t)~xN(t))のそれぞれおよびN個の第2変数(y1(t)~yN(t))のそれぞれに、ユーザから受け取った初期値、予め定められた固定値、または、乱数を代入する。
続いて、更新部114は、S103とS114との間のループ処理を、tがTより大きくなるまで繰り返す。1回のループ処理において、更新部114は、対象時刻(t+Δt)におけるN個の第1変数(x1(t+Δt)~xN(t+Δt))を、直前時刻(t)におけるN個の第1変数(x1(t)~xN(t))、および、直前時刻(t)におけるN個の第2変数(y1(t)~yN(t))に基づき算出する。また、1回のループ処理において、更新部114は、対象時刻(t+Δt)におけるN個の第2変数(y1(t+Δt)~yN(t+Δt))を、対象時刻(t+Δt)におけるN個の第1変数(x1(t+Δt)~xN(t+Δt))および直前時刻(t)におけるN個の第2変数(y1(t)~yN(t))に基づき算出する。
なお、直前時刻(t)は、対象時刻(t+Δt)より単位時間(Δt)前の時刻である。すなわち、更新部114は、S103とS114との間のループ処理を繰り返すことにより、N個の第1変数(x1(t)~xN(t))およびN個の第2変数(y1(t)~yN(t))を、初期時刻(t=0)から終了時刻(t=T)まで単位時間(Δt)毎に順次に更新する。
続いて、更新部114は、S104とS106との間のループ処理を、i=1からi=Nまでiを1ずつインクリメントしながら繰り返す。iは、1からNまでの整数であり、N個の要素のうちの処理対象を表すインデックスである。N個の要素のそれぞれは、第1変数(xi(t))および第2変数(yi(t))が対応付けられる。S104とS106との間のループ処理において、更新部114は、N個の要素のうちのi番目の要素を、対象要素として処理を実行する。
S105において、更新部114は、対象要素の対象時刻(t+Δt)における第1変数(x
i(t+Δt))を、対象要素の直前時刻(t)における第1変数(x
i(t))に、対象要素の直前時刻(t)における第2変数(y
i(t))と予め定められた定数(D)と単位時間(Δt)とを乗算した値を加算することにより算出する。具体的には、更新部114は、式(7)を算出する。
すなわち、更新部114は、N個の要素のそれぞれについて、対象要素の対象時刻(t+Δt)における第1変数(xi(t+Δt))を、対象要素の直前時刻(t)における第1変数(xi(t))と、対象要素の直前時刻(t)における第2変数(yi(t))とに基づき更新する。
更新部114は、S104とS106との間のループ処理をN回実行した場合、処理をS107に進める。
続いて、更新部114は、S107とS112との間のループ処理を、i=1からi=Nまでiを1ずつインクリメントしながら繰り返す。
S108において、更新部114は、N個の要素のそれぞれの対象時刻(t+Δt)における第1変数(x
1(t+Δt)~x
N(t+Δt))と、対象要素とN個の要素のそれぞれとの組毎にQUBO問題により予め定められる作用係数と、に基づき更新値(z
i(t+Δt))を算出する。作用係数は、Jに含まれる結合係数およびhに含まれる局所磁場係数である。具体的には、更新部114は、式(8)を算出する。
続いて、S109において、更新部114は、更新値(z
i(t+Δt))に、係数(c)と-1とを乗算することにより、外力(f
i(t+Δt))を算出する。具体的には、更新部114は、式(9)を算出する。
続いて、S110において、更新部114は、時間経過に従って増加する関数であるp(t+Δt)に基づき定まる値に、対象要素の対象時刻(t+Δt)における第1変数(x
1(t+Δt))を乗算した時間発展値(g
i(t+Δt))を算出する。具体的には、更新部114は、式(10)を算出する。
続いて、S111において、更新部114は、対象要素の対象時刻(t+Δt)における第2変数(y
i(t+Δ))を、対象要素の直前時刻(t)における第2変数(y
i(t))に、時間発展値(g
i(t+Δt))と外力(f
i(t+Δt))とを加算した値に単位時間(Δt)を乗算した値を、加算することにより、算出する。具体的には、更新部114は、式(11)を算出する。
更新部114は、以上のようなS107とS112との間のループ処理をN回実行することにより、N個の要素のそれぞれについて、対象時刻(t+Δt)における第2変数(yi(t+Δt))を、対象時刻(t+Δt)におけるN個の第1変数(x1(t+Δt)~xN(t+Δt))と、対象要素の直前時刻(t)におけるに第2変数(yi(t))とに基づき更新する。
更新部114は、S107とS112との間のループ処理をN回実行した場合、処理をS113に進める。
S113において、更新部114は、直前時刻(t)および対象時刻(t+Δt)のそれぞれに単位時間(Δt)を加算して、直前時刻(t)および対象時刻(t+Δt)を更新する。S114において、更新部114は、S104からS113までの処理を、tが終了時刻(T)を超えるまで繰り返す。そして、更新部114は、tが終了時刻(T)より大きくなった場合、本フローを終了する。
そして、出力部116は、N個の要素のそれぞれについて、終了時刻(t=T)における第1変数(xi(T))の符号に応じて、対応するスピンの値を算出する。例えば、出力部116は、終了時刻(t=T)における第1変数(xi(T))の符号が負である場合、対応するスピンを-1とし、正である場合、対応するスピンを+1とする。そして、出力部116は、算出した複数のスピンの値、または、算出した複数のスピンの値を2値変数に変換した値をQUBO問題の解として出力する。
以上のS101~S114の処理を実行することにより、更新部114は、SBアルゴリズムに従った演算を実行して、終了時刻(t=T)におけるN個の第1変数(x1(t)~xN(t))およびN個の第2変数(y1(t)~yN(t))を算出することができる。
図22は、更新部114の処理の流れの第2例を示すフローチャートである。更新部114は、SBアルゴリズムを用いてQUBO問題を解く場合、図21に示す流れに代えて、図22に示す流れで処理を実行してもよい。
まず、S201およびS202において、更新部114は、図21に示す第1例のS101およびS102と同一の処理を実行する。
続いて、更新部114は、S203とS214との間のループ処理を、tがTより大きくなるまで繰り返す。1回のループ処理において、更新部114は、対象時刻(t+Δt)におけるN個の第2変数(y1(t+Δt)~yN(t+Δt))を、直前時刻(t)におけるN個の第1変数(x1(t)~xN(t))および直前時刻(t)におけるN個の第2変数(y1(t)~yN(t))に基づき算出する。また、1回のループ処理において、更新部114は、対象時刻(t+Δt)におけるN個の第1変数(x1(t+Δt)~xN(t+Δt))を、直前時刻(t)におけるN個の第1変数(x1(t)~xN(t))、および、対象時刻(t+Δt)におけるN個の第2変数(y1(t+Δt)~yN(t+Δt))に基づき算出する。
続いて、更新部114は、S204とS209との間のループ処理を、i=1からi=Nまでiを1ずつインクリメントしながら繰り返す。S204とS209との間のループ処理において、更新部114は、N個の要素のうちのi番目の要素を、対象要素として処理を実行する。
S205において、更新部114は、N個の要素のそれぞれの直前時刻(t)における第1変数(x
1(t)~x
N(t))と、対象要素とN個の要素のそれぞれとの組毎にQUBO問題により予め定められる作用係数と、に基づき更新値(z
i(t))を算出する。具体的には、更新部114は、式(12)を算出する。
続いて、S206において、更新部114は、更新値(z
i(t))に、係数(c)と-1とを乗算することにより、外力(f
i(t))を算出する。具体的には、更新部114は、式(13)を算出する。
続いて、S207において、更新部114は、時間経過に従って増加する関数であるp(t)に基づき定まる値に、対象要素の直前時刻(t)における第1変数(x
1(t))を乗算した時間発展値(g
i(t))を算出する。具体的には、更新部114は、式(14)を算出する。
続いて、S208において、更新部114は、対象要素の対象時刻(t+Δt)における第2変数(y
i(t+Δ))を、対象要素の直前時刻(t)における第2変数(y
i(t))に、時間発展値(g
i(t))と外力(f
i(t))とを加算した値に単位時間(Δt)を乗算した値を、加算することにより、算出する。具体的には、更新部114は、式(15)を算出する。
更新部114は、以上のようなS204とS209との間のループ処理をN回実行することにより、N個の要素のそれぞれについて、対象時刻(t+Δt)における第2変数(yi(t+Δt))を、直前時刻(t)におけるN個の第1変数(x1(t)~xN(t))と、対象要素の直前時刻(t)におけるに第2変数(yi(t))とに基づき更新する。
更新部114は、S204とS209との間のループ処理をN回実行した場合、処理をS210に進める。
続いて、更新部114は、S210とS212との間のループ処理を、i=1からi=Nまでiを1ずつインクリメントしながら繰り返す。
S211において、更新部114は、対象要素の対象時刻(t+Δt)における第1変数(x
i(t+Δt))を、対象要素の直前時刻(t)における第1変数(x
i(t))に、対象要素の対象時刻(t+Δt)における第2変数(y
i(t+Δt))と予め定められた定数(D)と単位時間(Δt)とを乗算した値を加算することにより算出する。具体的には、更新部114は、式(16)を算出する。
すなわち、更新部114は、N個の要素のそれぞれについて、対象要素の対象時刻(t+Δt)における第1変数(xi(t+Δt))を、対象要素の直前時刻(t)における第1変数(xi(t))と、対象要素の直前時刻(t)における第2変数(yi(t))とに基づき更新する。
更新部114は、S210とS212との間のループ処理をN回実行した場合、処理をS213に進める。
S213において、更新部114は、直前時刻(t)および対象時刻(t+Δt)のそれぞれに単位時間(Δt)を加算して、直前時刻(t)および対象時刻(t+Δt)を更新する。S214において、更新部114は、S210からS213までの処理を、tが終了時刻(T)を超えるまで繰り返す。そして、更新部114は、tが終了時刻(T)より大きくなった場合、本フローを終了する。
そして、出力部116は、N個の要素のそれぞれについて、終了時刻(t=T)における第1変数(xi(T))の符号に応じて、対応するスピンの値を算出する。例えば、出力部116は、終了時刻(t=T)における第1変数(xi(T))の符号が負である場合、対応するスピンを-1とし、正である場合、対応するスピンを+1とする。そして、出力部116は、算出した複数のスピンの値、または、算出した複数のスピンの値を2値変数に変換した値をQUBO問題の解として出力する。
以上のS201~S214の処理を実行することにより、更新部114は、SBアルゴリズムに従った演算を実行して、終了時刻(t=T)におけるN個の第1変数(x1(t)~xN(t))およびN個の第2変数(y1(t)~yN(t))を算出することができる。
(ハードウェア構成)
図23は、制御装置34のハードウェア構成の一例を示す図である。制御装置34は、例えば図23に示すようなハードウェア構成のコンピュータにより実現される。制御装置34は、CPU301と、RAM(Random Access Memory)302と、ROM(Read Only Memory)303と、記憶装置304と、通信インタフェース装置305とを備える。そして、これらの各部は、バスにより接続される。
CPU301は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU301は、RAM302の所定領域を作業領域として、ROM303および記憶装置304等に記憶されたプログラムとの協働により各種処理を実行する。
RAM302は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM302は、CPU301の作業領域として機能する。ROM303は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
記憶装置304は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置304は、CPU301からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信インタフェース装置305は、CPU301からの制御に応じて外部の機器とネットワークを介して通信する。
コンピュータで実行されるプログラムは、コンピュータを、通信装置32を制御する制御装置34として機能させる。このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行される。
また、コンピュータで実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD-ROM、フレキシブルディスク、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、制御装置34で実行されるプログラムを、ROM303等に予め組み込んで提供するように構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。