internal QSAI(IAdjustableItem item)
            {
                Contract.Requires(item != null);

                this.item = item;
                var limited = item as ILimitedAdjustableItem;
                double max;
                if (limited != null)
                {
                    min = limited.Min;
                    max = limited.Max;
                }
                else
                {
                    min = -1.0;
                    max = 1.0;
                }
                size = max - min;
            }
        public QuantumStatedAdjustableItem(IAdjustableItem item)
        {
            Contract.Requires(item != null);

            this.item = item;
            var limited = item as IRangedAdjustableItem;
            double max;
            if (limited != null)
            {
                min = limited.Range.MinValue;
                max = limited.Range.MaxValue;
            }
            else
            {
                min = -1.0;
                max = 1.0;
            }
            size = max - min;
        }
Example #3
0
        internal QSAItem(IAdjustableItem item)
        {
            Contract.Requires(item != null);

            this.item = item;
        }
 private IRuleParameters GetCurrentParameters(IAdjustableItem item)
 {
     var pars = item as IRuleParameters;
     return pars != null ? pars : DefaultParameters;
 }
 private void Initialize(IAdjustableItem item)
 {
     var pars = GetCurrentParameters(item);
     item.Adjustment = (pars.WeightInititlizationNoise * RandomGenerator.Random.NextDouble()) * 2.0 - pars.WeightInititlizationNoise;
 }
 private void Adjust(IAdjustableItem item, double error, double input, DeltaContext context)
 {
     var pars = GetCurrentParameters(item);
     double delta = pars.StepSize * error * input;
     if (pars.Momentum != 0.0)
     {
         if (context.Delta == null)
         {
             context.Delta = delta;
         }
         else
         {
             context.Delta = delta = (pars.Momentum * context.Delta.Value) + ((1.0 - pars.Momentum) * delta);
         }
     }
     item.Adjustment += delta;
 }