Structure Based Algorithm Engineering for SAT-Solving
Given a boolean formula the satisfiability problem (SAT) asks if there exists a truth assignment to the variables of the formula such that the formula evaluates to true. Even though this problem seems to be purely theoretical there are several real-world problems that can be formulated as a SAT problem. From the theoretical point of view SAT is NP-complete and should thus be not solvable in feasible time. However, in the last 15 years state-of-the-art SAT Solvers became able to solve many real-world SAT instances with hundreds and thousands of variables. This is reasond by the fact that real-world SAT problems exhibit some internal structure that can be somehow exploited by SAT Solvers.
In the last years we have worked out a general methological approach that can be used to analyze the structure of real-world problems. One of our goals is to apply this methodology for solving SAT problems. We aim to develop and implement a SAT Solver that analyzes the structure of the underlying SAT instance and uses these information for the solving process. One big challange is to handle the trade-off between the quality of structural information and on the other hand the complexity to compute these information in the first phase of the algorithm. We have implemented and analysed several different approaches for sequential and mult-threaded SAT solving. The different solver implementations are presented here.
Source code of MoUsSaka as submitted to the SAT-competition 2011. It is an extension of SApperloT that allows to find Minimal Unsatisfiable Subsets (MUS) of a CNF formula. It supports the plain MUS computation where the minimisation considers the number of clauses in the final unsatisfiable subset. Furthermore, the computation can be set to minimise the number of categories or groups of clauses that appear in the unsatisfiable subset.
Source code of SApperloT for Linux as submitted to the SAT-competition 2011. Some information can be found in the solver description for the SAT-competition.
Source code of SArTagnan for Linux as submitted to the SAT-competition 2011. SArTagnan is a parallel portfolio SAT solver that runs different strategies in different threads. Clauses can be shared logically and physically among all threads without the use of operation system locks. In particular, one thread extensively applies simplification techniques and another thread uses DMRP. More information can be found in the technical report or in the solver description for the SAT Race 2010 and the SAT-competition 2011.
Source code of SApperloT for Linux as submitted to the SAT-Race 2010. This version combines DMRP with state-of-the-art CDCL solving. For more information please take a look at my paper about DMRP or the solver description for the SAT-Race. The preprocessor of this version of SApperloT was written by Christian Zielke.
The tool GridFit can be used to prove or disprove whether or not a plane graph can be embedded onto a given rectangle/grid. The embedding assumes edges to be drawn straight-line and without crossings. Internally GridFit encodes this problem into SAT and uses a modified version of SApperloT to solve the transformed problem. Source code for Linux of a preliminary version of GridFit is available for download. Just invoke 'make' in the top level directory and execute 'GridFit' to see the options. GridFit can be used for small graphs but it might get into trouble with larger graphs!
Source code of SApperloT-base for Linux as submitted to the SAT-competition 2009. Note that this version is a bit more verbose than the submitted one. More information about SApperloT can be found here.
SatIn is a visualisation tool for SAT instances (Sat Insight) written in Java on top of the yFiles library. It allows for depicting different kinds of graphs that can be gained from SAT instances in conjunctive normal form. The layout of a graph can be chosen from a set of available automated layouts and, moreover, can be modiefied manually. Selecting an element in one graphical representation automatically highlights the according elements in all other graphical representations. Execute it with the command: java -jar SatIn.jar.
Our website uses cookies. Some of them are mandatory, while others allow us to improve your user experience on our website. The settings you have made can be edited at any time.
or
Essential
in2code
Name
in2cookiemodal-selection
Use
Required to save the user selection of the cookie settings.
Lifetime
3 months
Name
be_lastLoginProvider
Use
Required for the TYPO3 backend login to determine the time of the last login.
Lifetime
3 months
Name
be_typo_user
Use
This cookie tells the website whether a visitor is logged into the TYPO3 backend and has the rights to manage it.
Lifetime
Browser session
Name
ROUTEID
Use
These cookies are set to always direct the user to the same server.
Lifetime
Browser session
Name
fe_typo_user
Use
Enables frontend login.
Lifetime
Browser session
Videos
in2code
Name
iframeswitch
Use
Used to show all third-party contents.
Lifetime
3 months
YouTube
Name
yt-player-bandaid-host
Use
Is used to display YouTube videos.
Lifetime
Persistent
Name
yt-player-bandwidth
Use
Is used to determine the optimal video quality based on the visitor's device and network settings.
Lifetime
Persistent
Name
yt-remote-connected-devices
Use
Saves the settings of the user's video player using embedded YouTube video.
Lifetime
Persistent
Name
yt-remote-device-id
Use
Saves the settings of the user's video player using embedded YouTube video.
Lifetime
Persistent
Name
yt-player-headers-readable
Use
Collects data about visitors' interaction with the site's video content - This data is used to make the site's video content more relevant to the visitor.
Lifetime
Persistent
Name
yt-player-volume
Use
Is used to save volume preferences for YouTube videos.
Lifetime
Persistent
Name
yt-player-quality
Use
Is used to save the quality settings for YouTube videos.
Lifetime
Persistent
Name
yt-remote-session-name
Use
Saves the settings of the user's video player using embedded YouTube video.
Lifetime
Browser session
Name
yt-remote-session-app
Use
Saves the settings of the user's video player using embedded YouTube video.
Lifetime
Browser session
Name
yt-remote-fast-check-period
Use
Saves the settings of the user's video player using embedded YouTube video.
Lifetime
Browser session
Name
yt-remote-cast-installed
Use
Saves the user settings when retrieving a YouTube video integrated on other web pages
Lifetime
Browser session
Name
yt-remote-cast-available
Use
Saves user settings when retrieving integrated YouTube videos.
Lifetime
Browser session
Google
Name
ANID
Use
Used for targeting purposes to profile the interests of website visitors in order to display relevant and personalized Google advertising.
Lifetime
2 years
Name
SNID
Use
Google Maps - Google uses these cookies to store user preferences and information when you view pages with Google Maps.
Lifetime
1 month
Name
SSID
Use
Used to store information about how you use the site and what advertisements you saw before visiting this site, and to customize advertising on Google resources by remembering your recent searches, your previous interactions with an advertiser's ads or search results, and your visits to an advertiser's site.
Lifetime
6 months
Name
1P_JAR
Use
This cookie is used to support Google's advertising services.
Lifetime
1 month
Name
SAPISID
Use
Used for targeting purposes to profile the interests of website visitors in order to display relevant and personalized Google advertising.
Lifetime
2 years
Name
APISID
Use
Used for targeting purposes to profile the interests of website visitors in order to display relevant and personalized Google advertising.
Lifetime
6 months
Name
HSID
Use
Includes encrypted entries of your Google account and last login time to protect against attacks and data theft from form entries.
Lifetime
2 years
Name
SID
Use
Used for security purposes to store digitally signed and encrypted records of a user's Google Account ID and last login time, enabling Google to authenticate users, prevent fraudulent use of login credentials, and protect user data from unauthorized parties. This may also be used for targeting purposes to display relevant and personalized advertising content.
Lifetime
6 months
Name
SIDCC
Use
This cookie stores information about user settings and information for Google Maps.
Lifetime
3 months
Name
NID
Use
The NID cookie contains a unique ID that Google uses to store your preferences and other information.
Lifetime
6 months
Name
CONSENT
Use
This cookie tracks how you use a website to show you advertisements that may be of interest to you.
Lifetime
18 years
Name
__Secure-3PAPISID
Use
This cookie is used to support Google's advertising services.
Lifetime
2 years
Name
__Secure-3PSID
Use
This cookie is used to support Google's advertising services.
Lifetime
6 months
Name
__Secure-3PSIDCC
Use
This cookie is used to support Google's advertising services.