Введение

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

Определение

Алгоритмы обратного отслеживания работают, выбирая неназначенную переменную и рекурсивно решая задачи, полученные путем присвоения значения этой переменной. Каждый раз, когда текущее частичное решение оказывается несовместимым, алгоритм возвращается к ранее назначенной переменной, как и ожидается при рекурсии. Алгоритм обучения ограничениям отличается тем, что он пытается зафиксировать некоторую информацию в виде нового ограничения, прежде чем выполнять обратный откат. Это может сократить дальнейший поиск, поскольку последующий поиск может столкнуться с другим частичным решением, несовместимым с этим новым ограничением. Если алгоритм выучил новое ограничение, он откатится от этого решения, в то время как исходный алгоритм обратного отслеживания выполнил бы дальнейший поиск. Если частичное решение несовместимо, то экземпляр задачи подразумевает ограничение, утверждающее, что не может быть истинным для всех одновременно. Однако запись этого ограничения не будет полезна, поскольку это частичное решение не встретится снова из-за принципа работы обратного отслеживания. С другой стороны, если подмножество этой оценки несовместимо, соответствующее ограничение может оказаться полезным в последующем поиске, поскольку то же самое подмножество частичной оценки может возникнуть снова. Например, алгоритм может столкнуться с оценкой, расширяющей подмножество предыдущей частичной оценки. Если это подмножество несовместимо и алгоритм сохранил этот факт в форме ограничения, дальнейший поиск не требуется, чтобы заключить, что новую частичную оценку нельзя расширить до решения. Поиск достиг тупика. Несоответствие может быть вызвано только значениями и . Этот факт можно сохранить в новом ограничении. Если алгоритм снова достигнет тех же значений и , новое ограничение заблокирует поиск.

Эффективность обучения с использованием ограничений

Повышение эффективности обучения с ограничениями обусловлено балансом двух факторов. С одной стороны, чем чаще нарушается зафиксированное ограничение, тем чаще откаты позволяют избежать бесполезного поиска. Небольшие непоследовательные подмножества текущего частичного решения обычно предпочтительнее больших, поскольку они соответствуют ограничениям, которые легче нарушить. С другой стороны, поиск небольшого несовместимого подмножества текущей частичной оценки может занять время, и полученная выгода может не оправдать последующее сокращение времени поиска. Однако размер – не единственный параметр изученных ограничений, который следует учитывать. Действительно, небольшое ограничение может оказаться бесполезным в определенном состоянии пространства поиска, если значения, нарушающие его, больше не встретятся. В таких случаях предпочтительнее может быть более крупное ограничение, чьи нарушающие значения больше похожи на текущее частичное назначение. Существуют различные методы обучения ограничениям, различающиеся строгостью фиксируемых ограничений и затратами на их поиск.

Обучение на основе графиков

Если алгоритм доказывает, что все значения переменной несовместимы с , то эта оценка была непротиворечивой, поскольку в противном случае алгоритм не стал бы оценивать вообще; следовательно, ограничения, нарушенные значением переменной вместе с , содержат . Таким образом, непротиворечивая оценка – это ограничение оценки истинности переменной переменными, находящимися в ограничении с , при условии, что это ограничение не содержит ни одной неназначенной переменной. Обучение ограничениям, представляющим эти частичные оценки, называется обучением на основе графов. Оно использует ту же логику, что и возврат к предыдущему шагу на основе графов. Эти методы называются "основанными на графах", поскольку они основаны на парах переменных, входящих в одно и то же ограничение, которые можно найти в графе, связанном с задачей об удовлетворении ограничениям.

Обучение с помощью скачки назад

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

Соблюдение ограничений

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