嘘つき村の論理パズル
僕らは互いに顔を見合わせ、ソファから立ち上がる。
隣室――所長室のドアが大きく開かれ、僕達は次々と招かれて入室した。
広い部屋が、入って左手側に向けて二間続きになっている。一部屋あたり二十畳ほどあるが元々居住用ではないのか、生活には向かなく見える。ベッドもなく、所長は壁際に追いやられたソファで寝ているのだろう。トイレやシャワールームらしきドアも見当たらない。ただ、僕らが入ってすぐ右手側はカーテンで仕切られていて、奥は見えない。
そのカーテンは通常『所長室』と呼ばれるような部屋にはないものだ。ここを私室として使うために後から天井にレールを固定してぶらさげたもののように思う。
所長は左手側、一番奥にある、プリントした論文が山と積まれたいかにも執務用っぽいデスクに向かった。そこに置いたラップトップをこちらへ向け、手招きする。
僕らはおずおずと奥へ続いて、ラップトップと所長を囲む。
所長のスマホのもっさりジャケットもダサかったけれど、ラップトップも無骨だ。
「まず、TFAの〝理解〟について、デモンストレーションをお見せしよう。先程より技術的にやや踏み込んだものだ」
ラップトップのタッチパッドの指紋認証に触れると、ログイン画面から変わり、画面いっぱいにLinuxのターミナルが沢山並ぶ。あとは論文を開いているWebブラウザくらい。呆れるやら感心するやら――いかにも研究者っぽい画面だった。
ターミナルは仮想端末――ラップトップのディスプレイに開かれた複数のコマンド対話ウインドウだ。コマンドの入力と結果、基本的にはテキストのみでコンピュータを操作するアレのことだ。
「簡単な論理パズルを解かせる。初歩的なもので、現行のAIでも答えだけは出せる」
どのターミナルにもコマンドや動作中のログが流れ続けている。
所長は空いているターミナルのひとつを選び、キーボードを叩いてコマンドと、続けて質問を入力した。
```
>嘘つきと正直者だけの島がある。全ての島民は必ず嘘を言う嘘つきか、必ず真実を言う正直者である。そこで行われている裁判で、島民のAとBが次のように証言した。
A:「私とBが共に正直者ならば、被告は有罪です」
B:「Aは正直者です」
このとき、被告は有罪か? AとBはそれぞれ正直者と嘘つきのどちらか?
```
なるほどこれは典型的な嘘つき村のパズルだ。
三人の登場人物がいる。嘘つき村と正直村、いずれかの住人であるA、B。そして何らかの罪を
AとBは必ず嘘のみを答えるか、必ず真実のみを答える。両者とも同じ村の者ということもあるだろう。彼らがそのどちらか、そしてその証言内容によって被告が有罪かどうか決定される。
このパズルが問うのは、論理的に矛盾の起きない組み合わせがあるか、あるとしたらどういう組み合わせか、ということになるのだとは想像される。
もし矛盾のない組み合わせがたったひとつに限られる場合のみ、ただひとつの真実が判明した――と大袈裟にはそういうこと。
回答は、隣のウインドウのターミナルに即座に表示された。
```
〝AとBはどちらも正直者で、被告は有罪です〟
```
「あってるの?」と、千束さんが僕を見る。僕を見ないで欲しい。
正解は忘れたけれど問題自体はありがちなものなので、グーゴルで検索してもすぐに正解がヒットしそうだ。
ただしこうしたパズルの解法は、基本的にはA,B、そして被告の有罪の真偽を組み合わせを全部表に書き出して検討する。簡単だけれど、そういう表は結構大きなものになりがちだ。常に見落としのリスクがあるような気がして、僕はあまり好きじゃない。
「解らなくとも問題ない。設問に大した意味はないからだ。だが更に中身を説明させることで、TFAの仕組みの一端を感じられるだろう。従って次にこれが正しいことを説明させる」
所長は続けて〝過程を形式的に説明せよ〟と入力する。
回答が即座に流れ出す。
```
>過程を形式的に説明せよ
〝では命題論理を用いて説明します。まず、Aの証言をaと置き、Bの証言をb、被告が有罪であることをPと置きます。すると全体が矛盾なく成立するのはb
```
なるほど命題論理か、と僕は頷く。
確かに、こうやって式で表せばコンパクトだ。大きな表を使うよりも、式の組み立てや変形だけが正しいかだけ気にすればよいことになる。
ここでAとBは登場人物のまま、それぞれの主張の中身が
「ん? Pは被告? この∧って記号はなんだっけ?」
千束さんが狼狽えた声を出したので、僕はなけなしの知識を振り絞って説明した。
「Pは〝被告が有罪である〟って主張そのものを示してます。こういう、主張に対して正しいか・正しくないかを真・偽で言えるやつを命題といいます。この∧や≣は論理演算の演算子――計算の記号のことで――
命題を真偽値として計算するのを命題論理というんだっけ。
命題も、さっき秦さんを交えてデジタル信号と数学について話したときに出てきたものと同じで、命題論理も論理演算の上に成り立っている。
「
「真は真実。Trueです。偽は偽り、Falseです」
「ん? Pが偽なら被告は偽証罪ってことか? ……君の胸は偽パイってことか?」
なけなしの知識を振り絞ったのに、まったく通じていない。ああ、ここにいるのが秦さんなら良かったのに!
『お前さんのおっぱいは偽ってわけだ。ガハハハ』――いや、どちらもあまり違いはないか。
「命題Pが〝僕の胸が本物である〟という主張なら、Pが偽のとき、僕の胸は本物ではないということになりますね……」
「千束さん、ここは抽象的に考えてください。被告の罪状は忘れて、命題Pという記号は、『被告が有罪である』という主張のみを示します。そして命題は、変数のように真偽を値として持つのです。Pの値が真であれば同意、つまり被告の有罪を示し、値が偽であれば否定、無罪であることを示します」
命題の記号は主張。
真偽はその記号の中身。
もし仮にA=Bという操作ができたとしても、変数のようにAの主張が変わってしまうわけじゃない。命題自体は不変で、変わるのはその真偽だけだ。
「なるほどぉ、変数? みたいなものでもあるのか。Pは主張で、値によって真偽が決まると。値が真なら主張は正しく、偽なら正しくない……。じゃあ、Aさんの証言をaとおいたってことは、aの中身は『Bが正直者ならPが真』っていう証言そのものか。aが真の値になるなら、Aは正直なんだから、Aは正直者になる……ほんとか? あってる?」
僕と茨さんは激しく頭を振って「あってます! その調子!」と肯定する。
その様子をみて、奥村所長は〝命題論理に不慣れな者がいる。親切に頼む〟と入力する。
```
>命題論理に不慣れな者がいる。親切に頼む
〝畏まりました。彼らが正直者であるとき証言が正しく、嘘つきであるとき常に正しくないことを表すのに、同値関係(≣)を用いて
A≣a, B≣b
と示すことができます。Aが嘘つき(Aが偽)であればaは常に偽。これは正直者(Aが真)であれば証言aは常に真ということを意味します。Bについても同様です〟
```
「同値関係ってのは……見たことない記号だが、まぁなんとなくわかる。左右の中身が真か偽か、いずれにせよ同じなら真ってわけだな?」
```仰せの通りです```、とTFAの返事が別ターミナルに表示された。音声認識だろう。
そこに続けて真偽値表が出力される。
```
〝念の為、左項をX、右項をYとしたとき同値(≣)の結果は以下となります。
| X | Y | X≣Yの結果 |
|----+----+-----------|
| 真 | 真 | 真 |
| 偽 | 偽 | 真 |
| 真 | 偽 | 偽 |
| 偽 | 真 | 偽 |〟
```
元の対話を始めたターミナルでは説明が続く。
```
〝そして(A≣a)
a: (a
b: a (Aは正直者である)
と置いたものを先の式に当てはめると次のようになります――〟
```
「おほ。じゃあ、この矢印は?」
```
〝→は論理包含、または含意と言います。X
日本語の『ならば』に対応しますが、前提条件である前件が満たされない場合(Xが偽のとき)、後件には何も言及せず、Yを無視して真(無矛盾)となります。このように偽のときのことを何も暗示しない点で日常会話の『ならば』とは少し異なります。全体が偽になるのは、条件が満たされているのに述語が裏切るときのみです。以下に真偽表を示します〟
| X | Y | X→Y |
|----+----+------|
| 真 | 偽 | 偽 |
|それ以外 | 真 |
```
僕は少し驚いた。TFAは千束さんの習熟度も推測し、先取りしている。ちょっとした真偽表でさえ、説明を踏襲してコンパクトにした。
「含意っていうのは、日本語の含意の意味と同じ? つまり、言外に含んでるって意味であってる?」
「はい。X→Yは、日本語で『YはXに含まれているか』と言い換えられます。真ならば、含まれているわけですね。偽ならばそうではない――」
「ちょっとよく解らないな~」
カジュアル且つフラットにさじを投げる千束さんに、「言い換えましょう」と茨さんは一押しを加える。
「やや大胆に言えばこれはつまり――〝推理〟の演算子です。XがYの根拠となるとき、理論はXからYに推移するのです。これが偽になる場合、矛盾を表します」
「なるほどぉ。言ってみりゃ探偵の演算子ってわけだ」
推理。
さっき秦さんに言いかけた、応用的な論理演算子とは含意のことだったのか。
論理含意→は、論理積∧、論理和∨、論理否定¬といった、ごく基本的な論理演算子ほど見かけないし、コンピュータの回路にもない。強いて言えば条件分岐が近そうなのだけれど、全く同じじゃないのだ。
それはおそらく含意という記号は(真偽値を計算できるという点では論理演算であっても)推理などといった高度な計算を扱うもので、素朴な演算子とは異なるからなのだろう。
そのとき、いくつか開いたコンソールのひとつに、妙な変化が現れた。
```
探偵?
探偵がそこにいるのですか?
```
そのメッセージは、流れ続けるログの中に不意に現れ、あっという間に押し流されていった。
千束さん他、茨さんでさえ――パズルに集中していた彼らがそれに気づいたかどうかはわからない。
「な、なるほどな? ならa→Pは、Aの証言が正しいとき……Aが正直者なのに……Pってなんだっけ」
言い淀む千束さんを、茨さんがサポートする。
「→の後ろ、後件のPはここでは『被告が有罪である』を示します。もし無罪なら偽となり、aが正しいなら真→偽。真偽表によればその場合この式は偽となりますね。含意できない、ということになります」
「そうか。じゃあ『Aが正直者である』のに『被告が無罪』のときだけ全体が偽になるのか。正直者が嘘を吐いたら矛盾だからな」
```
〝その通りです。そこまでご理解されたなら少々遠回りですが、先の式に戻って問題を以下のように表現します。
A≣((a∧b)→P), B≣a
この二つの主張が共に真になるときのみ、矛盾がなくなります。つまり
(a≣((a∧b)→P))∧(b≣a)
と書けます。更に∧の右辺 b≣a を使って左側の式を置き換え、
(b≣((b∧b)→P))∧(b≣a)
とし、b∧bは明らかにbにできますから b≣(b→P) として、更に b∧P と簡約することができます。最後の簡約だけは自明ではないかも知れませんので、ご希望であれば真偽表を使って示します。
そうして先の回答である、
b∧P∧(b≣a)
を得ました〟
```
「∧は〝且つ〟で両辺が真のときだけ、≣は両辺が同じときだけ真? じゃあ、b∧P∧(b≣a)って全部が真のときしか真にならないか。ってことは……つまり?」
```
〝はい。全ての項が∧で繋がっているため、ひとつでも偽があれば全体が偽になります。
これが真となるのは、Bが言うようにAが正直者であり、被告が有罪のときだけです。ご納得されたでしょうか〟
```
「ははぁ~!」と千束さんは感嘆の声を上げている。
彼は本当に解ったのだろうか。いや――彼は頭がいいから、きっと理解した。
――何も言えなかった。
僕はただ見ているだけ。途中からは置いてきぼりにされている感覚さえあった。
きっと僕だけ、僕だけがちゃんと解らなかったのだ。だから僕は感嘆の声さえあげられない。
これに似たシステムは既にある。教員は学生の指導時間を減らして自分の研究に集中できる触れ込みで、実際に減ったのは教員の椅子のほうだった。アカデミアには僕の席などない。そりゃ本来、ポスドクは自分の研究をするべきで教育には携われないはずだ。けれど日々の糧を得るためには仕方のないことだった。
尤も、僕とて学術研究なんてコスパの悪いことをやりたくはない。僕の希望はいい会社に入って、そこそこの給料をもらうこと。それもできればコネで。けれどそれが難しい。面接の練習で志望動機を訊ねられるたび、僕は逃げ出したくなる。
――あの〝◯◯〟からも。
そもそもが場違いだ。こんな僕が天才二人に交じって、知性について考える場にいることは。
彼らが僕の頭の中を覗いたら幻滅し、
「ここまではよかろう。次にこれまでの文脈に則って、証言を拡張し――」
僕らはもう充分だと丁寧に辞退を申し出たけれど、奥村所長は「応用ができてこその知性だ」とまだまだやる気だ。
茨さんが説得して、彼はようやく思いとどまった。
個人的にも、地味な劣等感や将来の不安から立ち直るのにそうしてくれたほうがありがたい。
「充分とは言えないと思うがね。まぁしかし、ここに千束氏がいてくれて説明が面白くなった部分もある。TFAもいつもより楽しそうに見えた」
所長は残念そうに肩を竦めながらも、何か言い知れない満足感のようなもの――もしかしたら照れのようなものを薄く浮かべた。
その僅かな人間らしさ隠すように、彼はすぐにまた厳しい顔つきに戻る。
「――ここへ来た諸君らは理解の存在を疑う。本来ならここで充分なTFAとの対話を経て、誰しも理解の存在を認めざるを得なくなる――このAIは、確かに理解を持ち、知性の三本の柱を満たす完全なAIであると」
次に――と彼はラップトップ端末を離れる。
「諸君らは、どのようにして機械に理解を宿したか、それを訊ねる。だがそれはまだ言えない。私はそれに答える代わりに――」
彼は、僕らの後方、つまり入室した唯一のドアのほうを指差し、告げた。
「〝理解〟の正体について、そのヒントをお見せしよう」
振り向くと、部屋の奥――ドアから入った右手の、例のカーテンの方へ向かって所長は、幾分大声で――呼んだ。
「
ざっとカーテンが開く。
奥はすぐ壁だが、そこまでの狭い空間には本や書類を並べたスチールラックと、ロボット掃除機の充電ステーションを快適な椅子にしたようなドックがある。
そこから恐る恐る出てきたのは――。
どうみても、美しい、ただの少女だった。
「あ――」と僕は思わず声を上げる。ここへ来て数度見かけた子供のような人影。〝彼女〟はそのサイズ感にぴったりだったから。
白衣を模したような白いクロークは、詰襟で右綴じ。細い足首の先にはスエードのローファーだ。クロークの裾はシルクのように軽く、それをワンピースの裾のように揺らせて――僕たちの前にそれは現れた。
切りそろえた黒い前髪。俯き加減のアンニュイな眼。動くたびに微かにカチャカチャと鳴る音、軽いモーターの駆動音。
「紹介しよう。量産試作機のHMN-PVT01だ。我々は彼女をTIFAと呼んでいる。NNNは展示会で彼女のプロトタイプを展示していたこともあるため、見た者もいるだろう」
確かに、それを見たはずだ。二年くらい前に。
でもそれは、ファミレスのネコロボットをスマートにして手足を付けただけのもので、そりゃ可能性はあると思ったけれど、まさかこんな、戦前のゲームに出てくる美少女ロボットみたいに進化するなんて――。
「あれを見た者なら、我々がどれほど苦心して彼女を設計・製造したかわかるだろう。だが、TFAの普及には、どうしても人間型のインターフェイスが必要なのだ」
あ、と口を開けたまま、僕は硬直していた。
いったい何を、どこから指摘したものか。
でも僕は思わず、あの点について口走ることになった。
巷で噂されるあの件について――山奥の研究所で奇妙な少女を目撃した人は、それを何と思ったのか。
「――ちゅ、駐車場の、〝踊る幽霊〟」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます