示例#1
0
 /**
  * Destroys any references this {@code Pool} maintains on behalf
  * of the specified {@link Synapse}
  *
  * @param synapse
  */
 public void destroySynapse(Synapse synapse)
 {
     synapseConnections.Remove(synapse.getInputIndex());
     synapsesBySourceIndex.Remove(synapse.getInputIndex());
     if (synapse.getSegment() is DistalDendrite)
     {
         destroy();
     }
 }
示例#2
0
        /**
         * Returns the permanence value for the {@link Synapse} specified.
         *
         * @param s	the Synapse
         * @return	the permanence
         */
        //public double getPermanence(Synapse s)
        //{
        //    return synapsesBySourceIndex[s.getInputIndex()].getPermanence();
        //}

        /**
         * Sets the specified  permanence value for the specified {@link Synapse}
         * @param s
         * @param permanence
         */
        //public void setPermanence(Connections c, Synapse s, double permanence)
        //{
        //    s.setPermanence(c, permanence);
        //}

        /**
         * Updates this {@code Pool}'s store of permanences for the specified {@link Synapse}
         * @param c				the connections memory
         * @param synapse				the synapse who's permanence is recorded
         * @param permanence	the permanence value to record
         */
        public void updatePool(double synPermConnected, Synapse synapse, double permanence)
        {
            int inputIndex = synapse.getInputIndex();

            if (synapsesBySourceIndex.ContainsKey(inputIndex) == false)
            {
                synapsesBySourceIndex.Add(inputIndex, synapse);
            }
            if (permanence >= synPermConnected)
            {
                synapseConnections.Add(inputIndex);
            }
            else
            {
                synapseConnections.Remove(inputIndex);
            }
        }