【数学建模】CUMCM-2011B model5 围捕方案确定


思路

这题思路就……蛮简单的。求出不同的时间包围嫌疑人需要的包围圈,然后对ACF三个区的警力进行调配。

之所以是ACF……求了一下(目测了一下)其他几个区可以很安稳地堵上从A过来的路。

然后就是艰难的码代码……


具体实现

基础假设:

假设一:逃犯车速与警车相近。
假设二:逃犯与警察信息不公开,即不能根据对方的位置来规划线路。
假设三:当逃犯不存在通往外市的无警力路线的时候,视为围堵成功。
假设四:围堵成功时,从事发地能够抵达的最远位置为围堵需要时间。
假设五:出现警察和逃犯同时抵达某地的临界状态,视为围堵失败。

计算过程:

计算在t时间如果想要包围逃犯所需要的包围圈。
在这里利用类似于数学形态学运算的方法来计算和规定包围圈。

第一步计算在规定时间内能到达的位置。
体现在这个问题上,是计算出距离案发地的距离在60km/h * t内的点。

第二步再进行一次膨胀,与原图做差可以求出包围圈。
对于在前面的问题中求出的所有位置,求与他们直接连通的位置,然后再求差。
利用类似于模型二的方法计算是否存在可行的规划。

一、假设逃犯不逃离A区域。

求得逃犯能逃离区域
图中绿色是警察在5.7min内能封锁的区域,绿色是逃犯在8.9min内能达到的区域。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目描述: 一艘质量为$m$的船停靠在距离海岸线$L$的海域, 用一根长为$L$的铁锚将其系住。现有一条绳子, 一端固定在海岸上某点, 另一端系在船上。 要求绳子始终保持水平, 即绳子与水面的夹角为90°。 现在需要设计一个系泊系统,使得满足以下要求: 1. 绳子的长度为$L$; 2. 系泊系统能够承受风浪力矩$mgl\sin\theta$($\theta$为船在水平方向上的倾斜角度,$g$为重力加速度,$m$为船的质量,$l$为船到绳子固定点的水平距离); 3. 系泊系统的总重力不超过$G$,其中包括锚和绳子的重力; 请设计一个系泊系统,确定锚点在海岸线上的位置,以及绳子的长度。 思路: 1. 通过分析,可以得到系泊系统的主要受力情况:重力,浮力,张力和风浪力矩。其中,重力和浮力是与锚点位置无关的,可以先计算出来;风浪力矩是与船的倾斜角度有关的,需要在计算时考虑。 2. 假设锚点位置为$(0,0)$,船的位置为$(x,y)$,则绳子的长度$L$可以表示为$\sqrt{x^2+y^2}$。考虑绳子的张力,由于绳子与水面垂直,所以绳子的张力只有水平方向的分量,即$T\sin\theta$,其中,$\theta$为绳子与水平面的夹角。 3. 计算重力和浮力。船的重力为$mg$,浮力为$\rho Vg$,其中,$\rho$为水的密度,$V$为船的体积。绳子和锚的重力可以通过绳子的长度$L$和锚的重量来计算,即$g(L-x)\rho_s A$,其中,$\rho_s$为锚的密度,$A$为锚的横截面积。 4. 考虑风浪力矩的影响。假设风浪力矩对船的影响可以视为一个力矩,大小为$mgl\sin\theta$,方向垂直于船的水平方向,根据右手定则可以确定其方向。由于绳子的张力与水平方向平行,所以风浪力矩只对船的倾斜角度$\theta$有影响。 5. 在计算时,可以将锚点位置和绳子长度作为变量,通过求解最优化问确定最佳的锚点位置和绳子长度,使得系泊系统满足要求。可以考虑使用数值优化方法进行求解。 参考代码: ``` import numpy as np from scipy.optimize import minimize def objective(x): L = np.sqrt(x[0]**2 + x[1]**2) theta = np.arctan(x[1] / x[0]) T = (m*g + rho*V*g + (L-x[0])*rho_s*A) / np.sin(theta) M = T * L * np.sin(theta) return -M def constraint1(x): L = np.sqrt(x[0]**2 + x[1]**2) theta = np.arctan(x[1] / x[0]) T = (m*g + rho*V*g + (L-x[0])*rho_s*A) / np.sin(theta) return G - (m + rho_s*A*(L-x[0]) + rho*V)*g - T*np.cos(theta) def constraint2(x): return x[0] def constraint3(x): return x[1] # 系泊系统参数 m = 1000 # 船的质量 V = 100 # 船的体积 rho = 1000 # 水的密度 rho_s = 7800 # 锚的密度 A = 10 # 锚的横截面积 g = 9.8 # 重力加速度 G = 100000 # 系泊系统的总重力 # 初始值 x0 = [10, 10] # 约束条件 cons = [ {'type': 'ineq', 'fun': constraint1}, {'type': 'ineq', 'fun': constraint2}, {'type': 'ineq', 'fun': constraint3} ] # 求解最优化问 sol = minimize(objective, x0, method='SLSQP', constraints=cons) # 输出结果 print(sol) ``` 参考资料: [1] 赵凌宇. 数学建模算法与应用[M]. 北京:清华大学出版社,2016. [2] 谷超豪,李涛,刘宝印,等. 数学建模算法应用与分析[M]. 北京:科学出版社,2016.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值