(57)【要約】【課題】特定の志願者がマッチングに関する条件を有している場合も、安定したマッチングシステムを得る。【解決手段】  第１の最適化優先度リストファイル、第２の最適化優先度リストファイルおよび特別枠定員設定ファイルに記憶された、第１のＢ要素分離ＩＤまたは第２のＢ要素分離ＩＤと定員数との対応付けに基づいて、集合Ａの要素を、集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理を行うようにしている。【選択図】図２
2010176515.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素からなる集合Ａと複数の要素からなる集合Ｂとの各要素をマッチングするためのマッチングシステムであって、
上記集合Ｂの各要素のＢ要素ＩＤごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイルと、
上記集合Ａの各要素のＡ要素ＩＤごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイルと、
上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイルと、
上記Ａ要素ＩＤごとにＢ要素ＩＤに対する組み合わせ条件を記憶しているＡ要素条件ファイルと、
上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を定員数とする第１のＢ要素ＩＤと、上記特別枠定員数を定員数とする第２のＢ要素ＩＤを生成し、この定員数と第１のＢ要素ＩＤまたは、第２のＢ要素ＩＤとの対応付けを特別枠定員設定ファイルに記憶する定員処理手段と、
上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しない集合Ｂの要素を削除し、
Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、
一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第１の最適化優先度リストファイルを生成し、
さらに、上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しない集合Ａの要素を削除し、
Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、
一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第２の最適化優先度リストファイルを生成するＲＯＬ処理手段と、
上記第１の最適化優先度リストファイル、第２の最適化優先度リストファイルおよび上記特別枠定員設定ファイルに記憶された、上記第１のＢ要素ＩＤまたは第２のＢ要素ＩＤと上記定員数との対応付けに基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段と
を備えたことを特徴とするマッチングシステム。
【請求項２】
複数の要素からなる集合Ａと複数の要素からなる集合Ｂとの各要素をマッチングするためのマッチングシステムであって、
上記集合Ｂの各要素のＢ要素ＩＤごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイルと、
上記集合Ａの各要素のＡ要素ＩＤごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイルと、
上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイルと、
上記Ａ要素の少なくとも１つについて、上記Ａ要素ＩＤごとに、Ｂ要素ＩＤのそれぞれについてそのＢ要素ＩＤとのマッチングを許可するか否かに関する組み合わせ条件を記憶しているＡ要素条件ファイルと、
定員処理手段であって、
上記定員処理手段は、上記Ｂ要素ＩＤごとに、上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を特別枠外定員数とする第１のＢ要素分離ＩＤと、上記特別枠定員数を定員数とする第２のＢ要素分離ＩＤを生成し、
上記定員処理手段は、上記特別枠外定員数と第１のＢ要素分離ＩＤとの対応付けを特別枠定員設定ファイルに記憶し、
上記定員処理手段は、上記特別枠定員数と第２のＢ要素分離ＩＤとの対応付けを特別枠定員設定ファイルに記憶する
定員処理手段と、
上記第１の優先度リストファイルに基づいて第１の最適化優先度リストファイルを生成するとともに、上記第２の優先度リストファイルに基づいて第２の最適化優先度リストファイルを生成するＲＯＬ処理手段であって、
上記ＲＯＬ処理手段は、上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、上記第１の優先度リストファイルにおいて、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しないＢ要素ＩＤを削除し、
上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、上記Ａ要素条件ファイルに基づき、そのＡ要素が特別枠外定員対応であるか、または特別枠定員対応であるかを判定し、
上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠外定員数対応であると判定したときは、上記第１の優先度リストファイルにおいて、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素ＩＤに対応する第１のＢ要素分離ＩＤに置き換え、
上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、上記第１の優先度リストファイルにおいて、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素ＩＤに対応する第２のＢ要素分離ＩＤに置き換え、
上記ＲＯＬ処理手段は、上記第１の優先度リストファイルに基づいて第１の最適化優先度リストファイルを生成し、
上記ＲＯＬ処理手段は、上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、上記第２の優先度リストファイルにおいて、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しないＡ要素ＩＤを削除し、
上記ＲＯＬ処理手段は、上記Ｂ要素のそれぞれの上記第２の優先度リストファイルにおいて、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠外定員数対応であると判定したときは、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素に対応する第１のＢ要素分離ＩＤに置き換え、
上記ＲＯＬ処理手段は、上記Ｂ要素のそれぞれの上記第２の優先度リストファイルにおいて、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素に対応する第２のＢ要素分離ＩＤに置き換え、
上記ＲＯＬ処理手段は、上記第２の優先度リストファイルに基づいて第２の最適化優先度リストファイルを生成する
ＲＯＬ処理手段と、
マッチング処理を行うマッチング処理手段であって、
上記マッチング処理手段は、
上記第１の最適化優先度リストファイル、
上記第２の最適化優先度リストファイル、
上記特別枠定員設定ファイルに記憶された、上記特別枠外定員数と上記第１のＢ要素分離ＩＤとの対応付け、および、
上記特別枠定員設定ファイルに記憶された、上記特別枠定員数と上記第２のＢ要素分離ＩＤとの対応付け
に基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段と
を備えたことを特徴とするマッチングシステム。
【請求項３】
さらに、上記定員処理手段は、Ｂ要素ＩＤと、第１のＢ要素分離ＩＤまたは第２のＢ要素分離ＩＤとの対応付けを記憶した、分離情報ファイルを生成し、
上記マッチング処理手段は、上記分離情報ファイルを参照し、第１のＢ要素分離ＩＤおよび第２のＢ要素分離ＩＤをＢ要素ＩＤに統合して、Ａ要素ＩＤごとにマッチングされたＢ要素ＩＤを記憶することを特徴とする
請求項１または２に記載のマッチングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はマッチングシステムに関し、特に、双方向のそれぞれの希望をもとに組合せを決めるためのマッチングシステムに関する。
【背景技術】
【０００２】
例えば、就職志願者の集合と志願者を受け入れる企業の集合の間のマッチング問題のように、双方向に優先度を持つ集合間のマッチング問題においてマッチングを行うための手法が提案されつつある（例えば、非特許文献１参照。）。
【０００３】
ここで、各志願者は自分が就職したい企業を好みにより順位づけした優先度リストを持ち、一方各企業の方も受け入れたい志願者を順位づけした優先度リストを持つものとする。志願者ａの優先度リストＲＯＬ（ａ）は、企業の集合の部分集合であり、順位によって等号を含まない不等号によって順序づけられた全順序集合である。ここでは、志願者ａがｐをｐ'より好む場合に、ｐ＜ｐ'と書くことにする（具体例を挙げれば、ｐが優先度第１位で、ｐ'は優先度第３位の場合には、ｐ（＝１）＜ｐ'（＝３）となる。）。また、企業ｐの志願者に対する優先度リストＲＯＬ（ｐ）についても同様である。また、各企業には志願者を受け入れる採用枠（定員）がある。企業ｐの定員Ｑ（ｐ）は０以上の整数である。マッチングＸとは、志願者と企業とのペア（ａ，ｐ）からなる集合であって次の２つの条件を満たすものとする。
【０００４】
１．  任意の志願者ａに関して、ａを含むペア（ａ，ｐ）はＸにおいて１個以下である。
２．  任意の企業ｐに関して、ｐを含むペア（ａ，ｐ）はＸにおいて、企業の定員Ｑ（ｐ）個以下である。
【０００５】
マッチングの一例を図２１に示す。図２１では、志願者の集合｛ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７｝と企業の集合｛ｐ１，ｐ２，ｐ３，ｐ４｝の間のマッチングとして、｛（ａ１，ｐ１），（ａ２，ｐ３），（ａ３，ｐ４），（ａ５，ｐ３），（ａ６，ｐ４）｝が得られている。このマッチングでは、志願者ａ４，ａ７と企業ｐ２にはマッチング相手が存在しない。
【０００６】
また、図２２に志願者と企業の優先度リストの例を示す。それぞれの優先度リストでは上に記載されているものほど好ましい相手を示す。言い換えれば、下に行くほど順位が大きくなる。図２２の例では、志願者は３つの企業に対して、ｐ１＜ｐ４＜ｐ３という順序をつけている。企業は６人の志願者にａ７＜ａ１＜ａ４＜ａ３＜ａ５＜ａ６という順序をつけている。マッチングすることをまったく望まない相手は優先度リストに記載しない。
【０００７】
マッチング問題とは、志願者の集合と企業の集合と志願者および企業の優先度リストとが与えられたときに、志願者と企業の間の組合せを求める問題のことを言う。マッチング方法とは、マッチング問題に対する解法、すなわち、志願者と企業の間の組合せを求める方法のことである。従って、マッチングシステムとは、マッチング方法を実行するシステムのことである。
【０００８】
また、上記のようなマッチングには安定性を定義することができる。マッチングＸが安定であるのは、次の２つの条件が共に満たされる場合を言う。
【０００９】
１．すべての志願者（企業）は、自分の優先度リストに載せた企業（志願者）としかマッチングしない。
２．志願者と企業のすべてのペア（ａ，ｐ）のうち、マッチングＸに含まれないものは、いずれもブロッキングペアではない。ここで、ブロッキングペアとは次の３つの条件を共に満たすものである。
２．０．  ａはｐの優先度リストに記載され、かつ、ｐはａの優先度リストに記載されている。
２．１．  Ｘにおいてａはどの企業ともマッチングしていないか、またはＸにおいてａはｐ'とマッチングしていて、ａの優先度リストにおいてｐ＜ｐ'が成り立つ。
２．２．  Ｘにおいてｐがマッチングしている志願者数は定員Ｑ（ｐ）より少ないか、または、Ｘにおいてｐがマッチングしているある志願者ａ'が存在し、ｐの優先度リストにおいてａ＜ａ'が成り立つ。
【００１０】
マッチング問題においては、安定なマッチングを生成する方法が求められる。不安定なマッチングが得られた場合、自分が優先度リストに記載していない相手、すなわち、自分のまったく望まない相手とマッチングした志願者または企業が存在するか、あるいは、ブロッキングペアが存在する。ブロッキングペアを構成する志願者と企業の両者にとって、得られたマッチングよりブロッキングペアの相手の方が好ましいため、不安定なマッチングは公平でない。つまり、不安定なマッチングを生成する方法ではマッチングに対する信頼性が無くなり、マッチングの対象者がマッチングに参加する意思を損なうことになる。
【００１１】
図２３に、上記非特許文献１に書かれているＧａｌｅ−Ｓｈａｐｌｅｙアルゴリズムを用いた従来のマッチング方法を示すフローチャート図を示す。全志願者が順番に、まず自分の優先度リストで順位の一番小さい企業（すなわち、第１希望）から順番にプロポーズを行なうのが特徴である。
【００１２】
図２３の説明を行う前に、図２４を用いて簡単に概要を説明する。図２４の例は、４つの病院の集合と、それらの病院に就職を希望する８人の志願者の集合とのマッチング問題を想定している。明石さんから工藤さんまでの全志願者が順番に、まず自分の優先度リストで順位の一番小さい企業から順番にプロポーズを行なう。
【００１３】
明石さんは、第１希望が双川病院であるので、先ず、はじめに、明石さんは双川病院にプロポーズする。双方病院では、明石さんが優先度リストの４位にあるので、（明石，双川病院）が仮マッチングされる。
次に、井上さんがプロポーズを行う。井上さんの優先度リストにおいては、第１希望が双川病院であるので、井上さんは双川病院にプロポーズする。双川病院では、井上さんが優先度リストの５位にあり、かつ、双川病院の定員は２名でまだ１名分空いているので、（井上，双川病院）が仮マッチングされる。
次に、上野さんがプロポーズを行う。上野さんの優先度リストにおいては、第１希望が双川病院であるので、上野さんは双川病院にプロポーズする。双川病院では、上野さんが優先度リストの６位にあり、かつ、双川病院の定員は空きがないので、優先度リストの第２希望の病院にプロポーズを行う。第２希望の一山病院では、上野さんは１位であるので、（上野，一山病院）が仮マッチングされる。
【００１４】
次に、江口さんは、第１希望の一山病院にプロポーズするが、一山病院の優先度リストに江口さんの名前はないため、拒絶され、第２希望の双川病院にプロポーズするが、双川病院の優先度リストの７位で、かつ、定員に空きがないため、拒絶され、第３希望の美村病院にプロポーズすると、６位に名前があるため、（江口，美村病院）が仮マッチングされる。
次に、大川さんは、第１希望の双川病院にプロポーズする。双川病院の優先度リストで、大川さんは３位である。定員は２名であり、すでに２名が仮マッチングされている。しかしながら、仮マッチングされているのは、優先度リストにおける４位の明石さんと５位の井上さんである。このため、最も順位の大きい井上さんが除外され、（大川，双川病院）が仮マッチングされる。
除外された井上さんは、双川病院の次に自分の優先度リストでの順位が小さい病院に対してプロポーズをやり直す。当該病院は一山病院である。しかしながら、一山病院の優先度リストに井上さんの名前はないため、拒絶される。井上さんの優先度リストには第２希望までしか登録されていないため、井上さんは、すべての病院から拒絶されたことになる。
【００１５】
次に、川口さんの処理を行う。川口さんの優先度リストにおいては、第１希望が双川病院であるので、川口さんは双川病院にプロポーズする。双川病院では、川口さんは優先度リストの８位にあり、かつ、双川病院の定員は空きがないので、優先度リストの第２希望の病院にプロポーズを行う。第２希望の美村病院の優先度リストでは、川口さんの名前はないので、拒絶される。第３希望の一山病院でも同様に拒絶され、第４希望の四谷病院で、優先度リストの６位に名前があるので、（川口，四谷病院）が仮マッチングされる。
次に、木村さんは、第１希望の双川病院にプロポーズする。双川病院の優先度リストで、木村さんは１位である。定員は２名であり、すでに２名が仮マッチングされている。しかしながら、仮マッチングされているのは、優先度リストにおける４位の明石さんと３位の大川さんである。このため、最も順位の大きい明石さんが除外され、（木村，双川病院）が仮マッチングされる。
【００１６】
除外された明石さんは、双川病院の次に自分の優先度リストでの順位が小さい病院に対してプロポーズをやり直すが、明石さんの優先度リストには第１希望の双川病院しか登録されていないため、明石さんは、すべての病院から拒絶されたことになる。
次に、工藤さんは、第１希望の四谷病院にプロポーズする。四谷病院の優先度リストで、工藤さんは５位である。定員は２名であり、すでに１名が仮マッチングされているが、空きが１名分ある。そのため、（工藤，四谷病院）が仮マッチングされる。
【００１７】
ここで、すべての志願者が、いずれかの病院と仮マッチングされるか、または、自分の優先度リストに記載した病院すべてから拒絶されたので、処理は終了する。
マッチングの結果は、（大川，双川病院）、（木村，双川病院）、（上野，一山病院）、（江口，美村病院）、（川口，四谷病院）、（工藤，四谷病院）となり、明石さんと井上さんは自分の優先度リストに記載したすべての病院から拒絶されたことになった。
【００１８】
上記の図２３のフローチャートを用いて、図２４を例にして行ったこの処理について説明する。ステップＳ１００において、あらかじめ仮マッチングを空集合にする。ステップＳ１０１において、未処理の志願者がなければ終了し、あればその志願者の１人ａに対して以下の処理を行う。ステップＳ１０２において、志願者ａが優先度リストＲＯＬ（ａ）の何番目の企業に対してプロポーズするかの指標であるａ．ｉを１に設定する。これは、全志願者は順番に、まず自分の優先度リストで順位の一番小さい企業に対してプロポーズを行うことを示す。ステップＳ１０３において、優先度リストＲＯＬ（ａ）の要素数がａ．ｉより小さければ、志願者ａは最終的にどの企業ともマッチングできなかったことになり、ステップＳ１０１に戻る。一方、ステップＳ１０３において、優先度リストＲＯＬ（ａ）の要素数がａ．ｉより小さくなければ、ステップＳ１０４において、優先度リストＲＯＬ（ａ）のａ．ｉ番目の企業をｐとする。ステップＳ１０５において、ａがｐの優先度リストＲＯＬ（ｐ）に含まれなければ、ａ．ｉをａ．ｉ＋１に設定し直して、ステップＳ１０３に戻る。これは、プロポーズされた企業ｐはプロポーズした志願者ａがＲＯＬ（ｐ）に記載されていなければ拒絶し、拒絶された志願者ａは、自分の優先度リストＲＯＬ（ａ）での順位が企業ｐの次に小さい企業にプロポーズをやり直すことに相当する。一方、ステップＳ１０５において、ａがｐの優先度リストＲＯＬ（ｐ）に含まれていれば、ステップＳ１０６において、その時点でｐが仮マッチングしている志願者の数が定員Ｑ（ｐ）より少なければ、ペア（ａ，ｐ）を仮マッチングに加えてステップＳ１０１に戻る。一方、ステップＳ１０６において、その時点でｐが仮マッチングしている志願者の数が定員Ｑ（ｐ）より少なくなければ、ステップＳ１０７において、ｐと仮マッチングしている志願者の中で、ｐの優先度リストＲＯＬ（ｐ）で順位が最も大きいものをａ１とする。ａ１とプロポーズしている志願者ａとの間で、ＲＯＬ（ｐ）での順位を比較する。ａの順位の方が大きければ、ａ．ｉをａ．ｉ＋１に設定し直して、ステップＳ１０３に戻る。これは、ａの順位の方が大きければ企業ｐはａを拒絶することに相当する。拒絶された志願者ａは、ｐの次に自分の優先度リストＲＯＬ（ａ）での順位が小さい企業にプロポーズをやり直すことになる。このステップＳ１０７以降では企業ｐと仮マッチングしている志願者数が定員Ｑ（ｐ）と等しい。ステップＳ１０８において、ａ１の順位の方がａの順位より大きいので、ペア（ａ，ｐ）を仮マッチングに加え、ペア（ａ１，ｐ）を仮マッチングから除外し、ａをａ１に設定し直す。ステップＳ１０９において、ａ．ｉをａ．ｉ＋１に設定し直してステップＳ１０３に戻る。つまり、仮マッチングから除外された志願者（元のａ１）は、ｐの次に自分の優先度リストでの順位が小さい企業に対してプロポーズをやり直すことになる。図２３の処理が終了するのは、ステップＳ１０１において、すべての志願者が、いずれかの企業と仮マッチングされるか、または、自分の優先度リストに記載された企業すべてから拒絶されたときである。図２３の処理が終了した段階で最終的に得られた仮マッチングをマッチング結果とする。なお、Ｇａｌｅ−Ｓｈａｐｌｅｙアルゴリズムにより得られるマッチングは安定であることが非特許文献１に記載されている。
【先行技術文献】
【非特許文献】
【００１９】
【非特許文献１】「Ｔｈｅ  Ｓｔａｂｌｅ  Ｍａｒｒｉａｇｅ  Ｐｒｏｂｌｅｍ」、Ｄ．Ｇｕｓｆｉｅｌｄ  及び  Ｒ．Ｗ．Ｉｒｖｉｎｇ著、Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ、１９８９年、ｐ．９
【発明の概要】
【発明が解決しようとする課題】
【００２０】
以上のように、従来のマッチングシステムにおいては、志願者と企業のように１対１になる組み合わせを、安定したマッチング結果が得られると定評の高いＧａｌｅ−Ｓｈａｐｌｅｙアルゴリズムにより求めている。
ここで、志願者（参加者）側に、「ある条件に合致した企業（施設）とのマッチングしか許可しない」等の条件がある場合、志願者が条件に合致した企業のみを優先度リストに登録することで、条件を満たすマッチングを行うことができる。しかしながら、この方法では志願者に対して、条件に合致した企業を優先度リストに登録するように、十分に留意させる必要がある。また従来のマッチングシステムには、条件に合致された企業のみを登録しているかを確認する手段がないため、もし条件に合致しない企業が登録されていた場合、その人的ミスを排除させる方法がなく、志願者をその志願者が許可されていない企業とマッチさせてしまう可能性がある。
【００２１】
この発明は、かかる問題点を解決するためになされたものであり、特定の志願者が「ある条件に合致した企業（施設）とのマッチングしか許可しない」等の条件を有している場合も、その条件を満たしたマッチング結果を出力するマッチングシステムを得ることを目的としている。
【課題を解決するための手段】
【００２２】
この発明は、複数の要素からなる集合Ａと複数の要素からなる集合Ｂとの各要素をマッチングするためのマッチングシステムであって、上記集合Ｂの各要素のＢ要素ＩＤごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイルと、上記集合Ａの各要素のＡ要素ＩＤごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイルと、上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイルと、上記Ａ要素ＩＤごとにＢ要素ＩＤに対する組み合わせ条件を記憶しているＡ要素条件ファイルと、上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を定員数とする第１のＢ要素ＩＤと、上記特別枠定員数を定員数とする第２のＢ要素ＩＤを生成し、この定員数と第１のＢ要素ＩＤまたは、第２のＢ要素ＩＤとの対応付けを特別枠定員設定ファイルに記憶する定員処理手段と、上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しない集合Ｂの要素を削除し、Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第１の最適化優先度リストファイルを生成し、さらに、上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しない集合Ａの要素を削除し、Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第２の最適化優先度リストファイルを生成するＲＯＬ処理手段と、上記第１の最適化優先度リストファイル、第２の最適化優先度リストファイルおよび上記特別枠定員設定ファイルに記憶された、上記第１のＢ要素ＩＤまたは第２のＢ要素ＩＤと上記定員数との対応付けに基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段とを備えたことを特徴とするマッチングシステムである。
【００２３】
また、この発明は、複数の要素からなる集合Ａと複数の要素からなる集合Ｂとの各要素をマッチングするためのマッチングシステムであって、上記集合Ｂの各要素のＢ要素ＩＤごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイルと、上記集合Ａの各要素のＡ要素ＩＤごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイルと、上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイルと、上記Ａ要素の少なくとも１つについて、上記Ａ要素ＩＤごとに、Ｂ要素ＩＤのそれぞれについてそのＢ要素ＩＤとのマッチングを許可するか否かに関する組み合わせ条件を記憶しているＡ要素条件ファイルと、定員処理手段であって、上記定員処理手段は、上記Ｂ要素ＩＤごとに、上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を特別枠外定員数とする第１のＢ要素分離ＩＤと、上記特別枠定員数を定員数とする第２のＢ要素分離ＩＤを生成し、上記定員処理手段は、上記特別枠外定員数と第１のＢ要素分離ＩＤとの対応付けを特別枠定員設定ファイルに記憶し、上記定員処理手段は、上記特別枠定員数と第２のＢ要素分離ＩＤとの対応付けを特別枠定員設定ファイルに記憶する定員処理手段と、上記第１の優先度リストファイルに基づいて第１の最適化優先度リストファイルを生成するとともに、上記第２の優先度リストファイルに基づいて第２の最適化優先度リストファイルを生成するＲＯＬ処理手段であって、上記ＲＯＬ処理手段は、上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、上記第１の優先度リストファイルにおいて、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しないＢ要素ＩＤを削除し、上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、上記Ａ要素条件ファイルに基づき、そのＡ要素が特別枠外定員対応であるか、または特別枠定員対応であるかを判定し、上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠外定員数対応であると判定したときは、上記第１の優先度リストファイルにおいて、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素ＩＤに対応する第１のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、上記第１の優先度リストファイルにおいて、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素ＩＤに対応する第２のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記第１の優先度リストファイルに基づいて第１の最適化優先度リストファイルを生成し、上記ＲＯＬ処理手段は、上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、上記第２の優先度リストファイルにおいて、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しないＡ要素ＩＤを削除し、上記ＲＯＬ処理手段は、上記Ｂ要素のそれぞれの上記第２の優先度リストファイルにおいて、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠外定員数対応であると判定したときは、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素に対応する第１のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記Ｂ要素のそれぞれの上記第２の優先度リストファイルにおいて、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素に対応する第２のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記第２の優先度リストファイルに基づいて第２の最適化優先度リストファイルを生成するＲＯＬ処理手段と、マッチング処理を行うマッチング処理手段であって、上記マッチング処理手段は、上記第１の最適化優先度リストファイル、上記第２の最適化優先度リストファイル、上記特別枠定員設定ファイルに記憶された、上記特別枠外定員数と上記第１のＢ要素分離ＩＤとの対応付け、および、上記特別枠定員設定ファイルに記憶された、上記特別枠定員数と上記第２のＢ要素分離ＩＤとの対応付けに基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段とを備えたことを特徴とするマッチングシステムである。
【００２４】
さらに、上記定員処理手段は、Ｂ要素ＩＤと、第１のＢ要素分離ＩＤまたは第２のＢ要素分離ＩＤとの対応付けを記憶した、分離情報ファイルを生成し、上記マッチング処理手段は、上記分離情報ファイルを参照し、第１のＢ要素分離ＩＤおよび第２のＢ要素分離ＩＤをＢ要素ＩＤに統合して、Ａ要素ＩＤごとにマッチングされたＢ要素ＩＤを記憶してもよい。
【発明の効果】
【００２５】
この発明は、複数の要素からなる集合Ａと複数の要素からなる集合Ｂとの各要素をマッチングするためのマッチングシステムであって、上記集合Ｂの各要素のＢ要素ＩＤごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイルと、上記集合Ａの各要素のＡ要素ＩＤごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイルと、上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイルと、上記Ａ要素ＩＤごとにＢ要素ＩＤに対する組み合わせ条件を記憶しているＡ要素条件ファイルと、上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を定員数とする第１のＢ要素ＩＤと、上記特別枠定員数を定員数とする第２のＢ要素ＩＤを生成し、この定員数と第１のＢ要素ＩＤまたは、第２のＢ要素ＩＤとの対応付けを特別枠定員設定ファイルに記憶する定員処理手段と、上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しない集合Ｂの要素を削除し、Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第１の最適化優先度リストファイルを生成し、さらに、上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しない集合Ａの要素を削除し、Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第２の最適化優先度リストファイルを生成するＲＯＬ処理手段と、上記第１の最適化優先度リストファイル、第２の最適化優先度リストファイルおよび上記特別枠定員設定ファイルに記憶された、上記第１のＢ要素ＩＤまたは第２のＢ要素ＩＤと上記定員数との対応付けに基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段とを備えたことを特徴とするマッチングシステムであるので、特定の志願者がマッチングに関する条件を有している場合も、安定したマッチングシステムを得ることができる。
【図面の簡単な説明】
【００２６】
【図１】この発明の実施の形態１に係るマッチングシステムの全体の構成を示した構成図である。
【図２】この発明の実施の形態１に係るマッチングシステムを構成している各構成要素の内部構成を示した構成図である。
【図３】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図４】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図５】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図６】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図７】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図８】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図９】この発明の実施の形態１に係るマッチングシステムの処理の流れを示した流れ図である。
【図１０】この発明の実施の形態１に係るマッチングシステムの参加者条件ファイルの一例を示した説明図である。
【図１１】この発明の実施の形態１に係るマッチングシステムの参加者条件ファイルの一例を示した説明図である。
【図１２】この発明の実施の形態１に係るマッチングシステムの施設情報ファイルの一例を示した説明図である。
【図１３】この発明の実施の形態１に係るマッチングシステムの特別枠定員設定ファイルの一例を示した説明図である。
【図１４】この発明の実施の形態１に係るマッチングシステムの分離情報ファイルの一例を示した説明図である。
【図１５】この発明の実施の形態１に係るマッチングシステムの参加者ＲＯＬファイルの一例を示した説明図である。
【図１６】この発明の実施の形態１に係るマッチングシステムの施設ＲＯＬファイルの一例を示した説明図である。
【図１７】この発明の実施の形態１に係るマッチングシステムの最適化参加者ＲＯＬファイルの一例を示した説明図である。
【図１８】この発明の実施の形態１に係るマッチングシステムの最適化施設ＲＯＬファイルの一例を示した説明図である。
【図１９】この発明の実施の形態１に係るマッチングシステムの最適化マッチング結果格納ファイルの一例を示した説明図である。
【図２０】この発明の実施の形態１に係るマッチングシステムのマッチング結果格納ファイルの一例を示した説明図である。
【図２１】従来のマッチング方法におけるマッチングの一例を示した説明図である。
【図２２】従来のマッチング方法における優先度リストの一例を示した説明図である。
【図２３】従来のマッチング方法の処理の流れを示したフローチャートである。
【図２４】従来のマッチング方法を示した説明図である。
【発明を実施するための形態】
【００２７】
実施の形態１．
この発明の実施の形態１に係るマッチングシステムは、１対Ｍ（Ｍ≧１）の組合せを決定するためのシステムである。例を挙げて説明すれば、例えば、医学部の卒業生で研修を希望する研修希望者（以下、参加者とする。）は、１以上の医療研修施設（すなわち、大学病院、総合病院など。以下、施設とする。）で、研修を経験する必要がある。
【００２８】
参加者側には、卒業大学の指定や入学時、卒業時の条件等により、「ある条件に合致した施設（病院）とのマッチングしか許可しない」、あるいは「ある条件に合致する施設（病院）とのマッチングは許可しない」等の条件を有している参加者がいる。
本実施の形態では、このような条件を有する参加者が属していたとしても、その条件を満たしながら、安定マッチングを得ることを特徴としている。
【００２９】
図１は、この発明の実施の形態１に係るマッチングシステムの全体の構成を示した図である。図１に示すように、実施の形態１に係るマッチングシステムは、参加者と施設との組合せを決定するマッチング処理を行うためのマッチングサーバ１００と、マッチングサーバ１００の管理およびメンテナンス等を行うマッチング管理者端末４００と、参加者が操作して施設の希望順位などを入力するための参加者端末２００と、施設に勤務している施設管理者が操作して参加者の希望順位などを入力するための施設管理者端末３００とから構成されている。なお、マッチングサーバ１００、参加者端末２００、施設管理者端末３００、マッチング管理者端末４００は、インターネット等の通信網５００により接続されている。
【００３０】
図２は、図１に示した各構成要素の内部構成を示した図である。図２に示すように、マッチングサーバ１００内には、参加者条件ファイル（Ａ要素条件ファイル）１と、施設情報ファイル（定員数ファイル）２と、特別枠定員設定ファイル３と、分離情報ファイル４と、参加者ＲＯＬファイル（第１の優先度リストファイル）５と、施設ＲＯＬファイル（第２の優先度リストファイル）６と、最適化参加者ＲＯＬファイル（第１の最適化優先度リストファイル）７と、最適化施設ＲＯＬファイル（第２の最適化優先度リストファイル）８と、最適化マッチング結果格納ファイル９と、マッチング結果格納ファイル１０とが記憶されている。これらは、共通の１つの記憶装置内に記憶されていてもよく、あるいは、複数の記憶装置内に記憶されていてもよい。さらに、マッチングサーバ１００内には、通信網５００を介して外部との通信を行うための通信手段１１と、定員に関する処理を行う定員処理手段１２と、ＲＯＬファイルの作成処理を行うＲＯＬ処理手段１３と、マッチング手段１４とが設けられている。
【００３１】
図１０は、参加者条件ファイル１の一例を示した図である。図１０に示すように、参加者条件ファイル１には、ユーザＩＤ毎の施設コード条件（ユーザＩＤ毎の施設との組み合わせ条件）を記憶している。施設コード条件とは、上述したように、ある条件に合致した施設（病院）とのマッチングしか許可しない」、あるいは「ある条件に合致する施設（病院）とのマッチングは許可しない」等の条件のことを言う。すなわち、ユーザＩＤごとに、施設のそれぞれについてその施設とのマッチングを許可するか否かが記憶される。
ユーザＩＤ  ００１には、「施設コード  Ａ００１、Ａ００３は許可（その他の施設コードは許可しない）」との条件が設定され、ユーザＩＤ  ００４には、「施設コード  Ａ００２は、不許可（その他の施設コードは許可する）」との条件が設定されている。なお参加者条件ファイル１の項目に、許可施設コード、不許可施設コードのそれぞれの項目を設定し、その項目に該当の施設コードを記憶するように構成してもよい。また条件がない参加者（図１０の例では、ユーザＩＤ  ００２、００３）については、参加者条件ファイル１のレコードに記憶しないように構成してもよい。
【００３２】
図１１は、参加者条件ファイル１の別の一例を示した図である。図１１の例では、ユーザＩＤ毎の条件を施設コードではなく、概念的な条件で指定している。概念的な条件とは、その施設の所在地に関する条件や、その施設の定員数に関する条件を含む。例えば、ユーザＩＤ  ００１に対する条件は、「○×県に所在する施設のみ許可」であり、ユーザＩＤ  ００４に対する条件は、「定員３名未満の施設は、不許可」である。これらの条件は、参加者条件ファイル１を参照するときに、合わせて施設情報ファイル２や参加者に関する情報を記憶した参加者情報ファイル（図示せず）を参照することで、具体的な許可施設コード、不許可施設コードに展開される。たとえば、ある施設が「○×県に所在する施設」に該当するか否かは、その施設住所に「○×県」という文字列が含まれるか否かに基づいて判断される。また、マッチングサーバ１００が、参加者の出身大学に関する情報を記憶している場合には、「出身大学の所在都道府県に所在する施設のみ許可」という間接的な条件が指定されてもよい。
さらに、マッチングサーバ１００が、各都道府県の隣接関係を記憶している場合には、図１１のユーザＩＤ  ００５のように、「隣接都道府県」という条件が指定されてもよい。
なお図１０、１１のユーザＩＤ  ００１、００４、００５のユーザのように、施設コード条件を有するユーザのことを、以降、「条件付参加者」と称す。
【００３３】
図１２は、施設情報ファイル２の一例を示した図である。施設情報ファイル２には、研修を実施する各施設の情報が格納されている。すなわち、施設情報ファイル２には、例えば、各施設を特定するためのＩＤである施設コード、施設名、施設住所（施設の所在地）、定員数（参加者の受け入れ可能人数）、特別枠定員数（条件付参加者の受け入れ可能人数）などの情報が格納されている。
【００３４】
図１３は、特別枠定員設定ファイル３の一例を示した図である。特別枠定員設定ファイル３には、施設コードと、分離施設コードと、定員数と、特別枠定員対応かどうかを示す特別枠フラグとの情報が格納されている。特別枠定員設定ファイル３の施設コードと、分離施設コードと、定員数とは、施設情報ファイル２の各レコードの施設コード、定員数、特別枠定員数を参照して、特別枠定員数と、特別枠以外の定員数（すなわち特別枠外定員数）とを分離し、１つの施設コードに２つの分離施設コードを対応付け登録している。
例えば、施設情報ファイル２の施設コード  Ａ００１のレコードを参照すると、Ａ００１は定員数  １０で、その内訳として特別枠定員数が１であることがわかる。その情報から、特別枠定員設定ファイル３には、分離施設コードとして、Ａ００１１（特別枠外定員対応）とＡ００１２（特別枠定員対応）が登録され、定員数は９、１と記憶される。またＡ００１２は、特別枠定員に対応する分離施設コードであるため、特別枠フラグに１を設定する。「特別枠フラグ＝１」は、特別枠定員対応の施設コードであることを示す。
なお、施設コード  Ａ００２は、特別枠定員を持たない（特別枠定員数がゼロである）ので、特別枠外定員数に対応する分離施設コード  Ａ００２１のみが指定されている。
【００３５】
図１４は、分離情報ファイル４の一例を示した図である。分離情報ファイル４は、特別枠定員対応に分離した分離施設コードと、施設コードとの対応を記憶したものであり、施設コードと、分離施設コードと、特別枠フラグとの情報が格納されている。図１４に示した、上の２レコードにより、分離施設コード  Ａ００１１、Ａ００１２は、施設コード  Ａ００１に対応し、Ａ００１２は特別枠定員対応の施設コードであることがわかる。
【００３６】
図１５は、参加者ＲＯＬファイル５の一例を示した図である。参加者ＲＯＬファイル５には、各ユーザＩＤ毎に、各ユーザが希望する施設を希望順に並べたリストが格納されている。図１５においては、各ユーザ毎に、第１希望から順に第ｎ希望までの施設が順に格納されている。各ユーザは、例えば、インターネットのホームページ等から各施設の情報を得て、希望順位を決定する。なお、参加者ＲＯＬファイル５に、全ての施設を登録しても、一部の施設を登録してもよい。
【００３７】
図１６は、施設ＲＯＬファイル６の一例を示した図である。施設ＲＯＬファイル６には、各施設コード毎に、各施設が希望する参加者を希望順に並べたリストが格納されている。図１６においては、各施設毎に、第１希望から順に第ｎ希望までの参加者が順に格納されている。各施設は、例えば、参加者の面談等を行って参加者の情報を得て、希望順位を決定する。なお、施設ＲＯＬファイル６に、全ての参加者を登録しても、一部の参加者を登録してもよい。
図１５および図１６において、ｎの値は参加者ごとに又は施設ごとに異なってもよい。
【００３８】
図１７は、最適化参加者ＲＯＬファイル７の一例を示した図である。最適化参加者ＲＯＬファイル７は、参加者条件ファイル１と、特別枠定員設定ファイル３と、参加者により入力された、参加者ＲＯＬファイル５とを参照し、条件に合致しない組み合わせを削除したＲＯＬファイルである。
一例を示すと、参加者ＲＯＬファイル５には、ユーザＩＤ  ００１として、「施設コード  Ａ００２  順位  １、施設コード  Ａ００１  順位２」と登録されている。一方、参加者条件ファイル１を参照すると、ユーザＩＤ  ００１は、「施設コード  Ａ００１、Ａ００３のみ指定できる」という条件を有する条件付参加者であることがわかるため、「施設コード  Ａ００２、順位  １」と登録されるレコードは無効であることがわかる。そのため、該当のレコードは削除する。また、特別枠定員設定ファイル３を参照することにより、施設コード  Ａ００１の特別枠定員対応の分離施設コードは、Ａ００１２であることがわかるため、「施設コード  Ａ００１  順位２」のレコードを、「施設コード  Ａ００１２  順位１」と書き換えて登録する。ユーザが登録した順位１のレコードは条件に一致せず削除したため、「施設コード  Ａ００１２」が順位１となる。ユーザＩＤ  ００２は、参加者条件ファイル１に施設コード条件が登録されていないため、特別枠外定員対応として扱われる。すなわち、ユーザＩＤ  ００２について指定された施設コードは、すべて、その施設コードに対応する特別枠外定員対応の分離施設コードに書き換えて、最適化参加者ＲＯＬファイル７に登録する。
【００３９】
図１８は、最適化施設ＲＯＬファイル８の一例を示した図である。最適化施設ＲＯＬファイル８は、参加者条件ファイル１と、特別枠定員設定ファイル３と、施設管理者により入力された、施設ＲＯＬファイル６とを参照し、参加者が有する条件に合致しない組み合わせを削除したＲＯＬファイルである。
一例を示すと、施設ＲＯＬファイル６には、施設コード  Ａ００１として、「ユーザＩＤ  ００５  順位１、ユーザＩＤ  １２３  順位２」が登録されている。一方、参加者条件ファイル１を参照すると、図１１には図示していないが、「ユーザＩＤ  ００５」は特別枠定員対応（条件付参加者として、施設コード  Ａ００１とのマッチングは許可されている）であり、「ユーザＩＤ  １２３」は特別枠定員対応ではない（条件付参加者ではない）ことが判明したとする。その場合、「ユーザＩＤ  ００５」に対する施設コードは、Ａ００１２に変更され、「施設コード  Ａ００１２、ユーザＩＤ  ００５、順位  １」と登録される。また「施設コード  Ａ００１１、ユーザＩＤ  １２３、順位  １」と登録される。
【００４０】
施設コード  Ａ００２として、「ユーザＩＤ  ００２  順位１、ユーザＩＤ  ００４  順位２、ユーザＩＤ  ０１５  順位３」が登録されている。一方、参加者条件ファイル１を参照すると、「ユーザＩＤ  ００４は、施設コードＡ００２は不許可」であることが判明するため、「ユーザＩＤ  ００４  順位２」のレコードを削除し、「ユーザＩＤ  ００２  順位１、ユーザＩＤ  ０１５  順位２」と登録される。参加者の施設コード条件によりレコードが削除されると、次のレコードの順位が繰り上げられる。
図１７および図１８において、ｎの値は参加者ごとに又は施設ごとに異なってもよい。
【００４１】
図１９は、最適化マッチング結果格納ファイル９の一例を示した図である。最適化マッチング結果格納ファイル９には、マッチング処理の結果得られたマッチング結果が格納されている。
【００４２】
図２０は、マッチング結果格納ファイル１０の一例を示した図である。マッチング結果格納ファイル１０の施設コードは、最適化マッチング結果格納ファイル９と、分離情報ファイル４とを参照して、最適化マッチング結果格納ファイル９の施設コード（分離施設コード）を、変換したものである。例えば、分離情報ファイル４を参照して「ユーザＩＤ  ００１  施設コード  Ａ００１２」は、「ユーザＩＤ  ００１  施設コード  Ａ００１」と変換され、「ユーザＩＤ  ００２  施設コード  Ａ００３１」は、「ユーザＩＤ  ００２  施設コード  Ａ００３」と変換される。
このようにユーザＩＤと、割り当てられた施設の施設コードとが、それぞれ、対応付けて格納されるため、どの参加者が、どこの施設で研修を行うかを確認することができる。
なお、図１０から図２０に示したファイル構成で、行方向（横方向）の１行をレコードと呼ぶ。
【００４３】
図２の説明に戻る。図２に示すように、参加者端末２００内には、入力手段２０と、表示手段２１と、処理手段２２と、通信手段２３とが設けられている。
なお、施設管理者端末３００の内部構成は、参加者端末２００と同様であるため、ここでは説明を省略する。
【００４４】
マッチング管理者端末４００内には、入力手段３０と、表示手段３１と、処理手段３２と、通信手段３３とが設けられている。
【００４５】
次に、本実施の形態１に係るマッチングシステムの動作について説明する。図３は、マッチング管理者端末４００からのデータ入力処理について示した図であり、マッチング管理者が、参加者条件ファイル１または施設情報ファイル２の追加、更新または削除の処理を行うときの処理の流れを示している。図３に示すように、まず、マッチング管理者端末４００の処理手段３２は、マッチング管理者の操作により入力手段３０が受け付けた入力データを通信手段３３に受け渡す（ステップＳ１）。次に、マッチング管理者端末４００の通信手段３３が、マッチングサーバ１００の通信手段１１に当該入力データを送信する（ステップＳ２）。次に、マッチングサーバ１００の通信手段１１が、受信したデータ内容により、参加者条件ファイル１または施設情報ファイル２にデータの追加、更新または削除を行う（ステップＳ３）。
【００４６】
図４は、参加者端末２００からのデータ入力処理を示した図であり、参加者が希望順位を示す優先度リスト（ＲＯＬファイル）の入力を行うときの処理の流れを示している。図４に示すように、まず、参加者端末２００の処理手段２２は、参加者の操作により入力手段２０が受け付けた入力データを通信手段２３に受け渡す（ステップＳ１１）。次に、参加者端末２００の通信手段２３がマッチングサーバ１００の通信手段１１に当該入力データを送信する（ステップＳ１２）。次に、マッチングサーバ１００の通信手段１１が、受信したデータ内容をＲＯＬ作成手段１３に受け渡し、ＲＯＬ作成手段１３が、参加者ＲＯＬファイル５にデータの追加、更新または削除を行う。つまり、該当のユーザＩＤに対応するユーザＩＤ、施設コード、順位を記憶した１以上のレコードを参加者ＲＯＬファイル５に上書きする（ステップＳ１３）。
また、施設管理者端末３００からのデータ入力を受付けるときも、図４に示したフローチャートと同様の流れになる。なお、参加者条件ファイル１、施設情報ファイル２、参加者ＲＯＬファイル５、施設ＲＯＬファイル６へのデータの追加、更新、削除の処理はマッチング管理者端末４００から行なうこともできる。その場合は、それぞれのデータを何らかの記憶媒体により、管理者にファイル形式で受け渡し、管理者がマッチング管理者端末４００から一括してファイル更新作業を行なうことになる。
【００４７】
図５は、マッチングサーバ１００の定員処理手段１２による特別枠定員に関する処理を示した図である。図５に示すように、マッチングサーバ１００の定員処理手段１２が施設コードを表す変数をｎとしてｎの初期値に１を設定し、その後施設情報ファイル２の施設コード項目を参照することにより、予め登録されている施設コードの最大値を記憶する（ステップＳ２１）。なお、図１２等に示す施設コードは数ではなく文字列を含むが、ここでは、各施設コードはそれぞれ異なるｎの値に一意に対応するものとする。たとえば、施設コードＡ００１はｎ＝１に対応し、施設コードＡ００２はｎ＝２に対応する。これを実現する方法の一例として、施設情報ファイル２には、施設コードごとに、対応するｎの値を表す施設番号を関連付けて記憶してもよい。
次に、定員処理手段１２は、現在の施設コードが記憶されている施設コードの最大値より大きいかどうかを確認し（ステップＳ２２）、現在の施設コードが最大値より大きい場合は、処理を終了する。現在の施設コードが最大値以下の場合は、ステップＳ２３に処理が移り、該当の施設コードに特別枠定員数の指定があるかどうかを確認し（ステップＳ２３）、指定がある場合は、「定員数＝元の定員数−特別枠定員数」とする第１の分離施設コードと、「定員数＝特別枠定員数」とする第２の分離施設コードの情報を作成し、その後作成した第１の分離施設コード、第２の分離施設コードの情報を特別枠定員設定ファイル３に記憶する。また、元の施設コードと、第１の分離施設コード、第２の分離施設コードとの対応付けを分離情報ファイル４に記憶する（ステップＳ２６）。ここで、第１の分離施設コードおよび第２の分離施設コードは、対応する施設コードの末尾に、それぞれ「１」および「２」を追加することによって生成される。その後、マッチングサーバ１００の定員処理手段１２は、施設コードを１加算し（ステップＳ２５）、ステップＳ２２の処理に移る。
【００４８】
図１２、１３に示した、施設情報ファイル２と、特別枠定員設定ファイル３の例では、「施設コード  Ａ００１、定員数  １０、特別枠定員数  １」と記憶された施設情報ファイル２のレコードに基づき、特別枠定員設定ファイル３に「施設コード  Ａ００１１、定員数  ９」、「施設コード  Ａ００１２、定員数  １  特別枠フラグ１」のレコードが記憶され、また分離情報ファイル４に、「施設コード  Ａ００１、分離施設コード  Ａ００１１」、「施設コード  Ａ００１、分離施設コード  Ａ００１２、特別枠フラグ１」のレコードが記憶される。
またステップＳ２３の分岐で、該当の施設コードに特別枠定員数の指定がないと判定したときは、ステップＳ２４の処理に移る。ステップＳ２４の処理で、該当の施設コードに基づいて特別枠外定員対応の分離施設コードを作成し、この分離施設コードと定員数とを、特別枠定員設定ファイル３の施設コード、定員数として記憶し（ステップＳ２４）、その後施設コードを１加算し（ステップＳ２５）、ステップＳ２２の処理に移る。
以上、図５を用いて説明した処理で、特別枠定員設定ファイル３と分離情報ファイル４とが生成される。
【００４９】
図６は、マッチングサーバ１００のＲＯＬ処理手段１３による参加者ＲＯＬファイル５の最適化に関する処理を示した図である。図６に示すように、ＲＯＬ処理手段１３は参加者条件ファイル１、特別枠定員設定ファイル３、参加者ＲＯＬファイル５を読み込み（ステップＳ３１）、ユーザＩＤを表す変数をｎとしてｎの初期値に１を設定し、その後参加者ＲＯＬファイル５のユーザＩＤ項目を参照することにより、予め登録されているユーザＩＤの最大値を記憶する（ステップＳ３２）。次にユーザＩＤが記憶している最大値より大きいかどうかの比較を行い（ステップＳ３３）、ユーザＩＤが最大値より大きいと判定したときは処理を終了する。ユーザＩＤが最大値以下のときは、ステップＳ３４に処理が移り、参加者条件ファイル１の該当ユーザＩＤのレコードに施設コード条件が設定されているかどうかを確認する（ステップＳ３４）。ステップＳ３４の判定で、該当ユーザＩＤのレコードに施設コード条件が設定されているとしたときは、参加者ＲＯＬファイル５の該当ユーザＩＤのレコードを全て抜き出し、これをコピーして暫定最適化参加者ＲＯＬファイル（図示せず）として一時的に記憶装置に記憶する。その後、暫定最適化参加者ＲＯＬファイルの１レコードずつについて、施設コード条件と、特別枠定員設定ファイル３とを参照しながら、次の処理を繰り返す。
処理１：処理中のレコードのユーザＩＤ項目を参照し、これと同一のユーザＩＤ項目を有する参加者条件ファイル１のレコードを参照し、施設コード条件が指定されているか否か、および、処理中のレコードの施設コードがその施設コード条件に合致するか否かを判定する。施設コード条件が指定されており、かつ、処理中のレコードの施設コードがその施設コード条件に合致しない場合は、一時的に記憶した暫定最適化参加者ＲＯＬファイルから削除する。
処理２：施設コード条件が指定されており、かつ、処理中のレコードの施設コードがその施設コード条件に合致する場合は、特別枠定員設定ファイル３の施設コード項目が該当施設コードと同一で、特別枠フラグ＝１のレコードを参照し、分離施設コードの値を取得する。暫定最適化参加者ＲＯＬファイルにおいて、処理中のレコードの施設コードを、取得した分離施設コードに置き換える。
処理３：該当ユーザＩＤの全てレコードに対して処理が完了したら、暫定最適化参加者ＲＯＬファイルの順位項目の順位を１から１つずつ繰り上がるように、更新する。
なお、処理１〜３において、「施設コード条件に合致する施設コード」とは、施設コード条件として許可する施設コードが指定されている場合には指定された施設コードのいずれかに一致する施設コードを意味し、施設コード条件として許可しない施設コードが指定されている場合には指定された施設コードのいずれかにも一致しない施設コードを意味する。
この処理１〜３の処理を行った後、一時的に記憶した暫定最適化参加者ＲＯＬファイルのレコードをすべて最適化参加者ＲＯＬファイル７に追加し（ステップＳ３７）、ユーザＩＤを１加算して（ステップＳ３６）、ステップＳ３３の処理に戻る。
【００５０】
ステップＳ３４の判定で、該当ユーザＩＤのレコードに施設コード条件が設定されていないとしたときは、ステップＳ３５の処理に移り、参加者ＲＯＬファイル５の該当ユーザＩＤのレコードを全て抜き出し、これをコピーして暫定最適化参加者ＲＯＬファイルとして一時的に記憶装置に記憶する。その後、暫定最適化参加者ＲＯＬファイルの１レコードずつについて、特別枠定員設定ファイル３を参照しながら、次の処理を繰り返す。
処理４：特別枠定員設定ファイル３の施設コード項目が該当施設コードと同一で、特別枠フラグ≠１であるレコードを参照し、分離施設コードの値を取得する。暫定最適化参加者ＲＯＬファイルにおいて、該当レコードの施設コードを、取得した分離施設コードに置き換える。
処理４を行った後、一時的に記憶した暫定最適化参加者ＲＯＬファイルのレコードをすべて最適化参加者ＲＯＬファイル７に追加する（ステップＳ３５）。その後、ユーザＩＤを１加算して（ステップＳ３６）、ステップＳ３３の処理に戻る。
以上、図６を用いて説明した処理で、最適化参加者ＲＯＬファイル７が生成される。
【００５１】
次に図７は、マッチングサーバ１００のＲＯＬ処理手段１３による施設ＲＯＬファイル６の最適化に関する処理を示した図である。図７に示すように、ＲＯＬ処理手段１３は参加者条件ファイル１、特別枠定員設定ファイル３、施設ＲＯＬファイル６を読み込み（ステップＳ４１）、施設コードを表す変数をｎとしてｎの初期値に１を設定し、その後施設ＲＯＬファイル６の施設コード項目を参照することにより、予め登録されている施設コードの最大値を記憶する（ステップＳ４２）。次に施設コードが記憶している最大値より大きいかどうかの比較を行い（ステップＳ４３）、施設コードが最大値より大きいと判定したときは処理を終了する。施設コードが最大値以下のときは、ステップＳ４４に処理が移り、施設ＲＯＬファイル６の該当施設コードのレコードを全て抜き出し、これをコピーして暫定最適化施設ＲＯＬファイル（図示せず）として一時的に記憶装置に記憶する。その後、暫定最適化施設ＲＯＬの１レコードずつについて、参加者条件ファイル１と、特別枠定員設定ファイル３とを参照しながら、次のいずれかの処理を行う。
【００５２】
処理５：処理中のレコードのユーザＩＤ項目を参照し、これと同一のユーザＩＤ項目を有する参加者条件ファイル１のレコードを参照し、施設コード条件が指定されているか否か、および、その施設コードがその施設コード条件に合致するか否かを判定する。施設コード条件が指定されており、かつ、処理中のレコードの施設コードが施設コード条件に合致しない場合は、一時的に記憶した暫定最適化施設ＲＯＬファイルにからそのレコードを削除する。
処理６：施設コード条件が指定されており、かつ、処理中のレコードの施設コードが施設コード条件に合致する場合は、特別枠定員設定ファイル３の施設コード項目が該当施設コードと同一で、特別枠フラグ＝１のレコードを参照し、分離施設コードの値を取得する。処理中のレコードの施設コードを、取得した分離施設コードに置き換える。
処理７：施設コード条件が指定されていない場合（すなわち、参加者条件ファイル１のユーザＩＤ項目が該当レコードのユーザＩＤと同一のレコードを参照し、施設コード条件を有していない場合）は、特別枠定員設定ファイル３の施設コード項目が該当施設コードと同一で、特別枠フラグ≠１であるレコードを参照し、分離施設コードの値を取得する。処理中のレコードの施設コードを、取得した分離施設コードに置き換える。
この処理５〜７の処理を行い、未処理のレコードが存在するかどうか判定し（ステップＳ４５）、未処理レコードが存在するときは、次のレコードを処理対象として（ステップＳ４６）、ステップＳ４４に戻る。
ステップＳ４５で未処理ユーザＩＤが存在しないとしたときは、ステップＳ４７の処理に移り、一時的に記憶した暫定最適化施設ＲＯＬファイルのレコードを、順位項目の順位を１から１つずつ繰り上がるように更新した後、最適化施設ＲＯＬファイル８に追加し（ステップＳ４７）、ステップＳ４３に処理が戻る。
以上、図７を用いて説明した処理で、最適化施設ＲＯＬファイル８が生成される。
【００５３】
なお、上述の最適化参加者ＲＯＬファイル７の生成処理（図６）および最適化施設ＲＯＬファイル８の生成処理（図７）において、いったん各ＲＯＬファイルを抜き出して暫定最適化ＲＯＬファイルを作成しているが、変形例として、暫定最適化ＲＯＬファイルを作成せず、もとのＲＯＬファイルに対して直接処理を行ってもよい。たとえば、参加者ＲＯＬファイル５に対して図６の処理を行い、その結果を最適化参加者ＲＯＬファイル７（またはその一部）としてもよい。
【００５４】
図８は、マッチングサーバ１００のマッチング手段１４によるマッチング処理を示した図である。図８に示すように、マッチング手段１４は、最適化参加者ＲＯＬファイル７、最適化施設ＲＯＬファイル８、特別枠定員設定ファイル３を読み込み、これらのファイルに基づき、上述した図２３に示すＧａｌｅ−Ｓｈａｐｌｅｙアルゴリズムを用いたマッチング処理を行い、マッチ結果を最適化マッチング結果格納ファイル９に格納する（ステップＳ５１）。その後、分離情報ファイル４を参照し分離施設コードを元の施設コードに統合して、最適化マッチング結果格納ファイル９からマッチング結果格納ファイル１０を生成する。最適化マッチング結果格納ファイル９からマッチング結果格納ファイル１０を生成する際の変換の方法は、上述したとおりである。
【００５５】
図９は、マッチングサーバ１００の通信手段１１によるマッチング結果の通知の処理について示した図である。図９に示すように、まず、マッチングサーバ１００のマッチング手段９は、マッチング処理終了を通知手段１１に通知する（ステップＳ６１）。次に、マッチングサーバ１００の通信手段１１は、マッチング結果格納ファイル１０に記憶されたマッチング結果を、マッチング管理者端末４００の通信手段３３に通知する（ステップＳ６２）。次に、マッチング管理者端末４００の通信手段３３は、通知されたマッチング結果を処理手段３２に受け渡す（ステップＳ６３）。次に、マッチング管理者端末４００の処理手段３２は、受け渡されたマッチング結果を、インターネット等で公開する（ステップＳ６４）。
【００５６】
なおマッチング結果の公開については、図９に示した方法によらず、ファイル形式や結果を印刷した紙にて、参加者及び施設管理者に通知する方法もある。また、該当のマッチング結果を参加者端末２００または、施設管理者端末３００に通知するように構成してもよい。例えば、参加者端末２００がユーザＩＤ  ００１でログインされていたとすると、ユーザＩＤ  ００１がマッチされた施設情報（例えば、施設コード  Ａ００１に関する情報）を送信するように構成してもよい。
【００５７】
なお、上記の説明においては、研修を希望する参加者と受け入れ先の施設とのマッチング問題について説明したが、その場合に限らず、複数の要素からなる集合Ａ（上記の参加者に相当）と複数の要素からなる集合Ｂ（上記の施設に相当）との各要素をマッチングするマッチング問題であって、集合Ｂが特定の条件で分類されグループを構成し、そのそれぞれのグループがグループ定員数を有するときのマッチング問題のいずれにも適用できることはいうまでもない。
【００５８】
すなわち、この発明は、複数の要素からなる集合Ａ（参加者のグループ）と複数の要素からなる集合Ｂ（施設のグループ）との各要素をマッチングするためのマッチングシステムであって、上記集合Ｂの各要素のＢ要素ＩＤごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイル（施設情報ファイル２）と、上記集合Ａの各要素のＡ要素ＩＤごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイル（参加者ＲＯＬファイル５）と、上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイル（施設ＲＯＬファイル６）と、上記Ａ要素ＩＤごとにＢ要素ＩＤに対する組み合わせ条件（ユーザＩＤ毎の施設コード条件（ユーザＩＤ毎の施設との組み合わせ条件））を記憶しているＡ要素条件ファイル（参加者条件ファイル１）と、上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を定員数とする第１のＢ要素ＩＤ（特別枠フラグ＝１以外の分離施設コード）と、上記特別枠定員数を定員数とする第２のＢ要素ＩＤ（特別枠フラグ＝１の分離施設コード）を生成し、この定員数と第１のＢ要素ＩＤまたは、第２のＢ要素ＩＤとの対応付けを特別枠定員設定ファイルに記憶する定員処理手段（図６のステップＳ２４、Ｓ２６に相当）と、上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しない集合Ｂの要素を削除し、Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第１の最適化優先度リストファイルを生成し、さらに、  上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しない集合Ａの要素を削除し、Ａ要素ＩＤが特別枠定員数対応以外であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第１のＢ要素ＩＤに置き換え、一方、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤ対応の集合Ｂの要素のＢ要素ＩＤを第２のＢ要素ＩＤに置き換えた第２の最適化優先度リストファイルを生成するＲＯＬ処理手段（図６，７の処理に相当）と、上記第１の最適化優先度リストファイル、第２の最適化優先度リストファイルおよび上記特別枠定員設定ファイルに記憶された、上記第１のＢ要素ＩＤまたは第２のＢ要素ＩＤと上記定員数との対応付けに基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段（図８のステップＳ５１に相当）とを備えたマッチングシステムである。
なおこの構成は、請求項１の構成に対応する。
【００５９】
また、この発明は、複数の要素からなる集合Ａ（参加者のグループ）と複数の要素からなる集合Ｂ（施設のグループ）との各要素をマッチングするためのマッチングシステムであって、上記集合Ｂの各要素（施設）のＢ要素ＩＤ（施設コード）ごとに、マッチングで受け入れ可能な定員数と特別枠定員数とを記憶した定員数ファイル（施設情報ファイル２）と、上記集合Ａの各要素（参加者）のＡ要素ＩＤ（ユーザＩＤ）ごとに、上記集合Ｂの要素の全部または一部に対して一意に順位付けられた第１の優先度リストを記憶している第１の優先度リストファイル（参加者ＲＯＬファイル５）と、上記集合Ｂの各要素のＢ要素ＩＤごとに、上記集合Ａの要素の全部または一部に対して一意に順位付けられた第２の優先度リストを記憶している第２の優先度リストファイル（施設ＲＯＬファイル６）と、上記Ａ要素の少なくとも１つについて、上記Ａ要素ＩＤごとに、Ｂ要素ＩＤのそれぞれについてそのＢ要素ＩＤとのマッチングを許可するか否かに関する組み合わせ条件（ユーザＩＤ毎の施設コード条件（ユーザＩＤ毎の施設との組み合わせ条件））を記憶しているＡ要素条件ファイル（参加者条件ファイル１）と、定員処理手段（図６のステップＳ２４、Ｓ２６に相当）であって、上記定員処理手段は、上記Ｂ要素ＩＤごとに、上記定員数ファイルに記憶された定員数と特別枠定員数とを参照し、上記定員数から上記特別枠定員数を減算した数値を特別枠外定員数とする第１のＢ要素分離ＩＤ（特別枠フラグ≠１である分離施設コード）と、上記特別枠定員数を定員数とする第２のＢ要素分離ＩＤ（特別枠フラグ＝１である分離施設コード）を生成し、上記定員処理手段は、上記特別枠外定員数と第１のＢ要素分離ＩＤとの対応付けを特別枠定員設定ファイルに記憶し、上記定員処理手段は、上記特別枠定員数と第２のＢ要素分離ＩＤとの対応付けを特別枠定員設定ファイルに記憶する員処理手段と、上記第１の優先度リストファイルに基づいて第１の最適化優先度リストファイルを生成するとともに、上記第２の優先度リストファイルに基づいて第２の最適化優先度リストファイルを生成するＲＯＬ処理手段（図６，７の処理に相当）であって、上記ＲＯＬ処理手段は、上記第１の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、上記第１の優先度リストファイルにおいて、Ａ要素ＩＤごとに上記Ａ要素条件ファイルに記憶された組み合わせ条件に一致しないＢ要素ＩＤを削除し、上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、上記Ａ要素条件ファイルに基づき、そのＡ要素が特別枠外定員対応であるか、または特別枠定員対応であるかを判定し、上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠外定員数対応であると判定したときは、上記第１の優先度リストファイルにおいて、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素ＩＤに対応する第１のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、上記第１の優先度リストファイルにおいて、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素ＩＤに対応する第２のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記第１の優先度リストファイルに基づいて第１の最適化優先度リストファイルを生成し、上記ＲＯＬ処理手段は、上記第２の優先度リストファイル、上記特別枠定員設定ファイルおよび上記Ａ要素条件ファイルを参照し、上記第２の優先度リストファイルにおいて、Ｂ要素ＩＤごとに上記Ａ要素条件に記憶された組み合わせ条件に一致しないＡ要素ＩＤを削除し、上記ＲＯＬ処理手段は、上記Ｂ要素のそれぞれの上記第２の優先度リストファイルにおいて、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠外定員数対応であると判定したときは、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素に対応する第１のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記Ｂ要素のそれぞれの上記第２の優先度リストファイルにおいて、上記Ａ要素のそれぞれについて、Ａ要素ＩＤが特別枠定員数対応であると判定したときは、該当のＡ要素ＩＤに関連付けられたＢ要素ＩＤを、そのＢ要素に対応する第２のＢ要素分離ＩＤに置き換え、上記ＲＯＬ処理手段は、上記第２の優先度リストファイルに基づいて第２の最適化優先度リストファイルを生成するＲＯＬ処理手段と、マッチング処理を行うマッチング処理手段（図８のステップＳ５１に相当）であって、上記マッチング処理手段は、上記第１の最適化優先度リストファイル、上記第２の最適化優先度リストファイル、上記特別枠定員設定ファイルに記憶された、上記特別枠外定員数と上記第１のＢ要素分離ＩＤとの対応付け、および、上記特別枠定員設定ファイルに記憶された、上記特別枠定員数と上記第２のＢ要素分離ＩＤとの対応付けに基づいて、上記集合Ａの要素を、上記集合Ｂのいずれかの要素に対して、マッチング処理を行うマッチング処理手段とを備えたことを特徴とするマッチングシステムであるということもできる。
この構成は、請求項２の構成に対応する。
【００６０】
さらに、この発明のマッチングシステムは、上記定員処理手段は、Ｂ要素ＩＤと、第１のＢ要素ＩＤまたは第２のＢ要素ＩＤとの対応付けを記憶した、分離情報ファイルを生成し（図５のステップＳ２６に相当）、上記マッチング処理手段は、上記分離情報ファイルを参照し、第１のＢ要素ＩＤおよび第２のＢ要素ＩＤをＢ要素ＩＤに統合して、Ａ要素ＩＤごとにマッチングされた集合Ｂの要素のＢ要素ＩＤを記憶する（図８のステップＳ５２に相当）。この構成は、請求項３の構成に対応する。
【００６１】
以上説明したように、本実施の形態によれば、卒業大学の指定や入学時、卒業時の条件等により、「ある条件に合致した施設（病院）とのマッチングしか許可しない」、あるいは「ある条件に合致する施設（病院）とのマッチングは許可しない」等の条件を有している参加者がいたとしても、その条件を満たしながら、安定マッチングを得ることができる。
【００６２】
実施の形態２．
上述の実施の形態１では、特別枠外定員設定ファイル３および分離情報ファイル４に分離施設コードを記憶し、この分離施設コードに基づいてマッチングを行った。実施の形態２では、このような分離施設コードを用いずにマッチングを行うものである。
【００６３】
実施の形態２では、実施の形態１と同様にＲＯＬ作成手段が参加者ＲＯＬファイル５および施設ＲＯＬファイル６を作成する。
その後、ＲＯＬ処理手段が、各参加者のユーザＩＤについて、参加者条件ファイル１の施設コード条件を参照し、この条件に合致しない施設コードを参加者ＲＯＬファイル５から削除することによって、最適化参加者ＲＯＬファイルを作成する。ここで、実施の形態２では分離施設コードを用いないので、最適化参加者ＲＯＬファイルは図１７に示すものとは異なり施設コードはそのままである（すなわち分離施設コードには置き換えられない）。
次に、ＲＯＬ処理手段が、各参加者のユーザＩＤについて、参加者条件ファイル１の施設コード条件を参照し、この条件に合致しない施設コードとそのユーザＩＤとが指定されたレコードを施設ＲＯＬファイル６から削除することによって、最適化施設ＲＯＬファイルを作成する。ここで、実施の形態２では分離施設コードを用いないので、最適化施設ＲＯＬファイルは図１８に示すものとは異なり施設コードはそのままである（すなわち分離施設コードには置き換えられない）。
【００６４】
上述のように作成される最適化参加者ＲＯＬファイルおよび最適化施設ＲＯＬファイルに基づき、実施の形態１と同様のマッチング処理が行われる。
このように、本実施の形態によれば、卒業大学の指定や入学時、卒業時の条件等により、「ある条件に合致した施設（病院）とのマッチングしか許可しない」、あるいは「ある条件に合致する施設（病院）とのマッチングは許可しない」等の条件を有している参加者がいたとしても、その条件を満たしながら、安定マッチングを得ることができる。
【００６５】
実施の形態３．
実施の形態３は、実施の形態１において、１つの施設コードに対応する分離施設コードの数を３以上とするものである。たとえば、複数の特別枠定員にそれぞれ対応する複数の分離施設コードと、特別枠外定員に対応する１つの分離施設コードとを用いる。
たとえば、施設コード  Ａ００１について、特別枠外定員対応の分離施設コード  Ａ００１１と、同一都道府県内に居住する参加者限定である第一の特別枠定員対応の分離施設コード  Ａ００１２と、奨学金の受給を希望する参加者限定である第二の特別枠定員対応の分離施設コード  Ａ００１３とが生成される。
【００６６】
最適化参加者ＲＯＬファイルおよび最適化施設ＲＯＬファイルは、実施の形態１と同様にして作成される。ここで、ある参加者のユーザＩＤとある施設の施設コードとの対応付けについて、その施設コードをいずれの分離施設コードに置き換えるかは、様々な条件に基づいて判断することができる。
このような条件は、たとえば参加者に関する様々な情報を記憶する参加者情報ファイル（図示せず）にあらかじめ指定しておくことができる。この参加者情報ファイルは、各参加者について、たとえば居住都道府県と、奨学金の受給を希望するか否かを記憶してもよく、ＲＯＬ処理手段はこれを参照することができる。
【００６７】
ある参加者が、同一都道府県内の施設を希望する場合、すなわち、同一都道府県内に居住する参加者限定である第一の特別枠定員対応の分離施設コードによるマッチングを希望する場合を考える。この場合、その参加者の居住都道府県が、ある施設（施設コード  Ａ００１とする）の所在都道府県と同一であれば、ＲＯＬ処理手段は、参加者ＲＯＬファイルおよび施設ＲＯＬファイルにおいてそのユーザＩＤと対応する施設コード  Ａ００１を、同一都道府県内に居住する参加者限定である第一の特別枠定員対応の分離施設コード  Ａ００１２に置き換える。また、その参加者の居住都道府県が、別の施設（施設コード  Ａ００２とする）の所在都道府県と異なっていれば、ＲＯＬ処理手段は、参加者ＲＯＬファイルおよび施設ＲＯＬファイルにおいてそのユーザＩＤと対応する施設コード  Ａ００２を削除する（すなわち、当該ＲＯＬファイルにおいて、そのユーザＩＤとその施設コードとが指定されたレコードが削除されることになる）。
【００６８】
また、各施設は、同一の参加者が複数の特別枠定員対応の分離施設コードに合致する場合に、いずれを優先するかを規定する優先規則情報（図示せず）をあらかじめ決定しておき、これをマッチングサーバ１００に記憶させてもよい。ＲＯＬ処理手段は、同一の参加者が複数の特別枠定員対応の分離施設コードに合致する場合には、この優先規則情報に基づき、そのユーザＩＤと対応する施設コードをいずれかの分離施設コードに置き換える。
【００６９】
また、複数の特別枠定員対応の分離施設コードのうち一部のみを使用し、他は使用しないという条件を指定してもよい。すなわち、たとえば施設コード  Ａ００１の施設は、特別枠外定員対応の分離施設コード  Ａ００１１と、同一都道府県内に居住する参加者限定である第一の特別枠定員対応の分離施設コード  Ａ００１２のみに対応し、奨学金の受給を希望する参加者限定である第二の特別枠定員対応の分離施設コード  Ａ００１３は生成されなくともよい。
この場合、同一都道府県内の施設を希望する参加者、すなわち、同一都道府県内に居住する参加者限定である第一の特別枠定員対応の分離施設コードによるマッチングを希望する参加者については、施設コード  Ａ００１は第一の特別枠定員対応の分離施設コード  Ａ００１２に置き換えられるが、奨学金の受給を希望する参加者限定である第二の特別枠定員対応の分離施設コードによるマッチングを希望する参加者については、施設コード  Ａ００１は第二の特別枠定員対応の分離施設コードを有しないので、特別枠外定員対応の分離施設コード  Ａ００１１に置き換えられる。
【００７０】
以上の各実施の形態で、マッチングシステム（マッチングサーバ１００、参加者端末２００、施設管理者端末３００、マッチング管理者端末４００）は、コンピュータで実現できるものである。また図示していないが、それぞれの装置は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。
例えば、ＣＰＵは、バスを介して、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信ボード、表示装置、Ｋ／Ｂ（キーボード）、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（コンパクトディスクドライブ）、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続されている。
ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
前述した実施の形態の各装置が扱うデータや情報は、記憶装置あるいは記憶部に保存され、装置の各部により、記録され読み出されるものである。
また、通信ボードは、例えば、ＬＡＮ、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されている。磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群（データベース）が記憶されている。
プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
上記各装置の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
上記プログラム群には、実施の形態の説明において「〜手段」として説明した処理をＣＰＵに実行させるプログラムが記憶される。これらのプログラムは、例えば、Ｃ言語やＨＴＭＬやＳＧＭＬやＸＭＬなどのコンピュータ言語により作成される。
また、上記プログラムは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記憶され、ＣＰＵにより読み出され実行される。
【符号の説明】
【００７１】
１  参加者条件ファイル、２  施設情報ファイル、３  特別枠定員設定ファイル、４  分離情報ファイル、５  参加者ＲＯＬファイル、６  施設ＲＯＬファイル、７  最適化参加者ＲＯＬファイル、８  最適化施設ＲＯＬファイル、９  最適化マッチング結果格納ファイル、１０  マッチング結果格納ファイル、１１  通信手段、１２  定員処理手段、１３  ＲＯＬ作成手段、１４  マッチング手段、２０  入力手段、２１  表示手段、２２  処理手段、２３  通信手段、３０  入力手段、３１  表示手段、３２  処理手段、３３  通信手段、１００  マッチングサーバ、２００  参加者端末、３００  施設管理者端末、４００  マッチング管理者端末、５００  通信網。
【図１】
2010176515.tif 000003
【図２】
2010176515.tif 000004
【図３】
2010176515.tif 000005
【図４】
2010176515.tif 000006
【図５】
2010176515.tif 000007
【図６】
2010176515.tif 000008
【図７】
2010176515.tif 000009
【図８】
2010176515.tif 000010
【図９】
2010176515.tif 000011
【図１０】
2010176515.tif 000012
【図１１】
2010176515.tif 000013
【図１２】
2010176515.tif 000014
【図１３】
2010176515.tif 000015
【図１４】
2010176515.tif 000016
【図１５】
2010176515.tif 000017
【図１６】
2010176515.tif 000018
【図１７】
2010176515.tif 000019
【図１８】
2010176515.tif 000020
【図１９】
2010176515.tif 000021
【図２０】
2010176515.tif 000022
【図２１】
2010176515.tif 000023
【図２２】
2010176515.tif 000024
【図２３】
2010176515.tif 000025
【図２４】
2010176515.tif 000026