9-1. 포싱 체인 종류
니시오 포싱 체인 (Nishio Forcing Chain)
니시오 포싱 체인(Nishio Forcing Chain)은 모순(contradiction) 체인입니다.
이 체인은:
- 어떤 후보 숫자가 참(정답)이라는 가정으로 시작해서
- 모순, 즉 유효하지 않은 상태로 끝납니다.
[주황색]은 후보 숫자가 거짓임을 의미합니다.
[초록색]은 후보 숫자가 참임을 의미합니다.
이러한 유효하지 않은 상태(모순)는 다음과 같을 수 있습니다:
- 하나의 후보 숫자가 동시에 참이면서 거짓인 경우
- 셀에 들어갈 후보 숫자가 하나도 남지 않은 경우
- 어떤 영역에서 특정 숫자가 완전히 지워진 경우
- 한 셀에서 여러 개의 후보 숫자가 참이 되는 경우
- 한 영역에 같은 숫자가 두 번 이상 들어가는 경우 만약 여러분이 유일성(uniqueness) 기술을 좋아하신다면, 이 목록에 다음을 추가할 수도 있습니다:
- 치명적인 패턴(deadly pattern)이 존재하는 경우
이 체인은 [빨간색 9]가 참이라는 가정으로 시작해서 6번째 행에서 끝납니다.
만약 [빨간색 9]가 참이라면, 해당 행의 두 [초록색 7]이 모두 참이 되어야 한다는 것을 눈치채셨나요?
이것이 바로 우리가 찾던 유효하지 않은 상태입니다. 이는 우리의 초기 가정이 틀렸음을 보여주며, 따라서 [빨간색 9]는 참이 아닙니다.
우리는 [빨간색 9]를 제거할 수 있습니다.
여기 동일한 체인이 있지만, 이번에는 모순이 하나의 후보 숫자에서 발생합니다.
우리의 체인은 [빨간색 9]가 참이라는 가정에서 시작하여, [파란색 7]이 동시에 참이면서 거짓이 되는 상황으로 이어집니다.
다시 한번 말씀드리지만, 이는 유효하지 않은 상태이므로 우리는 [빨간색 9]를 제거할 수 있습니다.
모순의 종류들은 서로 매우 밀접하게 관련되어 있습니다. 유효하지 않은 빈 영역이나 빈 셀로 끝나는 체인은, 화살표나 단계를 하나만 더 추가하면 하나의 후보 숫자에서 발생하는 모순으로 쉽게 연결될 수 있습니다.
이 예시에서 [빨간색 3]은 [베이지색] 셀에 들어갈 수 있는 후보 숫자가 하나도 남지 않게 되는 결과로 이어집니다.
베리티 포싱 체인 (Verity Forcing Chain)
베리티 포싱 체인(Verity Forcing Chain, 참거짓 검증 체인)은 여러 개의 체인을 사용하여 어떤 후보 숫자가 참인지 거짓인지 증명합니다.
주요 세 가지 유형은 다음과 같습니다...
숫자 포싱 체인 (Digit Forcing Chain)
숫자 포싱 체인은 한 셀 안에 있는 단일 후보 숫자의 모든 가능한 상태(참/거짓)에서 시작합니다.
따라서 하나의 체인은 [파란색 6]이 참이라는 가정에서 시작하고, 다른 체인은 [파란색 6]이 거짓이라는 가정에서 시작합니다. 만약 두 체인이 모두 어떤 특정 후보 숫자를 참으로 만든다면, 그 후보 숫자는 전체적으로 무조건 참이 되며 정답으로 확정할 수 있습니다.
여기서는 [초록색 1]이 해당 셀의 정답이 됩니다.
(만약 모든 체인이 특정 후보 숫자를 거짓으로 만든다면, 그 후보 숫자는 제거할 수 있습니다.)
셀 포싱 체인 (Cell Forcing Chain)
셀 포싱 체인은 하나의 단일 [베이지색] 셀 안에 있는 모든 가능한 후보 숫자들([초록색 2], [초록색 5], [초록색 8]) 각각에서 출발합니다. 만약 이 체인들이 특정 후보 숫자에서 만나고, 모든 체인이 그 숫자를 참으로 만든다면, 이 후보 숫자는 해당 셀의 정답이 됩니다.
여기서 [초록색 1]은 모든 경우에 참이 되므로 정답으로 확정할 수 있습니다.
(만약 어떤 후보 숫자가 모든 체인에 의해 거짓이 된다면, 그것은 제거할 수 있습니다.)
영역 포싱 체인 (Region Forcing Chain)
영역 포싱 체인(또는 유닛 포싱 체인)은 어떤 [베이지색] 영역 내에 들어갈 수 있는 특정 숫자([초록색 4])의 모든 가능한 위치에서 출발합니다.
모든 체인이 [빨간색 4]가 거짓이라는 결과에서 만나게 되므로, [빨간색 4]를 확실하게 제거할 수 있습니다.
포싱 넷 (Forcing Nets)
포싱 체인이 여러 갈래로 나뉘었다가 특정 셀이나 영역에서 다시 하나로 합쳐질 때, 이를 포싱 넷(Forcing Net, 포싱 그물망)이라고 부릅니다.
여기서 체인은 [베이지색] 셀에서 시작하여 [빨간색] 셀에서 끝납니다. 두 개의 하위 체인(subchain)이 하나로 합쳐지는 과정은 [보라색] 셀에서 일어납니다.
체인이 갈라지는 것은 시작하자마자 바로 일어납니다.
[초록색 7]에서 체인 하나는 오른쪽으로 가고, 다른 하나는 아래로 내려갑니다. 아래로 내려간 체인은 즉시 4행 2열(r4c2)의 [주황색 7]을 거짓으로 만듭니다. 오른쪽으로 갔던 다른 체인은 오른쪽에서 다시 돌아와 4행 2열(r4c2)의 [주황색 4]를 거짓으로 만듭니다.
따라서 4행 2열(r4c2)에서 두 하위 체인이 다시 만납니다. 이제 3개의 후보 숫자 중 2개([주황색 4], [주황색 7])가 거짓이 되었으므로, 체인은 세 번째 후보 숫자인 [초록색 9]에서 다시 계속 이어질 수 있습니다.
만약 두 하위 체인이 [주황색 4]와 [주황색 7]을 모두 거짓으로 만들지 못했다면, 우리의 체인은 계속 이어질 수 없었을 것입니다.
따라서 하나로 합쳐지는 체인들이 체인을 계속 이어나가기 위해 모두 필요할 때만 그것을 '넷(net)'이라고 부릅니다.
이것은 넷(net)이 아닙니다. 왜냐하면 2행 5열(r2c5)에서 체인이 만나는 것이 그 지점부터 체인을 이어나가기 위해 필수적인 요소가 아니기 때문입니다 (두 체인이 해당 셀 내의 정확히 똑같은 후보 숫자에 도달하여 논리가 중복되기 때문입니다).