JP6991025B2 - データ生成装置、データ生成方法、及びプログラム - Google Patents

データ生成装置、データ生成方法、及びプログラム Download PDF

Info

Publication number
JP6991025B2
JP6991025B2 JP2017177706A JP2017177706A JP6991025B2 JP 6991025 B2 JP6991025 B2 JP 6991025B2 JP 2017177706 A JP2017177706 A JP 2017177706A JP 2017177706 A JP2017177706 A JP 2017177706A JP 6991025 B2 JP6991025 B2 JP 6991025B2
Authority
JP
Japan
Prior art keywords
random number
data generation
generation unit
elements
data
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.)
Active
Application number
JP2017177706A
Other languages
English (en)
Other versions
JP2019053556A (ja
Inventor
務 松永
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.)
NTT Data Corp
Original Assignee
NTT Data Corp
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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2017177706A priority Critical patent/JP6991025B2/ja
Publication of JP2019053556A publication Critical patent/JP2019053556A/ja
Application granted granted Critical
Publication of JP6991025B2 publication Critical patent/JP6991025B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Other Liquid Machine Or Engine Such As Wave Power Use (AREA)

Description

本発明は、データ生成装置、データ生成方法、及びプログラムに関する。
都市人口、高所得者の収入、地震の大きさと発生頻度、ウェブページのハイパーリンクの数などの様々な自然現象や社会現象が、べき乗則に従うことが知られており、このようなべき乗則を利用する技術が知られている(例えば、特許文献1を参照)。
特開2004-318884号公報
上述のようにべき乗則は、自然現象や社会現象を解析する上で、近年注目されており、べき乗則に従ったデータ(以下、べき分布データという)を容易に生成する技術が求められている。
本発明は、上記問題を解決すべくなされたもので、その目的は、べき分布データを容易に生成することができるデータ生成装置、データ生成方法、及びプログラムを提供することにある。
上記問題を解決するために、本発明の一態様は、乱数を生成する乱数生成部と、0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成部であって、前記乱数生成部が生成した乱数に基づいて、総数M(ただしMは正の整数)を分配して前記L個の要素の各々に割り当てる第1の処理と、前記乱数生成部が生成した乱数に基づいて、前記L個の要素のうちから1つの要素を第1の要素として選択する第2の処理と、前記L個の要素から前記第1の要素に対して予め定められた一部の選択可能な要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を第2の要素として選択する第3の処理と、前記第1の要素の値が1以上である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する第4の処理と、前記第2の処理から前記第4の処理を繰り返し行う第5の処理とを実行するデータ生成部とを備えることを特徴とするデータ生成装置である。
また、本発明の一態様は、上記のデータ生成装置において、前記L個の要素は、N次元(ただしNは2以上の整数)に配列された要素であり、前記データ生成部は、前記第1の処理において、前記乱数生成部が生成した乱数に基づいて、前記総数Mを分配して前記N次元に配列された要素の各々に割り当て、前記第2の処理において、前記乱数生成部が生成した乱数に基づいて、前記N次元に配列された要素のうちから1つの要素を前記第1の要素として選択し、前記第3の処理において、前記N次元の要素番号の正負の方向のうちの各次元で予め定められた1つの方向に、前記各次元の前記要素番号を1以内移動させて選択可能な複数の要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を前記第2の要素として選択することを特徴とする。
また、本発明の一態様は、上記のデータ生成装置において、前記データ生成部は、前記第3の処理において、前記第2の要素として選択された前記1つの要素の要素番号が、前記N次元に配列された要素に設定された要素番号の範囲から外れた場合に、前記乱数生成部が生成した乱数に基づいて、前記N次元に配列された要素のうちから、前記第1の要素とは異なる1つの要素を前記第2の要素として再選択することを特徴とする。
また、本発明の一態様は、上記のデータ生成装置において、前記各次元の前記要素番号を1以内移動させて選択可能な複数の要素は、前記各次元で予め定められた1つの方向だけ、前記要素番号を1つ移動させたN個の要素であり、前記データ生成部は、前記第3の処理において、前記N個の要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を前記第2の要素として選択することを特徴とする。
また、本発明の一態様は、上記のデータ生成装置において、前記Nは、2であり、前記データ生成部は、前記第3の処理において、前記各次元で予め定められた1つの方向だけ前記要素番号を1つ移動させた2個の要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を前記第2の要素として選択することを特徴とする。
また、本発明の一態様は、上記のデータ生成装置において、前記データ生成部は、前記第4の処理において、前記第1の要素の値が0である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する処理を実行しないことを特徴とする。
また、本発明の一態様は、乱数生成部が、乱数を生成する乱数生成ステップと、データ生成部が、0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成ステップとを含み、データ生成ステップには、前記データ生成部が、前記乱数生成ステップにより生成された乱数に基づいて、総数M(ただしMは正の整数)を分配して前記L個の要素の各々に割り当てる第1の処理ステップと、前記データ生成部が、前記乱数生成ステップにより生成された乱数に基づいて、前記L個の要素のうちから1つの要素を第1の要素として選択する第2の処理ステップと、前記データ生成部が、前記L個の要素から前記第1の要素に対して予め定められた一部の選択可能な要素のうちから、前記乱数生成ステップにより生成された乱数に基づいて、1つの要素を第2の要素として選択する第3の処理ステップと、前記データ生成部が、前記第1の要素の値が1以上である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する第4の処理ステップと、前記データ生成部が、前記第2の処理ステップから前記第4の処理ステップを繰り返し行う第5の処理ステップとが含まれることを特徴とするデータ生成方法である。
また、本発明の一態様は、乱数を生成する乱数生成部と、0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成部とを備えるコンピュータに、前記乱数生成部が生成した乱数に基づいて、総数M(ただしMは正の整数)を分配して前記L個の要素の各々に割り当てる第1の処理と、前記乱数生成部が生成した乱数に基づいて、前記L個の要素のうちから1つの要素を第1の要素として選択する第2の処理と、前記L個の要素から前記第1の要素に対して予め定められた一部の選択可能な要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を第2の要素として選択する第3の処理と、前記第1の要素の値が1以上である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する第4の処理と、前記第2の処理から前記第4の処理を繰り返し行う第5の処理とを実行させるためのプログラムである。
本発明によれば、べき分布データを容易に生成することができる。
本実施形態によるデータ生成装置の一例を示す機能ブロック図である。 本実施形態における配列記憶部のデータ例を示す図である。 本実施形態における2次元配列の要素の値における移動先候補例を示す図である。 本実施形態によるデータ生成装置の動作の一例を示すフローチャートである。 本実施形態におけるべき分布データの生成処理の初期値の一例を示す図である。 本実施形態におけるべき分布データの生成過程の一例を示す図である。 本実施形態におけるべき分布データの生成結果の一例を示す図である。 生成したべき分布データの分布の一例(両対数グラフ)を示す第2の図である。 本実施形態の分布データの生成処理における繰り返し回数とべき指数との関係の一例を示す図である。 本実施形態における2次元配列の要素の値における移動先候補の第1の変形例を示す図である。 本実施形態における2次元配列の要素の値における移動先候補の第2の変形例を示す図である。 本実施形態における3次元配列の要素の値における移動先候補例を示す図である。 本実施形態における3次元配列の要素の値における移動先候補の変形例を示す図である。
以下、本発明の一実施形態によるデータ生成装置について、図面を参照して説明する。
図1は、本実施形態によるデータ生成装置1の一例を示す機能ブロック図である。
図1に示すように、データ生成装置1は、乱数生成部11と、記憶部20と、制御部30とを備えている。データ生成装置1は、べき乗則に従ったデータであるべき分布データを生成する。
乱数生成部11は、乱数を生成する乱数生成器である。乱数生成部11は、例えば、ハードウェア又はソフトウェアを利用して、疑似乱数を生成するものであってもよい。
記憶部20は、データ生成装置1が利用する各種情報を記憶する。記憶部20は、配列記憶部21と、選択要素記憶部22とを備えている。
配列記憶部21は、べき分布データを生成するための配列データを記憶するとともに、最終的には、生成されたべき分布データを記憶する。配列記憶部21は、例えば、2次元配列された要素のデータを記憶する。ここで、2次元配列は、N次元配列の一例であり、Nは、例えば、2以上の整数である。また、配列記憶部21が記憶する2次元配列の各要素は、0以上の整数の値を有する。ここで、図2を参照して、配列記憶部21が記憶するデータ例について説明する。
図2は、本実施形態における配列記憶部21のデータ例を示す図である。
図2に示すように、配列記憶部21は、要素番号I=1~30、及び要素番号J=1~30の合計900個(L個の一例、ただしLは正の整数)の要素を有している。すなわち、配列記憶部21は、要素数I=30×要素数J=30の2次元配列データを記憶する。
なお、図2に示す例は、900個の要素に対して、総数9000(総数Mの一例、ただし、Mは正の整数)をランダムに分配して割り当てた場合(900個の要素の初期値)の一例を示している。
例えば、要素番号I=1及び要素番号J=1のデータD(1,1)の値(要素の値)が、“9”であることを示している。また、要素番号I=2及び要素番号J=1のデータD(2,1)の値(要素の値)が、“11”であることを示している。
図1の説明に戻り、選択要素記憶部22は、べき分布データを生成する際に、要素の値を移動するために選択される移動元の要素(第1の要素)を示す情報、及び移動先の要素(第2の要素)を示す情報を記憶する。ここで、移動元の要素(第1の要素)を示す情報、及び移動先の要素(第2の要素)を示す情報は、例えば、2次元配列を指定する、要素番号Iの値、及び要素番号Jの値である。
制御部30は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、データ生成装置1を統括的に制御する。制御部30は、データ生成部31を備えている。
データ生成部31は、上述したL個の要素を利用して、べき分布データを生成する。ここで、L個の要素は、N次元に配列された要素であり、本実施形態では、30×30の2次元配列の要素として説明する。また、べき分布データを生成する処理を理解し易くするために、本実施形態では、2次元配列の各要素を「壺」とし、各要素の値を「壺の中のボールの数」として説明する。
データ生成部31は、以下の処理により、べき分布データを生成する。
(1)データ生成部31は、例えば、30×30の2次元配列の要素に、乱数生成部11が生成した乱数に基づいて、総数9000を分配して、2次元に配列された要素(900個の要素)の各々に割り当てる(第1の処理)。すなわち、データ生成部31は、900個の壺に、総数9000個のボールを、ランダムに分配して割り当てる。データ生成部31は、各要素の値を、上述した図2に示すように、配列記憶部21に記憶させる。
(2)データ生成部31は、乱数生成部11が生成した乱数に基づいて、900個の要素のうちから1つの要素を移動元の要素(第1の要素)として選択する(第2の処理)。すなわち、データ生成部31は、2次元に配列された壺のうちから1つの壺を移動元の壺としてランダムに選択する。データ生成部31は、選択した移動元の要素(移動元の壺)を示す情報(要素番号Iの値、及び要素番号Jの値)を選択要素記憶部22に記憶させる。
(3)データ生成部31は、900個の要素から選択元の要素に対して予め定められた一部の選択可能な要素のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する(第3の処理)。なお、選択元の要素には、予め移動先の候補として、予め決められており、例えば、図3に示すように、2つの移動先候補(SE21、SE22)が定められている。
図3は、本実施形態における2次元配列の要素の値における移動先候補例を示す図である。
図3において、要素SE1は、移動元の要素(第1の要素)を示しており、要素SE21及び要素SE22は、移動先候補を示している。ここで、要素SE21は、要素SE1をD(I=i,J=j)とした場合に、要素番号Iを+1だけ移動した要素(D(i+1,j))であり、要素SE22は、要素番号Jを+1だけ移動した要素(D(i,j+1))である。データ生成部31は、この移動先候補である要素SE21及び要素SE22のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する。
このように、データ生成部31は、第3の処理において、2次元の要素番号の正負の方向のうちの各次元で予め定められた1つの方向に、各次元の要素番号(I、J)を1以内移動させて選択可能な複数の要素のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素として選択する。すなわち、データ生成部31は、各次元で予め定められた1つの方向だけ要素番号を1つ移動させた2個の壺(要素SE21及び要素SE22)のうちから、1つの壺を移動先の壺としてランダムに選択する。
なお、データ生成部31は、選択した移動先の要素(移動先の壺)を示す情報(要素番号Iの値、及び要素番号Jの値)を選択要素記憶部22に記憶させる。
(4)データ生成部31は、移動元の要素の値が1以上である場合に、移動元の要素から移動先の要素に要素の値を1つ移動する(第4の処理)。データ生成部31は、例えば、選択要素記憶部22が記憶する移動元の要素を示す情報に基づいて、配列記憶部21が記憶する移動元の要素の値を確認し、移動元の要素の値から“1”を減算する。そして、データ生成部31は、選択要素記憶部22が記憶する移動先の要素を示す情報に基づいて、配列記憶部21が記憶する移動先の要素を特定し、移動先の要素の値に、“1”を加算する。すなわち、データ生成部31は、移動元の壺から、ボールを1つ取り出し、取り出したボールを移動先の壺に入れて移動する処理を実行する。
なお、データ生成部31は、移動元の要素の値(壺の中のボールの数)が、0(ゼロ)である場合に、上述した要素の値(壺の中のボール)の移動を実行しない。
また、データ生成部31は、移動先の要素(移動先の壺)として選択された1つの要素の要素番号(I又はJ)が、2次元に配列された要素に設定された要素番号の範囲(例えば、1~30)から外れた場合に、移動先の要素(移動先の壺)を再選択する。この場合、データ生成部31は、乱数生成部11が生成した乱数に基づいて、2次元に配列された要素のうちから、移動元の要素(移動元の壺)とは異なる1つの要素を移動先の要素(移動先の壺)としてランダムに再選択する。なお、本実施形態によるべき分布データを生成する系は、外界からの流れのもとで方向付けされたリソース(ここでは、ボール)の配分がある開放系に対応する。
(5)データ生成部31は、上述した(2)~(4)の処理(第2の処理から第4の処理)を繰り返し実行する(第5の処理)。データ生成部31は、例えば、(2)~(4)の処理を所定の回数繰り返して実行する。
このように、データ生成部31が、(1)~(5)の処理を実行することにより、配列記憶部21に記憶されているL個からなる要素の値が、べき分布データとして生成される。
次に、図4を参照して、本実施形態によるデータ生成装置1の動作について説明する。
図4は、本実施形態によるデータ生成装置1の動作の一例を示すフローチャートである。
図4において、まず、制御部30のデータ生成部31は、L個の要素に、総数Mを乱数により割り当てる(ステップS101)。データ生成部31は、例えば、900個の壺(30×30の壺)に、総数9000個のボールを、ランダムに分配して割り当てる。データ生成部31は、各要素の値を、図2に示すように、配列記憶部21に記憶させる。
次に、データ生成部31は、L個の要素のうちから乱数により移動元の要素を選択する(ステップS102)。データ生成部31は、例えば、900個の壺(30×30の壺)のうちからランダムに移動元の要素(移動元の壺)を選択する。データ生成部31は、選択した移動元の要素(移動元の壺)を示す情報(要素番号Iの値、及び要素番号Jの値)を選択要素記憶部22に記憶させる。
次に、データ生成部31は、移動元の要素に対して予め定められた複数の要素のうちから乱数により移動先の要素を選択する(ステップS103)。データ生成部31は、例えば、図3に示すような、移動元の要素SE1(移動元の壺)の1つ右横の要素SE21(D(i+1,j))及び1つ上の要素SE22(D(i,j+1))のうちから、ランダムに1つの要素(壺)を移動先の要素(移動先の壺)として選択する。データ生成部31は、選択した移動先の要素(移動先の壺)を示す情報(要素番号Iの値、及び要素番号Jの値)を選択要素記憶部22に記憶させる。
次に、データ生成部31は、移動元の要素の値(移動元の壺の中のボール数)が、1以上であるか否かを判定する(ステップS104)。データ生成部31は、選択要素記憶部22が記憶する移動先の要素(移動先の壺)を示す情報に基づいて、移動元の要素(移動元の壺)を参照し、移動元の要素の値(移動元の壺の中のボール数)が、1以上であるか否かを判定する。データ生成部31は、移動元の要素の値(移動元の壺の中のボール数)が、1以上である場合(ステップS104:YES)に、処理をステップS105に進める。また、データ生成部31は、移動元の要素の値(移動元の壺の中のボール数)が、1以上でない(0である)場合(ステップS104:NO)に、処理をステップS102に戻す。すなわち、データ生成部31は、移動元の要素の値(移動元の壺の中のボール数)が、0である場合に、移動元の要素(移動元の壺)から移動先の要素(移動先の壺)に要素の値(ボール)を1つ移動する処理を実行しない。
また、ステップS105において、データ生成部31は、移動先の要素(移動先の壺)が範囲外であるか否かを判定する。すなわち、データ生成部31は、移動先の要素(移動先の壺)として選択された1つの要素の要素番号(I又はJ)が、2次元に配列された要素に設定された要素番号の範囲(例えば、1~30)外であるか否かを判定する。データ生成部31は、移動先の要素(移動先の壺)が範囲外である場合(ステップS105:YES)に、処理をステップS108に進める。また、データ生成部31は、移動先の要素(移動先の壺)が範囲外でない(範囲内である)場合(ステップS105:NO)に、処理をステップS106に進める。
ステップS106において、データ生成部31は、移動元の要素(移動元の壺)から移動先の要素(移動先の壺)に要素の値(ボール)を1つ移動させる。すなわち、データ生成部31は、移動元の要素の値から“1”を減算し、移動先の要素の値に、“1”を加算する。例えば、データ生成部31は、移動元の壺から、ボールを1つ取り出し、取り出したボールを移動先の壺に入れて移動する処理を実行する。
次に、データ生成部31は、所定の回数、実行したか否かを判定する(ステップS107)。データ生成部31は、上述した処理を所定の回数、実行した場合(ステップS107:YES)に、処理を終了させる。また、データ生成部31は、上述した処理を所定の回数、実行していない場合(ステップS107:NO)に、処理をステップS102に戻して、ステップS102からステップS107の処理を繰り返す。
また、ステップS108において、データ生成部31は、L個の要素のうちから乱数により移動先の要素を再選択する。すなわち、データ生成部31は、2次元に配列された要素(例えば、900個の壺(30×30の壺))のうちから、移動元の要素(移動元の壺)とは異なる1つの要素を移動先の要素(移動先の壺)としてランダムに再選択する。データ生成部31は、再選択した移動先の要素(移動先の壺)を示す情報(要素番号Iの値、及び要素番号Jの値)を選択要素記憶部22に記憶させる。ステップS108の処理後に、データ生成部31は、処理をステップS106に進める。
次に、図5~図11を参照して、本実施形態によるデータ生成装置1によりべき分布データの生成結果の一例について説明する。
図5は、本実施形態におけるべき分布データの生成処理の初期値の一例を示す図である。この図において、横軸は、2次元配列における要素番号Iの値を示し、横軸は、2次元配列における要素番号Kの値を示している。また、この図において、●(黒丸)の大きさは、要素の値の大きさ(壺の中のボール数)を示している。
また、図5に示す例は、データ生成部31が、30×30の2次元配列の要素(900個の要素)に対して、総数9000をランダムに分配して割り当てた場合(900個の要素の初期値)の一例を示している。
また、図6は、本実施形態におけるべき分布データの生成過程の一例を示す第1の図である。この図において、横軸及び縦軸は、図5と同様であり、また、●(黒丸)の大きさは、図5と同様に、要素の値の大きさ(壺の中のボール数)を示している。
また、図6に示す例は、データ生成部31が、上述した図4に示すステップS102からステップS107の処理を、200万回繰り返した途中経過を示している。この図に示すように、データ生成部31が、移動元の要素(移動元の壺)から移動先の要素(移動先の壺)に要素の値(ボール)を1つ移動させる処理を繰り返すことにより、要素の値(ボールの数)が、紙面右上(I=30、J=30)に向って、偏って大きくなっている。
また、図7は、本実施形態におけるべき分布データの生成結果の一例を示す図である。この図において、横軸及び縦軸は、図5及び図6と同様であり、また、●(黒丸)の大きさは、図5及び図6と同様に、要素の値の大きさ(壺の中のボール数)を示している。
また、図8に示す例は、データ生成部31が、上述した図4に示すステップS102からステップS107の処理を、800万回繰り返した生成結果を示している。この図に示すように、データ生成部31が、移動元の要素(移動元の壺)から移動先の要素(移動先の壺)に要素の値(ボール)を1つ移動させる処理をさらに繰り返すことにより、要素の値(ボールの数)のよるべき分布データが生成されたものを示している。
また、図8は、生成したデータの分布の一例を示す図である。
また、図8に示すグラフは、壷(要素)に対する壷の中のボール数(要素の値)を降順に、ボール数の分布を両対数グラフで示している(波形W1参照)。ここで、横軸が壺(要素、ボール数降順)を示し、壺の中のボール数(要素の値)を示し、横軸及び縦軸が対数スケールになっている。また、このグラフは、30×30の2次元配列の壺(900個の壺)に対して、総数9000のボールをランダムに分配して、上述した生成処理を3億回繰り返した場合のべき分布データの分布を示している。
図8の波形W1に示すように、生成したべき分布データは、両対数グラフにおいて、ほぼ直線になっており、データ生成装置1が、べき乗則に従ったデータ(べき分布データ)を適切に生成したことを示している。
また、図9は、本実施形態の分布データの生成処理における繰り返し回数とべき指数との関係の一例を示す図である。
図9に示すグラフにおいて、横軸は、繰り返し回数を示し、縦軸は、べき指数を示している。また、波形W2は、繰り返し回数とべき指数との関係を示している。波形W2に示すように、上述した本実施形態による生成処理の一例では、繰り返し回数が約5000万回以上で、べき指数が一定になることを示している。
なお、上述した本実施形態では、データ生成部31が、図3に示すように、2つの移動先候補(SE21、SE22)のうちから1つを移動先の要素として選択する例を説明したが、図10に示すように、3つの移動先候補(SE21、SE22、SE23)のうちから選択するようにしてもよい。
図10は、本実施形態における2次元配列の要素の値における移動先候補の第1の変形例を示す図である。この図において、要素SE1は、移動元の要素(第1の要素)を示しており、要素SE21、要素SE22、及び要素23は、移動先候補を示している。ここで、要素SE21は、要素SE1をD(I=i,J=j)とした場合に、要素番号Iを+1だけ移動した要素(D(i+1,j))であり、要素SE22は、要素番号Jを+1だけ移動した要素(D(i,j+1))である。また、要素SE23は、要素番号I及び要素番号Jを+1だけ移動した要素(D(i+1,j+1))である。データ生成部31は、この3つの移動先候補のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択するようにしてもよい。
また、移動先候補は、図11に示すように、右横の要素SE21(D(i+1,j))の代わりに、左横の要素SE24(D(i-1,j))を用いてもよい。
図11は、本実施形態における2次元配列の要素の値における移動先候補の第2の変形例を示す図である。この図において、要素SE1及び要素SE22は、図3と同様である。要素SE22及び要素SE24は、移動先候補を示しており、要素SE24は、要素番号Iを-1だけ移動した要素(D(i-1,j))である。データ生成部31は、このような2つの移動先候補(要素SE22及び要素SE24)のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択するようにしてもよい。
また、上述した本実施形態では、2次元配列の要素を用いてべき分布データを生成する例を説明したが、3次元以上の配列の要素を用いてもよい。ここで、図12及び図13を参照して、3次元配列の要素の値における移動先候補の変形例について説明する。
図12は、本実施形態における3次元配列の要素の値における移動先候補例を示す図である。この図において、要素SE1aは、移動元の要素(第1の要素)を示しており、要素SE21a、要素SE22a、及び要素23aは、移動先候補を示している。ここで、要素SE21aは、要素SE1aをD(I=i,J=j,K=k)とした場合に、要素番号Iを+1だけ移動した要素(D(i+1,j,k))であり、要素SE22aは、要素番号Jを+1だけ移動した要素(D(i,j+1,k))である。また、要素SE23aは、要素番号Kを+1だけ移動した要素(D(i,j,k+1))である。データ生成部31は、3次元配列の要素において、この3つの移動先候補のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択するようにしてもよい。
また、図13は、本実施形態における3次元配列の要素の値における移動先候補の変形例を示す図である。この図において、要素SE1aは、移動元の要素(第1の要素)を示しており、要素SE21a~要素27aは、移動先候補を示しており、要素SE21a~要素23aは、上述した図12と同様である。また、要素SE24aは、要素番号I及びJを+1だけ移動した要素(D(i+1,j+1,k))であり、要素SE25aは、要素番号I及びKを+1だけ移動した要素(D(i+1,j,k+1))である。また、要素SE26aは、要素番号J及びKを+1だけ移動した要素(D(i,j+1,k+1))であり、要素SE27aは、要素番号I、J、及びKを+1だけ移動した要素(D(i+1,j+1,k+1))である。データ生成部31は、3次元配列の要素において、この7つの移動先候補のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択するようにしてもよい。
以上説明したように、本実施形態によるデータ生成装置1は、乱数を生成する乱数生成部11と、0以上の整数の値を有するL個(ただしLは正の整数)の要素(例えば、エレメント、ノードなど)を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成部31であって、第1の処理と、第2の処理と、第3の処理と、第4の処理と、第5の処理とを実行するデータ生成部31とを備える。データ生成部31は、第1の処理において、乱数生成部11が生成した乱数に基づいて、総数M(ただしMは正の整数)を分配してL個の要素の各々に割り当てる。データ生成部31は、第2の処理において、乱数生成部11が生成した乱数に基づいて、L個の要素のうちから1つの要素を移動元の要素(第1の要素)として選択する。データ生成部31は、第3の処理において、L個の要素から移動元の要素に対して予め定められた一部の選択可能な要素(例えば、図3の要素SE21及び要素SE22)のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する。データ生成部31は、第4の処理において、第1の要素の値が1以上である場合に、選択した移動元の要素から移動先の要素に要素の値を1つ移動する。データ生成部31は、第5の処理において、第2の処理から第4の処理を繰り返し行う。
これにより、本実施形態によるデータ生成装置1は、図8~図11に示すように、べき分布データを容易に生成することができる。
なお、本実施形態によるデータ生成装置1では、例えば、都市人口、高所得者の収入、地震の大きさと発生頻度、ウェブページのハイパーリンクの数などの様々な自然現象や社会現象を解析する際のシミュレーションの初期データとして、生成したべき分布データを利用することができる。よって、本実施形態によるデータ生成装置1は、べき乗則となる現象を解析する際のシミュレーションの初期データを容易に生成することができる。したがって、本実施形態によるデータ生成装置1を用いることにより、例えば、コンピュータ間のネットワーク接続や都市間の人の移動などのシミュレーションが可能となり、例えば、ウィルス蔓延の影響範囲と、その抑制策の効果予測などを行うことができる。
また、本実施形態では、L個の要素は、N次元(ただしNは2以上の整数)に配列された要素である。データ生成部31は、第1の処理において、乱数生成部11が生成した乱数に基づいて、総数Mを分配してN次元に配列された要素の各々に割り当てる。データ生成部31は、第2の処理において、乱数生成部11が生成した乱数に基づいて、N次元に配列された要素のうちから1つの要素を移動元の要素(第1の要素)として選択する。データ生成部31は、第3の処理において、N次元の要素番号の正負の方向のうちの各次元で予め定められた1つの方向に、各次元の要素番号を1以内移動させて選択可能な複数の要素のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する。
これにより、本実施形態によるデータ生成装置1は、N次元に配列された要素を利用して、べき分布データを容易に生成することができる。
また、本実施形態では、データ生成部31は、第3の処理において、移動先の要素(第2の要素)として選択された1つの要素の要素番号(例えば、I又はJ)が、N次元に配列された要素に設定された要素番号の範囲(例えば、1~30の範囲)から外れた場合に、乱数生成部11が生成した乱数に基づいて、N次元に配列された要素のうちから、移動元の要素(第1の要素)とは異なる1つの要素を移動先の要素(第2の要素)として再選択する。
これにより、本実施形態によるデータ生成装置1は、総数Mを増減することなく、べき分布データを適切に生成することができる。
また、本実施形態では、各次元の要素番号を1以内移動させて選択可能な複数の要素は、各次元で予め定められた1つの方向だけ、要素番号を1つ移動させたN個の要素(例えば、図3の要素SE21及び要素SE22の2個の要素(移動先候補の要素))である。データ生成部31は、第3の処理において、N個の要素のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する。
これにより、移動先候補の数を次元数Nに制限することができるため、本実施形態によるデータ生成装置1は、第3の処理を簡略化することができる。よって、本実施形態によるデータ生成装置1は、N次元に配列された要素を利用して、べき分布データをさらに容易に生成することができる。
また、本実施形態では、上述したNは、2であり、データ生成部31は、第3の処理において、各次元で予め定められた1つの方向だけ要素番号を1つ移動させた2個の要素のうちから、乱数生成部11が生成した乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する。
これにより、本実施形態によるデータ生成装置1は、2次元に配列された要素を利用して、べき分布データをさらに容易に生成することができる。
また、本実施形態では、データ生成部31は、第4の処理において、移動元の要素(第1の要素)の値が0である場合に、移動元の要素(第1の要素)から移動先の要素(第2の要素)に要素の値を1つ移動する処理を実行しない。
これにより、本実施形態によるデータ生成装置1は、べき分布データを生成する処理をさらに簡略化することができる。
また、本実施形態によるデータ生成方法は、乱数生成部11が、乱数を生成する乱数生成ステップと、データ生成部31が、0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき分布データを生成するデータ生成ステップとを含む。データ生成ステップには、第1の処理ステップと、第2の処理ステップと、第3の処理ステップと、第4の処理ステップと、第5の処理ステップとが含まれる。第1の処理ステップにおいて、データ生成部31が、乱数生成ステップにより生成された乱数に基づいて、総数M(ただしMは正の整数)を分配してL個の要素の各々に割り当てる。第2の処理ステップにおいて、データ生成部31が、乱数生成ステップにより生成された乱数に基づいて、L個の要素のうちから1つの要素を移動元の要素(第1の要素)として選択する。第3の処理ステップにおいて、データ生成部31が、L個の要素から移動元の要素(第1の要素)に対して予め定められた一部の選択可能な要素のうちから、乱数生成ステップにより生成された乱数に基づいて、1つの要素を移動先の要素(第2の要素)として選択する。第4の処理ステップにおいて、データ生成部31が、移動元の要素(第1の要素)の値が1以上である場合に、移動元の要素(第1の要素)から移動先の要素(第2の要素)に要素の値を1つ移動する。第5の処理ステップにおいて、データ生成部31が、第2の処理ステップから第4の処理ステップを繰り返し行う。
これにより、本実施形態によるデータ生成方法は、上述したデータ生成装置1と同様の効果を奏し、べき分布データを容易に生成することができる。
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、N次元配列の要素を用いてべき分布データを生成する例を説明したが、これに限定されるものではなく、単にL個(ただしLは正の整数)の要素を用いてもよい。この場合、移動先候補の要素は、各要素に対して、予め定められた一部の要素であってもよい。
また、上記の実施形態において、N次元配列の一例として、2次元配列を用いる例を説明したが、これに限定されるものではなく、3次元以上の配列を用いるようにしてもよい。
また、上記の実施形態において、N次元の要素番号の正負の方向のうちの各次元で予め定められた1つの方向(移動先候補の方向)を、全て正方向(図3、図10、図12、及び図13)に定める例を説明したが、これに限定されるものではない。例えば、この移動先候補の方向は、図11に示す第2の変形例のように、正方向と負方向とを組み合わせてもよいし、全て負方向であってもよい。
また、上記の実施形態において、データ生成装置1は、生成したべき分布データを、自然現象や社会現象を解析する際のシミュレーションの初期データとして利用する際に、N次元配列上に、乱数を利用してランダムに再配置するようにしてもよい。これにより、データ生成装置1は、図8に示すようなN次元配列上の偏りを解消したべき分布データを生成することが可能になる。
なお、上述したデータ生成装置1が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したデータ生成装置1が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したデータ生成装置1が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にデータ生成装置1が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
1 データ生成装置
11 乱数生成部
20 記憶部
21 配列記憶部
22 選択要素記憶部
30 制御部
31 データ生成部

