Neural connection weights mutating even though settings turned off 

Hi,

I hope someone can explain to me why I have the following problem. I have a settings file loaded, with all but the change f0 connection weights set to 0. When I run the simulation neurons are deleted and added as if they were supposed to. I have crossover turned off, and I have tried running the experiment without mutation (i.e. commented out in expdef) and it works with that, but I would like to have mutation on only the connection weights. Can this be a bug in 3.0?

Kind regards,

Tom Schut

Forums: 
Maciej Komosinski's picture

I have just checked this and it works as expected... Have a look at the weightmut.expt file below. It has one genotype with two neurons and one connection weight, and when you run it, only this weight is mutated. No neurons are added.


# created Sun Jun 06 01:15:37 2010
# by Framsticks 3.1rc4.1
# 'standard.expdef' data
sim_params:
expdef:standard
usercode:
autosaveperiod:0
overwrite:1
filecomm:1
createrr:1
creatwarnfail:0
importchk:0
loadchk:0
groupchk:0
resetonexpdef:1
initialgen:X
capacity:200
delrule:0
MaxCreated:1
placement:0
rotation:0
creath:0.1
p_nop:20
evalcount:0
p_mut:64
p_xov:0
xov_mins:0
selrule:2
cr_c:0
cr_life:0
cr_v:1
cr_gl:0
cr_joints:0
cr_nnsiz:0
cr_nncon:0
cr_di:0
cr_vpos:0
cr_vvel:0
cr_norm:0
cr_simi:0
Energy0:1
e_meta:1
feed:0
feede0:200
foodgen:
feedtrans:1
aging:0
stagnation:0
minfitness:0
boostphase:1
makesound:0
savebest:0
log:0
notes:
totaltestedcr:60
wrldtyp:0
wrldsiz:20
wrldmap:
wrldwat:-1
wrldbnd:0
wrldg:1
simtype:0
nnspeed:1
gen_hilite:1
gen_extmutinfo:0
f0_nodel_tag:1
f0_nomod_tag:1
f0_p_new:0
f0_p_del:0
f0_p_swp:0
f0_p_pos:0
f0_p_mas:0
f0_p_frc:0
f0_p_ing:0
f0_p_asm:0
f0_j_new:0
f0_j_del:0
f0_j_stm:0
f0_j_stf:0
f0_j_rsf:0
f0_n_new:0
f0_n_del:0
f0_n_prp:0
f0_c_new:0
f0_c_del:0
f0_c_wei:10
genkonw0:1
genkonw1:1
genkonw2:1
genkonw3:1
genkonw4:1
randinit:0.01
touchrange:1
bnoise_struct:0
bnoise_vel:0
simil_method:0
simil_parts:0
simil_partdeg:1
simil_neuro:0.5
symPosSteps:10
symAlphaSteps:20
symBetaSteps:20
minjoint:0
maxjoint:2

GenotypeGroup:
name:Genotypes
fitness:return 0.0+this.velocity*1.0;
fitfun:0
fitm:2
fitma:2

CreaturesGroup:
name:Creatures
energy:1
death:1
nnsim:2
perfperiod:100
stabilperiod:100
killnostable:1000000
stabledist:0.01
enableperf:2
colmask:13
selfmask:65537
othermask:131073
bodysim:1
selfcol:0
em_stat:0
em_dyn:0
en_assim:0

CreaturesGroup:
name:Food
energy:1
death:1
nnsim:0
perfperiod:100
stabilperiod:100
killnostable:1000000
stabledist:0.01
enableperf:0
colmask:148
selfmask:131074
othermask:65538
bodysim:1
selfcol:0
em_stat:0
em_dyn:0
en_assim:0

org:
name:Root
genotype:~
//0
p:
p:1
j:0,1
n:
n:
c:0,1~
info:~
test~
num:1
gnum:0
popsiz:1
lifespan:1
velocity:0
distance:0
vertvel:0
vertpos:-0.01
user1:null
user2:null
user3:null
uid:g1

Hi Maciej,

You are right, the problem was not in the engine or in my script. I don't know why, but when I import genotypes in the onExpInit function with sim_params.import(ExpProperties.genefile,2) ; or with "lo xxx.gen" the settings from the .sim file are overwritten. I am circumventing this with "im xxx.gen" and perhaps this is the only way.

Thank you for your help.

Kind regards,

Tom

Maciej Komosinski's picture

So can you tell us if anything does not work as expected? :-) Also, please read documentation for Simulator.load and Simulator.import to ensure that you know how these functions are intended to work.