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 に答える