Claims (8)

  1. 乱数を生成する乱数生成部と、
    0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成部であって、
    前記乱数生成部が生成した乱数に基づいて、総数M(ただしMは正の整数)を分配して前記L個の要素の各々に割り当てる第1の処理と、
    前記乱数生成部が生成した乱数に基づいて、前記L個の要素のうちから1つの要素を第1の要素として選択する第2の処理と、
    前記L個の要素から前記第1の要素に対して予め定められた一部の選択可能な要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を第2の要素として選択する第3の処理と、
    前記第1の要素の値が1以上である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する第4の処理と、
    前記第2の処理から前記第4の処理を繰り返し行う第5の処理と
    を実行するデータ生成部と
    を備えることを特徴とするデータ生成装置。
  2. 前記L個の要素は、N次元(ただしNは2以上の整数)に配列された要素であり、
    前記データ生成部は、
    前記第1の処理において、前記乱数生成部が生成した乱数に基づいて、前記総数Mを分配して前記N次元に配列された要素の各々に割り当て、
    前記第2の処理において、前記乱数生成部が生成した乱数に基づいて、前記N次元に配列された要素のうちから1つの要素を前記第1の要素として選択し、
    前記第3の処理において、前記N次元の要素番号の正負の方向のうちの各次元で予め定められた1つの方向に、前記各次元の前記要素番号を1以内移動させて選択可能な複数の要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を前記第2の要素として選択する
    ことを特徴とする請求項1に記載のデータ生成装置。
  3. 前記データ生成部は、前記第3の処理において、前記第2の要素として選択された前記1つの要素の要素番号が、前記N次元に配列された要素に設定された要素番号の範囲から外れた場合に、前記乱数生成部が生成した乱数に基づいて、前記N次元に配列された要素のうちから、前記第1の要素とは異なる1つの要素を前記第2の要素として再選択する
    ことを特徴とする請求項2に記載のデータ生成装置。
  4. 前記各次元の前記要素番号を1以内移動させて選択可能な複数の要素は、前記各次元で予め定められた1つの方向だけ、前記要素番号を1つ移動させたN個の要素であり、
    前記データ生成部は、前記第3の処理において、前記N個の要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を前記第2の要素として選択する
    ことを特徴とする請求項2又は請求項3に記載のデータ生成装置。
  5. 前記Nは、2であり、
    前記データ生成部は、前記第3の処理において、前記各次元で予め定められた1つの方向だけ前記要素番号を1つ移動させた2個の要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を前記第2の要素として選択する
    ことを特徴とする請求項4に記載のデータ生成装置。
  6. 前記データ生成部は、前記第4の処理において、前記第1の要素の値が0である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する処理を実行しない
    ことを特徴とする請求項1から請求項5のいずれか一項に記載のデータ生成装置。
  7. 乱数生成部が、乱数を生成する乱数生成ステップと、
    データ生成部が、0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成ステップと
    を含み、
    データ生成ステップには、
    前記データ生成部が、前記乱数生成ステップにより生成された乱数に基づいて、総数M(ただしMは正の整数)を分配して前記L個の要素の各々に割り当てる第1の処理ステップと、
    前記データ生成部が、前記乱数生成ステップにより生成された乱数に基づいて、前記L個の要素のうちから1つの要素を第1の要素として選択する第2の処理ステップと、
    前記データ生成部が、前記L個の要素から前記第1の要素に対して予め定められた一部の選択可能な要素のうちから、前記乱数生成ステップにより生成された乱数に基づいて、1つの要素を第2の要素として選択する第3の処理ステップと、
    前記データ生成部が、前記第1の要素の値が1以上である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する第4の処理ステップと、
    前記データ生成部が、前記第2の処理ステップから前記第4の処理ステップを繰り返し行う第5の処理ステップと
    が含まれることを特徴とするデータ生成方法。
  8. 乱数を生成する乱数生成部と、0以上の整数の値を有するL個(ただしLは正の整数)の要素を利用して、べき乗則に従ったデータであるべき分布データを生成するデータ生成部とを備えるコンピュータに、
    前記乱数生成部が生成した乱数に基づいて、総数M(ただしMは正の整数)を分配して前記L個の要素の各々に割り当てる第1の処理と、
    前記乱数生成部が生成した乱数に基づいて、前記L個の要素のうちから1つの要素を第1の要素として選択する第2の処理と、
    前記L個の要素から前記第1の要素に対して予め定められた一部の選択可能な要素のうちから、前記乱数生成部が生成した乱数に基づいて、1つの要素を第2の要素として選択する第3の処理と、
    前記第1の要素の値が1以上である場合に、前記第1の要素から前記第2の要素に前記要素の値を1動する第4の処理と、
    前記第2の処理から前記第4の処理を繰り返し行う第5の処理と
    を実行させるためのプログラム。
