JP6435939B2 - データ分類プログラム、データ分類方法およびデータ分類装置 - Google Patents

データ分類プログラム、データ分類方法およびデータ分類装置 Download PDF

Info

Publication number
JP6435939B2
JP6435939B2 JP2015054207A JP2015054207A JP6435939B2 JP 6435939 B2 JP6435939 B2 JP 6435939B2 JP 2015054207 A JP2015054207 A JP 2015054207A JP 2015054207 A JP2015054207 A JP 2015054207A JP 6435939 B2 JP6435939 B2 JP 6435939B2
Authority
JP
Japan
Prior art keywords
data
data group
person
processing
pair
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.)
Expired - Fee Related
Application number
JP2015054207A
Other languages
English (en)
Other versions
JP2016173780A (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.)
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 JP2015054207A priority Critical patent/JP6435939B2/ja
Priority to EP16160107.5A priority patent/EP3070658A1/en
Priority to US15/070,972 priority patent/US20160275172A1/en
Publication of JP2016173780A publication Critical patent/JP2016173780A/ja
Application granted granted Critical
Publication of JP6435939B2 publication Critical patent/JP6435939B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ分類プログラム等に関する。
画像や音声、センサーデータ等の非構造データを用いた照合処理や類似性の計算は時間がかかるものが多い。このため、複数の計算資源にレコードデータを割り振り、処理を分散させることで、照合処理を効率化する従来技術がある。
図27は、従来技術の一例を説明するための図である。例えば、あるクエリを用いて、レコードデータを照合する場合に、処理時間がクエリに依存せず、レコードデータのみに依存する場合がある。例えば、音楽ファイルの中である周波数成分が何秒であるかをカウントする場合には、処理時間は音楽の長さに依存する。このような場合には、混合整数計画問題を解き、処理がほぼ均等になるように、レコードデータを各計算資源に配布すればよい。
図27に示す例では、レコードデータ10a〜10jが存在し、各レコードデータの長さをレコードデータの処理に要する処理時間とする。例えば、レコードデータ10a,10b,10jを第1サーバに配布し、レコードデータ10c,10e,10d,10gを第2サーバに配布し、レコードデータ10i,10f,10hを第3サーバに配布する。このように、レコードデータ10a〜10jを配布することで、各処理時間を均等にすることができる。
特開2006−260511号公報 特開2011−86019号公報 特開2010−108477号公報 特開2001−160062号公報
しかしながら、上述した従来技術では、処理時間が長くなるレコードデータを分散させることができず、クエリデータの実行に要する時間を短縮できるデータベースを構築することができないという問題がある。
処理時間がレコードデータのみに依存せず、クエリデータとレコードデータとのデータ対により、処理時間が変動する場合がある。例えば、クエリデータとレコードデータとが似ている場合には、かかるレコードデータを処理する処理時間が長くなる。このため、クエリデータに類似する複数のレコードデータがある計算資源に集中して配置されると、ある計算資源の処理時間が長くなる。
従って、互いに類似するレコードデータを同一の計算資源に配置しないように制御するだけでは、計算資源の処理時間を短縮できない。また、クエリデータを実際に利用して、処理時間を観測し、観測結果に基づいてレコードデータを分類することも考えられるが、何個のクエリデータに対する処理時間を計測すればよいのか判断することが難しい。
1つの側面では、本発明は、クエリデータの実行に要する時間を短縮できるデータベースを構築できるデータ分類プログラム、データ分類方法およびデータ分類装置を提供することを目的とする。
第1の案では、コンピュータに、下記の処理を実行させる。コンピュータは、データベースに格納された第1データ群に対して処理要求を実行し、実行した処理結果から得られるパラメータを第1データ群に含まれるデータごとに取得する。コンピュータは、パラメータ間の第1類似度に基づいて第2のデータ群を少なくとも複数の第1のデータ群から抽出する。コンピュータは、第2のデータ群に含まれるデータのパラメータ間の第2類似度が互いに低くなるように、第2のデータ群に含まれるデータを分類して、第3のデータ群を生成する。コンピュータは、第3のデータ群と第1のデータ群との組に含まれるデータのパラメータ間の第3類似度が低くなるように、第3のデータ群を第1のデータ群へ分類する。
クエリデータの実行に要する時間を短縮できるデータベースを構築することができる。
図1は、本実施例に係るデータ分類装置の処理を説明するための図(1)である。 図2は、本実施例に係るデータ分類装置の処理を説明するための図(2)である。 図3は、本実施例に係るデータ分類装置の処理を説明するための図(3)である。 図4は、本実施例に係るデータ分類装置の処理を説明するための図(4)である。 図5は、本実施例に係るデータ分類装置の処理を説明するための図(5)である。 図6は、中間テーブルのデータ構造の一例を示す図である。 図7は、新たな組に組み直す意味を説明するための図(1)である。 図8は、新たな組に組み直す意味を説明するための図(2)である。 図9は、ペアを計算資源に戻す場合の処理を説明するための図(1)である。 図10は、ペアを計算資源に戻す場合の処理を説明するための図(2)である。 図11は、安定マッチングと不安定マッチングとを説明するための図である。 図12は、ゲール−シャプレイのアルゴリズムの処理手順の一例を示す図である。 図13は、安定ルームメイト問題のアルゴリズムの処理手順を示すフローチャートである。 図14は、第1フェーズ処理の処理手順を示すフローチャートである。 図15は、第2フェーズ処理の処理手順を示すフローチャートである。 図16は、all-or-nothing cycleを探索する処理手順を示すフローチャートである。 図17は、データ分類装置が、各希望リストから安定ルーム解を求める処理を説明するための図(1)である。 図18は、データ分類装置が、各希望リストから安定ルーム解を求める処理を説明するための図(2)である。 図19は、データ分類装置が、各希望リストから安定ルーム解を求める処理を説明するための図(3)である。 図20は、データ分類装置が、各希望リストから安定ルーム解を求める処理を説明するための図(4)である。 図21は、データ分類装置が、各希望リストから安定ルーム解を求める処理を説明するための図(5)である。 図22は、本実施例に係るデータ分類装置の構成を示す機能ブロック図である。 図23は、レコードデータテーブルのデータ構造の一例を示す図である。 図24は、配置先情報のデータ構造の一例を示す図である。 図25は、本実施例に係るデータ分類装置の処理手順を示すフローチャートである。 図26は、データ分類プログラムを実行するコンピュータの一例を示す図である。 図27は、従来技術の一例を説明するための図である。
以下に、本願の開示するデータ分類プログラム、データ分類方法およびデータ分類装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例に係るデータ分類装置の処理の一例について説明する。図1〜図5は、本実施例に係るデータ分類装置の処理を説明するための図である。
図1について説明する。例えば、データ分類装置は、記憶部110とN個の計算資源S1〜SNを有する。記憶部110は、レコードデータテーブル110aを格納する。レコードデータテーブル110aは、M個のレコードデータr1〜rMを格納する。データ分類装置は、従来手法を用いて、レコードデータr1〜rMを計算資源S1〜SNに分散配置する。例えば、データ分類装置は、各計算資源S1〜SNに格納されるレコードデータの数がほぼ均等になるように、各レコードデータr1〜rMをランダムに、計算資源S1〜SNに割り振る。
図2について説明する。データ分類装置は、クエリデータを受け付けると、クエリデータを用いて、各計算資源S1〜SMに格納されたレコードデータと検索・照合処理を行う。データ分類装置は、クエリデータを用いた、各レコードデータに対する処理の処理時間を計測し、計測した結果を中間テーブルに登録する。
図6は、中間テーブルのデータ構造の一例を示す図である。中間テーブル110bは、計算資源ごとに、計算資源に格納された各レコードデータと、クエリデータに対する処理時間とを対応付ける。例えば、計算資源S1について、レコードデータr1をあるクエリデータで検索・照合処理した場合の処理時間が「0.5秒」であることが示される。レコードデータrxをあるクエリデータで検索・照合処理した場合の処理時間が「0.1秒」であることが示される。レコードデータryをあるクエリデータで検索・照合処理した場合の処理時間が「6.1秒」であることが示される。レコードデータrzをあるクエリデータで検索・照合処理した場合の処理時間が「5.1秒」であることが示される。中間テーブル110bに関するその他の説明を省略する。一般的に、クエリデータとレコードデータとが類似していれば処理時間が長くなる。このため、中間テーブル110bに示す処理時間は、クエリデータとレコードデータとの類似度を示す指標ともいえる。
図3について説明する。データ分類装置は、中間テーブル110bを基にして、各レコードデータのうち、処理時間の長いレコードデータを各計算資源S1〜SNから抽出する。例えば、データ分類装置は、偶数個のレコードデータを、各計算資源S1〜SNから抽出する。図3に示す例では、データ分類装置は、各計算資源S1〜SNから、レコードデータrx、rzの組、レコードデータrx1、ry1の組、レコードデータrx2、ry2のペアを抽出する。
図4について説明する。データ分類装置は、図3で抽出したレコードデータのペアを、新たなペアに組み直す。例えば、データ分類装置は、相互に類似しないレコードデータをペアにする。図4に示す例では、データ分類装置は、レコードデータrx2、ry1のペア、レコードデータrx1、rxのペア、レコードデータry2、rzのペアに、組み直す。
図5について説明する。データ分類装置は、ペアリングにより組み直したレコードデータのペアを、各計算資源S1〜SNに戻す処理を行う。例えば、データ分類装置は、レコードデータrx2、ry1のペアを、計算資源S1に戻す。データ分類装置は、レコードデータry2、rzのペアを、計算資源SNに戻す。また、データ分類装置は、レコードデータrx1、rxのペアを、図示しない計算資源に戻す。
上述した図1〜図5に示す処理をデータ分類装置が実行することで、処理時間が長くなるレコードデータを各計算資源S1〜SNに分散させることができ、クエリデータの実行に要する時間を短縮することができる。データ分類装置が、ペアを組み直す場合には、安定ルームメイト問題に基づくペアリングを行う。安定ルームメイト問題に関する詳しい説明は後述する。
ここで、レコードデータのペアを、新たなペアに組み直す意味について説明する。図7および図8は、新たなペアに組み直す意味を説明するための図である。図7において、例えば、レコードデータrx、rzおよびレコードデータrx1、rz1はそれぞれ、組み直される前のレコードデータのペアとする。レコードデータrx、rz1およびレコードデータrz、rx1はそれぞれ、組み直された後のレコードデータのペアとする。なお、クエリデータqは、各レコードデータと、検索・照合処理を行うクエリデータである。図7において、同じ模様のレコードデータは、同じ計算資源に格納されているものとする。
図8の説明に移行する。レコードデータのペアが離れている方が、半径が同じ二つの旧の共通部分が少なくなる。この共通部分にクエリデータが含まれると、二つのデータが同時に長い処理時間を持つことを意味する。例えば、図8において、レコードデータrxの球を球1Xとし、レコードデータrzの球を球1Zとすると、共通部分は共通部分1XZとなる。この共通部分1XZにクエリデータが含まれると、レコードデータrx、rzの処理時間が長くなる。
クエリデータの分布を操作することは難しいため、共通集合1XZの体積を減らせば、二つのレコードデータrx、rzが同時に長い処理時間になる確率を減らすことができる。例えば、図8に示す例では、レコードデータrx、rzのペアを、レコードデータry、rzのペアに組み直すことで、共通集合の体積を減らす例を示す。ここで、レコードデータryの球を1Yとし、球1Yと球1Zとの共通部分を共通部分1YZとする。共通部分1XZと比較して、共通部分1YZの体積は少ないので、共通部分1YZにクエリが含まれる確率が低くなる。上記のように、相互に類似しないレコードデータにペアを組み直すことは、図8で説明したように、共通部分の体積を減らすことと同じである。
各レコードデータが元々から離れている場合でも、他のレコードデータ群と同時に考えより遠いレコードデータのペアに組み直すことで、より良いペアを作成することが可能となる。なお、データ分類装置は、ペアを作成する場合に、候補となる各レコードデータの選択において、片方のレコードデータの属する計算資源を固定し、ペアを固定した計算資源に戻すようにしても良いが、本実施例に係るデータ分類装置は、計算資源を固定しないことにする。
続いて、データ分類装置が、レコードデータのペアを計算資源に戻す場合の処理の一例について説明する。図9および図10は、ペアを計算資源に戻す場合の処理を説明するための図である。ペアとなる各レコードデータは、相互に類似しないようにペアリングされているが、計算資源S1〜SNには、処理時間が閾値を超えなかったレコードデータが格納されたままの状態となっている。このため、計算資源に戻したペアと、係る計算資源に格納された残りのレコードデータとが類似していると、クエリデータを処理する場合に、処理時間が長くなる場合がある。従って、データ分類装置は、ペアとの類似度が低いレコードデータを格納する計算資源に、ペアを配置する。
例えば、データ分類装置が、「安定マッチング問題」に基づいて、ペアを計算資源に戻す。図9に示すように、各計算資源S1〜SNから、ペアリングの対象として、レコードデータを2個ずつ抽出した場合には、各計算資源S1〜SNには、2個ずつ穴が開いている。このため、データ分類装置は、各ペアを、一組ずつ、計算資源に配置することができる。データ分類装置は、安定マッチング問題に基づいて、各ペアの配置先を判定する。
これに対して、図10に示すように、各計算資源S1〜SNから、ペアリングの対象として、偶数個ずつ抽出した場合には、各計算資源には、偶数個ずつ穴が開いている。データ分類装置は、ペアを受け入れるためのクオータがあるとみなし、「病院研修医問題」に基づいて、各ペアの配置先を判定する。例えば、計算資源S1から4個のレコードデータを抽出している場合には、データ分類装置は、計算資源S1を、計算資源S1−1、計算資源S1−2と見なして、安定マッチングを行う。
次に、本実施例のデータ分類装置が利用する安定マッチング問題(Stable marriage problem, Stable matching problem)の一例について説明する。安定マッチング問題は、男N人と女N人がいて、各男は女の希望リストを持ち、各女は男の希望リストを持っている場合に、男女の間の安定なペア達を作る問題である。ここで、男女間のマッチングが与えられた場合に、現在のペアを組んでいる相手よりも互いに好ましい相手がいる場合、彼らは駆け落ちをしてしまう。そのようなペアをブロッキングペアと呼ぶ。このブロッキングペアの存在するマッチングを不安定マッチングと呼び、ブロッキングペアの存在しないマッチングを安定マッチングと呼ぶ。
図11は、安定マッチングと不安定マッチングとを説明するための図である。図11では、男4人と女4人の場合の安定マッチングと不安定マッチングとを示す。4人の男をそれぞれ1,2,3,4とし、4人の女をそれぞれa,b,c,dとする。男1,2,3,4は、女a,b,c,dに対する希望リストを持つ。例えば、男2の希望は、c,b,a,dの順となる。例えば、女bの希望は、2,1,4,3となる。
グループ20aでは、ペアはそれぞれ(1,a)、(2,c)、(3,b)、(4、d)となる。グループ20aには、ブロッキングペアが存在しないので、グループ20aの各ペアは、安定なマッチングと言える。
これに対して、グループ20bでは、ペアはそれぞれ(1,a)、(2,c)、(3,d)、(4,b)となる。グループ20bには、ブロッキングペア(4,d)が存在する。男4は女bより女dが好ましく、女dは男3より男4が好ましいためである。このため、グループ20bの各ペアは、不安定なマッチングと言える。
次に、図11のグループ20aに示した安定マッチングを得るためのゲール−シャプレイ(Gale-Shapley)のアルゴリズムについて説明する。図12は、ゲール−シャプレイのアルゴリズムの処理手順の一例を示す図である。図12の処理を実行することで、安定マッチングを得ることができる。以下の説明では、ゲール−シャプレイのアルゴリズムを適宜、GSと表記する。
図12に示すように、GSは、n人の男性とn人の女性、および、各人の異性全員に対する希望リストを取得する(ステップS10)。GSは、独身の男性hが存在するか否かを判定する(ステップS11)。独身の男性hが存在しない場合には(ステップS11,No)、現在婚約しているペアの集合を安定マッチングとして出力する(ステップS12)。
一方、GSは、独身の男性hが存在する場合には(ステップS11,Yes)、男性hがまだプロポーズしていない女性のなかで、希望リストの最高位の女性dにプロポーズさせる(ステップS13)。GSは、プロポーズされた女性dが独身であるか否かを判定する(ステップS14)。
GSは、女性dが独身である場合には(ステップS14,Yes)、女性dと男性hとを婚約させ(ステップS15)、ステップS11に移行する。一方、GSは、女性dが独身でない場合には(ステップS14,No)、ステップS16に移行する。
ステップS16において、女性dの希望リストにおいて、男性h’の順位が男性hの順位よりも上位のとき、女性dは男性hからのプロポーズを断る。男性hの順位が男性h’の順位よりも上位のとき、女性は男性h’との婚約を解消し、男性hと婚約する。GSは、ステップS16の処理を終了した後に、ステップS11に移行する。
次に、ゲール−シャプレイのアルゴリズムを拡張した拡張ゲール−シャプレイについて説明する。以下の説明では、拡張ゲール−シャプレイを拡張GSと表記する。拡張GSは、アルゴリズムの途中で安定マッチングに至らないペア候補を希望リストから削除する。具体的に、拡張GSでは、男性hと女性dとを婚約させた場合に、女性dの希望リストから、男性hよりも優先順位の低い男性を削除する点でGSと相違する。このような処理を追加することで、GSよりも効率的に安定マッチングを実行することができる。
次に、病院研修医問題(Hospitals/Residents problem)について説明する。病院研修医問題は、研修医の配属先病院を決める問題である。上述した安定マッチング問題と異なるものは、病院は最大受け入れ人数を持っており、それ以上の研修医を受け入れないことである。病院が受け入れる最大受け入れ人数をクオータと表記する。全ての病院のクオータが1である場合には、病院研修医問題は、安定マッチング問題と同じ問題となる。
病院研修医問題の解き方は、以下の手順で、病院研修医問題を不完全リストの安定マッチング問題に直すことである。病院Aのクオータを「qA」とするとき、AをqA個に分割し、クオータが1であるA1,A2,A3,・・・,AqAに分ける。また、研修医の希望リストに含まれている病院AをqA個のA1からAqAにし、強引に順位付けを行う。
例えば、病院A、Bが存在し、病院Aのクオータを2、病院Bのクオータを1とする。ある研修医の希望リストにおいて、第1希望を病院B、第2希望を病院Aとする。この場合には、まず、病院Aを病院A1、病院A2に分け、病院A1、病院A2について強引に順位づけを行う。例えば、病院A1、A2に対して、第2希望または第3希望をランダムに割り当てる。そうすることで、例えば、ある研修医の希望リストについて、第1希望を病院B、第2希望を病院A1、第3希望を病院A2とする。この結果、不完全リストの安定マッチング問題となるため、上記の拡張GSを用いて解く。
次に、安定ルームメイト問題について説明する。安定ルームメイト問題は、2n人が居るときに、二人ずつのペアに分けることである。その際、各人は2n−1人に対するルームメイトになりたい希望の順位を持っている。本実施例に適用する場合には、各レコードデータが、希望リストを持ち、希望リストは、類似度が小さい他のレコードデータほど、ペアになりたい希望の順位を上の順位とする。出力は、安定なペアリングとなる。
図13は、安定ルームメイト問題のアルゴリズムの処理手順を示すフローチャートである。図13では一例として、処理の主体を、データ分類装置として説明を行う。図13に示すように、データ分類装置は、2n個の希望リストの入力を受け付ける(ステップS20)。ステップS20において、希望リストの長さは2n−1となる。
データ分類装置は、第1フェーズ処理を実行する(ステップS21)。データ分類装置は、安定ルームメイト解が存在するか否かを判定する(ステップS22)。データ分類装置は、安定ルームメイト解が存在しない場合には(ステップS22,No)、処理を終了する。
一方、データ分類装置は、安定ルームメイト解が存在する場合には(ステップS22,Yes)、第2フェーズ処理を実行する(ステップS23)。データ分類装置は、n個の安定なペアを出力する(ステップS24)。
次に、図13のステップS21に示した第1フェーズ処理の処理手順の一例について説明する。図14は、第1フェーズ処理の処理手順を示すフローチャートである。図14に示すように、データ分類装置は、プロポーズを保持されていない人がいるという条件、または、誰も全員からプロポーズを断られていない人がいないという条件を満たすか否かを判定する(ステップS30)。
データ分類装置は、ステップS30の条件を満たす場合には(ステップS30,Yes)、プロポーズが保持されていない人「X」を選択する(ステップS31)。データ分類装置は、「X」に「X」の希望リストのうち、プロポーズしていない最上位の人「Y」にプロポーズさせる(ステップS32)。
データ分類装置は、「Y」が既にプロポーズを保持しており、かつその相手が「X」よりも「Y」の希望リストで上位であるか否かを判定する(ステップS33)。データ分類装置は、「Y」が既にプロポーズを保持しており、かつその相手が「X」よりも「Y」の希望リストで上位である場合には(ステップS33,Yes)、「Y」に「X」からのプロポーズを断らせ(ステップS34)、ステップS30に移行する。
一方、データ分類装置は、「Y」がプロポーズを保持していない場合や、プロポーズを保持している場合の相手が「X」よりも「Y」の希望リストで下位である場合には(ステップS33,No)、ステップS35に移行する。データ分類装置は、「Y」に現在保持中の相手のプロポーズを断らせ、「X」からのプロポーズを保持させ(ステップS35)、ステップS30に移行する。なお、ステップS35において、「Y」がプロポーズ相手を保持していない場合には、「X」からのプロポーズを保持させる。
ステップS30の説明に戻る。データ分類装置は、ステップS30の条件を満たさない場合には(ステップS30,No)、全員からプロポーズを断られた人がいるか否かを判定する(ステップS36)。データ分類装置は、全員からプロポーズを断られた人がいる場合には(ステップS36,Yes)、安定マッチング解がないと判定し(ステップS37)、第1フェーズ処理を終了する。
一方、データ分類装置は、全員からプロポーズを断られた人がいない場合には(ステップS36,No)、安定マッチング解があると判定する(ステップS38)。データ分類装置は、「Y」の希望リストについて、所定の条件下のプロポーズ候補を削除し(ステップS39)、第1フェーズ処理を終了する。
ステップS39について具体的に説明する。前提として、「Y」が「X」からのプロポーズを保持しているものとする。データ分類装置は、「Y」の希望リストのなかで「X」よりも順位が下のプロポーズ候補を、「Y」の希望リストから削除する。また、データ分類装置は、各人の希望リストについて、断られたプロポーズの相手を削除する。また、データ分類装置は、上記の削除されたプロポーズ候補に対応するプロポーザーの希望リストから、プロポーズ候補を削除する。
次に、図13のステップS23に示した第2フェーズ処理の処理手順の一例について説明する。図15は、第2フェーズ処理の処理手順を示すフローチャートである。図15に示すように、データ分類装置は、全ての人の希望リストの長さが1という条件、または、誰かの希望リストが空であるという条件を満たすか否かを判定する(ステップS40)。
データ分類装置は、ステップS40の条件を満たさない場合には(ステップS40,No)、第2フェーズ処理を終了する。一方、データ分類装置は、ステップS40の条件を満たす場合には(ステップS40,Yes)、ステップS41に移行する。データ分類装置は、希望リストからall-or-nothing cycle a(1)、・・・、a(r)、b(1)、・・・、b(r)を探索する(ステップS41)。ここで、b(i)はa(i)の最上位であるため、b(i)はa(i)からのプロポーズを保持している。また、表記を簡単にするため、a(r+1)=a(1)、b(r+1)=b(1)とする。
データ分類装置は、全てのiに対し、b(i)がa(i)からのプロポーズを断るように制御する(ステップS42)。データ分類装置は、全てのiに対し、a(i)がb(i+1)へプロポーズし、b(i+1)がa(i)からのプロポーズを保持するように制御する(ステップS43)。データ分類装置は、全てのiに対し、a(i)の希望リストの最上位を消し、b(i)の希望リストの最下位を消す(ステップS44)。
データ分類装置は、b(i+1)の希望リストのうちa(i)以下である全ての「X」に対し、「X」の希望リストからb(i+1)を消す。また、データ分類装置は、b(i+1)の希望リストからa(i)以下である全てのXを消し(ステップS45)、ステップS40に移行する。
ここで、ステップS41に示したall-or-nothing cycleを探索する処理手順の一例について説明する。図16は、all-or-nothing cycleを探索する処理手順を示すフローチャートである。図16に示すように、データ分類装置は、削除済みの希望リストの長さが2以上である人の中から、一人選び、p(1)とする(ステップS51)。データ分類装置は、p(s+r)=p(s)を満たすsと正の整数r1が存在するか否かを判定する(ステップS52)。データ分類装置は、p(s+r1)=p(s)を満たす正の整数r1の内、最小のものをrとし、i=1、2、・・・、rに対し、a(i)=p(s+i−1)とする(ステップS53)。データ分類装置は、i=1、2、・・・、rに対し、b(i)をa(i)の希望リストの最上位とする(ステップS54)。データ分類装置は、a(1)、・・・、a(r)、b(1)、・・・、b(r)を出力する(ステップS55)。
一方、データ分類装置は、p(s+r)=p(s)を満たすsと正の整数r1が存在しない場合には(ステップS52,No)、ステップS56に移行する。データ分類装置は、q(i)をp(i)の希望リストの二番目の人とする(ステップS56)。
データ分類装置は、p(i+1)をq(i)の希望リストの最下位の人とし(ステップS57)、ステップS52に移行する。
次に、データ分類装置が、各希望リストから安定ルーム解を求める処理の一例について説明する。図17〜図22は、データ分類装置が、各希望リストから安定ルーム解を求める処理を説明するための図である。
図17について説明する。ここでは、各人1〜6の希望リストテーブル110cの一例を示す。希望リストテーブル110cにおいて、j行目が、j番目の人の希望リストを示す。例えば、人「1」の希望リストは1行目に示すものとなり、優先順位が高いものから順に、人4、6、2、5、3となる。
図18の説明に移行する。各人1〜6は、第1フェーズ処理に従って、プロポーズを行うと、保持状態となるプロポーズ元とプロポーズ先との関係は
人1→人6
人2→人3
人3→人5
人4→人2
人5→人4
人6→人1
となる。
これに対して、否定されるプロポーズ元とプロポーズ先との関係は、
人3→人4
人1→人4
人2→人6
人6→人5
となる。例えば、人3は、人4にプロポーズするが、人4は、人3よりも優先順位の高い人2からプロポーズを受けるため、人3からのプロポーズを否定する。
図18において、実線の円で囲まれた人は、保持状態となるプロポーズ先を示す。また、破線の円で囲まれた人は、プロポーズが否定されたプロポーズ先を示す。例えば、1行目において、人1は、人6にプロポーズし、人6にプロポーズが保持されていることを示す。また、人1は、人4にプロポーズし、人4にプロポーズが否定されたことを示す。
図19の説明に移行する。データ分類装置は、図14のステップS39に示した処理を行って、各人の希望リストから、不要な人を削除する処理を実行する。人1の希望リストに対応する1行目について説明する。人1は、人6によってプロポーズが保持されており、また、人1は、人6からのプロポーズを保持している。このため、人1の希望リストのうち、人2、5、3は、人1にとって見込みのないプロポーズ元となる。また、人1が人4に行ったプロポーズは否定されている。従って、データ分類装置は、人1の希望リストから、人4、2、5、3を削除する。
人2の希望リストに対応する2行目について説明する。人2は、人3によってプロポーズが保持されており、また、人2は、人4からのプロポーズを保持している。また、1行目に示したように、人2は、人1にとって見込みのないプロポーズ元であるため、2行目の人1は、見込みのないプロポーズ元となる。また、人2が人6に行ったプロポーズは否定されている。従って、データ分類装置は、人2の希望リストから、人6、1、を削除する。
人3の希望リストに対応する3行目について説明する。人3は、人5によってプロポーズが保持されており、また、人3は、人2からのプロポーズを保持している。また、1行目で示したように、人3は、人1にとって、見込みのないプロポーズ元であるため、3行目の人1は、見込みのないプロポーズ元となる。また、6行目で示すように、人3は、人6にとって、見込みのないプロポーズもとであるため、3行目の人6は、見込みのないプロポーズ元となる。従って、データ分類装置は、人3の希望リストから、人4、1、6を削除する。
人4の希望リストに対応する4行目について説明する。人4は、人2によってプロポーズが保持されており、また、人4は、人5からのプロポーズを保持している。人4の希望リストのうち、人1、3は、人4にとって見込みのないプロポーズ元となる。また、6行目で示すように、人4は、人6にとって、見込みのないプロポーズ元であるため、4行目の人6は、見込みのないプロポーズ元となる。従って、データ分類装置は、人4の希望リストから、人6、1、3を削除する。
人5の希望リストに対応する5行目について説明する。人5は、人4によってプロポーズが保持されており、また、人5は、人3からのプロポーズを保持している。人5の希望リストのうち、人6、1は、人5にとって見込みのないプロポーズ元となる。従って、データ分類装置は、人5の希望リストから、人6、1を削除する。
人6の希望リストに対応する6行目について説明する。人6は、人1によってプロポーズが保持されており、また、人6は、人1からのプロポーズを保持している。人6の希望リストのうち、人4、2、3は、人6にとって見込みのないプロポーズ元となる。また、人6が人5に行ったプロポーズは否定されている。従って、データ分類装置は、人6の希望リストから、人4、2、3を削除する。
データ分類装置が、上記処理を実行することにより、図19の希望リストテーブル110cは、図20に示す希望リストテーブル110cとなる。図20において、保持状態となるプロポーズ元とプロポーズ先との関係は、
人1→人6
人2→人3
人3→人5
人4→人2
人5→人4
人6→人1
となる。
図20の希望リストテーブル110cでは以下の性質が成り立つ。pの希望リストの最上位がqのとき、qはpのプロポーズを保持し、かつ、qの希望リストの最下位はpとなる。また、pの希望リストにqが入っているときは、qの希望リストにpが入っているときに限る。
データ分類装置は、図20の希望リストテーブル110cについて、all-or-nothing cycleを探索する。例えば、p(1)を2とすると、
a(1)=3、b(1)=5
a(2)=4、b(2)=2
となる。
例えば、図16の処理手順に基づくと、q(1)=5、p(2)=3となる。これは、q(i)をp(i)の希望リストの2番目の人とし、p(i+1)をq(i)の希望リストの最下位の人にするためである。そうすると、同様に、q(2)=2、q(3)=5となり、p(3)=4、p(4)=3となる。ここで、p(2)=p(4)=3となるため、p(2)→q(2)→p(3)→q(3)→p(4)(=p(2))というサイクルが検出される。また、p(2)=a(1)、p(3)=a(2)、b(1)をa(1)の希望リストの最上位、b(2)をa(2)の希望リストの最上位とすると、a(1)、a(2)、b(1)、b(2)は、上記の値となる。
データ分類装置は、全てのiに対し、b(i)はa(i)からのプロポーズを断るように制御する。また、データ分類装置は、全てのiに対し、a(i)がb(i+1)にプロポーズするように制御し、b(i+1)がa(i)からのプロポーズを保持するように制御する。また、データ分類装置は、全てのiに対し、a(i)のリストの最上位を消し、また、b(i)リストの最下位を消す。そうすると、プロポーズ元とプロポーズ先との関係は、
人1→人6
人2→人3
「人3→人2」
「人4→人5」
人5→人4
人6→人1
となる。
データ分類装置は、b(i+1)の希望リストのうちa(i)以下である全ての「X」に対し、「X」の希望リストからb(i+1)を消し、また、b(i+1)の希望リストからa(i)以下である全てのXを消す。データ分類装置が、係る処理を実行することで、図20に示した希望リストテーブル110cは、図21に示す希望リストテーブル110cに示すものとなる。すなわち、人1と人6のペア、人2と人3とのペア、人4と人5とのペアが、安定ルームメイト解となる。
次に、本実施例に係るデータ分類装置の構成の一例について説明する。図22は、本実施例に係るデータ分類装置の構成を示す機能ブロック図である。図22に示すように、このデータ分類装置100は、計算資源S1〜SN、記憶部110、入力部120、照合処理要求部130、データペア生成部140、マッチング処理部150、データ配置処理部160を有する。このうち、データペア生成部140は、抽出部に対応する。マッチング処理部150およびデータ配置処理部160は、分類部に対応する。
計算資源S1は、計算資源S1に配置された複数のレコードデータと、照合処理要求部130から取得するクエリデータとを照合し、クエリデータに対応するレコードデータを照合・検索する処理を実行する装置である。計算資源S1は、検索結果を外部装置に出力する。また、計算資源S1は、クエリデータによる照合・検索に要した処理時間を、レコードデータ毎に計測し、計測した結果を、中間テーブル110bに登録する。なお、計算資源S1は、図示しない生成部を有し、この生成部が、中間テーブル110bを生成しても良い。計算資源S2〜SNに関する処理の説明は、計算資源S1に関する説明と同様である。一般的に、クエリデータとレコードデータとが類似していれば処理時間が長くなる。このため、中間テーブル110bに示す処理時間は、クエリデータとレコードデータとの類似度を示す指標ともいえる。
記憶部110は、レコードデータテーブル110a、中間テーブル110b、希望リストテーブル110c、配置先情報110dを有する。記憶部110は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置に対応する。
レコードデータテーブル110aは、各計算資源S1〜SNに配置するレコードデータを有するテーブルである。図23は、レコードデータテーブルのデータ構造の一例を示す図である。図23に示すように、このレコードデータテーブル110aは、データ識別子とレコードデータとを対応付ける。データ識別子は、レコードデータを一意に識別する情報である。レコードデータは、各計算資源S1〜SNに配置されるデータである。例えば、データ識別子「001」に対応するレコードデータは「2.0,4.1,6.4」となる。ここでは、データ識別子と、レコードデータの組とを対応付ける例を示したが、単一のデータ識別子に、単一のレコードデータを対応付けてもよい。
中間テーブル110bは、クエリデータと、このクエリデータによって処理されたレコードデータの処理時間とを対応付けるテーブルである。例えば、中間テーブル110bのデータ構造は、図6に示した中間テーブル110bに対応する。
希望リストテーブル110cは、各レコードデータの希望リストの情報を保持するテーブルである。各レコードデータの希望リストには、ペアの対象として希望する複数のレコードデータが含まれる。希望リストにおいて、自レコードデータと他のレコードデータとの類似度に基づき、類似度の小さいものほど上位となる。
例えば、レコードデータ001〜004を対象とし、レコードデータ001と、他のレコードデータ002〜004との類似度をそれぞれ、10、20、30、40とする。この場合には、レコードデータ001の希望リストは、レコードデータ004、003、002となる。なお、類似度は、レコードデータ間の距離に対応するものであり、距離の近いレコードデータのペアほど、類似度が高くなる。
希望リストテーブル110cのデータ構造は、図17〜図22に示した希望リストテーブルに対応する。図17〜図22に示す例では、説明の便宜上、人「1〜6」の希望リストとしたが、例えば、人「1〜6」は、レコードデータ「001〜006」に対応するものとする。また、レコードデータ「001〜006」以外のレコードデータの希望リストも、希望リストテーブル110cに含まれるものとする。
配置先情報110dは、データの配置先を示す情報である。図24は、配置先情報のデータ構造の一例を示す図である。図24に示すように、この配置先情報110dは、データ識別子と、配置先とを対応付ける。データ識別子は、図23等で説明したデータ識別子に対応する。配置先は、データを配置する計算資源を一意に識別する情報である。例えば、図24において、データ識別子「001」に対応するデータの配置先が「計算資源S1」となっている。
図22の説明に戻る。入力部120は、各種の情報を照合処理要求部130およびデータペア生成部140に入力するための入力装置である。例えば、入力部120は、キーボードやマウス、タッチパネル等に対応する。例えば、利用者は、入力部120を操作して、照合処理要求部130にクエリデータを入力することで、照合要求を行う。また、利用者は、入力部120を操作して、マッチング処理部150に、閾値T0およびデータ配置要求を行う。閾値T0は、後述するように、処理時間と比較される閾値である。
照合処理要求部130は、入力部120からクエリデータを取得した場合に、各計算資源S1〜SNに対してクエリデータを出力し、照合処理要求を行う処理部である。
データペア生成部140は、処理時間が閾値T0以上となるレコードデータを対象にして、安定ルームメイト解を求め、安定なレコードデータのペアを生成する処理部である。例えば、データペア生成部140の処理は、上述した図3、図4に示した処理に対応する。データペア生成部140は、生成したレコードデータのペアの情報を、マッチング処理部150に出力する。以下において、データペア生成部140の処理の一例を具体的に説明する。
データペア生成部140は、入力部120から閾値T0とデータ配置要求を取得した場合に、中間テーブル110bを参照し、処理時間が閾値T0以上となるレコードデータを、レコードデータテーブル110aから取得する。なお、データペア生成部140は、処理時間が閾値T0以上となるレコードデータを、計算資源S1〜SNから取得しても良い。以下のデータペア生成部140の説明において、計算資源S1〜SNの数をNとする。計算資源iからあげられるデータの集合をX_iとする。各計算資源iについて、X_iの個数を、2*R_iとする。K=R_1+R_2+・・・+R_Nとする。データペア生成部140が取得した、全てのデータ集合を、データ集合Xとする。
データペア生成部140は、データ集合Xの各元aに対し、以下の処理を行う。データペア生成部140は、データ集合Xのa以外の元に対し、類似度を計算する。データペア生成部140は、データ集合Xのa以外の元を類似度の小さい順に並べることで、aの希望リストを生成する。データペア生成部140は、各元について上記処理を繰り返し実行することで、各元の希望リストを生成し、希望リストテーブル110cに登録する。
データペア生成部140は、希望リストテーブル110cを基にして、図13で説明したIrvingのアルゴリズムで安定ルームメイト解を求める。データペア生成部140は、安定ルームメイト解がある場合には、かかる解に従ってK個のレコードデータのペアを生成し、マッチング処理部150に出力する。
データペア生成部140は、安定ルームメイト解が存在しない場合には、貪欲法に基づいて、レコードデータのペアを生成する。ここで、貪欲法について説明する。データペア生成部140は、i番目のレコードデータを選択し、選択したレコードデータがペアになっていない場合には下記の処理を行う。データペア生成部140は、i番目のレコードデータの希望リストにおいて、まだペアになっていないレコードデータのうち、最上位のレコードデータとi番目のレコードデータとをペアとする。データペア生成部140は、上記処理をi番目〜K番目のレコードデータに対して実行する。なお、クオータqiをR_iとする。
マッチング処理部150は、レコードデータのペアと、計算資源S1〜SNとのマッチングを行い、マッチング結果を基にして、レコードデータのペアを、計算資源S1〜SNに戻す処理部である。例えば、マッチング処理部150の処理は、上述した図5の処理に対応する。以下の説明では、計算資源をS1、・・・、SNとし、計算資源の数をNとする。レコードデータのペアをp1、p2、・・・、pKとし、全てのレコードデータのペアの数をKとする。またクオータをq_1、q_2、・・・q_Nとする。
マッチング処理部150は、レコードデータのペアpiの各々(pi1,pi2)に対し、計算資源Sjに配置されている各レコードデータとの類似度を計算する。pi1と各レコードデータとの類似度の最大値をm(1,i,j)とする。pi2と各レコードデータとの類似度の最大値をm(2,i,j)とする。この場合には、マッチング処理部150は、ペアpiと計算資源Sjとの類似度m(i,j)を、m(1,i,j)とm(2,i,j)のうち、大きい方とする。K行N列の行列Dを定義し、行列Dの各(i,j)成分をm(i,j)とする。
マッチング処理部150は、行列Dのi行目を昇順にソートし、ペアpiに対する計算資源Sjの順位を決め、決めた順位をペアpiの希望リストLpiとする。このとき、j!=j’で、dij=dij’となる場合があるが、ソートの際にどちらが先に来ても良いものとする。マッチング処理部150は、行列Dのj列目を昇順にソートし、計算資源Sjに対するペアpiの順位を決め、決めた順位を計算資源Sjの希望リストLSjとする。
マッチング処理部150は、Lp1、・・・、LpKと、LS1、・・・、LSNを用いて拡張GSアルゴリズムで、病院研修医問題を解く。このとき、プロポーズするのは、レコードデータのペア側でも計算資源側でも良い。また、計算資源のクオータを、q_1、q_2、・・・、q_Nとする。マッチング処理部150は、マッチング結果を基にして、レコードデータの配置先を特定し、配置先情報110dを生成する。例えば、あるペアとマッチングされた計算資源が、計算資源Sjの場合には、かかるペアのレコードデータの配置先は、計算資源Sjとなる。
次に、本実施例に係るデータ分類装置100の処理手順について説明する。図25は、本実施例に係るデータ分類装置の処理手順を示すフローチャートである。図25に示すように、データ分類装置100のデータ配置処理部160は、レコードデータを複数の計算資源S1〜SNに配置する(ステップS101)。
データ分類装置100の入力部120は、ユーザから配置処理要求および閾値T0を受け付ける(ステップS102)。計算資源S1〜SNは、1個のクエリデータに対し、全てのレコードデータの処理時間を計測し、中間テーブル110bを生成する(ステップS103)。
データ分類装置100のデータペア生成部140は、中間テーブル110bを基にして、処理時間が閾値T0を超えるレコードデータを偶数個選択する(ステップS104)。データペア生成部140は、相互に類似しないレコードデータのペアを作成する(ステップS105)。
データ分類装置100のマッチング処理部150は、計算資源S1〜SNに配置済みのレコードデータとデータペアとの類似度に基づいて、類似しない計算資源にデータペアが配置されるように、安定マッチング解を求める(ステップS106)。データ分類装置100は、安定マッチング解を基にして、配置先情報110dを生成する(ステップS107)。データ配置処理部160は、配置先情報110dを基にして、レコードデータのペアを計算資源S1〜SNに配置する(ステップS108)。
次に、本実施例に係るデータ分類装置100の効果について説明する。データ分類装置100は、計算資源S1〜SNから、クエリデータに対する処理時間の長い偶数個のレコードデータを抽出し、抽出したレコードデータについて、相互に類似しないレコードデータをペアにする。そして、データ分類装置100は、レコードデータのペアを、係るペアと類似しないレコードデータを格納する計算資源に配置する。このような処理を行うことで、クエリデータの実行に要する時間を短縮できるデータベースを構築できる。
データ分類装置100は、計算資源S1〜SNが作成した、クエリデータに対するレコードデータの処理時間を示す中間テーブル110bを基にして、レコードデータのペアを生成する。このため、効率的に、処理時間の長く、相互に類似しないレコードデータのペアを生成することができる。
次に、図22に示したデータペア生成部140のその他の処理(1)について説明する。データペア生成部140は、希望リストに対して安定ルームメイト解を求めることで、相互に類似しないレコードデータのペアを求めていたが、これに限定されるものではない。データペア生成部140は、希望リストの安定マッチング解を求めることで、相互に類似しないレコードデータのペアを求めても良い。
データペア生成部140は、入力部120から閾値T0とデータ配置要求を取得した場合に、中間テーブル110bを参照し、処理時間が閾値T0以上となるレコードデータを、レコードデータテーブル110aから取得する。なお、データペア生成部140は、処理時間が閾値T0以上となるレコードデータを、計算資源S1〜SNから取得しても良い。
各計算資源iからあげられるデータの集合をX_iとする。各計算資源iについて、X_iの個数を、2*R_iとする。K=R_1+R_2+・・・+R_Nとする。データペア生成部140が取得した、全てのデータ集合を、データ集合Xとする。
データペア生成部140は、データ集合XからK個のレコードデータをランダムに選択し、選択したレコードデータの集合をデータ集合Yとし、その他の集合をデータ集合Zとする。データペア生成部140は、データ集合Yの各元aに対しデータ集合Zの各元との類似度を計算し、Zの元を類似度の小さい順に並べたリストを、aの希望リストとする。データペア生成部140は、データ集合Zの各元bに対しデータ集合Yの各元との類似度を計算し、Yの元を類似度の小さい順に並べたリストを、bの希望リストとする。例えば、データペア生成部140は、データ集合Yの元と、データ集合Zの元との距離を類似度として算出し、距離が短いほど、類似度が大きくなる。
データペア生成部140は、データ集合Yの各元の希望リストと、データ集合Zの各元の希望リストを基にして、ゲールシャプレイのアルゴリズムで安定マッチング解を求め、求めた安定マッチングに従い、レコードデータのペアを作成する。なお、クオータqiをR_iとする。ゲールシャプレイのアルゴリズムは、上述した図12の処理手順に対応する。
ところで、データペア生成部140は、安定ルームメイト解または安定マッチング解を求める場合に、以下のようにクオータを設定しても良い。
ある計算資源iからあげられるデータの集合をX_iとする。各計算資源iについて、X_iの個数を、2*R_iとする。K=R_1+R_2+・・・+R_Nとする。データペア生成部140が取得した、全てのデータ集合を、データ集合Xとする。また、各計算資源S1〜SNに割り振られているレコードデータの数を、それぞれ、n1、n2、・・・、nNとする。
データペア生成部140は、式(1)に基づいて、クオータq_iを求める。式(1)に含まれるMは、式(2)により定義される。また、式(1)に含まれるfloor(x)は、xを超えない最大の整数を表す。
Figure 0006435939
Figure 0006435939
なお、データペア生成部140は、式(3)に示す条件を満たす場合には、1〜Nまでの中からiをランダムに選択し、q_iを式(4)に示すように再定義する。
Figure 0006435939
Figure 0006435939
上述したクオータq_iの設定は、データペアを再度計算資源S1〜SNに割り振った場合に、各計算資源S1〜SNに配置されるレコードデータの数がほぼ等しくすることを目的としている。Mが全レコードデータの数であるため、均等に割り振るには、n_i−R_i+q_iがM/Nと等しくなるように、q_iが設定できれば良いが、クオータは非負の整数であることが望ましい。さらに、選択されるレコードデータが、最終的に計算資源S1〜SNに配置されるため、データペア生成部140は、クオータの和が式(3)の条件を満たさない場合には、式(4)により、クオータを調整する。
図22に示したデータペア生成部140のその他の処理(2)について説明する。データペア生成部140は、二個のレコードデータをペアにするのではなく、3個以上のU個のレコードデータをペアにしても良い。
データペア生成部140は、各計算資源iからあげられるデータの集合X_iからランダムにUの倍数の元を選択する。選択した元の個数をU*R_iとする。K=R_1+R_2+・・・+R_Nとし、選択された全てのデータ集合をXとする。データペア生成部140は、選択されなかったデータを、計算資源に戻す。
データペア生成部140は、データ集合Xの各元aに対し以下の処理を行う。データペア生成部140は、データ集合Xの元a以外の元に対し、類似度を計算する。データペア生成部140は、データ集合Xの元a以外の元の類似度を小さい順に並べたリストを、元aの希望リストとする。データペア生成部140は、データ集合Xの全ての元の希望リストに対し、全組み合わせを考え、安定ルームメイト解を求める。データペア生成部140は、安定ルームメイト解がある場合には、かかる解に従ってK個のレコードデータのペアを生成し、マッチング処理部150に出力する。
データペア生成部140は、安定ルームメイト解が存在しない場合には、貪欲法に基づいて、レコードデータのペアを生成する。ここで、貪欲法について説明する。データペア生成部140は、i番目のレコードデータを選択し、選択したレコードデータがペアになっていない場合には下記の処理を行う。データペア生成部140は、i番目のレコードデータの希望リストにおいて、まだペアになっていないレコードデータのうち、上位(U−1)件のレコードデータ達とi番目のレコードデータをペアとする。データペア生成部140は、上記処理を1番目〜U*K番目のレコードデータに対して実行する。なお、クオータqiをR_iとする。
次に、図22に示したマッチング処理部150のその他の処理について説明する。以下の説明では、計算資源をS1、・・・、SNとし、計算資源の数をNとする。レコードデータのペアをp1、p2、・・・、pKとし、各ペアのデータ数をUとする。マッチング処理部150は、レコードデータのペアpiの各々(pi1、pi2、・・・、pi(U))に対し、計算資源Sjに配置されているレコードデータとの類似度を計算する。piuとレコードデータとの類似度の最大値をm(u、i、j)とする。レコードデータのペアと計算資源との類似度m(i,j)をm(1,i,j)、・・・、m(U,i,j)の最大値とする。K行N列の行列Dを定義し、行列Dの各(i,j)成分がm(i,j)であるものとする。
マッチング処理部150は、行列Dのi行目を昇順にソートし、ペアpiに対する計算資源Sjの順位を決め、決めた順位をペアpiの希望リストLpiとする。このとき、j!=j’で、dij=dij’となる場合があるが、ソートの際にどちらが先に来ても良いものとする。マッチング処理部150は、行列Dのj列目を昇順にソートし、計算資源Sjに対するペアpiの順位を決め、決めた順位を計算資源Sjの希望リストLSjとする。
マッチング処理部150は、Lp1、・・・、LpKと、LS1、・・・、LSNを用いた拡張GSアルゴリズムで、病院研修医問題を解く。このとき、プロポーズするのは、レコードデータのペア側でも計算資源側でも良い。また、計算資源のクオータを、q_1、q_2、・・・、q_Nとする。マッチング処理部150は、マッチング結果を基にして、レコードデータの配置先を特定し、配置先情報110dを生成する。例えば、あるペアとマッチングされた計算資源が、計算資源Sjの場合には、かかるペアのレコードデータの配置先は、計算資源Sjとなる。
次に、上記実施例に示したデータ分類装置100と同様の機能を実現するデータ分類プログラムを実行するコンピュータの一例について説明する。図26は、データ分類プログラムを実行するコンピュータの一例を示す図である。
図26に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、データペア生成プログラム207a、マッチング処理プログラム207b、データ配置処理プログラム207cを有する。CPU201は、データペア生成プログラム207a、マッチング処理プログラム207b、データ配置処理プログラム207cを読み出して、RAM206に展開する。
データペア生成プログラム207aは、データペア生成プロセス206aとして機能する。マッチング処理プログラム207bは、マッチング処理プロセス206bとして機能する。データ配置処理プログラム207cは、データ配置処理プロセス206cとして機能する。データペア生成プロセス206aの処理は、データペア生成部140の処理に対応する。マッチング処理プロセス206bの処理は、マッチング処理部150の処理に対応する。データ配置処理プロセス206cは、データ配置処理部160の処理に対応する。
なお、データペア生成プログラム207a、マッチング処理プログラム207b、データ配置処理プログラム207cについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a〜207cを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
データベースに格納された第1データ群に対して処理要求を実行し、
実行した処理結果から得られるパラメータを前記第1データ群に含まれるデータごとに取得し、
前記パラメータ間の第1類似度に基づいて第2のデータ群を少なくとも複数の前記第1のデータ群から抽出し、
前記第2のデータ群に含まれるデータの前記パラメータ間の第2類似度が互いに低くなるように、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成し、
前記第3のデータ群と前記第1のデータ群との組に含まれるデータの前記パラメータ間の第3類似度が低くなるように、前記第3のデータ群を前記第1のデータ群へ分類する
処理を実行することを特徴とするデータ分類プログラム。
(付記2)前記抽出する処理が利用する、前記パラメータは、前記処理要求によって処理された前記第1のデータ群に含まれる各データの処理時間であることを特徴とする付記1に記載のデータ分類プログラム。
(付記3)前記処理要求と前記第1のデータ群に含まれる各データの処理時間との関係を示す中間テーブルを生成する処理を更に実行し、前記第3のデータ群を生成する処理は、前記中間テーブルを基にして、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成することを特徴とする付記2に記載のデータ分類プログラム。
(付記4)前記第3のデータ群は、データのペアを含み、前記分類する処理は、ある第3のデータ群のデータのペアと前記第1のデータ群との組の第3類似度が、他の第3のデータ群のデータの組と前記第1のデータ群との組の第3類似度よりも低くなるようにして、前記第3のデータ群を前記第1のデータ群へ分類することを特徴とする付記1に記載のデータ分類プログラム。
(付記5)コンピュータが実行するデータ分類方法であって、
データベースに格納された第1データ群に対して処理要求を実行し、
実行した処理結果から得られるパラメータを前記第1データ群に含まれるデータごとに取得し、
前記パラメータ間の第1類似度に基づいて第2のデータ群を少なくとも複数の前記第1のデータ群から抽出し、
前記第2のデータ群に含まれるデータの前記パラメータ間の第2類似度が互いに低くなるように、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成し、
前記第3のデータ群と前記第1のデータ群との組に含まれるデータの前記パラメータ間の第3類似度が低くなるように、前記第3のデータ群を前記第1のデータ群へ分類する
処理を実行することを特徴とするデータ分類方法。
(付記6)前記抽出する処理が利用する、前記パラメータは、前記処理要求によって処理された前記第1のデータ群に含まれる各データの処理時間であることを特徴とする付記5に記載のデータ分類方法。
(付記7)前記処理要求と前記第1のデータ群に含まれる各データの処理時間との関係を示す中間テーブルを生成する処理を更に実行し、前記第3のデータ群を生成する処理は、前記中間テーブルを基にして、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成することを特徴とする付記6に記載のデータ分類方法。
(付記8)前記第3のデータ群は、データのペアを含み、前記分類する処理は、ある第3のデータ群のデータのペアと前記第1のデータ群との組の第3類似度が、他の第3のデータ群のデータの組と前記第1のデータ群との組の第3類似度よりも低くなるようにして、前記第3のデータ群を前記第1のデータ群へ分類することを特徴とする付記5に記載のデータ分類方法。
(付記9)データベースに格納された第1データ群に対して処理要求を実行し、実行した処理結果から得られるパラメータを前記第1データ群に含まれるデータごとに取得し、前記パラメータ間の第1類似度に基づいて第2のデータ群を少なくとも複数の前記第1のデータ群から抽出する抽出部と、
前記第2のデータ群に含まれるデータの前記パラメータ間の第2類似度が互いに低くなるように、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成し、
前記第3のデータ群と前記第1のデータ群との組に含まれるデータの前記パラメータ間の第3類似度が低くなるように、前記第3のデータ群を前記第1のデータ群へ分類する分類部と
を有することを特徴とするデータ分類装置。
(付記10)前記抽出部が利用する、前記パラメータは、前記処理要求によって処理された前記第1のデータ群に含まれる各データの処理時間であることを特徴とする付記9に記載のデータ分類装置。
(付記11)前記処理要求と前記第1のデータ群に含まれる各データの処理時間との関係を示す中間テーブルを生成する生成部を更に有し、前記分類部は、前記中間テーブルを基にして、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成することを特徴とする付記10に記載のデータ分類装置。
(付記12)前記第3のデータ群は、データのペアを含み、前記分類部は、ある第3のデータ群のデータのペアと前記第1のデータ群との組の第3類似度が、他の第3のデータ群のデータの組と前記第1のデータ群との組の第3類似度よりも低くなるようにして、前記第3のデータ群を前記第1のデータ群へ分類することを特徴とする付記9に記載のデータ分類装置。
100 データ分類装置
110 記憶部
120 入力部
130 照合処理要求部
140 データペア生成部
150 マッチング処理部
160 データ配置処理部

