本文へ移動
雑学書庫好奇心が集まる場所
日本語

確認の確認は終わらない、二人の将軍問題(Two Generals’ Problem)

友人に「明日の午後3時に駅前で会おう」とメッセージを送ったのに返信が来ないと、相手が読んだかどうかわからず、なんとなく不安になります。「了解」と返事が来ても、今度はその返事を自分が受け取ったことを相手が知っているのかが気になるかもしれません。コンピュータ科学には、この終わりのない確認の連鎖を二人の将軍の物語で説明した有名な問題があります。それが「二人の将軍問題(Two Generals’ Problem)」です。

二人の将軍問題とは、簡単に言えば「メッセージが途中で消えるおそれのある通信路では、双方が同じ行動に合意したという事実を決して完全には確信できない」ことを示す思考実験を意味します。ネットワークや分散システムを初めて学ぶときに必ずと言っていいほど登場し、コンピュータ通信の問題のなかで、解決できないことが初めて証明された問題とされています。

本記事では、二人の将軍問題がどのような状況を描いているのかから、なぜ解けないのか、この問題がどこから始まったのか、そして実際の技術がこの限界をどう扱っているのかまでを順に見ていきます。


確認の確認が終わらない二人の将軍問題

二人の将軍問題とはどんな状況か

夜明けの霧が立ちこめる谷を挟んだ二つの丘に天幕の陣営があり、中央の丘の上に石造りの城が建っている様子

この問題は、城を挟んだ二つの軍隊の物語から始まります。

(1)別々に陣を張る二つの軍隊
二人の将軍が率いる軍隊が、一つの城を攻めるためにそれぞれ別の丘に陣を張っています。二つの軍隊が同時に攻撃すれば城を落とせますが、片方だけが攻撃すると、その軍隊は大敗してしまいます。

(2)危険な谷を越える伝令
二人の将軍が連絡を取る方法は、城の軍隊が守る谷を通って伝令を送ることだけです。伝令はいつ捕まってもおかしくなく、送った側には伝令が到着したかどうかを知るすべがありません。

(3)将軍たちが求める確信
将軍たちは攻撃の時刻を決めるだけでなく、「私たち二人ともその時刻に攻撃する」という事実を互いに確実に知りたいと考えています。この確信があってこそ、安心して軍を動かせるからです。

このように二人の将軍問題は、信頼できない通信路の上で双方が行動を合わせようとするときに生じる難しさを、シンプルな場面に凝縮して示しています。


なぜ最後まで確信できないのか

霧のかかった森の谷を、巻物の筒を載せた馬に乗った伝令が一人で渡っていく後ろ姿

伝令を何度もやり取りすれば解決しそうに思えますが、確認を増やすほど同じ悩みが繰り返されるだけです。

(1)最初のメッセージの不安
最初の将軍が「明朝6時に攻撃する」という伝令を送っても、伝令が着いたかどうかわからないため、自分だけが攻撃することになるのではとためらってしまいます。

(2)延々と続く返信
二人目の将軍が「受け取った、6時に攻撃する」という返信を送ると、今度は二人目の将軍がその返信が届いたかどうかを心配します。最初の将軍が返信を受け取ったという確認をまた送っても、その最後の伝令もやはり捕まるおそれがあります。

(3)最後の伝令のパラドックス
何度やり取りしても、最後に送った伝令が到着したかどうかを送った側は知ることができません。最後の伝令が捕まっても送った側から見れば状況はまったく同じなので、その伝令一人に攻撃するかどうかがかかっている方式なら、片方だけが攻撃する事態が起こりえます。そのため、決まった回数だけ確認をやり取りするどんな方法でも、二人の将軍を完全に足並みをそろえさせることはできないという結論になります。

要点は、確認のメッセージも元のメッセージと同じくらい簡単に失われうるということです。確認をどれだけ重ねても、最後の一枚の不確実性はそのまま残ります。

