OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
optimizer
Optimizer
EA
OneBitMutation.h
Go to the documentation of this file.
1
//
2
// Struct OneBitMutation
3
// Mutate exactly one gene of an individual.
4
//
5
// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
6
// All rights reserved
7
//
8
// Implemented as part of the PhD thesis
9
// "Toward massively parallel multi-objective optimization with application to
10
// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
11
//
12
// This file is part of OPAL.
13
//
14
// OPAL is free software: you can redistribute it and/or modify
15
// it under the terms of the GNU General Public License as published by
16
// the Free Software Foundation, either version 3 of the License, or
17
// (at your option) any later version.
18
//
19
// You should have received a copy of the GNU General Public License
20
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
21
//
22
#include "
Util/CmdArguments.h
"
23
24
template
<
class
T>
struct
OneBitMutation
25
{
26
void
mutate
(std::shared_ptr<T> ind,
CmdArguments_t
/*args*/
) {
27
28
int
range = ind->genes_m.size();
29
int
position =
static_cast<
int
>
((rand() / (RAND_MAX + 1.0)) * range);
30
ind->new_gene(position);
31
}
32
};
CmdArguments.h
CmdArguments_t
std::shared_ptr< CmdArguments > CmdArguments_t
Definition:
CmdArguments.h:176
OneBitMutation
Definition:
OneBitMutation.h:24
OneBitMutation::mutate
void mutate(std::shared_ptr< T > ind, CmdArguments_t)
Definition:
OneBitMutation.h:26
Generated on Tue Jul 2 2024 15:05:16 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5