source: cpp/frams/genetics/fn/fn_oper.h @ 870

Last change on this file since 870 was 808, checked in by Maciej Komosinski, 7 years ago

New option for mutation in numerical encoding fn: mutate all variables instead of one, randomly selected variable
New option for crossover in numerical encoding fn: the amount of linear mix can be random, not only fixed by user

File size: 876 bytes
Line 
1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2018  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
4
5#ifndef _Fn_OPER_H_
6#define _Fn_OPER_H_
7
8#include "../genooperators.h"
9
10
11class GenoOper_fn : public GenoOperators
12{
13public:
14        GenoOper_fn();
15        int checkValidity(const char *, const char *genoname);
16        int validate(char *&, const char *genoname);
17        int mutate(char *&g, float& chg, int &method);
18        int crossOver(char *&g1, char *&g2, float& chg1, float& chg2);
19        uint32_t style(const char *g, int pos);
20        const char* getSimplest() { return "[0.0, 0.0]"; } //should actually correspond in length to vectors in mut_bound_low, mut_bound_high, mut_stddev
21
22        double xover_proportion;
23        int xover_proportion_random, mut_single_var;
24        SString mut_bound_low, mut_bound_high, mut_stddev;
25};
26
27#endif
Note: See TracBrowser for help on using the repository browser.