백마크

Backmarking

제약 만족도에서 백마킹백트래킹알고리즘의 변형입니다.

백마킹은 x, 등) 등의 특정 순서로 변수를 반복적으로 평가하는 백트래킹과 같은 을 합니다. i})가 마지막으로 인스턴스화된 시간에 대한 정보를 유지함으로써 오버트래킹을 개선합니다.그때 이후로 바뀌었어요.특히:

예를 들어, 검색이 처음 xi=d에 도달한 경우입니다.
  1. 각 변수 들어)나는}과 가치 나는}{\displaystyle x_{나는}{\displaystyle}, 알고리즘 마지막 시간에 대한 정보 가능한{\displaystyle}에. 특히, 최소한의 지수 j< 저장합니다를 설정해;나는{\displaystyle j<, 나는}{\displaystyle x_{나는}를 할당하기에 x. 1일 style 일치하지 않습니다
  2. 에 대해 알고리즘은 마지막으로 한 이후 변경된 변수에 대한 일부 정보를 저장합니다. 특히 그 이후 변경된 변수의 최소 k k 저장합니다.

첫 번째 정보는 알고리즘이 })를 {\ a로 평가할 때마다 수집 및 저장됩니다. x1 x2,i의 현재 할당의 일관성을 확인하는 것만으로 이루어집니다. ,3}, ).

두 번째로 xi=d에 도달하면 경로의 일부가 첫 번째와 동일합니다.

두 번째 정보는 다른 변수가 평가될 마다 변경됩니다.특히 " 평가 이후의 최대 변화 변수" 지수는 다른 값이 변경될 때마다 변경될 수 있습니다.임의의 j 변경될 때마다 i>j { }의 모든 됩니다.k k 이전 관련 인덱스인 이 값은 n ( ,)(\min ( 됩니다.

이 방법으로 수집된 데이터는 일관성 검사를 피하기 위해 사용됩니다.특히 역추적으로 }=될 때마다 백마킹은 }}와 }=에 대한 두 인덱스를 비교합니다.두 가지 조건에 따라 제약 조건을 확인하지 않고 부분 일관성 또는 불일치를 결정할 수 있습니다.k k i})의 평가 이후 된 변수의 최소 이고 j j , 가 마지막으로 {i의 일치하도록 한 최소 인덱스인 .})가 {\ a로 평가되었습니다.

  1. < \ j < 1, j { \ \ 는 지금까지 변경된 변수가 없기 때문에 더 이상의 일관성 검사가 필요하지 않습니다.
  2. j j k 1, i \ x {는 이전과 동일하게 유지됩니다.이것에 의해, 몇개의 일관성 체크를 생략할 수 있습니다만, x 1,…, , x{\ { 아직 일치하지 않을 수 있습니다.

백트랙킹의 다른 변형과 달리, 백마킹은 검색 공간을 줄이지 않고 부분 솔루션에 의해 충족되는 제약 조건의 수만을 줄일 수 있습니다.

레퍼런스

  • Dechter, Rina (2003). Constraint Processing. Morgan Kaufmann. ISBN 1-55860-890-7.