Zilla: Framework for Algorithm Selection

Bioinformatics, and Empirical & Theoretical Algorithmics Laboratory (ß-Lab)
Department of Computer Science
The University of British Columbia

 

Quickstart Guide to Zilla

(Adapted from the SMAC quickstart guide)
Zilla creates a portfolio of algorithms to run sequentially to improve performance over any single solver. Given a set of instances, features (per instance), solvers, and matrix of runtimes indexed by solvers and instances, zilla creates a model that selects efficient algorithms to run from features on a per-instance basis.

Contents

Zilla

Setting up Zilla scenario

First make sure you have the Zilla project and execute:

unzip Zilla-1.0-development.zip
cd Zilla-1.0-development

Here, we'll walk through a basic example with Industrial solvers/instances from the 2011 SAT Competition.
To run the example Zilla scenario, execute the following command from the root folder:

cd example_scenarios/SAT12-INDU
../../bin/zilla-builder --scenario scenario_csDF.txt

Inside the scenario_train.txt file, are the following options:
  
rungroup-name="SAT12-INDU"
overwrite-data=true
cutoff=1200.0
seed=0
complete-feature-manager="complete-feature-manager.txt"
cheap-feature-manager="cheap-feature-manager.txt"
algorithm-execution-manager="algorithm-execution-manager.txt"
train="training-instances.csv"
validation="validation-instances.csv"
presolvers="glueminisat"
presolvers-rt="1.0"
presolvers-choice=SELECT
max-num-presolvers=1
add-empty-presolving-schedule=false
solver-subset-selector-choice=NONE
#log-level=debug
  
A few important parameters are:
cutoff Max runtime of instance.
complete-feature-manager options for specifiying features
algorithm-execution-manager options for algorithm running times
train, validation, test list of instance for training, validation, and testing

Instances

Below is the ./training-instances.csv file.

SAT-Race-2010-CNF/cryptography/desgen/gss-16-s100.cnf
SAT-Race-2010-CNF/cryptography/desgen/gss-31-s100.cnf
SAT-Race-2010-CNF/cryptography/md5gen/gus-md5-09.cnf
SAT-Race-2010-CNF/cryptography/mizh/md5_47_4.cnf

Each line in this file contains a string specifying an instance.

Feature Manager

Below is the ./complete-feature-manager.csv file. It point an to a feture value file whose rows represent instances and columns represent features.

feature-manager-choice FILE
fromfile-feature-manager-file "features.csv"
fromfile-feature-manager-cutoff 1200.0
algorithm-execution-manager-file "algo-runs.csv"

Algorithm Execution Manager

Below is the ./algorithm-execution-manager.csv file. It points to an algorithm runnning time file whose rows represent instances and columns represent algorithms.

algorithm-execution-manager-file "algo-runs.csv"

Below, we walk through a hydra execution using the above Zilla SAT12-INDU scenario.

Basic execution

To get started, this section will walk the user through the execution of a very simple example. To execute the example locally, execute the following:

cd example_scenarios/SAT12-INDU
../../bin/zilla-builder --scenario scenario_csDF.txt