diff --git a/AMOEBAonAMAK/src/experiments/XmlConfigGenerator.java b/AMOEBAonAMAK/src/experiments/XmlConfigGenerator.java deleted file mode 100644 index 00f5086a85ab7d5363024529ae1cf8a115749274..0000000000000000000000000000000000000000 --- a/AMOEBAonAMAK/src/experiments/XmlConfigGenerator.java +++ /dev/null @@ -1,69 +0,0 @@ -package experiments; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; - -public class XmlConfigGenerator { - - public XmlConfigGenerator() { - - } - - public static String makeLineXML(String sensorName, String source) { - return "\t\t<Sensor Name=\""+sensorName+"\" Source=\""+source+"\"></Sensor>\n"; - } - - public static void makeXML(String XMLFile, int dimension) { - String path = "Ressources"; - - try { - File file = new File(path+"/"+XMLFile); - FileWriter fw = new FileWriter(file); - - //Make content - String str = ""; - str += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + - "<System>\n" + - "\n" + - "\t<!-- General config options -->\n" + - "\t<Configuration>\n" + - "\t\t<Learning allowed = \"true\" creationOfNewContext = \"true\" loadPresetContext = \"false\"></Learning> \n" + - "\t</Configuration>\n" + - "\n" + - "\t<StartingAgents>\n"; - - for(int j = 0; j < dimension; ++j) { - str += makeLineXML("px"+j,"x"+j); - } - - str += "\t\t<Controller Name=\"Controller\" Oracle=\"test\"></Controller>\n\n"; - - - - str += "\t</StartingAgents>\n" + - "\n" + - "</System>"; - - //Write and close file - fw.write(str); - fw.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static void main(String[] args) { - // TODO Auto-generated method stub - - - String XMLConfigFile = "nDimensionLauncher.xml"; - - XmlConfigGenerator.makeXML(XMLConfigFile, 2); - - - } -} diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java index 5a9e38b3e7007b38ae8e0c90a8bf84420d1a82eb..c24ccaa1065a4bfe73b2a10343315454805b0539 100644 --- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java +++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java @@ -4,13 +4,8 @@ import java.io.File; import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import agents.context.Context; import experiments.FILE; -import experiments.F_XY_System; -import experiments.XmlConfigGenerator; import fr.irit.smac.amak.Configuration; import gui.AmoebaWindow; import kernel.AMOEBA; diff --git a/AMOEBAonAMAK/src/utils/XmlConfigGenerator.java b/AMOEBAonAMAK/src/utils/XmlConfigGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..3819e2af7c35df94763eab320fbacd78491f335e --- /dev/null +++ b/AMOEBAonAMAK/src/utils/XmlConfigGenerator.java @@ -0,0 +1,61 @@ +package utils; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class XmlConfigGenerator { + + public static String header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; + public static String systemStart = "<System>\n"; + public static String configurationStart = "<Configuration>\n"; + public static String configuration = " <Learning allowed = \"%s\" creationOfNewContext = \"%s\" loadPresetContext = \"%s\" />\n"; + public static String configurationEnd = "</Configuration>\n"; + public static String agentsStart = "<StartingAgents>\n"; + public static String sensor = " <Sensor Name=\"%s\" Enum=\"%s\" />\n"; + public static String controller = " <Controller Name=\"Controller\">\n" + + " <ErrorMargin ErrorAllowed=\"%f\" AugmentationFactorError=\"%f\" DiminutionFactorError=\"%f\" MinErrorAllowed=\"%f\" NConflictBeforeAugmentation=\"%d\" NSuccessBeforeDiminution=\"%d\" />\n" + + " </Controller>\n"; + public static String agentsEnd = "</StartingAgents>\n"; + public static String systemEnd = "</System>\n"; + + private static String makeSensor(String sensorName, boolean isEnum) { + return String.format(sensor, sensorName, ""+isEnum); + } + + private static String makeConfiguration(boolean isLearningAllowed, boolean isCreationOfNewContext, boolean isLoadContext) { + return String.format(configuration, ""+isLearningAllowed, ""+isCreationOfNewContext, ""+isLoadContext); + } + + private static String makeController(double errorAllowed, double augmentationFactorError, double diminutionFactorError, double minErrorAllowed, int nConflictBeforeAugmentation, int nSuccessBeforeDiminution) { + return String.format(Locale.ENGLISH, controller, errorAllowed, augmentationFactorError, diminutionFactorError, minErrorAllowed, nConflictBeforeAugmentation, nSuccessBeforeDiminution); + } + + public static void makeXML(File file, List<Pair<String, Boolean>> sensors) throws IOException { + try(FileWriter fw = new FileWriter(file)){ + fw.write(header); + fw.write(systemStart); + fw.write(configurationStart); + fw.write(makeConfiguration(true, true, false)); + fw.write(configurationEnd); + fw.write(agentsStart); + for(Pair<String, Boolean> s : sensors) { + fw.write(makeSensor(s.getA(), s.getB())); + } + fw.write(makeController(1.0, 0.5, 0.5, 0.01, 50, 50)); + fw.write(agentsEnd); + fw.write(systemEnd); + } + } + + public static void makeXML(File file, int dimension) throws IOException { + ArrayList<Pair<String, Boolean>> sensors = new ArrayList<>(dimension); + for(int i = 1; i <= dimension; i++) { + sensors.add(new Pair<String, Boolean>("p"+i, false)); + } + makeXML(file, sensors); + } +}