package org.societies.context.user.refinement.impl.tools; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.context.user.refinement.impl.bayesianLibrary.bayesianLearner.impl.BasicGreedyHillClimber; public class LearningPropertyLoader { private static final String PropertiesFilePath = "resources"; private static final String PropertiesFileName = "restartconfiguration.properties"; private static boolean RestartConfiguration_IncreasingNumberOfModifiedNodes; private static boolean RestartConfiguration_RandomHigherNumberOfModifiedNodes; private static double RestartConfiguration_RemoveAllParentsProbability; private static double RestartConfiguration_DontAddNewArcsWhenNoArcsAreRemovedProbability; private static double RestartConfiguration_AddNewArcsAlthoughArcsHaveBeenRemovedProbability; private static int RestartConfiguration_MaxNoNodesModifiedByRestart; //range: 1:(#RVs-1) private static double RestartConfiguration_PercentageOfGlobalRandomRestarts; private static double RestartConfiguration_DurationOfRandomRestartsWithLocalBestInHours; private static double RestartConfiguration_DurationOfRandomRestartsWithAbsoluteBestInHours; private static double RestartConfiguration_CacheHitRateThreshold; private static int RestartConfiguration_maxLocalRestarts; private static Logger log4j = LoggerFactory.getLogger(BasicGreedyHillClimber.class); static{ Properties prop = new Properties(); try { prop.load(new FileInputStream(new File(PropertiesFilePath+File.separator+PropertiesFileName))); String temp = (String) prop.get("RestartConfiguration_RemoveAllParentsProbability"); RestartConfiguration_RemoveAllParentsProbability = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_DontAddNewArcsWhenNoArcsAreRemovedProbability"); RestartConfiguration_DontAddNewArcsWhenNoArcsAreRemovedProbability = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_AddNewArcsAlthoughArcsHaveBeenRemovedProbability"); RestartConfiguration_AddNewArcsAlthoughArcsHaveBeenRemovedProbability = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_MaxNoNodesModifiedByRestart"); RestartConfiguration_MaxNoNodesModifiedByRestart = Integer.parseInt(temp); temp = (String) prop.get("RestartConfiguration_IncreasingNumberOfModifiedNodes"); RestartConfiguration_IncreasingNumberOfModifiedNodes = Boolean.parseBoolean(temp); temp = (String) prop.get("RestartConfiguration_RandomHigherNumberOfModifiedNodes"); RestartConfiguration_RandomHigherNumberOfModifiedNodes = Boolean.parseBoolean(temp); temp = (String) prop.get("RestartConfiguration_PercentageOfGlobalRandomRestarts"); RestartConfiguration_PercentageOfGlobalRandomRestarts = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_DurationOfRandomRestartsWithLocalBestInHours"); RestartConfiguration_DurationOfRandomRestartsWithLocalBestInHours = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_DurationOfRandomRestartsWithAbsoluteBestInHours"); RestartConfiguration_DurationOfRandomRestartsWithAbsoluteBestInHours = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_CacheHitRateThreshold"); RestartConfiguration_CacheHitRateThreshold = Double.parseDouble(temp); temp = (String) prop.get("RestartConfiguration_maxLocalRestarts"); RestartConfiguration_maxLocalRestarts = Integer.parseInt(temp); } catch (FileNotFoundException e1) { log4j.error("FileNotFoundException for properties file. BasicGreedyHillClimber will use default parameters."); } catch (IOException e1) { log4j.error("IOException when reading properties file. BasicGreedyHillClimber will use default parameters."); } } public static double getRestartConfiguration_RemoveAllParentsProbability() { return RestartConfiguration_RemoveAllParentsProbability; } public static double getRestartConfiguration_DontAddNewArcsWhenNoArcsAreRemovedProbability() { return RestartConfiguration_DontAddNewArcsWhenNoArcsAreRemovedProbability; } public static double getRestartConfiguration_AddNewArcsAlthoughArcsHaveBeenRemovedProbability() { return RestartConfiguration_AddNewArcsAlthoughArcsHaveBeenRemovedProbability; } public static int getRestartConfiguration_MaxNoNodesModifiedByRestart() { return RestartConfiguration_MaxNoNodesModifiedByRestart; } public static boolean getRestartConfiguration_IncreasingNumberOfModifiedNodes() { return RestartConfiguration_IncreasingNumberOfModifiedNodes; } public static boolean getRestartConfiguration_RandomHigherNumberOfModifiedNodes() { return RestartConfiguration_RandomHigherNumberOfModifiedNodes; } public static double getRestartConfiguration_PercentageOfGlobalRandomRestarts() { return RestartConfiguration_PercentageOfGlobalRandomRestarts; } public static double getRestartConfiguration_DurationOfRandomRestartsWithLocalBestInHours() { return RestartConfiguration_DurationOfRandomRestartsWithLocalBestInHours; } public static double getRestartConfiguration_DurationOfRandomRestartsWithAbsoluteBestInHours() { return RestartConfiguration_DurationOfRandomRestartsWithAbsoluteBestInHours; } public static double getRestartConfiguration_CacheHitRateThreshold() { return RestartConfiguration_CacheHitRateThreshold; } public static int getRestartConfiguration_maxLocalRestarts() { return RestartConfiguration_maxLocalRestarts; } }