Що таке найменш обмежуюча цінність?


11

У проблемах із задоволенням обмежень евристику можна використовувати для покращення продуктивності розв'язувача. Три простих евристики для простих зворотних рішень:

  • Мінімальні залишкові значення (скільки значень все ще дійсні для цієї змінної)
  • Ступінь евристики (на скільки інших змінних впливає ця змінна)
  • Найменше обмежувальне значення (яке значення залишить найбільше інших значень для інших змінних)

Перші два досить очевидні та прості у здійсненні. Спочатку виберіть змінну, яка має найменше значень у своїй області, а якщо є зв’язки, виберіть ту, яка впливає на більшість інших змінних. Таким чином, якщо батьківський крок у вирішувачі вибрав невдале завдання, ви, швидше за все, дізнаєтесь це швидше і тим самим заощадите час, якщо виберете змінну з найменшими значеннями, що залишилися, що впливає на більшість інших речей.

Вони прості, чітко визначені та легкі у виконанні.

Найменше обмежувальне значення чітко не визначене, де б я не дивився. Штучний інтелект: сучасний підхід (Russel & Norvig) просто говорить:

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

Пошук "найменш обмежувальних значень" виявив лише багато слайд-шоу університетів на основі цього підручника, без додаткової інформації про те, як це робити алгоритмічно.

Єдиний приклад для цього евристичного - це випадок, коли один вибір значення виключає всі варіанти сусідньої змінної, а інший - ні. Проблема цього прикладу полягає в тому, що це тривіальний випадок, який було б усунуто негайно, коли потенційне призначення перевіряється на відповідність обмеженням проблеми. Тож у всіх прикладах, які я міг знайти, евристика з найменшим обмеженням насправді ні в якому разі не принесла користі продуктивності, за винятком невеликого негативного ефекту від додавання зайвої перевірки.

Єдине інше, про що я можу придумати, - це перевірити можливі призначення сусідніх змінних для кожного призначення та підрахувати кількість можливих призначень сусідів, які існують для кожного можливого призначення цієї змінної, а потім упорядкувати значення для цієї змінної виходячи з кількості наявних сусідських призначень, якщо вибрано це значення. Однак я не бачу, як це могло б запропонувати поліпшення в порівнянні з випадковим порядком, оскільки це вимагає як тестування численних змінних комбінацій, так і сортування на основі результатів підрахунку.

Чи може хтось дати більш корисну характеристику найменш обмежувальної вартості та пояснити, як ця версія найменш обмежувального значення насправді призведе до покращення?


AI: AMA (с. 228) зазначає, що найменш евристичне значення було запропоновано Гараліком та Еліотом (1980). У роботі ( знайдено тут ) використовується набагато інша мова, ніж вона використовується в AI: AMA, і у мене виникають проблеми з визначенням того, який розділ відноситься до евристичного LCV.
Райан

Відповіді:


3

дивіться це посилання:

https://people.cs.pitt.edu/~wiebe/courses/CS2710/lectures/constraintSat.example.txt

Спочатку вибирає змінну "O", а потім тестує "O" з усіма її юридичними значеннями "i", щоб побачити кількість скорочень на "N" сусідів "O". Це додає їх усіх. і вибирає "i", що призводить до менших скорочень:

   sums = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0}
   For i from 0 to 9:  
     plug "o=i" into the constraint formulas
     For each neighbor "N" of "o" in the constraint graph:
       sums[i] += the number of values remaining for "N"

Він підбирає "i", щоб:

sums[i] = MAX{sums[i] | for all "i" that is a member of "O",s valid values}

Я сподіваюся, що це допоможе вам знайти свою відповідь!


1
Це не відповідаєexplain how that version of least-constraining-value would actually yield an improvement?
skrtbhtngr

1

Я думаю, що тут головне, щоб ці евристики застосовувались залежно від завдання, для якого написано розв’язувач. І якщо є можливість, що якщо вибране значення змінної не залишить жодного значення в області іншої змінної (скажімо, у нас сильно обмежена проблема лише з одним рішенням), тоді рішення прийде в зупинку . І випадковий пошук може йти правильним шляхом, що веде до прийняття рішення та неправильного. І якщо це піде не так, вам доведеться зробити зворотний трекінг (див. Конфліктне спрямування резервного копіювання), і це потребує обчислювального часу. Але алгоритм, що використовує евристику LCV, швидше йде по більш правильному шляху, і повернення не потрібно. Але якщо є непомітна проблема, я думаю, це буде дуже схоже на випадковий пошук.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.