Вопрос

Я пытаюсь внедрить некоторые алгоритмы планирования искусственного интеллекта в 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.

Есть идеи ?
Как насчет того, чтобы расширить это на предикатую логику?

Окончательной целью (в идеале) будет создание библиотеки планирования ИИ, которая может быть напрямую подключена к приложению, а не для получения проблемы в виде строк программ полос.

Спасибо

Это было полезно?

Решение

ХОРОШО,

Как прокомментировано выше, я решил проблему, используя структуру с указателем метода и данными. Это наиболее распространенный способ моделирования закрытия в C.

Моя реализация доступна здесь:https://github.com/pmilosev/clumsy

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top