Tag: fsm

JBoss / Java的状态机框架?

我们正在开发一个涉及许多不同测试的应用程序,其中每个测试都会引导用户执行许多步骤。 我们正在考虑使用状态机框架来捕获代码中的状态/转换。 我们也在考虑使用规则引擎来补充规则。 任何人都有使用JBoss和/或Java的任何状态机框架的经验吗? 提前致谢。 -nguyen

用Java设计高性能状态机

我正在开始编写Java库来实现高性能的有限状态机。 我知道那里有很多库,但是我想从头开始编写自己的库,因为几乎所有的库都构建了自动机,这些自动机被优化为一次只能处理一个。 我想知道SO社区中涉及状态机设计的人员在实现像这样的高性能库时最重要/最好的设计原则是什么。 注意事项 生成的自动机通常不是很大的。 (~100-500州)。 实现应该能够扩展 。 实现应该能够实现快速转换 (最小化,确定等)。 希望实施DFA,NFA,GNFA,PDA和可能的Tree Automata。 希望在可能的情况下在单一界面下。 应该在内存使用和性能之间取得良好的平衡。 目前关于设计的当前问题是: 应该定义State , Symbol和Transition类吗? 或者应该使用“隐藏的”内部结构。 就个人而言,我觉得使用类本会浪费大量内存,因为相同的信息可以以更加浓缩的forms存储。 但是,这是否可以实现更快的转换? 它是否有任何其他优点/缺点? 在内部存储数据的最佳方法是什么? 使用像HashMap和HashSet这样的数据结构可以实现分摊的常量时间查找,但是存在涉及开销的元素。 这是最好的方法吗? 将转换信息存储为原始(或非)数组似乎浪费了相当多的内存。 特别是当库需要一次处理很多自动机时。 不同数据结构的优缺点是什么? 我很感激任何意见。 谢谢!