4个版本 (2个破坏性更新)
0.3.1 | 2024年8月7日 |
---|---|
0.3.0 | 2024年2月23日 |
0.2.0 | 2023年9月5日 |
0.1.0 | 2023年7月12日 |
#504 in 数学
每月下载量 122次
1MB
6.5K SLoC
Scuttle - Rust中的多目标MaxSAT求解器
Scuttle是一个用Rust编写的多目标MaxSAT求解器,基于RustSAT库和CaDiCaL SAT求解器。
出版物
这个求解器被用于我们CP'23论文中的多目标优化预处理[5]和我们的CPAIOR'24论文中的核心增强[6]。CP'23论文的附加材料可以在这里找到,而CPAIOR'24论文的材料可以在本仓库的cpaior24/
目录中找到。
算法
第一个参数 | 描述 |
---|---|
p-minimal |
如[1]和[2]中描述的P-Minimal模型枚举 |
lower-bounding |
如[3]中描述的下界搜索(在那里称为"core-guiding") |
bioptsat |
如[4]中描述的BiOptSat算法的Sat-Unsat变体 |
构建
如果您只需要求解器的二进制文件,您可以通过运行cargo install scuttle --locked
从crates.io安装它。
要从源代码构建项目,您需要在本仓库相同的目录中克隆RustSAT和MaxPre-rs。
workspace/
├── maxpre-rs/
├── rustsat/
└── scuttle/
然后您可以在workspace/scuttle/
中运行cargo build
来构建scuttle
。
名字的由来
据称 "scuttle" 是螃蟹群体的多个术语之一,这似乎很适合 Rust 中的 多 目标求解器。
参考文献
- Soh Takehide 和 Banbara Mutsunori 和 Tamura Naoyuki 和 Le Berre Daniel:使用命题最小模型生成解决多目标离散优化问题,CP 2017。
- Koshimura Miyuki 和 Nabeshima Hidetomo 和 Fujita Hiroshi 和 Hasegawa Ryuzo:关于原子集的最小模型生成,FTP 2009。
- 若昂·科尔特斯和伊内斯·林塞以及瓦斯科·M·马库尼奥:多目标组合优化的新核心引导和打击集算法,TACAS 2023。
- 克里斯托夫·雅布斯和耶雷米亚斯·博尔和安德烈亚斯·尼斯科南和马蒂·雅维斯洛:基于MaxSAT的双目标布尔优化,SAT 2022。
- 克里斯托夫·雅布斯和耶雷米亚斯·博尔和汉内斯·伊哈拉伊宁和马蒂·雅维斯洛:基于SAT的多目标组合优化的预处理,CP 2023。
- 克里斯托夫·雅布斯和耶雷米亚斯·博尔和马蒂·雅维斯洛:基于SAT的多目标优化的核心增强,CPAIOR 2024。
依赖关系
约5-15MB
约125K SLoC