数学建模

您所在的位置:网站首页 数学建模知识总结 数学建模

数学建模

2024-07-15 20:31| 来源: 网络整理| 查看: 265

准备数学建模比赛中,使用的是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,确定约束条件。

                在这里插入图片描述 N(1) + N(4) + N(5) + N(6) + N(7) >= 20; N(1) + N(2) + N(5) + N(6) + N(7) >= 16; N(1) + N(2) + N(3) + N(6) + N(7) >= 13; N(1) + N(2) + N(3) + N(4) + N(7) >= 16; N(1) + N(2) + N(3) + N(4) + N(5) >= 19; N(2) + N(3) + N(4) + N(5) + N(6) >= 14; N(3) + N(4) + N(5) + N(6) + N(7) >= 12;

这些分析完成之后,写代码就很简单了: model: sets: !决策变量:设员工周x开始工作的员工数目为n(x); workers/1 .. 7/:n; endsets !员工数目为整数; @for(workers(i): @gin(n)); !目标函数; min = @sum(workers(i):n); !约束条件; n(1) + n(4) + n(5) + n(6) + n(7) >=20; n(1) + n(2) + n(5) + n(6) + n(7) >= 16; n(1) + n(2) + n(3) + n(6) + n(7) >= 13; n(1) + n(2) + n(3) + n(4) + n(7) >= 16; n(1) + n(2) + n(3) + n(4) + n(5) >= 19; n(6) + n(2) + n(3) + n(4) + n(5) >= 14; n(5) + n(6) + n(3) + n(4) + n(7) >= 12; end

这是我的很直观的解法,思路没问题,就是语句繁琐,标准答案参见: 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 可表示为:

            在这里插入图片描述 上述约束条件中的前三个类似指派型问题,只是TSP 的必要条件;因此我们针对第四条约束条件用下列数学表达式来实现: 增加变量?? (? = 1,2, … , ?),并且?? − ?? + ???? ≤ ? − 1; ?? , ?? ≥ 0, ? = 1,2, … , ?, ? = 2,3, … , ?, 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