There are six statistical companions to the robustness experiment reported on in Section 4, one for each replication/ model:
In addition, there is an experiment package for reproducing and replicating a) the robustness experiment (for all models) and b) the original ASE'13 experiment (baseline).
(for executing the JMetal experiments)
- Java SDK 1.7
- Apache Ant 1.9.6
(for re-generating the companion)
- R 3.3.1 plus
rmarkdown
package - Pandoc 1.12.3+
-
Clone the repo or download its content.
-
cd replication/
-
Make sure that
JAVA_HOME
is set, e.g.:export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
-
ant clean
This is how to re-run each of the seven robustness experiments (ToyBox, axTLS):
(There are four factor combinations, each requires a separate experimental run.)
ant run -Dspl=Ptoybox1of3 -Dname=normal-F -Ddatabed=Ptoybox1of3-normal-15-F -Drepeats=50 -Dalgo=IBEA
(normal distribution, without feature interactions)ant run -Dspl=Ptoybox1of3 -Dname=normal-FI100 -Ddatabed=Ptoybox1of3-normal-15-FI100 -Drepeats=50 -Dalgo=IBEA
(normal distribution, with feature interactions)ant run -Dspl=Ptoybox1of3 -Dname=x264-F -Ddatabed=Ptoybox1of3-normal-15-F -Drepeats=50 -Dalgo=IBEA
(x264 distribution, without feature interactions)ant run -Dspl=Ptoybox1of3 -Dname=x264-FI100 -Ddatabed=Ptoybox1of3-normal-15-FI100 -Drepeats=50 -Dalgo=IBEA
(x264 distribution, with feature interactions)- Collect the results from the
four newly created sub-directories:
normal-F
,normal-FI100
,x264-F
, andx264-FI100
Repeat the above steps for the following pairwise combinations of JMetal problem classes and databeds:
- Ptoybox1of3 and Paxtls1of3-* databeds
- ...
ant run
(Note: The defaults correspond to the ASE'13 study setting.)- Collect the results from a newly created sub-directory
NSGAIIDMStudy
.
The Ant runs result in JMetal 4 output directories (-Dname=<outdir>
) containing the measurement data on Hypervolume (HV), PCORRECT, TimeTo50C, and TimeToAnyC. To facilitate data postprocessing and analysis, there is a helper to turn the nested dir/file structures into one R data frame (in long format):
Rscript data/collect.R <outdir> <csv>
e.g.:
Rscript data/collect.R x264-FI100 x264-FI100.csv
The resulting CSV file can be sourced using read.table
& friends in R.
The original setup by Sayyad et al. is a customized and extended fork of JMetal 4.0 (as released in 2011). To allow us to run a differentiated replication, as well as to parametrize the experimental runs without the need for modifying the Java sources directly, we contributed the following changes:
-
build.xml: Added an Ant build descriptor allowing for parametrizing experimental runs.
-
Ptoybox1of3: A variant of the Ptoybox problem definition, which allows for injecting feature interactions for attribute COST (see computeCosts).
-
Datasets provided to and processed by the objective function in Ptoybox1of3, incl.:
(For each model/problem, there is one Java class and the four databeds.)
- NSGAIIDMStudy: Has been modified to process Ant parameters, rather than setting hard-coded values on heuristics, data files (attribute-value data, true Pareto fronts), and output locations (diff).
- A. S. Sayyad, J. Ingram, T. Menzies and H. Ammar (2013): Scalable product line configuration: A straw to break the camel's back, Proc. IEEE/ACM 28th Int. Conf. Automated Softw. Eng. (ASE'13), pp. 465-474, IEEE
- A. S. Sayyad, T. Menzies and H. Ammar (2013): On the value of user preferences in search-based software engineering: A case study in software product lines, Proc. 35th Int. Conf. Softw. Eng. (ICSE'13), pp. 492-501, IEEE