Hello, I am trying to solve an optimization problem which looks like this:
@objective(model, Max, sum(beta_2[n] * node_info[2][1][n][1] * prod_levels[2][1][n] * uncon_probs[2][1][n] for n in 1:num_nodes)
+ sum(sum(beta_2[m] * beta_6[m, n] * static_beta^3 * node_info[6][m][n][1] * prod_levels[6][m][n] * uncon_probs[6][m][n] for m in 1:num_nodes) for n in 1:num_nodes)
+ sum(sum(beta_2[get_n_index_first_split(m)] * beta_6[get_n_index_first_split(m), get_n_index_second_split(m)] * beta_18[m, n] * static_beta^14
* uncon_probs[18][m][n] * node_info[18][m][n][1] * prod_levels[18][m][n] for m in 1:num_nodes^2) for n in 1:num_nodes))
The details of the problem are unimportant, however as you can see the objective function is cubic since the decision variables (beta_2, beta_6 and beta_18) are multiplied together. Is there any package in Julia which can solve such optimization problems to a global optima?
I should also mention that the problem also contains quadratic constraints:
@constraint(model, sum(probs[18][m][n] * (beta_18[m, n])^2 for n in 1:num_nodes) <= A^2)```