具有多種資源類型的資源分配方法和裝置
本說明書一個或多個實施例涉及電腦領域,尤其涉及具有多種資源類型的資源分配方法和裝置。
對於具有多種資源類型的資源,如何在不同實體之間進行分配,才能更有利於資源的流轉,促進不同實體之間的互動,是一個比較常見的問題。
例如,一種卡片收集活動,規則是每個用戶可以去收集不同種類的卡片,每參加一次活動,就可以隨機獲得一張,好友之間可以相互換或贈與卡片。希望使得用戶與好友互動起來。
因此,希望能有改進的方案,能夠提供一種具有多種資源類型的資源分配方法,促進不同實體之間的互動。
本說明書一個或多個實施例描述了一種具有多種資源類型的資源分配方法和裝置,能夠促進不同實體之間的互動。
第一方面,提供了一種具有多種資源類型的資源分配方法,方法包括:
獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;
提取所述網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;
根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;
針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合。
在一種可能的實施方式中,所述根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群,包括:
將所述第一聯通子圖中度為1的節點和該節點連接的邊刪除,得到第二聯通子圖;
根據所述第二聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;
所述針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合,包括:
針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合。
進一步地,所述針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合之後,所述方法還包括:
根據所述第二聯通子圖中的各節點分配的資源組合的種類,為所述第一聯通子圖中度為1的節點分配資源組合。
進一步地,所述針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合,包括:
針對所述第二聯通子圖中的每個群,將該群內的各節點按照節點的度由大到小進行排序;
按照排序後的順序,依次為該群內的各節點分配資源組合。
進一步地,所述按照排序後的順序,依次為該群內的各節點分配資源組合,包括:
確定與待分配節點具有關聯關係的各已分配節點;
當所述各已分配節點分配的資源組合的種類數目小於預先確定的不同資源組合的種類數目時,選擇目標資源組合的種類為未分配的資源組合的種類;
為所述待分配節點分配所述目標資源組合。
在一種可能的實施方式中,所述方法還包括:
提取所述網路圖中的第三聯通子圖,所述第三聯通子圖為連通圖,且所述第三聯通子圖包括的節點數小於或等於預先確定的不同資源組合的種類數目;
針對所述第三聯通子圖中的各節點,分配資源組合。
進一步地,所述針對所述第三聯通子圖中的各節點,分配資源組合,包括:
針對所述第三聯通子圖中的各節點,隨機分配不同種類的資源組合。
在一種可能的實施方式中,所述節點代表用戶,所述關聯關係為好友關係,所述資源為權益。
第二方面,提供了一種具有多種資源類型的資源分配裝置,裝置包括:
獲取單元,用於獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;
提取單元,用於提取所述獲取單元獲取的網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;
聚群單元,用於根據所述提取單元提取的第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;
分配單元,用於針對所述聚群單元得到的第一聯通子圖中的每個群,為該群內的節點分配資源組合。
第三方面,提供了一種電腦可讀儲存媒體,其上儲存有電腦程式,當所述電腦程式在電腦中執行時,令電腦執行第一方面的方法。
第四方面,提供了一種計算設備,包括記憶體和處理器,所述記憶體中儲存有可執行碼,所述處理器執行所述可執行碼時,實現第一方面的方法。
通過本說明書實施例提供的方法和裝置,首先獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;接著提取所述網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;然後根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;最後針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合。本說明書實施例中,能夠儘量為具有關聯關係的節點分配不同的資源組合,從而促進不同實體之間的互動。
下面結合圖式,對本說明書提供的方案進行描述。
圖1為本說明書揭露的一個實施例的實施場景示意圖。該實施場景涉及具有多種資源類型的資源分配方法,該方法用於對於具有多種資源類型的資源,在不同實體之間進行分配,提出解決方案,以利於資源的流轉,促進不同實體之間的互動。其中,資源可以為實體資源或虛擬資源,實體可以為個人或單位。
參見圖1所示的實施場景,一種卡片收集活動,規則是每個用戶可以去收集不同種類的卡片,每參加一次活動,就可以隨機獲得一張,好友之間可以相互換或贈與卡片。希望每個用戶盡可能會缺一種卡片,好友之間缺的卡片不同,進而使得用戶與好友互動起來。
本說明書實施例中,假定卡片共有五種類型,分別為,卡片A、卡片B、卡片C、卡片D和卡片E。為了讓用戶盡可能會缺一種卡片,先生成K種禮物包,每種禮物包裡面都會有至少一種卡片缺少或至少一種卡片出現機率很低,例如,禮物包1{卡片A、卡片B、卡片C、卡片D},該禮物包1中缺少卡片E;禮物包2{卡片A、卡片B、卡片C、卡片E},該禮物包2中缺少卡片D。在用戶參加活動時,從分配給該用戶的禮物包中選擇一種卡片,將該卡片分配給該用戶,從而該用戶會有至少一種卡片缺少或較大機率的出現至少一種卡片缺少,例如,為用戶甲分配禮物包1,當用戶甲參加活動時,其得到的卡片只能是禮物包1中的一種卡片,因此用戶甲會缺少卡片E; 為用戶乙分配禮物包2,當用戶乙參加活動時,其得到的卡片只能是禮物包2中的一種卡片,因此用戶乙會缺少卡片D。如果用戶甲和用戶乙互為好友,則二者可以通過交換卡片,從而集齊五種卡片。
本說明書實施例中,為了促進好友之間的互動,希望每個人發的禮物包和他的好友發的盡可能的不同,求一種好的禮物包的分配方案。這個問題抽象出來,一共有N個人,兩兩存在好友關係,目前有K種禮物包要發給這些人,要求是每個人發的禮物包和他的好友發的盡可能的不同,求一種好的禮物包的分配方案。這裡,針對好友關係,建立一個好友圖網路,假設每個節點代表一個人,好友關係代表兩個節點之間的邊。接下來,將採用圖計算的方法來求解這個問題。該方法,能夠實現最大可能的滿足好友之間分配的禮物包盡可能不同,從而促進好友之間的互動。
可以理解的是,上述實施場景僅為本說明書實施例的一種可能的應用場景,並不用於對本說明書實施例實施場景的限定。
圖2示出根據一個實施例的具有多種資源類型的資源分配方法流程圖,該方法可以基於圖1所示的實施場景。如圖2所示,該實施例中具有多種資源類型的資源分配方法包括以下步驟:步驟21,獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;步驟22,提取所述網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;步驟23,根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;步驟24,針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合。下面描述以上各個步驟的具體執行方式。
首先在步驟21,獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接。
在一個示例中,所述節點代表用戶,所述關聯關係為好友關係,所述資源為權益。
圖3為本說明書實施例提供的一種網路圖的結構示意圖,參照圖3,該網路圖包括節點1至節點16,其中,兩個節點之間的邊代表兩個節點具有好友關係,例如,節點2與節點1、節點3和節點10分別具有好友關係,節點2與其他節點均不具有好友關係;節點9只與節點3具有好友關係,與其他節點均不具有好友關係。
接著在步驟22,提取所述網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率。
聯通子圖:一般的,原始的網路圖可以切割成若干個“小圖”,如果其中任意一個“小圖”裡面的任意兩個節點都是可達的,則稱作每一個“小圖”為連通圖,該“小圖”可以稱為網路圖的聯通子圖。例如,圖3中包括聯通子圖31和聯通子圖32,若預先確定的不同資源組合的種類數目為5,則聯通子圖31為第一聯通子圖。
然後在步驟23,根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群。
圖聚群:針對一個網路圖,假設每個節點代表一個用戶,那麼將用戶網路分割成若干個部分,每個部分看作是一個聚群,而每個用戶則歸屬於其中的某個聚群。一般的,希望相關度高的節點盡可能的聚在同一個聚群中,常見的聚群算法有k-means等。
在一個示例中,將所述第一聯通子圖中度為1的節點和該節點連接的邊刪除,得到第二聯通子圖;根據所述第二聯通子圖中的各節點之間的關聯關係,對各節點進行聚群。
度(Degree):一個節點的度是指與該節點相關聯的邊的條數。參照圖3,節點1的度為7,節點9的度為1。
最後在步驟24,針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合。
在一個示例中,針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合。
進一步地,所述針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合之後,根據所述第二聯通子圖中的各節點分配的資源組合的種類,為所述第一聯通子圖中度為1的節點分配資源組合。
進一步地,針對所述第二聯通子圖中的每個群,將該群內的各節點按照節點的度由大到小進行排序;按照排序後的順序,依次為該群內的各節點分配資源組合。
進一步地,確定與待分配節點具有關聯關係的各已分配節點;當所述各已分配節點分配的資源組合的種類數目小於預先確定的不同資源組合的種類數目時,選擇目標資源組合的種類為未分配的資源組合的種類;為所述待分配節點分配所述目標資源組合。參照圖3,若資源組合的種類包括種類1、種類2、種類3、種類4、種類5共五種,若待分配節點為節點9,確定與節點9具有關聯關係的已分配節點為節點3;為節點3分配的資源組合的種類為種類2,已分配節點分配的資源組合的種類數目1小於預先確定的不同資源組合的種類數目5,選擇目標資源組合的種類為未分配的資源組合的種類,例如種類1或種類3或種類4或種類5。
在一個示例中,提取所述網路圖中的第三聯通子圖,所述第三聯通子圖為連通圖,且所述第三聯通子圖包括的節點數小於或等於預先確定的不同資源組合的種類數目;針對所述第三聯通子圖中的各節點,分配資源組合。例如,圖3中包括聯通子圖31和聯通子圖32,若預先確定的不同資源組合的種類數目為5,則聯通子圖32為第三聯通子圖。
進一步地,針對所述第三聯通子圖中的各節點,隨機分配不同種類的資源組合。
通過本說明書實施例提供的方法,首先獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;接著提取所述網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;然後根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;最後針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合。本說明書實施例中,能夠儘量為具有關聯關係的節點分配不同的資源組合,從而促進不同實體之間的互動。
圖4示出根據另一個實施例的具有多種資源類型的資源分配方法流程圖,該方法可以基於圖1所示的實施場景。如圖4所示,該實施例中具有多種資源類型的資源分配方法包括以下步驟:
步驟1,建立好友網路。
提取好友關係資料,將每個人看作是一個節點,存在好友關係的之間建議一條邊。這樣就可以構造成一個好友網路。
步驟2,聯通圖發現。
由於好友網路的資料往往非常大,而且針對本問題也會採取不同的解決策略,因此這裡先進行聯通圖發現。這一步的輸入是網路圖,輸出是每個節點對應的聯通子圖的標號。根據標號,可以計算每個子圖中的節點個數。
步驟3.1&步驟3.2,提取聯通子圖。
這裡按照每個聯通圖的節點個數,進行資料分流,以便後續不同的操作。對於節點數小於K的子圖,劃分在一起;剩餘的,劃分在一起。其中,節點數等於K的子圖可以與節點數小於K的子圖,劃分在一起,注意,前文假設了一共有K種禮物包,每種禮物包裡面都會有至少一種卡片缺少或至少一種卡片出現機率很低。
步驟4.1,子圖內隨機發放禮物包。
對於節點數小於或等於K的聯通子圖,在每一個聯通子圖中的節點,每次隨機取出一種禮物包進行發放(發放過的禮物包在同一個聯通子圖中不可以再次發放),由於總的禮物包的種類為K,因此在一個聯通子圖中,必然每個人收到的禮物包是不同的,也就保證了互缺卡片。
步驟4.2&步驟4.3,提取網路內度為1的點和邊;提取剩餘的點和邊:
這裡將步驟3.2中提取的聯通子圖進行拆分,把度為1的點和邊取出來,剩餘的點和邊構成一個新的網路。如果新網路的節點的禮物包確定了,那麼和他們本來相鄰的度為1的節點的禮物包就很容易確定了。
步驟5,進行聚群,禮物包初分配。
由於原本步驟4.3中產生的網路圖節點個數依舊很大,因此先進行圖聚群,即把一個大圖分割成很多個小圖,常見的算法,比如k-means等;然後,在每個小圖中確定每個節點分配的禮物包。在每個小圖中,按照節點的度進行排序(從大到小),然後依次分配禮物包,每次分配禮物包的時候,盡可能的分配和其周邊節點不同的禮物包。
步驟6,確定度為1節點的禮物包分配。
在前述步驟5完成之後,也即步驟4.3中得到的網路圖的節點都已經分配了禮物包,那麼就可以根據步驟4.2中的度為1的節點的邊連接關係,確定最後度為1的節點的禮物包的分配了。具體的,只要是度為1的節點的禮物包與其相鄰的節點的禮物包不相同即可。
本說明書實施例提供了一種卡片的分發方法,可以使得用戶之間更加的活躍的互換或贈送卡片。
根據另一方面的實施例,還提供一種具有多種資源類型的資源分配裝置,該裝置用於執行本說明書實施例提供的具有多種資源類型的資源分配方法。圖5示出根據一個實施例的具有多種資源類型的資源分配裝置的示意性方塊圖。如圖5所示,該裝置500包括:
獲取單元51,用於獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;
提取單元52,用於提取所述獲取單元51獲取的網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;
聚群單元53,用於根據所述提取單元52提取的第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;
分配單元54,用於針對所述聚群單元53得到的第一聯通子圖中的每個群,為該群內的節點分配資源組合。
可選地,作為一個實施例,所述聚群單元53,具體用於:
將所述第一聯通子圖中度為1的節點和該節點連接的邊刪除,得到第二聯通子圖;
根據所述第二聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;
所述分配單元,具體用於:
針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合。
進一步地,所述分配單元54,還用於在所述針對所述第二聯通子圖中的每個群,為該群內的節點分配資源組合之後,根據所述第二聯通子圖中的各節點分配的資源組合的種類,為所述第一聯通子圖中度為1的節點分配資源組合。
進一步地,所述分配單元54,具體包括:
排序子單元,用於針對所述第二聯通子圖中的每個群,將該群內的各節點按照節點的度由大到小進行排序;
分配子單元,用於按照排序後的順序,依次為該群內的各節點分配資源組合。
進一步地,所述分配子單元,具體用於:
確定與待分配節點具有關聯關係的各已分配節點;
當所述各已分配節點分配的資源組合的種類數目小於預先確定的不同資源組合的種類數目時,選擇目標資源組合的種類為未分配的資源組合的種類;
為所述待分配節點分配所述目標資源組合。
可選地,作為一個實施例,所述提取單元52,還用於提取所述網路圖中的第三聯通子圖,所述第三聯通子圖為連通圖,且所述第三聯通子圖包括的節點數小於或等於預先確定的不同資源組合的種類數目;
所述分配單元54,還用於針對所述第三聯通子圖中的各節點,分配資源組合。
進一步地,所述分配單元54,具體用於針對所述第三聯通子圖中的各節點,隨機分配不同種類的資源組合。
可選地,作為一個實施例,所述節點代表用戶,所述關聯關係為好友關係,所述資源為權益。
通過本說明書實施例提供的裝置,首先獲取單元51獲取網路圖,所述網路圖包括代表多個實體的多個節點,所述多個節點中,具有關聯關係的節點之間通過邊連接;接著提取單元52提取所述網路圖中的第一聯通子圖,所述第一聯通子圖為連通圖,且所述第一聯通子圖包括的節點數大於預先確定的不同資源組合的種類數目;其中,每種資源組合中缺少所述多種資源類型中的至少一種資源類型,或者,每種資源組合中出現所述多種資源類型中的至少一種資源類型的機率小於預設機率;然後聚群單元53根據所述第一聯通子圖中的各節點之間的關聯關係,對各節點進行聚群;最後分配單元54針對所述第一聯通子圖中的每個群,為該群內的節點分配資源組合。本說明書實施例中,能夠儘量為具有關聯關係的節點分配不同的資源組合,從而促進不同實體之間的互動。
根據另一方面的實施例,還提供一種電腦可讀儲存媒體,其上儲存有電腦程式,當所述電腦程式在電腦中執行時,令電腦執行結合圖2或圖4所描述的方法。
根據再一方面的實施例,還提供一種計算設備,包括記憶體和處理器,所述記憶體中儲存有可執行碼,所述處理器執行所述可執行碼時,實現結合圖2或圖4所描述的方法。
本領域技術人員應該可以意識到,在上述一個或多個示例中,本發明所描述的功能可以用硬體、軟體、韌體或它們的任意組合來實現。當使用軟體實現時,可以將這些功能儲存在電腦可讀媒體中或者作為電腦可讀媒體上的一個或多個指令或碼進行傳輸。
以上所述的具體實施方式,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式而已,並不用於限定本發明的保護範圍,凡在本發明的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本發明的保護範圍之內。
21,22,23,24:步驟
31:聯通子圖
32:聯通子圖
1,2,3.1,3.2,4.1,4.2,4.3,5,6:步驟
500:裝置
51:獲取單元
52:提取單元
53:聚群單元
54:分配單元
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖式獲得其它的圖式。
圖1為本說明書揭露的一個實施例的實施場景示意圖;
圖2示出根據一個實施例的具有多種資源類型的資源分配方法流程圖;
圖3為本說明書實施例提供的一種網路圖的結構示意圖;
圖4示出根據另一個實施例的具有多種資源類型的資源分配方法流程圖;
圖5示出根據一個實施例的具有多種資源類型的資源分配裝置的示意性方塊圖。