示例#1
0
        /// <summary>
        ///     Given a random model
        ///     set the weights : an array fill of random float ranging [-1; 1]
        ///     representing the detailed Belief of an agent
        /// </summary>
        /// <param name="model"></param>
        /// <param name="length"></param>
        /// <param name="beliefWeightLevel"></param>
        /// <returns></returns>
        public void InitializeWeights(RandomGenerator model, byte length, BeliefWeightLevel beliefWeightLevel)
        {
            float[] beliefBits;
            switch (beliefWeightLevel)
            {
            case BeliefWeightLevel.NoWeight:
                beliefBits = DiscreteUniform.Samples(length, 0, 0);
                break;

            case BeliefWeightLevel.RandomWeight:
                beliefBits = model == RandomGenerator.RandomUniform
                        ? ContinuousUniform.Samples(length, 0, RangeMax)
                        : DiscreteUniform.Samples(length, 0, RangeMax);
                break;

            case BeliefWeightLevel.FullWeight:
                beliefBits = DiscreteUniform.Samples(length, 1, 1);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(beliefWeightLevel), beliefWeightLevel, null);
            }

            Weights = new Bits(beliefBits, 0);
        }
示例#2
0
        public Belief(GraphMetaNetwork metaNetwork, IKnowledge knowledge, byte length, RandomGenerator model,
                      BeliefWeightLevel beliefWeightLevel) : this(metaNetwork, length, model, beliefWeightLevel)
        {
            if (knowledge == null)
            {
                throw new ArgumentNullException(nameof(knowledge));
            }

            Name        = knowledge.Name;
            KnowledgeId = knowledge.EntityId;
        }
示例#3
0
 /// <summary>
 ///     Get the name of a BeliefWeightLevel
 /// </summary>
 /// <param name="level"></param>
 /// <returns></returns>
 public static string GetName(BeliefWeightLevel level)
 {
     return(level.ToString());
 }
示例#4
0
 public Belief(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model,
               BeliefWeightLevel beliefWeightLevel, string name) : this(metaNetwork, length, model, beliefWeightLevel)
 {
     Name = name;
 }
示例#5
0
 public Belief(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model,
               BeliefWeightLevel beliefWeightLevel) : base(metaNetwork)
 {
     Length = length;
     InitializeWeights(model, length, beliefWeightLevel);
 }
示例#6
0
 public static Belief CreateInstance(GraphMetaNetwork metaNetwork, IKnowledge knowledge, byte length, RandomGenerator model,
                                     BeliefWeightLevel beliefWeightLevel)
 {
     return(new Belief(metaNetwork, knowledge, length, model, beliefWeightLevel));
 }
示例#7
0
 public static Belief CreateInstance(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model,
                                     BeliefWeightLevel beliefWeightLevel, string name)
 {
     return(new Belief(metaNetwork, length, model, beliefWeightLevel, name));
 }