科学・計算関連

カルノー図とは?論理式を簡単化する仕組みと基本の使い方を解説!(真理値表・解き方)

カルノー図の意味と論理式の簡単化
当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

カルノー図とは?論理式を簡単化する仕組みと基本の使い方を解説! 真理値表・解き方

論理回路の設計やデジタル技術の学習では、長い論理式をできるだけ短く整理する場面が少なくありません。

そのときに役立つ方法がカルノー図です。

真理値表に並んだ値を規則的に配置し、隣り合うマスをまとめることで、複雑に見える論理式を視覚的に簡単化できます。

ブール代数の計算だけでは迷いやすい問題も、カルノー図を使うとグループの形として判断しやすくなります。

この記事では、カルノー図の意味、真理値表との関係、基本的な解き方、グループ化のルール、よくある注意点まで順番に解説します。

カルノー図の意味と論理式の簡単化

カルノー図の意味と論理式の簡単化

それではまずカルノー図の意味と、論理式を簡単化できる理由について解説していきます。

カルノー図の基本的な役割

カルノー図とは、論理関数を表に配置して、不要な変数を減らしながら論理式を簡単にするための図です。

英語ではKarnaugh mapと呼ばれ、論理回路、組み込み機器、制御回路、デジタル電子回路の設計で広く利用されています。

通常の真理値表は、入力の組み合わせごとに出力が0か1かを一覧にした表です。

一方のカルノー図では、入力の並び順を工夫して、1になる条件が隣接するように配置します。

隣接する1をまとめると、値が変化する変数だけを取り除けるため、最終的な論理式が短くなります。

論理式を短縮できれば、必要な論理ゲート数を減らせる可能性があります。

ゲート数が少ない回路は配線が整理しやすく、部品コスト、消費電力、信号の遅延を抑えることにもつながるでしょう。

カルノー図は、真理値表を見やすく並べ替え、隣り合う1をまとめて変数を消去するための手法です。

特に2変数から4変数程度の論理式では、計算式だけで整理するより直感的に扱いやすい方法といえます。

論理式を短くする必要性

論理式の簡単化は、見た目を整えるだけの作業ではありません。

たとえばAND、OR、NOTのゲートを組み合わせて回路を作る場合、項が多いほど回路の構成は複雑になります。

入力信号が通過するゲートが増えれば、出力が確定するまでの時間も長くなりやすいでしょう。

この時間差は伝搬遅延と呼ばれ、高速な制御が必要な回路では無視できない要素になります。

論理式を簡単化する目的は、回路を小さくすることと、動作を安定させることの両方にあります。

ソフトウェア開発でも、条件分岐が複雑になったときに考え方を応用できます。

条件式の重複や不要な判定を整理する視点として、カルノー図の考え方は役立つでしょう。

ブール代数との関係

カルノー図は、ブール代数の法則を図として扱いやすくしたものです。

ブール代数では、ANDを積、ORを和、NOTを否定として扱います。

たとえばAとBがあり、AとBのどちらも1なら1になる条件はA・Bと表せます。

AまたはBのどちらか一方でも1なら1になる条件はA+Bです。

カルノー図で隣接したマスをまとめる操作は、こうしたブール代数の吸収則や分配則を視覚的に使うことに相当します。

以下のように、1つの変数だけが異なる項はまとめられます。

A・B+A・Bの否定は、Aに簡単化できます。

Bの値が0でも1でも出力がAによって決まるため、Bを式に残す必要がないからです。

カルノー図では、このBだけが変わる2つの条件を横または縦に並べ、ひとつのグループとして囲みます。

計算法則をすべて暗記していなくても、グループ化の規則を理解すれば式を整理しやすくなる点が大きな特徴です。

真理値表とカルノー図の対応関係

続いては真理値表とカルノー図がどのようにつながるかを確認していきます。

真理値表から値を転記する手順

カルノー図を作る最初の手順は、真理値表を用意することです。

