通过四维数据寻路

2023-12-27

问题是找到飞机穿过四维风(不同高度的风,并且随着飞行而变化的风(预测风模型))的最佳路线。

我使用了传统的 A* 搜索算法,并对其进行了修改,使其能够在 3 维和风向量中工作。

它在很多情况下都有效,但速度非常慢(我正在处理大量数据节点)并且不适用于某些边缘情况。

我觉得它运行得“很好”,但感觉非常混乱。

有没有更好更有效的方法通过这样的数据(可能是遗传算法或神经网络)进行路径查找,或者我什至没有考虑过?也许是流体动力学?我不知道?

编辑:更多细节。

数据是风矢量(方向、强度)。 数据间隔为 15x15km,分布在 25 个不同的海拔高度。

我所说的“并不总是有效”是指它会为飞机选择一条愚蠢的路径,因为路径权重与另一条路径相同。对于路径查找来说它很好,但对于飞机来说不是最佳的。

对于每个节点更改,我都会考虑很多因素:

  • 上升的成本高于下降的成本。
  • 抗风性。
  • 忽略电阻过高的节点。
  • 对角线与直线等的成本

我使用欧氏距离作为我的启发式或 H 值。 我使用各种因素来衡量我的体重或 G 值(上面的列表)。

Thanks!


您始终可以通过使用加权A* http://en.wikipedia.org/wiki/A%2a_search_algorithm#Weighted_A.2A.

加权 A* [或 A* epsilon],预计会比 A* 更快地找到路径,但该路径不是最优的 [但是,它给你一个其最优性的界限,作为你的 epsilon/权重的参数] 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过四维数据寻路 的相关文章

  • 线性代数如何在算法中使用?

    我的几个同行都提到 学习算法时 线性代数 非常重要 我研究了各种算法并学习了一些线性代数课程 但我没有看到其中的联系 那么线性代数如何应用在算法中呢 例如 图的连接矩阵可以带来哪些有趣的事情 三个具体例子 线性代数是现代 3D 图形的基础
  • 快速求解子集和

    考虑这种解决子集和问题的方法 def subset summing to zero activities subsets 0 for activity cost in activities iteritems old subsets sub
  • 使用主方法求解 T(n) = 2T(n/2) + n/log n 和 T(n) = 4T(n/2) + n/log n 之间的差异

    我最近偶然发现了一个资源 其中 2T n 2 n log ntypeMM 宣布复发无法解决 我接受它作为一个引理 直到今天 另一种资源被证明是矛盾的 在某种意义上 根据资源 下面的链接 其中的 Q7 和 Q18 是建议 分别在问题中的1和2
  • Codility 钉板

    尝试了解 Codility NailingPlanks 的解决方案 问题链接 https app codility com programmers lessons 14 binary search algorithm nailing pla
  • 检索受“rowspan”影响的行的列索引的最有效方法是什么?

    考虑下表 table thead tr th th th A th th B th th C th tr thead tbody tr th 1 th td Apples td td Oranges td td Pears td tr tb
  • 固定大小集以包含给定集的最大数量

    我有大约 1000 组尺寸 1 4 1 3 3 5 6 4 5 6 7 5 25 42 67 100 是否有可能找到包含最大数量的给定集合的大小为 20 的集合 检查每一个100 80 20 集 效率低下 我不太确定这是 NP 完全的 考虑
  • 快速搜索压缩文本文件

    我需要能够在大量压缩文件 txt 中搜索文本 压缩可能会改变为其他东西 甚至成为专有的 我想避免解压所有文件并压缩 编码 搜索字符串并在压缩文件中搜索 这应该可以通过对所有文件使用相同的码本使用霍夫曼压缩来实现 我不想重新发明轮子 所以 任
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 用 C++ 生成 AST

    我正在用 C 制作一个解释器 到目前为止我已经有了词法分析器来生成标记 问题是我不确定如何生成 行走 解析树 我正在考虑使用数组数组来制作解析树 但我不确定如何以正确的顺序将标记实际插入到解析树中 我不确定是自上而下 左右还是自下而上 左右
  • 在常数空间中创建 1..N 的随机排列

    我正在寻找枚举固定空间中数字 1 N 的随机排列 这意味着我无法将所有数字存储在列表中 原因是 N 可能非常大 超过可用内存 我仍然希望能够一次遍历这样一个数字的排列 只访问每个数字一次 我知道对于某些 N 可以这样做 许多随机数生成器随机
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 直接选择排序与交换选择排序

    有什么区别直接选择排序 vs 交换选择排序 今天我陷入了一场争论 我的教授在他的讲义中使用了这两个术语 维基百科和任何教科书或网站都会为您提供的选择排序就是他所说的 交换选择排序 我以前从未听说过 交换选择排序 这个术语 仅 选择排序 并且
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 如何从迭代器推导连续内存

    不知何故 本土stl copy VC Dinkumware 上的算法表明它可以使用memcpy 可以轻松复制的数据 一个凡人能做到这一点吗 假设每个元素都是普通可复制的 random access iterator 是否意味着连续内存 标准
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 需要解释搜索最小大和的算法

    我正在解决 Codility 问题作为练习 但无法回答其中一个问题 我在互联网上找到了答案 但我不明白这个算法是如何工作的 有人可以引导我逐步完成它吗 这是问题 You are given integers K M and a non em
  • 如何对对象进行排序? (画家算法)

    所以我有 4 个矩形形状 我正在尝试应用排序算法 画家算法 https en wikipedia org wiki Painter 27s algorithm 来知道我需要先绘制哪些形状 在 3d 中 然后绘制哪个形状 Note 相机位于右

