package org.jactr.core.module.declarative.four; /* * default logging */ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.core.chunk.IChunk; import org.jactr.core.chunk.basic.AbstractSubsymbolicChunk; import org.jactr.core.model.IModel; import org.jactr.core.module.random.IRandomModule; public class DefaultRandomActivationEquation implements IRandomActivationEquation { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(DefaultRandomActivationEquation.class); private IRandomModule _randomModule; private IDeclarativeModule4 _declarativeModule; public DefaultRandomActivationEquation(IRandomModule random, IDeclarativeModule4 decM) { _randomModule = random; _declarativeModule = decM; } public double computeRandomActivation(IModel model, IChunk c) { if (_randomModule == null) return 0; return _randomModule.logisticNoise(_declarativeModule.getActivationNoise()); } @Override public String getName() { return "random"; } @Override public double computeAndSetActivation(IChunk chunk, IModel model) { double random = computeRandomActivation(model, chunk); ((AbstractSubsymbolicChunk) chunk.getSubsymbolicChunk()) .setRandomActivation(random); return random; } }