FE EXAM

カルノー図

論理式を視覚的に簡略化する手法。セルをクリックして0/1を設定し、自動グルーピングで最簡形を求める。

INTERACTIVE KARNAUGH MAP
1
0
X(DC)
変数
3
最小項
4
グループ
1
簡略式
B
💡記法の読み方
ABAかつB(AND)
A'Aでない(NOT)
+または(OR)
X0でも1でもよい(ドントケア)
言葉での意味
F = B
出力が 1 になるのは:B のとき
変数の数
プリセット
セルをクリックで
0 → 1 → X → 0
の順に切り替え

A・B・C・D は入力変数(0 or 1)。 軸の0/1 はその変数の値の組み合わせを表す

解説

📌
カルノー図とは

BA00010101F = AB1のセルだけ読み取る真理値表をグリッド化→ 隣接セルをまとめる

カルノー図(Karnaugh map, K-map)は、論理式を視覚的に簡略化するためのツールです。真理値表を2次元のグリッドに並べ替え、隣接する1のセルをグループ化することで、最も短い論理式を導き出します。

4変数以下の論理式なら、計算なしに「見るだけで」簡略化できるのがカルノー図の強みです。一般的には2〜4変数のカルノー図が扱われ、「この図から得られる簡略化された式はどれか」を求めるのが基本的な使い方です。

上のツールではセルをクリックして0/1/Xを切り替えられます。自動的にグルーピングが行われ、簡略化された式が表示されます。まずプリセットを試してから、自分でセルを操作してみてください。

📌
なぜ論理式を簡略化するのか

簡略化 前A'BC + AB'C + ABC簡略化 後BC + ACANDゲート3個+ ORゲート3個 = 合計6個ANDゲート2個+ ORゲート1個 = 合計3個

論理式を簡略化する目的は、回路を構成する部品(ゲート)の数を減らすことです。コンピュータの中では、「AND(かつ)」「OR(または)」「NOT(でない)」という部品を組み合わせて計算を行います。これらを論理ゲート(=論理演算を行う基本部品)と呼びます。

なぜゲートを減らすのか?理由は3つあります。
コスト削減:部品が少ないほどチップが安く小さく作れる
速度向上:通過するゲートが少ないほど計算が速い
消費電力削減:部品が少ないほど電気を使わない

上の図のように、同じ動作をする回路でも式を簡略化するとゲート数が半分以下になることがあります。カルノー図はこの「どうまとめればゲートが減るか」を目で見てわかるようにした道具です。計算なしに、隣り合う1のセルをグループにまとめるだけで、自動的に最短の式が得られます。

📌
グルーピングのルール

1セル2セル4セル8セルグループは必ず 2 のべき乗大きいグループ = より簡略な項

カルノー図のグルーピングには厳密なルールがあります。これを守らないと正しい簡略化ができません。


・グループの大きさは2のべき乗(1, 2, 4, 8, 16)のみ
・グループは長方形(正方形含む)でなければならない
・グループ内のセルはすべて1またはX(ドントケア)でなければならない
・すべての1のセルが最低1つのグループに含まれること
・グループはできるだけ大きく、グループ数はできるだけ少なくする

グループが大きいほど、対応する論理項の変数が少なくなり式が短くなります。上のツールで1のセルを増やすと、グループが大きくなり式が簡単になることを確認できます。

📌
グレイコード順 — 隣が1ビットだけ違う並び

00011110隣同士は常に1ビットだけ異なる00→01→11→10(2進数の0,1,3,2)

カルノー図の行・列は通常の2進数順(00, 01, 10, 11)ではなくグレイコード順(00, 01, 11, 10)で並んでいます。この順序では隣り合うセル同士が必ず1ビットだけ異なるようになっています。

なぜこの順序が重要かというと、「1ビットだけ異なる = 1つの変数だけが異なる」ので、隣接するセルをグループ化するとその変数を消去できるからです。これがカルノー図で簡略化が「見るだけ」でできる仕組みの核心です。

上のツールの行ヘッダ・列ヘッダがグレイコード順になっていることを確認してください。11の隣が10(1ビット違い)で、10と11の間に01が来ないのがポイントです。

