GHOST
Loading...
Searching...
No Matches
options.hpp
Go to the documentation of this file.
1/*
2 * GHOST (General meta-Heuristic Optimization Solving Tool) is a C++ framework
3 * designed to help developers to model and implement optimization problem
4 * solving. It contains a meta-heuristic solver aiming to solve any kind of
5 * combinatorial and optimization real-time problems represented by a CSP/COP/EF-CSP/EF-COP.
6 *
7 * First developed to solve game-related optimization problems, GHOST can be used for
8 * any kind of applications where solving combinatorial and optimization problems. In
9 * particular, it had been designed to be able to solve not-too-complex problem instances
10 * within some milliseconds, making it very suitable for highly reactive or embedded systems.
11 * Please visit https://github.com/richoux/GHOST for further information.
12 *
13 * Copyright (C) 2014-2025 Florian Richoux
14 *
15 * This file is part of GHOST.
16 * GHOST is free software: you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License as published
18 * by the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
20
21 * GHOST is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25
26 * You should have received a copy of the GNU General Public License
27 * along with GHOST. If not, see http://www.gnu.org/licenses/.
28 */
29
30#pragma once
31
32#include <memory>
33#include <algorithm>
34
35#include "print.hpp"
36
37namespace ghost
38{
79}
Definition auxiliary_data.hpp:38
Definition options.hpp:45
Options()
Unique constructor.
int tabu_time_selected
Number of local moves a selected variable is marked tabu.
Definition options.hpp:53
int reset_threshold
Number of variables marked as tabu required to trigger a reset.
Definition options.hpp:55
~Options()=default
Default destructor.
bool parallel_runs
To enable parallel runs of the solver. Using all available physical cores if number_threads is not sp...
Definition options.hpp:48
int number_threads
Number of threads the solver will use for the search.
Definition options.hpp:50
bool enable_optimization_guidance
For optimization problems, consider the optimization cost as a tie-breaker for satisfaction plateau.
Definition options.hpp:49
int number_start_samplings
Number of variable assignments the solver randomly draw, if custom_starting_point and resume_search a...
Definition options.hpp:58
Options(const Options &other)
Unique copy constructor.
int number_variables_to_reset
Number of variables to randomly change the value at each reset.
Definition options.hpp:57
Options(Options &&other)
Unique move constructor.
bool custom_starting_point
To force starting the search on a custom variables assignment.
Definition options.hpp:46
std::shared_ptr< Print > print
Allowing custom solution print (by derivating a class from ghost::Print)
Definition options.hpp:51
int restart_threshold
Trigger a restart every 'restart_threshold' reset. Set to 0 to never trigger restarts.
Definition options.hpp:56
Options & operator=(Options other)
int percent_chance_force_trying_on_plateau
Percentage of chance to force trying another variable rather than doing a move on a plateau.
Definition options.hpp:54
int tabu_time_local_min
Number of local moves a variable of a local minimum is marked tabu.
Definition options.hpp:52
bool resume_search
Allowing stop-and-resume computation.
Definition options.hpp:47