Skip to content

Commit

Permalink
Removing bias toward positive direction of parameter space in amoeba …
Browse files Browse the repository at this point in the history
…initialization
  • Loading branch information
andrew-bsp committed Feb 4, 2014
1 parent 3f3486f commit 2166db5
Showing 1 changed file with 29 additions and 4 deletions.
33 changes: 29 additions & 4 deletions minctracc/Optimize/amoeba.c
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,11 @@ static VIO_Real get_function_value(
VIO_Real tolerance )
{
int i, j;
float *parameter_fwd;
float *parameter_bwd;
VIO_Real cost_fwd;
VIO_Real cost_bwd;


amoeba->n_parameters = n_parameters;
amoeba->function = function;
Expand All @@ -257,6 +262,9 @@ static VIO_Real get_function_value(
ALLOC( amoeba->values, n_parameters+1 );

ALLOC( amoeba->sum, n_parameters );
ALLOC( parameter_fwd, n_parameters);
ALLOC( parameter_bwd, n_parameters);


for(j=0; j<n_parameters; j++)
amoeba->sum[j] = 0.0;
Expand All @@ -265,14 +273,31 @@ static VIO_Real get_function_value(
{
for(j=0; j<n_parameters; j++)
{
amoeba->parameters[i][j] = (float) initial_parameters[j];
parameter_fwd[j] = (float) initial_parameters[j];
parameter_bwd[j] = (float) initial_parameters[j];
if( i > 0 && j == i - 1 )
amoeba->parameters[i][j] += parameter_delta;
amoeba->sum[j] += amoeba->parameters[i][j];
{
parameter_fwd[j] += parameter_delta;
parameter_bwd[j] -= parameter_delta;
}
}

// Test the parameters
cost_fwd = get_function_value( amoeba, parameter_fwd);
cost_bwd = get_function_value( amoeba, parameter_bwd);

// Use the one with the lowest value
for(j=0; j<n_parameters; j++)
{
amoeba->parameters[i][j] = ( cost_fwd < cost_bwd ) ? parameter_fwd[j] : parameter_bwd[j];
amoeba->sum[j] += amoeba->parameters[i][j];
}
amoeba->values[i] = ( cost_fwd < cost_bwd ) ? cost_fwd : cost_bwd;

amoeba->values[i] = get_function_value( amoeba, amoeba->parameters[i] );
}

FREE( parameter_fwd );
FREE( parameter_bwd );
}

/* ----------------------------- MNI Header -----------------------------------
Expand Down

0 comments on commit 2166db5

Please # to comment.