WikiDer > Распространение единицы

Unit propagation

Распространение единицы (ВВЕРХ) или Распространение логических ограничений (BCP) или однобуквенное правило (OLR) это процедура из автоматическое доказательство теорем что может упростить набор (обычно пропозициональный) статьи.

Определение

Процедура основана на единичные статьи, т.е. предложения, состоящие из одного буквальный. Поскольку каждое предложение должно быть выполнено, мы знаем, что этот литерал должен быть истинным. Если набор предложений содержит предложение unit , остальные пункты упрощаются применением двух следующих правил:

  1. каждое предложение (кроме самого предложения модуля), содержащее удаляется (условие выполняется, если является);
  2. в каждом пункте, содержащем этот литерал удален ( не может способствовать удовлетворению).

Применение этих двух правил приводит к новому набору пунктов, эквивалентному старому.

Например, следующий набор предложений может быть упрощен путем распространения единицы, поскольку он содержит предложение единицы .

поскольку содержит буквальный , этот пункт можно полностью удалить. поскольку содержит отрицание литерала в предложении единицы, этот литерал может быть удален из предложения. Пункт о единицах не снимается; это сделает результирующий набор не эквивалентным исходному; это предложение может быть удалено, если оно уже сохранено в какой-либо другой форме (см. раздел «Использование частичной модели»). Эффект распространения единиц можно резюмировать следующим образом.

(удалено)( удалено)(без изменений)(без изменений)
 

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

Распространение и разрешение единицы

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

  1. разрешение - это процедура полного опровержения, а распространение единиц - нет; другими словами, даже если набор предложений противоречив, распространение единиц не может вызвать несогласованность;
  2. два разрешенных предложения, как правило, не могут быть удалены после добавления сгенерированного предложения в набор; напротив, предложение non-unit, участвующее в распространении единицы, может быть удалено, когда его упрощение добавлено к набору;
  3. разрешение обычно не включает первое правило, используемое при размножении единиц.

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

Распространение единиц, многократно применяемое по мере создания новых предложений единиц, представляет собой алгоритм полной выполнимости для наборов пропозициональных предложений. Роговые оговорки; он также генерирует минимальную модель для множества, если выполнимо: см. Роговая выполнимость.

Использование частичной модели

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

Сложность

Прямая реализация распространения единиц требует времени квадратичный в общем размере проверяемого набора, который определяется как сумма размеров всех предложений, где размер каждого предложения - это количество содержащихся в нем литералов.

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

а затем сохраняя для каждой переменной список предложений, содержащих переменную или ее отрицание:

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

Смотрите также

использованная литература

  • Доулинг, Уильям Ф .; Галье, Жан Х. (1984), «Линейные алгоритмы для проверки выполнимости пропозициональных формул Хорна», Журнал логического программирования, 1 (3): 267–284, Дои:10.1016/0743-1066(84)90014-1, Г-Н 0770156.
  • Х. Чжан и М. Стикель (1996). Эффективный алгоритм для распространения единиц. В Материалы Четвертого Международного симпозиума по искусственному интеллекту и математике.