2018/9/11更正

用intlinprog可以求解整数规划。当时大概是参考资料比较早以为matlab不能求解整数规划(挠头),而且找到的代码是用线性规划解的,所以就没有多考虑。谢谢评论指出。

下面证明的截图打字进去搜能找到原文,但是是lingo的一个非正式教材,并没有说明“什么是特例”以及给出证明。我大概找了一下没有找到相关资料。

01规划问题的常用解法不存在用线性规划去近似。我觉得这种解法应该是有问题的虽然我不知道怎么证伪……啊当时只想着解出来所以犯错了

原文

指派问题最广泛通俗的解法应该是匈牙利算法但在网上找不到这方面的代码。

线性规划求解

网上比较常用的解法是用线性规划求解,但好像没有人去解释为什么?而且这个代码本身也有一定的问题。

我好像也给不出非常严谨的证明……只能说感觉里,在某些情况下如果只有一个最优解那么它的每个解一定是趋向于0或者1的(就是感觉里应该是单调的?)

后来好像有什么人给出过证明(我就留了张截图)

上图给我带来了对人生的一段认真的思考……

某些问题

然后这个代码对于多个最优解的情况会出问题。

比方说

Task

A

B

Task1

3

5

Task2

5

3

可以得到一个正常的解

那么对于

Task

A

B

Task1

3

5

Task2

3

5

就算能够得到解也不是一个01规划了

更何况对于三个人的情况……

Task

A

B

C

Task1

3

5

7

Task2

3

5

7

Task2

3

5

7

这样子求出的3*3矩阵全是1/3也是一种合理的解,但是它毕竟不是一个01整数规划一旦取整显然就凉了……得出的就都是0.

然后某只鸟的解决方法是加个随机的扰动……打破这种迷之稳定的状态就好了……然后多按两下可以看看不同的解(但是没法保证按出来的结果是所有解……)

能够得到多个解在某些时候是有用的(比如论文不够长的时候)。比方说对于一堆任务,每个人去实现每一项都会有雇佣成本和能取得的收入,求解的时候可以用01整数规划求出净利润最高的一系列方案,然后再在这一系列方案中找一个雇佣成本最低的方案这样。

还有就是任务比人多的时候可以填几个无关工作。所有人处理这个工作的效率都一样就好了(突然想到不知道这些工作是加噪声效率高还是不加高)

然后这个解的问题……其实在过程中想过要目标函数是(完成时间最大值)的最小值的,就是让所有工作的完成时间最短。尝试了一下matlab的非线性规划然后失败了……虽然不太理解但感觉里会是分段函数(还是每段都是平的一条那种)应该是陷入局部最优了?反正解起来都走不出我给的初始条件……matlab的整数规划没法解非线性的方程大概还是要学一下Lingo……

下面一份是网上比较容易找到的代码。

%适用于任意n阶系数矩阵

clear all;

C=[2 15 13 4;10 4 14 15;9 14 16 13;7 8 11 9];%效率矩阵C

n=size(C,1);%计算C的行列数n

C=C(:);%计算目标函数系数,将矩阵C按列排成一个列向量即可。

%%%这里加入一个很小的扰动

%C = C + randn(n)/1000;

A=[];B=[];%没有不等式约束

Ae=zeros(2*n,n^2);%计算等约束的系数矩阵a

for i=1:n

for j=(i-1)*n+1:n*i

Ae(i,j)=1;

end

for k=i:n:n^2

Ae(n+i,k)=1;

end

end

Be=ones(2*n,1);%等式约束右端项b

Xm=zeros(n^2,1);%决策变量下界Xm

XM=ones(n^2,1);%决策变量上界XM

[x,z]=linprog(C,A,B,Ae,Be,Xm,XM);%使用linprog求解

x=reshape(x,n,n);%将列向量x按列排成一个n阶方阵

disp('最优解矩阵为:');%输出指派方案和最优值

Assignment=round(x)%使用round进行四舍五入取整

disp('最优解为:');

z

然后觉得蛮神奇的是用这种规划的形式吧(反正我想不到可以这样?)哇加油加油。