📌
端と端の隣接 — トーラス構造

11隣接!左端の00と右端の10は1ビットだけ違う→ グループ化OK地図の左右をつなげた「筒」のイメージ

カルノー図の重要な特徴は、左端と右端、上端と下端がそれぞれ隣接していることです。グレイコード順で並べると、端同士も1ビットだけ異なるためです。これは地図を筒状に丸めたトーラス構造に相当します。

見た目上は離れているセル同士を「端の隣接」でグループ化できる点は見落としやすいポイントです。物理的に離れていても、グレイコード上で隣接していればグループにまとめることができます。

上のツールで「3変数 端の隣接」プリセットを選ぶと、左端と右端のセルがグループ化される様子を確認できます。このパターンを見落とさないように注意してください。

📌
簡略化の手順

1を記入グループ化項を読取式を合成Step 1 → 2 → 3 → 4 の順で進める

カルノー図で論理式を簡略化する手順は4ステップです。慣れれば数十秒で完了します。


Step 1: 1を記入:真理値表で出力が1になる行をカルノー図上のセルに1を書く
Step 2: グループ化:隣接する1(とX)のセルをできるだけ大きな長方形でまとめる
Step 3: 項を読み取る:各グループで「変わらない変数」だけを項として読み取る
Step 4: 式を合成:各グループの項をORでつなげて最終的な式とする

上のツールでは Step 2〜4 を自動で行います。プリセットを選んでグループの色分けと対応する項を確認し、手順を追体験してください。

📌
ドントケア — 0でも1でもよい条件

1X0X = 0でも1でもよい含めても含めなくてもOK→ より大きなグループが作れる

ドントケア(don't care, X)は、「この入力パターンは実際には発生しない」または「出力が0でも1でも構わない」条件のことです。カルノー図ではXで表記します。

ドントケアはグループ化のとき1としても0としても扱えるので、より大きなグループを作って式をさらに簡略化するのに利用できます。ただし、ドントケアだけでグループを作ることはできません(必ず1つ以上の1を含む必要があります)。

上のツールで「4変数 ドントケア付き」プリセットを選ぶと、Xがグループに含まれてより大きなグループが形成される様子を確認できます。セルをクリックして自分でXを配置してみるのもおすすめです。

📌
加法標準形と積和形

A'B'C + A'BC + ABC加法標準形(展開形)A'C + AB積和形(簡略形)カルノー図で簡略化

加法標準形(Sum of Minterms)は、真理値表の1になる行をすべてOR(+)でつないだ式です。正確ですが冗長です。カルノー図で簡略化した結果は積和形(Sum of Products, SOP)と呼ばれ、各グループがAND項、全体がOR結合になります。

「この真理値表をカルノー図で簡略化した結果を求める」手順は次のとおりです。
・真理値表の1をカルノー図に記入
・グルーピング → 各グループの項を読み取り
・項をOR(+)でつなぐ

上のツールで表示される「F = ...」の式がまさに積和形です。プリセットを切り替えて、グループの数と式の長さの関係を確認してみてください。グループが少ないほど式が短くなります。

📌
積和形 vs 和積形 — 1と0、どちらをグループ化するか

積和形(SOP)1のセルをグループ化F = A'C + AB和積形(POS)0のセルをグループ化F = (A+C)(A'+B)同じ真理値表でも、結果の式の「形」が変わるこのツールは 積和形(SOP)で表示

カルノー図には簡略化の方式が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になる」という意味で読んでください。

練習問題

🎯
基本情報技術者 練習問題

Q1.カルノー図でグループ化できるセルの数として正しいものはどれか。
A.1, 2, 3, 4
B.1, 2, 4, 8
C.2, 4, 6, 8
D.1, 3, 5, 7
Q2.4変数カルノー図において、隣接するセルの条件として正しいものはどれか。
A.上下左右に物理的に隣接するセルのみ
B.上下左右に隣接するセル、および端と端のセル
C.斜めに隣接するセルも含む
D.同じ行のセルのみ

関連コンテンツ