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