SAT-Solving
SAT-Solving
Lehrveranstaltung mit SWS 3/1/0 (Vorlesung/Übung/Praktikum) in SS 2017
Dozent
- Steffen Hölldobler
Tutor
Umfang (SWS)
- 3/1/0
Module
Leistungskontrolle
- Mündliche Prüfung
Das Erfüllbarkeitsproblem (SAT) der Aussagenlogik ist ein fundamentales Entscheidungsproblem der Informatik, und das repräsentative Problem der Komplexitätsklasse NP. Neben vielen akademischen Anwendungen, die sich auf SAT reduzieren lassen, gibt es auch industriell relevante Probleme, die gelöst werden können. Einige Beispiele sind das Lösen von Sudokus, das Lösen von Hamiltonion Path und Hamiltonian Cycle Problemen, aber auch die Verifikation von Hardware und Software. Selbst Attacken auf Crypthographie-Verfahren sind mit SAT möglich.
In den letzten zwei Jahrzehnten wurden SAT Solver -- Algorithmen die das Efüllbarkeitsproblem lösen -- wesentlich verbessert, und gehen weit über den DPLL Algorithmus der 1960er hinaus. Die Vorlesung präsentiert zum einen die theoretischen Grundlagen, auf denen SAT Solver aufbauen und führt Lösungsalgorithmen abstrakt ein und diskutiert Eigenschaften, die ausgenutzt werden können, um effiziente SAT Solver zu erhalten.
Auf der anderen Seite werden interna von SAT Solvern beleuchtet, und verwandte Anwendungen aufgezeigt. So kann mit MaxSAT -- der Optimierungsvariante des Erfüllbarkeitsproblems -- eine beste Lösung gefunden werden, oder durch mehrfaches Aufrufen eines Solvers eine kleinste unerfüllbare Teilformel gefunden werden. Die Varianten des Lösens werden ebenso diskutiert, wie das parallele Lösen des SAT Problems. Dabei wird auch auf die effiziente Implementierung geachtet.
In den Übungen werden sowohl theoretische als auch praktische Aufgabenstellungen gegeben. Es sollen sowohl Lösungsalgrithmen implementiert, als auch Probleme auf das SAT Problem reduziert werden.
Presentations on Applications in SAT
Schedule
- the lecture and the tutorial will take place in room E05
- the lecture and the tutorial will take place on Thursdays 4.DS and 5.DS (13:00 - 16:20, ab 6.4.2017).
Lecture Slides
- Introduction
- SAT Problems
- Stochastic Local Search
- SAT Solving – Systematic Search updated!
- Counting
- Extensions
Exercises
- For the tutorial on 20.4.2017 there is no need to bring a notebook.
- Sudoku Tutorial
- SAT Solver
- SAT Solver Riss and download here
- unzip
- Go to /riss_505/bin
- run with ./riss yourSudokuPuzzleInCNF.cnf
- SAT Solver Glucose (how to use it, is written on the bottom of the page)
- SAT Solver Riss and download here