最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實現(xiàn)二終端網(wǎng)絡(luò)可靠度

 更新時間:2021年05月05日 09:43:06   作者:快到皖里來  
這里給大家分享的是實現(xiàn)二終端網(wǎng)絡(luò)可靠度的方法以及使用Python實現(xiàn)的代碼,有需要的小伙伴可以參考下。

在網(wǎng)絡(luò)可靠性中,一種較為經(jīng)典且在實踐中更為常用的可靠度計算便是二終端可靠度,即給定網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)與邊可靠度(假定節(jié)點完全可靠),計算網(wǎng)絡(luò)中指定的兩個節(jié)點之間的連通可靠度。

在此,筆者依據(jù)最小路集思想給出此方法的python代碼實現(xiàn),該代碼可以依據(jù)給定的輸入矩陣、節(jié)點序號等設(shè)定值算出兩節(jié)點間的連通可靠度。

邏輯代碼與測試用例如下:

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("+")
        
        #刪除指定階數(shù)下,路徑長度不等于階數(shù)的路
        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)

在前部分,主要定義了幾個函數(shù)以便求出最小路集以及利用容斥原理計算二終端可靠度,最終外層函數(shù)為Matrix_label(data,my_dict,index_start,index_end):

參數(shù)解釋:

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

以上就是使用Python實現(xiàn)二終端網(wǎng)絡(luò)可靠度的詳細(xì)內(nèi)容,更多關(guān)于二終端網(wǎng)絡(luò)可靠度 的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python從入門到精通(DAY 2)

    python從入門到精通(DAY 2)

    本文是python從入門到精通系列文章的第二篇,主要給大家簡單講解下Python的字典復(fù)制和內(nèi)置函數(shù),非常簡單實用,需要的小伙伴可以參考下
    2015-12-12
  • Python教程之無限迭代器的使用詳解

    Python教程之無限迭代器的使用詳解

    Python的Itetool是一個模塊,它提供了各種函數(shù),這些函數(shù)在迭代器上工作以產(chǎn)生復(fù)雜的迭代器。該模塊作為一個快速,內(nèi)存效率的工具,可以單獨使用或組合使用以形成迭代器代數(shù)。本文就來和大家詳細(xì)聊聊無限迭代器,感興趣的可以了解一下
    2022-09-09
  • python算法與數(shù)據(jù)結(jié)構(gòu)之單鏈表的實現(xiàn)代碼

    python算法與數(shù)據(jù)結(jié)構(gòu)之單鏈表的實現(xiàn)代碼

    鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。這篇文章主要介紹了python算法與數(shù)據(jù)結(jié)構(gòu)之單鏈表的實現(xiàn)代碼,需要的朋友可以參考下
    2019-06-06
  • PyTorch搭建LSTM實現(xiàn)時間序列負(fù)荷預(yù)測

    PyTorch搭建LSTM實現(xiàn)時間序列負(fù)荷預(yù)測

    這篇文章主要為大家介紹了PyTorch搭建LSTM實現(xiàn)時間序列負(fù)荷預(yù)測,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python解包用法詳解

    python解包用法詳解

    在本篇文章里小編給大家整理的是關(guān)于python解包用法詳解內(nèi)容,有需要的朋友們可以跟著一起學(xué)習(xí)下。
    2021-02-02
  • python常用數(shù)據(jù)結(jié)構(gòu)字典梳理

    python常用數(shù)據(jù)結(jié)構(gòu)字典梳理

    這篇文章主要介紹了python常用數(shù)據(jù)結(jié)構(gòu)字典梳理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • python實現(xiàn)密碼強度校驗

    python實現(xiàn)密碼強度校驗

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)密碼強度校驗,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python列表刪除所有出現(xiàn)元素的兩種方法

    Python列表刪除所有出現(xiàn)元素的兩種方法

    今天寫代碼的時候遇到一個小問題,Python中要刪除列表中的所有元素,本文主要介紹了Python列表刪除所有出現(xiàn)元素的兩種方法,非常具有實用價值,需要的朋友可以參考下
    2023-06-06
  • Python 3中print函數(shù)的使用方法總結(jié)

    Python 3中print函數(shù)的使用方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Python 3中print函數(shù)的使用方法,python3中的print函數(shù)和之前版本的用法相差很多,本文通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • Python輕松讀取TOML文件告別手動編輯配置文件

    Python輕松讀取TOML文件告別手動編輯配置文件

    這篇文章主要為大家介紹了Python輕松讀取TOML文件告別手動編輯配置文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

克什克腾旗| 德安县| 佛教| 井冈山市| 六枝特区| 栾城县| 西盟| 连云港市| 吉林市| 湛江市| 庄浪县| 湘潭市| 花垣县| 怀集县| 上饶县| 祁连县| 台江县| 科尔| 波密县| 马公市| 永嘉县| 西藏| 汉川市| 双城市| 博爱县| 安国市| 马关县| 竹北市| 伊通| 通渭县| 绥宁县| 宜昌市| 灵山县| 叶城县| 华容县| 涡阳县| 和顺县| 南投县| 玉屏| 高邑县| 明水县|