多値論理
![]() |
多値論理(たちろんり)とは、真理値の値を、いわゆる真偽値すなわち真と偽の2個だけでなく、3個あるいはそれ以上の多数の値とした論理体系で、非古典論理の一種である。
様々な「多値」
[編集]多値論理の背景のひとつに『真』『偽』以外に『不明』というのもあってよいのではないかという発想がある。そこから直接出てくるものは3値論理であるが、3個というのはどうにも収まりが悪く、4つの真理値を持つ体系も研究された。更にもっと多くの有限個、あるいは無限個の真理値を持つ体系などもある。無限個の真理値としては、その集合を、自然数全体と見ると自然なもの、実数全体と見ると自然なもの、0から1までの間の実数と見ると自然なもの、といったものがある。
概要
[編集]真偽値全体の束であるリンデンバウム代数としての研究が行われてきた。 なお、多値論理の一つであるウカシェヴィチの論理は、部分構造論理との関係で、最近よく研究されている。
ウカシェヴィチの論理では、真偽値として、0~1の値をとる。(からの間をとる値論理、有理数、実数の値をとる無限値論理等のバリエーションがある。)
論理演算子→については、φの真偽値をa、ψの真偽値をbとした場合、 の真偽値をで定義する。
自然数nについて、を
によって定義した場合、古典論理や直観主義論理ではどのnでも、真偽値は変わらないが、ウカシェヴィチの論理では真偽値はnに依存し、その値はとなる。
特に、φが0,1以外の真偽値をとる場合、あるmが存在して、nがm以上の場合にに真となる性質がある。
コンピュータとの関連
[編集]現在、一般に論理回路は二進法・二値論理を電子回路で実装したディジタル回路である(といったように良く言われるが、実のところ正確ではない。後述する)。これを、4値や8値にできれば、1本の信号線で、あるいはゲート1段でより多くの情報が扱えることから、高性能化の可能性として多値論理の導入が考えられる。そのため研究レベルでは盛んに研究されてはきたが[1]、しかし現状では、バイナリのコンピュータが十分に高性能であるため、そのようなハードウェアを作るよりもバイナリのコンピュータでシミュレーションしたほうが速くて安い、という状況にある。しかし一部実用化されるものも出てきていて、たとえば、最近のMLC(Multi Level Cell)のNAND型フラッシュメモリがある。また三進法コンピュータの事例にSetunがある。
ファジィ論理は真理値集合を0以上1以下の実数の集合とする多値論理で、(研究レベルであるが)ファジィコンピュータと称する中には、これを直接実装しているものもある。
なお「後述する」としたが、実際のコンピュータなどでは、電気信号としてHとLだけではなく、トライステートなどと呼ばれる「接続を断った状態」がある素子によるハイインピーダンスとよばれるもの(記号としてはZが使われることが多い)などがあり、複数の機器を接続するバスなどで多用されている[2]。さらに設計の際には「どんな値でも良い」(don't care)という値(記号としてはundefなどの意味でUが使われることが多い)など、実際のところ「ある種の多値論理のようなもの」が、実際にはさかんに活用されている。
またコンピュータシステムではしばしば、真理値として「真」と「偽」以外の値を含む系になっていることがある。
古典論理、直観主義論理との関連
[編集]古典論理は真理値集合を完備ブール代数(cBa - complete Boole algebra)とするものであり、古典的には2値であるが、現代的な数理論理・形式論理の観点からは必ずしもその真偽値は2値でなくてもよい。また直観主義論理は真理値集合を完備ハイティング代数(cHa - complete Heyting algebra)とするもので、ある意味では多値論理の一種である(完備ブール代数は完備ハイティング代数の特別な場合である)。