首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python非凸优化

Python非凸优化
EN

Stack Overflow用户
提问于 2020-04-30 01:20:18
回答 1查看 429关注 0票数 1

我使用包cvxpy form Python来解决一个非凸优化问题,如下所示:

代码语言:javascript
复制
import numpy as np
import cvxpy as cp




def kl(a,b):
    if a==b:
        return 0.000001
    if b==0:
        return 1000000
    if a==0:
        return -np.log(1-b) 
    return a*np.log(a/b)+(1-a)*np.log((1-a)/(1-b))  

t = 0.5
q = 0.1
p = 0.1

d = cp.Variable()
c = t/(1-t)/(d*kl(a,q))

objective = cp.Minimize(c)
constraints = [ -np.log((a/q-1)*((1-(1-p)/q))) >= d, d >= 0 ]

prob = cp.Problem(objective,constraints)
result = prob.solve()
print(d.value)
print(constraints[0].dual_value)

我认为这个包不喜欢目标函数中的函数,但这只是一个猜测。谢谢你的帮助。亲切的问候

EN

回答 1

Stack Overflow用户

发布于 2020-07-20 02:21:01

Scipy约束优化器可能是好的。试试其中的一个:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61507692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档