Dual Decomposition for Computational
Optimization of Minimum-Power Shared
Broadcast Tree in Wireless Networks
Di Yuan and Dag Haugland
Supplementary Material
N.B.: When citing this work, cite the original article.
©2012 IEEE. Personal use of this material is permitted. However, permission to
reprint/republish this material for advertising or promotional purposes or for creating new
collective works for resale or redistribution to servers or lists, or to reuse any copyrighted
component of this work in other works must be obtained from the IEEE.
Di Yuan and Dag Haugland, Dual Decomposition for Computational Optimization of
Minimum-Power Shared Broadcast Tree in Wireless Networks, 2012, IEEE Transactions on
Mobile Computing, (11), 12, 2008-2019.
http://dx.doi.org/10.1109/TMC.2011.231
Postprint available at: Linköping University Electronic Press
Appendix: Computing the best 1-edge exchange
Algorithm 11-edge exchange(T )
Require: A spanning tree T
Ensure: Returns leaving and entering edges (k∗, l∗) and (m∗, n∗) and the new power P∗ in the best
1-edge exchange. If no improving move exists, dummy-edges and the current power are returned. p(i, s) ← maxj{pij : (i, j) ∈ Ts} ∀i, s ∈ V
(k∗, l∗, m∗, n∗, P∗) ← 0, 0, 0, 0,P
s∈V
P
i∈V p(i, s) // No improving move is found
// Try all possible edge removals: for all(k, l) ∈ T do
p′(i, s) ← p(i, s) ∀i, s ∈ V
for all s∈ Tkdo p′ (k, s) ← maxj{pkj : (k, j) ∈ Tks} for all s∈ Tldo p′(l, s) ← max j{plj : (l, j) ∈ Tls}
// (i) Power needed for internal forwarding of messages from internal sources: PII ←P i∈Tk P s∈Tkp ′(i, s) +P i∈Tl P s∈Tlp ′(i, s)
// (ii) Power needed for internal forwarding of messages from external sources: for all m∈ Tkdo PmEI ←P i∈Tk|V (Tl)| p ′(i, m) for all n∈ Tldo PnEI ←P i∈Tl|V (Tk)| p ′ (i, n)
// (iii) Power increment needed for external forwarding of messages from internal sources: for U ← Tk, Tldo
for all m∈ U do
Nm ← 0, ¯pm1← 0, ¯pm2← 0 // Correct if |V (U )| = 1
if|V (U )| > 1 then
Find m1 ∈ arg maxi{pmi : (m, i) ∈ U } // Most power-demanding old neighbor
¯
pm1← pm,m1 // The corresponding power ¯
pm2← maxi{pmi: (m, i) ∈ U, i 6= m1} // Second most, if any
Nm← |V (U ) ∩ V (Tm1)| // Counting sources requiring power ¯pm2 for all m∈ Tkdo
for all n∈ Tldo
PIE ← pie(T
k, pmn,p¯m1,p¯m2, Nm) + pie(Tl, pnm,p¯n1,p¯n2, Nn)
// Check quality of the move(k, l, m, n): if PII+ PEI m + PnEI+ PIE < P∗then (k∗ , l∗ , m∗ , n∗ , P∗ ) ← k, l, m, n, PII + PEI m + PnEI+ PIE return (k∗, l∗, m∗, n∗, P∗) 1
Algorithm 2pie(U , pmn, ¯pm1, ¯pm2, Nm)
Require: A tree U , power pmnof the new edge, the two largest power demandsp¯m1andp¯m2of edges
incident to node m, number Nmof sources demanding powerp¯m2at m.
Ensure: Returns power increment necessary for external forwarding of internal messages at node m. PIE ← 0 // No power increment needed for (m, n) so far
if pmn>p¯m2then
PIE ← Nm(pmn− ¯pm2) // Nmsources ask for increment fromp¯m2to pmn
if pmn >p¯m1then
// All but Nmsources in U ask for increment fromp¯m1to pmn
PIE ← PIE+ (|V (U )| − N
m) (pmn− ¯pm1)
return PIE