luinardi / hypermapper

Black-box Optimizer based on Bayesian Optimization
MIT License
154 stars 26 forks source link

Pure Dataset optimization #65

Closed peterhchen closed 2 years ago

peterhchen commented 3 years ago

May I have an complete example in Dataset optimization in hypermapper? Right now, I am confusing in the resume optimization and do not know to to set up for dataset. Since most of the simulator we currently used run 7 min to 52 hours (very long run time), we want to use dataset (with pre-run for the user) instead to minimize the run time.

  1. Dataset only: a) Data set contains features: These data set is generated by the simulator (branin equation). b) Three Objective Functions: f1-value, f2-value, f3-value c) Run Random initialization for with dataset 100 times and continue to run dataset to the end.
  2. Hybrid Mode: Run dataset (generated by branin equation) and then run simulator (branin equation).
arturluis commented 3 years ago

Hi peter,

I have attached a full example of optimization using the resume optimization feature for the Branin. It is the same scenario I shared with you in #60 .

branin.zip

This example will read 20 initialization samples from the dataset and then do optimization using the branin function for 100 optimization iterations. For simplicity, you can control how many samples are read and how many optimization runs are done by controlling the design_of_experiment number_of_samples field and the optimization_iterations field.

I'm not sure I follow your questions at the end. I.e. 1a) What do you mean dataset contains features? The resume optimization file (i.e. the dataset) should contain the same input parameters and output parameters specified in the json. Extra fields in the resume optimization file will be ignored. 1b) You can add more objectives in the json using the "optimization_objectives" field. E.g., set it to "optimization_objectives": ["f1-value", "f2-value", "f3-value"],. Then make sure you have values for all three objectives in your resume optimization file. 1c) I'm not sure I follow here, if you want optimization to just read samples from a dataset, you can provide the full dataset as a resume optimization file, but then no optimization will be done, HM will just read the dataset. 2) This is the case I shared with you in the .zip. It will read 20 samples from the resume file and then perform optimization using the branin function.

I hope this clears things out, but let me know if you have more questions.