/images/hugo/avatar.png

35 深度和广度优先搜索

图的深度和广度优先搜索

1. 特性

上一节我们讲解了图的存储和表示,这一节我们来介绍图上的搜索算法。图的搜索方法有很多,最常见的就是深度和广度优先搜索,除此之外还有 A*、IDA* 等启发式搜索算法。因为邻接表更加常用,我们就以邻接表作为图的存储方式来讲解最基础的深度和广度优先算法。

34 图的表示

如何表示一个图

1. 特性

从本节开始,我们将进入图的学习。图是一种比树更复杂的非线性结构,图中有以下一些专用术语:

  1. 顶点: 图中的节点被称为顶点
  2. 边: 顶点之间存在链接关系,可以有方向,也可以有权重
  3. 有向图: 边有方向的图
  4. 带权图: 边存在权重的图
  5. 度: 顶点包含的边数,在有向图中,度分为出度和入度
  • 出度表示以顶点作为起点的边,该边也称为顶点的输出边
  • 入度表示以顶点作为终点的边,该边也称为顶点的入射边

很显然在表示和存储一个图时,我们需要保存图的顶点,边,以及边的方向和权重。而图的存储有两个常见方法: 邻接矩阵和邻接表

33 动态规划实战

编程思想之动态规划实战

1. 动态规划总结

上一篇,我们总结了动态规划的使用场景,以及如何利用动态规划去解决问题了,总结了:

  1. 一个模型三个特征: 多阶段决策最优解模型,最优子结构,无后效性,重复子问题
  2. 状态转移表法
  3. 状态转移方程法

并总结对比了四中编程思想之间的区别。这些东西都非常理论,需要慢慢消化。本文是动态规划的实战篇,也是编程思想系列的最后一篇。

30.2 zabbix安装与入门

zabbix安装与入门

/images/linux_mt/linux_zabbix.jpg

前面我们对一个完整的监控系统包含的内容做了一个简单概述,各种监控系统的开源实现无非都是围绕我们介绍的内容展开。在监控系统的众多实现中 zabbix 最为常见,功能也最为强大,本节我们首先对 zabbix 做个详细介绍,内容包括:

32 动态规划理论

编程思想之动态规划理论

1. 再论动态规划

动态规划比起其三个算法思想更难懂。上一篇文章我们从实践角度介绍了如何利用动态规划解决问题。有了这个基础,接下来我们来解决如下几个问题:

30.1 运维故障发现与监控系统应用

运维故障发现思路与监控系统应用

/images/linux_mt/linux_zabbix.jpg

运维领域有一句话"我们不应该允许没有被监控的系统上线的",显然监控对于我们快速发现问题解决问题至关重要。本章我们就来学习最常用的监控系统 zabbix 的安装,配置和使用。