簡體   English   中英

指定資源分配算法?

[英]Specifying Resource Allocation algorithm?

有人可以幫助我解決或指定這是什么類型的問題:

我有一組資源和許多用戶,並且對於每個用戶,都有特定的資源子集,可以從中選擇一個資源進行分配。 無法將兩個不同的用戶分配給同一資源。我需要以最大化分配的方式為用戶分配資源。 例如:

R = {r1,r2,r3,r4}資源集的%

U = {u1,u2,u3,u4}用戶組數

u1可以從以下資源中選擇一個資源:{r1,r2,r3}

u2可以從以下資源中選擇一個資源:{r1,r2}

u3可以從以下資源中選擇一個資源:{r1,r4}

u4可以從以下資源中選擇一種資源:{r2}

在這種情況下,我應該分配

r3-> u1,r1-> u2,r4-> u3,r2-> u4。

如果對此分配不同,則u4將沒有資源可分配。

這僅是為了解釋問題,我需要為200個用戶和100個資源解決此問題。 我可以就使用哪種算法或如何解決這個問題尋求您的建議嗎?

我編寫了一個簡單的匯編器,該匯編器將變量分配給寄存器。 我發現最有效的方法是先進行最困難的分配,然后再進行下一個最困難的分配。

因此,對於您的情況,您有一個需要分配的用戶列表。 由於每個用戶都有不同的分配規則,因此您需要為每個可用資源創建一個計數。

然后執行以下操作:

  1. 使用特定規則,計算可用資源
  2. 選擇最小的用戶
  3. 如果是平局,隨機選擇一個
  4. 為所選用戶分配資源
  5. 重復

通過這種方式,您將優先分配那些最難分配的用戶。 但是鑒於用戶和資源,可能沒有解決方案,因此您可能需要重試幾次。 如果在N次嘗試之后,找不到解決方案中止。

我經常使用LP / MIP求解器解決這類分配問題。 大小不是太大,因此幾乎所有求解器都可以使用,並且有許多隨時可用。 看起來有些矯kill過正,但以我的經驗來看,它提供了一些有用的靈活性(例如,修復某些任務,允許附加的臨時約束)。

您的問題可以表述為:

在此處輸入圖片說明

我解決了這個問題,因為它只是一個LP的RMIP(對於這種類型的問題,x變量自動為整數)。

針對您的問題,讓我嘗試解釋這些方程式。

首先,我們需要注意變量x(u,r)僅假定值為0或1。這是線性分配問題的一個屬性。 原因並不完全清楚,但是一本有關線性編程的好書可以告訴您更多信息。

第一個等式assign1說:我們可以為每個用戶分配最多一個資源。 例如,對於用戶u1,我們有: x(u1,r1)+ x(u1,r2)+ x(u1,r3)<= 1 此等式禁止向用戶分配兩個或更多資源。 如果資源不足(例如,如果我們的數據集包含2個用戶和1個資源),我們可以允許未分配的用戶。 由於無法將用戶分配給所有資源,因此我們不對所有r求和,而僅對允許的組合求和。

第二個等式assign2說:我們可以將每個資源最多分配給一個用戶。 例如,對於資源r1,我們具有: x(u1,r1)+ x(u2,r1)+ x(u3,r1)<= 1 此等式禁止將資源分配給兩個或更多用戶。 我們還需要這一資源,否則可以將多個不同的用戶分配給同一資源。 在我們缺少用戶的情況下(例如,對於我們有2個資源而只有1個用戶的情況),我們允許使用未分配的資源。 由於無法將資源分配給任何用戶,因此我們不對所有u求和,而僅對允許的組合求和。

最后, 目標計算進行了多少次有效分配。 這是我們要最大化的價值。 訣竅還是再次匯總允許的組合,以防止非法分配。

該模型與此處描述的LP模型略有不同。 有關分配問題的更多信息可以在本書中找到。

對於您的少量數據集,以下是輸入數據和結果: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM