discrete_optimization.generic_tools.dashboard package

Submodules

discrete_optimization.generic_tools.dashboard.config module

class discrete_optimization.generic_tools.dashboard.config.ConfigStore[source]

Bases: object

Store experiments config and mapping to their names

add(config: dict[str, DictConfig] | Hashable) None[source]

Add a config to the store.

Ensure bijection between names and configs. If name already given, use it. If not, construct it from solver parameters. If 2 names given in different occurences raise an error. If 2 different config share the same name, raise an error.

get_configs(name: str) list[dict[str, DictConfig] | Hashable][source]
get_name(config: dict[str, DictConfig] | Hashable) str[source]
discrete_optimization.generic_tools.dashboard.config.convert_config_dict2hashable(config: dict[str, DictConfig] | Hashable) tuple[str, HashableConfig] | Hashable[source]
discrete_optimization.generic_tools.dashboard.config.convert_config_hashable2dict(config: tuple[str, HashableConfig] | Hashable) dict[str, DictConfig] | Hashable[source]
discrete_optimization.generic_tools.dashboard.config.get_config_name(config: dict[str, DictConfig] | Hashable) str[source]
discrete_optimization.generic_tools.dashboard.config.is_tupleddict(config: Any) bool[source]

discrete_optimization.generic_tools.dashboard.dashboard module

class discrete_optimization.generic_tools.dashboard.dashboard.Dashboard(results: list[DataFrame] | None = None, title='Discrete-Optimization Experiments Dashboard', external_stylesheets: Sequence[str | dict[str, Any]] | None = None, **kwargs)[source]

Bases: object

create_layout()[source]
load_callbacks()[source]
preprocess_data()[source]

discrete_optimization.generic_tools.dashboard.plots module

discrete_optimization.generic_tools.dashboard.plots.create_graph_from_series_dict(map_label2ser: dict[str, pd.Series], with_time_log_scale: bool = False, legend_title: str = 'labels', transpose: bool = False) go.Figure[source]

discrete_optimization.generic_tools.dashboard.preprocess module

discrete_optimization.generic_tools.dashboard.preprocess.aggregate_results_by_config(results: list[DataFrame], configs: Iterable[str]) dict[str, DataFrame][source]
discrete_optimization.generic_tools.dashboard.preprocess.aggregate_results_config(results: list[DataFrame], config: str) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.clip_df(df: DataFrame, clip_value: float) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.clip_results(results: list[DataFrame], clip_value: float) list[DataFrame][source]
discrete_optimization.generic_tools.dashboard.preprocess.compute_best_metrics_by_xp(results: list[DataFrame], metrics: list[str]) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.compute_extra_metrics(results: list[DataFrame]) None[source]
discrete_optimization.generic_tools.dashboard.preprocess.compute_extra_metrics_df(df: DataFrame) None[source]
discrete_optimization.generic_tools.dashboard.preprocess.compute_stat_by_config(results_by_config: dict[str, DataFrame], stat: str = 'mean', q: float = 0.5, instances: list[str] | None = None) dict[str, DataFrame][source]
discrete_optimization.generic_tools.dashboard.preprocess.compute_stat_from_df_config(df_config: DataFrame, stat: str = 'mean', q: float = 0.5, instances: list[str] | None = None) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.compute_summary_agg_ranks_and_dist_to_best_metric(df_best_metric_by_xp: DataFrame, metric: str = 'fit', configs: list[str] | None = None, instances: list[str] | None = None, stat: str = 'mean', q: float = 0.5, minimizing: bool = False) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.construct_summary_metric_agg(stat_by_config: dict[str, DataFrame], nb_xps_by_config: dict[str, int], nb_xps_wo_sol_by_config: dict[str, int], configs: list[str] | None = None) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.construct_summary_nbsolved_instances(nbsolvedinstances_by_config: dict[str, Series], nb_xps_by_config: dict[str, int], configs: Container[str] | None = None) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.convert_nb2percentage_solvedinstances(ser: Series, n_xps: int) Series[source]
discrete_optimization.generic_tools.dashboard.preprocess.convert_nb2percentage_solvedinstances_by_config(nbsolvedinstances_by_config: dict[str, Series], n_xps_by_config: dict[str, int]) dict[str, Series][source]
discrete_optimization.generic_tools.dashboard.preprocess.convert_solvetimes2nbsolvedinstances(solvetimes: list[float], time_label: str = 'time') Series[source]
discrete_optimization.generic_tools.dashboard.preprocess.drop_empty_results(results: list[DataFrame]) list[DataFrame][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_configs(results: list[DataFrame]) set[str][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_empty_xps_metadata(results: list[DataFrame]) DataFrame[source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_instances(results: list[DataFrame]) set[str][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_instances_with_sol_by_config(results: list[DataFrame]) dict[str, set[str]][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_metrics(results: list[DataFrame]) set[str][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_nb_xps_by_config(results: list[DataFrame]) dict[str, int][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_nb_xps_w_n_wo_sol_by_config(results: list[DataFrame], configs: list[str], instances: list[str]) tuple[dict[str, int], dict[str, int]][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_nbsolvedinstances_by_config(results: list[DataFrame]) dict[str, Series][source]
discrete_optimization.generic_tools.dashboard.preprocess.extract_solvetimes_by_config(results: list[DataFrame]) dict[str, list[float]][source]
discrete_optimization.generic_tools.dashboard.preprocess.filter_results(results: list[DataFrame], configs: Container[str], instances: Container[str]) list[DataFrame][source]
discrete_optimization.generic_tools.dashboard.preprocess.get_experiment_name(df: DataFrame | Series, with_run_nb=True) str[source]
discrete_optimization.generic_tools.dashboard.preprocess.get_stat_name(stat: str, q: float) str[source]
discrete_optimization.generic_tools.dashboard.preprocess.get_status_str(df: DataFrame) str[source]
discrete_optimization.generic_tools.dashboard.preprocess.has_multiple_runs(results: list[DataFrame]) bool[source]
discrete_optimization.generic_tools.dashboard.preprocess.normalize_df(df: DataFrame, config_store: ConfigStore, timedelta_unit='s') None[source]
discrete_optimization.generic_tools.dashboard.preprocess.normalize_metadata(metadata: dict[str, Any], config_store: ConfigStore) None[source]
discrete_optimization.generic_tools.dashboard.preprocess.normalize_results(results: list[DataFrame], config_store: ConfigStore) None[source]

Module contents