Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public static Database CreateInstance(GraphMetaNetwork metaNetwork, MainOrganizationModels models, CommunicationTemplate medium,
                                       IClassId classId)
 {
     return(new Database(metaNetwork, models, medium, classId));
 }
Exemplo n.º 5
0
 public static WikiEntity CreateInstance(GraphMetaNetwork metaNetwork, MainOrganizationModels models)
 {
     return(new WikiEntity(metaNetwork, models));
 }
Exemplo n.º 6
0
 private WikiEntity(GraphMetaNetwork metaNetwork, MainOrganizationModels models) : base(metaNetwork, models,
                                                                                        new ViaPlatformTemplate(), ClassId)
 {
 }
Exemplo n.º 7
0
 public static Knowledge CreateInstance(GraphMetaNetwork metaNetwork, MainOrganizationModels models, string name, byte length)
 {
     return(new Knowledge(metaNetwork, models, name, length));
 }
Exemplo n.º 8
0
 private EmailEntity(GraphMetaNetwork metaNetwork, MainOrganizationModels models) : base(metaNetwork, models,
                                                                                         new EmailTemplate(), ClassId)
 {
 }
Exemplo n.º 9
0
 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)
 {
 }