Backmarking - Backmarking - Wikipedia
В удовлетворение ограничений, обратная маркировка это вариант возврат алгоритм.
Backmarking работает как обратное отслеживание, итеративно оценивая переменные в заданном порядке, например, . Это улучшает обратное отслеживание, сохраняя информацию о том, когда в последний раз переменная был создан для значения и информации о том, что изменилось с тех пор. Особенно:
- для каждой переменной и ценность , алгоритм записывает информацию о последнем разе был установлен на ; в частности, он хранит минимальный индекс так что назначение на было тогда непоследовательный;
- для каждой переменной , алгоритм сохраняет некоторую информацию относительно того, что изменилось с момента последней оценки. ; в частности, он хранит минимальный индекс переменной, которая была изменена с тех пор.
Первая информация собирается и сохраняется каждый раз, когда алгоритм оценивает переменную. к , и выполняется простой проверкой согласованности текущих назначений для , за , за , так далее.
Вторая информация меняется каждый раз еще один переменная оценивается. В частности, индекс «максимальной неизменной переменной с момента последней оценки "возможно изменяется каждый раз, когда другая переменная меняет значение. Каждый раз произвольная переменная изменения, все переменные с рассматриваются по очереди. Если был их предыдущий связанный индекс, это значение изменяется на .
Данные, собранные таким образом, используются, чтобы избежать некоторых проверок согласованности. В частности, всякий раз, когда при возврате будет установлено , обратная маркировка сравнивает два индекса относительно и пара . Два условия позволяют определить частичную непротиворечивость или несогласованность без проверки ограничений. Если это минимальный индекс переменной, которая изменилась с момента последнего был оценен и - минимальный индекс такой, что оценка был последовательным в последний раз был оценен как , тогда:
- если , оценка по-прежнему непоследовательна, так как ни одна из этих переменных пока не изменилась; в результате больше не требуется проверка согласованности;
- если , оценка остается неизменным, как и раньше; это позволяет пропустить некоторые проверки согласованности, но назначение все еще может быть непоследовательным.
В отличие от других вариантов отслеживания с возвратом, обратная маркировка не уменьшает пространство поиска, а только, возможно, уменьшает количество ограничений, которым удовлетворяет частичное решение.
Рекомендации
- Дехтер, Рина (2003). Обработка ограничений. Морган Кауфманн. ISBN 1-55860-890-7.