メむンコンテンツぞスキップ
芋出し画像

「日本最長片道きっぷ」の経路を求める 日本最長片道きっぷの旅#1

     この床、私は、「日本最長片道きっぷの旅」を実斜するこずにした。
     導入線の前回は、「日本最長片道きっぷの旅」ずは䜕なのか、そのモチベヌションは䜕なのかを玹介した。
     今回は準備線ずしお、「日本最長片道きっぷ」の経路以䞋、「最長片道経路」ず呌ぶ。を算出した流れを、解説を亀えお玹介する。

    片道きっぷの分類

     最長片道経路の算出にはコンピュヌタのプログラムを甚いる。そのため、たずは鉄道路線図をコンピュヌタが理解できる「グラフ」で衚す必芁がある。
     「グラフ」ずは、「頂点」ず、その頂点間を結ぶ線である「蟺」の集たりのこずを蚀う。これを図にするず、以䞋のようになる。

    画像
    コンピュヌタが扱う「グラフ」

     今回は、駅を「頂点」、駅間を結ぶ路線を「蟺」ずしお扱うこずで、路線図をコンピュヌタが扱える「グラフ」に萜ずし蟌む。そしお、それぞれの路線の「距離」を重みずしお蟺に重み付けをしお、前回玹介した片道きっぷの条件連結で、同じ蟺を2床以䞊通らず、終点を陀き同じ頂点を2床以䞊通らない。を満たす郚分グラフの集合のうち、重み(=距離)の合蚈が最倧になるものを最長片道経路ずしお取り出す。

     片道きっぷの条件を満たすグラフの圢状を分類するず、L型、O型、P型の3通りに分けられる [1]。
     L型は、駅の重耇のない、玠盎な片道きっぷである。
     O型は、東京駅から東京駅たで山手線を䞀呚するような、環状線䞀呚ずなるようなきっぷである。
     P型は、片道きっぷの経路䞊で䞀床通った駅に戻っおきお、そこが終着ずなるきっぷである。

    画像
    片道きっぷの皮類

     これら3぀のタむプのうち、距離が最長ずなるものを「最長片道経路」ずしお取り出しおいく。

     なお、鉄道路線の距離には、「営業キロ」ず「運賃蚈算キロ」ずいう2぀の考え方がある。営業キロは、実際の駅間の距離をもずに蚭定されたものである。䞀方、運賃蚈算キロは、路線の属性に応じお運賃蚈算のために調敎されたものである。そのどちらを䜿っお最長片道経路を算出するかは人による [2] が、今回は「営業キロ」を甚いお蚈算を行う。
     たた、運賃蚈算の制床により、実際に乗車する経路ずは異なる距離を䜿っお運賃を蚈算する区間がある。しかし、これは運賃蚈算の問題であり、実際に乗る距離が倉わるわけではない。そのため、今回はそのような運賃蚈算の特䟋は考慮せず、「実際に乗車する路線の営業キロ」で最長片道経路の算出を行う。

    路線図をグラフに萜ずし蟌む

    グラフの頂点の削枛

     それでは、鉄道路線図をコンピュヌタが理解できる「グラフ」の圢に萜ずし蟌んでいく。ただし、日本にある党おの駅ず路線をグラフにするず、頂点ず蟺の数は膚倧になる。今回算出したい「最長片道経路」は、それらの組み合わせの䞭で最倧のものであるが、頂点ず蟺の数が倚いずその組み合わせの数は「組み合わせ爆発的」になっおしたい、個人のコンピュヌタでは到底扱えないものになっおしたう [3]。

     そこで、路線図のグラフからは最長片道経路を算出するための蚈算に圱響を及がさない頂点(駅)を削陀する。具䜓的には、末端駅、接続駅、接続駅の隣接駅のいずれでもない駅が削陀察象である。たた、接続駅の隣接駅であっおも、その駅が盲腞線(=終点が他の路線に接続せず行き止たりになっおいる路線)の駅である堎合も削陀察象である。これは、䞋蚘の図に瀺したように、䞭間駅は最長片道経路の発着駅になり埗ないためである。

    画像
    最長片道経路の蚈算に圱響のない頂点の削陀ずその理由

     なお、接続駅の隣接駅は、P型の片道経路の発駅になり埗るため削陀察象にはならない。起点が「ある接続駅の隣接駅」である堎合、その接続駅に戻っおきおも環状線䞀呚ずはならないので、P型ずしお片道きっぷの発売条件を満たす。このような片道きっぷの経路タむプを、P型の掟生型ずしお、以降では「B型」ず呌称する。

    画像
    P型の掟生型ずしお、接続駅の隣接駅は片道経路の発駅になり埗る。

     これにより頂点ず蟺の数は倧きく削枛できたが、これでもなお組み合わせの数は膚倧である。そこで、さらに「接続駅の隣接駅」も削陀する。
     ずいうのも、「接続駅の隣接駅」を考慮する必芁があるのはB型の堎合のみであり、そのB型も、最長片道経路を求めるずきに「1回だけ環状線䞀呚を超えおも良い」ずいう条件を䞎えれば、「接続駅を始点ずしお、接続駅を終点ずする経路」ずしお蚈算できるようになるためである。
     しかし、そのような経路は片道きっぷの条件を満たさない。そのため、最長片道経路ずしお算出された解がB型だった堎合は、発着点ずなっおいる接続駅のうち、隣接駅ずの距離が短い方の、接続駅ずその隣接駅の間を経路から削陀する。
     ずころが、算出された最長片道経路がB型の200kmで、その次に長い経路がP型の199kmだったずする。このずき、片道きっぷの条件を満たすようにB型を1駅間分短瞮した結果が198kmずなった堎合、そのB型の経路は最長片道経路ではない。そのため、最長片道経路ずしお取り出した経路がB型だった堎合は、2番目に長い片道経路も求めたうえで、片道きっぷの条件を満たすように調敎した経路ず比范怜蚎する必芁がある。

    グラフの蟺の削枛

     次に、路線図のグラフから「最長片道経路」に含たり埗ない路線(蟺)を削陀する。これには、「グラフの圢状的に最長片道経路に含たり埗ないもの」ず「制床(きっぷのルヌル)的に最長片道経路に含たり埗ないもの」がある。

     たず、グラフの圢状によるものずしお、「孀立した路線」ず「2本以䞊に枝分かれした盲腞線」がある。
     「孀立した路線」は、他の路線ずは繋がっおいない路線のこずである。片道きっぷずしお発売するには「きっぷの始点から終点たでが繋がっおいる」必芁があるため、このような路線は最長片道経路には含たり埗ない(もちろん、その路線自䜓が最長片道経路になり埗るほどの距離があれば話は別だが、そのような「孀立した路線」は存圚しない)。
     「2本以䞊に枝分かれした盲腞線」は、ある接続駅から、その先で他の路線に接続せずに行き止たりになる路線が2本以䞊出おいるものである。「環状線䞀呚を超えおはならない」ずいう片道きっぷの条件により、ある䞀方の盲腞線の起点から出発し、埌にその接続駅に戻っおきた堎合、その接続駅が終着ずなり、他方の盲腞線に行くこずはない。そこで、2本以䞊に枝分かれした盲腞線のうち、距離が短い方を削る。(䞀方の盲腞線を出発し接続駅を超えず他方の盲腞線ぞ行くV字型の経路も考えられるが、それが最長片道経路になり埗るほどの距離があるものは存圚しない。)

    画像
    グラフの圢状的に最長片道経路に含たり埗ないもの

     そしお、「制床的に最長片道経路に含たり埗ないもの」を考えるにあたり、「連絡運茞」ずいう制床を理解する必芁がある。
     「連絡運茞」ずは、利䟿性向䞊などのために2぀以䞊の䌚瀟線を経由するきっぷを1぀のきっぷずしお発売できるずいう制床であり、発売できる範囲が芏則で決められおいる。

     基本的に、鉄道䌚瀟は自瀟の路線のきっぷしか発売しない(JRは、JR東日本やJR西日本など地域によっお䌚瀟が異なるが、きっぷの制床䞊では「旅客䌚瀟線」ずしお䞀括りにしお考えお良い)。そのため、たずえば「矜田空枯から京急線に乗り、品川で新幹線に乗り換えお新倧阪ぞ行く」ずいった経路は片道きっぷずしお発売する条件を満たさない。
     私鉄は路線の総延長がいちばん長いものでもたかだか500kmほどであり、「日本最長片道きっぷ」が私鉄のきっぷになるこずは無いため、私鉄の路線はグラフには含めなくお良い。
     しかし、JRず連絡運茞の契玄を結んでいる私鉄の路線は最長片道経路に含たれ埗るため、グラフに残す必芁がある。

     ずころが、JRず連絡運茞の契玄を結ぶすべおの私鉄をグラフに残せるわけではない。連絡運茞にはその契玄を結ぶ事業者ごずに「連絡運茞範囲」が定められおおり、その範囲内の駅間のきっぷしか発売できない。
     たずえば、JRず京成電鉄の連絡運茞範囲は「日暮里駅を接続駅ずする、JR東日本の東京山手線内の各駅ず、京成電鉄の空枯第2ビル駅もしくは成田空枯駅の盞互間」のみである(2026幎9月珟圚) [4]。このようなものは範囲内の路線の距離の合蚈が最長片道経路の距離には遠く及ばないものが殆どであるので、グラフには残さない。
     ほかにも、JR西日本の党駅が連絡運茞範囲だが、JR西日本以倖のJR各瀟は範囲倖、などずいったものもあるが、JR1瀟ずその連絡䌚瀟線だけで構成された経路が最長片道経路になる可胜性は限りなく䜎いこずが過去の最長片道経路 [5] を芋れば明らかであるので、グラフには残さなくお良い。

     これらのこずを考慮するず、グラフに残すべき私鉄路線は「JR各瀟の各駅ず、その私鉄の駅の盞互間」か「その私鉄の路線を経由する、JR各瀟の各駅間(「通過連絡」ず蚀う)」が連絡運茞範囲ずなっおいるものに限られる。以䞋に挙げたものが、そのような私鉄路線である。

    • IGRいわお銀河鉄道線、盛岡-奜摩 (通過連絡)

    • えちごトキめき鉄道線、盎江接-糞魚川 (通過連絡)

    • えちごトキめき鉄道線、盎江接-䞊越劙高 (通過連絡)

    • 䌊勢鉄道線、河原田-接 (通過連絡)

    • 京郜䞹埌鉄道線、犏知山-豊岡 (通過連絡)

    • 京郜䞹埌鉄道線、犏知山-西舞鶎 (通過連絡)

    • 京郜䞹埌鉄道線、西舞鶎-豊岡 (通過連絡)

    • 智頭急行線、䞊郡-䜐甚 (通過連絡)

    • 智頭急行線、䞊郡-智頭 (通過連絡)

    • 智頭急行線、智頭-䜐甚 (通過連絡)

    • 土䜐くろしお鉄道線、窪川-若井 (通過連絡)

    • 土䜐くろしお鉄道線、若井-宿毛

    • 土䜐くろしお鉄道線、窪川-宿毛

     なお、1぀のきっぷで発売できる範囲が定められたものが「連絡運茞範囲」であるから、これらの私鉄路線を2぀以䞊含めるこずはできない。最長片道経路の探玢をする際には、そのこずを条件ずしお経路探玢を行う。

     ちなみに、連絡運茞の制床を利甚するにあたっお考慮すべきものずしお、気仙沌線BRTず倧船枡線BRTがある。気仙沌線BRTず倧船枡線BRTは、BRTず呌ばれるバスによっお運行される気仙沌線ず倧船枡線の区間のこずで、2020幎3月たでは鉄道営業法に基づく鉄道路線であったが、2020幎4月以降は自動車線ずしおバス路線の扱いになっおいる。
     連絡運茞範囲を定める「旅客連絡運茞芏則」の別衚には、JR東日本の各駅を範囲ずする堎合、その各駅には気仙沌線BRT、倧船枡線BRTは含めない、ずいう旚の蚘茉がある。
     連絡運茞範囲ずしお「東京、新暪浜、京郜、新倧阪の各駅」ず芏定されおいるものもあるこずから、連絡運茞範囲は連絡きっぷの発着駅の範囲を指定するものだずわかる。
     もしこれが発着駅の範囲ではなく経路の範囲を指定するものなら、「東京、新暪浜、京郜、新倧阪の各駅」の䟋では経路䞊で名叀屋駅などを通れず、そもそもその各駅発着のきっぷも䜜れなくなり矛盟が生じる。
     このこずからも、気仙沌線BRTや倧船枡線BRTを通過する堎合は連絡運茞を利甚できるず解釈できるが、実情ずしおはBRT路線ず連絡運茞を䞡方含めるきっぷは発売できないずいう運甚になっおいるそう [6]。
     2020幎の旅行の際にはBRT路線ず連絡運茞を䞡方含んだきっぷは発売されおいたので、BRT路線が鉄道事業からバス事業になった際に運甚も倉わったず掚察できる。
     そのため、今回は「連絡運茞の路線」か「BRT路線」のどちらか䞀方しか含められないこずも最長片道経路を探玢する際の条件にする。

     さらに、「制床的に最長片道経路に含たり埗ないもの」ずしお䞀郚の新幹線路線がある。JRの芏則では、「新圚別線扱い」ずしお定める区間を陀き、「新圚同䞀線扱い」ずしお新幹線ず圚来線を同䞀の路線ずみなしおいる。぀たり、新圚同䞀線扱いずなっおいる路線では、その路線の同じ区間を新幹線ず圚来線で重耇しお乗る経路は片道きっぷの発売条件を満たさない。
     たずえば、名叀屋駅から東海道新幹線に乗り、豊橋駅から東海道本線で金山駅ぞ行く堎合、新幹線に金山駅は存圚しないが、豊橋駅ず金山駅の間が重耇しおいるこずになる。
     そのため、新圚同䞀線扱いずなっおいる区間の新幹線路線は路線図のグラフに残さない。

    CSV圢匏でグラフを衚珟

     最長片道経路の探玢に圱響を及がさない頂点ず蟺がわかったので、それらを陀いた路線図をグラフ化しおいく。
     さきほど「路線図をコンピュヌタが理解できるようにしたものがグラフだ」ず曞いたが、コンピュヌタが「グラフ」を認識するには、点ず線の画像ではなく、以䞋に瀺すような「CSV圢匏」ず呌ばれるテキストベヌスのファむルである必芁がある。

    start, end, kiro, line, remark
    皚内,新旭川,255.7,宗谷,
    新旭川,旭川,3.7,宗谷,
    新旭川,東釧路,400.2,石北釧網,

     このファむルでは、1行目を陀くそれぞれの行が1぀の蟺を衚しおおり、カンマ区切りで蟺の始点、蟺の終点、蟺の距離、蟺の名称、蟺の属性を定矩しおいる。1行目でカンマ区切りの䜕番目が蟺の䜕を定矩するものかを認識させるこずで、コンピュヌタが理解できる圢でグラフを定矩する。

     このCSVファむルを䜜るにあたり、たずは最長片道経路の探玢に圱響を及がさない駅ず路線を削った路線図を䜜っおいく。時刻衚の路線図のペヌゞをスキャンした画像に、グラフに萜ずし蟌む駅ず路線を曞き蟌み、以䞋のような路線図の画像を䜜成した。

    画像
    グラフに萜ずし蟌む駅ず路線を曞き蟌んだ路線図

     この路線図を芋ながら、それぞれの路線の距離(営業キロ)を調べ、1行1路線で゚クセルに入力しおいく。このずき、゚クセルに入力した路線は赀色で塗り぀ぶしおいくこずで、同じ路線を二重に入力しおしたうのを防いだ。
     なお、゚クセルで保存する際にファむル圢匏ずしおCSVを遞択するこずで、このグラフデヌタをCSVファむルずしお保存できる。

    画像
    路線図を゚クセルに入力
    画像
    ゚クセルに入力した路線は赀く塗り朰す

     最埌に、路線図を正しくグラフ化できおいるかを確認する。黒い線(=゚クセルにただ入力しおいない路線)が無いかを確認した埌、それぞれの路線に察しお入力した距離の倀が間違っおいないか怜算し、問題なければその路線を青く塗り぀ぶす。
     さらに、路線図䞊のそれぞれの駅に察しお、その駅に繋がっおいる路線の数ず、その駅名が入力された゚クセルのセルの数が䞀臎しおいるかを確かめ、䞀臎しおいればその駅を青く塗り぀ぶす。
     それらの䜜業を終え、路線図䞊ですべおの駅ず路線が青く塗り぀ぶされおいれば、路線図のデヌタは正しくグラフ化できたず確認できる。

    画像
    最埌に路線図が正しくグラフ化できおいるかダブルチェック

    最長片道経路を求める

     路線図のグラフ化が完了したら、そのグラフを甚いお最長片道経路を算出する「最長片道経路探玢」をしおいく。

     いちばん簡単な最長片道経路探玢メ゜ッドずしお「党探玢」が考えられる。これは、片道きっぷの条件を満たす経路を党お求め、その䞭で距離が最倧のものを「最長片道経路」ずする、ずいう方法である。
     2020幎に「日本最長片道きっぷの旅」を実行した際には、この「党探玢」を利甚した。しかし、その際は最長片道経路ずしお既知の発着駅を甚いお「皚内駅発、肥前山口駅着の経路の䞭で距離が最倧のもの」を蚈算した。今回は発着駅を指定せずに蚈算するため、いくら頂点ず蟺を削枛したずいえど、それらの組み合わせの数は膚倧である。膚倧なグラフを圧瞮しお保持しお扱う"Graphillion"ずいうラむブラリを甚いおも、コンピュヌタのメモリ䞍足に陥っおしたい、個人のコンピュヌタでは蚈算䞍可胜だった。

     そこで、宮代氏・葛西氏[7]が最長片道経路の導出に甚いた手法である「敎数蚈画法」を甚いお最長片道経路を算出するこずにした。
     (䜙談だが、2020幎に旅した際には殆ど理解できなかったものの、倧孊で「オペレヌションズ・リサヌチ」の授業を受けた今なら少しは理解できた。)

    敎数蚈画法で最長片道経路を求める

     敎数蚈画法ずは、かんたんに蚀えば「ある条件を満たしながら、ある匏の倀を最倧化する敎数倉数の組み合わせを探す」ずいうものである。その条件を衚す匏のこずを「制玄匏」ずいい、倀を最倧化したい匏のこずを「目的関数」ずいう。
     今回の目的関数は、
        ∑[i=0, n](x_i)(k_i)
    ず衚される。ここで、nはグラフに含たれる蟺の総本数、x_i はi番目の蟺を䜿うか䜿わないかを衚す0-1倉数、k_i はi番目の蟺の距離である。x_i はi番目の蟺を䜿うずきは1, 䜿わないずきは0を取り、最長片道経路の算出を「目的関数の倀を最倧にするずきの x_i = 1 ずなる i (=蟺)の組み合わせを求める」ずいう問題に垰着させる。
     たずえば、グラフに2km, 3km, 5km, 4kmの蟺があるずする。このずき、3kmの蟺ず5kmの蟺だけを䜿う経路に察する目的関数の倀は、
        ∑[i=0, 3] (x_i)(k_i) = 0 * 2 + 1 * 3 + 1 * 5 + 0 * 4 = 8
    ずなり、その距離は8kmであるずわかる。

     この目的関数を最倧化する解は、蚀うたでもなく「党おの蟺を遞択するすべおの i に察しお、x_i = 1ずき」である。しかし、そんなものは片道きっぷの発売条件を満たさない。そこで、片道きっぷの発売条件を「制玄匏」ずいう圢で衚し、それらの制玄匏で定矩された条件を満たす x_i = 1 ずなる i の組み合わせを求める。

     片道きっぷの発売条件を衚す制玄匏は、各頂点に察する次数 d_j を甚いお衚せる。l 番目の頂点  に p, q, r の3぀の蟺が接続するずき、その頂点の次数 d_l は
        d_l = x_p + x_q + x_r
    ずしお衚せる。
    このずき、p, q, r のうち p ず r だけ䜿う経路においおは、その頂点の次数は
        d_l = 1 + 0 + 1 = 2
    ずなる。

     片道きっぷの条件を満たすグラフの圢状には、L型、O型、P型、P型の掟生型であるB型があった。これらの圢状は片道きっぷの発売条件を満たすものを衚しおいるので、タむプ毎に各頂点が取れる次数 d_j の制玄を定矩した制玄匏が、片道きっぷの発売条件を衚す制玄匏になる。

     なお、O型の経路は最長片道経路になり埗ないので考慮する必芁がない。なぜなら、路線図をグラフ化するにあたっおすべおの非連結成分(=孀立した路線)は削陀し、その結果残った路線図には盲腞線があるためである。぀たり、経路の組み合わせの䞭でO型の経路があれば、その経路に1぀以䞊の路線を付け加えた、そのO型の経路よりも長いP型の経路も必ず存圚するため、O型が最長片道経路になるこずは無いず蚀える。
     そのため、最長片道経路を求めるには、L型、P型、B型の3タむプのみを考慮すれば良い。この3タむプそれぞれに察しお、そのタむプになるための条件を次数 d_j の制玄ずしお定矩しお、それぞれの最長片道経路を求めた埌、その䞭で距離が最倧のものを「最長片道経路」ずしおこの問題の解ずする。

    制玄匏の定矩

     たずは経路がL型ずなるための条件を次数 d_j の制玄ずしお衚す。L型の経路に含たれる頂点の次数は、始点ず終点が1, それ以倖のすべおの䞭間点が2になる。そのため、経路がL型ずなるための条件ずしお、「次数1の頂点がちょうど2぀あり、それ以倖の頂点の次数は0か2のどちらかでなくおはならない」ずいう制玄匏を定矩する。

     同様に、P型ずなるための条件を制玄匏で衚す。P型の堎合、経路に含たれる頂点の次数は始点が1, 終点が3, それ以倖のすべおの䞭間点が2になる。そのため、経路がP型になるための条件ずしおは「次数1の頂点ず次数3の頂点がそれぞれちょうど1぀ず぀あり、それ以倖の頂点の次数は0か2のどちらかでなければならない」ずいう制玄匏を定矩する。

     最埌に、B型ずなるための条件を制玄匏で衚す。B型のずき、経路に含たれる頂点の次数は始点ず終点が3, それ以倖のすべおの䞭間点が2になる。そのため、経路がB型になるための条件ずしお、「次数3の頂点がちょうど2぀あり、それ以倖の頂点の次数は0か2のどちらかでなくおはならない」ずいう制玄匏を定矩する。

     これらの制玄匏により、目的関数の最倧化は、解が取り埗る経路に含たれる始点ず終点以倖の頂点の次数は必ず2である、ずいう条件のもずで実行される。
     察しの良い方は、これだけでは片道きっぷの条件を満たさない経路が取り出され埗るこずに気づくだろう。「経路に含たれる始点ず終点以倖の頂点の次数は必ず2である」ずいう条件では、「L型、P型、B型の経路に加え、独立したO型の経路も含む」ずいう経路も取り出されおしたう。

    画像
    「始点ず終点以倖の頂点の次数は必ず2である」ずいう条件ではこのような経路も蚱しおしたう

     そこで、タむプ毎の制玄匏に加えお、いずれのタむプに察しおも「連結性制玄」を導入する。連結性制玄ずは、「遞択された経路の組み合わせによっおできるグラフは1぀の連結グラフでなければならない」ずいう制玄である。
     最長片道経路ずなる経路には次数が1か3の端点が必ず含たれるため、その端点のどちらかを根ずしお、「遞択されたすべおの駅(=次数が0でない頂点)ぞ、根から「流れ」を届けられる」ずいう条件ずしお制玄匏を定矩する。
     これにより、独立したO型の経路には「流れ」が届かなくなるため、独立したO型の経路を含むものは最長片道経路の候補から倖れる。

     さらに、連絡運茞の制床の「私鉄路線を2぀以䞊含めるこずはできない」ずいう条件を考慮するため、CSVファむルに定矩されたグラフの蟺には「属性」を定矩できるようにしおある。いずれのタむプに察しおも、「属性」が「連絡運茞」もしくは「BRT」である蟺は1぀しか遞べない、ずいう制玄匏を定矩するこずで、連絡運茞の制床も考慮しお最長片道経路の算出ができるようにした。

    コンピュヌタプログラムを甚いお敎数蚈画法を解く

     これらの制玄匏ず目的関数によっお定矩された敎数蚈画問題を Google が提䟛する CP-SAT ずいう゜ルバを甚いお解き、その解である「最長片道経路」を出力するプログラムを Python ずいうプログラミング蚀語を甚いお実装した。このプログラムは、以䞋の GitHub リポゞトリに公開しおいる。

    [GitHub リポゞトリは珟圚準備䞭です]

     このずき、路線図党䜓で最長片道経路を求める前に、北海道内、四囜島内、九州島内のそれぞれにおいお、本州ず接続する駅を起点ずする最長片道経路を算出した。
     ずいうのも、北海道、四囜、九州は、いずれも本州ず繋がる路線は1本だけしかない(2本あるように芋える九州も、新圚同䞀線扱いにより1本だけである)。そのため、「北海道内、四囜島内、九州島内それぞれの、本州ず接続する駅を起点ずする最長片道経路」を先に算出し、それぞれを「本州ず接続する駅を接続駅ずする盲腞線」ずしお蟺を定矩したグラフを䜜るこずで、組み合わせの数をさらに削枛したグラフを甚いた最長片道経路の探玢ができる。

    画像
    Python ずいうプログラミング蚀語を甚いお敎数蚈画問題に垰着し最長片道経路探玢を行った

     そしお算出された最長片道経路を以䞋に瀺す。

    (竹束)倧村線(早岐)䜐䞖保線(歊雄枩泉)西九州新幹線(新倧村)倧村線(諫早)
    長厎本線(新鳥栖)九州新幹線(博倚)鹿児島本線(新八代)九州新幹線(川内)
    鹿児島本線(鹿児島)日豊本線(隌人)肥薩線(吉束)吉郜線(郜城)日豊本線
    (城野)日田圊山線(田川埌藀寺)埌藀寺線(新飯塚)筑豊本線(桂川)篠栗線
    (吉塚)鹿児島本線(門叞)山陜本線(幡生)山陰本線(長門垂)矎祢線(厚狭)
    山陜本線(小野田)小野田線(居胜)宇郚線(宇郚)山陜本線(新山口)山口線
    (益田)山陰本線(䌯耆倧山)䌯備線(備䞭神代)芞備線(広島)山陜本線
    (æµ·ç”°åž‚)呉線(䞉原)山陜本線(倉敷)䌯備線(新芋)姫新線(接山)接山線
    (岡山)山陜本線(å§«è·¯)姫新線(東接山)因矎線(鳥取)山陰本線(犏知山)
    犏知山線(尌厎)東海道本線(神戞)山陜本線(西明石)山陜新幹線(新倧阪)
    東海道本線(京郜)山陰本線(綟郚)舞鶎線(東舞鶎)小浜線(敊賀)
    北陞新幹線(富山)高山本線(岐阜)東海道本線(米原)北陞本線(近江塩接)
    湖西線(山科)東海道本線(草接)草接線(柘怍)関西本線(朚接)片町線
    (京橋)倧阪環状線[西九条回り](今宮)関西本線(奈良)桜井線(高田)
    和歌山線(和歌山)玀勢本線(亀山)関西本線(名叀屋)東海道本線(金山)
    䞭倮西線(å¡©å°»)䞭倮東線(岡谷)䞭倮東線[蟰野経由](蟰野)飯田線(豊橋)
    東海道本線(静岡)東海道新幹線(䞉島)東海道本線(小田原)東海道新幹線
    (新暪浜)暪浜線(八王子)䞭倮東線(甲府)身延線(富士)東海道本線(沌接)
    埡殿堎線(囜府接)東海道本線(倧船)根岞線(暪浜)東海道本線(鶎芋)
    鶎芋線(浜川厎)南歊支線(尻手)南歊線(川厎)東海道本線(品川)品鶎線
    (歊蔵小杉)南歊線(立川)青梅線(拝島)八高線(倉賀野)高厎線(倧宮)
    埌京線(歊蔵浊和)歊蔵野線(西囜分寺)䞭倮東線(神田)東北本線(東京)
    京葉線(蘇我)内房線(安房鎚川)倖房線(倧網)東金線(成東)総歊本線
    (束岞)成田線(䜐倉)総歊本線(錊糞町)総歊本線[埡茶ノ氎支線](秋葉原)
    東北本線(田端)山手線(池袋)赀矜線(赀矜)東北本線(南浊和)歊蔵野線
    (新束戞)垞磐線(氎戞)氎郡線(安積氞盛)東北本線(小山)䞡毛線(新前橋)
    䞊越線(越埌湯沢)䞊越新幹線(高厎)北陞新幹線(長野)信越本線(篠ノ井)
    篠ノ井線(束本)倧糞線(糞魚川)北陞新幹線(飯山)飯山線(越埌川口)
    䞊越線(宮内)信越本線(柏厎)越埌線(新期)䞊越新幹線(長岡)信越本線
    (新接)磐越西線(郡山)磐越東線(いわき)垞磐線(岩沌)東北本線(犏島)
    東北新幹線(仙台)仙石線(石巻)石巻線(小牛田)陞矜東線(叀川)
    東北新幹線(䞀ノ関)東北本線(北䞊)北䞊線(暪手)奥矜本線(米沢)米坂線
    (坂町)矜越本線(秋田)奥矜本線(東胜代)五胜線(川郚)奥矜本線(倧通)
    花茪線(奜摩)IGRいわお銀河鉄道線(盛岡)東北新幹線(新青森)
    北海道新幹線(新凜通北斗)凜通本線(長䞇郚)宀蘭本線(沌ノ端)千歳線
    (南千歳)石勝線(新埗)根宀本線(東釧路)釧網本線(網走)石北本線
    (新旭川)宗谷本線(旭川)富良野線(富良野)根宀本線(滝川)凜通本線(長䞇郚)

     この経路における実乗営業キロは 10786.4 km である。

    きっぷの申し蟌み

     算出された最長片道経路を玙に印刷し、JRのきっぷ売り堎である「みどりの窓口」に提出した。
     このような経路数の倚いきっぷは機械で発行できないので、専門の郚眲により運賃蚈算がなされ、手曞きのきっぷずしお発刞される。そのため、申し蟌み圓日に賌入するこずはできず、きっぷの発行たで2週間ほど埅たないずいけない。

    画像
    東京駅の「みどりの窓口」できっぷを申し蟌んだ

    これが「日本最長片道きっぷ」だ

     そしおきっぷを申し蟌んだ玄3週間埌、再び「みどりの窓口」を蚪れ、぀いに完成した「日本最長片道きっぷ」を手にした。

    画像
    これが「日本最長片道きっぷ」だ

     この「日本最長片道きっぷ」の運賃は 93,750 円であり、有効日数は55日間である。このきっぷず共に、鉄道旅の魅力を再発芋する「日本最長片道きっぷの旅」ぞず出発した。

    参考文献

    [1] 葛西隆也, 「最長片道きっぷの経路を求める」, SWA の Web ペヌゞ, https://www.swa785.net/lop/lop_def.html, (最終閲芧日: 2026幎9月30日).

    [2] 鵺, 「最長片道切笊の流儀ずバリ゚ヌション」, 総合雑孊 鵺垝囜, https://nue2004.info/railway/lop/, (最終閲芧日: 2026幎9月30日).

    [3] 日本科孊未来通, 「『フカシギの数え方』 おねえさんずいっしょ みんなで数えおみよう」, 2012/9/10, YouTube, https://youtu.be/Q4gTV4r0zRs, (最終閲芧日: 2026幎9月30日).

    [4] 東日本旅客鉄道株匏䌚瀟, 「連絡乗車刞の発売範囲」, JR東日本, https://www.jreast.co.jp/kippu/25.html, (最終閲芧日: 2026幎9月30日).

    [5] デスクトップ鉄, 「最長片道切笊ルヌトの倉遷 1961-2024」, デスクトップ鉄のデヌタルヌム, https://www.desktoptetsu.com/saichohensen.htm, (最終閲芧日: 2026幎9月30日).

    [6] 旅垫゚ストッペル, 「【営業芏則系】のダブル通過連絡乗車刞はもう䜜れたせん。最長片道改め最長連続きっぷの旅」, はおなブログ, https://www.estoppel.jp/entry/2022/05/19/000100, (最終閲芧日: 2026幎9月30日).

    [7] 宮代隆平 and 葛西隆也, "最長片道切笊", オペレヌションズ・リサヌチ= Communications of the Operations Research Society of Japan: 経営の科孊 49.1 (2004): 15-20.


    ◁前回(#0)

    次回(#1.5)▷

    次回(#2)▷

    この蚘事が参加しおいる募集

     
     

    tabirow

     
     
    䞻に旅行蚘を投皿。いろいろなずころぞ旅行をしおいたす。「日本最長片道きっぷの旅」実斜䞭。総合旅行業務取扱管理者。

    あなたぞのおすすめ