Skip to content

Commit

Permalink
Add NetworkAnalysis
Browse files Browse the repository at this point in the history
  • Loading branch information
lmorisse committed Sep 2, 2020
1 parent 902a404 commit 6568c23
Show file tree
Hide file tree
Showing 77 changed files with 318 additions and 237 deletions.
1 change: 1 addition & 0 deletions SourceCode/Symu/Classes/Agents/CognitiveAgent.Act.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
using System.Runtime.ExceptionServices;
using System.Threading.Tasks;
using Symu.Classes.Task;
using Symu.Common.Classes;
using Symu.Environment;
using Symu.Messaging.Messages;
using Symu.Repository;
Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Classes/Agents/CognitiveAgent.Murphies.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
using Symu.Classes.Task;
using Symu.Common;
using Symu.Common.Interfaces.Entity;
using Symu.DNA.TwoModesNetworks.Sphere;
using Symu.DNA.Networks.TwoModesNetworks.Sphere;
using Symu.Messaging.Messages;
using Symu.Repository;
using Symu.Repository.Entity;
Expand Down
1 change: 1 addition & 0 deletions SourceCode/Symu/Classes/Agents/CognitiveAgent.Tasking.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
using System.Collections.Generic;
using Symu.Classes.Agents.Models;
using Symu.Classes.Task;
using Symu.Common.Classes;
using Symu.Common.Interfaces.Entity;
using Symu.Environment;
using Symu.Messaging.Messages;
Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Classes/Agents/CognitiveAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
using Symu.Classes.Blockers;
using Symu.Classes.Task.Manager;
using Symu.Common.Interfaces.Agent;
using Symu.DNA.TwoModesNetworks.Sphere;
using Symu.DNA.Networks.TwoModesNetworks.Sphere;
using Symu.Environment;
using Symu.Repository.Entity;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@
using System.Collections.Generic;
using Symu.Common.Interfaces.Agent;
using Symu.DNA;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.TwoModesNetworks.Assignment;
using Symu.DNA.Networks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.DNA.Networks.TwoModesNetworks.Assignment;

#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@
using Symu.Common.Interfaces.Entity;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.TwoModesNetworks.AgentBelief;
using Symu.DNA.TwoModesNetworks.AgentKnowledge;
using Symu.DNA.Networks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.DNA.Networks.TwoModesNetworks.AgentBelief;
using Symu.DNA.Networks.TwoModesNetworks.AgentKnowledge;
using Symu.Messaging.Templates;
using Symu.Repository.Entity;
using static Symu.Common.Constants;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
using Symu.Common.Classes;
using Symu.Common.Interfaces.Entity;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA.TwoModesNetworks.AgentKnowledge;
using Symu.DNA.Networks.TwoModesNetworks.AgentKnowledge;
using Symu.Repository.Entity;
using static Symu.Common.Constants;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
using Symu.Common.Interfaces.Entity;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.Networks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.Repository.Entity;

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
using System;
using Symu.Common;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA.TwoModesNetworks.Sphere;
using Symu.DNA.Networks.TwoModesNetworks.Sphere;

#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
using Symu.Common.Interfaces.Entity;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.TwoModesNetworks.AgentKnowledge;
using Symu.DNA.Networks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.DNA.Networks.TwoModesNetworks.AgentKnowledge;
using Symu.Messaging.Templates;
using Symu.Repository.Entity;
using static Symu.Common.Constants;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
using Symu.Common.Interfaces.Entity;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.TwoModesNetworks.AgentKnowledge;
using Symu.DNA.Networks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.DNA.Networks.TwoModesNetworks.AgentKnowledge;
using Symu.Repository.Entity;
using static Symu.Common.Constants;

Expand Down
13 changes: 2 additions & 11 deletions SourceCode/Symu/Classes/Agents/ReactiveAgent.Messaging.cs
Original file line number Diff line number Diff line change
Expand Up @@ -287,21 +287,12 @@ public void TrySendDelayed(Message message, ushort step)
}

var receiver = Environment.WhitePages.GetAgent(message.Receiver);
if (receiver == null)
if (receiver == null || receiver.State == AgentState.Stopping)
{
// receiver is already stopped
return;
}

switch (receiver.State)
{
case AgentState.Stopping:
return;
case AgentState.Starting:
case AgentState.Started:
SendDelayed(message, step);
break;
}
SendDelayed(message, step);
}

private void SendDelayed(Message message, ushort step)
Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Classes/Agents/ReactiveAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
using System;
using Symu.Common;
using Symu.Common.Interfaces.Agent;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.Environment;
using Symu.Messaging.Manager;
using Symu.Messaging.Messages;
Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Classes/Murphies/MurphyIncompleteBelief.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

using System;
using Symu.Classes.Task;
using Symu.DNA.TwoModesNetworks.AgentBelief;
using Symu.DNA.Networks.TwoModesNetworks.AgentBelief;
using Symu.Repository.Entity;

