| Crates.io | scuttle |
| lib.rs | scuttle |
| version | 0.4.0 |
| created_at | 2023-07-12 08:32:29.308265+00 |
| updated_at | 2025-05-01 16:32:07.736309+00 |
| description | A multi-objective MaxSAT solver. |
| homepage | |
| repository | https://github.com/chrjabs/scuttle |
| max_upload_size | |
| id | 914371 |
| size | 7,120,150 |
Scuttle is a multi-objective MaxSAT solver written in Rust and based on the RustSAT library and the CaDiCaL SAT solver.
This solver was used in the following publications. For each publication, a tag (specified in brackets) marks the exact revision used:
cp23): "Preprocessing in SAT-Based Multi-Objective Combinatorial
Optimization" [5]. Additional material
here.cpaior24): "Core Boosting in SAT-Based Multi-Objective
Optimization" [6]. Additional material in cpaior24/.tacas25): "Certifying Pareto-Optimality in Multi-Objective
Maximum Satisfiability" [7]. Additional material in tacas25/.| First argument | Description |
|---|---|
p-minimal |
P-Minimal model enumeration as described in [1] and [2] |
lower-bounding |
Lower-bounding search as described in [3] (called "core-guided" there) |
bioptsat |
Sat-Unsat variant of the BiOptSat algorithm described in [4] |
Note: Scuttle requires nightly Rust, which can be installed via rustup.
If you simply want a binary of the solver, you can install it from
crates.io by running cargo +nightly install --locked scuttle.
To build the project from source, make sure to initialize the git submodules
with git submodule update --init --recursive. You can then build scuttle by
running cargo +nightly build.
By default, MaxPre preprocessing is not included in the build anymore. To
include preprocessing with MaxPre, add --features=maxpre.
sol-tightening: includes heuristic tightening of solutions after they are found in the buildmaxpre: includes preprocessing with MaxPre in the buildApparently "scuttle" is one of multiple term for a group of crabs, which seemed fitting for a multi-objective solver in Rust.