JP2022108187A - 約定プログラム、約定方法および情報処理装置 - Google Patents

約定プログラム、約定方法および情報処理装置 Download PDF

Info

Publication number
JP2022108187A
JP2022108187A JP2021003078A JP2021003078A JP2022108187A JP 2022108187 A JP2022108187 A JP 2022108187A JP 2021003078 A JP2021003078 A JP 2021003078A JP 2021003078 A JP2021003078 A JP 2021003078A JP 2022108187 A JP2022108187 A JP 2022108187A
Authority
JP
Japan
Prior art keywords
polynomial
order
orders
information
array
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
JP2021003078A
Other languages
English (en)
Inventor
俊宏 清水
Toshihiro Shimizu
章仁 中村
Akihito Nakamura
資広 小崎
Sukehiro Ozaki
章紘 桑原
Akihiro Kuwahara
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021003078A priority Critical patent/JP2022108187A/ja
Priority to US17/529,518 priority patent/US20220222747A1/en
Publication of JP2022108187A publication Critical patent/JP2022108187A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Finance (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】約定対象となる注文を特定する際の計算をより高速に行う。【解決手段】実施形態の約定プログラムは、受け付ける処理と、多項式とする処理と、多項式を求める処理と、をコンピュータに実行させる。受け付ける処理は、約定数の条件が指定された注文を受け付ける。多項式とする処理は、受け付けた注文それぞれについて、指定された条件における約定数を次数とする多項式とする。多項式を求める処理は、受け付けた注文を組み合わせた注文状況を多項式の積による有限体上の多項式で表す際に、多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して有限体上の多項式を求める。【選択図】図14

Description

本発明は、約定プログラム等に関する。
証券市場において、株式取引などの売買が成立することを「約定」と呼ぶ。たとえば、売り注文を行ったユーザと、買い注文を行ったユーザとの条件が合致して、取引が成立した状態を約定という。ユーザは、注文(売りまたは買いの注文)を行う場合に、全量約定、または、一定数の注文数を条件にして、注文を行う場合がある。
注文に設定される条件であって、最低限の約定数を「最低約定数」と表記する。たとえば、最低約定数「M」の条件がついた注文数「N」の売り注文があり、注文数「N」以上の注文数となる買い注文があった場合に、売買が成立する。このような最低約定数が設定された売り注文と買い注文との動的計画法を用いたマッチングにより約定を求める従来技術がある。
特開平4-188273号公報 特開2004-252967号公報 特開2014-112347号公報 特開2013-140234号公報
しかしながら、上記の従来技術では、約定対象となる注文を特定する際の、注文を組み合わせた注文状況を求めるときに、掛け合わせる項数が増えることで、多大な計算時間を要するという問題がある。
1つの側面では、約定対象となる注文を特定する際の計算をより高速に行うことができる約定プログラム、約定方法および情報処理装置を提供することを目的とする。
1つの案では、約定プログラムは、受け付ける処理と、多項式とする処理と、多項式を求める処理と、をコンピュータに実行させる。受け付ける処理は、約定数の条件が指定された注文を受け付ける。多項式とする処理は、受け付けた注文それぞれについて、指定された条件における約定数を次数とする多項式とする。多項式を求める処理は、受け付けた注文を組み合わせた注文状況を多項式の積による有限体上の多項式で表す際に、多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して有限体上の多項式を求める。
約定対象となる注文を特定する際の計算をより高速に行うことができる。
図1は、動的計画法における売り注文を受け付けた場合の処理を説明する説明図である。 図2は、動的計画法における買い注文を受け付けた場合の処理を説明する説明図である。 図3は、動的計画法における約定数を算出する処理を説明する説明図である。 図4は、動的計画法における売り注文を受け付けた場合の処理を説明する説明図である。 図5は、動的計画法における約定対象の注文を特定する処理を説明する説明図である。 図6は、注文状況を多項式で表す場合を説明する説明図である。 図7は、注文状況を多項式で表す場合を説明する説明図である。 図8は、注文状況を多項式で表す場合の割り算を説明する説明図である。 図9は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。 図10は、売り注文テーブルのデータ構造の一例を示す説明図である。 図11は、買い注文テーブルのデータ構造の一例を示す説明図である。 図12は、約定結果情報のデータ構造の一例を示す説明図である。 図13は、注文受付・取消処理の一例を示すフローチャートである。 図14は、多項式生成処理の一例を示すフローチャートである。 図15は、約定処理の一例を示すフローチャートである。 図16は、実施形態の情報処理装置と同様の機能を実現するコンピュータのハードウエア構成の一例を示すブロック図である。
以下、図面を参照して、実施形態にかかる約定プログラム、約定方法および情報処理装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する約定プログラム、約定方法および情報処理装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
まず、動的計画法により最低約定数が設定された売り注文と買い注文とのマッチングにより約定を求める処理を説明する。動的計画法を用いて約定対象の注文を特定する処理では、売り注文または買い注文をそれぞれ管理するために、Bool(T、F)配列aを用意し、約定数が最大となるような約定対象となる注文を特定する。
Bool(T、F)配列aを「配列a」と表記する。配列aには、0以上のインデックスiが設定され、配列aのインデックスiに対応する要素には「T」または「F」が設定される。配列aのインデックスiに対応する要素が「T」である場合には、注文数iの注文が存在することを意味する。配列aのインデックスiに対応する要素が「F」である場合には、注文数iの注文が存在しないことを意味する。「T」は、登録記号の一例である。
配列aのインデックスiの要素が「T」であることを、a[i]=Tによって示す。配列aのインデックスiの要素が「F」であることを、a[i]=Fによって示す。
ここでは、売り注文に関する情報を格納する配列aを「第1配列a」と表記し、買い注文に関する情報を格納する配列aを「第2配列a」と表記する。
図1は、動的計画法における売り注文を受け付けた場合の処理を説明する説明図であり、売り注文を受け付けた場合の第1配列aの状態を例示している。情報処理装置は、a[i]=Tで、注文数xの売り注文を受け付けた場合、a[i+x]=Tとする。
第1配列aの初期状態を、ステップS10に示すものとする。第1配列aの初期状態では、a[0]=Tとなり、他の要素は全て「F」となる。
注文数3の売り注文を受け付けた場合、第1配列aの状態は、ステップS11に示すものとなる。情報処理装置は、第1配列aが、a[0]=Tとなっているため、a[0+3]=Tに設定する。
注文数5の注文を受け付けた場合、第1配列aの状態は、ステップS12に示すものとなる。情報処理装置は、第1配列aが、a[0]=Tとなっているため、a[0+5]=Tに設定する。情報処理装置は、第1配列aが、a[3]=Tとなっているため、a[3+5]=Tに設定する。
第1配列aの要素がTとなっているインデックスは、マッチング可能な約定数量を示す。たとえば、図1のステップS12の第1配列aの状態では、インデックスi=8の要素が「T」となっており、かかる「8」は、注文数「3」と、注文数「5」とが全量約定する数量である。
図2は、動的計画法における買い注文を受け付けた場合の処理を説明する説明図であり、買い注文を受け付けた場合の第2配列aの状態を例示している。情報処理装置は、図1で説明した売り注文を受けた場合の第1配列aに対する処理と同様にして、a[i]=Tで、注文数xの買い注文を受け付けた場合、a[i+x]=Tとする。また、第2配列aの初期状態では、a[0]=Tとなり、他の要素は全て「F」となる。
たとえば、注文数2の買い注文、注文数3の買い注文、注文数6の買い注文を順に受け付けた場合には、第2配列aの状態は、図2に示すものとなる。すなわち、a[0]=T、a[2]=T、a[3]=T、a[5]=T、a[6]=T、a[8]=T、a[9]=T、a[11]=Tとなり、その他の要素は「F」となる。
情報処理装置は、図1で説明した売り注文の第1配列aと、図2で説明した第2配列aとを比較して、マッチング可能な最大の約定数量を特定する。
図3は、動的計画法における約定数を算出する処理を説明する説明図である。情報処理装置は、第1配列aと、第2配列aとを比較して、第1配列aの要素と、第2配列aの要素とが両方とも「T」となるインデックスのうち、最も大きいインデックスを、最大の約定数として特定する。図3に示す例では、第1配列aの要素と、第2配列aの要素とが両方とも「T」となるインデックスのうち、最も大きいインデックスは「8」となるため、情報処理装置は、マッチング可能な最大の約定数量を「8」として算出する。
続いて、情報処理装置が、約定対象となる注文を特定する処理について説明する。情報処理装置は、注文を受け付けて配列aの要素に「T」を初めて設定する場合に、注文受付順(注文順)および数量(注文数)を示す補助情報を、インデックスごとに登録することで、約定対象となる注文を特定することが可能となる。
図4は、動的計画法における売り注文を受け付けた場合の処理を説明する説明図である。図4では第1配列aの初期状態の図示を省略するが、第1配列aの初期状態は、図1で説明したステップS10の第1配列aの状態に対応する。情報処理装置は、初期状態で「T」となっている要素に対しては、補助情報を付与しない。なお、売り注文の注文受付順が、「第1注文順」に対応し、売り注文の注文数が、「第1注文数」に対応する。
初め(注文受付順=1)に、注文数2の売り注文を受け付けた場合、第1配列aの状態は、ステップS21に示すものとなる。情報処理装置は、初期状態の第1配列aが、a[0]=Tとなっているため、a[0+2]=Tに設定する。また、インデックスi=2に、補助情報sub1-2を登録する。補助情報sub1-2には、順番「1」、数量「2」が設定される。
続いて(注文受付順=2)、注文数3の売り注文を受け付けた場合、第1配列aの状態は、ステップS22に示すものとなる。情報処理装置は、第1配列aが、a[0]=Tとなっているため、a[0+3]=Tに設定し、インデックスi=3に補助情報sub1-3を登録する。補助情報sub1-3には、順番「2」、数量「3」が設定される。
情報処理装置は、第1配列aが、a[2]=Tとなっているため、a[2+3]=Tに設定し、インデックスi=5に補助情報sub1-5を登録する。補助情報sub1-5には、順番「2」、数量「3」が設定される。
図示を省略するが、情報処理装置は、買い注文を受け付けた場合も、第2配列aの要素に「T」を設定すると共に、図4と同様にして、インデックスに補助情報を登録する。なお、買い注文の注文受付順が、「第2注文順」に対応し、買い注文の注文数が、「第2注文数」に対応する。
図5は、動的計画法における約定対象の注文を特定する処理を説明する説明図である。図5では、情報処理装置は、売り注文として、注文Or1-1、Or1-2を順に受け付ける。注文Or1-1は、注文数「3」の注文である。注文Or1-2は、注文数「5」の注文である。情報処理装置は、買い注文として、注文Or2-1、Or2-2、Or2-3を順に受け付ける。注文Or2-1は、注文数「2」の注文である。注文Or2-2は、注文数「3」の注文である。注文Or2-3は、注文数「6」の注文である。
情報処理装置は、注文Or1-1、Or1-2を順に受け付けると、売り注文を受け付けた場合の第1配列aに対する処理を実行することで、第1配列aを、図5に示すような状態に設定する。第1配列aのインデックスi=0,3,5,8の要素が「T」となり、他の要素は「F」となる。インデックスi=0の「T」は、初期状態で設定される。
情報処理装置は、第1配列aのインデックスi=3に補助情報sub1-3を設定する。補助情報sub1-3には、順番「1」、数量「3」が設定される。情報処理装置は、第1配列aのインデックスi=5に補助情報sub1-5を設定する。補助情報sub1-5には、順番「2」、数量「5」が設定される。情報処理装置は、第1配列aのインデックスi=8に補助情報sub1-8を設定する。補助情報sub1-8には、順番「2」、数量「5」が設定される。
情報処理装置は、注文Or2-1、Or2-2、Or2-3を順に受け付けると、買い注文を受け付けた場合の第2配列aに対する処理を実行することで、第2配列aを、図5に示すような状態に設定する。第2配列aのインデックスi=0,2,3,5,6,8,9,11の要素が「T」となり、他の要素は「F」となる。インデックスi=0の「T」は、初期状態で設定される。
情報処理装置は、第2配列aのインデックスi=2に補助情報sub2-2を設定する。補助情報sub2-2には、順番「1」、数量「2」が設定される。情報処理装置は、第2配列aのインデックスi=3に補助情報sub2-3を設定する。補助情報sub2-3には、順番「2」、数量「3」が設定される。情報処理装置は、第2配列aのインデックスi=5に補助情報sub2-5を設定する。補助情報sub2-5には、順番「2」、数量「3」が設定される。
情報処理装置は、第2配列aのインデックスi=6に補助情報sub2-6を設定する。補助情報sub2-6には、順番「3」、数量「6」が設定される。情報処理装置は、第2配列aのインデックスi=8に補助情報sub2-8を設定する。補助情報sub2-8には、順番「3」、数量「6」が設定される。情報処理装置は、第2配列aのインデックスi=9に補助情報sub2-9を設定する。補助情報sub2-9には、順番「3」、数量「6」が設定される。情報処理装置は、第2配列aのインデックスi=11に補助情報sub2-11を設定する。補助情報sub2-11には、順番「3」、数量「6」が設定される。
情報処理装置は、第1配列aと、第2配列aとを比較して、第1配列aの要素と、第2配列aの要素とが両方とも「T」となるインデックスのうち、最も大きいインデックスを、約定数として算出する。図5に示す例では、第1配列aの要素と、第2配列aの要素とが両方とも「T」となるインデックスのうち、最も大きいインデックスは、インデックスi=8である。このため、情報処理装置は、約定数を「8」とする。
情報処理装置は、約定数を算出した後に、配列aに設定された補助情報を基にして、約定対象となる注文を特定する。情報処理装置は、約定数i0で約定する場合、インデックスの初期値i=i0として、以下の処理をi=0となるまで繰り返し実行する。
情報処理装置が繰り返す処理は次に示す処理となる。情報処理装置は、a[i]=Tとなる注文を約定対象とする。次に、情報処理装置は、a[i]に設定された補助情報に含まれる数量αを特定し、i=i-αによって、インデックスiを更新する。
図5の「第1配列a」を基にして、情報処理装置が、約定する売り注文を特定する処理について説明する。
情報処理装置は、約定数「8」に対応するインデックスi=8に設定された補助情報sub1-8に対応する注文を約定対象とする。補助情報1-8は、順番「2」、数量「5」の注文Or1-2に対応する。情報処理装置は、補助情報sub1-8に含まれる数量α=5を取得し、インデックスi=8-5=3に更新する。
情報処理装置は、インデックスi=3に設定された補助情報sub1-3に対応する注文を約定対象とする。補助情報1-3は、順番「1」、数量「3」の注文Or1-1に対応する。情報処理装置は、補助情報sub1-3に含まれる数量α=3を取得し、インデックスi=3-3=0に更新する。情報処理装置は、インデックスi=0となるため、処理を終了する。
図5の「第2配列a」を基にして、情報処理装置が、約定する買い注文を特定する処理について説明する。
情報処理装置は、約定数「8」に対応するインデックスi=8に設定された補助情報sub2-8に対応する注文を約定対象とする。補助情報2-8は、順番「3」、数量「6」の注文Or2-3に対応する。情報処理装置は、補助情報sub2-8に含まれる数量α=6を取得し、インデックスi=8-6=2に更新する。
情報処理装置は、インデックスi=2に設定された補助情報sub2-2に対応する注文を約定対象とする。補助情報2-2は、順番「1」、数量「2」の注文Or2-1に対応する。情報処理装置は、補助情報sub2-2に含まれる数量α=2を取得し、インデックスi=2-2=0に更新する。情報処理装置は、インデックスi=0となるため、処理を終了する。
上記処理によって、約定対象となる売りの注文Or1-1、Or1-2と、買いの注文Or2-1、Or2-3が特定される。
このように動的計画法において約定対象の注文を特定した後、または、注文のキャンセルを行った後の残りの注文に関する注文状況の配列を求める場合、前に作成した配列からは得ることができず、その都度、配列を再構築することとなる。このため、最大約定を構成する注文を特定するためのインデックス分のメモリが消費されるなど、約定対象となる注文を特定する際の効率が悪いという問題がある。
そこで、本実施形態では、動的計画法は多項式の掛け算とみなし、動的計画法を多項式に帰着させる。具体的には、本実施形態の情報処理装置では、受け付けた注文それぞれを約定数を次数とする多項式で表し、各注文を組み合わせた注文状況を各注文の多項式の掛け算で表す。
また、本実施形態の情報処理装置では、約定対象の注文を特定した後、または、注文のキャンセルを行った後の残りの注文に関する注文状況を得るための注文の差し引きを多項式の割り算に対応させる。
本実施形態では、このように多項式演算とみなすことで、各注文を最初から組み合わせて再構築することなく、約定対象の注文を特定した後、または、注文のキャンセルを行った後の残りの注文に関する注文状況を得ることができる。したがって、本実施形態では、効率よく約定対象となる注文を特定していくことができる。
例えば、約定数をk株とする条件の注文については、xで表す。具体的には、1=xは「約定させない」、xは「3株で約定させる」に対応する。そして、3株の注文を約定させるかどうかは(1+x)を掛けることで表現する。同様に、2株の注文を約定させるかどうかは(1+x)を掛けることで表現する。そして、3株と2株の注文の組み合わせは、次のように(1+x)と、(1+x)との掛け算で表し、掛け算後の多項式により、0、2、3、5株で約定が可能と分かる。
(3株と2株の注文の組み合わせ)=(1+x)(1+x)=1+x+x+x
なお、多項式の演算において、1をT、0をFに対応するものとし、加算、乗算を以下のように定義する。
・加算は、0+0=0,1+0=1,0+1=1,1+1=1とする。
・乗算は、0*0=0,1*0=0,0*1=0,1*1=1とする。
図6は、注文状況を多項式で表す場合を説明する説明図である。図6の左側は注文状況の配列aにおいて、約定数をxの次数とする多項式で表す場合に格納されるデータを例示している。図示例では、a[0]~a[8]には、0~8の次数の項における係数が格納される。図6の右側は、注文を表す多項式を例示している。
注文状況の配列aの初期状態を、ステップS31に示すものとする。配列aの初期状態では、「約定させない」ことを表す1=xに対応してa[0]=1となり、他の要素は全て「0」となる。
次いで、注文数3の注文を受け付けた(到着した)場合、配列aの状態は、ステップS32に示すものとなる。情報処理装置は、1に対し、注文数3の注文に対応する多項式の(1+x)を掛け合わせる。情報処理装置は、この掛け合わせで得られた多項式の1+xより、a[0]、a[3]に1を設定する。
次いで、注文数2の注文を受け付けた(到着した)場合、配列aの状態は、ステップS33に示すものとなる。情報処理装置は、(1+x)に、注文数2の注文に対応する多項式の(1+x)を掛け合わせる。情報処理装置は、この掛け合わせで得られた多項式の1+x+x+xより、a[0]、a[2]、a[3]、a[5]に1を設定する。
次いで、注文数3の注文を受け付けた(到着した)場合、配列aの状態は、ステップS34に示すものとなる。情報処理装置は、(1+x+x+x)に、注文数3の多項式の(1+x)を掛け合わせる。情報処理装置は、この掛け合わせで得られた多項式の1+x+x+x+x+xより、a[0]、a[2]、a[3]、a[5]、a[6]、a[8]に1を設定する。
上記の定義では、T/Fの加算(0+0=0,1+0=1,0+1=1,1+1=1)に対する逆の演算(減算)およびT/Fの乗算(0*0=0,1*0=0,0*1=0,1*1=1)に対する逆の演算(除算)がない。そこで、本実施形態では、多項式演算における数体系を変更し、演算に可逆性を待たせるようにする。具体的には、多項式演算における各項の係数については、素数pで割った有限体F上の整数に置き換える。これにより、本実施形態の情報処理装置は、注文状況を表す多項式を有限体上の多項式とし、逆の演算(例えば除算)により注文をキャンセルした状態(多項式)が得られるようにする。
一例として、素数pをp=7とする場合(mod 7)は、{0,1,2,3,4,5,6}のいずれかの整数に置き換えることとなる。例えば、加算は3+5=8≡1となる。また、減算は、3-5=-2≡5となる。また、乗算は3*5=15≡1となる。また、除算は3/5=3*3=9≡2となる(3と5を掛けると1になることから、「5で割る」のは「3を掛ける」のと同じである)。このように、加算、減算、乗算、除算ができる有限個の元を持つ集合として扱えるようにする。このように、有限個とすることで、コンピュータ演算で扱いやすくなる。なお、実際の演算に用いる素数pは、組み合わせる注文数に対応するために十分に大きな値であるものとする。
図7は、注文状況を多項式で表す場合を説明する説明図である。図6と同様、図7の左側は注文状況の配列aを例示しており、図7の右側は、注文を表す多項式を例示している。
注文状況の配列aの初期状態を、ステップS41に示すものとする。配列aの初期状態では、「約定させない」ことを表す1=xに対応してa[0]=1となり、他の要素は全て「0」となる。
次いで、注文数3の注文を受け付けた(到着した)場合、配列aの状態は、ステップS42に示すものとなる。情報処理装置は、1に対し、注文数3の注文に対応する多項式の(1+x)を掛け合わせる。なお、情報処理装置は、多項式の演算(例えば掛け合わせ)において、各項の係数については素数pで割った有限体F上の整数に置き換える(mod p)ものとする。情報処理装置は、この掛け合わせで得られた多項式の1+xより、a[0]、a[3]に1を設定する(他の要素は全て0)。
次いで、注文数2の注文を受け付けた(到着した)場合、配列aの状態は、ステップS43に示すものとなる。情報処理装置は、(1+x)に、注文数2の注文に対応する多項式の(1+x)を掛け合わせる。情報処理装置は、この掛け合わせで得られた多項式の1+x+x+xより、a[0]、a[2]、a[3]、a[5]に1を設定する(他の要素は全て0)。
次いで、注文数3の注文を受け付けた(到着した)場合、配列aの状態は、ステップS44に示すものとなる。情報処理装置は、(1+x+x+x)に、注文数3の多項式の(1+x)を掛け合わせる。情報処理装置は、この掛け合わせで得られた多項式の1+x+2x+2x+x+xより、a[0]およびa[2]に1を、a[3]およびa[5]に2を、a[6]およびa[8]に1を設定する(他の要素は全て0)。
図8は、注文状況を多項式で表す場合の割り算を説明する説明図である。図8に示すように、ステップS44の配列aにおける注文の状態から、注文数2の注文をキャンセル(または、約定後の取り消し)する場合、情報処理装置は、(1+x)での除算(割り算)を行う。これにより、情報処理装置は、注文状況を表す有限体上の多項式(配列a)について、注文数2の注文を約定後またはキャンセル後の注文状況を示すものに更新する。
具体的には、情報処理装置は、ステップS44の配列aにおける1+x+2x+2x+x+xに対して(1+x)で割り算を行う。情報処理装置は、この割り算で得られた多項式の1+2x+xより、a[0]およびa[6]に1を、a[3]に2を設定する(他の要素は全て0)。
ここで、情報処理装置は、最低約定数がa株、注文数がb株のように約定数の条件に幅がある場合は、a~b株での約定数を次数とする多項式に変換する。具体的には、情報処理装置は、1+x+xa+1+xa+2+…+xの多項式に変換する。
一例として、3株から5株で約定する条件の注文の場合、情報処理装置は、1+x+x+xの多項式に変換する。また、2株から3株で約定する条件の注文の場合、情報処理装置は、1+x+xの多項式に変換する。そして、情報処理装置は、この2つの注文を掛け合わせた多項式として、(1+x+x+x)(1+x+x)を計算することとなる。
このように、約定数の幅をもたせると、多項式の積を演算する際に掛け合わせる項数が多くなり、計算時間が増加する。例えば、約定数の幅(約定可能な注文数の数)をNとした場合の計算量は、O(N)となる。
そこで本実施形態の情報処理装置は、多項式の積により受け付けた注文を組み合わせた注文状況を求める際に、各注文の多項式それぞれをフーリエ変換して畳み込み計算(多項式の掛け算に対応)を行う。次いで、情報処理装置は、畳み込み計算の計算結果をフーリエ逆変換して多項式の積の結果を得る。
このように、フーリエ変換して畳み込み計算を行い、畳み込み計算の計算結果をフーリエ逆変換で求めることについては、O(NlogN)の計算量で演算できるアルゴリズムが一般に知られている。したがって、情報処理装置は、掛け合わせる多項式をフーリエ変換して畳み込み計算を行い、フーリエ逆変換して多項式の積の計算結果を得るようにすることで、計算量をO(NlogN)に抑え込むことができる。このため、情報処理装置は、約定対象となる注文を特定する際の計算をより高速に行うことが可能となる。
図9は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。図9に示すように、情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、有線又は無線で外部装置等に接続され、外部装置等との間で情報の送受信を行う。例えば、通信部110は、NIC(Network Interface Card)等によって実現される。通信部110は、図示しないネットワークに接続されていてもよい。例えば、通信部110は、外部装置から、売り注文の情報を含む売り注文テーブル141の情報、買い注文の情報を含む買い注文テーブル142の情報等を受信する。例えば、外部装置は、株の売り買いを管理し、約定の対象となった注文に関して各種の処理を実行するサーバに対応する。
入力部120は、各種の情報を、情報処理装置100に入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。
記憶部140は、売り注文テーブル141、買い注文テーブル142、第1多項式情報143、第2多項式情報144、約定結果情報145を有する。記憶部140は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
売り注文テーブル141は、売り注文の注文順、注文数を保持するテーブルである。図10は、売り注文テーブル141のデータ構造の一例を示す説明図である。図10に示すように、売り注文テーブル141は、識別情報と、注文順と、注文数とを対応付ける。識別情報は、注文を一意に識別する情報である。注文順は、受け付けた売り注文の順番である。注文数は、売り注文の数である。
買い注文テーブル142は、買い注文の注文順、注文数を保持するテーブルである。図11は、買い注文テーブル142のデータ構造の一例を示す説明図である。図11に示すように、買い注文テーブル142は、識別情報と、注文順と、注文数とを対応付ける。識別情報は、注文を一意に識別する情報である。注文順は、受け付けた買い注文の順番である。注文数は、買い注文の数である。
第1多項式情報143は、売り注文に関する注文を組み合わせた注文状況に対応する多項式の情報を保持する配列情報である。具体的には、各売り注文に対応する多項式を掛け合わせて得られた、売り注文の状況を表す有限体上の多項式(配列a)の配列情報である。
第2多項式情報144は、買い注文に関する注文を組み合わせた注文状況に対応する多項式の情報を保持する配列情報である。具体的には、各買い注文に対応する多項式を掛け合わせて得られた、買い注文の状況を表す有限体上の多項式(配列a)の配列情報である。
約定結果情報145は、最大の約定数と、約定対象となる注文の情報を保持する。図12は、約定結果情報145のデータ構造の一例を示す説明図である。図12に示すように、約定結果情報145は、約定売り識別情報と、約定買い識別情報と、最大約定数とを有する。約定売り識別情報は、約定対象となる売り注文を識別する情報である。約定買い識別情報は、約定対象となる買い注文を識別する情報である。最大約定数は、最大の約定数を示す。
制御部150は、注文受付部151と、多項式生成部152と、演算部153と、約定処理部154と、出力制御部155とを有する。制御部150は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)により実現される。また、制御部150は、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実行されてもよい。
注文受付部151は、約定数の条件が指定された注文を受け付ける処理部である。注文受付部151は、外部装置等から、売り注文テーブル141のデータを取得した場合に、売り注文テーブル141のデータを、記憶部140に格納する。注文受付部151は、売り注文を個別に順に取得し、取得した売り注文の情報を、売り注文テーブル141に登録してもよい。
注文受付部151は、外部装置等から、買い注文テーブル142のデータを取得した場合に、買い注文テーブル142のデータを、記憶部140に格納する。注文受付部151は、買い注文を個別に順に取得し、取得した買い注文の情報を、買い注文テーブル142に登録してもよい。
また、注文受付部151は、キャンセルする注文の情報(識別情報)を受け付けて、売り注文テーブル141または買い注文テーブル142に登録されている売り注文または買い注文の情報を削除してもよい。このとき、注文受付部151は、売り注文テーブル141または買い注文テーブル142より削除する注文の情報を取得し、演算部153に通知する。
多項式生成部152は、受け付けた注文を組み合わせた注文状況を表す有限体上の多項式(以後、既存多項式とも呼ぶ)を生成する処理部である。多項式生成部152は、受け付けた注文それぞれについて、注文で指定された条件における約定数(注文数)を次数とする多項式とする。次いで、多項式生成部152は、受け付けた注文を組み合わせた注文状況を多項式の積による有限体上の多項式(既存多項式)で表す。
具体的には、多項式生成部152は、売り注文に関する売り注文テーブル141をもとに、売り注文それぞれについて、売り注文で指定された注文数を次数とする多項式とする。次いで、多項式生成部152は、受け付けた売り注文を組み合わせた注文状況を、売り注文それぞれの多項式を掛け合わせることで、売り注文の注文状況に対応する有限体上の多項式(第1の既存多項式)を生成する。次いで、多項式生成部152は、生成した多項式の情報を第1多項式情報143として記憶部140に格納する。
また、多項式生成部152は、買い注文に関する買い注文テーブル142をもとに、買い注文それぞれについて、買い注文で指定された注文数を次数とする多項式とする。次いで、多項式生成部152は、受け付けた買い注文を組み合わせた注文状況を、買い注文それぞれの多項式を掛け合わせることで、買い注文の注文状況に対応する有限体上の多項式(第2の既存多項式)を生成する。次いで、多項式生成部152は、生成した多項式の情報を第2多項式情報144として記憶部140に格納する。
演算部153は、注文状況を表す有限体上の多項式について、各種演算処理を行う処理部である。具体的には、演算部153は、注文状況を表す有限体上の多項式(既存多項式)について、約定する注文またはキャンセルする注文に対応する多項式で割り算を行い、約定後またはキャンセル後の注文状況を表す既存多項式に更新する。例えば、演算部153は、約定処理部154により約定対象として特定された注文または注文受付部151より通知されたキャンセル(削除)する注文に対応する多項式で第1多項式情報143または第2多項式情報144の既存多項式に対して割り算を行う。次いで、演算部153は、割り算後の既存多項式の情報を第1多項式情報143または第2多項式情報144として記憶部140に格納する。
より具体的には、約定する注文またはキャンセルする注文が売り注文の場合、演算部153は、約定する売り注文またはキャンセルする売り注文に対応する多項式を多項式生成部152と同様の方法で生成する。次いで、演算部153は、第1多項式情報143の第1の既存多項式に対して、生成した多項式で割り算を行い、約定後またはキャンセル後の売り注文の状況に対応する第1の既存多項式を求める。次いで、演算部153は、得られた第1の既存多項式の情報を第1多項式情報143として記憶部140に格納する。
また、約定する注文またはキャンセルする注文が買い注文の場合、演算部153は、約定する買い注文またはキャンセルする買い注文に対応する多項式を多項式生成部152と同様の方法で生成する。次いで、演算部153は、第2多項式情報144の第2の既存多項式に対して、生成した多項式で割り算を行い、約定後またはキャンセル後の買い注文の状況に対応する第2の既存多項式を求める。次いで、演算部153は、得られた第2の既存多項式の情報を第2多項式情報144として記憶部140に格納する。
また、演算部153は、割り算後の既存多項式について、特定の次数の項の係数に基づいて約定後またはキャンセル後の注文状況を表す既存多項式として採用するか否かを決定してもよい。例えば、演算部153は、約定対象またはキャンセル対象の注文に対応する多項式で既存多項式を割って得られた結果、特定の項の係数が0でなければ採用、0であれば不採用とする。
一例として、既存多項式が1+x+2x+2x+x+xである場合の6株の約定(xの係数は0ではないので可能)を考える。この約定に2株の注文は含まれるか否かを判定したい時、元の式(上記の既存多項式)を1+xで割ってみる。次いで、割った結果の1+2x+xにおけるx(6-2=4より4株分)の項の係数は0なので、含まれないと分かる。
このように、演算部153は、割り算後の既存多項式における特定の項の係数をもとに、採用または不採用を決定してもよい。不採用とする場合、演算部153は、エラーを出力制御部155より通知してもよいし、別の注文を約定対象とするように、約定処理部154へ処理を戻してもよい。
例えば、注文を組み合わせた場合の数よりも有限体とする際の素数pが小さい場合には、演算後の既存多項式における係数が偽陽性となることがある。したがって、情報処理装置100では、特定の項の係数をもとに、採用または不採用を決定することで、偽陽性となるケースを排除することができる。
また、演算部153は、注文受付部151より新たに追加する注文を受け付けた場合、その注文の多項式を既存多項式に掛け合わせることで、追加後の注文状況を表す既存多項式に更新してもよい。
例えば、新たに追加する注文が売り注文の場合、演算部153は、追加する売り注文に対応する多項式を多項式生成部152と同様の方法で生成する。次いで、演算部153は、第1多項式情報143の第1の既存多項式に対して、生成した多項式で掛け算を行い、追加後の売り注文の状況に対応する第1の既存多項式を求める。次いで、演算部153は、得られた第1の既存多項式の情報を第1多項式情報143として記憶部140に格納する。
また、新たに追加する注文が買い注文の場合、演算部153は、追加する買い注文に対応する多項式を多項式生成部152と同様の方法で生成する。次いで、演算部153は、第2多項式情報144の第2の既存多項式に対して、生成した多項式で掛け算を行い、追加後の買い注文の状況に対応する第2の既存多項式を求める。次いで、演算部153は、得られた第2の既存多項式の情報を第2多項式情報144として記憶部140に格納する。
また、多項式生成部152および演算部153における多項式の積の演算については、多項式の関数をフーリエ変換して畳み込み計算を行い、その計算結果をフーリエ逆変換して多項式の積の結果を得る。
具体的には、多項式生成部152および演算部153は、掛け合わせる多項式を関数f(x)、g(x)としたとき、関数f(x)に対して次の式(1)のとおりにフーリエ変換して関数F(t)を求める。実際には離散的にN個の値としてf(0)、f(1)、f(2)、…f(N-1)を用いる離散フーリエ変換を行う。
Figure 2022108187000002
多項式生成部152および演算部153は、同様に、多項式生成部152および演算部153は、g(x)に対するフーリエ変換により関数G(t)を求める。次いで、多項式生成部152および演算部153は、f(x)・g(x)に対応するF(t)・G(t)の畳み込み計算を行う。
次いで、多項式生成部152および演算部153は、F(t)・G(t)の畳み込み計算後の計算結果に対してフーリエ逆変換を行い、多項式の積の結果を得る。具体的には、次の式(2)のとおりに関数F(t)を元の関数f(x)に戻すフーリエ逆変換を行う。
Figure 2022108187000003
一例として、3株から5株での約定を指定した注文に対応するf(x)は、f(x)=1+x+x+xである。このf(x)のフーリエ変換後のF(t)は、次のとおりである。
・F(t)=1.41421-0.5t+0.707107t+0.5t+0.5t+0.707107t-0.5t
ここで、f(x)を掛け合わせる既存多項式のg(x)をg(x)=1+2x+3xとする。このg(x)のフーリエ変換後のG(t)は、次のとおりである。
・G(t)=2.12132+(0.853553+1.56066i)t+(-0.707107+0.707107i)t+(-0.146447-0.56066i)t+0.707107t+(-0.146447+0.56066i)t+(-0.707107-0.707107i)t+(0.853553-1.56066i)t
多項式生成部152および演算部153は、F(t)・G(t)の各項を項別に掛け算して畳み込み計算を行う。
・F(t)・G(t)=1.41421*2.12132+(-0.5)*(0.853553+1.56066i)t+0.707107*(-0.707107+0.707107i)t+…
次いで、多項式生成部152および演算部153は、得られた結果をフーリエ逆変換することで、f(x)・g(x)の結果を得る。
・f(x)・g(x)=1+2x+3x+x+3x+6x+5x+3x
約定処理部154は、最大約定数と、第1多項式情報143と、第2多項式情報144とを基にして、約定の対象となる注文を特定する処理部である。約定処理部154の処理は、図5で説明した処理に対応する。
たとえば、図5で説明したように、約定処理部154が、第1配列a(第1多項式情報143)に対して上記処理を実行することで、約定対象となる注文の識別情報Or1-1、Or1-2を特定する。約定処理部154が、第2配列a(第2多項式情報144)に対して上記処理を実行することで、約定対象となる注文の識別情報Or2-1、Or2-3を特定する。
次いで、約定処理部154は、上記処理を実行することで特定した約定の対象となる注文の識別情報を、約定結果情報145に登録する。また、約定処理部154は、約定対象の注文の情報を売り注文テーブル141または買い注文テーブル142より取得し、演算部153に通知する。
出力制御部155は、約定結果情報145を、表示部130に出力して表示させる処理部である。出力制御部155は、約定結果情報145を外部装置に送信して、各種の約定処理を依頼してもよい。
図13は、注文受付・取消処理の一例を示すフローチャートである。図13に示すように、処理が開始されると、注文受付部151は、約定数の条件が指定された注文を受け付ける(S101)。S101において受け付ける注文の種別(条件)としては、売り注文または買い注文、注文の追加または取り消し、最低約定数、注文数などが含まれる。
次いで、多項式生成部152は、受け付けた注文の種別(条件)をもとに、注文で指定された条件における約定数(注文数)を次数とする多項式(Po)に変換する(S102)。なお、多項式生成部152は、最低約定数がa株(例えば3株)、注文数がb株(例えば5株)のように約定数の条件に幅がある場合は、a~b株での約定数を次数とする多項式に変換する。具体的には、多項式生成部152は、1+x+xa+1+xa+2+…+xの多項式に変換する。
次いで、演算部153は、受け付けた注文は追加注文であるか否かを判定する(S103)。追加注文である場合(S103:Yes)、演算部153は、追加注文が売り注文の場合は第1多項式情報143、買い注文の場合は第2多項式情報144を読み出して既存多項式(P)を取得する。次いで、演算部153は、取得した既存多項式(P)に多項式(Po)を掛け合わせる(S104)。次いで、演算部153は、掛け合わせ後の既存多項式(P)で第1多項式情報143または第2多項式情報144を更新し、処理を終了する。
追加注文でなく、注文のキャンセルである場合(S103:No)、演算部153は、キャンセルする注文が売り注文の場合は第1多項式情報143、買い注文の場合は第2多項式情報144を読み出して既存多項式(P)を取得する。次いで、演算部153は、取得した既存多項式(P)を多項式(Po)で割る(S105)。次いで、演算部153は、割り算後の既存多項式(P)で第1多項式情報143または第2多項式情報144を更新し、処理を終了する。
図14は、多項式生成処理の一例を示すフローチャートであり、具体的には、図14は、各注文に対応する多項式を掛け合わせて注文状況に対応する多項式を求める際の演算内容を例示するフローチャートである。
図14に示すように、処理が開始されると、注文受付部151は、各注文(i)の内容を示す注文列{(l,h)}の情報を受け付ける(S111)。ここで、lは最小約定数とし、hは最大約定数とする。すなわち、各注文(i)は、最小約定数lから最大約定数hの範囲で約定可能とする注文内容であるものとする。
次いで、多項式生成部152は、掛け合わせ元の多項式の初期状態として、a[0]を1、その他を0とする配列aを用意する(S112)。
次いで、多項式生成部152は、受け付けた各注文(i=1,2,…,n)についてのループ処理を行う(S113~S119)。具体的には、多項式生成部152は、lからhまで1を、他を0とする、注文(i)に関する多項式についての配列bを用意する(S114)。
次いで、多項式生成部152は、配列aの多項式をフーリエ変換した多項式の配列をa’とする(S115)。
次いで、多項式生成部152は、配列bの多項式をフーリエ変換した多項式の配列をb’とする(S116)。
次いで、多項式生成部152は、配列a’と配列b’を要素ごとに掛けた配列を新たにa’とする(S117)。次いで、多項式生成部152は、この新たな配列a’をフーリエ逆変換した配列をaとする(S118)。
多項式生成部152は、このような各注文をかけ合わせる処理(S113~S119)を繰り返すことで、最終的には注文状況に対応する多項式に関する配列aを得ることができる。
図15は、約定処理の一例を示すフローチャートである。図15に示すように、処理が開始されると、約定処理部154は、第1多項式情報143および第2多項式情報144の既存多項式(第1の既存多項式および第2の既存多項式)から約定させる株数を決定する(S121)。具体的には、約定処理部154は、第1の既存多項式と、第2の既存多項式とを比較し、互いにT(0以外の係数が設定されている)となる最大数(最大の次数)を約定させる株数として決定する。ここで、決定した約定数はNとし、既存多項式はPとする。
次いで、約定処理部154は、売り注文および買い注文それぞれについて、約定対象となる注文に対するループ処理(S122~S127)を実行して約定させる注文を特定する。例えば、図5の場合は識別情報Or1-1、Or1-2の売り注文と、Or2-1、Or2-3の買い注文が約定対象となる注文となる。約定処理部154は、これらの各注文をiとするループ処理を行う。
具体的には、約定処理部154は、注文iの条件をもとに、多項式Qを生成する(S123)。次いで、演算部153は、既存多項式P(ただし、注文iが売り注文の場合は第1の既存多項式、買い注文の場合は第2の既存多項式)を多項式Qで割った多項式P’を計算する(S124)。
次いで、約定処理部154は、P、Q、P’の係数を比較することで注文iの約定数Mを決定する(S125)。多項式計算P(x)=Q(x)*P’(x)において、P(x)のxの係数をcとしたとき、cが0でなければ、Q(x)のcN-MとP(x)のcでc≠cとなるものが存在する。約定処理部154は、上述した条件を満たすようなMを決定する。なお、Mが0のときは0株約定、つまり、注文iは約定させないことを表す。
次いで、約定処理部154は、Nから決定した約定数Mを引き、既存多項式PをP’で置き換える(S126)。
ループ処理(S122~S127)に次いで、約定処理部154は、特定した約定させる注文を出力し(S128)、処理を終了する。
以上のように、情報処理装置100は、約定数の条件が指定された注文を受け付ける。情報処理装置100は、受け付けた注文それぞれについて、指定された条件における約定数を次数とする多項式とする。情報処理装置100は、受け付けた注文を組み合わせた注文状況を多項式の積による有限体上の多項式で表す際に、多項式それぞれをフーリエ変換して畳み込み計算を行い、畳み込み計算の計算結果をフーリエ逆変換して有限体上の多項式を求める。
これにより、情報処理装置100では、多項式の積を演算する際の計算量をO(NlogN)に抑え込むことができ、約定対象となる注文を特定する際の計算をより高速に行うことが可能となる。
また、情報処理装置100は、受け付けた買い注文それぞれの多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して買い注文を組み合わせた買い注文状況を表す第1の多項式を求める。これにより、情報処理装置100は、買い注文状況を表す第1の多項式を求める際の計算量をO(NlogN)に抑え込むことができる。
また、情報処理装置100は、受け付けた売り注文それぞれの多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して売り注文を組み合わせた売り注文状況を表す第2の多項式を求める。これにより、情報処理装置100は、売り注文状況を表す第2の多項式を求める際の計算量をO(NlogN)に抑え込むことができる。
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、本実施形態では証券取引市場における株取引で全量約定、または、一定数の注文数を条件にして、注文を行う場合に適用するケースを例示したが、株取引への適用に限定するものではない。例えば、先物取引市場などの株取引以外の取引に適用してもよい。
また、情報処理装置100で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)あるいはGPU(Graphics Processing Unit)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)あるいはGPUで解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置100で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
次に、上記実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図16は、実施形態の情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図16に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置304と、インタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
ハードディスク装置307は、注文受付プログラム307a、多項式生成プログラム307b、演算プログラム307c、約低処理プログラム307d、出力制御プログラム307eを有する。また、CPU301は、各プログラム307a~307eを読み出してRAM306に展開する。
注文受付プログラム307aは、注文受付プロセス306aとして機能する。多項式生成プログラム307bは、多項式生成プロセス306bとして機能する。演算プログラム307cは、演算プロセス306cとして機能する。約低処理プログラム307dは、約低処理プロセス306dとして機能する。出力制御プログラム307eは、出力制御プロセス306eとして機能する。
注文受付プロセス306aの処理は、注文受付部151の処理に対応する。多項式生成プロセス306bの処理は、多項式生成部152の処理に対応する。演算プロセス306cの処理は、演算部153の処理に対応する。約低処理プロセス306dの処理は、約定処理部154の処理に対応する。出力制御プロセス306eの処理は、出力制御部155の処理に対応する。
なお、各プログラム307a~307eについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307eを読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN等のネットワークに接続された外部装置に各プログラム307a~307eを記憶させておき、コンピュータ300がネットワークに接続された外部装置から各プログラム307a~307eを読み出して実行するようにしてもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)約定数の条件が指定された注文を受け付け、
受け付けた前記注文それぞれについて、指定された前記条件における約定数を次数とする多項式とし、
受け付けた前記注文を組み合わせた注文状況を前記多項式の積による有限体上の多項式で表す際に、前記多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記有限体上の多項式を求める、
処理をコンピュータに実行させることを特徴とする約定プログラム。
(付記2)前記多項式を求める処理は、受け付けた買い注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記買い注文を組み合わせた買い注文状況を表す第1の多項式を求める処理を含む、
ことを特徴とする付記1に記載の約定プログラム。
(付記3)前記多項式を求める処理は、受け付けた売り注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記売り注文を組み合わせた売り注文状況を表す第2の多項式を求める処理を含む、
ことを特徴とする付記1または2に記載の約定プログラム。
(付記4)約定数の条件が指定された注文を受け付け、
受け付けた前記注文それぞれについて、指定された前記条件における約定数を次数とする多項式とし、
受け付けた前記注文を組み合わせた注文状況を前記多項式の積による有限体上の多項式で表す際に、前記多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記有限体上の多項式を求める、
処理をコンピュータが実行することを特徴とする約定方法。
(付記5)前記多項式を求める処理は、受け付けた買い注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記買い注文を組み合わせた買い注文状況を表す第1の多項式を求める処理を含む、
ことを特徴とする付記4に記載の約定方法。
(付記6)前記多項式を求める処理は、受け付けた売り注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記売り注文を組み合わせた売り注文状況を表す第2の多項式を求める処理を含む、
ことを特徴とする付記4または5に記載の約定方法。
(付記7)約定数の条件が指定された注文を受け付け、
受け付けた前記注文それぞれについて、指定された前記条件における約定数を次数とする多項式とし、
受け付けた前記注文を組み合わせた注文状況を前記多項式の積による有限体上の多項式で表す際に、前記多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記有限体上の多項式を求める、
処理を実行する制御部を含むことを特徴とする情報処理装置。
(付記8)前記多項式を求める処理は、受け付けた買い注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記買い注文を組み合わせた買い注文状況を表す第1の多項式を求める処理を含む、
ことを特徴とする付記7に記載の情報処理装置。
(付記9)前記多項式を求める処理は、受け付けた売り注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記売り注文を組み合わせた売り注文状況を表す第2の多項式を求める処理を含む、
ことを特徴とする付記7または8に記載の情報処理装置。
100…情報処理装置
110…通信部
120…入力部
130…表示部
140…記憶部
141…売り注文テーブル
142…買い注文テーブル
143…第1多項式情報
144…第2多項式情報
145…約定結果情報
150…制御部
151…注文受付部
152…多項式生成部
153…演算部
154…約定処理部
155…出力制御部
300…コンピュータ
301…CPU
302…入力装置
303…ディスプレイ
304…通信装置
305…インタフェース装置
306…RAM
306a…注文受付プロセス
306b…多項式生成プロセス
306c…演算プロセス
306d…約低処理プロセス
306e…出力制御プロセス
307…ハードディスク装置
307a…注文受付プログラム
307b…多項式生成プログラム
307c…演算プログラム
307d…約低処理プログラム
307e…出力制御プログラム
308…バス

