3D 迷宫中的最短路径

2024-02-04

我正在尝试编写一个程序来使用递归查找 3D 迷宫中的最短路径。

我能够编写找到穿过迷宫的随机路径的代码,但我想知道如何修改我的代码以找到最短路径。

请注意,我想保留递归方法。

有人可以提出解决方案吗?

这是一个二维迷宫示例:

s    
XXXX 
XX X
XXX  
Xe  X

一开始于s即将e. X是一个障碍并且是路线。


这取决于您正在实施的算法。如果您想要采用递归方法,那么找到随机路径是一个很好的起点(尽管如果问题太复杂,那么错误的选择可能会对收敛所需的尝试次数产生巨大影响)。之后您需要修改路径,例如检查新路径是否比之前的路径短;如果是,那么您继续朝同一方向修改参数。否则你必须改变你的方向。 算法/程序的退出标准通常是找到的解决方案与理想解决方案之间的差异。因此,如果您提前知道理想路径的长度(最佳解决方案,您不需要知道路径本身,而只需知道其长度),那么您可以定义例如 10^-9 的误差范围,一旦两个解决方案之间的差异小于此余量,您的算法将退出。

综上所述,本题是一个数学优化问题。优化是一个拥有完善文献的领域,尽管它有点复杂。但是,如果我是你,我会搜索最短路径算法并实现最适合我的应用程序的算法(3D 迷宫)

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

3D 迷宫中的最短路径 的相关文章

  • Scala REPL 中的递归重载语义 - JVM 语言

    使用 Scala 的命令行 REPL def foo x Int Unit def foo x String Unit println foo 2 gives error type mismatch found Int 2 required
  • NodeJS 在目录中递归地哈希文件

    我能够实现目录中的递归文件遍历 即探索目录中的所有子目录和文件 为此我使用了answer https stackoverflow com questions 5827612 node js fs readdir recursive dire
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 在堆栈已满并给出分段错误之前,C/C++ 中的最大递归函数调用次数?

    我正在做一个问题 我使用递归函数来创建线段树 对于较大的值 它开始出现分段错误 所以我之前认为可能是因为数组索引值越界 但后来我认为这可能是因为程序堆栈太大 我编写这段代码是为了计算系统出现段错误之前允许的最大递归调用次数 include
  • 如何检查是否存在可能的路径?

    我正在开发一个基于 javascript 的实验性游戏 玩家必须在二维平铺地图上移动才能退出 请随意检查这个小提琴并演奏 http jsfiddle net moonlife 74vLd 我只是随机放置障碍物 但有时障碍物会挡住玩家和出口之
  • 如何在递归调用函数时阻止 bash 创建子 shell

    这是一个计算阶乘的简单 shell 函数 bin bash function factorial if 1 lt 2 then echo 1 else echo 1 factorial 1 1 fi factorial 1 但我发现这个脚本
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 为什么Racket中foldl的定义方式很奇怪?

    在 Haskell 中 与许多其他函数式语言一样 函数foldl被定义为 例如 foldl 0 1 2 3 4 10 这没关系 因为foldl 0 1 2 3 4 根据定义 0 1 2 3 4 但是 在 球拍 中 foldl 0 1 2 3
  • 更改 3D 图形颜色 (matplotlib)

    我使用以下代码在 matplotlib 中绘制了 3D 图形 Previously defines lists of data to plot fig plt figure ax fig add subplot 111 projection
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 我在函数的最后一次递归调用中得到“方案应用程序而不是过程”

    所以这是代码 define time prime test n newline display n start prime test n runtime define start prime test n start time if pri
  • 合并xml文档

    我遇到的所有关于合并 XML 文档的解决方案都无法实现我的愿望 让我解释 XML 文档 1 a b title Original Section b title Original Child Section b b title Origin
  • 仅使用堆区域的递归

    是否有仅使用堆区域的递归示例 在 C 中 基于函数调用的递归总是使用堆栈 几乎按照定义 如果您愿意将递归转换为迭代 那么可以仅使用堆空间 但这并不是真正的递归 您可以通过在堆中实现堆栈来实现这一点 某些问题可以使用尾递归 http en w
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Pari-GP 中嵌套特定递归

    每个人 我最初在 Stackexchange 上发布了类似的问题 它已移至此处 可以在链接中找到 在 Matlab 中声明函数递归序列 https stackoverflow com questions 67146061 declaring
  • 递归树遍历 - 如何跟踪递归级别?

    我基本上试图从表示树结构的多维数组构建 html ul li 嵌套列表 下面的代码工作正常 但我想改进它 我需要一种方法来跟踪递归级别 以便我可以将不同的类应用于不同的级别 向生成的输出添加缩进等 function buildTree tr
  • 将 3D 场景导入babylonJS

    所以我今天读到巴比伦JS http blogs msdn com b eternalcoding archive 2013 06 27 babylon js a complete javascript framework for build
  • 加权图的 BFS 算法 - 寻找最短距离

    我看过很多帖子 即 post1 https stackoverflow com questions 30409493 using bfs for weighted graphs post2 https cs stackexchange co

随机推荐

  • 如何在sparklyr中按3分钟时间戳聚合数据?

    我在用sparklyr进行一些快速分析 我在使用时间戳时确实遇到一些问题 我有两个不同的数据帧 一个以 1 分钟间隔行 另一个以 3 分钟间隔行 第一个数据集 1 分钟间隔 id timefrom timeto value 10 2017
  • 使用 jQuery 验证在单独的 div 中显示错误消息

    我正在使用 jQuery 验证 我想在 div 中显示错误消息 div class alert alert error 默认显示在表单下方的功能不适用于我的表单设计 验证脚本链接到我有表单的页面 它看起来像 function validat
  • 取消选择变量时,条形图“飞翔”

    我面临着 ggplot2 和plotly 的一些问题 使用 ggplot2 创建条形图并将其传递给函数时ggplotly取消选择变量时 条形图位于半空中 该图的表现与示例不同here https plot ly r bar charts 例
  • 多个 jediepcserver.py 用于多个 virtualenv

    我正在尝试为不同项目的多个 virtualenv 运行多个 jediepcserver py 我的想法是让我在 Emacs 上工作的每个项目都有适当的自动完成功能 例如 我目前正在开发两个项目 一个使用 Django 1 5 另一个使用 D
  • .Net AssemblyName.version 构建与修订

    MSDN 文档指出 版本号由二到四个组成 组件 主要 次要 构建和 修订 主要和次要 需要组件 构建和 修订组件是可选的 但是 构建组件是必需的 如果 修订版组件已定义 全部 定义的分量必须是整数 大于或等于0 版本号的格式如下 如下 显示
  • 从Python API而不是saved_model_cli中提取(或设置)输入/输出TF张量名称信息

    我使用 Keras TF2 5 训练了一个简单的模型并将其保存为已保存模型 tf saved model save my model path to model 如果我通过检查它 saved model cli show dir path
  • 使用 Amazon Cognito 访问 AWS Iot 时出现禁止异常

    我正在创建一个使用 Amazon Cognito 身份验证连接到 AWS IoT 的 Android 应用程序 我能够成功验证用户身份并且能够获取凭据 使用这些凭据更新事物影子时始终返回 403 禁止异常 我已尝试了所有方法来解决该问题 但
  • 如何在 mongodb 中更新多个数组元素

    我有一个 Mongo 文档 其中包含一个元素数组 我想重置 handled数组中所有对象的属性 其中 profile XX 该文件的形式如下 id ObjectId 4d2d8deff4e6c1d71fc29a07 user id 7146
  • plist 在字典中写入数据

    是否可以通过代码编辑捆绑包中的 pList 文件或资源中的值 这意味着我的 plist 文件不是以编程方式创建的 我想以编程方式编辑其值 在您的应用程序包中 不可以 您无法在应用程序包内写入文件 但是 您可以在应用程序首次启动时将该文件复制
  • Firebase - 如何使用前端 JS 隐藏令牌。安全性如何

    我正在使用 firebase 开发一个 web ap 我想使用 JS 直接从前端连接它 这样我就避免了中间层 所以我的问题基本上是如何使用 firebase 进行安全实现以及如何隐藏将在 Javascript 上公开的凭据 您永远不会在客户
  • 如何处理:ImportError: /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_log_structed_standard

    我有一台 MacBook Pro 上面安装了 VirtualBox 安装了 Anaconda 来自https www continuum io https www continuum io 并安装了OpenCV conda install
  • CFNetwork 内部错误:URLConnectionLoader.cpp:289

    一段时间后 当我打开应用程序时 我收到日志 440 CFNetwork内部错误 0xc01a BuildRoot Library Caches com apple xbs Sources CFNetwork CFNetwork 758 4
  • Symfony Restful 帖子:JMSSerializerBundle 与 Symfony 表单组件

    据我了解 当控制器收到 post put patch 请求时 JMSSerializerBundle 的反序列化与 symfony 表单组件的反序列 化效果相同吗 因此 我要么创建一个 symfony 自定义 formType 例如一个 U
  • Qt GUI事件记录和回放

    我正在尝试实现一个简单 轻量级的系统来记录 Qt GUI 事件并从脚本中回放它们 我认为使用 Qt 事件系统的魔力这将是相当简单的 但我遇到了一个我不明白的问题 这是我正在做的事情的快速总结 记录 I use QApplication in
  • Perl 的首选单元测试框架是什么?

    我对 Perl 有点陌生 我想知道是否有首选的单元测试框架 谷歌向我展示了一些不错的结果 但由于我是新手 我不知道社区内是否有明确的偏好 Perl 附带了一整套很棒的测试工具 Perl 核心有数以万计的自动检查 并且大部分都使用这些标准 P
  • ActiveRecord::Base 上的 alias_method 导致 NameError

    我有一个直接继承自的模型ActiveResource Base 我正在尝试运行alias method对于记录表中的大多数列 但结果是 NameError 名称错误 未定义的方法address line 1 for class LeadIm
  • 如何使用 CSharp SQLite 加速 SQL 查询?

    背景 我有一个 SQLite3 数据库并且正在使用CSharp SQLite http code google com p csharp sqlite 来查询数据 我的问题是任何使用 JOIN 或 ORDER BY 调用的查询都非常慢 使用
  • JavaScript 中的instanceof 是如何工作的?

    在以下代码示例中 最后对 obj2 和 obj3 进行了检查实例化即使构造方式不同并且返回结果也返回 truename属性不同 var Obj1 function this name foo1 Obj1 prototype name foo
  • 将传单地图组合在一起

    我生成了这两个关于地理坐标的随机数据集 例如 每个点代表法国的一家假想餐厅 id 1 1000 long 2 2945 rnorm 1000 0 1085246 0 1 lat 48 8584 rnorm 1000 0 009036273
  • 3D 迷宫中的最短路径

    我正在尝试编写一个程序来使用递归查找 3D 迷宫中的最短路径 我能够编写找到穿过迷宫的随机路径的代码 但我想知道如何修改我的代码以找到最短路径 请注意 我想保留递归方法 有人可以提出解决方案吗 这是一个二维迷宫示例 s XXXX XX X