ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:271.54KB ,
资源ID:7869021      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7869021.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图论论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图论论文.docx

1、图论论文图与网络优化期末论文题目:图论在给水调度模拟中的应用 学 院:信息与管理科学学院 学 号:1110110031 姓 名:安苗苗 班 级:金融数学11-2班 指导老师:王亚伟2014年5月31日图论在给水调度模拟中的应用 摘 要: 本文提出了水厂分界线的表达方法:使用混水节点和混水管来划分水厂的分界线,类比同位素示踪法给出了可行的寻找混水节点和混水管的方法。并通过使用图论的基本原理和算法给出了程序算例并全部给出了证明。通过对大量实测数据的分析,发现了数据的误差并提出了误差分析和处理的方法。给出了通过逻辑操作进行的数据分析方法并给出了分析的结果。对不同时刻的采样数据做了大量的分析并给出了分

2、析结果提出了定性分析的绝对混水节点和混水节点包络线的概念和每个节点在一个周期的混水概率。并进一步给出了定量分析的不同时刻的混水比例。强调了数据可视化的思想并通过MATLAB实现了数据可视化并给出了全部数据的可视化结果。使用虚拟地图的方式标明了混水管的位置和地理信息。利用VC和MATLAB各自的长处,并利用文本文件做VC主程序和MATLAB数据处理、图象显示程序的接口,从而避免了复杂的VC与MATLAB混合编程。本文运用了图论的基本理论并对赋权有向图、代价邻接矩阵、有向图的连通性等概念做了扩展。给出一些新的定义方法和定理并全部给予证明。提出了新的给水网络的定量算法并在对算法的阐述的同时也给出了算

3、法的正确性和健壮性证明,全部算法是作者独立的工作成果。本文得到的结论和程序可以直接供工程实际使用。在对源程序做适当的修改以后可以作为一个子系统嵌入水厂的管理系统,为水厂的调度提供参考数据。关键词: 给水管网 区域 分界线 混水管 混水节点 示踪法 模拟 图论方法 数据可视化 图的遍历一、问题的提出随着现代科学技术的快速发展,作为系统工程指标之一的可靠性指标也越来越受到重视,并极大地改善了各种系统的工作性能1。在现代的生活和工业给水技术中,人们为了提高管道的可靠性,便于在出现灾害、故障、检修和扩建的时候不至于影响大范围的区域,常常把供水管道布置成网状。甚至在给水管网内还有不止一个水泵、水塔和水厂

4、。所以整个供水区域的网络拓扑模型变得极为复杂。在解决管网的优化,给水调度,为管网的维修和扩建提供原始资料,对水塔、水泵、管道的性能做评测以及对各个水厂的效益、服务质量做评测,往往需要知道在一个时刻不同水厂的供水分界线的问题。二、 水和管网的水力学特性建模1、 密度:一般情况下水的密度随压强和温度变化的变化量很小,可看作常数。2、 粘滞性:水不是理想的牛顿流体,能够由于抵抗内摩擦的缘故而做功耗能,这是水管中水头高度损失的主要原因。3、 连续性:对于一个封闭的空间区域和不可压流体,任意时间段流进、流出的体积相同。4、 能量守恒方程2(伯努利方程): 5、动量方程2: 6、管网的克契霍夫方程1:1)

5、 节点方程(不可压缩流体的连续性方程在管网的体现): 式子中为节点编号,表示连接节点的各个管段的流量表示节点的流量。和都以流进节点为正,否则为负。2) 节点方程(不可压缩流体的能量守恒方程在管网中的体现): 式子中属于基环的管段的水头损失; 属于基环的闭合压差或者增压、减压装置产生的水压差。 三、 图论的有关理论:1、向图的定义3:有向图是由顶点集合和有向边集合组成的。有向边(弧)的顶点是有序对,在至的有向边中,称为顶点,成为终点。 2、有向图的表示3:表示图的最简单直接的方式就是邻接矩阵。假定图中有向图的顶点可以以某种方法可以排成序,则的邻接矩阵是个阶的布尔逻辑矩阵。 当为起点,为终点的时候

