チョコ煮

チョコ煮

いろんな素材をチョコで煮ます

SQLと天気予報から始める多値論理と確率論理の断崖

以下、与太話。

 

最近この本を読み進めている。 

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

 

Access、あわよくばSQL Serverをもっと効率よく使おうと思い、読んでいる。

その中にこんな記述があった。

真でも偽でもないとすると何になるのでしょう。ここがSQL特有の落とし穴です。この場合の真理値は「不明(UNKNOWN)」という第三の値になります。(中略)通常の論理演算が2値論理と呼ばれるのに対し、SQLだけは3値論理と呼ばれます。

Kindle版 第2章 第3節 ”NULLを含む場合の真理値” 第4段落) 

不勉強で真か偽かで決まるいわゆる2値論理しか学ばなかった私としてはけっこう新鮮な話だった。

 

一方、さっき風呂に入ってて考えたのだが、高校数学で「AならばB」といった命題を立てる際は、その命題が論理的に真であるか偽であるか決まるようにしなければならない、という趣旨のことを習った気がする。

その文脈なら、例えば『「明日の降水確率は99%である」ならば「明日は雨が降る」』という文は命題とすることができないはずである。

なぜかといえば、降水確率が99%だからといって、必ず雨が降るとは言えないし、逆に必ず雨が降らないとも言えず、真とも偽とも決定できないから。たぶん。

(私は述語論理を学んだわけではないのでこの例の適否は定かではない)

しかし、現実的には降水確率99%という情報は、雨が降るだろうことをほぼ示すし、2値論理的にはNGでも捨てるには惜しい価値を持つと思う。

そこで、真か偽かだけではなく、グレーゾーンのある論理、要するに真偽があいまいな場合を扱う論理ってないのかな、と考えた。

あいまい、あいまい……。そこで、はたと思いついたのが一時期流行した「ファジー」という言葉。そういえばファジー論理ってあったよな、と思い、Wikipediaで調べてみると、『ファジィ論理』の項目で説明があった。

真理値が0から1までの範囲の値をとり、古典論理のように「真」と「偽」という2つの値に限定されないことが特徴である。 

Wikipediaファジィ論理」以下2018/2/3閲覧)

 なんかそれっぽい気がする。

これなのかなと思ってWikiを読み進めたが、『確率論理』なるものとの違いについての言及があった。

ファジィ論理確率論理は数学的に似ており、どちらも0から1までの値を真理値とするが、概念的には解釈の面で異なる。ファジィ論理の真理値が「真の度合い」に対応しているのに対し、確率論理では「確からしさ」や「尤もらしさ」に対応している。このような違いがあるため、ファジィ論理と確率論理では同じ実世界の状況に異なるモデルを提供する。 

 うーん、よく分からない。次に具体例が書いてあった。

真理値と確率が0から1の範囲の値をとるため、表面的には似ているように思われる。例えば、100mlのコップに30mlのが入っているとする。これに対して「空」と「満杯」の2つの概念を考える。それぞれの意味は所定のファジィ集合、およびそれを定義付けるメンバシップ関数で表される。例えば、そのコップについて「空だ」が真である度合いは0.7、「満杯だ」が真である度合いは0.3と定義することも考えられる。「空だ」という概念は主観的であり、観察者や設計者によって感じ方は異なる。設計者によっては、50mlでも満杯だとするようにメンバシップ関数を設定するかもしれない。ファジィ論理ではあいまいな現象の数理モデルとして「真の度合い」を使うのに対し、確率論は未知のことに対しての数理モデルである。確率論的手法を使って同じことを達成するには、「満杯」か否かを表す二値変数をコップに入っている水の量という連続値によって決定するという形で定義することになる。 

 間違っているかもしれないが、ざっくり言うと、ファジィ論理では真と偽をきっかりゼロイチで表現するのではなく、間の数を認める。さらに多値をとることも認める。一方、確率論理では真と偽はきっかりゼロイチだが、どちらかを判定する変数は連続的に動く、ということかな?

「確率論との比較」という項もあったが、私にはハードルが高すぎた。

そこから先はけっこう沼ってそうなので、門外漢としては多値論理と確率論理というのがあるというのが分かっただけでもよしとしようか。

 

……なんか適当に終わらせようとしているが、そろそろ書いてて湯冷めしてきたので失礼。