好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用Python實現二終端網絡可靠度

使用Python實現二終端網絡可靠度

熱門標簽:溫州旅游地圖標注 悟空智電銷機器人6 外呼不封號系統 荊州云電銷機器人供應商 電信營業廳400電話申請 江蘇房產電銷機器人廠家 遼寧400電話辦理多少錢 蘇州電銷機器人十大排行榜 幫人做地圖標注收費算詐騙嗎

在網絡可靠性中,一種較為經典且在實踐中更為常用的可靠度計算便是二終端可靠度,即給定網絡拓撲結構與邊可靠度(假定節點完全可靠),計算網絡中指定的兩個節點之間的連通可靠度。

在此,筆者依據最小路集思想給出此方法的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):

參數解釋:

  • data:矩陣形式的數據,表征整個網絡的拓撲結構和邊可靠度,其中每一個矩陣元素要么為0,要么預設的字母如“A、B、C”等,每個字母取值為0到1(不包含0但包括1),元素為0表示對應行號與列號的節點之間無邊相連,元素為字母如“A”表示對應行號與列號的節點之間以可靠度為A的概率相連;
  • my_dict:字典形式的數據,指定每一個用到的字母所表示的概率值,如{'A':0.8,'B':0.9,'C':0.9},特別指出網絡中節點之間的連通概率可以相異;
  • index_start:二終端節點中的起始點序號;
  • index_end:二終端節點中的終止點序號;

以上就是使用Python實現二終端網絡可靠度的詳細內容,更多關于二終端網絡可靠度 的資料請關注腳本之家其它相關文章!

標簽:喀什 臺灣 欽州 宿遷 黃山 濟南 三沙 景德鎮

巨人網絡通訊聲明:本文標題《使用Python實現二終端網絡可靠度》,本文關鍵詞  使用,Python,實現,二,終端,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Python實現二終端網絡可靠度》相關的同類信息!
  • 本頁收集關于使用Python實現二終端網絡可靠度的相關信息資訊供網民參考!
  • 推薦文章