6、 否则 3、 赋权有向图3:在实际的模型中,往往不仅仅要表示出边的方向、边还有其他的属性(譬如在给水管网中,管道还有流量、长度、半径、粗糙系数等信息),即边是有权的。所以我们把邻接矩阵改造一下,把逻辑值改为具体的表达了权的数值,称其为代价邻接矩阵,就可以表达出边或者节点的权数。当然,如果想表达更多的权,就必须采用更加新的表示方法了。4、扩展的代价邻接矩阵:当顶点和边有多种属性的时候,我们可以把每个属性都做成一个代价邻接矩阵。然后按照一种顺序把这些代价邻接矩阵组成一个三维的数组,该数组的每个切片是一个代价邻接矩阵。在数据结构中,可以更加方便地用结构体实现(代价邻接矩阵的每个元素是一个结构体)。5

7、、有向图的环:如果从一个顶点出发顺着一条有向路径能回到该节点,则这条有向路径称为环。6、有向图的连通性3:在对图进行遍历的时候,有向图和无向图的最大的区别就是除非其是强连通的,否则不能保证一次遍历能访问所有的节点。7、完全有向图:对于具有n个节点的有向图,弧数最多可达条。具有最大弧数的图称为完全有向图。完全有向图一定有环,证明略。8、有向图的有向连通性3:如果把所有没有父节点的节点称为根节点,则如果一个有向图有n个根节点就一定需要且只需要n次遍历就可以访问完所有的节点。证明:充分性:如果一个有向图需要且只需要n次遍历才可以访问所有的节点,则至少该图有n个节点没有父节点,至多也只有n个节点没有父

8、节点。所以该图至少有n个根节点。 必要性:如果一个有向图有n个根节点,由于根节点没有父节点,所以至少要有n次从根节点开始的遍历才可以访问所有的根节点。 9、子图3:如果有两个图和,且,则是的子图。 四、水力管网的模型的建立:管网的拓扑性质可以用图论的基本原理来分析。图由“弧”和“顶点”两部分组成,给水管网的拓扑模型可以抽象认为是由节点(用户和水厂)以及弧(管段)组成的有向图,并且是无圈无环的有向图(由克契霍夫的环路定律和能量耗散可知不会有圈和环)。边的方向就是水流的方向。由于管道和节点都有很多属性,这样我们就把两个水厂的供水区域管网抽象成了无圈无环的多属性赋权有向图。五、不同水厂的水分界线问题

9、的描述:自然而然我们很容易想到所谓的分界线就可以用混合了两个(或者两个以上)水厂的水的节点和管道来描述。在现代的科学技术中,人们常常用同位素来标识流体进行示踪。我们采用同样的方法假想在水中加入这样的物质,并符合4点假设:假设1、该示踪物质只会随水流的流动而向下游流动,不能逆着水流扩散。假设2、该示踪物质每到一个管道或者一个节点都能和水充分混合,即如果一个节点出现该示踪物质则该节点所有的下游节点都一定有该示踪物质。 假设3、这种示踪的物质可以被传感器经济而方便地检测出来,并且该示踪物质对人体没有危害。假设4、这两种示踪物质混合后其性质不会发生变化。我们现在设想这两个水厂的水中各自搀杂了一种符合上

