Python实现二终端可靠度怎么做,方法是什么
Admin 2022-06-27 群英技术资讯 1033 次浏览
这篇文章主要介绍了Python实现二终端可靠度怎么做,方法是什么相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python实现二终端可靠度怎么做,方法是什么文章都会有所收获,下面我们一起来看看吧。在网络可靠性中,一种较为经典且在实践中更为常用的可靠度计算便是二终端可靠度,即给定网络拓扑结构与边可靠度(假定节点完全可靠),计算网络中指定的两个节点之间的连通可靠度。
在此,笔者依据最小路集思想给出此方法的python代码实现,该代码可以依据给定的输入矩阵、节点序号等设定值算出两节点间的连通可靠度。
逻辑代码与测试用例如下:
import itertools
def min_path_sets(init_matrix,index_start,index_end):
import re
num_point = init_matrix.shape[0]
min_path_list = []
for i in range(num_point-1):
temp = init_matrix**(i+1)
item = expand(temp[index_start-1,index_end-1])
list_given = re.sub('[ *123456789]',"",str(item)).split("+")
#删除指定阶数下,路径长度不等于阶数的路
index_to_delete = []
for j in range(len(list_given)):
if len(list_given[j])!=(i+1) or list_given[j]=='0':
index_to_delete.append(j)
for counter, index in enumerate(index_to_delete):
index = index - counter
list_given.pop(index)
min_path_list.extend(list_given)
return min_path_list
def str_de_duplication(pstr):
a = ''
for i in range(len(pstr)):
if pstr[i] not in a:
a+=pstr[i]
return a
def product_symbol(pstr,my_dict):
import numpy as np
value_list = []
for i in pstr:
value_list.append(my_dict[i])
return np.prod(value_list)
def generate_label(path_sets,my_dict):
import numpy as np
all_result = []
for exp_num in range(len(path_sets)):
item_Combination = list(itertools.combinations(path_sets, exp_num+1))
item_list = list(map(lambda x: str_de_duplication("".join(x)),item_Combination))
value_list = list(map(lambda x: product_symbol(x,my_dict),item_list))
all_result.append(np.sum(value_list)*(-1)**(exp_num))
return np.sum(all_result)
def Matrix_label(init_matrix,my_dict,index_start,index_end):
path_sets = min_path_sets(init_matrix,index_start,index_end)
pro_value = generate_label(path_sets,my_dict)
return pro_value
from sympy import *
from sympy.abc import A,B,C,D,E,F
index_start = 2
index_end = 1
data = Matrix([[0,A,B],
[A,0,C],
[B,C,0]])
my_dict = {'A':0.8,
'B':0.9,
'C':0.9}
Matrix_label(data,my_dict,index_start,index_end)
在前部分,主要定义了几个函数以便求出最小路集以及利用容斥原理计算二终端可靠度,最终外层函数为Matrix_label(data,my_dict,index_start,index_end):
参数解释:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
一个简单的贪吃蛇程序,供大家参考,具体内容如下
本文主要介绍了pygame实现中文输入框的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要为大家介绍了python 虚拟环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
有时候我们的证件照需要换底色,又来不及去照相馆拍照,用ps也不好抠图,所以今天给你们分享一下如何用python来抠图,并换底色
这篇文章给大家分享的是numpy中dot()函数的使用,文中示例代码介绍的非常详细,对大家学习和理解dot()函数的计算方式有一定帮助,感兴趣的朋友接下来一起跟随小编看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008