神託、魔法使い、数学的証明 (2)
先に、数学の「複雑性理論」という分野には "Oracle(神託)" という考え方があることを紹介した。どんな問題にも、「正しい」答えをすぐに返してくれるという、架空の「全知全能」であるシステムのことだ。 ただ、まったくの「御都合主義」にも見えるそうした仮定は、実は、現代の我々の日常に深く入り込んでいる。古代ギリシャのOracleを引き合いに出さなくても、僕は、"Google" という用語を使った方がわかりやすいと思うのだが。 今回は、このOracleの少し変わったバージョンMerlinを紹介する。ランダムな振る舞いをするOracleだと思えばいい。このMerlinは「全知全能」である点は「普通」のOracleと変わりないのだが、ただ、クセがある。不誠実なのだ。人間の問いかけに、いつも「正しい」答えを返すとは限らない。ときどき、わざと間違った答えを返す。(こっちを、"Google"と呼んだ方がいいのかも) ただ、これだけだと、単なる「神頼み」にしかならないので、人間の知の数学的モデルとしてはつまらない。そこで、もう一人のAuthurが登場する。Authurは、Merlinほどの能力はないのだが、誠実である。その上、彼は、Merlinがいうことが正しいか正しくないかの判断を「正しく」行う能力は持っている。 Merlinが「数学的証明」を提供し、Authurがその証明を「検証」するというシステムがあった時、このシステムで何がわかるかを考えるのを「Merlin-Authur問題」という。 僕は、Scott Aaronsonの"Quantum Computing since Democritus" https://goo.gl/dwjtsc で、この問題を知ったのだが、そうでなければ、ずっと「Merlin-Authur問題」を、二人のMerlinとAuthurという名前の数学者が考えた問題だと思っていた可能性がある。(原論文は、L.Babal "Trading group theory for randomness" https://dl.acm.org/citation.cfm?id=22192 ) 実は、Merlinは魔法使いで、Arthurは