GHOST
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-2023 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 
37 namespace ghost
38 {
44  struct Options
45  {
50  std::shared_ptr<Print> print;
58 
61 
63  ~Options() = default;
64 
66  Options( const Options& other );
67 
69  Options( Options&& other );
70 
77  };
78 }
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:52
int reset_threshold
Number of variables marked as tabu required to trigger a reset.
Definition: options.hpp:54
~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:49
int number_start_samplings
Number of variable assignments the solver randomly draw, if custom_starting_point and resume_search a...
Definition: options.hpp:57
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:56
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:50
int restart_threshold
Trigger a restart every 'restart_threshold' reset. Set to 0 to never trigger restarts.
Definition: options.hpp:55
Options & operator=(Options other)
int percent_chance_escape_plateau
Percentage of chance to espace a (1-dimension, ie, related to 1 variable) plateau rather than explori...
Definition: options.hpp:53
int tabu_time_local_min
Number of local moves a variable of a local minimum is marked tabu.
Definition: options.hpp:51
bool resume_search
Allowing stop-and-resume computation.
Definition: options.hpp:47