2021年4月23日金曜日

ビザンチン将軍問題は、オスマン将軍問題に改名したほうがいい気がします

 ビザンチン将軍問題は、オスマン将軍問題に改名したほうがいい気がします、という話。長いよ。

計算機科学の分野の問題の一つに、「ビザンチン将軍問題」というのが、あるのです(リンクは、Wikipediaです。)
初めて、私が読んだ専門書では、この問題は、こんな感じの説明でした。
「ビザンチン帝国の軍隊が、とある敵国の都市を包囲している。包囲しているビザンチン帝国軍は、n個の軍団によって構成されていて、各軍団は、それぞれ、1人の将軍によって率いられている。帝国軍は、包囲している都市の攻撃を続行するか、それとも、撤退するか、を決めなくてはならない。もし、帝国軍全体で協力しあって攻撃したら、敵の都市を攻め落とすことができる。また、帝国軍全体で、協力しあって撤退作戦を行えば、犠牲を出さずに撤退することができる。ただし、一部の軍団だけが攻撃を続行し、残りの軍団が撤退しようとする、というようなことになれば、帝国軍は、敵に打撃も与えられず、被害だけを出し、戦争は敗北することになる。将軍たちは、攻撃か、撤退か、軍の全体の統一した方針を決めなくてはならない。無事に、全体で攻撃か撤退か、全軍で統一した行動が取れれば、将軍たちの勝ち、統一した行動を取れない軍団が出てくれば、将軍たちの負け、である。
ただし、問題点が2つある。
1,各将軍は、それぞれの率いる軍団を離れることはできない。したがって、全員で一箇所で会って話し合うのではなくて、お互いに手紙を出し合うことで、合意に至らなくてはならない。
2,将軍たちの中には、裏切り者がいる。裏切り者の将軍は、全体の統一した意思決定を妨害しようとするために、他の将軍に嘘の手紙を書くことがある。」
もちろん、計算機学者は、別段、ビザンチンの将軍の歴史の話に興味があるわけではありません。これは、コンピュータネットワークで、一部のコンピュータに故障が発生した場合にも、コンピュータネットワーク全体が、正常に動作を続けられるようにするにはどうしたらいいか、ということを考えるために、レスリー・ランポートという計算機学者が考えた例なのです。この例題の中の裏切り者の将軍は、故障したコンピュータの比喩で、また、例の中のビザンチン帝国軍は、ネットワーク全体の比喩なのです。計算機科学の世界には、このビザンチン将軍問題を解決するためのさまざまなアイデアがあります。
さて、この話を読んでから、ずっと疑問に思ってきたことがあるのです。それは、「ビザンチン将軍問題」に相当するような、ランポートの元ネタになるような戦争は、歴史上、どこかにあったのだろうか、ということでした。
複数の軍団が、お互いに会うこともできないほどの距離に布陣しないと包囲できないような都市、となると、かなり巨大な都市のはずです。ウィーンとか、ローマとか、おそらく、かなり大きな、つまり、現在でも有名な都市、でしょう。そんな巨大な都市を、ビザンチン帝国軍が包囲して、しかも、裏切り者がいて、そういう戦争というのは、歴史上、どこかであったのでしょうか?
先日、ネットフリックスの歴史ドキュメンタリー「オスマン帝国」を見ました。オスマン皇帝のメフメトの軍隊がコンスタンチノープルを陥落させる15世紀の戦いを描いたドキュメンタリーです。
皇帝に即位したばかりころ、メフメトの政権の基盤は弱く、メフメトは、自分の地位を守るためにも、自分が先代よりも優れた皇帝であることを周囲に示す必要がありました。メフメトは、そのために、コンスタンチノープル攻略を計画するのです。しかし、コンスタンチノープルは難攻不落の城塞です。この戦争が、若い皇帝の功名心からでた、成功の可能性が低い侵略だとみた大臣は、戦争に反対します。オスマン帝国では、メフメトの始めた戦争を支持する声は主流ではなかったのです。そういう中で、忠誠心の曖昧な軍を率いて、メフメトはコンスタンチノープルを包囲します。
包囲はしたものの、コンスタンチノープルは巨大な都です。包囲するオスマン軍の各軍団は、都の周囲の大きな湾や森、砦などに遮られ、お互いの連絡も十分に取れなくなります。そんな中、オスマン軍よりも遥かに小規模な軍隊でコンスタンチノープルを守るビザンチン皇帝は、オスマン軍にスパイを送り込み、調略によって逆転しようと試みます。オスマン軍の中には、本当か嘘かわからない情報が飛び交い、イスラム教徒からコンスタンチノープルを守るためにローマ法王が援軍を派遣したという噂が流れます。その一方で、オスマン帝国に新兵器を売り込もうとするキリスト教徒の発明家たちも現れます。むろん、信用できるものかはわかりません。そんな中、メフメトは、奇抜は作戦を秘密裏に進め、成功して、コンスタンチノープルを陥落させるのです。そして、勝利したメフメトは、戦争中に裏切った家臣たちを処刑し、自身の政権基盤を確固たるものにします。
さて、このコンスタンチノープルを包囲しているオスマン軍の様子、「ビザンチン将軍問題」に出てくるビザンチン軍に、似てませんか?
でね、思いついて、調べてみたんですよ。
この、「ビザンチン将軍問題」の元ネタは、「どこかの国の都市を包囲したビザンチン帝国の将軍たち」ではなくて、「ビザンチン帝国の首都であるコンスタンチノープルを包囲したオスマン帝国の将軍たち」だったのではないかと。それを、誰かが誤解して、ビザンチン帝国の将軍の話みたいに思って、いつの間にか、そっちの誤解が広がっちゃったんじゃないか(上でリンクしたwikipediaもビザンチン帝国の将軍の話として書いています)、って。まだ、ランポートの原著には当たれていないんですが、調べてみると、「ビザンチンを包囲するオスマンの将軍」の話として書いている本も、多いみたいなんですよね。

