論理矛盾ラボ

全探索で唯一解が確認された新しい矛盾パズルを解きます。

インタラクティブシミュレーションを読み込んでいます...
パズルはブール方程式の連立系

真実を話す人を1、嘘つきを0とします。発言者の文の値が自身の役割ビットと一致するとき整合します。

SX(R) = RX

ラボは各 X で Sₓ(R) = Rₓ を確認します。全方程式が同じ役割ベクトル R を共有し、同時に成立する必要があります。

各文は完全な役割割り当てのブール関数です。

1つの矛盾が可能世界全体を消去する

役割割り当てを仮定し、各文を評価して発言者の役割と比較します。

SX(R) ≠ RX ⇒ reject R

1つでも不一致なら割り当て全体を棄却できます。ヒントは仮定と、その分岐を不可能にする方程式を示します。

矛盾は世界が規則を満たせないことを証明します。

解けるだけでは不十分:答えは一意であるべき

整合するパズルでも、有効な割り当てが複数ある場合があります。

|{R : ∀X, SX(R)=RX}| = 1

生成した各パズルを全探索し、残る世界がちょうど1つの場合だけ採用します。

緑の世界が論理系の唯一のモデルです。

強い手掛かりは多くの世界を消す

有用な文は候補を分けます。弱い文はほぼ全候補で同じ値かもしれません。

candidates: 2n → … → 1

ヒントは未適用のうち最も多くの世界を消す方程式を選び、答えへ飛ばずに不確実性を減らします。

情報量の多い方程式で候補数が減ります。

自己言及が必ず役立つとは限らない

「私は真実を話す」は両方の役割と整合し、新しい情報を与えません。

SX(R) = RX

「私は嘘をついている」は厳密な規則ではどちらの役割でも整合しません。生成器は両方を除外し、参加者間の関係を使います。

一方は恒真な自己主張、他方は充足不能な方程式です。

