규칙이 충돌할 때, 무엇부터 빼야 할까?
모든 규칙을 한꺼번에 고치기 전에, 더는 줄일 수 없는 모순의 묶음을 찾아봅니다. 체크 상자로 규칙을 빼며 가능한 상태를 확인하세요.
그림에서 무엇을 볼까요?
조명 A, A이면 팬 B, 팬은 끔이라는 세 규칙이 충돌한다. 항상 참인 네 번째 규칙을 빼도 모순은 남는다.
LTCT의 가상 전시실에는 조명 A와 팬 B가 있습니다. ① 조명은 켠다, ② 조명을 켜면 팬도 켠다, ③ 팬은 끈다, ④ 조명은 켜거나 끈다는 규칙을 놓았습니다. 장치 상태는 둘 다 끔, 팬만 켬, 조명만 켬, 둘 다 켬의 네 가지뿐입니다. 아래 진리표는 각 상태를 빠짐없이 검사합니다.
먼저 ④만 빼 보세요. 가능한 상태는 여전히 0개입니다. 이제 ①·②·③ 중 어느 하나를 빼면 적어도 한 상태가 살아납니다. 예를 들어 ②를 빼면 조명만 켜는 상태가 가능합니다. 이로써 세 규칙은 더 줄일 수 없는 충돌 묶음이 됩니다.
함께 확인할 점
활동은 두 변수의 네 상태를 전부 검사하는 작은 예시입니다. 원문 알고리즘의 성능 비교를 재현하지 않습니다.
이 예시의 충돌 묶음은 하나입니다. 실제로 여러 묶음이 있을 때도 규칙 하나만 빼면 모두 해결된다고 일반화할 수 없습니다.
생각해 볼 질문
④를 뺐는데도 모순이면, ④는 아무 의미가 없는 규칙일까요?
