cse 222 systems programming graph theory basics dr. jim holten

31
CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

Post on 21-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222Systems Programming

Graph Theory Basics

Dr. Jim Holten

Page 2: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222201/21/09

Introduction

• Basic Definitions

• Concepts and Algorithms

• Applications

Page 3: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222301/21/09

Basic Definitions

• Nodes aka Vertices

• Links aka Edges

aka Arcs

Page 4: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222401/21/09

Basic Definitions

• Subgraphs

• Undirected vs Directed Graphs

• Paths, Distances, and Graph Diameter

• Connected Graphs

• Components of a Graph

• Fully connected graph or subgraph

Page 5: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222501/21/09

Undirected Graph

Page 6: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222601/21/09

Directed Graph

Page 7: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222701/21/09

Basic Definitions

• Node Attributes aka Labels, Indices,

Weights, Categories, etc.

• Link Attributes aka Labels, Indices,

Weights, Categories, etc.

• A Semantic Graph is a graph partitioned

based on node or link attribute values

Page 8: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222801/21/09

Semantic Graph

AuthorsDocuments

Concepts

Page 9: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 222901/21/09

More Definitions

• A Hypernode replaces a collection of

nodes and their included links.

• A Hypergraph is any graph that includes

one or more hypernodes.

Page 10: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221001/21/09

Example of Hypergraph

AuthorsDocuments

Concepts

Page 11: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221101/21/09

Hypergraph of Social Network

Page 12: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221201/21/09

Some Concepts

• A cluster is a subgraph made up of set of

highly interconnected nodes.

• A critical node is a node on a unique path

between two nodes or subgraphs of

interest.

• A critical link is a link on a unique path

between two nodes or subgraphs of

interest.

Page 13: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221301/21/09

Related Algorithms

• Finding clusters is defined many ways

– Fully connected subgraph or just better than

some threshold on connectedness?

– Is a node only connected to a node in the

cluster to be included in the cluster?

• Finding critical paths, nodes, or links

Page 14: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221401/21/09

Related Concepts

• Projections of nodes or subgraphs are

mappings via directed links.

• The domain subgraph includes the projection's

"from" nodes.

• The range subgraph includes the projection's

"to" nodes.

• Basis Node Set is a minimal set of nodes that

have a path to every other node

Page 15: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221501/21/09

Projection Mapping

Page 16: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221601/21/09

Subset Projections

Page 17: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221701/21/09

Related Concepts

• There are multiple ways of looking at a

single collection of nodes and links.

• Are multiple graphs just a single multi-

component graph?

• Interdependencies among multiple graphs

can be useful.

Page 18: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221801/21/09

Interdependencies

Page 19: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2221901/21/09

Applications

• Software Organization

• Activity Sequence Organization

• Interactions between processes

Page 20: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222001/21/09

Software Organization

• Flow charts

• Data interdependencies

• Interactions between processes

Page 21: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222101/21/09

Data Organization Chart

Page 22: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222201/21/09

Processes Organization Chart

Page 23: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222301/21/09

Activity Sequence Organization

• Gantt and Pert charts

• Project resource planning charts

• Storyboarding

Page 24: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222401/21/09

Storyboard of the

Software Development Process

Page 25: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222501/21/09

Network Modeling Applications• Communications (Internet, etc.)

• Energy distribution (electric power, natural gas,

etc.)

• Transportation (highways, railways, waterways,

etc)

• Social associations

• Financial and product flows

Page 26: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222601/21/09

Infrastructure Networks

Page 27: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222701/21/09

Critical Infrastructure

Interdependencies

Page 28: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222801/21/09

Physics Models

• Mesh Models

– Space segmented into volumes

– Volumes surrounded by faces and edges

– Edges meet at vertices

• Model element type dependencies form a

graph of interdependent element sets

Page 29: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2222901/21/09

Mesh Models

Page 30: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2223001/21/09

Element Type Dependencies

Page 31: CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten

CSE 2223101/21/09

Summary

Graphs are a significant factor in the present

and the future of computer science!