目录

A题分析

问题一分析

问题二分析

C题分析

代码部分

第一问代码

第二问代码


已更新AC题思路代码模型!!

A题分析

问题分析:首先我们通过微博选择需要研究的话题,收集话题的相关数据以及用户粉丝人数、转发量、评论量来作为信息传播的影响因子,通过量化单位时间的转发量、评论量等指标。来作为信息传播的综合评价指标,从而构建综合评价体系量化信息传播指数,引入熵权法求解各评价指标的权重,综合分析信息传播随时间变化的规律。

在全新的信息传播格局下,如何破除“尖叫效应”与“回声室效应”,走出“信息茧房”,是当前迫切需要解决的现实问题,即如何从信息传输的顶层设计、推荐算法的公平性和广大网络用户的责任担当等方面,帮助公众对新闻事件乃至社会现实有一个相对准确、清晰的认识和判断,并在主流意识和个性化信息之间找到平衡点,使得网络舆论环境更具理性和建设性。请回答以下问题:

1. 针对某些话题,在微信、微博、Facebook和Twitter等社交媒体上下载相关数据,定量描述该话题(或信息)的传播过程,并分析其影响因素。该数据分析需至少针对两种不同的话题展开讨论,其中一个话题最终观点趋于相同(中立共识),另一话题最终观点趋于两极分化(观点极化)。

问题一分析

中立共识与观点极化其实是在话题传播途中,用户对话题评论数量的占比,通过分析话题中反对、支持、中立三种不同观点的评论数及评论数随时间增长速度随时间的变化规律;该规律用于刻画话题中共识与极化形成的机制,同时分别统计各因素指标的数值,引入相关性分析模型,分别讨论不同观点评论数量、增长量与各因素的关系。

得出一部分爬虫后的数据

2.建立数学模型刻画中立共识和观点极化的产生机制,探索“尖叫效应”、“回声室效应”与“信息茧房”的形成机制,并讨论话题的吸引度、用户的活跃度、用户心理、不同用户间的相互影响、平台推荐算法等因素对形成这些现象的影响。

问题二分析

对于尖叫效应,当话题在短时间内快速传播,用户对话题的评论量会迅速放大,速度的增长量也会快速增加,通过收集不同话题在起初阶段的传播速度情况从而对比不同话题形成“尖叫效应”的异同,同时利用上述相关性模型得到“尖叫效应”后的形成与各因素之间的关系。“回声效应”和“信息茧房”同理,视频里有具体讲解。

具体代码过多,只展示部分:

