Tải bản đầy đủ - 0 (trang)
Chapter 4. Graph Theory, Routing, and Optimization

# 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 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

### Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chapter 4. Graph Theory, Routing, and Optimization

Tải bản đầy đủ ngay(0 tr)

×