networks in math & computer sciencesnyder/cs109/cs109.mathlect03.graphintroduction.pdf ·...

21
9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109 Wayne Snyder ([email protected]) September 14 th , 2015 Outline of the Lecture Networks: A fundamental way of looking at of problems in math and CS Basic concepts in networks: Nodes, edges, paths, cycles What can we represent with networks? What problems can we solve with networks? Conclusions: Looking forward to the CS lectures -- last part of course.

Upload: buicong

Post on 11-Apr-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

1

Computer Science

Computer Science

Networks in Math & Computer Science CS/MA 109 Wayne Snyder ([email protected]) September 14th, 2015

Outline of the Lecture

Networks: A fundamental way of looking at of problems in math and CS

Basic concepts in networks: Nodes, edges, paths, cycles

What can we represent with networks?

What problems can we solve with networks?

Conclusions: Looking forward to the CS lectures -- last part of course.

Page 2: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

2

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

A

C

B

D

Network

V = { A, B, C, D } E = { (A,B), (A, C), (B,C), (B,D), (C,D) }

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

A

C

B

D

Nodes represent people Edges represent friendship, which is a symmetric relationship.

Example 1: Social Network

Page 3: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

3

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

A

C

B

D

Nodes represent people Edges represent friendship, which is a symmetric relationship.

Example 1b (abstracted)

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

Nodes represent cities or locations. Edges represent roads, in this case two way!

Example 2a: Map

Boston

Melrose

Maynard

Reading

Page 4: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

4

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

Nodes represent cities or locations. Edges represent roads, in this case two way! Note that now edges are labeled with distances.

Example 2b: Annotated Map

Boston

Melrose

Maynard

Reading

24

23

28

15

4

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

Nodes now represent locations on a network. Edges represent internet connections, two-way. Now edge weights represent milliseconds of delay between the computers.

Example 2ec:

128.197.10.231

24

23

28

15

4

128.197.10.243

128.197.10.251

128.197.10.236

Page 5: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

5

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

A

C

B

D

24

23

28

15

4

Example 2d:

Nodes represent people Edges represent relationships, in this case two-way. What might be a possible relationship? What do you think the numbers might represent?

Computer Science

Networks: Basic Definitions

A Network (or Graph) is:

o  A set V of Nodes (or: nodes) containing (possibly):

o  A Label (1, 2, … A, B, … etc.)

o  Data of some kind

o  A set E of Edges (links) connecting nodes; edges may also have labels or data (e.g., distance or cost) associated with them.

Notes:

Nodes generally represent individuals or locations;

Edges represent relationships between individuals and are generally assumed to be “two-way.”

Such a two-way relationship is said to be “symmetric.”

!!

A

C

B

D

Thus, the same network can be used to represent many different situations; this is the essence of mathematical abstraction. Networks allow us to analyze the essential relationships without irrelevant details!

24

23

28

15

4

Page 6: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

6

Computer Science

Networks: Basic Definitions

Occasionally, networks consist of “directed” edges (“one-way” streets)

Such relationships are not necessarily symmetric....

Literal one-way streets (driven in Boston lately??)

Phone calls (who called whom?), text messages, emails, etc.

Parenthood, son, daughter, etc.

Moves in Tic Tac Toe

These are different than the following, which are symmetric:

Literal two-way streets;

Brother, sister, friend

Move in chess

!!

A

C

B

D

Example 3: Map of one-way streets between four intersections

Two one-way streets make a two-way street!

Computer Science

Networks: Basic Definitions

Occasionally, networks consist of “directed” edges (“one-way” streets)

Such relationships are not necessarily symmetric....

Literal one-way streets (driven in Boston lately??)

Phone calls (who called whom?), text messages, emails, etc.

Parenthood, son, daughter, etc.

Moves in Tic Tac Toe

These are different than the following, which are symmetric:

Literal two-way streets;

Brother, sister, friend

Move in chess

!!

A

C

B

D

Example 3b: Map of one-way streets between four intersections

Weights could be distances or the number of parking meters, or…..

24

23

28

15

4

17

Page 7: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

7

Computer Science

Networks: Basic Definitions

Occasionally, networks consist of “directed” edges (“one-way” streets)

Such relationships are not necessarily symmetric....

Literal one-way streets (driven in Boston lately??)

Phone calls (who called whom?), text messages, emails, etc.

Parenthood, son, daughter, etc.

Moves in chess

These are different than the following, which are symmetric:

Literal two-way streets;

Brother, sister, friend

Move in Tic Tac Toe

!!

A

C

B

D

Example 3c: How many text messages between friends?

24

23

28

15

4

17

Computer Science

Networks: Basic Definitions

Occasionally, networks consist of “directed” edges (“one-way” streets)

Such relationships are not necessarily symmetric....

Literal one-way streets (driven in Boston lately??)

Phone calls (who called whom?), text messages, emails, etc.

Parenthood, son, daughter, etc.

Moves in chess

These are different than the following, which are symmetric:

Literal two-way streets;

Brother, sister, friend

Move in Tic Tac Toe

!!

A

C

B

D

Example 3b: How many text messages between friends?

24

23

28

15

4

17

Page 8: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

8

Computer Science

Networks: Examples

Networks are EVERYWHERE in computer science and mathematics, and you have been looking at them for years in your math classes....

!!

Computer Science

Networks: Examples

Humans have been using Networks for millennia……

!!

Page 9: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

9

Computer Science

Networks: Examples

And you’ve been using Networks for years……

!!

Computer Science

Networks: Basic Definitions

And you’ve been using Networks for years……

!!

Page 10: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

10

Computer Science

Networks: Basic Definitions

And networks exist at all scales….

!!

Computer Science

Networks: Basic Definitions

Sometimes networks are quite beautiful... in a mathy kind of way!

!!

Page 11: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

11

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

!!

A

C

B

D

B has degree 3; A has degree 2

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

!!

A

C

B

D

A and B are adjacent; A and D are not.

Page 12: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

12

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent nodes.

!!

A

C

B

D

Path: A, C, D or D, C, A

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges. The length of a path is the number of edges.

!!

A

C

B

D

Path A, C, D has length 2.

Page 13: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

13

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

!!

A

C

B

D

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

A cycle which involves every node in the whole network is called a circuit or tour.

!!

A

C

B

D

Circuit of the Network

Page 14: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

14

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

A cycle which involves every node in the whole network is called a circuit or tour.

!!

A

C

B

D

A cycle but not a circuit!

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

A cycle which involves every node in the whole network is called a circuit or tour.

Two nodes are connected if there is a path between them.

!!

A

C

B

D

A and D are connected!

Page 15: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

15

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

A cycle which involves every node in the whole network is called a circuit or tour.

Two nodes are connected if there is a path between them.

A set of nodes is connected if there is a path between each pair; a Network is connected if there is a path between any two nodes.

!!

A

C

B

D

E

F

{ A, B, C, D } is connected; so is {E, F}; the whole network is NOT connected.

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V)

Edge (Edge set E)

The degree of a Node is the number of edges it participates in .

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

A cycle which involves every node in the whole network is called a circuit or tour.

Two nodes are connected if there is a path between them.

A set of nodes is connected if there is a path between each pair; a Network is connected if there is a path between any two nodes.

!!

A

C

B

D

E

F

Now the whole network is connected.

Page 16: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

16

Computer Science

Networks: Basic Definitions

Basic Notions of Networks:

Node (Node set V); Edge (Edge set E)

Two nodes are adjacent if there is an edge between them.

A path is a sequence of adjacent edges.

A cycle (or loop) is a path that begins and ends on the same Node.

A, C, D, B, A

A simple cycle has no other repeated nodes (i.e., does not cross itself).

A, C, B, A, C, D, B, A is not simple.

Two nodes are connected if there is a path between them.

A set of nodes is connected if there is a path between each pair; a Network is connected if there is a path between any two nodes.

A tree is a connected Network with no cycles.

!!

A

C

B

D

E F

Computer Science

Network Problem: Traveling Salesman

Input: A set of cities with roads between some of them, where the length off each road is known. You can get to any city from any other city over some combination of roads. A tour is a trip which hits each city exactly once, arriving back at the starting city. The cost is the sum of the lengths of all roads traversed. Example: A Traveling Salesman wants to make a tour of all the cities to sell his wares, but is on a tight budget. He needs to know the shortest tour. Output: The shortest possible tour of all the cities.

