the algorithm inc/dec of premanence uses CLIPPING as indicated by the pseudo-code.
Do I understand that correctly ?
for c in activeColumns(t) for s in potentialSynapses(c) if active(s) then s.permanence += synPermActiveInc s.permanence = min(1.0, s.permanence) else s.permanence -= synPermActiveInc s.permanence = min(0.0, s.permanence)
wouldn’t it be better to do it “sigmoid” way :
permanence += synPermActiveLearnRate * (1 - permanence)