論理式を視覚的に簡略化する手法。セルをクリックして0/1を設定し、自動グルーピングで最簡形を求める。
カルノー図(Karnaugh map, K-map)は、論理式を視覚的に簡略化するためのツールです。真理値表を2次元のグリッドに並べ替え、隣接する1のセルをグループ化することで、最も短い論理式を導き出します。
4変数以下の論理式なら、計算なしに「見るだけで」簡略化できるのがカルノー図の強みです。一般的には2〜4変数のカルノー図が扱われ、「この図から得られる簡略化された式はどれか」を求めるのが基本的な使い方です。
上のツールではセルをクリックして0/1/Xを切り替えられます。自動的にグルーピングが行われ、簡略化された式が表示されます。まずプリセットを試してから、自分でセルを操作してみてください。
論理式を簡略化する目的は、回路を構成する部品(ゲート)の数を減らすことです。コンピュータの中では、「AND(かつ)」「OR(または)」「NOT(でない)」という部品を組み合わせて計算を行います。これらを論理ゲート(=論理演算を行う基本部品)と呼びます。
なぜゲートを減らすのか?理由は3つあります。
・コスト削減:部品が少ないほどチップが安く小さく作れる
・速度向上:通過するゲートが少ないほど計算が速い
・消費電力削減:部品が少ないほど電気を使わない
上の図のように、同じ動作をする回路でも式を簡略化するとゲート数が半分以下になることがあります。カルノー図はこの「どうまとめればゲートが減るか」を目で見てわかるようにした道具です。計算なしに、隣り合う1のセルをグループにまとめるだけで、自動的に最短の式が得られます。
カルノー図のグルーピングには厳密なルールがあります。これを守らないと正しい簡略化ができません。
・グループの大きさは2のべき乗(1, 2, 4, 8, 16)のみ
・グループは長方形(正方形含む)でなければならない
・グループ内のセルはすべて1またはX(ドントケア)でなければならない
・すべての1のセルが最低1つのグループに含まれること
・グループはできるだけ大きく、グループ数はできるだけ少なくする
グループが大きいほど、対応する論理項の変数が少なくなり式が短くなります。上のツールで1のセルを増やすと、グループが大きくなり式が簡単になることを確認できます。
カルノー図の行・列は通常の2進数順(00, 01, 10, 11)ではなくグレイコード順(00, 01, 11, 10)で並んでいます。この順序では隣り合うセル同士が必ず1ビットだけ異なるようになっています。
なぜこの順序が重要かというと、「1ビットだけ異なる = 1つの変数だけが異なる」ので、隣接するセルをグループ化するとその変数を消去できるからです。これがカルノー図で簡略化が「見るだけ」でできる仕組みの核心です。
上のツールの行ヘッダ・列ヘッダがグレイコード順になっていることを確認してください。11の隣が10(1ビット違い)で、10と11の間に01が来ないのがポイントです。
カルノー図の重要な特徴は、左端と右端、上端と下端がそれぞれ隣接していることです。グレイコード順で並べると、端同士も1ビットだけ異なるためです。これは地図を筒状に丸めたトーラス構造に相当します。
見た目上は離れているセル同士を「端の隣接」でグループ化できる点は見落としやすいポイントです。物理的に離れていても、グレイコード上で隣接していればグループにまとめることができます。
上のツールで「3変数 端の隣接」プリセットを選ぶと、左端と右端のセルがグループ化される様子を確認できます。このパターンを見落とさないように注意してください。
カルノー図で論理式を簡略化する手順は4ステップです。慣れれば数十秒で完了します。
・Step 1: 1を記入:真理値表で出力が1になる行をカルノー図上のセルに1を書く
・Step 2: グループ化:隣接する1(とX)のセルをできるだけ大きな長方形でまとめる
・Step 3: 項を読み取る:各グループで「変わらない変数」だけを項として読み取る
・Step 4: 式を合成:各グループの項をORでつなげて最終的な式とする
上のツールでは Step 2〜4 を自動で行います。プリセットを選んでグループの色分けと対応する項を確認し、手順を追体験してください。
ドントケア(don't care, X)は、「この入力パターンは実際には発生しない」または「出力が0でも1でも構わない」条件のことです。カルノー図ではXで表記します。
ドントケアはグループ化のとき1としても0としても扱えるので、より大きなグループを作って式をさらに簡略化するのに利用できます。ただし、ドントケアだけでグループを作ることはできません(必ず1つ以上の1を含む必要があります)。
上のツールで「4変数 ドントケア付き」プリセットを選ぶと、Xがグループに含まれてより大きなグループが形成される様子を確認できます。セルをクリックして自分でXを配置してみるのもおすすめです。
加法標準形(Sum of Minterms)は、真理値表の1になる行をすべてOR(+)でつないだ式です。正確ですが冗長です。カルノー図で簡略化した結果は積和形(Sum of Products, SOP)と呼ばれ、各グループがAND項、全体がOR結合になります。
「この真理値表をカルノー図で簡略化した結果を求める」手順は次のとおりです。
・真理値表の1をカルノー図に記入
・グルーピング → 各グループの項を読み取り
・項をOR(+)でつなぐ
上のツールで表示される「F = ...」の式がまさに積和形です。プリセットを切り替えて、グループの数と式の長さの関係を確認してみてください。グループが少ないほど式が短くなります。
カルノー図には簡略化の方式が2種類あります。どちらの方式を使っても等価な論理を表しますが、式の見た目は変わります。
・積和形(SOP, Sum of Products):1のセルをグループ化し、「出力が1になる条件」を求める。各グループのANDをORでつなぐ。例:A'C + AB
・和積形(POS, Product of Sums):0のセルをグループ化し、「出力が0になる条件を否定したもの」を求める。各グループのORをANDでつなぐ。例:(A+C)(A'+B)
どちらを使うかは「1と0、どちらが少ないか」で決めるのが基本です。少ない方をグループ化すると式が短くなります。一般によく使われるのは積和形(SOP)で、デジタル回路の標準実装(AND-OR論理)とも対応するため、まずは積和形をしっかり習得するとよいでしょう。
上のツールでは1のセルをグループ化する積和形のみ自動計算します。表示される「F = ...」は「こういう入力のときに出力が1になる」という意味で読んでください。