Crates.io | problem_generator |
lib.rs | problem_generator |
version | 0.3.1 |
source | src |
created_at | 2021-07-01 14:41:03.112453 |
updated_at | 2024-08-30 09:33:37.048603 |
description | TD Mk Landscape benchmark generator, for use with black-box optimization algorithms. |
homepage | https://github.com/tobiasvandriessel/problem-generator |
repository | https://github.com/tobiasvandriessel/problem-generator |
max_upload_size | |
id | 417481 |
size | 156,929 |
This repository contains source code for the problem generator introduced in the workshop paper `Benchmark generator for TD Mk Landscapes' @ GECCO '21 Analysing Algorithmic Behaviour of Optimisation Heuristics Workshop, by Tobias van Driessel and Dirk Thierens : https://dl.acm.org/doi/10.1145/3449726.3463177. This workshop paper was a part of my master thesis research.
The problem generator is a binary/library to generate TD Mk Landscapes, which are useful for benchmarking Black Box Optimizers.
Main functionality:
This inclusion of codomain files generation should make it easy to generate a TD Mk Landscape problem from scratch and benchmark an algorithm with it.
We introduce a publicly available benchmark generator for Tree Decomposition (TD) Mk Landscapes. TD Mk Landscapes were introduced by Whitley et al. [1] to get rid of unnecessary restrictions of Adjacent NK Landscapes while still allowing for the calculation of the global optimum in polynomial time. This makes TD Mk Landscapes more lenient while still being as convenient as Adjacent NK Landscapes. Together, these properties make it very suitable for benchmarking blackbox algorithms. Whitley et al., however, introduced a construction algorithm that only constructs Adjacent NK Landscapes. Recently, Thierens et al. [2] introduced an algorithm, CliqueTreeMk, to construct any TD Mk Landscape and find its optimum. In this work, we introduce CliqueTreeMk in more detail, implement it for public use, and show some results for LT-GOMEA on an example TD Mk Landscape problem. The results show that deceptive trap problems with higher overlap do not necessarily decrease performance and effectiveness for LT-GOMEA.
An example output problem can be found in the data/ folder, if one only wishes to use an example output problem.
The quickest way to start is by using cargo install problem_generator
if you already have Rust installed or downloading the executable from the Release page if you don't. See Installation for more information.
Create a new root directory, where we will store the codomain and problem folders in, and create a new configuration file to generate some problems:
mkdir example/problem_generation -p
vim example/problem_generation/deceptive_trap_separated.txt
Copy in the following contents:
M 1 4
k 5 6
o 0 1
b 1 2
deceptive-trap
Then enter problem_generator configuration_folder example
to generate 1 problem per configuration, which can be found in the problems
folder. The accompanying codomain values can be found in the codomain_files
folder.
Refer to the binary's documentation to find out more about all available options.
To use problem_generator in your project, you can simply add problem_generator into your cargo.toml
:
[dependencies]
problem_generator = "0.3.1"
The library documentation can be found on doc.rs.
Current WIP is creating a wrapper in C++ for this library, for which most of the work is done and can be found in the cpp-integration branch. This will be used by the IOHprofiler/IOHexperimenter benchmark framework to integrate the TD Mk Landscape benchmark generator. Note that the C++ wrapper could be adjusted fairly easily into a C wrapper.
There are multiple options to choose from:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
to install Rustup and the Rust programming languagegit clone https://github.com/tobiasvandriessel/problem-generator && cd problem-generator
cargo install --path .
or cargo build --release
,
depending on whether you want it installed or just built.The documentation explains the usage of the problem generator.
[1] Darrell Whitley, Francisco Chicano, and Brian W Goldman. “Gray box optimization for Mk landscapes (NK landscapes and MAX-kSAT)”.
[2] Dirk Thierens, Tobias van Driessel. “A Benchmark Generator of Tree Decomposition Mk Landscapes”.
Copyright 2021 Tobias van Driessel
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.