顶点与边表达关系
图用顶点表示对象,用边表示对象间选定的关系。道路网络可以把路口当作顶点,程序分析也能把状态或对象当作顶点。建立模型前要说明一条边究竟代表什么:可到达、相邻或依赖是不同关系,顶点的连接图并不会自动替建模者决定这些含义。
参考:[1]
方向与权重改变问题
有向边区分从一个顶点到另一个顶点的方向,无向边则表达对称连接。边还可以带费用、距离或容量等权重,形成不同问题。寻找边数最少的路径,与寻找总权重最低的路径,可能得到不同结果;算法的选择需要与图的方向、权重和其他假设相配合。
参考:[2]
遍历揭示可达结构
从一个起点逐步访问邻居,可以判断哪些顶点能够抵达。深度优先与广度优先采用不同的推进次序,适合不同分析任务;在无权图中,广度优先的层次与最少边数距离相联系。标记已访问对象有助于处理循环,避免同一部分因为存在多条来路而被无限重复展开。
参考:[1]
表示与绘制分开
邻接表把每个顶点的邻居存起来,邻接矩阵用位置表示连接,各有空间与访问成本。图论讨论的连接性质,通常不取决于屏幕上把点画在哪里。清楚区分结构、存储表示和可视布局,有助于在改变图形展示时保留同一组关系,并为大规模网络选择合适的处理方式。
参考:[2]