Total Length = 97

Page 17: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

17

Computer Science

Network Problem: Minimum Spanning Tree

Input: A set of cities with roads between some of them, where the length off each road is known. You can get to any city from any other city over some combination of roads. A spanning tree is a set of edges which connect the network. Example: laying cable for cable TV service. Output: The spanning tree with the minimum total length.

Total Length = 62

Computer Science

Network Problem: Shortest Path

Input: A set of cities with roads between some of them, where the length off each road is known. Two nodes are specified. A shortest path between two nodes is a path with minimum total length among all paths between the two nodes. Example: Google Maps! Output: The shortest path

22

22

Total Length = 34

Page 18: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

18

Computer Science

Some History: The Konigsberg Bridges

The beginnings of Network theory (the mathematical study of Networks and Network problems) start with the Konigsberg Bridge Problem: The city of Konigsberg has seven bridges across the river Pregel. Is it possible to visit each area of the city by a walk that crosses each bridge exactly once? The key to the solution is to abstract the problem into a problem about Networks....

Computer Science

Some History: The Konigsberg Bridges

The city of Konigsberg has seven bridges across the river Pregel. Is it possible to visit each area of the city by a walk that crosses each bridge exactly once?

The key to the solution is to abstract the problem into a problem about Networks and then to ask the equivalent question about the Network......

Page 19: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

19

Computer Science

Some History: The Konigsberg Bridges

The city of Konigsberg has seven bridges across the river Pregel. Is it possible to visit each area of the city by a walk that crosses each bridge exactly once?

The key to the solution is to abstract the problem into a problem about Networks and then to restate the problem in terms of the Network.....

Equivalent problem: Does there exist a tour (= touches every Node) which crosses each edge exactly once?

Computer Science

Fun problem: Missionaries and Cannibals

There are literally thousands of such problems which are solved most easily by reduction to a network and consideration of simple network properties. Here is another famous one.... “In the missionaries and cannibals problem, three missionaries and three cannibals must cross a river using a boat which can carry at most two people, under the constraint that, for both banks, if there are missionaries present on the bank, they cannot be outnumbered by cannibals (if they were, the cannibals would eat the missionaries.) The boat cannot cross the river by itself with no people on board.” (Wikipedia)

Page 20: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

20

Computer Science

Another problem: Missionaries and Cannibals

“In the missionaries and cannibals problem, three missionaries and three cannibals must cross a river using a boat which can carry at most two people, under the constraint that, for both banks, if there are missionaries present on the bank, they cannot be outnumbered by cannibals (if they were, the cannibals would eat the missionaries.) The boat cannot cross the river by itself with no people on board.” (Wikipedia) The solution (in this case, one exists) is again

found by representing the situation using a Network; nodes are every allowable situation that can exist on either bank, and the edges are the allowable canoe trips. Red dots = cannibals (C) Black triangles = missionaries (M) Here is the starting situation and the result of one trip by canoe:

# M ≥ # C

Computer Science

Another problem: Missionaries and Cannibals

Red dots = cannibals Black triangles = missionaries

A solution is one that traces a path from the starting situation to the proposed ending situation. One exists!

Page 21: Networks in Math & Computer Sciencesnyder/cs109/CS109.MathLect03.GraphIntroduction.pdf · 9/14/15 1 Computer Science Computer Science Networks in Math & Computer Science CS/MA 109

9/14/15

21

Computer Science

Another problem: Missionaries and Cannibals

One Solution: 2 C cross; 1 C comes back; 2 C cross; 1 C comes back; 2 M cross; 1 M, 1 C come back; 2 M cross; 1 C comes back; 2 C cross; 1 C comes back; 2 C cross, DONE.

Using a graph, a computer can solve this problem easily and answer the following questions: •  What is one solution to the problem? •  What are all possible solutions to the problem? •  What is the shortest solution to the problem? •  Is there a solution in which you never have a missionary and a cannibal in the boat at

the same time? (NO! Look at the bottom two nodes and the edge between them!)