Skip to content

Commit

Permalink
Added combo rewards and polling social learning methods
Browse files Browse the repository at this point in the history
  • Loading branch information
tansey committed Nov 14, 2012
1 parent 888fedf commit 64f3e5a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
9 changes: 7 additions & 2 deletions social_learning/ForagingEvaluator.cs
Expand Up @@ -493,6 +493,8 @@ void _world_PlantEaten(object sender, IAgent eaterAgent, Plant eaten)
// Only learn from rewards if we're using a reward-based social learning paradigm
if (TeachParadigm != TeachingParadigm.EveryoneRewards
&& TeachParadigm != TeachingParadigm.SubcultureRewards
&& TeachParadigm != TeachingParadigm.EveryoneRewardsAndPolling
&& TeachParadigm != TeachingParadigm.SubcultureRewardsAndPolling
&& TeachParadigm != TeachingParadigm.SubcultureRewardFiltering)
return;

Expand All @@ -514,7 +516,8 @@ void _world_PlantEaten(object sender, IAgent eaterAgent, Plant eaten)

// Only update individuals in your subculture
if ((TeachParadigm == TeachingParadigm.SubcultureRewards
|| TeachParadigm == TeachingParadigm.SubcultureRewardFiltering)
|| TeachParadigm == TeachingParadigm.SubcultureRewardFiltering
|| TeachParadigm == TeachingParadigm.SubcultureRewardsAndPolling)
&& _agentGroups[eater.Id] != _agentGroups[i])
continue;

Expand Down Expand Up @@ -550,7 +553,9 @@ void pollAlternativeAction(IAgent agent)
// We need to handle this by polling other agents to see if they
// could have avoided it.
if (TeachParadigm != TeachingParadigm.EveryonePolling &&
TeachParadigm != TeachingParadigm.SubculturePolling)
TeachParadigm != TeachingParadigm.EveryoneRewardsAndPolling &&
TeachParadigm != TeachingParadigm.SubculturePolling &&
TeachParadigm != TeachingParadigm.SubcultureRewardsAndPolling)
return;

// If we are using EveryonePolling, the agent can ask the entire population.
Expand Down
8 changes: 8 additions & 0 deletions social_learning/TeachingParadigm.cs
Expand Up @@ -17,6 +17,10 @@ public enum TeachingParadigm
/// </summary>
EveryonePolling,
/// <summary>
/// Everyone learns from everyone else, using a combination of Rewards and Polling strategies.
/// </summary>
EveryoneRewardsAndPolling,
/// <summary>
/// Everyone observes and learns only from others in their subculture whenever an action leads to a reward.
/// </summary>
SubcultureRewards,
Expand All @@ -36,6 +40,10 @@ public enum TeachingParadigm
/// </summary>
SubculturePolling,
/// <summary>
/// Everyone learns from their own subculture, using a combination of Rewards and Polling strategies.
/// </summary>
SubcultureRewardsAndPolling,
/// <summary>
/// All champions from the previous generation teach the children of the current generation on every action (gaussian noise).
/// </summary>
GenerationalChampionOfflineTraining,
Expand Down

0 comments on commit 64f3e5a

Please sign in to comment.