Chapter 4. Graph Theory, Routing, and Optimization
Tải bản đầy đủ - 0trang
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register
. it. Thanks
[ Team LiB ]
4.1 Graph Theory Related to Transport Networking
It is natural to represent transport networks as a set of nodes and connections between these nodes. Typically, the nodes are buildings or
equipment enclosures with the connections between them representing transmission facilities or cable ducts. This makes useful terms,
concepts and results from graph theory available to us. This section introduces some basic notation and concepts from graph theory.
Where appropriate we also explain the somewhat parallel terminology that is more particular to the specific context of a transport network.
An important basic concept is that a graph may represent certain aspects of a network, usually its topology, and often an abstraction of its
capacity, but a graph and a network are not the same thing. We can speak of the graph of a network but a network itself comprises the
actual equipment, signals, cables, fibers, and so on.
4.1.1 Set Concepts and Notation
Sets arise frequently in formulating and solving network planning problems. In particular optimization problems are often stated as a series
of relationships between sets and operations on set members. Thinking in terms of operations on sets, and relationships between sets
(instead of sequences and sequential processing) is especially important when working with a high-level optimization programming
language such as AMPL [FoGa93]. The objects that form a set are called itselements. The elements of a set are drawn from a population
known as the base type for that set. A set is completely specified by the elements that belong to it, without regard to the relations between
the elements. For example, a set containing five objects arranged in circle is the same as a set containing the same five objects arranged
in a line. Thus, there is no concept of order in a set (unless specifically stated). There is also no concept of duplication in a set; all
elements in a set are distinct from one another and an any element either belongs to the set or not. Some of the symbols used to express
sets and their relationships are shown below.
M = {a,b,c} means the set M is composed of elements a, b and c.
X = M - {c} means the set X is composed of the elements of M except for c.
a
n
M means a is an element of set M.
M means n is not an element of set M.
m
M means for every elementm in set M.
is read as "for every...".
Ø is the null or empty set.
|M| is the cardinality or number of elements in set M.
{x|x is a positive.integer} is aset former meaning all x such that x is a positive integer. | is read as "such that...".
is the "existential qualifier" meaning that some specified object must exist as a condition for some qualification or condition
to be met.
A
B and B
A both mean that set A is a subset of B and set B is a super-set of set A.
A
B indicates a union of sets: all elements in either A or B.
A
B indicates an intersection of sets: all elements in bothA and B.
A - B indicates a difference of sets: all elements in A not in set B.
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register
. it. Thanks
A
B indicates a symmetric difference of sets: all elements in either A or B, excluding those elements in bothA and B, i.e., {x|x
A
B, x
A
B}.
If A and B are both sets, thenA·B represents a set C with cardinality |C| = |A|·|B| that contains all distinct pair-wise combinations
2
3
of elements from A with those in B. This may be extended to generating all pairs or triples etc. of a set itself, denoted asA or A .
To illustrate use of the notation consider two sets M = {a,b,c} and N = {b,e,f,g}. Because M has three elements, |M| = 3. The union of M and
N is M
N = {a,b,c,e,f,g}. The intersection of M and N is the set of elements that appear in bothM and N, which is M
N = {b}. The set
difference of M and N is M-N = {a, c}. The symmetric difference of M and N is the set of elements appearing inM and N but not in both,
which is M
2
M |(i
N = {a,c,e,f,g}. As an example of more complex set-related notation that we see later consider the expression
(i,j)
j). This would be read as "for every(i,j) pair in set M by M, such that i is not equal to j," etc.
4.1.2 Graph Theory as it Relates to Transport Networks
A graph G = (V,E) consists of a finite set of vertices V = {v1, v2, …} and a set of edges E = {e1, e2, …}, such that each edge inE joins a pair
of vertices inV. A tacit convention in transport networking is to revert to the graph theoretic terms of "vertex" and "edge" (or arc) when the
point or argument being made is a general one, or the discussion refers to a result based in graph theory itself, and so on. When referring
more directly to a transport network context, however, one find the terms node and span (or link), and corresponding sets N and S used
instead of vertices and edges. Often the usage is synonymous, but the difference in usage arises from the context of discussing
something purely within the domain of graphs in general, or based on reference to actual networks.
Vertices {u, v} of a graph are adjacent if they are joined by an edgee = {u, v} E. Such an edge is said to be incident on the vertices u and v,
which are also called the end vertices of e. Similarly, two edges are adjacent if they are incident on a common vertex and two edges are
parallel if they are incident on the same pair of end vertices. While ordinary English would have it that all nodes in a connected graph are in
a sense "neighbors," in graph terms vertices are neighbors only if they are adjacent.
A graph is simple if it has no parallel edges or self-loops. Aself-loop is an edge that begins and ends on the same vertex. A graph with
more than one edge in parallel between one or more pairs of vertices is called a multigraph. A graph in which a numberwuv is associated
with every edge {u, v} is called a weighted graph and the number wuv is the weight of edge {u, v}. In transport networks these weights often
represent cost, distance, utilization, or capacity. A graph where the edge weights represent capacities is also called a capacitated graph
and problems involved with determining capacity—or solving some routing problem with given capacities— are called capacitated
problems. This is in contrast to problems on simple graphs where capacities are not considered, only connectivity aspects of the graph
itself. A capacitated graph and a multi-graph are close cousins. When the capacity is strictly integer we have two ways of representing the
problem: either as an integer-capacitated simple graph, or, as a multigraph where the numbers of parallel edges on each edge correspond
to the discrete capacity of each edge. Problems in data routing typically adopt a simple graph view, whereas most transport network
problems require a capacitated graph or multigraph representation. In transport networking the network graph refers just to the topology of
spans and nodes. A variety of weighted graphs can be employed for routing problems depending on the metric to be observed or
minimized in routing. In other contexts the capacity units of a capacitated graph may be real-valued and thus present a weighted graph
where the weights are edge capacities.
An edge is directed if the order of stipulating its vertices {u, v} changes some property of the edge. Most commonly the direction of
transmission is implied by the ordered nature of the vertex pair, if the edge is a directed edge. A directed edge is drawn by a line segment
with an arrowhead indicating the direction. A graph with directed edges is called a directed graph or digraph. A graph is undirected if none
of its edges are directed. A graph where every adjacent vertex pair has anti-symmetrical pairs of directed edges joining them is one way of
representing networks with fully bidirectional transmission. More often networks where transmission is bidirectional (and of equal capacity)
on each span are treated simply as undirected graphs. Thus, for transport networking the an undirected graph and an (anti-symmetric)
bidirectional graph are equivalent concepts. Unless stated otherwise, our default is to treat transport networks as undirected graphs, in
which all transmission capacity is implicitly bidirectional and equal in each direction on each span. For some problems and algorithms,
explicit representation of the anti-symmetric directed graph view can be essential or advantageous. Chapter 3 showed, for example, that
Generalized Loopback and Oriented Cycle Double Cover methods benefit from certain efficiencies that arise from a directed graph
orientation, that are not obtainable in the undirected representation. We will also see that a certain special structure of optimization
problem to follow (the "transportation" problem) requires us to use an anti-symmetric directed graph model. Therefore, depending on the
problem, switches from directed or undirected views even if all capacity is actually bidirectional. In the directed bidirectional graph every
directed {u, v} edge has an associated parallel {v, u} edge. Unless a directed graph orientation is stated it is usually implicit that a
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register
. it. Thanks
statement about the capacity of an edge (or span) refers to its transmission capacity in each direction. In the future, with more multi-cast
traffic and Internet applications in general, a directed orientation for transport graphs may be more common if traffic flows themselves also
become highly asymmetric. But a directed orientation is a fairly easy extension to any of the undirected design models to follow. Figure 4-1
illustrates some of the terms so far defined.
Figure 4-1. Some graph terminology.
The number of vertices and edges in graph G = (V,E) is denoted by |V| and |E|, respectively. In graph theory the number of individual
edges incident on a vertex is called the degree, or sometimes the valency, of the vertex. For example, v3 in Figure 4-1(a) has a degree of
five. If, as an example, the multigraph representing individual lightwave channel connectivity is drawn, it may have nodal degrees of tens
or hundreds. More often in transport networking we are concerned with the degree of a node in terms of the number of distinct physical
transmission spans incident on the node. This is a number between 2 to at the most about 7 or 8 for real transmission networks. The
context for a statement of nodal degree therefore has to be clear. Our default will be to refer the physical layer graph degree, also called
the span degree of nodes or just the "nodal degree" for short. It is understood unless explicitly stated the degree of a node in the transport
network is the number of physically disjoint spans incident to it. Thus the span degree of v2 in Figure 4-1(a) is three, but in the logical layer
each of the incident edges may have a discrete capacity of 10 units, making the degree of v2 in that layer 3·10 = 30 if it were represented
by the corresponding multigraph.
In graph theory, a walk is any sequence of adjacent edges in a graph. For example,W = {(v1,v2), (v2,v3), …, (vk-2,vk-1), (vk-1,vk)}.The
vertices v1 and vk are called the origin and terminus of the walk, respectively. The number of edges in the walk,k-1, is called the length of
the walk. A trail is a walk in which the edges are distinct. If all the vertices in a trail are also distinct, it is calledpath.
a
If all vertices are also
distinct (except possibly origin and destination), the path is called simple—i.e., it contains no loops. In transport networks we usually speak
of origin and destination nodes and the paths between them over the graph. An origin node is sometimes also called asource node, and a
destination node can be called a sink. The matrix of all pair-wise requirements for transmission paths is called thedemand matrix. Notation
for referring to individual pairs varies. We refer to O-D pairs, end-node pairs, or "relations." In other literature readers may see A-Z pairs,
(s,t) pairs, or C-S pairs referred to. On a simple graph, the term path in graph theory and path as commonly used in data networking
correspond to each other. In practice, the terms route and path are often used interchangeably if the statement or context is in reference to
a simple graph context—that is to say, without a specific structure of overlying capacity. Such a path is just a sequence of edges and
essentially synonymous with the term route. In digital and multi-channel optical transmission networks, however, a path is a specific
transmission circuit (in the electrical sense—or a contiguous lightpath) with a specific capacity and a specific structure in terms of the
individual channels of which it is formed on each edge. A route and a path are thus different base types in a transport network, whereas
they are often synonyms in other network contexts.
A walk (or a path) is closed if its origin and destination vertices are the same. In general, a closed walk is called acycle or circuit, and might
figure-8 on itself and pass through the same vertex more than once. A closed simple walk is called a simple or elemental cycle. We will
always mean simple or elemental cycles unless specifically stated. Traditionally in communication networks everything had to do with
paths, often shortest paths, for the routing of the payload signals. With the addition of survivability this "linear" path orientation remains
relevant for the working signals but research is showing that cyclic signal paths are highly relevant and seem to have a natural affinity for
use in the protection role.
A cycle that connects all of the vertices in a graph, while passing through each only once, is called a Hamiltonian cycle. A (possibly
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks
non-simple) cycle that traverses all edges of the graph exactly once (but may revisit the same vertices) is called an Eulerian cycle.
Hamiltonian and Eulerian cycles are illustrated in Figure 4-2. Eulerian cycles have special relevance to ring-based network planning
because they protect every span in an on-cycle relationship. Hamiltonian cycles have a special relationship to p-cycle networks because a
single Hamiltonian has a potential protection relationship to every span of the graph. (We do not, however, mean to suggest in either case
that the network design problem consists of finding a single Eulerian ring or Hamiltonianp-cycle. An optimized ring or p-cycle capacitated
network design will usually employ multiple cycles, not all of which will be either Eulerian or Hamiltonian. Chapter 10 develops this point
further).
Figure 4-2. Hamiltonian and Eulerian cycles.
A graph as a whole is said to be a "Hamiltonian" (or "Eulerian") if it contains a Hamiltonian (or Eulerian) cycle, respectively. Eulerian
graphs are easily identified in polynomial time because it is both necessary and sufficient that all nodes have even degree for an Eulerian
cycle to exist in a graph. And yet the corresponding question "Does graph G contain a Hamiltonian cycle?" is an NP-complete decision
problem. (NP-completeness concepts follow in Section 4.2.) Hamiltonian cycles are, however, more likely to exist in highly connected
networks. One result says that any graph of N nodes where every node has degree d
N/2 is Hamiltonian [GaTa92]. An implication of
this is that small well-connected networks (or subnetworks) are likely, or guaranteed to, contain a Hamiltonian cycle.
A graph G' = (V',E') is a subgraph of G if V'
V and E'
E. Two vertices (not necessarily neighbors) are said to beconnected if there
exists a path between them in . An undirected graph G is connected (as a whole) if there exists at least one path betweenevery pair of
vertices in G. Two graphs G and H are isomorphic if, despite different schemes of labeling nodes and spans, a 1:1 correspondence can be
constructed between vertices in G and H for which, if there is an edge between two vertices inG if (and only if) there is also an edge
between the corresponding nodes in H. Isomorphisms of a real fiber graphs are sometimes generated for use where the original
geographically recognizable data is considered sensitive information. Tests to discover (or disprove) isomorphism include comparing the
number of spans and nodes and the number of nodes at each nodal degree, and replacement of degree-2 nodes with single edges. If
easily exhausted tests cannot distinguish two graphs, then a further procedure is to find two nodes, one in each graph suspected of being
topologically the same vertex in the common isomorphic structure, and run Dijkstra's algorithm (Section 4.3) to develop the tree of shortest
paths to all other nodes. Comparing such trees rooted at different source nodes may either establish complete node equivalences for the
isomorphism or disprove it.
A closely related concept is homeomorphism. The difference between isomorphism and homeomorphism has only to do with degree-2
nodes. Two graphs are homeomorphic if a copy of one can be made from the other only by adding or deleting degree-2 nodes from any of
its edges. Examples of homeomorphic graphs are shown in Figure 4-3. The graph in Figure 4-3(c) is a homeomorphism of both other
graphs (a) and (b) that is of special interest because it completely abstracts or summarizes what we call the true mesh connectivity of the
other two graphs. It is a view only of the logical connectivity between nodes of degree 3 or higher. Some problems on mesh-restorable
capacity and routing only depend upon properties of this abstraction. In other contexts we have to consider each degree-2 node in detail
as well.
Figure 4-3. Three graphs that are homeomorphic.
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks
A plane graph is a graph whose vertices are points in the planeRxR (where R is the real number line) and whose edges are lines in the
plane which have no intersection point other than at vertex points. Any graph that is isomorphic to a plane graph is called aplanar graph. In
practice this means there must exist some way of drawing the graph on a flat page (the plane), so that no edges cross. Physical layer
transport networks tend to be almost, but not always, planar. This arises primarily from a tendency in the physical layer for nodes to be
directly connected by facility routes only to geographical regional neighbor nodes. Furthermore, non-planarity would imply that two edges
in the graph will intersect at some location other than a vertex, creating a single point of failure for both edges. Higher level logical
transport graphs can be much farther from planarity, with logical edges between almost any pair of nodes.
One aspect of a connected planar graph is that it divides the RxR plane into separate non-overlapping regions calledfaces. Some faces
are bounded (i.e., those interior to the graph) and some are unbounded (at an outside edge of the graph). Euler's formula relates the
number of such faces |F| to the number of vertices |V| and edges |E| of any planar graph:
Equation 4.1
Note that |F| includes the unbounded face in addition to all of the bounded faces. For instance, all of the graphs in Figure 4-3 have 6 faces,
and the graph in Figure 4-1(b) has 4 faces. To the extent that physical transport networks tend toward planarity, the number of interior
faces can play a role in suggesting a number of rings used in ring-based designs. In fact there is a temptation in ring network design to lay
one ring down as a bounding box of each face. While this is often stated to appear to be the "natural set of rings" for the network, such
simple tiling of the plane with rings is usually inefficient because it makes for many ring-span overlaps. Although our scope is limited to
mesh networks, p-cycles are in some senses ring-like.Chapter 10, which is devoted to p-cycles, contains some illustration of this point.
Figure 4-4 and Figure 4-5 illustrate a few further points about planarity. First, a planar graph may not look planar upon first sight. Secondly,
an interesting result called Kuratowski's theorem is that a graph is planar if and only if it contains no subgraph that is homeomorphic to
K3,3 or K5. Kn denotes what is called a complete graph on n vertices where every vertex is connected by a unique edge to all n( -1) other
vertices. Kn,m denotes a complete bipartite graph onn and m vertices. This is a graph where the vertices are grouped into two sets|V1| =n,
|V2| = m and each vertex is connected by a unique edge to all vertices of the other vertex set (i.e., of which it is not a member).
Figure 4-4. Two graphs that are planar: (a) is evident, (b) is seen by pushing an edge out of the
way to obtain (c).
Figure 4-5. The two fundamentally non-planar graphs K3,3 and K5.
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks
A graph is two-edge connected if has at least two edge-disjoint paths between every pair of vertices. A graph istwo-vertex connected or
biconnected if it has at least two vertex-disjoint paths between every pair of vertices. Graph connectivity properties are important for
transport networks because to survive all single failures, the graph must be at least two-edge connected for it to be topologically possible
to protect or restore failed spans. Characteristics of a biconnected network are quite recognizable by visual inspection. Such a network will
have no degree-one or stub nodes and is bridgeless, or in other words, has noarticulation points. Articulation points are also calledbridge
nodes or cut-nodes, and are nodes whose single failure would partition the graph into two disconnected parts.Figure 4-6 illustrates this. The
property of two-edge connectedness is also referred to simply as two-connectedness. Either two-connectedness or bi-connectivity is
suitable for survivable network design against span failures, but bi-connectivity is preferred to avoid there being any single node whose
failure would break the network into two disconnected pieces. In general in following sections, we are not dependent on whether a graph
is two-connected or biconnected, but it must have at least one of these properties. We refer to such graphs in general as closed. In
practice, however, virtually all survivable fiber-based transport networks are biconnected in their physical layer graph.
Figure 4-6. A biconnected network (a) has no degree-one sites, as in (b), and no articulation
points or bridge nodes, as in (c).
If we view transmission systems as providing pairs of symmetric bidirectional edge pairs, the directed network that results in this viewpoint
is a strongly connected digraph. A digraph is strongly connected if for every ordered pair of vertices(v,w), there is a directed path fromv to
w.
A tree is a connected undirected graph containing no cycles. Aforest is a set of trees. In a connected undirected graph there is at least one
path between every pair of vertices. The absence of a cycle in a connected undirected graph implies that there is at least one pair of nodes
for which there only one disjoint path between the nodes. Therefore, in a tree there is only one path between every pair of vertices. A
spanning tree is a subgraph of G that contains every vertex inG. If G is not connected, the set of spanning trees for each connected
component is called a spanning forest.
4.1.3 Transport Network Terminology
In graph theory, the terms arc, edge, or link are essentially interchangeable for the connection between adjacent nodes and terms path
and route are synonymous in referring to a connected sequence of edges. In transport networking, however, we are always dealing with a
capacitated graph or discrete multigraph view of the graph because each physical transmission system provides a discrete set of logical
point-to-point capacity units in parallel between its transmission terminals. These are typically fibers, lightpaths or OC-n signal units. These
unit-capacity transmission links or channels are cross-connected to form paths to bear the logical point-to-point requirements of the
services layer between node pairs.
In this book, the basic unit of capacity on which switching devices operate to inter-connect capacity is called a link or a channel. The
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register
. it. Thanks
physical entity that is the collection of all such unit-capacity links in parallel between neighbor nodes is called a span. A span is subject to
physical damage that will affect all its links simultaneously. A route is defined as a concatenation of spans (i.e., simply a geographical route
over the fiber map) and a path is a specific cross-connected sequence of individual links (or channels) on spans. Thus a path provides a
specific unit-capacity signal propagation sequence embedded within, and cross-connected through, a sequence of transmission spans.
Figure 4-7 summarizes these basic concepts and terminology as used in this book. Note that every path has a route and multiple paths
may follow the same route, but path and route are distinct concepts.
Figure 4-7. Concepts of span, link (or channel), route and path in transport networking.
Precise and consistent use of the terms link, span, path and route facilitates discussion of a wide range of arguments set in a generic
transport network context. In a SONET context a link may correspond to a single fiber bearing an OC-48 and the span is the cable
containing many such fibers. Paths are end-to-end OC-48 connections. If cross-connection is at the OC-48 level then a fiber bearing an
OC-192 represents four links on the span. In a DWDM context with cross-connection at the lightwave level then each lightwave channel
corresponds to the generic "link" entity and paths are end-to-end lightpaths. As we use them, the terms "span" and "link" have their origins
in the transmission community. As Bhandari explains, span and link allow us to distinguish between the entities that map into logical links
of higher levels and the physical transmission spans over which all end-to-end paths (logical links in higher layers) are established:
"In reality, networks such as the telecommunication fiber networks can be more complicated than the traditional
graph-theoretic networks described by vertices and edges… spans are the actual physical links that comprise the
physical network. Links (or edges) of the (logical) network are built from spans. As a result, a given span can be
common to a number of links...The physical layout of a fiber network consists of links, where each link (also
sometimes called a logical connection) connects a pair of nodes: a link is in general a series of contiguous physical
connections called spans." [Bhan99] page 117.
There is, however, no standard usage of terms in the industry as a whole. Duct or cable is sometimes also used as a synonym for span. A
span is also referred to as the "default SRLG" in the framework of shared risk link groups S
( ection 1.5.4). But the main thing to be cautious
of misinterpreting is "link." In many sources "link" refers to what we call a span and may even refer to a path when viewed from the service
layer. As a practical matter the term link has lost all precision because it is used so generally for almost any notion of interconnection. We
therefore increasingly rely on the term channel to replace it, but "link," as defined above, is still found in prior literature, where it refers to a
managed unit of cross-connected capacity, not the entire physical connection between two nodes. If readers are generally aware of this
confusion they can, however, usually infer the intent when authors use "link" for everything, from the context. Generally in past literature in
the transmission engineering community, link has usually meant a single-channel capacity unit (as here). But in much current literature for
optical networking, link means what we call a span. The point is not trivial when one considers the confusion it causes in reference, for
example, to a "k-shortest link-disjoint paths" algorithm.
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks
4.1.4 Distinct and Disjoint Routes
Two routes are distinct if they simply differ in any detail. Routes aredisjoint if they have no elements (spans or nodes) in common.
Sometimes for emphasis or clarity one sees "fully disjoint" or "node and span disjoint" but both are what "disjoint" strictly implies. An
exception is commonly implied to allow the end nodes to be the same when talking about disjoint routes. For instance, a 1+1 protection
scheme may be arranged between two nodes by established two paths with common end points following disjoint routes at all locations but
the end nodes. Two routes are span disjoint if they have no span in common, although nodes other than the end nodes may appear in
common between the routes. Figure 4-8 shows the differences.
Figure 4-8. Paths having (a) fully disjoint, (b) span disjoint and (c) distinct routes.
4.1.5 Data Representations of Graphs
The information to specify a graph for computer or mathematical purposes is usually represented by an adjacency matrix or adjacency list.
An adjacency matrix is an n x n matrix where non-zero entries represent the existence of an edge. For an undirected graph, a 1 in the
matrix at row i, column j represents a bidirectional edge between nodes (i,j) (and the entry in row j, column i is ignored). If the graph is
directed the matrix coordinates (i,j) and (j,i) contain independent indications of whether an edge exists. If the matrix entries are strictly 1/0
indications then the matrix encodes only edge incidence information and is called an incidence matrix. If an edge exists, however, it is
easy to use the adjacency matrix to encode additional attributes such as capacity or edge distance.
A more efficient and compact representation of a network is an adjacency list. One form of adjacency list can be thought of as a set of lists
where each vertex appears once, associated with a listing of the other vertices to which it is directly connected. Thus an edge (v,w) exists if
th
w is a member of the v sub-list. For a graph with directed edges, no edge is specified more than once in the type of adjacency list just
described, because directed edges (v, w) and (w,v) are distinct entities. For undirected graphs, however,(w,v) is redundant if (v,w) is listed
earlier. Using linked-list techniques each sub-list entry can also be a data record describing the attributes of the edge such as its length,
capacity, cost, and so on.
The same information may also be presented as a single flat list of the (v,w) vertex pairs for which edges exist. This format of a single list
of spans that exist implicitly specifies all vertices that exist in the network as well as the edges between them.
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks
[ Team LiB ]
.
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks
[ Team LiB ]
4.2 Computational Complexity
We are now heading into a series of sections that introduce useful algorithms for routing and other operations on graphs, followed by
introduction to a number of basic network optimization problems. While treating each algorithm and the optimization problems it is natural
to consider the inherent computational complexity of each. To do so, we must equip ourselves with some background on the concepts and
conventions of algorithmic complexity.
An important point is that there are many easily posed problems, especially combinatorial optimization problems, that computers simply
cannot solve exactly. And it's not just a matter of getting a faster computer or more RAM because these are problems for which the
solution space explodes exponentially (or even factorially) with problem size, making the number of possible solutions astronomical. A
network planner can easily pose problems where the number of solutions to be checked exceeds the number of elementary particles in the
universe. A large number of important real-world problems in fact behave this way. It is important, therefore, to identify and exploit special
cases and classes of problems that can be efficiently solved. Other important basic problems such as shortest path routing or finding
maximum flow are in the class of "polynomial time" problems and can be solved quickly and exactly in practice at almost any required size.
Asymptotic notation provides a means for conveying and comparing properties of different algorithmic approaches and helps us assess
the complexity of overall methods that might combine several such basic algorithms. An excellent introductory article to key concepts
about combinatoric problems and algorithmic complexity principles is [Kar86],
4.2.1 Asymptotic Notation
The complexity of an algorithm is a measure of the execution time or memory needed as a function of the problem size. The two basic
measures are referred to as time- and space-complexity, respectively. Complexity can be empirically observed or determined theoretically.
Empirical analysis is used to predict the average case behavior of the algorithm by running it on a suitable number of problem sizes and
observing the run time. Theoretical analysis more often predicts only the worst-case behavior the algorithm might exhibit. Complexity is
expressed in a notation which makes statements about the rate at which complexity increases with problem size. More formally, the
notation of asymptotic order is really making statements about the set of all possible functions to which an observed or predicted behavior
belongs. The following treatment is based on that of [BaGe00].
If some function g is stated, then Figure 4-9 shows conceptually how all other functions must be asymptotically related tog. The families of
functions shown and the notation for them are discussed below. Note that we are talking about functional forms which are equivalent in the
way they grow at large n, so we do not care about exact relative function values at smalln.
Figure 4-9. Classification of functions based on growth rates for asymptotic order notation
relative to some stated functional form g(n).
This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register
. it. Thanks
Mathematically, to make a statement that f
O(g) means that
Equation 4.2
where C is finite or zero. In other words, it says that at suitably large problem sizes,f(n) is growing no faster than g(n). Thus, a statement
3
3
that the run time, f(n), of maximum flow is O(n ), really means that f(n) O(n ) and tells us that whatever the actual function describing
3
max-flow run time is, its functional form is asymptotically no worse than n . This is informally called "Big Oh" notation. More generally, it
means that there exist constants C and n0 such that
Equation 4.3
for all n
no. f(n) is some mathematical function of n such that a positive real multiple off(n) exceeds the amount of resources
consumed by the given algorithm. n is the problem size, and n0 is the threshold value for the problem size beyond whichEquation 4.3 is
valid.
At the other extreme, if f
W(g), it means that
Equation 4.4
In other words, W(g) is the set of all functional forms that are ultimately smaller in magnitude than the actual functional behavior. These are
functions that are definitely more slowly growing than f(n). For example, in practice we might be uncertain about the actual asymptotic
growth rate of some algorithm, but know from first principles, say, that it certainly must exceed that of max-flow. Then a statement that
3
(n ) would correctly state that whatever the actual function describing max-flow run time is, i.e., that its
3
functional form is asymptotically at least as strong as n . This is called "Omega notation."
"f(n)=
3
(n )" or f(n)
This leaves the case of f Q(g) which, as Figure 4-9 suggests, is the subset of functions inO(g) that grow exactly asg in the limit. (This is
not-surprisingly called "theta notation.") Equation 4.2 applies again becausef Q(g) implies f O(g), but f Q(g) is the special case
where 0 < C <
is a definitely non-zero finite constant. In practice the difference in usage is thatf O(g) only states an upper bound on
the asymptotic form, whereas f Q(g) is the stronger statement that f(n) grows at exactly the same rate asg(n) in the limit.
The formal differences in the definition of
(g)and O(g) are subtle. The range of the limit inEquation 4.2 includes zero and the constant
may be arbitrarily large but is definitely finite whereas in Equation 4.4. the limit is unbounded in size and strictly cannot be zero. Notionally
near these limits (when C
0 or very large but not
) we are dealing with functions that are only barely withinf W(g) or f O(g).
Sometimes we might want to make reference to functional forms that are much more solidly within the respective sets. This is where the