Unificación vs solucionador SAT

10

Leí en Wikipedia que la unificación es un proceso para resolver el problema de la satisfacción.

Al mismo tiempo, sé que tales solucionadores se llaman "solucionadores SAT" o "solucionadores SMT". Entonces, ¿son nombres diferentes para la misma cosa?

Si dice que son diferentes, señale una falla en mi tratamiento.

Val
fuente
la informática a menudo se refiere al "problema de la satisfacción", pero ese es en realidad un caso especial del problema general [mencionado en el artículo de Wikipedia sobre la unificación] que puede tener cláusulas más complejas como "existe" y "para todos" que no sea meramente variables booleanas. en CS, la referencia al "problema de satisfacción" puede ser realmente una abreviatura para el problema de satisfacción proposicional o booleano , abreviado SAT. proceso de unificación en SAT se llama resolución
vzn

Respuestas:

12

Los solucionadores de SAT resuelven el problema de satisfacción booleana . Este es "el problema de determinar si las variables de una fórmula booleana dada pueden asignarse de tal manera que la fórmula se evalúe como VERDADERA".

Un ejemplo es encontrar una asignación de valores de verdad a las variables tal que es verdadero. Un solucionador SAT podría devolver una solución como , , .un,si,C(unsiC)(¬un¬siC)(un¬si¬C)(¬unsi¬C)un=trtumisi=trtumiC=trtumi

Los solucionadores de SMT resuelven un problema más general, a saber, las Teorías del módulo de satisfacción . Este es "un problema de decisión para fórmulas lógicas con respecto a combinaciones de teorías de fondo expresadas en lógica clásica de primer orden con igualdad". Estas teorías podrían incluir "la teoría de los números reales, la teoría de los enteros y las teorías de varias estructuras de datos como listas, matrices, vectores de bits, etc."

Un ejemplo, dadas las variables tipadas e y , pregunta si lo siguiente es satisfactorio . Un solucionador SMT respondería sí, con una solución de , , y .X:yonortety:yonortetF:yonortetyonortetF(X+2)F(y-1)X=(y-4 4)X=-2y=2F(0 0)=1F(1)=3

La unificación es una técnica específica que toma dos términos y encuentra una sustitución que haría que los términos fueran iguales. Por ejemplo, dados los términos y , la unificación produciría la sustitución . La unificación probablemente se usa dentro de los solucionadores SMT.b O O K ( D. ~ Smith , y , 2010 ) { x D. Smith , y "Pesca" }siook(X,"Pescar",2010)siook(D. ~ Smith,y,2010){XD. Smith,y"Pescar"}

Dave Clarke
fuente
Todas las palabras son familiares en la oración "La unificación probablemente se usa en algún lugar para resolver SMT (y tal vez en solucionadores SAT)" pero no lo entiendo. También encuentra tal definición de SMT que es difícil de entender si SAT es un caso especial de la misma.
Val
SAT trata con la lógica proposicional. La lógica de primer orden, en la que se basa SMT, es más general.
Dave Clarke