【High 翻天】Higer-order Networks with Battiston Federico (7)


传播与社会动力学(1)

模拟人类行为的动态过程一直是许多研究的焦点,其中社会关系和交互通常被认为是一种潜在结构,是高阶方法的天然试验场。

传播

网络传播过程时建立在经典的流行病学模型基础上的。经典的流行病学模型主要可分为两大类,即

  • SIR (Susceptible–Infected–Recovered)模型。
  • SIS (Susceptible–Infected–Susceptible)模型。

这两个模型中,易感个体(S)可通过与感染个体(I)相互作用而感染。前者个体在一定时间后获得对再次感染的免疫力,这些免疫个体即(R)不再参与传播,因此该模型也被称为吸收状态(absorbing state);后者个体在 S 和 I 之间相互切换,最终达到一个非零的稳定状态。

+++++++++++++++++
基于这两个基础模型也有许多变形,及相关处理方法(如:平均场法、异构平均场法和微观马氏链法),在此不赘述。

simplicial complexes

在simplicial contagion model1 中,simplicial complexes 被用来表示传染动态发生在其之上的社会结构。考虑每个组交互中包含的所有子交互,该模型的动态依赖于不同的感染渠道(单纯型)。通过这些渠道,以不同的传播率发生传染。

在这里插入图片描述
通过一组控制参数 β i , i = 1 , ⋯   , D \beta_{i}, i = 1, \cdots,D βi,i=1,,D 等对 D D D 阶 SIS 型-模型进行控制,该参数即单位时间的感染概率。平均场法很适合用于此类高阶情形,感染节点的静止密度演化的一般方程如下: ρ ˙ ( t ) = − μ ρ ( t ) + ∑ d = 1 D β d [ k d ] ρ d ( t ) ( 1 − ρ ( t ) ) . \dot{\rho}(t) = - \mu \rho(t) + \sum_{d=1}^{D} \beta_{d}[k_{d}]\rho^{d}(t) (1 - \rho(t)). ρ˙(t)=μρ(t)+d=1Dβd[kd]ρd(t)(1ρ(t)). 该方法证实了在synthetic random simplicial complexes 上得到的结果:在具有均匀度分布特征的社会结构上,稳态动态、位置和过渡性质可以被分析预测。

hypergraphs

与 simplicial complexes 相比,超图可以用来描述只发生在组中的交互,从而解除了必须包括组内所有子交互的限制。因此,超边可以有效地用于表示集群或社区。超图也被用来模拟协作网络中的知识扩散。将社区建模为超边的想法中,使用超图的节点来表示个人,使用超边来表示节点所属的不同社区。作者2研究了一个SIS模型在连续时间马尔可夫链形式下的超图上的行为,其中感染和恢复都服从泊松过程。

基于 SIS 型-模型的超图演化的一般方程: ρ ˙ k ( t ) = − μ ρ k ( t ) + β k ( 1 − ρ k ( t ) ) k Θ d − 1 . \dot{\rho}_{k} (t) = - \mu \rho_{k} (t) + \beta_{k}(1 - \rho_{k}(t)) k \Theta^{d -1}. ρ˙k(t)=μρk(t)+βk(1ρk(t))kΘd1. 此外,基于类似的 SIS 的框架,可将临界质量动力学明确地包含在传染过程中,从而推广了上述传染过程。事实上,实验已经显示了启动社会变革所需的临界质量水平的不同值,即通过承诺的少数人将现有的平衡恢复到新的平衡。

基于 SIR 模型的不同扩展引入超图。将个体置于一个谣言传播的框架中,个体分为三个标准类别:无知(S)、传播者(I)和扼杀者(R)。

在这里插入图片描述


  1. I. Iacopini, G. Petri, A. Barrat, V. Latora, Simplicial models of social contagion, Nature Commun. 10 (1) (2019) 2485. ↩︎

  2. Á. Bodó, G.Y. Katona, P.L. Simon, SIS epidemic propagation on hypergraphs, Bull. Math. Biol. 78 (4) (2016) 713–735. ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
以下是一个简单的汽车租赁系统的代码实现,包含了上述要求: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>汽车租赁系统</title> <style> .container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin-top: 20px; } .vehicle { margin-right: 20px; margin-bottom: 20px; width: 200px; height: 200px; border: 1px solid black; text-align: center; cursor: pointer; } .vehicle:hover { background-color: lightgray; } .details { margin-top: 10px; text-align: center; } .form { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; height: 200px; border: 1px solid black; background-color: white; text-align: center; display: none; } .form h3 { margin-top: 20px; } .form input { margin-top: 20px; } .form button { margin-top: 20px; } </style> </head> <body> <div class="container"> <button id="loadBtn">加载车辆信息</button> </div> <div class="form"> <h3>请输入租用天数</h3> <input type="number" id="daysInput" placeholder="请输入天数"> <button id="confirmBtn">确定</button> </div> <script> // 定义车辆类 class Vehicle { constructor(brand, rent) { this.brand = brand; this.vno = `粤B${Math.floor(Math.random() * 10000).toString().padStart(4, '0')}`; this.rent = rent; } calcRent(days) { return days * this.rent; } } // 定义轿车类 class Car extends Vehicle { constructor(brand, rent, type) { super(brand, rent); this.type = type; } } // 定义客车类 class Bus extends Vehicle { constructor(brand, rent, seat) { super(brand, rent); this.seat = seat; } } // 定义货车类 class Truck extends Vehicle { constructor(brand, rent, weight) { super(brand, rent); this.weight = weight; } } // 创建一些示例车辆 const car1 = new Car('Toyota', 200, 'Camry'); const car2 = new Car('Honda', 180, 'Accord'); const bus1 = new Bus('Yutong', 300, 50); const bus2 = new Bus('Higer', 280, 40); const truck1 = new Truck('Dongfeng', 400, 10); const truck2 = new Truck('Foton', 380, 8); // 将车辆添加到数组中 const vehicles = [car1, car2, bus1, bus2, truck1, truck2]; // 获取DOM元素 const loadBtn = document.getElementById('loadBtn'); const form = document.querySelector('.form'); const daysInput = document.getElementById('daysInput'); const confirmBtn = document.getElementById('confirmBtn'); // 加载车辆信息 loadBtn.addEventListener('click', () => { const container = document.querySelector('.container'); container.innerHTML = ''; for (let vehicle of vehicles) { const div = document.createElement('div'); div.classList.add('vehicle'); div.innerHTML = `<h4>${vehicle.brand}</h4><p>${vehicle.vno}</p>`; div.addEventListener('mouseover', () => { const details = document.createElement('div'); details.classList.add('details'); details.innerHTML = `<p>日租金:${vehicle.rent}元</p>`; if (vehicle instanceof Car) { details.innerHTML += `<p>型号:${vehicle.type}</p>`; } else if (vehicle instanceof Bus) { details.innerHTML += `<p>座位数:${vehicle.seat}</p>`; } else if (vehicle instanceof Truck) { details.innerHTML += `<p>载重量:${vehicle.weight}吨</p>`; } div.appendChild(details); }); div.addEventListener('mouseout', () => { const details = div.querySelector('.details'); if (details) { div.removeChild(details); } }); div.addEventListener('click', () => { form.style.display = 'block'; confirmBtn.addEventListener('click', () => { const days = Number(daysInput.value); if (isNaN(days) || days <= 0) { alert('请输入有效天数'); } else { const rent = vehicle.calcRent(days); alert(`租用${vehicle.brand},共${days}天,费用为${rent}元`); form.style.display = 'none'; daysInput.value = ''; } }); }); container.appendChild(div); } loadBtn.style.display = 'none'; }); </script> </body> </html> ``` 这个系统通过创建Vehicle、Car、Bus、Truck四个类来实现不同类型的车辆,并在页面上展示它们的品牌、车牌、日租金等基本信息。当鼠标悬停在某个车辆上时,会显示出该车辆的详细信息,包括型号、座位数或载重量。当点击某个车辆时,会弹出一个输入框,询问租用天数,并计算出费用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值