35 #define MAX_PAYOFF (1.)
53 env->
state = malloc(
sizeof(
double) * n);
79 for (
int i = 0; i <
xcsf->x_dim; ++i) {
96 for (
int i = 0; i < env->
pos_bits; ++i) {
97 if (env->
state[i] > 0.5) {
98 pos += (int) pow(2, (
double) (env->
pos_bits - 1 - i));
101 const int answer = (env->
state[pos] > 0.5) ? 1 : 0;
void env_mux_free(const struct XCSF *xcsf)
Frees the multiplexer environment.
const double * env_mux_get_state(const struct XCSF *xcsf)
Returns a random multiplexer problem instance.
double env_mux_execute(const struct XCSF *xcsf, const int action)
Returns the reward for executing a multiplexer action.
void env_mux_reset(const struct XCSF *xcsf)
Dummy method since no multiplexer reset is necessary.
bool env_mux_is_done(const struct XCSF *xcsf)
Returns whether the multiplexer is in a terminal state.
bool env_mux_multistep(const struct XCSF *xcsf)
Returns whether the multiplexer is a multistep problem.
double env_mux_maxpayoff(const struct XCSF *xcsf)
Returns the maximum payoff value possible in the multiplexer.
#define MAX_PAYOFF
Payoff provided for making a correct classification.
void env_mux_init(struct XCSF *xcsf, const int bits)
Initialises a real multiplexer environment of specified length.
The real multiplexer problem environment.
void param_init(struct XCSF *xcsf, const int x_dim, const int y_dim, const int n_actions)
Initialises default XCSF parameters.
Functions for setting and printing parameters.
Real multiplexer environment data structure.
int pos_bits
Number of position bits.
double * state
Current state.
double rand_uniform(const double min, const double max)
Returns a uniform random float [min,max].
Utility functions for random number handling, etc.