fbpx
Wikipedia

Algoritmo DPLL

El algoritmo DPLL/Davis-Putnam-Logemann-Loveland es un algoritmo completo basado en la vuelta atrás que sirve para decidir la satisfactibilidad de las fórmulas de lógica proposicional en una forma normal conjuntiva, es decir, para resolver el problema CNF-SAT.

Fue presentado en 1962 por Martin Davis, Hilary Putnam, George Logemann y Donald W. Loveland y es una refinación del previo algoritmo de Davis-Putnam, el cual es un procedimiento de resolución desarrollado por Davis y Putnam en 1960. El algoritmo Davis-Putnam-Logemann-Loveland es nombrado a menudo como el "método Davis-Putnam" o el "algoritmo DP", especialmente en publicaciones antiguas. Otros nombres comunes que mantienen la distinción son DLL y DPLL.

El DPLL es un procedimiento muy eficiente y tras más de 40 años aún conforma la base de los solucionadores más eficaces de SAT, así como de muchos demostradores de teoremas para fragmentos de lógica de primer orden.

Algoritmo

El algoritmo de vuelta atrás (backtracking) se ejecuta eligiendo un literal, asignándole un valor de verdad a este, simplificando la fórmula y a continuación, en forma recursiva comprobando si la fórmula simplificada es satisfacible; si este es el caso la fórmula original es satisfacible; de lo contrario, la misma verificación recursiva termina asumiendo el valor de verdad contrario. Esto se conoce como regla de división, ya que divide el problema en dos subproblemas más simples. El paso de simplificación esencialmente elimina todas las cláusulas que se convierten en verdaderas en función de la fórmula, y todos los literales de las cláusulas restantes se convierten en falsas.

El algoritmo DPLL mejora sobre el algoritmo de vuelta atrás (backtracking) por el uso eficaz de las siguientes reglas:

Unidad de propagación
Si una cláusula es una cláusula unitaria, es decir, solo contiene un solo literal sin asignar, esta cláusula solo puede ser satisfacible mediante la asignación del valor necesario para hacer verdadero al literal. Por lo tanto, no hay otra opción. En la práctica, esto a menudo conduce a las cascadas deterministas de las unidades, evitando así una gran parte del ingenuo espacio de búsqueda.
Eliminación pura literal
Si una variable proposicional se produce con una sola polaridad en la fórmula, se llama pura. El literal puro siempre puede ser asignado de manera que haga que todas las cláusulas que las contienen sean verdaderas. De esta manera, estas cláusulas no limiten la búsqueda y puedan ser eliminadas. Si bien esta optimización es parte del algoritmo DPLL original, las implementaciones más actuales las omiten, ya que su efecto para una implementación eficiente es insignificante o, incluso para la detección de pureza, negativo.

La insatisfacibilidad de una asignación parcial dada, se detecta si una cláusula se vacía, es decir, si todas las variables han sido asignadas de manera que hace a los literales correspondientes falsos. La satisfacibilidad de la fórmula se detecta cuando todas las variables se asignan sin generar la cláusula vacía, o en las implementaciones modernas, si todas las cláusulas son satisfechas. La insatisfacibilidad de la fórmula completa solo puede detectarse después de una búsqueda exhaustiva.

Trabajo Actual

El trabajo actual sobre la mejora del algoritmo se ha realizado en tres direcciones: la definición de criterios diferentes para la elección de los literales de ramificación, la definición de nuevas estructuras de datos para hacer el algoritmo más rápido, especialmente la parte sobre la propagación de la unidad; y la definición de las variantes del algoritmo de vuelta atrás básico. La dirección de este último incluye Vuelta atrás no cronológico (non-chronological backtracking) y Aprendizaje de cláusulas. Estos refinamientos describen un método de vuelta atrás después de llegar a una cláusula de conflicto que "aprende" la raíz de las causas (asignaciones a variables) de los conflictos a fin de evitar llegar al mismo conflicto.


Véase también

