数学建模 |
您所在的位置:网站首页 › 数学建模知识总结 › 数学建模 |
准备数学建模比赛中,使用的是Lingo软件,将学习中遇到的问题做下总结:
资料总结链接:https://blog.csdn.net/yzu_120702117/article/details/38415153 1、关于数学函数使用过程的问题 model: sets: object/1 .. 3/: f; endsets data: a, b = 3, 4; x = ?; enddata @free(x); f(1) = a*@sin(x); f(2) = b*@cos(x); f(3) = a*@sin(x) + b*@cos(x); y = @smax(f(1), f(2), f(3)); end思路:建立集合,并将函数值保存到每个成员中的 f 中。 目的:练习使用集合以及常用函数。 遇到的问题:每次输入大于1.57(这是弧度,对应的角度就是大于90),就报错如下: 意思就是说:f (2)的式子约束太多,不能表示出来,请减少变量约束; 其实也很好理解,当大于90时,cos(x)是小于0的,这时候就不能正常表示,需要free ( f ),让f可以为任意数。 代码加一句@for(object(i): @free(f(i)));即可(这是针对集合的语句呦)。 2、关于经典例题–职员时序安排问题求解思路题目:职员时序安排模型 一项工作一周七天都需要有人,每天(周一至周日)所需的最少职员数位20,16,13,19,14和12,并要求每个职员一周连续工作5天,试求每周所需最少的职员数,并给出安排。注意这里我们考虑稳定后的情况。 按照决策变量,目标函数,约束条件的思路从题目中提取相关信息。 ① 根据一周连续工作5天,设决策变量为从周x开始的员工。(我用集合来表示:n(1)为周一开始工作的员工数目,…n(7)为周日开始工作的员工数目) ② 根据最少的职员数,确定木匾函数为n(1) + … + n(7)的最小值。 ③ 根据最少职员数位20,16,13,19,14和12,确定约束条件。 这是我的很直观的解法,思路没问题,就是语句繁琐,标准答案参见: https://blog.csdn.net/m307617071/article/details/5514489#commentsedit 3、经典例题–TSP问题(旅行商问题)题目:有一个销售员,从城市1出发,要遍访城市2,3,…,n个一次,最后返回城市1.已知从城市i到j的距离为C(ij),问他该按怎样的次序访问这些城市,是得总距离最少? 这个旅行商问题可以转换成混合整数线性规划问题(MILP)。 对TSP 的数学描述: 引入0-1 变量??? (? ≠ ?):???=1 表示路线从i 到j;???=0 表示不走i→j 这条路。 则TSP 可表示为: 决策变量:每个城市之间的距离Cij(代码中是dist表示)以及xij; 目标函数:总距离的最小值,min = @sum(link: dist * x); 约束条件:① @for(city(i):@sum(city(j) | i#ne#j:x(i, j)) = 1); @for(city(i):@sum(city(j) | i#ne#j:x(j, i)) = 1);!行和以及列和都是1 ② @for(city(i):@for(city(j) | i#gt#1 #and# i#ne#j : u(i) - u(j) + n*x(i, j) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |