超速问题的c语言编程,超速行驶问题--精选.doc

超速行驶问题

摘要

本文主要研究的是探讨驱车从始发地至目的地的最短时间路径问题和最少花费问题,以及在超速情况下的最短时间和最少花费问题。

首先,从整个题目的两个问题入手,发现两个问题都是优化问题,具有一定

的联系。然后针对第一问, 本文建立了 0-1 规划的优化模型, 根据模型的约束条

件及矩阵的含义进行编程,找出所有可能出现的路径,每种路径对应两个 0-1 矩阵,分别表示横向路线和纵向路线, 再将两个矩阵分别点乘横向路线与纵向路

9

9

线所表示的时间矩阵, 从而由目标函数 Z

min

( X ij

Yij ) 利用计算机得出最

i

0 i 0

优解 17.78

小时,并找出时间最短的路线为:

a00

a01

a02

a03

a13

a14a15

a25

a35a45

a55a56 a57

a58

a68

a78

a88

a89

a99

然后,对于花费最少问题,本文建立了在每段公路上费用与速度的关系式,根据求极小值, 找出每段公路花费最少时的速度, 从而可计算每段公路的花费最少的金额,再根据时间最短路线的算法,给每段公路赋值(最少花费) ,可得最优解为 274.64 元,其中一条花费最少的路线为:

a00

a01

a11a21

a31

a41a51

a52

a62

a72

a82

a92

a93

a94

a95

a96

a97

a98

a99

最后,考虑到罚款问题, 本文建立了汽车超速百分比分别与被探测可能性和罚款金额的线性关系式, 以及每段公路超速罚款金额的期望值与超速百分比的线

性关系式,并假设在整个路线中的速度保持不变,

即可计算得出每段公路在最小

速度的条件下的花费(包括罚款),再利用问题一的 0-1

规划模型算出汽车在

0.8T

时间内到达 B 城最少的花费为 524.99

元,找出该路线为:

a00

a01

a11

a12

a22

a32

a42a52

a53

a54a55 a56

a57

a58

a68

a78

a88

a89

a99

在所得结果的基础上, 我们再次进行模型的修改与优化, 并能将此题的解法应用于车辆监控导航系统中。

关键词: 0-1 规划最优化线性关系极小值概率期望

一、问题重述

你驱车从 A 城赶往 B 城。 A 城和 B 城间的道路如下图所示, A 在左下角, B 在右上角,横向纵向各有 10 条公路,任意两个相邻的十字路口距离为 100 公里,所以 A 城到 B 城相距 1800 公里。任意相邻的十字路口间的一段公路 ( 以下简称路

段 ) 都有限速,标注在图上, 单位为公里每小时。 标注为 130 的路段是高速路段,每段收费 3 元。

整个旅途上的费用有如下两类。 第一类与花费时间相关, 如住店和饮食, 由公式 c1=5t; 给出, t 单位为小时。 第二类是汽车的油费, 每百公里油量 ( 升) 由公

式 c2=av+b; 给出,其中 a=0.0625,b=1.875,v 的单位为公里 / 每小时。汽油价格为每升 1.3 元。

请建立数学模型,解决以下问题:

若你遵守所有的限速规定,那么时间最短的路线和花费最少的路线分别

是哪一条?

为了防止超速行驶, 交警放置了一些固定雷达在某些路段上, 如图上红色的路段。另外,他们放置了 20 个移动雷达。 这些雷达等概率地出现在各个路段,

你可能在一个路段同时发现多个雷达,也可能在装有固定雷达的路段发现移动雷

达。每个雷达都监控了自身所在的整个路段。如果你超速 10%,则你有 70%的可能被雷达探测到,且会被罚款 100 元;如果你超速 50%,你有 90%的可能被雷达

探测到,且会被罚款200 元。

假设 T 是遵守所有限速规定所花的最少时间,但你有急事想在0.8T 时间内

赶往 B 城,那么包括罚款在内最少花费多少?路线又是哪一条?

二、问题分析

本题是一个对选择路线的优化问题, 需要对每段路线的最短时间及最少费用的最佳速度进行分析,并找出它们的联系。

对于问题一,若要找出时间最短的路线, 必须知道车在每段公路不超速的前提下的最少时间, 将每段公路行驶的最短时间作为此公路的权值, 并且必须限定车的行驶方向为向右或向上,因此车最少需经过 18 条公路,在此基础上,我们建立 0-1 规划模型,建立以路线的最少时间为目标函数, 以汽车行驶方向和经过的公路总数建立约束条件, 然后设计可行程序, 寻找时间最短路线, 并依据目标函数计算出最短时间。 对于第一问中的花费最少的路径, 我们只需计算在每条公路上的最少花费, 而花费与时间和油量相关, 而时间和油量都与速度相关, 因此我们只需建立一个以速度为自变量和以花费为因变量的函数关系式, 利用求极小值的方法求出每段路上最少花费对应的速度,再计算出每段路对应的最少

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

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

相关文章

重新查看Play Framework发布的值

与Play Framework 2.0一起使用发布的值而不定义表单映射,可能不像Play 1.x那样明显,这就是为什么我要编写此快速备忘单。 对于此快速示例,让我们定义以下视图: app / views / index.scala.html (message: String)message: messa…

matlab 微积分

符号变量,symbolic variable 1. 高阶导数 高阶导数的计算,当然可以用手工的方式,但显然这种机械重复的推导,更适用于计算机的计算方式: f(x)sinxx24x3⇒d4fdx4>> syms x; >> f sin(x) / (x^24*x3); >&…

如何查看Ubuntu版本,以及Linux内核版本??

查看Ubuntu版本: 方法一: cat /etc/issue 方法二: sudo lsb_release -a 查看内核版本: uname -r 转载于:https://www.cnblogs.com/tanrong/p/6937749.html

c语言编码风格,讲嵌入式C语言编码风格.ppt

讲嵌入式C语言编码风格目 录 简介及说明 语言规则 1.基础 2.数据 3.说明与表达式 4.函数 5.内存及资源 6.源文件 风格指导 7.程序书写 8.命名 9.文档 简介及说明 正确性 易维护性 易移植性 代码的高效性 语言规则——基础 编写清晰表达设计思路和意图的代码 针对易读来优化代码…

使用Gradle引导旧式Ant构建

Gradle提供了几种不同的方式来利用您现有的对Ant的投资,包括积累的知识和您已经放入构建文件中的时间。 这可以极大地方便将Ant生成的项目移植到Gradle的过程,并为您提供逐步进行此操作的路径。 Gradle文档在描述如何在Gradle构建脚本中使用Ant方面做得很…

实现chrome扩展启动本地进程 - 补充

实现chrome扩展启动本地进程 - 补充 标签: chrome扩展启动本地程序访问本地磁盘2014-10-17 11:42 6753人阅读 评论(17) 收藏 举报分类:Chrome Plugin版权声明:本文为博主原创文章,未经博主允许不得转载。 示例 主要包含如下部分 c…

SpringMVC整合MongoDB

首先&#xff0c;在pom文件中新增spring-data-mongodb的依赖&#xff1a; <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.1.RELEASE</version>&l…

单路电压表c语言编程,用AT89C51单片机制作的数字电压表

此数字电压表&#xff0c;利用A/D转换原理将被测模拟量转换成数字量&#xff0c;并通过控制系统用数字方式显示测量结果。本设计采用AT89C51单片机&#xff0c;ADC0809进行模/数转换&#xff0c;能够测量8路0&#xff5e;5V的输入电压值&#xff0c;可用四位LED数码管轮流或单路…

ZK的实际应用:MVVM –加载和渲染数据

先前的文章简要介绍了RIA框架ZK&#xff0c;以及它CSS Selector启发式控制器机制如何通过使在控制器类中引用UI组件的任务变得相对灵活来减轻UI更改所带来的一些负担。 然后&#xff0c;我们在上一篇文章中探讨了ZK中的MVVM模式如何允许单个ViewModel提供不同的视图。 这篇文章…

搭建一个简单的mybatis框架

