Python 将SciPy优化限制为整数

Python 将SciPy优化限制为整数,python,scipy,shgo,Python,Scipy,Shgo,我正在使用SciPy的优化函数(特别是shgo())来优化我的问题。现在我正在设法得到一个有效的解决方案,不过我想对此稍加改进 我的职责是解决NLU问题。基本上,我有一个标记化的句子,每个单词我都有一个潜在的解释。对于每一个组合,我都可以应用黑盒语法规则,这将得到一个分数 问题是,就复杂性而言,它可能是灾难性的,因为它是O(exp(n)) 出于这个原因,我使用了shgo()优化算法(或类似的东西),到目前为止,它给了我很好的结果,唯一的一点是最小化函数使用实值而不是整数,但我的参数是整数(单词1

我正在使用SciPy的优化函数(特别是
shgo()
)来优化我的问题。现在我正在设法得到一个有效的解决方案,不过我想对此稍加改进

我的职责是解决NLU问题。基本上,我有一个标记化的句子,每个单词我都有一个潜在的解释。对于每一个组合,我都可以应用黑盒语法规则,这将得到一个分数

问题是,就复杂性而言,它可能是灾难性的,因为它是
O(exp(n))

出于这个原因,我使用了
shgo()
优化算法(或类似的东西),到目前为止,它给了我很好的结果,唯一的一点是最小化函数使用实值而不是整数,但我的参数是整数(单词1=解释2,单词2=解释1,…,单词N=解释I)

最后,对于一些非常明显的选项(每个单词1个解释或更少),它需要170次运行,因为它试图找到确切的值,而实际上它正在探索[0,1]范围内的东西,这对我来说实际上是一样的

我想要整数步长,但在使用了不同的参数后,我找不到如何告诉最小值有更小的步长。即使它不是严格意义上的整数,只要在距离解0.5时停止就已经是一个很好的改进

编辑:你可以,如果你想的话


谢谢!

请包含您编写的代码。当然,我已经添加了链接。请将代码作为文本包含在问题中。这样,它会显示在搜索中,其他寻求帮助的成员可以根据他们的需要复制和编辑代码。(此特定问题可能更适合该网站。)考虑一下:这不是codereview的问题,我只是问如何在SciPy的极小值函数上有一个整数步长……好吧,那么我可能错了@Rémy(我是说这是一种可能性)。我只是一个偶然发现你的问题的评论员,并指出了发帖的最佳做法。我希望你能尽快得到答案,我不是一个科学专家……欢迎来到stackoverflow。