talosのプログラミング教室

【基本・応用情報技術者】カルノー図の使い方

スポンサーリンク

こんにちは。たろすです。

今回はカルノー図の使い方を説明します。

カルノー図の使い道

カルノー図は論理式を簡略化する際に使用します。

カルノーズの使い方

パターン1

例えば以下の論理式を簡略化したいとします。

 \overline{A} \cdot B \cdot \overline{C} \cdot D+ \overline{A} \cdot B \cdot C \cdot D

カルノー図を埋めていきましょう。

f:id:talosta:20210501151748p:plain

まず第1項の \overline{A} \cdot B \cdot \overline{C} \cdot Dを見ます。

AとCは否定になっています。

なので、A=0、B=1、C=0、D=1のところに1を埋めます。

f:id:talosta:20210501151819p:plain

続いて第2項の \overline{A} \cdot B \cdot C \cdot Dを見ます。

Aが否定になっています。

そのため、A=0、B=1、C=1、D=1のところに1を埋めます。

f:id:talosta:20210501151845p:plain

1が隣り合っていますね。

f:id:talosta:20210501151906p:plain

このような場合は二つに共通する部分を探しましょう。

するとAが0でBが1、Dが1ということ共通しているとわかると思います。

したがって、最初に与えられた論理式は次のように簡略化できます。

 \overline{A} \cdot B \cdot D

パターン2

次に以下の論理式を簡略化します。

 \overline{A} \cdot B \cdot \overline{C} \cdot \overline{D}+ \overline{A} \cdot B \cdot C \cdot \overline{D}

先程と同じようにカルノー図を埋めると次のようになります。

f:id:talosta:20210501151931p:plain

一見すると隣り合っていないように見えますが、実は一番左の列と一番右の列は隣り合っているとみなすことができます。

f:id:talosta:20210501151950p:plain

この二つに共通する部分はAが0でBが1、Dが0ということです。

なので最初に与えられた論理式を簡略化すると、

 \overline{A} \cdot B \cdot \overline{D}

となります。

なお、一番上の行と一番下の行も隣り合っているとみなします。

パターン3

次の論理式を簡略化します。

 \overline{A} \cdot B \cdot \overline{C} \cdot D+ \overline{A} \cdot B \cdot C \cdot D+ \overline{A} \cdot B \cdot C \cdot \overline{D}

カルノー図を書くと、

f:id:talosta:20210501152032p:plain

三つの1が隣り合っています。

しかし、以下のように三つを囲むことはできません。

f:id:talosta:20210501152054p:plain


このような場合は次のように囲みましょう。

f:id:talosta:20210501152112p:plain

赤い方の囲いの共通する部分はAが0でBが1、Dも1ということ、青い方の囲いの共通する部分はAが0でBが1、Cも1ということ。

なので、それらを論理和で繋げて

 \overline{A} \cdot B \cdot D+\overline{A} \cdot B \cdot C

となります。

このような囲むことができるのは2のべき乗×2のべき乗になる場合だけです。

パターン4

次の論理式を簡略化します。

 \overline{A} \cdot B \cdot \overline{C} \cdot D+ \overline{A} \cdot B \cdot C \cdot D+ A \cdot B \cdot \overline{C} \cdot D+A \cdot B \cdot C \cdot D

カルノー図にするとこのようになります。

f:id:talosta:20210501152131p:plain

先程説明した通り、2のべき乗×2のべき乗なら囲えるので、2×2はもちろん囲えます。

f:id:talosta:20210501152152p:plain

これらに共通する部分はBが1でDも1であるということ。

そのため、最初に与えられた論理式を簡略化すると、

 B \cdot D

となります。

おわりに

今回はカルノー図の使い方について説明しました。

場合によっては真理値表より簡単に論理式の変形ができるので、覚えておくとよいでしょう。