Skip to content

Commit

Permalink
Clean up metanetwork
Browse files Browse the repository at this point in the history
  • Loading branch information
lmorisse committed Aug 17, 2020
1 parent b7e8295 commit 93e3f41
Show file tree
Hide file tree
Showing 40 changed files with 371 additions and 483 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public override void SetAgents()
agentIds.Add(actor.Id);
}

WhitePages.MetaNetwork.NetworkLinks.AddLinks(agentIds);
WhitePages.MetaNetwork.Links.AddLinks(agentIds);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ public void NoRiskAversionTest()
public void NoWeightTest()
{
_environment.Organization.Murphies.IncompleteBelief.MandatoryRatio = 1;
_environment.WhitePages.MetaNetwork.NetworkBeliefs.BeliefWeightLevel = BeliefWeightLevel.NoWeight;
_environment.WhitePages.MetaNetwork.Beliefs.BeliefWeightLevel = BeliefWeightLevel.NoWeight;
_simulation.Process();
CheckNoChange();
var tasksDoneRatio = _environment.Schedule.Step * _environment.WorkersCount < Constants.Tolerance
Expand All @@ -259,7 +259,7 @@ public void FullWeightTest()
_environment.WorkerTemplate.Cognitive.InternalCharacteristics.RiskAversionLevel =
GenericLevel.Complete;
_environment.Organization.Murphies.IncompleteBelief.ThresholdForReacting = 1;
_environment.WhitePages.MetaNetwork.NetworkBeliefs.BeliefWeightLevel = BeliefWeightLevel.FullWeight;
_environment.WhitePages.MetaNetwork.Beliefs.BeliefWeightLevel = BeliefWeightLevel.FullWeight;
_simulation.Process();
CheckNoChange();
var tasksDoneRatio = _environment.Schedule.Step * _environment.WorkersCount < Constants.Tolerance
Expand All @@ -281,7 +281,7 @@ public void FullWeightTest1()
_environment.WorkerTemplate.Cognitive.InternalCharacteristics.RiskAversionLevel =
GenericLevel.None;
_environment.Organization.Murphies.IncompleteBelief.ThresholdForReacting = 1;
_environment.WhitePages.MetaNetwork.NetworkBeliefs.BeliefWeightLevel = BeliefWeightLevel.FullWeight;
_environment.WhitePages.MetaNetwork.Beliefs.BeliefWeightLevel = BeliefWeightLevel.FullWeight;
_simulation.Process();
CheckNoChange();
var tasksDoneRatio = _environment.Schedule.Step * _environment.WorkersCount < Constants.Tolerance
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public override void SetAgents()
{
GroupId = group.Id
};
WhitePages.MetaNetwork.AddMemberToGroup(actor.Id, 100, group.Id, false);
WhitePages.MetaNetwork.AddAgentToGroup(actor.Id, 100, group.Id, false);
//Beliefs are added with knowledge
SetKnowledge(actor, Organization.Knowledges, i);
SetActivity(actor.Id, _activities, i, group.Id);
Expand All @@ -91,18 +91,18 @@ private void SetKnowledge(CognitiveAgent actor, IReadOnlyList<Knowledge> knowled
{
case 0:
// same Knowledge for all
WhitePages.MetaNetwork.NetworkKnowledges.Add(actor.Id, knowledges[0].Id, KnowledgeLevel,
WhitePages.MetaNetwork.Knowledge.Add(actor.Id, knowledges[0].Id, KnowledgeLevel,
actor.Cognitive.InternalCharacteristics);
break;
case 1:
// Knowledge is by group
WhitePages.MetaNetwork.NetworkKnowledges.Add(actor.Id, knowledges[i].Id, KnowledgeLevel,
WhitePages.MetaNetwork.Knowledge.Add(actor.Id, knowledges[i].Id, KnowledgeLevel,
actor.Cognitive.InternalCharacteristics);
break;
case 2:
// Knowledge is randomly defined for agentId
var index = DiscreteUniform.Sample(0, GroupsCount - 1);
WhitePages.MetaNetwork.NetworkKnowledges.Add(actor.Id, knowledges[index].Id, KnowledgeLevel,
WhitePages.MetaNetwork.Knowledge.Add(actor.Id, knowledges[index].Id, KnowledgeLevel,
actor.Cognitive.InternalCharacteristics);
break;
}
Expand All @@ -114,16 +114,16 @@ private void SetActivity(AgentId agentId, IReadOnlyList<string> activities, int
{
case 0:
// same activity for all
WhitePages.MetaNetwork.NetworkActivities.AddActivity(agentId, activities[0], groupId);
WhitePages.MetaNetwork.Activities.AddActivity(agentId, activities[0], groupId);
break;
case 1:
// Activity is by group
WhitePages.MetaNetwork.NetworkActivities.AddActivity(agentId, activities[i], groupId);
WhitePages.MetaNetwork.Activities.AddActivity(agentId, activities[i], groupId);
break;
case 2:
// Activity is randomly defined for agentId
var index = DiscreteUniform.Sample(0, GroupsCount - 1);
WhitePages.MetaNetwork.NetworkActivities.AddActivity(agentId, activities[index], groupId);
WhitePages.MetaNetwork.Activities.AddActivity(agentId, activities[index], groupId);
break;
}
}
Expand Down
10 changes: 5 additions & 5 deletions Symu examples/SymuGroupAndInteractionTests/IntegrationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@ public void KnowledgeSphereCount(int groupsCount)
_organization.Templates.Human.Cognitive.InteractionPatterns.MaxNumberOfNewInteractions = 1;
_environment.Knowledge = 1;
_simulation.Process();
var links = _environment.WhitePages.MetaNetwork.NetworkLinks.Count;
var links = _environment.WhitePages.MetaNetwork.Links.Count;
var triads = _environment.IterationResult.OrganizationFlexibility.Triads.Last().ActualNumber;
_simulation.Process();
Assert.AreEqual(links, _environment.WhitePages.MetaNetwork.NetworkLinks.Count);
Assert.AreEqual(links, _environment.WhitePages.MetaNetwork.Links.Count);
Assert.AreEqual(triads, _environment.IterationResult.OrganizationFlexibility.Triads.Last().ActualNumber);
}

Expand Down Expand Up @@ -165,17 +165,17 @@ public void CoworkersCountTest()
_environment.Knowledge = 1;
SetInteractionPatterns(InteractionStrategy.Knowledge);
_simulation.Process();
var links = _environment.WhitePages.MetaNetwork.NetworkLinks.Count;
var links = _environment.WhitePages.MetaNetwork.Links.Count;
var triads = _environment.IterationResult.OrganizationFlexibility.Triads.Last().ActualNumber;
// results should be a multiple of groups count, because interaction sphere can't changes
_environment.GroupsCount = 2;
_simulation.Process();
Assert.AreEqual(links * _environment.GroupsCount, _environment.WhitePages.MetaNetwork.NetworkLinks.Count);
Assert.AreEqual(links * _environment.GroupsCount, _environment.WhitePages.MetaNetwork.Links.Count);
Assert.AreEqual(triads * _environment.GroupsCount,
_environment.IterationResult.OrganizationFlexibility.Triads.Last().ActualNumber);
_environment.GroupsCount = 3;
_simulation.Process();
Assert.AreEqual(links * _environment.GroupsCount, _environment.WhitePages.MetaNetwork.NetworkLinks.Count);
Assert.AreEqual(links * _environment.GroupsCount, _environment.WhitePages.MetaNetwork.Links.Count);
Assert.AreEqual(triads * _environment.GroupsCount,
_environment.IterationResult.OrganizationFlexibility.Triads.Last().ActualNumber);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class ExampleEnvironment : SymuEnvironment
public ExpertAgent ExpertAgent { get; private set; }
public Knowledge Knowledge { get; set; }
public KnowledgeLevel KnowledgeLevel { get; set; }
public Database Wiki => WhitePages.MetaNetwork.NetworkDatabases.Repository.List.First();
public Database Wiki => WhitePages.MetaNetwork.Databases.Repository.List.First();

public override void SetOrganization(OrganizationEntity organization)
{
Expand Down Expand Up @@ -82,7 +82,7 @@ public override void SetAgents()
DoesNotLearnAgent = new LearnAgent(Organization.NextEntityIndex(), this, Organization.Templates.Human);
ExpertAgent = new ExpertAgent(Organization.NextEntityIndex(), this, Organization.Templates.Human);
// Active link between expert and LearnByAskingAgent to be able to exchange information
WhitePages.MetaNetwork.NetworkLinks.AddLink(LearnByAskingAgent.Id, ExpertAgent.Id);
WhitePages.MetaNetwork.Links.AddLink(LearnByAskingAgent.Id, ExpertAgent.Id);
}
}
}
6 changes: 3 additions & 3 deletions Symu examples/SymuLearnAndForget/Classes/LearnAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class LearnAgent : CognitiveAgent
public LearnAgent(ushort agentKey, SymuEnvironment environment, CognitiveArchitectureTemplate template) : base(
new AgentId(agentKey, ClassKey), environment, template)
{
Wiki = Environment.WhitePages.MetaNetwork.NetworkDatabases.Repository.List.First();
Wiki = Environment.WhitePages.MetaNetwork.Databases.Repository.List.First();
Knowledge = GetKnowledge();
}

Expand Down Expand Up @@ -88,8 +88,8 @@ protected virtual void AfterSetTaskDone(object sender, TaskEventArgs e)

private Knowledge GetKnowledge()
{
var knowledgeId = Environment.WhitePages.MetaNetwork.NetworkKnowledges.Repository.List.First().Id;
return Environment.WhitePages.MetaNetwork.NetworkKnowledges.GetKnowledge(knowledgeId);
var knowledgeId = Environment.WhitePages.MetaNetwork.Knowledge.Repository.List.First().Id;
return Environment.WhitePages.MetaNetwork.Knowledge.GetKnowledge(knowledgeId);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,9 @@ public override void SetAgents()
};
CommunicationTemplate communication = new EmailTemplate();
var entity = new DataBaseEntity(actor.Id, communication);
var email = new Database(entity, Organization.Models, WhitePages.MetaNetwork.NetworkKnowledges);
WhitePages.MetaNetwork.AddDatabase(actor.Id, email);
WhitePages.MetaNetwork.AddMemberToGroup(actor.Id, 100, group.Id, false);
var email = new Database(entity, Organization.Models, WhitePages.MetaNetwork.Knowledge);
WhitePages.MetaNetwork.Databases.Add(actor.Id, email);
WhitePages.MetaNetwork.AddAgentToGroup(actor.Id, 100, group.Id, false);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ public override void SetAgents()
};
CommunicationTemplate communication = new EmailTemplate();
var entity = new DataBaseEntity(actor.Id, communication);
var email = new Database(entity, Organization.Models, WhitePages.MetaNetwork.NetworkKnowledges);
WhitePages.MetaNetwork.AddDatabase(actor.Id, email);
WhitePages.MetaNetwork.AddMemberToGroup(actor.Id, 100, group.Id, false);
var email = new Database(entity, Organization.Models, WhitePages.MetaNetwork.Knowledge);
WhitePages.MetaNetwork.Databases.Add(actor.Id, email);
WhitePages.MetaNetwork.AddAgentToGroup(actor.Id, 100, group.Id, false);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ private PersonAgent AddPersonAgent()
};
CommunicationTemplate communication = new EmailTemplate();
var entity = new DataBaseEntity(actor.Id, communication);
var email = new Database(entity, Organization.Models, WhitePages.MetaNetwork.NetworkKnowledges);
WhitePages.MetaNetwork.AddDatabase(actor.Id, email);
WhitePages.MetaNetwork.AddMemberToGroup(actor.Id, 100, _groupId, false);
var email = new Database(entity, Organization.Models, WhitePages.MetaNetwork.Knowledge);
WhitePages.MetaNetwork.Databases.Add(actor.Id, email);
WhitePages.MetaNetwork.AddAgentToGroup(actor.Id, 100, _groupId, false);
return actor;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public bool AcceptNewInteraction(AgentId senderId)
return true;
}

