У проблемах із задоволенням обмежень евристику можна використовувати для покращення продуктивності розв'язувача. Три простих евристики для простих зворотних рішень:
- Мінімальні залишкові значення (скільки значень все ще дійсні для цієї змінної)
- Ступінь евристики (на скільки інших змінних впливає ця змінна)
- Найменше обмежувальне значення (яке значення залишить найбільше інших значень для інших змінних)
Перші два досить очевидні та прості у здійсненні. Спочатку виберіть змінну, яка має найменше значень у своїй області, а якщо є зв’язки, виберіть ту, яка впливає на більшість інших змінних. Таким чином, якщо батьківський крок у вирішувачі вибрав невдале завдання, ви, швидше за все, дізнаєтесь це швидше і тим самим заощадите час, якщо виберете змінну з найменшими значеннями, що залишилися, що впливає на більшість інших речей.
Вони прості, чітко визначені та легкі у виконанні.
Найменше обмежувальне значення чітко не визначене, де б я не дивився. Штучний інтелект: сучасний підхід (Russel & Norvig) просто говорить:
Він віддає перевагу значенню, яке виключає найменший вибір сусідніх змінних у графіку обмеження.
Пошук "найменш обмежувальних значень" виявив лише багато слайд-шоу університетів на основі цього підручника, без додаткової інформації про те, як це робити алгоритмічно.
Єдиний приклад для цього евристичного - це випадок, коли один вибір значення виключає всі варіанти сусідньої змінної, а інший - ні. Проблема цього прикладу полягає в тому, що це тривіальний випадок, який було б усунуто негайно, коли потенційне призначення перевіряється на відповідність обмеженням проблеми. Тож у всіх прикладах, які я міг знайти, евристика з найменшим обмеженням насправді ні в якому разі не принесла користі продуктивності, за винятком невеликого негативного ефекту від додавання зайвої перевірки.
Єдине інше, про що я можу придумати, - це перевірити можливі призначення сусідніх змінних для кожного призначення та підрахувати кількість можливих призначень сусідів, які існують для кожного можливого призначення цієї змінної, а потім упорядкувати значення для цієї змінної виходячи з кількості наявних сусідських призначень, якщо вибрано це значення. Однак я не бачу, як це могло б запропонувати поліпшення в порівнянні з випадковим порядком, оскільки це вимагає як тестування численних змінних комбінацій, так і сортування на основі результатів підрахунку.
Чи може хтось дати більш корисну характеристику найменш обмежувальної вартості та пояснити, як ця версія найменш обмежувального значення насправді призведе до покращення?