以下、本発明について、添付図面を参照しながらその一実施形態に即して説明する。本実施形態では、旅客の希望乗降駅に対する代案駅としての許容範囲を把握し、その許容範囲を営業キロで定量的に表した上で代案駅を抽出する。この許容範囲を、運賃計算算定の根拠となる営業キロを用いて定量的に表すため、既存の列車在庫管理ファイルを使用する。代案駅の抽出には列車在庫管理ファイルのキーの項目(キー項目、取得項目)を変更して得られる駅情報管理ファイルを使用する。本実施形態では、代替可能な範囲に含まれる候補駅を求めた上で、希望乗降時刻等の条件を満たす全ての候補駅について列車在庫照会(空席照会)を行う。
まず、本実施形態による発券支援システム1全体の構成について説明する。図1は、本実施形態における発券支援システム1の構成例を示す図である。本実施形態の発券支援システム1は、列車在庫管理装置10と複数の操作端末30とを備えている。列車在庫管理装置10と各操作端末30とは、通信ネットワーク20によって相互に通信可能に接続されている。列車在庫管理装置10は、鉄道会社の座席予約処理を管理するデータセンター等に設置され、旅客に提供可能な列車座席に関する情報(以下「列車在庫」という。)を格納している。本発券支援システム1の主要な機能は列車在庫管理装置10に実装されている。操作端末30は、駅、旅行会社等に設置され、係員あるいは旅客が操作する端末入出力装置である。通信ネットワーク20は、セキュリティの観点等から例えば適宜の通信プロトコルを採用する専用線を用いることができるが、特定の形式の通信回線に限定されることはない。
次に、列車在庫管理装置10について説明する。図2は、列車在庫管理装置10のシステム構成例を示す図である。本発券支援システム1の機能を実現すべく、列車在庫管理装置10は、送受信処理部1011、列車在庫照会処理部1012(照会処理部)、及び駅情報照会処理部1013(照会処理部)を有する処理部101と、列車在庫管理ファイル1021(列車在庫情報)、駅情報管理ファイル1022、及び内部作業用エリア1023を有する記憶部102(列車在庫情報記憶部)と、メモリ103と、通信ネットワーク20に接続するための通信インタフェース(通信I/F)部104とを備える。これらの要素間は、内部バスにより通信可能に接続されている。
処理部101はCPU(Central Processing Unit)等のプロセッサであり、プログラムとして構成されている送受信処理部1011、列車在庫照会処理部1012、及び駅情報照会処理部1013によるデータ処理を実行する。送受信処理部1011は、操作端末30からの要求受信処理、操作端末30への回答送信処理を行う機能を有する。列車在庫照会処理部1012は、操作端末30からの要求情報に基づき列車在庫管理ファイル1021を検索して列車在庫情報を取得する機能を有する。駅情報照会処理部1013は、駅情報管理ファイル1022から代案駅を取得する機能を有する。
記憶部102は、ハードディスクドライブ(HDD)、半導体ドライブ(SSD)等の記憶デバイスにより記憶領域を提供しており、前記のように、列車在庫管理ファイル1021、駅情報管理ファイル1022、及び内部作業用エリア1023を格納している。メモリ103は、例えばROM(Read Only Memory)、RAM(Random Access Memory)等の記憶デバイスで構成され、処理部101の主記憶装置として機能する。送受信処理部1011、列車在庫照会処理部1012、及び駅情報照会処理部1013の各プログラムは、記憶部102に格納しておき、必要に応じて処理部101がメモリ103上に読み出して実行させる。通信I/F104は、通信ネットワーク20の仕様に対応したインタフェース機能を提供するハードウェア(例えばNIC(Network Interface Card))を備えて構成される。なお、処理部101は、上記の本発券支援システム1の機能を有するプログラムの他に、運賃計算等の他の機能のための処理プログラムを実行することができるように構成することができる。また、列車在庫管理装置10には、表示モニタ、、プリンタ、タッチパネル、キーボード等の入出力デバイスを、必要に応じて設けることができる。
次に、本発券支援システム1の操作端末30について説明する。図3は、操作端末30のシステム構成例を示す図である。本発券支援システム1の機能を実現すべく、操作端末30は、入出力処理部3011(入力部、出力部)、送受信処理部3012を有する処理部301と、メモリ302と、入出力デバイス303(入力部、出力部)と、通信ネットワーク20に接続するための通信インタフェース(通信I/F)部304とを備える。これらの要素間は、内部バスにより通信可能に接続されている。
処理部301はCPU(Central Processing Unit)等のプロセッサであり、プログラムとして構成されている入出力処理部3011、及び送受信処理部3012によるデータ処理を実行する。入出力処理部3011は、後述する入出力デバイス303からのデータ入力に基づいて列車在庫管理装置10への端末要求を生成するとともに、列車在庫管理装置10からの回答から入出力デバイス303に出力する情報を生成する。送受信処理部3012は、列車在庫管理装置10との間での要求送信処理、回答受信処理を行う。メモリ302は、例えばROM(Read Only Memory)、RAM(Random Access Memory)等の記憶デバイスで構成され、処理部301の主記憶装置として機能する。入出力処理部3011、送受信処理部3012の各プログラムは、処理部301がメモリ302上で実行させる。なお、操作端末30には、HDD等の補助記憶装置を設けてもよい。また、処理部301は上記のプログラム以外の、操作端末30で必要とされる機能のためのプログラムを実行することができるように構成することができる。
入出力デバイス303は、操作端末30におけるデータ入力を受け付けるためのキーボード、タッチパネル等の入力デバイスと、表示モニタ、プリンタ等の出力デバイスを含む。通信I/F304は、通信ネットワーク20の仕様に対応したインタフェース機能を提供するハードウェア(例えばNIC(Network Interface Card))を備えて構成される。
次に、列車在庫管理装置10に格納されているデータについて説明する。図4は、列車在庫管理ファイル1021のデータ構造例である。列車在庫管理ファイル1021は、例えば、鉄道会社等の運転線区別、運転日別に、個別の列車ごとの停車駅、各駅の営業キロ程、出発時刻、到着時刻、各駅における座席在庫数、運転方向(下り/上り)等の項目を格納しており、本発券支援システム1を含む座席予約システムの基礎データを提供するファイルである。図4にはその一例として、東海道新幹線の列車在庫についてテーブル形式に構成されたものを示しており、12月30日に運転される「ひかり3号」(列車IDの例)の停車駅と、着発時刻、各停車駅において旅客に供給可能な座席在庫数が記録されている。座席在庫は、列車の利用可能な設備にしたがって、「普通在庫」と「グリーン在庫」とに区分されている。図4の例では、同列車の東京発において、普通席が1000、グリーン席が100供給可能であることが示されている。なお、図4の列車在庫管理ファイル1021は、本発券支援システム1の処理に必要な項目を例示しているもので、その構成は特にこれに限定されるものではない。
図5は、操作端末30から受信する検索キーにより、図4の列車在庫管理ファイル1021を検索した結果得られる検索結果例である。操作端末30からの要求情報を検索キー10211として列車在庫管理ファイル1021を検索することにより、取得情報10212を取得することができる。検索キー10211は、例えば乗車日102111、乗車時刻102112、乗車駅102113、降車駅102114、列車名102115、及び列車設備102116の項目を含む。検索キー10211は、旅客の要望を係員が聞き取って、あるいは旅客自身が操作して操作端末30に入力する情報である。乗車日102111には検索対象の乗車日を設定する。乗車時刻102112には検索対象の乗車時刻を設定する。例えば18時以降に出発する列車を検索対象としたい場合、乗車時刻102112には18:00と設定する。乗車駅102113には検索対象の第一希望の乗車駅を設定する。例えば新横浜を第一希望とする場合はその駅名を設定する。降車駅102114には第一希望の降車駅を設定する。例えば京都駅を第一希望とする場合はその駅名を設定する。列車名102115には検索対象の列車名を設定する。列車名とは、例えばのぞみ・ひかり等の列車名称であるが、列車番号等の他の項目によって指定してもよい。列車設備102116には検索対象の列車設備を設定する。列車設備とは、例えば自由席・指定席・グリーン席・個室などを示す。
取得情報10212は、検索キー10211により列車在庫管理ファイル1021を検索して取得される情報である。列車番号102121は、例えばのぞみ3号の場合には符号3を示す。残り在庫102122は検索対象の列車における残り在庫(供給可能な座席)数を示す。降車時刻102123はその列車の降車駅102114への到着時刻を示す。図5の例のように、例えばのぞみ3号が降車駅である名古屋駅に到着する予定時刻として、20:10等と記録される。営業キロ102124は該当列車の乗車駅から降車駅までの換算営業キロを示す。上り/下り102125はその列車の進行方向を示す。運賃102126は検索キー10211に該当する列車に乗車した場合の運賃の金額を示す。運賃102126は、例えば列車在庫管理装置10に運賃計算処理を実行するプログラムを実装することにより実現可能であるが、本発券支援システム1の機能とは直接関連しないため、詳細は省略する。
図5は駅情報管理ファイル1022のデータ構造例である。駅情報管理ファイル1022は、旅客が希望する降車駅を固定した場合に、乗車候補となる駅名を取得するのに使用するファイルである。駅情報管理ファイル1022は、列車在庫管理ファイル1021を、検索キー10221で検索することにより生成することができる。検索キー10221は、乗車日102211、駅102212、列車名102213、列車設備102214、営業キロ102215、及び上り/下り102216の各項目を含む。乗車日102211には検索対象の乗車日を設定する。駅102212には検索対象の固定駅(旅客の第一希望降車駅)を設定する。列車名102213には検索対象の列車名を設定する。例えば、のぞみ・ひかりのみ希望する場合はそのように設定する。列車設備102214には検索対象の列車設備を、例えば自由席・指定席・グリーン席・個室等で示す。営業キロ102215には固定駅(駅102212)から乗車候補駅までの営業キロを設定する。上り/下り102216には乗車候補駅から固定駅(駅102212)への進行方向を設定する。取得情報10222は、乗車候補となる駅名を含む。駅102221は検索キー10221による検索条件に合致する駅名を示す。例えば新横浜から50キロ圏内で上り方面にある駅は東京、品川などである。具体的な検索手順については、処理フロー例に基づいて後述する。
次に、列車在庫管理装置10に対して操作端末30から入力される要求データのフォーマットについて説明する。図7は操作端末30から列車在庫管理装置10に入力される端末要求フォーマット100(以下「端末要求100」)の構成例である。利用希望情報である端末要求100は、係員の操作により、あるいは旅客自身の操作により操作端末30に入力されたデータに基づいて、列車在庫管理装置10に対して与えられる列車在庫照会に関する問い合わせデータを記録しており、代案許可フラグ1001、乗車日1002、乗車時刻1003、降車時刻1004、乗車駅1005、降車駅1006、列車名1007、列車設備1008、代案乗車駅名(始)1009、代案乗車駅名(終)1030、代案降車駅名(始)1031、及び代案降車駅名(終)1032の各項目を有する。代案許可フラグ1001は、希望列車の第一希望の乗車駅のみではなく、希望乗車駅に近い他の乗車候補駅に関する代案提示を許可する時に、操作端末30からの代案許可入力に応じてONとなる。例として、第一希望乗車駅が新横浜であった場合、新横浜乗車だけではなく、新横浜乗車列車が満席の場合、東京・品川等の新横浜に近い駅の代案も許可するといった場合に、フラグONとなる。乗車日1002は端末入力された照会列車の乗車日を示す。乗車時刻1003は端末入力された照会列車の希望乗車時刻を示し、この時刻より後の列車を照会する。降車時刻1004は端末入力された照会列車の降車時間帯を示し、この時刻より前の列車を照会する。乗車駅1005は端末入力された照会列車の第一希望乗車駅を示す。降車駅1006は端末入力された照会列車の第一希望降車駅を示す。列車名1007は端末入力された照会列車名を示し、複数設定可能である。列車設備1008は端末入力された照会列車の設備を示し、複数設定可能である。代案乗車駅名(始)1009は端末入力された顧客許容範囲内の乗車駅名始点を示す。例えば、第一希望は新横浜乗車であるが、東京乗車までは許可する場合、東京を設定する。代案乗車駅名(終)1030は端末入力された顧客許容範囲内の乗車駅名終点を示す。例えば、第一希望は新横浜乗車であるが、小田原乗車までは許容する場合、小田原を設定する。代案降車駅名(始)1031は端末入力された顧客許容範囲内の降車駅名始点を示す。例えば、第一希望は京都降車であるが、名古屋降車までなら許可する場合、名古屋を設定する。代案降車駅名(終)1032は端末入力された顧客許容範囲内の降車駅名終点を示す。例えば、第一希望は京都降車であるが、新大阪降車までなら許可する場合、新大阪と設定する。なお、本実施形態の端末要求100では列車名1007を設定しているが、列車名1007を指定することなく、乗車日1002、乗車時刻1003、降車時刻1004、乗車駅1005、及び降車駅1006を指定することにより、なんらかの列車在庫があるか検索することもできる。
次に、図7の端末要求に対して列車在庫管理装置10から操作端末に返される端末回答フォーマット200(以下「端末回答200」)について説明する。図8は、列車在庫管理装置10から操作端末30に返される端末回答200の構成例であり、この回答内容をそのまま、あるいはその一部を操作端末30の入出力デバイス303を介して出力することができる。端末回答200は、例えば、エントリ番号2001、代案フラグ2002、乗車日2003、乗車時刻2004、降車時刻2005、乗車駅2006、降車駅2007、列車名2008、列車設備2009、列車番号2010、運賃2011、及び残り在庫2012の各項目を備えている。エントリ番号2001は、例えば、照会結果が複数あった場合に各結果に割り当てられる項番を示す。代案フラグ2002は該当する照会結果が希望乗降駅に対する代案である場合にONされ、対応する乗降駅が第一希望ではなく許容範囲内の代替駅名であることを示す。乗車日2003は照会の結果、在庫があった列車の乗車日を示し、端末要求に含まれる乗車日1002と同一である。乗車時刻2004は照会の結果、在庫があった列車の乗車時刻(発車時刻)を示す。降車時刻2005は照会の結果、在庫があった列車の降車時刻(到着時刻)を示す。乗車駅2006は照会の結果、在庫があった列車の乗車駅を示す。降車駅2007は照会の結果、在庫があった列車の降車駅を示す。列車名2008は照会の結果、在庫があった列車の列車名を示す。列車設備2009は照会の結果、在庫があった列車の列車設備を示す。列車番号2010は照会の結果、在庫があった列車の列車番号を示す。運賃2011は照会の結果、在庫があった列車の乗車区間に対して発生する運賃の金額を示す。残り在庫2012は照会の結果、在庫があった列車に関して列車在庫管理装置10に記録されている残り在庫(残り座席数)を示す。なお、端末回答200に含まれている列車番号2010、残り在庫2012、降車時刻2005、及び運賃2011の各項目は、図5の検索結果例における取得情報10212の同一項目に対応する。また、乗車駅2006は、図6の駅情報管理ファイル1022の取得情報10222に対応する。
次に、図7の端末要求100に記録されている内容に基づいて、列車在庫管理装置10での具体的なデータ処理に利用するために、列車在庫管理装置10内に一時的に設定される内部作業用エリア1023について説明する。図9は、内部作業用エリア1023のデータ構造例である。列車在庫管理装置10での作業用に一時退避する項目、判定用フラグ等は本エリアに格納される。内部作業用エリア1023には、営業キロ102311、上り/下り102312、代案乗車営業キロ上限102313、代案乗車営業キロ下限102314、代案降車営業キロ上限102315、代案降車営業キロ下限102316、候補代案下限営業キロ102317、候補代案上限営業キロ102318、候補代案乗車駅102319、候補代案降車駅102320、エントリ番号102321、ループエンドフラグ(以下「ループエンドF」)102322、代案フラグ102323、乗車駅102324、及び降車駅102325の各項目が格納される。営業キロ102311は、後述する在庫サーチ処理で取得した営業キロを一時退避するエリアである。上り/下り102312は、在庫サーチ処理で取得した上り/下りを一時退避するエリアである。代案乗車営業キロ上限102313は、後述する代案営業キロサーチ処理で取得した代案乗車駅(始点)と希望する乗車駅間の営業キロ数を一時退避するエリアである。代案乗車営業キロ下限102314は、代案営業キロサーチ処理で取得した代案乗車駅(終点)と希望する乗車駅間の営業キロ数を一時退避するエリアである。代案降車営業キロ上限102315は、代案営業キロサーチ処理で取得した代案降車駅(終点)と希望する降車駅間の営業キロ数を一時退避するエリアである。代案降車営業キロ下限102316は、代案営業キロサーチ処理で取得した代案降車駅(始点)と希望する降車駅間の営業キロ数を一時退避するエリアである。候補代案下限営業キロ102317は、後述する代案駅サーチ処理で使用する代案として許容範囲内の下限営業キロ数を一時退避するエリアである。候補代案上限営業キロ102318は、代案駅サーチ処理で使用する代案として許容範囲内の上限営業キロ数を一時退避するエリアである。候補代案乗車駅102319は、駅情報管理ファイル1022から取得した代案として許容範囲内の候補乗車駅のリストを格納するエリアである。候補代案降車駅102320は、駅情報管理ファイル1022から取得した代案として許容範囲内の候補降車駅のリストを格納するエリアである。エントリ番号102321は、在庫サーチ処理で照会結果のカウントアップ用に使用するエリアである。ループエンドF102322は、在庫サーチ処理で処理判定用に使用するフラグである。代案フラグ102323は、代案102319、102320が記録されている場合にONされるフラグである。乗車駅102324は、在庫サーチ処理で使用する第一希望乗車駅である。降車駅102325は、在庫サーチ処理で使用する第一希望降車駅である。なお、列車在庫管理装置10内での内部作業用パラメータについては、例示の内部作業用エリア1023の構成に限定されることなく、後述する処理内容に応じて適宜設定することができる。
続いて、本発券支援システム1の機能を実現するための処理シーケンスについて順次説明する。まず、本発券支援システム1全体の処理の流れを説明し、次いで、操作端末30、列車在庫管理装置10での処理の詳細について説明する。図10は、本発券支援システム1において操作端末30から列車在庫管理装置10に対して、乗降駅に関する代案提示要求を含む空席照会(列車在庫照会)を実行する場合の処理シーケンスである。まず、旅客又は係員が操作端末30にて入力した要求情報を受け付けて(S310)、画面上の照会実行ボタン押下げ等により、操作端末30から列車在庫管理装置10へ端末要求100が送信される(S320)。列車在庫管理装置10では、端末要求100を受信した後(S1010)、端末要求100の照会内容に基づき、列車在庫管理装置10で保持している列車在庫管理ファイル1021に対して在庫サーチを行う(S1020)。在庫サーチ後、列車在庫管理装置10では、代案駅検索に必要な営業キロ数を取得するため、列車在庫管理ファイル1021に対して代案営業キロサーチを行う(S1030)。代案営業キロ数を取得した後、候補となる代案駅を求めるため、列車在庫管理装置10で保持している駅情報管理ファイル1022に対して代案駅サーチを行う(S1040)。代案駅を求めた後、取得した駅名に対して代案在庫サーチを行う(S1050)。列車在庫管理装置10は、以上で取得した在庫情報を回答200として操作端末30に送信する(S1060)。操作端末30では、受信した照会結果を入出力デバイス303に画面表示等により出力する(S330、S340)。
続いて、図10の全体処理フローにおいて実行される個々の処理フローについて詳細に説明する。まず、操作端末30の処理部301によって実行される処理フローについて説明する。図11は、操作端末30の入出力処理部3011、送受信処理部3012が実行する処理フロー例を説明するためのフローチャートである。操作端末30は、旅客あるいは係員の操作開始入力等を受け付けて処理を開始する(S30)。操作端末30の入出力処理部3011は、入出力デバイス303を通じて入力される、空席照会したい列車情報を受け付ける(S31)。列車情報は、図7に例示した端末要求例に記載されている項目を含む。送受信処理部3012は、入力された情報を端末要求100に設定し、列車在庫管理装置10に送信する(S32)。その後、送受信処理部3012は、列車在庫管理装置10が空席照会した結果である回答200を受信する(S33)。入出力処理部3011は、その受信した結果に基づき入出力デバイス303に画面表示するなどして出力して処理を終了する(S34、S35)。以上の操作端末30での処理により、旅客、係員等は、希望の列車に関する座席があるか、希望乗降駅に対する代替候補も含めて照会結果を得ることができる。
次に、列車在庫管理装置10において実行される処理について説明する。図12は、列車在庫管理装置10での全体処理を説明するためのフローチャートである。まず、送受信処理部1011は、操作端末30からの要求情報を受信し、必要な項目を内部作業用エリア1023に設定する(S11)。ここでは、内部作業用エリア1023では、乗車駅1005を乗車駅102324に、降車駅1006を降車駅102325に設定する。次いで、列車在庫照会処理部1012は、操作端末30からの要求情報に基づき、列車在庫管理ファイル1021に対して希望する列車の在庫サーチ処理を行う(S12)。在庫サーチした結果、希望する列車の在庫があった場合は(S13、Yes)、結果を送受信処理部1011に引き渡して回答送信を行う(S18)。希望する列車の在庫がないと判定した場合(S13、No)、列車在庫照会処理部1012は、内部作業用エリア1023を参照して代案許可フラグがONかどうかの判定をする(S14)。代案許可フラグがONでないと判定した場合(S14、No)、列車在庫照会処理部1012は、送受信処理部1011に処理を引き渡して在庫なしとの結果を回答させる(S18)。S14において代案許可フラグがONであると判定した場合(S14、Yes)、列車在庫照会処理部1012は、操作端末30からの要求情報を検索キーにして、列車在庫管理ファイル1021に対して代案営業キロサーチを行う(S15)。次いで、駅情報照会処理部1013は、S15で取得した営業キロ等を検索キーに設定し、駅情報管理ファイル1022に対して代案駅サーチを行う(S16)。さらに、列車在庫照会処理部1012は、S15で取得した代案駅と操作端末30からの要求情報に基づき、代案在庫サーチを行う(S17)。列車在庫照会処理部1012は、S17での代案在庫有無の結果を送受信処理部1011に引き渡して回答200を生成し操作端末30に送信して処理を終了する(S18、S19)。以上の列車在庫管理装置10での処理によれば、操作端末30からの要求に応じて、第一希望乗降駅に対する代替候補駅を含めた照会結果を提供することができ、旅客に対するサービス向上、駅係員の利便性向上を図ることができる。
次に、図12に例示した列車在庫管理装置10の全体処理フローに含まれる個別の処理について、処理フロー例を参照して説明する。図13は、列車在庫管理装置10の在庫サーチ処理S12を詳細に説明するためのフローチャートである。在庫サーチ処理S12は、4つのループ処理を含む。第1のループでは、最初に内部作業用エリア1023のエントリ番号102321を0クリアし、エントリ番号102321がエントリ番号2001の最大値と一致するか、ループ終了条件と合致したことを表すループエンドF102322=ONが成立するまで処理を繰り返す(S1201〜S1219)。第2のループでは、端末要求100の列車名1007が複数設定可能なため、1エントリ目からエントリがなくなるか、ループエンドF102322=ONになるまで各列車名での処理を繰り返す(S1202〜S1218)。第3のループでは、端末要求100の列車設備1008が複数設定可能なため、1エントリ目からエントリがなくなるか、ループエンドF102322=ONになるまで、各列車設備について処理を繰り返す(S1203〜S1217)。第4のループでは、端末要求100の乗車時刻1003を検索開始時刻として、ループエンドF102322=ONになるまで処理を繰り返す(S1204〜S1216)。以上のループ処理で実行される処理フローについて説明すると、まず、列車在庫照会処理部1012は、図5に例示した列車在庫管理ファイル1021の検索キー10211を、端末要求100、内部作業用エリア1023の各情報を元に設定する。具体的には、乗車日1002を乗車日102111に、乗車時刻1003を乗車時刻102112に、乗車駅102324を乗車駅102113に、降車駅102325を降車駅102114に、列車名1007を列車名102115に、列車設備1008を列車設備102116に設定する(S1205)。
次に、列車在庫照会処理部1012は、S1205で設定した項目を検索キーとして、列車在庫管理ファイル1021をファイルサーチし(S1206)、取得した情報のうち、営業キロ102124、上り/下り102125を、代案提示に必要な情報として、内部作業用エリア1023の営業キロ102311、上り/下り102312に退避しておく(S1207)。列車在庫照会処理部1012は、ファイルサーチした結果、在庫があるか判定し(S1208)、あると判定した場合はS1210の処理に移る(S1208、Yes)。在庫がないと判定した場合(S1208、No)、列車在庫照会処理部1012は乗車時刻を時刻の最小単位(例えば1分)でカウントアップし(S1209)、S1201から次のエントリのループを行う。在庫があったと判定した場合、列車在庫照会処理部1012は、取得した列車の降車時刻が端末要求100に設定されている降車時刻以前か判定する(S1210)。要求降車時刻後であった場合(S1210、No)、乗車時刻をそれ以上カウントアップしても降車時刻は要求範囲外のため、ループ終了条件成立と判定し、ループエンドF102322をONにする(S1211)。この場合、処理はそのまま終了する(S1220)。次いで、列車在庫照会処理部1012は、取得した在庫情報を端末回答200の各情報に設定する(S1212)。具体的には、内部作業用エリア1023のエントリ番号102321をカウントアップし、エントリ番号2001に設定する。また、代案フラグ102323がONの場合、代案であると判別し、回答200の代案フラグ2002をONにする。さらに、列車在庫照会処理部1012は、乗車日102111を乗車日2003に、乗車時刻102112を乗車時刻2004に、降車時刻102123を降車時刻2005に、乗車駅102113を乗車駅2006に、降車駅102114を降車駅2007に、列車名102116を列車名2008に、列車設備102116を列車設備2009に列車番号102121を列車番号2010に、運賃102126を運賃2011に、残り在庫102122を残り在庫2012に設定する。これにより、一つのエントリに関する回答200が生成される。
次いで、列車在庫照会処理部1012は、あらかじめ回答件数の最大値として設定されている端末回答最大エントリに達したか判別し(S1213)、最大エントリであると判定した場合(S1213、Yes)、ループエンドF102322をONにし(S1215)、処理を終了する。最大エントリでないと判定した場合(S1213、No)、列車在庫照会処理部1012は乗車時刻をカウントアップし(S1214)、乗車時刻がループ終了条件になったら第4のループ処理を終了する(S1216)。同様に、列車在庫照会処理部1012は、列車設備がループ終了条件になったら第3のループ処理を終了し(S1217)、列車名がループ終了条件になったら第2のループ処理を終了し(S1218)、エントリ番号がループ終了条件になったら第1のループ処理を終了する(S1219)。
以上の在庫サーチ処理により、列車在庫管理装置10において、操作端末30から端末要求100によって照会された条件に合致する列車の在庫があるか判定し、該当する列車在庫に関する端末回答200を生成することができる。
次に、列車在庫管理装置10における代案営業キロサーチ処理について説明する。図14は、図12に例示した全体処理フローにおける代案営業キロサーチ処理S15を詳細に説明するためのフローチャートである。代案営業キロサーチ処理は、操作端末30からの要求が乗降駅に関して代案の提示を許可している場合に、候補駅選定の数量的な基準となる営業キロを算定するために実行される。まず、列車在庫照会処理部1012は、端末要求100に代案乗車駅名(始)1009が設定されているか判定し(S1501)、設定されていた場合はS1502の処理に移る。代案乗車駅名(始)1009が設定されていないと判定した場合(S1501)、列車在庫照会処理部1012は、代案乗車駅名(始)1009に対する営業キロサーチは行わず、S1505の処理に移る。代案乗車駅名(始)1009がある場合、列車在庫照会処理部1012は、列車在庫管理ファイル1021の検索キー10211を端末要求100の各情報を元に設定する(S1502)。ここでは、図7の例で示すと、代案乗車駅名(始)1009の東京から乗車駅1005の新横浜までの営業キロ数を算出しようとしている。列車在庫照会処理部1012は、乗車日1002を乗車日102111に、乗車時刻1003を乗車時刻102112に、代案乗車駅名(始)1009(図7の例では東京)を乗車駅102113に、乗車駅1005(図7の例では新横浜)を降車駅102114に、列車名1007を列車名102115に、列車設備1008を列車設備102116に設定する。列車在庫照会処理部1012は、S1502で設定した項目を検索キーとして、列車在庫管理ファイル1021をファイルサーチする(S1503)。その結果取得した情報のうち、営業キロ102124は代案提示に必要な情報のため、内部作業用エリア1023に代案乗車営業キロ上限102313として退避しておく(S1504)。
次に、列車在庫照会処理部1012は、端末要求100に代案乗車駅名(終)1030が設定されているか判定し(S1505)、設定されていた場合はS1506の処理に移る。代案乗車駅名(終)1030が設定されていないと判定した場合(S1505、No)、列車在庫照会処理部1012は、代案乗車駅名(終)1030に対する営業キロサーチは行わず、S1506の処理に移る。代案乗車駅名(終)1030がある場合、列車在庫照会処理部1012は、列車在庫管理ファイル1021の検索キー10211を端末要求100の各情報を元に設定する(S1506)。ここでは、図7の例で示すと、乗車駅1005の新横浜から代案乗車駅名(終)1030の小田原までの営業キロ数を算出しようとしている。列車在庫照会処理部1012は、乗車日1002を乗車日102111に、乗車時刻1003を乗車時刻102112に、乗車駅1005(図7の例では新横浜)を乗車駅102113に、代案乗車駅名(終)1030(図7の例では小田原)を降車駅102114に、列車名1007を列車名102115に、列車設備1008を列車設備102116に設定する。列車在庫照会処理部1012は、S1506で設定した項目を検索キーとして、列車在庫管理ファイル1021をファイルサーチする(S1507)。その結果取得した情報のうち、営業キロ102124は代案提示に必要な情報のため、内部作業用エリア1023に代案乗車営業キロ下限102314として退避しておく(S1508)。
次に、列車在庫照会処理部1012は、端末要求100に代案降車駅名(始)1031が設定されているか判定し(S1509)、設定されていた場合はS1510の処理を続ける。代案降車駅名(始)1031が設定されていないと判定した場合(S1509、No)、列車在庫照会処理部101は、代案降車駅名(始)1031に対する営業キロサーチは行わず、S1513の処理に移る。代案降車駅名(始)1031がある場合、列車在庫照会処理部1012は、列車在庫管理ファイル1021の検索キー10211を端末要求100の各情報を元に設定する(S1510)。ここでは、図7の例で示すと、代案降車駅名(始)1031の名古屋から降車駅1006の京都までの営業キロを算出しようとしている。列車在庫照会処理部1012は、乗車日1002を乗車日102111に、乗車時刻1003を乗車時刻102112に、代案降車駅名(始)1031(図7の例では名古屋)を乗車駅102113に、降車駅1006(図7の例では京都)を降車駅102114に、列車名1007を列車名102115に、列車設備1008を列車設備102116に設定する。列車在庫照会処理部1012は、S1510で設定した項目を検索キーとして、列車在庫管理ファイル1021をファイルサーチする(S1511)。その結果取得した情報のうち、営業キロ102124は代案提示に必要な情報のため、内部作業用エリア1023に代案降車営業キロ下限102316として退避しておく(S1512)。
次に、列車在庫照会処理部1012は、端末要求100に代案降車駅名(終)1032が設定されているか判定し(S1513)、設定されていると判定した場合はS1514の処理に移る。代案降車駅名(終)1032が設定されていないと判定した場合(S1513、No)、列車在庫照会処理部1012は、代案降車駅名(終)1032に対する営業キロサーチは行わず、処理を終了する(S1517)。代案降車駅名(終)1032がある場合、列車在庫照会処理部1012は、列車在庫管理ファイル1021の検索キー10211を端末要求100の各情報を元に設定する(S1514)。ここでは、図7の例で示すと、降車駅1006の京都から代案降車駅名(終)1032の新大阪までの営業キロを算出しようとしている。列車在庫照会処理部1012は、乗車日1002を乗車日102111に、乗車時刻1003を乗車時刻102112に、降車駅1006を乗車駅102113に、代案降車駅名(終)1032を降車駅102114に、列車名1007を列車名102115に、列車設備1008を列車設備102116に設定する。列車在庫照会処理部1012は、S1514で設定した項目を検索キーとして、列車在庫管理ファイル1021をファイルサーチする(S1515)。その結果取得した情報のうち、営業キロ102124は代案提示に必要な情報のため、内部作業用エリア1023に代案降車営業キロ上限102315として退避しておく(S1516)。以上の代案営業キロサーチ処理により、乗車駅の許容範囲、降車駅の許容範囲が、それぞれ営業キロで定量的に設定されることになる。
次に、図12の列車在庫管理装置10の全体処理フローにおける代案駅サーチ処理S16について説明する。図15は、列車在庫管理装置10の代案駅サーチS16を詳細に説明するためのフローチャートである。代案駅サーチ処理は駅情報照会処理部1013によって実行され、代案営業キロサーチ処理で求められた乗降駅代案候補の営業キロ範囲により具体的に代案候補駅名を特定するための処理である。
S1600で処理を開始すると、駅情報照会処理部1013は、内部作業用エリア1023において、(営業キロ102311)−(代案乗車営業キロ下限102314)を候補代案下限営業キロ102317に設定する(S1601)。これは図7の例で示すと、新横浜から京都の営業キロは180キロであり、新横浜から小田原までの営業キロを代案乗車営業キロ下限102314として30キロと仮定すると、候補代案下限営業キロ102317は180−30=150キロとなる。同様に、駅情報照会処理部1013は、内部作業用エリア1023において、(営業キロ102311)+(代案乗車営業キロ上限102313)を候補代案上限営業キロ102318に設定する(S1602)。これは図7の例で示すと、新横浜から京都の営業キロは180キロであり、東京から新横浜までの営業キロを代案乗車営業キロ上限102313として10キロと仮定すると、候補代案上限営業キロ102318は180+10=190キロとなる。次いで、駅情報照会処理部1013は、候補代案乗車駅を求めるループを候補代案下限営業キロ102317から候補代案上限営業キロ102318まで行う(S1603〜S1608)。駅情報照会処理部1013は、駅情報管理ファイル1022の検索キー10221を端末要求100と内部作業用エリア1023の各情報を元に設定する(S1604)。具体的には、乗車日1002を乗車日102111に、降車駅1006を駅102212に、列車名1007を列車名102213に、列車設備1008を列車設備102214に、候補代案下限営業キロ102317を営業キロ102215に、上り/下り102312の反対(上り/下り102312=上りなら下り)を上り/下り102216に設定する。
駅情報照会処理部1013は、S1604で設定した項目を検索キーとして、駅情報管理ファイル1022をファイルサーチし(S1605)、取得した駅102221を候補代案乗車駅102319に設定する(S1606)。その後、駅情報照会処理部1013は、候補代案下限営業キロ102317を所定の単位(例えば1km)でカウントアップし(S1607)、候補代案上限営業キロ102318に達したらループ処理を終了する(S1608)。S1603〜S1608の処理を図7の例で示すと、京都駅から上り東京方面に150キロ(候補代案下限営業キロ102317)の駅があった場合は候補代案乗車駅102319に設定する。150キロ(候補代案下限営業キロ102317)から営業キロの所定単位でカウントアップし、190キロ(候補代案上限営業キロ102318)に達するまでに一致した候補代案乗車駅102319をリストアップしていく処理になる。
次いで、駅情報照会処理部1013は、内部作業用エリア1023において、(営業キロ102311)−(代案降車営業キロ下限102316)を候補代案下限営業キロ102317に設定する(S1609)。これは図7の例で示すと、新横浜から京都の営業キロは180キロであり、名古屋から京都までの営業キロを代案降車営業キロ下限102316として30キロと仮定すると、候補代案下限営業キロ102317は180−30=150キロとなる。同様に、駅情報照会処理部1013は、内部作業用エリア1023において、(営業キロ102311)+(代案降車営業キロ上限102315)を候補代案上限営業キロ102318に設定する(S1610)。これは図7の例で示すと、新横浜から京都の営業キロは180キロであり、京都から新大阪までの営業キロを代案降車営業キロ上限102315として20キロと仮定すると、候補代案上限営業キロ102318は180+20=200キロとなる。次いで、駅情報照会処理部1013は、候補代案乗車駅を求めるループを候補代案下限営業キロ102317から候補代案上限営業キロ102318まで行う(S1611〜S1616)。駅情報照会処理部1013は、駅情報管理ファイル1022の検索キー10221を端末要求100と内部作業用エリア1023の各情報を元に設定する(S1612)。具体的には、乗車日1002を乗車日102111に、乗車駅1005を駅102212に、列車名1007を列車名102213に、列車設備1008を列車設備102214に、候補代案下限営業キロ102317を営業キロ102215に、上り/下り102312を上り/下り102216に設定する。
駅情報照会処理部1013は、S1612で設定した項目を検索キーとして、駅情報管理ファイル1022をファイルサーチし(S1613)、取得した駅102221を候補代案降車駅102320に設定する(S1615)。その後、駅情報照会処理部1013は、候補代案下限営業キロ102317を所定の単位でカウントアップし(S1615)、候補代案上限営業キロ102318に達したらループ処理を終了する(S1616)。S1611〜S1616の処理を図7の例で示すと、新横浜から下り京都方面に150キロ(候補代案下限営業キロ102317)の駅があった場合は、それを候補代案降車駅102320に設定する。150キロ(候補代案下限営業キロ102317)から営業キロの所定単位でカウントアップし、200キロ(候補代案上限営業キロ102318)に達するまでに一致した候補代案降車駅102320をリストアップしていく処理になる。
以上の代案駅サーチ処理により、端末要求100で許容範囲とされた乗降駅が、営業キロの条件に基づいて抽出される。
次に、図12の列車在庫管理装置10の全体処理フローにおける代案在庫サーチ処理S17について説明する。図16は列車在庫管理装置10の代案在庫サーチS17を詳細に説明するためのフローチャートであり、列車在庫照会処理部1012によって実行される。まず、列車在庫照会処理部1012は、この処理を実行している時点で候補代案を求めるため処理であるため、内部作業用エリア1023で代案フラグ102323をONする(S1701)。列車在庫照会処理部1012は、候補代案乗車駅102319のエントリ数分ループ処理を行う(S1702〜S1704)。このループ処理の中で、列車在庫照会処理部1012は、候補代案乗車駅102319を乗車駅102324に設定し(S1703)、図13の在庫サーチを行う(S12)。エントリ数分ループ処理を行った場合、候補代案乗車駅に対するループ処理は終了する(S1704)。この処理の内容は、代案乗車駅として抽出された乗車駅について、利用可能な列車在庫があるかを、在庫サーチ処理により調べるものである。
次いで、列車在庫照会処理部1012は、候補代案降車駅102320のエントリ数分ループ処理を行う(S1705〜S1707)。このループ処理の中で、列車在庫照会処理部1012は、候補代案降車駅102320を降車駅102325に設定し(S1706)、図13の在庫サーチを行う(S12)。エントリ数分ループ処理を行った場合、候補代案降車駅に対するループ処理は終了する(S1707)。この処理の内容は、代案降車駅として抽出された降車駅について、利用可能な列車在庫があるかを、在庫サーチ処理により調べるものである。
以上の代案在庫サーチ処理により、端末要求100の設定による許容範囲にある代案乗降駅について、利用可能な列車在庫があるかを調べ、抽出された候補があれば操作端末30を介して提示することができる。また、座席予約機能において共用されている列車在庫管理装置10の列車在庫管理ファイル1021を参照することにより代案の乗降駅をサーチしているため、本発券支援システム1専用の駅データを保持する必要がなく、新線開通、新駅設置などに伴うデータ修正を独自に実施する必要がない。
次に、以上説明した本実施形態の発券支援システム1の動作をより理解しやすくするために、旅客要望の処理例について説明する。ここでは、旅客の要望として、「12月30日の18時に新横浜から乗車して新大阪まで行きたい。列車はのぞみ、ひかり、こだまのいずれでもよく、新横浜乗車で適当な列車がなければ乗車駅は東京〜小田原間でよい」と想定した。なお、以下の説明は単なる例示であって、これにより本発明がなんら制約されるものではない。
図17は、第一希望の乗車駅である新横浜について、希望の乗車時刻、列車名で照会した結果を例示している。図17の例では、いずれの条件でも残り在庫が0であり、条件を満たす列車がないことを示している。
図17の結果を受けて、図18では、旅客が乗車駅として許容する範囲の東京から小田原について、第一希望の新横浜からその両端駅である東京、小田原までの営業キロを求めている。図19では、許容される乗車駅の範囲が、営業キロを用いて、新大阪側に(180−30)キロ、東京側に(180+10)キロと表わされることがわかる。その結果、許容される乗車駅は、東京、品川、新横浜、小田原の4駅となる。
図20に、旅客の要望に、許容乗車駅(代案乗車駅)として抽出された駅を加えて、在庫サーチを実行した結果を例示している。図20では、東京乗車のこだま1本と、小田原乗車のひかり、こだま各1本が旅客要望を満たす列車として抽出されている。図21は図20で抽出された代案を操作端末30に表示出力したイメージであり、抽出された列車を到着時刻でソートして表示している。この表示順は、乗車駅の営業キロ等他の項目で決定してもよい。以上のように、本実施形態によれば、旅客要望に沿った列車を乗降駅の代案を含めて提示することができ、発券処理の円滑化に資する等の効果を得ることができる。なお、本実施形態では代案乗降駅の抽出を、旅客要望の許容範囲から営業キロに換算して処理しているが、旅客が指定した範囲に含まれる駅を、列車在庫管理ファイル1021を参照して直接抽出するようにしてもよい。
以上、本実施形態によれば、旅客の要望に合わせた乗降駅の代案を受け付けることで、旅客一人一人のニーズに沿った代案列車を提示することが可能となり、旅客の満足度向上につながる。また、新駅ができた場合でも、本発券支援システム独自で駅データの修正、登録作業を行う必要がなく、システム保守業務を簡素化することができる。
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で変更可能である。