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

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

Info

Publication number
JP2007265376A
JP2007265376A JP2006122654A JP2006122654A JP2007265376A JP 2007265376 A JP2007265376 A JP 2007265376A JP 2006122654 A JP2006122654 A JP 2006122654A JP 2006122654 A JP2006122654 A JP 2006122654A JP 2007265376 A JP2007265376 A JP 2007265376A
Authority
JP
Japan
Prior art keywords
service
time
slot
travel
services
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.)
Granted
Application number
JP2006122654A
Other languages
English (en)
Other versions
JP4268973B2 (ja
Inventor
Yasuki Sekiguchi
恭毅 関口
Kazue Okuda
和重 奥田
Masakazu Kawase
正和 河瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Coper Kk
Original Assignee
Coper Kk
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 Coper Kk filed Critical Coper Kk
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)

Abstract

【課題】多くの旅行計画の中から旅行者の要求を満足する最適化又は近似最適化された旅行計画を自動的に作成するための方法を提供する。
【解決手段】混合整数計画問題を利用して旅行計画を作成するための方法で、旅行者によって入力された旅行期間の各日を複数のスロットに分割し、スロット各々に付与された特性と適合するように関連付けが定義された複数アクティビティを含み、旅行期間内に利用可能なサービスリストを作成し、サービスの各々を複数スロットの各々に割り付けるかどうかを定義する決定変数を使った優先度に関する制約条件、及び、サービス実施に必要な時間幅の長さとの関係に関する第2制約条件を構成し、旅行計画の評価特性を表す目的関数を構成し、第1及び第2制約条件の下で、目的関数を最適化するための決定変数の組み合わせを求め、リストにおけるサービスの各々を複数スロットの各々に割り付けて、旅行計画を作成する。
【選択図】図2

Description

