GHOST
fix_value.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 <vector>
33 
34 #include "../variable.hpp"
35 #include "../constraint.hpp"
36 
37 namespace ghost
38 {
39  namespace global_constraints
40  {
48  class FixValue : public Constraint
49  {
50  int _value;
51 
52  double required_error( const std::vector<Variable*>& variables ) const override;
53  double optional_delta_error( const std::vector<Variable*>& variables,
54  const std::vector<int>& variable_indexes,
55  const std::vector<int>& candidate_values ) const override;
56 
57  public:
64  FixValue( const std::vector<int>& variables_index, int value );
65 
71  FixValue( const std::vector<Variable>& variables, int value );
72  };
73  }
74 }
Definition: constraint.hpp:63
Definition: fix_value.hpp:49
FixValue(const std::vector< Variable > &variables, int value)
FixValue(const std::vector< int > &variables_index, int value)
Definition: auxiliary_data.hpp:38