給定一組其是一些已知的值相結合,得到一些值,如下所示(組,類型,屬性)的邏輯交集規則的基團:重構多個交叉點到交叉工會
group1 AND type1 AND property1 = value1
group1 AND type1 AND property2 = value2
group1 AND type1 AND property3 = value3
group1 AND type2 AND property1 = value1
group1 AND type2 AND property4 = value1
group2 AND type1 AND property2 = value2
這以下成立:
- 組/類型/屬性的集合是有限的和已知的
- 在唯一給定的規則按組/類型/屬性的組合
- 許多規則可以引用單個值
如何可能我最好的辦法查找關於「摺疊」這些規則轉換成其中相同組的多個值被組合(見下文)的格式,同時保持相同的邏輯解釋的最佳解決方案原始查詢?
(group1) AND (type1 OR type2) AND (property1) = value1
(group1 OR group2) AND (type1) AND (property2) = value2
(group1) AND (type1) AND (property3) = value3
(group1) AND (type2) AND (property4) = value1
目的:的含有相同的邏輯信息作爲原始查找規則數量最少。
一種方法可能是採取原始查找「鍵」,按第一個值分組,然後按兩個鍵進行分組,然後對每個鍵的組合重複其餘鍵的不同實例。結果朝着正確的方向發展,但不能保證在多步驟方法中達到最優。
希望對更好的方法有任何想法,或者如果這實際上是一個普遍問題,則指向閱讀。
如有需要,歡迎提供任何澄清。
*爲笨重的標題道歉 - 希望描述的一般問題
編輯:我認爲這個問題(沒有具體的答案)表達的問題,因爲找到Union of all intersecting sets。
編輯2:我應該說,目標表單實際上是一個要求,而不是來自@timrau的邏輯最優解決方案。表單爲(groups) AND (types) AND (properties) => value
,其中組/類型/屬性僅用OR表示。
你在說什麼語言?例如,你是說「group1,type1和property1都等於value1」嗎? – jimmyfever
所以你試圖表達一個交集的聯合作爲(聯合的交集)的聯合s – Eric
@jimmyfever在英文中,我會說一個記錄意味着「定義的組,類型和屬性都屬於這個值」。沒有特定的語言,處理一個*巨大*配置來源,我想表達不同。爲了實現我更喜歡C#或類似的,但我是開放的頭腦:) – Kyle