程序化识别Mosek的solution type参数及Cvxpy适配咨询
问题1解答
针对同时包含整数和连续变量的混合整数问题,所有变量统一设置whichsol = mosek.soltype.itg的操作完全正确。mosek.soltype.itg是专门对应混合整数问题解的存储类型,不管是整数变量还是连续变量的初始猜测,都可以写入这个位置,Mosek求解时会自动读取该位置的所有变量初始值用于分支定界过程的热启动,连续变量的初始值也会被用来加速连续松弛问题的求解,没有兼容性问题。
问题2解答
你给出的whichsol判断逻辑是正确的,和Cvxpy官方MOSEK接口的原生判断规则完全一致:
- 只要问题中存在整数/布尔变量,就使用
itg类型存储初始值 - 纯线性规划问题使用
bas类型,对应单纯形法的解空间,热启动效率最高 - 其余连续型优化问题(QCQP、SOCP、SDP等)使用
itr类型,对应内点法的解空间
你当前的实现逻辑完全可以用于通用初始化功能的开发,只需要额外注意两点:
- 给整数/布尔变量传入的初始值请严格符合整数约束,否则Mosek会直接忽略该变量的初始猜测
- 初始猜测尽量满足问题的约束条件,否则热启动的提速效果会大幅降低
内容的提问来源于stack exchange,提问作者pqrz
相关产品推荐
相关产品推荐

