在人工智能方面,我现在正在阅读规划.但作为人工智能的天真,我无法理解他们坚持"规划和搜索之间的差异".
我有程序编程知识,比如C/C++,我可以根据数据结构进行搜索.
我无法理解他们提供的'人工智能:现代方法 - 斯图尔特罗素'中给出的购买(ISBN0123654789)和拥有(ISBN0123456789)的例子,搜索十位数的ISBN号将需要100亿次操作.
我的问题是如何搜索一本书需要100亿次行动,但计划却没有.
我读过的所有强化学习算法通常都应用于具有固定数量动作的单个代理.是否有任何强化学习算法用于在考虑可变数量的动作的情况下做出决定?例如,如何在玩家控制N名士兵的计算机游戏中应用RL算法,并且每名士兵根据其条件有随机数量的动作?你不能为全球决策者(即"将军")制定固定数量的行动,因为随着士兵的创建和杀戮,可用的行动会不断变化.而且你不能在士兵级别制定固定数量的行动,因为士兵的行动是基于其直接环境的条件.如果士兵看不到对手,那么它可能只能行走,而如果它看到10个对手,那么它有10个新的可能动作,攻击10个对手中的1个.
我正在研究前瞻性规划启发式hmax,hadd和hff,我在网上找到了一些资源,但我真的无法理解它们是如何工作的.
这是迄今为止我找到的资源:
http://icaps09.uom.gr/tutorials/tut1.pdf
(由Emil Keyder和Blai Bonet撰写的2009年ICAPS(国际规划与调度会议)教程,关于"计划启发式",解释了hmax,hadd,hff和H +).
http://gki.informatik.uni-freiburg.de/papers/betz-helmert-icaps2009ws.pdf(Betz
和Helmert撰写的一篇科学论文,发表在德国Converence的AI 2009上,标题为"计划与理论中的h +"练习",这与其他三个密切相关."
https://cw.felk.cvut.cz/wiki/_media/courses/a4m36pah/07_relaxation.pdf
(另一个教程(未知来源),也是关于启发式hmax,hadd,hff.)
你能用更简单的方式解释它们的工作原理吗?谢谢
我试图在C中实现一些AI规划算法,但却陷入了基本概念:)
在跳到主要问题之前,我尝试实现一些支持命题逻辑的小框架:
FORMULA f = PROPOSITION(a + 3 > 0);
FORMULA g = PROPOSITION(is_smaller_than(b, c));
f = AND(NOT(f), g);
Run Code Online (Sandbox Code Playgroud)
现在,问题在于我不想在定义公式时评估像'a + 3> 0'这样的表达式,而是在稍后的某个阶段:
bool res = EVALUATE(f);
Run Code Online (Sandbox Code Playgroud)
我想在这种情况下闭包会很方便,但不幸的是我也喜欢坚持使用C99.
任何的想法 ?
把它扩展到谓词逻辑怎么样?
最终目标(理想情况下)是构建一个AI规划库,它可以直接插入应用程序,而不是像STRIPS程序字符串那样接收问题.
谢谢
从如何在PostgreSql中的预订表中找到第一个空闲时间中选择
create table reservation (during tsrange,
EXCLUDE USING gist (during WITH &&)
);
Run Code Online (Sandbox Code Playgroud)
用于查找从给定日期和时间开始的时间表中的差距(2012-11-17 8:下面的示例)它也发现了星期六,星期日和公众假期.公共假日在表格中定义
create table pyha ( pyha date primary key)
Run Code Online (Sandbox Code Playgroud)
如何排除周末和公众假期?
硬编码空闲时间作为保留查询之类的
with gaps as (
select
upper(during) as start,
lead(lower(during),1,upper(during)) over (ORDER BY during) - upper(during) as gap
from (
select during
from reservation
union all values
('(,2012-11-17 8:)'::tsrange), -- given date and hour from which to find free work time
('[2012-11-17 0:,2012-11-18 24:)'::tsrange), -- exclude saturday
('[2012-11-18 0:,2012-11-19 8:)'::tsrange), -- exclude sunday
('[2012-11-19 18:,2012-11-20 …Run Code Online (Sandbox Code Playgroud) I'm trying to write a CLIPS program which use the Iterative Deepening algorithm to solve a planning problem. For this same reason I would like to keep a low branching factor.
In the following code ?s is the variable which represent the level of the tree; I would like to use a single rule to make different checks. This is what I tried to do:
(defrule EXPAND::action
(declare (salience ?*load*))
(or
(and ?f1_a <- (status ?s transport ?c1&:(> ?c1 0) …Run Code Online (Sandbox Code Playgroud) 我在PDDL中构建了几个域和问题,现在我正在寻找可视化我的域,问题和解决方案的可能性.我的问题如下:
谢谢!
我无法理解 HTN 是什么。我相信我们希望将计划中的所有小行动分解为更高层次的计划。
例如:
“乘坐巴士”是“去巴士”、“买票”、“坐下”等的 HLA。
我错了吗?希望有一个简单的解释。