本发明涉及可靠性与安全仿真技术领域,具体涉及一种基于贝叶斯网络的任务可靠性建模分析方法。
背景技术:
信息技术的迅速发展加快了网络化进程,网络化系统如交通网络、通信网络、电力网络等在生活中无处不在,典型的网络系统结构复杂,其节点众多,且节点之间存在复杂的连接关系,微小的事故隐患则可能导致整个网络的瘫痪,这就对网络的可靠性提出了更多的要求。
当前基于网络可靠性的研究包括:基于网络拓扑结构的网络抗毁性、基于随机破坏的网络生存性、基于任务网络等的可靠性研究,同时还包括了基于精确解析方法、近似解析方法和仿真分析方法等的可靠性参数计算方法,但当前技术存在一定的局限性,如在研究网络系统可靠性设计过程中,未考虑网络系统特有的事件、特有的节点驱动方式、实时调度、采样周期及当前网络系统特有的故障模式等因素。
因此,如何提供一种基于任务关键环节并结合贝叶斯网络对任务进行可靠性建模分析的方法是本领域技术人员亟需解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种基于贝叶斯网络的任务可靠性建模分析方法,可在任务发布早期实现对系统可靠性指标的评估,并找出系统的关键环节,指导相关人员在任务进行中对关键环节进行重点关注,以提高整个任务的完成质量,且不仅适用于单系统的可靠性设计分析,还适用于包含多任务多阶段任务的仿真分析研究。
为了实现上述目的,本发明采用如下技术方案:
一种基于贝叶斯网络的任务可靠性建模分析方法,包括如下步骤:
步骤一,建立系统任务,获取执行当前任务所需系统中的模块和各模块间的逻辑关系;
步骤二,基于贝叶斯网络对任务可靠性建立初始模型;
步骤三,结合模块和模块间的逻辑关系对初始模型进行结构和参数学习,得到可靠性分析模型;
步骤四,基于所述可靠性分析模型对待分析任务进行可靠性仿真,得到任务执行结果;
步骤五,对任务仿真的可靠度进行分析,识别出任务执行中的关键模块。
优选的,所述步骤一包括,所述任务为多阶段任务,获取阶段内任务执行所需的模块和各模块间的逻辑关系,以及任务执行时阶段间模块状态的逻辑关系;所述模块状态包括正常状态和失效状态。
优选的,所述步骤二中,以贝叶斯网络中的节点表征模块,连接两个节点的边表征模块之间的故障逻辑关系。
优选的,所述步骤二包括,所述任务为多阶段任务,对任务的每个阶段建立子贝叶斯网络,根据子贝叶斯网络中阶段的条件独立关系为节点分配有向边。
优选的,所述步骤三包括:
结构学习过程:通过学习实例数据库中模块、及模块间的故障逻辑关系,完成对贝叶斯网络的结构学习;
参数学习过程:通过学习实例数据库中模块、及模块间的故障逻辑关系,完成对贝叶斯网络的参数学习;所述参数包括模块不发生故障的概率和条件概率。
优选的,所述步骤四中利用可靠性算法进行仿真,包括:
识别任务中所有模块以及模块之间的时序相关性,生成与任务要求、使用环境、任务功能相关的故障判据;
遍历任务集合中的所有任务,并对当前任务所需所有模块的工作状态进行判断;
结合故障判据,判断当前模块的工作状态与当前任务执行结果的逻辑关系。
优选的,所述任务为多阶段任务,还包括识别任务所有阶段模块之间的条件依赖关系,生成与任务要求、使用环境、任务功能相关的故障判据。
优选的,仿真过程中出现故障时,模型结构及参数自动更新;所述更新包括相关节点的后验概率表和可靠性仿真逻辑关系的更新;其中,可靠性仿真逻辑关系包括:模型之间的时序连接关系、条件依赖关系。
优选的,所述步骤五包括,分别为步骤三中构建的贝叶斯网络节点,即是任务的各个模块,设置不同的参数值,并分别仿真得到当前任务运行可靠度;
进行若干次仿真,对所得任务运行可靠度进行分析,识别出任务中的关键模块。
优选的,所述参数值包括:模块条件概率表和模块可靠度值。
经由上述的技术方案可知,与现有技术相比,本发明的有益效果包括:
本发明通过以上步骤,可以实现基于贝叶斯网络的任务可靠性建模和模型仿真分析。在对任务的可靠性建模过程中,对贝叶斯网络的结构学习明确了任务所涉及的各个模块和模块间的故障连接关系,对贝叶斯网络的参数学习明确了任务所涉及的各个模块出现的概率和条件概率,从而建立了基于特定任务的贝叶斯网络可靠性模型。在基于可靠性模型的任务仿真过程中,首先集成定制的可靠性算法,完成了模型的具体功能实现,然后将贝叶斯网络的结构和参数作为模型的输入部分,仿真过程中,通过为任务中的各个模块赋予不同程度的可靠度值,输出当前任务执行的成功率,也即是可靠度,完成对当前任务的可靠性预计;通过对比不同模块的可靠度变化对任务执行成功率的影响程度,完成对当前任务的关键模块的识别,便于技术人员依据关键模块对系统进行维护,在早期提升系统的可靠度。如此,实现了针对特定任务的可靠性建模和仿真分析,对当前系统任务具有良好的适用性。
本发明所提供方法可在任务发布早期实现对系统可靠性指标的评估,并找出系统的关键环节,指导相关人员在任务进行中对关键环节进行重点关注,以提高整个任务的完成质量,且不仅适用于单系统的可靠性设计分析,还适用于包含多任务多阶段任务的仿真分析研究。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图;
图1为本发明实施例提供的一种基于贝叶斯网络的任务可靠性建模分析方法的总流程图;
图2为本发明实施例提供的一种基于贝叶斯网络的任务可靠性设计分析方法的细节流程图。
图3是是本发明实施例提供的一种基于贝叶斯网络的任务可靠性设计分析方法的任务仿真逻辑图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例公开的一种基于贝叶斯网络的任务可靠性建模分析方法,属于可靠性与安全技术领域。本发明可对网络化系统进行可靠性预计,在任务早期即可对其可靠性进行指标评估,找出当前任务的关键环节,指导技术人员在任务进行过程中对其可靠性关键环节重点关注,以提升任务的完成质量。本方法首先对任务所涉及的系统、模块及其中复杂的逻辑关系进行概念提取和软建模;进一步的,基于贝叶斯网络对任务进行可靠性建模,并进行结构和参数学习;最后进行可靠性模型仿真得到任务的可靠性仿真结果,并推理得到任务的可靠性关键环节。
参见附图1-3所示,本实施例公开的具体步骤如下:
一种基于贝叶斯网络的任务可靠性建模分析方法,包括如下步骤:
s1、建立系统任务,获取执行当前任务所需系统中的模块和各模块间的逻辑关系。
本实施例中,明确系统当前任务、任务所涉及的模块、模块间的先后连接关系、功能关系,并对系统任务进行数学、逻辑上的抽象和描述,得到当前系统任务的概念模型。所述任务在一种情况下可包括多个子任务。
在一个实施例中,任务为多阶段任务,获取阶段内任务执行所需的模块和各模块间的逻辑关系,以及任务执行时阶段间模块状态的逻辑关系;模块状态包括正常状态和失效状态。
当所涉及任务可划分为多个阶段,也即是多阶段任务系统时,任务的执行情况依赖于每个阶段模块的执行情况,则需进一步明确每个阶段所涉及的模块,模块与上一阶段对应模块的状态。当实施方案中所涉及任务为多阶段任务时,整个系统的可靠性依赖于此时系统中所涉及的所有模块,且模块的可靠性与上个阶段的状态有关,如果上个阶段此模块已经失效,则当前阶段也是失效状态,类似的,上个阶段模块正常,当前阶段开始此模型也是正常状态。也即是,整个系统任务的可靠性依赖于每个阶段任务的执行情况,一旦任务阶段失效,整个系统就会失效。
下面给出一具体示例:
对列车网络控制系统任务进行可靠性设计分析,所建立系统任务为:开始——牵引系统功能块——制动系统功能块——辅助系统功能块——门控系统功能块——空调系统功能块——旅客信息系统功能块——信号系统功能块——烟火报警系统功能块——显示屏系统功能块——riom功能块,然后在转到开始另一个新的循环。故列车网络系统的任务可表示为:
s(tcms)={rw(qyxt),rw(zdxt),rw(fzxt),rw(mkxt),rw(ktxt),
rw(lkxxxt),rw(xhxt),rw(yhbjxt),rw(hmixt),rw(riomxt)}任务之间是顺序执行的。对于每个任务又是由多个子任务组成的,如:
rw1=rw(qyxt)={tcu-ccu-hmi,ccu-tcu,riom-ccu-hmi...}
分析rw(qyxt)的第一个任务rw11=tcu-ccu-hmi,由tcms软件的网络拓扑图可以知道,执行任务rw11所涉及的模块集合为m(rw11)={tcu1,tcu2,tcu3,tcu4,tcu5,tcu6,rpt1,rpt2,
rpt3,rpt4,ccu1,ccu2,hmi1,hmi2,hub1,hub2,hub3,hub4}。
s2、基于贝叶斯网络对任务可靠性建立初始模型。
本实施例中,研究当前系统与任务之间的关系,通过对实际系统的观测和检测,在忽略次要因素和不可检测变量的基础上,分析任务的体系结构,用形式化或数学的方法进行描述,并以贝叶斯网络的形式表达任务中各个模块之间的相关性、故障传播关系及可靠性关系,以贝叶斯网络中的节点表征模块,连接两个节点的边表征模块之间的故障连接关系,建立初步的可靠性模型。
在一个实施例中,对于多阶段任务,则需对让任务的每个阶段建立子贝叶斯网络,结合这个阶段的要执行的任务及任务所涉及到的模块,以及这些模块之间的故障逻辑关系,给出子贝叶斯网络结构,通过考虑子贝叶斯网络中阶段的条件独立关系为节点分配有向边。
s3、结合模块和模块间的逻辑关系对初始模型进行结构和参数学习,得到可靠性分析模型。
在一个实施例中,s3具体包括:
结构学习过程:结合所完成任务及所涉及的模块、模块之间的故障连接关系,完成对贝叶斯网络的结构学习;当任务所涉及体系结构较为简单时,可由先验知识和专家经验直接给出贝叶斯网络结构,当体系结构较为复杂时,则通过学习实例数据库,推导出适合的贝叶斯网络模型,进而得到贝叶斯网络结构;
参数学习过程:通过学习实例数据库中模块、及模块间的故障逻辑关系,完成对贝叶斯网络的参数学习,或者通过先验知识对贝叶斯网络进行参数学习,从而完成基于贝叶斯网络的任务可靠性建模。参数包括模块不发生故障的概率和条件概率。模块不发生故障的概率,即可靠度值,条件概率以联合分布下的条件概率值组成的条件概率表体现。
下面给出一具体示例:
对于某阶段phasei,若其中的一个任务rwij执行了多次,那么在确定贝叶斯网络结构时,该任务计算一次即可;若一个任务rwij包含另一个任务rwik,即rwik是rwij的子任务,仅需计算rwij即可,可以忽略它的子任务rwik。
构造贝叶斯网络需要确定贝叶斯网络的结构以及参数,有三种方法:
(1)由领域专家确定贝叶斯网络的结构并指定节点的参数分布。这种构造的贝叶斯网络完全在专家的指导下进行,人类获取知识的局限性,导致构建的贝叶斯网络与实践中累积的数据有较大的偏差;
(2)由领域专家确定贝叶斯网络的节点,通过实例数据库中的实例数据学习贝叶斯网络的结构和参数,这种方法完全是一种数据驱动的方法,具有很强的数据适应性;
(3)由领域专家确定贝叶斯网络的节点,通过专家的知识来指定网络的结构,而通过实例数据库中的数据学习贝叶斯网络的参数。
在一种实施方案中,采用第二种方法,其贝叶斯网络结构和参数均通过实例数据库完成学习,实例数据库可表示为:
s4、基于可靠性分析模型对待分析任务进行可靠性仿真,得到任务执行结果。
在一个实施例中,在完成贝叶斯网络参数和结构学习的基础上,实现基于贝叶斯网络的可靠性算法,并进行任务仿真,输出任务的执行结果。其中,上一步骤中贝叶斯网络学习到的参数及结构作为可靠性模型仿真的输入部分。s4中利用可靠性算法进行仿真,包括:
识别任务中所有模块以及模块之间的时序相关性,生成与任务要求、使用环境、任务功能相关的故障判据;
遍历任务集合中的所有任务,并对当前任务所需所有模块的工作状态进行判断;仿真过程中出现故障时,模型结构及参数自动更新;更新包括相关节点的后验概率表和可靠性仿真逻辑关系的更新;其中,可靠性仿真逻辑关系包括:模型之间的时序连接关系、条件依赖关系等;
结合故障判据,判断当前模块的工作状态与当前任务执行结果的逻辑关系。
在一个实施例中,任务为多阶段任务,还包括识别任务所有阶段模块之间的条件依赖关系,生成与任务要求、使用环境、任务功能相关的故障判据。
下面给出一具体示例:
如图3所示,在某列车控制系统任务可靠性仿真过程中,其中r表示任务数量,m表示任务中所涉及的模块数。可靠性仿真每运行一次需遍历任务集合中的所有的任务,依次判断任务是否出现失败,如果失败,则进一步判断此任务是否是关键任务(即此任务失败就造成系统的任务集合中的任务失败),如果任务集合失败,则此次运行就视为失败,否则视为成功,接着进行下一次的仿真运行。
而对任务集合中的各个任务判断运行是成功还是失败时,要对此任务所涉及到的所有的模块的工作状态进行判断。遍历所有的模块,依次判断模块是否失效,如果出现失效,判断此模块是否是关键模块,判断标准为:该模块失效会引起任务失败,如果该模块失效未引起任务失败,则该模块不是关键模块,继续判断下一个模块;
如果此模块是关键模块,则查找它是否有备用模块,如果它的备用模块和转换模块能够正常工作,则不会引起任务的失败,否则任务失败。
在分析可靠性仿真逻辑关系时,首先,要识别出系统必须完成的任务集合:s(rw)={rw1,rw2…rwi…,rwr},每个任务可以划分成的子任务:rwi={rwi1,rwi2…rwik…rwijq},每个任务、每个子任务的运行的时间t(rwi)、t(rwik)。任务、子任务的执行的时序关系,即任务以确定的时序执行,如顺序执行,并行执行等,或者以不确定的时序执行,也即是任务执行结束后根据此任务的执行情况以不同的概率转移到不同的任务。
其次,要明确每个子任务执行时所涉及到的所有的模块:m(rwi)={zi1,zi2…zij…ziu},每个模块的概率密度函数为fii(t)(j=1,2,...,u)失效分布函数为fij(t)(j=1,2,...,u)。
明确任务执行所涉及到的模块后,需要对任务进行故障判据,即列举出任务失效(即不能被正常执行)的所有情况,以及出现失效时模块的所有的失效模式及模块失效之间的逻辑关系(如一个任务失效时,模块之间可能是串联、并联或是旁联),明确各个模块出现失效时对任务的影响(即判断某模块失效时任务能否正常执行等,模块失效后是否有备份模块继续工作)。然后根据模块的失效分布函数及随机抽样公式得到各模块的第k次抽样的失效时间:
在一种情况下,模块之间是简单的串并联关系时,可以按照下述方法对任务rwi(成功率)进行可靠性仿真:
(1)规定仿真总次数n,仿真运行次数为n,故n=1,2,...n;
(2)假设任务涉及到的模块集合为m(rwi)={zi1,zi2…zij…},它们是执行任务rwi所涉及到的所有的模块,模块的工作状态(正常状态和失效状态)会影响任务的执行情况(执行成功和执行失败);
(3)模块的分布函数fij(t)(j=1,2,...)在[0,1]上是均匀分布的,在仿真任务的成功率时,对每个模块用蒙特卡罗随机数生成方法生成[0,1]之间的随机数作为模块在第k(k=1,2,...,n)次仿真模块执行任务的成功率:pi1k,pi2k…pijk…(对于一个任务i是固定的,k代表第k次抽样,j=1,2,3...代表第j个模块),而给定时间tk,则可以知道每个模块在tk时刻的可靠度,ri1(tk),ri2(tk)…rij(tk)…;
(4)在每次仿真运行中,将pi1k,pi2k…pijk…按照抽样成功率大小从小到大排列用pi表示:p1<p2<…<pi…;
在每次仿真运行时,按照任务失败和模块失效之间的逻辑关系判断任务成功的概率。具体过程是按照pj由小到大的顺序,将pj与之相对应的基本部件zij的可靠度rij(tk)做比较,判断模块是否失效,如果模块失效则继续判断任务执行情况,如果任务成功,则继续判断下一个模块,直到模块zik失效且引起任务失败,则认为此次仿真结束,仿真任务rwi失败;若所有的模块都不引起任务失败,则认为此次仿真任务成功。
s5、对任务仿真的可靠度进行分析,识别出任务执行中的关键模块。
在一个实施例中,分别将步骤3所述贝叶斯网络参数输入至可靠性模型仿真软件中,并分别为贝叶斯网络节点,即任务的各个模块,设置不同的参数值,所述参数值包括:条件概率表和可靠度值,并分别仿真得到该任务运行的可靠度;其中,条件概率表随模块可靠度值的改变而发生相应变化。仿真若干次后,对所得可靠度进行分析,判断不同模型的可靠度变化对整体任务的可靠度的影响程度,从而识别出任务中的关键模块。s4给定了任务模型中各个节点的故障概率,获得仿真执行结果,并进一步得到当前任务仿真成功的概率。s5在s4的基础上的进一步综合分析,通过多组实验数据,分析得到不同模块在不同可靠度下得到的任务仿真成功率,从而得到当前任务中的关键模块。
下面给出一具体示例:
系统的仿真运行次数为n,执行任务所涉及的模块的数目为m,则可得到n个任务执行结果的可靠度值表,每个可靠度值表包含m*x个任务可靠度值,其中x表示为模块m(m∈(1,2,3,,,m))设定不同可靠度的次数。仿真n次后,可得m*x*n个可靠度值,通过对所有结果中各个模块的取值对任务成功率(可靠度)的影响,并按照影响高低程度进行影响排序,可得到对任务可靠度影响最大的单个或几个模块,作为本次任务的关键模块。同时给出任务维护标准:保证关键模块的可靠度处于较高水平,以提高任务的可靠度。
其中,依据模块的可靠度变化对任务结果的影响程度排序的方式,通过计算条件概率值实现,也即是:确定某一模块m的可靠度r1作为条件,分别改变其他m-1个模块的可靠度值,得到任务仿真结果。如下表1所示,其中表的第一行ccu、hub等表示其他的m-1模块的名称,第一列表示,当前模块m可靠度取0.99,第二列表示其他m-1模块分别取0.99、0.98、0.97和0.96,其余表格中,表示当前模块m可靠度取0.99,第二列表示其他m-1模块分别取0.99、0.98、0.97和0.96时,任务仿真结果的可靠度值。
表1仿真结果
分别将当前模块m取值为0.99时,其他模块m-1取值不同对任务可靠度的影响进行排序,选取排序靠前的一个或几个模块,判定为关键模块,选取数量的选择约束于技术人员对任务的可靠性要求。
在一个实施例中,所有的结果可通过曲线图展示,以便于观察模块可靠度值的变化对任务可靠度的影响情况。
以上对本发明所提供的基于贝叶斯网络的任务可靠性建模分析方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,包括如下步骤:
步骤一,建立系统任务,获取执行当前任务所需系统中的模块和各模块间的逻辑关系;
步骤二,基于贝叶斯网络对任务可靠性建立初始模型;
步骤三,结合模块和模块间的逻辑关系对初始模型进行结构和参数学习,得到可靠性分析模型;
步骤四,基于所述可靠性分析模型对待分析任务进行可靠性仿真,得到任务执行结果;
步骤五,对任务仿真的可靠度进行分析,识别出任务执行中的关键模块。
2.根据权利要求1所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述步骤一包括,所述任务为多阶段任务,获取阶段内任务执行所需的模块和各模块间的逻辑关系,以及任务执行时阶段间模块状态的逻辑关系;所述模块状态包括正常状态和失效状态。
3.根据权利要求1所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述步骤二中,以贝叶斯网络中的节点表征模块,连接两个节点的边表征模块之间的故障逻辑关系。
4.根据权利要求1或3所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述步骤二包括,所述任务为多阶段任务,对任务的每个阶段建立子贝叶斯网络,根据子贝叶斯网络中阶段的条件独立关系为节点分配有向边。
5.根据权利要求1所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述步骤三包括:
结构学习过程:通过学习实例数据库中模块、及模块间的故障逻辑关系,完成对贝叶斯网络的结构学习;
参数学习过程:通过学习实例数据库中模块、及模块间的故障逻辑关系,完成对贝叶斯网络的参数学习;所述参数包括模块不发生故障的概率和条件概率。
6.根据权利要求1所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述步骤四中利用可靠性算法进行仿真,包括:
识别任务中所有模块以及模块之间的时序相关性,生成与任务要求、使用环境、任务功能相关的故障判据;
遍历任务集合中的所有任务,并对当前任务所需所有模块的工作状态进行判断;
结合故障判据,判断当前模块的工作状态与当前任务执行结果的逻辑关系。
7.根据权利要求6所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述任务为多阶段任务,还包括识别任务所有阶段模块之间的条件依赖关系,生成与任务要求、使用环境、任务功能相关的故障判据。
8.根据权利要求7所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,仿真过程中出现故障时,模型结构及参数自动更新;所述更新包括相关节点的后验概率表和可靠性仿真逻辑关系的更新;其中,可靠性仿真逻辑关系包括:模型之间的时序连接关系、条件依赖关系。
9.根据权利要求1所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述步骤五包括,分别为步骤三中构建的贝叶斯网络节点,即是任务的各个模块,设置不同的参数值,并分别仿真得到当前任务运行可靠度;
进行若干次仿真,对所得任务运行可靠度进行分析,识别出任务中的关键模块。
10.根据权利要求9所述的基于贝叶斯网络的任务可靠性建模分析方法,其特征在于,所述参数值包括:模块可靠度值和模块条件概率表。
技术总结