真理値表には、入力変数のすべての組み合わせと、それぞれに対応する出力値を書きます。

2変数のAとBなら、入力の組み合わせは00、01、10、11の4通りです。

3変数のA、B、Cなら8通り、4変数なら16通りに増えます。

カルノー図には、出力が1になるマスを転記するのが一般的です。

ただし、積和標準形では1を中心にまとめ、和積標準形では0を中心に扱うため、目的に合わせた見方が必要になります。

最初は出力が1のマスを囲む積和形の解き方から覚えると、基本をつかみやすいでしょう。

A B 出力F カルノー図への記入
0 0 0 ABが00のマスに0
0 1 1 ABが01のマスに1
1 0 1 ABが10のマスに1
1 1 1 ABが11のマスに1

表の転記では、入力の順序を取り違えないことが重要です。

真理値表の並びは通常の二進数順でも、カルノー図の行や列はグレイコード順に並べます。

ここを誤ると、隣接していない条件を隣接しているように見なしてしまい、誤った論理式になるおそれがあります。

グレイコードを用いる理由

カルノー図の行と列には、00、01、11、10という順序が使われます。

この並び方はグレイコードと呼ばれ、隣り合う値同士で変化するビット数が必ず1つになるように作られています。

たとえば00の次は01であり、AまたはBのどちらか片方だけが変化します。

01の次は11で、ここでも変化するのは1ビットだけです。

この性質があるため、隣接したマスにある最小項は、1つの変数だけが異なる項として扱えます。

変化する変数を削除すれば、より少ない文字数の論理式が得られます。

二進数順の00、01、10、11では01と10が2ビット異なるため、中央の2つを隣接扱いにはできません。

2変数のカルノー図では、列の並びを00、01、11、10と考えます。

最初の00と最後の10も1ビットだけ異なるため、表の左右端も隣接する関係になります。

二変数から四変数までのマス構成

変数の数によって、カルノー図のマス数と形は変わります。

2変数なら4マスで、縦または横に並べた小さな表として扱えます。

3変数では8マスになり、2行4列の形が分かりやすいでしょう。

4変数では16マスになり、4行4列の表を使います。

変数が増えると全体像を把握しにくくなりますが、基本ルールは同じです。

隣接する1を、1個、2個、4個、8個、16個の単位で囲みます。

変数の数 入力組み合わせ数 カルノー図のマス数 基本的な形
2変数 4通り 4マス 2行2列または1行4列
3変数 8通り 8マス 2行4列
4変数 16通り 16マス 4行4列
5変数以上 32通り以上 32マス以上 複数図または別手法

5変数以上でもカルノー図は使用できますが、図が複数に分かれるため、手作業ではミスが増えやすくなります。

変数が多い問題では、クワインマクラスキー法や論理合成ツールを使う選択肢も検討するとよいでしょう。

カルノー図の基本的な解き方

続いてはカルノー図を使った基本的な解き方を確認していきます。

出力が一になるマスの確認

積和形の論理式を求める場合は、まず出力が1になる条件をカルノー図へ記入します。

空欄のままにせず、必要に応じて0も書き込むと、グループの境界を見失いにくくなります。

問題文が最小項で与えられている場合は、指定された最小項番号の位置に1を置きます。

真理値表で与えられている場合は、出力列が1の行を探して該当マスへ移します。

この段階では式を急いで書かず、図の配置が正しいかを確認するのが安全です。

カルノー図の簡単化は、正しい配置ができていることを前提に進みます。

入力変数がA、B、C、Dなら、どの変数を行に置き、どの変数を列に置くかも最初に決めておきましょう。

グループ化の大きさと優先順位

1が入ったマスは、隣接するものを長方形として囲みます。

囲める数は2の累乗でなければならず、1個、2個、4個、8個、16個が対象です。

3個や6個のような数では囲めません。

また、斜め方向に接するマスは隣接とは認められません。

グループはできるだけ大きく取り、次に必要なグループ数を少なくすることが基本です。

