백마크
Backmarking제약 만족도에서 백마킹은 백트래킹알고리즘의 변형입니다.
백마킹은 x, 등) 등의 특정 순서로 변수를 반복적으로 평가하는 백트래킹과 같은 을 합니다. i})가 마지막으로 인스턴스화된 시간에 대한 정보를 유지함으로써 오버트래킹을 개선합니다.그때 이후로 바뀌었어요.특히:
- 각 변수 들어)나는}과 가치 나는}{\displaystyle x_{나는}{\displaystyle}, 알고리즘 마지막 시간에 대한 정보 가능한{\displaystyle}에. 특히, 최소한의 지수 j< 저장합니다를 설정해;나는{\displaystyle j<, 나는}{\displaystyle x_{나는}를 할당하기에 x. 1일 style 가 일치하지 않습니다
- 각 에 대해 알고리즘은 마지막으로 를 한 이후 변경된 변수에 대한 일부 정보를 저장합니다. 특히 그 이후 변경된 변수의 최소 k k를 저장합니다.
첫 번째 정보는 알고리즘이 })를 {\ a로 평가할 때마다 수집 및 저장됩니다. x1 x2,i의 현재 할당의 일관성을 확인하는 것만으로 이루어집니다. ,3}, ).
두 번째 정보는 다른 변수가 평가될 때마다 변경됩니다.특히 "의 평가 이후의 최대 변화 변수" 지수는 다른 의 값이 변경될 때마다 변경될 수 있습니다.임의의 j가 변경될 때마다 i>j { }의 모든 가 로됩니다.k k가 이전 관련 인덱스인 이 값은 n ( ,)(\min ( 로 됩니다.
이 방법으로 수집된 데이터는 일관성 검사를 피하기 위해 사용됩니다.특히 역추적으로 }=가 될 때마다 백마킹은 }}와 }=에 대한 두 인덱스를 비교합니다.두 가지 조건에 따라 제약 조건을 확인하지 않고 부분 일관성 또는 불일치를 결정할 수 있습니다.k k가 i})의 평가 이후 된 변수의 최소 이고 j j가 , 의 가 마지막으로 {i의 일치하도록 한 최소 인덱스인 .})가 {\ a로 평가되었습니다.
- < \ j < 1, j { \ \의 는 지금까지 변경된 변수가 없기 때문에 더 이상의 일관성 검사가 필요하지 않습니다.
- j j k의 1, i \ x {는 이전과 동일하게 유지됩니다.이것에 의해, 몇개의 일관성 체크를 생략할 수 있습니다만, x 1,…, , x{\ {는 아직 일치하지 않을 수 있습니다.
백트랙킹의 다른 변형과 달리, 백마킹은 검색 공간을 줄이지 않고 부분 솔루션에 의해 충족되는 제약 조건의 수만을 줄일 수 있습니다.
레퍼런스
- Dechter, Rina (2003). Constraint Processing. Morgan Kaufmann. ISBN 1-55860-890-7.
