Пример #1
0
 private static AlgorithmConfiguration MakeAlgorithmConfiguration(
     CognitiveLevel cognitiveLevel, Demographic demographic, IEnumerable <Probability> probabilities)
 {
     return(new AlgorithmConfiguration
     {
         CognitiveLevel = cognitiveLevel,
         DemographicConfiguration = new DemographicProcessesConfiguration
         {
             AdoptionProbability = demographic.AdoptionProbability,
             BirthProbability = demographic.BirthProbability,
             DeathProbability = demographic.DeathProbability,
             HomosexualTypeRate = demographic.HomosexualTypeRate,
             MinimumAgeForHouseholdHead = demographic.MinimumAgeForHouseholdHead,
             PairingAgeMax = demographic.PairingAgeMax,
             PairingAgeMin = demographic.PairingAgeMin,
             PairingProbability = demographic.PairingProbability,
             SexualOrientationRate = demographic.SexualOrientationRate,
             YearsBetweenBirths = demographic.YearsBetweenBirths,
             MaximumAge = demographic.MaximumAge
         },
         ProbabilitiesConfiguration = probabilities.Select(p => new ProbabilitiesConfiguration
         {
             FilePath = p.FileName,
             Variable = p.VariableParameter,
             VariableType = p.VariableType,
             WithHeader = p.IgnoreFirstLine // ignore first line means there is a header
         }).ToArray(),
         UseDimographicProcesses = demographic.DemographicChange
     });
 }
Пример #2
0
        /// <summary>
        /// Create processes configuration for specific cognitive level
        /// </summary>
        /// <param name="cognitiveLevel"></param>
        /// <returns></returns>
        public static ProcessesConfiguration GetProcessesConfiguration(CognitiveLevel cognitiveLevel)
        {
            switch (cognitiveLevel)
            {
            case CognitiveLevel.CL1:
                return(new ProcessesConfiguration
                {
                    ActionTakingEnabled = true,
                    DecisionOptionSelectionEnabled = true,
                    DecisionOptionSelectionPart2Enabled = true,
                    AgentRandomizationEnabled = true,
                });

            case CognitiveLevel.CL2:
                return(new ProcessesConfiguration
                {
                    ActionTakingEnabled = true,
                    AnticipatoryLearningEnabled = true,
                    DecisionOptionSelectionEnabled = true,
                    DecisionOptionSelectionPart2Enabled = true,
                    AgentRandomizationEnabled = true
                });

            case CognitiveLevel.CL3:
                return(new ProcessesConfiguration
                {
                    ActionTakingEnabled = true,
                    AnticipatoryLearningEnabled = true,
                    DecisionOptionSelectionEnabled = true,
                    DecisionOptionSelectionPart2Enabled = true,
                    SocialLearningEnabled = true,
                    AgentRandomizationEnabled = true,
                });

            case CognitiveLevel.CL4:
                return(new ProcessesConfiguration
                {
                    ActionTakingEnabled = true,
                    AnticipatoryLearningEnabled = true,
                    DecisionOptionSelectionEnabled = true,
                    DecisionOptionSelectionPart2Enabled = true,
                    SocialLearningEnabled = true,
                    CounterfactualThinkingEnabled = true,
                    InnovationEnabled = true,
                    ReproductionEnabled = true,
                    AgentRandomizationEnabled = true
                });

            default:
                throw new SosielAlgorithmException("Unknown cognitive level");
            }
        }