10、面4条假设的物质(我们为了表述的方便不妨称甲水厂搀杂的物质为甲物质,而乙水厂搀杂的物质称为乙物质),那么显然如果一段水管中的水如果全部来自一个水厂,则只可以检测出一种物质。显然只能检测出甲物质的水管就是甲水厂的供水区域;只能检测出乙物质的水管就是乙水厂的供水区域;而如果有一个区域的水管中同时能检测出这两种物质,显然这段水管同时使用了来自两个水厂的水(这些同时能检测出两种物质的节点我们称为混水节点,能同时检测出两种物质的水管我们称为混水管,且混水管是个矢量(有向边的方向)。显然,由前面的四点假设我们可以得到以下结论:1、 所有混水管的终点都是混水节点,所有混水节点都一定至少是一个混水管的终点。2

11、、 所有顶点是混水节点的水管都一定是混水管,所有混水管的顶点都一定是混水节点。3、每个节点的所有的流量(包括节点的用水或者供水量)之和为0(水的连续条件)。4、由假设1、2、3我们可以得到混水管的拓扑规律如下:混水管是一定单连通域(相互贯通的),非混水管也一定是单连通域。(直观上也是很容易解释的,因为水是连续流动的)。这样,我们用水管两端的节点来描述水管的方法就可以方便地描述出混水管。所以如果我们想找出一个界线来区分这两个水厂的供水区域,即问题中所提出的“分水线”,最好的就是使用混水管了,混水管就把区域划分成两部分,一边是甲水厂的供水区域,另一端就是乙水厂的供水区域。而混水管和混水管所连接的这

12、些节点就构成了分界线。 六、模型的建立当然,我们不可能真的去在自来水中加入类似于前面提到的物质。但是那种方法显然是一种很好的想法。在计算机技术发达的今天,虚拟实验已经成为科学工程实验的主要手段之一,譬如核物理学家们就可以通过数值模拟来减少核试验的次数,极大地减少了投资、工期和对环境的危害。流体力学也用数值模拟部分地代替风洞实验,取得很好的效益。所以我们可以使用计算机模拟来完成上面提到的想法。在计算机上完成我们的虚拟实验。这样我们就不必要真的在水中加入什么物质,而直接地通过传感器来测量一定时间间隔下的采样点的水压强(水头高度H来描述),单位时间的流量Q,和水厂水管布局的地理信息系统信息(用水节点

13、的坐标,各个管段的管半径、长度),运用计算机虚拟技术就可以很方便地动态、实时地计算出分水界线的位置,直观、清晰、代价小。还可以用来作为反馈来控制供水。 我们已经通过传感器得到了上面所提到的数据(见附件一),那么现在要做的事情就是运用水的力学特性来利用上面的数据建立寻找混水管的的方法。俗话说:人往高处走,水往低处流,在力学的概念上,这个“高”可以用更加本质的物理量“水头高度”来衡量。显然,用一段水管连接两个不同水头高度的节点水显然会往水头高度低的节点流动。换句话说就是沿着水流动的方向水头高度是逐渐降低的(管道的阻尼造成沿程水头损失)。这样,我们可以认为如果我们真的在水管中加入我们提到的那种物质,

14、则那种物质一定是顺着压强降低的方向扩散(顺水流而下)。这样我们就可以利用我们前面得到的测量数据,让计算机从一个 根节点(水厂)开始搜寻所有与该节点相连接的有向边(水管)中方向(水流方向)是向下(流出)的边,然后“顺藤摸瓜”地找到下一个节点,在节点上做个逻辑标志来标识该水厂的水流过该节点,然后继续向下搜寻,并且继续在水流经过的节点上做标志。那么显然当我们遍历了这个图以后就可以找出所有该水厂的水流经的节点和管道。显然,当我们对甲、乙两个水厂都这样遍历一遍以后就可以把所有的节点做上标志。运用我们前面提到的思想,只有甲厂标志的节点就属于甲厂的供水区域,只有乙厂的标志的节点就属于乙厂的供水区域,而同时拥

15、有两个标志的节点就是同时使用两个水厂的水。以该节点为顶点的水管就一定是混水管。运用本文开头所描述的混水管和混水节点的关系就可以很方便地通过混水节点来找到混水管。这样显然我们就把实际的供水区域的管网抽象成了一个有向图。当我们分别从各个根节点(水厂)遍历一次这个有向图并把是否经过该节点作为逻辑值(真为1,假为0)记录到节点中去。这样,每个节点都有两个逻辑值。然后我们再把每个节点的这两个逻辑值进行与操作,再存入节点。显然,如果这两个逻辑值求与以后的结果还为真的话(两个值都为1),那么这个节点就是混水点。到此为止,我们已经把分界线的寻找转化成了有向图的遍历问题,用计算机建立起该有向图的模型,调用实际测

16、得的数据我们就可以通过模拟的方法找到得到解。七、模型的求解a)、模型的算法分析:电子计算机求解管网问题的时候,首先考虑用哪种形式可以比较方便地将管网图形的信息输入计算机,方法是多种多样的,但是还必须考虑以下条件:1)、在内容上,信息是充分具体的,而在存储上存储量尽可能地小。2)、在形式上,要便于计算机的调用,便于信息的录入,并且同时还便于以后维修、扩建的时候的更改。 有向图的计算机描述有很多种方法:有邻接矩阵方法、邻接多重表示方法、边表示法等等。我们为了程序有更好的扩展性,采用了结构体的概念:代价邻接矩阵的每一个元素都是一个结构体,可以有多个成员,每个成员都是该结构体的一种属性,其中有一个成员

