渡航先スケジューリングアルゴリズム 【すぐに撃つのも弾丸トラベル】
万難を排して旅に出る覚悟を決めた者には、3つの異なる至福のときが約束される。
旅する前と、旅の間と、旅した後だ。
幸せを感じるのは旅の最中だけとは限らず、写真を見ながら酒でも飲んで、ひとり静かに旅を振り返るのだって心地よい。
そして、多くの人が認めるように旅行前の計画段階が実はもっとも楽しく、地図を眺めながらあれこれ思いをめぐらす瞬間、幸福度は早くもピークを迎える。
この際、まず最初に決めるのが目的地だ。ここが良いが、あっちも捨て難い…などと複数の候補が浮かぶこともよくある。
仮にナウル、マラウィ、インド、ラオスの4ヶ国のうち、どこへ行くかで決めかねているとしよう。全部まとめて周遊すればよいのだが、通常は費用も時間も限られる。そこで、1回の旅で1ヶ国訪れる条件で、4ヶ国計4回にわたる旅の渡航先の順序をどうすべきかを考えてみたい。
単純化のため、制約条件は費用のみとし、休暇は金が貯まり次第いつでも取得できるものとみなす。
各国ごとの旅費は下表の通り見積もり、貯金ゼロの状態から旅行に向けて毎月3万円の積み立てを始めたとする(旅費の変動、シーズンオン・オフの差、貯金の利息といった細かい条件は無視し、借金も不可)。
渡航先 | 費用(万円) |
ナウル | 27 |
マラウィ | 18 |
インド | 15 |
ラオス | 12 |
計 | 72 |
費用の合計が72万円で、毎月3万円貯める場合、72万(円)÷ 3万(円)=24(ヶ月)で、4ヶ国すべてを回りきるのに2年必要だ。
どの国か決めかねるということは、行きたい気持ちは4ヶ国とも同程度。どうせ2年かかり、幸せを感じるにはちょっと早いから、順番は何だっていいか…と思いがちだが、そうではない。
上表の順番にしたがうなら、最初のナウルに行けるのは9ヶ月後。次のマラウィは、さらにもう半年後で、現在を起点にすれば15ヶ月後だ。それ以降も下表の通り求められる。
渡航先 | 費用(万円) | 待つ期間(月) |
ナウル | 27 | 27÷3=9 |
マラウィ | 18 | 9+ 18÷3=15 |
インド | 15 | 15+ 15÷3=20 |
ラオス | 12 | 20+ 12÷3=24 |
計 | 72 | 68 |
試しに順番を逆にすると、下表のように変わる。
渡航先 | 費用(万円) | 待つ期間(月) |
ラオス | 12 | 12÷3=4 |
インド | 15 | 4+ 15÷3=9 |
マラウィ | 18 | 9+ 18÷3=15 |
ナウル | 27 | 15+ 27÷3=24 |
計 | 72 | 52 |
明らかに待つ期間が減った。すべてを回り終える期間は等しいのに、これは一体なぜか。
最初に積み立てを始めたばかりの頃は、4ヶ国各々について欲求が叶わぬストレスがある=4つの重荷を背負っている状態だ。晴れて最初の国に渡航できたとき、それらのうちの1つを降ろすので重荷は3つに減る。
ということは、荷物の重さが同じ(行きたい気持ちがどの国も同じ)であれば、早い段階で降ろせる荷物(費用が安い国)を優先して降ろす(行く)方が、荷物1個を背負う時間の合計(待たされるストレスの合計)は少なくて済む。
即ち、弾倉に弾を込めたら、撃てる的を直ちに撃つのが合理的なのだ。
この考え方は、コンピュータで処理の順序を決める際に使う残余処理時間順と呼ばれる方式に基づいている。
ただ、これが単純に人間の心理にあてはまるかは疑わしい。
荷物4つを背負うのが1つだけのときより4倍きついのはまだ分かるが、行きたい国が4つあるからといって4倍辛いだろうか。いずれにせよ我慢することに変わりなく、1倍は超えるにしても4倍未満には収まりそうだ。一方で、ストレスなんてその要因が増えるほど互いが影響しあい、1足す1が2を上回るものだし、病気だってまとめて罹る方が厄介だ。とすれば4倍を超えてもおかしくはない。
さらに、待つ期間については、例えば同じ1ヶ月違いでも23ヶ月後と24ヶ月後は微々たる差だが、今すぐ(ゼロヶ月後)と1ヶ月後は全く別と感じる人が多いらしい(双曲割引)。
今回はこうした面倒な問題は脇に置き、単純に渡航を希望する国の数や待つ期間の長さに伴い、線形でストレスが高まると考える。
では、渡航を待ち望む強さが国によって差があるとどうか。つまり、ラオスを基準値1.0に定めたら、インド2.0、マラウィ1.2、ナウル3.0といったふうに重み付け係数で表せる場合だ(各数値は「ナウルへの思いはラオスの3倍」などと主観的に判定したもので、そのような計測が可能と仮定)。
もし、費用がすべて同じ(待つ期間が同じ)なら、重い荷物(=重み付け係数が大きい国)を先にすべきなのはすぐにわかる。
費用が安い(待つ期間が短い)ほど、重み付け係数大きいほど、優先度を上げるには、費用÷重み付け係数の計算結果(の小ささ)で判断すればよい。この値を決めて下表に整理した。
渡航先 | i.費用 | ii.重み付け係数 | i ÷ ii |
ナウル | 27 | 3.0 | 9 |
マラウィ | 18 | 1.2 | 15 |
インド | 15 | 2.0 | 7.5 |
ラオス | 12 | 1.0 | 12 |
念のため、すべての組み合わせ(24 通り)を比べたところ、インド、ナウル、ラオス、マラウィの順(i÷iiの昇順)が最もよいと確認できた。
C列:C3を「=B3/3」とし、C4からC6にコピー
E列:E3を「=B3/D3」とし、E4からE6にコピー
J列からM列:J3を「=VLOOKUP(F3,$A$3:$C$6,3,0)」とし、J3からM26にコピー
N列:N3を「=VLOOKUP(F3,$A$3:$D$6,4,0)*J3+VLOOKUP(G3,$A$3:$D$6,4,0)*SUM(J3:K3)+VLOOKUP(H3,$A$3:$D$6,4,0)*SUM(J3:L3)+VLOOKUP(I3,$A$3:$D$6,4,0)*SUM(J3:M3)」とし、N4からN26にコピー
O列:O3を「=RANK(N3,N:N,1)」とし、O4からO26にコピー
その他の列:そのまま直接入力
以上のような発想は、電化製品の買い替えとか引っ越しといった旅と無関係の行為と、旅そのものとの間の優先順位決定にも適用できる。我々は普段、やりたいこと、やるべきことに対し金や時間、労力など限られた資源を割り振るとき、各行為の重要度を判断していて、先の重み付け係数がその程度を示す。
私の場合、旅に対するこの係数が以前よりも大きくなってきた。トリガーを引いたのはパンデミックだ。人は「やるな」と言われるほど、やりたくなるもの(カリギュラ効果)。
旅自体の重みが増すと優先順位は繰り上がるはずだが、制約条件変更の作用が大きいと、逆に繰り下がってしまう。結果、行きたくても行けず、それにより長期にわたり重い荷物を背負い、幸福度は下がるという悪循環に陥る。
たかが旅を諦めるくらい些細な問題だとの考えはあろう。もっと深刻な悩みは他にある。私は4次請けほどの準業務委託(わかりやすい言葉では「非正規」)で働いていて、仕事が途切れたときは日雇いバイト(重荷とまではいかずとも、体力的にきつい)もするので、そちらの影響の方が重大だ。
しかし、だからといって旅が我慢できるわけもなく、長期にわたる実質的な海外渡航制限で幽閉の恐怖と焦りを脳が学習してしまった。本件に関し私が「喉元過ぎれば熱さを忘れる」可能性は低い。
永遠に生きるかのように、旅を計画し弾を込め続け、明日死ぬかのように、旅をして撃ちまくる…くらいの気概がないと、この先、幸せを感じるのは難しそうだ。