НижниеЕдиницы

В сжатии доказательств LowerUnits ( LU ) — это алгоритм, используемый для сжатия доказательств пропозициональной логики . Основная идея LowerUnits заключается в использовании следующего факта: [1]

Теорема: Пусть будет потенциально избыточным доказательством , а будет избыточным доказательством | избыточным узлом. Если предложение является единичным предложением ,    φ   {\displaystyle \varphi}     η   {\displaystyle \эта}     η   {\displaystyle \эта} тогда это излишне.    φ   {\displaystyle \varphi} 

Алгоритм нацелен именно на класс глобальной избыточности, вытекающей из множественных разрешений с единичными предложениями. Алгоритм берет свое название от того факта, что когда эта переписывание выполняется и полученное доказательство отображается как DAG ( направленный ациклический граф ), единичный узел оказывается ниже (т. е. ближе к корню), чем он был в исходном доказательстве. η {\displaystyle \эта}

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

Необходимо соблюдать осторожность в случаях, когда единичный узел встречается выше в поддоказательстве, которое выводит другой единичный узел . В таких случаях зависит от . Пусть будет единственным литералом единичного предложения . Тогда любое вхождение в поддоказательстве выше не будет отменено выводами разрешения с больше. Следовательно, будет распространено вниз, когда доказательство будет исправлено, и появится в предложении . Трудностей с такими зависимостями можно легко избежать, если мы повторно вставим верхний единичный узел после повторной вставки единичного узла (т. е. после повторной вставки должен появиться ниже , чтобы отменить дополнительный литерал из предложения ). Это можно обеспечить, собрав единичные узлы в очередь во время восходящего обхода доказательства и повторно вставив их в том порядке, в котором они были поставлены в очередь. η {\displaystyle \eta ^{\prime }} η {\displaystyle \эта} η {\displaystyle \эта} η {\displaystyle \eta ^{\prime }} {\displaystyle \ell } η {\displaystyle \eta ^{\prime }} ¯ {\displaystyle {\overline {\ell }}} η {\displaystyle \эта} η {\displaystyle \eta ^{\prime }} ¯ {\displaystyle {\overline {\ell }}} η {\displaystyle \эта} η {\displaystyle \eta ^{\prime }} η {\displaystyle \эта} η {\displaystyle \eta ^{\prime }} η {\displaystyle \эта} ¯ {\displaystyle {\overline {\ell }}} η {\displaystyle \эта}

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

Когда единичные узлы собираются и удаляются из доказательства предложения , и доказательство фиксируется, предложение в корневом узле нового доказательства больше не равно , но содержит (некоторые из) двойственных литералов единичных предложений, которые были удалены из доказательства. Повторная вставка единичных узлов в нижней части доказательства разрешается с предложениями (некоторых из) собранных единичных узлов, чтобы снова получить доказательство. к {\displaystyle \каппа} к {\displaystyle \ каппа ^ {\ prime }} к {\displaystyle \каппа} к {\displaystyle \ каппа ^ {\ prime }} к {\displaystyle \каппа}

Алгоритм

Общая структура алгоритма

Алгоритм Нижние Единицы Вход: доказательство Выход: доказательство без глобальной избыточности с единичным избыточным узлом    ψ   {\displaystyle \пси}      ψ       {\displaystyle \psi ^{\prime }} 
 (unitsQueue, ) ← collectUnits( ); ← исправить( );     ψ  б     {\displaystyle \psi _{b}}     ψ   {\displaystyle \пси}      ψ  ф     {\displaystyle \psi _{f}}      ψ  б     {\displaystyle \psi _{b}}  fixedUnitsQueue ← исправить(unitsQueue);      ψ       {\displaystyle \psi ^{\prime }} ← reinsertUnits( , fixedUnitsQueue); возврат ;     ψ  ф     {\displaystyle \psi _{f}}       ψ       {\displaystyle \psi ^{\prime }} 
  • "←" обозначает назначение . Например, " largestitem " означает, что значение largest изменяется на значение item .
  • « return » завершает алгоритм и выводит следующее значение.

Мы собираем положения об единице следующим образом:

Алгоритм CollectUnits Вход: доказательство. Выход: пара, содержащая очередь всех узлов-единиц (unitsQueue), которые используются более одного раза , и неработающее доказательство.    ψ   {\displaystyle \пси}     ψ   {\displaystyle \пси}      ψ  б     {\displaystyle \psi _{b}} 
     ψ  б     {\displaystyle \psi _{b}} ← ;    ψ   {\displaystyle \пси} проход снизу вверх и foreach узел в do если это unit и имеет более одного дочернего элемента , то добавить в unitsQueue;     ψ  б     {\displaystyle \psi _{b}}     η   {\displaystyle \эта}      ψ  б     {\displaystyle \psi _{b}}        η   {\displaystyle \эта}     η   {\displaystyle \эта}     η   {\displaystyle \эта}  удалить из ; конец конец возврат (unitsQueue, );     η   {\displaystyle \эта}      ψ  б     {\displaystyle \psi _{b}}      ψ  б     {\displaystyle \psi _{b}} 
  • "←" обозначает назначение . Например, " largestitem " означает, что значение largest изменяется на значение item .
  • « return » завершает алгоритм и выводит следующее значение.

Затем мы снова вставляем блоки.

Алгоритм ReinsertUnits Вход: Доказательство (с одним корнем) и очередь корневых узлов.     ψ  ф     {\displaystyle \psi _{f}}     д   {\displaystyle д}  Вывод: Доказательство     ψ       {\displaystyle \psi ^{\prime }} 
     ψ       {\displaystyle \psi ^{\prime }} ← ; while do ← первый элемент ; ← хвост ; если разрешим с корнем then ← резольвента с корнем ; конец конец return ;     ψ  ф     {\displaystyle \psi _{f}}      д     {\displaystyle q\neq \emptyset }       η   {\displaystyle \эта}     д   {\displaystyle д}     д   {\displaystyle д}     д   {\displaystyle д}      η   {\displaystyle \эта}      ψ       {\displaystyle \psi ^{\prime }}        ψ       {\displaystyle \psi ^{\prime }}     η   {\displaystyle \эта}      ψ       {\displaystyle \psi ^{\prime }}        ψ       {\displaystyle \psi ^{\prime }} 
  • "←" обозначает назначение . Например, " largestitem " означает, что значение largest изменяется на значение item .
  • « return » завершает алгоритм и выводит следующее значение.

Примечания

  1. ^ Фонтейн, Паскаль; Мерц, Стефан; Вольценлогель Палео, Бруно. Сжатие доказательств пропозициональных резолюций с помощью частичной регуляризации . 23-я Международная конференция по автоматизированной дедукции, 2011.
Взято с "https://en.wikipedia.org/w/index.php?title=LowerUnits&oldid=984658968"