public static void SetUpAIParams(string fileName) { // set the temporary culture for importing string temp_culture = Thread.CurrentThread.CurrentCulture.Name; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); //[ANN] Bias = double.Parse(ReadParam("Bias", fileName)); ActivationResponse = double.Parse(ReadParam("ActivationResponse", fileName)); NumOutputs = int.Parse(ReadParam("NumOutputs", fileName)); NumInputs = int.Parse(ReadParam("NumInputs", fileName)); NumHidden = int.Parse(ReadParam("NumHidden", fileName)); NeuronsPerHiddenLayer = int.Parse(ReadParam("NeuronsPerHiddenLayer", fileName)); //[GA] MaxPerturbation = double.Parse(ReadParam("MaxPerturbation", fileName)); NumElite = int.Parse(ReadParam("NumElite", fileName)); NumCopiesElite = int.Parse(ReadParam("NumCopiesElite", fileName)); CrossoverRate = double.Parse(ReadParam("CrossoverRate", fileName)); MultiPointCrossover = bool.Parse(ReadParam("MultiPointCrossover", fileName)); MutationRate = double.Parse(ReadParam("MutationRate", fileName)); switch (ReadParam("FitnessScalling", fileName)) { case "Ranking": FitnessScalling = FitnessScallingType.Ranking; break; case "Boltzmann": FitnessScalling = FitnessScallingType.Boltzmann; break; case "Sigma": FitnessScalling = FitnessScallingType.Sigma; break; case "NoneUnsigned": FitnessScalling = FitnessScallingType.NoneUnsigned; break; default: FitnessScalling = FitnessScallingType.NoneUnsigned; break; } BoltzmannTemperature = double.Parse(ReadParam("BoltzmannTemperature", fileName)); BoltzmannTemperatureStep = double.Parse(ReadParam("BoltzmannTemperatureStep", fileName)); BoltzmannMinTemperature = double.Parse(ReadParam("BoltzmannMinTemperature", fileName)); //[how long last one epoch in evolution (in rames)] UPDATE_EVOLUTION_ENABLED = bool.Parse(ReadParam("UPDATE_EVOLUTION_ENABLED", fileName)); UPDATE_EVOLUTION_TIME_PERIOD_FRAMES = int.Parse(ReadParam("UPDATE_EVOLUTION_TIME_PERIOD_FRAMES", fileName)); UPDATE_LIFE_POINTS = bool.Parse(ReadParam("UPDATE_LIFE_POINTS", fileName)); FITNESS_EXPERIENCE_MULTIPLICATION_FACTOR = double.Parse(ReadParam("FITNESS_EXPERIENCE_MULTIPLICATION_FACTOR", fileName)); FITNESS_INCREASE_MED = double.Parse(ReadParam("FITNESS_INCREASE_MED", fileName)); FITNESS_DECREASE_MED = double.Parse(ReadParam("FITNESS_DECREASE_MED", fileName)); FITNESS_INCREASE_BONUS = double.Parse(ReadParam("FITNESS_INCREASE_BONUS", fileName)); FITNESS_DECREASE_BONUS = double.Parse(ReadParam("FITNESS_DECREASE_BONUS", fileName)); FITNESS_INCREASE_GET_TO_COVER = double.Parse(ReadParam("FITNESS_INCREASE_GET_TO_COVER", fileName)); FITNESS_INCREASE_KILL = double.Parse(ReadParam("FITNESS_INCREASE_KILL_CONCIDENCE", fileName)); FITNESS_INCREASE_KILL_CONCIDENCE = double.Parse(ReadParam("FITNESS_INCREASE_KILL", fileName)); FITNESS_INCREASE_DIE = double.Parse(ReadParam("FITNESS_INCREASE_DIE", fileName)); FITNESS_INCREASE_DIE_STRONG = double.Parse(ReadParam("FITNESS_INCREASE_DIE_STRONG", fileName)); FITNESS_INCREASE_HIT = double.Parse(ReadParam("FITNESS_INCREASE_HIT", fileName)); FITNESS_INCREASE_GOT_HIT = double.Parse(ReadParam("FITNESS_INCREASE_GOT_HIT", fileName)); FITNESS_INCREASE_WITH_TIME_ENABLE = bool.Parse(ReadParam("FITNESS_INCREASE_WITH_TIME_ENABLE", fileName)); FITNESS_INCREASE_WITH_TIME_PERIOD_FRAMES = int.Parse(ReadParam("FITNESS_INCREASE_WITH_TIME_PERIOD_FRAMES", fileName)); FITNESS_INCREASE_WITH_TIME = double.Parse(ReadParam("FITNESS_INCREASE_WITH_TIME", fileName)); OBJECT_RANGE_LEADER = float.Parse(ReadParam("OBJECT_RANGE_LEADER", fileName)); OBJECT_RANGE_SNIPER = float.Parse(ReadParam("OBJECT_RANGE_SNIPER", fileName)); OBJECT_RANGE_INFANTRY = float.Parse(ReadParam("OBJECT_RANGE_INFANTRY", fileName)); OBJECT_RANGE_SUPPORT = float.Parse(ReadParam("OBJECT_RANGE_SUPPORT", fileName)); // [test configuration] CONFIG_DUMP_ALL_POPULATIONS = bool.Parse(ReadParam("CONFIG_DUMP_ALL_POPULATIONS", fileName)); CONFIG_DUMP_ALL_POPULATIONS_FILE_PATH = Path.Combine(PATH_APPLICATION, ReadParam("CONFIG_DUMP_ALL_POPULATIONS_FILE_PATH", fileName)); CONFIG_DUMP_LAST_POPULATION = bool.Parse(ReadParam("CONFIG_DUMP_LAST_POPULATION", fileName)); CONFIG_DUMP_LAST_POPULATION_FILE_PATH = Path.Combine(PATH_APPLICATION, ReadParam("CONFIG_DUMP_LAST_POPULATION_FILE_PATH", fileName)); CONFIG_DUMP_ANN_VECTORS = bool.Parse(ReadParam("CONFIG_DUMP_ANN_VECTORS", fileName)); CONFIG_DUMP_ANN_VECTORS_NUM_PROBES = int.Parse(ReadParam("CONFIG_DUMP_ANN_VECTORS_NUM_PROBES", fileName)); CONFIG_DUMP_ANN_VECTORS_FILE_PATH = Path.Combine(PATH_APPLICATION, ReadParam("CONFIG_DUMP_ANN_VECTORS_FILE_PATH", fileName)); CONFIG_GET_GENERATION_FROM_FILE = bool.Parse(ReadParam("CONFIG_GET_GENERATION_FROM_FILE", fileName)); CONFIG_GET_GENERATION_FROM_FILE_ONLY_ELITE = bool.Parse(ReadParam("CONFIG_GET_GENERATION_FROM_FILE_ONLY_ELITE", fileName)); CONFIG_GET_GENERATION_FROM_FILE_PATH = Path.Combine(PATH_APPLICATION, ReadParam("CONFIG_GET_GENERATION_FROM_FILE_PATH", fileName)); CONFIG_LOW_RENDER = bool.Parse(ReadParam("CONFIG_LOW_RENDER", fileName)); CONFIG_ENABLE_DEFAULT_LIGHTING = bool.Parse(ReadParam("CONFIG_ENABLE_DEFAULT_LIGHTING", fileName)); CONFIG_TERREIN_HEIGHT_PARAMETER = float.Parse(ReadParam("CONFIG_TERREIN_HEIGHT_PARAMETER", fileName)); CONFIG_NUMBER_COVERS = int.Parse(ReadParam("CONFIG_NUMBER_COVERS", fileName)); CONFIG_NUMBER_MEDS = int.Parse(ReadParam("CONFIG_NUMBER_MEDS", fileName)); CONFIG_NUMBER_BONUSES = int.Parse(ReadParam("CONFIG_NUMBER_BONUSES", fileName)); CONFIG_NUMBER_AIOBJECTS_IN_TEAM = int.Parse(ReadParam("CONFIG_NUMBER_AIOBJECTS_IN_TEAM", fileName)); CONFIG_INCREASE_EXP_BONUS = float.Parse(ReadParam("CONFIG_INCREASE_EXP_BONUS", fileName)); CONFIG_INCREASE_EXP_KILL = float.Parse(ReadParam("CONFIG_INCREASE_EXP_KILL", fileName)); CONFIG_INCREASE_MED = float.Parse(ReadParam("CONFIG_INCREASE_MED", fileName)); CONFIG_DECREASE_OF_LIFE_WHEN_HIT = float.Parse(ReadParam("CONFIG_DECREASE_OF_LIFE_WHEN_HIT", fileName)); CONFIG_COVER_ADD_POINTS = float.Parse(ReadParam("CONFIG_COVER_ADD_POINTS", fileName)); // restore current culture after importing Thread.CurrentThread.CurrentCulture = new CultureInfo(temp_culture); }