Claims (6)

  1. コンピュータに、
    データベースに格納された第1データ群に対して処理要求を実行し、
    実行した処理結果から得られるパラメータを前記第1データ群に含まれるデータごとに取得し、
    前記パラメーの第1類似度に基づいて第2のデータ群を少なくとも複数の前記第1のデータ群から抽出し、
    前記第2のデータ群に含まれるデータの前記パラメーの第2類似度が互いに低くなるように、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成し、
    前記第3のデータ群と前記第1のデータ群との組に含まれるデータの前記パラメーの第3類似度が低くなるように、前記第3のデータ群を前記第1のデータ群へ分類する
    処理を実行することを特徴とするデータ分類プログラム。
  2. 前記抽出する処理が利用する、前記パラメータは、前記処理要求によって処理された前記第1のデータ群に含まれる各データの処理時間であることを特徴とする請求項1に記載のデータ分類プログラム。
  3. 前記処理要求と前記第1のデータ群に含まれる各データの処理時間との関係を示す中間テーブルを生成する処理を更に実行し、前記第3のデータ群を生成する処理は、前記中間テーブルを基にして、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成することを特徴とする請求項2に記載のデータ分類プログラム。
  4. 前記第3のデータ群は、データのペアを含み、前記分類する処理は、ある第3のデータ群のデータのペアと前記第1のデータ群との組の第3類似度が、他の第3のデータ群のデータの組と前記第1のデータ群との組の第3類似度よりも低くなるようにして、前記第3のデータ群を前記第1のデータ群へ分類することを特徴とする請求項1に記載のデータ分類プログラム。
  5. コンピュータが実行するデータ分類方法であって、
    データベースに格納された第1データ群に対して処理要求を実行し、
    実行した処理結果から得られるパラメータを前記第1データ群に含まれるデータごとに取得し、
    前記パラメーの第1類似度に基づいて第2のデータ群を少なくとも複数の前記第1のデータ群から抽出し、
    前記第2のデータ群に含まれるデータの前記パラメーの第2類似度が互いに低くなるように、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成し、
    前記第3のデータ群と前記第1のデータ群との組に含まれるデータの前記パラメーの第3類似度が低くなるように、前記第3のデータ群を前記第1のデータ群へ分類する
    処理を実行することを特徴とするデータ分類方法。
  6. データベースに格納された第1データ群に対して処理要求を実行し、実行した処理結果から得られるパラメータを前記第1データ群に含まれるデータごとに取得し、前記パラメーの第1類似度に基づいて第2のデータ群を少なくとも複数の前記第1のデータ群から抽出する抽出部と、
    前記第2のデータ群に含まれるデータの前記パラメーの第2類似度が互いに低くなるように、前記第2のデータ群に含まれるデータを分類して、第3のデータ群を生成し、
    前記第3のデータ群と前記第1のデータ群との組に含まれるデータの前記パラメーの第3類似度が低くなるように、前記第3のデータ群を前記第1のデータ群へ分類する分類部と
    を有することを特徴とするデータ分類装置。
