v matematická logika, důkaz komprese rozdělením je algoritmus který funguje jako postproces na rozlišení důkazy. Navrhl to Scott Cotton ve svém příspěvku „Dvě techniky pro minimalizaci rozlišení“.[1]
Algoritmus rozdělení je založen na následujícím pozorování:
Dostal důkaz o neuspokojivosti
a proměnná
, je snadné znovu uspořádat (rozdělit) důkaz v důkazu o
a doklad o
a rekombinace těchto dvou důkazů (o další krok řešení) může mít za následek menší důkaz než originál.
Všimněte si, že použití rozdělení v důkazu
pomocí proměnné
nezruší platnost druhé aplikace algoritmu pomocí proměnné differente
. Vlastně metoda navržená bavlnou[1] generuje posloupnost důkazů
, kde každý důkaz
je výsledkem použití rozdělení na
. Během konstrukce sekvence, pokud je důkaz
je příliš velký,
je nastaven jako nejmenší důkaz v
.
Pro dosažení lepšího poměru komprese a času je žádoucí heuristika pro výběr proměnné. Z tohoto důvodu, bavlna[1] definuje "aditivitu" kroku řešení (s předchůdci)
a
a resolvent
):

Potom pro každou proměnnou
se vypočítá skóre sečtením aditivity všech kroků rozlišení v
s otočným čepem
spolu s počtem těchto kroků řešení. Označme každé takto vypočítané skóre pomocí
, každá proměnná je vybrána s pravděpodobností úměrnou jejímu skóre:

Rozdělit důkaz o neuspokojivosti
v důkazu
z
a důkaz
z
, Bavlna [1] navrhuje následující:
Nechat
označuje doslovný a
označují řešení klauzulí
a
kde
a
. Poté definujte mapu
na uzlech v rozlišení
:

Také nechte
být prázdná klauzule v
. Pak,
a
jsou získány výpočtem
a
, resp.
Poznámky
- ^ A b C d Bavlna, Scott. "Dvě techniky pro minimalizaci důkazů o rozlišení". 13. mezinárodní konference o teorii a aplikacích testování uspokojivosti, 2010.