最终分配算法【论文材料】
文章目录
- 一、最终分配算法
- 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,n11+Te,n21+⋯Te,nm1 】。所以我们可以尝试从 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,n1+(1−n∈Ne∑Te,n1)TeTe,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,nTeTe+(1−n∈Ne∑Te,n1)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,n1)Te,n2Te,nTe
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+1023010=61 ,即每条边的 TDM 都变为 6
1.3 TDM 约束
对于 TDM 约束,肯定是满足的,我们只是将剩余资源再分配而已,无论怎么分配,资源总量肯定小于等于 1 。