Predpokladajme, že mám účtovná jednotka s 3 atribúty: A1, A2, A3 také, že:
- A1 môže mať len hodnoty: 1, 2, 3
- A2 môže mať len hodnoty: 10, 20, 30, 40, 50
- A3, môžu mať len hodnoty: 100, 200
A určité pravidlá, napríklad:
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))
Potom tam je predikát: R = R1 or R2 or R3
,, ktorú by som rád, aby sa minimalizovalo. Vec je, že A1=1
sa vzťahuje na všetky možné variácie A2
a A3
,, aby sme mohli priviesť ju do samostatnej doložky: R = (A1=1) or (the rest)
Snažil som sa booleovskej minimalizácie metódy vyhlásením, premenné, ako a=(A1=1), b=(A1=2), ..., k=(A3=200)
je však to , nezdá sa, že práca, pretože:
- boolean optimalizáciu si nie je vedomý všetkých hodnôt atribútu A
- booleovské premenné nie sú nezávislé Keď sa snažia riešiť tieto problémy, termín sa stáva príliš zložité a ani QMC, nie Espresso nie je schopný minimalizovať želaným spôsobom.
Tiež som sa snažil obchod každý-na-každý mapovania a v prípade, že jeden z nich má všetky hodnoty druhého, použiť ho ako úhrn kotvy, potom ju odstráňte a opakovať, ale to trvá večnosť a pomerne veľa RAM.
Možno by sme mohli predstavujú hodnoty atribútov, ako nastaviť a riešiť z množiny teória hľadiska.
Už ste niekedy stretávajú problém to? Sú si vedomí lepšie spôsoby, ako to vyriešiť? (heuristiky sú v poriadku, rovnako)