アカウント名:
パスワード:
JR東海の発表PDFの2ページ目に、過去に見つかった似た事例が参考資料として上げられていますが。そこでは、
1.判明に至った経緯平成28年5月7日(土)、JR線(新宿⇔横浜)と相鉄線のIC連絡定期券をお持ちのお客様が、JR横浜駅から乗車して三島駅の自動精算機で精算した際に、本来であれば定期区間で最も三島駅に近い「横浜駅からの精算」(1,660円)をご案内すべきところ、定期区間の途中駅である「品川駅からの精算」(2,270円)をご案内しておりました。※翌日(5月8日(日))にお客様から三島駅社員にお申し出があり、事象が判明しました。2.発生原因昨年7月以降に設置した自動精算機(オムロンソーシアルソリューションズ株式会社製)のプログラムに誤りがあり、以下の条件を全て満たす定期券で精算した場合に、ケースによっては定期券の区間(経路)情報を正しく読み取ることができず、本来よりも遠方の駅からの精算として取り扱う設定となっておりました。※対象となる定期券の条件①から③までを全て満たす場合①JR線と私鉄線を乗り継ぐIC連絡定期券であること(モバイルSuicaを除く)②JR線と私鉄線との乗継駅が[大井町、蒲田、川崎、鶴見、東神奈川、横浜、戸塚、藤沢、小田原]のいずれかであること③JR線の経由に(代々木~品川)または(東京~品川)を含むこと
1.判明に至った経緯平成28年5月7日(土)、JR線(新宿⇔横浜)と相鉄線のIC連絡定期券をお持ちのお客様が、JR横浜駅から乗車して三島駅の自動精算機で精算した際に、本来であれば定期区間で最も三島駅に近い「横浜駅からの精算」(1,660円)をご案内すべきところ、定期区間の途中駅である「品川駅からの精算」(2,270円)をご案内しておりました。※翌日(5月8日(日))にお客様から三島駅社員にお申し出があり、事象が判明しました。
2.発生原因昨年7月以降に設置した自動精算機(オムロンソーシアルソリューションズ株式会社製)のプログラムに誤りがあり、以下の条件を全て満たす定期券で精算した場合に、ケースによっては定期券の区間(経路)情報を正しく読み取ることができず、本来よりも遠方の駅からの精算として取り扱う設定となっておりました。※対象となる定期券の条件①から③までを全て満たす場合①JR線と私鉄線を乗り継ぐIC連絡定期券であること(モバイルSuicaを除く)②JR線と私鉄線との乗継駅が[大井町、蒲田、川崎、鶴見、東神奈川、横浜、戸塚、藤沢、小田原]のいずれかであること③JR線の経由に(代々木~品川)または(東京~品川)を含むこと
とあります。品川がキーになってくるとすると、新幹線まわりの処理??
>品川がキーになってくるとすると、新幹線まわりの処理??
そんな気がしますね。東京・品川・新横浜がJR東海の駅でもあるので、新幹線への乗車を優先した経路計算になっており、上記3駅から乗車したことにされてしまった可能性もあります。(この仮説の精査はしていないので、どこかで辻褄が合わなくなるかも。)
トピックで取り上げられた事象も、>2. JR線と私鉄線との乗継駅が[関内、菊名、新横浜、中山、長津田、町田、橋本、八王子、拝島、東飯能、越生、小川町、寄居]のいずれかであること>3. JR線の経由に(桜木町~横浜~東神奈川~大口)を含むことと、新横浜を経由する横浜線(と横浜線経由が最安となる八高線)がらみなので、新横浜が絡んだ新幹線の取り扱いの問題と思われます。(精査はしていません)
定期券も妖しい。定期券では、記載されたルート以外は乗れないので。
1. 出発駅から、定期券のルート上のどこかの駅まで2. 定期券のルート上を移動3. 定期券のルート上のどこかの駅から目的地まで
というパターンの内、2は定期券で乗れるので1と3の額を足したものが引き落とすべき運賃。それが最小になるものを求めないといけない。全探索は悲惨なことになるだろうからいろいろとヒューリスティックを組み込んで…
残念ながらそれだけでは不十分で、定期券を使わず全区間を乗り通したほうが安くなる場合もあります。(東京の事例になってしまいますが、中野~四ッ谷間の定期券で、新大久保~原宿を利用した場合など。)今回の事例だと、(1と3が別会社なので)定期券を使わないほうが安くなることはなさそうですが、ないと決めてかかると危ないです。
桜木町〜大口は横浜線だし大井町、蒲田、川崎、鶴見、東神奈川、横浜は京浜東北線。戸塚、藤沢、小田原はJRと小田急の乗換え駅だ。並走区間のある路線とか複数の路線を横に渡ってる路線で、最短経路探索が一方向しか走ってなかったケースがあるんじゃねーかな。品川も横浜もJR東海方面に行く東海道線の駅だから、精算駅に至る最後の乗換駅がどちらかになるんだな。
横浜線は東神奈川まで、東神奈川~桜木町は根岸線だったような…?
オムロンやっちまったな。しかもよりによって自社ユーザーである相鉄の定期券でやっちゃったとは。まぁ、定期を出した機械が他社製だったのでテスト漏れだったのかもしれないけど。原因は省略された経由の展開漏れでしょう。
原理としては切符や定期券に入っている情報には発着駅以外にも経由情報があります。経由情報は何のために入っているかといえば、定期区間内の駅での乗車や下車、乗り換えをした時に正しく運賃を求めるための物です。原理的には東京・新宿間の定期を持っていて新宿から乗って品川で降りた場合を考えると解ります。同じ発着でも定期の経由が
と言うか、もう少し単純な理由で、「定期券(ひょっとしたら普通のICカード乗車券でも?)の経路に品川もしくは東京が入ってる」「経路に山手線内が入ってる」のどちらかで、なおかつ「新横浜・小田原・熱海の新幹線改札をくぐっていない乗車パターン」だと、みなしで品川から新幹線に乗ったことにしていた。って話でしょう。新幹線に乗ってないから、新幹線特急券の金額が算入されてなかったというだけで。
これ、メーカを責めるべきかといえば、そうは思えなくて、JR東海の要求仕様になかった上にJR東海の方でチェックしてなかった。と言う話じゃないですかね。
>これ、メーカを責めるべきかといえば、そうは思えなくて、JR東海の要求仕様になかった上にJR東海の方でチェックしてなかった。と言う話じゃないですかね。単純に想定外だったって話ですよね。
今回の条件だと新幹線駅(新横浜駅)を含まない経路(菊名駅で私鉄と乗り換える桜木町駅(から大船駅方面)間、関内駅で私鉄と乗り換える大口駅or菊名駅間)の定期券も対象になる。
どこの駅からの精算と誤るのかは事例がないので予想になるけど。 自動精算機を使うので終点は三島駅・沼津駅・御殿場駅の3駅。この3駅に最も近い定期券区間の駅は横浜駅より桜木町駅方面になると思うのだけど、誤って横浜駅からの精算になっちゃうのかな、と。 過去事例(横浜駅精算のはずが品川駅精算になってる)から、定期券区間に新横浜駅が含まれていれば新横浜駅から精算してしまう誤りはありうるかも。
この予想では、東神奈川駅、大口駅を考慮していない。もしかしたら、東海道線(川崎駅方面)、京浜東北線(新子安駅方面)の経路では問題がない・・・と思ったら、この経路の私鉄乗り継ぎのポイントとかは過去事例の条件に近づいているような。
これらの予想があっていれば(新幹線>)東海道線>根岸線と順位付けしているかのようにみえる計算になっちゃっているのかもしれない。
それから、新宿〜横浜って、料金優先なら渋谷乗り換えで東急東横線を挟んで定期取る区間ですよね。JR私鉄乗り継ぎのテストで、高い経路で定期持ってるケースのチェックが不足していたんでしょうね。
しかも横浜から先は相鉄線となると、横浜を経由せずに大和乗り換えで小田急で新宿に行くほうが安い駅も多いですよね。
っていうか、この人、相鉄で乗って三島に行くなら、海老名で小田急に乗り換えて小田原からJRの方が安いんじゃん??わざわざ横浜に出てからJRに乗ったんですかね。まー、定期を東横じゃなくJRで取ってるのだから、きっと料金よりも乗り換えを減らして時間を優先する人なのでしょうね。
地元なのでAC
昔面白い記事を見たので貼っておきますね。
自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説http://www.publickey1.jp/blog/12/_1040.html [publickey1.jp]
> バグがすり抜けてしまうこともありますが
まあしょうがないか。
今回のように、収受ミスが発生したら都度対応するしかないでしょうね。首都圏は会社をまたぐ相互乗り入れ路線が多く、また定期券での乗り越しが絡むと、最安経路の算出が膨大になってしまいますし。
1円でも高いと、あるいはルールが曖昧だとクレームを付ける利用者がいるのは容易に想像できますが、現状に優る方法が見いだせないです。
時代を巻き戻して、Prologなんぞを使ったルールベースのシステムで処理できないのかね?要はルールが正しければ、数学的に正しい結果が得られることが理論的に保証されるようなシステムを作れないの?(ルールの矛盾も自動的に検証されるとして)
NP困難だから何らかのチートを入れないと現実的な時間で計算できないんじゃね?
まず、運賃規則を正確に機械処理出来る条件の表現形式に落とし込むのが大変。あれ、自然言語で色んな例外事項がどっさり書かれた文書なので、どのぐらいのルール記述の能力を持たせたら全てを正確に書き下せるのかの検討から始めないとダメなレベルで大変。
ついでに、そもそも、運賃規則自体が、頑張って考えて発見した不合理になるような区間には例外を追加して…というような試行錯誤の積み重ねの果てに設計されているようなもんで、それ自体に未発見の穴がある。運賃自動生産システムを作るときにも、その手の穴はいくつか防がれたという。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
過去事例 (スコア:2)
JR東海の発表PDFの2ページ目に、過去に見つかった似た事例が参考資料として上げられていますが。
そこでは、
とあります。品川がキーになってくるとすると、新幹線まわりの処理??
1を聞いて0を知れ!
Re:過去事例 (スコア:1)
>品川がキーになってくるとすると、新幹線まわりの処理??
そんな気がしますね。
東京・品川・新横浜がJR東海の駅でもあるので、新幹線への乗車を優先した経路計算になっており、上記3駅から乗車したことにされてしまった可能性もあります。
(この仮説の精査はしていないので、どこかで辻褄が合わなくなるかも。)
トピックで取り上げられた事象も、
>2. JR線と私鉄線との乗継駅が[関内、菊名、新横浜、中山、長津田、町田、橋本、八王子、拝島、東飯能、越生、小川町、寄居]のいずれかであること
>3. JR線の経由に(桜木町~横浜~東神奈川~大口)を含むこと
と、新横浜を経由する横浜線(と横浜線経由が最安となる八高線)がらみなので、新横浜が絡んだ新幹線の取り扱いの問題と思われます。(精査はしていません)
Re: (スコア:0)
定期券も妖しい。定期券では、記載されたルート以外は乗れないので。
1. 出発駅から、定期券のルート上のどこかの駅まで
2. 定期券のルート上を移動
3. 定期券のルート上のどこかの駅から目的地まで
というパターンの内、2は定期券で乗れるので1と3の額を足したものが引き落とすべき運賃。
それが最小になるものを求めないといけない。全探索は悲惨なことになるだろうからいろいろとヒューリスティックを組み込んで…
Re:過去事例 (スコア:1)
残念ながらそれだけでは不十分で、定期券を使わず全区間を乗り通したほうが安くなる場合もあります。
(東京の事例になってしまいますが、中野~四ッ谷間の定期券で、新大久保~原宿を利用した場合など。)
今回の事例だと、(1と3が別会社なので)定期券を使わないほうが安くなることはなさそうですが、ないと決めてかかると危ないです。
Re: (スコア:0)
桜木町〜大口は横浜線だし大井町、蒲田、川崎、鶴見、東神奈川、横浜は京浜東北線。戸塚、藤沢、小田原はJRと小田急の乗換え駅だ。
並走区間のある路線とか複数の路線を横に渡ってる路線で、最短経路探索が一方向しか走ってなかったケースがあるんじゃねーかな。
品川も横浜もJR東海方面に行く東海道線の駅だから、精算駅に至る最後の乗換駅がどちらかになるんだな。
Re: (スコア:0)
横浜線は東神奈川まで、東神奈川~桜木町は根岸線だったような…?
Re: (スコア:0)
オムロンやっちまったな。
しかもよりによって自社ユーザーである相鉄の定期券でやっちゃったとは。
まぁ、定期を出した機械が他社製だったのでテスト漏れだったのかもしれないけど。
原因は省略された経由の展開漏れでしょう。
原理としては切符や定期券に入っている情報には発着駅以外にも経由情報があります。
経由情報は何のために入っているかといえば、定期区間内の駅での乗車や下車、乗り換えをした時に正しく運賃を求めるための物です。
原理的には東京・新宿間の定期を持っていて新宿から乗って品川で降りた場合を考えると解ります。
同じ発着でも定期の経由が
Re:過去事例 (スコア:1)
と言うか、もう少し単純な理由で、
「定期券(ひょっとしたら普通のICカード乗車券でも?)の経路に品川もしくは東京が入ってる」
「経路に山手線内が入ってる」
のどちらかで、なおかつ「新横浜・小田原・熱海の新幹線改札をくぐっていない乗車パターン」だと、みなしで品川から新幹線に乗ったことにしていた。
って話でしょう。
新幹線に乗ってないから、新幹線特急券の金額が算入されてなかったというだけで。
これ、メーカを責めるべきかといえば、そうは思えなくて、JR東海の要求仕様になかった上にJR東海の方でチェックしてなかった。と言う話じゃないですかね。
Re: (スコア:0)
>これ、メーカを責めるべきかといえば、そうは思えなくて、JR東海の要求仕様になかった上にJR東海の方でチェックしてなかった。と言う話じゃないですかね。
単純に想定外だったって話ですよね。
Re: (スコア:0)
今回の条件だと新幹線駅(新横浜駅)を含まない経路(菊名駅で私鉄と乗り換える桜木町駅(から大船駅方面)間、関内駅で私鉄と乗り換える大口駅or菊名駅間)の定期券も対象になる。
どこの駅からの精算と誤るのかは事例がないので予想になるけど。
自動精算機を使うので終点は三島駅・沼津駅・御殿場駅の3駅。この3駅に最も近い定期券区間の駅は横浜駅より桜木町駅方面になると思うのだけど、誤って横浜駅からの精算になっちゃうのかな、と。
過去事例(横浜駅精算のはずが品川駅精算になってる)から、定期券区間に新横浜駅が含まれていれば新横浜駅から精算してしまう誤りはありうるかも。
この予想では、東神奈川駅、大口駅を考慮していない。もしかしたら、東海道線(川崎駅方面)、京浜東北線(新子安駅方面)の経路では問題がない・・・と思ったら、この経路の私鉄乗り継ぎのポイントとかは過去事例の条件に近づいているような。
これらの予想があっていれば(新幹線>)東海道線>根岸線と順位付けしているかのようにみえる計算になっちゃっているのかもしれない。
テストケースも不足していそう…しかし組み合わせ膨大すぎ (スコア:0)
それから、新宿〜横浜って、料金優先なら渋谷乗り換えで東急東横線を挟んで定期取る区間ですよね。
JR私鉄乗り継ぎのテストで、高い経路で定期持ってるケースのチェックが不足していたんでしょうね。
しかも横浜から先は相鉄線となると、横浜を経由せずに大和乗り換えで小田急で新宿に行くほうが安い駅も多いですよね。
っていうか、この人、相鉄で乗って三島に行くなら、海老名で小田急に乗り換えて小田原からJRの方が安いんじゃん??
わざわざ横浜に出てからJRに乗ったんですかね。
まー、定期を東横じゃなくJRで取ってるのだから、きっと料金よりも乗り換えを減らして時間を優先する人なのでしょうね。
地元なのでAC
Re:テストケースも不足していそう…しかし組み合わせ膨大すぎ (スコア:1)
昔面白い記事を見たので貼っておきますね。
自動改札機の運賃計算プログラムはいかにデバッグされているのか?
10の40乗という運賃パターンのテスト方法を開発者が解説
http://www.publickey1.jp/blog/12/_1040.html [publickey1.jp]
> バグがすり抜けてしまうこともありますが
まあしょうがないか。
Re:テストケースも不足していそう…しかし組み合わせ膨大すぎ (スコア:1)
今回のように、収受ミスが発生したら都度対応するしかないでしょうね。
首都圏は会社をまたぐ相互乗り入れ路線が多く、また定期券での乗り越しが絡むと、最安経路の算出が膨大になってしまいますし。
1円でも高いと、あるいはルールが曖昧だとクレームを付ける利用者がいるのは容易に想像できますが、現状に優る方法が見いだせないです。
Re: (スコア:0)
時代を巻き戻して、Prologなんぞを使ったルールベースのシステムで処理できないのかね?
要はルールが正しければ、数学的に正しい結果が得られることが理論的に保証されるようなシステムを作れないの?
(ルールの矛盾も自動的に検証されるとして)
Re: (スコア:0)
NP困難だから何らかのチートを入れないと現実的な時間で計算できないんじゃね?
Re: (スコア:0)
まず、運賃規則を正確に機械処理出来る条件の表現形式に落とし込むのが大変。
あれ、自然言語で色んな例外事項がどっさり書かれた文書なので、
どのぐらいのルール記述の能力を持たせたら全てを正確に書き下せるのかの検討から始めないとダメなレベルで大変。
ついでに、そもそも、運賃規則自体が、頑張って考えて発見した不合理になるような区間には例外を追加して…
というような試行錯誤の積み重ねの果てに設計されているようなもんで、それ自体に未発見の穴がある。
運賃自動生産システムを作るときにも、その手の穴はいくつか防がれたという。