0% found this document useful (0 votes)
15 views2 pages

Graph

The document discusses different types of graph structures that can be used to represent problems including bipartite graphs, directed graphs, undirected graphs, and hypergraphs. It also discusses two ways to partition graphs by taking out edges or vertices and defines edge and vertex separators. The document then discusses algorithms and heuristics used for graph partitioning including those used in hMETIS and aspects of the FM algorithm.

Uploaded by

Wang Shuo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views2 pages

Graph

The document discusses different types of graph structures that can be used to represent problems including bipartite graphs, directed graphs, undirected graphs, and hypergraphs. It also discusses two ways to partition graphs by taking out edges or vertices and defines edge and vertex separators. The document then discusses algorithms and heuristics used for graph partitioning including those used in hMETIS and aspects of the FM algorithm.

Uploaded by

Wang Shuo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Picking graph structure.

 After assigning nodes and edges of the graph to tasks and dependencies of our
problem, we need to pick a graph structure that best represents the problem. There are several various
types of graph structures: bipartite graph, directed graph, undirected graph, and hypergraph.
1. Bipartite graph. If the problem needs to be decomposed into only two sets, bipartite graph
is the best one to choose. The bipartite graph is defined as a graph whose nodes belong to
two disjoint sets with no edges between nodes in the same set. Bipartite graphs are usually
used for matching problems. For example, if we want to find a maximum matching from a
set of features to a character in the optical character recognition problem.
2. Directed graph. If the problem is composed of tasks that are time dependent, it is easiest to
represent the problem as a directed graph. Each node of the graph represents a task, and
each edge is *directed*, i.e., it represents a time dependency between a pair of tasks
showing that one task cannot be executed before another one completes.
3. Undirected graph. A graph that contains edges that are undirected, representing
a relationship between nodes that is the same in both directions, i.e., from node x to y the
dependency is the same as from node y to x.
4. Hypergraph. This graph is more general. Its nodes are computational tasks, and its edges are
communication dependencies, however each edge connects a set of nodes, instead of just
two. The hypergraph model is well suited to parallel computing, where vertices correspond
to data objects and hyperedges represent the communication requirements. The basic
partitioning problem is to partition the vertices into k approximately equal sets such that the
number of cut hyperedges is minimized. Hypergraphs provide more accurate partitions since
the communication can be modeled exactly as the communication volume.

There are two ways to partition a graph, by taking out edges, and by taking out vertices. Graph
partitioning algorithms use either edge or vertex separators in their execution, depending on the
algorithm. We define the two sets as follows:

An edge-separator, Es (subset of E) separates G if removing Es from E leaves two approximately equal-


sized disconnected components of N: N1  ∪ N2.
A vertex-separator, Ns (subset of N) separates G if removing Ns and all incident edges leaves k
approximately equal-sized disconnected components of N: N1  ∪ N2.

The hMETIS partitioning program [45] introduced several new heuristics that are incorporated into their
multilevel partitioning implementation and are reportedly performance critical. One is hyperedge
removal during refinement, which is analogous to FM, except that a single move “uncuts” a hyperedge
by reassigning as many vertices as needed. Another heuristic is V-cycling, a repetition of the clustering-
partitioning-refinement process that uses a solution produced by a previous execution of this process –
vertices in different partitions cannot be 4This is the most common notation used for a multilevel
partitioning hierarchy. hMETIS related works invert the notation, including the naming of V-cycles which
may be more appropriately called lambda-cycles. A similar technique is v-cycling, in which the
refinement stage may stop before the bottom-level hypergraph is reached and clustering resumed
(starting from a solution for a clustered hypergraph). Similarly, clustering may be stopped earlier than it
would normally be, and refinement resumed.

The FM algorithm has three main components (1) the computation of initial gain values at the beginning
of a pass; (2) the retrieval of the best-gain (feasible) moves; and (3) the update of all affected gain values
after a move is made. One contribution of Fiduccia and Mat lies in observing that circuit hypergraphs are
sparse, and any move’s gain is bounded between plus and minus the maximal vertex degree in the
hypergraph (times the maximal hyperedge weight if weights are used). This allows prioritization of
moves by their gains. All affected gains can be updated in amortized-constant time, giving overall linear
complexity,

You might also like