Approximate vertex cover problem

10 vues (au cours des 30 derniers jours)
Ivan
Ivan le 12 Nov 2013
Modifié(e) : Ivan le 30 Nov 2013
Hello, I have 2 question: I want you resolve Approximate vertex cover problem, therefore
1.Can someone give me function who will choice random edge(2 vertex, ex: u and v) in graph, 2.And then function who will delete all egdes incident on either u and v.
Thank you!

Réponse acceptée

Ben Petschel
Ben Petschel le 15 Nov 2013
Assuming you've got an incidence matrix A with A(u,v) if there is an edge from u to v, then a random edge could be selected with
i = randsample(find(A),1);
[u,v] = ind2sub(size(A),i);
and then delete the edges with
A(u,:) = 0; % edges from u
A(:,u) = 0; % edges to u
A(v,:) = 0;
A(:,v) = 0;
This is probably not the most efficient algorithm but if the number of vertices is large then it should run a lot faster if you make A a sparse array.

Plus de réponses (1)

Ivan
Ivan le 15 Nov 2013
Modifié(e) : Ivan le 30 Nov 2013
Thank you, but [u,v] should be two adjacent vertices, and ind2sub don't do that. ind2sub do right for v, but for u he backs size of edges.

Catégories

En savoir plus sur Graph and Network Algorithms dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by