면책 조항 : 나는 거의 완전히 clingo에 익숙하며 일반적으로 응답 집합 프로그래밍입니다.해답 집합과 논리 퍼즐 해결 프로그래밍
나는 grid logic puzzle을 사용하여 해결하기 위해 노력하고 있습니다. 시작하려면 각 카테고리의 인스턴스 하나를 포함하는 모든 모델을 생성하고 싶습니다. person(a; b; c).
, 세 주택 : house(w; x; z).
, 및 세 가지 색상 : 세 사람이있는 경우
예를 들어, 이 color(r; g; y).
내가 원하는 것이 하나 개의 잠재적 안정적인 모델은 assign(a, r, x), assign(b, g, z), assign(c, y, w)
다른 잠재적 안정적인 모델이 될 수 있습니다 즉, 각각의 사람은 정확히 한 번 색상과 마찬가지로 나타납니다. 일단이 모델을 가지고 나면 퍼즐이 풀릴 때까지 모델을 제거하기 위해 제약 조건을 사용할 수 있다고 생각합니다.
내가 선택 규칙과 제약 사용하여 시도했다 :
{assign(P, C, H)} :- person(P), color(C), house(H).
P1=P2 :- assign(P1, C, H), assign(P2, C, H).
을하지만 이것은 많은 변수와 큰 퍼즐을 매우 확장 성이 없습니다. 누구든지 이것을하는 더 좋은 방법을 조언 할 수 있습니까?
제목을 변경해야합니다. ASP는 스택 오버플로에 대한 트래픽이 많은 Active Server Pages를 참조 할 수 있습니다. – Tony
'persons'와'house'에서';'를 사용하지만'color'는','를 사용합니다. 이것은 매우 다릅니다. 'clingo --text'이 당신에게주는 것을보십시오. –