2.4. Use Sparkle for algorithm selection
These steps can also be found as a Bash script in Examples/selection.sh
2.4.1. Initialise the Sparkle platform
sparkle initialise
2.4.2. Add instances
Add instance files (in this case in CNF format) in a given directory, without running solvers or feature extractors yet
sparkle add_instances Examples/Resources/Instances/PTN/
2.4.3. Add solvers
Add solvers (here for SAT solving) with a wrapper containing the executable name of the solver and a string of command line parameters, without running the solvers yet
Each solver directory should contain the solver executable and a wrapper
sparkle add_solver --deterministic 0 Examples/Resources/Solvers/CSCCSat/
sparkle add_solver --deterministic 0 Examples/Resources/Solvers/PbO-CCSAT-Generic/
sparkle add_solver --deterministic 0 Examples/Resources/Solvers/MiniSAT/
2.4.4. Add feature extractor
Similarly, add a feature extractor, without immediately running it on the instances
sparkle add_feature_extractor Examples/Resources/Extractors/SAT-features-competition2012_revised_without_SatELite_sparkle/
2.4.5. Compute features
Compute features for all the instances; add the --parallel
option to run in parallel
sparkle compute_features
2.4.6. Run the solvers
Run the solvers on all instances; add the --parallel
option to run in parallel
sparkle run_solvers
2.4.7. Construct a portfolio selector
To make sure feature computation and solver performance computation are done before constructing the portfolio use the wait
command
sparkle wait
Construct a portfolio selector, using the previously computed features and the results of running the solvers
sparkle construct_sparkle_portfolio_selector
2.4.8. Generate a report
Generate an experimental report detailing the experimental procedure and performance information; this will be located at Components/Sparkle-latex-generator/Sparkle_Report.pdf
sparkle generate_report
2.4.9. Run the portfolio selector (e.g. on a test set)
2.4.9.1. Run on a single instance
Run the portfolio selector on a single testing instance; the result will be printed to the command line
sparkle run_sparkle_portfolio_selector Examples/Resources/Instances/PTN2/plain7824.cnf
2.4.9.2. Run on an instance set
Run the portfolio selector on a testing instance set
sparkle run_sparkle_portfolio_selector Examples/Resources/Instances/PTN2/
2.4.10. Generate a report including results on the test set
Wait for the portfolio selector to be done running on the testing instance set
sparkle wait
Generate an experimental report that includes the results on the test set, and as before the experimental procedure and performance information; this will be located at Components/Sparkle-latex-generator/Sparkle_Report_For_Test.pdf
sparkle generate_report
By default the generate_report
command will create a report for the most recent instance set. To generate a report for an older instance set, the desired instance set can be specified with: --test-case-directory Test_Cases/PTN2/