There are six committees of a state legislature, Finance, Environment, Health, Transportation, Education, and Housing. Suppose that there are 10 legislators who need to be assigned to committees, each to one committee. The following matrix has i, j entry equal to 1 iff the i^{th} legislator would like to serve on the j^{th} committee.

Finance | Environment | Health | Transportation | Education | Housing | |
---|---|---|---|---|---|---|

Allen | 1 | 1 | 1 | 0 | 0 | 0 |

Barnes | 1 | 1 | 0 | 1 | 1 | 0 |

Cash | 1 | 1 | 1 | 0 | 0 | 0 |

Dunn | 1 | 0 | 0 | 1 | 1 | 1 |

Ecker | 0 | 1 | 1 | 0 | 0 | 0 |

Frank | 1 | 1 | 0 | 0 | 0 | 0 |

Graham | 1 | 1 | 1 | 0 | 0 | 0 |

Hall | 1 | 0 | 0 | 0 | 0 | 0 |

Inman | 1 | 1 | 1 | 0 | 0 | 0 |

Johnson | 1 | 1 | 0 | 0 | 0 | 0 |

Suppose that we want to choose exactly one new member for each committee, choosing only a legislator who would like to serve. Can we do so? (Not every legislator needs to be assigned to a committee and no legislator can be assigned to more than one committee.)

**Solution**:

*Induced subgraphs*

If H is a subgraph of G and u and w are vertices of H, then by the definition of a subgraph, u and w are also vertices of G. However, if u and w are adjacent in G (i.e., there is an edge of G joining them), the definition of subgraph does not require that the edge joining them in G is also an edge of H. If the subgraph H has the property that whenever two of its vertices are joined by an edge in G, this edge is also in H, then we say that H is an **induced subgraph**. Here is an example of two subgraphs of G, defined on the same set of vertices where one is an induced subgraph and the other isn't.

*Some particular types of subgraphs:*

- Cliques
- A
**clique**is a set of*vertices*of a graph, each pair of which is joined by an edge and no set containing this set has this property. In a simple graph, the subgraph induced by a clique is a complete graph. - Neighborhoods
- Any pair of adjacent vertices in a graph are called
**neighbors**. The**neighborhood**of a vertex v, denoted N(v), is the subgraph induced by v and all of its neighbors. This is sometimes referred to as the*closed*neighborhood of v.

- Components
- A
**component**of a graph is a*maximal*connected subgraph. A connected graph has only one component. These are sometimes referred to as connected components. Here is a graph with three components. - Spanning Trees
- A subgraph which has the same set of vertices as the graph which contains it, is said to
**span**the original graph. A spanning subgraph which is a tree is called a**spanning tree**of the graph. A graph which contains no cycles is called**acyclic**. Each component of an acyclic graph is a tree, so we call acyclic graphs**forests**. A spanning subgraph which is a forest is called a**spanning forest**, and the portion of the spanning forest in each component of the graph is a spanning tree of that component.

- When deleting a
from a graph, you**vertex****MUST**also delete all edges adjacent to that vertex. - When deleting an
from a graph, you do**edge****NOT**delete the endpoints of that edge.

An **edge-cut** is a set of edges whose removal produces a subgraph with more components than the original graph. A **cut-edge** (or bridge) is an edge-cut consisting of a single edge.

*Adding a vertex or an edge* is as simple as it sounds, but note that adding a vertex is not, in general, the opposite of removing a vertex ... when you add a vertex to a graph, you do not add any edges.

If a new vertex v is joined to each of the pre-existing vertices of a graph G, then the resulting graph is called the **join of G and v** (or the suspension of G from v), and is denoted by G + v.

In a simple graph G we define the **edge complement** of G, denoted G^{c}, as the graph on the same vertex set, such that two vertices are adjacent in G^{c} if and only if they are not adjacent in G.

If H is a subgraph of G, the **relative complement** G - H is the graph obtained by deleting all the edges of H from G.

**Def**: Isomorphic graphs

*Examples*: Q_{3} and CL_{4} are isomorphic. K_{3,3} and ML_{3} are isomorphic.

Isomorphism is an equivalence relation and an equivalence class is called an **isomorphism type**.

An isomorphism from a graph to itself is called a **graph automorphism**.

**The Graph Reconstruction Problem**

Given a graph G we can form a list of subgraphs of G, each subgraph being G with one vertex removed. This list is called the **vertex-deletion subgraph list of G**. The *graph reconstruction problem* is to decide whether two non-isomorphic graphs with three or more vertices can have the same vertex-deletion subgraph list. It is conjectured that they can not, and the conjecture has only been verified for graphs with fewer than 10 vertices.

**The Graph Isomorphism Problem**

The *graph isomorphism problem* is concerned with determining when two graphs are
isomorphic. This is a difficult problem, and in the general case there is no known efficient
algorithm for doing it.

It is often easy to show that two graphs are not isomorphic. For instance, if they have different numbers of vertices or edges, or if the degrees of the vertices do not match up. But showing that they are isomorphic requires that an isomorphism can actually be produced.

**Problem**: Are these graphs isomorphic?