真理値表から式へのジェネレーター
出力列をクリックして必要な形にすると、ツールがそこから式を読み取ります。標準的な DNF(積和形)、標準的な CNF(和積形)、そして最短の等価な形です。すべてブラウザー内で実行され、作成した真理値表はリンクに保存されます。
| p | q | 出力 |
|---|---|---|
| ⊥ | ⊥ | |
| ⊤ | ⊥ | |
| ⊥ | ⊤ | |
| ⊤ | ⊤ |
出力値をクリックして真(⊤)と偽(⊥)を切り替えます
真理値表をブール式に変換する方法
どの真理値表も何らかの式の真理値表であり、そのうち 2 つは代数計算も当てずっぽうもなしに、そのまま読み取れます。
- n 変数の 2ⁿ 行をすべて書き出し、出力が ⊤ の行に印を付けます。
- ⊤ の各行について最小項を書きます。すべての変数を AND で結び、その行で偽になる変数を否定します。最小項を OR で結べば DNF です。
- ⊥ の各行について最大項を書きます。すべての変数を OR で結び、その行で真になる変数を否定します。最大項を AND で結べば CNF です。
- どちらの式も出発点の表とまったく同じ真理値表を持つので、どちらも正解です。最短の形が必要なら、そのあとで簡単化します。
最小項
すべての変数の連言(各変数は否定されるか、されないか)で、表のちょうど 1 行だけで真になるものです。DNF は出力が ⊤ の行の最小項の選言なので、⊤ の行 1 つにつき 1 項になります。
最大項
すべての変数の選言(各変数は否定されるか、されないか)で、表のちょうど 1 行だけで偽になるものです。CNF は出力が ⊥ の行の最大項の連言なので、⊥ の行 1 つにつき 1 項になります。
例題:排他的論理和
上の表はツールが最初に表示するものです。p と q が異なる 2 行でちょうど真になります。
- 2 行が ⊤ なので、DNF は 2 つの最小項になります:(p ∧ ¬q) ∨ (¬p ∧ q)
- 残りの 2 行が ⊥ なので、CNF は 2 つの最大項になります:(p ∨ q) ∧ (¬p ∨ ¬q)
どちらもこれ以上短くできません。排他的論理和には両方の項が本当に必要だからです。標準形が常に遠回りとは限らないことが、ここで一度わかります。「p、q、r のうち高々 1 つ」のような表こそ、最簡形が大きく差をつける場面です。
ブール合成の理解
選言標準形 (DNF)
DNFは式をANDのOR(積和形)として表現します。出力が真である各行に対して、すべての変数をANDで結合し、偽の変数を否定した最小項を作成します。これらの最小項はORで結合されて完全な式を形成します。
連言標準形 (CNF)
CNFは式をORのAND(和積形)として表現します。出力が偽である各行に対して、すべての変数をORで結合し、真の変数を否定した最大項を作成します。これらの最大項はANDで結合されて完全な式を形成します。
DNF と CNF の比較
| 観点 | 選言標準形(積和形) | 連言標準形(和積形) |
|---|---|---|
| 作り方 | 出力が ⊤ の行から、1 行につき 1 つの最小項 | 出力が ⊥ の行から、1 行につき 1 つの最大項 |
| 形 | 連言の選言:AND の OR | 選言の連言:OR の AND |
| 向いている場面 | 式を真にする場合を列挙したいとき、AND-OR 回路を組みたいとき | 同時に満たすべき制約が欲しいとき、SAT ソルバーが求める節形式が必要なとき |
表はどれくらい大きくなる?
n 変数の関数は 2ⁿ 行あるので、変数を 1 つ増やすたびに表は倍になります。2 変数で 4 行、3 変数で 8 行、4 変数で 16 行、5 変数で 32 行、このツールはそこまでです。DNF は ⊤ の行ごとに 1 項、CNF は ⊥ の行ごとに 1 項を取るので、両者で各行をちょうど 1 回ずつ数え上げることになり、どちらか一方が必ず短い出発点になります。
真理値表合成の応用
真理値表を論理式に変換することは、コンピュータサイエンスとデジタルエレクトロニクスの基本的な技術です。このツールは以下に役立ちます:
- デジタル回路設計 - 望ましい入出力動作からロジックゲート用のブール方程式を作成
- ソフトウェア開発 - 仕様表から条件付きロジックを生成
- 学術研究 - ブール代数と命題論理を学び、練習する
- 論理最適化 - より単純な等価式を見つけるためにDNFとCNF形式を比較
よくある質問
論理計算機の使い方についてよく寄せられる質問への回答
「真理値表から論理式へ」のツールは何をするものですか?
計算機を逆向きに動かします。各行をクリックして真理値表の出力列を決めると、ちょうどその真理値表をもつ論理式を、選言標準形(連言の選言)または連言標準形(選言の連言)で作り出します。
選言標準形と連言標準形の違いは何ですか?
選言標準形は積和形です。出力が真である行ごとに連言を一つ作り、それらを選言で結びます。連言標準形は和積形で、出力が偽である行ごとに選言を一つ作り、それらを連言で結びます。どちらも同じ関数を表すので、あなたの表にとって短くなるほうを選べばよく、偽が多い列なら選言標準形が、真が多い列なら連言標準形が短くなります。
合成ツールは変数をいくつまで扱えますか?
最大 5 個、つまり 32 行の表までです。変数を一つ増やすごとに行数は倍になり、5 個を超えると手で設定できる規模ではなくなります。
生成された式がとても長いのはなぜですか?
標準形は行ごとに組み立てられ、覆うべき行それぞれに全変数を含む項が一つ対応します。つまり長さは、式の背後にある考えではなく真理値表に従います。作り方の上で正しさは保証されますが、簡潔さは保証されません。短くしたいときは計算機で開いてください。最小化された選言標準形を含む同値な形が一覧されます。
式を簡単にしたものを得られますか?
はい。計算機に入力して、真理値表の下にある同値な形をご覧ください。代数法則による書き換えで得られた形に加え、真理値表から読み取った選言標準形と連言標準形、そして最小化された選言標準形が並びます。