Проблема удовлетворения ограничений

редактировать

Проблемы удовлетворения ограничений (CSP ) - это математические вопросы, определяемые как набор объектов, состояние должно удовлетворять ряду ограничений или ограничений. CSP представляют сущности в проблеме как однородный набор конечных ограничений по переменным, который решается с помощью методов удовлетворения ограничений. CSP являются предметом интенсивных исследований как в искусственном интеллекте, так и в исследовании операций, поскольку регулярность их формулировок обеспечивает общую основу для анализа и решения проблем многих, казалось бы, не связанных между собой семей. CSP часто проявляют высокую сложность, требующую сочетания методов эвристики и комбинаторного поиска для решения в разумные сроки. Программирование с ограничениями (CP) - это область исследований, в которой особое внимание уделяется решению таких проблем. Кроме того, задача логической выполнимости (SAT), теории выполнимости по модулю (SMT), смешанное целочисленное программирование (MIP) и программирование набора ответов (ASP) - это все области исследований, сосредоточенные на решении конкретных форм проблемы удовлетворения ограничений.

Примеры проблем, которые можно смоделировать как проблему удовлетворения ограничений, включают:

Эти часто снабжены учебными пособиями по решателям CP, ASP, Boolean SAT и SMT. В общем случае проблемы с ограничениями могут быть намного сложнее и не могут быть выражены в некоторых из этих более простых систем. Примеры "реальной жизни" включают автоматическое планирование, устранение лексической неоднозначности, музыковедение и распределение ресурсов.

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

Содержание
  • 1 Формальное определение
  • 2 Разрешение
  • 3 Теоретические аспекты
    • 3.1 Проблемы принятия решений
    • 3.2 Функциональные проблемы
  • 4 Варианты
    • 4.1 Динамические CSP
    • 4.2 Гибкие CSP
    • 4.3 Децентрализованные CSP
  • 5 См. Также
  • 6 Ссылки
  • 7 Дополнительная литература
Формальное определение

Формально проблема удовлетворения ограничений определяется как тройная ⟨X, D, С⟩ {\ displaystyle \ langle X, D, C \ rangle}\ langle X, D, C \ rangle , где

X = {X 1,…, X n} {\ displaystyle X = \ {X_ {1 }, \ ldots, X_ {n} \}}X = \ {X_ {1}, \ ldots, X_ {n} \} - это набор переменных,
D = {D 1,…, D n} {\ displaystyle D = \ {D_ {1}, \ ldots, D_ {n} \}}D = \ {D_ {1}, \ ldots, D_ {n} \} - это набор их соответствующих доменов значений, а
C = {C 1,…, C m} {\ displaystyle C = \ {C_ { 1}, \ ldots, C_ {m} \}}C = \ {C_ {1}, \ ldots, C_ {m} \} - это набор ограничений.

Каждая переменная X i {\ displaystyle X_ {i}}X_ {i} может принимают значения в непустом домене D i {\ displaystyle D_ {i}}D_ {i } . Каждое ограничение C j ∈ C {\ displaystyle C_ {j} \ in C}C_ {j} \ in C , в свою очередь, представляет собой пару ⟨tj, R j⟩ {\ displaystyle \ langle t_ {j}, R_ {j} \ rangle}\ langle t_ {j}, R_ {j} \ rangle , где tj ⊂ X {\ displaystyle t_ {j} \ subset X}t_ {j} \ subset X - подмножество k {\ displaystyle k }k переменные и R j {\ displaystyle R_ {j}}R_ {j} - это k {\ displaystyle k}k -ary отношение на соответствующем подмножестве доменов D j {\ displaystyle D_ {j}}D_{j}. Оценка переменных - это функция от подмножества переменных до определенного набора значений в соответствующем подмножестве доменов. Оценка v {\ displaystyle v}v удовлетворяет ограничению ⟨tj, R j⟩ {\ displaystyle \ langle t_ {j}, R_ {j} \ rangle}\ langle t_ {j}, R_ {j} \ rangle , если значения, присвоенные переменным tj {\ displaystyle t_ {j}}t_ {j} , удовлетворяют соотношению R j {\ displaystyle R_ {j}}R_ {j} .

Оценка согласована если это не нарушает никаких ограничений. Оценка считается полной, если она включает все переменные. Оценка - это решение, если она последовательна и полна; такая оценка, как говорят, решает проблему удовлетворения ограничений.

Решение

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

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

