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

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

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 pdpoint=[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]*10power_power[int(power[i,1]-1),int(power[i,0]-1)]=power[i,2]*10for 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-1for i in range(0,18):length[begin][i]=9999length[begin][begin]=0point_list=[begin]#print(point_list)#print(type(point_list))#print(len(point_list))#start=beginwhile 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]+power_power[num,i])road[begin,i]=num+1;#road[i,begin]=num+1;point_list.append(i);#print(point_list)#print(13421)point_list.pop(0)#print(point_list)#print(a)#print(length[begin])#print(point_list)#print(road[begin])#print(length)#print(road)def find_min_point(a,b,c,d,num):#给4个点,找出和指定点最近的点point=amin=length[a,num]if(length[b,num]<min):min=length[b,num]point=bif(length[c,num]<min):min=length[c,num]point=cif(length[d,num]<min):min=length[d,num]point=dreturn pointdef find_min_point2(a,b,num):#给2个点,找出和指定点最近的点point=amin=length[a,num]if(length[b,num]<min):min=length[b,num]point=breturn pointdef find_line(begin,end):#根据起点和终点回溯最短路径#print(begin,end)line_list=[]i=end+1line_list.append(i)#print(road[begin])#a=0#while a!=6:while i!=(begin+1): #print('num+',begin,end,i,road[begin,i-1])i=road[begin,i-1]line_list.append(i)#a=a+1line_list.reverse()print(line_list)def find_all_length11(a,b,c,d):#给4个点,找出所有点到这四个点的最短距离sum=0for i in range(0,18):point=find_min_point(a,b,c,d,i)#print(i,point,length[i,point])sum=sum+length[i,point]return sumdef find_all_length12(a,b,c,d):#给4个点,找出所有点到这四个点的最短距离#答案特供版for i in range(0,18):point=find_min_point(a,b,c,d,i)print(i+1,point+1,length[i,point]/10)#find_line(i,point)print('\n每个小区的目标核酸检测点的路径')    for i in range(0,18):point=find_min_point(a,b,c,d,i)find_line(i, point)def find_all_length21(a,b):#给2个点,找出C到这2个点的最短距离sum=0for i in range(10,18):point=find_min_point2(a,b,i)#print(i,point,length[i,point])sum=sum+length[i,point]return sumdef find_all_length22(a,b):#给2个点,找出C所有点到这2个点的最短距离#答案特供版for i in range(10,18):point=find_min_point2(a,b,i)print(i+1,point+1,length[i,point]/10)#find_line(i,point)print('\n每个小区的目标核酸检测点的路径')    for i in range(10,18):point=find_min_point2(a,b,i)find_line(i, point)def find_sum_min(a,b,c,d):#找和所有点最近的四个点a=1b=2c=3d=4minlength=99999for i in range(0,18):for j in range(i+1,18):#print(i,j)for k in range(j+1,18):for l in range(k+1,18):e=find_all_length11(i,j,k,l)if e<minlength:minlength=ea=ib=jc=kd=l#print(i,j,k,l)print('\n最短总距离:')print(minlength/10)               return a,b,c,ddef find_sum_min2(a,b):#找和C所有点最近的两个点a=1b=2minlength=99999for i in range(10,18):for j in range(i+1,18):e=find_all_length21(i,j)if e<minlength:minlength=ea=ib=jprint('\n最优最短总距离:')print(minlength/10)return a,bdef main():for i in range(1,19):creat(i)#print(type(point))print(length)print(road)print(power_power)pd.DataFrame(length).to_excel("length.xls","Sheet1")pd.DataFrame(road).to_excel("road.xls","Sheet1")pd.DataFrame(power_power).to_excel("power.xls","Sheet1")a=0b=0c=0d=0a,b,c,d=find_sum_min(a,b,c,d)print('\n4个核酸检测点:')print(a+1,b+1,c+1,d+1)print('\n每个小区的目标核酸检测点和最短距离:')find_all_length12(a,b,c,d)print('\n第二题')print('\n设置在16和18时') print('\n最短总距离:')print(find_all_length21(15, 17)/10)print('\n每个小区的目标核酸检测点和最短距离:')find_all_length22(15,17)a,b=find_sum_min2(a, b)print('\n2个核酸检测点:')print(a+1,b+1)print('\n每个小区的目标核酸检测点和最短距离:')find_all_length22(a,b)if __name__ == '__main__':main()

