ファジー論理の定義(意味論側)とか他の論理との比較とか
Aaronです。
アドカレ遅れてすいません。
自分の研究にちょっとだけファジー論理が出てきたのでせっかくなのでまとめたものを投稿します。
今回は意味論に絞って(MTLと呼ばれる体系などには証明論が対応して完全性定理が成り立ったりするようだが、こちらはまだ僕も調べられていないので今回はスルー。)主に古典論理や(Belnapのものよりは、LukasiewiczやGodelのものに近い)有限多値論理との比較という観点から見ます。
1.動機と歴史と導入
我々が日常的な文脈での議論を行うときや、統計的な議論を行うとき、古典論理(の意味論)で議論するときのように「真か偽のいずれか」を考えるというよりも、「真らしさの度合い」や「真である確率、信頼度(僕は統計に疎いのでこの辺の言葉遣いがおかしいかもしれない。おかしかったら教えてください。)」を考えていることの方が多いかもしれない(ただし確率を真偽値と捉えるものは確率論理と呼んでファジー論理とは区別されるようである。例えばNaive Baise手法などの文脈で論理式に似た構造を扱うことがあるが、それは真理値割り当てのみによって論理結合子の解釈が決まらないという性質を持っており、ここで解説する枠組みでは扱えない。)。
これは「古典論理の真理値や付値関数が二値的であるために表現力が欠如しているため」とも考えられる。
Lukasiewicz(本当はLの縦棒の部分に小さいスラッシュのような装飾が入る。)はこの考え方から、新たな真偽値を追加した真偽値集合を持つ論理を提案した(Lukasiewiczの三値論理)。しかし彼の構成法を基にすれば追加される真偽値は一つである必要はなく、一般の個の真偽値を持った値論理、そしてさらには上の任意の値を真偽値として取れる無限値論理が提案された。これがファジー論理の(一つの)導入経緯である(歴史を詳しくは調べられていないので、もっと以前にファジー論理のインスタンスが現れていたりするかもしれないが、これも一つの経緯ではありそうだし、直感的に自然な経緯なので採用した。「歴史的にはそうじゃない」とかいうツッコミがあったらご連絡ください。)。
2.定義
ファジー論理の論理自体や論理式の定義は古典論理とほとんど変わらない。
ただ、少数の論理結合子で完全な基底を得ることができ、歴史的によく知られた論理結合子から適当に導入すれば問題は少なかった古典論理と異なり、ファジー論理では豊かな表現力を出すために多くの論理結合子を考えるのが普通であるし、よく知られた結合子に「対応する論理結合子」がどんな関数なのかも明らかではない(これについては後で触れる)から論理結合子の意味論的解釈を途中で変えたいと思うかもしれない。
そこで論理の定義に、使う論理結合子の選び方の自由度を残しておき、解釈も「論理結合子の解釈」と「命題変数の解釈」の二段階に分けると多くの状況に対応できる。
形式的には以下のようになるがほとんどの読者は自分で再構成できると思うのでずらずらと書いてしまう。
ファジー論理とは「命題変数」と呼ばれる記号の空でない集合と、「論理結合子」と呼ばれる、記号と「Arity」と呼ばれる自然数の組の関数的な集合(すなわち同じ記号を前者とする組は唯一であるような集合)との2つ組である。
またその上の論理式とは
を満たす最小の(の元)を言う。ただし集合論で使われるトリックで自然数を「未満の自然数全ての集合」とみる。
ファジー論理の論理結合子の解釈とは関数
であって
を満たすものを言い(割とよくあることだが「解釈」という用語は少し曖昧である。この関数自体を指すことと、特定の論理結合子に対応する関数値を指すことがある。)、これをファジー論理の定義に含めてファジー論理を三つ組とみる場合と、冒頭のように含めない場合がある。さらに言えば論理結合子の(空でない真)部分集合の解釈を論理の定義に含め、それ以外については含めないという事もあり得る。そこで論理の定義に解釈が含まれているような論理結合子について「解釈が固定されている」とかいうことにする。
命題変数の解釈あるいは付値とは関数
のことであり、論理結合子の解釈と付値が共に与えられれば論理式の解釈
が
によって定まる。
3.古典論理との比較
由来(の一つ)を見ても明らかなように、ファジー論理は古典論理の拡張または亜種たらんとする設計思想がある。したがって論理結合子もまた古典論理が備えているものを備えていてほしいと思うのは自然なことである。ここでは矛盾、含意、否定、連言、選言に対応する論理結合子を備えている(そのほかの論理結合子を備えていてもよいし、「複数の連言や選言」を持ってもよいとする。また矛盾、含意、否定、連言、選言に対応する論理結合子の解釈は、少なくとも真偽値については古典論理の対応する演算子(の解釈)と外延的に等価であることが要求されるものとしする。)ファジー論理をこの記事では「擬古典的」と呼ぶことにしよう。
これらのうち、矛盾の解釈については同意が得やすいだろう。
矛盾()とはArityが0で解釈が(引数を取らずに)0を返す関数になるような論理結合子である、としておそらく反対するものはほぼいないだろう。
しかしそのほかの論理結合子に対しては(Arity以外)合意を得るのは難しい。
一見して妥当と思える理由のある定義が多くあるからである。
例えば日本語Wikipediaの「ファジィ集合(ファジー論理の上で展開された集合論だと思ってよい)」の項目の末尾には、ファジー論理に特有な「論理和」「論理積」のリストがある(なぜファジー論理のページでなく集合論のほうにあるのかは不明である)。
またt-normという概念は(この概念は日本語Wikipediaでは「ファジィ論理」の項目の「命題ファジィ論理」の箇所に「三角型ノルム」として紹介されている。さらに英語版では専用の項目が立ち、さらに「t-norm fuzzy logic」の為にも別の項目が立っている。)いくつかの性質、即ち
- 可換性
- 結合性
- 単調性
- 1の単位性
(これらの条件は代数学で議論されるものと同じである。)
を持つものという形で論理積(の解釈)を公理化したものであり、逆に言えばこれを満たす実数値関数ならば(それは膨大な数ある。)、論理積の解釈として妥当だという一種のテーゼと取ることもできる((英語wikiを信頼するならば)t-norm fuzzy logicといった場合はt-normが連続であることも論理積の解釈の公理に要求するようである。一方で前述のリストに出てくる激烈積がそうであるように、直感的に自然な意味づけが可能なt-norm(論理積(の解釈))であって、連続でないものもあり得る。)。
ここまでは含意や否定に触れなかったが、含意や否定についても同様に膨大な妥当と思わしき定義を作ることができる。
そこで我々はこのような膨大に存在する各々の論理結合子の解釈の定義に着目するのではなく、弱く擬古典的な論理における論理結合子同士の関係性に着目すべきである。
ファジー論理が古典論理における重要な関係(定義可能性)、たとえば、
- (は勝手な命題変数。矛盾の定義可能性)
- (否定の定義可能性)
- (含意の定義可能性)
- (連言の定義可能性)
- (選言の定義可能性)
(ただし記号は全てのについて両辺の付値が等しくなることを主張するメタ記法である。特にメタという点は重要で体系内でこれに当たる論理結合子が定義できるとは限らない。)
などのうちのいずれかを満たすとき、この記事では左辺の論理結合子は右辺に出現する論理式に対して「整合的」であると言うことにする(もちろん古典論理上同値な定義式は他にもあるので定義式を指定して「整合的」というべきだが、煩わしいのでこの記事ではこの定義式に対して整合的な時は単に整合的と呼ぶことにする)。
しかし多くの論理結合子を整合的にするためには代償を払わなくてはならない。たとえば、論理積の解釈を最小値関数(Godel t-normというらしい)で、否定の解釈を(Lukasiewicz negationというらしい)で固定し、矛盾を持たず、ほかの論理結合子の解釈は論理和と整合的な体系(整合性からほかの論理結合子の定義はわかるはずなので演習問題代わりに定義してみよ。この体系をこの記事でだけと呼ぶことにする。どうしてこう呼びたいかは後でわかる。)を考えれば、これについて以下がわかる。
Prop3.1 は恒真式を持たない。ここで恒真式とは全てのについて付値が1になるような論理式の事である。
Proof)値が恒等的に0.5であるようなを考える。この時対応するは恒等的に0.5である(論理式の構成に関する帰納法でわかる)。
Cor 3.2 で上の整合性によって定義された矛盾は、この章の前半で定義した性質を満たさない。特に値が使用する命題変数によって変わってしまい、Arityが0とみなせない。より強く、方法によらず前半で定義された性質を満たす矛盾は(既存の論理結合子の略記としては)では定義できない。
Proof)主張の後半を示せば十分である。矛盾が定義可能だったとするとは恒真のはずである。これはProp3.1に反する。
このような問題があるため、含意は一般的には整合性を定義とはせず、「論理積(の解釈)の残余(residuum)」と呼ばれる演算で定義するのが普通なようである。
これは論理積の解釈をとして、を含意の解釈とするものである。
以下では例としてGodel t-normからそのようにして得られた含意(陽に書けば
です。)とそれに整合的な否定を持ち、論理和と論理積はのものを用いる体系を考える(いわゆるGodel-Dummettファジー論理)。
この含意に対して整合的な否定(Godel negationというらしい)は、
であり、Lukasiewicz negationとは異なる。従って、論理積と論理和を整合的にせず、さらに含意が論理和と否定に整合的になることもない。古典論理との類似性との観点からは否定を二つ持っており、整合性ごとに異なる否定を用いているとみるべきかもしれない。
引き換えに矛盾の定義可能性(さらにおまけとして「恒真」の定義可能性)を持っているのである(実は矛盾を定義するだけならば、この含意は必要ではなくに「第二の否定」としてGodel negationを追加した論理を考えるだけでも良い。これに類似した論理がのちに現れる。)。
一方でたとえばLukasiewicz t-normもしくは限界積と呼ばれる論理積、即ち、とLukasiewicz negationを持つ体系では、残余による含意と整合性による含意が一致し、矛盾も定義可能である(さらに、含意と整合的な否定はLukasiewicz negationなのでその意味でも整合的になる。この整合性からたとえば二重否定除去がconsequenceとなる)。しかし今度はがと等しくならないという代償を払うことになる。
4.-ファジー論理と部分ファジー論理
少なくとも1章で説明したモチベーションをなぞるのであれば、ファジー論理とは古典論理や有限多値論理の拡張として理解したいのであるのが、しかしファジー論理は普通の意味でのそれらの「拡張」ではない。
というのも古典論理の時そうであったように普通、論理の意味論というのはを動かす形で議論されるが、ファジー論理はのcodomainがで固定されてしまっているため、古典論理をその中で解釈しようとしてもの値を取る付値をいわば押し売りされてしまうのである。
そこでファジー論理をより拡張することで、古典論理を特別なインスタンスとして実現できるような枠組みを作りたいと考えるのは自然である。
-ファジー論理とよばれる枠組みはそれを可能とする。これはファジー論理で使われたとに加え、何らかの順序構造を加えた三個組で、論理値をではなく、に取るものとして定義される(形式的な構成は一章でやったものをだけをに置き換えればよいので省略する。)。これを用いれば例えば直観主義論理はHeyting Algebra-ファジー論理であると言える。
しかし、これは少々冒頭に掲げた我々の目的、「古典論理や(Belnapのものよりは、LukasiewiczやGodelのものに近い)有限多値論理との比較」には一般すぎるように思われる。
そこでとしての部分順序集合を取るような-ファジー論理を、この記事では「-部分ファジー論理」と呼ぶことにする。
古典論理は-部分ファジー論理だし、Lukasiewiczの値論理も-部分ファジー論理だからこれは我々の目的に見合う論理である。
また論理結合子の解釈を固定したファジー論理との部分集合について、全てのがを満たすとき、は自然に-部分ファジー論理にもなる。これをファジー論理の制限とでも呼ぶことにする。
5.制限されたファジー論理と古典論理および有限多値論理との比較
定義から古典論理はどのような擬古典的なファジー論理の制限としても得ることができる。
では有限多値論理はどうだろうか?
ファジー論理の制限のうち、有限集合、とくに(さらにとすれば三点集合)への制限を考えると多くの知られた三値論理を得ることができる。
例えば三章で導入したGodelファジー論理の三値への制限はGodel論理(の三値版)を生み出し、の制限はKleeneの強三値論理()となる(それぞれ計算してみよ)。
Lukasiewiczの値論理を得るのはもう少し難しい。
Lukasiewiczの値論理の含意に対応するファジー論理はLukasiewicz t-normによるものなのだが、連言と選言についてはGodel t-norm(の制限)を使っている。
つまりLukasiewiczの三値論理に対応するファジー論理(Lukasiewiczファジー論理といいます。)は二つの連言と選言を持っており(Lukasiewicz t-normによるものを強い連(選)言、Godel t-normによるものを弱い連(選)言と言う。)、有限値論理版では強い連言による連言と選言および弱い連言による含意は忘れられてしまっているのである
なおBochvarの三値論理はこの形では実現できない。これは選言の解釈の1の単位性も否定の解釈の単調減少性も成り立たないからである。
最後にこれらのような有名どころではないが、現在僕が考えている論理についても少し触れておこう(ネタばらしをすれば、ファジー論理を調べたのはこの論理をファジー論理の研究の文脈に位置づけたかったからであった)。
僕はに新たなArityが1の論理結合子を加えた論理を考えている。
その解釈は固定されており、
である。
このモチベーションや直感はいくつもあるが、一つ挙げるならば、における真理値が直感的意味付けとしては「計算中」に対応しているにもかかわらず、「では計算は終わったか?」と問いかける役割を果たす論理結合子はには無いためがその役割を果たすというものである(の直感的解釈は二通りあり、時相を導入して「『今』、計算は終わっているか?」と問うものだという解釈と、「計算はいずれ終わるか?」というTuring oracleのようなものだという解釈があり得る)。これは特にCSへの応用を考えると自然な対象であり、CSの文脈で(に似た体系?)がデータベース処理(例えばSQL)などに使われることがある(らしい)が、その場合「マージされる直前の処理が終わっているか?」と問いかけることは自然だからである。
にこのを追加したものをと呼ぼう。
実はは(つい先ほどLukasiewiczの三値論理を理解するときにそうしたように)にLukasiewicz t-normと解釈される選言(以下ではで表記する。)を追加した体系(以下ではと書く。)と本質的に同じ(definitional extension)であることが以下からわかる。
まずにおいて
と定義して解釈すれば、これはにおけるの解釈と外延的に等価であるし、逆ににおいて
と定義すればこれはLukasiewicz t-normとして振るまう。もともとはLukasiewiczの三値論理と含意の解釈のみが違うのだったから、やは(論理結合子を減らす前の)Lukasiewiczファジー論理(の制限)において、含意の定義に使う論理積をLukasiewicz t-normからGodel t-normに変えて、しかも定義を残余ではなく整合性だと思った(ここでLukasiewicz t-normは含意を残余で定義しても整合性で定義しても同じになるという性質を思い出そう)ものだと言えるのである。このことからやはやと違い、恒真式を持つこともわかる。これは(含意の定義としてそれを使っていないだけで)Lukasiewiczの論理の含意に当たる関数が定義できるからである。
さらに先に少しふれたとおり(今さっき「第二の」論理和論理積を追加したのと同じ考え方で)「第二の否定」としてGodel negationと解釈される否定(以下ではで表記する。)を追加するという考え方もある。この体系はと呼ぶことにする。
このとき
が先ほどと同様の意味で成り立つ。すなわちのそれぞれモチベーションの異なった3つの拡張がある意味では一致するのである。
ここからは完全に余談になるが、一度このように形式化された意味論を考えるのをやめて、思想を考えることにしよう。
特には本当にLukasiewicz t-normと等価だと思っていいのかという事についてである。
は計算が終わっている(もしくは終わる)のかどうか、言い換えれば古典的、決定的な値なのかを調べるという直感的意味を持っていた。それに対応する論理積があるとすればむしろ激烈和(定義は上述のWikipediaのリストを参照)であるべきではないか?
実は激烈積は三値に制限した時に限ってはLukasiewicz t-normと一致する。したがって三値という値の数が今の場合は足りず、我々は本質を見逃した可能性がある(このようなことは普通にあり得る。何しろこの章の冒頭で述べたように全ての擬古典的なファジー論理は二値的な(つまり古典論理への)制限を考えれば同じになってしまうのだから。三値論理は違いを見出すには古典論理に近すぎた可能性があるわけである。)。僕はこの後、もう一度(もしくはそれのより大きいに対するへの制限)に戻ってこのあたりをもう少し試してみるつもりである。
6. 後書き、謝辞
アドベントカレンダー遅くなって申し訳ありませんでした。
今回はファジー論理の話でした。
僕にとっても慣れないファジー論理で実は途中まで大間違いをしており、Godelファジー論理を誤ってだと誤解しており、研究室の先輩から「おかしくないか?」と指摘されて含意の定義が残余であることに気づいた経緯があります。
先輩ありがとうございました。
今回内容について直接助力いただいたのはその先輩のみですが、よく話しては多くの示唆をくれる多くの友人にいつもながら感謝しています。
数学をやるのに必要なのは、ホワイトボードとネット環境と良い師や友人と、それに歩き回れる広さのある喫煙スペースだなあ(勿論本来はまずいのだが、僕はJAISTの駐車場周辺を徘徊しながら歩き煙草して考えをまとめている。)というところで、記事を終わらせていただきたいと思います。
いつも通り誤りの指摘等はtwitter(@sanjutsu_yu)までお願いします。
参考)
・Stanford Encyclopedia for Philosophyのfuzzy logicの項目
https://plato.stanford.edu/entries/logic-fuzzy/
・日本語版Wikipediaのファジィ論理及びファジィ集合及び3値論理及びゲーデル論理の項目
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%B8%E3%82%A3%E9%9B%86%E5%90%88
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%B8%E3%82%A3%E8%AB%96%E7%90%86
https://ja.wikipedia.org/wiki/3%E5%80%A4%E8%AB%96%E7%90%86
英語版WikipediaのFuzzy logic,T-norm,T-norm fuzzy logic,Fuzzy set,Three-valued logic,Four-valued logic,Intermediate logic,Lukasiewicz logic,Godel logicの項目
https://en.wikipedia.org/wiki/Fuzzy_logic
https://en.wikipedia.org/wiki/T-norm
https://en.wikipedia.org/wiki/T-norm_fuzzy_logics
https://en.wikipedia.org/wiki/Fuzzy_set
https://en.wikipedia.org/wiki/Three-valued_logic
https://en.wikipedia.org/wiki/Four-valued_logic
https://en.wikipedia.org/wiki/Intermediate_logic