17、表达了判断逻辑。这样就可以把代价邻接矩阵扩展到了对具有多个属性的情况,良好的通用性。b)结果:采用上述的算法编制的程序计算出了每个采样点的结果(被保存在以原来的数据名后加result的文本文件内),但是,这样的结果虽然概念清晰,但是不直观,我们采用状态表的描述方法给出了全部数据的结果,同时利用数据可视化技术8,并运用MATLAB67完成了可视化的结果把结果保存到了一组电子地图上。这样可以对任意一个具体的区域进行查询(结果被保存在一组以采样点数据同名的MATLAB的fig文件内,同时还保存成了JPG的格式,可以进行放缩操作,便于查询)。一个典型的结果见fig.1。 fig.1在电子地图上,我们可

18、以很轻松地发现对应每个采样点时刻混水点和混水管的情况。我们发现:混水节点和混水管构成了一个区域,即所谓的分水线的概念并不是狭义上的一条线。区域范围比较大,同时我们把每个采样点的图片设置成一个关键帧进行动画显示,结果发现混水节点的分布情况随时间的变化而平缓变化。所以有必要对这个结果再做进一步的处理:我们把对25个采样点的混水节点的信息(保存在各自的状态表内第4列),放到一个数组中建立成了一个表现了25个采样点的混水节点的信息的状态表(保存在文件AND中)。对该状态表的观察我们也发现:混水节点随时间的变化是平缓变化的(状态表中相临两列基本是一致的,或者说相临对两列进行与操作的结果的逻辑真的数量和总

19、节点的数量的比例接近1)。为了表达其随时间变化的下限和上限,我们把各个采样时刻的混水节点(各自状态表的第4列)对每一行进行逻辑与、或操作,结果我们发现这两种操作的结果再进行与操作则逻辑真的数量比总节点的数量的比值接近很大,即证明了变化范围小。于是我们把该数据可视化,就得到了绝对的分水节点和分水节点的包络线(结果见附件)。典型的结果见fig.2和fig.3。fig.2fig.3可是,这样的结果信息量并不是足够的,即我们还想进一步详细地了解那些非绝对混水节点的混水节点的情况,于是我们对状态表AND的每一行求和(结果保存在sum文件中),则和越大说明是混水点的时间就越长(可以认为是一种概率)。于是我

20、们把该数据再被总的采样次数除,就得到了各个节点的混水概率。以某个选定的概率做阀值就可以从不同的角度定义出分界线。显然,绝对混水节点是以概率值1为阀值,混水节点包络图是以概率值非0为阀值。这样,我们就时域全局化、概率化、数字化、可视化地给出了每个节点的混水情况。以其他阀值的可视化的结果本文略。c)误差分析:按照题意应该除了水厂以外其他节点的进水量大于出水量。结果我们分析数据后发现有一些节点反而相反,说明该数据有误差。根据前面的图论的结论。这些有误差的节点不能被遍历(我们开始没有把其作为根节点)。一个明显的例子:数据240500的27至30号管子的流量明显矛盾(见fig1.的137、138号节点)

21、。(用户的节点流量)。其他的错误的节点我们也全部找出,保存在文件内(见附件),同时在图上标明了位置。根据国外的经验,一般城镇给水管网的漏水量约为供水量的10%至20%。数量可观的淡水资源没有利用就白白地流失了,同时大量的水漏到地下以后还会带来一系列的问题,譬如降低地基承载力,影响道路、大坝安全等等。目前主要就是通过检测的方法发现漏水地点并及时地进行抢修。在水厂管理上,降低水厂水压有减少漏水的作用1。当有漏水的时候,管网的克契霍夫方程组就发生了变化,这时节点方程为 (5) 根据实验研究,漏水量和自由水压之间的关系如下: ()式子中为系数,与连接该节点的水管的长度,漏水孔的形状、面积有关。为自由水

