关于cvxpy库的问题:请问非线性整数规划可以用什么方法,我这个非线性函数有点特殊

我的目标函数是

(0.9x[0])*(0.8x[1])(0.85**x[2])(0.75x[3])*(0.92x[4])(0.84**x[5])(0.88x[6])*(0.8x[7])-1

问题相关代码

import numpy as np
import cvxpy as cp
x = cp.Variable(8,integer=True)
objective = cp.Maximize(1-cp.exp(cp.multiply(cp.log(0.9), x[0]))*\
                        cp.exp(cp.multiply(cp.log(0.8), x[1]))*\
                        cp.exp(cp.multiply(cp.log(0.85), x[2]))*\
                        cp.exp(cp.multiply(cp.log(0.75), x[3]))*\
                        cp.exp(cp.multiply(cp.log(0.92), x[4]))*\
                        cp.exp(cp.multiply(cp.log(0.84), x[5]))*\
                        cp.exp(cp.multiply(cp.log(0.88), x[6]))*\
                        cp.exp(cp.multiply(cp.log(0.8), x[7])))
constrains = [sum(x[i] for i in range(4)) <= 48,
              sum(x[i] for i in range(4,8))<=32,
              200*sum(x[i] for i in range(8))+(225+450/4)*x[0]+360*x[1]+(270+540/4)*x[2]+(300+600/4)*x[3]+(150+450/4)*x[4]+280*x[5]+(180+540/4)*x[6]+(200+600/4)*x[7]<=48000
              ]
prob = cp.Problem(objective,constrains)

prob.solve(solver = 'CPLEX')

运行结果及报错内容

img

我的解答思路和尝试过的方法
那个非线性函数是个指数函数,cvxpy中不支持**运算,建议我用cvxpy.multiply(cp.log(a),x),我发现就是目标函数有错误,改成一个普通的线性函数就不报错了
我想要达到的结果
请问有没有办法debug一下,或者有没有别的办法可以解决非线性整数规划问题。