In the graph above with weighted edges and nodes (node weights in parenthesis), I have a goal of reducing total edge weight. I can achieve this by simply taking out nodes and thereby removing edges, however, I have a certain minimum total node weight I want to maintain in the graph network.
A simple (greedy) way of reaching that minimum total node weight while reducing edge weight as much as possible is to calculate the ratio of "adjacent edge weight/node weight" for each node and take out the node with the highest ratio, recalculate the ratio and again take out the node with the highest ratio, do this till the minimum total node weight is reached.
In a larger graph, there may exist different combinations of node removals that can achieve the same minimum total node weight. These different combinations would also probably leave different total edge weights after the minimum total node weight is reached. I'm thinking of a way to optimally search for the best combination of node removal that reaches this minimum total node weight with the lowest total edge weight left after the node removals.
A brute force approach may involve me running for loops to find all the possible node removal combinations and then selecting the one that achieves the lowest total edge weight. Is there an algorithm that can optimize this or how would you solve this?
I have zero background in CS, I'm a researcher in a different field that stumbled on this and can see some relevance in my work. Apologies if my explanation is not clear enough. I would appreciate any help with this.