随机推荐

  • Windows 应用商店应用程序的日志记录框架

    我正在寻找将日志记录和检测构建到我的 Windows 应用商店应用程序中 对于 Windows 应用商店应用程序的良好日志记录框架有什么建议吗 我知道我可以通过写入文件或 Azure 存储来推出自己的产品 很好奇是否已经有任何东西 Go f
  • 从 Ruby 块中提取 AST

    是否有可能从 Ruby 本身获取一个块的 AST 我已经研究过 ParseTree 和 ruby parser 但它们似乎都对 Ruby 1 9 2 提供了粗略的支持 根据我读到的内容 我需要一些与 1 9 2 配合良好的东西 Ripper
  • 适用于 Windows 的 Zeromq PHP 扩展

    我正在使用配置了 IIS 7 5 的 Zend 服务器 我搜索了 edit Zeromq php 扩展 我找到了这些http valokuva org builds http valokuva org builds and http sna
  • 支持 Git 的开源 IDE [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我无法找到支持 Git 的开源 IDE 有什么可以给我指点或推荐的吗 有一个Eclipse 插件正在进行中 http www eclips
  • 什么是命名空间污染?

    命名空间污染 一词是什么意思 为什么将方法设为静态有助于防止它 这个问题 https stackoverflow com questions 8862665 what does it mean global namespace would
  • 使用 Firebase 使 URL 过期

    如何创建指向 Firebase 数据的临时 URL 但数据 和 URL 将在特定时间 即 5 分钟或 15 分钟 后被销毁 根据数据的存储方式 有几种不同的选项可用于按时间戳删除数据 假设数据未排序 并且您已将时间戳存储为每个记录中的字段
  • 如何将 javascript 中的数字数组转换为字符串?

    就像我有var arr 1 2 3 4 5 我希望这成为arr 1 2 3 4 5 我尝试使用 var x arr 0 toString outputs 1 但当我这样做时typeof x它输出 数字 当我这样做时我该如何转换它typeof
  • 如何从文本文件中删除非 UTF-8 字符

    我有一堆以 utf 8 编码的阿拉伯语 英语 俄语文件 尝试使用 Perl 脚本处理这些文件时 出现以下错误 Malformed UTF 8 character fatal 手动检查这些文件的内容 我发现其中有一些奇怪的字符 现在我正在寻找
  • java.lang.IllegalArgumentException:名称

    它在 Eclipse 中工作正常 但是当我创建 jar 并运行它时会给我这个异常 这是我正在使用的非 Web Spring Boot 应用程序 我应该作为独立 jar 运行 java lang IllegalArgumentExceptio
  • 如何在结束循环之前查看生成器的打印输出?

    我正在尝试在处理大量数据的生成器内打印调试信息 但是 只有当生成器完成时我才能看到结果 我使用的是python 3 我的代码如下 def generator while 1 print end time sleep 1 yield 1 fo
  • 使用 Jenkins 进行发布管理有哪些选项

    我正在评估 Jenkins 和 Apache Continuum 等构建引擎 我们的大部分构建都使用 Maven Jenkins 有哪些用于发布管理的选项 我所说的发布管理是指从源代码控制中的分支创建发布 然后更新 Maven 中的版本标签
  • 使用 GWT CellTableBuilder 按需构建自定义行

    GWT 2 5 RC 中引入了 CellTableBuilder API 但尚未提供全面的文档 是否有使用 CellTableBuilder 实现按需自定义行构建的教程 示例 到目前为止我发现的唯一例子就是这个http showcase2
  • 在大文件中进行搜索的最佳方法是什么?

    我希望对大文件 gt 4GB 应用 KMP 或类似 搜索 我预计这会给我带来问题 我无法将其全部复制到内存中 因为那里没有足够的空间 我的问题是 进行此搜索的最佳方法是什么 我是否应该简单地创建一个 FILE 并直接在文件中进行搜索 是否应
  • 如何组合数据然后分离连接的数据?

    我想将一系列数据合并到一个单单元格 G5 中 然后我想将Value G5拆分为原始形式 太感谢了 https docs google com spreadsheets d 1sVrpPvtQPG0Zw2Ar UxPHXNN0atEdQNX
  • PHP 中有从数组中提取“列”的函数吗?

    我有一个数组的数组 具有以下结构 array array page gt page1 name gt pagename1 array page gt page2 name gt pagename2 array page gt page3 n
  • Cobertura 如何与 JUnit 配合使用?

    我不明白Cobertura如何与JUnit合作 据我了解 cobertura 修改编译的字节代码并在该字节代码中插入它自己的命令 好的 之后 我们运行 Junit 框架并对其进行测试 谁能解释一下 cobertura 在什么时候获取执行了哪
  • 是否有一个 Python 习惯用法可以通过短路来评估函数/表达式列表?

    我写了一个简单的脚本来解决 逻辑谜题 这是学校里的谜题类型 你会被赋予许多规则 然后必须能够找到诸如 有五个音乐家 名字分别为 A B C 之类的问题的解决方案 D E 在一场音乐会上演奏 每人一个接一个地演奏 如果 A 在 B 之前演奏
  • 如何从键而不是值推断类型参数?

    我有一个表示有向图结构的类 它是具有一个类型参数的通用类K extends string对于节点名称 图表是通过传递一个对象来构造的 例如 a b b 在这个最小的例子中代表两个节点a and b 有一条边a b class Digraph
  • 为什么 ScriptEngine 不再有 Execute 方法?

    目前我已经开始更认真地与罗斯林合作 我发现本文 http visualstudiomagazine com articles 2011 11 16 the roslyn scripting api aspx关于使用ScriptEngine在
  • 通过四维数据寻路

    问题是找到飞机穿过四维风 不同高度的风 并且随着飞行而变化的风 预测风模型 的最佳路线 我使用了传统的 A 搜索算法 并对其进行了修改 使其能够在 3 维和风向量中工作 它在很多情况下都有效 但速度非常慢 我正在处理大量数据节点 并且不适用