[[ 0 31 56 32 142 195 221 170 198 171 318 346 376 389 367 392 345 344]

[ 31 0 25 26 136 189 215 164 192 165 312 340 370 383 361 386 339 338]

[ 56 25 0 27 137 190 216 165 193 166 313 341 371 384 362 387 340 339]

[ 32 26 27 0 110 163 189 138 166 139 286 314 344 357 335 360 313 312]

[142 136 137 110 0 53 79 28 56 29 176 204 234 247 225 250 203 202]

[195 189 190 163 53 0 26 25 50 48 170 198 228 241 219 244 197 196]

[221 215 216 189 79 26 0 51 24 51 144 172 202 215 193 218 171 170]

[170 164 165 138 28 25 51 0 50 23 170 198 228 241 219 244 197 196]

[198 192 193 166 56 50 24 50 0 27 120 148 178 191 169 194 147 146]

[171 165 166 139 29 48 51 23 27 0 147 175 205 218 196 221 174 173]

[318 312 313 286 176 170 144 170 120 147 0 28 58 71 49 74 27 26]

[346 340 341 314 204 198 172 198 148 175 28 0 30 43 21 46 45 54]

[376 370 371 344 234 228 202 228 178 205 58 30 0 73 51 76 75 84]

[389 383 384 357 247 241 215 241 191 218 71 43 73 0 22 47 46 75]

[367 361 362 335 225 219 193 219 169 196 49 21 51 22 0 25 24 53]

[392 386 387 360 250 244 218 244 194 221 74 46 76 47 25 0 49 78]

[345 339 340 313 203 197 171 197 147 174 27 45 75 46 24 49 0 29]

[344 338 339 312 202 196 170 196 146 173 26 54 84 75 53 78 29 0]]

[[ 0 1 2 1 4 8 6 5 10 5 9 11 12 15 12 15 11 11]

[ 2 0 2 2 4 8 6 5 10 5 9 11 12 15 12 15 11 11]

[ 2 3 0 3 4 8 6 5 10 5 9 11 12 15 12 15 11 11]

[ 4 4 4 0 4 8 6 5 10 5 9 11 12 15 12 15 11 11]

[ 4 4 4 5 0 8 6 5 10 5 9 11 12 15 12 15 11 11]

[ 4 4 4 5 8 0 6 6 7 8 9 11 12 15 12 15 11 11]

[ 4 4 4 5 8 7 0 6 7 9 9 11 12 15 12 15 11 11]

[ 4 4 4 5 8 8 6 0 10 8 9 11 12 15 12 15 11 11]

[ 4 4 4 5 10 7 9 10 0 9 9 11 12 15 12 15 11 11]

[ 4 4 4 5 10 8 9 10 10 0 9 11 12 15 12 15 11 11]

[ 4 4 4 5 10 7 9 10 11 9 0 11 12 15 12 15 11 11]

[ 4 4 4 5 10 7 9 10 11 9 12 0 12 15 12 15 15 11]

[ 4 4 4 5 10 7 9 10 11 9 12 13 0 15 12 15 15 11]

[ 4 4 4 5 10 7 9 10 11 9 12 15 12 0 14 15 15 17]

[ 4 4 4 5 10 7 9 10 11 9 12 15 12 15 0 15 15 17]

[ 4 4 4 5 10 7 9 10 11 9 12 15 12 15 16 0 15 17]

[ 4 4 4 5 10 7 9 10 11 9 17 15 12 15 17 15 0 17]

[ 4 4 4 5 10 7 9 10 11 9 18 11 12 15 17 15 18 0]]

