Our solution to the tt18 https://www.transformation-tool-contest.eu/
652
In order to get the case working, perform the following steps:
4.64 of GLPKgit clone https://git-st.inf.tu-dresden.de/stgroup/ttc18.git && cd ttc18gradle.properties (and change it, if necessary)./gradlew build (or gradlew.bat build on Windows)./gradlew benchmarkFull
./gradlew benchmarkFull -Pscenario=0,small (comma separated list of ids and/or names)jastadd-mquat-benchmark/src/main/resources/scenarios.jsonAll modules are prefixed with jastadd-mquat, as this is an implementation of MQuAT (Multi-Quality AutoTuning) based on JastAdd. There are 5 modules:
base: Contains the specifications for grammar and attributes, (de-)serializers and the model generatorbenchmark: Benchmark infrastructure and settingssolver: Interfaces for solvers, and a small testsuitesolver-ilp: Reference implementation using ILPsolver-simple: Naïve, brute-force solver written in JavaA new solution should be created using a new module (or multiple, if necessary). You can use the simple-solver module as an example. The following steps need to be completed:
de.tudresden.inf.st.mquat.solving.BenchmarkableSolver (which extends the Solver interface). The main method here is public Solution solve(Root model) throws SolvingException, which takes a model as input an returns a solutionsettings.gradleHandwrittenTestSuitebuild.gradle of the project jastadd-mquat-benchmarkde.tudresden.inf.st.mquat.benchmark.SolverFactory.createAvailableSolversIfNeeded]
(https://git-st.inf.tu-dresden.de/stgroup/ttc18/blob/master/jastadd-mquat-benchmark/src/main/java/de/tudresden/inf/st/mquat/benchmark/SolverFactory.java#L22) to create a new instance of your solverjastadd-mquat-benchmark/src/main/resources/scenarios.json for the Gradle task benchmarkFulljastadd-mquat-benchmark/src/main/resources/local-benchmark-settings.json for the Gralde task benchmarkCustom (see Custom Benchmark for details)./gradlew benchmarkFull or ./gradlew benchmarkCustomTo test your solution, the Gradle task benchmarkCustom can be used. This task generates a custom set of models and runs a benchmark for them.
All default parameters are specified in the file benchmark-settings.json within the directory jastadd-mquat-benchmark/src/main/resources.
To change them, create a new file in this directory named local-benchmark-settings.json.
In this local version, all parameter values override the default settings, but are ignored when committing.
To test your solver with the name fancy-solver along with the reference implementation using a model with 10 and 15 requests and a timeout of 50 seconds, the file local-benchmark-settings.json would be as follows.
{
"solvers": [
"ilp-direct",
"fancy-solver"
],
"basic": {
"verbose": true,
"minRequests": 10,
"maxRequests": 15,
"stepRequests": 5,
"timeoutValue": 50,
"timeoutUnit": "SECONDS",
"total": 2
}
}
The value total is used to constrain the total number of models to be generated. Set this to null (the default) to generate all value for the defined parameter ranges.
Refer to de.tudresden.inf.st.mquat.generator.ScenarioDescription for a description of the possible parameters.
3.3Content type
Image
Digest
Size
330.1 MB
Last updated
over 8 years ago
docker pull eicke123/emferttc18