P-中值模型
是指在一個給定數量和位置的需求集合和一個候選設施位置的集合下,分別為 p 個設施找到合適的位置,並指派每個需求點到一個特定的設施,使之達到在工廠和需求點之間的運輸費用最低。
P-中值模型一般適用於在工廠或者倉庫的選址問題,例如要求在它們和零售商或者顧客之間的費用最少。
數學定義
當然,P-中值模型也可以通過精確的數學語言進行描述,要求准確的表達問題的約束條件、目標以及合理的變量定義。
目標函數:
\[\min \sum_{i \in N} \sum_{j \in M} y_{ij}d_ic_{ij} \]
約束條件:
\[\sum_{j \in M} y_{ij} = 1, \quad i \in N \tag{c-1} \\ \]
\[\sum_{j \in M} x_j = p \tag{c-2} \]
\[y_{ij} \leq x_j, \quad i \in N,j\in M \tag{c-3} \]
\[x_j \in \{0, 1\}, \quad j \in M \]
\[y_{ij} \in \{0, 1\}, \quad i \in N, j \in M \]
其中,
- \(N\):在研究對象中的 n 個客戶,\(N = (1, 2, ..., n)\)
- \(M\):在研究對象中的 m 個擬建設施的候選地點,\(M=(1, 2, ..., m)\)
- \(d_i\):第 \(i\) 個客戶的需求量
- \(c_{ij}\):從地點 \(i\) 到 \(j\) 的單位運輸費用
- \(p\):可以建立的設施總數(\(p<m\))
- \(x_j\):如果在 \(j \in M\) 建立設施,則 \(x_j\) = 1;否則為 0
- \(y_{ij}\):如果客戶在 \(i \in N\),由設施 \(j \in M\) 來提供服務時,則其為 1;否則為 0
理解約束
- 約束 c-1:保證每個客戶(需求點)只有一個設施來提供相應的服務
- 約束 c-2:限制總的設施數目為 \(p\) 個
- 約束 c-3:有效得保證沒有設施的地點不會有客戶對應
問題求解
求解 P-中值模型需要解決兩個方面的問題:
- 選擇合適的設施位置(數學表達式中的變量 \(x\))
- 指派客戶到相應的設施中去(數學表達式中的變量 \(y\))
一旦設施的位置確定之后,再確定每個客戶到不同的設施中,使費用總和 \(C_{ij}\) 最小就十分簡單了。
P-中值模型是 NP-hard 問題,因此其主要有兩大類的算法:
- 精確算法
- 啟發式算法
由於精確算法通常只能求解規模較小的 p-中值問題,下面介紹一種啟發式算法【貪婪取走啟發式算法,Greedy Dropping Heuristic Algorithm】用來求解該問題。基本步驟如下:
- 令當前選中設施點數 \(k=m\),即將所有 \(m\) 個候選位置都選中;
- 將每個客戶指派給 \(k\) 個設施點中距離最近的一個設施點,求出總費用 \(Z\);
- 若 \(k=p\),則輸出 \(k\) 個設施點以及各客戶的指派結果;否則,轉第 4 步;
- 從 \(k\) 個設施候選點中選擇一個取走點,該點要滿足將它取走並將它的客戶指派給其他的最近設施點后總費用增加量最小,從候選集合中刪去剛剛確定的取走點,令 \(k=k-1\),轉第 2 步。
參考文獻:
[1] p-中值模型