(57)【特許請求の範囲】
【請求項１】
サーバ装置及び他のクライアント装置と通信可能な通信手段と、
前記通信手段による前記他のクライアント装置との通信数及び通信時刻を含む通信履歴情報を基に、当該クライアント装置の第１のユーザと前記他のクライアント装置の第２のユーザとの交友度を示す交友関係情報を生成する第１の生成手段と、
前記第１のユーザに予定されたイベントの予定日時情報及び予定場所情報を含むスケジュール情報と、過去に設定された会合の日時履歴情報、場所履歴情報及びメンバ履歴情報を含む会合履歴情報と、前記第１のユーザが前記会合に出席可能な日時に関する複数のルール情報とを記憶する記憶手段と、
前記記憶された予定日時情報及び日時履歴情報を基に、前記第１のユーザの希望会合日時情報を生成する第２の生成手段と、
前記記憶された予定場所情報、場所履歴情報及び前記生成された希望会合日時情報を基に、前記第１のユーザの希望会合場所情報を生成する第３の生成手段と、
前記生成された交友関係情報を基に、会合のメンバとなるクライアント装置の候補を示す会合メンバ候補情報を生成する第４の生成手段と、
前記生成された希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を希望会合情報として前記サーバ装置へ送信するよう前記通信手段を制御し、前記サーバ装置において、前記送信された希望会合情報を基に設定された設定会合情報を受信するよう前記通信手段を制御する制御手段と
を具備するクライアント装置であって、
前記第１の生成手段は、前記他のクライアント装置との所定の第１の期間における前記通信数のうち、前記第１のユーザの非労働時間帯における第１の通信数に第１の重み係数を付与し、労働時間帯における第２の通信数に前記第１の重み係数よりも小さい第２の重み係数を付与して、当該各重み係数付与後の前記第１及び第２の通信数を加算することで当該クライアント装置と他のクライアント装置との交友頻度を算出し、全ての他のクライアント装置との前記交友頻度の総和に対する、前記算出対象となった他のクライアント装置との交友頻度の割合を、前記第１のユーザと第２のユーザとの前記交友度として算出し、
前記第２の生成手段は、前記記憶された日時履歴情報と前記各ルール情報とを比較し、当該比較の結果、前記会合履歴情報との類似度が最も高い１つのルール情報を推定ルール情報と決定し、当該推定ルール情報を基に前記出席可能な日時を推定し、当該推定された日時と前記記憶された予定日時情報とを比較し、当該比較の結果、当該予定日時情報と一致しない日時を前記希望会合日時情報として生成し、
前記第３の生成手段は、前記予定場所情報を基に、前記生成された希望会合日時情報に含まれる日時の直前に予定されているイベントの予定場所を前記会合の移動元場所として決定し、前記場所履歴情報に含まれる、過去の会合の設定場所情報及び移動元場所情報を基に、前記決定された移動元場所から前記第１のユーザが移動を許容できる距離範囲を示す許容移動距離範囲情報を、前記希望会合場所情報として生成し、
前記第４の生成手段は、前記会合履歴情報に基づいて、所定の第２の期間において前記会合のメンバに設定された回数が少ない他のクライアント装置ほど高い重みが付与されるような重み付きランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成する
クライアント装置。
【請求項２】
請求項１に記載のクライアント装置であって、
前記第２の生成手段は、横軸を日時、縦軸をメンバシップ値とするメンバシップ関数において、前記各ルール情報を第１のファジィ集合とし、前記日時履歴情報を第２のファジィ集合として、当該第１のファジィ集合と第２のファジィ集合との同値を演算し、当該演算結果としての第３のファジィ集合の面積が最大となる前記ルール情報を前記推定ルール情報と決定する
クライアント装置。
【請求項３】
請求項１に記載のクライアント装置であって、
前記第４の生成手段は、前記算出された交友頻度が低い他のクライアント装置ほど高い重みが付与されるような重み付けランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成する
クライアント装置。
【請求項４】
請求項１に記載のクライアント装置であって、
前記記憶手段は、前記通信手段により前記他のクライアント装置との間で送受信した電子メールのメッセージ情報を記憶し、
前記第４の生成手段は、
前記メッセージ情報を解析して、当該メッセージ情報の送受信相手である前記他のクライアント装置に、所定のイベントが発生したか否かを判断する手段と、
前記所定のイベントが発生したと判断された場合に、当該所定のイベントが発生した他のクライアント装置に高い重みが付与されるような重み付きランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成する手段とを有する
クライアント装置。
【請求項５】
請求項１に記載のクライアント装置であって、
前記第１のユーザの操作を入力する操作入力手段をさらに具備し、
前記第１の生成手段は、前記算出された交友度に応じて前記他のクライアント装置を複数の属性に分類する手段を有し、
前記第４の生成手段は、前記操作入力手段への操作入力に基づいて、特定の属性を有する他のクライアント装置を選択して前記会合メンバ候補情報を生成する
クライアント装置。
【請求項６】
請求項５に記載のクライアント装置であって、
前記第４の生成手段は、前記操作入力手段への操作入力に基づいて、特定の属性を有する第１の他のクライアント装置にとって特定の属性を有する第２の他のクライアント装置を前記会合メンバ候補に追加するよう、前記サーバ装置へ指示する指示情報を生成し、
前記制御手段は、前記生成された指示情報を前記会合メンバ候補情報として前記サーバ装置へ送信するよう前記通信手段を制御する
クライアント装置。
【請求項７】
請求項１に記載のクライアント装置であって、
前記制御手段は、前記受信された設定会合情報により設定された会合への前記第１のユーザの参加または不参加の意思を表明する情報を前記サーバ装置へ送信するよう前記通信手段を制御する
クライアント装置。
【請求項８】
複数の請求項１に記載のクライアント装置において生成された、会合の希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を含む希望会合情報を当該各クライアント装置から受信する通信手段と、
前記受信された各希望会合情報を基に、当該希望会合情報が適合する複数のクライアント装置を互いに排他的な構成要素とする複数の最適クライアント装置群を生成する第１の生成手段と、
前記生成された最適クライアント装置群毎に、設定会合日時及び設定会合場所を決定し、当該最適クライアント装置群に属する各クライアント装置を設定会合メンバとして決定し、当該設定会合日時、設定会合場所及び設定会合メンバを示す設定会合情報を生成する第２の生成手段と、
前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信するよう前記通信手段を制御する制御手段と
を具備し、
前記第１の生成手段は、各クライアント装置の前記会合メンバ候補情報に含まれるクライアント装置のうち、前記希望会合日時情報及び希望会合場所情報が適合するクライアント装置と、当該会合メンバ候補情報を生成したクライアント装置とを、各クライアント装置の適合クライアント装置群として、クライアント装置毎に抽出し、当該抽出された各適合クライアント装置群の各構成要素であるクライアント装置を文字列として捉えた場合に、全ての前記適合クライアント装置群からなる適合クライアント装置群集合とのレーベンシュタイン距離が最小となり、かつ、各構成要素が排他的となる前記最適クライアント装置群で構成される最適クライアント装置群集合を生成し、
前記希望会合日時情報は、希望会合日、希望会合開始時刻、希望会合終了時刻に関する情報を含み、
前記第２の生成手段は、前記最適クライアント装置群集合の要素である前記各最適クライアント装置群に属する各クライアント装置の各希望会合開始時刻の平均時刻を設定会合開始時刻として算出し、当該各クライアント装置の各希望終了時刻の平均時刻を設定会合終了時刻として算出し、前記各最適クライアント装置群に属する各クライアント装置の各許容移動距離範囲の和集合の重心を中心とする所定距離範囲内の場所を前記設定会合場所として決定する
サーバ装置。
【請求項９】
請求項８に記載のサーバ装置であって、
前記制御手段は、前記各クライアント装置の各ユーザ間の交友関係及び交友度を示す交友関係情報と、前記各クライアント装置と所定の交友度を有する第１の他のクライアント装置にとって所定の交友度を有する第２の他のクライアント装置を前記会合メンバ候補として追加するよう指示する指示情報とを前記各クライアント装置から受信するよう前記通信手段を制御し、
前記第１の生成手段は、前記受信された交友関係情報及び指示情報に基づいて、前記各クライアント装置の前記会合メンバ候補に前記第２の他のクライアント装置を追加する
サーバ装置。
【請求項１０】
請求項８に記載のサーバ装置であって、
前記第１の生成手段は、
遺伝的アルゴリズムにより、上記各クライアント装置からランダムに選択された所定のクライアント装置群集合を所定の染色体集団に符号化し、当該染色体集団に属する各染色体に交叉処理、突然変異処理、増殖処理及び死滅処理を繰り返し実行して上記適合クライアント装置群との適合度が最大となる染色体集団を生成し、当該染色体集団を復号することで前記最適クライアント装置群集合を生成する
サーバ装置。
【請求項１１】
請求項８に記載のサーバ装置であって、
前記制御手段は、前記各許容移動距離範囲の和集合の重心を中心とする所定距離範囲内に存在する施設に関する情報を含む地図情報を受信するよう前記通信手段を制御し、
前記第２の生成手段は、前記受信された地図情報を基に、前記施設を前記設定会合場所として決定する
サーバ装置。
【請求項１２】
サーバ装置及び複数のクライアント装置を具備する会合設定システムであって、
前記各クライアント装置は、
前記サーバ装置及び他のクライアント装置と通信可能な第１の通信手段と、
前記第１の通信手段による前記他のクライアント装置との通信数及び通信時刻を含む通信履歴情報を基に、当該クライアント装置の第１のユーザと前記他のクライアント装置の第２のユーザとの交友度を示す交友関係情報を生成する第１の生成手段と、
前記第１のユーザに予定されたイベントの予定日時情報及び予定場所情報を含むスケジュール情報と、過去に設定された会合の日時履歴情報、場所履歴情報及びメンバ履歴情報を含む会合履歴情報と、前記第１のユーザが前記会合に出席可能な日時に関する複数のルール情報とを記憶する記憶手段と、
前記記憶された予定日時情報及び日時履歴情報を基に、前記第１のユーザの希望会合日時情報を生成する第２の生成手段と、
前記記憶された予定場所情報、場所履歴情報及び前記生成された希望会合日時情報を基に、前記第１のユーザの希望会合場所情報を生成する第３の生成手段と、
前記生成された交友関係情報を基に、会合のメンバとなるクライアント装置の候補を示す会合メンバ候補情報を生成する第４の生成手段と、
前記生成された希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を希望会合情報として前記サーバ装置へ送信するよう前記第１の通信手段を制御し、前記サーバ装置において、前記送信された希望会合情報を基に設定された設定会合情報を受信するよう前記第１の通信手段を制御する第１の制御手段とを有し、
前記第１の生成手段は、前記他のクライアント装置との所定の第１の期間における前記通信数のうち、前記第１のユーザの非労働時間帯における第１の通信数に第１の重み係数を付与し、労働時間帯における第２の通信数に前記第１の重み係数よりも小さい第２の重み係数を付与して、当該各重み係数付与後の前記第１及び第２の通信数を加算することで当該クライアント装置と他のクライアント装置との交友頻度を算出し、全ての他のクライアント装置との前記交友頻度の総和に対する、前記算出対象となった他のクライアント装置との交友頻度の割合を、前記第１のユーザと第２のユーザとの前記交友度として算出し、
前記第２の生成手段は、前記記憶された日時履歴情報と前記各ルール情報とを比較し、当該比較の結果、前記会合履歴情報との類似度が最も高い１つのルール情報を推定ルール情報と決定し、当該推定ルール情報を基に前記出席可能な日時を推定し、当該推定された日時と前記記憶された予定日時情報とを比較し、当該比較の結果、当該予定日時情報と一致しない日時を前記希望会合日時情報として生成し、
前記第３の生成手段は、前記予定場所情報を基に、前記生成された希望会合日時情報に含まれる日時の直前に予定されているイベントの予定場所を前記会合の移動元場所として決定し、前記場所履歴情報に含まれる、過去の会合の設定場所情報及び移動元場所情報を基に、前記決定された移動元場所から前記第１のユーザが移動を許容できる距離範囲を示す許容移動距離範囲情報を、前記希望会合場所情報として生成し、
前記第４の生成手段は、前記会合履歴情報に基づいて、所定の第２の期間において前記会合のメンバに設定された回数が少ない他のクライアント装置ほど高い重みが付与されるような重み付きランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成し、
前記サーバ装置は、
前記各クライアント装置から前記送信された希望会合情報を受信する第２の通信手段と、
前記受信された希望会合情報を基に、前記希望会合情報が適合する複数のクライアント装置を互いに排他的な構成要素とする複数の最適クライアント装置群を生成する第５の生成手段と、
前記生成された最適クライアント装置群毎に、設定会合日時及び設定会合場所を決定し、当該最適クライアント装置群に属する各クライアント装置を設定会合メンバとして決定し、当該設定会合日時、設定会合場所及び設定会合メンバを示す設定会合情報を生成する第６の生成手段と、
前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信するよう前記第２の通信手段を制御する第２の制御手段とを有し、
前記第５の生成手段は、各クライアント装置の前記会合メンバ候補情報に含まれるクライアント装置のうち、前記希望会合日時情報及び希望会合場所情報が適合するクライアント装置と、当該会合メンバ候補情報を生成したクライアント装置とを、各クライアント装置の適合クライアント装置群として、クライアント装置毎に抽出し、当該抽出された各適合クライアント装置群の各構成要素であるクライアント装置を文字列として捉えた場合に、全ての前記適合クライアント装置群からなる適合クライアント装置群集合とのレーベンシュタイン距離が最小となり、かつ、各構成要素が排他的となる前記最適クライアント装置群で構成される最適クライアント装置群集合を生成し、
前記希望会合日時情報は、希望会合日、希望会合開始時刻、希望会合終了時刻に関する情報を含み、
前記第６の生成手段は、前記最適クライアント装置群集合の要素である前記各最適クライアント装置群に属する各クライアント装置の各希望会合開始時刻の平均時刻を設定会合開始時刻として算出し、当該各クライアント装置の各希望終了時刻の平均時刻を設定会合終了時刻として算出し、前記各最適クライアント装置群に属する各クライアント装置の各許容移動距離範囲の和集合の重心を中心とする所定距離範囲内の場所を前記設定会合場所として決定する
会合設定システム。
【請求項１３】
サーバ装置及び複数のクライアント装置により会合を設定する方法であって、
前記各クライアント装置は、
当該クライアント装置と前記他のクライアント装置との通信数及び通信時刻を含む通信履歴情報を基に、当該クライアント装置の第１のユーザと前記他のクライアント装置の第２のユーザとの交友度を示す交友関係情報を生成し、
前記第１のユーザに予定されたイベントの予定日時情報及び予定場所情報を含むスケジュール情報と、過去に設定された会合の日時履歴情報、場所履歴情報及びメンバ履歴情報を含む会合履歴情報と、前記第１のユーザが前記会合に出席可能な日時に関する複数のルール情報とを記憶し、
前記記憶された予定日時情報及び日時履歴情報を基に、前記第１のユーザの希望会合日時情報を生成し、
前記記憶された予定場所情報、場所履歴情報及び前記生成された希望会合日時情報を基に、前記第１のユーザの希望会合場所情報を生成し、
前記生成された交友関係情報を基に、会合のメンバとなるクライアント装置の候補を示す会合メンバ候補情報を生成し、
前記生成された希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を希望会合情報として前記サーバ装置へ送信し、
前記交友関係情報を生成するステップは、前記他のクライアント装置との所定の第１の期間における前記通信数のうち、前記第１のユーザの非労働時間帯における第１の通信数に第１の重み係数を付与し、労働時間帯における第２の通信数に前記第１の重み係数よりも小さい第２の重み係数を付与して、当該各重み係数付与後の前記第１及び第２の通信数を加算することで当該クライアント装置と他のクライアント装置との交友頻度を算出し、全ての他のクライアント装置との前記交友頻度の総和に対する、前記算出対象となった他のクライアント装置との交友頻度の割合を、前記第１のユーザと第２のユーザとの前記交友度として算出し、
前記希望会合日時情報を生成するステップは、前記記憶された日時履歴情報と前記各ルール情報とを比較し、当該比較の結果、前記会合履歴情報との類似度が最も高い１つのルール情報を推定ルール情報と決定し、当該推定ルール情報を基に前記出席可能な日時を推定し、当該推定された日時と前記記憶された予定日時情報とを比較し、当該比較の結果、当該予定日時情報と一致しない日時を前記希望会合日時情報として生成し、
前記希望会合場所情報を生成するステップは、前記予定場所情報を基に、前記生成された希望会合日時情報に含まれる日時の直前に予定されているイベントの予定場所を前記会合の移動元場所として決定し、前記場所履歴情報に含まれる、過去の会合の設定場所情報及び移動元場所情報を基に、前記決定された移動元場所から前記第１のユーザが移動を許容できる距離範囲を示す許容移動距離範囲情報を、前記希望会合場所情報として生成し、
前記会合メンバ候補情報を生成するステップは、前記会合履歴情報に基づいて、所定の第２の期間において前記会合のメンバに設定された回数が少ない他のクライアント装置ほど高い重みが付与されるような重み付きランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成し、
前記サーバ装置は、
前記各クライアント装置から前記送信された希望会合情報を受信し、
前記受信された希望会合情報を基に、前記希望会合情報が適合する複数のクライアント装置を互いに排他的な構成要素とする複数の最適クライアント装置群を生成し、
前記生成された最適クライアント装置群毎に、設定会合日時及び設定会合場所を決定し、当該最適クライアント装置群に属する各クライアント装置を設定会合メンバとして決定し、当該設定会合日時、設定会合場所及び設定会合メンバを示す設定会合情報を生成し、
前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信し、
前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信するよう前記第２の通信手段を制御する第２の制御手段とを有し、
前記最適クライアント装置群を生成するステップは、各クライアント装置の前記会合メンバ候補情報に含まれるクライアント装置のうち、前記希望会合日時情報及び希望会合場所情報が適合するクライアント装置と、当該会合メンバ候補情報を生成したクライアント装置とを、各クライアント装置の適合クライアント装置群として、クライアント装置毎に抽出し、当該抽出された各適合クライアント装置群の各構成要素であるクライアント装置を文字列として捉えた場合に、全ての前記適合クライアント装置群からなる適合クライアント装置群集合とのレーベンシュタイン距離が最小となり、かつ、各構成要素が排他的となる前記最適クライアント装置群で構成される最適クライアント装置群集合を生成し、
前記希望会合日時情報は、希望会合日、希望会合開始時刻、希望会合終了時刻に関する情報を含み、
前記設定会合情報を生成するステップは、前記最適クライアント装置群集合の要素である前記各最適クライアント装置群に属する各クライアント装置の各希望会合開始時刻の平均時刻を設定会合開始時刻として算出し、当該各クライアント装置の各希望終了時刻の平均時刻を設定会合終了時刻として算出し、前記各最適クライアント装置群に属する各クライアント装置の各許容移動距離範囲の和集合の重心を中心とする所定距離範囲内の場所を前記設定会合場所として決定する
会合設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、飲み会等のプライベートな交流を目的とした会合を自動的に設定することが可能なクライアント装置、サーバ装置、会合設定システム及び会合設定方法に関する。
【背景技術】
【０００２】
従来から、会合のスケジュールを自動的に設定できるシステムとしては、例えば下記特許文献１及び特許文献２に記載のものがある。
【０００３】
特許文献１には、会合主催者のサーバにより提案される日付及び時刻から、各クライアントが自らのスケジュールを参照してプリファレンスを示し、サーバが各クライアントのプリファレンスを調整して会合のスケジュールを取り決めるシステムが記載されている。
【０００４】
特許文献２には、会議参加者のスケジュール情報に基づいて会議開催日の予約を行う際に、会議参加者の所属するプロジェクトへの影響が最も少ない日程を会議開催可能日の候補として抽出する機能を持つ会議予約装置が記載されている。  
【特許文献１】特開２００５−１４１７５５号公報
【特許文献２】特開２００７−１２２１９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えば飲み会やパーティのようなプライベートな会合を設定する場合、各ユーザの日時、場所、参加者等に関する希望には多様性、任意性が存在する。また逆に、ユーザに詳細な希望が特に存在しない場合もある。
【０００６】
例えば、ユーザＡは、次の飲み会にユーザＢとユーザＣは必ず参加してほしいと希望しているが、ユーザＢは、しばらく会っていない人と飲みたいと希望し、ユーザＣは、特に飲みたいとは思っていない、というような場合がある。
【０００７】
しかしながら、上記特許文献１に記載の技術においては、サーバが日付及び時刻を提案するため、クライアントのスケジュールはその提案の範囲内に限定されてしまうため、サーバの提案だけではその希望を満たすことはできない。
【０００８】
また、プライベートな会合の設定を想定した場合、参加者のスケジュール情報には予定が入っていなくても、暗黙の了解や参加者の習慣的な理由により、会合の設定が不可能な日時も存在する。例えば、金曜日以外の平日の夜に飲み会を設定してもらっては困るユーザも存在する。
【０００９】
しかしながら、特許文献２に記載の技術のように、会議参加者のスケジュール情報に基づいて会議を設定する場合には、当然ながら、当該スケジュール情報には含まれていない各参加者の希望を満たすことはできない。
【００１０】
したがって、プライベートな会合を設定する場合、従来は幹事が各参加者の希望を細かく聞き、それらを調整して設定する必要があるため、幹事の負担が大きくなっていた。また、会合を設定する作業が面倒なため、会合の設定頻度は低くならざるを得ないため、人間間の交流の活発化が阻害されていた。
【００１１】
以上のような事情に鑑み、本発明の目的は、設定の自由度が高いプライベートな会合を設定する幹事の負担を軽減し、人間間のプライベートな交流を活発化させることが可能なクライアント装置、サーバ装置、会合設定システム及び会合設定方法を提供することにある。
【課題を解決するための手段】
【００１２】
上述の事情に鑑み、本発明の主たる観点に係るクライアント装置は、サーバ装置及び他のクライアント装置と通信可能な通信手段と、前記通信手段による前記他のクライアント装置との通信履歴情報を基に、当該クライアント装置の第１のユーザと前記他のクライアント装置の第２のユーザとの交友関係を示す交友関係情報を生成する第１の生成手段と、前記第１のユーザに予定されたイベントの予定日時情報及び予定場所情報を含むスケジュール情報と、過去に設定された会合の日時履歴情報、場所履歴情報及びメンバ履歴情報を含む会合履歴情報とを記憶する記憶手段と、前記記憶された予定日時情報及び日時履歴情報を基に、前記第１のユーザの希望会合日時情報を生成する第２の生成手段と、前記記憶された予定場所情報、場所履歴情報及び前記生成された希望会合日時情報を基に、前記第１のユーザの希望会合場所情報を生成する第３の生成手段と、前記生成された交友関係情報を基に、会合のメンバとなるクライアント装置の候補を示す会合メンバ候補情報を生成する第４の生成手段と、前記生成された希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を希望会合情報として前記サーバ装置へ送信するよう前記通信手段を制御し、前記サーバ装置において、前記送信された希望会合情報を基に設定された設定会合情報を受信するよう前記通信手段を制御する制御手段とを具備する。
【００１３】
ここで、クライアント装置とは、例えば携帯電話機、ＰＤＡ（Personal Digital Assistant）、ノート型ＰＣ（Personal Computer）等の携帯機器のほか、デスクトップ型ＰＣ、ＡＶ（Audio Visual）機器等の各種電子機器をいう。会合とは、例えば飲み会、パーティ等、複数の人間が集まるプライベートなイベントをいう。通信履歴情報とは、電話の通話履歴や電子メールの送受信履歴である。上記日時履歴情報は、例えば年月日情報及び時刻情報のほか、曜日情報を含んでいてもよい。
【００１４】
この構成により、希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を生成してサーバ装置へ送信するだけで、飲み会のように、日時、場所、メンバ等の設定の自由度が高い会合であっても、ユーザの希望を満たす会合を自動的に設定させることができる。これにより、会合の幹事の負担を格段に軽減することができる。また、知人に電話等で直接連絡を取る等の手間を要することなく、知人との交友を継続させたり、深めたり、広げたりすることができる。
【００１５】
上記クライアント装置において、前記記憶手段は、前記通信履歴情報として、当該クライアント装置の複数の前記他のクライアント装置との通信数及び通信時刻を記憶し、前記第１の生成手段は、前記他のクライアント装置との所定の第１の期間における前記通信数のうち、前記第１のユーザの非労働時間帯における第１の通信数に第１の重み係数を付与し、労働時間帯における第２の通信数に前記第１の重み係数よりも小さい第２の重み係数を付与して、当該各重み係数付与後の前記第１及び第２の通信数を加算することで当該クライアント装置と他のクライアント装置との交友頻度を算出する手段と、全ての他のクライアント装置との前記交友頻度の総和に対する、前記算出対象となった他のクライアント装置との交友頻度の割合を、前記第１のユーザと第２のユーザとの交友度として算出する手段とを有し、前記制御手段は、前記複数の他のクライアント毎に算出された交友度を前記交友関係情報の一部として前記サーバ装置へ送信するよう前記通信手段を制御するようにしてもよい。
【００１６】
ここで、労働時間帯とは例えば８時〜１７時、非労働時間帯とは例えば１７時〜翌日８時等であるが、これに限られるものではない。上記第１の重み係数及び第２の重み係数との総和を１．０とした場合、第１の重み係数は例えば０．７〜０．８程度とされるが、これに限られず、第１の重み係数を１．０（第２の重み係数を０）としても構わない。また交友頻度から交友度を算出するのは、交友相手となる他のクライアント装置の総数がクライアント装置毎に異なるからである。所定の第１の期間とは、例えば１週間、１ヶ月、半年等の期間である。
【００１７】
一般的に、プライベートな友人、知人とのやり取りは非労働時間帯（オフタイム）に行われることが多い。したがって、上記構成により、労働時間帯（オンタイム）よりも非労働時間帯（オフタイム）の重み係数を大きくして交友頻度及び交友度を算出することで、オフタイムの通信頻度が高い他のクライアント装置の交友度を高くすることができる。この交友度をサーバ装置へ送信することにより、サーバ装置において、プライベートな会合のメンバをより適切に決定させることができる。
【００１８】
上記クライアント装置において、前記記憶手段は、前記第１のユーザが前記会合に出席可能な日時に関する複数のルール情報を記憶し、前記第２の生成手段は、前記記憶された日時履歴情報と前記各ルール情報とを比較する手段と、前記比較の結果、前記会合履歴情報との類似度が最も高い１つのルール情報を推定ルール情報と決定し、当該推定ルール情報を基に前記出席可能な日時を推定する手段と、前記推定された日時と前記記憶された予定日時情報とを比較する手段と、前記比較の結果、当該予定日時情報と一致しない日時を前記希望会合日時情報として生成する手段とを有していてもよい。
【００１９】
これにより、上記各ルール情報と日時履歴情報とのマッチングにより、当該クライアント装置のユーザの習慣に最も近いルール情報を決定し、当該ルール情報を基にユーザが出席可能な日時を推定するため、ユーザの習慣により合致した希望会合日時情報を生成することができる。また、推定された日時から予定日時情報に含まれる日時を除外することで、設定される会合がユーザの他のイベントの予定と重なることを防ぐことができる。
【００２０】
上記クライアント装置において、前記第２の生成手段は、横軸を日時、縦軸をメンバシップ値とするメンバシップ関数において、前記各ルール情報を第１のファジィ集合とし、前記日時履歴情報を第２のファジィ集合として、当該第１のファジィ集合と第２のファジィ集合との同値を演算し、当該演算結果としての第３のファジィ集合の面積が最大となる前記ルール情報を前記推定ルール情報と決定してもよい。
【００２１】
ファジィ論理演算を用いることで、例えば「週末」、「〜時以降」等、曖昧かつある程度の数値幅が許容されるような事象を定量化することができる。したがって、ファジィ論理演算を用いて上記各ルール情報と日時履歴情報とを比較することで、画一的でないユーザの習慣を定量化して、ユーザの希望に極力近い推定ルール情報を決定し、ユーザの希望に極力近い希望会合日時情報を生成することができる。
【００２２】
上記クライアント装置において、前記第２の生成手段は、前記記憶された日時履歴情報を学習し、当該学習結果を基に、前記第１のユーザが前記会合に出席可能な日時を推定する手段と、前記推定された日時と前記記憶された予定日時情報とを比較する手段と、前記比較の結果、当該予定日時情報と一致しない日時を前記希望会合日時情報として生成する手段とを有していてもよい。
【００２３】
これにより、日時履歴情報を基に機械学習を行うことで、希望会合日時を自動的に推定することができる。ここで、学習方法としては、隠れマルコフモデルやリカレント・ニューラルネットワーク等を用いることができるが、これらに限られるものではない。
【００２４】
上記クライアント装置において、前記第３の生成手段は、前記予定場所情報を基に、前記生成された希望会合日時情報に含まれる日時の直前に予定されているイベントの予定場所を前記会合の移動元場所として決定する手段と、前記場所履歴情報に含まれる、過去の会合の設定場所情報及び移動元場所情報を基に、前記決定された移動元場所から前記第１のユーザが移動を許容できる距離範囲を示す許容移動距離範囲情報を、前記希望会合場所情報として生成する手段とを有していてもよい。
【００２５】
これにより、ユーザが過去の会合に出席するために実際に移動した距離を基に許容移動距離範囲情報を算出するため、実際にはユーザが移動元から移動を許容できないほど遠い場所に会合場所が設定されてしまうのを防ぐことができる。過去の会合の設定場所情報が複数存在する場合には、例えば、各会合における移動元場所から設定場所までの距離（移動距離）の平均値が許容移動距離範囲とされる。
【００２６】
この場合、前記第３の生成手段は、前記許容移動距離範囲情報として、前記決定された移動元場所から前記許容移動距離範囲内に存在する位置座標に第１の許容度を付与し、前記移動可能距離範囲外であって、所定の距離範囲内に存在する位置座標に前記第１の許容度よりも小さい第２の許容度を付与する許容度関数を生成してもよい。
【００２７】
ここで、第１の許容度は例えば１．０とされ、第２の許容度は上記許容移動距離範囲から離れるに従って１．０から０の間で徐々に小さくなるように設定される。これにより、許容移動距離範囲から外れたとしても、第２の許容度を付与しておくことで、場所履歴情報により希望会合場所が画一的に決定されてしまうのを防ぐことができる。
【００２８】
上記クライアント装置において、前記第４の生成手段は、前記算出された交友頻度が低い他のクライアント装置ほど高い重みが付与されるような重み付けランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成してもよい。
【００２９】
これにより、近過去においてユーザが連絡を取っている頻度が低い知人ほど会合メンバとして設定される可能性が高くなるため、知人と会う期間が長く空いてしまうのを防ぎ、知人と会わないまま疎遠になってしまうことを防ぐことができる。また、一般的に、会う頻度が低い知人ほど連絡を取るのが面倒になるものであるが、本発明により、そのような面倒を省いてその知人との会合を設定することができる。また、会合メンバの意外性、新鮮さ等を演出することもできる。
【００３０】
上記クライアント装置において、前記第４の生成手段は、前記会合履歴情報に基づいて、所定の第２の期間において前記会合のメンバに設定された回数が少ない他のクライアント装置ほど高い重みが付与されるような重み付きランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成してもよい。
【００３１】
これにより、近過去における会合への参加回数が少ない人ほど会合メンバとして設定される可能性が高くなるため、知人と会う期間が長く空いてしまうのを防ぎ、また会合のメンバが固定されてしまうのを防ぐことができる。所定の第２の期間とは、例えば１ヶ月、半年、１年等である。
【００３２】
上記クライアント装置において、前記記憶手段は、前記通信手段により前記他のクライアント装置との間で送受信した電子メールのメッセージ情報を記憶し、前記第４の生成手段は、前記メッセージ情報を解析して、当該メッセージ情報の送受信相手である前記他のクライアント装置に、所定のイベントが発生したか否かを判断する手段と、前記所定のイベントが発生したと判断された場合に、当該所定のイベントが発生した他のクライアント装置に高い重みが付与されるような重み付きランダム選択により他のクライアント装置を選択して前記会合メンバ候補情報を生成してもよい。
【００３３】
ここで所定のイベントとは、例えば出産や結婚等の祝い事や、仕事上またはプライベート上の悩み事等、第１のユーザが第２のユーザと会いたいと思わせるようなイベントである。この構成により、会う必要性が高い他のクライアント装置を自動的に会合メンバに設定することができ、より有意義な会合を設定することができる。
【００３４】
上記クライアント装置は、前記第１のユーザの操作を入力する操作入力手段を更に具備し、前記第１の生成手段は、前記算出された交友度に応じて前記他のクライアント装置を複数の属性に分類する手段を有し、前記第４の生成手段は、前記操作入力手段への操作入力に基づいて、特定の属性を有する他のクライアント装置を選択して前記会合メンバ候補情報を生成してもよい。
【００３５】
ここで属性とは、例えば、親友、友人、知人等である。この構成により、ユーザが意図して会合メンバを絞り込むことが可能となり、よりユーザの希望に沿った会合メンバを設定することができる。
【００３６】
この場合、前記第４の生成手段は、前記操作入力手段への操作入力に基づいて、特定の属性を有する第１の他のクライアント装置にとって特定の属性を有する第２の他のクライアント装置を前記会合メンバ候補に追加するよう、前記サーバ装置へ指示する指示情報を生成し、前記制御手段は、前記生成された指示情報を前記会合メンバ候補情報として前記サーバ装置へ送信するよう前記通信手段を制御してもよい。
【００３７】
これにより、上記指示情報をサーバ装置へ送信して、サーバ装置に当該指示情報に従って会合メンバを選択させることで、例えば親友の親友、親友の友人、親友の知人、友人の親友、友人の友人、友人の知人といったクライアント装置を会合メンバとして設定させることが可能となる。これにより、ユーザと面識の無い人が会合メンバとして設定され得るため、ユーザは知人との繋がりをより広げることが可能となる。
【００３８】
上記クライアント装置において、前記制御手段は、前記受信された設定会合情報により設定された会合への前記第１のユーザの参加または不参加の意思を表明する情報を前記サーバ装置へ送信するよう前記通信手段を制御してもよい。
【００３９】
これにより、設定された会合の他のメンバへ第１のユーザの参加／不参加の意思を伝えたり、設定された会合の再設定またはキャンセル等の処理をサーバ装置に実行させたりすることが可能となる。
【００４０】
本発明の他の観点に係るサーバ装置は、複数のクライアント装置において生成された、会合の希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を含む希望会合情報を各クライアント装置から受信する通信手段と、前記受信された各希望会合情報を基に、当該希望会合情報が適合する複数のクライアント装置を互いに排他的な構成要素とする複数の最適クライアント装置群を生成する第１の生成手段と、前記生成された最適クライアント装置群毎に、設定会合日時及び設定会合場所を決定し、当該最適クライアント装置群に属する各クライアント装置を設定会合メンバとして決定し、当該設定会合日時、設定会合場所及び設定会合メンバを示す設定会合情報を生成する第２の生成手段と、前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信するよう前記通信手段を制御する制御手段とを具備する。
【００４１】
ここで、サーバ装置とは、例えばＰＣ等であるが、サーバとしての機能を有するその他の電子機器であっても構わない。「適合する」とは、各クライアント装置間で、会合メンバ候補、日時範囲及び場所範囲が共通する場合や、それらのメンバや範囲に重なりがある場合のみならず、それらの範囲に重なりがなくとも各範囲間の距離が所定値以内であるような場合も含む意味で用いられる。
【００４２】
この構成により、飲み会のように、日時、場所、メンバ等の設定の自由度が高い会合であっても、自動的に設定することができ、幹事となるユーザの負担を軽減することができる。また、クライアント装置の各ユーザに、知人に電話等で直接連絡を取る等の手間を取らせることなく、知人との交友を継続させたり、深めさせたり、広げさせたりすることができる。
【００４３】
上記サーバ装置において、前記第１の生成手段は、各クライアント装置の前記会合メンバ候補情報に含まれるクライアント装置のうち、前記希望会合日時情報及び希望会合場所情報が適合するクライアント装置と、当該会合メンバ候補情報を生成したクライアント装置とを、各クライアント装置の適合クライアント装置群として、クライアント装置毎に抽出する手段と、前記抽出された各適合クライアント装置群の各構成要素であるクライアント装置を文字列として捉えた場合に、全ての前記適合クライアント装置群からなる適合クライアント装置群集合とのレーベンシュタイン距離が最小となり、かつ、各構成要素が排他的となる前記最適クライアント装置群で構成される最適クライアント装置群集合を生成する手段とを有していてもよい。
【００４４】
これにより、レーベンシュタイン距離の概念を導入することで、各クライアント装置の希望を極力満たし、かつ、メンバの重複がない複数の会合を設定することができる。
【００４５】
上記サーバ装置において、前記制御手段は、前記各クライアント装置の各ユーザ間の交友関係及び交友度を示す交友関係情報と、前記各クライアント装置と所定の交友度を有する第１の他のクライアント装置にとって所定の交友度を有する第２の他のクライアント装置を前記会合メンバ候補として追加するよう指示する指示情報とを前記各クライアント装置から受信するよう前記通信手段を制御し、前記第１の生成手段は、前記受信された交友関係情報及び指示情報に基づいて、前記各クライアント装置の前記会合メンバ候補に前記第２の他のクライアント装置を追加してもよい。
【００４６】
これにより、各クライアント装置のユーザの親友の友人、友人の親友、友人の友人等を他のユーザとする他のクライアント装置を会合メンバ候補として加えることができる。したがって、各クライアント装置のユーザ自身は面識が無い人であっても会合メンバとして設定することができるため、知人の繋がりをより広げることができる。
【００４７】
上記サーバ装置において、前記第１の生成手段は、遺伝的アルゴリズムにより、上記各クライアント装置からランダムに選択された所定のクライアント装置群集合を所定の染色体集団に符号化し、当該染色体集団に属する各染色体に交叉処理、突然変異処理、増殖処理及び死滅処理を繰り返し実行して上記適合クライアント装置群との適合度が最大となる染色体集団を生成し、当該染色体集団を復号することで前記最適クライアント装置群集合を生成してもよい。
【００４８】
これにより、遺伝的アルゴリズムを用いることで、極力最適値に近似した最適クライアント装置群集合を生成することができる。
【００４９】
上記サーバ装置において、前記希望会合日時情報は、希望会合日、希望会合開始時刻、希望会合終了時刻に関する情報を含み、前記第２の生成手段は、前記各最適クライアント装置群に属する各クライアント装置の各希望会合開始時刻の平均時刻を設定会合開始時刻として算出し、当該各クライアント装置の各希望終了時刻の平均時刻を設定会合終了時刻として算出してもよい。
【００５０】
これにより、各最適クライアント装置群に属する各クライアント装置の希望会合開始時刻及び希望会合終了時刻にそれぞれ極力近い時刻を設定会合開始時刻及び設定会合終了時刻として設定することができる。各最適クライアント装置群に属する各クライアント装置の希望する会合時間帯には重なりがない場合も想定される。そのような場合でも、平均時刻を算出することで、各クライアント装置の希望を極力満たすことができる。
【００５１】
上記サーバ装置において、前記希望会合場所情報は、各クライアント装置のユーザの移動元場所から各ユーザが移動を許容できる距離範囲を示す許容移動距離範囲情報を有し、前記第２の生成手段は、前記各最適クライアント装置群に属する各クライアント装置の各許容移動距離範囲の和集合の重心を中心とする所定距離範囲内の場所を前記設定会合場所として決定してもよい。
【００５２】
これにより、各最適クライアント装置群に属する各クライアント装置の場所にそれぞれ極力近い場所を設定会合場所として設定することができる。各最適クライアント装置群に属する各クライアント装置の希望する会合場所の範囲には重なりがない場合も想定される。そのような場合でも、各許容移動距離範囲の和集合の重心を算出することで、各クライアント装置の希望を極力満たすことができる。
【００５３】
この場合、前記制御手段は、前記各許容移動距離範囲の和集合の重心を中心とする所定距離範囲内に存在する施設に関する情報を含む地図情報を受信するよう前記通信手段を制御し、前記第２の生成手段は、前記受信された地図情報を基に、前記施設を前記設定会合場所として決定してもよい。
【００５４】
これにより、設定会合メンバとなった各クライアント装置のユーザが容易に把握できる形で、上記会合設定場所を待ち合わせ場所として設定することができる。
【００５５】
本発明のまた別の観点に係る会合設定システムは、サーバ装置及び複数のクライアント装置を具備する会合設定システムである。上記システムにおいて、前記各クライアント装置は、前記サーバ装置及び他のクライアント装置と通信可能な第１の通信手段と、前記第１の通信手段による前記他のクライアント装置との通信履歴情報を基に、当該クライアント装置の第１のユーザと前記他のクライアント装置の第２のユーザとの交友関係を示す交友関係情報を生成する第１の生成手段と、前記第１のユーザに予定されたイベントの予定日時情報及び予定場所情報を含むスケジュール情報と、過去に設定された会合の日時履歴情報、場所履歴情報及びメンバ履歴情報を含む会合履歴情報とを記憶する記憶手段と、前記記憶された予定日時情報及び日時履歴情報を基に、前記第１のユーザの希望会合日時情報を生成する第２の生成手段と、前記記憶された予定場所情報、場所履歴情報及び前記生成された希望会合日時情報を基に、前記第１のユーザの希望会合場所情報を生成する第３の生成手段と、前記生成された交友関係情報を基に、会合のメンバとなるクライアント装置の候補を示す会合メンバ候補情報を生成する第４の生成手段と、前記生成された希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を希望会合情報として前記サーバ装置へ送信するよう前記第１の通信手段を制御し、前記サーバ装置において、前記送信された希望会合情報を基に設定された設定会合情報を受信するよう前記第１の通信手段を制御する第１の制御手段とを有する。上記システムにおいて、前記サーバ装置は、前記各クライアント装置から前記送信された希望会合情報を受信する第２の通信手段と、前記受信された希望会合情報を基に、前記希望会合情報が適合する複数のクライアント装置を互いに排他的な構成要素とする複数の最適クライアント装置群を生成する第５の生成手段と、前記生成された最適クライアント装置群毎に、設定会合日時及び設定会合場所を決定し、当該最適クライアント装置群に属する各クライアント装置を設定会合メンバとして決定し、当該設定会合日時、設定会合場所及び設定会合メンバを示す設定会合情報を生成する第６の生成手段と、前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信するよう前記第２の通信手段を制御する第２の制御手段とを有する。
【００５６】
本発明のまた別の観点に係る会合設定方法は、サーバ装置及び複数のクライアント装置により会合を設定する方法である。上記方法において、前記各クライアント装置は、当該クライアント装置と前記他のクライアント装置との通信履歴情報を基に、当該クライアント装置の第１のユーザと前記他のクライアント装置の第２のユーザとの交友関係を示す交友関係情報を生成し、前記第１のユーザに予定されたイベントの予定日時情報及び予定場所情報を含むスケジュール情報と、過去に設定された会合の日時履歴情報、場所履歴情報及びメンバ履歴情報を含む会合履歴情報とを記憶し、前記記憶された予定日時情報及び日時履歴情報を基に、前記第１のユーザの希望会合日時情報を生成し、前記記憶された予定場所情報、場所履歴情報及び前記生成された希望会合日時情報を基に、前記第１のユーザの希望会合場所情報を生成し、前記生成された交友関係情報を基に、会合のメンバとなるクライアント装置の候補を示す会合メンバ候補情報を生成し、前記生成された希望会合日時情報、希望会合場所情報及び会合メンバ候補情報を希望会合情報として前記サーバ装置へ送信する。上記方法において、前記サーバ装置は、前記各クライアント装置から前記送信された希望会合情報を受信し、前記受信された希望会合情報を基に、前記希望会合情報が適合する複数のクライアント装置を互いに排他的な構成要素とする複数の最適クライアント装置群を生成し、前記生成された最適クライアント装置群毎に、設定会合日時及び設定会合場所を決定し、当該最適クライアント装置群に属する各クライアント装置を設定会合メンバとして決定し、当該設定会合日時、設定会合場所及び設定会合メンバを示す設定会合情報を生成し、前記生成された各設定会合情報を前記設定会合メンバとしての各クライアント装置へ送信する。
【発明の効果】
【００５７】
以上のように、本発明によれば、設定の自由度が高いプライベートな会合を設定する幹事の負担を軽減し、人間間のプライベートな交流を活発化させることができる。
【発明を実施するための最良の形態】
【００５８】
以下、本発明の実施の形態を図面に基づき説明する。
【００５９】
図１は、本発明の一実施形態に係る会合設定システムの構成を示した図である。  
同図に示すように、この会合設定システム１００は、複数のクライアント１と、サーバ２とで構成される。各クライアント１及びサーバ２は、例えばインターネットやＬＡＮ（Local Area Network）のようなネットワーク３に接続され、互いに通信が可能となっている。
【００６０】
各クライアント１は、例えば携帯電話機、ＰＤＡ、スマートフォン、ノート型ＰＣ等の携帯型の電子機器であるが、デスクトップ型ＰＣ等の据置型の電子機器であってもよい。サーバ２は、例えば据置型のＰＣ等であるが、その他の電子機器であっても構わない。
【００６１】
この会合設定システム１００においては、各クライアント１が、プライベートな会合に関する希望会合情報を生成してサーバ２へ送信し、サーバ２が、各クライアント１の希望会合情報を調整して、相互に干渉の少ない複数の会合を自動的に設定する。
【００６２】
図２は、各クライアント１のハードウェア構成を示したブロック図である。  
同図に示すように、クライアント１は、ＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２、ＲＯＭ（Read Only Memory）１３、操作入力部１４、通信部１５、表示部１６及びフラッシュメモリ１７等を有し、それらはバス１８で接続される。
【００６３】
ＣＰＵ１１は、必要に応じてＲＡＭ１２等に適宜アクセスし、各種演算処理を行いながらクライアント１の各ブロック全体を統括的に制御する。ＲＡＭ１２は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳ、実行中の各種プログラム、処理中の各種データを一時的に保持する。ＲＯＭ１３は、ＣＰＵ１１に実行させるＯＳ、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。
【００６４】
操作入力部１４は、例えばボタン、スイッチ、キーボード、マウスもしくはタッチパネル等で構成され、各クライアント１のユーザの操作による各種指令を入力してＣＰＵ１１へ出力する。
【００６５】
通信部１５は、所定周波数の電波を送受信するアンテナや周波数変換部、変復調部等からなり、例えばＷ−ＣＤＭＡ方式、ＣＤＭＡ２０００方式等により、他のクライアント１やサーバ２との間でデータ通信を行ったり、他のクライアント１との間で通話を行ったりするためのインタフェースである。
【００６６】
表示部１６は、例えばＴＦＴ（Thin Film Transistor）等からなり、例えばＶＧＡ（Video Graphics Array）サイズを有する液晶ディスプレイである。当該表示部１６がタッチパネルとして機能していてもよい。
【００６７】
フラッシュメモリ１７は、例えばＮＡＮＤ型のものであり、各種プログラムや、後述する交友関係モデルデータや会合履歴データ等の各種データを記憶する。
【００６８】
図３は、サーバ２のハードウェア構成を示したブロック図である。  
同図に示すように、サーバ２は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、操作入力部２４、通信部２５及びＨＤＤ（Hard Disk Drive）２６等を有し、それらはバス２７で接続される。ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３及び操作入力部２４の機能は上記クライアント１の各ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３及び操作入力部１４の機能と同様であるため、説明を省略する。
【００６９】
通信部２５は、例えばＦＴＴｘやＡＤＳＬ等により上記ネットワーク３を介して各クライアント１と通信を行うためのインタフェースである。
【００７０】
ＨＤＤ２６は、上記ＯＳ、各種プログラムや、後述する各クライアント１の希望会合情報データや交友関係モデルデータ等の各種データを内蔵のハードディスクに記憶し、またそれらを当該ハードディスクからＲＡＭ２２へ読み出す。
【００７１】
図４は、クライアント１の機能ブロックの構成を示した図である。  
同図に示すように、各クライアント１は、交友関係推定部３１、交友関係モデル構築部３２、アベイラビリティ推定部３３、会合場所範囲推定部３４、会合メンバ候補生成器３５、希望会合情報生成器３６、希望会合情報送信部３７、設定会合情報受信部３８及び会合参加履歴管理部３９の各機能ブロックを有する。これらは上記ＣＰＵ１１と協働するプログラム（以下、エージェントと称する）の形態を有する。
【００７２】
各クライアント１のエージェントは、データベースとして、交友関係モデルデータベース４１と、会合履歴データベース４２とを有する。さらに、各クライアント１は、アプリケーションとして、アドレスデータベース（以下、アドレス帳と称する）及び電子メールの通信履歴を有するメーラ４３と、クライアント１のユーザのスケジュール情報を管理するスケジュール管理ツール４４（以下、スケジューラ４４と称する）とを有する。メーラ４３のアドレス帳には、他のクライアントの名前、電話番号、電子メールアドレス等のデータが記憶される。メーラ４３の通信履歴には、クライアント１が他のクライアント１との間で電子メールを送受信した際の送信元、送信先、送信日時、受信日時、メッセージ等が記憶される。スケジューラ４４には、クライアント１のユーザに予定されたイベントの日時、場所等のスケジュール情報や、ユーザの自宅や職場の位置情報等が記憶される。
【００７３】
交友関係推定部３１は、メーラ４３が有する、アドレス帳と、電子メール（以下、単にメールと称する）及び通話の送受信履歴データとを基に、各クライアント１のユーザの、他のクライアント１のユーザとの交友度を推定する。
【００７４】
交友関係モデル構築部３２は、上記交友関係推定部３１により推定された交友度を基に、当該クライアント１のユーザが他のどのクライアント１のユーザとどれくらいの交友度を有しているかを示すモデルを交友関係モデルデータベース４１として構築し、また当該交友関係モデルデータベース４１を更新する。
【００７５】
具体的には、交友関係モデルデータベース４１は、基本属性情報として、当該各クライアント１のユーザが交友している他のクライアント１のユーザの名前、電子メールアドレス、住所等の情報を記憶する。また交友関係モデルデータベース４１は、交友属性情報として、クライアント１のユーザと他のクライアント１のユーザとの交友の度合いを示すラベル情報（「親友」、「友人」、「知人」等）を記憶する。この交友関係モデル情報は、サーバ２に適宜送信され、サーバ２側で他のクライアントの交友関係モデル情報と共に一括管理される。なお、この交友関係モデルデータベース４１は、ユーザから操作入力部１４を介して直接入力されることにより構築されるようにしても構わない。
【００７６】
アベイラビリティ推定部３３は、スケジューラ４４から得られるユーザのスケジュール情報と、会合履歴データベース４２に記憶された会合履歴情報とから、未来のある日時におけるクライアント１のユーザの自動会合アレンジに対するアベイラビリティ（未来のある日時にクライアント１のユーザが会合を設定されてもよい度合い）を推定し、希望会合日時情報として出力する。ただし本実施形態において、出力であるアベイラビリティは「アベイラブル（飲み会設定ＯＫ）」または「アンアベイラブル（飲み会設定ＮＧ）」という２値的表現とされる。
【００７７】
そして、このアベイラビリティ推定部３３による推定結果が「アベイラブル」である日時に対して、本会合設定システム１００が会合の自動設定を行うことになる。分かりやすく言えば、本会合設定システム１００は、「しばらく飲み会をやってない、そろそろ飲みに行きたいなぁ」とクライアント１のユーザが感じる未来の日時を、ユーザの習慣（過去の会合への参加履歴）から予測し、その日時に対して、飲み会設定の推薦を自動的に実行する。
【００７８】
会合場所範囲推定部３４は、上記アベイラビリティ推定部３３により「アベイラブル」となっている未来の日時（希望会合日時）に、クライアント１のユーザが参加可能と推定される会合の開催場所の範囲を推定し、それを希望会合場所範囲情報として出力する。
【００７９】
会合メンバ候補生成器３５は、会合履歴データベース４２中の過去の会合のメンバに関する情報等を参照して、上記希望会合日時及び希望会合場所に設定されることが希望されている会合のメンバの候補を生成する。
【００８０】
希望会合情報生成器３６は、上記アベイラビリティ推定部３３、会合場所範囲推定部３４、会合メンバ候補生成器３５でそれぞれ生成された希望会合日時、希望会合場所範囲、会合メンバ候補を、一まとめのデータ構造（以下、希望会合情報と称する）に加工し、希望会合情報送信部３７へ出力する。
【００８１】
希望会合情報送信部３７は、希望会合情報生成器３６の出力である希望会合情報を、サーバ２へ適時送信する。
【００８２】
なお、この希望会合情報は、クライアント１の操作入力部１４を用いてユーザが直接入力できる構成を採ってもよい。すなわち、ユーザから希望会合日時、希望会合場所範囲、会合メンバ候補の直接入力があった場合には、その希望会合情報を優先させてサーバ２に送信を行う。
【００８３】
設定会合情報受信部３８は、サーバ２により自動設定された会合の情報（以下、設定会合情報と称する）を受信する。この設定会合情報は、スケジューラ４４により閲覧可能な状態で記憶される。クライアント１のユーザは、スケジューラ４４及び表示部１６を介してこの設定会合情報を閲覧、確認する。この設定会合情報は、メーラ４３により電子メールとして受信され、記憶されても構わない。
【００８４】
会合参加履歴管理部３９は、サーバ２により自動設定された会合にユーザが実際に参加した場合に、会合の情報（会合日時、会合場所の位置情報、直前の予定（会合移動元）の位置情報、会合移動元から会合開催場所への移動距離、会合のメンバ）を、適宜スケジューラ４４上の情報を利用しながら取得して、会合履歴データベース４２に保存する。
【００８５】
図５は、サーバ２の機能ブロックの構成を示した図である。  
同図に示すように、サーバ２は、クライアント交友関係モデル管理部５１、クライアント希望会合情報バッファ部５２、クライアント希望会合情報マッチング部５３、最適会合クライアント群集合生成部５４、会合設定部５５及び設定会合情報送信部５６の各機能ブロックを有する。これらの各機能ブロックは、ＣＰＵ２１と協働するプログラムの形態を有する。また、サーバ２は、各クライアント１から受信した交友関係モデルを交友関係モデルデータベース５７として記憶する。
【００８６】
クライアント交友関係モデル管理部５１は、各クライアント１の交友関係モデル構築部３２から適時送信されてきた各クライアント１のユーザの交友関係モデルを、ファイルシステムにより管理する。当該クライアント交友関係モデル管理部５１に対する問い合わせは参照対象のクライアント１のクライアントＩＤで行われ、当該問い合わせに対する出力はそのクライアント１の交友関係モデルとなる。
【００８７】
クライアント希望会合情報バッファ部５２は、各クライアント１の希望会合情報送信部３７から適時送信された各クライアント１の希望会合情報を一時的にバッファする。
【００８８】
クライアント希望会合情報マッチング部５３は、上記クライアント希望会合情報バッファ部５２にバッファされた希望会合情報を基に、当該希望会合情報中の、会合メンバ候補となっているクライアント１のうち、希望会合日時及び希望会合場所範囲が適合するクライアント群（以下、適合クライアント群と称する）を、クライアント１毎に抽出する。
【００８９】
最適会合クライアント群集合生成部５４は、上記クライアント希望会合情報マッチング部５３により抽出された全クライアント１の適合クライアント群から、クライアント１の重なりが無く、かつ、なるべく多くのクライアント１の要求（希望会合情報）を満たすような、最適会合クライアント群集合の生成を行う。
【００９０】
会合設定部５５は、最適会合クライアント群集合生成部５４で生成された最適会合クライアント群集合の各要素である最適会合クライアント群について、それに属する複数のクライアント１の希望会合情報をさらに調停し、最終的な会合の設定を行う。
【００９１】
設定会合情報送信部５６は、各最適会合クライアント群に対して決定された、最終的な会合の日時、待ち合わせ場所の情報を、設定会合情報として、当該最適会合クライアント群に属するクライアント１全員に送信する。
【００９２】
次に、以上のように構成された会合設定システム１００の動作について説明する。  
まず、クライアント１側の処理について説明する。
【００９３】
図６は、本実施形態における会合設定システム１００の全体的な動作の流れを示したフローチャートである。  
同図に示すように、まず、各クライアント１のＣＰＵ１１は、交友関係推定部３１により、クライアント１のユーザの交友関係を推定する（ステップ６１）。以下、交友関係推定処理の詳細について説明する。
【００９４】
クライアント１のユーザとの間で交友関係推定対象となる人物は、クライアント１のアドレス帳に少なくとも基本情報（名前、メールアドレス）が登録されている人物である。交友関係推定部３１は、交友度として、推定対象となる人物Ｐｉに対するメール及び通話の送受信履歴から得られる送受信頻度に応じて、交友度が高くなるような交友度関数を定義する。
【００９５】
まず、交友関係推定部３１は、人物Ｐｉに対する交友頻度ＦＱ（Ｐｉ）を以下の交友頻度関数で定義する。
ＦＱ（Ｐｉ）＝α＊ＦＱｏｆｆ（Ｐｉ）＋（１−α）＊ＦＱｏｎ（Ｐｉ）        （１）
【００９６】
ここで、ＦＱｏｆｆ（Ｐｉ）は、人物Ｐｉとのオフタイム（仕事業務時間外）におけるメール及び通話の設定期間内（例えば過去一週間、過去一ヶ月、過去半年、過去一年等）の送受信総数であり、ＦＱｏｎ（Ｐｉ）は、人物Ｐｉとのオンタイム（仕事業務時間内）におけるメール及び通話の設定期間内の送受信総数である。αは０≦α≦１の範囲で設定される重み係数である。オンタイムは例えば月曜日〜金曜日の午前８時〜午後６時まで、オフタイムは月曜日〜金曜日の午後６時〜２４時まで等とされるが、これに限られるものではない。
【００９７】
一般的に、プライベートでの友人、知人とのやり取りはオフタイムに行われることが多いため、交友頻度関数のαは０．５より大きく設定するのが望ましい。より好ましくは、αは０．７〜０．８に設定される。このような設定にすることで、オフタイムの通信頻度の多い人物に対して交友度がより高くなるような推定関数にすることができる。なお、αは１．０に設定されても構わない。すなわち、交友関係推定部３１は、オンタイムにおける送受信総数を無視するようにしても構わない。
【００９８】
交友関係推定部３１は、交友度ＦＲ（Ｐｉ）を、交友頻度の確率で定義する。すなわち、交友度ＦＲは、以下に示すように、アドレス帳の全人物の交友頻度総和に対する対象人物の交友頻度の割合で定義される。
ＦＲ（Ｐｉ）＝ＦＱ（Ｐｉ）／ΣｉＦＱ（Ｐｉ）                            （２）
【００９９】
交友関係推定部３１は、ＣＰＵ１１から人物Ｐｉに対する交友関係推定の要求があると、上記式（１）及び式（２）により、ＦＲ（Ｐｉ）を計算し、出力する。
【０１００】
次に、ＣＰＵ１１は、交友関係モデル構築部３２により、クライアント１のユーザの交友関係モデルを構築する（ステップ６２）。以下、交友関係モデル構築処理の詳細について説明する。
【０１０１】
上述したように、交友関係モデルは、名前、メールアドレス、場所等を示す基本属性情報と、交友の度合いを示すラベル（親友、友人、知人等）を示す交友属性情報の各情報からなる。
【０１０２】
交友関係モデル構築部３２は、まず、アドレス帳を参照し、対象人物Ｐｉに対する基本属性情報を得る。そして、交友関係モデル構築部３２は、例えばＦＲ値の高い順等、所定のルールに従って、ＦＲ（Ｐｉ）の値により「親友、友人、知人」などのラベルを与え、交友属性情報を生成する。交友関係モデル構築部３２は、構築した交友関係モデルを適宜サーバ２へ送信する。送信された交友関係モデルは、サーバ２側で、他のクライアント１の交友関係モデルと共に一括管理される。よって、交友関係モデル構築部３２は、構築した交友関係モデルを更新する際には、更新に先駆けてサーバから自身の交友関係モデルをダウンロードし、更新の後、サーバ２にアップロードを行う構成をとる。
【０１０３】
交友属性情報の交友度合いラベルは、操作入力部１４を介してユーザから直接入力できるようにしても構わない。この場合、交友度合いラベルは、例えば対象人物Ｐｉのアドレス帳登録時に入力されたり、アドレス帳情報変更時に入力されたりする。
【０１０４】
次に、ＣＰＵ１１は、アベイラビリティ推定部３３により、クライアント１のユーザのアベイラビリティ、すなわち希望会合日時を推定する（ステップ６３）。以下、当該アベイラビリティ推定処理の詳細について説明する。
【０１０５】
本実施形態においては、アベイラビリティ推定部３３は、予め用意されたモデルルールのうち、クライアント１のユーザが過去の会合に出席した日時の履歴に最も合致するルールを用いて推定を行う。
【０１０６】
アベイラビリティ推定部３３は、例えば、「毎日」、「毎日（土日を除く）」、「毎週末」、「毎週＊曜日」、「毎月＊日」、「毎月第＊週」、「毎月＊旬（上旬、中旬、下旬）」等の、日に関する複数のモデルルールと、「＊時以降」「＊時以前」「＊時〜＊時」等の、時間に関する複数のモデルルールとを、アベイラビリティ推定を行うモデルルール群として、予めフラッシュメモリ１７等に記憶しておく。
【０１０７】
アベイラビリティ推定部３３は、会合履歴データベース４２に記憶されている、ユーザが過去に出席した会合の履歴データと比較して最も合致する（マッチ度の高い）モデルルールを、アベイラビリティ推定ルールとする。さらに、アベイラビリティ推定部３３は、クライアント１のスケジューラ４４から、ユーザのスケジュール情報を得て、上記アベイラビリティ推定ルールによる推定結果が「アベイラブル」となった日時のうち、スケジュールが既に埋まっている日時について「アンアベイラブル」という推定結果に修正を行い、最終的な推定結果とする。
【０１０８】
ここで、モデルルールと会合出席履歴との比較手法（マッチ度の算出手法）として、ファジィ論理演算を用いる場合について説明する。ファジィ論理を導入するのは、例えば「毎週末」、「＊時以降」というような自然言語的表現でかつある程度の数値幅を許す必要があるような表現を数学的記述に変換する際に、ファジィ集合を用いると都合がよいからである。
【０１０９】
例として、モデルルール１「毎週末はアベイラブル」及びモデルルール２「毎週水曜はアベイラブル」と、履歴１「過去８週間のほぼ毎週土日のどちらか少なくとも一方の会合に出席していた場合」及び履歴２「ほぼ毎週水曜に会合に出席していた場合」とのマッチ度算出を、ファジィ論理を用いて行う手法について説明する。
【０１１０】
図７は、上記モデルルール１及び２と、上記履歴１及び２とをそれぞれファジィ集合を用いて表現した図である。  
図７（Ａ）は、モデルルール１「毎週末はアベイラブル」のファジィ集合を用いた表現である。横軸は１日を１メモリとしたカレンダー的離散時間軸であり、縦軸がアベイラビリティの度合い（２値化する前の値で、０から１の実数値をとる）である。一般的には、ファジィ集合の縦軸はメンバシップ値と呼ばれ、横軸を変数としたメンバシップ関数の出力である。「毎週末はアベイラブル」の表現は、土日に相当する横軸座標が高さ１になるような三角型のメンバシップ関数で定義される。なお、この例では横軸座標が離散であるため、クリスプ集合と等価になっているが、特に一般化に問題はない。一方、図７（Ｂ）がモデルルール２「毎週水曜」のファジィ集合を用いた表現である。
【０１１１】
また、会合出席履歴のファジィ集合表現においては、例えば会合に出席した日についてメンバシップ値１をもち、その前後各１日に対してメンバシップ値０．５となるような三角型メンバシップ関数が用いられる。図７（Ｃ）は、履歴１「過去８週間のほぼ毎週土日のどちらか少なくとも一方の会合に出席していた場合」のファジィ集合を用いた表現であり、図７（Ｄ）は、履歴２「ほぼ毎週水曜に会合に出席していた場合」のファジィ集合を用いた表現である。
【０１１２】
続いて、それぞれのモデルルールと会合出席履歴とのマッチ度の算出過程の詳細を説明する。まず、モデルルールのファジィ集合と会合出席履歴のファジィ集合の同値（否定排他的論理和）演算を行う。例えば、クリスプ（ファジィでない）論理におけるＡとＢの同値"Ａ⇔Ｂ"は、論理和∨、論理積∧、否定〜を用いて、"〜Ａ∧〜Ｂ∨Ａ∧Ｂ"と表される。ファジィ集合Ａ、Ｂのメンバシップ関数をそれぞれμＡ（ｘ）、μＢ（ｘ）とし、メンバシップ関数を当該ファジィ集合の表す命題に対する多値（［０，１］の値をとる実数値）真理値関数とみることで、上記モデルルール及び会合出席履歴をファジィ論理体系の枠で捉えることができる。先のそれぞれの論理演算は、ファジィ論理において次のように拡張される。
［ファジィ論理和∨ｆ］
Ａ∨ｆＢ  ＝  ｍａｘ（μＡ（ｘ），μＢ（ｘ））                      （１）
［ファジィ論理積∧ｆ］
Ａ∧ｆＢ  ＝  ｍｉｎ（μＡ（ｘ），μＢ（ｘ））                      （２）
［ファジィ否定（ファジィ補集合）〜ｆ］
〜ｆＡ  ＝  １−μＡ（ｘ）                                          （３）
【０１１３】
ここで求めたいのはファジィ集合ＡとＢの同値Ａ⇔ｆＢであり、これは、
Ａ⇔ｆＢ  ＝  （〜ｆＡ）∧ｆ（〜ｆＢ）∨ｆＡ∧ｆＢ                  （４）
を求めることに相当する。
【０１１４】
図８〜図１１は、以上の論理演算過程を示した図である。これらの図において、上記モデルルール１、モデルルール２、履歴１、履歴２は、それぞれファジィ集合Ａ１、Ａ２、Ｂ１、Ｂ２と表現されている。図８は、ファジィ集合Ａ１とＢ１との同値演算過程を示し、図９は、ファジィ集合Ａ１とＢ２との同値演算過程を示し、図１０は、ファジィ集合Ａ２とＢ１との同値演算過程を示し、図１１は、ファジィ集合Ａ２とＢ２との同値演算過程を示している。
【０１１５】
図１２は、モデルルール１「毎週末はアベイラブル」、モデルルール２「毎週水曜はアベイラブル」と履歴１「過去８週間のほぼ毎週土日のどちらか少なくとも一方の会合に出席していた場合」、履歴２「ほぼ毎週水曜に会合に出席していた場合」の、それぞれモデルルールと履歴との同値演算結果を示した図である。  
この図１２から明らかな通り、モデルルール１と履歴１、モデルルール２と履歴２の組み合わせについて、ファジィ同値演算結果のファジィ集合の面積がその他のルールと履歴の組み合わせに比べて大きいことが分かる。
【０１１６】
そこで、アベイラビリティ推定部３３は、モデルルールと履歴とのマッチ度を、「モデルルールファジィ集合と履歴ファジィ集合の同値演算結果ファジィ集合の面積」と定義する。そして、アベイラビリティ推定部３３は、ある設定期間内におけるクライアントの会合参加履歴のファジィ集合表現に対して、あらかじめ用意したモデルルールのファジィ集合表現群のうち、モデルルールと履歴とのマッチ度が最大となるモデルルールをアベイラビリティ推定ルールと決定する。
【０１１７】
図１３は、アベイラビリティ推定ルールの決定プロセスの流れを示したフローチャートである。なお、アベイラビリティ推定部３３は、このプロセスの前処理として、上記モデルルール群のファジィ集合を上述のように定義しておく。  
同図に示すように、アベイラビリティ推定部３３は、上記会合履歴データベース４２から、会合出席履歴を得て、会合出席履歴ファジィ集合を生成する（ステップ１３１）。続いて、アベイラビリティ推定部３３は、モデルルールのカウンタ値ｉを１とし（ステップ１３２）、モデルルールｉのファジィ集合と、会合出席履歴ファジィ集合とのファジィ同値演算を行う（ステップ１３３）。
【０１１８】
続いて、アベイラビリティ推定部３３は、上記ファジィ同値演算の結果のファジィ集合の面積を算出する（ステップ１３４）。アベイラビリティ推定部３３は、以上のステップ１３３及び１３４の処理を全てのモデルルールに対して行ったか否かを判断する（ステップ１３５）。処理対象のモデルルールが残っている場合には（Ｎｏ）、アベイラビリティ推定部３３は、カウンタ値ｉを１だけインクリメントし（ステップ１３７）、上記ステップ１３３及び１３４の処理を繰り返す。
【０１１９】
そして、アベイラビリティ推定部３３は、全てのモデルルールに対して処理を行ったと判断した場合には（Ｙｅｓ）、上記算出された面積のうち、最大面積を与えるモデルルールをアベイラビリティ推定ルールと決定する（ステップ１３６）。
【０１２０】
図１４は、上記決定されたアベイラビリティ推定ルールを用いたアベイラビリティ推定プロセスの流れを示したフローチャートである。  
同図に示すように、アベイラビリティ推定部３３は、まず、初期処理として、未来の日時全てに対して「アンアベイラブル」を付与する（ステップ１４１）。続いて、アベイラビリティ推定部３３は、は、上記決定されたアベイラビリティ推定ルールに合致する未来の日時に「アベイラブル」を付与する（ステップ１４２）。
【０１２１】
続いて、アベイラビリティ推定部３３は、スケジューラ４４を参照して、ユーザのスケジュールが既に埋まっている日時に対して「アンアベイラブル」を付与する（ステップ１４３）。そして、アベイラビリティ推定部３３は、推定対象日時に対して、以上の処理結果（すなわち、「アベイラブル」または「アンアベイラブル」）を、アベイラビリティ推定結果として出力する（ステップ１４４）。
【０１２２】
以上の説明では、日に関してのアベイラビリティ推定ルールの決定法を記述したが、時間に関してのアベイラビリティ推定ルールの決定に関しても同様のアプローチが取れる。
【０１２３】
例として、モデルルールＴ１「２０時以降はアベイラブル」、モデルルールＴ２「２０時〜２２時はアベイラブル」のファジィ集合を想定する。図１５は、この各モデルルールＴ１及びＴ２をそれぞれファジィ集合で表現した図である。
【０１２４】
一方、会合出席時間の過去の履歴のファジィ表現については、出席時間に対する履歴中のサンプル数から生成したヒストグラムを［０，１］の範囲に正規化して生成する方法や、時間に対する会合出席事象の出現確率を高さ１のガウス分布でモデル近似を行い、それをファジィ集合とする方法が考えられる。例として、図１６に、会合出席時間の過去の履歴が２０時から２２時に最頻出した場合のヒストグラム表現（同図（Ａ））と、そこから生成したファジィ集合（同図（Ｂ））を示す。モデルルールと履歴とのマッチ度の算出については上述の日に関するアベイラビリティ推定処理と同様の方法が用いられるため、詳細な説明は省略する。
【０１２５】
なお、上記では日と時間のアベイラビリティは独立している場合を想定しているが、「土日は昼がアベイラブル」だが「平日は夜がアベイラブル」のように、日と時間のアベイラビリティに関連がある場合がある。そのような場合、アベイラビリティ推定部３３は、日と時間を横軸としたファジィ集合でルールを記述し、上記と同様のアプローチによりアベイラビリティ推定ルールの決定法を行う。
【０１２６】
例として、図１７に、モデルルール「水曜は２０時から２２時、週末は１２時から１４時がアベイラブル」を表すファジィ集合を示す。この場合も、アベイラビリティ推定部３３は、上述と同様に、過去の会合出席日時をファジィ集合で表し、両者の同値演算を行うことで、アベイラビリティを推定できる。
【０１２７】
図６のフローチャートに戻り、アベイラビリティ推定処理が完了すると、ＣＰＵ１１は、会合場所範囲推定部３４により、希望会合場所範囲を推定する（ステップ６４）。以下、当該希望会合場所範囲推定処理の詳細について説明する。
【０１２８】
図１８は、当該希望会合場所範囲推定処理の流れを示したフローチャートである。  
同図に示すように、まず、会合場所範囲推定部３４は、上記アベイラビリティ推定部３３により推定された希望会合日時の直前のクライアントの場所（会合移動元）の設定を行う（ステップ１８１〜１８７）。会合場所範囲推定部３４は、スケジューラ４４を参照して、希望会合日時直前に設定されている他の予定の開催場所情報が登録されているか否かを判断し（ステップ１８１）、ある場合には（Ｙｅｓ）、その場所を会合移動元と設定する（ステップ１８２）。
【０１２９】
スケジューラ４４に何も予定が登録されていない場合（Ｎｏ）、会合場所範囲推定部３４は、上記希望会合日時に出張や旅行の予定期間中に含まれているか否かを判断し（ステップ１８３）、当該出張や旅行の予定期間中に含まれる場合（ＹＥＳ）には、当該出張や旅行の滞在先を会合移動元に設定する（ステップ１８４）。
【０１３０】
上記ステップ１８３において、希望会合日時が出張や旅行の予定期間中に含まれない場合（Ｎｏ）、会合場所範囲推定部３４は、希望会合日時がオンタイムかオフタイムかを判断し（ステップ１８５）、オンタイムと判断された場合には職場の位置情報を会合移動元に設定し（ステップ１８６）、オフタイムと判断された場合には自宅の位置情報を会合移動元に設定する（ステップ１８７）。
【０１３１】
ここで、位置情報は、位置座標で表現される。例えば、ＧＰＳ（Global Positioning System）がクライアント１に搭載されていれば、会合場所範囲推定部３４は、当該ＧＰＳから位置座標を得る。ＧＰＳが利用可能でない場合には、会合場所範囲推定部３４は、スケジューラ４４等の登録住所から位置座標を特定することで位置座標を得る。
【０１３２】
続いて、会合場所範囲推定部３４は、クライアント１のユーザが許容可能な移動距離と会合移動元の位置情報とから、希望会合場所範囲を推定する。
【０１３３】
まず、会合場所範囲推定部３４は、許容可能な移動距離を推定する。ここで、許容可能な移動距離は、（１）クライアントからの直接入力、または、（２）過去に出席した会合の情報から算出される、会合移動元から会合開催地への平均移動距離を基に推定される。
【０１３４】
上記（１）の場合、会合場所範囲推定部３４は、クライアント１の操作入力部１４を介して、ユーザに許容可能な移動距離を直接入力してもらう。例えば「〜Ｘｋｍ」や「Ｘ〜Ｙｋｍ」のＸ、Ｙに数値を直接入力する形態や、「〜１ｋｍ」「５〜１０ｋｍ」「５ｋｍ〜」など選択肢から選択してもらう形態が適用可能である。
【０１３５】
上記（２）の場合、会合場所範囲推定部３４は、会合履歴データベース４２から過去の会合出席履歴を参照し、会合移動元の位置座標と、会合開催場所の位置座標とから、履歴中の各会合の移動距離を算出し、例えばその平均値を許容移動距離とする。この場合、会合参加履歴管理部３９が、履歴データ更新時に移動距離を予め計算して保存している場合には、その移動距離が直接参照される。
【０１３６】
続いて、会合場所範囲推定部３４は、上記会合移動元位置座標を中心として設定し（ステップ１８８）、当該中心から許容移動距離を満たす座標領域を希望会合場所範囲として算出する（ステップ１８９）。
【０１３７】
希望会合場所範囲としては、例えば各座標に対して許容度を表す０から１の範囲の実数値を付与した表現が用いられる。許容度は、許容移動距離内において１．０をとり、許容移動距離の上下端から離れるに従って、所定の裾野幅で１から０に単調減少するような関数で定義する。
【０１３８】
図１９及び図２０は、この許容度関数の例（各図（Ａ））及びそれを用いた希望会合場所範囲の例（各図（Ｂ））を示した図である。図１９においては、許容移動距離は１０〜１５ｋｍに設定され、裾野幅は５ｋｍに設定されている。図２０においては、許容移動距離は０〜１０ｋｍに設定され、裾野幅は５ｋｍに設定されている。
【０１３９】
図６のフローチャートに戻り、ＣＰＵ１１は、希望会合場所範囲の推定処理を完了すると、会合メンバ候補生成器３５により会合メンバ候補を生成する（ステップ６５）。
【０１４０】
一般の会議アレンジシステムとは異なり、本システムの適用が想定される飲み会などのプライベートな会合アレンジのコンテクストにおいては、会合設定、特に会合メンバの設定に対して設定の意外性、新鮮さ、ハチャメチャさなどが許され、またそれを愉しむ状況を作り出すようなシステムに需要があると思われる。
【０１４１】
このようなシステムの特徴を実現するため、会合メンバ候補生成器３５は、例えば、上記会合履歴データベース４２を参照し、近過去で会合メンバに選ばれた頻度の少ない人（他のクライアント１）ほど高い選択確率を付与して重み付きランダム選択を行う。
【０１４２】
また、会合メンバ候補生成器３５は、操作入力部１４を介してユーザから会合メンバに関する指示を直接入力することにより、会合メンバ候補の絞込み及び拡張の指示を行うことも可能である。
【０１４３】
例えば、会合メンバ候補生成器３５は、例えば、［「誰でもいい」、「親友のみＯＫ」、「友人までＯＫ」、「知人までＯＫ」、「｛親友、友人、知人｝の｛親友、友人、知人｝までＯＫ」］の交友属性ラベルを基に会合メンバの絞込み及び拡張の指示選択肢を生成し、当該指示選択肢の中からクライアントに選択してもらう。
【０１４４】
例えば上記指示選択肢の選択が「親友のみＯＫ」であれば、会合メンバ候補生成器３５は、上記生成された会合メンバ候補の中から、交友属性が親友である人だけをピックアップして会合メンバ候補を上書き更新する。上記指示選択肢の選択が「知人までＯＫ」であれば、会合メンバ候補生成器３５は、交友属性が親友、友人、知人である人だけをピックアップして会合メンバ候補を上書き更新する。上記指示選択肢の選択が「友人の親友までＯＫ」であれば、会合メンバ候補生成器３５は、会合メンバ候補の中から交友属性が親友、友人である人だけをピックアップし、その人に拡張指示として「その親友までＯＫ」を追記して会合メンバ候補を上書き更新する。上記指示選択肢の選択が「誰でもいい」の場合には、会合メンバ候補生成器３５は、会合メンバ候補中の全ての人に対して、拡張指示として「その知人までＯＫ」を追記して会合メンバ候補を上書き更新する。この拡張指示は、サーバ２において処理される（後述）。
【０１４５】
図６のフローチャートに戻り、ＣＰＵ１１は、上記会合メンバ候補の生成処理を完了すると、希望会合情報生成器３６により、希望会合情報を生成する（ステップ６６）。すなわち、希望会合情報生成器３６は、上記アベイラビリティ推定部３３、会合場所範囲推定部３４及び会合メンバ候補生成器３５によりそれぞれ生成された希望会合日時、希望会合場所範囲、会合メンバ候補の各情報を、一まとめのデータ構造に加工し、希望会合情報として希望会合情報送信部３７へ出力する。
【０１４６】
この希望会合情報は、上述したように、クライアント１の操作入力部１４を介してユーザから直接入力できる構成をとってもよい。つまり、クライアントから希望会合日時、希望会合場所範囲、会合メンバ候補の直接入力があった場合には、希望会合情報生成器３６は、その希望会合情報を優先させて希望会合情報送信部３７へ出力する。これにより、クライアントが確固たる目的を持って会合を開催したい場合でも本システムを利用したい場合に対処できる。
【０１４７】
希望会合情報が生成された場合には、ＣＰＵ１１は、希望会合情報送信部３７及び通信部１５により、当該希望会合情報をサーバ２に適時送信する。
【０１４８】
以上までの処理は、クライアント１側の処理である。次に、サーバ２側の処理について説明する。  
まず、サーバ２のＣＰＵ２１は、通信部２５により、上記各クライアント１から送信された希望会合情報を受信する（ステップ６８）。続いて、ＣＰＵ２１は、クライアント希望会合情報バッファ部５２により、当該各クライアントの希望会合情報を一時的にバッファする（ステップ６９）。
【０１４９】
続いて、ＣＰＵ２１は、クライアント希望会合情報マッチング部５３により、各クライアント１の各希望会合情報中の、会合メンバ候補から、上記適合クライアント群を生成する（ステップ７１）。以下、適合クライアント群の生成処理の詳細を説明する。以降の説明においては、希望会合情報の処理対象となるクライアント１をＣｉ、Ｃｉのクライアント希望会合情報内の会合メンバ候補情報をＬｉｓｔＣｉと記し、Ｃｉに対しての処理を例として記載する。ここで、ＬｉｓｔＣｉは、上述したように、Ｃｉが希望する会合の参加候補者リストである。ＬｉｓｔＣｉの要素は他のクライアント１であり、ＬｉｓｔＣｉはサーバ２が管理している全クライアント集合の部分集合となっている。
【０１５０】
図２１は、適合クライアント群の生成処理の流れを示したフローチャートである。  
同図に示すように、クライアント希望会合情報マッチング部５３は、まず、クライアント１のカウンタ値ｉを１とし（ステップ２０１）、Ｃｉに関する希望会合情報が、上記クライアント希望会合情報バッファ部５２にバッファされているか否かを判断する（ステップ２０２）。
【０１５１】
Ｃｉに関する希望会合情報がバッファされていると判断された場合（Ｙｅｓ）、クライアント希望会合情報マッチング部５３は、ＬｉｓｔＣｉにメンバの拡張指示があるか否かを判断する（ステップ２０３）。拡張指示があると判断された場合（Ｙｅｓ）、クライアント希望会合情報マッチング部５３は、その拡張指示に合致する会合メンバ候補であるクライアントをＬｉｓｔＣｉに追加補充する（ステップ２０４）。例えばＬｉｓｔＣｉの要素にクライアントＣｊがあり、さらにＣｊに対して「その友人までＯＫ」という拡張指示があった場合、クライアント希望会合情報マッチング部５３は、Ｃｊの交友関係モデルをクライアント交友関係モデル管理部５１に問い合わせ、Ｃｊの交友関係モデルに基づき、Ｃｊとの交友属性が「友人」または「親友」であるクライアントを、例えばランダムに選択してＬｉｓｔＣｉに追加する。クライアント希望会合情報マッチング部５３は、以上の操作をＬｉｓｔＣｉの全ての要素（クライアント）について行う。
【０１５２】
続いて、クライアント希望会合情報マッチング部５３は、上記手法で修正（要素の追加）されたＬｉｓｔＣｉの要素クライアントのうち、Ｃｉの希望会合情報の希望会合日時及び希望会合場所範囲に適合する（共通の数値範囲が存在する）クライアント群を抽出する（マッチング処理）。
【０１５３】
クライアント希望会合情報マッチング部５３は、このマッチング処理として、まず、希望会合日がＣｉと同じであるＬｉｓｔＣｉのクライアントを抽出し（ステップ２０５）、そのうち希望会合時刻（時間帯）がＣｉと所定の割合以上（例えばＣｉの希望会合時間帯に対し５０％以上）重なりがあるクライアントのみを抽出し（ステップ２０６）、さらに希望会合場所範囲についてＣｉと所定の割合以上（例えばＣｉの希望会合場所範囲に対し２５％以上）重なりのあるクライアントを抽出する（ステップ２０７）。
【０１５４】
図２２は、ステップ２０７における希望会合場所範囲のマッチング処理を示した概念図である。同図に示すように、クライアントＣｉの希望会合場所範囲１と、クライアントＣｊの希望会合場所範囲２との共通部分が、例えばｍｉｎ関数を用いたｍｉｎオペレーションにより抽出される。ここで、希望会合場所範囲１に対する共通部分の割合は体積比で算出される。
【０１５５】
以上のマッチング処理の結果、クライアントＣｉに対して適合クライアント群が抽出される。クライアント希望会合情報マッチング部５３は、これにＣｉを含めてインデックスでソートした集合を適合クライアント群Ｍｉとして生成し、保持する（ステップ２０８）。
【０１５６】
例えばクライアントＣ１に対するマッチングの結果、適合クライアント群｛Ｃ２，Ｃ５，Ｃ９，Ｃ１０｝が抽出されたとする。これにＣ１も含めてインデックスでソートした集合：Ｍ１＝｛Ｃ１，Ｃ２，Ｃ５，Ｃ９，Ｃ１０｝がＣ１の「適合クライアント群」となる。
【０１５７】
クライアント希望会合情報マッチング部５３は、上記カウンタ値ｉをインクリメントして、上述の処理を繰り返すことで、全てのクライアントＣｉについてその適合クライアント群Ｍｉを求める（ステップ２０９、２１１）。
【０１５８】
上記ステップ２０２において、Ｃｉに関する希望会合情報がバッファされていないと判断された場合（Ｎｏ）には、クライアント希望会合情報マッチング部５３は、Ｍｉ＝Φ（空集合）としておく（ステップ２１０）。
【０１５９】
図６のフローチャートに戻り、ＣＰＵ２１は、最適会合クライアント群集合生成部５４により、上記で求めた全クライアントの適合クライアント群から、クライアントの重なりが無く、かつ、なるべく多くのクライアントの要求（希望会合情報）を満たすような、最適会合クライアント群集合を生成する（ステップ７１）。ここで、最適会合クライアント群集合生成部５４は、一人のクライアントが同時刻に開催される複数の会合に参加はできないという仮定を置き、最適会合クライアント群間でその要素（クライアント）は排他的となるようにする。以下、当該最適会合クライアント群集合の生成処理の詳細を説明する。
【０１６０】
ここで、最適会合クライアント群集合を生成するために、どのような問題を解けばよいかについて説明する。
【０１６１】
まず、２つのクライアント群間の距離Ｄを導入する。距離尺度として、クライアント群を文字列に見立て、二つの文字列がどの程度異なっているかを示す距離尺度であるレーベンシュタイン距離を導入した場合について説明する。
【０１６２】
レーベンシュタイン距離は、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数として与えられる。
【０１６３】
例えば、クライアント群Ｍｉ＝｛Ｃ１，Ｃ２，Ｃ５，Ｃ９，Ｃ１０｝と、クライアント群Ｍｊ＝｛Ｃ１，Ｃ５，Ｃ７，Ｃ１０｝とのレーベンシュタイン距離Ｄ（Ｍｉ，Ｍｊ）は、「ＭｊにＣ２を挿入し、Ｃ７をＣ９に変換する」という最低２つの手順でＭｊをＭｉに変形できるため、レーベンシュタイン距離Ｄ（Ｍｉ，Ｍｊ）＝２となる。ここで、Ｍｉ、Ｍｊの要素はあらかじめインデックスでソート、つまりクライアントＩＤの若い順にソートされる。
【０１６４】
次に、クライアント数がＮの場合に、お互いの要素が排他的になる上限Ｒ個のクライアント群Ｇ１，・・・，ＧＲからなる任意の集合Ｓ＝｛Ｇ１，・・・，ＧＲ｝を生成する方法を説明する。
【０１６５】
まず、各要素が０以上Ｒ以下の整数値からランダムに選択して得られた長さＮの数列を生成する。そして数列のｎ番目の数をクライアントＣｎが属するクライアント群のＩＤとする。例えばＲ＝３，Ｎ＝６の場合、生成された数列が３，３，１，２，０，１だったとすると、Ｇ１＝｛Ｃ３、Ｃ６｝、Ｇ２＝｛Ｃ４｝、Ｇ３＝｛Ｃ１，Ｃ２｝となるクライアント群集合Ｓ＝｛Ｇ１，Ｇ２，Ｇ３｝が生成できる。Ｃ５はどのクライアント群にも属していない。
【０１６６】
もう一例あげると、数列が２，２，１，１，０，１の場合、Ｇ１＝｛Ｃ３、Ｃ４、Ｃ６｝、Ｇ２＝｛Ｃ１、Ｃ２｝、Ｇ３＝Φ（空集合）となるクライアント群集合Ｓ＝｛Ｇ１，Ｇ２，Ｇ３｝が生成される。ここでＣ５はどのクライアント群にも属していない。またＧ３は空集合となっているため、結果としてお互いの要素が排他的になる２個のクライアント群が生成されたことになる。
【０１６７】
上記のように生成された任意のクライアント群集合Ｓ＝｛Ｇ１，・・・，ＧＲ｝と、任意のクライアントＣｉの適合クライアント群Ｍｉとの距離Ｄ２（Ｓ，Ｍｉ）を、次のように定義する。
Ｄ２（Ｓ，Ｍｉ）＝ｍｉｎ＿ｊ（Ｄ（ＧＭｉ＿ｊ，Ｍｉ））            （５）
【０１６８】
ただしＧＭｉ＿ｊはＭｉのｊ番目の要素（クライアント）を要素に持つＳに属するクライアント群であり、ｍｉｎ＿ｊはｊについて最小値をとるオペレーションである。例えば、Ｎ＝６、Ｒ＝３で生成された数列１，１，２，３，０，２を使い、Ｓ＝｛Ｇ１＝｛Ｃ１，Ｃ２｝，Ｇ２＝｛Ｃ３，Ｃ６｝，Ｇ３＝｛Ｃ４｝｝が生成されていて、クライアントＣ１の適合クライアント群Ｍ１がＭ１＝｛Ｃ１，Ｃ２，Ｃ３｝であるときに、Ｄ２（Ｓ，Ｍ２）を計算することを考えよう。ＧＭ１＿１＝Ｇ１、ＧＭ１＿２＝Ｇ１，ＧＭ１＿３＝Ｇ２であり、それぞれのＭ１とのレーベンシュタイン距離はＤ（ＧＭ１＿ｊ，Ｍ１）は１，１，２である。よって、上記（５）式によりＤ２（Ｓ，Ｍ１）＝ｍｉｎ＿ｊ（１，１，２）＝１となる。図２３は、上記例を図示したものである。
【０１６９】
さらに、全てのクライアントＣ１・・・ＣＮの適合クライアント群の集合Ｍ＝｛Ｍ１，・・・，ＭＮ｝と任意のＳとの距離Ｄ３（Ｍ，Ｓ）を次のように定義する。
Ｄ３（Ｍ，Ｓ）＝Σｉ（Ｄ２（Ｓ，Ｍｉ））                            （６）
ここで、ｉ＝１，・・・，Ｎである。
【０１７０】
例えば、Ｍ＝｛Ｍ１＝｛Ｃ１，Ｃ２，Ｃ３｝，Ｍ２＝｛Ｃ１，Ｃ２，Ｃ５，Ｃ６｝，Ｍ３＝｛Ｃ１，Ｃ３，Ｃ６｝，Ｍ４＝Φ，Ｍ５＝｛Ｃ２，Ｃ５，Ｃ６｝，Ｍ６＝｛Ｃ２，Ｃ３，Ｃ５，Ｃ６｝｝の場合、先の例で用いたＳ＝｛Ｇ１＝｛Ｃ１，Ｃ２｝，Ｇ２＝｛Ｃ３，Ｃ６｝，Ｇ３＝｛Ｃ４｝｝に対してＤ３（Ｍ，Ｓ）を計算することを想定する。先の計算例と同じく、Ｄ２（Ｓ，Ｍ１）＝１となる。他のＭの要素についても同様に計算すると、Ｄ２（Ｓ，Ｍ２）＝２、Ｄ２（Ｓ，Ｍ３）＝１、Ｄ２（Ｓ，Ｍ４）＝計算スキップ（Ｍ４が空集合なので）、Ｄ２（Ｓ，Ｍ５）＝２、Ｄ２（Ｓ，Ｍ６）＝２となる。よって上記式（６）に従い、Ｄ３（Ｍ，Ｓ）＝１＋２＋１＋２＋２＝８となる。図２４は、この計算過程を示した図である。同図において、計算過程の詳細はＭ１とＭ６に限って図示した。
【０１７１】
ここで、任意の二つのＳ、Ｓ１とＳ２のどちらがよりよく全クライアントの適合クライアント群の集合Ｍを表現しているのか、すなわち、各クライアントからの要求（希望会合情報）をよりよく満たすような、お互いの要素が排他的になるクライアント群集合はＳ１とＳ２はどちらか、を決める尺度として、上記式（６）で定義した距離尺度Ｄ３（Ｍ，Ｓｋ），ｋ＝１，２、を用いる。
【０１７２】
もしＤ３（Ｍ，Ｓ１）＞Ｄ３（Ｍ，Ｓ２）であれば、Ｓ１で表されるクライアント群集合の方がＭからの距離が遠い、すなわち各クライアントの希望していたクライアント群集合（希望会合メンバ）をＳ１に変更した場合に、より多くの「コスト」（「あきらめ」、「妥協」と解釈も可）を必要とするということである。よって、Ｄ３の値が小さいＳｋほど、よりよく全クライアントの要求を満たすクライアント群といえる。
【０１７３】
例えば先の例で用いたＭに対してＳ１＝｛Ｇ１＝｛Ｃ１，Ｃ２｝，Ｇ２＝｛Ｃ３，Ｃ６｝，Ｇ３＝｛Ｃ４｝｝とＳ２＝｛Ｇ１＝｛Ｃ１，Ｃ３｝，Ｇ２＝｛Ｃ２，Ｃ５，Ｃ６｝，Ｇ３＝｛Ｃ４｝｝のＤ３は、それぞれＤ３（Ｍ，Ｓ１）＝８、Ｄ３（Ｍ，Ｓ２）＝４である。図２５は、上記Ｓ１及びＳ２とＭ１との距離を、グラフ表現を用いて示した図である。同図に示すように、Ｓ１よりもＳ２のほうがＭに近い形状となっていることが視覚的に分かる。
【０１７４】
以上の説明により、解くべき問題が、「お互いの要素が排他的になる上限Ｒ個のクライアント群集合の全集合Ｓ￣の中から、Ｍとの距離Ｄ３が最小となるＳ⊂Ｓ￣を求める」最適化問題であると定式化できる。この最適化問題の解（近似解）は、各クライアントの希望している希望会合メンバをなるべく変更が少ないように調整し、会合間でメンバの重複がないような会合群を構成するクライアント群集合となる。
【０１７５】
この最適化問題を解くための解析的な解法は無いが、遺伝的アルゴリズム（ＧＡ）に代表されるような組み合わせ最適化手法を用いることで、近似最適解を求めることができる。
【０１７６】
遺伝的アルゴリズムでは、最適化問題の解を染色体にコード化（ＧＡ操作０）した空間において、次のオペレーションを行う。  
まず、ランダムに初期の染色体集団（初期集団）を生成（ＧＡ操作１）する。この集団を交叉（ＧＡ操作２）、突然変異（ＧＡ操作３）、適合度計算（ＧＡ操作４）、適合度に基づく再生（ＧＡ操作５）のオペレーションセットを行い、それを繰り返す（ＧＡ操作５）ことで、集団全体を「進化」させていく。十分な繰り返し処理を行った後に得られた染色体集団の中から、最も適合度が高い染色体をデコードしたものが最適化問題の近似最適解となる。
【０１７７】
以下、遺伝的アルゴリズムを用いて最適クライアント群集合を生成する処理の詳細を説明する。
【０１７８】
［染色体へのコード化の定義（ＧＡ操作０）］
まず、最適会合クライアント群集合生成部５４は、ある自然数Ｒに対して、お互いの要素が排他的になるようなあるクライアント群集合をＳとした時のＳの染色体表現Ｓｇを、Ｓを生成した元となった整数列と定義する。例えば染色体ＣＨ（Ｓ）＝（３，３，１，２，０，１）はＧ１＝｛Ｃ３、Ｃ６｝、Ｇ２＝｛Ｃ４｝、Ｇ３＝｛Ｃ１，Ｃ２｝となるクライアント群集合Ｓ＝｛Ｇ１，Ｇ２，Ｇ３｝の染色体表現である。
【０１７９】
［適合度の定義］
また、最適会合クライアント群集合生成部５４は、各染色体ＣＨ（Ｓ）に対する適合度Ｆ（ＣＨ（Ｓ））を、
Ｆ（ＣＨ（Ｓ））＝−Ｄ３（Ｍ，Ｓ）                                    （７）
と定義する。これは、Ｍとの距離の大きいＳほど適合度が小さくなるような負値をとる関数である。
【０１８０】
［Ｒの値の決定］
次に、最適会合クライアント群集合生成部５４は、お互いの要素が排他的になるクライアント群集合の集合数Ｒの上限を決める。全クライアント数をＮとし、会合の最小要素数（会合開催に必要な最小参加者数）をεとした場合、Ｒ＝ＦＬＯＯＲ（Ｎ／ε）と決定する。ここでＦＬＯＯＲ（ｘ）はｘを超えない最大の整数である。
【０１８１】
続いて、最適会合クライアント群集合生成部５４は、上記ＧＡ操作１〜５の処理を実行する。図２６は、この処理の流れを示したフローチャートである。  
同図に示すように、最適会合クライアント群集合生成部５４は、まず、上記生成された全クライアントの適合クライアント群の集合Ｍをロードする（ステップ２６１）。
【０１８２】
［初期集団の生成（ＧＡ操作１）］
続いて、最適会合クライアント群集合生成部５４は、初期染色体集団を生成する（ステップ２６２）。具体的には、最適会合クライアント群集合生成部５４は、各要素が０以上Ｒ以下の整数値からランダムに選択して得られた長さＮの数列（染色体）を生成し、これをＰ回繰り返すことで、Ｐ個の初期染色体集団をランダムに生成する。図２７は、当該生成された初期染色体集団の例を示した図である。Ｐは、初期集団のサイズであり、例えば１０の３乗から５乗くらいで設定するのが望ましい。
【０１８３】
［交叉（ＧＡ操作２）］
続いて、最適会合クライアント群集合生成部５４は、交叉させる染色体ペアを確率的に選択する。そして、最適会合クライアント群集合生成部５４は、選択された染色体ペアを、ランダムに選ばれた交叉点でその右側の遺伝子列をそっくり交換する操作を行う（ステップ２６３）。
【０１８４】
図２８は、この操作を示した概念図である。同図に示すように、例えば集団の中からＣＨ１＝（３，３，１，２，０，１）、ＣＨ２＝（１，２，２，２，１，３）が交叉ペアとして選ばれ、交叉点として第３遺伝子座と第４遺伝子座の間が選ばれたとしよう。するとＣＨ１の最後３つの遺伝子（２，０，１）がＣＨ２の最後３つの遺伝子（２，１，３）と入れ替えられＣＨ１＊＝（３，３，１，２，１，３）とＣＨ２＊＝（１，２，２，２，０，１）という新しい染色体が生成される。ＣＨ１＊とＣＨ２＊はそれぞれＣＨ１とＣＨ２に上書きされる。
【０１８５】
［突然変異（ＧＡ操作３）］
続いて、最適会合クライアント群集合生成部５４は、交叉処理の終わった各染色体に対して各遺伝子座においてある小さい確率で遺伝子をランダムに対立遺伝子の一つに置き換える操作を行う（ステップ２６４）。
【０１８６】
図２９は、この突然変異処理を示した概念図である。同図に示すように、例えば先のＣＨ１の第３遺伝子座が突然変異対象として選択され、その遺伝子（３）の対立遺伝子（０，・・・，Ｒのうち３を除いたもの）からランダムに０が選択されたとすると、ＣＨ１（３，３，１，２，１，３）はＣＨ１＊＊＝（３，３，０，２，１，３）と変異する。ＣＨ１＊＊はＣＨ１に上書きされる。
【０１８７】
［適合度計算（ＧＡ操作４）］
続いて、最適会合クライアント群集合生成部５４は、上記交叉、突然変異により入れ替わった集団の各染色体の適合度を上記式（７）に従って計算する（ステップ２６５）。計算に先立って、各ＣＨはそのクライアント群集合Ｓの表現にデコードされる。
【０１８８】
［繰り返し終了判定］
続いて、最適会合クライアント群集合生成部５４は、集団中の染色体の適合度のうちで最大の適合度が所定の閾値を越えたか、または、所定の繰り返し回数上限値を超えたかを判断する（ステップ２６６）。いずれかの値が超えたと判断された場合（Ｙｅｓ）には、最適会合クライアント群集合生成部５４は、繰り返し処理を終了し、最大の適合度をもつ染色体をデコードして得られたクライアント群集合Ｓを、上記最適化問題の近似最適解Ｓ＊として出力する（ステップ２６８）。
【０１８９】
［適合度に基づく再生（ＧＡ操作５）］
最適会合クライアント群集合生成部５４は、上記ステップ２６６において、いずれの値も超えていないと判断した場合（Ｎｏ）、集団の中から適合度の高い染色体を増殖させ、中位のものはそのまま生き残らせ、低いものは死滅させるような処理を行う（ステップ２６７）。
【０１９０】
図３０は、この再生処理を示した概念図である。同図に示すように、最適会合クライアント群集合生成部５４は、適合度の大きさに応じた選択重みを各染色体に付与し、重み付きランダム選択によりＰ個の染色体を選ぶ操作を行う。適合度の大きさに応じた各染色体ＣＨｉの選択重み（選択確率）Ｗ（ＣＨｉ）は次式（８）で定義される。
Ｗ（ＣＨｉ）＝Ｆ（ＣＨｉ）／Σｊ（Ｆ（ＣＨｊ））                （８）
この再生処理が、上記各値のうちいずれかが超えたと判断されるまで繰り返される。
【０１９１】
上記処理の結果得られた解Ｓ＊は「お互いの要素が排他的になる上限Ｒ個のクライアント群集合の全集合Ｓ￣の中から、Ｍとの距離Ｄ３が最小となるＳ⊂Ｓ￣を求める」最適化問題の解であり、各クライアントの希望している希望会合メンバをなるべく変更が少ないように調整し、会合間でメンバの重複がないような会合群を構成するクライアント群集合となる。これが最適会合クライアント群集合生成部５４の出力となる。
【０１９２】
図６のフローチャートに戻り、ＣＰＵ２１は、会合設定部５５により、上記最適会合クライアント群集合生成部５４により生成された最適会合クライアント群集合Ｓ＊の各要素である最適会合クライアント群（以下、Ｏｉと称する）について、それに属するクライアントの希望会合情報をさらに調停し、最終的な会合の設定を行う（ステップ７２）。
【０１９３】
ここで、Ｏｉに属するクライアント群は相互に希望開催日が同じである。一方、開催時間帯と場所範囲に関しては、相互に重なりがあるクライアントペアもあれば、重なりのないペアも存在する可能性がある。図３１は、最適会合クライアント群が、開催時間帯及び開催場所に重なりがないクライアントペアを含む場合を示した概念図である。同図（Ａ）が開催時間帯に関する概念図、同図（Ｂ）が開催場所に関する概念図である。両図において、Ｏｉ＝｛Ｃ１，Ｃ２，Ｃ３，Ｃ４｝とされる。
【０１９４】
図３２は、このように、最適会合クライアント群が、開催場所に重なりがないクライアントペアを含む場合の会合設定処理について示した概念図である。同図（Ａ）が開催時間帯に関する処理概念図、同図（Ｂ）が開催場所に関する処理概念図である。両図においても、Ｏｉ＝｛Ｃ１，Ｃ２，Ｃ３，Ｃ４｝とされる。
【０１９５】
同図（Ａ）に示すように、会合設定部５５は、開催時間帯については、Ｏｉの全クライアントの希望開催時刻の開始時刻の平均を設定会合の開始時刻に決定する。終了時刻も同様に平均処理で決定される。
【０１９６】
同図（Ｂ）に示すように、会合設定部５５は、開催場所については、Ｏｉの全クライアントの希望会合場所範囲の和集合の重心を中心に、所定距離以内（例えば２ｋｍ）の場所Ｘに設定する。
【０１９７】
最終的な会合の設定に際しては、待ち合わせ場所の決定が不可欠である。会合設定部５５は、例えば上記開催場所範囲内でランドマークとなる施設（例えば駅等）をピックアップし、それを待ち合わせ場所に決定する。会合設定部５５は、例えば、地図情報サイトなどから、施設情報を含む地図情報をダウンロードすることで、上記施設をピックアップ可能である。地図情報中に待ち合わせ場所の候補となりうる施設が複数ある場合には、会合設定部５５は、例えば、その中からランダムに選択する。また、会合設定部５５は、過去の会合履歴を参照して、過去に待ち合わせ場所となった施設を今回の待ち合わせ場所として設定するようにしてもよい。
【０１９８】
図６のフローチャートに戻り、ＣＰＵ２１は、設定会合情報送信部５６により、各Ｏｉに対して決定された、最終的な会合の日時、待ち合わせ場所の情報を、Ｏｉに属するクライアント全員に配信する。ここで、設定会合情報送信部５６は、その会合の情報が送られるクライアント群（つまり会合に参加が誘われている人）の情報も送信することが可能であるが、サービスの形態によってはその情報を隠蔽することによる効果が大きい場合もある。例えば、会合の待ち合わせ場所に行くまで、参加者が分からないような「意外性」「偶然性」を会合自動設定サービスの特徴に出すことができる。
【０１９９】
以上で、サーバ２側の処理が終了する。  
再び、クライアント１側の処理へ戻る。
【０２００】
各クライアント１のＣＰＵ１１は、設定会合情報受信部３８により、サーバ２から送信された設定会合情報を受信する（ステップ７４）。
【０２０１】
ここで、各クライアント１は、参加／不参加の意思表明をサーバに通知する構成をとってもよい。この場合、サーバ２は、その会合を設定した最適会合クライアント群から、不参加の意思表明をしたクライアントを除外し、もし最適会合クライアント群の要素数（つまりその会合へ参加意思があると思われるクライアントの数）が一定数以下の場合は、該当するクライアントに会合キャンセルを通知するようにしても構わない。
【０２０２】
クライアント１のユーザが、設定された会合に実際に参加した場合には、ＣＰＵ１１は、会合参加履歴管理部３９により、会合の情報（日時、開催場所の位置情報、直前の予定（会合移動元）の位置情報、会合移動元から会合開催場所への移動距離、会合のメンバ）を、適宜スケジューラ上の情報を利用しながら取得して、会合履歴データベースに保存する。会合メンバの情報は、次回の会合メンバ候補生成時に参照する情報となる。
【０２０３】
飲み会などの会合の参加者を募るための連絡や、各人のスケジュールから会合場所、時間の調整などを行う幹事的仕事は負担であり、また上記負担がゆえに、会合開催が面倒となり、知人と会う機会が減り、いつの間にかその知人と疎遠になってしまうことある。しかしながら、本実施形態における会合設定システム１００の上記処理により、会合設定を自動化することにより、上記負担を軽減できるとともに、知人との交友をより深めていくことができる。また、しばらく連絡を取っていない、急に会合に誘うのが難しい知人と飲む機会を自動的に設定してくれる。交友関係モデルを持ち、飲みたい相手の交友レベル指定ができるため、知人とだけ飲みたい気分の時の会合、知人の知り合いと出会える会合、いつもと違うメンバでの会合など、クライアントが求めている会合の特徴を指定することもできる。スケジューラに出張や旅行の情報が登録されていれば、出先地域の知人との会合の自動設定も実現可能である。
【０２０４】
本発明は上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０２０５】
上述の実施形態において、サーバ２が各最適会合クライアント群に対して会合設定を行った後、その情報を通知するだけでなく、会合に使うお店の推薦を行い、推薦店リストを各クライアント群に送信した後、サーバ２においてクライアント１からの投票を取りまとめ、最終的な会合開催の店を決定し、クライアント１に通知を行ったり、電子的な予約をそのお店に入れたりしてもよい。この処理は、例えばサーバ２が、店舗情報提供サイトから、開催場所範囲内に存在する店舗情報を取得することで可能である。
【０２０６】
また、サーバ２は、会合設定に対してその設定が良かったか悪かったかの評価を各クライアントから受けて、クライアント内エージェントの交友度計算のパラメータや、アベイラビリティ推定部３３のパラメータや、会合場所範囲推定部３４のパラメータや、会合メンバ候補生成器３５のパラメータ（重み付き選択確率における重みの割り振り方）や、サーバ内の最適会合クライアント群集合生成部５４におけるパラメータ（遺伝的アルゴリズムのパラメータや距離尺度）を調整するようにしてもよい。
【０２０７】
また、サーバ２が、設定された会合のメンバであるクライアント１の中から、ランダムに幹事を決定し、その情報を上記設定会合情報と共に送信するようにしてもよい。
【０２０８】
上述の実施形態において、各クライアント１のアベイラビリティ推定部３３は、予め用意したモデルルールと過去の会合履歴とのマッチングを行うことで、アベイラビリティを推定していた。しかしながら、アベイラビリティの推定手法としては、以下のような手法も考えられる。
【０２０９】
（アベイラビリティ推定に関する変形例１）
アベイラビリティ推定部３３は、クライアント１の操作入力部１４を介して、ユーザに、会合設定に対するアベイラビリティ推定ルールを直接入力してもらってもよい。例えば、アベイラビリティ推定部３３は、表示部１６に、チェックボックスとリスト選択のようなＵＩ（ユーザインタフェース）を表示させ、選択肢として例えば上述したような「毎日」、「毎日（土日を除く）」、「毎週末」、「毎週＊曜日」、「毎月＊日」、「毎月第＊週」、「毎月＊旬（上旬、中旬、下旬）」などの日の設定と、「＊時以降」「＊時以前」「＊時〜＊時」などの時間の設定の各選択肢から選択させる。ここで、＊はリストからの選択を意味する。アベイラビリティ推定部３３は、選択された条件に合致する未来の日時に対して「アベイラブル」、それ以外の日時に対して「アンアベイラブル」という推定結果を出す。
【０２１０】
（アベイラビリティ推定に関する変形例２）
アベイラビリティ推定部３３は、過去の会合に出席した日時の履歴からアベイラビリティを予測学習することで、アベイラビリティを推定してもよい。以下、この場合の例について説明する。
【０２１１】
過去の会合に出席した日の履歴の表現方法として、１日を時間単位としてその日に会合があり出席した場合に１、それ以外を０とする時系列バイナリデータを用いる方法を説明する。例えば、２週間（月曜始まりでカウント）のうち、毎水曜と土曜の会合に出席した場合には｜００１００１０｜００１００１０｜となり（縦棒は週の区切りを分かりやすくするために挿入した）、隔週の金曜の会合に出席した場合の１ヶ月間のデータは｜００００１００｜０００００００｜００００１００｜０００００００｜となる。見方をかえると、アベイラビリティ推定部３３は、前回の出席日"１"から次の出席日"１"までの間隔を学習し、次の出席日を予測することになる。上記後者の例では、少なくとも２週間のデータを考慮しない限り次の出席日の予測ができない１４次のマルコフ決定プロセスとなっている。この問題定式化においては、長いコンテクストを扱えるような学習モデルを導入する必要があり、予測器として例えば隠れマルコフモデルやリカレント・ニューラルネットワークを用いることで実現が可能である。
【０２１２】
上述の実施形態において、会合メンバ候補生成器３５は、交友頻度に関わらず、過去で会合メンバに選ばれた頻度の少ない人ほど高い選択確率を付与して重み付きランダム選択を行うことで、会合メンバ候補を生成していた。しかしながら、会合メンバ候補の生成手法としては、（１）交友関係モデルから、交友頻度の少ない人ほど高い選択確率を付与して重み付きランダム選択を行う方法、（２）何らかのイベント（例えば子供ができたなどの祝い事）があった人で、クライアント１のスケジューラ４４またはメーラ４３に、クライアントがそのイベントに対して「近い未来にそれに対して会合を開きたい」という情報を登録している人に高い選択確率を付与して重み付きランダム選択を行う手法が考えられる。
【０２１３】
（２）の場合、会合メンバ候補生成器３５は、メーラ４３やスケジューラ４４の内容を文章解析、キーワード解析等の解析手法によりイベントを検出し、当該イベントが生じた他人を検出して上記重み付きランダム選択対象とする。
【０２１４】
上述の実施形態においては、クライアント１が携帯電話機等の携帯型の電子機器である例を示したが、もちろん、クライアント１は、据置き型のＰＣやＡＶ機器等、据置き型の電子機器であっても構わない。
【図面の簡単な説明】
【０２１５】
【図１】本発明の一実施形態に係る会合設定システムの構成を示した図である。
【図２】本発明の一実施形態におけるクライアントのハードウェア構成を示した図である。
【図３】本発明の一実施形態におけるサーバのハードウェア構成を示した図である。
【図４】本発明の一実施形態におけるクライアントの機能ブロックの構成を示した図である。
【図５】本発明の一実施形態におけるサーバの機能ブロックの構成を示した図である。
【図６】本発明の一実施形態に係る会合設定システムの全体的な動作の流れを示したフローチャートである。
【図７】本発明の一実施形態における、日に関するモデルルール及び会合出席履歴を、それぞれファジィ集合を用いて表現した図である。
【図８】本発明の一実施形態における、日に関するモデルルールのファジィ集合と会合出席履歴のファジィ集合の同値演算過程を示した図である。
【図９】本発明の一実施形態における、日に関するモデルルールのファジィ集合と会合出席履歴のファジィ集合の同値演算過程を示した図である。
【図１０】本発明の一実施形態における、日に関するモデルルールのファジィ集合と会合出席履歴のファジィ集合の同値演算過程を示した図である。
【図１１】本発明の一実施形態における、日に関するモデルルールのファジィ集合と会合出席履歴のファジィ集合の同値演算過程を示した図である。
【図１２】本発明の一実施形態における、日に関するモデルルールのファジィ集合と会合出席履歴のファジィ集合の同値演算結果を示した図である。
【図１３】本発明の一実施形態におけるアベイラビリティ推定ルールの決定プロセスの流れを示したフローチャートである。
【図１４】本発明の一実施形態における、アベイラビリティ推定ルールを用いたアベイラビリティ推定プロセスの流れを示したフローチャートである。
【図１５】本発明の一実施形態における、時間に関するモデルルールをファジィ集合で表現した図である。
【図１６】本発明の一実施形態において、会合出席時間の過去の履歴が２０時から２２時に最頻出した場合のヒストグラム表現と、そこから生成されるファジィ集合を示した図である。
【図１７】本発明の一実施形態における、日時に関するモデルルールを、ファジィ集合を用いて表現した図である。
【図１８】本発明の一実施形態における希望会合場所範囲推定処理の流れを示したフローチャートである。
【図１９】本発明の一実施形態における許容度関数の例及びそれを用いた希望会合場所範囲の例を示した図である。
【図２０】本発明の一実施形態における許容度関数の例及びそれを用いた希望会合場所範囲の例を示した図である。
【図２１】本発明の一実施形態における適合クライアント群の生成処理の流れを示したフローチャートである。
【図２２】本発明の一実施形態における希望会合場所範囲のマッチング処理を示した概念図である。
【図２３】本発明の一実施形態における任意のクライアント群集合と任意のクライアントの適合クライアント群とのレーベンシュタイン距離の算出方法を示した図である。
【図２４】本発明の一実施形態における全てのクライアントの適合クライアント群の集合と、任意のクライアント群集合とのレーベンシュタイン距離の算出方法を示した図である。
【図２５】本発明の一実施形態において、任意の集合Ｓ１及びＳ２と、全クライアントの適合クライアント群の集合Ｍとのレーベンシュタイン距離をグラフ表現で示した図である。
【図２６】本発明の一実施形態における最適会合クライアント群集合生成処理の流れを示したフローチャートである。
【図２７】本発明の一実施形態において生成された初期染色体集団の例を示した図である。
【図２８】本発明の一実施形態における遺伝的アルゴリズムの交叉処理を示した概念図である。
【図２９】本発明の一実施形態における遺伝的アルゴリズムの突然変異処理を示した概念図である。
【図３０】本発明の一実施形態における遺伝的アルゴリズムの再生処理を示した概念図である。
【図３１】本発明の一実施形態において、最適会合クライアント群が、開催時間帯及び開催場所に重なりがないクライアントペアを含む場合を示した概念図である。
【図３２】本発明の一実施形態において、最適会合クライアント群が、開催場所に重なりがないクライアントペアを含む場合の会合設定処理について示した概念図である。
【符号の説明】
【０２１６】
１…クライアント
２…サーバ
３…ネットワーク
１１…ＣＰＵ
１５…通信部
１６…表示部
１７…フラッシュメモリ
２１…ＣＰＵ
２５…通信部
２６…ＨＤＤ
３１…交友関係推定部
３２…交友関係モデル構築部
３３…アベイラビリティ推定部
３４…会合場所範囲推定部
３５…会合メンバ候補生成器
３６…希望会合情報生成器
３７…希望会合情報送信部
３８…設定会合情報受信部
３９…会合参加履歴管理部
４１…交友関係モデルデータベース
４２…会合履歴データベース
４３…メーラ
４４…スケジュール管理ツール（スケジューラ）
５１…クライアント交友関係モデル管理部
５２…クライアント希望会合情報バッファ部
５３…クライアント希望会合情報マッチング部
５４…最適会合クライアント群集合生成部
５５…会合設定部
５６…設定会合情報送信部
５７…交友関係モデルデータベース
１００…会合設定システム
【図１】
0004433057.tif 000002
【図２】
0004433057.tif 000003
【図３】
0004433057.tif 000004
【図４】
0004433057.tif 000005
【図５】
0004433057.tif 000006
【図６】
0004433057.tif 000007
【図７】
0004433057.tif 000008
【図８】
0004433057.tif 000009
【図９】
0004433057.tif 000010
【図１０】
0004433057.tif 000011
【図１１】
0004433057.tif 000012
【図１２】
0004433057.tif 000013
【図１３】
0004433057.tif 000014
【図１４】
0004433057.tif 000015
【図１５】
0004433057.tif 000016
【図１６】
0004433057.tif 000017
【図１７】
0004433057.tif 000018
【図１８】
0004433057.tif 000019
【図１９】
0004433057.tif 000020
【図２０】
0004433057.tif 000021
【図２１】
0004433057.tif 000022
【図２２】
0004433057.tif 000023
【図２３】
0004433057.tif 000024
【図２４】
0004433057.tif 000025
【図２５】
0004433057.tif 000026
【図２６】
0004433057.tif 000027
【図２７】
0004433057.tif 000028
【図２８】
0004433057.tif 000029
【図２９】
0004433057.tif 000030
【図３０】
0004433057.tif 000031
【図３１】
0004433057.tif 000032
【図３２】
0004433057.tif 000033