FindIndependentEdgeSet

FindIndependentEdgeSet[g]

finds an independent edge set of the graph g with a maximum number of edges.

FindIndependentEdgeSet[{vw,}]

uses rules vw to specify the graph g.

Details and Options

  • An independent edge set is also known as a matching.
  • An independent edge set is a set of edges that are never incident to the same vertex.
  • FindIndependentEdgeSet returns a list of edges.
  • FindIndependentEdgeSet works with undirected graphs, directed graphs, weighted graphs, and multigraphs.

Examples

open allclose all

Basic Examples  (1)

Find an independent edge set in a graph:

Show the edge set:

Scope  (6)

FindIndependentEdgeSet works with undirected graphs:

Directed graphs:

Weighted graphs:

Multigraphs:

Use rules to specify the graph:

FindIndependentEdgeSet works with large graphs:

Applications  (3)

A company has a number of different jobs. Each employee is suited for some of these jobs, and each person can perform at most one job at a time:

Maximize the number of jobs that can be performed simultaneously:

Given a set of women, each of whom has a preference for some subset of men, find a maximal matching where only matches that agree with preferences are allowed:

Compute a maximal matching:

An art history department would like to offer six courses. There are eight professors, each of whom is willing to teach certain courses. Find a maximal matching where professors only teach courses they are interested in teaching:

Match preferences to courses:

Properties & Relations  (3)

Test whether a set of edges is an independent edge set using IndependentEdgeSetQ:

Bipartite graphs have independent edge sets and vertex covers of equal length:

For a graph without isolated vertices, the sum of the size of the independent edge set and the size of the edge cover is equal to the number of vertices:

Introduced in 2010
 (8.0)
 |
Updated in 2014
 (10.0)
2015
 (10.3)