Usage

Necessary Provisions

After you installed rtac, you need to provide data for the AC scenario to be complete.

  • Target algorithm.

  • A text file containing a defitionion of the scenario.
    • Hyperparameters that you want to adjust.

    • A dotted module path to the target algorithm wrapper.

    • The class name of the wrapper

    • An absolute path to the instance feature generator if you want to use instance features.

    • The class name of the feature generator.

    • An absolute path to a csv file containing instance features if you precomputed them and the instance feature generator only reads them in.

    • A text file with instance features to pre-train CPPL if you use CPPL.

    • An absolute path to a json or pcs file defining the parameter space of the target algorithm.

  • Problem instances.

  • Absolute paths to the problem instances to be solved.

You can read in the scenario with scenario = rtac.utils.read_io.read_args(‘path_to_scenario_file’), initialize the RAC with rtac = rtac.rtac.rtac_factory(scenario) and solve instances with rtac.solve_instance(instance).

Hyperparameters

Below, you will find a table with hyperparameters accepted by the RAC methods in RTAC. You can set them within the scenario file or in the command line.

Hyperparameters for RTAC

Name

Type

Default

Description

–verbosity

int

0

Verbosity level. [0,1,2]

–number_cores

int

1

Number of cores to be used in parallel.

–wrapper

str

No wrapper chosen!

Module of Python wrapper for the algorithm.

–wrapper_name

str

No wrapper class name.

Name of the wrapper class in the wrapper module.

–feature_gen_name

str

No feature generator class name.

Name of the feature generator class in the feature generator module.

–feature_path

str

No feature directory path.

Path to the directory with feature files, if existing.

–timeout

int

300

Stop solving single instance after (int) seconds. [300]

–runtimePAR

int

1

Multiply –timeout by –runtimePAR if instance not solved. [1]

–contenders

int

30

The number of contenders in the pool. [30]

–keeptop

int

4

Number of top contenders automatically in tournament (ReACTR/ReACTR++).

–chance

int

25

Chance to replace gene randomly in ReACTR/ReACTR++. [0–100]

–mutate

int

10

Mutation chance in crossover in ReACTR/ReACTR++. [0–100]

–kill

float

5

Kill contenders with higher variance in ReACTR/ReACTR++.

–feature_gen

str

“”

Python wrapper for computing instance features.

–instance_pre_train

str

False

Path to pre-training feature file for the bandit.

–nc_pca_f

int

3

Number of PCA dimensions for instance features.

–nc_pca_p

int

5

Number of PCA dimensions for parameter features.

–jfm

str

polynomial

Joined feature map mode for CPPL.

–omega

float

1.0

Omega parameter for CPPL.

–gamma

float

1

Gamma parameter for CPPL.

–alpha

float

0.2

Alpha parameter for CPPL.

–epsilon

float

0.9

Epsilon for epsilon-greedy selection (0.0 = greedy).

–kappa

float

1.0

Weight on confidence in pairwise comparison (CPPL).

–gen_mult

int

2

Generation multiplier before CPPL insertion.

–ac

int

1

Algorithm Configuration method [1=ReACTR, 2=ReACTR++, etc.].

–paramlimit

float

100000

Parameter value limit for normalization in CPPL.

–win_bonus

float

0.2

Boost for recent CPPL winner skill.

–win_decay

float

0.8

Decay factor for CPPL skill estimates.

–recent_winner_boost

float

3.0

Absolute skill boost for recent CPPL winner.

–forgetting_factor

float

0.98

Forgetting factor for old observations (theta_bar).

–obs_noise

float

1.0

Assumed observation noise variance in CPPL.

–cppl_reward

float

1.0

Reward for winning arm in CPPL bandit model.

–cpplt

float

2

Reset value for t in CPPL when pool changes.

–log_folder

str

logs

Directory for logging.

–param_file

str

No parameter file given!

Path to PCS or RTAC JSON parameter file.

–resume

bool

False

Resume RTAC from logged configuration state.

–baselineperf

bool

False

Run only default parameterizations.

–pws

bool

False

Insert default configuration if flag set.

–objective_min

bool

False

Optimize for objective value minimization.

–experimental

bool

False

Use tournament 0 logs for experiment.

–online_instance_train

bool

False

Enable continuous PCA fitting on incoming instances.

–epsilon_greedy

bool

False

Enable epsilon greedy selection.

–isolate_bandit

bool

False

Run bandit in child process to avoid resource conflict.

–gray_box

bool

False

Enable gray-box RAC.

–gb_read_time

float

0.1

Frequency to check gray-box output [seconds].

–nr_gb_feats

int

2

Number of gray-box features used.

What To Use

What you can use depends on the availability of features in your setting and if you would like to include them. In the following, a table shows the possible RAC method use based on the feature availability.

Features

ReACTR

CPPL

ReACTR++

Gray-box ReACTR(++)

Gray-box CPPL

Problem Instance

Runtime Output