Referencias

  • Ansotegui, Carlos; Manyà Felip (2003). «Una Introducción a los Algoritmos de Satisfactibilidad». Revista Iberoamericana de Inteligencia Artificial 7 (20). ISSN , 2-10.  (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  • Davis, Martin; Putnam, Hillary (1960). «A Computing Procedure for Quantification Theory». Journal of the ACM 7 (3): 201-215. doi:10.1145/321033.321034. 
  • Davis, Martin; Logemann, George, and Loveland, Donald (1962). «A Machine Program for Theorem Proving». Communications of the ACM 5 (7): 394-397. doi:10.1145/368273.368557. 
  • Ouyang, Ming (1998). «How Good Are Branching Rules in DPLL?». Discrete Applied Mathematics 89 (1–3): 281-286. doi:10.1016/S0166-218X(98)00045-6. 
  •   Datos: Q2030088
  •   Multimedia: Davis-Putnam-Logemann-Loveland algorithm

algoritmo, dpll, algoritmo, dpll, davis, putnam, logemann, loveland, algoritmo, completo, basado, vuelta, atrás, sirve, para, decidir, satisfactibilidad, fórmulas, lógica, proposicional, forma, normal, conjuntiva, decir, para, resolver, problema, presentado, 1. El algoritmo DPLL Davis Putnam Logemann Loveland es un algoritmo completo basado en la vuelta atras que sirve para decidir la satisfactibilidad de las formulas de logica proposicional en una forma normal conjuntiva es decir para resolver el problema CNF SAT Fue presentado en 1962 por Martin Davis Hilary Putnam George Logemann y Donald W Loveland y es una refinacion del previo algoritmo de Davis Putnam el cual es un procedimiento de resolucion desarrollado por Davis y Putnam en 1960 El algoritmo Davis Putnam Logemann Loveland es nombrado a menudo como el metodo Davis Putnam o el algoritmo DP especialmente en publicaciones antiguas Otros nombres comunes que mantienen la distincion son DLL y DPLL El DPLL es un procedimiento muy eficiente y tras mas de 40 anos aun conforma la base de los solucionadores mas eficaces de SAT asi como de muchos demostradores de teoremas para fragmentos de logica de primer orden Indice 1 Algoritmo 2 Trabajo Actual 3 Vease tambien 4 ReferenciasAlgoritmo EditarEl algoritmo de vuelta atras backtracking se ejecuta eligiendo un literal asignandole un valor de verdad a este simplificando la formula y a continuacion en forma recursiva comprobando si la formula simplificada es satisfacible si este es el caso la formula original es satisfacible de lo contrario la misma verificacion recursiva termina asumiendo el valor de verdad contrario Esto se conoce como regla de division ya que divide el problema en dos subproblemas mas simples El paso de simplificacion esencialmente elimina todas las clausulas que se convierten en verdaderas en funcion de la formula y todos los literales de las clausulas restantes se convierten en falsas El algoritmo DPLL mejora sobre el algoritmo de vuelta atras backtracking por el uso eficaz de las siguientes reglas Unidad de propagacion Si una clausula es una clausula unitaria es decir solo contiene un solo literal sin asignar esta clausula solo puede ser satisfacible mediante la asignacion del valor necesario para hacer verdadero al literal Por lo tanto no hay otra opcion En la practica esto a menudo conduce a las cascadas deterministas de las unidades evitando asi una gran parte del ingenuo espacio de busqueda Eliminacion pura literal Si una variable proposicional se produce con una sola polaridad en la formula se llama pura El literal puro siempre puede ser asignado de manera que haga que todas las clausulas que las contienen sean verdaderas De esta manera estas clausulas no limiten la busqueda y puedan ser eliminadas Si bien esta optimizacion es parte del algoritmo DPLL original las implementaciones mas actuales las omiten ya que su efecto para una implementacion eficiente es insignificante o incluso para la deteccion de pureza negativo La insatisfacibilidad de una asignacion parcial dada se detecta si una clausula se vacia es decir si todas las variables han sido asignadas de manera que hace a los literales correspondientes falsos La satisfacibilidad de la formula se detecta cuando todas las variables se asignan sin generar la clausula vacia o en las implementaciones modernas si todas las clausulas son satisfechas La insatisfacibilidad de la formula completa solo puede detectarse despues de una busqueda exhaustiva Trabajo Actual EditarEl trabajo actual sobre la mejora del algoritmo se ha realizado en tres direcciones la definicion de criterios diferentes para la eleccion de los literales de ramificacion la definicion de nuevas estructuras de datos para hacer el algoritmo mas rapido especialmente la parte sobre la propagacion de la unidad y la definicion de las variantes del algoritmo de vuelta atras basico La direccion de este ultimo incluye Vuelta atras no cronologico non chronological backtracking y Aprendizaje de clausulas Estos refinamientos describen un metodo de vuelta atras despues de llegar a una clausula de conflicto que aprende la raiz de las causas asignaciones a variables de los conflictos a fin de evitar llegar al mismo conflicto Vease tambien EditarAlgoritmo de Davis PutnamReferencias EditarAnsotegui Carlos Manya Felip 2003 Una Introduccion a los Algoritmos de Satisfactibilidad Revista Iberoamericana de Inteligencia Artificial 7 20 ISSN 2 10 enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Davis Martin Putnam Hillary 1960 A Computing Procedure for Quantification Theory Journal of the ACM 7 3 201 215 doi 10 1145 321033 321034 La referencia utiliza el parametro obsoleto coauthors ayuda Davis Martin Logemann George and Loveland Donald 1962 A Machine Program for Theorem Proving Communications of the ACM 5 7 394 397 doi 10 1145 368273 368557 La referencia utiliza el parametro obsoleto coauthors ayuda Ouyang Ming 1998 How Good Are Branching Rules in DPLL Discrete Applied Mathematics 89 1 3 281 286 doi 10 1016 S0166 218X 98 00045 6 Datos Q2030088 Multimedia Davis Putnam Logemann Loveland algorithmObtenido de https es wikipedia org w index php title Algoritmo DPLL amp oldid 131855179, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos