Victor Adamchik Fall of 2005
1. Basic Vocabulary 2. Regular graph 3. Connectivity 4. Representing Graphs
A.Aho and J.Ulman acknowledge that “Fundamentally, computer science is a science of abstraction.” Computer scientists must create abstractions of real-world problems that can be represented and manipulated in a computer. Sometimes the process of abstraction is simple. For example, we use a logic to design a computer circuits. Another example - scheduling final exams. For successful scheduling we have to take into account associations between courses, students and rooms. Such set of connections between items is modeled by graphs. Let me reiterate, in our model the set of items (courses, students and rooms) won't be much helpful. We also have to have a set of connections between pairs of items, because we need to study the relationships between connections. The basic idea of graphs were introduced in 18th century by the great Swiss mathematician Leonhard Euler. He used graphs to solve the famous Königsberg bridge problem. Here is a picture (taken from the internet)
21-127: Concepts of Mathematics
German city of Königsberg (now it is Russian Kaliningrad) was situated on the river Pregel. It had a park situated on the banks of the river and two islands. Mainland and islands were joined by seven bridges. A problem was whether it was possible to take a walk through the town in such a way as to cross over every bridge once, and only once. Here is the graph model of the problem
A graph is a set of points (we call them vertices or nodes) connected by lines (edges or arcs). The simplest example known to you is a linked list.
The Web: The entire Web is a graph, where items are documents and the references (links) are connections. Networks: A network consist of sites that send and recieve messages of various types. Program Structure: A compiler builds a graph to represent relationships between classes. The items are classes; connections are represented by possibility of a method of one class to call a method from another class
A substantial amount of definitions is associated with graphs. We start with introduction to different types of graphs A graph that have nonempty set of vertices connected at most by one edge is called simple When simple graphs are not efficient to model a cituation, we consider multigraphs. They allow multiple edges between two vertices. If that is not enough, we consider pseudographs. They allow edges connect a vertex to itself.
What do these three types of graphs have in common? The set of edges is unordered. All such graphs are called undirected. A directed graph consist of vertices and ordered pairs of edges. Note, multiple edges in the same direction are not allowed.
21-127: Concepts of Mathematics
If multiple edges in the same direction are allowed, then a graph is called directed multigraph. Usually by a graph people mean a simple undirected graph. No directions, no self-loops, no multiple edges. Be careful and watch out! An edge may also have a weight or cost associated with it. If a, b is an edge we might denote the cost by c a, b In the example below, c a, b c b, a 7.
Two vertices are called adjacent if there is an edge between them. The degree of a vertex in an undirected graph is the number of edges associated with it. If a vertex has a loop, it contributes twice.
In the above picture, the degree of vertex a is 2, and the degree of vertex c is 4. Theorem (The handshaking theorem). Let G be an undirected graph (or multigraph) with V vertices and N edges. Then 2N v V
Exercise. Suppose a simple graph has 15 edges, 3 vertices of degree 4, and all others of degree 3. How many vertices does the graph have? 3*4 + (x-3)*3 = 30 In a directed graph terminology reflects the fact that each edge has a...