主权项 |
一种基于两层神经网络的多任务测试性指标分配方法,其特征在于,包括以下步骤:S1:将系统中的上级模块按照优先级从大到小进行排序,根据系统的结构获取下级模块与上级模块的映射矩阵H,映射矩阵H中的元素h<sub>ij</sub>表示第i个模块与第j个上级模块的关联,其中i=1,2,…,N,j=1,2,…,M,N表示下级模块数量,M表示上级模块数量,h<sub>ij</sub>=1表示对应下级模块与上级模块存在关联,h<sub>ij</sub>=0表示对应下级模块与上级模块不存在关联;S2:构建两层神经网络,其中输入层神经单元数量为N,输出层神经单元数量为M;S3:记每个下级模块i对应的平均无故障时间为α<sub>i</sub>,对于每个上级模块j,统计映射矩阵中h<sub>ij</sub>=1的下级模块,将这些下级模块的平均无故障时间求和,得到每个上级模块j所对应的下级模块的平均无故障时间和β<sub>j</sub>,然后根据以下公式得到下级模块i对应上级模块j的故障率x<sub>ij</sub>:<maths num="0001"><math><![CDATA[<mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>α</mi><mi>i</mi></msub><mo>/</mo><msub><mi>β</mi><mi>j</mi></msub><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>h</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>h</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000904945040000011.GIF" wi="441" he="163" /></maths>根据得到的所有故障率x<sub>ij</sub>构建得到M个输入向量X<sub>j</sub>=(x<sub>1j</sub>,x<sub>2j</sub>,…,x<sub>Nj</sub>)<sup>T</sup>;S4:根据下级模块与上级模块的映射矩阵H,对两层神经网络的权值矩阵W进行初始化:如果h<sub>ij</sub>=0,其对应的权值w<sub>ij</sub>=0,如果h<sub>ij</sub>=1,其对应的权值<img file="FDA0000904945040000012.GIF" wi="210" he="75" /><img file="FDA0000904945040000013.GIF" wi="61" he="65" />为(0,1)范围内的随机数;S5:依次将M个输入向量X<sub>j</sub>作为两层神经网络的输入,得到当前权值矩阵W对应的输出,将上级模块j的M个输出记为u<sub>jj′</sub>,j′=1,2,…,M,计算上级模块j的输出o<sub>j</sub>:<maths num="0002"><math><![CDATA[<mrow><msub><mi>o</mi><mi>j</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>M</mi></mfrac><munderover><mo>Σ</mo><mrow><msup><mi>j</mi><mo>′</mo></msup><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msub><mi>u</mi><mrow><msup><mi>jj</mi><mo>′</mo></msup></mrow></msub></mrow>]]></math><img file="FDA0000904945040000014.GIF" wi="331" he="170" /></maths>S6:根据预设的各个上级模块的测试性指标最低要求d<sub>j</sub>和步骤S103的输出o<sub>j</sub>计算系统误差e,如果系统误差e小于预设阈值e<sub>T</sub>,进入步骤S8,否则进入步骤S7;S7:根据以下公式计算权值调整量:<maths num="0003"><math><![CDATA[<mrow><msub><mi>Δw</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>η</mi><mrow><mo>(</mo><msub><mi>d</mi><mi>j</mi></msub><mo>-</mo><msub><mi>o</mi><mi>j</mi></msub><mo>)</mo></mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>≠</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000904945040000021.GIF" wi="707" he="187" /></maths>根据以下公式计算新的权值:<maths num="0004"><math><![CDATA[<mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>min</mi><mrow><mo>(</mo><mn>1</mn><mo>,</mo><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>+</mo><mfrac><mn>1</mn><msub><mi>K</mi><mi>j</mi></msub></mfrac><munderover><mo>Σ</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msub><mi>Δw</mi><mrow><msup><mi>ij</mi><mo>′</mo></msup></mrow></msub><mo>)</mo></mrow><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>≠</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000904945040000022.GIF" wi="937" he="281" /></maths>返回步骤S5;S8:根据每个上级模块的测试性指标最低要求调整权值,具体步骤包括:S8.1:令上级模块序号j=1;S8.2:如果o<sub>j</sub><d<sub>j</sub>,进入步骤S8.3,否则进入步骤S8.5;S8.3:调整上级模块j关联的下级模块的权值,调整公式如下:<maths num="0005"><math><![CDATA[<mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>m</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mn>1</mn><mo>,</mo><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>(</mo><mn>1</mn><mo>+</mo><mi>τ</mi><mo>)</mo></mrow><mo>)</mo><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>≠</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000904945040000023.GIF" wi="755" he="190" /></maths>其中,τ为调整步长控制因子;将上级模块j关联的下级模块对应的非零权值均更新为w<sub>ij</sub>;S8.4:将M个输入向量X<sub>j</sub>作为两层神经网络的输入,根据当前权值矩阵,重新得到二层神经网络中每个上级模块的输出,返回步骤S8.2;S8.5:如果j<M,令j=j+1,返回步骤S8.2,否则进入步骤S9;S9:将当前第i个模块所对应的各个权值w<sub>ij</sub>中非零的权值作为该模块的测试性指标分配值γ<sub>i</sub>。 |