【2024_CUMCM】LINGO入门+动态规划

目录

什么是动态规划

怎么使用动态规划?

例题:最短路线问题

2020b-问题一

稳定性分析

灵敏度分析 


什么是动态规划

基本想法:将原问题转换为一系列相互联系的子问题,然后通过逐层递推求得最后的解

基本思想:解决最优解问题,满足最优性原理(最优策略的任何一部分子策略必需是最优的)

在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解

动态规划算法中蕴含着递归的思想,但是递归问题中会出现某些子问题被计算多次,而如果利用动态规划算法,可以把已经计算过的子问题的解给装起来,然后用到的时候再拿出来,减少计算次数。

例如:斐波拉契数列

递归求法

//定义主函数
#include<stdio.h>
int main()
{int F(int n); //数组printf("%d\n",F(5));return 0;
}
//Fibonacci数列的递归算法
int F(int n)
{// 进行条件判断if(n<=1){return 1;}else{return F(n-1)+F(n-2);}
}

动态规划求法

#include<stdio.h>
int main()
{int Fibonacci(int n);printf("%d\n",Fibonacci(5));return 0;
}
int Fibonacci(int n)
{//申请一个数组存放子问题的解 int f[n+1],i;f[0]=1;f[1]=1;for(i=2;i<=n;i++){f[i]=f[i-1]+f[i-2];}return f[n];
}

怎么使用动态规划?


1.将过程分为恰当的阶段

2.找变量,定义决策变量

3.明确目标,写出目标函数

4.列约束,寻找对于得到最优解的约束条件

5.写出状态转移方程,根据状态才可作出决策


例题:最短路线问题

根据题目,可以分为七个阶段

解题时只需将每一条路径全都定义出来,然后导入数据大致就可解出答案

但是为了掌握其他导入数据的方法,我们考虑通过xlsx导入数据,通过一顿操作,输入数据,空值使用-1代替

然后写入空值,选择内容,“ctrl+h”-定位-空值- ‘-1’ -“ctrl+enter” 

还需要定义数据名称,拖拽选中数据,在左上角进行定义(可以看下面的另一张表格图)

  

model:

sets:
vertex/V1..V16/:V;  //定义一个名为V的顶点集合(把它理解成一个点,还没有赋值)

road(vertex,vertex):R_D2;   //定义一个名为R_D2的道路集合
 

RR(road)|R_D2(&1,&2)#gt#0:D;   //定义一个名为D的距离矩阵,其元素是道路集合R_D2中的元素,且距离大于0

endsets

原本没有加粗行的定义,但是因为数据中空值用-1代替,所以我们需要将非-1的值拿出来

`xx(xx)`这是正常的变量定义,`|`这个符号表示过滤,后面表示R_D2数据要大于等于0,并赋值为D。不难发现,这个过滤的语言只是多了`|`and`#`,其他与bash语言是比较相近的。 

经上述操作就可以筛选出非空的路程值

data:
R_D2=@ole('D:\jianmo\R.xlsx');
enddata

下面进行数据导入

参考:lingo基础入门Day 11——lingo外部访问数据、文本文件、电子表格、数据库_lingo读取excel数据-CSDN博客

利用ole函数

  • 访问Excel电子表格的关键是在Excel中定义数据库
  • 定义数据块的方法是先选择单元格区域,从右键菜单中选定义名称,本题定义为R_D2
  • 用lingo访问Excel电子表格前,应当先用Excel打开相应的数据文件,否则不能读写数据。

写出约束

运用for函数遍历出所有D的情况

@for(RR(i,j):D(i,j)=R_D2(i,j));

将起点(V1)的值设置为0

运用for函数与min函数对集进行循环,计算除起点外的其他顶点的最短路径值。

对于每个顶点i(除了起点),将其值设置为所有可能的前驱顶点j的最短路径值加上从j到i的距离的最小值

V(1)=0;