Claims (5)

  1. 約定数の条件が指定された注文を受け付け、
    受け付けた前記注文それぞれについて、指定された前記条件における約定数を次数とする多項式とし、
    受け付けた前記注文を組み合わせた注文状況を前記多項式の積による有限体上の多項式で表す際に、前記多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記有限体上の多項式を求める、
    処理をコンピュータに実行させることを特徴とする約定プログラム。
  2. 前記多項式を求める処理は、受け付けた買い注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記買い注文を組み合わせた買い注文状況を表す第1の多項式を求める処理を含む、
    ことを特徴とする請求項1に記載の約定プログラム。
  3. 前記多項式を求める処理は、受け付けた売り注文それぞれの前記多項式をフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記売り注文を組み合わせた売り注文状況を表す第2の多項式を求める処理を含む、
    ことを特徴とする請求項1または2に記載の約定プログラム。
  4. 約定数の条件が指定された注文を受け付け、
    受け付けた前記注文それぞれについて、指定された前記条件における約定数を次数とする多項式とし、
    受け付けた前記注文を組み合わせた注文状況を前記多項式の積による有限体上の多項式で表す際に、前記多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記有限体上の多項式を求める、
    処理をコンピュータが実行することを特徴とする約定方法。
  5. 約定数の条件が指定された注文を受け付け、
    受け付けた前記注文それぞれについて、指定された前記条件における約定数を次数とする多項式とし、
    受け付けた前記注文を組み合わせた注文状況を前記多項式の積による有限体上の多項式で表す際に、前記多項式それぞれをフーリエ変換して畳み込み計算を行い、当該畳み込み計算の計算結果をフーリエ逆変換して前記有限体上の多項式を求める、
    処理を実行する制御部を含むことを特徴とする情報処理装置。