4個でまとめられる場所を2個ずつに分けると、残る変数が多くなり、式が長くなってしまいます。

グループ化では、可能な限り大きな2の累乗個のグループを選びます。

同じ1を複数のグループに重複して含めても問題ありません。

重複によってより大きなグループが作れるなら、積極的に活用することがポイントです。

表の上端と下端、左端と右端もつながっていると考えます。

紙の上では離れて見える端同士でも、カルノー図では隣接関係があります。

この考え方は最初につまずきやすい部分ですが、式を十分に短くするために欠かせません。

グループから論理式を読み取る方法

グループを囲んだら、その範囲内で変化しない変数だけを残します。

たとえば4変数の図で4マスを囲み、Aだけが常に1、B、C、Dが変化しているなら、そのグループはAと表せます。

2マスのグループでAとCだけが共通して1なら、項はA・Cです。

共通する変数が0である場合は、その変数を否定して表します。

たとえばBが常に0なら、項にはBの否定を含めます。

ある2マスでAが1、Bが0のまま、Cだけが0と1に変化しているとします。

このグループから得られる項は、A・Bの否定です。

Cはグループ内で変わるため、最終式には残しません。

各グループから得た項をORで結べば、積和形の簡単化された論理式になります。

最後に、作成した式が真理値表の出力と一致するか確認すると、転記ミスや読み取りミスを見つけやすいでしょう。

グループ化のルールと重要な注意点

続いては解答の精度を左右するグループ化のルールを確認していきます。

隣接と端の接続関係

カルノー図では、上下左右に接するマスだけが隣接します。

斜めに触れているマスは、変数が2つ以上変化する可能性があるため、同じグループにはできません。

さらに重要なのが、図の端同士がつながっているという考え方です。

4列の図では、一番左の列と一番右の列が隣接します。

4行の図では、一番上の行と一番下の行も隣接します。

角の4マスは、条件がそろえば1つのグループとして囲めます。

平面上の表としてだけ見るのではなく、端をつないだ形を想像することが正しい解き方への近道です。

重複グループの扱い

初心者が避けがちな操作に、同じ1を複数のグループで使用することがあります。

しかし、カルノー図ではグループの重なりを許容します。

むしろ重複を使うことで、より大きいグループを構成でき、論理式を短縮できるケースも少なくありません。

すべての1が少なくとも1回はグループに含まれていればよく、各マスを一度だけ使う必要はありません。

ただし、必要性のない小さなグループを増やすと、項数が増えて簡単化の意味が薄れます。

まず必須主項にあたるグループを見つけ、その後で残った1を最小限の追加グループで覆う考え方が有効です。

グループの重複は誤りではありません。

すべての1を覆いながら、グループを大きく、グループ数を少なくする組み合わせを探します。

ドントケア条件の利用

問題によっては、出力が0でも1でも構わない条件が示されます。

この条件はドントケア条件と呼ばれ、通常はXやdで表されます。

ドントケアは必ずグループへ入れる必要はありませんが、グループを大きくするために1として利用できます。

たとえば1が2個しかなくても、その隣にドントケアが2個あれば、4個のグループを作れる場合があります。

その結果、残る変数をさらに減らせるでしょう。

ドントケア条件は、回路の仕様を変えずに論理式を簡単化できる余地です。

ただし、実際にその入力状態が発生した場合の安全性が求められる回路では、安易に出力を決めない注意も必要になります。

三変数と四変数の問題例

続いては三変数と四変数を例に、カルノー図の読み取り方を確認していきます。

三変数の基本例

入力をA、B、Cとし、出力Fが特定の条件で1になるケースを考えます。

三変数カルノー図では、Aを行に置き、BとCを列に置く形がよく使われます。

列の順序は00、01、11、10です。

ここでAが1の行にある4マスすべてが1なら、BとCはすべて変化します。

共通しているのはAが1という条件だけなので、論理式はAになります。

真理値表では4行分の条件が必要に見えても、カルノー図ではひとつの項に整理できる例です。

