解决迷宫的可能方法有哪些?
我有两个想法,但我认为它们不是很优雅.
基本情况:我们有一个矩阵,在这个矩阵中的元素,因为它代表一个迷宫的方式是有序的,在一个途径,一个出.
我的第一个想法是将一个机器人穿过迷宫,沿着一侧,直到它离开迷宫.我认为这是一个非常缓慢的解决方案.
第二个通过标记1,检查它可以去(上,右,下,左)每个连续的项目选择的一种方式,它有继续它的路径.这甚至比第一个慢.
当然,如果我在每个交叉点使两个机器人多线程,它会更快一些,但这也不是最好的方法.
需要更好的解决方案来通过迷宫发送机器人.
编辑
第一:谢谢你的好答案!
我的问题的第二部分是:如果我们有一个多维图,该怎么办?有没有特殊的做法,或Justin L.的答案也适用于此?
我认为这不是这种情况的最佳方式.
第三个问题:
这些迷宫求解器算法中哪一个是最快的?(纯粹假设)
我有一个JPG图像的文件夹,我正在尝试为一个讨人喜欢的比赛进行分类.我已经看到Python中的一些代码,我认为会在论坛上实现这一点,但是想知道是否可以在R中完成?我正在尝试将许多jpg图像的这个文件夹转换为csv文件,其中数字显示每个像素的灰度,类似于手数字识别器http://www.kaggle.com/c/digit-recognizer/
所以基本上是j中的jpg - > .csv,显示了用于分类的每个像素的灰度数.我想在它上面放一个随机森林或线性模型.
什么是启发式的具体例子(例如Alpha-beta修剪,例如:tic-tac-toe以及它是如何适用的).我已经看到了一个关于什么是启发式的回答问题,但我仍然没有得到它使用估计的东西.你能给我一个启发式的具体例子以及它是如何工作的吗?
从http://ccl.northwestern.edu/netlogo/models/community/Astardemo,我通过使用网络中的节点来定义最低成本路径来编码A*算法.代码似乎有效,但是当我在大空间尺度上使用它时它太慢了.我的景观有1000个补丁x 1000个补丁,1个补丁= 1个像素.即使我减少400补丁x 400补丁1补丁= 1像素,它仍然太慢(我不能修改我的景观低于400补丁x 400补丁).这是代码:
to find-path [ source-node destination-node]
let search-done? false
let search-path []
let current-node 0
set list-open []
set list-closed []
let list-links-with-nodes-in-list-closed []
let list-links []
set list-open lput source-node list-open
while [ search-done? != true]
[
ifelse length list-open != 0
[
set list-open sort-by [[f] of ?1 < [f] of ?2] list-open
set current-node item 0 list-open
set list-open remove-item 0 list-open
set list-closed lput current-node list-closed
ask current-node
[ …Run Code Online (Sandbox Code Playgroud) 如何通过栅格图像数据找到非线性路径?例如,最低成本算法?起点和终点是已知的,并给出如下:
起点=(0,0)
终点=(12,-5)
例如,通过(灰度)光栅图像提取蜿蜒河流的近似路径.
# fake up some noisy, but reproducible, "winding river" data
set.seed(123)
df <- data.frame(x=seq(0,12,by=.01),
y=sapply(seq(0,12,by=.01), FUN = function(i) 10*sin(i)+rnorm(1)))
# convert to "pixels" of raster data
# assumption: image color is greyscale, only need one numeric value, v
img <- data.frame(table(round(df$y,0), round(df$x,1)))
names(img) <- c("y","x","v")
img$y <- as.numeric(as.character(img$y))
img$x <- as.numeric(as.character(img$x))
## take a look at the fake "winding river" raster image...
library(ggplot2)
ggplot(img) +
geom_raster(aes(x=x,y=y,fill=v))
Run Code Online (Sandbox Code Playgroud)
algorithm ×3
r ×2
a-star ×1
csv ×1
grayscale ×1
heuristics ×1
jpeg ×1
kaggle ×1
maze ×1
netlogo ×1
path-finding ×1
performance ×1
raster ×1