@for(vertex(i)|i#gt#1:V(i)=@min(RR(j,i):V(j)+D(j,i)));

end


2020b-问题一

 2020全国大学生数学建模竞赛论文展示(B125) - 2020全国大学生数学建模竞赛论文展示 - 中国大学生在线 (moe.gov.cn)

2020全国大学生数学建模竞赛B题讲评:穿越沙漠 - 2020数学建模赛题讲评 - 中国大学生在线 (moe.gov.cn)


 

稳定性分析

李雅普诺夫(第二方法)稳定性分析+例题_证明李亚普诺夫atp+pa=-q-CSDN博客

这个我看不太懂 


灵敏度分析 

数学建模评价类方法01——灵敏度分析_数学建模灵敏度分析怎么写-CSDN博客

上面的链接写的很好 

在解题时,结果会受到多个因素的影响,有一些因素是固定的,有一些因素在实际中是有变化的,此时,我们通过取该因素周围值,进行计算,如果对结果有影响,那我们就说这是敏感的,那究竟有多敏感,就要进行灵敏度分析,看结果与变化率的关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

X12端口配置指南:ISA ID、测试指示符与997

通过知行之桥EDI系统实现X12 & 标准XML之间的格式转换时&#xff0c;需要完善交换头ISA ID及其限定符、测试标识符以及997的相关配置。 在X12文件中有两组EDI ID对&#xff0c;分别是发送方 ID 限定符 及发送方ID &#xff0c;接收方 ID 限定符及接收方ID。 比如&#xf…

STM32Cubemx配置生成 Keil AC6支持代码

文章目录 一、前言二、AC 6配置2.1 ARM ComPiler 选择AC62.2 AC6 UTF-8的编译命令会报错 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替换文件内核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、编译对比 一、前言 使用keil ARM compiler V5的时候&#xff0c;编译…

Java内存区域与内存溢出异常(自动内存管理)

序言&#xff1a;Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的高墙&#xff0c;墙外面的人想进去&#xff0c;墙里面的人却想出来。 1.1概述 对于从事C、C程序开发的开发人员来说&#xff0c;在内存管理领域&#xff0c;他们既是拥有最高权力的“皇帝”&#xff0c…

在FPGA程序中Handshake(握手)和Register(寄存器)区别

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是两种不同的通信和数据传输机制。它们各有特点和适用场景。以下是它们的区别和应用场景的详细解释&#xff1a; Register&#xff08;寄存器&#xff09; 特点&#…

SQLServer用户们,你们摊上大事了!

最近一段时间&#xff0c;我们经常会收到了许多用户的咨询&#xff0c;问我们何时能纳管SQLServer&#xff1f;耐不住小伙伴们的猛烈催促及热切期待&#xff0c;本不想纳管SQLServer的研发团队也抓紧将这项需求提上日程。并在DBdoctor v3.2.2版本中成功实现了对SQLServer的纳管…

班级录取查询系统如何制作

在教育的长河中&#xff0c;我们每位老师都曾面临过这样一个问题&#xff1a;如何高效、准确地完成班级录取查询的任务&#xff1f;记得在以往&#xff0c;每当新学期伊始&#xff0c;我们不得不手忙脚乱地整理学生名单&#xff0c;然后逐一通知他们所在的班级。这个过程不仅耗…

《mysql篇》--索引事务

索引 索引的介绍 索引是帮助MySQL高效获取数据的数据结构&#xff0c;是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针&#xff0c;因为索引本身也比较大&#xff0c;所以索引一般是存储在磁盘上的&#xff0c;索引的种类有很多&#xff0c;不过如果没有特殊…

[ios-h5]在ios系统浏览器中输入框得到焦点时页面自动放大

问题&#xff1a; 在ios系统浏览器中输入框得到焦点时页面自动放大。 解决&#xff1a; 添加meta标签。 <meta name"apple-mobile-web-app-capable" content"yes" /> <meta name"viewport" content"widthdevice-width, initial-…

隐式类型转换 算术转换

目录 整型提升 间接证明整型提升的代码案例 算术转换 整型提升 何为整型提升&#xff1a; C语言的整型算术运算总是至少以缺省&#xff08;默认&#xff09;整型类型的精度来进行的 为了获得这个精度&#xff0c;表达式中的字符类型和短整型操作数在使用之前被转换为普通整…

基于SpringBoot实现轻量级的动态定时任务调度

在使用SpringBoot框架进行开发时&#xff0c;一般都是通过Scheduled注解进行定时任务的开发&#xff1a; Component public class TestTask {Scheduled(cron"0/5 * * * * ? ") //每5秒执行一次public void execute(){SimpleDateFormat df new SimpleDateFormat(…

解决 NullReferenceException: Object reference not set to an instance of an object

在 Unity 中 利用 URDF Importer import UR5e_gripper 的 URDF file 时出现错误&#xff1a; NullReferenceException: Object reference not set to an instance of an object。 理论上是有个Object 是 Null&#xff0c;当我再次检查URDF后仍觉得路径没有写错。 于是我 把Mesh…

软件测试面试200问(含答案+文档)

Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自…

spring的bean注册

bean注册 第三方jar包的类想添加到ioc中&#xff0c;加不了Component该怎么办呢。 可以使用Bean和Import引入jar包&#xff0c;可以使用maven安装到本地仓库。 修改bean的名字&#xff1a;Bean("aaa")使用ioc的已经存在的bean对象&#xff0c;如Country&#xff1a;p…

自定义@AnonymousAccess注解

一.目的&#xff1a; 自定义AnonymousAccess注解&#xff0c;可以直接在controller上添加该注解使请求绕过权限验证进行匿名访问&#xff0c;便于快速调用调试以及部分不需要进行安全验证的接口。而不是每次都需要去SecurityConfig文件中进行修改。 二.流程&#xff1a; 三.实…

通用后台管理(二)——项目搭建

目录 前言 一、安装vue-cli依赖 1、使用yarn下载vue-cli 2、使用npm下载 3、检查一下是否下载成功 二、创建项目 1、创建项目&#xff0c;my-app是项目名称 2、 这里选择vue 2&#xff0c;蓝色表示选中的。 3、启动项目 三、下载项目依赖 四、配置项目 1、修改esli…

VS2019_新建窗体应用文件SOP

文章目录 1. 打开VS2. 创建新项目3. 选择Windows窗体应用4. 起名&#xff0c;选位置&#xff0c;框架版本选择4.5及之后&#xff0c;这里选的4.85. 新建完成 1. 打开VS 2. 创建新项目 3. 选择Windows窗体应用 注意要选.NET的 4. 起名&#xff0c;选位置&#xff0c;框架版本…

原来Kimi不是不作为,而是在准备大招!

月之暗面Kimi 作为一款我每天都在使用的AI智能助手&#xff0c;是真正的帮助我解决了不少工作及日常创作的一些事情。 它的表现能力也是毋庸置疑&#xff0c;不论是业内还是普通人&#xff0c;10个人当中可能就有9个人在使用Kimi。 而昨天&#xff08;7月8日&#xff09;Kimi…

Civil3D 2025:工程设计的智慧之友

初识Civil3D 2025 当我第一次打开Civil3D 2025时&#xff0c;仿佛置身于湘西的山水之间&#xff0c;那种熟悉而又新奇的感觉扑面而来。Civil3D 2025不仅仅是一款软件&#xff0c;它更像是一位老友&#xff0c;带着温暖和智慧&#xff0c;陪伴我走过每一个设计的日夜。 功能丰…

侯捷C++面向对象高级编程(上)-9-扩展补充:类模板、函数模板及其他

1.static 2.把 ctors 放在 private 区 3.cout 4.class template、类模板 5.function template、函数模板 6.namespace

DDR3 SO-DIMM 内存条硬件总结(二)

上一节我们大概了解了下DDR3的大概使用情况&#xff0c;下来我们再顺藤摸瓜再深入学习下ddr3的使用&#xff0c;我们从下面这张内存条开始&#xff1a; 我们看到第二行2GB 1RX8 PC3-10600S-9-11-B2 具体含义上一节已经讲过了&#xff0c;我们深挖下1R*8&#xff0c;他的含义是…