【实战】新冠病毒传播模拟程序思路

目录

程序设计要求

初期思路

抽象化进行设计

模拟场景

后续延伸

程序设计要求

  • 1.仿真场景:划定区域或基于真实地图
  • 2.仿真要求:
    • 1)传播过程的模拟(可视化或数字指标变化);
    • 2)通过恰当指标说明不同场景下各类防疫措施的成效;
    • 3)给出整体防疫建议。

初期思路

  • 携带病毒人员
    • 已发作感染者
      • 未送医感染者
      • 已送医感染者
    • 潜伏期感染者
    • 未感染携带者
  • 疫情防控受限因素
    • 群众态度
      • 不愿意佩戴口罩
      • 出门往来走动
    • 政府政策
      • 疫情特别严重时
        • 非重大原因禁止出行
      • 疫情严重时
        • 对高风险人群实行隔离措施
        • 限制市民日常出行
      • 疫情一般时
        • 强制要求佩戴口罩
    • 医疗机构
      • 治愈率
      • 治愈时间
      • 优化防疫政策
      • 研制疫苗
    • 感染思路
      • 以每个出门的健康市民为中心建立一个圆形区域
      • 一旦一个未被送医的感染者出现在该区域时
      • 该健康市民有概率被感染
      • 感染者出现在健康市民附近和健康市民接触感染者被感染的概率抽象化为一个函数方法

抽象化进行设计

  • 循环更新感染者数量
  • 用变量表示
    • 疫情严重程度level
    • 感染者patient
      • 已发作感染者
      • 未送医感染者patient_out
      • 已送医感染者patient_hospital
      • 潜伏期感染者patient_in
      • 未发作携带者patient_with
    • 用函数方法表示
      • 未感染者接触感染者而感染void spread
        • 感染概率取决于
          • 现有未送医感染者数量patient-patient_hospital
          • 疫苗研制情况vaccine
          • 政府政策
      • 感染者被发现并送医void tocure
      • 送医后感染者的治愈结果void cure
      • 医疗资源根据疫情程度分配void cureset
        • 优先治愈患者curepatient
          • 提高治愈率cure_op
          • 降低死亡率death_op
        • 优先研制疫苗vaccine
          • 加快疫苗研发进程
            • 疫苗未完成
              • 无影响
            • 疫苗完成
              • 极大降低感染概率spread_op

模拟场景

  • 初始场景
    • 一个人口为people_num的未出现疫情的城市
  • 触发事件
    • 今天数量为ncov_num的感染者通过飞机高铁等进入了该城市
  • 输入
    • 政策
      • 疫情一般时
        • 强制要求佩戴口罩plan_mask
      • 疫情严重时
        • 对高风险人群实行隔离措施plan_keeponeself
        • 限制市民日常出行plan_limitedout
      • 疫情特别严重时
        • 非重大原因禁止出行plan_forbiddenout
  • 过程输出
    • 疫情情况,剩余感染者数量,疫苗研制进程
  • 最终输出
    • 经过时间time_day后,该城市剩余的总人口和感染者数量
    • 当前政府政策curepatienth和plan_*
    • 疫苗研制进度vaccine
  • 默认初始化条件
    • people_num=1000000;
    • ncov_num=100;
    • time_day=50;
    • out_op=0.5;
    • tocure_op=0.5;

后续延伸

  • 通过ADO类型库和MyODBC服务器程序将代码与数据库进行连接
  • 添加“将数据库表中已有的数据统计分析得出最佳选择政策”的功能
  • 建立一个用于继承的person类(成员:健康状态)
    • 感染者(成员:是否发作,方法:传染)
      • 被送医感染者(方法:治愈)
      • 未被送医感染者(方法:被送医)
      • 潜伏期感染者
      • 未发作携带者
    • 健康市民(方法:外出,自我防护程度)
  • 合理解决循环中执行方法的先后问题
  • 加入经济要素和市民情绪稳定要素
  • 感染方法中可用n*n的矩阵模拟健康市民的接触范围,rand()触发的感染者活动一旦出现在矩阵中则该市民被感染
  • 通过自动化测试评估各项政策采取的时间点最优解,通过引入深度学习模型来自动判别何时该采取何种政策