(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023109601
(43)【公開日】2023-08-08
(54)【発明の名称】公平性判定装置、公平性判定方法及び公平性判定プログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20230801BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022011198
(22)【出願日】2022-01-27
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)令和4年1月12日にオンライン配布が開始された2022年暗号と情報セキュリティシンポジウム論文集にて公開 (2)令和4年1月19日、2022年暗号と情報セキュリティシンポジウムにてオンライン発表
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】中村 徹
(72)【発明者】
【氏名】磯原 隆将
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC12
(57)【要約】
【課題】マッチングにおける能力主義的な公平性を効率よく判定できる公平性判定装置、公平性判定方法及び公平性判定プログラムを提供すること。
【解決手段】公平性判定装置1は、二つの集合それぞれの各要素におけるペアの選好順位を取得する選好順位取得部11と、選好順位を総合して各要素の人気度を算出する人気度算出部12と、各要素を人気度の昇順にソートし人気順位を付与する人気順位算出部13と、人気順位毎に選好順位の最小値及び最大値を格納した判定テーブルを生成する判定テーブル生成部14と、判定テーブルにおいて、人気順位がi番目までの選好順位の最大値が、人気順位がi+k+1番目の選好順位の最小値+lより大きいiが存在しない場合に条件を満たすと判定するテーブル別判定部15と、二つの集合の双方について条件を満たすと判定された場合に能力主義的公平であると判定する公平性判定部16と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
互いに素な二つの集合それぞれの各要素における他方の集合の選好順序、及び当該二つの集合の間でマッチングされたペアの情報から、前記二つの集合それぞれの各要素におけるペアの選好順位を取得する選好順位取得部と、
前記二つの集合それぞれの各要素に対する選好順位を総合し、各要素の人気度を算出する人気度算出部と、
前記二つの集合それぞれについて、各要素を前記人気度の昇順にソートし、当該人気度が同値の場合に同じ人気順位を付与する人気順位算出部と、
前記二つの集合それぞれについて、前記人気順位毎に前記選好順位の最小値及び最大値を格納した判定テーブルを生成する判定テーブル生成部と、
前記判定テーブルにおいて、前記人気順位がi番目までの前記選好順位の最大値が、前記人気順位がi+k+1番目の前記選好順位の最小値+lより大きいiが存在しない場合に条件を満たし、存在する場合に条件を満たさないと判定するテーブル別判定部と、
前記二つの集合の双方について前記条件を満たすと判定された場合に能力主義的公平であると判定し、いずれかで前記条件を満たさないと判定された場合に能力主義的公平でないと判定する公平性判定部と、を備える公平性判定装置。
【請求項2】
前記人気順位算出部は、各要素を前記人気度の昇順、及び前記ペアの選好順位の昇順にソートする請求項1に記載の公平性判定装置。
【請求項3】
前記判定テーブル生成部は、前記二つの集合それぞれについて、最大の人気順位における前記選好順位の最大値の格納を省略する請求項1又は請求項2に記載の公平性判定装置。
【請求項4】
前記判定テーブル生成部は、前記二つの集合それぞれについて、最小の人気順位における前記選好順位の最小値の格納を省略する請求項1から請求項3のいずれかに記載の公平性判定装置。
【請求項5】
互いに素な二つの集合それぞれの各要素における他方の集合の選好順序、及び当該二つの集合の間でマッチングされたペアの情報から、前記二つの集合それぞれの各要素におけるペアの選好順位を取得する選好順位取得ステップと、
前記二つの集合それぞれの各要素に対する選好順位を総合し、各要素の人気度を算出する人気度算出ステップと、
前記二つの集合それぞれについて、各要素を前記人気度の昇順にソートし、当該人気度が同値の場合に同じ人気順位を付与する人気順位算出ステップと、
前記二つの集合それぞれについて、前記人気順位毎に前記選好順位の最小値及び最大値を格納した判定テーブルを生成する判定テーブル生成ステップと、
前記判定テーブルにおいて、前記人気順位がi番目までの前記選好順位の最大値が、前記人気順位がi+k+1番目の前記選好順位の最小値+lより大きいiが存在しない場合に条件を満たし、存在する場合に条件を満たさないと判定するテーブル別判定ステップと、
前記二つの集合の双方について前記条件を満たすと判定された場合に能力主義的公平であると判定し、いずれかで前記条件を満たさないと判定された場合に能力主義的公平でないと判定する公平性判定ステップと、をコンピュータが実行する公平性判定方法。
【請求項6】
請求項1から請求項4のいずれかに記載の公平性判定装置としてコンピュータを機能させるための公平性判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マッチングの公平性を判定するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
二部グラフにおけるマッチングの最適化問題は、労働者を仕事に割り当てる問題の数学モデルなどとして古くから研究されている。全体として満足度を最適化するマッチングは、重み付き最小完全二部グラフの最小フロー問題に帰着される。非特許文献1の安定結婚問題は、このマッチングに安定性という概念を採用した問題であり、安定なマッチングをO(n2)の計算量で見つけるアルゴリズムが提案されている。
【0003】
安定結婚問題については、これまでに様々な拡張問題が考えられており、拡張問題の一分野として、公平性の議論がある。非特許文献1のアルゴリズムによって見つかる安定なマッチングは、男性又は女性の一方に最適なマッチングであり、また、全体としてのコストの最適化などは考慮されていなかった。
そこで、最小コスト安定マッチング、最小後悔安定マッチング(非特許文献2)、男女平等安定マッチング(非特許文献3)など、安定結婚問題を拡張した最適化問題が研究されてきた。これらの問題は、全体最適化の意味合いでの公平性を目指している。
【0004】
ところが、このような全体最適化によって公平性を満足させるマッチング結果は、例えば、能力や評価の高い参加者にとっては、相対的に不利益をもたらすものである可能性があった。非特許文献4では、必ずしも安定とは限らない男女マッチングなどの問題において、能力主義的な公平性が定義され、また、どれくらい能力主義的公平であるかを定量的に評価できる指標が提案されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】D. Gale and L. S. Shapley. College admissions and the stability of marriage. The American Mathematical Monthly, Vol. 69, pp. 9-15, 1962.
【非特許文献2】R. W. Irving, P. Leather, and D. Gusfield. An efficient algorithm for the "optimal" stable marriage. Journal of the ACM, Vol. 34, No. 3, pp. 532-543, 1987.
【非特許文献3】A. Kato. Complexity of the sex-equal stable marriage problem. Japan Journal of Industrial and Applied Mathematics, Vol. 10, pp. 1-19, 1993.
【非特許文献4】中村徹,新田修也,磯原隆将.マッチングにおける個人主義的公平性とその侵害検知.コンピュータセキュリティシンポジウム2021(CSS2021),Vol. 1D1-1,2021.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献4では、能力主義的な公平性の定義が提案されたが、能力主義的公平性を満たすマッチングであるかどうかを判定する効率の良い手法については言及されていなかった。このため、公平なマッチングを探索する際に、マッチング候補が得られる度に発生する公平性の判定に掛かる処理負荷が課題となっていた。
【0007】
本発明は、マッチングにおける能力主義的な公平性を効率よく判定できる公平性判定装置、公平性判定方法及び公平性判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る公平性判定装置は、互いに素な二つの集合それぞれの各要素における他方の集合の選好順序、及び当該二つの集合の間でマッチングされたペアの情報から、前記二つの集合それぞれの各要素におけるペアの選好順位を取得する選好順位取得部と、前記二つの集合それぞれの各要素に対する選好順位を総合し、各要素の人気度を算出する人気度算出部と、前記二つの集合それぞれについて、各要素を前記人気度の昇順にソートし、当該人気度が同値の場合に同じ人気順位を付与する人気順位算出部と、前記二つの集合それぞれについて、前記人気順位毎に前記選好順位の最小値及び最大値を格納した判定テーブルを生成する判定テーブル生成部と、前記判定テーブルにおいて、前記人気順位がi番目までの前記選好順位の最大値が、前記人気順位がi+k+1番目の前記選好順位の最小値+lより大きいiが存在しない場合に条件を満たし、存在する場合に条件を満たさないと判定するテーブル別判定部と、前記二つの集合の双方について前記条件を満たすと判定された場合に能力主義的公平であると判定し、いずれかで前記条件を満たさないと判定された場合に能力主義的公平でないと判定する公平性判定部と、を備える。
【0009】
前記人気順位算出部は、各要素を前記人気度の昇順、及び前記ペアの選好順位の昇順にソートしてもよい。
【0010】
前記判定テーブル生成部は、前記二つの集合それぞれについて、最大の人気順位における前記選好順位の最大値の格納を省略してもよい。
【0011】
前記判定テーブル生成部は、前記二つの集合それぞれについて、最小の人気順位における前記選好順位の最小値の格納を省略してもよい。
【0012】
本発明に係る公平性判定方法は、互いに素な二つの集合それぞれの各要素における他方の集合の選好順序、及び当該二つの集合の間でマッチングされたペアの情報から、前記二つの集合それぞれの各要素におけるペアの選好順位を取得する選好順位取得ステップと、前記二つの集合それぞれの各要素に対する選好順位を総合し、各要素の人気度を算出する人気度算出ステップと、前記二つの集合それぞれについて、各要素を前記人気度の昇順にソートし、当該人気度が同値の場合に同じ人気順位を付与する人気順位算出ステップと、前記二つの集合それぞれについて、前記人気順位毎に前記選好順位の最小値及び最大値を格納した判定テーブルを生成する判定テーブル生成ステップと、前記判定テーブルにおいて、前記人気順位がi番目までの前記選好順位の最大値が、前記人気順位がi+k+1番目の前記選好順位の最小値+lより大きいiが存在しない場合に条件を満たし、存在する場合に条件を満たさないと判定するテーブル別判定ステップと、前記二つの集合の双方について前記条件を満たすと判定された場合に能力主義的公平であると判定し、いずれかで前記条件を満たさないと判定された場合に能力主義的公平でないと判定する公平性判定ステップと、をコンピュータが実行する。
【0013】
本発明に係る公平性判定プログラムは、前記公平性判定装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0014】
本発明によれば、マッチングにおける能力主義的な公平性を効率よく判定できる。
【図面の簡単な説明】
【0015】
【
図1】実施形態における公平性判定装置の機能構成を示す図である。
【
図2】実施形態における選好順位取得部がペアの選好順位を求めるアルゴリズムを示す図である。
【
図3】実施形態における人気度算出部が各要素の人気度を求めるアルゴリズムを示す図である。
【
図4】実施形態における人気順位算出部が各要素の人気順位を求めるアルゴリズムを示す図である。
【
図5】実施形態における判定テーブル生成部が判定テーブルを生成するアルゴリズムを示す図である。
【
図6】実施形態におけるテーブル別判定部が判定テーブル毎の能力主義的公平性を判定するアルゴリズムを示す図である。
【
図7】実施形態における公平性判定部16が緩和した(k,l)-能力主義的公平性を判定するアルゴリズムを示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例について説明する。
本実施形態の公平性判定方法は、二部グラフにおいて得られたマッチングを入力として、このマッチングが能力主義的公平性を満たすか否かを短時間で判定するものである。ここでは、男女のマッチングを例に説明するが、本実施形態は、ジョブマッチングなどの類似のユースケースにも適用可能である。
【0017】
マッチングのインスタンスIは、2つの互いに素な要素数nの集合MとWからなる。ここで、Mは男性集合、Wは女性集合である。各要素は、それぞれ他方の集合の要素に対し、選好順序(preference order)と呼ばれる狭義全順序を持つ。
マッチングXは、MとWのペアである。すなわち、X⊆M×Wである。ここでは簡単のため、必ず1対1のペアをn組作る場合のみ考える。
【0018】
マッチングXにおいて、男性mと女性wとがペアである、すなわち(m,w)∈Xのとき、X(m)=w,X(w)=mと表す。また、mの選好順序におけるwの順位をPm(w)と表し、これをmにおけるwの選好順位(preference rank)と呼ぶ。同様に、wにおけるmの選好順位をPw(m)と表す。
【0019】
本実施形態における個人主義的公平とは、能力又は評価がより高い者はより希望通りになるという考え方である。男女のマッチングにおいては、異性から選好順序上でより上位の(小さい)選好順位に指定される傾向にある人物を、評価の高い人物とみなす。
【0020】
ここでは、全ての異性からの選好順序上の選好順位の総和により人物の定量的な評価を行うことで、同性他者との比較を行う。あるマッチングにおける任意の人物aについて、その人物aよりも評価の低い同性他者bとペアになっている相手の選好順序上の選好順位が、その人物aとペアとなっている相手の選好順序上の選好順位よりも常に下位である(大きい)か等しいとき、このマッチングは個人主義的公平であるとする。
【0021】
m∈M及びw∈Wについて、G(m)=Σn
i=1Pwi(m)及びG(w)=Σn
i=1Pmi(w)を、それぞれm及びwの人気度(popularity)とする。
また、R(m)を、男性集合Mを人気度G(m)の昇順にソートした場合のmの順位とし、これをmの人気順位(popular rank)と呼ぶ。同様に、R(w)を、女性集合Wを人気度G(w)の昇順にソートした場合のwの人気順位とする。
なお、あるメンバm又はwについて、人気度G及び人気順位Rが小さいほど、より異性から人気のあるメンバとみなす。
ここで、ある集合H及びある自然数p∈Nについて、人気順位がpよりも小さい(評価が高い)Hの部分集合をH<pとすると、個人主義的公平性は、次のように定義できる。
【0022】
定義1: 任意のm∈M及びw∈Wについて、
(1)任意のm′∈M<R(m)について、
Pm′(X(m′))≦Pm(X(m))
かつ、
(2)任意のw′∈W<R(w)について、
Pw′(X(w′))≦Pw(X(w))
を満たすとき、マッチングXは、厳密な能力主義的公平である。
【0023】
ただし、定義1の条件を満たす厳密な能力主義的公平なマッチングは、任意の選好順序において、必ずしも存在するとは限らない。また、厳密な能力主義的な公平性を満たすものの、全体最適性を大きく損なうマッチングしか存在しない場合もある。
そこで、次のように緩和した条件に基づく能力主義的公平性の定義を示す。
・自分より人気順位が下位k番目以内の同性他者が自分よりも選好順位が小さい異性とマッチングするのを許容する。
・ある同性の2名について、それぞれがマッチングした相手の選好順位の差がl以内であれば差がないとみなし許容する。
【0024】
定義2: 任意のm∈M及びw∈Wについて、
(1)任意のm′∈M<R(m)-kについて、
Pm′(X(m′))≦Pm(X(m))+l
かつ、
(2)任意のw′∈W<R(w)-kについて、
Pw′(X(w′))≦Pw(X(w))+l
を満たすとき、このマッチングXは、(k,l)-能力主義的公平である。
【0025】
次に、緩和した能力主義的公平性を判定するための装置の機能構成と、処理アルゴリズムを示す。
なお、厳密な能力主義的公平性についても、緩和した(k,l)-能力主義的公平性のk=0,l=0となる特殊ケースであるから、本アルゴリズムを用いて判定できる。
【0026】
ここで、男性集合をM={m1,m2,…,mn}とし、女性集合をW={w1,w2,…,wn}とする。M,Wを配列として考え、これらの配列の要素aは、属性としてa.pref_rank,a.popularity,a.pop_rankを持つ構造体とする。
a.pref_rankは、aのペアのaにおける選好順位、すなわちPa(X(a))である。また、a.popularity及びa.pop_rankは、それぞれaの人気度及び人気順位である。
【0027】
図1は、本実施形態における公平性判定装置1の機能構成を示す図である。
公平性判定装置1は、サーバ装置又はパーソナルコンピュータなどの情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイスなどを備える。
【0028】
制御部10は、公平性判定装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0029】
記憶部20は、ハードウェア群を公平性判定装置1として機能させるための公平性判定プログラムを含む各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)などであってよい。
【0030】
制御部10は、選好順位取得部11と、人気度算出部12と、人気順位算出部13と、判定テーブル生成部14と、テーブル別判定部15と、公平性判定部16とを備える。
【0031】
選好順位取得部11は、互いに素な二つの集合M及びWそれぞれの各要素における他方の集合の選好順序、及びこれら二つの集合の間でマッチングされたペアの情報から、二つの集合それぞれの各要素におけるペアの選好順位を取得する。
【0032】
図2は、本実施形態における選好順位取得部11がペアの選好順位を求めるアルゴリズムPreferenceRankを示す図である。
入力は、マッチングのインスタンスI、及びマッチングXである(ステップ1)。なお、Iは、長さnの選好順位のリストが要素である、長さn(=|M|=|W|)の二つの配列である。
【0033】
選好順位取得部11は、要素数n回のループ(ステップ2)により、配列Mにおけるi番目の要素M[i]の属性pref_rankに対して、ペアの相手であるX(M[i])の選好順位PM[i](X(M[i]))を格納する(ステップ3)。
同様に、選好順位取得部11は、配列Wにおけるi番目の要素W[i]の属性pref_rankに対して、ペアの相手であるX(W[i])の選好順位PW[i](X(W[i]))を格納する(ステップ4)。
【0034】
選好順位取得部11は、各要素におけるペアの選好順位が属性pref_rankに格納された配列M及びWを出力する(ステップ6)。
【0035】
人気度算出部12は、二つの集合M及びWそれぞれの各要素に対する選好順位を総合し、各要素の人気度を算出する。
【0036】
図3は、本実施形態における人気度算出部12が各要素の人気度を求めるアルゴリズムPopularityを示す図である。
入力は、マッチングのインスタンスI、及び二つの配列M,Wである(ステップ1)。
【0037】
人気度算出部12は、要素数n回の二重ループ(ステップ2,3)により、配列Mにおけるi番目の要素M[i]の属性popularityに対して、配列Wの各要素におけるM[i]の選好順位を全要素について加算する(ステップ4)。
同様に、人気度算出部12は、配列Wにおけるi番目の要素W[i]の属性popularityに対して、配列Mの各要素におけるW[i]の選好順位を全要素について加算する(ステップ5)。
【0038】
人気度算出部12は、各要素の人気度が属性popularityに格納された配列M及びWを出力する(ステップ8)。
【0039】
人気順位算出部13は、二つの集合それぞれについて、各要素を人気度の昇順にソートして人気順位を付与する。このとき、人気順位算出部13は、人気度が同値の要素に対しては、同じ人気順位を付与する。
また、人気順位算出部13は、各要素を人気度の昇順、及びペアの選好順位の昇順にソートすることにより、後段の処理を効率化してもよい。
【0040】
図4は、本実施形態における人気順位算出部13が各要素の人気順位を求めるアルゴリズムPopularRankを示す図である。
入力は、選好順位及び人気度が各要素の属性として付与された配列であり、M及びWが順に入力される。
【0041】
まず、人気順位算出部13は、関数Sort(A)により、入力された配列Aを人気度及び選好順位の昇順にソートした配列A’を得る(ステップ2)。
なお、Sort(A)は、配列Aの入力に対して、属性popularityの値で昇順にソートし、同値の場合には属性pref_rankでさらに昇順にソートした配列A’を出力する関数である。
【0042】
次に、人気順位算出部13は、変数pre_score及びnext_rankを、それぞれ0に初期化した後(ステップ3,4)、要素数n回のループ処理を行う(ステップ5)。
【0043】
ループの中で、人気順位算出部13は、配列A’のi番目の要素の人気度(score=A’[i].popularity)がpre_scoreと異なる(大きい)場合に、next_rankをiに更新し(ステップ8)、pre_scoreをscoreに更新する(ステップ9)。そして、人気順位算出部13は、人気順位(A’[i].pop_rank)に、next_rankを格納する(ステップ11)。
すなわち、iが増加しても人気度が同値であった場合(ステップ7でFALSE)は、next_rankは更新されず、同じ人気順位が付与される。一方、人気度が増加した場合(ステップ7でTRUE)は、加算された人気順位(=i)が付与される。
【0044】
人気順位算出部13は、各要素の人気順位が属性pop_rankに格納された配列A’を出力する(ステップ13)。
【0045】
判定テーブル生成部14は、二つの集合それぞれについて、人気順位毎に選好順位の最小値及び最大値を格納した判定テーブルを生成する。
【0046】
図5は、本実施形態における判定テーブル生成部14が判定テーブルを生成するアルゴリズムMakeTableを示す図である。
入力は、各要素の属性に選好順位、人気度、人気順位が付与された配列であり、人気順位算出部13によりソートされた配列M’及びW’が順に入力される。
【0047】
まず、判定テーブル生成部14は、要素数n回のループ処理(ステップ2)により、判定テーブルに格納される最小値(Table[i].min)及び最大値(Table[i].max)を0に初期化する(ステップ3,4)。
続いて、変数pre_pop_rank,pre_pref_rank,pre_indexを、それぞれ0,0,1に初期化する(ステップ6~8)。
【0048】
次に、判定テーブル生成部14は、要素数n回のループ処理(ステップ9)の中で、入力された配列Aのi番目の要素の人気順位(A[i].pop_rank)がpre_pop_rankより変化した(大きくなった)場合に(ステップ10)、判定テーブルにおけるTable[i].min(i番目の人気順位における選好順位の最小値)にA[i].pref_rankを、Table[pre_index].max(一つ前の人気順位における選好順位の最大値)にpre_pref_rankを、それぞれ格納する(ステップ11,12)。
また、判定テーブル生成部14は、判定テーブルのi番目の要素(min)を更新したので、pre_indexをiに更新する(ステップ13)。
【0049】
一方、配列Aのi番目の要素の人気順位(A[i].pop_rank)がpre_pop_rankと変わらない場合(ステップ10)、判定テーブル生成部14は、判定テーブルへの値の格納を保留し、pre_pop_rankをA[i].pop_rankに、pre_pref_rankをA[i].pref_rankに、それぞれ更新する(ステップ15,16)。
【0050】
判定テーブル生成部14は、インデックスが人気順位であり、属性として各人気順位における選好順位の範囲(最小の選好順位min及び最大の選好順位max)を持つ判定テーブルTableを出力する(ステップ18)。
【0051】
なお、最大の人気順位における選好順位の最大値A[n].max、及び最小の人気順位における選好順位の最小値A[1].minは、後段の処理で参照されないため、判定テーブル生成部14は、これらの値の格納を省略してもよい。
【0052】
テーブル別判定部15は、生成された判定テーブルにおいて、人気順位がi番目までの選好順位の最大値が、人気順位がi+k+1番目の選好順位の最小値+lより大きいiが存在しない場合に能力主義的公平性の条件を満たし、存在する場合に条件を満たさないと判定する。
【0053】
図6は、本実施形態におけるテーブル別判定部15が判定テーブル毎の能力主義的公平性を判定するアルゴリズムJudgeを示す図である。
入力は、判定テーブルTableと、公平性を緩和した条件に関する定数k及びlである。
【0054】
まず、テーブル別判定部15は、変数prefer_maxを0に初期化する(ステップ2)。
【0055】
次に、テーブル別判定部15は、インデックスiを1からn-k-1まで変化させるループ処理(ステップ3)の中で、prefer_maxとTable[i].maxとを比較する(ステップ4)。テーブル別判定部15は、Table[i].maxの方が大きい場合に、prefer_maxを更新する(ステップ5)。これにより、prefer_maxには、i番目までの人気順位における選好順位の最大値が格納される。
【0056】
また、テーブル別判定部15は、ループ処理(ステップ3)の中で、prefer_maxと、i+k+1番目の人気順位における選好順位の最小値(Table[i+k+1])とを比較する。そして、Table[i+k+1]が0でなく、かつ、prefer_maxとの差がlより大きい場合、能力主義的公平性の条件を満たさないと判定される(ステップ7~9)。一方、全てのiでTable[i+k+1]が0か、又はprefer_maxとの差がl以下の場合、能力主義的公平性の条件を満たすと判定される(ステップ11)。
【0057】
公平性判定部16は、二つの集合M及びWの双方から生成された判定テーブルについて、テーブル別判定部15により条件を満たすと判定された場合に能力主義的公平であると判定し、いずれかで条件を満たさないと判定された場合に能力主義的公平でないと判定する。
【0058】
図7は、本実施形態における公平性判定部16が緩和した(k,l)-能力主義的公平性を判定するアルゴリズムFairJudgeを示す図である。
入力は、マッチングのインスタンスI、マッチングX、及び緩和した条件に関する定数k及びlである。
【0059】
まず、公平性判定部16は、選好順位取得部11(アルゴリズムPreferenceRank)を用いて、配列M及びWに選好順位を格納する(ステップ2)。
続いて、公平性判定部16は、人気度算出部12(アルゴリズムPopularity)を用いて、さらに人気度を格納した配列M’及びW’を得る(ステップ3)。
さらに、公平性判定部16は、人気順位算出部13(アルゴリズムPopularRank)を用いて、人気順位を格納した配列M”及びW”を得る(ステップ4,5)。
【0060】
次に、公平性判定部16は、判定テーブル生成部14(アルゴリズムMakeTable)を用いて、配列M”及びW”のそれぞれから、判定テーブルTable_M及びTable_Wを得る(ステップ6,7)。
続いて、公平性判定部16は、テーブル別判定部15(アルゴリズムJudge)を用いて、判定テーブルTable_M及びTable_Wのそれぞれについて、公平性の条件を満たすか否かを得る(ステップ8,9)。
そして、公平性判定部16は、判定テーブルのいずれも公平性の条件を満たす場合に(ステップ10)、全体として能力主義的公平性を満たすと判定し(ステップ11)、少なくともいずれかで条件を満たさない場合に、能力主義的公平性を満たさないと判定する(ステップ13)。
【0061】
本実施形態によれば、公平性判定装置1は、二つの集合それぞれについて、人気順位毎に選好順位の最小値及び最大値を格納した判定テーブルを生成し、この判定テーブルにおいて、人気順位がi番目までの選好順位の最大値が、人気順位がi+k+1番目の選好順位の最小値+lより大きいiが存在しない場合に条件を満たし、存在する場合に条件を満たさないと判定する。これにより、公平性判定装置1は、二つの集合の双方について条件を満たすと判定された場合に能力主義的公平であると判定し、いずれかで条件を満たさないと判定された場合に能力主義的公平でないと判定する。
これにより、公平性判定装置1は、判定テーブルを利用したアルゴリズムJudgeにおいて、1回のみのループ処理により、能力主義的公平性を判定できる。したがって、公平性の定義に単純に従った判定方法では集合の要素毎に他の要素との比較をするために、二重ループを伴うO(n2)の計算量が見込まれるのに比べて、本実施形態ではO(n)の計算量に抑えられる。この結果、能力主義的公平性を満たしたマッチングの探索に掛かる処理負荷が大きく低減される。
【0062】
また、公平性判定装置1は、集合の各要素を人気度の昇順、及びペアの選好順位の昇順にソートしておくことにより、アルゴリズムMakeTable、及びアルゴリズムJudgeが効率化されるので、さらに処理負荷を低減できる。
【0063】
さらに、公平性判定装置1は、判定テーブルのうち、アルゴリズムJudgeで使用しないデータの格納を省略して効率化することができる。具体的には、二つの集合それぞれについて、最大の人気順位における選好順位の最大値、及び最小の人気順位における選好順位の最小値、あるいはそのいずれかの格納を省略してもよい。
【0064】
なお、これにより、例えばインターネット上で能力主義的公平なマッチングサービスを効率的に提供できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0065】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0066】
公平性判定装置1による公平性判定方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0067】
1 公平性判定装置
10 制御部
11 選好順位取得部
12 人気度算出部
13 人気順位算出部
14 判定テーブル生成部
15 テーブル別判定部
16 公平性判定部
20 記憶部