JP2017177706A 2017-09-15 2017-09-15 データ生成装置、データ生成方法、及びプログラム Active JP6991025B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017177706A JP6991025B2 (ja) 2017-09-15 2017-09-15 データ生成装置、データ生成方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017177706A JP6991025B2 (ja) 2017-09-15 2017-09-15 データ生成装置、データ生成方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019053556A JP2019053556A (ja) 2019-04-04
JP6991025B2 true JP6991025B2 (ja) 2022-01-12

Family

ID=66013817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017177706A Active JP6991025B2 (ja) 2017-09-15 2017-09-15 データ生成装置、データ生成方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6991025B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005275634A (ja) 2004-03-24 2005-10-06 Hi Enterprise:Kk 冪則型情報処理装置、冪則型情報処理方法、プログラム、及び記録媒体
JP2007287079A (ja) 2006-04-20 2007-11-01 Fujitsu Fip Corp 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005275634A (ja) 2004-03-24 2005-10-06 Hi Enterprise:Kk 冪則型情報処理装置、冪則型情報処理方法、プログラム、及び記録媒体
JP2007287079A (ja) 2006-04-20 2007-11-01 Fujitsu Fip Corp 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置

Also Published As

Publication number Publication date
JP2019053556A (ja) 2019-04-04

Similar Documents

