Book contents
- Frontmatter
- Contents
- Miscellaneous Frontmatter
- Notation
- Preface
- Part I Preliminaries
- 1 Molecular biology and high-throughput sequencing
- 2 Algorithm design
- 3 Data structures
- 4 Graphs
- 5 Network flows
- Part II Fundamentals of Biological Sequence Analysis
- Part III Genome-Scale Index Structures
- Part IV Genome-Scale Algorithms
- Part V Applications
- References
- Index
5 - Network flows
from Part I - Preliminaries
Published online by Cambridge University Press: 05 May 2015
- Frontmatter
- Contents
- Miscellaneous Frontmatter
- Notation
- Preface
- Part I Preliminaries
- 1 Molecular biology and high-throughput sequencing
- 2 Algorithm design
- 3 Data structures
- 4 Graphs
- 5 Network flows
- Part II Fundamentals of Biological Sequence Analysis
- Part III Genome-Scale Index Structures
- Part IV Genome-Scale Algorithms
- Part V Applications
- References
- Index
Summary
Many problems can be formalized as optimization problems: among all possible solutions of a problem, find one which minimizes or maximizes a certain cost. For example, in Chapter 4 we have seen algorithms that find the shortest path between two vertices of a graph, among all possible such paths. Another example is a bipartite matching problem, in which we have to match the elements of one set with the elements of another set, assuming that each allowed match has a known cost. Among all possible ways of matching the two sets of elements, one is interested in a matching with minimum total cost.
In this chapter we show that many optimization problems can be reduced (in the sense already explained in Section 2.3) to a network flow problem. This polynomially solvable problem is a powerful model, which has found a remarkable array of applications. Roughly stated, in a network flow problem one is given a transportation network, and is required to find the optimal way of sending some content through this network. Finding a shortest path is a very simple instance of a network flow problem, and, even though this is not immediately apparent, so is the bipartite matching problem.
One of the most well-known network flow problems is the maximum flow problem (whose definition we recall on page 46). In this chapter we focus instead on a more general version of it, called the minimum-cost flow problem. In Section 5.1 we give an intuition of flow, and we show that, in a DAG, a flow is just a collection of paths. This basic observation will allow us to reduce the assembly problems in Chapter 15 to minimum-cost flow problems. In Sections 5.3 and 5.4 we will discuss matching and covering problems solvable in terms of minimum-cost flow, which will in their turn find later applications in the book.
- Type
- Chapter
- Information
- Genome-Scale Algorithm DesignBiological Sequence Analysis in the Era of High-Throughput Sequencing, pp. 41 - 68Publisher: Cambridge University PressPrint publication year: 2015