반갑습니다. 김대호교수 입니다.
맞습니다. 카르노 맵(Karnaugh Map)에서 변수 값을 00, 01, 11, 10 순서로 배열하는 것은 정해진 규칙이자 핵심 원리입니다. 일반적인 2진수 순서인 00, 01, 10, 11로 배열하면 절대로 정답을 구할 수 없습니다.
그 이유는 카르노 맵의 '인접성(Adjacency)' 원리 때문입니다.
카르노 맵의 핵심 원리: 그레이 코드 (Gray Code)
카르노 맵은 서로 인접한 칸끼리는 단 하나의 비트(bit)만 변경되도록 설계되어 있습니다. 이 특별한 코드 배열 방식을 **'그레이 코드(Gray Code)'**라고 부릅니다.
왜 이렇게 배열해야 할까요? 바로 논리식을 간소화하기 위해서입니다. 인접한 항들은 하나의 변수만 다르고 나머지는 같기 때문에, 그 다른 변수를 소거하여 묶을 수 있습니다.
두 가지 배열 방식 비교
- 잘못된 순서 (일반 2진수 순서): 00, 01, 10, 11
00 → 01 : 1개 비트 변경 (00 → 01)
01 → 10 : 2개 비트 변경 (01 → 10) ❌ <-- 인접성 규칙 위반!
10 → 11 : 1개 비트 변경 (10 → 11)
이처럼 01과 10 사이에서는 두 개의 비트가 동시에 바뀌기 때문에, 이 두 칸은 카르노 맵에서 인접하다고 볼 수 없습니다. 만약 이 순서로 맵을 그린다면, 01 칸과 10 칸에 있는 '1'들을 묶을 수 없게 되어 논리식 간소화에 실패하게 됩니다.
- 올바른 순서 (그레이 코드): 00, 01, 11, 10
00 → 01 : 1개 비트 변경 (00 → 01)
01 → 11 : 1개 비트 변경 (01 → 11)
11 → 10 : 1개 비트 변경 (11 → 10)
(맨 끝과 처음도 인접) 10 → 00 : 1개 비트 변경 (10 → 00)
이 순서는 좌우뿐만 아니라 맨 끝 칸과 맨 처음 칸까지 모두 단 하나의 비트만 차이 나는 인접 관계를 완벽하게 유지합니다. 이것이 카르노 맵을 이용해 논리식을 성공적으로 간소화할 수 있는 이유입니다.
결론
따라서 카르노 맵을 작성할 때는 00, 01, 10, 11 순서로 착각하지 않도록 항상 주의해야 합니다. 00, 01, 11, 10 순서는 카르노 맵을 사용하기 위한 약속이자 가장 중요한 공식이라고 생각하시면 됩니다.