if (Environment.WhitePages.MetaNetwork.NetworkLinks.HasActiveLink(Id, senderId))
if (Environment.WhitePages.MetaNetwork.Links.HasActiveLink(Id, senderId))
{
return true;
}
Expand Down Expand Up @@ -143,7 +143,7 @@ public bool AcceptNewInteraction(AgentId senderId)
if (Environment.Organization.Models.InteractionSphere.SphereUpdateOverTime)
{
// Message.Sender is now part of agent interaction sphere
Environment.WhitePages.MetaNetwork.NetworkLinks.AddLink(Id, senderId);
Environment.WhitePages.MetaNetwork.Links.AddLink(Id, senderId);
}

return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ public void CheckBlockerIncompleteBelief(SymuTask task, ushort knowledgeId)
byte mandatoryIndex = 0;
byte requiredIndex = 0;

var belief = Environment.WhitePages.MetaNetwork.NetworkBeliefs.GetBelief(knowledgeId);
var belief = Environment.WhitePages.MetaNetwork.Beliefs.GetBelief(knowledgeId);
Environment.Organization.Murphies.IncompleteBelief.CheckBelief(belief, taskBits, BeliefsModel.Beliefs,
ref mandatoryScore, ref requiredScore,
ref mandatoryIndex, ref requiredIndex);
Expand Down Expand Up @@ -677,7 +677,7 @@ public void CheckRiskAversion(SymuTask task, ushort knowledgeId)
float mandatoryScore = 0;
byte mandatoryIndex = 0;