[[9999 31 9999 32 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[ 31 9999 25 26 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 25 9999 27 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[ 32 26 27 9999 110 9999 9999 9999 9999 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 110 9999 9999 9999 28 9999 29 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 26 25 9999 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 9999 26 9999 9999 24 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 28 25 9999 9999 9999 23 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 24 9999 9999 27 120 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 29 9999 9999 23 27 9999 9999 9999 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 9999 9999 120 9999 9999 28 9999 9999

9999 9999 27 26]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 28 9999 30 9999

21 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 30 9999 9999

9999 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999

22 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 21 9999 22

9999 25 24 9999]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999

25 9999 9999 9999]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 27 9999 9999 9999

24 9999 9999 29]

[9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 26 9999 9999 9999

9999 9999 29 9999]]

最短总距离:

42.7

4个核酸检测点:

2 7 8 15

每个小区的目标核酸检测点和最短距离:

1 2 3.1

2 2 0.0

3 2 2.5

4 2 2.6

5 8 2.8

6 8 2.5

7 7 0.0

8 8 0.0

9 7 2.4

10 8 2.3

11 15 4.9

12 15 2.1

13 15 5.1

14 15 2.2

15 15 0.0

16 15 2.5

17 15 2.4

18 15 5.3

每个小区的目标核酸检测点的路径

[1, 2]

[2]

[3, 2]

[4, 2]

[5, 8]

[6, 8]

[7]

[8]

[9, 7]

[10, 8]

[11, 12, 15]

[12, 15]

[13, 12, 15]

[14, 15]

[15]

[16, 15]

[17, 15]

[18, 17, 15]

第二题

设置在16和18时

最短总距离:

24.9

每个小区的目标核酸检测点和最短距离:

11 18 2.6

12 16 4.6

13 16 7.6

14 16 4.7

15 16 2.5

16 16 0.0

17 18 2.9

18 18 0.0

每个小区的目标核酸检测点的路径

[11, 18]

[12, 15, 16]

[13, 12, 15, 16]

[14, 15, 16]

[15, 16]

[16]

[17, 18]

[18]

最优最短总距离:

16.9

2个核酸检测点:

11 15

每个小区的目标核酸检测点和最短距离:

11 11 0.0

12 15 2.1

13 15 5.1

14 15 2.2

15 15 0.0

16 15 2.5

17 15 2.4

18 11 2.6

每个小区的目标核酸检测点的路径

[11]

[12, 15]

[13, 12, 15]

[14, 15]

[15]

[16, 15]

[17, 15]

[18, 11]

