카르노맵(Karnaugh-Map)

YeYe·2020년 5월 6일
2
post-thumbnail

아래 그림과 같은 것을 본 적이 있으신가요?
저게 바로 이제 설명할 카르노맵입니다.


학교 수업 중 복잡한 논리식을 정리하는 것이 매우 어렵고 귀찮았다.
항상 내가 찾지 못한 공통 변수가 있었고, 생략할 수 있는 것들을 생략하지 못했다.

하지만 이것을 알게 된 후부터 논리식을 정리하는 것이 매우 쉬워졌다!


카르노맵이란?

카르노맵은 복잡한 논리식을 좀 더 편리하게 간소화 시킬 수 있는 방법 중 하나로,
1이 나오는 경우(최소항)만 추려서 그 때의 입력값을 식으로 표현한 것이다.

다른 방법으로는 불 대수가 있다. 
불 대수는 카르노맵보다 빠르고 정확하게 정리하기 어렵다.

이게 무슨 소리냐, 말보다는 직접 해보면서 이해하는 것이 더 잘 될 것이다.


카르노맵 표현 순서

   1. 변수의 개수를 파악한 후, 2^n개의 테이블을 생성한다.

   2. 변수의 조합이 0인지 1인지 값을 채워준다.

   3. 묶을 수 있는 규칙에 따라 묶어준다.

   4. 묶어진 값을 간소하게 표현한다.

실전 연습

변수가 2개일 때

테이블을 그린다. 그 후, 변수의 조합에 따라 값을 채워줄 것이다.

진리표를 그려보자. A와 B, 그리고 그에 따른 결과를 정리한다.
그리고 그 진리표를 가지고 테이블을 채워보자.

채워진 테이블에서 결과가 1인 것들을 묶어주자.
이때, 주의해야할 것은 2의 제곱(2,4,8..) 수로 묶어줘야 한다.

그리고 묶인 것의 조합을 더해준다.
이렇게 간단하게 표현된 식을 정리할 때는 불대수 공식을 사용하면 빠르다.

A + 0 = A
A + 1 = 1
A + A = A
A + A` = 1
A + (AB) = A 등등

변수가 3개일 때

그렇다면 변수가 3개일 때는 어떻게 해야할까?
테이블을 만들 때는 어떻게 해야할까?

변수가 3개 이상일 경우에는 변수를 묶어서 테이블을 그려주면 된다!
바로 이렇게 말이다.

그 다음에는 값이 1인 것들을 2의 제곱수로 묶어준다.
이때, 사람마다 모두 다르게 묶을 수 있다.
하지만 중요한 것은 최대한 많이 묶는 것이다. 그래야 더욱 쉽게 정리할 수 있다.

다음 식을 정리하기 위해서 공통된 부분을 묶어주고, 값이 1인 것들은 생략해주었다.

이렇게 하면 아주 쉽게 논리식을 정리할 수 있다!


이 글을 읽은 여러분들이
어떤 아주 무시무시하게 복잡한 논리식이어도 카르노맵을 이용해서 쉽게 해결하길 바란다 :)

0개의 댓글