在我的工程课上,我们正在编程一个“非平凡”的捕食者/猎物追踪问题。
以下是情况的要点:
有一个猎物正试图逃离捕食者每一个都可以建模为一个粒子,可以在MATLAB中设置动画(我们必须使用这种编码语言)。
猎物:
能比捕食者更容易操纵(转弯)
捕食者:
比猎物移动得快
我必须为捕食者和猎物创建代码,这将用于类竞争。
这基本上就是最终产品的样子:
http://www.brown.edu/Departments/Engineering/Courses/En4/Projects/pred_prey.gif
目标是在最短的时间内抓住对方的猎物,并且让我的猎物成为对方捕食者无法捕捉的猎物(或者至少是长时间逃脱)。
以下是具体的设计约束:
三。设计约束:
捕食者和猎物只能在x-y平面上移动
模拟将持续250秒。
捕食者和猎物都会受到三种力的作用:(a)推进力;(b)粘性阻力
力;和(c)随机时变力(给出所有方程式)
一推进力将由两个竞争组提供的功能决定
假设捕食者与猎物之间的距离低于1米时,捕食者会抓住猎物。
在计算捕食者/猎物的力时,不能使用rand()函数,因为这是唯一的随机力
应该是由提供的脚本生成的(对于
要集成的ODE解算器,它最终会形成一个无限循环)。
对于比赛,我们将提供MATLAB代码来计算和动画
参赛者,并将决定每场比赛的获胜者测试代码将使用国际单位制。
我正在寻找任何资源,可能有助于我的一些战略我已经看过基本的追捕曲线,但我想看一些例子,猎物不是直线移动任何其他编码建议或策略将不胜感激!
最佳答案
从任何一个领域的基础知识开始都是个好主意,你不可能通过Issacs(Differential Games: A mathematical theory with applications to warfare and pursuit, control and optimization)的工作这几乎肯定会成为任何学术研究项目的参考,你可能会写下来。
史蒂文·拉瓦勒的这本优秀的书有很多值得关注的方面,其中包括一个基于可视性的章节。
对于许多数学主题,Wolfram Mathworld有一些很好的图表和链接,可以让您朝着正确的方向思考(例如Motion Planning)。
如果你想看看这个领域中一个很有意思的问题,尝试一下pursuit evasion——这至少给了你一些比较不同技术的复杂性和效率的理由。特别是,这可能是了解水平集方法的一个好方法(Patsko和Turova的论文Pursuit Curves似乎有许多图像可能是有用的)