A BCが00 BCが01 BCが11 BCが10
0 0 0 0 0
1 1 1 1 1

下の行にある4つの1をまとめると、BとCは消えます。

このように大きなグループを見つけることが、カルノー図の最も重要な作業です。

四変数での端をまたぐ例

四変数のカルノー図では、AとBを行、CとDを列に置く構成が一般的です。

列の左端と右端は隣接しているため、両端にある1をまとめられる場合があります。

たとえばCDが00の列と10の列は、Cだけが異なり、Dはどちらも0です。

同じ行に1が並んでいれば、左右端をまたぐ2マスのグループとして扱えます。

図の中央だけを見ていると見落としやすい部分ですが、端をまたぐグループは四変数問題で頻出するポイントです。

外周をひと続きの輪として見る習慣をつけると、解答の取りこぼしが減るでしょう。

最終式を検算する方法

カルノー図で得た最終式は、必ず元の真理値表と照合することをおすすめします。

すべての入力パターンを代入する方法は確実ですが、変数が多い場合には時間がかかります。

少なくとも、元の出力が1であった組み合わせで最終式が1になることを確認しましょう。

さらに、出力が0であった条件で誤って1にならないかも確認が必要です。

特にグループの端をまたいだとき、否定記号の付け忘れが起こりやすい傾向があります。

変数が0で固定されていたら否定、1で固定されていたらそのまま記載するという原則を毎回確認すると安心です。

カルノー図の学習で起こりやすい誤り

続いてはカルノー図を学ぶ際に起こりやすい誤りと対策を確認していきます。

通常の二進数順で配置する誤り

カルノー図の最も基本的な注意点は、行と列の並び順です。

00、01、10、11という通常の二進数順をそのまま使うと、隣接するマスで2ビット変わる場所が生まれます。

これでは変数を1つだけ消去するというカルノー図の前提が崩れてしまいます。

正しい順序は00、01、11、10です。

問題を解き始める前に、表の見出しへグレイコードを書いておくと、配置ミスを防ぎやすくなります。

グレイコード順は暗記するだけでなく、隣同士で1ビットだけ変化することを確認して理解するのが大切です。

斜めのマスをまとめる誤り

斜めに位置する1は見た目には近くても、同じグループにできません。

斜めの2マスでは、通常は2つの変数が同時に変化します。

カルノー図のグループ化は、1変数だけが変わる条件を利用しているため、斜め方向をつなぐと論理的な根拠がなくなります。

上下左右の関係だけを確認し、対角線方向は候補から外しましょう。

一方で左右端や上下端は見た目以上に近い関係です。

斜めは不可、端同士は可能という違いを意識すると、判断が安定します。

小さすぎるグループで止める誤り

1を見つけるたびに2個ずつ囲んでしまうと、より大きなグループを見落とすことがあります。

カルノー図では、まず8個、次に4個、次に2個というように、大きいグループから探すと効率的です。

4個のグループは2個のグループよりも1つ多く変数を消せます。

8個のグループなら、さらに多くの変数を除外できます。

グループを囲んだ後も、より大きな組み合わせがないか見直す習慣を持ちましょう。

最終的な式が複数できた場合は、項数だけでなく、各項に残る変数の数も比較することが大切です。

カルノー図のまとめ

カルノー図は、真理値表から論理式を視覚的に簡単化するための便利な手法です。

出力が1になるマスをグレイコード順の表へ配置し、隣接する1を2の累乗単位で大きくまとめます。

グループ内で変化する変数を消し、変化しない変数だけを残すことで、短い論理式を導けます。

大きなグループを優先し、端同士の接続と重複グループを活用することが、正確な簡単化の要点です。

二変数や三変数から練習を始め、真理値表への検算まで行えば、四変数の問題にも対応しやすくなるでしょう。

論理回路の設計だけでなく、条件分岐を整理する考え方としても、カルノー図の基本を身につけておく価値があります。