22、压 fig.4 为经验常数,约为1.15左右。 然后联立元线形节点方程组连续进行修正计算,直到满足(5)为止。其实也不必这样麻烦,完全可以在一个管道的靠近两个节点的位置布置两个流量传感器,当两端的流量不一致且随时间的变化的均值明显不是0的时候就认为该管道漏水。然后在屏幕上显示出该管道的编号、坐标等地理信息并报警。可以实现抢修。所以根据公式(5)出现误差的最大的可能是节点的用水量超过实际用水量(包含了漏水量)。但是我们计算的结果是实际还有一些节点,虽然从图上看不出流向有矛盾,但是计算的结果却发现这些节点几乎所有的时刻的进水量都大于出水量(详细情况见定量分析的结果),而且很稳定在一定的范围内,而这

23、些节点不是水厂。这很显然是矛盾的。分析原因,认为不可能是水击现象造成的,也不可能是随机误差,最大的可能是由于用户拥有高位水箱,当管网水压低的时候高位水箱的水就自动地向管网中补水,当管网水位高的时候水又自动向水箱补水。这样就解释了为什么有些节点的水流量是正值(节点向外出流)。当然,也有可能有些节点是由于测量的错误(仪器的原因或者记录错误)。所以要建立高位水箱的地理位置信息系统,包含位置坐标、编号和高度,和这些节点做比较,这样就能动态地区分是不是由于水箱的水倒流而造成的结果了。d)误差处理:在实际的测量数据中,这样不合逻辑的数据总是会有的。分析以后判断原始的测量数据中确实有误差。为了让误差不对计算

24、结果造成重大影响,充分考虑了数据的误差可能导致的结果。如果该点的编号和给定的水厂的编号不一致,报告出该点的编号和坐标。我们仔细观察、分析上图,发现137和138号之间的管段流量为零,而各自向两端出流。分析的结论是可能是由于137、138号节点用户同时关闭闸门,由于水流的惯性、水的可压缩性和管道的弹性形变造成的水击(水锤)时形成的回流。所以处理的办法是把其流量改成零。但是后来又发现所有的采样时刻137、138号节点都是同样的矛盾,所以都恰好是水击的可能实在太小了。所以可能是其他原因引起的。应该严谨地检查137、138号节点是否有高位水箱,数据来源是否有问题。具体错误的原因是什么,如何矫正要实际情

25、况实际分析,事实求是。综合考虑水头高度、流量的测量方法所造成的模型误差和仪器误差,我们认为和水的动力特性和水击现象对流量的影响数量级小随时间可以很快消退且是局部范围影响的,所以我们使用的数据是流量而没有使用水头高度(在管道的形状、阻力特性和给水管网的QH特性已知的情况下流量和水头高度不是独立的,可以相互计算出来)。出现误差的原因也可能是因为测量的错误、记录错误或者误操作等,在程序报告出错误的节点以后如果想实现自动纠错在理论上也是可以实现的,但是由于出现误差的原因是很多的,所以让计算机自行处理则需要专家系统或者使用神经元网络。其实我们可以很好地利用人机交互功能,把人的特长和计算机的特长结合起来。

26、可以达到很好的效果:当报告出错误的节点的编号和坐标,并且用醒目的圆圈在节点上标记以后,人利用可视化的电子地图,地理信息、流向信息和混水情况一目了然。根据流向的矛盾可以轻松而灵活地利用周围正确的数据对错误数据进行调整(实际工作中应该有严谨的态度,偏差太大的明显错误要重新测量)。8、模型的进一步改进 在前面的结果中,我们没有使用流量这个数据,这样,可能会有一些节点尽管也是混水节点,但是其中某一个水厂的比例很大,那么,按照上面的算法,仍然用其来描述分水线显然不够准确。同时,我们不知道这些混水节点(用户)到底用了来自哪个水厂的比例占多少(这是很有现实意义的,譬如两家水厂进行效益评估、水费分配、供水统一

27、调度的时候,考虑到比例肯定是最准确的)。于是我们在前面假设的基础上再进行模型的修改:前面的算法我们只在遍历图的过程中在每个节点标记了各个水厂是否经过的逻辑值和对该逻辑值进行的一系列逻辑操作进行分析。现在我们分析对任意一个节点水的比例:如图所示的一个节点,设进水管的编号为,对应的甲水厂的比例为,流量为。出水管的编号为,对应的甲水厂的比例为,对应流量为。节点(用户或者水厂)的用水量为,对应甲水厂的比例为。则显然有假设1有:定义 其中以从节点流出为负,流进节点为正。则,水厂对应的;用户对应的节点。1、且: 2、 因为已经排除了错误的数据,所以只会有用户才会出现这种情况。所以有: 可是,如果按照这个公

