6 个版本
0.3.0 | 2022 年 1 月 4 日 |
---|---|
0.2.1 | 2021 年 12 月 26 日 |
0.1.3 | 2021 年 8 月 5 日 |
0.1.2 | 2021 年 7 月 11 日 |
#189 in 性能分析
110KB
2K SLoC
问题生成器 - TD Mk Landscape 基准生成器
此仓库包含在研讨会论文《TD Mk Landscapes 基准生成器》中介绍的问题生成器的源代码,该论文由 Tobias van Driessel 和 Dirk Thierens 在 GECCO '21 分析优化启发式算法行为研讨会中提出:https://dl.acm.org/doi/10.1145/3449726.3463177。这篇研讨会论文是我硕士论文研究的一部分。
问题生成器是一个二进制/库,用于生成 TD Mk Landscapes,这对于基准测试黑盒优化器非常有用。
主要功能
- 生成问题并计算这些问题的全局最优解(或最优解)
- 生成一些用于问题生成的输入定义域文件
包含定义域文件生成应使从头开始生成 TD Mk Landscape 问题并使用它来基准测试算法变得容易。
研讨会论文摘要
我们介绍了一个公开的树分解(TD)Mk Landscapes 基准生成器。Whitley 等人[1]介绍了 TD Mk Landscapes,以消除相邻 NK Landscapes 中不必要的限制,同时仍然允许在多项式时间内计算全局最优解。这使得 TD Mk Landscapes 更宽容,同时与相邻 NK Landscapes 一样方便。这些特性使它非常适合基准测试黑盒算法。然而,Whitley 等人引入了一种仅构建相邻 NK Landscapes 的构造算法。最近,Thierens 等人[2]介绍了一种算法 CliqueTreeMk,可以构建任何 TD Mk Landscape 并找到其最优解。在这项工作中,我们更详细地介绍了 CliqueTreeMk,实现了它以供公共使用,并在一个示例 TD Mk Landscape 问题上展示了 LT-GOMEA 的结果。结果表明,重叠度更高的欺骗陷阱问题不一定降低 LT-GOMEA 的性能和有效性。
目录
快速开始
示例输出问题
一个示例输出问题可以在 data/ 文件夹中找到,如果只想使用示例输出问题。
二进制
最快的方式是,如果你已经安装了 Rust,就使用 cargo install problem_generator
,如果没有,可以从 发行版页面 下载可执行文件。更多信息请见 安装。创建一个新的根目录,我们将在此目录中存储目标域和问题文件夹,并创建一个新的配置文件以生成一些问题
mkdir example/problem_generation -p
vim example/problem_generation/deceptive_trap_separated.txt
复制以下内容
M 1 4
k 5 6
o 0 1
b 1 2
deceptive-trap
然后输入 problem_generator configuration_folder example
以每个配置生成一个问题,这些可以在 problems
文件夹中找到。相应的目标域值可以在 codomain_files
文件夹中找到。
库
Rust
要在项目中使用 problem_generator,您只需将 problem_generator 添加到您的 cargo.toml
[dependencies]
problem_generator = "^0.3.0"
库文档可以在 doc.rs 上找到。
C++
当前正在进行中的工作是为该库创建一个 C++ 封装器,大部分工作已经完成,可以在 cpp-integration 分支 中找到。这将被 IOHprofiler/IOHexperimenter 基准测试框架用于集成 TD Mk Landscape 基准测试生成器。请注意,C++ 封装器可以相当容易地调整为一个 C 封装器。
安装
二进制
有多种选择可供选择
- 下载可执行文件
- 从 发行版页面 下载可执行文件
- 使用 crates.io 安装
- 编译
- 如果您还没有安装 Rust,请运行
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
来安装 Rustup 和 Rust 编程语言 - 然后检出此存储库
git clone https://github.com/tobiasvandriessel/problem-generator && cd problem-generator
- 然后运行
cargo install --path .
或cargo build --release
,具体取决于您是想安装还是只是构建。
- 如果您还没有安装 Rust,请运行
用法/文档
该 文档 解释了问题生成器的用法。
参考
[1] 达雷尔·惠特利,弗朗西斯科·奇卡诺,布莱恩·W·戈德曼。 “灰色盒优化用于Mk景观(NK景观和MAX-kSAT)”。
[2] 迪克·瑟伦斯,托比亚斯·范·德里斯尔。 “树分解Mk景观的基准生成器”。
许可证
版权所有 2021 托比亚斯·范·德里斯尔
根据Apache许可证2.0版(以下简称“许可证”);除非符合许可证要求或书面同意,否则不得使用此文件。您可以在以下地址获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言,请参阅许可证,以了解对许可证权限和限制的规范。
依赖关系
~8-17MB
~214K SLoC