Бинарная диаграмма решений

В Java у меня есть набор выражений, таких как cond1 AND (cond2 ИЛИ cond3) И ( cond 4 ИЛИ cond5). Я хотел бы преобразовать его в дерево, а затем оценить окончательный логический ответ. Я пытался много искать вокруг Java BDD, но не смог ничего найти. Любое предложение с примером кода?

3 ответа

5-секундный поиск в Google дал несколько разумных результатов:

Разве это не то, что вы ищете?

Он имеет в виду бинарные диаграммы решений.

Я возился с JavaBDD и JBDD / JDD. Оба основаны на BuDDY (библиотека C) - JBDD фактически использует библиотеки DLL C для повышения предельной производительности.

Мне кажется, что JavaBDD более полнофункциональный (например, он поддерживает создание BDD, что мне и нужно). Но для этого также нет учебника, и, хотя документация по классу не так уж и страшна, честно говоря, я не могу понять, как использовать ее для самых базовых логических операций (например, проблемы, которую вы ставите).

JBDD / JDD требует, чтобы вы использовали сборщик мусора вручную, и делает странные вещи, такие как хранение объектов BDD в целых числах Java - явно переходы из C. Но у него есть набор учебных пособий.

If you want to run your own parser, check out JavaCC. Вот хороший учебник, с которого можно начать. A bit older, but still valid:

http://www.javaworld.com/jw-12-2000/jw-1229-cooltools.html

Другие вопросы по тегам