EN

Modul

SAT Solving in der Praxis (erweitert) [M-INFO-105622]

Leistungspunkte
6
Turnus
Unregelmäßig
Dauer
1 Semester
Sprache
Deutsch/Englisch
Level
4
Version
1

Verantwortung

Einrichtung

  • KIT-Fakultät für Informatik

Bestandteil von

Teilleistungen

Identifier Name LP
T-INFO-111254 SAT Solving in der Praxis (erweitert) 6

Erfolgskontrolle(n)

Siehe Teilleistung.

Qualifikationsziele

Studierende sind in der Lage, kombinatorische Probleme zu beurteilen, deren Schwere einzuschätzen und mittels Computern zu lösen.

Studierende lernen, wie kombinatorische Probleme mittels SAT Solving effizient gelöst werden können.

Studierende können die praktische Komplexität von Entscheidungs- und Optimierungsproblemen beurteilen, Probleme als SAT-Probleme kodieren und effiziente Lösungsverfahren für kombinatorische Probleme implementieren.

Studierende erhalten einen Einblick in die modernsten Lösungverfahren für SAT und verwandte Probleme und deren Implementierungen in SAT Solvern.

Voraussetzungen

Siehe Teilleistung.

Inhalt

Das aussagenlogische Erfüllbarkeitsproblem (SAT-Problem) spielt in Theorie und Praxis eine herausragende Rolle. Es ist das erste als NP-vollständig erkannte Problem, und auch heute noch Ausgangspunkt vieler komplexitätstheoretischer Untersuchungen. Darüber hinaus hat sich SAT-Solving inzwischen als eines der wichtigsten grundlegenden Verfahren in der Verifikation von Hard- und Software etabliert und wird zur Lösung schwerer kombinatorischer Probleme auch in der industriellen Praxis verwendet.Dieses Modul soll Studierenden die theoretischen und praktischen Aspekte des SAT-Solving vermitteln. Behandelt werden:

  1. Grundlagen, historische Entwicklung
  2. Codierungen, z.B. cardinality constraints
  3. Phasenübergänge bei Zufallsproblemen
  4. Lokale Suche (GSAT, WalkSAT, ..., ProbSAT)
  5. Resolution, Davis-Putnam-Algorithmus, DPLL-Algorithmus, Look-Ahead-Algorithmus
  6. Effiziente Implementierungen, Datenstrukturen
  7. Heuristiken im DPLL-Algorithmus
  8. CDCL-Algorithmus, Klausellernen, Implikationsgraphen
  9. Restarts und Heuristiken im CDCL-Algorithmus
  10. Preprocessing, Inprocessing
  11. Generierung von Beweisen und deren Prüfung
  12. Paralleles SAT Solving (Guiding Paths, Portfolios, Cube-and-Conquer)
  13. Verwandte Probleme: MaxSAT, MUS, #SAT, QBF
  14. Fortgeschrittene Anwendungen: Bounded Model Checking, Planen, satisfiability-modulo-theories

 Zusätzlich:

  1. Erfolgsstrategien der aktuell besten SAT Solver, z.B. Vivification, Rephasing, Conditional Chronological Backtracking, Gaussian Eliminiation / XOR Reasoning, etc.
  2. Instanz-spezifische Algorithmenselektion und -konfiguration
  3. Effizientes Erkennen von Gate-Kodierungen in CNF Formeln
  4. Model Counting (#SAT): Algorithmen und Anwendungen

Arbeitsaufwand

3 SWS Vorlesung + 1 SWS Übungen

(Vor- und Nachbereitungszeiten: 5h/Woche für Vorlesung plus 2h/Woche für Übungen; Klausurvorbereitung: 15h)

Gesamtaufwand: (3 SWS + 1 SWS + 5 SWS + 2 SWS) x 15h + 15h Klausurvorbereitung = 11x15h + 15h = 180h = 6 ECTS