최소 제약 값은 무엇입니까?


11

제약 만족 문제에서 휴리스틱은 박진 추적 솔버의 성능을 향상시키는 데 사용될 수 있습니다. 간단한 역 추적 솔버를 위해 일반적으로 제공되는 3 가지 휴리스틱은 다음과 같습니다.

  • 최소 남은 값 (이 변수에 유효한 값의 수)
  • 휴리스틱 정도 (이 변수의 영향을받는 다른 변수 수)
  • 최소 구속 값 (다른 변수에 대해 어떤 값이 다른 값을 가장 많이 남을 것인가)

처음 두 개는 구현이 매우 명확하고 간단합니다. 먼저 도메인에 최소값이 남아있는 변수를 선택하고 관계가있는 경우 다른 변수에 영향을주는 변수를 선택하십시오. 이 방법으로 솔버의 상위 단계에서 잘못된 할당을 선택한 경우 가장 빨리 발견 할 수 있으므로 가장 적은 다른 값을 가진 변수를 선택하면 다른 항목에 영향을 줄 수 있습니다.

그것들은 간단하고 명확하게 정의되어 있으며 구현하기 쉽습니다.

최소 제약 값은 내가 본 곳에서 명확하게 정의되지 않았습니다. 인공 지능 : 현대적 접근 방식 (Russel & Norvig)은 다음과 같이 말합니다.

구속 조건 그래프에서 인접 변수에 대한 가장 적은 선택을 배제하는 값을 선호합니다.

"최소한의 구속 값"을 검색하면이 교재를 기반으로 한 많은 대학 슬라이드 쇼만 나타 났으며, 이것이 알고리즘 적으로 수행되는 방법에 대한 추가 정보는 없었습니다.

이 휴리스틱에 대한 유일한 예는 하나의 값 선택이 이웃 변수에 대한 모든 선택을 제거하고 다른 하나는 그렇지 않은 경우입니다. 이 예제의 문제점은 사소한 경우라는 점인데, 이는 잠재적 인 할당이 문제점의 제한 조건과 일치하는지 점검 할 때 즉시 제거됩니다. 따라서 내가 찾을 수있는 모든 예제에서 최소 제약 값 휴리스틱은 중복 검사를 추가하여 작은 부정적인 영향을 제외하고는 솔버 성능에 실제로 도움이되지 않았습니다.

내가 생각할 수있는 유일한 다른 것은 각 할당에 대해 이웃 변수의 가능한 할당을 테스트 하고이 변수의 가능한 각 할당에 대해 존재하는 이웃의 가능한 할당 수를 계산 한 다음이 변수의 값을 정렬하는 것입니다 해당 값을 선택한 경우 사용 가능한 인접 할당 수를 기반으로합니다. 그러나 무작위 순서보다 개선 된 방법을 알지 못합니다. 여러 변수 조합을 테스트하고 계산 결과를 기반으로 정렬해야하기 때문입니다.

누구든지 최소 ​​제약 값에 대한 더 유용한 설명을 제공하고 해당 최소 제약 값 버전이 실제로 어떻게 개선되는지 설명 할 수 있습니까?


AI : AMA (pp. 228)는 Haralick and Elliot (1980)가 제안한 최소 구속 값 휴리스틱을 언급했습니다 . 이 논문 ( here )은 AI : AMA에서 사용되는 것과 다른 언어를 사용하며 LCV 휴리스틱을 참조하는 섹션을 결정하는 데 문제가 있습니다.
ryan

답변:


3

이 링크를 참조하십시오 :

https://people.cs.pitt.edu/~wiebe/courses/CS2710/lectures/constraintSat.example.txt

먼저 변수 "O"를 선택한 다음 모든 유효한 값 "i"로 "O"를 테스트하여 "O"의 이웃 "N"에 대한 감소 횟수를 확인합니다. 그것은 그들 모두를 추가합니다. 감소를 덜 일으키는 "i"를 선택합니다.

   sums = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0}
   For i from 0 to 9:  
     plug "o=i" into the constraint formulas
     For each neighbor "N" of "o" in the constraint graph:
       sums[i] += the number of values remaining for "N"

"i"를 선택하여 다음을 수행합니다.

sums[i] = MAX{sums[i] | for all "i" that is a member of "O",s valid values}

이것이 귀하의 답변을 찾는 데 도움이되기를 바랍니다.


1
답변이 없습니다explain how that version of least-constraining-value would actually yield an improvement?
skrtbhtngr

1

여기서 중요한 것은 솔버가 작성된 작업에 따라 이러한 휴리스틱이 적용된다는 것입니다. 그리고 변수의 선택된 값이 다른 변수의 도메인에 단일 값을 남기지 않을 가능성이있는 경우 (우리는 하나의 솔루션으로 크게 제약 된 문제가 있다고 가정 해 봅시다), 해결책은 중단됩니다 . 그리고 무작위 검색은 올바른 길을 따라 내려 가서 결정과 잘못된 결정으로 이어질 수 있습니다. 그리고 잘못되면 역 추적을해야하고 (충돌로 인한 역 점프 참조) 계산 시간이 걸립니다. 그러나 LCV 휴리스틱을 사용하는 알고리즘은 더 정확한 경로를 따라갈 가능성이 높으며 반환 할 필요가 없습니다. 그러나 제약이 부족한 문제가 있다면 무작위 검색과 매우 비슷하다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.