返回顶部
首页 > 资讯 > 后端开发 > Python >使用Python实现二终端网络可靠度
  • 731
分享到

使用Python实现二终端网络可靠度

2024-04-02 19:04:59 731人浏览 八月长安

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):

参数解释:

  • 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实现二终端网络可靠度的详细内容,更多关于二终端网络可靠度 的资料请关注编程网其它相关文章!

--结束END--

本文标题: 使用Python实现二终端网络可靠度

本文链接: https://lsjlt.com/news/125137.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用Python实现二终端网络可靠度
    在网络可靠性中,一种较为经典且在实践中更为常用的可靠度计算便是二终端可靠度,即给定网络拓扑结构与边可靠度(假定节点完全可靠),计算网络中指定的两个节点之间的连通可靠度。 在此,笔者依...
    99+
    2024-04-02
  • mac终端使用代理网络
    在终端命令行中,配置代理。 以使用 ClashX 代理客户端为例,HTTP 代理端口为 7890 ,Socks5 代理端口为 7891。端口是可修改的。HTTP 代理或 Socks5 代理,配置时选其...
    99+
    2023-10-02
    python
  • python 实现终端中的进度条
    # -*- coding:utf-8 -*-   # Copyright: Lustralisk # Author: test # Date: 2015-11-08   import sys, time   class ProgressBa...
    99+
    2023-01-31
    终端 进度条 python
  • Python 网络编程最佳实践:打造可靠、可扩展的应用
    Python是一个流行的高级编程语言,可用于各种目的,包括网络编程。Python 网络编程可以帮助您构建各种网络应用程序,如 Web 应用程序、API 和网络服务器。 为了帮助您构建可靠、可扩展的网络应用程序,这里介绍了一些 Pytho...
    99+
    2024-02-13
    Python 网络编程 最佳实践 可靠 可扩展
  • 如何使用Python生成可靠且安全的二维码?
    好的,下面是文章内容: 二维码已经成为了现代人生活中不可或缺的一部分,我们可以在商店、地铁站、公交车等各种场所看到各种各样的二维码。二维码的便捷性和安全性也越来越受到人们的重视。在本文中,我们将介绍如何使用Python生成可靠且安全的二维码...
    99+
    2023-09-11
    二维码 大数据 数组
  • Python利用keras接口实现深度神经网络回归
    目录1 写在前面2 代码分解介绍2.1 准备工作2.2 参数配置2.3 数据导入与数据划分2.4 联合分布图绘制2.5 因变量分离与数据标准化2.6 原有模型删除2.7 最优Epoc...
    99+
    2023-02-17
    Python keras深度神经网络回归 Python 深度神经网络回归 Python 神经网络回归 Python keras
  • Python深度学习之实现卷积神经网络
    目录一、卷积神经网络二、网络架构三、卷积四、卷积层五、在Keras中构建卷积层六、池化层七、全连接层八、Python实现卷积神经网络九、总结一、卷积神经网络 Yann LeCun 和...
    99+
    2024-04-02
  • Python中怎么使用Socket实现网络编程
    本篇文章为大家展示了Python中怎么使用Socket实现网络编程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Socket:套接字套接字好比电话的插口,主机和端口就好比区号和电话号码,主机:是你要...
    99+
    2023-06-17
  • 实现shell终端代码分享(可用户登录 实现系统命令)
    #include"apue.h" int userlogin(struct passwd **); int main(){ int ret,i=0; long ret_cwd; struct passwd...
    99+
    2022-06-04
    终端 用户登录 命令
  • 使用Pytorch怎么实现半精度浮点型网络训练
    今天就跟大家聊聊有关使用Pytorch怎么实现半精度浮点型网络训练,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。用Pytorch2.0进行半精度浮点型网络训练需要注意下问题:网络要在...
    99+
    2023-06-15
  • python神经网络使用tensorflow实现自编码Autoencoder
    目录学习前言antoencoder简介1、为什么要降维2、antoencoder的原理3、python中encode的实现全部代码学习前言 当你发现数据的维度太多怎么办!没关系,我们...
    99+
    2024-04-02
  • 如何在 Python 中使用存储技术来生成可靠的二维码?
    在当今数字化时代,二维码已经成为了一种不可或缺的工具。无论是在商业领域还是在个人领域,二维码都能提供便利的服务。Python 是一种十分流行的编程语言,它提供了各种各样的库和工具,使得使用 Python 来生成二维码变得非常简单。在本文中,...
    99+
    2023-10-07
    教程 存储 二维码
  • Python实现城市公交网络分析与可视化
    目录一、数据查看和预处理二、数据分析一、数据查看和预处理 数据获取自高德地图API,包含了天津市公交线路和站点名称及其经纬度数据。 import pandas as pd df...
    99+
    2022-11-12
    Python 城市公交网络分析 Python 城市公交分析 Python 城市公交可视化分析
  • NAS网络存储中如何使用Docker安装百度网盘客户端
    这篇文章将为大家详细讲解有关NAS网络存储中如何使用Docker安装百度网盘客户端,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先登录TOS系统,应用商店-docker安装; 注册表搜索bai...
    99+
    2023-06-04
  • Python实现网络端口转发和重定向的方法
    本文实例讲述了Python实现网络端口转发和重定向的方法。分享给大家供大家参考,具体如下: 【任务】 需要将某个网络端口转发到另一个主机(forwarding),但可能会是不同的端口(redirecting...
    99+
    2022-06-04
    端口 重定向 方法
  • 怎么利用Python实现网络测试
    Speedtest CLI 专为软件开发人员、系统管理员和计算机爱好者等打造,是 Ookla® 提供技术支持的首款正式 Linux 本机 Speedtest 应用程序。Python语言编写的Speedtest CLI可在命令...
    99+
    2023-05-17
    Python
  • Node.js中如何使用readline模块实现终端输入
    本文小编为大家详细介绍“Node.js中如何使用readline模块实现终端输入”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node.js中如何使用readline模块实现终端输入”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-29
  • 如何使用HTML5实现网站在windows8中贴靠
    这篇文章主要为大家展示了“如何使用HTML5实现网站在windows8中贴靠”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用HTML5实现网站在windo...
    99+
    2024-04-02
  • Python怎么用递归实现求二叉树深度
    本篇内容介绍了“Python怎么用递归实现求二叉树深度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!其实就是求二叉树层级,比如一个单点就是一...
    99+
    2023-06-02
  • 使用CocosCreator怎么实现网络通信
    使用CocosCreator怎么实现网络通信?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体实施public constructor(driver: Co...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作