2
首先是1D情況。給定N個數字的數組,將其切成n個塊,以便將每個元素的平方距離與其塊平均值的總和最小化。例如,如果要求將[0.1,0.3,2,1.2,1.3]分成三部分,最佳解決方案是[[0.1,0.3],[2],[1.2,1.3]]。優化網格聚類
隨着動態編程這可以很容易在O解決了這個(N * N)
現在2D情況。我們得到一個(N,M)矩陣,並且我們想要以n * m塊來剪切它。解決方案應該看起來像一個不規則間隔的網格 - 它是一組n個水平切割和m個垂直切割。
這似乎更棘手。人們可以通過固定水平切割來動態地找到最佳的垂直切割,但這似乎不會導致任何地方。枚舉所有可能的水平切割O(C(M,m))是棘手的。
有沒有辦法在多項式時間做到這一點?
如果你能證明k-means的一個實例可以轉化爲這個問題的一個實例,那麼當然可以。否則,這些小差異會對複雜性產生巨大影響。 – 2013-02-09 04:28:07