Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy.optimize如何将x值约束到最小化函数中的整数?_Python_Optimization_Scipy_Minimize - Fatal编程技术网

Python scipy.optimize如何将x值约束到最小化函数中的整数?

Python scipy.optimize如何将x值约束到最小化函数中的整数?,python,optimization,scipy,minimize,Python,Optimization,Scipy,Minimize,我正在尝试使用scipy.optimize中的函数 从文档中,我可以为x设置边界(例如:[0,12])。但是,我不知道如何将它们设置为整数 ans = minimize(lambda x: total_rsquared(training_size, x), [0,1,2,3,4], method='SLSQP', constraints=cons,

我正在尝试使用scipy.optimize中的函数

从文档中,我可以为x设置边界(例如:[0,12])。但是,我不知道如何将它们设置为整数

ans = minimize(lambda x: total_rsquared(training_size, x),
                   [0,1,2,3,4],
                   method='SLSQP',
                   constraints=cons,
                   bounds=([0, 12], [0, 12], [0, 12], [0, 12], [0, 12]))

当我尝试使用上述代码时,x被设置为十进制值(例如:[1.0 11.1 5.4 6.9 3.4])。如何将x值设置为整数??谢谢

你不能。scipy中没有一个可用的解算器支持混合整数规划。(这种离散性只会使这些问题在总体上更加困难)。如果你的函数是凸函数,并且定义为非整数,如果你能找到全局最优解,你需要使用一些支持MINLP的库(或者更具体的库,如果你事先知道你的问题结构:你的func的名称表示一个比MINLP更容易解决的MIQP/MISOCP问题),使其最小化的整数是这个全局极小值的一个邻居(例如:在1D中,如果你发现最小值为x=5.2,则最小整数为5或6)