JP2015054207A 2015-03-18 2015-03-18 データ分類プログラム、データ分類方法およびデータ分類装置 Expired - Fee Related JP6435939B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015054207A JP6435939B2 (ja) 2015-03-18 2015-03-18 データ分類プログラム、データ分類方法およびデータ分類装置
EP16160107.5A EP3070658A1 (en) 2015-03-18 2016-03-14 Data classifying program, data classifying method, and data classifying deivce
US15/070,972 US20160275172A1 (en) 2015-03-18 2016-03-15 Non-transitory computer-readable recording medium, data classifying method, and data classifying device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015054207A JP6435939B2 (ja) 2015-03-18 2015-03-18 データ分類プログラム、データ分類方法およびデータ分類装置

Publications (2)

Publication Number Publication Date
JP2016173780A JP2016173780A (ja) 2016-09-29
JP6435939B2 true JP6435939B2 (ja) 2018-12-12

Family

ID=55527465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015054207A Expired - Fee Related JP6435939B2 (ja) 2015-03-18 2015-03-18 データ分類プログラム、データ分類方法およびデータ分類装置

Country Status (3)

Country Link
US (1) US20160275172A1 (ja)
EP (1) EP3070658A1 (ja)
JP (1) JP6435939B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10680985B2 (en) * 2016-12-12 2020-06-09 Facebook, Inc. Systems and methods for ranking content
US11593513B2 (en) * 2017-10-10 2023-02-28 Hakuhodo Dy Holdings Inc. Information processing system, data provision system, and related method
CN109857859B (zh) * 2018-12-24 2021-03-16 北京百度网讯科技有限公司 新闻信息的处理方法、装置、设备以及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3039953B2 (ja) * 1989-04-28 2000-05-08 株式会社日立製作所 並列化装置
JPH04102969A (ja) * 1990-08-22 1992-04-03 Nippon Steel Corp データベースへのデータ格納方法
JP2001160062A (ja) 1999-12-03 2001-06-12 Mitsubishi Electric Corp 画像データ検索装置
JP2005141401A (ja) * 2003-11-05 2005-06-02 Mitsubishi Electric Corp 双方向マッチングシステムおよび双方向マッチングプログラム
JP4379374B2 (ja) 2005-02-21 2009-12-09 ブラザー工業株式会社 コンテンツ提供システム、及び、プログラム
JP4725150B2 (ja) * 2005-03-22 2011-07-13 日本電気株式会社 指紋照合システム、指紋照合処理装置および指紋照合処理方法
JP4465328B2 (ja) * 2006-03-29 2010-05-19 三菱電機インフォメーションシステムズ株式会社 マッチングシステム
JP4256897B2 (ja) * 2006-06-16 2009-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション マッチング・サービスを提供するための装置、方法及びプログラム
JP2010010847A (ja) 2008-06-24 2010-01-14 Fujitsu Ltd 装置並びに携帯端末装置及び回転支持部品
US8365174B2 (en) * 2008-10-14 2013-01-29 Chetan Kumar Gupta System and method for modifying scheduling of queries in response to the balancing average stretch and maximum stretch of scheduled queries
JP5547747B2 (ja) * 2008-12-12 2014-07-16 コーニンクレッカ フィリップス エヌ ヴェ 異種トラスト・モデルを備えた分散及び自律医療環境における改良されたレコード・リンケージのための自動化されたアサーション再使用
JP2011086019A (ja) 2009-10-14 2011-04-28 Hitachi Ltd 人員割当システム
JP5678691B2 (ja) * 2011-01-28 2015-03-04 富士通株式会社 検索制御装置、検索制御プログラムおよび検索制御方法
US8959526B2 (en) * 2011-06-09 2015-02-17 Microsoft Corporation Scheduling execution of complementary jobs based on resource usage
JP5954407B2 (ja) * 2012-03-16 2016-07-20 富士通株式会社 評価サーバ、評価プログラム及び評価方法
US9817977B2 (en) * 2014-04-04 2017-11-14 Palo Alto Research Center Incorporated Methods for selection of collaborators for online threat mitigation