新冠病毒核酸检测点建模分析相关推荐

  1. qPCR与新冠病毒核酸检测

    qPCR与新冠病毒核酸检测 这篇文章简单记录一下qPCR核酸定量的原理以及它在新型冠状病毒检测中的应用,分享给身边好奇核酸检测的朋友,参考视频链接:https://www.bilibili.com/v ...

  2. 京东健康上线“新冠病毒”核酸检测 在线预约服务

    近日,京东健康与北京金域医学实验室达成合作,上线"新冠病毒"核酸检测的在线预约服务,成为全国首个提供核酸检测服务在线下单及预约的平台. 据介绍,用户通过京东APP搜索"核 ...

  3. 新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore)

    新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore) 一. 本文使用Artic官方提供环境对Nanopore minion SARS-Cov-2测序数据,对新冠病毒突变及分型鉴定 ...

  4. 实验一 词法分析程序设计_重庆新增一生物2级安全实验室,将着眼新冠病毒等药物检测分析...

    5月12日,上游新闻·重庆商报记者获悉,位于两江新区的迪纳利医药科技有限责任公司(下简称"迪纳利")将建立生物2级安全实验室(简称"BSL-2"),该实验室主要 ...

  5. 最快60秒完成新冠病毒核酸对比 阿里云向社会免费开放基因计算服务

    全球疫情肆虐,各大科技公司都在竭尽全力抗击疫情.3月13日,阿里云对外宣布,将向医疗科研机构.疾控中心等一线病毒研究机构免费开放基因计算服务,可大幅提升宏基因组测序.疫苗研发相关的处理效率,最快只需6 ...

  6. 使用NCBI数据库查询并使用BLAST比对新冠病毒及九种变种的核酸序列

    一.实验目的 学会使用NCBI这一常见生物数据库 学会使用比对分析工具BLAST分析核酸或氨基酸序列. 二.实验内容 登录NCBI生物信息站点,查找新冠病毒(COVID-19)和其他几个变种的核酸序列 ...

  7. 新冠病毒是人造?科学解释为何阴谋论错得离谱

    乾明 鱼羊 赖可 发自 凹非寺  量子位 报道 | 公众号 QbitAI 新冠肺炎病毒,人造的? 先是2015年发表于Nature论文被扒出:称中美科学家5年前,就曾制造出类SARS新冠病毒. 又有印 ...

  8. 中国团队在精液中发现新冠病毒,“蛋疼”且“不行”:新冠可能对男性威胁更大...

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 新冠疫情下,男人不好当. 5月7日,中国的研究人员发布结果称,在中国本土的病中.愈后男性病例精液样本里,都检出新冠病毒. 这也进一步印证了 ...

  9. 基于改进SEIR模型的病毒传播动力学建模与疫情预测分析(以COVID-19新冠病毒为例,超详细,带matlab源码)

    文章目录 前言 一.数学基础知识 符号定义 二.传统SEIR模型的建立与求解 1.经典的SEIR传播动力学模型建立 2.根据经典的SEIR模型列出微分方程并求解 三.SEIR模型第一次修正 1.模型建 ...

最新文章

  1. SQL创建linkserver
  2. showSoftInput不起作用
  3. 160329(二)、web.xml配置详解
  4. android studio 引入arr的问题
  5. el table 固定表头和首行_el-table表头根据内容自适应,解决表头错位和固定列错位(完美解决)...
  6. Base PyQt4, Simple Web APP Framwork
  7. python实训名片管理程序_python3学生名片管理v2.0版
  8. Navicat for MySQL 使用SSH方式链接远程数据库
  9. java jint_Android使用JNI实现Java与C之间传递数据
  10. android 图库分析,Android开发之ImageSwitcher相册功能实例分析
  11. java 日期年度 35变2035_连接IBM MQ原因码报2035的错误解决办法
  12. 雷达发现 |最新教育行业数据报告
  13. ps入门第17天_模糊与锐化 案例:基础磨皮效果_ps修图_ps磨皮_ps高低频修图
  14. 关于vue-drag-resize的拖拽
  15. 1032: 员工薪水 Python
  16. 量化——【01】你不得不知道的金融量化基础知识
  17. 元宇宙链游OAS即将正式上线,社区热度只增不减
  18. Lect5_Model_free_Control
  19. Linux查看进程信息相关(Ubuntu)
  20. Cocos2d-x游戏开发之Lua 5.1 参考手册

热门文章

  1. 《LeetCode刷题答案》pdf出炉,学习者乐坏了
  2. 视频直播APP源码开发iOS音频播放流程
  3. HTML显示默认图片实现
  4. 小本生意,请各位博友多多支持
  5. python3 + Scrapy爬虫学习之创建项目
  6. 第1天-代码随想录刷题训练| 704二分查找、26移除元素
  7. M91A人脸识别布控球机人脸AI视频分析功能
  8. kicad最小布线宽度默认是多少_CABLExpress发布了最新的光纤布线最佳实践指南
  9. simple-uploader.js 文档
  10. Excel 拆分 分割 数据 (对数据进行分列)