← 返回首页
GitHub - BradWangW/GeoPAS: Geometric probing for algorithm selection in continuous bbo · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

BradWangW/GeoPAS

Go to file
Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View all files

Repository files navigation

GeoPAS: Geometric Probing for Algorithm Selection in Continuous Black-Box Optimisation

GeoPAS is a learning-based framework for automated algorithm selection in continuous black-box optimisation. It predicts, for each problem instance, which solver in a candidate portfolio is most likely to perform best under a fixed probing budget. This repository contains the data generation, training, evaluation, and analysis code used in the accompanying paper GeoPAS: Geometric Probing for Algorithm Selection in Continuous Black-Box Optimisation.

Repository layout

GeoPAS/ ├── functions/ │ ├── model.py │ └── model_interface.py ├── data_generation/ │ ├── performances/ │ │ ├── ERT_cal.ipynb │ │ └── relert.csv │ └── plots/ │ ├── auxiliary_functions.py │ ├── plot_generation_soo_extensive.py │ ├── plot_check.ipynb │ └── AS_BBOB_SOO.code-workspace ├── analyses/ │ ├── analysis.ipynb │ ├── analysis_utils.py │ ├── concatenate_over_parameters.ipynb │ ├── performance_analysis.ipynb │ └── robustness_over_parameters.ipynb ├── train_parallel.py ├── train.sh

Setup

conda env create -f environment.yaml conda activate as_bbo

Pipeline

1. Build the relERT table

data_generation/performances/ERT_cal.ipynb produces the table, which is also given as data_generation/performances/relert.csv.

2. Generate multi-slice .npz data

PROJECT_ROOT="$PROJECT_ROOT" \ python data_generation/plots/plot_generation_soo_extensive.py

will write data under:

$PROJECT_ROOT/data/bbob_by_deepela/maxscale_0.7_logscale_true/

depending on the setting.

3. Train and evaluate

To run the current sweep:

bash train.sh

To point training explicitly to the generated data:

PROJECT_ROOT="$PROJECT_ROOT" \ DATA_ROOT="$PROJECT_ROOT/data/bbob_by_deepela/maxscale_0.7_logscale_false" \ bash train.sh

Outputs are written under:

$PROJECT_ROOT/results/bbob_by_deepela/results/bbob/

including a summary table and a dataframe of model outputs.

4. Aggregate results

If results over multiple parameter settings are obtained, use analyses/concatenate_over_parameters.ipynb to aggregate them into protocol-wise tables AS_mean_median_p90__{LPO,LIO,RANDOM}__ALL_RUNS.csv, and then into AS_mean_median_p90__MERGED__ALL_RUNS.csv.

5. Analyses

  • analyses/robustness_over_parameters.ipynb summarises performance over parameter slices.
  • analyses/performance_analysis.ipynb compares relERT transforms and portfolio structure.
  • analyses/analysis.ipynb rebuilds the failure-mode analysis from saved outputs.

Direct training entry point

To bypass train.sh:

python train_parallel.py \ --protocol all \ --csv data_generation/performances/relert.csv \ --data-root /path/to/data_root \ --out-dir /path/to/results

About

Geometric probing for algorithm selection in continuous bbo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Footer

© 2026 GitHub, Inc.