Бинарная диаграмма решений
В Java у меня есть набор выражений, таких как cond1 AND (cond2 ИЛИ cond3) И ( cond 4 ИЛИ cond5). Я хотел бы преобразовать его в дерево, а затем оценить окончательный логический ответ. Я пытался много искать вокруг Java BDD, но не смог ничего найти. Любое предложение с примером кода?
3 ответа
5-секундный поиск в Google дал несколько разумных результатов:
- JavaBDD
- Библиотеки диаграмм решений Java
- Какая библиотека двоичных диаграмм решений лучше всего подходит для Java?
Разве это не то, что вы ищете?
Он имеет в виду бинарные диаграммы решений.
Я возился с 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: