题目描述
某连锁超市经营企业为了扩大规模,新租用五个门店,经过装修后再营业。现有四家装饰公司分别对这五个门店的装修费用进行报价,具体数据如表2.2所示。为保证装修质量,规定每个装修公司最多承担两个门店的装修任务。则为节省装修费用,该企业该如何分配装修任务? 表2.2 装修费用表(单位:万元)
代码
1)模型假设:指派问题(每个门店的装修工作只能由一个装修公司单独完成)
2)符号说明:
设 i=1,2,3 ,4分别表示 A、 B、C、D四家装修公司,c i j 表示
第i( i = 1 , 2 , 3 , 4 ) 家装修公司对第 j ( j = 1 , 2 , 3 , 4 , 5 ) 个门店的装修任务的报价。引入0-1变量
3)模型建立:该问题的目标函数为总的装修费用最小,即
4)约束条件:
1、每个门店得装修任务必须有一个而且只能有一个装修公司承担,即
2 、每个装修公司最多承担两个门店的装修任务,即
则该问题的 0-1 整数规划模型为:
5)代码:
c = load("data2_6.txt");
prob = optimproblem;
x = optimvar('x', 4, 5, 'Type', 'integer','LowerBound', 0, 'UpperBound', 1);
prob.Objective = sum(sum(c.* x)); % 目标函数
prob.Constraints.con1 = sum(x,1) == 1;
prob.Constraints.con2 = sum(x,2) <= 2;
[sol, fval, flag] = solve(prob);
sol.x
Fval
代码运行窗口如图
我的总结
1.从决策变量的取值范围来看,整数规划通常可以分为以下几种类型:
(1)纯整数规划:全部决策变量都必须取整数值的整数规划模型;
(2)混合整数规划:决策变量中有一部分必须取整数值,另--部分可以不取整数值的整数规划模型;
(3)0-1 整数规划:决策变量只能取0或1的整数规
划。
2.蒙特卡洛方法
也称为计算机随机模拟方法,它源于世界著名的赌城一摩纳哥的 Monte Carlo (蒙特卡洛)。它是基于对大量事件的统计结果来实现一些确定性问题的计算。使用蒙特卡洛方法必须使用计算机生成相关分布的随机数,MATLAB给出了生成各种随机数的命令
3.非线性整数规划求解思想
搜索 (穷举)问题
规模小一整数解是有限个,于是为枚举法提
供了方便。
自变量维数很大和取值范围很宽一-在一定计算量的情况下,用蒙特卡洛法完全可以得出一个满意解。
神经网络
现代优化算法
(1)遗传算法
(2)模拟退火算法
(3)粒子群算法 (蚁群、鱼群、鸟群)
4.估计可信度
不失一般性,假定一个整数规划的最优点不是孤立的奇点。