完全立方體計算的多路陣列聚集 MultiWay

2021-06-21 03:25:48 字數 555 閱讀 6702

看資料探勘書的時候,遇到該演算法,鬱悶了好幾天終於搞明白了,現在分享一下自己的理解。這裡只解釋一下3-d陣列中2-d陣列的計算,3-d陣列的圖可以參照《資料探勘概念與技術(韓家煒)》中的資料立方體中的圖。

多路陣列聚集演算法,該演算法的思想是(也算是最後的結論):「將最小的平面放在記憶體中,對最大的平面每次只是取並計算一塊」。

該演算法的核心是:「用乙個二維陣列快取乙個2-d立方體的計算結果」。

該3-d立方體包含三個維a,b,c。對於維a,b,c陣列大小分別是40,400,4000。每個維分為4個相等的分割槽,共分為64塊。

假設計算bc方塊中的 b0c0塊,在記憶體中為該塊分配儲存空間,我們按照1-64的順序掃瞄,該塊計算完成之後就可以從記憶體中取出,寫入硬碟。要想計算該塊,我們可以分配乙個二維陣列,則二維陣列大小必須為100*1000,即bc平面的一塊。當我們計算完之後,b0c0,就可以寫入硬碟。當我們計算a0c0,因為我們只有在掃瞄到第13塊時才可以計算,我們不得不快取的資料大小為40*1000(即至少快取前四塊的大小),計算a0b0,時,因為要掃瞄到第49塊,所以我們不得不快取的資料大小為40*400(即需要快取ab整個平面大小)

資料立方體的基本計算

資料立方體計算是資料倉儲實現的一項基本任務。這裡介紹幾種計算方法 1.多路陣列聚集計算法 multiway 計算完全方體 1 把陣列劃分成塊,塊是乙個子立方體,它足夠小可以放入立方體計算時所需的記憶體即可。2 通過訪問立方體單元 即獲取立方體單元的值 來計算聚集。例 乙個空間立方體 我上篇所用的那個...

方體計算的多路陣列聚集方法

步驟 1 將陣列分成塊 chunk,乙個可以裝入記憶體的小子方 2 壓縮的稀疏陣列定址 chunk id,offset 3 通過訪問立方體單元,計算聚集。可以優化訪問單元組的次序,使得每個單元被訪問的次數最小化,從而減少記憶體訪問和磁碟i o的開銷。哪個是多路陣列聚集的最佳遍歷次序?方法 各平面要按...

ACM 奇特的立方體

題目描述 奇特的立方體 任意給出8個整數,將這8個整數分別放在乙個立方體的八個頂點上,要求檢驗每個面上的四個數之和相等這個條件能否被滿足。輸入一次輸入8個整數輸出yes或者no yes表示可能構成滿足條件的立方體 no則表示不能 樣例輸入1 2 3 4 5 6 7 8樣例輸出yes 思路 標記8個頂...