新冠病毒核酸检测点建模分析

新冠病毒核酸检测点优化布局
通过对3个区域的人员聚集小区进行建模分析,确定4个核酸检测点的最佳位置以实现最短总距离。在C区域中,16号和18号小区作为检测点不合理,最优方案是在11号和15号小区设立检测点,能有效减少平均等待时间和队长。此外,还计算了C区域18号小区检测点的排队情况,平均等待时间和队长在12:00至17:00内的情况。

新冠病毒核酸检测点建模分析

随着全球新冠肺炎疫情的大流行,对个人生命健康及经济都产生了极大影响,新冠病毒经常出现多点散发,新冠核酸检测成为了常规手段。检测点的设置及排队情况是其中非常重要的问题。按照建模要求,解决如下问题:

1. 如示意图所示,这里表示有3个大的区域A,B,C。其中标号的点代表人员聚集小区(这里把1个小区假设为一个点),边上的数值代表两点的距离(单位公里)。假设我们要在这些人员聚集区建设4个核酸检测点,请建立数学模型分析,4个核酸检测点应该设置在什么地方是最好的,并说明理由。

2.假设只考虑C区域,其中的16号和18号小区建设有核酸检测点,请问这两个点建设是否合理?若不合理,应该如何建在哪里?

3.假设只考虑C区域的18号聚集区,小区监测点有6个检测台,有6000人,1个人的检测时间为15秒,从12:00开始到17:00结束,求排队的平均等待时间及平均队长。

# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd

point=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
power=[[1,2,3.1],
       [1,4,3.2],
       [2,3,2.5],
       [2,4,2.6],
       [3,4,2.7],
       [4,5,11],
       
       [5,8,2.8],
       [5,10,2.9],
       [6,7,2.6],
       [6,8,2.5],
       [7,9,2.4],
       [8,10,2.3],
       [9,10,2.7],
       [9,11,12],
       
       [11,12,2.8],
       [11,17,2.7],
       [11,18,2.6],
       [12,13,3],
       [12,15,2.1],
       [14,15,2.2],
       [15,16,2.5],
       [15,17,2.4],
       [17,18,2.9]]
length=[[0]*len(point)]*len(point)#最短路程
road=[[0]*len(point)]*len(point)#最短结点
power_power=[[0]*len(point)]*len(point)#图

power=np.array(power)
length=np.array(length)
road=np.array(road)
power_power=np.array(power_power)

for i in range(0,len(power)):#转化为图
    #print(power[i,2])
    power_power[int(power[i,0]-1),int(power[i,1]-1)]=power[i,2]*10
    power_power[int(power[i,1]-1),int(power[i,0]-1)]=power[i,2]*10

for i in range(0,len(length)):
    for j in range(0, len(length)):
        if power_power[i,j]==0:
            power_power[i,j]=9999;
#print(power_power)

def creat(begin):#构建最短距离和结点网络
    begin=begin-1
    for i in range(0,18):
        length[begin][i]=9999
    length[begin][begin]=0
    point_list=[begin]
    #print(point_list)
    #print(type(point_list))

    #print(len(point_list))
    #start=begin
    while len(point_list)!=0:
        num=point_list[0]
        #print(num)
    #print(num)
        for i in range(0,18):
            if length[begin,i]>(length[begin,num]+power_power[num,i]):
                length[begin,i]=(length[begin,num]+
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值