+ All Categories
Home > Documents > 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and...

1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and...

Date post: 15-Jan-2016
Category:
View: 228 times
Download: 3 times
Share this document with a friend
33
Intro. to Graph Theory CS 471 – Algorithms for bioinforma CS 471 – Algorithms for bioinforma Graph Theoretic Concepts and Algorithms for Bioinformatics
Transcript
Page 1: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

1Intro. to Graph Theory

BIO/CS 471 – Algorithms for bioinformaticsBIO/CS 471 – Algorithms for bioinformatics

Graph Theoretic Concepts and Algorithms

for Bioinformatics

Page 2: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

2Intro. to Graph Theory

What is a “graph”• Formally: A finite graph G(V, E) is a pair (V, E),

where V is a finite set and E is a binary relation on V. – Recall: A relation R between two sets X and Y is a subset of X

x Y.– For each selection of two distinct V’s, that pair of V’s is either

in set E or not in set E.

• The elements of the set V are called vertices (or nodes) and those of set E are called edges.

• Undirected graph: The edges are unordered pairs of V (i.e. the binary relation is symmetric).– Ex: undirected G(V,E); V = {a,b,c}, E = {{a,b}, {b,c}}

• Directed graph (digraph):The edges are ordered pairs of V (i.e. the binary relation is not necessarily symmetric).– Ex: digraph G(V,E); V = {a,b,c}, E = {(a,b), (b,c)}

ab

c

ab

c

Page 3: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

3Intro. to Graph Theory

Why graphs?• Many problems can be stated in terms of a graph

• The properties of graphs are well-studied – Many algorithms exists to solve problems posed as graphs

– Many problems are already known to be intractable

• By reducing an instance of a problem to a standard graph problem, we may be able to use well-known graph algorithms to provide an optimal solution

• Graphs are excellent structures for storing, searching, and retrieving large amounts of data– Graph theoretic techniques play an important role in increasing the

storage/search efficiency of computational techniques.

• Graphs are covered in section 2.2 of Setubal & Meidanis

Page 4: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

4Intro. to Graph Theory

Graphs in bioinformatics• Sequences

– DNA, proteins, etc.

Chemical compounds

Metabolic pathways

R Y L I

Page 5: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

5Intro. to Graph Theory

Graphs in bioinformatics

Phylogenetic trees

Page 6: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

6Intro. to Graph Theory

Basic definitions

• incidence: an edge (directed or undirected) is incident to a vertex that is one of its end points.

• degree of a vertex: number of edges incident to it– Nodes of a digraph can also be said to have an indegree and an outdegree

• adjacency: two vertices connected by an edge are adjacent

Undirected graph Directed graph

isolated vertex

loop

multipleedges

G=(V,E)

adjacent

loop

Page 7: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

7Intro. to Graph Theory

x y

path: no vertex can be repeated example path: a-b-c-d-etrail: no edge can be repeated example trail: a-b-c-d-e-b-dwalk: no restriction example walk: a-b-d-a-b-c

closed: if starting vertex is also ending vertexlength: number of edges in the path, trail, or walk

circuit: a closed trail (ex: a-b-c-d-b-e-d-a)cycle: closed path (ex: a-b-c-d-a)

a

b

c

d

e

“Travel” in graphs

Page 8: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

8Intro. to Graph Theory

Types of graphs• simple graph: an undirected graph with no loops or multiple edges between t

he same two vertices• multi-graph: any graph that is not simple• connected graph: all vertex pairs are joined by a path• disconnected graph: at least one vertex pairs is not joined by a path• complete graph: all vertex pairs are adjacent

– Kn: the completely connected graph with n vertices

Simple graph a

b

c

d

e

K5

ab

cd

e

Disconnected graph with two components

Page 9: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

9Intro. to Graph Theory

Types of graphs• acyclic graph (forest): a graph with no cycles• tree: a connected, acyclic graph• rooted tree: a tree with a “root” or “distinguished” vertex

– leaves: the terminal nodes of a rooted tree

• directed acyclic graph (DAG): a digraph with no cycles• weighted graph: any graph with weights associated with the edges (edge-weighted) and/or the

vertices (vertex-weighted)

b a

cd

e f

10

58

-32

6

Page 10: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

10Intro. to Graph Theory

Digraph definitions• for digraphs only…• Every edge has a head (starting point) and a

tail (ending point)• Walks, trails, and paths can only use edges in

the appropriate direction• In a DAG, every path connects an

predecessor/ancestor (the vertex at the head of the path) to its successor/descendents (nodes at the tail of any path).

• parent: direct ancestor (one hop)• child: direct descendent (one hop)• A descendent vertex is reachable from any of

its ancestors vertices

Directed graphab

c

dx

y

z

w

u v

Page 11: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

11Intro. to Graph Theory

Computer representation• undirected graphs: usually represented as digraphs with two

directed edges per “actual” undirected edge.• adjacency matrix: a |V| x |V| array where each cell i,j contains

the weight of the edge between vi and vj (or 0 for no edge)• adjacency list: a |V| array where each cell i contains a list of all