全プロセスの詳細解説

  1. 騎士と悪党のルール下で任務を選択する3人の参加者 7 ステップ

    騎士と嘘つきのルールに従う3人の参加者:騎士の発言は真、嘘つきの発言は偽とならなければならない。このラボでは訪問ごとに新しいなぞなぞが出題されるため、これは紙に書き出して解いてほしい——A「Cは嘘をついている」、B「AとCの役割は同じである」、C「私たちのうち少なくとも2人は真実を語っている」。誰かを特定する前に、選択肢となる割り当ての数を数え、それから発言を1つずつ検証して絞り込んでいこう。

    1. 騎士が何人いるかについては何の前提もないため、各参加者は独立した1ビットである(騎士は1、嘘つきは0)。ワールド(世界)とは3ビットのベクトル全体であり、そのすべてが最初は生存した状態で始まる。これがワールドパネルに初期表示される数値であり、誰かが何を言ったかではなく、登場人物の構成自体が持つ性質である。

    2. 発言はその場の事実を表すものではなく、発言者に関する方程式である。発言者Xの発言は役割ベクトルR全体のブール関数であり、整合性を保つにはその真理値がX自身のビットと一致しなければならない(騎士なら真、嘘つきなら偽となり、いずれにしても1つの方程式となる)。3つの方程式はすべて同じRを共有しているため、A、B、Cを個別に決定することはできない。

    3. まずAから始める。Aが騎士であれば発言は成り立ちCは嘘をついている。Aが嘘つきであれば発言は成立せずCは真実を語っている。どちらの分岐でもAとCのビットは異なることになり、Bが自由な状態のままで8つのワールドのうち4つに絞られる。

    4. BはAとCが一致すると主張している。実際には一致しないため、Bの発言は偽であり、Bは嘘つきである。生き残るのは2つのワールドである。Aが騎士でCが嘘つきのケース、またはAが嘘つきでCが騎士のケースである。

    5. Cが決着をつける。生き残ったどちらの可能性でも真実を語っている参加者はちょうど1人であるため、「少なくとも2人」という主張は偽となり、C自身のビットは0でなければならない。Cを騎士とするワールドは、自身の役割が禁じる内容を主張することになり排除される。残るワールドは1つである。

    6. 振り返って、AとBがなぜそれぞれちょうど半分を除外できたのかを考えてみよう。どちらの発言も自分自身には言及していないため、他の2ビットの設定ごとに、方程式を満たす発言者のビットの値がちょうど1つ存在する。他の人々に関する発言は、何を主張していようと、常に2n-1個のワールドを残す——それ以上でも、それ以下でもない。

    7. Cの発言はそのような種類のものではない。「私たちのうち少なくとも2人」にはC自身も含まれるため、発言者のビットが方程式の両辺に存在することになり、半減の議論が崩壊する。Cの方程式単体を全8つのワールドに適用すると6つが残る。AやBの方程式がそれぞれ4つを除外するのに対し、2つのワールドしか除外できない。

    解答

    Aは騎士、BとCは嘘つきである——パネルが初期表示する8つのワールドのうち1つ。一意性は幸運によるものではなく算術的な結果である。他人のことだけを語る3人の発言者は候補を3回半減させ、それらの削除が独立していれば、2³を3回半減させると正確に1となる。この形式のなぞなぞで全員が他人の噂話をしているのはそのためである。Cは異質であり、それにはコストがかかる。自分自身を数える方程式は4つではなく8つのうち6つを残すため、他が半分を消去する場面で盤面の4分の1しか消去できない。役割を1つも知る前に候補となる発言についてその数値を算出できる。これこそが手掛かりの真の尺度である。どれほど巧妙に聞こえるかではなく、盤面をどれだけ排除できるかである。

  2. 生きている世界を数える人狼テーマの4人の参加者 6 ステップ

    同じラボ、人狼テーマ、参加者4人。4人のうちちょうど1人が人狼であり、人狼だけが嘘をつく。誰かが発言する前に生存しているワールドを数え、それを3人の騎士ラウンドと比較せよ。

    1. 役割は依然としてビットであり(村人は1、人狼は0)、自由な4ビットがあれば16個のベクトルが得られる。これがテーマが打ち負かすべき数値である。

    2. テーマは飾りではなく制約である。ちょうど1つのビットが0となる。どのビットかを指定することは4人の参加者から1人を選ぶことを意味するため、16個のベクトルのうち4つだけが条件を満たす。ワールドグリッドにはそれらが一覧表示され、単一のWが各行で1つずつ移動していく。

    3. 空間を4分の1に削減することは2ビット分の価値があり、一言も発せられる前にそれが手渡されている。

    4. ここからが重要な比較である。参加者3人の騎士ラウンドは8つのワールドから始まるが、このラウンドは容疑者が1人増えているにもかかわらず4つから始まる。人数が増えたのに探索範囲は狭い——事前分布(事前情報)が、追加された参加者によって増えたビットを上回っているのである。

    5. 嘘つきが1人ということは、嘘も正確に1つであることを意味する。4人の参加者全員が発言し、人狼の発言だけが偽となるため、画面上の4つの発言のうち3つは真である——これはどれを読む前にも分かっていることである。

    6. そのため、ここでは総当たり検証が非常に容易になる。4つのワールド×4つの発言者方程式=16回の整合性チェックであり、紙の上でも計算できる。同じ4人が騎士/嘘つきのルールに従う場合、16個のワールド×4つの方程式で64回になる。

    解答

    16個中16個ではなく4個中4個——最初の発言の前にテーマが盤面の75%を削除した。規模を拡大すると、2つのゲームはもはや同じゲームではなくなる。n人の参加者がいる場合、人狼の空間はn、騎士の空間は2nとなる。10人のプレイヤーでは1024個に対して10個のワールドとなり、事前情報は10 − log₂10 = 6.68ビットの価値となる。その理由は、人狼ラウンドでは「どれか1つ」しか問われないため、席をどれだけ増やしてもその答えは高々log₂ nビットの幅にとどまるのに対し、騎士ラウンドではn個の独立した「はい/いいえ」の質問が行われ、誰かが着席するたびに倍増するためである。人狼ラウンドにプレイヤーを1人追加するとワールドが1つ増えるのに対し、騎士ラウンドに1人追加するとワールドは倍増する。

参考文献 (1)

例題