本発明は、旅行者の要求に応答して最適化又は近似最適化した旅行計画を自動的に作成するための方法に関し、特に、混合整数計画問題を解くための演算プログラムに入力して演算を行うことによって最適化又は近似最適化した旅行計画を自動的に作成するために、混合整数計画問題に適用することができるように入力データを処理する方法及びコンピュータ・プログラムに関する。
従来技術
旅行を旅行計画の側面から見ると、大きく個人旅行、手配旅行、及び主催旅行に分類することができる。個人旅行は、旅行者自らが旅行予定地の交通機関、観光施設及び宿泊施設の空き状況、営業時間、料金などを調査し、その結果に基づいて旅行計画を立案し、ホームページ又は電話などを用いて必要な手配を直接行う旅行形態である。手配旅行は、旅行者が、旅行代理店に赴き、旅行代理店の従業員に対して旅行予定地の交通機関、観光施設及び宿泊施設についての希望を提示し、それに対して旅行代理店の従業員が、旅行代理店の専用端末を通じて各機関又は施設の空き状況、営業時間、料金などを調査して旅行者に提示し、これらの調査結果に対して旅行者の了解が得られた場合に、各機関又は施設の手配を行う旅行形態である。主催旅行は、旅行代理店があらかじめ独自の旅行計画を企画し、旅行参加者を募集することによって、ある程度決まったスケジュールの旅行計画を提供する旅行形態である。上記の主催旅行は、比較的自由行動の多いものであっても旅行者の希望にきめ細かく応じることが難しいため、近年、旅行形態は、主催旅行から手配旅行又は個人旅行に移行する傾向が指摘されており、旅行単位は、団体から家族へ、家族から少人数グループ又は個人へと変化しつつある。
ところが、手配旅行は、上述のように旅行代理店を利用して必要な情報収集及び手配を行うものであるため、旅行者にとっては時間が拘束されると共に、費用がかかるという問題がある。これに対して、最近は、交通機関、観光施設、及び宿泊施設などがホームページを持つ場合も多く、旅行者は、インターネットを通じてこれらのホームページにアクセスして旅行計画に必要な情報を収集し、予約などの手配を直接行うことも可能になっている。このように、インターネットを利用すれば、旅行者は、時間の拘束を受けずに安価に自分の好みに応じた旅行計画を立案することができる。
しかしながら、従来は、交通機関、観光施設、及び宿泊施設などがそれぞれ個別にホームページを持つのみであったため、旅行を計画する旅行者は、まず、数多くのホームページの中から自分が第一に希望する交通機関、観光施設、及び宿泊施設などのホームページを別個に検索し、各々の機関及び施設などの営業日時、料金、予約の可否などを確認すると共に、他の施設などの営業時間、料金、予約の可否等をも勘案しながら全体の計画を立案しなければならず、非常に手間がかかるという問題があった。
こうした問題を解決するため、個人旅行者の旅行計画立案とその実現に必要な支援を提供する技術が幾つか存在する。特許文献1は、ネットワークを介してコンピュータにアクセスしたブラウズ端末から、少なくとも出発地及び旅行先を含む旅行プラン策定のための諸条件を含む旅行プラン策定依頼を受信し、その諸条件を満たす旅行プランを策定して、策定した旅行プランのデータを該ブラウズ端末に送信するシステムを開示する。ブラウズ端末から、該ブラウズ端末に送信した旅行プランの修正依頼を受信した場合には、旅行プランを策定し直して、その策定し直した旅行プランのデータをブラウズ端末に送信する。この技術においては、旅行プランは、システムのコンピュータが、旅行プラン策定依頼から抽出した諸条件等を満足する旅行モデルひな形データを旅行モデルひな形データベースから抽出してブラウズ端末に提示し、提示されたひな形をユーザが修正した場合には、その修正に基づいて該ひな形データを変更してブラウザ端末に再提示することによって、策定される。
特許文献2は、所望の旅行先を訪問する際に費やされると予想される所要時間を取得し、それらと移動先の間の予想移動時間とを組み合わせることにより旅行スケジュールを自動作成するシステムを開示する。このシステムは、ユーザが画面に表示される訪問候補地を指定すると、各々の訪問候補地ごとの予想移動時間と予想所要時間とから、例えば最短コースを巡るスケジュールを作成し、作成したスケジュールをユーザに提示する。システムは、提示されたスケジュールをユーザがチェックした結果に基づいて、所要時間の変更、訪問候補地の追加又は削除などのスケジュール編集を行うことによって、最終的なスケジュールを作成する。
特許文献3は、旅行管理サーバがユーザ端末から旅行希望条件を受信すると、この旅行希望条件に基づいて観光施設等情報データベース等を検索し、希望条件に合った旅行先情報等を取得し、これらの情報に基づいて固有の旅行スケジュールを作成するシステムを開示する。旅行スケジュールの作成は、以下の処理によって行われる。まず、旅行管理サーバは、旅行期間内に利用可能な観光施設等を抽出する。次に、抽出された観光施設等を、旅行者が指定したプランニング条件の優先度合い(例えば、ホテルのランクについて、高、中、低など)によって重み付けして評価し、その評価点と各観光施設の評価値(例えば、ホテルのランク)とを比較する。評価値が一定以上の観光施設等を抽出して絞り込み、評価点の高い順にスケジュールに追加する。このとき、既に旅行スケジュール内に組み込まれている候補との位置関係(距離関係)、時間帯、利用交通手段等を考慮して最適な位置に観光施設等を新規追加していくことによって、旅行スケジュールを作成する。
特開2003−44553号明細書 特開2002−197150号明細書 特開2002−73756号明細書
上述の先行技術は、以下のような課題を有する。特許文献1の技術は、ユーザが指定した希望条件を満足する旅行プランを策定するものの、その旅行プランの原型はひな形データベースに既に格納されており、ユーザの要求に応じて該ひな形データベースからひな形データを検索して提示するものであるため、あくまでも限定されたプランしか提示することができない。また、特許文献2の技術は、ユーザが訪問したい観光地、名所、又は施設などの訪問候補地を端末から指定した場合に、それらの訪問候補地間の移動時間と各訪問候補地の所要時間とを組み合わせ、経路探索を行って旅行スケジュールを作成するものである。すなわち、本技術は、基本的には、ユーザが指定した訪問候補地を巡る時間的スケジュールを作成するものであって、ユーザの希望条件に応じて最適な観光施設の組み合わせまでも自動的に組み合わせてスケジュールを作成する技術ではない。特許文献3の技術は、旅行者が指定した優先度によって重み付けした評価点を各観光施設の評価点と比較する手法に基づいて旅行スケジュールを作成する方法であるが、本手法は、最適な組み合わせ問題を解決するための一般に認知された手法ではなく、したがって、極めて多くの選択肢の中から作成されたスケジュールが最適なものであるかどうかを客観的に評価することは困難である。
このように、上述の先行技術を含む従来技術においては、何らかの手法に基づいて旅行計画を作成する技術が開示されてはいるものの、一般的に広く認知されている客観的な最適化又は近似最適化手法を用いて自動的に旅行計画を作成する技術は見出すことができない。こういった事情に鑑み、本発明の目的は、一般的に認知された最適化手法である混合整数計画問題に基づいて、極めて多くの可能性のある旅行計画の中から旅行者の要求を満足する最適化又は近似最適化された旅行計画を自動的に作成する技術を提供することである。
上記の目的は、旅行者によって入力された旅行条件データと、旅行業者及びシステム管理者によって入力され、データベースに格納された旅行情報データとから、混合整数計画問題に適用することができるように処理した入力データを作成し、該入力データを混合整数計画問題を解くための演算プログラムに入力して演算処理を行うことにより、従来技術においては例のない、混合整数計画問題を利用して最適化又は近似最適化した旅行計画を自動的に作成することができるという知見に基づく以下の特徴を有する本発明によって達成される。
請求項1に記載の発明は、旅行者によって入力された旅行条件データと、旅行業者及びシステム管理者によって入力されデータベースに格納された旅行情報データとを用いて、旅行計画を作成し、作成された該旅行計画を該旅行者に提示する旅行計画作成システムにおいて、該旅行条件データ及び該旅行情報データから、混合整数計画問題を解くための演算プログラムに適用できるように処理した入力データを生成し、該入力データを前記演算プログラムに入力して最適化演算又は近似最適化演算を行い混合整数計画問題の解を求めることによって旅行計画を作成する方法であって、該旅行者によって入力された該旅行条件データ内の旅行期間の各日を、同一の時間幅及び/又は異なる時間幅を有する複数のスロットに分割するステップと、該複数のスロットの各々に付与された特性と適合するように関連付けが定義された複数のアクティビティの少なくとも1つを含み、かつ、該旅行期間内に利用可能である1つ又は複数のサービスのリストを作成する、利用可能リスト作成ステップと、該リストにおける該1つ又は複数のサービスの各々を該複数のスロットの各々に割り付けるかどうかを定義する決定変数を用いて、該リストにおける該1つ又は複数のサービスの各々を該複数のスロットの各々に割り付けるときの優先度に関する第1の制約条件と、該複数のスロットの1つ又は複数に割り付けられるサービスの実施に必要な時間の長さと該複数のスロットの1つ又は複数の時間幅の長さとの関係に関する第2の制約条件と、から少なくとも構成する、制約条件構成ステップと、作成される旅行計画の評価特性を表す目的関数を構成する、目的関数構成ステップと、該演算プログラムを用いて、該第1及び第2の制約条件の組の下で該目的関数を最適化又は近似最適化するための該決定変数の組み合わせを求め、得られた該組み合わせに基づいて、該リストにおける該1つ又は複数のサービスの各々を該複数のスロットの各々に割り付けることによって旅行計画を作成する、旅行計画作成ステップと、を含むことを特徴とする。
請求項2に記載の発明は、利用可能リスト作成ステップが、利用可能リストにおける1つ又は複数のサービスの少なくとも1つが複数のアクティビティを含む複合サービスである場合には、該複合サービスを、各々が1つのアクティビティを含む複数の新たなサービスに分割する、複合サービス分割ステップ、及び/又は、該リストにおける該1つ又は複数のサービスの少なくとも1つが、該サービスに含まれるアクティビティの実施に必要な時間幅が少なくとも1つのスロットの時間幅を越える長大サービスである場合には、該長大サービスを、各々の実施に必要な時間幅が1つのスロットの時間幅以下である複数の新たなサービスに分割する、長大サービス分割ステップと、該複合サービスと該長大サービスと該複数の新たなサービスとの関係を別途表す関係データを作成する、関係データ作成ステップと、該複合サービス及び/又は該長大サービスを該複数の新たなサービスに置換することによって新たなリストを作成する、新リスト作成ステップと、をさらに含み、該制約条件構成ステップは、該複数の新たなサービス相互間の関係に関する第3の制約条件を構成するステップをさらに含むことを特徴とする。
請求項3に記載の発明は、1つ又は複数のサービスについて、旅行業者が該1つ又は複数のサービスの各々に含まれる1つ又は複数のアクティビティの各々の開始時刻及び終了時刻を定めるsタイプのサービスと、該旅行業者が該1つ又は複数のアクティビティの各々の開始時刻及び終了時刻を定めないが各々の実施に適した時間幅を定め、かつ、該旅行業者の営業時間内に利用可能であるa1タイプのサービスと、該旅行業者が該1つ又は複数のアクティビティの各々の開始時刻及び終了時刻を定めないが各々の実施に必要な時間幅を定め、かつ、該旅行業者の営業時間内に利用可能であるa2タイプのサービスと、を設定し、該1つ又は複数のサービスをそれらのうちのいずれかに分類するステップをさらに含むことを特徴とする。
請求項4に記載の発明は、複合サービス分割ステップにおいて、複合サービスがsタイプの場合には、該複合サービスに含まれるアクティビティの各々の開始時刻と終了時刻とから、新たなサービスの各々の実施に必要な時間幅を算出するステップをさらに含み、該複合サービスがa1タイプの場合には、旅行者が該複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が該旅行条件データに含まれているときは、該指定時間と、該アクティビティの各々を提供する該旅行業者の営業時間とを比較して、時間の短い方を該新たなサービスの各々の実施に必要な時間幅として設定し、該旅行者が該複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が該旅行条件データに含まれていないときは、該新たなサービスの各々に含まれるアクティビティの実施に適した時間幅を該新たなサービスの各々の実施に必要な時間幅として設定するステップをさらに含み、該複合サービスがa2タイプの場合には、該新たなサービスの各々に含まれるアクティビティの実施に必要な時間幅を該新たなサービスの各々の実施に必要な時間幅として設定するステップをさらに含む、ことを特徴とする。
請求項5に記載の発明は、長大サービス分割ステップにおいて、長大サービスがsタイプの場合には、該長大サービスに含まれるアクティビティの開始時刻を含む最初のスロット、該アクティビティの終了時刻を含む最後のスロット、及び、該最初のスロットと該最後のスロットとの間の1つ又は複数のスロットを特定するステップと、該長大サービスを、該最初のスロットに対応する最初の新たなサービス、該最後のスロットに対応する最後の新たなサービス、及び、該1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに分割するステップと、該アクティビティの該開始時刻から該最初のスロットの該終了時刻までの時間幅を、該最初の新たなサービスの実施に必要な時間幅として設定するステップと、該最後のスロットの該開始時刻から該アクティビティの該終了時刻までの時間幅を、該最後の新たなサービスの実施に必要な時間幅として設定するステップと、該1つ又は複数のスロットの時間幅を、該1つ又は複数の新たなサービスの実施に必要な時間幅として設定するステップと、をさらに含むことを特徴とする。
請求項6に記載の発明は、長大サービス分割ステップにおいて、長大サービスがa1タイプ又はa2タイプの場合には、該長大サービスを提供する旅行業者の営業開始時刻と営業終了時刻との間にあり、該長大サービスに含まれるアクティビティの実施に適したスロット群と一致する1つ又は複数のスロットを特定するステップと、該特定した1つ又は複数のスロットのうちの最初のスロットが、該営業開始時刻を含むスロットであるときは、該営業開始時刻から該最初のスロットの終了時刻までに対応する最初の新たなサービスを作成し、該最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスを順次作成し、次いで、該営業開始時刻から該最初のスロットの該終了時刻までの時間幅を該最初の新たなサービスの実施に必要な時間幅として設定し、該1つ又は複数のスロットの時間幅を該1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、該長大サービスの実施に必要な時間幅から、該最初の新たなサービスから該最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、該特定した1つ又は複数のスロットのうちの最初のスロットが、該営業開始時刻を含むスロットより後のスロットであるときは、該最初のスロットに対応する最初の新たなサービスを作成し、該最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスを順次作成し、次いで、該最初のスロットの時間幅を該最初の新たなサービスの実施に必要な時間幅として設定し、該1つ又は複数のスロットの時間幅を該1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、該長大サービスの実施に必要な時間幅から該最初の新たなサービスから該最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、をさらに含むことを特徴とする。
請求項7に記載の発明は、利用可能リスト作成ステップが、利用可能リストに含まれる複数のサービスの該リスト内での並び順を変更するステップをさらに含むことを特徴とする。
請求項8に記載の発明は、新リスト作成ステップが、新たなリストに含まれる複数のサービスの該新たなリスト内での並び順を変更するステップをさらに含むことを特徴とする。
請求項9に記載の発明は、旅行者によって入力された旅行条件データと、旅行業者及びシステム管理者によって入力されデータベースに格納された旅行情報データとを用いて、旅行計画を作成し、作成された該旅行計画を該旅行者に提示する旅行計画作成システムにおいて、該旅行条件データ及び該旅行情報データから、混合整数計画問題を解くための演算プログラムに適用できるように処理した入力データを生成し、該入力データを該演算プログラムに入力して最適化演算又は近似最適化演算を行い混合整数計画問題の解を求めることによって旅行計画を作成する方法を実行するプログラム・コードを格納したコンピュータ・プログラムであって、該方法が、該旅行者によって入力された該旅行条件データ内の旅行期間の各日を、同一の時間幅及び/又は異なる時間幅を有する複数のスロットに分割するステップと、該複数のスロットの各々に付与された特性と適合するように関連付けが定義された複数のアクティビティの少なくとも1つを含み、かつ、該旅行期間内に利用可能である1つ又は複数のサービスのリストを作成する、利用可能リスト作成ステップと、該リストにおける該1つ又は複数のサービスの各々を該複数のスロットの各々に割り付けるかどうかを定義する決定変数を用いて、該リストにおける該1つ又は複数のサービスの各々を該複数のスロットの各々に割り付けるときの優先度に関する第1の制約条件と、該複数のスロットの1つ又は複数に割り付けられるサービスの実施に必要な時間の長さと該複数のスロットの1つ又は複数の時間幅の長さとの関係に関する第2の制約条件と、から少なくとも構成する、制約条件構成ステップと、作成される旅行計画の評価特性を表す目的関数を構成する、目的関数構成ステップと、該演算プログラムを用いて、該第1及び第2の制約条件の組の下で該目的関数を最適化又は近似最適化するための該決定変数の組み合わせを求め、得られた該組み合わせに基づいて、該リストにおける該1つ又は複数のサービスの各々を該複数のスロットの各々に割り付けることによって旅行計画を作成する、旅行計画作成ステップと、を含むことを特徴とする。
請求項10に記載の発明は、利用可能リスト作成ステップが、リストにおける1つ又は複数のサービスの少なくとも1つが複数のアクティビティを含む複合サービスである場合には、該複合サービスを、各々が1つのアクティビティを含む複数の新たなサービスに分割する、複合サービス分割ステップ、及び/又は、該リストにおける該1つ又は複数のサービスの少なくとも1つが、該サービスに含まれるアクティビティの実施に必要な時間幅が少なくとも1つのスロットの時間幅を越える長大サービスである場合には、該長大サービスを、各々の実施に必要な時間幅が1つのスロットの時間幅以下である複数の新たなサービスに分割する、長大サービス分割ステップと、該複合サービスと該長大サービスと該複数の新たなサービスとの関係を別途表す関係データを作成する、関係データ作成ステップと、該複合サービス及び/又は該長大サービスを該複数の新たなサービスに置換することによって新たなリストを作成する、新リスト作成ステップと、をさらに含み、該制約条件構成ステップは、該複数の新たなサービス相互間の関係に関する第3の制約条件を構成するステップをさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項11に記載の発明は、1つ又は複数のサービスについて、旅行業者が該1つ又は複数のサービスの各々に含まれる1つ又は複数のアクティビティの各々の開始時刻及び終了時刻を定めるsタイプのサービスと、該旅行業者が該1つ又は複数のアクティビティの各々の開始時刻及び終了時刻を定めないが各々の実施に適した時間幅を定め、かつ、該旅行業者の営業時間内に利用可能であるa1タイプのサービスと、該旅行業者が該1つ又は複数のアクティビティの各々の開始時刻及び終了時刻を定めないが各々の実施に必要な時間幅を定め、かつ、該旅行業者の営業時間内に利用可能であるa2タイプのサービスと、を設定し、該1つ又は複数のサービスをそれらのうちのいずれかに分類するステップをさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項12に記載の発明は、複合サービス分割ステップにおいて、複合サービスがsタイプの場合には、該複合サービスに含まれるアクティビティの各々の開始時刻と終了時刻とから、新たなサービスの各々の実施に必要な時間幅を算出するステップをさらに含み、該複合サービスがa1タイプの場合には、旅行者が該複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、該旅行条件データに含まれているときは、該指定時間と、該アクティビティの各々を提供する該旅行業者の営業時間とを比較して、時間の短い方を該新たなサービスの各々の実施に必要な時間幅として設定し、該旅行者が該複合サービスに含まれるアクティビティの各々に費やすことを希望する時間幅である指定時間が、該旅行条件データに含まれていないときは、該新たなサービスの各々に含まれるアクティビティの実施に適した時間幅を該新たなサービスの各々の実施に必要な時間幅として設定するステップをさらに含み、該複合サービスがa2タイプの場合には、該新たなサービスの各々に含まれるアクティビティの実施に必要な時間幅を該新たなサービスの各々の実施に必要な時間幅として設定するステップをさらに含む、ことを特徴とするコンピュータ・プログラムを提供するものである。
請求項13に記載の発明は、長大サービス分割ステップにおいて、長大サービスがsタイプの場合には、該長大サービスに含まれるアクティビティの開始時刻を含む最初のスロット、該アクティビティの終了時刻を含む最後のスロット、及び、該最初のスロットと該最後のスロットとの間の1つ又は複数のスロットを特定するステップと、該長大サービスを、該最初のスロットに対応する最初の新たなサービス、該最後のスロットに対応する最後の新たなサービス、及び、該1つ又は複数のスロットに対応する1つ又は複数の新たなサービスに分割するステップと、該アクティビティの該開始時刻から該最初のスロットの該終了時刻までの時間幅を、該最初の新たなサービスの実施に必要な時間幅として設定するステップと、該最後のスロットの該開始時刻から該アクティビティの該終了時刻までの時間幅を、該最後の新たなサービスの実施に必要な時間幅として設定するステップと、該1つ又は複数のスロットの時間幅を、該1つ又は複数の新たなサービスの実施に必要な時間幅として設定するステップと、をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項14に記載の発明は、長大サービス分割ステップにおいて、長大サービスがa1タイプ又はa2タイプの場合には、該長大サービスを提供する旅行業者の営業開始時刻と営業終了時刻との間にあり、該長大サービスに含まれるアクティビティの実施に適したスロット群と一致する1つ又は複数のスロットを特定するステップと、該特定した1つ又は複数のスロットのうちの最初のスロットが、該営業開始時刻を含むスロットであるときは、該営業開始時刻から該最初のスロットの終了時刻までに対応する最初の新たなサービスを作成し、該最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスを順次作成し、次いで、該営業開始時刻から該最初のスロットの該終了時刻までの時間幅を該最初の新たなサービスの実施に必要な時間幅として設定し、該1つ又は複数のスロットの時間幅を該1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、該長大サービスの実施に必要な時間幅から、該最初の新たなサービスから該最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、 該特定した1つ又は複数のスロットのうちの最初のスロットが、該営業開始時刻を含むスロットより後のスロットであるときは、該最初のスロットに対応する最初の新たなサービスを作成し、該最初のスロットの次のスロット以降の1つ又は複数のスロットに対応する1つ又は複数の新たなサービスを順次作成し、次いで、該最初のスロットの時間幅を該最初の新たなサービスの実施に必要な時間幅として設定し、該1つ又は複数のスロットの時間幅を該1つ又は複数の新たなサービスの実施に必要な時間幅としてそれぞれ設定し、最後の新たなサービスの実施に必要な時間幅は、該長大サービスの実施に必要な時間幅から該最初の新たなサービスから該最後の新たなサービスの直前のサービスまでの実施に必要な時間幅の合計を引いた時間幅を設定するステップと、をさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項15に記載の発明は、利用可能リスト作成ステップが、利用可能リストに含まれる複数のサービスの該リスト内での並び順を変更するステップをさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
請求項16に記載の発明は、新リスト作成ステップが、新たなリストに含まれる複数のサービスの該新たなリスト内での並び順を変更するステップをさらに含むことを特徴とするコンピュータ・プログラムを提供するものである。
[システム構成]
以下に、本発明の1つの実施形態について説明する。当然のことながら、本発明は、この実施形態に限定されるものではない。図1は、本発明の1つの実施形態に係る旅行計画作成システムの基本構成を示すブロック図である。図1に示すように、本旅行計画作成システムは、旅行者、旅行業者、及びシステム管理者が利用する1つ又は複数の端末と、旅行計画を作成する旅行計画作成手段等を実装する旅行計画作成サーバと、アクティビティ及びサービスなどの必要なデータを格納するデータベースとで構成される。ここで「アクティビティ」とは、宿泊、交通、施設見学、食事、又は登山などといった、旅行者が行う観光行動の類型を表す。また、「サービス」とは、1つ又は複数のアクティビティを含む、旅行業者が提供する商品の単位を表す。1つ又は複数の端末と該旅行計画作成装置とは、インターネットなどの通信網を介して接続される。1つ又は複数の旅行者用端末は、旅行者が旅行条件データを入力し、旅行計画作成サーバにおいて作成された旅行計画を表示するための端末である。「旅行条件データ」は、後述するように、旅行者が旅行計画に対して指定する希望条件に関するデータである。1つ又は複数の旅行者用端末は、パーソナル・コンピュータ、携帯電話、又は携帯情報端末(PDA)などのネットワーク端末とすることができる。1つ又は複数の旅行業者用及びシステム管理者用端末は、旅行業者及びシステム管理者が旅行情報データを入力するための端末である。「旅行情報データ」は、後述するように、旅行業者及び/又はシステム管理者が提供及び/又は入力する、旅行計画を作成するために必要なデータである。1つ又は複数の旅行業者用及びシステム管理者用端末は、パーソナル・コンピュータ又は専用端末とすることができる。旅行者、旅行業者、及びシステム管理者が利用する1つ又は複数の端末は、ウェブ閲覧機能及びインターネットなどの通信網への接続機能を有すると共に、少なくとも、CRT又は液晶ディスプレイなどの表示装置と、ハードディスク、RAM、又はCD−ROMなどの記憶装置と、キーボード、マウス、又はタッチパネルなどのデータ入力装置とを有する、汎用又は専用の端末装置であればよい。
旅行計画作成サーバは、インターネットなどの通信網への接続機能を有すると共に、少なくとも、オペレーティング・システム並びに本発明に係る処理を実行するためのコンピュータ・プログラム及び他のアプリケーション・プログラムを実行させ、これらの全体動作を管理するCPUと、各種のプログラム又はデータを読み込むためのRAMなどのメモリと、オペレーティング・システム並びに本発明に係る処理を実行するためのコンピュータ・プログラム及び他のアプリケーション・プログラムを格納するハードディスク装置などの外部記憶装置と、これらの各種装置を接続するバスとを有するコンピュータとすることができる。旅行計画作成サーバには、必要に応じて、CD−ROM又はDVD−ROMなどのドライブ装置と、キーボード又はマウスなどのデータ入力装置と、CRT又は液晶ディスプレイなどの表示装置とを接続するようにしてもよい。
データベースは、インターネットなどの通信網への接続機能を有すると共に、少なくとも、オペレーティング・システム並びに本発明に係る処理を実行するためのコンピュータ・プログラム及び他の各種のアプリケーション・プログラムを実行させ、これらの全体動作を管理するCPUと、各種のプログラム又はデータを読み込むためのRAMなどのメモリと、オペレーティング・システム、本発明に係る処理を実行するためのコンピュータ・プログラム及び他のアプリケーション・プログラム、並びに、本発明に係る旅行計画作成に必要なアクティビティなどの旅行情報データを格納するハードディスク装置などの外部記憶装置と、これらの各種装置を接続するバスとを有するコンピュータとすることができる。データベースには、必要に応じて、CD−ROM又はDVD−ROMなどのドライブ装置と、キーボード又はマウスなどのデータ入力装置と、CRT又は液晶ディスプレイなどの表示装置とを接続するようにしてもよい。図1においては、データベースは、旅行計画作成サーバとは別に設置し、インターネットなどの通信網を介して該旅行計画作成サーバと接続されるものとしているが、データベースは、旅行計画作成サーバ内に構成することもできる。
図1に示すように、旅行計画作成サーバは、旅行計画に対して指定される旅行条件データを取得する旅行条件データ取得手段と、旅行条件データ格納手段と、該旅行条件データとデータベースに格納された旅行情報データとに基づいて利用可能リストを作成する利用可能リスト作成手段と、旅行計画を構成するサービスの選択可能な組み合わせに関する制約条件を構成する制約条件構成手段と、旅行計画の評価特性を表す目的関数を構成する目的関数構成手段と、該制約条件及び該目的関数から旅行計画を作成する旅行計画作成手段と、作成された旅行計画をユーザ端末に提供する旅行計画提供手段とを有する。「利用可能リスト」は、図10を参照して後述するように、旅行者が希望する旅行期間内に提供を受けることが可能なサービスに関するデータをサービス毎に1つの単位とし、複数の単位を適当な順序で並べてリスト化したデータ群である。旅行計画作成サーバは、さらに、1つのサービスが複数のアクティビティを含む場合などに前述の利用可能リスト内のサービスを分割して新たなリストを作成する拡大利用可能リスト作成手段を有する。「拡大利用可能リスト」は、例えば1つのサービスが複数のアクティビティを含む場合などに、利用可能リスト内の当該サービスを相互に関連付けられた複数のサービスに分割し、元のサービスに関するデータ群を、分割した複数のサービスに関するデータ群に置き換えることによって作成される新たなリストである。上記の各手段の機能は、本明細書において詳細に後述する。
一方、データベースは、旅行業者及びシステム管理者によって端末から入力されるか又は提供される、旅行計画を作成するために必要な旅行情報データを格納する。データベースに格納される旅行情報データは、一日を同一の時間幅又は異なる時間幅に分割して得られる複数の時間単位の各々(以下、「スロット」という)に関する情報であるスロット属性データ(以下、「スロット表」という)(図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つの実施形態に係る旅行計画作成サーバにおいて旅行計画を作成する方法を詳細に説明する。図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までの記号で表されるスロット・タイプと、早朝、朝食、又は午前などといった、各スロットの特性を表すスロット特性と、各スロットの開始時刻及び終了時刻とが関連付けて格納されている関連付けデータであり、これらのデータは、システム管理者によって入力及び設定され、データベースに予め格納される。スロット・タイプの数、スロット特性、及び時間幅は、図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に従って実効スロット候補を決定する。
ここで「実効スロット」とは、利用可能リスト内の各々のサービスに含まれるアクティビティの適合スロットのうち、旅行業者がそのサービスを提供する時間帯に含まれるスロットである。例えば、利用可能リスト内のあるサービスについて、そのサービスに含まれるアクティビティが提供される適合スロットのスロット・タイプがC(午前)及びE(午後)、サービス・タイプがa1、旅行期間が例えば10月15日12:00から10月18日18:00であり、旅行者が該サービスに含まれるアクティビティを10月15日の午後に実施することを指定し、その時間帯に該サービスの提供が可能なときは、そのサービスの実効スロット・タイプはE(午後)となる。同じ場合に、旅行者がそのサービスに含まれるアクティビティを10月16日に実施することを指定し、その時間帯に該サービスの提供が可能なときは、実効スロット・タイプはC(午前)及びE(午後)である。さらに同じ場合に、旅行者が実施を希望する日の指定をしていないときは、そのサービスに含まれるアクティビティの実効スロット・タイプは、15日のE、16日、17日、及び18日のC及びEの、合わせて7個となる。或いは、例えば、利用可能リスト内のあるサービスについて、含まれるアクティビティの開始時刻が9:00、終了時刻が16:00、サービス・タイプがsの場合には、そのサービスに含まれるアクティビティの開始時刻と終了時刻との間にあるスロット・タイプ、すなわち、C(午前)、D(昼食)、及びE(午後)からなる集合が実効スロット・タイプとなる。さらに、例えば、旅行者があるアクティビティを夜間(スロット・タイプG)に実施することを指定したときは、適合スロット・タイプが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)。この処理は、混合整数計画問題の解法の多くでは、同等のサービスであれば係数行列の一定の位置にあるサービスが選択されやすい特性があるため、及びモデルを構築する際のサービスの並びはデータベースからの検索結果に依存するため、旅行者からの同じ入力条件に対して作成される旅行計画に組み込まれるサービスが固定的にならないように、拡大利用可能リストのサービスの並び順を無作為に並び替える処理である。こうした処理を行うことによって、旅行者が同じ旅行条件データを入力した場合であっても、その都度異なる旅行計画が作成され、旅行者が当初想像していなかったような旅行を享受できるという利点がある。また、本発明のような支援サービスを実現するためには、データ入力に対する多数の旅行業者の協力が必要であるが、こうしたランダム化処理を行うことによって、各々の旅行業者の提供するサービスが選択される機会の公平性が担保され、旅行業者が支援サービスに参加するためのインセンティブとなるという利点もある。
以上の処理を実行することによって、利用可能リスト内のあるサービスが、複数のアクティビティを提供する複合サービス、及び/又は、複数のスロットにわたる複合サービス(すなわち長大サービス)である場合に、その複合サービスをアクティビティごとに、及び/又は実効スロット・タイプごとに分割し、その結果、サービスの各々に対して、1つのアクティビティと1つ以上の実効スロット・タイプとが対応する拡大利用可能リスト(図14)が作成されることになる。
5.制約条件構成方法
(1)決定変数の作成
拡大利用可能リストを作成した後、リスト内のサービス(又は補助サービス)の選択可能な組み合わせを求める上での制約条件を作成することになる。制約条件作成に先立って、制約条件の構成に用いるための決定変数xi,jを作成する。決定変数xi,jは、拡大利用可能リストの各々の拡大サービスiについて、各々の拡大サービスiをスロットjに割り付けるか又は割り付けないかを定める変数であり、あるサービスiを割り付けることができるスロットjに該サービスiを割り付ける可能性がある場合にはxi,jを作成し、可能性がない場合にはxi,jは作成しない。例えば、拡大サービス・コードが1であるサービスの実効スロット・タイプがC(午前)、E(午後)、又はG(夜間)の場合に、旅程表において、スロット・タイプCに対応するスロット・コードが7及び15であり、スロット・タイプEに対応するスロット・コードが1及び9であり、スロット・タイプGに対応するスロット・コードが3及び11であるときには、決定変数x1,1、x1,3、x1,7、x1,9、x1,11、及びx1,15を作成する。このように、各サービスとそのサービスが割り付けられる可能性のある実効スロットとの対にのみ決定変数を定義することによって、すべてのサービスと実効スロットとの任意の組み合わせに対して決定変数を定義する場合と比べて、計算処理の規模が著しく小さくなるという利点がある。なお、ここでは拡大利用可能リストに基づいて説明したが、作成された利用可能リスト(図10)に複合サービスが含まれない場合には、該利用可能リストを用いて、そのリスト内のサービス(この場合、このサービスは補助サービスではない)の各々について同様の方法で決定変数が作成されることになる。以下の処理においても同様である。
図15は、決定変数を作成するための処理である。処理は、拡大利用可能リスト及び旅程表を取得することで開始する(ステップ1501)。次いで、拡大利用可能リストから最初の拡大サービス・コード及びそれに関連付けられたデータを読み込み(ステップ1502)、さらに旅程表から最初の旅程データ(すなわち、スロット・コード及びそれに関連付けられたデータ)を読み込む(ステップ1504)。次に、読み込んだ最初の拡大サービス・コードに関連付けられたデータの中の実効スロット・タイプと、旅程表から読み込んだ最初のスロット・コードに関連付けられたスロット・タイプとを比較し(ステップ1506)、両者が一致する場合には、その拡大サービス・コードとスロット・コードの対に対応する決定変数を作成する(ステップ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 2007265376
として表現することができ、該アクティビティの優先度が二次の場合には、その和が旅行者によって指定された実施回数sと等しいか又はそれより小さいことを表す以下の(12)式、
Figure 2007265376
で表現することができる。例えば、拡大サービス・コードが1であるサービス(図18の例の場合には、アクティビティ「温泉」を含むサービス)について決定変数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)、「必須」の場合には、(ステップ1910で作成した決定変数の和Σxi,j)=(旅行者が指定した実施回数)となる制約条件式を作成する(ステップ1913)。ステップ1912において、このアクティビティ・コードに対応するアクティビティについて旅行者が指定した優先度が「二次」である場合には、(ステップ1910で作成した決定変数の和Σxi,j)≦(旅行者が指定した実施回数)となる制約条件式を作成する(ステップ1914)。
ステップ1909において、このアクティビティ・コードの決定変数集合に決定変数データが存在しない(すなわち、集合が空である)場合には、このアクティビティ・コードに対応するアクティビティは実施できないものとしてマーク付けされ(ステップ1911)、制約条件式を作成することなくステップは1902に戻り、アクティビティ表から次のアクティビティ・データを読み込む。ステップ1913又は1914において、このアクティビティ・コードに対応するアクティビティについて制約条件式を作成し終えた場合もまた、ステップは1902に戻り、次のアクティビティ・データを読み込む。アクティビティ表のすべてのアクティビティ・コードについてステップ1904〜1914を行った後、処理は終了する(ステップ1915)。
以上の処理を行うことによって、旅行者が希望するサービス(すなわちアクティビティ)ごとに、(1)式又は(2)式で表現される制約条件1が得られる。制約条件1は、図18の例においては、以下の(3)式となる。
Figure 2007265376
以上のように、本発明においては、あるサービスに複数のアクティビティが含まれる場合には、該サービスを各々が単独のアクティビティを含む複数の補助サービスに分割する方法を採用しているが、根サービス、補助根サービス、及び単純サービスに対応する決定変数のみを含む制約式を作成することによって、こうした場合にもアクティビティの選択回数を間違いなくカウントすることが可能である。
図20は、サービス間の関係に関する制約条件2を作成するための処理である。例えば、前述の複合サービスのように、1つのサービスが複数のアクティビティを提供する場合には、この複合サービスを、各々が1つのアクティビティを含む複数の補助サービスに分割するが、このような複数の補助サービスは、最終的に旅行計画を作成するときに、すべての補助サービスが一括して選択されるか又は一括して選択されないようにしなければならない。すなわち、このような複数の補助サービスは相互に補完関係にあることになる。このことは、選択又は非選択を決める決定変数が、関連する補助サービスに関して等しいという条件、すなわち、互いに補完関係にある補助サービスi及びkが割り付け可能なスロットをそれぞれu及びvとすると、
Figure 2007265376
という式で表現することができる。
図20の処理は、補助サービス間の関係データ及び拡大利用可能リストを取得することで開始する(ステップ2001)。次いで、拡大利用可能リストから最初の拡大サービス・データ(拡大サービス・コードi及びそれに関連付けられたデータ)を読み込み(ステップ2002)、その拡大サービスが複合サービスの根サービス又は単純サービスであるかどうかを判断する(ステップ2004)。その拡大サービスが根サービス及び単純サービスではない場合には、ステップ2002に戻り、次の拡大サービス・データを読み込む。その拡大サービスが根サービス又は単純サービスである場合には、その拡大サービスiの決定変数集合を取得する(ステップ2005)。この処理によって、すべてのスロットについて、拡大サービスiの決定変数xi,*を集める。こうして集めた決定変数の集合から決定変数xi,jを1つ読み込み(ステップ2006)、該拡大サービスiを根サービスとする補助サービスの関係データを読み込む(ステップ2008)。次いで、その拡大サービスiの補助サービスの拡大サービス・コードkを読み込み(ステップ2009)、すべてのスロットについて、該拡大サービスkの決定変数集合xk,*を取得する(ステップ2011)。次いで、xk,jがある場合には(ステップ2012)、xi,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は、図18の例においては、以下の(5)式となる。
Figure 2007265376
旅行計画を作成する際のさらに別の制約条件として考慮すべき事項に、時間の制約がある。旅行者が多くのアクティビティを必須アクティビティとして選択し、そのすべてを旅行計画に割り当てた場合に、選択された複数のアクティビティの実施に必要な総時間数が、それらのアクティビティを実施できる時間の総和を越えるようなことがあると、作成された旅行計画が実行不可能なものになる。このような現象を回避するために、(1)各々のスロットjに割り付けられるサービス(すなわち、アクティビティ)iの必要時間tの総和が、各々のスロットjの時間幅に一定の許容時間幅を加えた時間幅Tを超えないことを表す制約条件、及び/又は、(2)(システム管理者によって)指定された各々のスロット・タイプ集合S′について、旅行期間内における各々の日に、そのスロット・タイプ集合S′に含まれるスロット・タイプに割り付けられるサービスiの必要時間tの総和が、そのスロット・コード集合Sに含まれるスロット・タイプの時間幅の総和である総時間長に一定の許容時間幅を加えた時間幅Tを超えないことを表す制約条件、を構成する(T及びTの許容時間幅は、システム管理者用端末からシステム管理者が設定する)。これらの条件は、それぞれ以下の(6)式及び(7)式で表現することができる。ここで、集合S′は、後述するように、(7)で表される時間制約を作成したいスロット・タイプの集合であり、どのようなスロット・タイプの集合について制約条件を作成するかについては、システム管理者があらかじめ指定する。また、集合Sは、集合S′に含まれるスロット・タイプに対応するスロット・コードの集合である。(6)式及び(7)式のいずれか一方の制約条件を用いるか、又は両方の制約条件を用いるかについては、システム管理者があらかじめ設定する。
Figure 2007265376
Figure 2007265376
ここで、いずれの場合にも「許容時間幅」を加えているが、これは、アクティビティを実施する際の時間の余裕の程度を設定するものである。すなわち、このような許容時間幅を組み込んでおくことによって、あるスロットで実施されるアクティビティが長引いて、その後のスロットにずれ込むような場合でも、後ろのスロットのアクティビティ実施に大きな影響を与えないようにする効果がある。許容時間幅は、システム管理者用端末112からシステム管理者によって設定される。
図21は、スロットごとの時間幅に関する制約条件3を作成するための処理を示し、図22は、旅行日ごとの指定されたスロット集合S′の総時間幅に関する制約条件3′を作成するための処理を示す。図21の処理は、スロット表、拡大利用可能リスト、及び旅程表を取得することで開始する(ステップ2101)。次いで、旅程表から最初のスロット・コードjを読み込み(ステップ2102)、このスロットjに対応する決定変数x*,jの集合を取得する(ステップ2104)。その集合から決定変数xi,jを1つ読み込み(ステップ2105)、拡大サービス・コードiに対応するサービス(すなわちアクティビティ)の必要時間tを取得し、tとxi,jの積t・xi,jを作成し(ステップ2107)、ステップ2105に戻って次の決定変数xi+1,jを読み込む。決定変数xi+1,jについても同様にti+1・xi+1,jを作成して、このti+1・xi+1,jをt・xi,jに加える。このように、ステップ2105〜2107を繰り返して、
Figure 2007265376
を作成し、スロットjについて読み込むべき決定変数がなくなったら(ステップ2106)、該スロットjの時間幅Tを算出する(ステップ2109)。このTは、スロット表(図5)の開始時刻及び終了時刻から算出する。次いで、そのスロットjの許容時間幅を読み込み(ステップ2110)、上記(8)式≦T+(許容時間幅)となる制約条件式を作成する(ステップ2111)。次いで、ステップは2102に戻り、次のスロット・コードj+1を読み込み、ステップ2104〜2111を繰り返す。すべてのスロットjについてステップ2102〜2111を行った後、処理は終了する(ステップ2112)。
以上の処理を行うことによって、スロットごとの時間幅に関する制約条件を表す、(6)式で表現される制約条件3が得られる。制約条件3は、図18の例においては、以下の(9)式となる。
Figure 2007265376
Figure 2007265376
図22の処理は、スロット集合表、決定変数集合、旅行期間表、及び旅程表を取得することで開始する(ステップ2201)。スロット集合表は、(7)式で表される時間制約を作りたいスロット・タイプの集合S′を記述したものであり、どのようなスロット・タイプの集合について制約条件を設定するかをシステム管理者があらかじめ決定し、記述するデータである。例えば、午前から午後までの時間帯について時間制約条件を作りたい場合には、スロット集合を{C,D,E}とし、午前と午後の時間帯について時間制約条件を作りたい場合には、スロット集合を{C,E}とし、1日について時間制約条件を作りたい場合には、スロット集合を{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 2007265376
を作成する。読み込むべきスロット・コードがなくなったら(ステップ2210)、上記(10)式≦Tとなる制約条件式を作成する(ステップ2215)。次いで、ステップは2205に戻って、旅行期間表から次の日付を読み込み、ステップ2207〜2215を繰り返す。すべての日付についてステップ2205〜2215を行った後、次のスロット集合S′を読み取り、ステップ2204〜ステップ2215を繰り返し、すべてのスロット集合について(10)式を作成した後、処理は終了する(ステップ2216)。
以上の処理を行うことによって、旅行日ごとの指定されたスロット集合の総時間幅に関する条件を表す、(7)式で表現される制約条件3′が得られる。例えば、制約条件を作成するスロット集合として日ごとのスロットを指定したとすると、1日の総時間幅に対する制約条件3′は、図18の例においては、以下の(11)式となる。
Figure 2007265376
この例においては、各スロットの許容時間は30分としている。例えば、(9)式の第1式は、スロット・コードj=1のスロット(すなわちスロット・タイプE)の時間幅に関する制約条件であり、スロット・タイプEの時間の長さは180分であるが、この式においては、そのスロットの時間幅に許容時間を30分加算し、上限を210分として設定している。このように設定することができるのは、本発明においては、サービスの必要時間そのものが曖昧性を含んでいることを前提としているからである。
なお、本発明の旅行計画作成方法において組み合わせることが可能な制約条件は、上述の制約条件に限定されるものではない。例えば、スロットごとの時間幅に関する制約条件を使用せずに、一日に選択されるサービスの総必要時間が最初のスロット開始から最後のスロット終了までの時間に収まればよいものとし、上記の(6)式で表される制約条件を使用しないことも考えられるであろう。
6.目的関数構成方法
以上のようにして制約条件の組を構成した後、混合整数計画問題を解くための演算プログラムを使用することによって自動的に作成される旅行計画の評価特性を表す目的関数を構成する。評価特性として、例えば、旅行期間内に実施されるサービスの価格の総額が旅行予算額の範囲内であること、又は、旅行期間内にできるだけ多くのアクティビティが含まれること、などが考えられるが、これらに限定されるものではない。例えば、評価特性として、旅行期間内に実施されるサービスの価格の総額が一定の範囲に含まれること、又は、旅行者が希望するアクティビティの実施スケジュールが、旅行期間内に均等に分散する(又は、できるだけ集中する)ようにすること、などが考えられる。
本実施形態においては、予算に関する特性と、時間に関する特性と、アクティビティ数に関する特性とを組み込んだ以下の目的関数(評価式ともいう)、
Figure 2007265376
を作成し、上述の制約条件の下でこの目的関数を最小化するような最適解を求める場合を考える。この式において、y、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が補助根サービスではない場合には、xi,*ごとにpとxi,*の積p・xi,*を作り、これをすべてのjについて繰り返して、拡大サービスiについてΣpi,jを作成する(ステップ2309)。次いで、ステップは2302に戻り、次の拡大サービス・データを読み込み、ステップ2304〜2309を繰り返す。
すべての拡大サービスについてステップ2302〜2309を行い、読み込むべき拡大サービス・コートがなくなったら(ステップ2303)、旅行者が入力した旅行条件データから1人あたり予算額Bを読み込み(ステップ2310)、以下の(13)式を作成し(ステップ2311)、次いで、非負の変数y及びyを導入してこの(13)式を以下の制約式(14)に変形する(ステップ2112)。ここで、y及びyは、それぞれ価格の不足分及び超過分を表す変数であり、これらの値の和y+yを小さくすれば予算額Bに近い旅行計画が作成されることになる。
Figure 2007265376
Figure 2007265376
次に、別の変数Nを導入して、
Figure 2007265376
を作成する(ステップ2313)。ここでNは、アクティビティの数を表す変数であり、この値を小さくすれば多くのアクティビティが組み込まれた旅行計画が作成されることになる。次いで、非負の1以下の変数xを導入して、制約条件3及び3′のうちシステム管理者があらかじめ指定した式(6)及び/又は(7)を、
Figure 2007265376
及び/又は、
Figure 2007265376
となるように変形する(ステップ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)式に例示した制約条件)との下で、目的関数(例えば、(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 (16)

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

* 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 旅行プラン作成装置、旅行プラン作成システム、旅行プラン要求端末及びプログラム
JP2014119991A (ja) * 2012-12-17 2014-06-30 Ntt Docomo Inc 訪問先提案装置及び訪問先提案方法
JP2016085691A (ja) * 2014-10-28 2016-05-19 松之進 山口 情報処理装置、情報処理方法及びプログラム
JP2018018462A (ja) * 2016-07-29 2018-02-01 富士通株式会社 旅程編集処理プログラム

Cited By (5)

* 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 旅行プラン作成装置、旅行プラン作成システム、旅行プラン要求端末及びプログラム
JP2014119991A (ja) * 2012-12-17 2014-06-30 Ntt Docomo Inc 訪問先提案装置及び訪問先提案方法
JP2016085691A (ja) * 2014-10-28 2016-05-19 松之進 山口 情報処理装置、情報処理方法及びプログラム
JP2018018462A (ja) * 2016-07-29 2018-02-01 富士通株式会社 旅程編集処理プログラム

Also Published As

Publication number Publication date
JP4268973B2 (ja) 2009-05-27

Similar Documents

Publication Publication Date Title
JP6385416B2 (ja) 旅行計画システム、旅行計画方法、及びプログラム
US20070073562A1 (en) System, method, and computer program product for providing travel information using information obtained from other travelers
US8032402B2 (en) Itinerary search tool for territory management
US20100169131A1 (en) System and Method For Providing Customized Travel Guides and Itineraries Over a Distributed Network
US20070094065A1 (en) Activity planning method and system
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
JP5633423B2 (ja) 情報処理方法、表示方法、情報処理装置、端末装置、及び情報処理プログラム
CN103460236A (zh) 信息提供装置、信息提供方法、信息提供程序及记录媒体
US10115076B2 (en) System and method employing capacity/demand management for human-factor resources
Lin et al. Crew rostering with multiple goals: An empirical study
JP4268973B2 (ja) 混合整数計画問題を用いて旅行計画を自動的に作成するための方法及びコンピュータ・プログラム
Altner et al. A two-stage stochastic program for multi-shift, multi-analyst, workforce optimization with multiple on-call options
US20220083983A1 (en) Schedule management service system and method
JP2009037568A (ja) スケジュール表作成装置、プログラム
JP5971895B2 (ja) 情報処理方法、表示方法、情報処理装置、端末装置、及びプログラム
Ozkarahan A disaggregation model of a flexible nurse scheduling support system
Krityakierne et al. Nurse-patient relationship for multi-period home health care routing and scheduling problem
Kutanoglu et al. Improving scheduling robustness via preprocessing and dynamic adaptation
JP6649235B2 (ja) 業務支援システム、業務支援装置、及びプログラム
KR102169110B1 (ko) 여행 일정 추천 서비스 제공 시스템 및 방법
WO2021059513A1 (ja) 検索システム、検索方法、及びプログラム
Er-Rbib et al. Integrated and sequential solution methods for the cyclic bus driver rostering problem
JP7306800B2 (ja) 旅行計画システム、旅行計画方法、及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A521 Written amendment

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