# Circle graph

{{#invoke:Hatnote|hatnote}}

In graph theory, a **circle graph** is the intersection graph of a set of chords of a circle. That is, it is an undirected graph whose vertices can be associated with chords of a circle such that two vertices are adjacent if and only if the corresponding chords cross each other.

## Algorithmic complexity

Template:Harvtxt gives an O(*n*^{2})-time algorithm that tests whether a given *n*-vertex undirected graph is a circle graph and, if it is, constructs a set of chords that represents it.

A number of other problems that are NP-complete on general graphs have polynomial time algorithms when restricted to circle graphs. For instance, Template:Harvtxt showed that the treewidth of a circle graph can be determined, and an optimal tree decomposition constructed, in O(*n*^{3}) time. Additionally, a minimum fill-in (that is, a chordal graph with as few edges as possible that contains the given circle graph as a subgraph) may be found in O(*n*^{3}) time.^{[1]}
Template:Harvtxt has shown that a maximum clique of a circle graph can be found in O(*n* log^{2} *n*) time, while
Template:Harvtxt have shown that a maximum independent set of an unweighted circle graph can be found in O(*n* min{*d*, *α*}) time, where *d* is a parameter of the graph known as its density, and *α* is the independence number of the circle graph.

However, there are also problems that remain NP-complete when restricted to circle graphs. These include the minimum dominating set, minimum connected dominating set, and minimum total dominating set problems.^{[2]}

## Chromatic number

The chromatic number of a circle graph is the minimum number of colors that can be used to color its chords so that no two crossing chords have the same color. Since it is possible to form circle graphs in which arbitrarily large sets of chords all cross each other, the chromatic number of a circle graph may be arbitrarily large, and determining the chromatic number of a circle graph is NP-complete.Template:Sfnp It remains NP-complete to test whether a circle graph can be colored by four colors.Template:Sfnp Template:Harvtxt claimed that finding a coloring with three colors may be done in polynomial time but his writeup of this result omits many details.Template:Sfnp

Several authors have investigated problems of coloring restricted subclasses of circle graphs with few colors. In particular, for circle graphs in which no sets of *k* or more chords all cross each other, it is possible to color the graph with as few as colors.^{[3]} In the particular case when *k* = 3 (that is, for triangle-free circle graphs) the chromatic number is at most five, and this is tight: all triangle-free circle graphs may be colored with five colors, and there exist triangle-free circle graphs that require five colors.^{[4]} If a circle graph has girth at least five (that is, it is triangle-free and has no four-vertex cycles) it can be colored with at most three colors.^{[5]} The problem of coloring triangle-free squaregraphs is equivalent to the problem of representing squaregraphs as isometric subgraphs of Cartesian products of trees; in this correspondence, the number of colors in the coloring corresponds to the number of trees in the product representation.Template:Sfnp

## Applications

Circle graphs arise in VLSI physical design as an abstract representation for a special case for wire routing, known as "two-terminal switchbox routing". In this case the routing area is a rectangle, all nets are two-terminal, and the terminals are placed on the perimeter of the rectangle. It is easily seen that the intersection graph of these nets is a circle graph. ^{[6]} Among the goals of wire routing step is to ensure that different nets stay electrically disconnected, and their potential intersecting parts must be laid out in different conducting layers. Therefore circle graphs capture various aspects of this routing problem.

Colorings of circle graphs may also be used to find book embeddings of arbitrary graphs: if the vertices of a given graph *G* are arranged on a circle, with the edges of *G* forming chords of the circle, then the intersection graph of these chords is a circle graph and colorings of this circle graph are equivalent to book embeddings that respect the given circular layout. In this equivalence, the number of colors in the coloring corresponds to the number of pages in the book embedding.Template:Sfnp

## Related graph classes

A graph is a circle graph if and only if it is the overlap graph of a set of intervals on a line. This is a graph in which the vertices correspond to the intervals, and two vertices are connected by an edge if the two intervals overlap, with neither containing the other.

The intersection graph of a set of intervals on a line is called the interval graph.

String graphs, the intersection graphs of curves in the plane, include circle graphs as a special case.

Every distance-hereditary graph is a circle graph, as is every permutation graph and every indifference graph. Every outerplanar graph is also a circle graph.^{[7]}

## Notes

- ↑ Template:Harvtxt.
- ↑ Template:Harvtxt
- ↑ Template:Harvtxt. For earlier bounds see Template:Harvtxt, Template:Harvtxt, and Template:Harvtxt.
- ↑ See Template:Harvtxt for the upper bound, and Template:Harvtxt for the matching lower bound. Template:Harvtxt and Template:Harvtxt give earlier weaker bounds on the same problem.
- ↑ Template:Harvtxt.
- ↑ Naveed Sherwani, "Algorithms for VLSI Physical Design Automation"
- ↑ Template:Harvtxt; Template:Harvtxt.

## References

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}. As cited by Template:Harvtxt.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}. As cited by Template:Harvtxt.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}. As cited by Template:Harvtxt.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}. As cited by Template:Harvtxt.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}. As cited by Template:Harvtxt.

## External links

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}