#endregion
Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Classes/Organization/OrganizationModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
using Symu.Classes.Agents.Models;
using Symu.Common;
using Symu.Common.Classes;
using Symu.DNA.TwoModesNetworks.Sphere;
using Symu.DNA.Networks.TwoModesNetworks.Sphere;
using Symu.Engine;
using Symu.Repository.Entity;

Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Classes/Task/SymuTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
using Symu.Common;
using Symu.Common.Interfaces.Agent;
using Symu.Common.Interfaces.Entity;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.Repository.Entity;
using Symu.Results.Blocker;
using static Symu.Common.Constants;
Expand Down
3 changes: 2 additions & 1 deletion SourceCode/Symu/Engine/SymuEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
using Symu.Classes.Scenario;
using Symu.Common;
using Symu.Common.Interfaces.Agent;
using Symu.DNA.MatrixNetworks;
using Symu.Environment;
using Symu.Repository.Entity;
using Symu.Results;
Expand Down Expand Up @@ -59,7 +60,7 @@ public class SymuEngine
/// <summary>
/// Used when Event OnNextDay is triggered by this class
/// </summary>
public virtual void OnNextStep()
public void OnNextStep()
{
Environment.OnNextStep();
}
Expand Down
1 change: 1 addition & 0 deletions SourceCode/Symu/Environment/Schedule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#region using directives

using System;
using Symu.Common.Classes;

#endregion

Expand Down
2 changes: 2 additions & 0 deletions SourceCode/Symu/Environment/SymuEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,8 @@ public void SendDelayedMessages()
{
SendAgent(message);
}

Messages.WaitingToClearAllMessages();
}

#endregion
Expand Down
24 changes: 0 additions & 24 deletions SourceCode/Symu/Environment/TimeStepType.cs

This file was deleted.

1 change: 1 addition & 0 deletions SourceCode/Symu/Environment/TimeStepTypeService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

using System;
using System.Linq;
using Symu.Common.Classes;

#endregion

Expand Down
17 changes: 14 additions & 3 deletions SourceCode/Symu/Repository/Entity/Activity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
using System.Collections.Generic;
using System.Linq;
using Symu.Common.Interfaces.Entity;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.Networks.OneModeNetworks;

#endregion

Expand All @@ -25,13 +25,24 @@ namespace Symu.Repository.Entity
/// </summary>
public class Activity : IActivity
{
public Activity(string name)
public Activity(ushort id, string name)
{
Id = new UId(id);
Name = name;
}
public Activity(IId id, string name)
{
Id = id;
Name = name;
}

public string Name { get; set; }

/// <summary>
/// Unique identifier of the activity
/// </summary>
public IId Id { get; }

/// <summary>
/// List of knowledges required to work on this activity
/// </summary>
Expand Down Expand Up @@ -66,7 +77,7 @@ public bool CheckKnowledgeIds(List<IId> agentKnowledgeIds)
public bool Equals(IActivity activity)
{
return activity is Activity act &&
Name == act.Name;
Id.Equals(act.Id);
}
}
}
10 changes: 8 additions & 2 deletions SourceCode/Symu/Repository/Entity/AgentActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

using Symu.Common.Interfaces.Agent;
using Symu.Common.Interfaces.Entity;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.TwoModesNetworks.Assignment;
using Symu.DNA.Networks.OneModeNetworks;
using Symu.DNA.Networks.TwoModesNetworks.Assignment;

#endregion

Expand All @@ -26,6 +26,12 @@ public AgentActivity(IAgentId id, IActivity activity)
Activity = activity;
}

/// <summary>
/// The value used to feed the matrix network
/// For a binary matrix network, the value is 1
/// </summary>
public float Value => 1;

public IAgentId Id { get; }
public IActivity Activity { get; set; }
}
Expand Down
16 changes: 13 additions & 3 deletions SourceCode/Symu/Repository/Entity/AgentBelief.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@

using System;
using System.Linq;
using Symu.Common;
using Symu.Common.Classes;
using Symu.Common.Interfaces.Entity;
using Symu.Common.Math.ProbabilityDistributions;
using Symu.DNA.TwoModesNetworks.AgentBelief;
using Symu.DNA.Networks.TwoModesNetworks.AgentBelief;
using static Symu.Common.Constants;

#endregion
Expand All @@ -39,6 +38,17 @@ public class AgentBelief : IAgentBelief
/// </summary>
private const int RangeMax = 1;

#region IAgentBelief
public IId BeliefId { get; }

/// <summary>
/// The value used to feed the matrix network
/// For a binary matrix network, the value is 1
/// </summary>
public float Value => GetBeliefSum();

#endregion

public AgentBelief(ushort beliefId, BeliefLevel beliefLevel) : this(new UId(beliefId), beliefLevel)
{
}
Expand All @@ -49,7 +59,6 @@ public AgentBelief(IId beliefId, BeliefLevel beliefLevel)
BeliefLevel = beliefLevel;
}

public IId BeliefId { get; }
public Bits BeliefBits { get; set; } = new Bits(RangeMin);
public BeliefLevel BeliefLevel { get; }

Expand Down Expand Up @@ -256,5 +265,6 @@ public void SetBeliefBit(byte index, float value)
{
BeliefBits.SetBit(index, value);
}

}
}
2 changes: 1 addition & 1 deletion SourceCode/Symu/Repository/Entity/AgentDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
using Symu.Common.Interfaces;
using Symu.Common.Interfaces.Agent;
using Symu.Common.Interfaces.Entity;
using Symu.DNA.OneModeNetworks;
using Symu.DNA.Networks.OneModeNetworks;

#endregion

Expand Down
2 changes: 1 addition & 1 deletion SourceCode/Symu/Repository/Entity/AgentGroup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

using Symu.Common.Interfaces;
using Symu.Common.Interfaces.Agent;
using Symu.DNA.TwoModesNetworks.AgentGroup;
using Symu.DNA.Networks.TwoModesNetworks.AgentGroup;

#endregion

Expand Down

0 comments on commit 6568c23

Please sign in to comment.