var belief = Environment.WhitePages.MetaNetwork.NetworkBeliefs.GetBelief(knowledgeId);
var belief = Environment.WhitePages.MetaNetwork.Beliefs.GetBelief(knowledgeId);
MurphyIncompleteBelief.CheckRiskAversion(belief, taskBits, BeliefsModel.Beliefs, ref mandatoryScore,
ref mandatoryIndex, -Cognitive.InternalCharacteristics.RiskAversionValue());
if (!(mandatoryScore <= -Cognitive.InternalCharacteristics.RiskAversionValue()))
Expand Down
8 changes: 4 additions & 4 deletions Symu source code/Symu/Classes/Agents/CognitiveAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,12 @@ protected CognitiveAgent(AgentId agentId, SymuEnvironment environment, Cognitive
/// <summary>
/// If agent has an email, get the email database of the agent
/// </summary>
protected Database Email => Environment.WhitePages.MetaNetwork.NetworkDatabases.GetDatabase(Id.Key);
protected Database Email => Environment.WhitePages.MetaNetwork.Databases.GetDatabase(Id.Key);

/// <summary>
/// If agent has an email
/// </summary>
protected bool HasEmail => Environment.WhitePages.MetaNetwork.NetworkDatabases.Exists(Id, Id.Key);
protected bool HasEmail => Environment.WhitePages.MetaNetwork.Databases.Exists(Id, Id.Key);

//TODO => all the models should be included in the cognitive architecture
/// <summary>
Expand Down Expand Up @@ -228,9 +228,9 @@ protected override void InitializeModels()
base.InitializeModels();
// Initialize agent models
LearningModel = new LearningModel(Id, Environment.Organization.Models,
Environment.WhitePages.MetaNetwork.NetworkKnowledges, Cognitive);
Environment.WhitePages.MetaNetwork.Knowledge, Cognitive);
ForgettingModel = new ForgettingModel(Id, Environment.Organization.Models,
Cognitive, Environment.WhitePages.MetaNetwork.NetworkKnowledges);
Cognitive, Environment.WhitePages.MetaNetwork.Knowledge);
InfluenceModel = new InfluenceModel(Id, Environment.Organization.Models.Influence,
Cognitive.InternalCharacteristics, Environment.WhitePages.MetaNetwork);
BeliefsModel = new BeliefsModel(Id, Environment.Organization.Models.Beliefs, Cognitive,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public ActivityModel(AgentId agentId, CognitiveArchitecture cognitiveArchitectur
}

_agentId = agentId;
_networkActivities = network.NetworkActivities;
_networkActivities = network.Activities;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public class BeliefsModel

On = entity.IsAgentOn();
_agentId = agentId;
_networkBeliefs = network.NetworkBeliefs;
_networkBeliefs = network.Beliefs;
_knowledgeAndBeliefs = cognitiveArchitecture.KnowledgeAndBeliefs;
_messageContent = cognitiveArchitecture.MessageContent;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ public class InfluenceModel
}

