系统架构设计师
前言
数学是一种严谨、缜密的科学,学习应用数学知识,可以培养系统架构设计师的抽象思维能力和逻辑推理能力,在从事系统分析工作时思路清晰,在复杂、紊乱的现象中把握住事物的本质,根据已知和未知事物之间的联系推断事物发展趋势和可能的结果。
一、最小生成树
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 [1]最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。
- 某小区有七栋楼房1~7(见下图),各楼房之间可修燃气关掉路线的长度(单位:百米)已标记在连线旁。为修建联通各个楼房的燃气管道,该小区内部燃气关掉的总长度至少为多少百米?
克鲁斯卡尔算法:最短边
克鲁斯卡尔(Kruskal)算法从另一途径求网的最小生成树。其基本思想是:假设连通网G=(V,E),令最小生成树的初始状态为只有n个顶点而无边的非连通图T=(V,{}),概述图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点分别在T中不同的连通分量上,则将此边加入到T中;否则,舍去此边而选择下一条代价最小的边。依此类推,直至T中所有顶点构成一个连通分量为止
普里姆算法:最近顶点
它规定图G = (V,E)是一个带权无向连通图,其中V表示所有顶点的集合,E表示边与顶点之间的关系。算法的目标是从图中的一个顶点出发,构建一颗包含所有顶点的最小生成树。在算法的每一步