Backmarking - Википедия - Backmarking

В удовлетворение ограничений, обратная маркировка это вариант возврат алгоритм.

Backmarking работает как обратное отслеживание, итеративно оценивая переменные в заданном порядке, например, . Это улучшает обратное отслеживание, сохраняя информацию о том, когда в последний раз переменная был создан для значения и информации о том, что изменилось с тех пор. Особенно:

Пример, в котором поиск достиг xi = d в первый раз.
  1. для каждой переменной и ценность , алгоритм записывает информацию о последнем разе был установлен на ; в частности, он хранит минимальный индекс так что назначение на было тогда непоследовательный;
  2. для каждой переменной , алгоритм сохраняет некоторую информацию относительно того, что изменилось с момента последней оценки. ; в частности, он хранит минимальный индекс переменной, которая была изменена с тех пор.

Первая информация собирается и сохраняется каждый раз, когда алгоритм оценивает переменную. к , и выполняется простой проверкой согласованности текущих назначений для , за , за , так далее.

Когда поиск достигает xi = d во второй раз, часть пути такая же, как и в первый раз.

Вторая информация меняется каждый раз еще один переменная оценивается. В частности, индекс «максимальной неизменной переменной с момента последней оценки "возможно изменяется каждый раз, когда другая переменная меняет значение. Каждый раз произвольная переменная изменения, все переменные с рассматриваются по очереди. Если был их предыдущий связанный индекс, это значение изменяется на .

Данные, собранные таким образом, используются, чтобы избежать некоторых проверок согласованности. В частности, всякий раз, когда при возврате будет установлено , обратная маркировка сравнивает два индекса относительно и пара . Два условия позволяют определить частичную непротиворечивость или несогласованность без проверки ограничений. Если это минимальный индекс переменной, которая изменилась с момента последнего был оценен и - минимальный индекс такой, что оценка был последовательным в последний раз был оценен как , тогда:

  1. если , оценка по-прежнему непоследовательна, так как ни одна из этих переменных пока не изменилась; в результате больше не требуется проверка согласованности;
  2. если , оценка остается неизменным, как и раньше; это позволяет пропустить некоторые проверки согласованности, но назначение все еще может быть непоследовательным.

В отличие от других вариантов отслеживания с возвратом, обратная маркировка не уменьшает пространство поиска, а только, возможно, уменьшает количество ограничений, которым удовлетворяет частичное решение.

Рекомендации

  • Дехтер, Рина (2003). Обработка ограничений. Морган Кауфманн. ISBN  1-55860-890-7.