JP4268973B2 - 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム - Google Patents

混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム Download PDF

Info

Publication number
JP4268973B2
JP4268973B2 JP2006122654A JP2006122654A JP4268973B2 JP 4268973 B2 JP4268973 B2 JP 4268973B2 JP 2006122654 A JP2006122654 A JP 2006122654A JP 2006122654 A JP2006122654 A JP 2006122654A JP 4268973 B2 JP4268973 B2 JP 4268973B2
Authority
JP
Japan
Prior art keywords
service
slot
time
data
travel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006122654A
Other languages
English (en)
Other versions
JP2007265376A (ja
Inventor
恭毅 関口
和重 奥田
正和 河瀬
Original Assignee
恭毅 関口
和重 奥田
コペル株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 恭毅 関口, 和重 奥田, コペル株式会社 filed Critical 恭毅 関口
Priority to JP2006122654A priority Critical patent/JP4268973B2/ja
Publication of JP2007265376A publication Critical patent/JP2007265376A/ja
Application granted granted Critical
Publication of JP4268973B2 publication Critical patent/JP4268973B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、旅行者の要求に応答して最適化又は近似最適化した旅行計画を自動的に作成するための方法に関し、特に、混合整数計画問題を解くための演算プログラムに入力して演算を行うことによって最適化又は近似最適化した旅行計画を自動的に作成するために、混合整数計画問題に適用することができるように入力データを処理する方法に関する。
旅行を旅行計画の側面から見ると、大きく個人旅行、手配旅行、及び主催旅行に分類することができる。個人旅行は、旅行者自らが旅行予定地の交通機関、観光施設及び宿泊施設の空き状況、営業時間、料金などを調査し、その結果に基づいて旅行計画を立案し、ホームページ又は電話などを用いて必要な手配を直接行う旅行形態である。手配旅行は、旅行者が、旅行代理店に赴き、旅行代理店の従業員に対して旅行予定地の交通機関、観光施設及び宿泊施設についての希望を提示し、それに対して旅行代理店の従業員が、旅行代理店の専用端末を通じて各機関又は施設の空き状況、営業時間、料金などを調査して旅行者に提示し、これらの調査結果に対して旅行者の了解が得られた場合に、各機関又は施設の手配を行う旅行形態である。主催旅行は、旅行代理店があらかじめ独自の旅行計画を企画し、旅行参加者を募集することによって、ある程度決まったスケジュールの旅行計画を提供する旅行形態である。上記の主催旅行は、比較的自由行動の多いものであっても旅行者の希望にきめ細かく応じることが難しいため、近年、旅行形態は、主催旅行から手配旅行又は個人旅行に移行する傾向が指摘されており、旅行単位は、団体から家族へ、家族から少人数グループ又は個人へと変化しつつある。
ところが、手配旅行は、上述のように旅行代理店を利用して必要な情報収集及び手配を行うものであるため、旅行者にとっては時間が拘束されると共に、費用がかかるという問題がある。これに対して、最近は、交通機関、観光施設、及び宿泊施設などがホームページを持つ場合も多く、旅行者は、インターネットを通じてこれらのホームページにアクセスして旅行計画に必要な情報を収集し、予約などの手配を直接行うことも可能になっている。このように、インターネットを利用すれば、旅行者は、時間の拘束を受けずに安価に、自分の好みに応じた旅行計画を立案することができる。
しかしながら、従来は、交通機関、観光施設、及び宿泊施設などがそれぞれ個別にホームページを持つのみであったため、旅行を計画する旅行者は、まず、数多くのホームページの中から自分が第一に希望する交通機関、観光施設、及び宿泊施設などのホームページを別個に検索し、各々の機関及び施設などの営業日時、料金、予約の可否などを確認すると共に、他の施設などの営業時間、料金、予約の可否等をも勘案しながら全体の計画を立案しなければならず、非常に手間がかかるという問題があった。
こうした問題を解決するため、個人旅行者の旅行計画立案とその実現に必要な支援を提供する技術が幾つか存在する。特許文献1は、ネットワークを介してコンピュータにアクセスしたブラウズ端末から、少なくとも出発地及び旅行先を含む旅行プラン策定のための諸条件を含む旅行プラン策定依頼を受信し、その諸条件を満たす旅行プランを策定して、策定した旅行プランのデータを該ブラウズ端末に送信するシステムを開示する。ブラウズ端末から、該ブラウズ端末に送信した旅行プランの修正依頼を受信した場合には、旅行プランを策定し直して、その策定し直した旅行プランのデータをブラウズ端末に送信する。この技術においては、旅行プランは、システムのコンピュータが、旅行プラン策定依頼から抽出した諸条件等を満足する旅行モデルひな形データを旅行モデルひな形データベースから抽出してブラウズ端末に提示し、提示されたひな形をユーザが修正した場合には、その修正に基づいて該ひな形データを変更してブラウザ端末に再提示することによって、策定される。
特許文献2は、所望の旅行先を訪問する際に費やされると予想される所要時間を取得し、それらと移動先の間の予想移動時間とを組み合わせることにより旅行スケジュールを自動作成するシステムを開示する。このシステムは、ユーザが画面に表示される訪問候補地を指定すると、各々の訪問候補地ごとの予想移動時間と予想所要時間とから、例えば最短コースを巡るスケジュールを作成し、作成したスケジュールをユーザに提示する。システムは、提示されたスケジュールをユーザがチェックした結果に基づいて、所要時間の変更、訪問候補地の追加又は削除などのスケジュール編集を行うことによって、最終的なスケジュールを作成する。
特許文献3は、旅行管理サーバがユーザ端末から旅行希望条件を受信すると、この旅行希望条件に基づいて観光施設等情報データベース等を検索し、希望条件に合った旅行先情報等を取得し、これらの情報に基づいて固有の旅行スケジュールを作成するシステムを開示する。旅行スケジュールの作成は、以下の処理によって行われる。まず、旅行管理サーバは、旅行期間内に利用可能な観光施設等を抽出する。次に、抽出された観光施設等を、旅行者が指定したプランニング条件の優先度合い(例えば、ホテルのランクについて、高、中、低など)によって重み付けして評価し、その評価点と各観光施設の評価値(例えば、ホテルのランク)とを比較する。評価値が一定以上の観光施設等を抽出して絞り込み、評価点の高い順にスケジュールに追加する。このとき、既に旅行スケジュール内に組み込まれている候補との位置関係(距離関係)、時間帯、利用交通手段等を考慮して最適な位置に観光施設等を新規追加していくことによって、旅行スケジュールを作成する。
特開2003−44553号明細書 特開2002−197150号明細書 特開2002−73756号明細書
上述の先行技術は、以下のような課題を有する。特許文献1の技術は、ユーザが指定した希望条件を満足する旅行プランを策定するものの、その旅行プランの原型はひな形データベースに既に格納されており、ユーザの要求に応じて該ひな形データベースからひな形データを検索して提示するものであるため、あくまでも限定されたプランしか提示することができない。また、特許文献2の技術は、ユーザが訪問したい観光地、名所、又は施設などの訪問候補地を端末から指定した場合に、それらの訪問候補地間の移動時間と各訪問候補地の所要時間とを組み合わせ、経路探索を行って旅行スケジュールを作成するものである。すなわち、本技術は、基本的には、ユーザが指定した訪問候補地を巡る時間的スケジュールを作成するものであって、ユーザの希望条件に応じて最適な観光施設の組み合わせまでも自動的に組み合わせてスケジュールを作成する技術ではない。特許文献3の技術は、旅行者が指定した優先度によって重み付けした評価点を各観光施設の評価点と比較する手法に基づいて旅行スケジュールを作成する方法であるが、本手法は、最適な組み合わせ問題を解決するための一般に認知された手法ではなく、したがって、極めて多くの選択肢の中から作成されたスケジュールが最適なものであるかどうかを客観的に評価することは困難である。
このように、上述の先行技術を含む従来技術においては、何らかの手法に基づいて旅行計画を作成する技術が開示されてはいるものの、一般的に広く認知されている客観的な最適化又は近似最適化手法を用いて自動的に旅行計画を作成する技術は見出すことができない。こういった事情に鑑み、本発明の目的は、一般的に認知された最適化手法である混合整数計画問題に基づいて、極めて多くの可能性のある旅行計画の中から旅行者の要求を満足する最適化又は近似最適化された旅行計画を自動的に作成する技術を提供することである。
上記の目的は、旅行者によって入力された旅行条件データと、旅行業者及びシステム管理者によって入力され、データベースに格納された旅行情報データとから、混合整数計画問題に適用することができるように処理した入力データを作成し、該入力データを混合整数計画問題を解くための演算プログラムに入力して演算処理を行うことにより、従来技術においては例のない、混合整数計画問題を利用して最適化又は近似最適化した旅行計画を自動的に作成することができるという知見に基づく以下の特徴を有する本発明によって達成される。
請求項1に記載の発明は、旅行者によって入力された旅行条件データと、旅行業者及びシステム管理者によって入力されデータベースに格納された旅行情報データとを用いて、旅行計画を作成し、作成された旅行計画を旅行者に提示するための旅行計画作成コンピュータ・システムにおいて、旅行計画作成コンピュータ・システムの旅行計画作成サーバが旅行計画を作成する方法であって、旅行計画作成サーバが、旅行条件データ内の旅行期間の各日についてデータベースから受信した旅行情報データに含まれるスロット属性データに基づいて、各日の時間と予め定められた開始時刻及び終了時刻によって決まる同一の時間幅及び/又は異なる時間幅を有する複数のスロットとを関連付けるステップと、旅行計画作成サーバが、旅行期間内に旅行者が利用可能な1つ又は複数のサービスに関する情報を含むデータである利用可能リストを作成する、利用可能リスト作成ステップであって、1つ又は複数のサービスに関する情報は、複数のスロットの各々に付与された特性と適合するように予め関連付けが定義された1つ又は複数のアクティビティに関する情報を含み、利用可能リストは、アクティビティについて指定された旅行条件データに含まれる条件に基づいて、旅行情報データから取得されたデータを用いて作成される、利用可能リスト作成ステップと、旅行計画作成サーバが、リストにおける1つ又は複数のサービスの各々を複数のスロットの各々に割り付けるかどうかを定義する決定変数を含む式で表現される複数の制約条件のうちの1つ又は複数を含む制約条件の組を作成する、制約条件構成ステップであって、複数の制約条件は、利用可能リストにおける1つ又は複数のサービスの各々を複数のスロットの各々に割り付けるときの優先度に応じた、決定変数の和と旅行条件データに含まれるアクティビティの実施回数との関係に関する制約条件、及び、複数のスロットの1つ又は複数に割り付けられるサービスの実施に必要な時間の長さと決定変数との積の和と、複数のスロットの1つ又は複数の時間幅の長さとの関係によって表される、時間に関する制約条件を含む、制約条件構成ステップと、旅行計画作成サーバが、作成される旅行計画のアクティビティの実施回数に関する特性を表す所定の変数を含む項と時間に関する特性を表す所定の変数を含む項とを含む目的関数を作成する、目的関数構成ステップと、旅行計画作成サーバが、制約条件の組と目的関数とを混合整数計画問題を解くための演算プログラムに入力し演算プログラムから出力された、制約条件の組の下で目的関数を最適化又は近似最適化するための決定変数の組み合わせに基づいて、利用可能リストにおける1つ又は複数のサービスのうち出力された決定変数に対応するサービスの各々と出力された決定変数に対応する複数のスロットの各々とを関連付けたデータを作成し、該データと旅行情報データとを用いて、少なくとも複数のスロットの各々とアクティビティとを関連付けたデータである旅行計画を作成する、旅行計画作成ステップと、を含むことを特徴とする。
請求項2に記載の発明は、利用可能リスト作成ステップが、旅行計画作成サーバが、利用可能リストに基づいて、利用可能リストにおける1つ又は複数のサービスの各々が複数のアクティビティを含む複合サービスであるかどうかを判定し、複合サービスであると判定した場合には、複合サービスに関するデータから、各々が1つのアクティビティを含む複数の新たなサービスに関するデータを作成する、複合サービス分割ステップ、及び/又は、旅行計画作成サーバが、利用可能リストに含まれるデータに基づいて、利用可能リストにおける1つ又は複数のサービスの各々が、該サービスに含まれるアクティビティの実施に必要な時間幅が少なくとも1つのスロットの時間幅を越える長大サービスであるかどうかを判定し、長大サービスであると判定した場合には、長大サービスに関するデータから、各々の実施に必要な時間幅が1つのスロットの時間幅以下である複数の新たなサービスに関するデータを作成する、長大サービス分割ステップと、旅行計画作成サーバが、複合サービスと長大サービスと複数の新たなサービスとの関係を表す関係データを作成する、関係データ作成ステップと、旅行計画作成サーバが、利用可能リストにおいて、複合サービスに関するデータ及び/又は長大サービスに関するデータを複数の新たなサービスに関するデータに置換することによって新たなリストを作成する、新リスト作成ステップと、をさらに含み、 制約条件構成ステップは、旅行計画作成サーバが、複数の新たなサービス相互間の関係に関する、決定変数を含む式で表現される制約条件を作成するステップをさらに含むことを特徴とする。
請求項に記載の発明は、複合サービス分割ステップにおいて、旅行計画作成サーバが、旅行情報データに基づいて、複合サービスのサービス・タイプがsタイプであると判定した場合には、旅行計画作成サーバが、複合サービスに含まれるアクティビティの各々の開始時刻と終了時刻とから、新たなサービスの各々の実施に必要な時間幅を算出するステップをさらに含み、旅行計画作成サーバが、旅行情報データに基づいて、複合サービスのサービス・タイプがa1タイプであると判定した場合には、旅行計画作成サーバが、旅行者が複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、旅行条件データに含まれていると判定したときは、指定時間と、アクティビティの各々を提供する旅行業者の営業時間とを比較して、時間の短い方を新たなサービスの各々の実施に必要な時間幅として設定し、旅行計画作成サーバが、旅行者が複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、旅行条件データに含まれていないと判定したときは、新たなサービスの各々に含まれるアクティビティの実施に適した時間幅を新たなサービスの各々の実施に必要な時間幅として設定する、ステップをさらに含み、旅行計画作成サーバが、旅行情報データに基づいて、複合サービスのサービス・タイプがa2タイプであると判定した場合には、旅行計画作成サーバが、新たなサービスの各々に含まれるアクティビティの実施に必要な時間幅を新たなサービスの各々の実施に必要な時間幅として設定するステップをさらに含サービス・タイプに関するデータは、旅行情報データに含まれており、sタイプのサービスは、旅行業者によって1つ又は複数のサービスの各々に含まれるアクティビティの日付、開始時刻及び終了時刻が予め定められたサービスであり、a1タイプのサービスは、旅行業者によってアクティビティの開始時刻及び終了時刻は定められていないがアクティビティの実施に適した時間幅が定められ、かつ、旅行業者の営業時間内に利用可能なサービスであり、a2タイプのサービスは、旅行業者によってアクティビティの開始時刻及び終了時刻は定められてないがアクティビティの実施に必要な時間幅が定められ、かつ、旅行業者の営業時間内に利用可能なサービスであることを特徴とする。
請求項に記載の発明は、長大サービス分割ステップにおいて、旅行計画作成サーバが、旅行情報データに基づいて、長大サービスのサービス・タイプがsタイプであると判定した場合には、旅行計画作成サーバが、長大サービスに含まれるアクティビティの開始時刻を含む最初のスロット、アクティビティの終了時刻を含む最後のスロット、及び、最初のスロットと最後のスロットとの間に最初のスロット及び最後のスロットとは別の1つ又は複数のスロットが存在するときには別の1つ又は複数のスロットを特定するステップと、 旅行計画作成サーバが、長大サービスに関するデータから、最初のスロットに対応する最初の新たなサービスに関するデータ、最後のスロットに対応する最後の新たなサービスに関するデータ、及び、別の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを作成するステップと、旅行計画作成サーバが、アクティビティの開始時刻から最初のスロットの終了時刻までの時間幅を、最初の新たなサービスの実施に必要な時間幅として設定するステップと、旅行計画作成サーバが、最後のスロットの開始時刻からアクティビティの終了時刻までの時間幅を、最後の新たなサービスの実施に必要な時間幅として設定するステップと、旅行計画作成サーバが、別の1つ又は複数のスロットの時間幅を、1つ又は複数の新たなサービスの実施に必要な時間幅として設定するステップと、をさらに含むことを特徴とする。
請求項に記載の発明は、長大サービス分割ステップにおいて、旅行計画作成サーバが、旅行情報データに基づいて、長大サービスのサービス・タイプがa1タイプ又はa2タイプであると判定した場合には、旅行計画作成サーバが、スロットの開始時刻又は終了時刻のいずれか一方が長大サービスを提供する旅行業者の営業開始時刻と営業終了時刻との間にあり、長大サービスに含まれるアクティビティの実施に適したスロット群と一致する1つ又は複数のスロットを特定するステップと、旅行計画作成サーバが、特定した1つ又は複数のスロットのうちの最初のスロットが、営業開始時刻を含むスロットであると判定したときは、営業開始時刻から最初のスロットの終了時刻までに対応する最初の新たなサービスに関するデータを作成し、最初のスロットの次のスロットが営業終了時刻を含むスロットでないときには最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、営業開始時刻から最初のスロットの終了時刻までの時間幅を最初の新たなサービスの実施に必要な時間幅として設定し、最初のスロットの次のスロットが営業終了時刻を含むスロットでないときには1つ又は複数のスロットの時間幅を1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、長大サービスの実施に必要な時間幅から、最初の新たなサービスから最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、旅行計画作成サーバが、特定した1つ又は複数のスロットのうちの最初のスロットが、営業開始時刻を含むスロットより後のスロットであると判定したときは、最初のスロットに対応する最初の新たなサービスに関するデータを作成し、最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、最初のスロットの時間幅を最初の新たなサービスの実施に必要な時間幅として設定し、1つ又は複数のスロットの時間幅を1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、長大サービスの実施に必要な時間幅から最初の新たなサービスから最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、をさらに含むことを特徴とする。
請求項に記載の発明は、利用可能リストが、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、利用可能リスト作成ステップの後に旅行計画作成サーバが、利用可能リストに含まれる複数のデータ単位利用可能リスト内での並び順を変更するステップをさらに含むことを特徴とする。
請求項に記載の発明は、新たなリストが、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、新リスト作成ステップの後に旅行計画作成サーバが、新たなリストに含まれる複数のデータ単位の新たなリスト内での並び順を変更するステップをさらに含むことを特徴とする。
請求項に記載の発明は、旅行者によって入力された旅行条件データと旅行業者及びシステム管理者によって入力されデータベースに格納された旅行情報データとを用いて旅行計画を作成する処理コンピュータに実行させるプログラム・コードを含むコンピュータ・プログラムであって、処理が、旅行条件データ内の旅行期間の各日についてデータベースから受信した旅行情報データに含まれるスロット属性データに基づいて、各日の時間と予め定められた開始時刻及び終了時刻によって決まる同一の時間幅及び/又は異なる時間幅を有する複数のスロットとを関連付ける処理と、旅行期間内に旅行者が利用可能な1つ又は複数のサービスに関する情報を含むデータである利用可能リストを作成する、利用可能リスト作成処理であって、1つ又は複数のサービスに関する情報は、複数のスロットの各々に付与された特性と適合するように予め関連付けが定義された1つ又は複数のアクティビティに関する情報を含み、利用可能リストは、アクティビティについて指定された旅行条件データに含まれる条件に基づいて、旅行情報データから取得されたデータを用いて作成される、利用可能リスト作成処理と、リストにおける1つ又は複数のサービスの各々を複数のスロットの各々に割り付けるかどうかを定義する決定変数を含む式で表現される複数の制約条件のうちの1つ又は複数を含む制約条件の組を作成する、制約条件構成処理であって、複数の制約条件は、利用可能リストにおける1つ又は複数のサービスの各々を複数のスロットの各々に割り付けるときの優先度に応じた、決定変数の和と旅行条件データに含まれるアクティビティの実施回数との関係に関する制約条件、及び、複数のスロットの1つ又は複数に割り付けられるサービスの実施に必要な時間の長さと決定変数との積の和と、複数のスロットの1つ又は複数の時間幅の長さとの関係によって表される、時間に関する制約条件を含む、制約条件構成処理と、作成される旅行計画のアクティビティの実施回数に関する特性を表す所定の変数を含む項と時間に関する特性を表す所定の変数を含む項とを含む目的関数を作成する、目的関数構成処理と、制約条件の組と目的関数とを混合整数計画問題を解くための演算プログラムに入力し演算プログラムから出力された、制約条件の組の下で目的関数を最適化又は近似最適化するための決定変数の組み合わせに基づいて、利用可能リストにおける1つ又は複数のサービスのうち出力された決定変数に対応するサービスの各々と出力された決定変数に対応する複数のスロットの各々とを関連付けたデータを作成し、該データと旅行情報データとを用いて、少なくとも複数のスロットの各々とアクティビティとを関連付けたデータである旅行計画を作成する、旅行計画作成処理と、を含むことを特徴とする。
請求項に記載の発明は、利用可能リスト作成処理が、利用可能リストに基づいて、利用可能リストにおける1つ又は複数のサービスの各々が複数のアクティビティを含む複合サービスであるかどうかを判定し、複合サービスであると判定した場合には、複合サービスに関するデータから、各々が1つのアクティビティを含む複数の新たなサービスに関するデータを作成する、複合サービス分割処理、及び/又は、利用可能リストに含まれるデータに基づいて、利用可能リストにおける1つ又は複数のサービスの各々が、該サービスに含まれるアクティビティの実施に必要な時間幅が少なくとも1つのスロットの時間幅を越える長大サービスであるかどうかを判定し、長大サービスであると判定した場合には、長大サービスに関するデータから、各々の実施に必要な時間幅が1つのスロットの時間幅以下である複数の新たなサービスに関するデータを作成する、長大サービス分割処理と、複合サービスと長大サービスと複数の新たなサービスとの関係を表す関係データを作成する、関係データ作成処理と、利用可能リストにおいて、複合サービスに関するデータ及び/又は長大サービスに関するデータを複数の新たなサービスに関するデータに置換することによって新たなリストを作成する、新リスト作成処理と、をさらに含み、制約条件構成処理は、複数の新たなサービス相互間の関係に関する、決定変数を含む式で表現される制約条件を作成する処理をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項10に記載の発明は、複合サービス分割処理において、旅行情報データに基づいて、複合サービスのサービス・タイプがsタイプであると判定した場合には、複合サービスに含まれるアクティビティの各々の開始時刻と終了時刻とから、新たなサービスの各々の実施に必要な時間幅を算出する処理をさらに含み、旅行情報データに基づいて、複合サービスのサービス・タイプがa1タイプであると判定した場合には、旅行者が複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、旅行条件データに含まれていると判定したときは、指定時間と、アクティビティの各々を提供する旅行業者の営業時間とを比較して、時間の短い方を新たなサービスの各々の実施に必要な時間幅として設定し、旅行者が複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、旅行条件データに含まれていないと判定したときは、新たなサービスの各々に含まれるアクティビティの実施に適した時間幅を新たなサービスの各々の実施に必要な時間幅として設定する、処理をさらに含み、旅行情報データに基づいて、複合サービスのサービス・タイプがa2タイプであると判定した場合には、新たなサービスの各々に含まれるアクティビティの実施に必要な時間幅を新たなサービスの各々の実施に必要な時間幅として設定する処理をさらに含サービス・タイプに関するデータは、旅行情報データに含まれており、sタイプのサービスは、旅行業者によって1つ又は複数のサービスの各々に含まれるアクティビティの日付、開始時刻及び終了時刻が予め定められたサービスであり、a1タイプのサービスは、旅行業者によってアクティビティの開始時刻及び終了時刻は定められていないがアクティビティの実施に適した時間幅が定められ、かつ、旅行業者の営業時間内に利用可能なサービスであり、a2タイプのサービスは、旅行業者によってアクティビティの開始時刻及び終了時刻は定められてないがアクティビティの実施に必要な時間幅が定められ、かつ、旅行業者の営業時間内に利用可能なサービスであることを特徴とするコンピュータ・プログラムを提供するものである。
請求項11に記載の発明は、長大サービス分割処理において、旅行情報データに基づいて、長大サービスのサービス・タイプがsタイプであると判定した場合には、長大サービスに含まれるアクティビティの開始時刻を含む最初のスロット、アクティビティの終了時刻を含む最後のスロット、及び、最初のスロットと最後のスロットとの間の1つ又は複数のスロットを特定する処理と、長大サービスに関するデータから、最初のスロットに対応する最初の新たなサービスに関するデータ、最後のスロットに対応する最後の新たなサービスに関するデータ、及び、1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを作成する処理と、アクティビティの開始時刻から最初のスロットの終了時刻までの時間幅を、最初の新たなサービスの実施に必要な時間幅として設定する処理と、最後のスロットの開始時刻からアクティビティの終了時刻までの時間幅を、最後の新たなサービスの実施に必要な時間幅として設定する処理と、1つ又は複数のスロットの時間幅を、1つ又は複数の新たなサービスの実施に必要な時間幅として設定する処理と、をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項12に記載の発明は、長大サービス分割処理において、旅行情報データに基づいて、長大サービスのサービス・タイプがa1タイプ又はa2タイプであると判定した場合には、長大サービスを提供する旅行業者の営業開始時刻と営業終了時刻との間にあり、長大サービスに含まれるアクティビティの実施に適したスロット群と一致する1つ又は複数のスロットを特定する処理と、特定した1つ又は複数のスロットのうちの最初のスロットが、営業開始時刻を含むスロットであると判定したときは、営業開始時刻から最初のスロットの終了時刻までに対応する最初の新たなサービスに関するデータを作成し、最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、営業開始時刻から最初のスロットの終了時刻までの時間幅を最初の新たなサービスの実施に必要な時間幅として設定し、1つ又は複数のスロットの時間幅を1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、長大サービスの実施に必要な時間幅から、最初の新たなサービスから最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定する処理と、特定した1つ又は複数のスロットのうちの最初のスロットが、営業開始時刻を含むスロットより後のスロットであると判定したときは、最初のスロットに対応する最初の新たなサービスに関するデータを作成し、最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、最初のスロットの時間幅を最初の新たなサービスの実施に必要な時間幅として設定し、1つ又は複数のスロットの時間幅を1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、長大サービスの実施に必要な時間幅から最初の新たなサービスから最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定する処理と、をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項13に記載の発明は、利用可能リストが、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、利用可能リスト作成処理の後に利用可能リストに含まれる複数のデータ単位利用可能リスト内での並び順を変更する処理をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項14に記載の発明は、新たなリストが、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、新リスト作成処理の後に、新たなリストに含まれる複数のデータ単位の新たなリスト内での並び順を変更する処理をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
[システム構成]
以下に、本発明の1つの実施形態について説明する。当然のことながら、本発明は、この実施形態に限定されるものではない。図1は、本発明の1つの実施形態に係る旅行計画作成コンピュータ・システムの基本構成を示すブロック図である。図1に示すように、本旅行計画作成コンピュータ・システムは、旅行者、旅行業者、及びシステム管理者が利用する1つ又は複数の端末と、旅行計画を作成する旅行計画作成手段等を実装する旅行計画作成サーバと、アクティビティ及びサービスなどの、旅行計画作成コンピュータ・システムの作動に必要なデータを格納するデータベースとで構成される。ここで「アクティビティ」とは、宿泊、交通、施設見学、食事、又は登山などといった、旅行者が行う観光行動の類型を表す。また、「サービス」とは、1つ又は複数のアクティビティを含む、旅行業者が提供する商品の単位を表す。1つ又は複数の端末と該旅行計画作成装置とは、インターネットなどの通信網を介して接続される。1つ又は複数の旅行者用端末は、旅行者が旅行条件データを入力し、旅行計画作成サーバにおいて作成された旅行計画を表示するための端末である。「旅行条件データ」は、後述するように、旅行者が旅行計画に対して指定する希望条件に関するデータである。1つ又は複数の旅行者用端末は、パーソナル・コンピュータ、携帯電話、又は携帯情報端末(PDA)などのネットワーク端末とすることができる。1つ又は複数の旅行業者用及びシステム管理者用端末は、旅行業者及びシステム管理者が旅行情報データを入力するための端末である。「旅行情報データ」は、後述するように、旅行業者及び/又はシステム管理者が提供及び/又は入力する、旅行計画を作成するために必要なデータである。1つ又は複数の旅行業者用及びシステム管理者用端末は、パーソナル・コンピュータ又は専用端末とすることができる。旅行者、旅行業者、及びシステム管理者が利用する1つ又は複数の端末は、ウェブ閲覧機能及びインターネットなどの通信網への接続機能を有すると共に、少なくとも、CRT又は液晶ディスプレイなどの表示装置と、ハードディスク、RAM、又はCD−ROMなどの記憶装置と、キーボード、マウス、又はタッチパネルなどのデータ入力装置とを有する、汎用又は専用の端末装置であればよい。
旅行計画作成サーバは、インターネットなどの通信網への接続機能を有すると共に、少なくとも、オペレーティング・システム並びに本発明に係る処理をコンピュータに実行させるためのコンピュータ・プログラム(すなわち、コンピュータを図1に示される旅行計画作成サーバの手段の各々(例えば、利用可能リスト作成手段)として機能させるためのコンピュータ・プログラム)及び他のアプリケーション・プログラムを実行、これらの全体動作を管理するCPUと、各種のコンピュータ・プログラム又はデータを読み込むためのRAMなどのメモリと、オペレーティング・システム並びに本発明に係る処理をコンピュータに実行させるためのコンピュータ・プログラム及び他のアプリケーション・プログラムを格納するハードディスク装置などの記憶装置と、これらの各種装置を接続するバスとを有するコンピュータとすることができる。旅行計画作成サーバには、必要に応じて、CD−ROM又はDVD−ROMなどのドライブ装置と、キーボード又はマウスなどのデータ入力装置と、CRT又は液晶ディスプレイなどの表示装置とを接続するようにしてもよい。
データベースは、インターネットなどの通信網への接続機能を有すると共に、少なくとも、オペレーティング・システム並びに本発明に係る処理を実行するためのコンピュータ・プログラム及び他の各種のアプリケーション・プログラムを実行させ、これらの全体動作を管理するCPUと、各種のプログラム又はデータを読み込むためのRAMなどのメモリと、オペレーティング・システム、本発明に係る処理を実行するためのコンピュータ・プログラム及び他のアプリケーション・プログラム、並びに、本発明に係る旅行計画作成に必要なアクティビティなどの旅行情報データを格納するハードディスク装置などの記憶装置と、これらの各種装置を接続するバスとを有するコンピュータとすることができる。データベースには、必要に応じて、CD−ROM又はDVD−ROMなどのドライブ装置と、キーボード又はマウスなどのデータ入力装置と、CRT又は液晶ディスプレイなどの表示装置とを接続するようにしてもよい。図1においては、データベースは、旅行計画作成サーバとは別に設置し、インターネットなどの通信網を介して該旅行計画作成サーバと接続されるものとしているが、データベースは、旅行計画作成サーバ内に構成することもできる。
図1に示すように、旅行計画作成サーバは、旅行計画に対して指定される旅行条件データを取得する旅行条件データ取得手段と、取得された旅行条件データをデータベースに送信する旅行条件データ格納手段と、該旅行条件データとデータベースに格納された旅行情報データとに基づいて利用可能リストを作成する利用可能リスト作成手段と、旅行計画を構成するサービスの選択可能な組み合わせに関する制約条件を構成する制約条件構成手段と、旅行計画の特性を表す変数を用いて目的関数を構成する目的関数構成手段と、該制約条件及び該目的関数から旅行計画を作成する旅行計画作成手段と、作成された旅行計画をユーザ端末に提供する旅行計画提供手段とを有する。「利用可能リスト」は、図10を参照して後述するように、旅行者が希望する旅行期間内に提供を受けることが可能なサービスに関するデータをサービス毎に1つの単位とし、複数の単位を適当な順序で並べてリスト化したデータ群である。旅行計画作成サーバは、さらに、1つのサービスが複数のアクティビティを含む場合などに前述の利用可能リスト内のサービスを分割して新たなリストを作成する拡大利用可能リスト作成手段を有する。「拡大利用可能リスト」は、例えば1つのサービスが複数のアクティビティを含む場合などに、利用可能リスト内の当該サービスを相互に関連付けられた複数のサービスに分割し(すなわち、利用可能リスト内の当該サービスに関するデータから相互に関連付けられた複数のサービスに関するデータを作成する。これ以降、「1つのサービスを複数のサービスに分割する」とは、「1つのサービスに関するデータから複数のサービスに関するデータを作成する」ことを意味するものとする)、元のサービスに関するデータ群を、分割した複数のサービスに関するデータ群に置き換えることによって作成される新たなリストである。上記の各手段の機能は、本明細書において詳細に後述する。
一方、データベースは、旅行業者及びシステム管理者によって端末から入力されるか又は提供される、旅行計画を作成するために必要な旅行情報データを格納する。データベースに格納される旅行情報データは、一日(すなわち、24時間)を同一の時間幅又は異なる時間幅に分割して得られる複数の時間の各々(以下、「スロット」という)に関する情報であるスロット属性データ(以下、「スロット表」という)(図5参照)と、旅行業者が提供するサービス及びアクティビティに関する情報であるサービス属性データ(以下、「サービス−アクティビティ表」という)(図9参照)と、アクティビティとスロットとを関連付ける情報であるアクティビティ−スロット関連付けデータ(以下、「アクティビティ−スロット表」という)(図7参照)と、を含む。なお、当然のことながら、データベースは、これらのスロット属性データ、サービス属性データ、アクティビティ−スロット関連付けデータ以外に、旅行計画を作成するために必要な各種のデータも格納することができる。また、当然のことながら、データベースは、後述される種々の処理を行う過程で生成され、その後の別の処理で使用される各種の中間的なデータも格納することができる。
旅行計画は、生産スケジュールなどとは異なり、時間的には余裕を多く含んだスケジュールであると考えられる。さらに、この余裕自体が柔軟性に富んだものである。したがって、スケジュールが決まったサービスを利用する場合でも、そのスケジュールの前後の時間の使い方は、柔軟性に富むものと考えるべきである。このような柔軟性を旅行計画作成コンピュータ・システムに組み込むために、本発明では、旅行期間を複数のスロットに分割する(すなわち、旅行期間の各日の時間をスロット表(スロット属性データ)に予め定められた複数のスロットと関連付ける)方法を採用する。スロットに関するデータであるスロット表は、図5を参照して後述するように、システム管理者によって端末から予め入力されるデータであり、1日を同一の時間幅又は異なる時間幅を有する複数の時間帯(例えば8つの時間帯)に分割して得られる、その時間帯の各々(スロット)に付与される例えばA〜Hの記号(以下、「スロット・タイプ」という)と、例えばスロット・タイプAは早朝、Bは朝食、Cは午前などというように各々のスロットに付与される特性と、各々のスロットの開始時刻及び終了時刻とが関連付けられてデータベースに予め格納されているデータである。
サービス−アクティビティ表は、旅行業者によって提供及び/又は端末から入力されるデータであり、図9を参照して後述するように、サービスを特定するサービス・コード、そのサービスに含まれるアクティビティを特定するアクティビティ・コード、及びそのアクティビティの必要時間などが関連付けられてデータベースに格納されているデータである。さらに、アクティビティ−スロット表は、システム管理者が端末から入力して設定するデータであり、図7を参照して後述するように、アクティビティを特定するアクティビティ・コードと、各々のアクティビティの名称と、各々のアクティビティを実行するのに適した(又は、実行することが可能な)スロットのスロット・タイプ(以下、「適合スロット・タイプ」という)とが関連付けられてデータベースに格納されているデータである。このアクティビティ−スロット表によって、アクティビティとスロット特性との関連付けが定義されることになる。
データベースは、さらに、各々のサービスを提供する旅行業者の名称、所在地などの、旅行業者に関する情報であり、作成された旅行計画に含まれるサービスを予約/購入するのに必要な予約関連データを含む旅行業者データを格納することもできる。また、データベースは、必要に応じて、旅行業者が提供するサービス間の移動時間に関する情報である移動時間データ(図示せず)を格納することもできる。この移動時間データを用いて、サービスをスロットに割り付ける際に、該サービスの前又は後に該移動時間データを加算しながらサービスをスロットに割り付けるようにすることもできる。
2.旅行計画作成の概略的な手順
図2は、本発明の1つの実施形態に従って、旅行計画作成コンピュータ・システムによって旅行計画を作成する方法を概略的に示す。本方法においては、まず、旅行計画の作成を希望する旅行者が、旅行者用端末から、旅行開始日時、旅行終了日時、(例えば、大人、子供、及び乳幼児別の)人数、希望するアクティビティとその優先度及び実施回数、並びに、予算額などの旅行計画特性などといった、旅行計画に対して指定する旅行条件データを入力する。入力された旅行条件データは、インターネットなどの通信網を介して旅行計画作成サーバに送信され、該旅行計画作成サーバの旅行条件データ取得手段によって受信される。一方、旅行業者によって別の端末から入力された、サービスに含まれるアクティビティ、アクティビティの必要時間、サービスの開始日及び終了日、サービスの価格、又は受入人数(サービス対象単位及びグループ数)などのサービス属性データ(図9参照)は、インターネットなどの通信網を介して予めデータベースに送信され、格納される。次いで、旅行計画作成サーバの利用可能リスト作成手段、旅行条件データ取得手段によって取得した旅行条件データと、スロット表のデータ(図5参照)、サービス−アクティビティ表のデータ(図9参照)、及び、アクティビティ−スロット表のデータ(図7参照)とを用いて、利用可能リストを作成する。スロット表のデータ、サービス−アクティビティ表のデータ、及びアクティビティ−スロット表のデータは、旅行情報データとして予めデータベースに格納される。
次いで、旅行計画作成サーバの制約条件構成手段が、作成された利用可能リスト内の複数のサービスについて、その選択可能な組み合わせを求める上で必要な複数の制約条件の組を構成する。さらに、旅行計画作成サーバの目的関数構成手段が、本システムによって自動的に作成される旅行計画の特性を表す変数を用いて目的関数を構成する。これらの制約条件及び目的関数は、利用可能リストの1つ又は複数のサービスを旅行期間内の1つ又は複数のスロットに割り付けるか又は割り付けないかを定めるための決定変数を用いて作成される。次いで、旅行計画作成サーバの旅行計画作成手段、制約条件の下で目的関数を最適化又は近似最適化する選択可能なサービスの組み合わせを、混合整数計画法に基づく最適化手法を用いて求め、そのようにして求めたサービスの各々を旅行期間内のスロットの各々に割り付けることによって、最適化又は近似最適化した旅行計画を作成する。こうして作成された旅行計画は、旅行業者データと共に、旅行計画作成サーバの旅行計画提供手段によって、インターネットなどの通信網を介して旅行者が使用する端末に送られる。
利用可能リスト作成手段の後に、以下のように拡大利用可能リストの作成が行われる場合がある。例えば、ある旅行業者が、又は複数の旅行業者が提携して、ハイキングとバーベキューを組み合わせて提供するといったように、1つのサービスで複数のアクティビティが提供されることがある。このようなサービスは、複合サービスという。この場合には、旅行計画作成サーバの拡大利用可能リスト作成手段が、作成された利用可能リスト内のその複合サービスを、各々が1つのアクティビティを含む複数の新たなサービス(以下、「補助サービス」という)に分割し、元の利用可能リストの複合サービスに関するデータを複数の補助サービスのデータに置換したリスト(拡大利用可能リスト)を作成する。分割前の元の複合サービスと分割後の複数の補助サービスとの関係、及び、分割後の複数の補助サービス相互間の関係は、後述する方法で作成される関係データを用いて記述される。関係データの作成は、旅行計画作成サーバの拡大利用可能リスト作成手段によって行われる。こうして作成された拡大利用可能リスト及び関係データは、その後の制約条件作成、目的関数作成、及び旅行計画作成の際に用いられることになる。
また、例えば、朝食後から夕食前までスキーを行う場合など、1つのアクティビティを複数のスロットにわたって提供するサービスもある。この場合には、旅行計画作成サーバの拡大利用可能リスト作成手段は、利用可能リスト又は拡大利用可能リスト内のそのサービスを、各々が1つのスロットの時間幅以下の必要時間を有する複数の補助サービスに分割し、元のサービスに関するデータを複数の補助サービスのデータに置換した拡大利用可能リストを作成する。すなわち、複数のスロットにわたって提供される元のサービスは、複数の補助サービスからなる複合サービスとなる。この場合も同様に、分割前の元の複合サービスと分割後の複数の補助サービスとの関係、及び、分割後の複数の補助サービス相互間の関係は、後述する方法で作成される関係データを用いて記述される。関係データの作成は、旅行計画作成サーバの拡大利用可能リスト作成手段によって行われる。こうして作成された拡大利用可能リスト及び関係データは、その後の制約条件作成、目的関数作成、及び旅行計画作成の際に用いられることになる。
旅行計画作成を希望している旅行者が、端末に送信され表示された旅行計画を確認し、その旅行計画を変更又は修正する必要があると判断した場合には、旅行者は、端末から旅行計画の修正又は変更を行うことができる。旅行計画作成サーバは、旅行者からの旅行計画の修正又は変更の要求及びそれに必要なデータを受信すると、現在の旅行計画を修正又は変更する処理を実行し、新たな旅行計画を端末に送信する。この処理は、旅行者が満足する旅行計画が作成されるまで繰り返される。旅行者が、作成された旅行計画に満足した場合には、その旨は、旅行者が使用する端末から入力されて旅行計画作成サーバに送信され、旅行計画作成サーバは、最終的な旅行計画と、該旅行計画に含まれる各々のサービスを予約するのに必要な情報とを、端末に送信する。なお、旅行者から入力された旅行条件では旅行計画が作成できない場合には、旅行計画作成サーバは、旅行条件を指定し直すよう促すメッセージを端末に送信する。
3.利用可能リスト作成方法
以下に、図3〜図23を参照して、本発明の1つの実施形態に係る旅行計画作成サーバ旅行計画を作成する処理を詳細に説明する。以下に説明される処理は、旅行計画作成サーバのCPUが、コンピュータを旅行計画作成サーバ内の手段の各々として機能させるためのコンピュータ・プログラムを読み込んで順次実行することによって、実現される。図3〜図10は、旅行計画作成サーバの利用可能リスト作成手段利用可能リストを作成する手順、及び作成される利用可能リストを示す。利用可能リストは、利用可能リスト作成手段が、旅行期間表を作成し、旅程表を作成し、アクティビティ表を作成した上で、これらのデータを用いて作成する。
(1)旅行期間表の作成
図3は、旅行者が入力した旅行開始日及び旅行終了日から、旅行期間の日付と曜日とを対応させた旅行期間表を作成するための処理である。処理は、利用可能リスト作成手段が、旅行者によって端末から入力され旅行条件データ取得手段によって取得された旅行条件データから、旅行開始日及び旅行終了日を取得する(ステップ301)ことで開始する。利用可能リスト作成手段は、取得した旅行開始日旅行期間の最初の日付として設定する(ステップ302)。利用可能リスト作成手段は、設定された最初の日付を旅行終了日と比較し(ステップ303)、その日付が旅行終了日より前であるか又は旅行終了日と同日の場合には、オペレーション・システムのカレンダー機能を利用して曜日を取得する(ステップ304)。次いで、利用可能リスト作成手段は、旅行期間の日付と曜日とを対応付けた旅行期間データを作成し(ステップ305)、日付を1日進めて(ステップ306)、処理はステップ303に戻る。以上のステップを、日付が旅行終了日と同日になるまで繰り返し、利用可能リスト作成手段は、日付が旅行終了日を越えた場合(ステップ303)には、それまでに作成した旅行期間データを順次格納した旅行期間表を作成し(ステップ307)、処理は終了する(ステップ308)。図3のフロー・チャートの処理を実行することによって、旅行期間の日付と曜日とを対応させたデータである旅行期間表が全旅行期間にわたって作成され、データベースに格納される。
(2)旅程表の作成
図4は、旅行期間内の複数のスロットについて、複数のスロットを特定するスロット・コードと、そのスロットのスロット・タイプと、そのスロットの開始時刻及び終了時刻とを対応させた旅程表を作成するための処理である。処理は、利用可能リスト作成手段が、旅行条件データ取得手段によって取得された旅行条件データから、旅行開始日時及び旅行終了日時を取得する(ステップ401)ことで開始する。次いで、利用可能リスト作成手段は、図3の処理で作成された旅行期間表から日付単位で旅行期間データを読み込み(ステップ402)、さらにデータベースからスロット表を取得する(ステップ404)。このスロット表は、図5に示すように、行ごとに、A〜Hまでの記号で表されるスロット・タイプと、早朝、朝食、又は午前などといった、各スロットの特性を表すスロット特性と、各スロットの開始時刻及び終了時刻とが関連付けて格納されている関連付けデータであり、これらのデータは、システム管理者によって予め任意に設定され、システム管理者用の端末から入力されるすなわち、システム管理者は、スロットの各々の開始時刻及び終了時刻をどの時刻に設定するか(これによって、1日24時間が幾つのスロットに分けられるかが決定される)、スロットの各々の記号(スロット・タイプ)をどのように表すか、及びスロットの各々に付与する特性をどのように表すか、といった事項を任意に設定し、これらの事項を表した図5に示されるスロット属性データをシステム管理者用の端末から入力する。入力されたデータは、データベースに予め格納される。スロット・タイプの数(すなわち、スロットの数)、スロット特性、及び(開始時刻及び終了時刻によって決まる)時間幅は、図5に示す例に限るものではなく、例えば、1日を6つの時間帯(すなわちスロット)に分割して各々の時間帯のスロット・タイプをA〜Fとし、スロット特性を、それぞれ朝食、午前、昼食、午後、夕食、及び夜間とし、スロットの時間幅を、それぞれ2時間、3時間、2時間、4時間、2時間、及び11時間とすることもできる。また、各々のスロットには、複数のスロット特性を付与してもよい。例えば、午前9時から午前10時までのスロットに、「朝食」及び「午前」の2つのスロット特性を付与し、旅行者がいずれかを選択できるようにすることも考えられる。ステップ404のデータ取得は、このスロット表の行単位で行われる。
次に、利用可能リスト作成手段は、旅行開始日時と、旅行期間データの日付と、取得したスロット表とを用いて、旅行期間データの最初の日付に対応する各スロットのスロット・タイプ、開始時刻、及び終了時刻のデータを編集テーブルに設定し(ステップ406)、ステップは404に戻る。最初の日付のすべてのスロットについて、ステップ404からステップ406までを繰り返し、最初の日付のすべてのスロットに対する処理が終了すると(ステップ405)、処理はステップ402に戻り、利用可能リスト作成手段は、旅行期間データの次の日付を読み込む。ステップ402からステップ406を繰り返し、旅行期間データのすべての日付について処理が終了すると(ステップ403)、利用可能リスト作成手段は、編集テーブルから、それまでに作成した旅程データを順次格納した旅程表を作成し(ステップ407)、処理は終了する(ステップ408)。図4のフロー・チャートの処理を実行することによって、旅行期間のスロットを特定するスロット・コードと、図5のスロット表の例の場合にはA〜Hまでのスロット・タイプと、各スロットの開始時刻及び終了時刻とを関連付けた旅程表が作成される。
(3)アクティビティ表の作成
図6は、旅行者が入力した旅行条件データをアクティビティごとにまとめ、各々のアクティビティをその適合スロット・タイプと対応させたアクティビティ表を作成するための処理である。処理は、利用可能リスト作成手段が、旅行者が入力した旅行条件データを取得する(ステップ601)ことで開始する。取得される旅行条件データは、旅行者が旅行期間内に実施することを希望するすべてのアクティビティを含む。次いで、利用可能リスト作成手段は、旅行条件データから取得したアクティビティ情報をアクティビティごとに読み込み(ステップ602)、後述するアクティビティ−スロット表から、ステップ602で読み込んだアクティビティに適合する1つ又は複数の適合スロット・タイプを取得する(ステップ604)。
アクティビティ−スロット表は、図7に示すように、行ごとに、アクティビティを特定するアクティビティ・コードと、各々のアクティビティの名称と、各々のアクティビティを実施するのに適した(又は、実施することが可能な)適合スロットのスロット・タイプとが関連付けて格納されている関連付けデータであり、これらのデータは、システム管理者によって予め設定され、システム管理者用の端末から入力され、、データベースに予め格納される。適合スロット・タイプは、アクティビティの特性によって決められるものであり、例えば、バーベキューは、早朝又は朝食時に行うことは考えにくく、昼食又は夕食として実施されるのが適しており、この場合には、バーベキューの適合スロット・タイプは、昼食又は夕食のスロットを表すD又はFとなる。
次いで、利用可能リスト作成手段が、ステップ602で読み込んだアクティビティについて、アクティビティ・コードと、アクティビティ名称と、適合スロット・タイプと、後述する絞込条件とを含むアクティビティ・データを作成(ステップ605)した後、処理は602に戻り、利用可能リスト作成手段は次のアクティビティ情報を読み込む。ステップ602からステップ605までを繰り返し、取得したアクティビティ・コードのすべてについてアクティビティ・データが作成されると(ステップ603)、利用可能リスト作成手段は、作成されたアクティビティ・データを順次格納したアクティビティ表を作成し(ステップ606)、処理は終了する(ステップ607)。図6の処理を実行することによって、旅行者が入力した旅行条件データから、旅行者が旅行期間内に実施することを希望するすべてのアクティビティについて、その名称と、適合スロット・タイプと、絞込条件とが関連付けられて整理されたアクティビティ表が作成される。
(4)利用可能リストの作成
図8は、図3、図4、及び図6の処理で作成された旅行期間表、旅程表、及びアクティビティ表を用いて利用可能リストを作成するための処理のフロー・チャートである。処理は、利用可能リスト作成手段が、旅行期間表、旅程表、及びアクティビティ表を取得することで開始する(ステップ801)。次いで、利用可能リスト作成手段は、アクティビティ表から絞込条件を読み込む(ステップ802)。この絞込条件は、旅行者が各々のアクティビティについて指定した、優先度、指定時間、実施回数、実施地域、及びその他の絞込情報に関するデータである。ここで、「優先度」は、旅行者が各々のアクティビティについて指定する情報であり、旅行者が希望するすべてのアクティビティが旅行期間内に収まらない場合に、どのアクティビティを優先して旅行計画に組み込むかを定めるものである。本実施形態においては、優先度は、「必須」及び「二次」の2分類から選択して旅行者が指定するが、優先度の分類は2分類に限定されるものではなく、3分類以上とすることもできる。優先度が「必須」のアクティビティは、実施回数分が必ず旅行計画に組み込まれ、優先度が「二次」のアクティビティは、優先度が「必須」のアクティビティを組み込んだ後の旅行日程に組み込むことができる範囲内で、実施回数以下の回数が旅行日程に組み込まれることになる。「指定時間」は、旅行者が各々のアクティビティについて指定する情報であり、旅行者がそのアクティビティに費やすことが可能な(又は、費やすことを希望する)時間を定めるものである。「実施回数」は、旅行者が各々のアクティビティについて指定する情報であり、旅行者が、旅行期間内に希望するアクティビティの各々をそれぞれ何回ずつ実施することを希望するかを定めるものである。「実施地域」は、旅行者が各々のアクティビティについて指定する情報であり、旅行者がそのアクティビティを実施したい地域を定めるものである。「その他の絞込情報」は、例えば、ホテルの部屋のタイプ(例えば、禁煙室か喫煙室かなど)などといったその他の条件を指定する情報である。
次いで、利用可能リスト作成手段は、サービス−アクティビティ表から、旅行者が指定したアクティビティを含むサービスのデータを取得する(ステップ804)。このサービス−アクティビティ表は、データベースに予め格納されており、図9に示すように、サービスを特定するサービス・コードと、アクティビティを特定するアクティビティ・コードと、アクティビティの必要時間と、サービス対象単位(すなわち、サービスの対象となる1グループの人数)及びグループ数(すなわち、サービスが受入可能なグループ数)と、後述するサービス・タイプと、アクティビティの開始時刻及び終了時刻と、サービスの価格と、サービスの開始日、終了日、及び休日と、旅行者が入力するその他の絞込情報と照合するのに用いるその他の絞込条件と、実施地域と、が関連付けて格納されている関連付けデータである。これらのデータは、予め旅行業者によって端末から入力され、インターネットなどの通信網を介して、直接データベースに格納される。あるいは、これらのデータは、旅行業者によって端末から入力され、インターネットなどの通信網を介して旅行計画作成サーバに送られ、該旅行計画作成サーバの旅行情報データ取得手段(図示せず)において取得された後、データベースに格納されるようにしてもよい。さらに、これらのデータは、旅行業者によって何らかの手段でシステム管理者に提供された後、システム管理者によってシステム管理者用の端末から入力されるようにしてもよい。
サービス−アクティビティ表のサービス・タイプは、そのサービスが、提供されるスケジュールが決まっているものであるかどうかを表すデータである。本実施形態では、旅行業者が提供するサービスは、以下の3つのタイプに分類する。1つは、例えば、週2回、午後2時から午後4時までの間に実施されるラフティングのように、提供されるアクティビティのスケジュール、すなわち日付、開始時刻、及び終了時刻が旅行業者によって定められているサービスである。このようなサービスのサービス・タイプは、「s」とする。sタイプのサービスについては、提供されるスケジュールが異なるものはすべて異なるサービスとして考慮されることになる。次に、例えば美術館でガイドを付けずに希望する時間だけ鑑賞する場合のように、提供を受けるのに「必要な時間幅」(必要時間)が旅行業者によって指定されていないアクティビティを含むサービスである。このようなサービスのサービス・タイプは、「a1」とする。スキー、温泉、宿泊なども、タイプa1のサービスと考えられる(但し、本実施形態においては、宿泊はアクティビティを伴わない特殊なa1サービスとして扱う。すなわち、必要時間は、スロット特性「睡眠」に該当するスロット・タイプH(図5参照)全体である)。a1タイプのサービスに含まれるアクティビティの必要時間は、旅行業者によって端末から「標準必要時間」、すなわちそのアクティビティを実施するのに「適した時間」として入力されるが、このタイプのサービスが旅行計画に組み込まれた場合には、旅行者がこの標準必要時間を自由に書き換えることができるものとする。最後は、例えば美術館における1時間ガイド付きツアーなどのように、スケジュールが旅行業者によって定められておらず、随時提供を受けることはできるが、必要時間が旅行業者によって指定されているアクティビティを含むサービスである。このようなサービスのサービス・タイプは、「a2」とする。a2タイプのサービスの必要時間は、旅行業者によって端末から入力される。a1タイプ及びa2タイプのサービスに含まれるアクティビティの開始時刻及び終了時刻には、該アクティビティの提供が開始される時刻、例えば該アクティビティを提供する旅行業者の営業開始時刻と、該アクティビティの提供が終了する時刻、例えば該アクティビティを提供する旅行業者の営業終了時刻とが設定される。
ステップ805において、利用可能リスト作成手段は、旅行者が希望するすべてのアクティビティについて、そのアクティビティを含むサービスのうち、旅行者が指定した絞込条件に適合するサービスを絞り込む。例えば、旅行者が入力した人数が5人である場合には、ステップ802において利用可能リスト作成手段が、サービスの受入可能人数が少なくとも5人以上であるという条件読み込、ステップ805において、旅行期間内に5人以上の人数の受入が可能なサービスを絞り込む。あるいは、例えば旅行者が、サービス当たり1万円以下の費用という条件を入力した場合には、利用可能リスト作成手段は、費用が1万円以下のサービス絞り込。なお、指定時間は、sタイプのサービス及びa2タイプのサービスに対しては、旅行者が許容できる最大の時間として絞り込みに利用される。すなわち、sタイプのサービス及びa2タイプのサービスの場合、そのサービスに含まれるアクティビティの必要時間が指定時間以下のサービスが、絞込条件に適合するものとなる。それに対して、a1タイプのサービスについては、そのサービスの営業時間内であれば旅行者はいつでもそのサービスを受けることができるため、指定時間に基づく絞り込みは行わない。なお、営業時間は、旅行情報データに含まれていることは言うまでもない。
利用可能リスト作成手段は、このようにして絞り込んだ複数のサービスからサービス・データ作成(ステップ806)、読み込むべき絞込条件がなくなると(ステップ803)、利用可能リストを作成して(ステップ807)、処理は終了する(ステップ808)。
以上の処理を経て、図10に示すような利用可能リストが作成されることになる。利用可能リストは、旅行者が希望する旅行期間内に実施することが可能なすべてのサービスについて、サービスを特定するサービス・コードと、各々のサービスで提供されるアクティビティを特定するアクティビティ・コードと、アクティビティを実施するのに適した適合スロット・タイプと、サービスの対象単位及びグループ数と、サービス・タイプと、サービスに含まれるアクティビティの開始時刻及び終了時刻と、アクティビティの必要時間と、サービスの価格と、アクティビティの実施枠と、アクティビティの優先度と、アクティビティの指定時間と、アクティビティの実施回数と、アクティビティの実施地域とが関連付けられたデータである。ここで、「実施枠」は、旅行者が各々のアクティビティについて指定する情報であり、そのアクティビティを旅行期間中の何日目のどの時間帯に実施するかを定めるものである。なお、この利用可能リストの必要時間には、sタイプのサービスの場合は、該サービスに含まれるアクティビティの開始時刻及び終了時刻から計算される時間が設定され、a1タイプのサービスの場合は旅行業者によって端末から入力された、アクティビティの標準必要時間が設定され、a2タイプのサービスの場合は旅行業者によって端末から入力された、アクティビティの必要時間が設定される。
4.拡大利用可能リスト作成方法
ところで、前述の通り、例えば、ある旅行業者が又は複数の旅行業者が提携してトレッキングと昼食とを組み合わせて提供するといったように、1つのサービスで複数のアクティビティが提供される場合がある。上述の処理で作成された利用可能リストにこのような複合サービスが含まれる場合には、拡大利用可能リスト作成手段が、利用可能リストのその複合サービスを、各々が1つのアクティビティを含む複数の補助サービスに分割し、元の利用可能リストの複合サービスに関するデータを複数の補助サービスのデータに置換する。また、例えば、朝食後から夕食前までスキーを行うといったように、1つのアクティビティを複数のスロットにわたって提供するサービス(以下、「長大サービス」という)もある。このような場合も、拡大利用可能リスト作成手段は、利用可能リスト内のその長大サービス(この場合も同様に「複合サービス」として扱う)を、各々が1つのスロットの時間幅以下の必要時間を有する複数の補助サービスに分割し、元の利用可能リストの長大サービスに関するデータを複数の補助サービスのデータに置換する。以上のような処理を図11〜図13に示すフロー・チャートによって行うことによって、元の利用可能リストから図14に示す拡大利用可能リスト作成される。なお、上述のように、拡大利用可能リストは、利用可能リストの複合サービスに関するデータを複数の補助サービスに関するデータに置換したものであり、図10に示す利用可能リストのデータ項目と図14に示す拡大利用可能リストのデータ項目は、拡大サービス・コード及びスロット・タイプを除いて同じものとすることができる。しかしながら、分かりやすくするため、図14においては、図10のデータ項目のうち、後の制約条件構成ステップなどにおいて利用するデータ項目のみを抽出して記載している。
(1)サービス−スロット表の作成
図11は、複合サービスの分割及び拡大利用可能リストの作成に先立って、各々のサービスのサービス・コードと、該サービスに含まれるアクティビティの後述する実効スロットとを関連付けるサービス−スロット表を作成するための処理である。また、図12及び図13は、拡大利用可能リストを作成し、元のサービスと補助サービスとの関係及び補助サービス間の関係データを作成するための処理である。図11においては、処理は、拡大利用可能リスト作成手段が、図5に示すスロット表、及び、図10に示す利用可能リストを取得することで開始する(ステップ1101)。次いで、拡大利用可能リスト作成手段は、利用可能リストのサービス毎に該サービスに関するデータを読み込む(ステップ1102)。拡大利用可能リスト作成手段は、読み込んだサービス・データに含まれる開始時刻及び終了時刻とスロット表とから、該サービスの開始スロット及び終了スロットを決定し(ステップ1104)、決定された開始及び終了スロットから、ステップ1105〜ステップ1107に従って実効スロット候補を決定する。
ここで「実効スロット」とは、利用可能リスト内の各々のサービスに含まれるアクティビティの適合スロットのうち、旅行業者がそのサービスを提供する時間帯に含まれるスロットであり、「実効スロット・タイプ」は、実効スロットに付与される、例えばA〜Hの記号である。例えば、利用可能リスト内のあるサービスについて、そのサービスに含まれるアクティビティが提供される適合スロットのスロット・タイプがC(午前)及びE(午後)、サービス・タイプがa1、旅行期間が例えば10月15日12:00から10月18日18:00であるとする。この場合、旅行者が該サービスに含まれるアクティビティを10月15日の午後(すなわち、対応するスロット・タイプはEである)に実施することを指定し、その時間帯に該サービスの提供が可能なときは、そのサービスの実効スロット・タイプはE(午後)となる。同じ場合に、旅行者がそのサービスに含まれるアクティビティを10月16日に実施することを指定し、その時間帯に該サービスの提供が可能なときは、実効スロット・タイプはC(午前)及びE(午後)である。さらに同じ場合に、旅行者が実施を希望する日の指定をしていないときは、そのサービスに含まれるアクティビティの実効スロット・タイプは、15日のE、16日、17日、及び18日のC及びEの、合わせて7個となる。或いは、例えば、利用可能リスト内のあるサービスについて、含まれるアクティビティの開始時刻が9:00、終了時刻が16:00、サービス・タイプがsの場合には、そのサービスに含まれるアクティビティの開始時刻と終了時刻との間にあるスロット・タイプ、すなわち、C(午前)、D(昼食)、及びE(午後)からなる集合が実効スロット・タイプとなる。さらに、例えば、旅行者があるアクティビティを夜間(すなわち、対応するスロット・タイプである)に実施することを指定したときは、適合スロット・タイプがGであるそのアクティビティを含むサービス、及び/又は、開始時刻と終了時刻がスロット・タイプGのスロットに含まれる該アクティビティを含むサービスが利用可能リストに追加され、この場合には、該サービスの実効スロット・タイプはGとなる。
ステップ1104において開始スロット及び終了スロットを決定した後、拡大利用可能リスト作成手段は、そのサービスのサービス・タイプが、sタイプであるか、aタイプ(a1タイプ又はa2タイプ)であるかを判断する(ステップ1105)。そのサービスがsタイプの場合は、スケジュールが決まっているため、拡大利用可能リスト作成手段は、開始スロット及び終了スロットのスロット・タイプも含めて開始スロットと終了スロットとの間にあるスロット・タイプからなる集合を求め、そのスロット・タイプ集合を実効スロット・タイプとして取得する(ステップ1107)。一方、そのサービスがaタイプの場合は、拡大利用可能リスト作成手段は、開始スロット、すなわち該サービスを提供する旅行業者の営業開始時刻を含むスロットと、終了スロット、すなわち該サービスを提供する旅行業者の営業終了時刻を含むスロットとの間のスロット・タイプを求め、求めたスロット・タイプのうち、連続するスロット・タイプからなる集合で、該サービスに含まれる各アクティビティに対応する位置のスロット・タイプがその適合スロット・タイプと一致するものを実効スロット・タイプとして取得する(ステップ1106)。ステップ1106及びステップ1107の処理の結果、実効スロットが存在しない場合(ステップ1108)には、処理はステップ1102に戻り、拡大利用可能リスト作成手段は、次のサービス・データを読み込む。実効スロットが存在する場合には、そのサービスのサービス・コードと、該サービスの実効スロット・タイプとを関連付けたサービス−スロット・データを作成し(ステップ1109)、次のサービス・データを読み込む(ステップ1102)。拡大利用可能リスト作成手段は、ステップ1102からステップ1109を繰り返し、取得した利用可能リストのすべてのサービスについて実効スロット・タイプを取得すると(ステップ1103)、作成されたサービス−スロット・データからサービス・スロット表を作成し(ステップ1110)、処理は終了する。なお、実施可能リストに複合サービスが含まれない場合においても、同様の処理によって実効スロット・タイプが取得されることになる。
ところで、aタイプのサービスの場合、ステップ1106において複数の実効スロット・タイプ集合が作成されることがある。例えば、3つのアクティビティを含む複合サービスについて、第1のアクティビティの適合スロット・タイプがA〜C、第2のアクティビティの適合スロット・タイプがC〜E、第3のアクティビティの適合スロット・タイプがC〜Gの場合を考える。第1のアクティビティの開始時刻をスロットAの途中からとし、続く第2及び第3のアクティビティが共にそれぞれの適合スロットの範囲に収まり、第3のアクティビティの終了時刻がスロットGに含まれる場合には、実効スロット・タイプ集合は、{A、B、C、D、E、F、G}である。次に、第1のアクティビティをスロットBから開始するものとし、続く第2及び第3のアクティビティが共にそれぞれの適合スロットの範囲に収まり、第3のアクティビティの終了時刻がスロットGに含まれる場合には、実効スロット・タイプ集合は、{B、C、D、E、F、G}である。しかしながら、第1のアクティビティをスロットCから開始するものとし、第1のアクティビティがスロットC内には収まらずスロットDまでまたがる場合には、スロットDは第1のアクティビティの適合スロット・タイプではないため、スロットCから開始する実効スロット・タイプ集合は作成できない。したがって、このような場合の実効スロット・タイプ集合は二組である。このように複数の実効スロット・タイプ集合が作成される場合には、作成された実効スロット・タイプ集合の個数だけサービス・コードを複製し、各々のサービス・コードに1つの実効スロット・タイプ集合が対応するようにする。なお、すべてのサービスに含まれるアクティビティが1つのスロット内に収まる場合には、この処理は不要である。
(2)拡大利用可能リスト及び補助サービス間関係データの作成
図12は、複数のアクティビティを含む1つ又は複数の複合サービスを、各々が1つのアクティビティを含む複数の補助サービスに分割するための処理である。図12においては、処理は、拡大利用可能リスト作成手段が、図10に示す利用可能リストと、図11の処理によって作成されたサービス−スロット表とを取得することで開始する(ステップ1201)。次いで、拡大利用可能リスト作成手段は、取得したサービス−スロット表から最初のサービス・コードを読み込む(ステップ1202)。ステップ1204において、拡大利用可能リスト作成手段は、取得済みの利用可能リストから最初のサービス・データを読み込み、該サービス・データのサービス・コードによって特定されるサービスが、複合サービス(すなわち、複数のアクティビティを含むサービス)又は単純サービス(すなわち、単一のアクティビティのみを含むサービス)のいずれであるかを判断する(ステップ1205)。この判断は、拡大利用可能リスト作成手段が、利用可能リストから読み込んだサービス・データにおいて、サービスのサービス・コードが複数のアクティビティ・コードと関連付けられているかどうかを判定することによって行われる。そのサービスが複合サービスではない場合には、拡大利用可能リスト作成手段は、そのサービスのデータを、利用可能リストの適合スロット・タイプを実効スロット・タイプに置き換えて、拡大利用可能リストに追加する(ステップ1213)。
そのサービスが複合サービスである場合には、拡大利用可能リスト作成手段は、次に、該サービスのサービス・タイプが、sタイプであるかaタイプであるかを判断する(ステップ1206)。そのサービスがsタイプである場合には、拡大利用可能リスト作成手段は、そのサービスを、スケジュールに応じて、各々が1つのアクティビティを含む連続する複数の補助サービスに分割し、各々の補助サービスに含まれるアクティビティの開始時刻及び終了時刻から、各補助サービスの必要時間を算出する(ステップ1207)。各々のアクティビティの開始時刻及び終了時刻は、事前に旅行業者によって端末から入力され、データベースに格納されている。
ステップ1206に戻り、サービス・コードによって特定されるサービスがaタイプである場合には、拡大利用可能リスト作成手段は、さらにそのサービスがa1タイプ又はa2タイプのいずれであるかを判断する(ステップ1208)。サービスがa2タイプである場合には、拡大利用可能リスト作成手段は、そのサービスを、各々が1つのアクティビティを含む連続する複数の補助サービスに分割し、各々の補助サービスに含まれるアクティビティの必要時間を各々の補助サービスの提供に必要な時間幅、すなわち、補助サービスの必要時間として設定する(ステップ1209)。サービスがa2タイプではない場合、すなわちa1タイプである場合には、拡大利用可能リスト作成手段は、そのサービスを、各々が1つのアクティビティを含む連続する複数の補助サービスに分割し、各々の補助サービスの必要時間を以下のように設定する(ステップ1210)。各々の補助サービスに含まれるアクティビティについて、そのアクティビティに費やすことを希望する(又は、費やすことが可能な)時間幅である指定時間が旅行者によって設定されている(すなわち、旅行条件データに含まれている)ときは、拡大利用可能リスト作成手段は、その指定時間と、該アクティビティを提供する旅行業者の営業時間の長さとを比較し、より短い方を補助サービスの必要時間として設定する。各々の補助サービスに含まれるアクティビティについて、指定時間が旅行者によって設定されていない(すなわち、旅行条件データに含まれていない)ときは、拡大利用可能リスト作成手段は、旅行業者によって入力された標準必要時間、すなわち該アクティビティを実施するのに適した時間を、補助サービスの必要時間として設定する。
ステップ1207、1209、又は1210において補助サービスの作成及び必要時間の設定が終了した後、拡大利用可能リスト作成手段は、1つの複合サービスを分割して生成された複数の補助サービスのデータを、元の複合サービスのデータと置換して、拡大利用可能リストに追加する(ステップ1211)。ここで、複合サービスを分割して得られる複数の補助サービスは、最終的に旅行計画を作成する段階で元のサービスに復元されなければならないこと、及び、1つの複合サービスを分割して作成される複数の補助サービスは、一括して旅行計画に組み込まれなければならないことから、元の複合サービスと補助サービスとの関係、及び、複数の補助サービス同士の関係を記述しておく必要がある。したがって、拡大利用可能リスト作成手段は、この時点で、そのための関係データを作成する(ステップ1212)。この関係データは、例えば、1つの複合サービスが、各々が1つのアクティビティを含む3つの補助サービスに分割された場合、拡大利用可能リスト作成手段が、最初に実施されるアクティビティを含む補助サービス(以下「根サービス」という)のサービス・コードとして、元の複合サービスのサービス・コード(例えば、100)を付与し、2番目及び3番目の補助サービスのサービス・コードとして、「元の複合サービスのサービス・コード−2」(例えば、「100−2」)及び「元の複合サービスのサービス・コード−3」(例えば、「100−3」)を付与し、これらの関係を関係データ表として記述することによって作成することができる。なお、補助サービスのサービス・コードの付け方はこれらに限るものではなく、元の複合サービスと補助サービスとの関係及び補助サービス同士の関係を特定できるものであれば良い。拡大利用可能リスト内の各々のサービスには、サービスごとに新たに拡大サービス・コード付与される。
以上の処理を行った後、ステップは1202に戻り、拡大利用可能リスト作成手段は、サービス−スロット表から次のサービス・コードを読み込む。サービス・スロット表のすべてのサービス・コードについて、ステップ1204〜ステップ1212を繰り返し、読み込むべきサービス・コードがなくなったら(ステップ1203)、処理は図13のステップ1214に移る。図13は、複数のスロットにまたがる1つ又は複数の長大サービスを、各々が1つのスロットの時間幅以下の必要時間を有する複数の補助サービスに分割する処理である。ステップ1214において、拡大利用可能リスト作成手段は、これまでに作成された拡大利用可能リストから最初の拡大サービス・データ(拡大サービス・コード及びそれに関連付けられたデータ)を読み込み、そのサービスが長大サービスであるかどうかを判断する(ステップ1216)。この判断は、そのサービスの実効スロットの組のうちの先頭スロットの時間幅と、そのサービスの必要時間とを比較することによって行われ、必要時間が先頭スロットの時間幅より長い場合には、そのサービスは長大スロットであると判断される。サービスが長大サービスではない場合には、ステップは1214に戻り、拡大利用可能リスト作成手段は、次の拡大サービス・データを読み込む。
サービスが長大サービスである場合には、次に、拡大利用可能リスト作成手段は、該サービスのサービス・タイプが、sタイプであるかaタイプであるかを判断する(ステップ1217)。そのサービスがsタイプである場合には、拡大利用可能リスト作成手段は、該サービスを、該サービスに含まれるアクティビティの開始時刻を含むスロットに対応する補助サービスと、終了時刻を含むスロットに対応する補助サービスと、その両スロット間の複数のスロットに対応する複数の補助サービスとに分割し、各々のスロットの時間幅を、そのスロットに対応する補助サービスの必要時間として設定する(ステップ1218)。ここで、アクティビティの開始時刻が含まれるスロットに対応する補助サービスの必要時間は、該開始時刻から、該開始時刻が含まれるスロットの終了時刻までの時間幅が設定され、終了時刻が含まれるスロットに対応する補助サービスの必要時間は、該終了時刻が含まれるスロットの開始時刻から該終了時刻までの時間幅が設定される。したがって、開始時刻が含まれるスロットに対応する補助サービスの必要時間と、終了時刻が含まれるスロットに対応する補助サービスの必要時間は、それぞれのスロットの時間幅より短くなる場合がある。
そのサービスがaタイプである場合には、拡大利用可能リスト作成手段は、以下のように処理を行う(ステップ1219及び1220)。拡大利用可能リスト作成手段が、その長大サービスの実効スロットの組のうちの最初の実効スロットが該サービスを提供する旅行業者の営業開始時刻を含むスロットと等しいと判断したときは、拡大利用可能リスト作成手段は、該営業開始時刻から該最初の実効スロットの終了時刻までを最初の補助サービスとし、該営業開始時刻から該終了時刻までの時間幅をその最初の補助サービスの必要時間として設定する。次いで、拡大利用可能リスト作成手段は、順次、その長大サービスの実効スロットに対応する補助サービスを作成していき、各々の実効スロットの時間幅を、その実効スロットに対応する補助サービスの必要時間として設定する。最後の実効スロットに対応する補助サービスの必要時間は、最初の補助サービスから最後の実効スロットの直前の実効スロットに対応する補助サービスまでの複数の補助サービスの必要時間の合計を、この長大サービスの必要時間から引いた時間幅を設定する。一方、その長大サービスの実効スロットの組のうちの最初の実効スロットが、該サービスを提供する旅行業者の営業開始時刻を含むスロットより後のスロットであるときには、拡大利用可能リスト作成手段は、該最初の実効スロットに対応する補助サービスを最初の補助サービスとし、該最初の実効スロットの時間幅を該最初の補助サービスの必要時間として設定する。次いで、拡大利用可能リスト作成手段は、順次、その長大サービスの実効スロットに対応する補助サービスを作成していき、各々の実効スロットの時間幅を、その実効スロットに対応する補助サービスの必要時間として設定する。最後の実効スロットに対応する補助サービスの必要時間は、最初の補助サービスから最後の実効スロットの直前の実効スロットに対応する補助サービスまでの複数の補助サービスの必要時間の合計を、この長大サービスの必要時間から引いた時間幅を設定する。
ステップ1218〜1220を終了した後、1つの長大サービスを分割して生成された複数の補助サービスのデータを、元の長大サービスのデータと置換して、拡大利用可能リストに追加する(ステップ1221)。ここで、元の長大サービスを分割して生成された複数の補助サービスのうち、最初に実施される補助サービスを「補助根サービス」という。次いで、拡大利用可能リスト作成手段は、上述のステップ1212と同様に、元の複合サービス(すなわち、長大サービス)と補助サービスとの関係、及び、複数の補助サービス同士の関係を記述するための関係データを作成する(ステップ1222)。次いで、拡大利用可能リスト作成手段は、ステップ1212において作成した関係データから、ここで分割した長大サービスに続く補助サービスに長大なものが存在するかどうかを判断し(ステップ1223)、存在する場合には、その補助サービスの拡大サービス・データを読み込み(ステップ1224)、ステップ1217〜1222を繰り返す。ステップ1218〜1220において分割した長大サービスに補助サービスが存在しない場合には、処理はステップ1214に戻り、拡大利用可能リスト作成手段は、次の拡大サービス・データを読み込む。
ステップ1217〜1224までの処理を繰り返し、読み込むべき拡大サービス・データが無くなったら(ステップ1215)処理は終了することになる(ステップ1226)が、最終的な拡大利用可能リストが作成された段階で、拡大利用可能リスト作成手段は、該拡大利用可能リストのサービスをランダムに並べ替えることが好ましい(ステップ1225)。すなわち、利用可能リスト及び拡大利用可能リストのサービスに関する情報は、図10及び図14に示されるように、サービス毎に1つのデータ単位として構成されており、サービスをランダムに並べ替える処理は、リストに含まれる複数のデータ単位を並べ替えることによって行われる。この処理は、混合整数計画問題の解法の多くでは、同等のサービスであれば係数行列の一定の位置にあるサービスが選択されやすい特性があるため、及びモデルを構築する際のサービスの並びはデータベースからの検索結果に依存するため、旅行者からの同じ入力条件に対して作成される旅行計画に組み込まれるサービスが固定的にならないように、拡大利用可能リストのサービスの並び順を無作為に並び替える処理である。こうした処理を行うことによって、旅行者が同じ旅行条件データを入力した場合であっても、その都度異なる旅行計画が作成され、旅行者が当初想像していなかったような旅行を享受できるという利点がある。また、本発明のような支援サービスを実現するためには、データ入力に対する多数の旅行業者の協力が必要であるが、こうしたランダム化処理を行うことによって、各々の旅行業者の提供するサービスが選択される機会の公平性が担保され、旅行業者が支援サービスに参加するためのインセンティブとなるという利点もある。
以上の処理を実行することによって、利用可能リスト内のあるサービスが、複数のアクティビティを提供する複合サービス、及び/又は、複数のスロットにわたる複合サービス(すなわち長大サービス)である場合に、その複合サービスをアクティビティごとに、及び/又は実効スロット・タイプごとに分割し、その結果、サービスの各々に対して、1つのアクティビティと1つ以上の実効スロット・タイプとが対応する拡大利用可能リスト(図14)が作成されることになる。
5.制約条件構成方法
(1)決定変数の作成
拡大利用可能リスト作成された後、リスト内のサービス(又は補助サービス)の選択可能な組み合わせを求める上での制約条件作成されることになる。制約条件構成手段が、制約条件作成に先立って、制約条件の作成に用いるための決定変数xi,jを作成する。決定変数xi,jは、拡大利用可能リストの各々の拡大サービスiについて、各々の拡大サービスiをスロットjに割り付けるか又は割り付けないかを定める変数である。なお、これ以降、拡大サービスiというときは、拡大サービス・コードiによって特定される拡大サービスを意味し、スロットjというときは、スロット・コードjによって特定されるスロットを意味する。あるサービスiを割り付けることができるスロットjに該サービスiを割り付ける可能性がある場合にはxi,j 作成され、可能性がない場合にはxi,j 作成されない。例えば、拡大サービス・コードが1であるサービスの実効スロット・タイプがC(午前)、E(午後)、又はG(夜間)の場合に、旅程表(図17(b)を参照されたい)において、スロット・タイプCに対応するスロット・コードが7及び15であり、スロット・タイプEに対応するスロット・コードが1及び9であり、スロット・タイプGに対応するスロット・コードが3及び11であるときには、決定変数x1,1、x1,3、x1,7、x1,9、x1,11、及びx1,15 作成されるすなわち、拡大利用可能リストの各々の拡大サービスiについて、各々の拡大サービスiを各々のスロットjに割り付けるかどうかを定めるということは、制約条件構成手段が、拡大利用可能リストに含まれる拡大サービスiについてのスロットの特性(スロットの特性はスロット・タイプによって特定される)と、旅行期間に含まれるスロットの各々の特性とを比較し、特性が一致するスロットjがあれば、その拡大サービスiとスロットjの対に対応するx i,j が作成されることを意味する。このように、各サービスとそのサービスが割り付けられる可能性のある実効スロットとの対にのみ決定変数を定義することによって、すべてのサービスと実効スロットとの任意の組み合わせに対して決定変数を定義する場合と比べて、計算処理の規模が著しく小さくなるという利点がある。なお、ここでは拡大利用可能リストに基づいて説明したが、作成された利用可能リスト(図10)に複合サービスが含まれない場合には、該利用可能リストを用いて、そのリスト内のサービス(この場合、このサービスは補助サービスではない)の各々について同様の方法で決定変数が作成されることになる。以下の処理においても同様である。
図15は、決定変数を作成するための処理である。処理は、制約条件構成手段が、拡大利用可能リスト及び旅程表を取得することで開始する(ステップ1501)。次いで、制約条件構成手段は、拡大利用可能リストから最初の拡大サービス・データ(すなわち、拡大サービス・コード及びそれに関連付けられたデータを読み込み(ステップ1502)、さらに旅程表から最初の旅程データ(すなわち、スロット・コード及びそれに関連付けられたデータ)を読み込む(ステップ1504)。次に、制約条件構成手段は、読み込んだ最初の拡大サービス・コードに関連付けられたデータの中の実効スロット・タイプと、旅程表から読み込んだ最初のスロット・コードに関連付けられたスロット・タイプとを比較し(ステップ1506)、両者が一致する場合には、その拡大サービス・コードとスロット・コードの対に対応する決定変数(例えば、拡大サービス・コードが1、スロット・コードが1の場合には、決定変数x 1,1 を作成する(ステップ1507)。両者が一致しない場合には、処理はステップ1504に戻り(すなわち、決定変数は作成せず)、制約条件構成手段は、旅程表から次の旅程データを読み込む。ステップ1504からステップ1507を繰り返し、すべての旅程データについて処理を終了(ステップ1505)した時点で、制約条件構成手段は、最初の拡大サービス・コードについて決定変数の有無を判断し(ステップ1508)、作成された決定変数がない場合には、その拡大サービスを割り付けることができるスロットが存在しないことになるため、その拡大サービスを拡大利用可能リストから除外する(ステップ1509)。次いで、ステップは1502に戻り、制約条件構成手段は、拡大利用可能リストから次の拡大サービス・コード及びそれに関連付けられたデータを読み込み、ステップ1504からステップ1509を繰り返す。拡大利用可能リスト内のすべての拡大サービス・コードについてステップ1502から1509の処理を繰り返した後、処理は終了する(ステップ1510)。
ここで、図16は、旅行条件データにおいて旅行者が指定したアクティビティの実施枠のデータを用いて、図15において作成した決定変数を絞り込むための処理のフロー・チャートである。この処理を行うのは、図15の処理で作成された決定変数に該当するサービスうち、旅行者が指定する実施枠に適合しないサービスについて作成された決定変数を削除することによって、計算処理の規模をさらに小さくするためである。処理は、制約条件構成手段が、利用可能リスト及び拡大利用可能リストを取得することで開始する(ステップ1601)。次いで、制約条件構成手段は、決定変数を取得する(ステップ1602)。制約条件構成手段は、拡大利用可能リストから最初のサービス・データ(拡大サービス・コード及びそれに関連付けられたデータ)を読み込み(ステップ1603)、さらに利用可能リストから最初のサービス・データを読み込む(ステップ1605)。ここで、制約条件構成手段は、その拡大サービス・コードで特定されるサービスに含まれるアクティビティについて、そのアクティビティを何日目のどの時間帯に実施するかを指定する実施枠のデータがあるかどうかを判定し(ステップ1606)、実施枠のデータがあれば、そのデータを用いて不要な決定変数をクリアする(ステップ1607)。次いで、処理はステップ1603に戻り、制約条件構成手段は、次の拡大サービス・データを読み込む。全ての拡大サービス・データについてステップ1603からステップ1607が繰り返されると、処理は終了する(ステップ1608)。
(2)制約条件の作成
図19〜図22は、拡大利用可能リストにリストアップされたサービスの選択可能な組み合わせを求める上での制約条件を作成するための処理である。ここでは、図3〜図16に示す処理において、図17(a)〜(d)に例示するアクティビティ表、旅程表、サービス−アクティビティ表、及び利用可能リストを用いた結果、図18に示す例示的な拡大利用可能リストが作成されたものとして、制約条件の作成について説明する。なお、図17(a)〜(d)及び図18に表示されるデータ項目は、これまで説明した各々の表のデータ項目のすべてではなく一部のみが表示されているが、これは、分かり易くするために、これ以降の処理において最低限必要となるデータのデータ項目のみを抽出して表示しているためである。
図19は、旅行者が旅行期間内に実施することを希望するアクティビティの実施回数及び優先度に関する制約条件1を作成するための処理である。この制約条件1は、旅行者が希望するあるアクティビティを提供するサービス集合の中の各拡大サービスiと、そのサービスを割り付けることが可能なすべてのスロットjに関して、決定変数xi,jの和を計算し、該アクティビティの優先度が必須の場合には、その和が旅行者によって指定された実施回数sと等しいことを表す以下の(1)式、
Figure 0004268973
として表現することができ、該アクティビティの優先度が二次の場合には、その和が旅行者によって指定された実施回数sと等しいか又はそれより小さいことを表す以下の(2)式、
Figure 0004268973
で表現することができる。例えば、拡大サービス・コードが1であるサービス(図18の例の場合には、アクティビティ「温泉」(図17(a)においてアクティビティ・コード11によって特定される)を含むサービス)について決定変数x1,1、x1,3、x1,7、x1,9、x1,11、及びx1,15が作成され、そのサービスの優先度が必須の場合には、(1)式を満たすように決定変数の組み合わせが計算される。その結果、そのサービスは、例えばスロット・コード9のスロット(図18の例の場合には、スロット・タイプE、すなわち「午後」)に割り付けられることになる(すなわち、x1,9=1、x1,1=x1,3=x1,7=x1,11=x1,15=0となるため、(1)式を満たしていることになる)。
図19の処理は、制約条件構成手段が、アクティビティ表と、拡大利用可能リストと、旅程表とを取得することで開始する(ステップ1901)。次いで、制約条件構成手段は、アクティビティ表から最初のアクティビティ・データ(アクティビティ・コード及びそれに関連付けられたデータ)を読み込み(ステップ1902)、さらに、拡大利用可能リストから最初の拡大サービス・データ(拡大サービス・コードi及びそれに関連付けられたデータ)を読み込む(ステップ1904)。制約条件構成手段が、ステップ1902で読み込んだアクティビティ・コードと、ステップ1904で読み込んだ拡大サービス・コードiに対応するアクティビティ・コードとが一致し、かつ、その拡大サービスが根サービス、補助根サービス、又は単純サービスであると判定した場合(ステップ1906及びステップ1907)には、制約条件構成手段は、旅程表の各々のスロット・コードjについて決定変数の有無をチェックし、決定変数が有れば、その決定変数xijをこのアクティビティ・コードの決定変数集合に追加(ステップ1908)して、次の拡大サービス・データiを読み込む(ステップ1904)。ステップ1902で読み込んだアクティビティ・コードと、ステップ1904で読み込んだ拡大サービスのアクティビティ・コードとが一致しない場合(ステップ1906)、又は、その拡大サービスが根サービス、補助根サービス、及び単純サービスのいずれでもない場合(ステップ1907)には、制約条件構成手段は、拡大利用可能リストから次の拡大サービス・データを読み込む(ステップ1904)。
拡大利用可能リストのすべての拡大サービス・データについて、ステップ1906〜1908の処理を終え(ステップ1905)、このアクティビティ・コードの決定変数集合に決定変数データが存在する(すなわち、集合が空ではない)場合には、制約条件構成手段は、その集合の決定変数xi,jの和を作成する(ステップ1910)。次いで、制約条件構成手段は、このアクティビティ・コードに対応するアクティビティについて旅行者が指定した優先度が「必須」か「二次」かを判断し(ステップ1912)、「必須」の場合には、
Figure 0004268973
となる制約条件式を作成する(ステップ1913)。ここで、図19に示される「一次式」は、決定変数の和を指す。ステップ1912において、このアクティビティ・コードに対応するアクティビティについて旅行者が指定した優先度が「二次」である場合には、制約条件構成手段は、
Figure 0004268973
となる制約条件式を作成する(ステップ1914)。
ステップ1909において、このアクティビティ・コードの決定変数集合に決定変数データが存在しない(すなわち、集合が空である)場合には、制約条件構成手段は、このアクティビティ・コードに対応するアクティビティ実施できないものとしてマーク付け(ステップ1911)、制約条件式を作成することなくステップは1902に戻り、アクティビティ表から次のアクティビティ・データを読み込む。ステップ1913又は1914において、制約条件構成手段は、このアクティビティ・コードに対応するアクティビティについて制約条件式を作成し終えた場合もまた、ステップは1902に戻り、次のアクティビティ・データを読み込む。アクティビティ表のすべてのアクティビティ・コードについてステップ1904〜1914を行った後、処理は終了する(ステップ1915)。
以上の処理を行うことによって、旅行者が希望するサービス(すなわちアクティビティ)ごとに、(1)式又は(2)式で表現される制約条件1が得られる。制約条件1は、図17及び図18の例においては、以下の(3)式となる。
(数5)
1,1+x1,3+x1,7+x1,9+x1,11+x1,15=1
2,4+x2,12=2
3,3+x3,11≦1
4,1+x4,7+x4,9+x4,15+x5,7=1 (3)
6,5+x6,13=1
7,7+x9,8+x10,9≦1
8,8≦1
以上のように、本発明においては、あるサービスに複数のアクティビティが含まれる場合には、該サービスを各々が単独のアクティビティを含む複数の補助サービスに分割する方法を採用しているが、根サービス、補助根サービス、及び単純サービスに対応する決定変数のみを含む制約式を作成することによって、こうした場合にもアクティビティの選択回数を間違いなくカウントすることが可能である。
図20は、サービス間の関係に関する制約条件2を作成するための処理である。例えば、前述の複合サービスのように、1つのサービスが複数のアクティビティを提供する場合には、拡大利用可能リスト作成手段は、この複合サービスを、各々が1つのアクティビティを含む複数の補助サービスに分割するが、このような複数の補助サービスは、最終的に旅行計画を作成するときに、すべての補助サービスが一括して選択されるか又は一括して選択されないようにしなければならない。すなわち、このような複数の補助サービスは相互に補完関係にあることになる。このことは、選択又は非選択を決める決定変数が、関連する補助サービスに関して等しいという条件、すなわち、互いに補完関係にある補助サービスi及びkが割り付け可能なスロットをそれぞれu及びvとすると、
(数6)
i,u=xk,v (4)
という式で表現することができる。
図20の処理は、制約条件構成手段が、補助サービス間の関係データ及び拡大利用可能リストを取得することで開始する(ステップ2001)。次いで、制約条件構成手段は、拡大利用可能リストから最初の拡大サービス・データ(拡大サービス・コードi及びそれに関連付けられたデータ)を読み込み(ステップ2002)、その拡大サービスが複合サービスの根サービス又は単純サービスであるかどうかを判断する(ステップ2004)。その拡大サービスが根サービス及び単純サービスではない場合には、ステップ2002に戻り、制約条件構成手段は次の拡大サービス・データを読み込む。その拡大サービスが根サービス又は単純サービスである場合には、制約条件構成手段は、その拡大サービスiの決定変数集合を取得する(ステップ2005)。この処理によって、すべてのスロットについて、拡大サービスiの決定変数xi,*を集める。ここで、x i,* は、拡大サービス・コードiを有するすべての決定変数、すなわち、例えばスロット・コードが1〜mの場合にはx i,1 〜x i,m を表す。制約条件構成手段は、こうして集めた決定変数の集合から決定変数xi,jを1つ読み込み(ステップ2006)、該拡大サービスiを根サービスとする補助サービスの関係データを読み込む(ステップ2008)。次いで、制約条件構成手段は、その拡大サービスiの補助サービスの拡大サービス・コードkを読み込み(ステップ2009)、すべてのスロットについて、該拡大サービスkの決定変数集合xk,*を取得する(ステップ2011)。次いで、xk,jがある場合には(ステップ2012)、制約条件構成手段は、i,j=xk,jとなる制約条件式を作成してkをiと読み替え(ステップ2013)、ステップ2009に戻って、次の補助サービスの拡大サービスを読み込む。
ステップ2012においてxk,jがない場合には、制約条件構成手段は、次のスロット・コードj+1についてxi,j=xk,j+1となる制約条件式を作成してkをiに、j+1をjに読み替え(ステップ2014)、ステップ2009に戻って、次の補助サービスの拡大サービスを読み込む。読み込むべき補助サービスがなくなった場合には(ステップ2010)、ステップ2006に戻り、制約条件構成手段は、別の決定変数xi+1,jを読み込んでステップ2008〜2014を繰り返す。読み込むべき決定変数がなくなった場合には(ステップ2007)、ステップ2002に戻って、制約条件構成手段は、次の拡大サービス・データを読み込み、ステップ2004〜2014を繰り返す。すべての拡大サービス・データについてステップ2002〜2014が行われた後、処理は終了する(ステップ2017)。
以上の処理を行うことによって、相互に補完関係にある補助サービス間の関係を表す、(4)式で表現される制約条件2が得られる。制約条件2は、図17及び図18の例においては、以下の(5)式となる。
(数7)
5,7=x8,8
7,7=x9,8 (5)
9,8=x10,9
旅行計画を作成する際のさらに別の制約条件として考慮すべき事項に、時間の制約がある。旅行者が多くのアクティビティを必須アクティビティとして選択し、そのすべてを旅行計画に割り当てた場合に、選択された複数のアクティビティの実施に必要な総時間数が、それらのアクティビティを実施できる時間の総和を越えるようなことがあると、作成された旅行計画が実行不可能なものになる。このような現象を回避するために、(1)各々のスロットjに割り付けられるサービス(すなわち、アクティビティ)iの必要時間tの総和が、各々のスロットjの時間幅に一定の許容時間幅を加えた時間幅Tを超えないことを表す制約条件、及び/又は、(2)(システム管理者によって)指定された各々のスロット・タイプの集合S´(S´については後述する)について、旅行期間内における各々の日に、そのスロット・タイプ集合S´に含まれるスロット・タイプに割り付けられるサービスiの必要時間tの総和が、そのスロット・コード集合Sに含まれるスロット・タイプの時間幅の総和である総時間長に一定の許容時間幅を加えた時間幅Tを超えないことを表す制約条件、を作成する(T及びTの許容時間幅は、システム管理者によって設定され、システム管理者用端末から入力される)。これらの条件は、それぞれ以下の(6)式及び(7)式で表現することができる。ここで、集合S´は、後述するように、(7)で表される時間制約を作成したいスロット・タイプの集合であり、どのようなスロット・タイプの集合について制約条件を作成するかについては、システム管理者があらかじめ指定し、システム管理者用端末から入力される。また、集合Sは、集合S´に含まれるスロット・タイプに対応するスロット・コードの集合である。(6)式及び(7)式のいずれか一方の制約条件を用いるか、又は両方の制約条件を用いるかについては、システム管理者があらかじめ設定する。
Figure 0004268973
Figure 0004268973
ここで、いずれの場合にも「許容時間幅」を加えているが、これは、アクティビティを実施する際の時間の余裕の程度を設定するものである。すなわち、このような許容時間幅を組み込んでおくことによって、あるスロットで実施されるアクティビティが長引いて、その後のスロットにずれ込むような場合でも、後ろのスロットのアクティビティ実施に大きな影響を与えないようにする効果がある。許容時間幅は、システム管理者によって設定され、システム管理者用端末112から入力される。
図21は、スロットごとの時間幅に関する制約条件3(すなわち、(6)式で表される制約条件)を作成するための処理を示し、図22は、旅行日ごとの指定されたスロット集合S´の総時間幅に関する制約条件3´(すなわち、(7)式で表される制約条件)を作成するための処理を示す。図21の処理は、制約条件構成手段が、スロット表、拡大利用可能リスト、及び旅程表を取得することで開始する(ステップ2101)。次いで、制約条件構成手段は、旅程表から最初のスロット・コードjを読み込み(ステップ2102)、このスロットjに対応する決定変数x*,jの集合を取得する(ステップ2104)。ここで、x *,j は、スロット・コードjを有するすべての決定変数、すなわち、例えば拡大サービス・コードが1〜nの場合にはx 1,j 〜x n,j を表す。次いで、制約条件構成手段は、その集合から決定変数xi,jを1つ読み込み(ステップ2105)、拡大サービス・コードiに対応するサービス(すなわちアクティビティ)の必要時間tを取得し、tとxi,jの積t・xi,jを作成し(ステップ2107)、ステップ2105に戻って次の決定変数xi+1,jを読み込む。ここで、図21に示される「一次式」は、決定変数と時間の積の和を指す。制約条件構成手段は、決定変数xi+1,jについても同様にti+1・xi+1,jを作成して、このti+1・xi+1,jをt・xi,jに加える。このように、制約条件構成手段は、ステップ2105〜2107を繰り返して、
Figure 0004268973
を作成し、スロットjについて読み込むべき決定変数がなくなったら(ステップ2106)、該スロットjの時間幅を算出する(ステップ2108)。この時間幅は、スロット表(図5)の開始時刻及び終了時刻から算出される。次いで、制約条件構成手段は、そのスロットjの許容時間幅を読み込み(ステップ2109)、上記(8)式≦(スロットjの時間幅)+(許容時間幅)=T となる制約条件式を作成する(ステップ2110)。次いで、ステップは2102に戻り、制約条件構成手段は、次のスロット・コードj+1を読み込み、ステップ2104〜2110を繰り返す。すべてのスロットjについてステップ2102〜2110が行われた後、処理は終了する(ステップ2111)。
以上の処理が行われることによって、スロットごとの時間幅に関する制約条件を表す、(6)式で表現される制約条件3が得られる。制約条件3は、図17及び図18の例においては、以下の(9)式となる。
(数11)
60x1,1+80x4,1≦210
60x1,3+90x3,3≦270
60x1,7+80x4,7+120x5,7+210x7,7≦210
60x1,9+80x4,9+60x10,9≦210
60x1,11+90x3,11≦270
60x1,15+80x4,15≦210 (9)
450x2,4≦480
450x2,12≦480
60x6,5≦180
60x6,13≦180
60x8,8+120x9,8≦150
図22の処理は、制約条件構成手段が、スロット集合表、決定変数集合、旅行期間表、及び旅程表を取得することで開始する(ステップ2201)。スロット集合表は、(7)式で表される時間制約を作りたいスロット・タイプの集合S´を記述したものであり、どのようなスロット・タイプの集合について制約条件を設定するかをシステム管理者があらかじめ決定し、記述するデータである。例えば、午前から午後までの時間帯について時間制約条件を作りたい場合には、スロット集合S´を{C,D,E}とし、午前と午後の時間帯について時間制約条件を作りたい場合には、スロット集合S´を{C,E}とし、1日について時間制約条件を作りたい場合には、スロット集合S´を{A,B,C,D,E,F,G,H}とする。次いで、制約条件構成手段は、ステップ2202において、スロット集合表から最初のスロット集合S´を読み取り、そのスロット集合S´に含まれる各スロット・タイプのスロット時間幅の総和に許容時間幅を加えた時間幅Tを算出する(ステップ2204)。次に、制約条件構成手段は、旅行期間表から最初の日付を読み込み(ステップ2205)、旅程表からその日付の旅程データ集合、すなわち、その日付に含まれるスロット・コード及びスロット・タイプの組を読み込む(ステップ2207)。ここで、制約条件構成手段は、スロット集合S´内のスロット・タイプが、その旅程データ集合のスロット・タイプに含まれるかどうかを判断し(ステップ2208)、含まれる場合には、その旅程データ集合から、スロット集合S´に含まれるスロット・タイプのスロット・コードjを読み込む(ステップ2209)。スロット集合S´内のスロット・タイプが、その旅程データ集合のスロット・タイプに含まれない場合には、ステップ2205に戻り、制約条件構成手段は、次の日付を読み込む。
ステップ2211においては、制約条件構成手段は、決定変数集合からx*,jの決定変数をすべて取り出し、そのうちの1つの決定変数xi,jを読み込む(ステップ2212)。次いで、制約条件構成手段は、拡大サービス・コードiに対応するサービス(すなわちアクティビティ)の必要時間tを取得して、tとxi,jの積t・xi,jを作成し(ステップ2214)、ステップ2212に戻って次の決定変数xu,jを読み込む。制約条件構成手段は、決定変数xu,jについても同様にt・xu,jを作成して、このt・xu,jをt・xi,jに加える。このように、ステップ2212〜2214を繰り返して上述の(8)式を作成する。スロットjについて読み込むべき決定変数がなくなったら、ステップ2209に戻り、制約条件構成手段は、次のスロット・コードを読み込み、ステップ2211〜2214の処理を繰り返す。制約条件構成手段は、読み込むべきスロット・コードがなくなるまでこれを繰り返して、
Figure 0004268973
を作成する。読み込むべきスロット・コードがなくなったら(ステップ2210)、制約条件構成手段は、上記(10)式≦Tとなる制約条件式を作成する(ステップ2215)。ここで、図22に示される「一次式」は、決定変数と時間の積の和を指す。次いで、ステップは2205に戻って、制約条件構成手段は、旅行期間表から次の日付を読み込み、ステップ2207〜2215を繰り返す。制約条件構成手段は、すべての日付についてステップ2205〜2215を行った後、次のスロット集合S´を読み取り、ステップ2204〜ステップ2215を繰り返し、すべてのスロット集合について(10)式を作成した後、処理は終了する(ステップ2216)。
以上の処理を行うことによって、旅行日ごとの指定されたスロット集合の総時間幅に関する条件を表す、(7)式で表現される制約条件3´が得られる。例えば、制約条件を作成するスロット集合として日ごとのスロットを指定したとすると、1日の総時間幅に対する制約条件3´は、図17及び図18の例においては、以下の(11)式となる。
(数13)
60x1,7+60x1,9+80x4,7+80x4,9+120x5,7
210x7,7+60x8,8+120x9,8+60x10,9≦480 (11)
この例においては、各スロットの許容時間は30分としている。例えば、(9)式の第1式は、スロット・コードj=1のスロット(すなわちスロット・タイプE)の時間幅に関する制約条件であり、スロット・タイプEの時間の長さは180分であるが、この式においては、そのスロットの時間幅に許容時間を30分加算し、上限を210分として設定している。このように設定することができるのは、本発明においては、サービスの必要時間そのものが曖昧性を含んでいることを前提としているからである。
なお、本発明の旅行計画作成方法において組み合わせることが可能な制約条件は、上述の制約条件に限定されるものではない。例えば、スロットごとの時間幅に関する制約条件を使用せずに、一日に選択されるサービスの総必要時間が最初のスロット開始から最後のスロット終了までの時間に収まればよいものとし、上記の(6)式で表される制約条件を使用しないことも考えられるであろう。
6.目的関数構成方法
次いで、目的関数構成手段が、混合整数計画問題を解くための演算プログラムを使用することによって自動的に作成される旅行計画の特性を表す項を含む目的関数を作成する。旅行計画の特性として、例えば、旅行期間内に実施されるサービスの価格の総額が旅行予算額の範囲内であること、又は、旅行期間内にできるだけ多くのアクティビティが含まれること、などが考えられるが、旅行計画の特性はこれらに限定されるものではない。例えば、旅行計画の特性として、旅行期間内に実施されるサービスの価格の総額が一定の範囲に含まれること、又は、旅行者が希望するアクティビティの実施スケジュールが、旅行期間内に均等に分散する(又は、できるだけ集中する)ようにすること、などが考えられる。これらの特性を表現した式は、制約条件構成手段によって作成され、旅行計画作成手段が制約条件として用いることができる。
本実施形態においては、目的関数構成手段が、予算に関する特性と、時間に関する特性と、アクティビティ数に関する特性とを表す項を組み込んだ以下の目的関数(評価式ともいう)、
(数14)
a(y+y)+bxcN (12)
を作成し、旅行計画作成手段が、制約条件構成手段によって作成される上述の制約条件の組の下で、目的関数構成手段によって作成されるこの目的関数を最小化するような最適解を求める場合を考える。この式において、各項の、y、x、及びNは、この目的関数を作成するために導入される新たな変数であり、これらの変数の意味は、後述の処理フロー・チャートの説明の中で明らかにする。なお、目的関数を作成するためにこうした種々の変数を導入することは、当該技術分野では周知である。各項のa、b、及びcは、作成される旅行計画の特性を表す重み係数(a、b、c>0)であり、これらの係数は、システム管理者が端末から入力して設定しておくか、又は、プログラムのデータとしてあらかじめ設定しておくことができる。作成される旅行計画は、重み係数a、b、及びcの大きさを変えることによってその特性を定めることが可能であり、予算に関する特性を表すa、時間に関する特性を表すb、及びアクティビティ数に関する特性を表すcの値、並びにそれらの組み合わせを適宜選択することによって、例えば、予算重視の旅行計画が作成され(a=b=1、c=0)、スケジュールに余裕のある旅行計画が作成され(a=1、b=1000000、c=0)、あるいは、多くのアクティビティが組み込まれる旅行計画が作成される(a=1、b=0、c=1000000)。
図23は、旅行計画の特性を表現する式と目的関数作成するための処理のフロー・チャートである。処理は、制約条件構成手段が、決定変数集合と、拡大利用可能リストと、旅程表とを取得することで開始する(ステップ2301)。次いで、制約条件構成手段は、拡大利用可能リストから最初の拡大サービス・データ(拡大サービス・コードi及びそれに関連付けられたデータ)を読み込み(ステップ2302)、その拡大サービスが、根サービス、補助根サービス、又は単純サービスであるかどうかを判断する(ステップ2304)。その拡大サービスが、根サービス、補助根サービス、及び単純サービスのいずれでもない場合には、ステップ2302に戻り、制約条件構成手段は、次の拡大サービス・データを読み込む。その拡大サービスが根サービス、補助根サービス、又は単純サービスである場合には、制約条件構成手段は、その拡大サービスiの決定変数集合を取得する(ステップ2305)。この処理によって、制約条件構成手段は、すべてのスロットについて、拡大サービスiの決定変数xi,*を集める。次いで、制約条件構成手段は、拡大サービスiの価格pを読み込む(ステップ2306)。次に、制約条件構成手段は、各々のxi,*を一次式に加える(ステップ2307)。一次式は、根サービス、補助根サービス、及び単純サービスに対応するすべての決定変数を加えたものであり、アクティビティの総選択数を与える。次いで、制約条件構成手段は、拡大サービスiが補助根サービスかどうかを判断し(ステップ2308)、補助根サービスであれば、ステップは2303に戻り、次の拡大サービス・データを読み込む。その拡大サービスiが補助根サービスではない場合には、制約条件構成手段は、i,*ごとにpとxi,*の積p・xi,*を作り、これをすべてのjについて繰り返して、拡大サービスiについて
Figure 0004268973
を作成する(ステップ2309)。次いで、ステップは2302に戻り、制約条件構成手段は、次の拡大サービス・データを読み込み、ステップ2304〜2309を繰り返す。
制約条件構成手段は、すべての拡大サービスについてステップ2302〜2309を行い、読み込むべき拡大サービス・コートがなくなったら(ステップ2303)、旅行者が入力した旅行条件データから1人あたり予算額Bを読み込み(ステップ2310)、以下の(13)式を作成する(ステップ2311)。なお、図23におけるステップ2311の「一次式」は、式(13)の左辺を指す。次いで、制約条件構成手段は、非負の変数y及びyを導入してこの(13)式を以下の制約式(14)に変形する(ステップ2312)。ここで、y及びyは、それぞれ価格の不足分及び超過分を表す変数であり、これらの値の和y+yを小さくすれば予算額Bに近い旅行計画が作成されることになる。
Figure 0004268973
Figure 0004268973
次に、制約条件構成手段は、別の変数Nを導入して、
(数18)
一次式−N=0 (15)
を作成する(ステップ2313)。ここでNは、アクティビティの数を表す変数であり、この値を大きくすれば多くのアクティビティが組み込まれた旅行計画が作成されることになる。次いで、制約条件構成手段は、非負の1以下の変数xを導入して、式(6)で表される制約条件3及び式(7)で表される制約条件3´のうち、システム管理者があらかじめ指定した式(6)及び/又は(7)を、それぞれ、
(数19)
(左辺)−Tx≦0 (16)
及び/又は、
(数20)
(左辺)−Tx≦0 (17)
となるように変形する(ステップ2314)。ここでxは、スケジュールの余裕を表す変数であり、xを小さくすればスケジュールに多くの余裕がある旅行計画が作成されることになる。
目的関数構成手段は、以上のように各制約式に導入される変数y、y、N、及びxを用いて、目的関数(12)式を作成する(ステップ2315)。当業者には周知のように、これらの変数の値は、旅行計画作成コンピュータ・システムが目的関数を最適化する解を求める計算を行う中で自動的に設定していくことになる。上述のように、a、b、及びcは、作成される旅行計画の特性を表す重み係数であり、作成される旅行計画は、重み係数a、b、及びcの大きさを変えることによってその特性を定めることが可能である。なお、以上の制約式、導入変数、及び目的関数式は例示的なものであり、最終的に作成される旅行計画に付与したい特性を適切に表現することができるような他の制約式、導入変数、及び目的関数をシステム管理者が自由に設定することができる。
7.旅行計画作成・提供方法
上述の処理によって作成された制約条件の組と目的関数とを用いて、旅行計画作成手段が、該制約条件の組の下で該目的関数を最適化又は近似最適化する決定変数xi,jの組み合わせを求める。すなわち、旅行計画作成手段が、例えば制約条件1(例えば、(3)式に例示した制約条件)、制約条件2(例えば、(5)式に例示した制約条件)、制約条件3及び3´(例えば、(9)式及び(11)式に例示した制約条件)、予算に関する制約条件(例えば、(14式)に例示した制約条件)、及び/又は、アクティビティ数に関する制約条件(例えば、(15式)に例示した制約条件)の下で、目的関数(例えば、(12)式に例示した目的関数)を最小化する解(すなわち、決定変数の組み合わせ)を決定するという混合整数計画問題を解くことになる。混合整数計画法は、様々な制約条件の下で対象とする問題の最適な解決策を求める手法である数理計画法の一種であり、目的関数も制約条件も1次式で表される問題を解く手法である線形計画法、又は、線形計画問題に「変数は整数値しかとらない」という制約(整数制約)を加えた問題を解く手法である整数計画法に対して、変数の幾つかが整数で、残りの変数が実数であるという制約を加えた問題を解く手法である。こうした問題を解くのに用いることができる市販の数理計画プログラム・パッケージは多数存在しており、これらのプログラム・パッケージを使用して、本実施形態に係る問題を解くことができる。このような市販プログラム・パッケージの例として、「CPLEX」(日本のアイログ株式会社の製品)、「LINDO」(アメリカ合衆国、イリノイ州シカゴ所在のLINDO Systems社の製品)、又は、「MOSEK」(デンマーク、コペンハーゲン所在のMOSEK ApS社の製品)が挙げられる。あるいは、これらの市販のプログラム・パッケージに代えて、こういった市販パッケージと同等の機能を有するコンピュータ・プログラムを作成し、それを用いて上述の問題を解くようにしても良い。
決定変数xi,jの組み合わせが求まると、選択されたサービス(又は補助サービス)iと、そのサービスが実施されることになる実効スロットjとを決定することができる。選択されたサービスに補助サービスが含まれる場合には、旅行計画作成手段は、図12のステップにおいて作成される補助サービス間の関係データに基づいて補完関係にある複数の補助サービスのデータを結合することによって、元のサービスのデータを復元する。旅行計画作成手段は、このようにして得られたサービスの各々とスロットの各々との組み合わせに基づいて、スロット・コードとサービス・コードとを関連付けたデータを作成し、このデータと、スロット表と、サービス−アクティビティ表とを用いて、少なくとも、旅行期間内のスロットの各々(すなわち、一日を複数の時間帯に分割したときの、各々の時間帯)の開始時刻及び終了時刻と、旅行者が実施することを希望するもののうちそのスロット(すなわち時間帯)に実施可能なアクティビティとを関連付けたデータである、最適化又は近似最適化旅行計画を作成する。作成された最適化又は近似最適化旅行計画は、旅行計画提供手段によって、あらかじめデータベースに格納されている旅行業者データ、例えば旅行業者の所在地及び電話番号などのデータと共に、旅行者が使用する端末に送信される。
なお、本実施形態においては、1つのサービスを終了する場所から次のサービスを受ける場所までの移動時間を明示的には考慮していない。これは、前述のように、旅行計画は時間的に多くの余裕を含んだスケジュールであり、さらにこの余裕自体が柔軟性に富んだものであるため、1つの旅行地域内であれば移動時間はこの柔軟性の範囲内に収まると考えられるからである。しかしながら、前述のように、データベースにサービス間の標準的な移動時間データを格納しておき、旅行計画作成の段階でサービスの前又は後に該移動時間データを加算しながらサービスをスロットに割り付けるようにすることもできる。
8.旅行計画修正方法
旅行計画作成手段が、最適化又は近似最適化した旅行計画を旅行者が使用する端末に送信した後、旅行者が、端末に表示された旅行計画を確認し、その旅行計画の一部を変更又は修正する必要があると考えた場合には、旅行者は、端末からその旅行計画を修正又は変更できるようにすることができる。修正又は変更が、サービス(又は、そのサービスが含むアクティビティ)を提供する旅行業者を変更するものである場合には、旅行計画作成サーバは、旅行計画の変更又は修正の要求を受け取ると、現在の旅行計画の該サービスを実施するスロットにおいて同種のアクティビティを含むサービスを提供することが可能な別の旅行業者の情報をデータベースから検索し、検索結果に基づいて、変更又は修正用のサービス候補リストを作成する。作成された変更又は修正用のサービス候補リストは旅行者が使用する端末に送信され、旅行者は、そのリストに基づいて現在の旅行計画を修正又は変更する。旅行者によって行われた変更又は修正に関するデータは旅行計画作成サーバに送信され、旅行計画作成サーバは、現在の旅行計画において変更又は修正されるサービスを新たなサービスに置換することによって新たな旅行計画を作成し、端末に送信する。
一方、修正又は変更が、サービス(又は、そのサービスが含むアクティビティ)を提供する旅行業者を変更するもの以外である場合、例えば旅行開始日時又は人数などの、旅行計画に対して指定する旅行条件データを変更するものである場合には、旅行計画作成サーバは、旅行者によって入力された、旅行条件データの該当項目の指定を修正又は変更するデータを受け取り、再び利用可能リスト作成ステップ以降の一連の処理を実行して、新たな旅行計画を作成する。こうして作成された新たな旅行計画は、旅行者が使用する端末に送信される。以上の処理は、旅行者が満足する旅行計画が作成されるまで繰り返される。旅行者が、作成された旅行計画に満足した場合には、その旨が旅行計画作成サーバに通知され、旅行計画作成サーバは、最終的な旅行計画と、該旅行計画に予約を必要とするサービスが含まれる場合には各々のサービスを予約するのに必要な情報とを、端末に送信する。なお、旅行者から入力された旅行条件では旅行計画が作成できない場合には、旅行計画作成サーバは、旅行条件を指定し直すよう促すメッセージを端末に送信する。
上述の実施形態においては、最適化又は近似最適化した旅行計画と共に送られる予約関連データを用いて、旅行者自らが各々のサービスの予約を行うようになっているが、旅行計画作成サーバに予約手段及び決済手段を追加し、該予約手段及び該決済手段をによって各々のサービスの予約を行うようにすることもできる。この場合、旅行者はユーザ端末から、例えば、氏名、住所、電話番号、及びクレジットカード番号などの予約及び決済に必要な情報を入力し、各々のサービスを提供する旅行業者の予約及び決済管理サーバと接続された予約手段及び決済手段は、これらの情報を用いて、各々のサービスの予約及び決済を行う。これらの予約手段及び決済手段については、従来技術を利用することが可能であり、ここでは詳細に説明しない。
本実施形態においては、上述のフロー・チャートの各々に示した処理をコンピュータに実行させることが可能なプログラム・コードを含むコンピュータ・プログラムを旅行計画作成サーバに格納して旅行計画作成装置を構成する例を示したが、該コンピュータ・プログラムを、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な記録媒体に格納して提供することもできる。また、このプログラムを、インターネット又は無線通信などの通信網を介して伝送される伝送媒体に埋め込んで提供することもできる。
本発明は、上記の実施形態に限定されるものではなく、特許請求の範囲内に記載された発明の範囲を逸脱することなく様々な変更又は修正が可能であり、これらの変更又は修正も本発明の範囲に含まれる。
本発明の1つの実施形態に係る旅行計画作成コンピュータ・システムの基本構成を示すブロック図である。 本発明の1つの実施形態に従って、旅行計画作成コンピュータ・システムによって旅行計画を作成する方法である。 旅行期間表を作成するための処理のフロー・チャートである。 旅程表を作成するための処理のフロー・チャートである。 データベースに格納されているスロット表である。 アクティビティ表を作成するための処理のフロー・チャートである。 データベースに格納されているアクティビティ−スロット表である。 利用可能リストを作成するための処理のフロー・チャートである。 データベースに格納されているサービス−アクティビティ表である。 作成される利用可能リストである。 サービス−スロット表を作成するための処理のフロー・チャートである。 拡大利用可能リストを作成し、元のサービスと補助サービスとの関係及び補助サービス間の関係データを作成するための処理のフロー・チャートである。 拡大利用可能リストを作成し、元のサービスと補助サービスとの関係及び補助サービス間の関係データを作成するための処理のフロー・チャートである。 作成される拡大利用可能リストである。 決定変数を作成するための処理のフロー・チャートである。 図15において作成した決定変数を絞り込むための処理のフロー・チャートである。 アクティビティ表、旅程表、サービス−アクティビティ表、及び利用可能リストの一例である。 拡大利用可能リストの一例である。 アクティビティの実施回数及び優先度に関する制約条件を作成するための処理のフロー・チャートである。 サービス間の関係に関する制約条件を作成するための処理のフロー・チャートである。 スロットごとの時間幅に関する制約条件を作成するための処理のフロー・チャートである。 旅行日ごとの指定されたスロット集合の総時間幅に関する制約条件を作成するための処理のフロー・チャートである。 目的関数を作成するための処理のフロー・チャートである。

Claims (14)

  1. 旅行者によって入力された旅行条件データと、旅行業者及びシステム管理者によって入力されデータベースに格納された旅行情報データとを用いて、旅行計画を作成し、作成された前記旅行計画を前記旅行者に提示するための旅行計画作成コンピュータ・システムにおいて、前記旅行計画作成コンピュータ・システムの旅行計画作成サーバが旅行計画を作成する方法であって、
    前記旅行計画作成サーバが、前記旅行条件データ内の旅行期間の各日について前記データベースから受信した前記旅行情報データに含まれるスロット属性データに基づいて、各日の時間と、予め定められた開始時刻及び終了時刻によって決まる同一の時間幅及び/又は異なる時間幅を有する複数のスロットとを関連付けるステップと、
    前記旅行計画作成サーバが、前記旅行期間内に前記旅行者が利用可能な1つ又は複数のサービスに関する情報を含むデータである利用可能リストを作成する、利用可能リスト作成ステップであって、前記1つ又は複数のサービスに関する情報は、前記複数のスロットの各々に付与された特性と適合するように予め関連付けが定義された1つ又は複数のアクティビティに関する情報を含み、前記利用可能リストは、アクティビティについて指定された前記旅行条件データに含まれる条件に基づいて、前記旅行情報データから取得されたデータを用いて作成される、利用可能リスト作成ステップと、
    前記旅行計画作成サーバが、前記リストにおける前記1つ又は複数のサービスの各々を前記複数のスロットの各々に割り付けるかどうかを定義する決定変数を含む式で表現される複数の制約条件のうちの1つ又は複数を含む制約条件の組を作成する、制約条件構成ステップであって、前記複数の制約条件は、前記利用可能リストにおける前記1つ又は複数のサービスの各々を前記複数のスロットの各々に割り付けるときの優先度に応じた、前記決定変数の和と前記旅行条件データに含まれるアクティビティの実施回数との関係に関する制約条件、及び、前記複数のスロットの1つ又は複数に割り付けられるサービスの実施に必要な時間の長さと前記決定変数との積の和と、前記複数のスロットの1つ又は複数の時間幅の長さとの関係によって表される、時間に関する制約条件を含む、制約条件構成ステップと、
    前記旅行計画作成サーバが、作成される旅行計画のアクティビティの実施回数に関する特性を表す所定の変数を含む項と時間に関する特性を表す所定の変数を含む項とを含む目的関数を作成する、目的関数構成ステップと、
    前記旅行計画作成サーバが、前記制約条件の組と前記目的関数とを混合整数計画問題を解くための演算プログラムに入力し前記演算プログラムから出力された、前記制約条件の組の下で前記目的関数を最適化又は近似最適化するための決定変数の組み合わせに基づいて、前記利用可能リストにおける前記1つ又は複数のサービスのうち前記出力された決定変数に対応するサービスの各々と前記出力された決定変数に対応する前記複数のスロットの各々とを関連付けたデータを作成し、該データと前記旅行情報データとを用いて、少なくとも前記複数のスロットの各々とアクティビティとを関連付けたデータである旅行計画を作成する、旅行計画作成ステップと、
    を含むことを特徴とする方法。
  2. 前記利用可能リスト作成ステップは、
    前記旅行計画作成サーバが、前記利用可能リストに基づいて、前記利用可能リストにおける前記1つ又は複数のサービスの各々が複数のアクティビティを含む複合サービスであるかどうかを判定し、複合サービスであると判定した場合には、前記複合サービスに関するデータから、各々が1つのアクティビティを含む複数の新たなサービスに関するデータを作成する、複合サービス分割ステップ、及び/又は、前記旅行計画作成サーバが、前記利用可能リストに含まれるデータに基づいて、前記利用可能リストにおける前記1つ又は複数のサービスの各々が、該サービスに含まれるアクティビティの実施に必要な時間幅が少なくとも1つのスロットの時間幅を越える長大サービスであるかどうかを判定し、長大サービスであると判定した場合には、前記長大サービスに関するデータから、各々の実施に必要な時間幅が1つのスロットの時間幅以下である複数の新たなサービスに関するデータを作成する、長大サービス分割ステップと、
    前記旅行計画作成サーバが、前記複合サービスと前記長大サービスと前記複数の新たなサービスとの関係を表す関係データを作成する、関係データ作成ステップと、
    前記旅行計画作成サーバが、前記利用可能リストにおいて、前記複合サービスに関するデータ及び/又は前記長大サービスに関するデータを前記複数の新たなサービスに関するデータに置換することによって新たなリストを作成する、新リスト作成ステップと、
    をさらに含み、
    前記制約条件構成ステップは、前記旅行計画作成サーバが、前記複数の新たなサービス相互間の関係に関する、前記決定変数を含む式で表現される制約条件を作成するステップをさらに含むことを特徴とする、請求項1に記載の方法。
  3. 前記複合サービス分割ステップ
    前記旅行計画作成サーバが、前記旅行情報データに基づいて、前記複合サービスのサービス・タイプがsタイプであると判定した場合には、
    記旅行計画作成サーバが、前記複合サービスに含まれるアクティビティの各々の開始時刻と終了時刻とから、前記新たなサービスの各々の実施に必要な時間幅を算出するステップをさらに含み、
    前記旅行計画作成サーバが、前記旅行情報データに基づいて、前記複合サービスのサービス・タイプがa1タイプであると判定した場合には、
    前記旅行計画作成サーバが、前記旅行者が前記複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、前記旅行条件データに含まれていると判定したときは、前記指定時間と、前記アクティビティの各々を提供する前記旅行業者の営業時間とを比較して、時間の短い方を前記新たなサービスの各々の実施に必要な時間幅として設定し、
    前記旅行計画作成サーバが、前記旅行者が前記複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、前記旅行条件データに含まれていないと判定したときは、前記新たなサービスの各々に含まれるアクティビティの実施に適した時間幅を前記新たなサービスの各々の実施に必要な時間幅として設定する、
    ステップをさらに含み、
    前記旅行計画作成サーバが、前記旅行情報データに基づいて、前記複合サービスのサービス・タイプがa2タイプであると判定した場合には、
    前記旅行計画作成サーバが、前記新たなサービスの各々に含まれるアクティビティの実施に必要な時間幅を前記新たなサービスの各々の実施に必要な時間幅として設定するステップをさらに含
    前記サービス・タイプに関するデータは、前記旅行情報データに含まれており、前記sタイプのサービスは、前記旅行業者によって前記1つ又は複数のサービスの各々に含まれるアクティビティの日付、開始時刻及び終了時刻が予め定められたサービスであり、前記a1タイプのサービスは、前記旅行業者によってアクティビティの開始時刻及び終了時刻は定められていないがアクティビティの実施に適した時間幅が定められ、かつ、前記旅行業者の営業時間内に利用可能なサービスであり、前記a2タイプのサービスは、前記旅行業者によってアクティビティの開始時刻及び終了時刻は定められてないがアクティビティの実施に必要な時間幅が定められ、かつ、前記旅行業者の営業時間内に利用可能なサービスであることを特徴とする、請求項に記載の方法。
  4. 前記長大サービス分割ステップ
    前記旅行計画作成サーバが、前記旅行情報データに基づいて、前記長大サービスのサービス・タイプがsタイプであると判定した場合には、
    前記旅行計画作成サーバが、前記長大サービスに含まれるアクティビティの開始時刻を含む最初のスロット、前記アクティビティの終了時刻を含む最後のスロット、及び、前記最初のスロットと前記最後のスロットとの間に前記最初のスロット及び前記最後のスロットとは別の1つ又は複数のスロットが存在するときには前記別の1つ又は複数のスロットを特定するステップと、
    前記旅行計画作成サーバが、前記長大サービスに関するデータから、前記最初のスロットに対応する最初の新たなサービスに関するデータ、前記最後のスロットに対応する最後の新たなサービスに関するデータ、及び、前記別の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータ、を作成するステップと、
    前記旅行計画作成サーバが、前記アクティビティの前記開始時刻から前記最初のスロットの前記終了時刻までの時間幅を、前記最初の新たなサービスの実施に必要な時間幅として設定するステップと、
    前記旅行計画作成サーバが、前記最後のスロットの前記開始時刻から前記アクティビティの前記終了時刻までの時間幅を、前記最後の新たなサービスの実施に必要な時間幅として設定するステップと、
    前記旅行計画作成サーバが、前記別の1つ又は複数のスロットの時間幅を、前記1つ又は複数の新たなサービスの実施に必要な時間幅として設定するステップと、
    をさらに含むことを特徴とする、請求項又は請求項に記載の方法。
  5. 前記長大サービス分割ステップ
    前記旅行計画作成サーバが、前記旅行情報データに基づいて、前記長大サービスのサービス・タイプがa1タイプ又はa2タイプであると判定した場合には、
    前記旅行計画作成サーバが、スロットの開始時刻又は終了時刻のいずれか一方が前記長大サービスを提供する前記旅行業者の営業開始時刻と営業終了時刻との間にあり、前記長大サービスに含まれるアクティビティの実施に適したスロット群と一致する1つ又は複数のスロットを特定するステップと、
    前記旅行計画作成サーバが、前記特定した1つ又は複数のスロットのうちの最初のスロットが、前記営業開始時刻を含むスロットであると判定したときは、前記営業開始時刻から前記最初のスロットの終了時刻までに対応する最初の新たなサービスに関するデータを作成し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、前記営業開始時刻から前記最初のスロットの前記終了時刻までの時間幅を前記最初の新たなサービスの実施に必要な時間幅として設定し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記1つ又は複数のスロットの時間幅を前記1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、前記長大サービスの実施に必要な時間幅から、前記最初の新たなサービスから前記最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、
    前記旅行計画作成サーバが、前記特定した1つ又は複数のスロットのうちの最初のスロットが、前記営業開始時刻を含むスロットより後のスロットであると判定したときは、前記最初のスロットに対応する最初の新たなサービスに関するデータを作成し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、前記最初のスロットの時間幅を前記最初の新たなサービスの実施に必要な時間幅として設定し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記1つ又は複数のスロットの時間幅を前記1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、前記長大サービスの実施に必要な時間幅から前記最初の新たなサービスから前記最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、
    をさらに含むことを特徴とする、請求項又は請求項に記載の方法。
  6. 前記利用可能リストは、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、前記利用可能リスト作成ステップの後に前記旅行計画作成サーバが、前記利用可能リストに含まれる複数のデータ単位の前記利用可能リスト内での並び順を変更するステップをさらに含むことを特徴とする、請求項1に記載の方法。
  7. 前記新たなリストは、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、前記新リスト作成ステップの後に前記旅行計画作成サーバが、前記新たなリストに含まれる複数のデータ単位の前記新たなリスト内での並び順を変更するステップをさらに含むことを特徴とする、請求項2に記載の方法。
  8. 旅行者によって入力された旅行条件データと旅行業者及びシステム管理者によって入力されデータベースに格納された旅行情報データとを用いて旅行計画を作成する処理コンピュータに実行させるプログラム・コードを含むコンピュータ・プログラムであって、
    前記処理が、
    前記旅行条件データ内の旅行期間の各日について前記データベースから受信した前記旅行情報データに含まれるスロット属性データに基づいて、各日の時間と予め定められた開始時刻及び終了時刻によって決まる同一の時間幅及び/又は異なる時間幅を有する複数のスロットとを関連付ける処理と、
    前記旅行期間内に前記旅行者が利用可能な1つ又は複数のサービスに関する情報を含むデータである利用可能リストを作成する、利用可能リスト作成処理であって、前記1つ又は複数のサービスに関する情報は、前記複数のスロットの各々に付与された特性と適合するように予め関連付けが定義された1つ又は複数のアクティビティに関する情報を含み、前記利用可能リストは、アクティビティについて指定された前記旅行条件データに含まれる条件に基づいて、前記旅行情報データから取得されたデータを用いて作成される、利用可能リスト作成処理と、
    前記リストにおける前記1つ又は複数のサービスの各々を前記複数のスロットの各々に割り付けるかどうかを定義する決定変数を含む式で表現される複数の制約条件のうちの1つ又は複数を含む制約条件の組を作成する、制約条件構成処理であって、前記複数の制約条件は、前記利用可能リストにおける前記1つ又は複数のサービスの各々を前記複数のスロットの各々に割り付けるときの優先度に応じた、前記決定変数の和と前記旅行条件データに含まれるアクティビティの実施回数との関係に関する制約条件、及び、前記複数のスロットの1つ又は複数に割り付けられるサービスの実施に必要な時間の長さと前記決定変数との積の和と、前記複数のスロットの1つ又は複数の時間幅の長さとの関係によって表される、時間に関する制約条件を含む、制約条件構成処理と、
    作成される旅行計画のアクティビティの実施回数に関する特性を表す所定の変数を含む項と時間に関する特性を表す所定の変数を含む項とを含む目的関数を作成する、目的関数構成処理と、
    前記制約条件の組と前記目的関数とを混合整数計画問題を解くための演算プログラムに入力し前記演算プログラムから出力された、前記制約条件の組の下で前記目的関数を最適化又は近似最適化するための決定変数の組み合わせに基づいて、前記利用可能リストにおける前記1つ又は複数のサービスのうち前記出力された決定変数に対応するサービスの各々と前記出力された決定変数に対応する前記複数のスロットの各々とを関連付けたデータを作成し、該データと前記旅行情報データとを用いて、少なくとも前記複数のスロットの各々とアクティビティとを関連付けたデータである旅行計画を作成する、旅行計画作成処理と、
    を含むことを特徴とするコンピュータ・プログラム。
  9. 前記利用可能リスト作成処理は、
    前記利用可能リストに基づいて、前記利用可能リストにおける前記1つ又は複数のサービスの各々が複数のアクティビティを含む複合サービスであるかどうかを判定し、複合サービスであると判定した場合には、前記複合サービスに関するデータから、各々が1つのアクティビティを含む複数の新たなサービスに関するデータを作成する、複合サービス分割処理、及び/又は、前記利用可能リストに含まれるデータに基づいて、前記利用可能リストにおける前記1つ又は複数のサービスの各々が、該サービスに含まれるアクティビティの実施に必要な時間幅が少なくとも1つのスロットの時間幅を越える長大サービスであるかどうかを判定し、長大サービスであると判定した場合には、前記長大サービスに関するデータから、各々の実施に必要な時間幅が1つのスロットの時間幅以下である複数の新たなサービスに関するデータを作成する、長大サービス分割処理と、
    前記複合サービスと前記長大サービスと前記複数の新たなサービスとの関係を表す関係データを作成する、関係データ作成処理と、
    前記利用可能リストにおいて、前記複合サービスに関するデータ及び/又は前記長大サービスに関するデータを前記複数の新たなサービスに関するデータに置換することによって新たなリストを作成する、新リスト作成処理と、
    をさらに含み、
    前記制約条件構成処理は、前記複数の新たなサービス相互間の関係に関する、前記決定変数を含む式で表現される制約条件を作成する処理をさらに含むことを特徴とする、請求項に記載のコンピュータ・プログラム。
  10. 前記複合サービス分割処理は
    前記旅行情報データに基づいて、前記複合サービスのサービス・タイプがsタイプであると判定した場合には、
    前記複合サービスに含まれるアクティビティの各々の開始時刻と終了時刻とから、前記新たなサービスの各々の実施に必要な時間幅を算出する処理をさらに含み、
    前記旅行情報データに基づいて、前記複合サービスのサービス・タイプがa1タイプであると判定した場合には、
    前記旅行者が前記複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、前記旅行条件データに含まれていると判定したときは、前記指定時間と、前記アクティビティの各々を提供する前記旅行業者の営業時間とを比較して、時間の短い方を前記新たなサービスの各々の実施に必要な時間幅として設定し、
    前記旅行者が前記複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、前記旅行条件データに含まれていないと判定したときは、前記新たなサービスの各々に含まれるアクティビティの実施に適した時間幅を前記新たなサービスの各々の実施に必要な時間幅として設定する、
    処理をさらに含み、
    前記旅行情報データに基づいて、前記複合サービスのサービス・タイプがa2タイプであると判定した場合には、
    前記新たなサービスの各々に含まれるアクティビティの実施に必要な時間幅を前記新たなサービスの各々の実施に必要な時間幅として設定する処理をさらに含
    前記サービス・タイプに関するデータは、前記旅行情報データに含まれており、前記sタイプのサービスは、前記旅行業者によって前記1つ又は複数のサービスの各々に含まれるアクティビティの日付、開始時刻及び終了時刻が予め定められたサービスであり、前記a1タイプのサービスは、前記旅行業者によってアクティビティの開始時刻及び終了時刻は定められていないがアクティビティの実施に適した時間幅が定められ、かつ、前記旅行業者の営業時間内に利用可能なサービスであり、前記a2タイプのサービスは、前記旅行業者によってアクティビティの開始時刻及び終了時刻は定められてないがアクティビティの実施に必要な時間幅が定められ、かつ、前記旅行業者の営業時間内に利用可能なサービスであることを特徴とする、請求項に記載のコンピュータ・プログラム。
  11. 前記長大サービス分割処理は
    前記旅行情報データに基づいて、前記長大サービスのサービス・タイプがsタイプであると判定した場合には、
    前記長大サービスに含まれるアクティビティの開始時刻を含む最初のスロット、前記アクティビティの終了時刻を含む最後のスロット、及び、前記最初のスロットと前記最後のスロットとの間に前記最初のスロット及び前記最後のスロットとは別の1つ又は複数のスロットが存在するときには前記別の1つ又は複数のスロットを特定する処理と、
    前記長大サービスに関するデータから、前記最初のスロットに対応する最初の新たなサービスに関するデータ、前記最後のスロットに対応する最後の新たなサービスに関するデータ、及び、前記別の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータ、を作成する処理と、
    前記アクティビティの前記開始時刻から前記最初のスロットの前記終了時刻までの時間幅を、前記最初の新たなサービスの実施に必要な時間幅として設定する処理と、
    前記最後のスロットの前記開始時刻から前記アクティビティの前記終了時刻までの時間幅を、前記最後の新たなサービスの実施に必要な時間幅として設定する処理と、
    前記別の1つ又は複数のスロットの時間幅を、前記1つ又は複数の新たなサービスの実施に必要な時間幅として設定する処理と、
    をさらに含むことを特徴とする、請求項又は請求項10に記載のコンピュータ・プログラム。
  12. 前記長大サービス分割処理は
    前記旅行情報データに基づいて、前記長大サービスのサービス・タイプがa1タイプ又はa2タイプであると判定した場合には、
    スロットの開始時刻又は終了時刻のいずれか一方が前記長大サービスを提供する前記旅行業者の営業開始時刻と営業終了時刻との間にあり、前記長大サービスに含まれるアクティビティの実施に適したスロット群と一致する1つ又は複数のスロットを特定する処理と、
    前記特定した1つ又は複数のスロットのうちの最初のスロットが、前記営業開始時刻を含むスロットであると判定したときは、前記営業開始時刻から前記最初のスロットの終了時刻までに対応する最初の新たなサービスに関するデータを作成し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、前記営業開始時刻から前記最初のスロットの前記終了時刻までの時間幅を前記最初の新たなサービスの実施に必要な時間幅として設定し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記1つ又は複数のスロットの時間幅を前記1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、前記長大サービスの実施に必要な時間幅から、前記最初の新たなサービスから前記最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定する処理と、
    前記特定した1つ又は複数のスロットのうちの最初のスロットが、前記営業開始時刻を含むスロットより後のスロットであると判定したときは、前記最初のスロットに対応する最初の新たなサービスに関するデータを作成し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに関するデータを順次作成し、次いで、前記最初のスロットの時間幅を前記最初の新たなサービスの実施に必要な時間幅として設定し、前記最初のスロットの次のスロットが前記営業終了時刻を含むスロットでないときには前記1つ又は複数のスロットの時間幅を前記1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、前記長大サービスの実施に必要な時間幅から前記最初の新たなサービスから前記最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定する処理と、
    をさらに含むことを特徴とする、請求項又は請求項10に記載のコンピュータ・プログラム。
  13. 前記利用可能リストは、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、前記利用可能リスト作成処理の後に、前記利用可能リストに含まれる複数のデータ単位の前記利用可能リスト内での並び順を変更する処理をさらに含むことを特徴とする、請求項に記載のコンピュータ・プログラム。
  14. 前記新たなリストは、サービスに関する情報がサービス毎に1つのデータ単位として構成されており、前記新リスト作成処理の後に、前記新たなリストに含まれる複数のデータ単位の前記新たなリスト内での並び順を変更する処理をさらに含むことを特徴とする、請求項に記載のコンピュータ・プログラム。
JP2006122654A 2006-03-29 2006-03-29 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム Expired - Fee Related JP4268973B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006122654A JP4268973B2 (ja) 2006-03-29 2006-03-29 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006122654A JP4268973B2 (ja) 2006-03-29 2006-03-29 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2007265376A JP2007265376A (ja) 2007-10-11
JP4268973B2 true JP4268973B2 (ja) 2009-05-27

Family

ID=38638256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006122654A Expired - Fee Related JP4268973B2 (ja) 2006-03-29 2006-03-29 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP4268973B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665470A (zh) * 2016-07-29 2018-02-06 富士通株式会社 行程编辑处理设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211538A (ja) * 2008-03-05 2009-09-17 Oki Electric Ind Co Ltd 旅行プラン作成装置、旅行プラン作成方法、旅行プラン作成システム、旅行プラン要求端末及びプログラム
JP2009245111A (ja) * 2008-03-31 2009-10-22 Oki Electric Ind Co Ltd 旅行プラン作成装置、旅行プラン作成システム、旅行プラン要求端末及びプログラム
JP6051034B2 (ja) * 2012-12-17 2016-12-21 株式会社Nttドコモ 訪問先提案装置及び訪問先提案方法
JP6636241B2 (ja) * 2014-10-28 2020-01-29 松之進 山口 情報処理装置、情報処理方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665470A (zh) * 2016-07-29 2018-02-06 富士通株式会社 行程编辑处理设备

Also Published As

Publication number Publication date
JP2007265376A (ja) 2007-10-11

Similar Documents

Publication Publication Date Title
US8032402B2 (en) Itinerary search tool for territory management
Bennett et al. Dynamic periodic fixed appointment scheduling for home health
Marques et al. A bicriteria heuristic for an elective surgery scheduling problem
Shao et al. The therapist routing and scheduling problem
US20100169131A1 (en) System and Method For Providing Customized Travel Guides and Itineraries Over a Distributed Network
US20130262171A1 (en) System and Method for Directing and Monitoring the Activities of Remote Agents
Persson et al. Health economic modeling to support surgery management at a Swedish hospital
US20140046715A1 (en) Systems ands methods for automated scheduling
JP6712469B2 (ja) 作業計画生成システム
EP1941434A2 (en) System, method, and computer program product for providing travel information using information obtained from other travelers
CN103460236A (zh) 信息提供装置、信息提供方法、信息提供程序及记录媒体
US10115076B2 (en) System and method employing capacity/demand management for human-factor resources
JP4268973B2 (ja) 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム
JP2009535739A (ja) プロジェクト・リソース計画
Lin An adaptive scheduling heuristic with memory for the block appointment system of an outpatient specialty clinic
Altner et al. A two-stage stochastic program for multi-shift, multi-analyst, workforce optimization with multiple on-call options
AU2006237319B2 (en) Fare and yield driven travel services optimizer for a budget based request system
US20130317876A1 (en) Systems ands methods for automated scheduling
Ozkarahan A disaggregation model of a flexible nurse scheduling support system
Er-Rbib et al. Preference-based and cyclic bus driver rostering problem with fixed days off
Elahipanah et al. A two-phase mathematical-programming heuristic for flexible assignment of activities and tasks to work shifts
Karels et al. A vehicle routing problem with multiple service agreements
Er-Rbib et al. Integrated and sequential solution methods for the cyclic bus driver rostering problem
JP2001067413A (ja) スケジュール生成装置および方法並びにこれを用いたスケジュール生成システム
CN111226252A (zh) 受理系统、受理方法、以及程序

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090223

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150227

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees