rtac.ac_functionalities.ranking.gray_box

Implements gray-box model based on cost-sensitive random forest from CostCla.

Functions

_patched_cost_loss(y_true, y_pred, cost_mat)

Patched version of cost_loss with np.float replaced by float.

_patched_init(self[, base_estimator, ...])

Patched __init__ version for the BaseBagging class.

_patched_partition_estimators(n_estimators, ...)

Patched version of _partition_estimators with np.int replaced by int.

Classes

Gray_Box()

Class containing gray-box model and data processing functions.

class rtac.ac_functionalities.ranking.gray_box.Gray_Box[source]

Bases: object

Class containing gray-box model and data processing functions.

classify_configs(X_pred: list[list], cores: list[list], model: CostSensitiveRandomPatchesClassifier) list[source]

Classify configurations in the current tournament based o current pairwise comparison features.

Parameters:
  • X_pred (list[list]) – Pairwise comparison instances from most recent outputs.

  • cores (list[list]) – Core number pairs corresponding to X_pred entries.

  • model (CostSensitiveRandomPatchesClassifier) – Trained gray-box model.

Returns:

0 if C_0 is predicted to be better, 1 if otherwise, corresponding to cores.

Return type:

list

prepare_predict_data(rec_data: dict[int, list], instances: list, gb_pw_inst_archive: list, mtp: dict[int, int], pair_cores: list[list[int]]) tuple[list, list, list, list, int, list][source]

Transform single runtime output data instances into pairwise comparison data instances.

Note

Implementation based on the paper: “Realtime gray-box algorithm configuration using cost-sensitive classification”

Parameters:
  • rec_data (dict[int, list]) – All runtime output data recorded so far in the tournament sorted by core the target algorithm runs on

  • instances (list[list]) – Unique instances of recorded runtime output.

  • gb_pw_inst_archive (list[list]) – All unique pairwise comparison instances.

  • mtp (dict[int, int]) – Key is core, value is the last time point of the data recorded.

  • pair_cores (list[list[int]]) – Core pairs corresponding to the Configurations compared in gb_pw_inst_archive.

Returns:

  • pw_instances : list[list], Pairwise comparisons of Configurations based on the most current output.

  • cores : list[list], Core pairs corresponding to the Configurations compared in pw_istances.

  • instances : bool, Unique instances of recorded runtime output.

  • gb_pw_inst_archive : list[list], All unique pairwise comparison instances.

  • max_time_points : dict[int, int], Key is core, value is the last time point of the data recorded.

  • pair_cores : list[list[int]], Core pairs corresponding to the Configurations compared in gb_pw_inst_archive.

Return type:

tuple

prepare_train_data(X_train: list[list], data: list[list], cores: list[list], winner: int, res: dict[int, float], instances: list[list], y: list[int], cost_mat: list[list]) tuple[list[list], list[list], list[list]][source]

Adjust and add pairwise runtime output data gathered in tournament to the total runtime output data gathered so far to be used it for model training.

Parameters:
  • X_train (list[list]) – Total pairwise runtime output data gathered so far.

  • data (list[list]) – Pairwise runtime output data gathered during last tournament.

  • cores (list[list],) – Core pairs corresponding to the Configurations compared in data.

  • winner (int) – Index of the winning Configuration of the last tournament.

  • res (dict[int, float]) – Results of the last tournament.

  • instances (list[list]) – Unique instances of recorded runtime output.

  • y (list[int]) – 0 signififying Configuration_0 is better, 1 signifying Configuration_1 is better within the pairwise comparison corresponding to instances in X_train.

  • cost_mat (list[list]) – Cost matrix corresponding to instances in X_train.

Returns:

  • X_train : list[list], Updated total pairwise runtime output data gathered so far.

  • y : list[list], 0 signififying Configuration_0 is better, 1 signifying Configuration_1 is better within the pairwise comparison corresponding to instances in updated X_train.

  • cost_mat : list[list], Cost matrix corresponding to instances in updated X_train.

Return type:

tuple

term_list(pred: list, cores: list[list], verbosity: int) list[source]

Process predictions and decide if and which Configuration runs should be terminated.

Parameters:
  • pred (list) – 0 if C_0 is predicted to be better, 1 if otherwise, corresponding to cores.

  • cores (list[list]) – Core number pairs.

  • verbosity (int) – Hyperparameter turning on and off additional terminal outputs.

Returns:

Core indices of Configuration runs to be terminated.

Return type:

list

train_gb(X_train: list[list], y_train: list[int], cost_mat_train: list[list], cores: list[list]) CostSensitiveRandomPatchesClassifier | None[source]

Train gray-box model.

Parameters:
  • X_train (list[list]) – Total pairwise runtime output data gathered so far.

  • y_train (list[int]) – 0 signififying Configuration_0 is better, 1 signifying Configuration_1 is better within the pairwise comparison corresponding to instances in X_train.

  • cost_mat_train (list[list]) – Cost matrix corresponding to instances in X_train.

  • cores (list[list],) – Core pairs corresponding to the Configurations compared in X_train.

Returns:

Trained gray-box model or None, if not sufficient data for training.

Return type:

CostSensitiveRandomPatchesClassifier or None