一、Mybatis介绍 MyBatis是一个支持普通SQL查询&#xff0c;存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射&#xff0c;将接口和Java的POJO&#xff08;Pla…

定时操作范例

1 package timetask.demo;2 3 import java.text.SimpleDateFormat;4 import java.util.Date;5 import java.util.Timer;6 import java.util.TimerTask;7 8 /*9 * time类 是一个线程实施&#xff0c;可以用来实现在某一个时间或者某一个时间段后安排某一个任务执行一次或者定期…

c语言空格符 r t,c语言中、\t \r \n 和空格什么意思

具体意思&#xff1a;都是转义字符&#xff0c;空格就是单纯的空格&#xff0c;输入时可以输入空格\t 跳格 \r 回车 \n 换行\\ 反斜杠 \a 警告 \b 退格 \f 换页 \v 垂直跳格 \ddd ddd 是 1、2 或 3 位八进制数字。转义字符串(Escap…

如何在运行时更改日志记录级别

在运行时中更改日志记录级别很重要&#xff0c;这主要在生产环境中非常重要&#xff0c;在生产环境中&#xff0c;您可能希望在有限的时间内进行调试日志记录。 好了&#xff0c;更改根记录器非常简单–假设您有一个具有所需记录级别的输入参数&#xff0c;只需获取根记录器并…

扩展中国剩余定理

转自&#xff1a;http://blog.csdn.net/clove_unique/article/details/54571216 对于两个方程$x\equiv c_1\pmod {m_1}$$x\equiv c_2\pmod {m_2}$将其合并为一个方程&#xff0c;有解条件为$(m1,m2)|(c2-c1)$$m\frac{m1m2}{(m1,m2)}$$c(inv(\frac{m1}{(m1,m2)},\frac{m2}{(m1,m…

易语言添加ctrl c键,易语言操作快捷键汇总

以下是关于易语言的快捷键内容&#xff1a;预览被设计窗口 CtrlEnter运行 F5终止运行 CtrlF5编译 F7菜单编辑器 CtrlE即时帮助 F1在编辑窗口之间跳转。按下 Ctrl 键后不放&#xff0c;然后反复按 Tab 键可以在目前所有的编辑窗口之间跳转&#xff1b;按下 Ctrl 键后同时按下 Ta…

在代理类中引用动态代理

在Stackoverflow中有一个有趣的问题 &#xff0c;关于Spring Bean如何获​​得对由Spring创建的代理的引用以处理事务&#xff0c;Spring AOP&#xff0c;缓存&#xff0c;异步流等。需要对代理的引用&#xff0c;因为如果存在对自身的调用通过代理bean&#xff0c;此调用将完全…

Array的用法总结-swift

Araay是有序的数据集&#xff0c;在OC中分为不可变数组NSArray和可变数组NSMutableArray&#xff0c;在swift中只有常量和变量两种类型&#xff0c;声明成变量那就可以说明是可变的了&#xff01; 学习时的具体的用法总结成如下的代码&#xff1a; //数组var arrInts [Int]()/…

Frame URl

http://www.zi-han.net/theme/hplus/?v4.1 http://webapplayers.com/inspinia_admin-v2.5/ http://baijunyao.com/article/67 转载于:https://www.cnblogs.com/shijiaoyun/p/6065755.html

linux的i o模型,浅谈Linux 网络 I/O 模型简介(图文)

1、介绍Linux 的内核将所有外部设备都看做一个文件来操作(一切皆文件)&#xff0c;对一个文件的读写操作会调用内核提供的系统命令&#xff0c;返回一个file descriptor(fd&#xff0c;文件描述符)。而对一个socket的读写也会有响应的描述符&#xff0c;称为socket fd(socket文…

handsontable 方法汇总

核心方法1.为handsontable添加钩子方法 addHook(key,callback):key为钩子方法名 例如&#xff1a;hot.addHook(beforeInit, myCallback); addHookOnce(key,callback)&#xff1a;添加只使用一次的方法&#xff0c;用完后自动删除 例如&#xff1a;hot.addHookOnce(beforeInit, …