我有一個像 一組對ID中的; (1212; 8977)(123 1765)...從集對創建套最小基數的
我需要那些對分成n組,分離每個個體的大小(對數)。這些集合應該具有最小基數(=每個組中應該儘可能少地具有不同的ID)。 有沒有解決這個問題的現有算法?我不確定在哪裏/如何搜索它。 這是必要的,因爲我目前正在對我的一個項目進行負載平衡,並且由於RAM有限(每個ID連接到一個較大的數據集),每個節點都必須加載儘可能少的ID。
在此先感謝!
編輯: 一些背景: 羣集中的不同節點必須比較由ID標識的數據集。每個比較是一對ID(比較ID1與ID2的數據集)。每個節點都會得到一堆對,以知道要比較哪些ID,並將相應的數據集加載到RAM中。主節點將一大對對分成較小的束並將它們分配給從節點。由於每個節點只能存儲有限數量的數據集,因此這些較小的數據組需要包含儘可能少的不同ID。但節點具有不同數量的RAM,因此具有最小基數的組應具有不同的大小。 比較是對稱的,所以比較(ID1,ID2)與比較(ID2,ID1)相同,所以每一對都是唯一的。需要比較哪些數據集的客戶端會將這些作業作爲一對ID分配給主服務器。
一個例子: 客戶機要數據集(1;2)
,(7;9)
,(9;105)
,(7;105)
,(2;4)
,(4;1)
的比較(通常在這裏應該不多更多的比較,所以百萬通常) 客戶端發送那些對給主,這有兩個註冊的奴隸。現在,主人需要將這堆工作分成兩組,但是每個組中包含更多不同的ID,則需要由從站加載更多數據集(ID對應於特定數據集,請記住?)。
所以理想的主人將創建一組像((1;2), (2;4), (4;1))
(僅包含3點不同的ID,所以從只裝載3集)和((7;9), (9;105), (7; 105))
(再次只是三個ID),而不是: ((1;2), (9;105)...)
和((2;4), (7;105)...)
。在這裏兩個奴隸都需要加載4個ID等等,兩個奴隸都需要加載數據集編號。 2和105. 這需要以某種方式進行優化..
你能提供更多關於你的具體問題的信息嗎?你想要一個算法來擺脫重複的ID,或一個算法,組合類似的ID或其他? –
@JaysonBoubin添加背景信息發佈:) – dvs23
需要比較哪些數據集?那些有相同的ID? –