5

我正在尝试在 C 中实现一些 AI 规划算法,但被基本概念卡住了 :)
在跳到主要问题之前,我尝试实现一些支持命题逻辑的小框架:

FORMULA f = PROPOSITION(a + 3 > 0);
FORMULA g = PROPOSITION(is_smaller_than(b, c));
f = AND(NOT(f), g);

现在,问题是我不想在定义公式时评估像 'a + 3 > 0' 这样的表达式,而是在以后的某个阶段:

bool res = EVALUATE(f);

我想在这种情况下闭包会很方便,但不幸的是我也喜欢坚持使用 C99。

任何的想法 ?
将其扩展到谓词逻辑怎么样?

最终目标(理想情况下)是构建一个 AI 规划库,可以直接插入到应用程序中,而不是将问题作为 STRIPS 程序字符串接收。

谢谢

4

1 回答 1

1

好的,

如上所述,我通过使用包含方法指针和数据的结构解决了这个问题。这是在 C 中模拟闭包的最常用方法。

我的实现在这里可用: https ://github.com/pmilosev/clumsy

于 2011-10-02T18:25:07.837 回答