# What is the name of this graph algorithm?

I need to apply the following algorithm in one of my projects. I know what it does algorithm-wise, but I can't seem to find an application for this. Is there a name for this algorithm?

Pseudocode:

``````input: G = (V, E): planar graph (Vertices, Edges)
output: W: a subset of V

function someFunc(G)
if V.length == 0 then
return []; // array
else
v = some vertex of V;
N = []; // array

// for every edge
for (a, b) in E or (b, a) in E) do
// if the edge connects to the vertex,
// add the other vertex end to the N-array
if a == v then
N.push(b);
end
end

// \-notation means: left hand set minus the values in the right hand set (set-difference)
// e.g. [1, 2, 3] \ [2, 3, 4] = [1]
W1 = [v].union(someFunc(inducedSubgraph(V \ [v])));
W2 = N.union(someFunc(inducedSubgraph(V \ [v] \ N)));

return W1.length < W2.length ? W1 : W2;
end
end function
``````

The inducedSubgraph function is an external function which removes the given vertices (+ adjacent edges) from the graph.