Методы распространения ограничений - это методы, используемые для изменения проблемы удовлетворения ограничений. Точнее, это методы, которые обеспечивают соблюдение формы локальной согласованности, которая представляет собой условия, связанные с согласованностью группы переменных и / или ограничений. Распространение ограничений может использоваться по-разному. Во-первых, он превращает проблему в эквивалентную, но обычно более простую для решения. Во-вторых, это может свидетельствовать об удовлетворительности или неудовлетворенности проблем. Обычно это не гарантируется; однако это всегда происходит с некоторыми формами распространения ограничений и / или с определенными типами проблем. Наиболее известными и используемыми формами локальной согласованности являются согласованность дуги, согласованность гипер-дуги и согласованность пути. Самый популярный метод распространения ограничений - это алгоритм AC-3, который обеспечивает согласованность дуги.

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

Теоретические аспекты

Проблемы принятия решений

CSP также изучаются в теории сложности вычислений и теория конечных моделей. Важный вопрос заключается в том, находится ли для каждого набора отношений набор всех CSP, которые могут быть представлены с использованием только отношений, выбранных из этого набора, либо в P, либо в NP-complete. Если такая теорема о дихотомии верна, то CSP обеспечивают одно из самых больших известных подмножеств NP, которое позволяет избежать проблем NP-intermediate, существование которых было продемонстрировано Теорема Ладнера в предположении, что P ≠ NP. Теорема Шефера о дихотомии обрабатывает случай, когда все доступные отношения являются булевыми операторами, то есть для размера области 2. Теорема Шефера о дихотомии недавно была обобщена на более широкий класс отношений.

Большинство классов CSP, которые известны как обрабатываемые, - это те, у которых гиперграф ограничений имеет ограниченную ширину дерева (и нет никаких ограничений на набор отношений ограничений), или где ограничения имеют произвольную форму, но существуют существенно не унарные полиморфизмы набора отношений ограничений.

Каждый CSP также может рассматриваться как проблема конъюнктивного запроса.

Функциональные проблемы

Аналогичная ситуация существует между функциональными классами FP и #P. Обобщая теорему Ладнера, также нет проблем ни в FP, ни в # P-complete, пока FP ≠ #P. Как и в случае принятия решения, проблема в #CSP определяется набором отношений. Каждая задача принимает в качестве входных данных логическую формулу , и задача состоит в том, чтобы вычислить количество удовлетворяющих назначений. Это может быть дополнительно обобщено, используя больший размер домена и добавляя вес к каждому удовлетворяющему назначению и вычисляя сумму этих весов. Известно, что любая сложная взвешенная проблема #CSP находится либо в FP, либо в # P-hard.

Варианты

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

Динамические CSP

Динамические CSP (DCSP) полезны, когда исходная формулировка проблемы каким-либо образом изменяется, обычно из-за того, что набор ограничений, которые необходимо учитывать, развивается из-за среды. DCSP рассматриваются как последовательность статических CSP, каждый из которых является преобразованием предыдущего, в котором переменные и ограничения могут быть добавлены (ограничение) или удалены (ослабление). Информация, содержащаяся в первоначальных формулировках задачи, может быть использована для уточнения следующих. Метод решения можно классифицировать в соответствии со способом передачи информации:

  • Оракулы: решение, найденное для предыдущих CSP в последовательности, используется в качестве эвристики для определения разрешения текущего CSP с нуля.
  • Локальное исправление: каждый CSP рассчитывается, начиная с частичного решения предыдущего и исправляя противоречивые ограничения с помощью локального поиска.
  • Запись ограничений: новые ограничения определяются на каждом этапе поиска, чтобы представить изучение противоречивых группа решений. Эти ограничения переносятся на новые проблемы CSP.

Гибкие CSP

Классические CSP рассматривают ограничения как жесткие, что означает, что они являются императивными (каждое решение должно удовлетворять всем из них) и негибкими (в том смысле, что они должны быть полностью удовлетворены, иначе они полностью нарушаются). Гибкие CSP ослабляют эти предположения, частично ослабляя ограничения и позволяя решению не соответствовать всем из них. Это похоже на предпочтения в планировании на основе предпочтений. Некоторые типы гибких CSP включают:

  • MAX-CSP, где разрешено нарушать ряд ограничений, а качество решения измеряется количеством выполненных ограничений.
  • Взвешенный CSP, a MAX-CSP, в котором каждое нарушение ограничения оценивается в соответствии с предопределенным предпочтением. Таким образом, предпочтение отдается ограничению с большим весом.
  • Нечеткие ограничения модели CSP как нечеткие отношения, в которых удовлетворение ограничения является непрерывной функцией значений его переменных, переходя от полностью удовлетворенных к полностью нарушены.

Децентрализованные CSP

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

См. Также
Ссылки
Дополнительная литература
Последняя правка сделана 2021-05-15 10:38:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте