반갑습니다. 김대호교수 입니다.
논리식 간소화 방법 (예시)
어떤 논리식의 출력이 X = A'BC + AB'C + ABC' + ABC 와 같이 주어졌다고 가정하고, 이를 최소 접점으로 표현(간소화)하는 방법을 두 가지로 설명하겠습니다. (여기서 ' 는 NOT을 의미합니다.)
1. 불대수(Boolean Algebra)를 이용한 간소화
불대수의 기본 정리를 이용하여 항을 줄여나가는 방식입니다.
주요 공식:
- A + A' = 1
- A + AB = A
- A + A'B = A + B
- A + A = A
풀이 과정:
X = A'BC + AB'C + ABC' + ABC
가장 많이 사용되는 방법은 공통 항을 묶거나, 중복되는 항을 추가하여(A = A+A 이용) 식을 정리하는 것입니다. 여기서는 ABC 항을 추가하여 정리해 보겠습니다.
- ABC 항을 두 번 더 추가합니다. (A + A = A 이므로 식은 동일합니다) X = A'BC + AB'C + ABC' + ABC + ABC + ABC
- 공통 인수로 묶어줍니다.
- A'BC와 ABC를 BC로 묶습니다. → BC(A' + A) = BC(1) = BC
- AB'C와 ABC를 AC로 묶습니다. → AC(B' + B) = AC(1) = AC
- ABC'와 ABC를 AB로 묶습니다. → AB(C' + C) = AB(1) = AB
- 정리된 항들을 합칩니다. X = BC + AC + AB
따라서 최종 간소화된 논리식은 X = AB + BC + AC 가 됩니다.
2. 카르노 맵(Karnaugh Map)을 이용한 간소화
변수가 3개이므로 2x4 또는 4x2 표를 이용하여 시각적으로 간소화하는 방식입니다.
풀이 과정:
- 3변수 카르노 맵을 작성하고, 각 항에 해당하는 칸에 '1'을 채웁니다.
- A'BC: A=0, BC=11
- AB'C: A=1, BC=01
- ABC': A=1, BC=10
- ABC: A=1, BC=11
A\BC
|
00
|
01
|
11
|
10
|
0
|
|
|
1
|
|
1
|
|
1
|
1
|
1
|
- '1'로 채워진 칸들을 2의 거듭제곱(2, 4, 8...) 개의 사각형으로 묶습니다. 이때 인접한 '1'들을 최대한 크게 묶어야 합니다.
- 묶음 1 (녹색): (A=0, BC=11)과 (A=1, BC=11)을 묶습니다. 이 묶음에서 A는 0과 1로 변하므로 소거되고, BC는 11로 고정되므로 BC가 됩니다.
- 묶음 2 (파란색): (A=1, BC=01)과 (A=1, BC=11)을 묶습니다. 이 묶음에서 A는 1, C는 1로 고정되고 B는 0과 1로 변하므로 소거되어 AC가 됩니다.
- 묶음 3 (빨간색): (A=1, BC=11)과 (A=1, BC=10)을 묶습니다. 이 묶음에서 A는 1, B는 1로 고정되고 C는 0과 1로 변하므로 소거되어 AB가 됩니다.
- 각 묶음에서 나온 항들을 모두 더합니다(OR 연산). X = AB + BC + AC
위 두 가지 방법으로 간소화한 결과는 X = AB + BC + AC로 동일합니다. 불대수 법칙이 익숙하다면 직접 간소화할 수 있으며, 복잡한 논리식의 경우 카르노 맵을 이용하면 시각적으로 더 쉽게 묶어서 실수를 줄일 수 있습니다. 수험생께서는 두 가지 방법 모두를 숙달하여 문제 유형에 따라 더 빠르고 정확한 방법을 선택하여 풀이하는 연습을 하시는 것이 좋습니다.