{"id":13748696,"url":"https://github.com/chrjabs/scuttle","last_synced_at":"2025-05-09T11:31:15.725Z","repository":{"id":180626319,"uuid":"558845594","full_name":"chrjabs/scuttle","owner":"chrjabs","description":"Multi-objective MaxSAT solver written in Rust","archived":false,"fork":false,"pushed_at":"2025-05-01T16:33:01.000Z","size":2050,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-01T16:42:14.955Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrjabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-28T12:33:59.000Z","updated_at":"2025-05-01T16:32:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"6d550ba3-0ab6-481b-b212-a663c4ff32b3","html_url":"https://github.com/chrjabs/scuttle","commit_stats":null,"previous_names":["chrjabs/scuttle"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrjabs%2Fscuttle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrjabs%2Fscuttle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrjabs%2Fscuttle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrjabs%2Fscuttle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrjabs","download_url":"https://codeload.github.com/chrjabs/scuttle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253240350,"owners_count":21876593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T07:00:47.630Z","updated_at":"2025-05-09T11:31:15.659Z","avatar_url":"https://github.com/chrjabs.png","language":"Rust","funding_links":[],"categories":["Projects"],"sub_categories":["Provers and Solvers"],"readme":"# Scuttle - A Multi-Objective MaxSAT Solver in Rust\n\nScuttle is a multi-objective MaxSAT solver written in Rust and based on the\n[RustSAT](https://github.com/chrjabs/rustsat) library and the\n[CaDiCaL](https://github.com/arminbiere/cadical) SAT solver.\n\n## Publications\n\nThis solver was used in the following publications.\nFor each publication, a tag (specified in brackets) marks the exact revision used:\n- CP'23 (`cp23`): \"Preprocessing in SAT-Based Multi-Objective Combinatorial\n  Optimization\" \\[5\\]. Additional material\n  [here](https://bitbucket.org/coreo-group/mo-prepro).\n- CPAIOR'24 (`cpaior24`): \"Core Boosting in SAT-Based Multi-Objective\n  Optimization\" \\[6\\]. Additional material in `cpaior24/`.\n- TACAS'25 (`tacas25`): \"Certifying Pareto-Optimality in Multi-Objective\n  Maximum Satisfiability\" \\[7\\]. Additional material in `tacas25/`.\n\n## Algorithms\n\n| First argument   | Description                                                              |\n| ---------------- | ------------------------------------------------------------------------ |\n| `p-minimal`      | P-Minimal model enumeration as described in \\[1\\] and \\[2\\]              |\n| `lower-bounding` | Lower-bounding search as described in \\[3\\] (called \"core-guided\" there) |\n| `bioptsat`       | Sat-Unsat variant of the BiOptSat algorithm described in \\[4\\]           |\n\n## Building\n\n**Note**: Scuttle requires nightly Rust, which can be installed via `rustup`.\n\nIf you simply want a binary of the solver, you can install it from\n[crates.io](https://crates.io) by running `cargo +nightly install --locked scuttle`.\n\nTo build the project from source, make sure to initialize the git submodules\nwith `git submodule update --init --recursive`. You can then build `scuttle` by\nrunning `cargo +nightly build`.\n\nBy default, MaxPre preprocessing is not included in the build anymore. To\ninclude preprocessing with MaxPre, add `--features=maxpre`.\n\n### Features\n\n- `sol-tightening`: includes heuristic tightening of solutions after they are found in the build\n- `maxpre`: includes preprocessing with MaxPre in the build\n\n## What's The Name\n\n[Apparently](https://crabbingzone.com/what-is-group-of-crabs-called/) \"scuttle\"\nis one of multiple term for a group of crabs, which seemed fitting for a\n_multi_-objective solver in _Rust_.\n\n## References\n\n- \\[1\\] Takehide Soh and Mutsunori Banbara and Naoyuki Tamura and Daniel Le\n  Berre: _Solving Multiobjective Discrete Optimization Problems with\n  Propositional Minimal Model Generation_, CP 2017.\n- \\[2\\] Miyuki Koshimura and Hidetomo Nabeshima and Hiroshi Fujita and Ryuzo\n  Hasegawa: _Minimal Model Generation with Respect to an Atom Set_, FTP\n  2009\\.\n- \\[3\\] Joao Cortes and Ines Lynce and Vasco M. Maquinho: _New Core-Guided\n  and Hitting Set Algorithms for Multi-Objective Combinatorial Optimization_,\n  TACAS 2023.\n- \\[4\\] Christoph Jabs and Jeremias Berg and Andreas Niskanen and Matti\n  Järvisalo: _MaxSAT-Based Bi-Objective Boolean Optimization_, SAT 2022.\n- \\[5\\] Christoph Jabs and Jeremias Berg and Hannes Ihalainen and Matti\n  Järvisalo: _Preprocessing in SAT-Based Multi-Objective Combinatorial\n  Optimization_, CP 2023.\n- \\[6\\] Christoph Jabs and Jeremias Berg and Matti Järvisalo: _Core Boosting\n  in SAT-Based Multi-Objective Optimization_, CPAIOR 2024.\n- \\[7\\] Christoph Jabs and Jeremias Berg and Bart Boergarts and Matti\n  Järvisalo: _Certifying Pareto-Optimality in\n  Multi-Objective Maximum Satisfiability_, TACAS 2025.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrjabs%2Fscuttle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrjabs%2Fscuttle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrjabs%2Fscuttle/lists"}