/// <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); }
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; }
/// <summary> /// Get the name of a BeliefWeightLevel /// </summary> /// <param name="level"></param> /// <returns></returns> public static string GetName(BeliefWeightLevel level) { return(level.ToString()); }
public Belief(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model, BeliefWeightLevel beliefWeightLevel, string name) : this(metaNetwork, length, model, beliefWeightLevel) { Name = name; }
public Belief(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model, BeliefWeightLevel beliefWeightLevel) : base(metaNetwork) { Length = length; InitializeWeights(model, length, beliefWeightLevel); }
public static Belief CreateInstance(GraphMetaNetwork metaNetwork, IKnowledge knowledge, byte length, RandomGenerator model, BeliefWeightLevel beliefWeightLevel) { return(new Belief(metaNetwork, knowledge, length, model, beliefWeightLevel)); }
public static Belief CreateInstance(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model, BeliefWeightLevel beliefWeightLevel, string name) { return(new Belief(metaNetwork, length, model, beliefWeightLevel, name)); }