Publication Publication Date Title
Gai et al. Cost-aware multimedia data allocation for heterogeneous memory using genetic algorithm in cloud computing
US20190266217A1 (en) Apparatus and method for matrix computation
JP6266656B2 (ja) 画像をサイズ変更するためのシステム及び方法
Walshaw et al. Multilevel mesh partitioning for heterogeneous communication networks
Sheikhalishahi et al. A multi-dimensional job scheduling
KR102063562B1 (ko) 포인터 네트워크의 학습을 통해 고품질의 메쉬 구조의 생성을 지원하기 위한 그래픽 처리 장치 및 그 동작 방법
Kirmani et al. Scalable parallel graph partitioning
JP2019053541A (ja) 情報処理装置、情報処理方法、及びプログラム
Venturelli et al. A Kriging-assisted multiobjective evolutionary algorithm
KR102297195B1 (ko) 개체군 분산 모사 모델 기반 개체군 분산 예측 장치 및 이를 이용한 개체군 분산 예측 방법
JP2018073427A5 (ja)
JP6991025B2 (ja) データ生成装置、データ生成方法、及びプログラム
JP2012064136A (ja) テストデータ生成方法、テストデータ生成装置及びテストデータ生成プログラム
JP6274962B2 (ja) 情報処理装置、制御方法、プログラム及び記録媒体
US8842116B2 (en) Method and apparatus for rendering and modifying terrain in a virtual world
JP5853794B2 (ja) 転置装置、転置方法、および転置プログラム
JP6393153B2 (ja) プログラム、記録媒体、輝度演算装置及び輝度演算方法
JP5949606B2 (ja) テスト設計支援装置及びプログラム
Nairat et al. Character evolution approach to generative storytelling
KR101001844B1 (ko) 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법
EP4127978A1 (en) Force-directed graph layout
Bhardwaj et al. Performance improvement in genetic programming using modified crossover and node mutation
GB2593700A (en) Force-directed graph layout
KR101738415B1 (ko) 메시지 분산 저장이 가능한 데이터 저장 장치 및 방법
JP7073775B2 (ja) 情報処理装置、行動支援方法、及び行動支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211207

R150 Certificate of patent or registration of utility model

Ref document number: 6991025

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350