vertices adjacent to vi

• incidence matrix: a |V| by |E| array where each cell i,j contains a weight (or a defined constant HEAD for unweighted graphs) if the vertex i is the head of edge j or a constant TAIL if vertex I is the tail of edge j

c b

a d4

2

6

108

a b c da 8 4bc 6d 10 2

a c (8), d (4)bc b (6)d c (2), b (10)

1 2 3 4 5a 8 4b t tc 6 t td 2 10 t

adjacency matrix

adjacency list

incidence matrix

Page 12: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

12Intro. to Graph Theory

Computer representation• Linked list of nodes: Node is a defined data object with labels which include a list of pointers to its children and/or parents

• Graph = [] # list of nodesClass Node: label = NIL;

parents = []; # list of nodes coming into this node children = []; # list of nodes coming out of this node childEdgeWeights = []; # ordered list of edged weights

Page 13: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

13Intro. to Graph Theory

• G’(V’,E’) is a subgraph of G(V,E) if V’ V and E’ E.

• induced subgraph: a subgraph that contains all possible edges in E that have end points of the vertices of the selected V’

Subgraphs

a

b

c

d

e b

c

d

e

a

c

d

G(V,E) G’({a,c,d},{{c,d}})Induced subgraph ofG with V’ = {b,c,d,e}

Page 14: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

14Intro. to Graph Theory

• The complement of a graph G (V,E) is a graph with the same vertex set, but with vertices adjacent only if they were not adjacent in G(V,E)

Complement of a graph

a

b

c

d

e

G G

a

b

c

d

e

Page 15: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

15Intro. to Graph Theory

• Consider a weighted connected directed graph with a distinguished vertexsource: a distinguished vertex with zero in-degree

• What is the path of total minimum weight from the source to any other vertex?• Greedy strategy works for simple problems (no cycles, no negative weights)• Longest path is a similar problem (complement weights)• We will see this again soon for fragment assembly!

Famous problems: Shortest path

c b

a d4

2

6

108

Page 16: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

16Intro. to Graph Theory

Dijkstra’s Algorithm• D(x) = distance from s to x (initially all )

1. Select the closest vertex to s, according to the current estimate (call it c)

2. Recompute the estimate for every other vertex, x, as the MINIMUM of:

1. The current distance, or

2. The distance from s to c , plus the distance from c to x – D(c) + W(c, x)

Page 17: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

17Intro. to Graph Theory

Dijkstra’s Algorithm Example

A B C D E

Initial 0

Process A 0 10 3 20

Process C 0 5 3 20 18

Process B 0 5 3 10 18

Process D 0 5 3 10 18

Process E 0 5 3 10 18

A

B

C E

D

10

5

20

23

15

11

Page 18: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

18Intro. to Graph Theory

• Two graphs are isomorphic if a 1-to-1 correspondence between their vertex sets exists that preserve adjacencies

• Determining to two graphs are isomorphic is NP-complete

Famous problems: Isomorphism

a

b

c

d

e1

2 3

4 5

Page 19: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

19Intro. to Graph Theory

Famous problems: Maximal clique• clique: a complete subgraph• maximal clique: a clique not contained in any other clique; the largest

complete subgraph in the graph• Vertex cover: a subset of vertices such that each edge in E has at least one

end-point in the subset• clique cover: vertex set divided into non-disjoint subsets, each of which

induces a clique• clique partition: a disjoint clique cover

1 2

4 3

Maximal cliques: {1,2,3},{1,3,4}Vertex cover: {1,3}Clique cover: { {1,2,3}{1,3,4} }Clique partition: { {1,2,3}{4} }

Page 20: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

20Intro. to Graph Theory

Famous problems: Coloring• vertex coloring: labeling the vertices such that no edge in E has two end-points with the same label• chromatic number: the smallest number of labels for a coloring of a graph• What is the chromatic number of this graph?

• Would you believe that this problem (in general) is intractable?

1 2

4 3

Page 21: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

21Intro. to Graph Theory

Famous problems: Hamilton & TSP• Hamiltonian path: a path through a graph which contains

every vertex exactly once

• Finding a Hamiltonian path is another NP-complete problem…

• Traveling Salesmen Problem (TSP): find a Hamiltonian path of minimum cost

a b c

d e f

g hi

a

b

c

d

e3

41

3

5 4

32

2

Page 22: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

22Intro. to Graph Theory

Famous problems: Bipartite graphs• Bipartite: any graph whose vertices can be partitioned into two

distinct sets so that every edge has one endpoint in each set.

• How colorable is a bipartite graph?

• Can you come up with an algorithm to determine if a graph is bipartite or not?

• Is this problem tractable or intractable?

K4,4

Page 23: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

23Intro. to Graph Theory

Famous problems: Minimal cut set• cut set: a subset of edges whose remove causes the number of

graph components to increase

• vertex separation set: a subset of vertices whose removal causes the number of graph components to increase

• How would you determine the minimal cut set or vertex separation set?

a

b

c

d

e

f

