Задача виконання обмежень

Матеріал з testwiki
Версія від 10:23, 26 грудня 2024, створена imported>Olexa Riznyk (додано Категорія:Програмування в обмеженнях за допомогою HotCat)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Зада́ча викона́ння обме́жень (Constraint satisfaction problem) (ЗВО) — це математичні проблеми, визначені як сукупність об'єктів, стан яких має задовільняти ряду обмежень. ЗВО представляє сутності проблеми як однорідний набір обмежень, що накладаються на змінні, які розв'язуються методами виконання обмежень. ЗВО є предметом інтенсивних досліджень і в галузі штучного інтелекту, і дослідженні операцій, оскільки закономірності у формулюванні цих задач складають загальну основу для аналізу та вирішення проблем в багатьох неспоріднених областях. ЗВО часто мають високу складність, що вимагає поєднання евристичних та комбінаторних методів пошуку для швидкого вирішення.
Приклади простих задач, які можуть розглядатись як задачі виконання обмежень: Задача про вісім ферзів, Проблема чотирьох фарб, Судоку.

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

Формальне визначення

Формально задача виконання обмежень визначається трійкою X,D,C, де X — множина змінних, D — область значень і C — множина обмежень. Кожне обмеження, своєю чергою, є парою t,R (зазвичай представляються матрицею), де t — кортеж з n змінних та R — n-місне відношення D. Оцінка змінної — це функція, що відображає множину змінних на область значень, v:XD. Оцінка v задовільняє обмеження (x1,,xn),R якщо (v(x1),,v(xn))R. Розв'язок — це оцінка, що задовільняє всім обмеженням.

Розв'язання

Задача виконання обмежень на скінченних областях зазвичай вирішується за допомогою алгоритмів пошуку. Найчастіше використовуються пошук з поверненнями, з обмеженням глибини та локальний пошук.

Пошук з вертанням — це рекурсивний алгоритм. Він підтримує часткове означення змінних. Спочатку всі змінні невизначені. На кожному кроці обираємо змінну та по черзі перебираємо всі можливі її значення. Кожне значення з послідовності зіставляється з обмеженнями; при невідповідності значення обмеженням рекурсивний виклик не виконується. Коли всі значення було переглянуто, алгоритм повертається. В цьому простому алгоритмі з поверненнями під відповідністю розуміємо задоволення всіх обмежень, всі змінні яких були визначені. Існує кілька варіантів повернення. Пошук з вертанням підвищує ефективність перевірки відповідності. Пошук з вертанням дозволяє в деяких випадках пришвидшити пошук за рахунок виключення «більше ніж однієї змінної».

Теоретичні аспекти задачі виконання обмежень

Проблеми розв'язання

Задачі виконання обмежень також вивчаються в теорії складності обчислень та теорії кінцевої моделі. Важливе питання полягає в тому, що для кожного набору відношень, множина всіх задач виконання обмежень, що може бути представлена лише за допомогою відношень з цієї множини, є P- або NP-повною задачею. Якщо така дихотомічна теорема справедлива, то задачі виконання обмежень забезпечують одну з найбільших відомих підмножин складності NP, що дозволяє уникнути проміжних задач NP-складності, існування якої було продемонстровано в теоремі ладнері в припущенні, що P ≠ NP. Дихотомічна теорема Шафера оброблює той випадок, коли всі наявні відношення є логічними операторами, тобто множина значень має розмір 2. Дихотомічна теорема Шафера була узагальнена до ширшого класу відношень.[1]

Див. також

Примітки

Шаблон:Примітки

Використані посилання

Шаблон:Math-stub