제약 만족 문제에서 휴리스틱은 박진 추적 솔버의 성능을 향상시키는 데 사용될 수 있습니다. 간단한 역 추적 솔버를 위해 일반적으로 제공되는 3 가지 휴리스틱은 다음과 같습니다.
- 최소 남은 값 (이 변수에 유효한 값의 수)
- 휴리스틱 정도 (이 변수의 영향을받는 다른 변수 수)
- 최소 구속 값 (다른 변수에 대해 어떤 값이 다른 값을 가장 많이 남을 것인가)
처음 두 개는 구현이 매우 명확하고 간단합니다. 먼저 도메인에 최소값이 남아있는 변수를 선택하고 관계가있는 경우 다른 변수에 영향을주는 변수를 선택하십시오. 이 방법으로 솔버의 상위 단계에서 잘못된 할당을 선택한 경우 가장 빨리 발견 할 수 있으므로 가장 적은 다른 값을 가진 변수를 선택하면 다른 항목에 영향을 줄 수 있습니다.
그것들은 간단하고 명확하게 정의되어 있으며 구현하기 쉽습니다.
최소 제약 값은 내가 본 곳에서 명확하게 정의되지 않았습니다. 인공 지능 : 현대적 접근 방식 (Russel & Norvig)은 다음과 같이 말합니다.
구속 조건 그래프에서 인접 변수에 대한 가장 적은 선택을 배제하는 값을 선호합니다.
"최소한의 구속 값"을 검색하면이 교재를 기반으로 한 많은 대학 슬라이드 쇼만 나타 났으며, 이것이 알고리즘 적으로 수행되는 방법에 대한 추가 정보는 없었습니다.
이 휴리스틱에 대한 유일한 예는 하나의 값 선택이 이웃 변수에 대한 모든 선택을 제거하고 다른 하나는 그렇지 않은 경우입니다. 이 예제의 문제점은 사소한 경우라는 점인데, 이는 잠재적 인 할당이 문제점의 제한 조건과 일치하는지 점검 할 때 즉시 제거됩니다. 따라서 내가 찾을 수있는 모든 예제에서 최소 제약 값 휴리스틱은 중복 검사를 추가하여 작은 부정적인 영향을 제외하고는 솔버 성능에 실제로 도움이되지 않았습니다.
내가 생각할 수있는 유일한 다른 것은 각 할당에 대해 이웃 변수의 가능한 할당을 테스트 하고이 변수의 가능한 각 할당에 대해 존재하는 이웃의 가능한 할당 수를 계산 한 다음이 변수의 값을 정렬하는 것입니다 해당 값을 선택한 경우 사용 가능한 인접 할당 수를 기반으로합니다. 그러나 무작위 순서보다 개선 된 방법을 알지 못합니다. 여러 변수 조합을 테스트하고 계산 결과를 기반으로 정렬해야하기 때문입니다.
누구든지 최소 제약 값에 대한 더 유용한 설명을 제공하고 해당 최소 제약 값 버전이 실제로 어떻게 개선되는지 설명 할 수 있습니까?