g

h

1 2

4 3

cut-sets: {(a,b),(a,c)},{(b,d),(c,d)},{(d,f)},...

Page 24: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

24Intro. to Graph Theory

Famous problem: Conflict graphs• Conflict graph: a graph where each vertex represents a concept or resource

and an edge between two vertices represents a conflict between these two concepts

• When the vertices represents intervals on the real line (such as time) the conflict graph is sometimes called an interval graph

• A coloring of an interval graph produces a schedule that shows how to best resolve the conflicts… a minimal coloring is the “best” schedule”

• This concept is used to solve problems in the physical mapping of DNA

1 2 3 4A x x xB xC xD x x xE x xF x

a b

c

fe

d

Colors?

Page 25: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

25Intro. to Graph Theory

Famous problems: Spanning tree• spanning tree: A subset of edges that are sufficient to keep a

graph connected if all other edges are removed

• minimum spanning tree: A spanning tree where the sum of the edge weights is minimum

a

b

c

d

e

f

g

h

2

2

24

8

14

6

24

a

b

c

d

e

f

g

h

2

2

2

8

14

6

24

Page 26: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

26Intro. to Graph Theory

• G is said to have a Euler circuit if there is a circuit in G that traverses every edge in the graph exactly once

• The seven bridges of Konigsberg: Find a way to walk about the city so as to cross each bridge exactly once and then return to the starting point.

Famous problems: Euler circuit

area b area d

area c

b

c

d

a

This one is in P!

Page 27: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

27Intro. to Graph Theory

Famous problems: Dictionary• How can we organize a dictionary for fast lookup?

a b c y z…

a b c y z… a b c y z… a b c y z…

a b c y z…

a b c y z… “CAB”

26-ary “trie”

Page 28: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

28Intro. to Graph Theory

Graph traversal• There are many strategies for solving graph problems… for

many problems, the efficiency and accuracy of the solution boil down to how you “search” the graph.

• We will consider a “travel” problem for example:

• Given the graph below, find a path from vertex a to vertex d. Shorter paths (in terms of edge weight sums) are desirable.

b

e

a

d

f

c3 1

245

6

7

Page 29: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

29Intro. to Graph Theory

A greedy approach• greedy traversal: Starting with the “root” node, take the edge

with smallest weight. Mark the edge so that you never attempt to use it again. If you get to the end, great! If you get to a dead end, back up one decision and try the next best edge.

• Advantages: Fast! Drawbacks: Answer is usually non-optimal

• For some problems, greedy approaches are optimal, for others the answer may usually be close to the best answers, for yet other problems, the greedy strategy is a poor choice.

b

e

a

d

f

c3 1

245

6

7

Start node: aEnd node: dTraversal order: a, c, f, e, b, d

Page 30: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

30Intro. to Graph Theory

Exhaustive search: Breadth-first• For the current node, do any necessary work

– In this case, calculate the cost to get to the node by the current path; if the cost is better than any previous path, update the “best path” and “lowest cost”.

• Place all adjacent unused edges in a queue (FIFO)

• Take an edge from the queue, mark it as used, and follow it to the new current node

b

e

a

d

f

c3 1

245

6

7

Traversal order: a, b, c, d, e, f

Page 31: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

31Intro. to Graph Theory

Exhaustive search: Depth-first• For each current node

– do any necessary work– Pick one unused edge out and

follow it to a new current node

– If no unused edges exist, unmark all of your edges an go back from whence you came!

b

e

a

d

f

c3 1

245

6

7

Traversal order: a, b, d, e, f, c

DFS (G, v)V.state = “visited”

Process vertex v

Foreach edge (v,w) {

if w.state = “unseen” {

DFS (G, w)

process edge (v,w)

}

}

}

Page 32: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

32Intro. to Graph Theory

Branch and Bound• Begin a depth-first search (DFS)

• Once you achieve a successful result, note the result as our initial “best result”

• Continue the DFS; if you find a better result, update the “best result”

• At each step of the DFS compare your current “cost” to the cost of the current “best result”; if we already exceed the cost of the best result, stop the downward search! Mark all edges as used, and head back up.

b

e

a

d

f

c3 1

245

6

7

Path Current BestACF 7 11ACFE 15 11 < pruneAB 3 11ABD 8 8ABE 7 8ABEF 14 8

Traversal order: Path Current BestA 0 -AE 2 -AEB 6 -AEBD 11 11AEF 9 11AEFC 15 11AC 1 11

Page 33: 1 Intro. to Graph Theory BIO/CS 471 – Algorithms for bioinformatics Graph Theoretic Concepts and Algorithms for Bioinformatics.

33Intro. to Graph Theory

Binary search trees• Binary trees have at two children per node (the child may be null)

• Binary search trees are organized so that each node has a label.

• When searching or inserting a value, compare the target value to each node; one out-going edge corresponds to “less than” and one out-going edge corresponds to “greater than”.

• On the average, you eliminate 50% of the search space per node… if the tree is balanced

5

4 6

8

1

2

3

10

9

7


Recommended