greedyalgorithm
TRANSCRIPT
![Page 1: GreedyAlgorithm](https://reader038.vdocuments.pub/reader038/viewer/2022100802/587a53a41a28ab520b8b4e91/html5/thumbnails/1.jpg)
%find the largest edge weight e = csvread('loops.csv'); n = length(e); TT = 50; %initialize variables best = 0; % largest edgeweight best_v = zeros(1,TT); % vertex history best_e = zeros(2,TT); % edge history
nv = max(max([e(:,1), e(:,2)])); V = zeros(1,nv);
for i = 1:n A = e(i,1); B = e(i,2); V(A) = V(A)+1; V(B) = V(B)+1; end
valence = max(V); V = zeros(1,nv); v = zeros(nv,valence);
for i = 1:n A = e(i,1); B = e(i,2); V(A) = V(A)+1; V(B) = V(B)+1; v(A,V(A)) = i; v(B,V(B)) = i; end
for i = 1:n if best < abs(e(i,3)) best = abs(e(i,3)); if e(i,3) > 0 best_v(1) = e(i,1); best_v(2) = e(i,2); best_e(1,1) = i; best_e(2,1) = 1; else best_v(1) = e(i,2); best_v(2) = e(i,1); best_e(1,1) = i; best_e(2,1) = -1; end end p(1,1) = best_v(1); p(2,1) = best_v(2); end
for q = 2:TT best = 0; for i = v(best_v(q),1:valence) if i ~= 0 if e(i,1) == best_v(q)
![Page 2: GreedyAlgorithm](https://reader038.vdocuments.pub/reader038/viewer/2022100802/587a53a41a28ab520b8b4e91/html5/thumbnails/2.jpg)
A = 1; B = e(i,2); W = e(i,3); else A = -1; B = e(i,1); W = -e(i,3); end
for ii = 1:q if B == best_v(ii) W = W*(.96+.01*(q-ii)); break end end
if W > best best = W; best_v(q+1) = B; best_e(1,q) = i; best_e(2,q) = A; end end end if any(best_v(q+1) == best_v(1:q)) break end end
for ii = 1:q if best_v(q+1) == best_v(ii) link = ii; break end end
loop = best_v(link:q);
nn = n; for ii = 1:(q+1-link) for edge = v(loop(ii),1:valence) if edge ~= 0 e(edge,:) = 0; nn = nn - 1; end end end
ee = e; e = zeros(nn,3); row = 1; for ii = 1:n if ee(ii,1) ~= 0 e(row,:) = ee(ii,:); row = row + 1; end
![Page 3: GreedyAlgorithm](https://reader038.vdocuments.pub/reader038/viewer/2022100802/587a53a41a28ab520b8b4e91/html5/thumbnails/3.jpg)
end