{"cells": [{"cell_type": "markdown","metadata": {},"source": ["## 预处理"]},{"cell_type": "code","execution_count": 25,"metadata": {},"outputs": [],"source": ["import os\n","import pandas as pd\n","import re\n","import jieba\n","import jieba.posseg as psg"
]
"cell_type": "code","execution_count": 27,"metadata": {},"outputs": [],"source": ["def chinese_word_cut(mytext):\n","    jieba.load_userdict(dic_file)          # 加载用户词典\n","    jieba.initialize()                     # 手动初始化(可选)\n","    \n","    # 加载用户停用词表\n","    try:\n","        stopword_list = open(stop_file,encoding ='utf-8')\n","    except:\n","        stopword_list = []\n","        print(\"error in stop_file\")\n","    \n","    stop_list = []                       # 存储用户停用词\n","    flag_list = ['n','nz','vn']          # 指定在jieba.posseg分词函数中只保存n:名词、nz:其他专名、vn:动名词\n","    for line in stopword_list:\n","        line = re.sub(u'\\n|\\\\r', '', line)\n","        stop_list.append(line)\n","    \n","    word_list = []\n","    seg_list = psg.cut(mytext)            # jieba.posseg分词\n","    \n",

C题分析

为了实现我国在2030年前“碳达峰”、在2060年前“碳中和”的目标,在物料运输中使用环保的自动驾驶电动车是发展趋势。

在制订电动车调度方案时,必须考虑充、换电池的时间成本,从而提出了新的车辆运输选址及调度问题。

问题1 一批自动驾驶电动物料车将物料从P点运送到D点,然后空载返回,如此循环往复运送物料。要求建立数学规划模型,在P点与D点之间确定一个双向同址(像高速的休息站一样)的换电站位置,以及对应的车辆和电池组调度方案,极大化指定时间段内运送物料量,满足资源约束与电池运行方式约束。根据附录所给的数据,求解规划模型,给出换电站位置,并给出在1000小时中运送的物料量,所使用车辆、电池组数量和车辆及其各电池组的具体调度方案。

问题一思路:

问题需要我们求出具体的选址以及调度方案,所以学习过数学建模模型的同学应该可以很快地反应,我们需要用到规划模型,从文中所给我们可以得到决策变量:换电站的位置,根据到P点以及D点的距离,来得出我们的规划模型;

目标函数: 运输的趟数最多或者可以说,到达D点的次数最多 。接下来的约束条件, 只需要根据调度方案选择合适的出发点就可以了。看起来, 出发点的选择可以靠近点P, 又恰好让车跑到90%时更换电池。

我们给出第一、二问的部分代码供大家参考,后续持续更新!

代码部分

第一问代码

import numpy as npfrom itertools import productclass Lorry:def __init__(self, station1, station2):# station1: P->D 换电站位置, station2:D->P 换电站位置self.bet = 100 # 当前电池电量self.p = 20 - station2 # 当前位置self.t = 0 # 当前时间self.station1 = station1self.station2 = station2self.n_charge = 0 # 充电次数def __str__(self):return "Lorry is at position {}, with battery {}, at time {}".format(self.p, self.bet, self.t)def move(self, dt):# 0(P)___10(D)___20(P')# dt时间后的演化结果if 0 <= self.p < 10 or np.isclose(self.p, 0):# P->Dself.bet -= 1/2 * dt # 电池消耗elif 10 <= self.p < 20 or np.isclose(self.p, 10):# D->Pself.bet -= 1/3 * dt # 电池消耗if self.bet < 0 or np.isclose(self.bet, 0):raise Exception("Lorry is out of battery")self.t = self.t + dt # 时间变化self.p = (self.p + dt * 1) % 20 # 位置变化if np.isclose(self.p, 10) or np.isclose(self.p, 0):# 装卸货时间self.t += 1self.recharge()def recharge(self):if (np.isclose(self.p, self.station1) or np.isclose(self.p, 20 - self.station2)) and 10 <= self.bet <= 12.6:# 逐渐降低阈值,测试是否存在可行解self.bet = 100# print("Lorry is recharged at time {}".format(self.t))# gap.append(self.t)# print(self)self.t += 2self.n_charge += 1# for (sta1, sta2) in product(np.arange(0, 10, 1), np.arange(0, 10, 1)):for sta1 in np.arange(0.1, 10, 0.1):sta2 = sta1lorry = Lorry(sta1, sta2)try:for T in range(1000*60*10):lorry.move(dt=0.1)print('({:.1f}, {:.1f}) worked with charge {:d} times'.format(sta1, sta2, lorry.n_charge))except Exception as e:print((sta1, sta2), e, end='\r')# # gap = []# (sta1, sta2) = (5, 5)# lorry = Lorry(sta1, sta2)# for T in range(1000*60*10):# lorry.move(dt=0.1)# # print(lorry.n_charge)# # gap = [gap[i] - gap[i-1] for i in range(1, len(gap))]# # gap = np.array(gap)# # print(gap.min())# n_lorry = 75

第二问代码

import numpy as np
from itertools import productclass Lorry:def __init__(self, station1, station2):# station1: P->D 换电站位置, station2:D->P 换电站位置self.bet = 100  # 当前电池电量self.p = 20 - station2  # 当前位置self.t = 0  # 当前时间self.station1 = station1self.station2 = station2self.n_charge = 0  # 充电次数self.n_mission = 0  # 运货次数def __str__(self):return "Lorry is at position {:.1f}, charged {:d} times,\n complete mission {:d} times in {:.1f} minutes".format(self.p, self.n_charge, self.n_mission, self.t)def move(self, dt):# 0(P)___10(D)___20(P')# dt时间后的演化结果if 0 <= self.p < 10 or np.isclose(self.p, 0):# P->Dself.bet -= 1/2 * dt  # 电池消耗elif 10 <= self.p < 20 or np.isclose(self.p, 10):# D->Pself.bet -= 1/3 * dt  # 电池消耗if self.bet < 0 or np.isclose(self.bet, 0):raise Exception("Lorry is out of battery")self.t = self.t + dt  # 时间变化self.p = (self.p + dt * 1) % 20  # 位置变化if np.isclose(self.p, 0):# 装卸货时间self.t += 1elif np.isclose(self.p, 10):self.t += 1self.n_mission += 1self.recharge()def recharge(self):# 逐渐降低阈值,测试是否存在可行解if np.isclose(self.p, self.station1) and 10 <= self.bet <= 12.6:# 满载到达换电站self.bet = 100self.t += 2self.n_charge += 1elif np.isclose(self.p, 20 - self.station2) and 10 <= self.bet <= 12.6:# 空载到达换电站self.bet = 100self.t += 2/3  # 只考虑换电为2, 考虑换电为2/3self.n_charge += 1lorry = Lorry(7.0, 2.0)
print("选址位于(7.0, 2.0)")
while lorry.t < (1000*60 - 0.1):lorry.move(dt=0.1)
print(lorry)lorry = Lorry(5.0, 5.0)
print("选址位于(5.0, 5.0)")
while lorry.t < (1000*60 - 0.1):lorry.move(dt=0.1)
print(lorry)lorry = Lorry(3.0, 8.0)
print("选址位于(3.0, 8.0)")
while lorry.t < (1000*60 - 0.1):lorry.move(dt=0.1)
print(lorry)# for (sta1, sta2) in product(np.arange(0, 10, 1), np.arange(0, 10, 1)):
# # for sta1 in np.arange(0.1, 10, 0.1):
# #     sta2 = sta1
#     lorry = Lorry(sta1, sta2)
#     try:
#         for T in range(1000*60*10):
#             lorry.move(dt=0.1)
#         print('({:.1f}, {:.1f}) worked with charge {:d} times'.format(sta1, sta2, lorry.n_charge))
#     except Exception as e:
#         print((sta1, sta2), e, end='\r')# # gap = []
# (sta1, sta2) = (5, 5)
# lorry = Lorry(sta1, sta2)
# for T in range(1000*60*10):
#     lorry.move(dt=0.1)
# # print(lorry.n_charge)
# # gap = [gap[i] - gap[i-1] for i in range(1, len(gap))]
# # gap = np.array(gap)
# # print(gap.min())

具体换车换电流程为:

初始时, 有75辆车运行, 50辆满电的车备用.

将所有车按1-75进行编号, 初始时, 以0.2km间隔发车, 则最后一辆车与第一辆车有约为5km的间隔.

在满载的状态下, 若如果路过换电站时, 电量在10%至12.6%, 只选择换电, 不选择换车.

在空载的状态下, 若如果路过换电站时, 电量在10%至12.6%, 按照如下状态进行换车换电:

第一轮位于空载状态下路过换电站, 对1-50车进行换车操作, 50-75号车进行换电操作, 则75号与1号车间隔缩小(但仍远大于0.2km), 50号与51号车间隔变大.

第二轮位于空载状态下路过换电站, 对51-75, 1-25车进行换车操作, 25-75号车进行换电操作

第三轮位于空载状态下路过换电站, 对25,-75车进行换车操作, 1-25号车进行换电操作

三轮操作为一个循环, 间距回到原来的状态.

更多思路↓↓

2022深圳杯AC题思路模型分析相关推荐

  1. 2022深圳杯A题思路模型分析

    目录 A题分析 问题一分析 问题二分析: 分类问题 判别分析 聚类分析 神经网络分类方法 预测问题 回归分析法 时间序列分析法 灰色预测法 BP神经网络法 组合预测法 优化问题 组合优化经典问题 评价 ...

  2. 2022亚太杯C题思路代码分析

    C题就是数学比较开放的题目了,属于一个数据分析类题目,跟前两年的华为杯差不多,考察的也是全球变暖问题.更多内容文末名片查看 问题1.你同意有关全球气温的说法吗?使用2022_APMCM_C_Data. ...

  3. 2022宁夏杯B题思路分析+代码(大学生就业问题分析)

    2022宁夏杯B题完整题目: 链接:https://pan.baidu.com/s/1aClw5k-Ux-17rckTIRWrdg?pwd=1234 提取码:1234 文章目录 一.题目 二.数据预处 ...

  4. 2022深圳杯C题自动驾驶电动物料车换电站选址及调度方案

    2022深圳杯C自动驾驶电动物料车换电站选址及调度方案   为了实现我国在 2030 年前"碳达峰".在 2060 年前"碳中和"的目标,在物料运输中使用环保的 ...

  5. 2022华为杯E题思路分析

    比赛期间将会给大家提供赛题的思路分析,更多思路看文章最下方名片 E题思路 问题1. 从机理分析的角度,建立不同放牧策略(放牧方式和放牧强度)对锡林郭勒草原土壤物理性质(主要是土壤湿度)和植被生物量影响 ...

  6. 2022华为杯A题思路分析移动场景超分辨定位问题

    华为杯A题专业性非常强,也成为华为题.对于不是通信和雷达专业的同学来说不太友好,谨慎选择,时间紧不利于对于公式的理解. 移动场景超分辨定位问题 这是一个在移动场景下进行信号波定位问题,首先我们需要了解 ...

  7. 2016深圳杯D题 思路

    离2016年深圳杯比赛已经过去半年多了,当时我们获得了国家二等奖,楼主对具体思路也记得不大清了.简单说一下当时的思路吧. 题目不再赘述... 本题神坑. 第一问,构建人体动态量化模型,完全不会...当 ...

  8. 2022亚太杯A题思路

    A题思路:题材是化学实验中的融化再结品的过程,开始加热和降温都有红色,加热至融化阶段恒温一段时间内呈黄色,随后温度继续上升中心部分呈现红色,过一段时间开始冷却黄色逐渐消失,红色区域增多,然后变暗,为了 ...

  9. 2022亚太杯A题思路-序列图像特征提取及模具熔融结晶建模分析

    完整解答获取见文末 序列图像特征提取及模具熔融结晶建模分析 连铸过程中的模具通量对钢半月板进行热绝缘,防止液态钢连铸过程中液态钢再 氧化,控制传热,提供链润滑,吸收非金属夹杂物.模具通量的冶金功能主要 ...

最新文章

  1. 向iOS越狱彻底说再见!
  2. linux编译模块时怎么包含其他c文件夹,如何在导入符号出现在已编译的Linux内核模块中时,可选地使用它们?...
  3. MindCon | 当「赛博朋克」遇到「AI极客」会发生什么?
  4. VS2010 + OpenGL 及 第一个实例
  5. CF 1103B Game with modulo
  6. asp.net core 3.0 更新简记
  7. 如何衡量研发效能?阿里资深技术专家提出了5组指标
  8. win7下搭建PHP mysql_简单介绍win7下搭建apache+php+mysql开发环境
  9. Jeecg-Boot 快速开发平台,前后端分离—开发工具安装
  10. 创建sdcard.img时,提示permission dennid
  11. 2015年5月移动游戏Benchmark
  12. HDU1693 Eat The Trees(插头dp)
  13. 再议 封装、继承、多态
  14. 基于C语言实现的遗传算法系统
  15. win10u盘被写保护怎么解除_win10系统U盘提示磁盘被写保护的解决办法
  16. oracle fnd_global,Oracle Report(Report 6i/RDF)使用全局变量fnd_global, fnd_frofile
  17. 【仿】阿里巴巴首页(未登录)
  18. Mac下安装与使用Medis
  19. JAVA日记之mybatis-2代理开发/动态sql/sql抽取/核心配置标签 ----喝最烈的酒.
  20. 详细了解软件测试过程中的V 模型,W模型,H模型

热门文章

  1. 关于vs2022设置默认浏览器
  2. 第1章 初识软件工程
  3. Coding中UML建模问题释疑
  4. 领域驱动设计,为何又死灰复燃了?
  5. android wms各个类的作用,Android系统服务 —— WMS
  6. HP打印机M329dw纸盘关闭卡、涩问题解决
  7. python中ndarray对象_学习python的第二十二天(numpy模块(对矩阵的处理,ndarray对象)
  8. 《HelloGitHub》第 81 期
  9. java currency 默认_Java Currency getCurrencyCode()方法与示例
  10. spreadsheet php,关于 PhpSpreadsheet 简单教程