luinardi / hypermapper

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

In dataset resume optimization, how to define maximum instead of minimum? #67

Closed peterhchen closed 3 years ago

peterhchen commented 3 years ago

In hypermamper, how the define the maximum objective function?

  1. In the function, can we multiple negaitve ("-") to convert the minimize funciton into the maximum function?
  2. In the dataset, can we convert the minimized (postive output) into maximum (negative output)? Is there any other way that hypermapper can do?

Multi-objective optimiation and Pareto-optimal front

  1. For multiple objective functions, can we assign more than three objective functions? One maximum and two minimum function?
  2. Does hypermapper provide pareto-optimal front for more than three dimensional multi-objective optimizaiton? or can we find the Pareto-Optimal front from the output log file?
arturluis commented 3 years ago

Hey @peterhchen ,

  1. HyperMapper always minimizes the objectives, but, as you suggested, you can transform a maximization problem into a minimization problem by multiplying the objective function by -1.
  2. Likewise, you can just multiply the values by -1, there is no built-in method in HyperMapper to do maximization instead of minimization.
  3. HyperMapper supports any number of objective functions, you can simply define them in the json file as you currently do for 3 objectives, but they will all be treated as minimization problems.
  4. No, for more than 2 objectives, we recommend computing the Hypervolume Indicator instead.
peterhchen commented 3 years ago

👍👍👍

On Mon, Oct 18, 2021 at 10:04 AM arturluis @.***> wrote:

Hey @peterhchen https://github.com/peterhchen ,

  1. HyperMapper always minimizes the objectives, but, as you suggested, you can transform a maximization problem into a minimization problem by multiplying the objective function by -1.
  2. Likewise, you can just multiply the values by -1, there is no built-in method in HyperMapper to do maximization instead of minimization.
  3. HyperMapper supports any number of objective functions, you can simply define them in the json file as you currently do for 3 objectives, but they will all be treated as minimization problems.
  4. No, for more than 2 objectives, we recommend computing the Hypervolume Indicator https://github.com/luinardi/hypermapper/wiki/Plot-HVI instead.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/luinardi/hypermapper/issues/67#issuecomment-945979225, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADBSBDZM7OTB2KXRLNQJUELUHRHRTANCNFSM5F6YUSWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Sincerely Yours, Peter H. Chen

peterhchen commented 3 years ago

Hi Hypermapper Team:

In the branin4.py, I change the brann4.py Single Objective: originally, it is minimization: f1_value = branin_funciton (x1, x2) Answer: x1, x2, x3, x4, value 9.4, 2.6, 10, 3.0, 0.42

For maximization: f1_value = -1.0 * branin_funciton (x1, x2) x1, x2, x3, x4, value -4.96, 0.04, 7, 1, -302

I expect that I can get the same answer, I cannot just flip the y-axis into a negative number? I am very confused. The different answer happened in the multi-objective function.

On Mon, Oct 18, 2021 at 11:07 AM Peter Chen @.***> wrote:

👍👍👍

On Mon, Oct 18, 2021 at 10:04 AM arturluis @.***> wrote:

Hey @peterhchen https://github.com/peterhchen ,

  1. HyperMapper always minimizes the objectives, but, as you suggested, you can transform a maximization problem into a minimization problem by multiplying the objective function by -1.
  2. Likewise, you can just multiply the values by -1, there is no built-in method in HyperMapper to do maximization instead of minimization.
  3. HyperMapper supports any number of objective functions, you can simply define them in the json file as you currently do for 3 objectives, but they will all be treated as minimization problems.
  4. No, for more than 2 objectives, we recommend computing the Hypervolume Indicator https://github.com/luinardi/hypermapper/wiki/Plot-HVI instead.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/luinardi/hypermapper/issues/67#issuecomment-945979225, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADBSBDZM7OTB2KXRLNQJUELUHRHRTANCNFSM5F6YUSWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Sincerely Yours, Peter H. Chen

-- Sincerely Yours, Peter H. Chen

peterhchen commented 3 years ago

You can ignore this question

Max and min point are different points On Tue, Oct 19, 2021 at 11:26 AM Peter Chen @.***> wrote:

Hi Hypermapper Team:

In the branin4.py, I change the brann4.py Single Objective: originally, it is minimization: f1_value = branin_funciton (x1, x2) Answer: x1, x2, x3, x4, value 9.4, 2.6, 10, 3.0, 0.42

For maximization: f1_value = -1.0 * branin_funciton (x1, x2) x1, x2, x3, x4, value -4.96, 0.04, 7, 1, -302

I expect that I can get the same answer, I cannot just flip the y-axis into a negative number? I am very confused. The different answer happened in the multi-objective function.

On Mon, Oct 18, 2021 at 11:07 AM Peter Chen @.***> wrote:

👍👍👍

On Mon, Oct 18, 2021 at 10:04 AM arturluis @.***> wrote:

Hey @peterhchen https://github.com/peterhchen ,

  1. HyperMapper always minimizes the objectives, but, as you suggested, you can transform a maximization problem into a minimization problem by multiplying the objective function by -1.
  2. Likewise, you can just multiply the values by -1, there is no built-in method in HyperMapper to do maximization instead of minimization.
  3. HyperMapper supports any number of objective functions, you can simply define them in the json file as you currently do for 3 objectives, but they will all be treated as minimization problems.
  4. No, for more than 2 objectives, we recommend computing the Hypervolume Indicator https://github.com/luinardi/hypermapper/wiki/Plot-HVI instead.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/luinardi/hypermapper/issues/67#issuecomment-945979225, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADBSBDZM7OTB2KXRLNQJUELUHRHRTANCNFSM5F6YUSWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Sincerely Yours, Peter H. Chen

-- Sincerely Yours, Peter H. Chen

-- Sincerely Yours, Peter H. Chen