富山の四谷川

ふと思い出した話。長いよ。
小学生の頃、富山市の、割と中心部に住んでいたことがある。住んでいたところの近くには、四谷川(よつやがわ)、という小さな川が流れていた。
川は、細いところでは、助走をつければ飛び越せそうな程度の、小さなものだった。周囲の田んぼの排水は、だいたい、この川に流れ込んでおり、私の両親は、周囲の田んぼの水のための用水路だと思っていた。
実際、この川は、用水路のような感じというか、人工的な印象を与える川だったのである。川は、富山平野の中心部の、ほとんど水平な土地を流れていた。地面が水平なのに流れるのは、川が、深い溝の底を流れており、その溝が、川下ほど深くなるように掘られているからだった。また、川の流れる溝は、ほとんどのところで道に沿って真っ直ぐに流れ、ときどき、ほとんど直角に曲がっているのだった。つまり、どうみても自然な川には見えない、小さな川だったのである。
私が、この川が、見た目に反して、実は、ただの小さな川ではないと知ったのは、小学校の図書館でのことだった。図書館には、地域の郷土史の本がいっぱいあり、その中に、この四谷川が、昔は、もっとずっと大きな川だったと書かれていたものがあったのだ。
室町時代には、四谷川は、芋田川と呼ばれていたそうだ。当時の芋田川は、簡単には越えられない太い川で、富山城の南側の防壁の役割を担っていた。前田利家や佐々成政が率いる織田軍団が富山を征服した頃には、川の防衛上の機能を高めるために、川の北岸に沿って土の壁が作られ、また、川と壁を見張るために、川沿いに芋田城という小さな城が作られていたという。芋田城は、富山城の南を守る出城で屋形のような小さな城であった。場所は、今の中央保健福祉センター、少し前まで、星井町小学校があったところの近くだったという。
やがて、慶長の一国一城令により、芋田城は壊され、その代わりに、芋田川を見張るための小さな侍屋敷がいくつか作られた。侍屋敷は、時代によって増えたり減ったりしたようだが、最終的には4つに落ち着き、4つの侍屋敷が並ぶ芋田川は、四ツ家川、と呼ばれるようになった。やがて、周囲の住民は、昔、そこに屋敷があったことを忘れ、四ツ家川は四谷川と書かれるようになっていった。
当時、日本史、特に戦国期の歴史にハマっていた小学生の私は、この、自分の住んでいる近くに戦国の城があったという話に興奮した。しかし、それ以上に気になったのは、もし、四谷川が、昔、もっと大きな川だったとしたら、その水は、どこから流れてきて、どこに流れていたのか、ということだった。
川を流れる水は、山にふった雪や雨である。雪や雨の降る量は、この四百年でそう変わってはいないだろう。であれば、四百年前に、この川を流れる水が今より多かったのであれば、この四百年で川に流れ込む水の減った分と同じだけの水が、今は、上流のどこかから、別の川に流れ込んでいるはずなのだ。また、四百年前に、この川を、もっと多くの水が流れていたとしたならば、この川の下流、つまり、富山市の中心部に、大きな川の水の流れ込む、今はない大きな池なり川なり、があったはずなのだ。それは、どこだ?それが知りたくて、小学生の私は、四谷川の下流と上流の「探検」にでかけた。
下流については、その日のうちに謎が解けた記憶がある。四谷川を川下にたどると、子供の足でも20分くらいで、冷川(つめたがわ)という、四谷川より少し太い川と合流するところにでる。南部中学のちょっと北あたりである。その先は、川の名前が変わって、松川(まつかわ)となる。
松川については、小学校の授業で知っていた。昔の神通川である。神通川は、昔、富山市の中心部を蛇行して流れていた。その神通川の氾濫が頻繁なため、明治期に河川改修が行われた。その河川改修で、郊外に、新しい直線的な神通川が作られた。そして、それ以前に蛇行した神通川が流れていたところは、大部分が埋め立てられ、一部が、松川となった。この神通川改修と松川の由来の話は、富山市民にはよく知られている。そのため、松川には神通川の水が流れていると思っている人も多いが、実は、今の松川を流れているのは、四谷川と冷川の水である。いずれにせよ、いま、四谷川が松川に流れ込んでいるのであれば、昔の四谷川は、一級河川である神通川に流れ込んでいたはずなのだ。大きな川だった時代の四谷川の水の行き先は、これで、解決である。
上流の方は、なかなかわからなかった。四谷川の上流は、小学生の足では、少し遠すぎたのだ。わかったのは、中学1年生の夏である。自転車で、四谷川の上流をたどって、いくつもの用水を乗り換えながら行くと、上滝のあたりで、常願寺川に到達するのである。つまり、四谷川は、常願寺川の別れたものである。おそらく、四谷川の水量の減った分は、それよりも遥かに大きな川である一級河川の常願寺川に流れているのであろう。いつ頃、常願寺川から四谷川に流れ込む水量が変わったものか、よくわからない。ただ、四谷川の源流である常西用水が常願寺川から分かれるところには、佐々堤がある。佐々成政が作った堤防である。おそらく、四谷川の水量が減るのは、佐々成政が、ここに堤防を築いたよりも後であろうとおもっている。
さて、四谷川は、常願寺川から流れ出し松川に流れ込む、で、だいたいの話はおしまいなのだが、いまだに、よくわかっていないことがある。それは、最初に書いたとおり、四谷川の流路が、妙に人工的なことだ。四谷川も、また、四谷川と同じように常願寺川から分かれ、富山市内を流れて松川と合流する、いたち川も、どちらも、妙に深い溝を通っているところが多く、また、妙にまっすぐで、妙に直角に近い曲がり方をするところが多いのである。また、昔の富山の城下町を防御するのにも、田んぼの灌漑にも、自然の川にしては都合が良いところを流れすぎているのである。なんだか、やっぱり、誰かがつくったみたいではないか。四谷川も、いたち川も、前田利家や佐々成政が来た頃には、もう、今の流路であったというから、おそらく、それよりも前の時代に、誰かが川筋を今の場所にしたのだろうと思う。一体いつの時代のことか、誰が、工事したのか、おとなになった後も、何度か調べたのだけれど、いまだにわからないのである。