第1章 概论 1
1.1 网络优化问题的例子 1
1.2 图与网络 2
1.2.1 有向图与网络的基本概念 2
1.2.2 无向图与无向网络的基本概念 5
1.3 图与网络的数据结构 6
1.3.1 邻接矩阵表示法 6
1.3.2 关联矩阵表示法 7
1.3.3 弧表表示法 7
1.3.4 邻接表表示法 8
1.3.5 星形表示法 8
1.4 计算复杂性的概念 11
1.4.1 组合最优化问题 11
1.4.2 多项式时间算法 13
1.4.3 多项式问题 16
练习题 18
第2章 算法基础 19
2.1 NP,NPC和NP-hard概念 19
2.1.1 问题、实例与输入规模 19
2.1.2 判定问题 21
2.1.3 非确定多项式问题类(NP) 22
2.1.4 NP完全问题类(NPC) 25
2.2 算法设计与分析 29
2.2.1 贪婪算法 30
2.2.2 动态规划 31
2.2.3 线性规划方法——全幺模矩阵 34
2.2.4 两分法 36
2.2.5 网络搜索算法 37
2.3 小结 38
练习题 38
第3章 最小树与最小树形图 41
3.1 树的基本概念 41
3.2 最小树算法 44
3.2.1 Kruskal算法 44
3.2.2 Prim算法 46
3.2.3 Sollin算法 48
3.3 最小树形图 49
3.4 最大分枝 53
练习题 56
第4章 最短路问题 58
4.1 最短路问题的数学描述 58
4.2 无圈网络与正费用网络:标号设定算法 60
4.2.1 Bellman方程 60
4.2.2 无圈网络 61
4.2.3 正费用网络 62
4.3 一般费用网络:标号修正算法 65
4.3.1 Bellman-Ford算法 65
4.3.2 一般的标号修正算法 67
4.3.3 Floyd-Warshall算法 68
练习题 70
第5章 最大流问题 73
5.1 最大流问题的数学描述 73
5.1.1 网络中的流 73
5.1.2 最大流问题 76
5.1.3 增广路定理 77
5.2 增广路算法 79
5.2.1 Ford-Fulkerson标号算法 79
5.2.2 残量网络 81
5.2.3 最大容量增广路算法 82
5.2.4 容量变尺度算法 83
5.3 最短增广路算法 83
5.3.1 距离标号 84
5.3.2 最短增广路算法 85
5.3.3 复杂度分析 87
5.4 一般的预流推进算法 88
5.4.1 一般的预流推进算法 88
5.4.2 复杂度分析 91
5.5 最高标号预流推进算法 94
5.5.1 最高标号预流推进算法 94
5.5.2 算法的复杂度分析 94
5.6 单位容量网络上的最大流算法 96
5.6.1 单位容量网络上的最大流算法 97
5.6.2 单位容量简单网络上的最大流算法 98
练习题 98
第6章 最小费用流问题 102
6.1 最小费用流问题的数学描述 102
6.1.1 最小费用流问题 102
6.1.2 最小费用流模型的特例及扩展 104
6.2 消圈算法与最小费用路算法 106
6.2.1 消圈算法 106
6.2.2 最小费用路算法 108
6.3 原始-对偶算法 111
6.3.1 对偶问题及互补松弛条件 111
6.3.2 原始-对偶算法 112
6.4 瑕疵算法 115
6.5 松弛算法 122
6.6 网络单纯形算法 127
6.6.1 算法的一般思路 128
6.6.2 处理退化的方法 131
6.6.3 初始的基本可行解 133
6.6.4 容量有界的情形 133
练习题 136
第7章 匹配问题 141
7.1 匹配问题的数学描述 141
7.2 二部基数匹配问题 144
7.2.1 增广路算法 144
7.2.2 应用简单网络上的最大流算法 147
7.3 非二部基数匹配问题 147
7.4 二部赋权匹配问题 151
7.5 非二部赋权匹配问题 152
练习题 162
索引及英文关键词 165
参考文献 170