Maximum Weight Independent Set Problem: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 14: Line 14:
The key to finding a [[Algorithms#Dynamic_Programming_Algorithms|dynamic programming algorithm]] is to identify a small set of subproblems whose solution can be computed using the previous subproblems' solutions.  
The key to finding a [[Algorithms#Dynamic_Programming_Algorithms|dynamic programming algorithm]] is to identify a small set of subproblems whose solution can be computed using the previous subproblems' solutions.  


In this case, we start with the observation that for the full n vertex path graph {v<sub>0</sub>, .... v<sub>n-1</sub>}, we have two situations:
In this case, we start with the observation that for the full n vertex path graph G {v<sub>0</sub>, .... v<sub>n-1</sub>}, we have two situations:


1. v<sub>n-1</sub> belongs to the solution. In this case, v<sub>n-2</sub> does not belong to the solution, by the properties of an independent set, and the maximum weight of the independent set for the graph G<sub>n</sub> is MXW<sub>n</sub> = w<sub>n-1</sub> + MXW<sub>n-2</sub>, where MXW<sub>n-2</sub> is the maximum weight independent set for the path graph {v<sub>0</sub>, .... v<sub>n-3</sub>}.
1. v<sub>n-1</sub> belongs to the solution. In this case, v<sub>n-2</sub> does not belong to the solution, by the properties of an independent set, and the maximum weight of the independent set for the graph G is W = w<sub>n-1</sub> + W<sup>''</sub>, where W<sup>''</sub> is the maximum weight independent set for the n-2 vertices path graph {v<sub>0</sub>, .... v<sub>n-3</sub>}.


2. v<sub>n-1</sub> does not belong to the solution, and in this case the solution consists in the maximum weight independent set of the graph {v<sub>0</sub>, .... v<sub>n-2</sub>}, which is MXW<sub>n-1</sub>.
2. v<sub>n-1</sub> does not belong to the solution, and in this case the solution consists in the maximum weight independent set of the graph {v<sub>0</sub>, .... v<sub>n-2</sub>}, annotated as W<sup>'</sup>.


There is no other possibility, so if we compute recursively MXW<sub>n-2</sub> and MXW<sub>n-1</sub> we can decide at this which one is larger.  
There is no other possibility, so if we compute recursively W<sup>'</sup> and W<sup>''</sup> we can decide at this which one is larger.  


This idea might suggest a recursive solution of the algorithm, but solution is inefficient, the running time is exponential.  The inefficiency of the solution comes from the fact that both recurrences compute redundantly almost the same thing.
This idea might suggest a recursive solution of the algorithm, but solution is inefficient, the running time is exponential.  The inefficiency of the solution comes from the fact that both recurrences compute redundantly almost the same thing.

Revision as of 21:58, 27 October 2021

External

Internal

Overview

This article introduces the maximum weight independent set of a path graph and provides a dynamic programming algorithm to solve it.

The Maximum Weight Independent Set Problem

Given a path graph G=(V, E) where V consists in a set of n vertices v0, v1 ... vn-1 that form a path, each of vertices with its own positive weight wi, compute a maximum weight independent set of the graph. An independent set is a set of vertices in which none is adjacent to the other.

A Dynamic Programming Approach

The key to finding a dynamic programming algorithm is to identify a small set of subproblems whose solution can be computed using the previous subproblems' solutions.

In this case, we start with the observation that for the full n vertex path graph G {v0, .... vn-1}, we have two situations:

1. vn-1 belongs to the solution. In this case, vn-2 does not belong to the solution, by the properties of an independent set, and the maximum weight of the independent set for the graph G is W = wn-1 + W, where W is the maximum weight independent set for the n-2 vertices path graph {v0, .... vn-3}.

2. vn-1 does not belong to the solution, and in this case the solution consists in the maximum weight independent set of the graph {v0, .... vn-2}, annotated as W'.

There is no other possibility, so if we compute recursively W' and W we can decide at this which one is larger.

This idea might suggest a recursive solution of the algorithm, but solution is inefficient, the running time is exponential. The inefficiency of the solution comes from the fact that both recurrences compute redundantly almost the same thing.