二人の将軍問題のフローチャート。将軍Aの攻撃時刻のメッセージと将軍Bの返信は届いたが、Aが改めて送った確認が届いたかどうかはわからない。確認をさらに送っても、最後のメッセージが失われる可能性は残る。
二人の将軍問題のメッセージの流れ。最初の2つのメッセージが届いても、最後の確認が届いたかどうかは残る。点線は消失の確定ではなく、届いたかどうかの不確実性を表す。

二人の将軍問題はどこから始まったのか

1970年代の研究室に大型メインフレームコンピュータとテープ装置、何も映っていない画面がついた端末とメモ用紙が置かれている様子

この問題は、コンピュータネットワークが発展し始めた1970年代に整理されました。

  • 最初に掲載された論文(First Publication):1975年、E. A. アッコユンル(E. A. Akkoyunlu)、K. エカナダム(K. Ekanadham)、R. V. ヒューバー(R. V. Huber)が、ネットワーク通信の設計上の制約を扱った論文で、この問題と解決できないことの証明を初めて発表しました。この論文では、将軍の代わりに互いに連絡を取り合う二つのギャング団で状況を説明していました。
  • 名前を付けた人(Naming):データベース研究者のジム・グレイ(Jim Gray)が1978年、データベースのオペレーティングシステムに関する文章でこの問題を「二人の将軍のパラドックス(Two Generals Paradox)」と呼んだことで、現在の将軍の物語として広く知られるようになりました。
  • より大きな問題への拡張(Byzantine Generals Problem):1982年、レスリー・ランポート(Leslie Lamport)、ロバート・ショスタク(Robert Shostak)、マーシャル・ピーズ(Marshall Pease)は、複数の将軍のなかに裏切り者が混じっている状況を扱った「ビザンチン将軍問題」を発表しました。二人の将軍問題は、この問題を学ぶ前の入門としてよく紹介されます。

実際の技術はこの限界をどう扱っているのか

現代的なデータセンターの通路にサーバーラックが並び、状態表示灯と整理されたネットワークケーブルが見える様子

完全な確信が不可能なら、現実の技術は不確実性をなくすよりも、許容できる水準まで減らす道を選びます。

(1)何度も送る
最初の将軍が伝令を何人も送れば、全員が捕まる確率は大きく下がります。確信とまではいかなくても、成功の可能性を十分に高めることができます。

(2)確認と再送
インターネットの基本的な通信規約であるTCP(Transmission Control Protocol)は、接続を確立するときに3回のメッセージをやり取りし、データを送ったあと受信の確認が決められた時間内に来なければ再送します。この方式も双方の状態が常に同じであるとは保証できませんが、実用に十分な信頼性を生み出します。

(3)沈黙も合図として使う
一定時間何の連絡もなければ相手が計画を受け入れたものとみなす、とあらかじめ約束しておく方法もあります。伝令を送る回数を減らしながらも、高い確信を得ることができます。

これらの方式にはどれも、完璧さの代わりに「十分に信頼できること」を目標にしているという共通点があります。


二人の将軍問題は、どれほど精巧な技術でも、信頼できない通信路の限界を完全には越えられないという事実に気づかせてくれます。今日私たちが使うメッセンジャーや決済システム、クラウドサービスも、この限界を認めたうえで設計されています。

完全な確信は不可能だという事実を受け入れ、そのうえに安全装置を積み重ねること。それが信頼できるシステム設計の第一歩です。

この記事をPDFで手元に

今読んでいる記事の、選択した言語の版を購入できます。

US$1.00
選択中の言語: 日本語

US$1.00 · 1記事・1言語

一度購入すれば、同じアカウントでログインして購入した版を再ダウンロードできます。

PDFサンプルを見る ↗本文は引き続き無料で読めます。サンプルでPDFの文字やレイアウトを確認できます。

販売者情報

商号
아카이지
代表者
안호원
事業者登録番号
530-02-04118
通信販売届出番号
2026-경기군포-0626
届出先
경기도 군포시
事業所所在地
경기도 군포시 산본천로 119-9, 1109동 405호 (산본동, 주공아파트)
ホスティング提供者
카페24(주)
お問い合わせメール
sgjjojo@gmail.com
お問い合わせ電話番号
010-4194-0821

事業者情報の確認(韓国公正取引委員会)