28、式逐个节点计算,需要联立大规模线性方程组,并且还有可能方程组是病态的,或者条件数太大造成计算结果误差传播,这样就失去了我们最初想法的意义。于是换种思维:算法一4:1、 算法描述: 还按照上面的公式进行计算,综合广度优先和深度优先的思想,把根节点压入栈A(当前计算栈),并开始按照广度优先向下搜索其所有子节点,并压入栈B(子节点栈),然后判断根节点是否被标记具备了计算条件(所有入口的混合比已知)(根节点肯定是符合判断条件的),如果具备,则计算出比例,然后把该节点的计算结果保存到该节点,并传递给这个节点的出口管道作为下一个管道的计算参数,并标记该管道已经有了参数。然后将该节点从当前栈中出栈;如果不具

29、备计算条件,则压入一个新的堆栈C。现在已经计算出了第0层(跟节点),然后把栈B的栈顶的节点的所有子节点压入栈A(此时栈A变成了“子节点栈”,栈B变成了当前计算栈),然后拿出来判断是否所有的入口管道都被标记具备计算条件,如果全部被标记则计算出结果并保存,如果不具备,压入栈C,直到全部第1层的节点全部出栈。然后再把A作为“当前计算栈”,把B当作“子节点栈”,执行同样的操作,这样,当第一遍计算到最深层并结束时候,已经有一部分节点(单入口节点)已经全部计算出结果,并且一些管道被标记具备计算条件,这是再把栈C的全部节点从栈顶开始把其子节点压入栈A,然后判断该节点是否已经具备了计算条件(由于第一次遍历的过

30、程中已经有一些节点已经计算出结果,所以这些节点的出口管道一定已经被标记,所以一定又有一部分被堆在第一等待栈中的节点具备可以计算出结果的条件)。如果该节点具备条件,计算出结果保存到该节点,把其出口管道标记成具备条件;如果不具备计算条件,压入栈C。直到栈底结束,这样又有一部分节点被计算出来。然后再转向栈A,把栈A的所有子节点压入栈B,判断节点是否具备计算条件,如果具备则保存结果,把其出口管道标记具备计算条件并从栈中出栈;如果不具备,压入栈C,直到节点全部出栈。再从栈B开始。如此循环下去,最终就一定可以计算出所有节点的混水比例。2、 算法的证明:给水管网一定是个无圈多属性有向赋权图,我们建立一个“分

31、层表”表示这个图。第一行储存根节点所有子节点的编号,第二层为第一层中存储的所有节点的子节点的编号,依次类推,每一层都存储其上层节点的所有子节点(所以同一个节点可以出现在不同的层中),一个有向图从最高层(作为一般情况,最高层可以有多个节点)开始每减少一个节点以后所够构成的新的图都是原来图的子图。1) 可以证明第一层的所有节点中至少存在一个节点具备求解条件。采取反证法:如果第二层的所有节点都不可以具备求解条件,则一定第一层的所有节点都不仅仅在第一层。而第二层的所有节点都是第一层的子节点(如果有一点不是第一层任何节点的子节点,则根据分层的方法其属于第一层,矛盾,所以第二层的所有节点一定都是第一层的子节点)。而所以第一层所有的节点都是第一层的某个节点的子节点。由前面图论的理论的f)可知这一定是个有环的图,与我们的假设矛盾。得证。这可以用个游戏形象地说明。假设一个若干人组成的小组和一个令牌,只要其一个成员拿到令牌以后立即转手交给其他成员,则若干步以后令牌一定可以回到游戏开始者的手中,否则就一定在若干人之间循环。2) 由于减少一个节点以后的图是包括原来图的子图,所以同理一定有节点可以求解(只要有一个节点求解出来就够了)出来以后也一定可以求解。同理可以得到以下所有层的解。不会出现死锁。当然,得到数据以后可视化地表达在节点上,以供查询,同时给出表格的形式的结果以供查询和调度处理的时候计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1