C中的逻辑编程

时间:2011-09-04 19:28:12

标签: artificial-intelligence theory c99 planning

我正在尝试用C实现一些人工智能规划算法,但却陷入了基本概念:) 在跳到主要问题之前,我尝试实现一些支持命题逻辑的小框架:

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程序字符串那样接收问题。

由于

1 个答案:

答案 0 :(得分:1)

行,

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

我的实施可在此处获得: https://github.com/pmilosev/clumsy