Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chrjabs/scuttle
Rust implementation of P-minimal model enumeration for solving multi-objective optimization problems.
https://github.com/chrjabs/scuttle
Last synced: 3 months ago
JSON representation
Rust implementation of P-minimal model enumeration for solving multi-objective optimization problems.
- Host: GitHub
- URL: https://github.com/chrjabs/scuttle
- Owner: chrjabs
- License: mit
- Created: 2022-10-28T12:33:59.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-23T08:39:13.000Z (9 months ago)
- Last Synced: 2024-03-25T01:02:02.063Z (8 months ago)
- Language: Rust
- Size: 1.29 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-formalized-reasoning - Scuttle - proc) - multi-objective MaxSAT solver based on the rustsat library and the CaDiCaL SAT solver. (Projects / Provers and Solvers)
README
# Scuttle - A Multi-Objective MaxSAT Solver in Rust
Scuttle is a multi-objective MaxSAT solver written in Rust and based on the
[RustSAT](https://github.com/chrjabs/rustsat) library and the
[CaDiCaL](https://github.com/arminbiere/cadical) SAT solver.## Publications
This solver was used in our CP'23 paper on preprocessing for multi-objective
optimization \[5\] and our CPAIOR'24 paper on core boosting \[6\].
Additional material for the CP'23 paper can be found
[here](https://bitbucket.org/coreo-group/mo-prepro) while material for the
CPAIOR'24 paper is available in the `cpaior24/` directory in this repository.## Algorithms
| `--algorithm=` | Description |
| ---------------- | ------------------------------------------------------------------------- |
| `p-minimal` | P-Minimal model enumeration as described in \[1\] and \[2\] |
| `lower-bounding` | Lower-bounding search as described in \[3\] (called "core-guiding" there) |
| `bioptsat` | Sat-Unsat variant of the BiOptSat algorithm described in \[4\] |## Building
If you simply want a binary of the solver, you can install it from
[crates.io](https://crates.io) by running `cargo install scuttle`.To build the project from source, you will need to clone
[RustSAT](https://github.com/chrjabs/rustsat) and
[MaxPre-rs](https://github.com/chrjabs/maxpre-rs) within the same workspace
directory as this repository.```text
workspace/
├── maxpre-rs/
├── rustsat/
└── scuttle/
```You can then build `scuttle` by running `cargo build` within `workspace/scuttle/`.
## What's The Name
[Apparently](https://crabbingzone.com/what-is-group-of-crabs-called/) "scuttle"
is one of multiple term for a group of crabs, which seemed fitting for a
_multi_-objective solver in _Rust_.## References
- \[1\] Takehide Soh and Mutsunori Banbara and Naoyuki Tamura and Daniel Le
Berre: _Solving Multiobjective Discrete Optimization Problems with
Propositional Minimal Model Generation_, CP 2017.
- \[2\] Miyuki Koshimura and Hidetomo Nabeshima and Hiroshi Fujita and Ryuzo
Hasegawa: _Minimal Model Generation with Respect to an Atom Set_, FTP
2009.
- \[3\] Joao Cortes and Ines Lynce and Vasco M. Maquinho: _New Core-Guided
and Hitting Set Algorithms for Multi-Objective Combinatorial Optimization_,
TACAS 2023.
- \[4\] Christoph Jabs and Jeremias Berg and Andreas Niskanen and Matti
Järvisalo: _MaxSAT-Based Bi-Objective Boolean Optimization_, SAT 2022.
- \[5\] Christoph Jabs and Jeremias Berg and Hannes Ihalainen and Matti
Järvisalo: _Preprocessing in SAT-Based Multi-Objective Combinatorial
Optimization_, CP 2023.
- \[6\] Christoph Jabs and Jeremias Berg and Matti Järvisalo: _Core Boosting
in SAT-Based Multi-Objective Optimization_, CPAIOR 2024.