/// <summary> /// </summary> /// <param name="agentId"></param> /// <param name="models"></param> /// <param name="knowledgeNetwork"></param> /// <param name="entityKnowledgeNetwork">ActorKnowledgeNetwork, ResourceKnowledgeNetwork depending on the agent</param> /// <param name="cognitiveArchitecture"></param> /// <param name="model"></param> /// <param name="randomLevel"></param> public LearningModel(IAgentId agentId, MainOrganizationModels models, OneModeNetwork knowledgeNetwork, TwoModesNetwork <IEntityKnowledge> entityKnowledgeNetwork, CognitiveArchitecture cognitiveArchitecture, RandomGenerator model, byte randomLevel) { if (models == null) { throw new ArgumentNullException(nameof(models)); } if (cognitiveArchitecture == null) { throw new ArgumentNullException(nameof(cognitiveArchitecture)); } models.Learning.CopyTo(this); _agentId = agentId; TasksAndPerformance = cognitiveArchitecture.TasksAndPerformance; _internalCharacteristics = cognitiveArchitecture.InternalCharacteristics; _knowledgeNetwork = knowledgeNetwork; _entityKnowledgeNetwork = entityKnowledgeNetwork ?? throw new ArgumentNullException(nameof(entityKnowledgeNetwork)); _randomLevel = randomLevel; if (!cognitiveArchitecture.InternalCharacteristics.CanLearn || !cognitiveArchitecture.KnowledgeAndBeliefs.HasKnowledge) { // Agent is not concerned by this model On = false; } _model = model; }
public Knowledge(GraphMetaNetwork metaNetwork, MainOrganizationModels models, string name, byte length) : base( metaNetwork, name) { Length = length; if (length > Bits.MaxBits) { throw new ArgumentOutOfRangeException("Length should be <= " + Bits.MaxBits); } _models = models ?? throw new ArgumentNullException(nameof(models)); AddAssociatedBelief(); }
public Database(GraphMetaNetwork metaNetwork, MainOrganizationModels models, CommunicationTemplate medium, IClassId classId) : base(metaNetwork, classId) { if (metaNetwork is null) { throw new ArgumentNullException(nameof(metaNetwork)); } if (models is null) { throw new ArgumentNullException(nameof(models)); } SetCognitiveArchitecture(medium); // There is no random level for database _learningModel = new LearningModel(EntityId, models, MetaNetwork.Knowledge, MetaNetwork.ResourceKnowledge, CognitiveArchitecture, models.Generator, 0); _forgettingModel = new ForgettingModel(EntityId, MetaNetwork.ResourceKnowledge, CognitiveArchitecture, models, 0); }
public static Database CreateInstance(GraphMetaNetwork metaNetwork, MainOrganizationModels models, CommunicationTemplate medium, IClassId classId) { return(new Database(metaNetwork, models, medium, classId)); }
public static WikiEntity CreateInstance(GraphMetaNetwork metaNetwork, MainOrganizationModels models) { return(new WikiEntity(metaNetwork, models)); }
private WikiEntity(GraphMetaNetwork metaNetwork, MainOrganizationModels models) : base(metaNetwork, models, new ViaPlatformTemplate(), ClassId) { }
public static Knowledge CreateInstance(GraphMetaNetwork metaNetwork, MainOrganizationModels models, string name, byte length) { return(new Knowledge(metaNetwork, models, name, length)); }
private EmailEntity(GraphMetaNetwork metaNetwork, MainOrganizationModels models) : base(metaNetwork, models, new EmailTemplate(), ClassId) { }
public ForgettingModel(IAgentId agentId, TwoModesNetwork <IEntityKnowledge> entityKnowledgeNetwork, CognitiveArchitecture cognitive, MainOrganizationModels models, byte randomLevel) : this(agentId, entityKnowledgeNetwork, cognitive, models?.Forgetting, models != null && models.Knowledge.On, randomLevel) { }