Quiero hacer un primer solucionador SAT. Conozco la competencia SAT y la conferencia SAT, y hay tantos documentos sobre este tema. Soy un abridor, un abrumador abrumador. ¿Dónde debería comenzar? Finalmente quiero impulsar el estado del arte. Quiero un consejo experto sobre cómo comenzar, para no perder mi tiempo en lo no esencial demasiado pronto. Muchas gracias.
ds.algorithms
reference-request
lo.logic
sat
Zirui Wang
fuente
fuente
Respuestas:
El siguiente artículo de 2009 ofrece una excelente visión general para principiantes.
Hay varias formas de entrar en los aspectos técnicos. Incluso puede comenzar con el documento original de Davis-Putnam. Es extremadamente claro y tiene ejemplos detallados. Cuando discutimos las optimizaciones SAT en un curso, descubrimos que algunos pueden imaginar que ya están allí. El artículo de Davis-Logeman-Loveland es (creo) menos instructivo, pero es tan breve que es mejor leerlo.
Hay muchas maneras de ponerse al día con los desarrollos de los próximos 50 años. Recomendaría diapositivas de conferencias. Simplemente buscando 'DPLL' arrojará muchos tutoriales. Si navega por ellos, estoy seguro de que la niebla se despejará, hasta cierto punto. También hay muchas encuestas útiles. El periódico Zhang-Malik es un buen lugar para comenzar. Hay varios artículos en el Manual de Satisfacción que pueden resultarle útiles.
Secundo la sugerencia de Mikolaos. El código MiniSAT es limpio y de tamaño manejable. Puedes jugar con eso. Hay varios otros solucionadores que puedes probar. CryptoMiniSat también es bastante limpio. También debe consultar el trabajo de Armin Biere , quien escribe solucionadores SAT y escribe sobre escribir solucionadores SAT.
fuente
Sugiero que primero comprenda qué técnicas realmente avanzaron los solucionadores, para lo cual sugeriría la siguiente descripción general y análisis .
Entonces recomendaría descargar el código fuente de minisat y leer su descripción .
Por supuesto, podría ser individual, pero encontré que mirar el código fuente es muy valioso.
fuente
Si estás abrumado por todo el trabajo que hay ahí fuera, ¿por qué no empiezas fingiendo que nadie ha trabajado en el problema antes? Si su objetivo es eventualmente construir un solucionador SAT competitivo, será un viaje bastante largo. Al comenzar simplemente jugando sin 'comprobar las soluciones', por así decirlo, tiene más que ganar que perder.
fuente
Comience con una buena encuesta. Es fácil atacar al sujeto poco a poco y confundirse con diferentes nombres en la literatura para las mismas técnicas y el mismo nombre utilizado para diferentes técnicas. También es fácil volver a representar antiguas batallas algorítmicas (listas de ocurrencia frente a listas de encabezado frente a dos literales vistos para implementaciones de DPLL, por ejemplo) si no sabe cuál es el estado del arte.
Satisfiability Solvers por Gomes, et. Alabama. te dará la tosca disposición de la tierra.
Mejorar los solucionadores SAT utilizando técnicas de vanguardia de Manthey lo acercará al presente.
fuente