问题标签 [planning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
artificial-intelligence - 快进和 pddl:计算的解决方案是最好的吗?
我怎么能确定由快进计划器计算出的计划是所有可能计划中最好的?!
是否存在解决此问题的自动工具?!
多谢!
eclipse - 将 MIndiGolog 流式转换为 IndiGolog Causes_val 格式
我正在使用带有Prolog 开发工具(PDT) 插件的Eclipse(版本:Kepler Service Release 1)在 Eclipse 中进行 Prolog 开发。使用了这些安装说明:http ://sewiki.iai.uni-bonn.de/research/pdt/docs/v0.x/download 。
我正在使用Multi-Agent IndiGolog (MIndiGolog) 0(MIndiGolog 的初步序言版本)。从这里下载:http ://www.rfk.id.au/ramblings/research/thesis/ 。我想使用 MIndiGolog,因为它很好地表示了动作的时间和持续时间(我想做时间规划),并且它支持多个代理的规划(包括并发)。
MIndiGolog是一种基于情境演算的高级编程语言。语言中的一切都完全根据情况演算。然而,这不适合我正在从事的项目。
这种其他高级编程语言,增量确定性(Con)Golog(IndiGolog)(从这里下载:http: //sourceforge.net/p/indigolog/code/ci/master/tree/)(也是用 Prolog 制作的),也(松散地)基于情境演算,但以非常不同的方式使用流利。它利用cause_val-predicates来表示哪个动作以什么方式改变哪个流利,它不包括流利中的情况!
然而,这正是团队其他人真正想要的。我需要重写 MIndiGolog,使其仍然是一个离线计划器,可以很好地表示动作的时间和持续时间,但使用 IndiGolog 的 cause_val 谓词来更改流利的值。
我发现这很难做到,因为我在 Prolog 和情况演算方面的知识只涵盖了基础知识,但他们认为我是专家。我觉得我在我的头上,可以使用我能得到的所有帮助和/或建议。
我已经从我的 fluents 中删除了这些情况,使用 Cause_val 谓词创建了一个规划域,并尝试将 IndiGolog 代码添加到 MIndiGolog 中。但没有运气。运行规划器只会返回“false”。即使我使用 SWI-Prolog 调试器的 GUI-tracer 版本,或者当我尝试尽可能有策略地放置间谍点时,我也无法理解跟踪。
提前致谢,
最好的,PJ
algorithm - 如何枚举 8-puzzle 中的所有状态?
我正在解决 8 谜题。这是一个看起来像这样的问题:
图片由:https ://ece.uwaterloo.ca/~dwharder/aads/Algorithms/N_puzzles/ 提供(您还可以在此处查看 8 拼图的更详细描述)。用户可以将与空白相邻的正方形移动到空白中。任务是恢复如图所示的排列,从一些任意排列开始。
现在,当然可以将状态描述为 9 位的排列。在显示的图片的情况下,排列是:
但是,并非所有排列都可以从所示配置中获得。因此,我有以下问题。
通过将瓷砖滑入空白中,从所示的初始配置中可以获得多少排列?
调用上述 N 的答案。现在,我想要一个从 1 到 N 的整数到排列的 1-1 映射。也就是说,我想要一个接受排列并返回适当整数的函数,以及一个接受整数并返回排列的函数。映射必须是双射(即不完美的散列是不够的)。
artificial-intelligence - 基于 PDDL 的规划中的规划可视化和系统架构
我已经在 PDDL 中建立了几个领域和问题,现在我正在寻找一种可能性来可视化我的领域、问题和解决方案。我的问题如下:
- 是否有任何工具可以对计划进行相当简单的图形表示(例如节点和连接)?
- 是否有工具可以随时以纯文本显示我的域的当前世界状态(即我的域中所有变量的值,在我的计划中的每个步骤之后)?
- 如何在系统架构中集成 PDDL?如果我想使用我的世界的 2D 或 3D 表示(例如 Gazebo),我如何“连接”Gazebo 和 PDDL?
谢谢!
algorithm - Finding best path given a distance transform
Given a distance transform of a map with obstacles in it, how do I get the least cost path from a start pixel to a goal pixel? The distance transform image has the distance(euclidean) to the nearest obstacle of the original map, in each pixel i.e. if in the original map pixel (i,j) is 3 pixels away to the left and 2 pixels away to the down of an obstacle, then in the distance transform the pixel will have sqrt(4+9) = sqrt(13) as the pixel value. Thus darker pixels signify proximity to obstacles and lighter values signify that they are far from obstacles.
I want to plan a path from a given start to goal pixel using the information provided by this distance transform and optimize the cost of the path and also there is another constraint that the path should never reach a pixel which is less than 'x' pixels away from an obstacle.
How do I go about this?
P.S. A bit of description on the algorithm (or a bit of code) would be helpful as I am new to planning algorithms.
c++ - 实时确定概率表示的二维网格上的最佳得分移动
我将其发布到 StackOverflow、cstheory.stackexchange.com 和 math.stackexchange.com,因为我不确定它最适合哪里。我希望没关系。
我有一个 2D 网格(每个地图的大小不同,范围从 10X10 到 20X20,必须是正方形),其中每个单元格包含每个单元(10 到 50,具体取决于地图)的概率(0 到 1)在那个地点。
有两种主要类型的单位,一些大单位的行为由你希望能帮助我的算法控制,还有一些小单位只能移动或在帮助下改变其(布尔)状态的大单位。所有单位都属于团队,但任何大单位都可以移动任何小单位。根据较小单位的位置和状态对比赛进行评分。每个单元都知道自己的坐标。
在多个指定单元中的任何一个中拥有一个小单元都会获得积分,并且根据占用的相邻单元的数量奖励奖金 - 注意相邻并不一定意味着相邻单元的坐标,并且将根据地图确定。
我已经有一个路径系统,所以这不是问题,计算移动的时间成本也不是问题,尽管出于性能原因应该最低限度地调用它。
我的意图是让计划系统输出一系列所需的状态/动作。例如,在 (9,4) 处以 43 度角,然后在 (12,4) 处以 12 度角启用小单元。
我正在尝试确定〜5个竞争主要单位中的每一个的最佳移动,以在时间用完时优化他们团队的终结位置。这些单元具有填充概率位置的模拟传感器,因此收集信息是一个有效的举措。
理想情况下,该算法会向前看几步,并考虑诸如特定动作是否使您处于执行下一步动作的好位置之类的事情-位置的这种“优点”将与路径成本相反。
性能在这里相当重要,我很可能愿意用解决方案质量来换取显着的性能提升。
到目前为止,这是我的想法:
最完整的解决方案是详尽的搜索,但性能排除了这一点。
我应该计算每个合理可能的当前状态的重要性,这样我就可以确定哪些信息是重要的。
如果可能,平均现代 PC 上的每个单元的运行时间应该 <= 25 毫秒 - 不是一成不变的 - 这是 C++,所以它相当快。
适应国际象棋算法可能是一个好方法。
我不擅长这个,我应该上网问问。
最好的方法几乎肯定是估计。
如果一个动作有 10% 的机会获得 20 倍于任何其他动作的点数,那么冒险是值得的——除非另一个动作几乎可以保证良好的结束位置并且时间快到了。
我的问题有点冗长。
我觉得到目前为止我一定有更多的想法,但我无法为我的生活思考它们是什么。
最后一点押韵了。
如果你还在读这篇文章,那么我可能愿意嫁给你。
虽然如果有人为此提供完整的解决方案会很棒,但我绝对愿意接受我能得到的任何帮助/提示,并且会接受让我走得最远的答案,不管那有多远。我对算法而不是代码感兴趣,因为我现在是一个大女孩,所以我可以自己处理。
algorithm - 旅行推销员的一个特例(他周末休息)
假设推销员不得不回家过周末。并假设在每个城市花费的时间不是恒定的。有没有人知道为解决这个版本的问题所做的任何特定工作?
我的意思是每个城市都会有一个附加成本,说明他需要在那个城市停留多长时间(低至 1 小时,高至 4 天)当然每个城市都有一个位置,因此距离每个点和可以计算到每个点。推销员将多次出差访问所有城市。每趟旅程为期 5 天(周一开始,周五结束)。因此,目标是设计旅行,以便他可以在尽可能短的时间内访问所有城市(除了他将在每周结束时返回的家乡)。
heuristics - 前瞻性规划启发式 - hmax、hadd、hff
我正在研究前瞻性规划启发式 hmax、hadd 和 hff,我在网上找到了一些资源,但我真的不明白它们是如何工作的。
这里是我到目前为止找到的资源:
http://icaps09.uom.gr/tutorials/tut1.pdf(2009
年 Emil Keyder 和 Blai Bonet 编写的关于“规划启发式”的 ICAPS(国际规划和调度会议)教程,其中解释了 hmax、hadd、hff 和h+。)
http://gki.informatik.uni-freiburg.de/papers/betz-helmert-icaps2009ws.pdf(Betz
和 Helmert 的科学论文,发表在 2009 年德国人工智能会议上,标题为“在理论和实践”,这与其他三个密切相关。)
https://cw.felk.cvut.cz/wiki/_media/courses/a4m36pah/07_relaxation.pdf
(另一个教程(来源不明),也是关于启发式hmax、hadd、hff。)
你能用更简单的方式解释它们是如何工作的吗?谢谢
search - 处理 STRIPS 规划中的循环动作
如何修改 STRIPS 以避免进入循环或重复操作?假设我们有 A - B - C - D - E 作为区域(遍历问题),它们都是双向的。初始状态是我们处于 At(A),目标是我们需要处于 At(E)。结果可能是
Travel(C, B) - Travel(B, C) - Travel(C, D) - Travel(D, E)
.
简而言之,它走 A - B - C - D - C - B - C - D - E。在中间,它来回走动。我需要一个关于如何解决这个问题的想法,以及你是否可以提供一个更好的伪代码。谢谢!
artificial-intelligence - PDDL Graphplan can't find plan
I've written a domain and a test problem in PDDL, but apparently the graphplan implementation can't find a plan. Here's the domain:
and here's the problem:
For this particular problem the set of states for the solution should be:
but, as I've said, the graphplan implementation that I'm using (graphplan) can't find any plan.