diff --git a/code/.classpath b/code/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..5cd0018ecb102f119f893361bd56e93417b8c2e7
--- /dev/null
+++ b/code/.classpath
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="lib" path="C:/working_dir/metzger/09-eclipse-ws/icsoc20/opencsv-3.8.jar"/>
+	<classpathentry kind="lib" path="C:/working_dir/metzger/09-eclipse-ws/icsoc20/antlr-3.4.jar"/>
+	<classpathentry kind="lib" path="C:/working_dir/metzger/09-eclipse-ws/icsoc20/commons-io-2.6.jar"/>
+	<classpathentry kind="lib" path="C:/working_dir/metzger/09-eclipse-ws/icsoc20/de.ovgu.featureide.lib.fm.core.jar"/>
+	<classpathentry kind="lib" path="C:/working_dir/metzger/09-eclipse-ws/icsoc20/org.sat4j.core.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/code/antlr-3.4.jar b/code/antlr-3.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..bf0ad012800d3e26aa2a953d264746cf4f376591
Binary files /dev/null and b/code/antlr-3.4.jar differ
diff --git a/code/commons-io-2.6.jar b/code/commons-io-2.6.jar
new file mode 100644
index 0000000000000000000000000000000000000000..00556b119d45dd85a3c3073b1826916c3c60b9c4
Binary files /dev/null and b/code/commons-io-2.6.jar differ
diff --git a/code/de.ovgu.featureide.lib.fm.core.jar b/code/de.ovgu.featureide.lib.fm.core.jar
new file mode 100644
index 0000000000000000000000000000000000000000..d7381710ca8314676597d984dc941c576b69227e
Binary files /dev/null and b/code/de.ovgu.featureide.lib.fm.core.jar differ
diff --git a/code/opencsv-3.8.jar b/code/opencsv-3.8.jar
new file mode 100644
index 0000000000000000000000000000000000000000..7a594a956523d03a847333b2394af896d865224b
Binary files /dev/null and b/code/opencsv-3.8.jar differ
diff --git a/code/org.sat4j.core.jar b/code/org.sat4j.core.jar
new file mode 100644
index 0000000000000000000000000000000000000000..fb9383e691df5de61fe075c2e48db3415f0e3a74
Binary files /dev/null and b/code/org.sat4j.core.jar differ
diff --git a/code/resources/cloudrm.csv b/code/resources/cloudrm.csv
new file mode 100644
index 0000000000000000000000000000000000000000..4dacdf019e1d4f0fe4ca311f6dfb0701dbf96e39
--- /dev/null
+++ b/code/resources/cloudrm.csv
@@ -0,0 +1,345 @@
+reward_norm;tot_energy/hr;nr_vm_ops/hr;c
+-0,743043137;11,2291523;15,93965517;cloudrm,simple
+-1,685842441;9,259827586;65;cloudrm,multiple,taskgroupsizek,taskgroupsizek5
+-1,667826417;10,03515805;61,19109195;cloudrm,multiple,taskgroupsizek,taskgroupsizek4
+-1,606810068;8,723333333;62,31752874;cloudrm,multiple,taskgroupsizek,taskgroupsizek6
+-1,522474651;8,28908046;58,96264368;cloudrm,multiple,taskgroupsizek,taskgroupsizek7
+-1,469948816;7,980991379;57,00718391;cloudrm,multiple,taskgroupsizek,taskgroupsizek8
+-1,394971976;7,6825;53,71264368;cloudrm,multiple,taskgroupsizek,taskgroupsizek9
+-1,346345456;7,442068966;51,74281609;cloudrm,multiple,taskgroupsizek,taskgroupsizek10
+-1,284156229;7,257442529;48,78591954;cloudrm,multiple,taskgroupsizek,taskgroupsizek11
+-1,229263509;7,107974138;46,12787356;cloudrm,multiple,taskgroupsizek,taskgroupsizek12
+-1,175071139;6,984454023;43,41810345;cloudrm,multiple,taskgroupsizek,taskgroupsizek13
+-1,15672546;6,86783046;42,76724138;cloudrm,multiple,taskgroupsizek,taskgroupsizek14
+-1,12153873;6,737385057;41,18678161;cloudrm,multiple,taskgroupsizek,taskgroupsizek15
+-1,082184687;6,630100575;39,2816092;cloudrm,multiple,taskgroupsizek,taskgroupsizek16
+-1,064484205;6,563936782;38,48850575;cloudrm,multiple,taskgroupsizek,taskgroupsizek17
+-1,041037569;6,484281609;37,40948276;cloudrm,multiple,taskgroupsizek,taskgroupsizek18
+-1,021398075;6,436091954;36,43965517;cloudrm,multiple,taskgroupsizek,taskgroupsizek19
+-0,987911029;6,353951149;34,78591954;cloudrm,multiple,taskgroupsizek,taskgroupsizek20
+-0,975658559;12,6791092;11,54310345;cloudrm,multiple,taskgroupsizek,taskgroupsizek2
+-0,841958778;11,15824713;9,189655172;cloudrm,multiple,taskgroupsizek,taskgroupsizek3
+-0,867102068;11,2062931;10,47988506;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicyff
+-0,867387794;11,21377874;10,46982759;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicyff
+-0,866776264;11,20097701;10,47988506;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicyff
+-0,866711246;11,21;10,44396552;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicyff
+-0,866709588;11,21481322;10,42672414;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicyff
+-0,866258021;11,22841954;10,35201149;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicyff
+-0,866360502;11,21153736;10,41810345;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicyff
+-0,867166931;11,23114943;10,39511494;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicyff
+-0,866486459;11,21883621;10,39942529;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicyff
+-0,867146458;11,23767241;10,37068966;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicyff
+-0,86650183;11,22755747;10,36925287;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicyff
+-0,86417382;11,22143678;10,25574713;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicyff
+-0,7975538;11,13916667;6,676724138;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicyff
+-0,797133207;11,14682471;6,625;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicyff
+-0,795247986;11,12130747;6,606321839;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicyff
+-0,796773347;11,16112069;6,55316092;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicyff
+-0,794535076;11,11854885;6,574712644;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicyff
+-0,793648594;11,10811782;6,560344828;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicyff
+-0,925431943;12,98936782;7,518678161;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicyff
+-0,925510674;12,99387931;7,507183908;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicyff
+-0,925419602;13,00570402;7,459770115;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicyff
+-0,927564055;13,05521552;7,408045977;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicyff
+-0,92140263;12,97242816;7,344827586;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicyff
+-0,923507588;13,02048851;7,295977011;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicyff
+-0,747353618;10,93961207;4,469827586;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicyff
+-0,747839151;10,96729885;4,399425287;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicyff
+-0,746790375;10,94494253;4,418103448;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicyff
+-0,746177278;10,95833333;4,334770115;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicyff
+-0,745686319;10,9479023;4,343390805;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicyff
+-0,746291219;10,9799569;4,264367816;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicyff
+-0,69221379;10,4549569;2,99137931;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicyff
+-0,692587648;10,47436782;2,943965517;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicyff
+-0,692409712;10,47186782;2,942528736;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicyff
+-0,691996216;10,4683477;2,931034483;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicyff
+-0,691972674;10,47199713;2,916666667;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicyff
+-0,690712359;10,46393678;2,872126437;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicyff
+-0,868055718;11,23274425;10,44109195;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicywf
+-0,867201066;11,22202586;10,4295977;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicywf
+-0,865123508;11,20668103;10,36350575;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicywf
+-0,865488587;11,22030172;10,3362069;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicywf
+-0,865332536;11,21896552;10,33189655;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicywf
+-0,865942537;11,23577586;10,30747126;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicywf
+-0,869491872;11,23439655;10,51867816;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicywf
+-0,868342247;11,22975575;10,4683908;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicywf
+-0,867504921;11,22658046;10,43103448;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicywf
+-0,866799444;11,22152299;10,40804598;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicywf
+-0,866918059;11,22507184;10,40229885;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicywf
+-0,86645138;11,2283477;10,36350575;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicywf
+-0,802522946;11,1916092;6,778735632;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicywf
+-0,801274622;11,17487069;6,765804598;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicywf
+-0,799378614;11,15603448;6,722701149;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicywf
+-0,801101218;11,19906609;6,66954023;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicywf
+-0,797216536;11,12277299;6,715517241;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicywf
+-0,796996968;11,1320977;6,66954023;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicywf
+-0,922397523;13,01689655;7,244252874;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicywf
+-0,91976461;12,97433908;7,242816092;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicywf
+-0,921118976;13,00692529;7,20545977;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicywf
+-0,918893797;12,97626437;7,185344828;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicywf
+-0,917240005;12,96097701;7,143678161;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicywf
+-0,916467528;12,94433908;7,158045977;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicywf
+-0,761497149;11,13126437;4,609195402;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicywf
+-0,760346372;11,11732759;4,591954023;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicywf
+-0,758816764;11,09841954;4,570402299;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicywf
+-0,757364877;11,08481322;4,534482759;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicywf
+-0,754608337;11,0479023;4,505747126;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicywf
+-0,755334015;11,06458333;4,488505747;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicywf
+-0,712306598;10,69810345;3,293103448;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicywf
+-0,712436337;10,70385057;3,280172414;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicywf
+-0,707894777;10,65515805;3,189655172;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicywf
+-0,708368203;10,67579023;3,143678161;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicywf
+-0,707102695;10,66159483;3,120689655;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicywf
+-0,703592533;10,5841523;3,192528736;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicywf
+-0,870035081;11,22188218;10,59482759;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicybf
+-0,86998871;11,22475575;10,58189655;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicybf
+-0,868625733;11,21824713;10,52586207;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicybf
+-0,86777692;11,2096408;10,50718391;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicybf
+-0,868365854;11,22570402;10,4841954;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicybf
+-0,867320056;11,23969828;10,37356322;cloudrm,maxsize,relativesizemu,relativesizemu025,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicybf
+-0,869678393;11,24389368;10,49568966;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicybf
+-0,867876824;11,21974138;10,47701149;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicybf
+-0,868154962;11,23597701;10,43534483;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicybf
+-0,868346184;11,24918103;10,39942529;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicybf
+-0,867791009;11,23729885;10,40948276;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicybf
+-0,867558414;11,23431034;10,4066092;cloudrm,maxsize,relativesizemu,relativesizemu03,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicybf
+-0,800233072;11,19538793;6,632183908;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicybf
+-0,799214533;11,17715517;6,637931034;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicybf
+-0,796134313;11,13818966;6,597701149;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicybf
+-0,79528001;11,11981322;6,613505747;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicybf
+-0,795247183;11,13178161;6,568965517;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicybf
+-0,794660192;11,13107759;6,537356322;cloudrm,maxsize,relativesizemu,relativesizemu05,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicybf
+-0,932369107;13,09045977;7,561781609;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicybf
+-0,930529364;13,05116379;7,594827586;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicybf
+-0,93183021;13,08166667;7,561781609;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicybf
+-0,929483476;13,04377874;7,560344828;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicybf
+-0,929880876;13,05954023;7,527298851;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicybf
+-0,927785824;13,03221264;7,502873563;cloudrm,maxsize,relativesizemu,relativesizemu06,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicybf
+-0,745793151;10,94238506;4,369252874;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicybf
+-0,746041894;10,94926724;4,359195402;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicybf
+-0,745290032;10,93619253;4,362068966;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicybf
+-0,745583334;10,95146552;4,324712644;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicybf
+-0,74525841;10,94616379;4,324712644;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicybf
+-0,743958237;10,93341954;4,29454023;cloudrm,maxsize,relativesizemu,relativesizemu09,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicybf
+-0,69065884;10,40699713;3,07183908;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetriclength,selectionpolicy,selectionpolicybf
+-0,690187667;10,41625;3,011494253;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricimbalance,selectionpolicy,selectionpolicybf
+-0,690059236;10,4133477;3,014367816;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricsum,selectionpolicy,selectionpolicybf
+-0,689309861;10,40676724;2,994252874;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricmaximum,selectionpolicy,selectionpolicybf
+-0,690579771;10,44846264;2,91954023;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricminimum,selectionpolicy,selectionpolicybf
+-0,690107083;10,44518678;2,903735632;cloudrm,maxsize,relativesizemu,relativesizemu1,selectionmetric,selectionmetricproduct,selectionpolicy,selectionpolicybf
+-0,688983215;10,4341092;2,877873563;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,689708504;10,45320402;2,852011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,690351346;10,46893678;2,833333333;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,689100704;10,45014368;2,827586207;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,690151862;10,4741523;2,80316092;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,689957454;10,46977011;2,807471264;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,689354536;10,45831897;2,813218391;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,690139146;10,47636494;2,79454023;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,690476008;10,48428161;2,78591954;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,689027916;10,45258621;2,814655172;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,689293389;10,45974138;2,804597701;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,688002915;10,43061782;2,833333333;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,689471817;10,46466954;2,797413793;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,689526282;10,46636494;2,79454023;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,689224512;10,45982759;2,800287356;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,68814247;10,43571839;2,823275862;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,688575183;10,44600575;2,811781609;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,688840786;10,45235632;2,804597701;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,688820533;10,45202586;2,804597701;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,689186324;10,46122126;2,793103448;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,689643693;10,47191092;2,781609195;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,68972539;10,47445402;2,777298851;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,688125286;10,43826149;2,813218391;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,689597581;10,47317529;2,774425287;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,689268578;10,46579023;2,781609195;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,690486847;10,49373563;2,752873563;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,688547174;10,44998563;2,795977011;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,688767803;10,45600575;2,787356322;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,687241536;10,42182471;2,820402299;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,689809146;10,48066092;2,760057471;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,690092295;10,48770115;2,751436782;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,688857166;10,46028736;2,777298851;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,689325853;10,47196839;2,762931034;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,688866464;10,4628592;2,768678161;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,689234146;10,47127874;2,760057471;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,688081725;10,44561782;2,784482759;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,688337641;10,45181034;2,777298851;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,688489782;10,45550287;2,772988506;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,689500435;10,47885057;2,748563218;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,688502861;10,45652299;2,770114943;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,688626009;10,45933908;2,767241379;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687433963;10,43303161;2,791666667;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,688871294;10,46576149;2,75862069;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,688108633;10,44847701;2,775862069;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,688572981;10,45968391;2,762931034;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,688240457;10,45224138;2,770114943;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,689035633;10,47045977;2,751436782;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,689845715;10,48932471;2,731321839;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,68686457;10,42172414;2,798850575;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,688841096;10,46688218;2,752873563;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,688713546;10,46399425;2,755747126;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68972596;10,48737069;2,731321839;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,687487093;10,43752874;2,778735632;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,688784417;10,46797414;2,745689655;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,68726601;10,43432471;2,777298851;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68680499;10,42438218;2,78591954;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,688743653;10,46892241;2,739942529;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68897586;10,47432471;2,734195402;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,687505002;10,44145115;2,765804598;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,68907856;10,47801724;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68688995;10,42859195;2,775862069;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,687708021;10,44718391;2,757183908;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,686173699;10,41367816;2,787356322;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,688642001;10,46968391;2,731321839;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,687558198;10,44554598;2,754310345;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,686405841;10,41948276;2,780172414;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,687337374;10,44073276;2,75862069;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686822769;10,4291092;2,770114943;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,68768738;10,44926724;2,748563218;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,6883779;10,46497126;2,732758621;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687552785;10,44626437;2,751436782;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,686277216;10,41778736;2,778735632;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,686754837;10,42880747;2,767241379;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686574454;10,42505747;2,770114943;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,68700371;10,43488506;2,760057471;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,688766521;10,47494253;2,719827586;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,68672565;10,42913793;2,764367816;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,686180226;10,41701149;2,775862069;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,687956181;10,45768678;2,734195402;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,688205053;10,46376437;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686389344;10,42324713;2,765804598;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,686048014;10,41566092;2,772988506;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,687021748;10,43800287;2,75;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,686986526;10,43742816;2,75;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,688050012;10,46163793;2,725574713;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,686780671;10,4328592;2,754310345;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686074301;10,41689655;2,770114943;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686863313;10,43501437;2,751436782;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,68742012;10,44772989;2,738505747;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687676917;10,45393678;2,731321839;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687038219;10,43988506;2,744252874;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,687717293;10,4554023;2,728448276;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686625629;10,43073276;2,752873563;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,687351307;10,44741379;2,735632184;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686132093;10,41985632;2,762931034;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,687455898;10,45033046;2,731321839;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687122493;10,44287356;2,738505747;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,686723992;10,43395115;2,747126437;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,687894776;10,46071839;2,719827586;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,685590943;10,40860632;2,771551724;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686097622;10,42010057;2,760057471;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,685874156;10,41524425;2,764367816;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,687647535;10,45547414;2,724137931;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686862795;10,43823276;2,739942529;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685972584;10,41806034;2,760057471;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,687154556;10,44662356;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,686138555;10,42359195;2,75;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,685757665;10,4149569;2,75862069;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686325038;10,42784483;2,745689655;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,686969705;10,44320402;2,728448276;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,688391186;10,47567529;2,695402299;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686957312;10,44340517;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685877976;10,41893678;2,751436782;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,686023073;10,42251437;2,747126437;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686048544;10,42333333;2,745689655;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,686210372;10,42718391;2,74137931;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686820827;10,44117816;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,686272761;10,42900862;2,738505747;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,686031684;10,42386494;2,742816092;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,686955292;10,44498563;2,721264368;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685876837;10,42053161;2,745689655;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687724933;10,46278736;2,702586207;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687294732;10,4533477;2,711206897;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685727959;10,41850575;2,744252874;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686412316;10,4341092;2,728448276;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,685529964;10,41446839;2,747126437;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,68641137;10,43449713;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,686691062;10,44107759;2,719827586;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,686213376;10,43045977;2,729885057;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686813951;10,44550287;2,711206897;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686619543;10,44112069;2,715517241;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687378682;10,4583477;2,698275862;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686111102;10,4295977;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,686333623;10,43484195;2,721264368;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685870026;10,42445402;2,731321839;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,685323721;10,41231322;2,742816092;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68621041;10,43242816;2,722701149;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686441672;10,43821839;2,715517241;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685914739;10,42639368;2,727011494;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686093297;10,43051724;2,722701149;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,687782207;10,46896552;2,683908046;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685749325;10,42288793;2,729885057;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,684905718;10,40387931;2,748563218;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,686010525;10,42916667;2,722701149;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686241851;10,4345546;2,716954023;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,685862593;10,42675287;2,722701149;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,684900241;10,405;2,744252874;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686987652;10,45237069;2,69683908;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685654847;10,42295977;2,724137931;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,687364891;10,46175287;2,685344828;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,686530089;10,44288793;2,704022989;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686013724;10,43123563;2,715517241;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,684746144;10,40248563;2,744252874;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686727954;10,44772989;2,698275862;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,688100125;10,47939655;2,665229885;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,685784845;10,4270977;2,716954023;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685922017;10,43054598;2,712643678;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,686346805;10,44070402;2,701149425;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686082899;10,43478448;2,706896552;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686314225;10,44017241;2,701149425;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicymaximize
+-0,685794337;10,42846264;2,712643678;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686416239;10,44264368;2,698275862;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686629954;10,44774425;2,692528736;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685346525;10,41873563;2,721264368;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,685801252;10,42938218;2,709770115;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,685476587;10,42247126;2,715517241;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,687736393;10,47386494;2,663793103;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,6851862;10,41652299;2,719827586;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,68578873;10,43038793;2,70545977;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,685463055;10,42426724;2,708333333;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,686406721;10,44692529;2,682471264;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,686360052;10,44616379;2,682471264;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685814628;10,43403736;2,693965517;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,685842741;10,43489943;2,692528736;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686687164;10,45432471;2,672413793;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685827707;10,43505747;2,691091954;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686738793;10,45718391;2,665229885;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,684931953;10,41640805;2,70545977;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68634463;10,44873563;2,672413793;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,686332302;10,44853448;2,672413793;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,686229342;10,44645115;2,673850575;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685705932;10,43468391;2,685344828;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685125351;10,42158046;2,698275862;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686267892;10,44829023;2,66954023;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,685313401;10,42706897;2,689655172;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686237008;10,44818966;2,668103448;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685459378;10,43066092;2,685344828;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,684926282;10,41873563;2,69683908;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686720729;10,45971264;2,655172414;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,686300214;10,45043103;2,663793103;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685636925;10,43557471;2,67816092;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,684140467;10,40268678;2,708333333;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,68581705;10,44093391;2,66954023;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685926925;10,44393678;2,665229885;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685555656;10,43586207;2,672413793;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,685421877;10,43327586;2,673850575;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,685259985;10,42982759;2,676724138;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686243405;10,45232759;2,653735632;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,685651247;10,43984195;2,663793103;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686040878;10,44902299;2,653735632;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,686781461;10,46635057;2,635057471;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicymaximize
+-0,685928983;10,44760057;2,652298851;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricminimum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,68545482;10,43704023;2,662356322;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricminimum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685832188;10,44561782;2,653735632;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicywf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicymaximize
+-0,68554268;10,43968391;2,658045977;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,684579383;10,41831897;2,67816092;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,686233952;10,4562069;2,639367816;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685191535;10,43274425;2,662356322;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicymaximize
+-0,685806263;10,44761494;2,645114943;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
+-0,684512202;10,41883621;2,672413793;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricproduct,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricsum,vmselectionpolicy,vmselectionpolicyminimize
+-0,685934111;10,45413793;2,629310345;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricmaximum,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,684666635;10,43022989;2,640804598;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetriclength,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicymaximize
+-0,684599649;10,42954023;2,639367816;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricsum,pmselectionpolicy,pmselectionpolicybf,vmselectionmetric,vmselectionmetricimbalance,vmselectionpolicy,vmselectionpolicyminimize
+-0,685543185;10,45300287;2,610632184;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricmaximum,vmselectionpolicy,vmselectionpolicyminimize
+-0,684471645;10,42946839;2,632183908;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetricproduct,vmselectionpolicy,vmselectionpolicyminimize
+-0,684969623;10,44566092;2,603448276;cloudrm,consolidationfriendly,pmselectionmetric,pmselectionmetricimbalance,pmselectionpolicy,pmselectionpolicyff,vmselectionmetric,vmselectionmetriclength,vmselectionpolicy,vmselectionpolicyminimize
diff --git a/code/resources/measures/CloudRM.xml b/code/resources/measures/CloudRM.xml
new file mode 100644
index 0000000000000000000000000000000000000000..112e9c652a329308ec54ece59d77b14127a16e57
--- /dev/null
+++ b/code/resources/measures/CloudRM.xml
@@ -0,0 +1,1378 @@
+<results>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7262.8</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7261.19</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7254.33</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7259.74</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7250.78</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7254.64</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7276.21</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7266.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7260.97</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7264.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7270.73</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7262.41</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7254.07</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7258.59</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7254.82</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7251.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7266.99</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7270.85</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7265.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7270.15</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7278.2</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7266.75</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7258.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7279.96</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7258.7</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7255.29</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7251.15</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7262.69</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7255.84</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7259.55</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7268.61</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7276.08</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7271.62</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7265</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7257.26</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7271.54</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7249.82</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7252.39</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7254.04</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7257.24</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7264.52</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7240.27</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7271.53</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7272.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7271.63</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7273.5</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7259.64</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7257.02</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7277.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7257.78</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7261.39</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7262.29</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7267.25</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7284.58</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7270.53</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7258.91</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7275.29</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7270.07</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7271.06</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7270.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7268.25</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7263.36</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7259.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7262.09</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7281.38</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7258.68</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7279.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7271.62</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7274.85</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7254.38</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7269.71</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_FF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7272.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7259.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7258.3</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7258.85</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7248.81</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7241.1</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7249.9</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7277.52</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7266.02</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7268.98</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7266.13</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7258.96</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7262.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7250.24</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7259</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7256.77</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7253.42</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7264.85</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7255.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7251.51</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7272.32</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7272.52</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7262.54</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7266.89</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7267.06</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7251.28</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7259.79</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7250.97</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7250.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7249.3</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7253.52</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7264.45</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7255.42</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7261.27</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7247.92</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7272.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7262.03</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7262.61</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7259.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7246.97</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7258.45</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7266.36</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7261.56</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7268.47</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7260.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7267.02</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7263.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7271.94</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7262.45</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7244.39</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7251.96</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7241.88</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7257.32</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7255.37</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7254.58</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7252.69</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7253.59</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7262.65</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7240.13</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7248.47</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7251.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7249.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7268.24</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7259.6</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7258.21</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7251.58</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7252.22</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7271.4</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7262.77</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7266.73</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7268.08</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7262.68</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_BF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7274.82</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7274.84</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7290.22</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7284.19</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7291.55</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7273.19</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7275.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7276.96</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7282.15</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7283.62</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7278.55</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7283.41</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_sum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7279.94</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7270.15</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7263.26</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7274.46</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7275</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7273.3</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7280.04</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7279.7</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7274.76</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7278.99</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7279.98</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7281.3</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_product,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7284.17</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7286.38</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7286.96</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7288.49</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7292.7</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7289.33</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7299.21</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7288.45</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7299.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7294.54</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7293.28</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7297.06</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_maximum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7303.64</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7274.61</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7270.42</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7265.03</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7280.36</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7259.71</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7262.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7273.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7270.6</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7275.53</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7275.94</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7270.1</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_minimum,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7271.24</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7280.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7286.9</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7293.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7282.94</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7277.74</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7288.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7300.57</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7289.81</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7282.1</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7291.07</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7287.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_imbalance,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7290.56</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7281.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7285.71</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7286.37</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7290.13</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7290.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_maximize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7277.38</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_sum,</data>
+    <data columname="Measured Value">7284.59</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_product,</data>
+    <data columname="Measured Value">7284.95</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_maximum,</data>
+    <data columname="Measured Value">7282.78</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_minimum,</data>
+    <data columname="Measured Value">7277.03</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_imbalance,</data>
+    <data columname="Measured Value">7286.4</data>
+  </row>
+  <row>
+    <data columname="Configuration">consolidation_friendly,PM_selection_policy,PM_selection_policy_WF,PM_selection_metric,PM_selection_metric_length,VM_selection_policy,VM_selection_policy_minimize,VM_selection_metric,VM_selection_metric_length,</data>
+    <data columname="Measured Value">7272.69</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_FF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7805.51</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_FF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7799.58</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_FF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7795.88</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_FF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7814.98</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_FF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7804.79</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_FF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7802.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_BF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7812.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_BF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7807.9</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_BF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7813.09</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_BF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7801.91</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_BF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7822.83</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_BF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7810.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_WF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7820.1</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_WF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7810.53</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_WF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7809.33</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_WF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7817.99</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_WF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7799.85</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_025,selection_policy,selection_policy_WF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7808.4</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_FF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7808.31</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_FF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7814.38</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_FF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7821.42</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_FF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7810.12</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_FF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7803.23</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_FF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7816.88</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_BF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7820.24</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_BF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7821.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_BF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7819.08</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_BF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7808.94</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_BF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7829.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_BF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7825.75</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_WF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7813.7</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_WF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7815.91</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_WF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7814.93</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_WF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7819.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_WF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7812.65</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_03,selection_policy,selection_policy_WF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7810.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_FF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7758.19</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_FF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7740.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_FF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7768.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_FF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7752.86</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_FF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7738.51</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_FF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7731.25</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_BF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7747.72</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_BF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7739.39</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_BF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7779.3</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_BF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7747.23</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_BF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7791.99</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_BF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7752.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_WF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7789.36</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_WF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7794.55</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_WF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7747.94</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_WF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7764.6</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_WF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7741.45</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_05,selection_policy,selection_policy_WF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7777.71</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_FF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">9028.81</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_FF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">9040.6</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_FF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">9086.43</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_FF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">9043.74</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_FF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">9062.26</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_FF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">9051.97</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_BF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">9104.84</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_BF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">9110.96</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_BF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">9089.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_BF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">9070.42</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_BF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">9078.47</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_BF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">9083.61</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_WF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">9009.26</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_WF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">9031.48</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_WF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">9052.82</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_WF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">9059.76</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_WF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">9030.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_06,selection_policy,selection_policy_WF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">9020.84</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_FF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7633.24</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_FF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7619.74</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_FF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7613.97</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_FF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7627</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_FF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7617.68</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_FF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7642.05</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_BF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7609.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_BF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7620.69</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_BF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7611.59</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_BF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7618.53</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_BF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7615.9</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_BF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7622.22</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_WF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7724.5</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_WF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7700.95</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_WF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7747.36</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_WF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7689.34</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_WF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7737.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_09,selection_policy,selection_policy_WF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7715.03</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_FF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7276.65</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_FF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7285.97</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_FF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7288.51</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_FF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7282.9</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_FF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7290.16</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_FF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7288.42</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_BF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7247.69</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_BF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7269.85</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_BF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7243.11</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_BF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7272.13</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_BF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7249.71</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_BF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7243.27</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_WF,selection_metric,selection_metric_sum,</data>
+    <data columname="Measured Value">7430.35</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_WF,selection_metric,selection_metric_product,</data>
+    <data columname="Measured Value">7415.99</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_WF,selection_metric,selection_metric_maximum,</data>
+    <data columname="Measured Value">7449.88</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_WF,selection_metric,selection_metric_minimum,</data>
+    <data columname="Measured Value">7366.57</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_WF,selection_metric,selection_metric_imbalance,</data>
+    <data columname="Measured Value">7420.47</data>
+  </row>
+  <row>
+    <data columname="Configuration">maxsize,relative_size_mu,relative_size_mu_1,selection_policy,selection_policy_WF,selection_metric,selection_metric_length,</data>
+    <data columname="Measured Value">7445.88</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_2,</data>
+    <data columname="Measured Value">8824.66</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_3,</data>
+    <data columname="Measured Value">7766.14</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_4,</data>
+    <data columname="Measured Value">6984.47</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_5,</data>
+    <data columname="Measured Value">6444.84</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_6,</data>
+    <data columname="Measured Value">6071.44</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_7,</data>
+    <data columname="Measured Value">5769.2</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_8,</data>
+    <data columname="Measured Value">5554.77</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_9,</data>
+    <data columname="Measured Value">5347.02</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_10,</data>
+    <data columname="Measured Value">5179.68</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_11,</data>
+    <data columname="Measured Value">5051.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_12,</data>
+    <data columname="Measured Value">4947.15</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_13,</data>
+    <data columname="Measured Value">4861.18</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_14,</data>
+    <data columname="Measured Value">4780.01</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_15,</data>
+    <data columname="Measured Value">4689.22</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_16,</data>
+    <data columname="Measured Value">4614.55</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_17,</data>
+    <data columname="Measured Value">4568.5</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_18,</data>
+    <data columname="Measured Value">4513.06</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_19,</data>
+    <data columname="Measured Value">4479.52</data>
+  </row>
+  <row>
+    <data columname="Configuration">multiple,task_group_size_k,task_group_size_k_20,</data>
+    <data columname="Measured Value">4422.35</data>
+  </row>
+  <row>
+    <data columname="Configuration">simple,</data>
+    <data columname="Measured Value">7815.49</data>
+  </row>
+</results>
diff --git a/code/resources/models/CloudRM.xml b/code/resources/models/CloudRM.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d5965ab1c58a2731c68bea95a15d49cd8ba692ec
--- /dev/null
+++ b/code/resources/models/CloudRM.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<featureModel>
+    <properties/>
+    <struct>
+        <alt abstract="true" mandatory="true" name="CloudRM">
+            <and name="Multiple">
+                <alt mandatory="true" name="Task_Group_SizeK">
+                    <feature name="Task_Group_SizeK2"/>
+                    <feature name="Task_Group_SizeK3"/>
+                    <feature name="Task_Group_SizeK4"/>
+                    <feature name="Task_Group_SizeK5"/>
+                    <feature name="Task_Group_SizeK6"/>
+                    <feature name="Task_Group_SizeK7"/>
+                    <feature name="Task_Group_SizeK8"/>
+                    <feature name="Task_Group_SizeK9"/>
+                    <feature name="Task_Group_SizeK10"/>
+                    <feature name="Task_Group_SizeK11"/>
+                    <feature name="Task_Group_SizeK12"/>
+                    <feature name="Task_Group_SizeK13"/>
+                    <feature name="Task_Group_SizeK14"/>
+                    <feature name="Task_Group_SizeK15"/>
+                    <feature name="Task_Group_SizeK16"/>
+                    <feature name="Task_Group_SizeK17"/>
+                    <feature name="Task_Group_SizeK18"/>
+                    <feature name="Task_Group_SizeK19"/>
+                    <feature name="Task_Group_SizeK20"/>
+                </alt>
+            </and>
+            <feature name="Simple"/>
+            <and name="Maxsize">
+                <alt mandatory="true" name="Relative_Size_mu">
+                    <feature name="Relative_Size_mu_025"/>
+                    <feature name="Relative_Size_mu_03"/>
+                    <feature name="Relative_Size_mu_05"/>
+                    <feature name="Relative_Size_mu_06"/>
+                    <feature name="Relative_Size_mu_09"/>
+                    <feature name="Relative_Size_mu_1"/>
+                </alt>
+                <alt mandatory="true" name="Selection_Policy">
+                    <feature name="Selection_Policy_FF"/>
+                    <feature name="Selection_Policy_BF"/>
+                    <feature name="Selection_Policy_WF"/>
+                </alt>
+                <alt mandatory="true" name="Selection_Metric">
+                    <feature name="Selection_Metric_Sum"/>
+                    <feature name="Selection_Metric_Product"/>
+                    <feature name="Selection_Metric_Maximum"/>
+                    <feature name="Selection_Metric_Minimum"/>
+                    <feature name="Selection_Metric_Imbalance"/>
+                    <feature name="Selection_Metric_Length"/>
+                </alt>
+            </and>
+            <and name="Consolidation_Friendly">
+                <alt mandatory="true" name="PM_Selection_Policy">
+                    <feature name="PM_Selection_Policy_FF"/>
+                    <feature name="PM_Selection_Policy_BF"/>
+                    <feature name="PM_Selection_Policy_WF"/>
+                </alt>
+                <alt mandatory="true" name="PM_Selection_Metric">
+                    <feature name="PM_Selection_Metric_Sum"/>
+                    <feature name="PM_Selection_Metric_Product"/>
+                    <feature name="PM_Selection_Metric_Maximum"/>
+                    <feature name="PM_Selection_Metric_Minimum"/>
+                    <feature name="PM_Selection_Metric_Imbalance"/>
+                    <feature name="PM_Selection_Metric_Length"/>
+                </alt>
+                <alt mandatory="true" name="VM_Selection_Policy">
+                    <feature name="VM_Selection_Policy_Maximize"/>
+                    <feature name="VM_Selection_Policy_Minimize"/>
+                </alt>
+                <alt mandatory="true" name="VM_Selection_Metric">
+                    <feature name="VM_Selection_Metric_Sum"/>
+                    <feature name="VM_Selection_Metric_Product"/>
+                    <feature name="VM_Selection_Metric_Maximum"/>
+                    <feature name="VM_Selection_Metric_Minimum"/>
+                    <feature name="VM_Selection_Metric_Imbalance"/>
+                    <feature name="VM_Selection_Metric_Length"/>
+                </alt>
+            </and>
+        </alt>
+    </struct>
+    <constraints/>
+    <calculations Auto="true" Constraints="true" Features="true" Redundant="true" Tautology="true"/>
+    <comments/>
+    <featureOrder userDefined="false"/>
+</featureModel>
diff --git a/code/src/fr/univ/lille/Main.java b/code/src/fr/univ/lille/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..38ba100e6061b141c134f26faf7acf4f5444ae94
--- /dev/null
+++ b/code/src/fr/univ/lille/Main.java
@@ -0,0 +1,76 @@
+package fr.univ.lille;
+
+import org.apache.commons.io.FilenameUtils;
+
+import fr.univ.lille.results.ResultsWriter;
+
+public class Main {
+	
+	private static int nbRun = 0;
+
+	/**
+	 * Retrieve all arguments, setup the result file and run the exploration
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		try {
+			int stratType = Integer.parseInt(args[0]);
+			String modelFileName = args[1];
+			ResultsWriter.setFilePath(FilenameUtils.getBaseName(modelFileName)+"_"+getStrategyName(stratType));
+
+			String measuresFilePath = args[2];
+			if (args.length > 3) {
+				nbRun = Integer.parseInt(args[3]);
+				// To be optimized to avoid reloading all configurations for each run...
+				for (int i = 0; i < nbRun; i++) {
+					runExploration(stratType, modelFileName, measuresFilePath);	
+				}
+			} else {
+				runExploration(stratType, modelFileName, measuresFilePath);
+			}
+			ResultsWriter.writeAverage(nbRun);
+		} catch (ArrayIndexOutOfBoundsException e) {
+			System.out.println("Requires (at least) 3 arguments:");
+			System.out.println("- An int for the strategy (1 for random, 2 for incremental or 3 for degree)");
+			System.out.println("- The feature model file path");
+			System.out.println("- The measurements file path");
+			System.out.println("- (opt) the number of runs");
+			System.out.println();
+			System.out.println("Examples:");
+			System.out.println("java -jar explore.jar 1 resources/models/CloudRM.xml resources/measures/CloudRM.xml");
+			System.out.println("java -jar explore.jar 2 resources/models/CloudRM.xml resources/measures/CloudRM.xml 100");
+		}
+
+	}
+
+	/**
+	 * Used to get the name of the file for the results
+	 * @param stratType the int argument given when running the application
+	 * @return the strategy name
+	 */
+	private static String getStrategyName(int stratType) {
+		switch (stratType) {
+		case 1:
+			return "Random";
+		case 2:
+			return "Incremental";
+		case 3:
+			return "IncrementalDegree";
+		default: return "?";
+		}
+	}
+
+	/**
+	 * Create a MeasureFinder instance that "link" the exploration part with the measurement parsing one
+	 * @param stratType
+	 * @param modelFileName
+	 * @param measuresFilePath
+	 */
+	private static void runExploration(int stratType, String modelFileName, String measuresFilePath) {
+		MeasureFinder finder = new MeasureFinder(stratType, modelFileName, measuresFilePath);
+		finder.loadMeasures();
+		finder.explore();
+		
+		ResultsWriter.writeResult(finder.getResult());
+	}
+}
diff --git a/code/src/fr/univ/lille/MeasureFinder.java b/code/src/fr/univ/lille/MeasureFinder.java
new file mode 100644
index 0000000000000000000000000000000000000000..a142b64f5831da40b9f1a8b93327f0c7817b9f9c
--- /dev/null
+++ b/code/src/fr/univ/lille/MeasureFinder.java
@@ -0,0 +1,179 @@
+package fr.univ.lille;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.io.FilenameUtils;
+import org.xml.sax.SAXException;
+
+import fr.univ.lille.exploration.FMExplorer;
+import fr.univ.lille.measurements.ConfigurationValidator;
+import fr.univ.lille.measurements.Measure;
+import fr.univ.lille.measurements.MeasuresLoader;
+import fr.univ.lille.strategies.AbstractStrategy;
+import fr.univ.lille.strategies.IncrementalDegreeStrategy;
+import fr.univ.lille.strategies.IncrementalStrategy;
+
+/**
+ * This class is responsible for running the strategy and check
+ * if the returned configuration is the good one, i.e. the one related to the
+ * randomly picked @see measureValue; 
+ * @author cquinton
+ *
+ */
+public class MeasureFinder {
+
+	private List<Measure> measures;
+	private String modelFileName;
+	private String modelFileBaseName;
+	private String measuresFilePath;
+	private int strategieType;
+	private String measureValue;
+	private int nbConfigurationsExploredForThisRun;
+
+	public MeasureFinder(int strategieType, String modelFileName, String measuresFilePath) {
+		this.modelFileName = modelFileName;
+		this.measuresFilePath = measuresFilePath;
+		this.strategieType = strategieType;
+		this.modelFileBaseName = FilenameUtils.getBaseName(modelFileName);
+		this.nbConfigurationsExploredForThisRun = 0;
+	}
+
+	/**
+	 * Serialize measures from the XML file into a Java object (list of measure)
+	 * Pick one random measure value that will be the "target" of the exploration
+	 */
+	public void loadMeasures() {
+		try {
+			measures = MeasuresLoader.loadMeasurementsFile(measuresFilePath);
+			for (Measure measure : measures) {
+				String formattedMeasureConfig = measure.getConfiguration();
+				formattedMeasureConfig = ConfigurationValidator.formatRoot(formattedMeasureConfig, modelFileBaseName);
+				formattedMeasureConfig = ConfigurationValidator.formatConfiguration(formattedMeasureConfig);
+				measure.setConfiguration(formattedMeasureConfig);
+			}
+		} catch (ParserConfigurationException | SAXException | IOException e1) {
+			System.out.println("Measures file could not be loaded");
+		}
+		
+		// (1) Pick a random measure value
+//		Random randomGenerator = new Random();
+//		int index = randomGenerator.nextInt(measures.size());
+//		Measure measure = measures.get(index);
+//		measureValue = measure.getValue();
+
+		// (2) Explore all configurations
+		// Only needed once to compute all configurations (Strings) and match them with the rewards from the separate data set
+		measureValue = "";
+	
+	}
+
+	
+	public FMExplorer getExplorer() {
+		AbstractStrategy explorationStrategy = null;
+		switch (strategieType) {
+		case 2:
+			explorationStrategy = new IncrementalStrategy();
+			break;
+		case 3:
+			explorationStrategy = new IncrementalDegreeStrategy();
+			break;
+		default:
+			break;
+		}
+
+		FMExplorer explorer = new FMExplorer(modelFileName);
+		explorer.setExplorationStrategy(explorationStrategy);
+		
+		return explorer;
+		
+	}
+	
+	/**
+	 * Instantiate a concrete strategy and explore the model with this strategy
+	 * The explorer returns a new configuration while the one matching the 
+	 * randomly picked measurement value (@see loadMeasures) has not be returned
+	 */
+	public void explore() {
+		AbstractStrategy explorationStrategy = null;
+		switch (strategieType) {
+		case 2:
+			explorationStrategy = new IncrementalStrategy();
+			break;
+		case 3:
+			explorationStrategy = new IncrementalDegreeStrategy();
+			break;
+		default:
+			break;
+		}
+
+		FMExplorer explorer = new FMExplorer(modelFileName);
+	
+		int nbConfigurationsTotal = explorer.getListOfAllConfigurations().size();
+		explorer.setExplorationStrategy(explorationStrategy);
+
+//		System.out.println(explorationStrategy.getClass().getSimpleName() + " exploration has started");
+		List<String> nextConfiguration = null;
+		int action = 0; 
+		while (explorer.getExplorationStrategy().hasRemainingConfigurations() && !isMeasureFound(nextConfiguration)) {
+			nextConfiguration = explorer.getNextConfiguration();
+			// Output config string and measure, so this can be mapped to rewards (in external data)
+			System.out.println(""+action+"\t"+getMeasure(nextConfiguration).replace(".",",")+
+					"\t"+ConfigurationValidator.formatConfiguration(nextConfiguration));
+			action++;
+			nbConfigurationsExploredForThisRun++;
+		}
+		
+//		System.out.println(explorationStrategy.getClass().getSimpleName() + " exploration is finished");
+//		System.out.println(nbConfigurationsExploredForThisRun + " explored (out of " + nbConfigurationsTotal + ")\n");
+	}
+
+	/**
+	 * Compare the returned configuration with the one related to the randomly picked measure
+	 * @param config
+	 * @return true is both configurations are the same
+	 */
+	private String getMeasure(List<String> config) {
+		if (config != null) {
+			String formattedConfig = ConfigurationValidator.formatConfiguration(config);
+			for (Measure measure : measures) {
+				String formattedMeasureConfig = measure.getConfiguration();
+
+				if (formattedConfig.equals(formattedMeasureConfig)) {
+					return measure.getValue();
+				}
+			}
+			return "";
+		}
+		return "";
+	}
+	
+	/**
+	 * Compare the returned configuration with the one related to the randomly picked measure
+	 * @param config
+	 * @return true is both configurations are the same
+	 */
+	private boolean isMeasureFound(List<String> config) {
+		if (config != null) {
+			String formattedConfig = ConfigurationValidator.formatConfiguration(config);
+			for (Measure measure : measures) {
+				String formattedMeasureConfig = measure.getConfiguration();
+
+				if (formattedConfig.equals(formattedMeasureConfig)) {
+					if (measure.getValue().equals(measureValue)) {
+						return true;
+					}
+				}
+			}
+			return false;
+		}
+		return false;
+	}
+
+	public int getResult() {
+		return nbConfigurationsExploredForThisRun;
+	}
+}
diff --git a/code/src/fr/univ/lille/exploration/FMExplorer.java b/code/src/fr/univ/lille/exploration/FMExplorer.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f9511810e32f9d6f229d5c98c26f998d8c7e3de
--- /dev/null
+++ b/code/src/fr/univ/lille/exploration/FMExplorer.java
@@ -0,0 +1,207 @@
+package fr.univ.lille.exploration;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.sat4j.specs.TimeoutException;
+
+import de.ovgu.featureide.fm.core.FeatureModelAnalyzer;
+import de.ovgu.featureide.fm.core.analysis.cnf.formula.FeatureModelFormula;
+import de.ovgu.featureide.fm.core.base.IFeature;
+import de.ovgu.featureide.fm.core.base.IFeatureModel;
+import de.ovgu.featureide.fm.core.base.IFeatureStructure;
+import de.ovgu.featureide.fm.core.configuration.Configuration;
+import de.ovgu.featureide.fm.core.configuration.ConfigurationAnalyzer;
+import de.ovgu.featureide.fm.core.configuration.SelectableFeature;
+import de.ovgu.featureide.fm.core.configuration.Selection;
+import de.ovgu.featureide.fm.core.init.FMCoreLibrary;
+import de.ovgu.featureide.fm.core.init.LibraryManager;
+import de.ovgu.featureide.fm.core.io.manager.FeatureModelManager;
+import fr.univ.lille.strategies.AbstractStrategy;
+
+public class FMExplorer {
+	
+	private IFeatureModel featureModel;
+	private FeatureModelAnalyzer fmAnalyzer;
+	private ConfigurationAnalyzer configurationAnalyzer;
+	private FeatureModelFormula formula;
+	private Configuration configuration;
+	private AbstractStrategy explorationStrategy;
+	private static final int TIMEOUT = 100000; // milliseconds
+	private static final int NB_MAX_SOLUTIONS = 100000; 
+	private List<List<String>> listOfAllConfigurations;
+
+	public FMExplorer(String fmPath) {
+		// Load the feature model stored at fmPath in the FeatureIDE xml format 
+		LibraryManager.registerLibrary(FMCoreLibrary.getInstance());
+		final Path path = Paths.get(fmPath);
+		featureModel = FeatureModelManager.load(path);
+		if (featureModel != null) {
+			setup();
+		} else {
+			System.out.println("Feature model could not be read!");
+		}
+	}
+	
+	/**
+	 * Retrieve and load all necessary elements for parsing/using the feature model with FeatureIDE
+	 */
+	private void setup() {
+		formula = new FeatureModelFormula(featureModel);
+		configuration = new Configuration(formula);
+		configurationAnalyzer = new ConfigurationAnalyzer(formula, configuration);
+		fmAnalyzer = formula.getAnalyzer();
+		fmAnalyzer.analyzeFeatureModel(null);
+		
+		try {
+//			System.out.print("Retrieve all configurations. Please wait... ");
+			listOfAllConfigurations = configurationAnalyzer.getSolutions(NB_MAX_SOLUTIONS);
+//			System.out.println("Done (" + listOfAllConfigurations.size() + ").");
+		} catch (TimeoutException e) {
+			System.out.println(" **** TIMEOUT **** when enumerating configurations");
+			this.explorationStrategy.setAllConfigurations(new ArrayList<List<String>>());
+		}
+	}
+	
+	/**
+	 * Get the @see explorationStrategy ready to be used (Incremental and IncrementalDegree)
+	 */
+	private void initStrategy() {
+		this.explorationStrategy.setExplorer(this);
+		this.explorationStrategy.init();
+	}
+	
+	/**
+	 * Select the feature given as parameter in the current configuration
+	 * @param featureName the name of the feature to be selected 
+	 **/
+	public void selectFeature(IFeature feature) {
+		String featureName = feature.getName();
+		SelectableFeature selectedFeature = configuration.getSelectableFeature(featureName);
+		selectedFeature.setManual(Selection.SELECTED);
+	}
+	
+	/**
+	 * Unselect all features selected in the current configuration 
+	 **/
+	public void unselectFeatures() {
+		Collection<SelectableFeature> features = configuration.getFeatures();
+		for (SelectableFeature selectableFeature : features) {
+			selectableFeature.setManual(Selection.UNDEFINED);
+		}
+	}
+	
+	/**
+	 * Count the number of valid configurations which includes the selected feature(s)
+	 * @return the number of configurations
+	 */
+	public int countConfigurations() {
+		int nbConfigurations = 0;
+		
+		if (!fmAnalyzer.isValid(null)) {
+			System.out.println("Feature model is void: 0 configuration");
+		} else {
+			nbConfigurations = (int) configurationAnalyzer.number(TIMEOUT); 
+		}
+		return nbConfigurations;
+	}
+	
+	/**
+	 * Print all valid configurations
+	 * @return 
+	 */
+	public List<List<String>> listConfigurations() throws TimeoutException {
+		List<List<String>> listConfigurations = configurationAnalyzer.getSolutions(NB_MAX_SOLUTIONS);
+		return listConfigurations;
+	}
+	
+	/**
+	 * Print all valid configurations which includes the selected feature
+	 * @return 
+	 */
+	public List<List<String>> listConfigurationsContainingFeature(IFeature feature) throws TimeoutException {
+		this.unselectFeatures();
+		configuration.getSelectableFeature(feature).setManual(Selection.SELECTED);
+		List<List<String>> listConfigurations = configurationAnalyzer.getSolutions(NB_MAX_SOLUTIONS);
+		return listConfigurations;
+	}
+	
+	/**
+	 * Return the children features of the feature given as parameter
+	 * @param feature
+	 * @return the children feature of @param feature 
+	 */
+	private List<IFeature> getChildrenFeatures(IFeature feature) {
+		List<IFeature> childrenFeatures = new ArrayList<IFeature>();
+		IFeature iFeature = featureModel.getFeature(feature.getName());
+		List<IFeatureStructure> childrenStructures = iFeature.getStructure().getChildren();
+		for (IFeatureStructure iFeatureStructure : childrenStructures) {
+			childrenFeatures.add(iFeatureStructure.getFeature());
+		}
+		return childrenFeatures;
+	}
+	
+	/**
+	 * Return the parent feature of the feature given as parameter
+	 * @param feature
+	 * @return the parent feature of @param feature 
+	 */
+	public IFeature getParentFeature(IFeature feature) {
+		return featureModel.getFeature(feature.getName()).getStructure().getParent().getFeature();
+	}
+	
+	/**
+	 * Return the sibling features of the feature given as parameter
+	 * @param feature
+	 * @return the siblings feature (same parent feature as @param feature) 
+	 */
+	public List<IFeature> getSiblingFeatures(IFeature feature) {
+		List<IFeature> siblingFeatures = new ArrayList<IFeature>();
+		IFeature iFeature = featureModel.getFeature(feature.getName());
+		IFeature parentFeature = getParentFeature(iFeature);
+		siblingFeatures.addAll(getChildrenFeatures(parentFeature));
+		siblingFeatures.remove(feature);
+		return siblingFeatures;
+	}
+	
+	/**
+	 * Return the leaf features of the feature model
+	 * @return the leaves 
+	 */
+	public List<IFeature> getLeafFeatures() {
+		List<IFeature> leafFeatures = new ArrayList<IFeature>();
+		Collection<IFeature> features = featureModel.getFeatures();
+		for (IFeature iFeature : features) {
+			if (!iFeature.getStructure().hasChildren()) {
+				leafFeatures.add(iFeature);
+			}
+		}
+		return leafFeatures;
+	}
+	
+	public List<String> getNextConfiguration() {
+		return this.explorationStrategy.getNextConfiguration();
+	}
+
+	public AbstractStrategy getExplorationStrategy() {
+		return explorationStrategy;
+	}
+
+	public void setExplorationStrategy(AbstractStrategy explorationStrategy) {
+		this.explorationStrategy = explorationStrategy;
+		this.explorationStrategy.setAllConfigurations(listOfAllConfigurations);
+		this.explorationStrategy.setRemainingConfigurations(listOfAllConfigurations);
+		this.initStrategy();
+	}
+
+	public List<List<String>> getListOfAllConfigurations() {
+		return listOfAllConfigurations;
+	}
+
+	public IFeatureModel getFeatureModel() {
+		return featureModel;
+	}
+}
diff --git a/code/src/fr/univ/lille/measurements/ConfigurationValidator.java b/code/src/fr/univ/lille/measurements/ConfigurationValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..0a4635cb9da091510a565b33e7ef372a71c8c7c5
--- /dev/null
+++ b/code/src/fr/univ/lille/measurements/ConfigurationValidator.java
@@ -0,0 +1,63 @@
+package fr.univ.lille.measurements;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class ConfigurationValidator {
+
+	public static String formatConfiguration(String configuration){
+		List<String> configAsList = Arrays.asList(configuration.split(","));
+		List<String> configAsListTrimed = new ArrayList<String>();
+		for (String string : configAsList) {
+			configAsListTrimed.add(string.toLowerCase().trim().replaceAll("[^a-zA-Z0-9]", ""));
+		}
+
+		Object[] arrayTrimedAndCleaned = (Object[]) configAsListTrimed.toArray();
+		Arrays.sort(arrayTrimedAndCleaned);
+
+		String formattedConfiguration = (String) arrayTrimedAndCleaned[0];
+		int arrayLength = arrayTrimedAndCleaned.length;
+		if (arrayLength > 1) {
+			for (int i = 1; i < arrayLength; i++) {
+				formattedConfiguration += ",";
+				formattedConfiguration += arrayTrimedAndCleaned[i];
+			}
+		}	
+		return formattedConfiguration.toLowerCase();
+	}
+	
+	public static String formatConfiguration(List<String> configuration){
+		List<String> configAsListTrimed = new ArrayList<String>();
+		for (String string : configuration) {
+			configAsListTrimed.add(string.toLowerCase().trim().replaceAll("[^a-zA-Z0-9]", ""));
+		}
+
+		Object[] arrayTrimedAndCleaned = (Object[]) configAsListTrimed.toArray();
+		Arrays.sort(arrayTrimedAndCleaned);
+
+		String formattedConfiguration = (String) arrayTrimedAndCleaned[0];
+		int arrayLength = arrayTrimedAndCleaned.length;
+		if (arrayLength > 1) {
+			for (int i = 1; i < arrayLength; i++) {
+				formattedConfiguration += ",";
+				formattedConfiguration += arrayTrimedAndCleaned[i];
+			}
+		}	
+		return formattedConfiguration.toLowerCase();
+	}
+	
+	public static String formatRoot(String formattedConfig, String useCase) {
+		String name = useCase.toLowerCase();
+		if (!formattedConfig.toLowerCase().contains(name)) {
+			formattedConfig = name + "," + formattedConfig;
+		}
+		return formattedConfig;
+	}
+
+
+	public static List<String> getConfigAsList(String configuration){
+		return Arrays.asList(configuration.split(","));
+	}
+}
+
diff --git a/code/src/fr/univ/lille/measurements/Measure.java b/code/src/fr/univ/lille/measurements/Measure.java
new file mode 100644
index 0000000000000000000000000000000000000000..771ef3e3014495e9d2c0b66c4bd8f32cf95c6efe
--- /dev/null
+++ b/code/src/fr/univ/lille/measurements/Measure.java
@@ -0,0 +1,23 @@
+package fr.univ.lille.measurements;
+
+public class Measure {
+	
+	private String value;
+	private String configuration;
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public String getConfiguration() {
+		return configuration;
+	}
+
+	public void setConfiguration(String configuration) {
+		this.configuration = configuration;
+	}
+}
diff --git a/code/src/fr/univ/lille/measurements/MeasurementsParser.java b/code/src/fr/univ/lille/measurements/MeasurementsParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ca4e58f71213a9af4a108d7aa6470988c235d24
--- /dev/null
+++ b/code/src/fr/univ/lille/measurements/MeasurementsParser.java
@@ -0,0 +1,57 @@
+package fr.univ.lille.measurements;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class MeasurementsParser extends DefaultHandler {
+
+	List<Measure> measureList = null;
+	Measure measure = null;
+
+	boolean bValue = false;
+	boolean bConfig = false;
+
+	@Override
+	public void startElement(String uri, String localName, String qName,
+			Attributes attributes) throws SAXException {
+		if (qName.equalsIgnoreCase("row")) {
+			measure = new Measure();
+			//initialize list
+			if (measureList == null)
+				measureList = new ArrayList<>();
+		} else if (qName.equalsIgnoreCase("data") && attributes.getValue("columname").equalsIgnoreCase("Configuration")) {
+			bConfig = true;
+		} else if (qName.equalsIgnoreCase("data") && attributes.getValue("columname").equalsIgnoreCase("Measured Value")) {
+			bValue = true;
+		}
+	}
+
+	@Override
+	public void endElement(String uri, String localName, String qName)
+			throws SAXException {
+		if (qName.equalsIgnoreCase("row")) {
+			measureList.add(measure);
+		}
+	}
+
+	@Override
+	public void characters(char[] ch, int start, int length)
+			throws SAXException {
+		if (bValue) {
+			measure.setValue(new String(ch, start, length));
+			bValue = false;
+		} else if (bConfig) {
+			measure.setConfiguration(new String(ch, start, length));
+			bConfig = false;
+		}
+	}
+
+	public List<Measure> getMeasureList() {
+		return measureList;
+	}
+
+}
diff --git a/code/src/fr/univ/lille/measurements/MeasuresLoader.java b/code/src/fr/univ/lille/measurements/MeasuresLoader.java
new file mode 100644
index 0000000000000000000000000000000000000000..b20d94612a1062fd8e5da5649aa4dc397cc36fc6
--- /dev/null
+++ b/code/src/fr/univ/lille/measurements/MeasuresLoader.java
@@ -0,0 +1,25 @@
+package fr.univ.lille.measurements;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.SAXException;
+
+public class MeasuresLoader {
+	
+	public static List<Measure> loadMeasurementsFile(String fileInput) throws ParserConfigurationException, SAXException, IOException {
+		SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+		InputStream inputStream = new FileInputStream(fileInput);
+		SAXParser parser = parserFactory.newSAXParser();
+		MeasurementsParser handler = new MeasurementsParser();
+		parser.parse(inputStream, handler);
+
+		return handler.getMeasureList();
+	}
+}
diff --git a/code/src/fr/univ/lille/results/ResultsWriter.java b/code/src/fr/univ/lille/results/ResultsWriter.java
new file mode 100644
index 0000000000000000000000000000000000000000..a203093d6e108ecb23d499b582db7dd3a23cc52e
--- /dev/null
+++ b/code/src/fr/univ/lille/results/ResultsWriter.java
@@ -0,0 +1,50 @@
+package fr.univ.lille.results;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ResultsWriter {
+
+	private static List<Integer> results = new ArrayList<Integer>();
+	private static final String RESULTS_PATH = "./";
+	public static String filePath; 
+
+	private static void write(String thingToWrite) {
+		File yourFile = new File(filePath);
+		try {
+			yourFile.createNewFile();
+			FileWriter fw = new FileWriter(filePath, true);
+			BufferedWriter bw = new BufferedWriter(fw);
+			PrintWriter out = new PrintWriter(bw); 
+			out.println(thingToWrite);
+			out.close();
+			out.flush();
+		} catch (IOException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+
+	}
+
+	public static void setFilePath(String fileName) {
+		ResultsWriter.filePath = RESULTS_PATH + fileName;
+	}
+
+	public static void writeResult(int nbConfigurationsExploredForThisRun) {
+		write(String.valueOf(nbConfigurationsExploredForThisRun));	
+		results.add(nbConfigurationsExploredForThisRun);
+	}
+
+	public static void writeAverage(int nbRun) {
+		int sumExplorations = 0;
+		for (Integer nbConfigurationsExplored : results) {
+			sumExplorations = sumExplorations + nbConfigurationsExplored;
+		}
+		write("Average = " + String.valueOf(sumExplorations/results.size()));
+	}
+}
diff --git a/code/src/fr/univ/lille/strategies/AbstractStrategy.java b/code/src/fr/univ/lille/strategies/AbstractStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..29181beeb393ada77b434e7e807c613ea2ecc075
--- /dev/null
+++ b/code/src/fr/univ/lille/strategies/AbstractStrategy.java
@@ -0,0 +1,37 @@
+package fr.univ.lille.strategies;
+
+import java.util.List;
+
+import fr.univ.lille.exploration.FMExplorer;
+
+public abstract class AbstractStrategy implements Strategy {
+
+	protected List<List<String>> remainingConfigurations;
+	protected List<List<String>> allConfigurations;
+
+	public abstract List<String> getNextConfiguration();
+	
+	public abstract void setExplorer(FMExplorer fmExplorer);
+	public abstract void init();
+	
+	public abstract boolean hasRemainingConfigurations();
+//	{
+//		boolean empty = remainingConfigurations.isEmpty();
+//		if (empty) {
+//			System.out.println("No more remaining configurations to explore");
+//		}
+//		return !empty;
+//	}
+
+	public void setAllConfigurations(List<List<String>> listOfAllConfigurations) {
+		this.allConfigurations = listOfAllConfigurations;
+	}
+
+	public void setRemainingConfigurations(List<List<String>> listOfAllConfigurations) {
+		this.remainingConfigurations = listOfAllConfigurations;
+	}
+
+	public List<List<String>> getAllConfigurations() {
+		return this.allConfigurations;
+	}
+}
diff --git a/code/src/fr/univ/lille/strategies/AdvancedStrategy.java b/code/src/fr/univ/lille/strategies/AdvancedStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a9e8bb39f4f74b03280ed115d3aa05f4e4c6262
--- /dev/null
+++ b/code/src/fr/univ/lille/strategies/AdvancedStrategy.java
@@ -0,0 +1,16 @@
+package fr.univ.lille.strategies;
+
+import java.util.List;
+
+import de.ovgu.featureide.fm.core.base.IFeature;
+
+public abstract class AdvancedStrategy extends AbstractStrategy {
+		
+	// The list of configurations "currently" considered by the strategy
+	// For instance, the list of considerations containing a given feature
+	protected List<List<String>> sortedConfigurations;
+
+//	public abstract IFeature getNextSelectedFeature();
+	protected abstract IFeature getFirstSelectedFeature();
+	
+}
diff --git a/code/src/fr/univ/lille/strategies/IncrementalDegreeStrategy.java b/code/src/fr/univ/lille/strategies/IncrementalDegreeStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..2707f0a8be19d6357935a30afd43c00df027affa
--- /dev/null
+++ b/code/src/fr/univ/lille/strategies/IncrementalDegreeStrategy.java
@@ -0,0 +1,130 @@
+package fr.univ.lille.strategies;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.sat4j.specs.TimeoutException;
+
+import de.ovgu.featureide.fm.core.base.IFeature;
+import fr.univ.lille.exploration.FMExplorer;
+
+/**
+ * This strategy returns the first configuration randomly, then return the
+ * following ones in an incremental way (i.e. returns configurations including
+ * sibling features), considering the feature degree
+ * 
+ * @author cquinton
+ */
+public class IncrementalDegreeStrategy extends IncrementalStrategy {
+
+	private static Map<IFeature, Integer> degrees;
+	private static boolean once = false;
+	
+	public IncrementalDegreeStrategy() {
+		if(!once)
+			this.degrees = new HashMap<IFeature, Integer>();
+	}
+	
+	@Override
+	public void setExplorer(FMExplorer explorer) {
+		super.setExplorer(explorer);
+	}
+	
+	/**
+	 * Load the configurationDegree map
+	 */
+	@Override
+	public void init() {
+
+		if(!once) 
+		{
+//			System.out.print("Map each feature to its configuration degree. This can be long, please wait... ");
+			System.out.print("M");
+			for (IFeature feature : this.fmExplorer.getFeatureModel().getFeatures()) {
+				try {
+					List<List<String>> listConfigurationsContainingFeature = this.fmExplorer.listConfigurationsContainingFeature(feature);
+					degrees.put(feature, listConfigurationsContainingFeature.size());
+				} catch (TimeoutException e) {
+					System.out.println("Timeout when loading the map <feature, degree>");
+				}
+			}
+			once = true;
+		}
+//		System.out.println("Done.");
+		super.init();
+	}
+	
+	/**
+	 * Selected the first feature to be selected
+	 * 
+	 * @param fmExplorer
+	 * @return a randomly selected leaf feature
+	 */
+	@Override
+	protected IFeature getFirstSelectedFeature() {
+		List<IFeature> leaves = fmExplorer.getLeafFeatures();
+		IFeature leafWithHigherDegree = getFeatureWithHigherDegree(leaves);
+
+		List<IFeature> siblingFeatures = fmExplorer.getSiblingFeatures(leafWithHigherDegree);
+		if (!siblingFeatures.isEmpty()) {
+			siblings = siblingFeatures;
+		}
+
+		return leafWithHigherDegree;
+	}
+	
+	private IFeature getFeatureWithHigherDegree(List<IFeature> features) {
+		IFeature featureWithHigherDegree = features.get(0);
+		int degree = degrees.get(featureWithHigherDegree);
+		
+		for (IFeature iFeature : features) {
+			if (degrees.get(iFeature) > degree) {
+				featureWithHigherDegree = iFeature;
+			}
+		}
+		
+		return featureWithHigherDegree;
+	}
+	
+	/**
+	 * When all sorted configurations have been explored and @see remainingConfigurations is not empty
+	 * Fill the @see sortedConfigurations (i) either with configurations containing a sibling of @see selectedFeature
+	 * (ii) or with configurations containing the parent of @see selectedFeature.
+	 * In both cases, configurations must also be present in @see remainingConfigurations 
+	 */
+	@Override
+	protected void reloadSortedConfigurations() {
+		if (remainingConfigurations.isEmpty()) {
+//			System.out.println("No more remaining configurations to sort and explore");
+		} else {
+			// If a leaf is mandatory and selected first, then selecting its sibling
+			// returns an empty sortedConfigurations. One need to select the parent
+			if (!siblings.isEmpty() && !selectedFeature.getStructure().isMandatory()) {
+				// There are sibling features, so the one with higher degree is picked
+				// Then configurations containing this sibling 
+				// and still present in remainingConfigurations are loaded into sortedConfigurations 
+				IFeature siblingFeature = getFeatureWithHigherDegree(siblings);
+				siblings.remove(siblingFeature);
+				fillSortedConfigurationsWithConfigurationsContainingFeature(siblingFeature);				
+			} else {
+				// No (more) sibling feature, so the parent feature is picked
+				// Then configurations containing this sibling 
+				// and still present in remainingConfigurations are loaded into sortedConfigurations 
+				IFeature parentFeature = fmExplorer.getParentFeature(selectedFeature);
+				if (!parentFeature.getStructure().isRoot()) {
+					siblings.clear();
+					siblings.addAll(fmExplorer.getSiblingFeatures(parentFeature));	
+				} 				
+				fillSortedConfigurationsWithConfigurationsContainingFeature(parentFeature);
+				
+				// For instance, if 2 siblings of a Xor relationships, sortedConfigurations also contains parentFeature
+				// Then one need to load configurations containing siblings of parentFeature 
+				if (sortedConfigurations.isEmpty()) {
+					reloadSortedConfigurations();
+				}
+			}
+		}
+	}
+
+}
diff --git a/code/src/fr/univ/lille/strategies/IncrementalStrategy.java b/code/src/fr/univ/lille/strategies/IncrementalStrategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..a43f74e7100cd13af0734ac735a3f1a7d82ec429
--- /dev/null
+++ b/code/src/fr/univ/lille/strategies/IncrementalStrategy.java
@@ -0,0 +1,151 @@
+package fr.univ.lille.strategies;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import org.sat4j.specs.TimeoutException;
+
+import de.ovgu.featureide.fm.core.base.IFeature;
+import fr.univ.lille.exploration.FMExplorer;
+
+/**
+ * This strategy returns the first configuration randomly, then return the
+ * following ones in an incremental way (i.e. returns configurations including
+ * sibling features
+ * 
+ * @author cquinton
+ */
+public class IncrementalStrategy extends AdvancedStrategy {
+
+	private Random random;
+	protected IFeature selectedFeature;
+	protected FMExplorer fmExplorer;
+	protected List<IFeature> siblings;
+
+	public IncrementalStrategy() {
+		this.random = new Random();
+	}
+
+	@Override
+	public void setExplorer(FMExplorer explorer) {
+		fmExplorer = explorer;
+	}
+	
+	@Override
+	public void init() {
+		selectedFeature = getFirstSelectedFeature();
+		fmExplorer.selectFeature(selectedFeature);
+		try {
+			this.sortedConfigurations = fmExplorer.listConfigurations();
+			remainingConfigurations.removeAll(sortedConfigurations);
+		} catch (TimeoutException e) {
+			System.out.println(" **** TIMEOUT **** when enumerating configurations containing feature "
+					+ selectedFeature.getName());
+		}
+	}
+
+	/**
+	 * Selected the first feature to be selected
+	 * 
+	 * @param fmExplorer
+	 * @return a randomly selected leaf feature
+	 */
+	@Override
+	protected IFeature getFirstSelectedFeature() {
+		List<IFeature> leaves = fmExplorer.getLeafFeatures();
+		int index = random.nextInt(leaves.size());
+		
+		IFeature feature = leaves.get(index);
+
+		List<IFeature> siblingFeatures = fmExplorer.getSiblingFeatures(feature);
+		if (!siblingFeatures.isEmpty()) {
+			siblings = siblingFeatures;
+		}
+
+		return feature;
+	}
+
+	/**
+	 * Return a random configuration which is both 
+	 * in the remaining ones and in the sorted ones
+	 */
+	@Override
+	public List<String> getNextConfiguration() {
+		int index = random.nextInt(sortedConfigurations.size());
+		List<String> product = sortedConfigurations.get(index);
+		sortedConfigurations.remove(product);
+
+		if (sortedConfigurations.isEmpty()) {
+			reloadSortedConfigurations();
+		}
+		return product;
+	}
+
+	/**
+	 * When all sorted configurations have been explored and @see remainingConfigurations is not empty
+	 * Fill the @see sortedConfigurations (i) either with configurations containing a sibling of @see selectedFeature
+	 * (ii) or with configurations containing the parent of @see selectedFeature.
+	 * In both cases, configurations must also be present in @see remainingConfigurations 
+	 */
+	protected void reloadSortedConfigurations() {
+		if (remainingConfigurations.isEmpty()) {
+//			System.out.println("No more remaining configurations to sort and explore");
+		} else {
+			// If a leaf is mandatory and selected first, then selecting its sibling
+			// returns an empty sortedConfigurations. One need to select the parent
+			if (!siblings.isEmpty() && !selectedFeature.getStructure().isMandatory()) {
+				// There are sibling features, so one is picked randomly
+				// Then configurations containing this sibling 
+				// and still present in remainingConfigurations are loaded into sortedConfigurations 
+				random = new Random();
+				int index = random.nextInt(siblings.size());
+				IFeature siblingFeature = siblings.get(index);
+				siblings.remove(siblingFeature);
+				fillSortedConfigurationsWithConfigurationsContainingFeature(siblingFeature);				
+			} else {
+				// No (more) sibling feature, so the parent feature is picked
+				// Then configurations containing this sibling 
+				// and still present in remainingConfigurations are loaded into sortedConfigurations 
+				IFeature parentFeature = fmExplorer.getParentFeature(selectedFeature);
+				if (!parentFeature.getStructure().isRoot()) {
+					siblings.clear();
+					siblings.addAll(fmExplorer.getSiblingFeatures(parentFeature));	
+				} 				
+				fillSortedConfigurationsWithConfigurationsContainingFeature(parentFeature);
+				
+				// For instance, if 2 siblings of a Xor relationships, sortedConfigurations also contains parentFeature
+				// Then one need to load configurations containing siblings of parentFeature 
+				if (sortedConfigurations.isEmpty()) {
+					reloadSortedConfigurations();
+				}
+			}
+		}
+	}
+
+	protected void fillSortedConfigurationsWithConfigurationsContainingFeature(IFeature feature) {
+		fmExplorer.unselectFeatures();
+		selectedFeature = feature;
+		fmExplorer.selectFeature(feature);
+		try {
+			List<List<String>> configurationsWithSibling = new ArrayList<List<String>>(fmExplorer.listConfigurations());
+
+			for (List<String> configSibling : configurationsWithSibling) {
+				if (remainingConfigurations.contains(configSibling)) {
+					this.sortedConfigurations.add(configSibling);
+				}
+			}
+			remainingConfigurations.removeAll(sortedConfigurations);
+		} catch (TimeoutException e) {
+			System.out.println(" **** TIMEOUT **** when enumerating configurations containing sibling feature "
+					+ feature.getName());
+		}
+	}
+
+	@Override
+	public boolean hasRemainingConfigurations() {
+		boolean empty = (sortedConfigurations.isEmpty() && remainingConfigurations.isEmpty());
+		return !empty;
+	}
+
+}
diff --git a/code/src/fr/univ/lille/strategies/Strategy.java b/code/src/fr/univ/lille/strategies/Strategy.java
new file mode 100644
index 0000000000000000000000000000000000000000..adbebfceac598934ee958da2c74f2cfc579c22f1
--- /dev/null
+++ b/code/src/fr/univ/lille/strategies/Strategy.java
@@ -0,0 +1,9 @@
+package fr.univ.lille.strategies;
+
+import java.util.List;
+
+public interface Strategy {
+
+		public List<String> getNextConfiguration();
+
+}
diff --git a/code/src/icsoc20/EpsilonGreedyExploration.java b/code/src/icsoc20/EpsilonGreedyExploration.java
new file mode 100644
index 0000000000000000000000000000000000000000..160828fe63df4f3b758ba69f36a2644b5f023f22
--- /dev/null
+++ b/code/src/icsoc20/EpsilonGreedyExploration.java
@@ -0,0 +1,134 @@
+// credits: based on
+//
+// Catalano Machine Learning Library
+// The Catalano Framework
+//
+// Copyright © Diego Catalano, 2013
+// diego.catalano at live.com
+//
+// Copyright © Andrew Kirillov, 2007-2008
+// andrew.kirillov@gmail.com
+//
+//    This library is free software; you can redistribute it and/or
+//    modify it under the terms of the GNU Lesser General Public
+//    License as published by the Free Software Foundation; either
+//    version 2.1 of the License, or (at your option) any later version.
+//
+//    This library is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//    Lesser General Public License for more details.
+//
+//    You should have received a copy of the GNU Lesser General Public
+//    License along with this library; if not, write to the Free Software
+//    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+package icsoc20;
+
+import java.util.Random;
+
+/**
+ * <para>The class implements epsilon greedy exploration policy. Acording to the policy,
+ * the best action is chosen with probability <b>1-epsilon</b>. Otherwise,
+ * with probability <b>epsilon</b>, any other action, except the best one, is
+ * chosen randomly.</para>
+ * 
+ * <para> According to the policy, the epsilon value is known also as exploration rate. </para>
+ * @author Diego Catalano
+ */
+public class EpsilonGreedyExploration implements IExplorationPolicy{
+    private double epsilon;
+   
+    private int maxAction;
+    private int previousMaxAction;
+    
+    private boolean evolAware;
+    
+    private Random r = new Random();
+
+    /**
+     * Initializes a new instance of the EpsilonGreedyExploration class.
+     * @param epsilon Epsilon value (exploration rate).
+     */
+    public EpsilonGreedyExploration(double epsilon, int maxAction, boolean evolAware) {
+        this.epsilon = epsilon;
+        this.maxAction = maxAction;
+        
+        this.evolAware = evolAware;
+    }
+
+    /**
+     * Get Episilon value.
+     * @return Return Epsilon value.
+     */
+    public double getEpsilon() {
+        return epsilon;
+    }
+
+    /**
+     * The value determines the amount of exploration driven by the policy.
+     * If the value is high, then the policy drives more to exploration - choosing random
+     * action, which excludes the best one. If the value is low, then the policy is more
+     * greedy - choosing the best so far action.
+     * 
+     * @param epsilon Epsilon value (exploration rate), [0, 1].
+     */
+    public void setEpsilon(double epsilon) {
+        this.epsilon = Math.max( 0.0, Math.min( 1.0, epsilon ) );
+    }
+    
+    public void setDelta(double delta) {
+        // do nothing;
+    }
+    
+
+    public void setMaxAction(int maxAction) {
+        this.maxAction = maxAction;
+    }
+    
+    public void setPreviousMaxAction(int maxAction) {
+        this.previousMaxAction = maxAction;
+    }
+    
+    /**
+     * The method chooses an action depending on the provided estimates. The
+     * estimates can be any sort of estimate, which values usefulness of the action
+     * (expected summary reward, discounted reward, etc).
+     * 
+     * @param actionEstimates Action Estimates.
+     * @return Return Selected actions.
+     */
+    @Override
+    public int ChooseAction(double[] actionEstimates){
+    	int actionsCount = maxAction;
+    	
+        // find the best action (greedy)
+        double maxReward = actionEstimates[0];
+        int greedyAction = 0;
+
+        for ( int i = 0; i < actionsCount; i++ )
+        {
+            if ( actionEstimates[i] > maxReward )
+            {
+                maxReward = actionEstimates[i];
+                greedyAction = i;
+            }
+        }
+
+        // try to do exploration
+        if ( r.nextDouble( ) < epsilon )
+        {
+        	int randomAction = r.nextInt( actionsCount - 1 );
+        	// If evolution aware, explore the set of newly added actions
+        	if(evolAware) {
+        		randomAction = previousMaxAction + r.nextInt( (maxAction - previousMaxAction) - 1);
+        	}
+
+            return randomAction;
+        }
+
+        return greedyAction;
+    }
+    
+}
\ No newline at end of file
diff --git a/code/src/icsoc20/FMExploration.java b/code/src/icsoc20/FMExploration.java
new file mode 100644
index 0000000000000000000000000000000000000000..f04d955845488d333b7f4a6ea16e1daa305636c2
--- /dev/null
+++ b/code/src/icsoc20/FMExploration.java
@@ -0,0 +1,220 @@
+// credits: based on
+//
+// Catalano Machine Learning Library
+// The Catalano Framework
+//
+// Copyright © Diego Catalano, 2013
+// diego.catalano at live.com
+//
+// Copyright © Andrew Kirillov, 2007-2008
+// andrew.kirillov@gmail.com
+//
+//    This library is free software; you can redistribute it and/or
+//    modify it under the terms of the GNU Lesser General Public
+//    License as published by the Free Software Foundation; either
+//    version 2.1 of the License, or (at your option) any later version.
+//
+//    This library is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//    Lesser General Public License for more details.
+//
+//    You should have received a copy of the GNU Lesser General Public
+//    License along with this library; if not, write to the Free Software
+//    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+package icsoc20;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+
+import org.sat4j.specs.TimeoutException;
+
+import de.ovgu.featureide.fm.core.base.IFeature;
+import fr.univ.lille.MeasureFinder;
+import fr.univ.lille.exploration.FMExplorer;
+import fr.univ.lille.measurements.ConfigurationValidator;
+
+/**
+ * Implements the FM-guided exploration strategies. Follows similar flow as e-greedy, but replaces
+ * random selection of next action with FM-guided (IncrementalStrategy or IncrementalDegreeStrategy)
+ * selection of next action.
+ * 
+ * @author Andreas Metzger
+ */
+public class FMExploration implements IExplorationPolicy{
+    private double epsilon; // exploration rate
+    private double delta; // to introduce a little randomization to bootstrap FM-guided exploration
+    
+    private Random r = new Random();
+    private Random q = new Random();
+
+    private FMExplorer explorer = null;
+    private MeasureFinder finder = null;
+    
+    private int maxAction;
+    private int previousMaxAction = 0;
+    
+    private boolean evolAware = true;
+    
+    private Map<String,Integer> confAction;
+    private Map<Integer,String> actionConf;
+    
+    /**
+     * Initializes a new instance of the FMExploration class.
+     * @param epsilon Epsilon value (exploration rate).
+     * @param confAction A map that maps configurations to action numbers (connecting FM-guided and Q-Learning).
+     * @param actionConf A map that maps action numbers to configurations (connecting FM-guided and Q-Learning).
+     * @param strategy The FM-guided strategy to be used (2 = Incremental, 3 = IncrementalDegree)
+     * @param maxAction Highest permissible action in action space (to scope action space during evolution)
+     * @param evolAware If true, consider new part of action space first
+     */
+    public FMExploration(double epsilon,  Map<String,Integer> confAction, 
+    		Map<Integer,String> actionConf, int strategy, int maxAction, boolean evolAware) {
+        this.epsilon = epsilon;
+        
+        this.maxAction = maxAction;
+        this.evolAware = evolAware;
+        
+        
+        this.confAction = confAction;
+        this.actionConf = actionConf;
+        
+		this.finder = new MeasureFinder(strategy, "resources/models/CloudRM.xml", "resources/measures/CloudRM.xml");
+		finder.loadMeasures();
+		
+    }
+
+    public double getEpsilon() {
+        return epsilon;
+    }
+
+    /**
+     * Set epsilon.
+     * 
+     * @param epsilon Epsilon value (exploration rate), [0, 1].
+     */
+    public void setEpsilon(double epsilon) {
+        this.epsilon = Math.max( 0.0, Math.min( 1.0, epsilon ) );
+    }
+    
+
+    /**
+     * Set delta, to introduce a little randomization to bootstrap FM-guided exploration.
+     * 
+     * @param delta Delta value, [0, 1].
+     */
+
+    public void setDelta(double delta) {
+        this.delta = Math.max( 0.0, Math.min( 1.0, delta ) );
+    }
+
+    public void setMaxAction(int maxAction) {
+        this.maxAction = maxAction;
+    }
+
+    public void setPreviousMaxAction(int maxAction) {
+        this.previousMaxAction = maxAction;
+    }
+    
+    /**
+     * Action selection by either exploiting knowledge or exploring the action space (using
+     * FM-guided strategies)
+     * 
+     * @param actionEstimates Action Estimates (Q-Table).
+     * @return Return Selected actions.
+     */
+    @Override
+    public int ChooseAction(double[] actionEstimates){
+        int actionsCount = maxAction;
+    	
+        // Exploitation: find the best action (greedy)
+        double maxReward = actionEstimates[0];
+        int greedyAction = 0;
+
+        for ( int i = 0; i < actionsCount; i++ )
+        {
+            if ( actionEstimates[i] > maxReward )
+            {
+                maxReward = actionEstimates[i];
+                greedyAction = i;
+            }
+        }
+
+        // Exploration: find the action using FM-guided exploration
+        if ( r.nextDouble( ) < epsilon )
+        {
+        	int fmAction = 0;
+        	String fmConfigOld;
+
+        	// use a certain amount of randomness at the start to ensure
+        	// configuration space is "explored" and not stuck in local minima
+        	if(q.nextDouble() < delta) {
+        		fmAction = r.nextInt( actionsCount - 1 );
+        	} else {
+                // Find the next configuration starting from greedy action (exploitation)
+        		
+        		// (re-init) Strategy (to start search the whole space of configurations)
+        		// NOTE: Current workaround for not having a setConfig method
+        		this.explorer = finder.getExplorer();
+        		
+        		// Get config string from greedy action
+        		String currentConfig = actionConf.get(greedyAction);
+        		String nextConfig = "";
+        		List<String> nextConfiguration;
+        		
+        		while(explorer.getExplorationStrategy().hasRemainingConfigurations()) {
+        			nextConfiguration = explorer.getNextConfiguration();
+        			String config = ConfigurationValidator.formatConfiguration(nextConfiguration);
+        			
+        			// remember this action, which may be used if new part of adaptation space is exhausted
+        			// "our strategies first explore the feature combinations that were added to the 
+        			// adaptation space by an evolution step, and then explore the remaining feature combinations 
+        			// if needed"
+        			fmConfigOld = config;
+        			
+        			if(config.equals(currentConfig)) {
+        				if(explorer.getExplorationStrategy().hasRemainingConfigurations()) {
+        					do {
+	        					if(explorer.getExplorationStrategy().hasRemainingConfigurations()) {
+	        						nextConfiguration = explorer.getNextConfiguration();
+		        					nextConfig = ConfigurationValidator.formatConfiguration(nextConfiguration);
+		        					fmAction = confAction.get(nextConfig);	
+	        					} else {
+	        						nextConfig = fmConfigOld;
+	        						break;
+	        					}
+	        					// actions should be smaller than the maximum space
+	        					if(fmAction >= actionsCount) continue;
+        					} while((evolAware && fmAction < previousMaxAction));
+    					
+        				} else {
+        					nextConfig = "-1";
+        				}
+        					
+        			}
+        		}
+
+        		if(nextConfig.equals("")) {
+        			System.out.println("\nERROR: Could not match starting config");
+        			fmAction = greedyAction;
+        		} else if(nextConfig.equals("-1")) {
+        			// WARNING: Configuration space exhausted
+        			System.out.print("W");
+        			fmAction = greedyAction;        		
+        		} else {
+        			fmAction = confAction.get(nextConfig);
+        		}
+        		
+        	}        	
+        	return fmAction;
+        }
+
+
+        
+        return greedyAction;
+    }
+    
+}
\ No newline at end of file
diff --git a/code/src/icsoc20/IExplorationPolicy.java b/code/src/icsoc20/IExplorationPolicy.java
new file mode 100644
index 0000000000000000000000000000000000000000..a1fbc4a6f1415febe546e15599b9840fc187c8fc
--- /dev/null
+++ b/code/src/icsoc20/IExplorationPolicy.java
@@ -0,0 +1,51 @@
+// credits: based on
+//
+// Catalano Machine Learning Library
+// The Catalano Framework
+//
+// Copyright © Diego Catalano, 2013
+// diego.catalano at live.com
+//
+// Copyright © Andrew Kirillov, 2007-2008
+// andrew.kirillov@gmail.com
+//
+//    This library is free software; you can redistribute it and/or
+//    modify it under the terms of the GNU Lesser General Public
+//    License as published by the Free Software Foundation; either
+//    version 2.1 of the License, or (at your option) any later version.
+//
+//    This library is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//    Lesser General Public License for more details.
+//
+//    You should have received a copy of the GNU Lesser General Public
+//    License along with this library; if not, write to the Free Software
+//    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+package icsoc20;
+
+/**
+ * The interface describes exploration policies, which are used in Reinforcement
+ * Learning to explore state space.
+ * 
+ * @author Diego Catalano
+ * @author Andreas Metzger (slight extension to include more methods for FM-guided exploration)
+ */
+public interface IExplorationPolicy {
+    /**
+     * The method chooses an action depending on the provided estimates. the
+     * estimates can be any sort of estimate, which values usefulness of the action
+     * (expected summary reward, discounted reward, etc).
+     * 
+     * @param actionEstimates Action estimates.
+     * @return Returns selected action.
+     */
+    public int ChooseAction(double[] actionEstimates);
+    public void setEpsilon(double epsilon);
+    public void setDelta(double delta);
+    public void setMaxAction(int maxAction);
+    public void setPreviousMaxAction(int maxAction);
+    
+}
\ No newline at end of file
diff --git a/code/src/icsoc20/Main.java b/code/src/icsoc20/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e27c5330350f804eab8bd871d0850a073b960c1
--- /dev/null
+++ b/code/src/icsoc20/Main.java
@@ -0,0 +1,381 @@
+package icsoc20;
+
+import java.awt.Toolkit;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+
+import com.opencsv.CSVReader;
+
+/**
+ * The main class and method for executing the ICSOC 2020 experiments
+ * 
+ * @author Andreas Metzger
+ */
+public class Main {
+
+	
+	// Environment data (will be read from file)
+	public static double rewards[] = new double[344];
+	public static String config[] = new String[344];
+	// Specifics for the CloudRM exemplar: QoS values
+	public static double energy[] = new double[344];
+	public static double migrations[] = new double[344];
+	
+	// Mapping configurations to int = action (for Q-Learning) and vice versa
+	public static Map<String,Integer> confAction = new HashMap<String,Integer>();
+	public static Map<Integer,String> actionConf= new HashMap<Integer,String>();
+	
+	
+	// --- Hyper-Parameters
+	static double learningRate = .85;	// Std. Q-Learning Hyperparam.
+	static double discountFactor = .2;	// Std. Q-Learning Hyperparam.
+	
+	static double epsilonDecayRate = 0.97;  // Std. E-Decay Hyperparam.
+	static double deltaDecayRate = 0.90; 	// Decay Hyperparam. for FM-guided strategies
+		
+	// -- Experiment parameters
+	static int nbrRuns = 100;		// repetitions of experiment
+	static int maxEpisodes = 250; 	// number of episodes (i.e., time steps)
+	static int avg = 10; 			// number of rewards to be averaged (to smooth the curves a little)
+
+	static boolean evolution = true;  // True for running evolution experiments
+	static int nbrEvolSteps = 4; 	  // Max number of evolution steps 
+	
+	static String resDir = "x-qlearning"; // Results directory
+
+	// specifies which results to compute
+	static int qln = 1;
+	static int inc = 1;
+	static int deg = 1;
+
+	static int eqln = 1;
+	static int einc = 1;
+	static int edeg = 1;
+
+	// ---	
+	
+	public static void main(String[] args) {
+
+		try{
+			
+			// read rewards per config from file
+			readRewards("./resources/cloudrm.csv");
+	
+			// output to CSV
+			PrintWriter wr = new PrintWriter(new FileWriter("./dat/"+resDir+"/"+"res.csv"));	
+			wr.println("e;q;qe;ie;ine;de;dne;Eq;Eqe;Eie;Eine;Ede;Edne;Mq;Mqe;Mie;Mine;Mde;Mdne;");
+			
+			// Epsilon Greedy - NON EVOL-AWARE
+			System.out.println("\n========= e-Greedy - NO EVOL");
+			EpsilonGreedyExploration ep = new EpsilonGreedyExploration(0.0, 344, false);
+			double resultsQ[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double EresultsQ[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double MresultsQ[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			
+			for(int k = 0; k < nbrRuns; k++) {
+				System.out.print("\n### "+k+" ");
+				if(qln == 1) learn(ep, resultsQ[k], EresultsQ[k], MresultsQ[k], evolution);				
+			}
+
+			// Epsilon Greedy - EVOL-AWARE
+			System.out.println("\n========= e-Greedy - EVOL");
+			EpsilonGreedyExploration eep = new EpsilonGreedyExploration(0.0, 344, true);
+			double resultsQE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double EresultsQE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double MresultsQE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			
+			for(int k = 0; k < nbrRuns; k++) {
+				System.out.print("\n### "+k+" ");
+				if(eqln == 1) learn(eep, resultsQE[k], EresultsQE[k], MresultsQE[k], evolution);				
+			}
+
+			
+			// FM-Learning: Inc strategy - NON EVOL-AWARE
+			System.out.println("\n\n========= FM-Learning: Incremental - NO EVOL");
+			FMExploration epINE = new FMExploration(0.0, confAction, actionConf, 2, 344, false);
+			double resultsINE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double EresultsINE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double MresultsINE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			
+			for(int k = 0; k < nbrRuns; k++) {
+				System.out.print("\n### "+k+" ");
+				if(inc == 1) learn(epINE, resultsINE[k], EresultsINE[k], MresultsINE[k], evolution);
+			}
+
+			// FM-Learning: Inc strategy - EVOL-AWARE
+			System.out.println("\n\n========= FM-Learning: Incremental - EVOL");
+			FMExploration epIE = new FMExploration(0.0, confAction, actionConf, 2, 344, true);
+			double resultsIE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double EresultsIE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double MresultsIE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+
+			for(int k = 0; k < nbrRuns; k++) {
+				System.out.print("\n### "+k+" ");
+				if(einc == 1 ) learn(epIE, resultsIE[k], EresultsIE[k], MresultsIE[k], evolution);
+			}
+
+						
+			// FM-Learning: Deg strategy - NON EVOL-AWARE
+			System.out.println("\n\n========= FM-Learning: Feature Degree - NO EVOL");
+			FMExploration epDNE = new FMExploration(0.0, confAction, actionConf, 3, 344, false);
+			double resultsDNE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double EresultsDNE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double MresultsDNE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			
+			for(int k = 0; k < nbrRuns; k++) {
+				System.out.print("\n### "+k+" ");
+				if(deg == 1) learn(epDNE, resultsDNE[k], EresultsDNE[k], MresultsDNE[k], evolution);
+			}
+						
+			// FM-Learning: Deg strategy - EVOL-AWARE
+			System.out.println("\n\n========= FM-Learning: Feature Degree - EVOL");
+			FMExploration epDE = new FMExploration(0.0, confAction, actionConf, 3, 344, true);
+			double resultsDE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double EresultsDE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+			double MresultsDE[][] = new double[nbrRuns][maxEpisodes*nbrEvolSteps];
+
+			for(int k = 0; k < nbrRuns; k++) {
+				System.out.print("\n### "+k+" ");
+				if(edeg == 1) learn(epDE, resultsDE[k], EresultsDE[k], MresultsDE[k], evolution);
+			}
+			
+						
+			// Generate results CSV (averaging the different runs)
+			double rewQ = 0; double rewQE = 0; double rewIE = 0; double rewINE = 0; double rewDE = 0; double rewDNE = 0;
+			double ErewQ = 0; double ErewQE = 0; double ErewIE = 0; double ErewINE = 0; double ErewDE = 0; double ErewDNE = 0;
+			double MrewQ = 0; double MrewQE = 0; double MrewIE = 0; double MrewINE = 0; double MrewDE = 0; double MrewDNE = 0;
+			
+			// start CSV output after first complete avg reward was computed
+			for(int i = avg; i < maxEpisodes*nbrEvolSteps; i++) {
+				rewQ = 0;  rewQE = 0;  rewIE = 0;  rewINE = 0;  rewDE = 0;  rewDNE = 0;
+				ErewQ = 0; ErewQE = 0; ErewIE = 0; ErewINE = 0; ErewDE = 0; ErewDNE = 0;
+				MrewQ = 0; MrewQE = 0; MrewIE = 0; MrewINE = 0; MrewDE = 0; MrewDNE = 0;
+				
+				for(int k = 0; k < nbrRuns; k++) {
+					rewQ +=    resultsQ[k][i]; 
+					rewQE +=   resultsQE[k][i]; 
+					rewIE +=   resultsIE[k][i];
+					rewINE +=  resultsINE[k][i];
+					rewDE +=   resultsDE[k][i];
+					rewDNE +=  resultsDNE[k][i];
+					
+					ErewQ +=   EresultsQ[k][i];
+					ErewQE +=  EresultsQE[k][i]; 
+					ErewIE +=  EresultsIE[k][i];
+					ErewINE += EresultsINE[k][i];
+					ErewDE +=  EresultsDE[k][i];
+					ErewDNE += EresultsDNE[k][i];
+
+					MrewQ +=   MresultsQ[k][i];
+					MrewQE +=  MresultsQE[k][i]; 
+					MrewIE +=  MresultsIE[k][i];
+					MrewINE += MresultsINE[k][i];
+					MrewDE +=  MresultsDE[k][i];
+					MrewDNE += MresultsDNE[k][i];
+
+				}
+				
+				wr.println(""+i
+				+";"+String.format(Locale.GERMANY, "%.10g", rewQ/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", rewQE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", rewIE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", rewINE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", rewDE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", rewDNE/(double)nbrRuns)
+				
+				+";"+String.format(Locale.GERMANY, "%.10g", ErewQ/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", ErewQE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", ErewIE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", ErewINE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", ErewDE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", ErewDNE/(double)nbrRuns)
+				
+				+";"+String.format(Locale.GERMANY, "%.10g", MrewQ/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", MrewQE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", MrewIE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", MrewINE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", MrewDE/(double)nbrRuns)
+				+";"+String.format(Locale.GERMANY, "%.10g", MrewDNE/(double)nbrRuns)
+				);
+
+			}
+			wr.close();
+
+		} catch(Exception e) {
+			e.printStackTrace();
+		}
+		
+		System.out.println("\n\n Done");
+		Toolkit.getDefaultToolkit().beep(); 
+
+	}
+	
+	/**
+	 * Implementation of the main learning loop, including the initialization of the Q-Table and
+	 * iterations of get next state and update Q-Table
+	 * 
+	 * @param  ep 		 the exploration policy to use
+	 * @param  results 	 an array of the rewards achieved
+	 * @param  evolution consider evolution steps (or not)
+	 */
+	public static void learn(IExplorationPolicy ep, double results[], double Eresults[], double Mresults[], boolean evolution) throws Exception {
+		
+		// Init Rewards with -1.7, i.e., lowest reward possible (for CloudRM data set here)
+		// If higher values, this means one implicitly defines exploration via optimistic initial values and
+		// thus may overlay with the effect of e-greedy or FM-guided learning  
+		QLearning ql = new QLearning(1, 344, ep, false, -1.7);
+		
+		// Hyper-parameters for Q-Learning
+		ql.setDiscountFactor(discountFactor);
+		ql.setLearningRate(learningRate);
+		
+		int action = 0;
+		double reward = 0;
+
+		// For smoothing the curves a little
+		double avgreward[] = new double[avg];
+		for(int k = 0; k < avg; k++) avgreward[k] = -1;
+		double totalreward = 0;
+		double avgE[] = new double[avg];
+		for(int k = 0; k < avg; k++) avgE[k] = 0;
+		double totalE = 0;
+		double avgM[] = new double[avg];
+		for(int k = 0; k < avg; k++) avgM[k] = -1;
+		double totalM = 0;
+
+		if(!evolution)
+			nbrEvolSteps = 1;
+		
+		// Different evolution steps (if any)
+		// The action numbers are manually determined from the CloudRM feature model
+		for(int e = 0; e < nbrEvolSteps; e++) {
+			switch(e) {
+			case 0: 
+				if(!evolution) {
+					ql.setActions(344);
+					ep.setMaxAction(344);
+					ep.setPreviousMaxAction(0);
+				} else {
+				ql.setActions(26);
+				ep.setMaxAction(26);
+				ep.setPreviousMaxAction(0);
+				}
+				break;
+			case 1:
+				ql.setActions(56);
+				ep.setMaxAction(56);
+				ep.setPreviousMaxAction(26);
+				break;				
+			case 2:
+				ql.setActions(128);
+				ep.setMaxAction(128);
+				ep.setPreviousMaxAction(56);
+				break;		
+			case 3:
+				ql.setActions(344);
+				ep.setMaxAction(344);
+				ep.setPreviousMaxAction(128);
+				break;		
+			}
+			
+		
+			double epsilon = 1.0;
+			double delta = 1.0;
+			
+			for(int i = 0; i < maxEpisodes; i++) {
+				
+				if(i%50 == 0)
+					System.out.print(".");
+	
+				// Implement epsilon decay
+				ep.setEpsilon(epsilon);
+				epsilon = epsilon * epsilonDecayRate;
+	
+				// Implement delta decay
+				// (certain amount of randomness also for FM strategies at beginning)
+				ep.setDelta(delta);
+				delta = delta * deltaDecayRate;
+				
+				// Select action and get reward for that action
+				action = ql.GetAction(0);
+				reward = rewards[action];
+				
+				// compute rewards (smoothed via avg)
+				avgreward[i % avg] = reward;
+				totalreward = 0;
+				for(int k = 0; k < avg; k++) totalreward += avgreward[k];		
+				results[maxEpisodes*e + i] = totalreward/(double)avg;
+
+				// compute QoS values
+				avgE[i % avg] = energy[action];
+				totalE = 0;
+				for(int k = 0; k < avg; k++) totalE += avgE[k];		
+				Eresults[maxEpisodes*e + i] = totalE/(double)avg;
+
+				avgM[i % avg] = migrations[action];
+				totalM = 0;
+				for(int k = 0; k < avg; k++) totalM += avgM[k];		
+				Mresults[maxEpisodes*e + i] = totalM/(double)avg;
+
+				// Q-Learning
+				ql.UpdateState(0, action, reward, 0);
+			}
+			
+		}
+	}
+
+	/**
+	 * Read the rewards per feature combination (configuration) from CSV file.
+	 * NOTE: Configurations for the evolution aware experiments need to be sorted in such a way
+	 * as to allow discerning the FM deltas according to the position in the file
+	 * 
+	 * @param  filename the filename of the CSV
+	 */
+	public static void readRewards(String filename) throws Exception {
+		
+			
+			Reader myReader = new BufferedReader(new FileReader(new File(filename)));
+			CSVReader myCSV = new CSVReader(myReader, ';');
+					
+			Iterator<String[]> entries = myCSV.iterator();
+			String[] entry = null;
+			entries.next(); // skip the header
+
+			int k=0;
+			Double tmp = 0.0;
+
+			while(entries.hasNext()){
+				entry = entries.next();
+				tmp = Double.parseDouble(entry[0].replace(',','.'));
+				rewards[k] = tmp;
+
+				tmp = Double.parseDouble(entry[1].replace(',','.'));
+				energy[k] = tmp;
+
+				tmp = Double.parseDouble(entry[2].replace(',','.'));
+				migrations[k] = tmp;
+				
+				config[k] = entry[3];
+				
+				confAction.put(config[k], k);
+				actionConf.put(k, config[k]);
+				
+				k++;
+			}
+					
+			myCSV.close();
+
+		
+	}
+	
+	
+
+}
diff --git a/code/src/icsoc20/QLearning.java b/code/src/icsoc20/QLearning.java
new file mode 100644
index 0000000000000000000000000000000000000000..706dc7b05dc1baf6c507843b806f8a6b371d3199
--- /dev/null
+++ b/code/src/icsoc20/QLearning.java
@@ -0,0 +1,218 @@
+// credits: based on
+//
+// Catalano Machine Learning Library
+// The Catalano Framework
+//
+// Copyright © Diego Catalano, 2013
+// diego.catalano at live.com
+//
+// Copyright © Andrew Kirillov, 2007-2008
+// andrew.kirillov@gmail.com
+//
+//    This library is free software; you can redistribute it and/or
+//    modify it under the terms of the GNU Lesser General Public
+//    License as published by the Free Software Foundation; either
+//    version 2.1 of the License, or (at your option) any later version.
+//
+//    This library is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//    Lesser General Public License for more details.
+//
+//    You should have received a copy of the GNU Lesser General Public
+//    License along with this library; if not, write to the Free Software
+//    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+package icsoc20;
+
+import java.util.Locale;
+import java.util.Random;
+
+/**
+ * The class provides implementation of Q-Learning algorithm, known as
+ * off-policy Temporal Difference control.
+ * 
+ * @author Diego Catalano
+ * @author Andreas Metzger (slight streamlining to be consistent with Sutton & Barto 2018)
+ */
+public class QLearning{
+    // amount of possible states
+    private int states;
+    // amount of possible actions
+    private int actions;
+    // q-values
+    private double[][] qvalues;
+    // exploration policy
+    private IExplorationPolicy explorationPolicy;
+
+    // discount factor
+    private double discountFactor = 0.95;
+    // learning rate
+    private double learningRate = 0.25;
+
+    /**
+     * Amount of possible states.
+     * @return States
+     */
+    public int getStates() {
+        return states;
+    }
+
+    /**
+     * Amount of possible actions.
+     * @return Actions
+     */
+    public int getActions() {
+        return actions;
+    }
+
+    public void setActions(int maxAction) {
+        actions = maxAction;
+    }
+
+    
+    /**
+     * Exploration policy.
+     * @return Exploration Policy
+     */
+    public IExplorationPolicy getExplorationPolicy() {
+        return explorationPolicy;
+    }
+
+    /**
+     * Policy, which is used to select actions.
+     * @param explorationPolicy Exploration Policy
+     */
+    public void setExplorationPolicy(IExplorationPolicy explorationPolicy) {
+        this.explorationPolicy = explorationPolicy;
+    }
+
+    /**
+     * Get Learning Rate
+     * @return Learning Rate
+     */
+    public double getLearningRate() {
+        return learningRate;
+    }
+
+    /**
+     * Learning rate, [0, 1].
+     * The value determines the amount of updates Q-function receives
+     * during learning. The greater the value, the more updates the function receives.
+     * The lower the value, the less updates it receives.
+     * 
+     * @param learningRate
+     */
+    public void setLearningRate(double learningRate) {
+        this.learningRate = Math.max(0.0, Math.min(1.0, learningRate));
+    }
+
+    /**
+     * Get Discount factor for the expected summary reward.
+     * 
+     * @return Discount Factor
+     */
+    public double getDiscountFactor() {
+        return discountFactor;
+    }
+
+    /**
+     * Discount factor for the expected summary reward. The value serves as
+     * multiplier for the expected reward. So if the value is set to 1,
+     * then the expected summary reward is not discounted. If the value is getting
+     * smaller, then smaller amount of the expected reward is used for actions'
+     * estimates update.
+     * 
+     * @param discountFactor
+     */
+    public void setDiscountFactor(double discountFactor) {
+        this.discountFactor = Math.max(0.0, Math.min(1.0, discountFactor ));
+    }
+    
+    
+    
+    /**
+     *  Initializes a new instance of the QLearning class.
+     * @param states Amount of possible states.
+     * @param actions Amount of possible actions.
+     * @param explorationPolicy Exploration policy.
+     * @param randomize Randomize action estimates or not.
+     */
+    public QLearning( int states, int actions, IExplorationPolicy explorationPolicy, boolean randomize, double initQValue){
+    this.states  = states;
+    this.actions = actions;
+    this.explorationPolicy = explorationPolicy;
+
+    // create Q-array
+    qvalues = new double[states][];
+    for ( int i = 0; i < states; i++ ){
+        qvalues[i] = new double[actions];
+    }
+
+    // initialize
+    for ( int i = 0; i < states; i++ ){
+        for ( int j = 0; j < actions; j++ ){
+            if (randomize) {
+                Random r = new Random();
+                qvalues[i][j] = r.nextDouble() / 10;
+            } else {
+                qvalues[i][j] = initQValue;
+            }
+        }
+    }    
+    }
+    
+    
+    public void printQTable() {
+    	for ( int i = 0; i < states; i++ ){
+            for ( int j = 0; j < actions; j++ ){
+                System.out.print(String.format(Locale.GERMANY, "%.10g", qvalues[i][j])+"\t");
+            }
+            System.out.println();
+        }    
+    }
+    
+    
+    
+    /**
+     * Get next action from the specified state.
+     * @param state Current state to get an action for.
+     * @return Returns the action for the state.
+     */
+    public int GetAction( int state ){
+        return explorationPolicy.ChooseAction( qvalues[state] );
+    }
+    
+    /**
+     * Update Q-function's value for the previous state-action pair.
+     * @param previousState Previous state.
+     * @param action Action, which leads from previous to the next state.
+     * @param reward Reward value, received by taking specified action from previous state.
+     * @param nextState Next state.
+     */
+    public void UpdateState( int previousState, int action, double reward, int nextState ){
+    // next state's action estimations
+    double[] nextActionEstimations = qvalues[nextState];
+    
+    // find maximum expected summary reward from the next state
+    double maxNextExpectedReward = nextActionEstimations[0];
+
+    for ( int i = 1; i < actions; i++ ){
+            if ( nextActionEstimations[i] > maxNextExpectedReward )
+                    maxNextExpectedReward = nextActionEstimations[i];
+    }
+
+    // previous state's action estimations
+    double[] previousActionEstimations = qvalues[previousState];
+
+    // update expected summary reward of the previous state [Sutton & Barto]
+    previousActionEstimations[action] = previousActionEstimations[action] 
+    		+ learningRate * (reward + discountFactor * maxNextExpectedReward - previousActionEstimations[action]);
+    
+    
+    }
+    
+   
+   
+}
\ No newline at end of file
diff --git a/data/CloudRM_Rewards_QoS.xlsx b/data/CloudRM_Rewards_QoS.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..c4e43a868f2f0ff7881438652269d5b0152c5c58
Binary files /dev/null and b/data/CloudRM_Rewards_QoS.xlsx differ
diff --git a/results/CloudRM_Learning_Characteristics.xlsx b/results/CloudRM_Learning_Characteristics.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..8fc0ab8faca1395359066e92b3a87723ba92ef7a
Binary files /dev/null and b/results/CloudRM_Learning_Characteristics.xlsx differ