请参阅下面从传感器获取的数据矩阵,只是 INT 数字,没有什么特别的。
A B C D E F G H I J K
1 25 0 25 66 41 47 40 12 69 76 1
2 17 23 73 97 99 39 84 26 0 44 45
3 34 15 55 4 77 2 96 92 22 18 71
4 85 4 71 99 66 42 28 41 27 39 75
5 65 27 28 95 82 56 23 44 97 42 38
…
10 95 13 4 10 50 78 4 52 51 86 20
11 71 12 32 9 2 41 41 23 31 70
12 54 31 68 78 55 19 56 99 67 34 94
13 47 68 79 66 10 23 67 42 16 11 96
14 25 12 88 45 71 87 53 21 96 34 41
横向的 A 到 K 是传感器名称,纵向是通过定时器方式从传感器传来的数据。
现在我想用试错法分析这些数据,我定义了一些概念来解释我想要什么:
o 来源
source 是我得到的所有原始数据
o 条目
条目是所有 A 到 K 传感器的集合,以垂直第一行为例:条目是
25 0 25 66 41 47 40 12 69 76 1
o 规则
规则是一个带有断言值返回的“假设”函数,到目前为止只是“真”或“假”。例如,我假设传感器 A、E 和 F 的值永远不会在一个条目中相同,如果一个条目 A=E=F,它将触发违规,此规则函数将返回 false。
橙:
range 是用于选择垂直条目的函数,例如,前 5 个条目
那么,基本思路是:
o source + range = subsource(s)
o subsource + rules = valiation(s)
最后我想得到一个列表可能看起来像这样:
rangeID ruleID violation
1 1 Y
2 1 N
3 1 Y
1 2 N
2 2 N
3 2 Y
1 3 N
2 3 Y
3 3 Y
但问题是我这里定义的规则和范围,如果你再深入一点,很快就会变得很复杂,它们有太多可能的组合,以“A=E=F”为例,可以定义“B=E=F”, “C=E=F”,“C>F”……
所以很快我就需要一个规则/范围生成器,它可以接受那些“核心参数”,例如“A = E = F”作为输入参数,即使稍后使用正则表达式字符串也是如此。那太复杂刚刚打败了我,别说我可能需要持久化规则唯一ID、数据存储问题、规则自嵌套组合问题……
所以我的问题是:
任何人都知道是否有一些模块/软件适合这种试错计算或我想要的规则定义?
任何人都可以分享我描述的更好的规则/范围设计吗?
感谢您的任何提示。
Rgs,
KC