JP2021003078A 2021-01-12 2021-01-12 約定プログラム、約定方法および情報処理装置 Pending JP2022108187A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021003078A JP2022108187A (ja) 2021-01-12 2021-01-12 約定プログラム、約定方法および情報処理装置
US17/529,518 US20220222747A1 (en) 2021-01-12 2021-11-18 Execution method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021003078A JP2022108187A (ja) 2021-01-12 2021-01-12 約定プログラム、約定方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2022108187A true JP2022108187A (ja) 2022-07-25

Family

ID=82321994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021003078A Pending JP2022108187A (ja) 2021-01-12 2021-01-12 約定プログラム、約定方法および情報処理装置

Country Status (2)

Country Link
US (1) US20220222747A1 (ja)
JP (1) JP2022108187A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389268B1 (en) * 2000-03-02 2008-06-17 Trading Technologies International, Inc. Trading tools for electronic trading
AU2007201965C1 (en) * 2002-04-19 2011-01-06 Trading Technologies International, Inc. Trading tools for electronic trading
US8140423B2 (en) * 2004-12-10 2012-03-20 Nyfix, Inc. Controlling an order slicer for trading a financial instrument
JP2022108055A (ja) * 2021-01-12 2022-07-25 富士通株式会社 約定プログラム、約定方法および情報処理装置

Also Published As

Publication number Publication date
US20220222747A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
Hewamalage et al. Forecast evaluation for data scientists: common pitfalls and best practices
EP3796166B1 (en) Graph data-based task scheduling method, device, storage medium and apparatus
CN108292241A (zh) 处理计算图
Regis Multi-objective constrained black-box optimization using radial basis function surrogates
JP2011138470A (ja) 特許評価方法及びそのコンピュータ読み取り可能な保存媒体
CN110866771A (zh) 信息处理方法、系统、介质和计算机系统
WO2011100557A1 (en) Scenario state processing systems and methods for operation within a grid computing environment
Arunachaleswaran et al. Fair and efficient cake division with connected pieces
CN105389454A (zh) 预测模型生成器
JP2022068327A (ja) ノードグループ化方法、装置及び電子機器
JP2022108055A (ja) 約定プログラム、約定方法および情報処理装置
Muthuraman et al. Simulation‐Based Portfolio Optimization For Large Portfolios With Transaction Costs
Ha et al. Resource analysis of quantum computing with noisy qubits for Shor’s factoring algorithms
WO2020012589A1 (ja) 情報処理システム、情報処理方法及び記憶媒体
JP2022108187A (ja) 約定プログラム、約定方法および情報処理装置
JP2023006585A (ja) 約定プログラム、約定方法および情報処理装置
Bungartz et al. Parallelizing a Black-Scholes solver based on finite elements and sparse grids
JP2023006645A (ja) 約定プログラム、約定方法および情報処理装置
Gonzaga de Oliveira et al. Metaheuristic algorithms for the bandwidth reduction of large-scale matrices
JP6067596B2 (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
Frauendorfer et al. Barycentric bounds in stochastic programming: Theory and application
Xu et al. A multi-attribute rating based trust model: improving the personalized trust modeling framework
Blakey Towards Non-Quantum Implementations of Shor's Factorization Algorithm.
JP2022108070A (ja) 約定プログラム、約定方法および情報処理装置
JP7497732B2 (ja) 最適化装置、最適化方法及び最適化プログラム