【OR】YALMIP 整数规划
导航
- Integer programming
- integer and binary variables
- mixed integer conic programming
- general mixed integer programming
- References
Integer programming
YALMIP内置了BNB
求解器可以处理整数规划问题
integer and binary variables
定义二元变量binvar
和整型变量intvar
如下
x=intvar(n, m);
y=binvar(n, m);
设置目标函数
z=x+y+trace(x)+sum(sum(y));
F=[z>=0, x<=0]
也可以声明变量的类型
x = sdpvar(n, m);
y = sdpvar(n, m);
z = x+y+trace(x)+sum(sum(y));
F = [z>=0, x<=0, integer(x), binary(y)];
mixed integer conic programming
内置的BNB
求解器的算法为基础算法,只有当问题规模较小的时候才可以起作用,考虑线性回归的问题,加上变量的整型约束
%%
x = [1 2 3 4 5 6]';
t = (0:0.02:2*pi)';
a = [sin(t) sin(2*t) sin(3*t) sin(4*t) sin(5*t) sin(6*t)];
y = a*x+(-4+8*rand(length(a),1));x_hat = intvar(6,1); % 整型变量
residuals = y-a*x_hat;
bound = sdpvar(length(residuals),1); % 变量上下界
F = [-bound <= residuals <= bound];optimize(F,sum(bound)); % L1 norm
x_L1 = value(x_hat);optimize([],residuals'*residuals); % L2 norm
x_L2 = value(x_hat);bound = sdpvar(1,1); % L_inf norm
F = [-bound <= residuals <= bound];
optimize(F,bound);
x_Linf = value(x_hat);
BNB
同样支持半正定混合整数规划,可以设置半正定约束
%% semidefinited constraint
F = [toeplitz(x_hat) >= 0];
ops=sdpsettings('solver', 'BNB');
optimize(F, residuals'*residuals, ops);
x_L2_toep = value(x_hat)
general mixed integer programming
在非线性混合整数规划中未必可以找到全局最优解,但是可以找到近似可行的局部最优解也是合理的
%% general MIP
x = sdpvar(5, 1);
A = randn(15, 5);
b = rand(15, 1)*10;obj = sum(x)+sum((x-3).^4); % 目标函数为四阶矩
ops=sdpsettings('solver', 'bnb', 'bnb.solver', 'fmincon');
optimize([A*x<=b, integer(x)], obj, ops)
使用BMIBNB
可以求出全局最优解,但是适合变量较少的情况,并且求解速度较慢
% ops = sdpsettings('solver','bmibnb', 'bnb.upper', 'fmincon');
% ops=sdpsettings('solver', 'bmibnb');
ops = sdpsettings('solver','bmibnb', 'bmibnb.uppersolver', 'fmincon');
optimize([A*x <= b, integer(x)],obj,ops)
References
Integer programming
【OR】YALMIP 整数规划相关推荐
- matlab 整数规划工具箱,Matlab中的YALMIP工具箱 混合整数规划
YALMIP工具箱 混合整数规划 定义变量: sqdvar()实型 intvar()整型 binvar()0-1型 设定目标函数 : f=目标函数 设定限定条件: F=set(限定条件) 多个限定条件 ...
- MATLAB+yalmip+cplex 整数规划
整数规划问题的解决实践.本文将简单介绍整数规划问题是什么,如何配置环境以及如何在MATLAB上通过工具箱yalmip调用外部解析器cplex解决整数规划问题. 文章目录 1. 整数规划问题 2. ...
- MATLAB求解非线性0-1整数规划(基于Yalmip工具箱)
前言: 折腾了老半天,直接在CSDN里面搜找不到代码,百度刚开始也就找到一个bnb20工具箱,可那已经是2009年的玩意了.不过还是很幸运,在我绝望到想用遗传算法求解的时候,终于找到了一个叫Yalmi ...
- matlab yalmip 例程,YALMIP工具箱使用范例.pdf
YALMIP工具箱使用范例 YALMIP工具箱简介 东北大学数学系 王琪 wangqimath@126.com YALMIP工具箱简介 • 基于符号运算工具箱编写 • 一种定义和求解高级优化问题的模化 ...
- 基于MATLAB/yalmip/cplex 的机组最优组合
文章目录 一.绪论 1.研究目的 2.背景概述 二.机组组合优化数学模型 2.1.问题分析 2.2.符号说明 2.3.模型建立 2.4.模型简化 三.算例介绍 总结 一.绪论 1.研究目的 (1).熟 ...
- YALMIP的简单说明
最近在做论文时,涉及到最优化问题,而最优化里面很多时候涉及的是二次约束二次规划QCQP这样的非凸问题,一般地,这样的非凸问题是得不到全局精确的最优解的,需要另辟蹊径.常用的有半定松弛SDR.将非线性松 ...
- Matlab求解优化问题-Yalmip
1.前言 前述文章介绍fmincon函数用以求解非线性规划问题,但是fmincon面对非线性整数规划没有办法.对此,根据对网上资源的搜索,发现有一个工具箱可以解决这一个问题,那就是Yalmip. Ya ...
- matlab使用yalmip工具箱
使用yalmip工具箱可以像书写数学模型那样输入规划问题的约束和目标函数,非常方便. 以下为在Matlab R2018a下添加yalmip并简单使用的例子 一.下载解压 下载地址:https://ya ...
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
转自,原文: https://www.cnblogs.com/kane1990/p/3428129.html 最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量). ...
- python 混合整数规划_matlab求解混合整数规划的困惑
请问谁用过CPLEX 之类的 求解混合整数规划(Mixed integer prgramming)的matlab插件 mex file 1.能给我传一个直接可用(好用)的么... 万分感谢 网上找了好 ...
最新文章
- 在一台机器上搭建多个redis实例
- ffmpeg php 抠像_PHP中使用ffmpeg截取视频图片笔记
- LVS (一) 原理
- 人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考
- Max Sum Array 贪心(2500)
- 高性能服务器存储服务器,高性能存储服务器
- linux中利用脚本编写数组,shell脚本编程之数组
- HTML 中的特殊字符
- 机器人踩滑板_不死神草、飞行滑板…超2000种创新发明在这里展出
- 第二把数独游戏 代码
- html表格筛选排序规则,excel表格的排序规则与排序技术
- 深入剖析RGB、CMYK、HSB、LAB
- 计算机时间小于会计期间错误,会计期间手工记账和电脑记账不一样问题
- PO与VO之间的相互转换
- 解决markdown-it-prism未能正确加载Languages的BUG
- Ubuntu18.04使用Xorg创建虚拟屏幕
- C#绘制九宫格形式的图片
- Java Web和Java后端学习之路
- 索引数组与关联数组的定义及区别
- 小米10S MIUI13.0.3线刷12.5.14