matlab最优指派求最大,matlab指派问题 线性规划相关推荐

  1. matlab对三维面求积分,matlab三维数值积分问题

    对于3D空间中100k个坐标点及其上面数据值使用matlab进行数值积分, 有没有成熟的程序段哪? 我一直没有找到. 自己采用类似复化梯形法划分坐标网格,对网格内数据求平均计算可以较快解决, 但是精度 ...

  2. matlab分支与循环求函数,Matlab变量、分支语句和循环语句

    一.Matlab的变量 1.变量的命名 Matlab的变量名由数字.字母和下划线组成,但是只能由字母开头.大小写敏感,最大长度为63个字符,不能使用Matlab的关键字作为变量名,应当避免使用函数名作 ...

  3. matlab 两幅图求并集,MATLAB交并集运算

    intersect:取交集 unique:取各自独立的部分 union:取并集 setxor:取独立部分,去除重复部分 Matlab中集合的交运算函数intersect intersect Set i ...

  4. matlab车牌识别错误,求解决Matlab车牌识别

    function [d]=main(jpg) close all clc 此程序在识别过程中发生错误 求高手帮忙修改  谢谢 [fn,pn,fi]=uigetfile('*.jpg','选择图片'); ...

  5. matlab如何用二分法求非线性方程,Matlab学习手记——非线性方程求解:二分法

    功能:二分法求解非线性方程的一个解,采用递归的方式. 源码 function root = HalfInterval_Search(fun, a, b, eps) % 二分法求函数fun在区间[a b ...

  6. matlab对多项式求导,matlab中多项式求导

    1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 4.对比用多项式函数的 polyder 函数及符号函数中的 diff 函数,求导 x2+2x ...

  7. matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt

    matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...

  8. matlab 线性规划求最大值,MATLAB求解线性规划(含整数规划和01规划)问题.pdf

    MATLAB求解线性规划(含整数规划和01规划)问题 MATLAB 求解线性规划(含整数规划和0-1 规划)问题 线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约 束的,变量范围为有 ...

  9. 中南大学 科学计算与MATLAB语言 11矩阵求值

    中南大学 科学计算与MATLAB语言 11矩阵求值 矩阵求值主要包括 矩阵的行列式值 矩阵的秩 矩阵的迹 矩阵的范数 矩阵的条件数 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称方阵所 ...

  10. matlab中利用xy求取多项式z,matlab基础练习题

    3. 求有理分式()()()()3323230.522521x x x R x x x x ++=+-++的商多项式和余多项式 4. 一元多项式42234p x x x =-+,写出表示p 的MATL ...

最新文章

  1. 201671030129 周婷 《英文文本统计分析》结对项目报告
  2. 【Linux】Centos7 解压zip文件
  3. Red Hat Enterprise Linux 8.0 正式版镜像下载
  4. Linux C: 内嵌汇编语法
  5. Java黑皮书课后题第3章:*3.8(对三个整数排序)编写程序,提示用户输入三个整数,以非降序的形式显示这三个整数
  6. SEO原创文章制作器
  7. Specification for springger thesis Writing
  8. 文本区 JTextArea 的使用
  9. Java 高级工程师面试题总结-参考答案(已拿Offer)
  10. yolov5s.pt下载
  11. No matter how well thought out it is
  12. Python可视化基础----从0学会matplotlib折线图,条形图,散点图
  13. 输出纹波和纹波电流测试规范分享
  14. 向所有苦苦拼搏的而立之年的男人们推荐这个电影《老男孩》
  15. Practical Python and OpenCV 3rd Edition读书笔记_Chapter8_Smoothing and Blurring平滑与模糊_思维导图
  16. python我国有13亿人口、假定按人口年增长0.8%计算_2000年世界人口50亿.按年增长率8%0计算.多少年后.世界人口超过100亿.请设计出一个算法.并画出程序框图....
  17. CALIPSO Quality Statements Lidar Level 2 Cloud and Aerosol Layer Products
  18. 完成对靓号号码的筛选
  19. apicloud 不干胶标签打印模块及开发
  20. IT项目管理十大要素

热门文章

  1. animals中文谐音_魔力红歌曲Aanimals中文谐音,就是音译歌词
  2. C++程序员常用工具集
  3. 清华大学计算机学院2021拟录取,【盛世清北】2020年清华大学(清华)计算机系考研复试拟录取信息...
  4. 国产操作系统之优麒麟安装
  5. C语言!鸡兔同笼的程序
  6. 03 - Linux下安装软件的三种方式
  7. 计算机辅助机械设计a卷,二维CAD工程师(机械设计)考试A卷
  8. 推荐系统—基于用户的协同过滤算法简单实现
  9. ipad mini2 进入DFU模式
  10. Ipad mini2、苹果5s降级10.3.3教程