文章目錄
- 一、最終分配算法
- 1.1 平衡的情況
- 1.2 不平衡的情況
- 1.3 TDM 約束
一、最終分配算法
??上一步合法化后,group 的 TDM 情況大致分為兩類,一類是平衡的,最大的一些 group 的 TDM 比較接近。另外一種情況就是不平衡的,最大的 group遠超其他的 group【這種情況是由于該 group 的邊遠超其他網組】。對于,這兩類情況,最終分配有不同的處理方式。
1.1 平衡的情況
??對于 e 來說,經過 e 的網絡都會分配一個 TDM ,而 TDM 的倒數和要小于等于 1 【即 1≤1Te,n1+1Te,n2+?1Te,nm1 \le \frac{1}{T_{e,n1}}+ \frac{1}{T_{e,n2}} + \cdots \frac{1}{T_{e,nm}}1≤Te,n1?1?+Te,n2?1?+?Te,nm?1? 】。所以我們可以嘗試從 TDM 的倒數方面入手,可以將 TDM 的倒數可以看成我們為經過 e 的網絡分配資源 r ,資源總和要小于等于 0 。
??經過前面的算法,會剩余一些資源,我們這步要做的就是利用這些剩余資源。對于平衡的情況,那么我們就將資源根據比例分配給每個邊【肯定不能平均分配,對于 TDM 大的邊,一些資源就可以降低比較大的 TDM ,所以 TDM 越大,分配的資源就要越多】。所以我們可以得到公式:
r′=r+R(e)?p\begin{equation} r'=r+R(e)\cdot p \end{equation} r′=r+R(e)?p??
??其中 r 表示該邊分配的資源,其倒數就是 TDM ;R(e) 表示 e 的剩余資源 ;p 表示該邊分配資源的比例,考慮到 TDM 越大,則應該要分配越多的資源,所以比例我們可以這樣設計,我們先計算經過 e 的網絡的 TDM 總和【參與計算的是 Te,nT_{e,n}Te,n?】,然后根據其 TDM 在總和的比例來分配。所以我們得到下面公式:
1Te,n′=1Te,n+(1?∑n∈Ne1Te,n)Te,nTe\begin{equation} \frac{1}{T'_{e,n}}=\frac{1}{T_{e,n}}+(1-\sum\limits_{n\in N_e}\frac{1}{T_{e,n}})\frac{T_{e,n}}{T_e} \end{equation} Te,n′?1?=Te,n?1?+(1?n∈Ne?∑?Te,n?1?)Te?Te,n????
??右邊通分得:
1Te,n′=Te+(1?∑n∈Ne1Te,n)Te,n2Te,nTe\frac{1}{T'_{e,n}}=\frac{T_e+(1-\sum\limits_{n\in N_e}\frac{1}{T_{e,n}})T^2_{e,n}}{T_{e,n}T_e}Te,n′?1?=Te,n?Te?Te?+(1?n∈Ne?∑?Te,n?1?)Te,n2??
??兩邊同時倒數得:【就是公式 16 】
Te,n′=Te,nTeTe+(1?∑n∈Ne1Te,n)Te,n2T'_{e,n}=\frac{T_{e,n}T_e}{T_e+(1-\sum\limits_{n\in N_e}\frac{1}{T_{e,n}})T^2_{e,n}}Te,n′?=Te?+(1?n∈Ne?∑?Te,n?1?)Te,n2?Te,n?Te??
1.2 不平衡的情況
??對于不平衡的情況【不平衡的情況一定是存在一些網組的邊很多,而在 TDM 合法化后,每條邊都有概率加 1 ,所以整體就變得很大】
??在滿足剩余資源 >=0 的情況下,我們則先將最大 group 的每條邊的 TDM 都 - 2 ,同時記得更新剩余資源。
??在上一步,我們的剩余資源已經被消耗的比較多了,所以接下來就要考慮將剩下的剩余資源分配給哪些邊,對于 TDM 比較大的邊,分配給一點資源就可以降低比較多的 TDM 。例如:TDM 為 10 和 100 的兩條邊,分配給 0.1 的資源:
- 對于 TDM 為 10 的邊, TDM 可以從 10 降到 5 ,只減少了 5 。
【原本該邊占有資源為 110\frac{1}{10}101?,在分配 0.1 的資源就是 110+110=15\frac{1}{10}+\frac{1}{10}=\frac{1}{5}101?+101?=51?,TDM 為 5 】 - 對于 TDM 為 100 的邊,則其 TDM 可以從 100 降到 10,減少了 90。
【原本該邊的資源為 1100\frac{1}{100}1001?,分配給 0.1 的資源后就是 1100+110=11100\frac{1}{100}+\frac{1}{10}=\frac{11}{100}1001?+101?=10011?,TDM 為 10011≈9.8\frac{100}{11} ≈ 9.811100?≈9.8 ,合法化后為 10 】
??所以,我們優先考慮降資源分配給 TDM 較大的邊,如何考慮這條邊是否要分配資源 ,我們則按照這條邊的 TDM 是否大于穿過這條邊的 net 數決定。【只是選取一個閾值,因為對于不同的 e 來說,他們內部的資源分配情況不一樣,比如有的 TDM 為 2,4,4 。有的 TDM 為 10 個 10 。所以不同的 e 必須要選取不同的閾值,而穿過 e 的網絡數就比較合適】
??對于 e 來說,有很多條邊,我們先統計需要分配資源的邊的 TDM 和 sum ,然后根據該邊在 sum 的占比分配資源,就像公式 (2) 那樣,只不過我們將資源分配給部分邊,所以占比的分母 TeT_eTe? 就要修改為前面統計的部分邊的 TDM 和。
??例如:邊 e 存在 TDM :2 ,10,10,10。根據該算法,網絡數是 4 ,剩余資源為 1?12?110?110?110=2101-\frac12-\frac{1}{10}-\frac{1}{10}-\frac{1}{10}=\frac{2}{10}1?21??101??101??101?=102?。
- TDM 為 2 的邊不分配資源,因為他的 TDM 小于網絡數 4 。
- 所以我們將這 210\frac{2}{10}102? 的資源分配給 TDM 為 10 的三條邊。每條邊占比為 1030\frac{10}{30}3010?,所以每條邊的資源都是 110+2101030=16\frac{1}{10}+\frac{2}{10}\frac{10}{30}=\frac{1}{6}101?+102?3010?=61? ,即每條邊的 TDM 都變為 6
1.3 TDM 約束
??對于 TDM 約束,肯定是滿足的,我們只是將剩余資源再分配而已,無論怎么分配,資源總量肯定小于等于 1 。