使用启发式算法生成初始解输入Gurobi 中求解
来源:互联网 发布:linux中文字符乱码 编辑:程序博客网 时间:2024/06/05 03:49
今天看论文 Double row layout problem. 最后提到一种方法,使用启发式算法生成解当做初始解给Gurobi求解。这样的结合求解可以提高求解效率。主要用到Yalmip 中的 assign 以及usex()命令
例如:
x = sdpvar(1,1);assign(x,pi);optimize([sin(x)^2 <= .1],x,sdpsettings('usex0',1));
我添加的程序片段如下:
aa=[ 0 1 1 1 1 1 1 1 1 1 1 1 NaN 0 1 1 1 1 1 1 1 1 1 1 NaN NaN 0 1 1 1 1 1 1 1 1 1 NaN NaN NaN 0 1 1 1 1 1 1 1 1 NaN NaN NaN NaN 0 1 1 1 1 1 1 1 NaN NaN NaN NaN NaN 0 1 1 1 1 1 1 NaN NaN NaN NaN NaN NaN 0 1 1 1 1 1 NaN NaN NaN NaN NaN NaN NaN 0 1 1 1 1 NaN NaN NaN NaN NaN NaN NaN NaN 0 1 1 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 1 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0]; %这是启发式算法得到的结果 assign(a,aa); % 把aa 的值赋给变量aops = sdpsettings('solver','gurobi','usex0',1,'gurobi.TimeLimit',10); % 使用 usex0() 命令使Yalmip识别值。
没有使用启发式算法生成初始解的结果:Explored 17397 nodes (390282 simplex iterations) in 8.74 seconds
使用启发式算法生成初始解的结果:
Explored 7552 nodes (199913 simplex iterations) in 4.71 seconds
可以看出求解时间,搜索nodes 和 Simplex iterations 得到大规模的降低,提高了求解效率。
这是一个好方法,以后可以用到。另外Yalmip中有很多有意思的操作,自己要好好摸索,及时总结。
阅读全文
0 0
- 使用启发式算法生成初始解输入Gurobi 中求解
- 启发式算法给Gurobi 输入初始解
- 测试用例生成中启发式算法G、GRE源码
- 【matlab】离散化启发式算法编程中生成随机数
- Gurobi中使用python sys.argv out of range
- 超启发式算法:一种跨领域的问题求解模式
- 启发式搜索算法求解八数码问题(C)
- 利用启发式搜索算法求解3阶汉诺塔问题
- 【使用笔记】Gurobi for matlab
- 启发式算法
- 启发式算法
- 启发式算法
- 启发式算法
- 启发式算法
- 启发式算法
- 启发式算法
- 启发式算法
- 启发式与元启发式算法
- poj2585 Window Pains
- dgus屏串口通信时,发现数据有时候stm32能接收到,有时候接收不到,一直想不到是什么原因
- 精选!15个必备的VSCode插件
- Focal loss
- Mean-shift超像素分割
- 使用启发式算法生成初始解输入Gurobi 中求解
- Java_14 Class类与Java反射
- mybatis源码解析
- PAT 乙级 1001
- SpringBoot-AOP
- Quartz定时调度器02
- 深度优先搜索———全排列
- java每日一练
- 二叉搜索树实现与深度优先遍历和广度优先遍历