function [w] = best_const(A) % BEST_CONST Returns the constant edge weight that yields fastest % averaging on a graph. % % For more details see the references: % "Fast linear iterations for distributed averaging" by L. Xiao and S. Boyd % "Convex Optimization of Graph Laplacian Eigenvalues" by S. Boyd % % [w] = BEST_CONST(A) gives a vector of the best constant edge weights % for a graph described by the incidence matrix A (n x m). % Here n is the number of nodes and m is the number of edges in the graph; % each column of A has exactly one +1 and one -1. % % The best constant edge weight is the inverse of the average of % the second smallest and largest eigenvalues of the unweighted Laplacian: % % w = 2/( lambda_2(A*A') + lambda_n(A*A') ) % % Almir Mutapcic 08/29/06 [n,m] = size(A); % max degrees of the nodes Lunw = A*A'; % unweighted Laplacian matrix eigvals = sort(eig(Lunw)); % max degree weigth allocation alpha = 2/(eigvals(2) + eigvals(n)); w = alpha*ones(m,1);