Also Published As

Publication number Publication date
EP3070658A1 (en) 2016-09-21
US20160275172A1 (en) 2016-09-22
JP2016173780A (ja) 2016-09-29

Similar Documents

Publication Publication Date Title
Abbas et al. Streaming graph partitioning: an experimental study
Whang et al. Overlapping community detection using seed set expansion
Kazemi et al. Geotrucrowd: trustworthy query answering with spatial crowdsourcing
JP5755822B1 (ja) 類似度算出システム、類似度算出方法およびプログラム
JP6561504B2 (ja) データ配置プログラム、データ配置方法およびデータ配置装置
JP6244996B2 (ja) 識別関数特定装置、識別関数特定プログラム、識別関数特定方法および生体認証装置
TW201923667A (zh) 基於樹狀搜尋的排程方法與使用此方法的電子裝置
JP6435939B2 (ja) データ分類プログラム、データ分類方法およびデータ分類装置
US20190146981A1 (en) Large scale social graph segmentation
Singh et al. ACOCA: ant colony optimization based clustering algorithm for big data preprocessing
JP2013156960A (ja) 生成プログラム、生成方法、および生成システム
US9792337B2 (en) In-database connectivity components analysis of data
CN105488176A (zh) 数据处理方法和装置
Kazakovtsev et al. Application of algorithms with variable greedy heuristics for k-medoids problems
Ashokkumar et al. Derived genetic key matching for fast and parallel remote patient data accessing from multiple data grid locations
Wu et al. Community detection with topological structure and attributes in information networks
Xu et al. FairSync: Ensuring Amortized Group Exposure in Distributed Recommendation Retrieval
JP2013242675A (ja) 分散情報制御装置、分散情報検索方法、データ分散配置方法、及びプログラム
US20160063042A1 (en) Computer-readable recording medium, data placement method, and data placement device
JP2018156458A (ja) 生成装置、生成方法、及び生成プログラム
Tang et al. Load balancing for partition-based similarity search
JP2014215839A (ja) 検索システム、情報処理装置および検索方法
Whang et al. Disinformation techniques for entity resolution
Kastner et al. A pareto-dominant clustering approach for pareto-frontiers
Guo et al. Multi-stage graph peeling algorithm for probabilistic core decomposition

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181010

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: 20181016

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181029

R150 Certificate of patent or registration of utility model

Ref document number: 6435939

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees