假设我有一个实体,有3个属性:A1、A2、A3这样的:
- A1可以仅有的价值观:1,2,3
- A2只能有值: 10, 20, 30, 40, 50
- A3只能有值:100号编、200号编
和一些规则,例如:
R1: (A1 in (1, 2)) AND (A2 in (20, 40, 50)) AND (A3 IN (100))
R2: (A1 in (1, 3)) AND (A2 in (10, 30)) AND (A3 in (200))
R3: (A1 in (1, 2)) AND (A2 in (10)) AND (A3 in (100))
然后有一个判断: R = R1 or R2 or R3
我想尽量减少。 事情是, A1=1
涵盖了所有可能的变化 A2
和 A3
所以我们可以把它带入一个单独的条款: R = (A1=1) or (the rest)
我已经试过了布尔最小化的方法通过声明变量 a=(A1=1), b=(A1=2), ..., k=(A3=200)
然而它似乎不能工作,因为:
- 布尔优化是不知道的所有价值观的一个属性
- 布尔变量不是独立的 当试图解决这些问题,表达方式是变得太复杂和不便利的交通,美,不是咖啡是不是能够最大限度地减少它的所需的方式。
我也想存储每个到每映射,并在情况下,他们中的一个有价值的另外一个,使用它作为一个聚合锚,然后将其删除,并重复,但它需要永恒的和相当多的RAM。
也许我们可以代表属性的价值观作为设置和地址,从理论的观点。
你有没有遇到一个问题,这个? 你知道还有更好的方法来解决它吗? (启发式被确定为良好)