_agentId = agentAgentId;
_networkInfluences = network.NetworkInfluences;
_networkBeliefs = network.NetworkBeliefs;
_networkInfluences = network.Influences;
_networkBeliefs = network.Beliefs;

if (internalCharacteristics.CanInfluenceOrBeInfluence && On)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public class KnowledgeModel

On = entity.IsAgentOn();
_agentId = agentId;
_networkKnowledges = network.NetworkKnowledges;
_networkKnowledges = network.Knowledge;
_knowledgeAndBeliefs = cognitiveArchitecture.KnowledgeAndBeliefs;
_messageContent = cognitiveArchitecture.MessageContent;
}
Expand Down
2 changes: 1 addition & 1 deletion Symu source code/Symu/Classes/Agents/ReactiveAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ protected virtual void CreateAgent(AgentId agentId, SymuEnvironment environment)
State = AgentState.NotStarted;
foreach (var database in environment.Organization.Databases)
{
environment.WhitePages.MetaNetwork.AddDatabase(Id, database.AgentId.Key);
environment.WhitePages.MetaNetwork.Databases.Add(Id, database.AgentId.Key);
}
Created = Schedule.Step;
}
Expand Down
8 changes: 4 additions & 4 deletions Symu source code/Symu/Environment/SymuEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,9 @@ public virtual void InitializeIteration()
{
Messages.Clear();
WhitePages.Clear();
WhitePages.MetaNetwork.NetworkKnowledges.Model =
WhitePages.MetaNetwork.Knowledge.Model =
Organization.Models.Generator;
WhitePages.MetaNetwork.NetworkBeliefs.Model =
WhitePages.MetaNetwork.Beliefs.Model =
Organization.Models.Generator;
IterationResult.Initialize();
// Intentionally before AddOrganizationKnowledges
Expand Down Expand Up @@ -426,9 +426,9 @@ public virtual void AddOrganizationDatabase()
public void SetDatabases()
{
foreach (var database in Organization.Databases.Select(databaseEntity =>
new Database(databaseEntity, Organization.Models, WhitePages.MetaNetwork.NetworkKnowledges)))
new Database(databaseEntity, Organization.Models, WhitePages.MetaNetwork.Knowledge)))
{
WhitePages.MetaNetwork.NetworkDatabases.AddDatabase(database);
WhitePages.MetaNetwork.Databases.AddDatabase(database);
}
}

Expand Down

0 comments on commit 93e3f41

Please sign in to comment.