10_Graphs and Graph Models
I. Core Definitions
1. Undirected Graphs
-
Graph definition: A graph \(G=(V,E)\) consists of \(V\), a nonempty set of vertices (or nodes), and \(E\), a set of edges.
-
Each edge has either one or two vertices associated with it, called its endpoints.
-
An edge is said to connect its endpoints.
-
-
Remarks:
-
Graph theory is entirely unrelated to the graphs of functions studied in algebra or calculus.
-
All that matters is the connections made by the edges, not the particular geometry depicted.
-
Graphs can be categorized as finite graphs or infinite graphs.
-
-
Types of Undirected Graphs:
-
Simple graph: A graph in which each edge connects two different vertices and where no two edges connect the same pair of vertices (no loops and no multiple edges).
-
Multigraph: Graphs that may have multiple edges connecting the same vertices.
-
Pseudograph: Graphs that may include loops, and possibly multiple edges connecting the same pair of vertices.
-
-
Subset Relationship: Simple Graphs \(\subset\) Multigraphs \(\subset\) Pseudographs.
2. Directed Graphs (Digraphs)
-
Directed graph definition: A directed graph (or digraph) \(G=(V,E)\) consists of a nonempty set of vertices \(V\) and a set of directed edges (or arcs) \(E\).
-
Each directed edge is associated with an ordered pair of vertices \((u,v)\).
-
The directed edge associated with the ordered pair \((u,v)\) is said to start at \(u\) and end at \(v\).
-
-
Types of Digraphs:
-
Simple directed graph: A directed graph that has no loops and no multiple directed edges.
-
Directed multigraph: A directed graph that may have multiple directed edges from a vertex to a second (possibly the same) vertex.
-
II. Graph Models and Applications
Problems in almost every conceivable discipline can be solved using graph models.
1. Basic Modeling Examples
-
Bi-directional Railway Networks: Modeled using a simple graph. An edge \(\{a, b\}\) indicates a direct train connection between cities \(a\) and \(b\).
-
Round-robin Tournaments: Modeled using a directed graph. An edge \((a, b)\) indicates that team \(a\) beats team \(b\).
2. Social Networks
Vertices represent individuals or organizations, and edges represent relationships.
-
Friendship graphs: Undirected graphs where two people are connected if they are friends (e.g., on Facebook).
-
Collaboration graphs: Undirected graphs where two people are connected if they collaborate in a specific way.
-
Hollywood graph: Vertices are actors, and an edge connects two actors if they have appeared in the same movie.
-
Academic collaboration graph: Vertices are researchers, and an edge connects them if they have coauthored a paper.
-
-
Influence graphs: Directed graphs where there is an edge from one person to another if the first person can influence the second person.
3. Information Networks
-
The Web graph: Directed graphs. Web pages are represented by vertices, and links are represented by directed edges.
-
Citation network: Directed graphs. Research papers are represented by vertices. When a paper cites a second paper as a reference, there is a directed edge from the vertex representing the first paper to the vertex representing the second.
4. Transportation Graphs
-
Airline networks: Modeled using directed multigraphs. Airports are represented by vertices, and each flight is represented by a directed edge from the departure airport to the destination airport.
-
Road networks: Intersections are represented by vertices. Undirected edges represent two-way roads, and directed edges represent one-way roads.
5. Software Design Applications
-
Module dependency graph: Directed graphs. When a top-down approach is used to design software, dependencies between modules must be understood. Vertices represent software modules, and there is a directed edge from one module to another if the second module depends on the first.
-
Precedence graph: Directed graphs. Represents which statements must have already been executed before we execute each statement. Vertices represent statements in a computer program, and there is a directed edge from a vertex to a second vertex if the second vertex cannot be executed before the first.
6. Biological Applications
- Niche overlap graphs: Undirected graphs that model competition between species in an ecosystem. Vertices represent species, and an edge connects two vertices when they represent species who compete for the same food resources.