250 likes | 272 Views
Explore network flows, including minimum cost flow, shortest path, maximum flow problems, and more. Learn how to model, solve, and apply these concepts in various real-world scenarios.
E N D
INTRODUCTION TO NETWORK FLOWS CONTENTS • Introduction to Network Flows (Sections 1.1 and 1.2) • Network Notation (Section 2.2) • Network Representations (Section 2.3)
2 4 5 7 1 6 3 2 4 5 7 1 6 3 Directed and Undirected Networks DIRECTED GRAPH: UNDIRECTED GRAPH:
-15 2 2 4 2 3 1 5 4 4 5 7 1 10 10 6 3 6 6 3 5 -5 Minimum Cost Flow Problem Determine a least cost shipment of a commodity through a network in order to satisfy demands at certain nodes from available supplies at other nodes. Arcs have capacities and cost associated with them. • Distribution of products • Flow of items in a production line • Routing of cars through street networks • Routing of telephone calls
Minimum Cost Flow Problem (contd.) Mathematical Formulation: where • Supply nodes (b(i) > 0); Demand nodes (b(i) < 0);Transhipment nodes (b(i) = 0) • Mass balance constraints (flow in - flow out = supply/demand) • Flow bound constraints (lower and upper bound constraints)
20 2 4 10 30 s t 15 40 1 6 35 20 25 3 5 35 Shortest Path Problem Identify a shortest path from a given source node to a given sink node. • Applications: • Finding a path of minimum length • Finding a path taking minimum time • Finding a path of maximum reliability
20 2 4 10 30 s t 15 40 1 6 35 20 25 3 5 35 Maximum Flow Problem Determine the maximum flow that can be sent from a given source node to a sink node in a capacitated network. Determining maximum steady-state flow of: • petroleum products in a pipeline network • cars in a road network • messages in a telecommunication network • electricity in an electrical network
10 4 2 35 15 20 1 25 40 3 5 30 Minimum Spanning Tree Problem Find a spanning tree of an undirected network of minimum cost (or, length). • Constructing highways or railroads spanning several cities • Designing local access network • Making electric wire connections on a control panel • Laying pipelines connecting offshore drilling sites, refineries, and consumer markets
2 4 5 7 1 6 3 Network Notation Network (or graph) G = (N, A) N : Node Set = {1, 2, 3, 4, 5, 6, 7} A : Arc Set = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 6), (4, 5), (4, 7), (5, 2), (5, 3), (5, 7), (6, 7)}
2 4 5 7 1 6 3 Tails and Head Nodes • Tail Node : Node i is the tail node of arc (i, j) • Head Node : Node j is the head node of arc (i, j) • Endpoints : Nodes i and j are endpoints of arc (i, j) • Arc Adjacency List A(i) = {(i, j) : (i, j) A} • Observe that
2 4 5 7 1 6 3 Walks • Subgraph: G' = (N', A') is a subgraph of G = (N, A) if N' N and A' A. • Spanning Subgraph: G' = (N', A') is a spanning subgraph of G = (N, A) if N' = N and A' A. • Walk: A walk in a directed graph G is a subgraph of G consisting of a sequence of nodes and arcs. • Directed Walk: A directed walk in which all arcs have the same orientation.
2 4 5 7 1 6 3 Paths and Cycles • Path : A walk without any repetition of nodes. • Directed Path: A directed walk without any repetition of nodes. • Cycle: A closed path that starts and ends at the same node. • Directed Cycle: A directed version of a cycle. • Acyclic Network: A network is acyclic if it contains no directed cycle.
2 4 2 4 5 7 1 5 7 1 6 3 6 3 Network Connectivity • Connected Graph: If every pair of nodes is connected by a path. • Strongly Connected Graph: If every pair of nodes is connected by a directed path. • Disconnected Graph: If some pair of nodes is not connected by a path. Maximally connected subgraphs of a disconnected graph are called components.
2 4 S 5 7 1 6 3 Cuts • Cut: A cut is a set of arcs whose deletion disconnects the network into two components S and and no subset of it has this property. A cut is represented by [S, ].
2 4 2 4 1 7 1 6 3 6 3 Trees • Tree: A tree is a connected graph that contains no cycle. • A tree on n nodes contains exactly (n-1) arcs. • A tree has at least two leaf nodes. • Every two nodes of a tree are connected by a unique path.
2 4 5 7 1 2 4 6 3 7 1 5 6 3 Spanning Trees • Spanning Tree: A subgraph of a graph which is a tree and spans all nodes of the graph. • Forest: A graph that contains no cycle is a forest. • A forest on n nodes and k components has n-k arcs.
8 8 7 7 3 6 3 2 1 6 2 1 5 4 5 4 Directed Out-Trees and In-Trees • Directed-out-tree: A tree in which the unique path in the tree from node s to every other node is a directed path. • Directed-in-tree: A tree in which the unique path in the tree from any node to node s is a directed path.
5 1 1 3 4 7 2 5 4 8 3 2 6 Bipartite Graph • Bipartite Graph: A graph G = (N, A) is a bipartite graph if node set N can be partitioned into the sets N1 and N2 such that each arc (i, j) has either (i) i N1 and j N2; or (ii) i N2 and j N1. • A graph G is a bipartite graph if and only if every cycle in it has even number of arcs.
Network Representations • Role of data structures is crucial in developing efficient algorithms. The manner in which networks are stored in a computer determines the performance of a network algorithm. • We need to perform some of the following operations: • Scan through the node list • Scan through the arc list • Determine all arcs emanating from a specific node i • Determine all arcs entering a specific node i • Determine all arcs emanating from or entering a specific node i
Common Network Representations • Node-arc incidence matrix • Node-node adjacency matrix • Adjacency list • Forward star representation • Reverse star representation • Forward and reverse star representations
Node-Arc Incidence Matrix Representation Stores the network G = (N, A) as an nxm matrix N = {mij}. (15,40) 4 2 (25,30) (15,30) (45,10) 1 (35,50) (45,60) (35,50) 3 5 (25,20) • It is the constraint matrix for the minimum cost flow problem. • Space and time inefficient.
(15,40) 4 2 (25,30) (15,30) (45,10) 1 (35,50) (45,60) (35,50) 3 (25,20) Node-Node Adjacency Matrix Representation Stores the network G = (N, A) as an nxn matrix H = {hij} with 5 • Can store costs and capacities too • Easy to construct and manipulate • Space and time inefficient for sparse networks (that is, networks with m << n2)
(15,40) 4 2 (25,30) (15,30) (45,10) 1 (35,50) 3 35 50 0 (45,60) 1 2 25 30 2 4 15 40 0 (35,50) 3 3 2 45 10 0 (25,20) 4 3 15 30 5 45 60 0 5 3 25 20 4 0 35 50 Adjacency List Representation • We maintain each adjacency list A(i) as a linked list of cells. • We maintain an n-dimensional array first, where first(i) stores a pointer to the first cell in A(i). 5 • Space and time efficient • Little complex to manipulate
(15,40) 4 2 (25,30) (15,30) (45,10) 1 (35,50) (45,60) point (35,50) 1 1 3 (25,20) 2 3 4 3 4 5 5 7 6 9 Forward Star Representation • We first order the arcs in the increasing order of their tail nodes and store information in m-dimensional arrays in this order. • We maintain an n-dimensional array point, where point(i) stores the index where information about arcs emanating from node i begins. 5
trace 1 1 2 25 30 4 1 3 1 3 35 50 1 1 4 2 4 15 40 2 3 5 3 2 45 10 5 6 7 4 3 15 30 7 8 9 4 5 45 60 8 9 5 3 25 20 3 5 4 35 50 6 Forward and Reverse Star Representation head tail point cost capacity rpoint 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 8 8