2010-10-05 47 views
1

我有一張數據表,我想提取特定的記錄。記錄以各種各樣的,隨機的方式表示(如何不重要),但我希望能夠使用11個特定術語來識別它們。從本質上講,我被賦予了很多針對非索引字段的查詢,並且必須使用特定的索引字段來重寫它們 - 除了感謝Enterprisey System,它不那麼簡單:數據必須以某種方式打包避免直接觸碰SQL。什麼算法可以建立最佳的術語「組」?

這可能是更容易得到2維爲例,雖然這個問題本身使用11可能會改變:

123 
+---+ 
A|X O| 
B| X | 
C|X O| 
+---+ 

如果我在上面的格子想組中的所有X的,我可以說:A1和B2和C1。更好的是(A,C)1和B2。更好的是(A,B,C)(1,2) - 可以包含或排除這個問題的空白空間,它們無關緊要。重要的是保持組的數量,獲得所有的X並避免所有的操作系​​統。

爲了給大小提供一個提示,實際的問題通常會處理100到5000個「好」記錄。也沒有必要有理想答案 - 一個相當好的答案就足夠了。

回答

2

聽起來很像Karnaugh maps,X = true,0 = false,空白=「不關心」。

+0

有相似之處,但我不確定它是否匹配得足夠好以便可用 - 每個潛在維度都有數十個值。如果可以將它縮減爲卡諾圖,那將是一個巨大的 - 除非我錯過了一些東西。 – Trevel 2010-10-06 03:37:06

+0

維數是一個方面,但如果答案集只來自(X,O,不關心),那麼K-Maps是一種已知的方法。當然,如果你的答案集較大...... – 2010-10-06 05:22:31

+0

我的問題是,實際的術語不分解爲布爾值。我可以將答案設置爲true/false/null,但我怎樣才能將Month分解爲灰色代碼? – Trevel 2010-10-06 16:26:51

相關問題