数学建模——农村公交与异构无人机协同配送优化

目录

1.题目

2.问题1

1. 问题建模

输入数据

​编辑

 2. 算法选择

3.数据导入 

3.模型构建

1. 距离计算

2. 优化模型

具体步骤

进一步优化

1. 重新定义问题

2. 变量定义

3. 优化目标

具体步骤

再进一步优化

具体实现步骤

1. 计算距离矩阵

2. 变量定义

3. 约束条件

4. 优化目标

以下是优化模型的具体实现:

1.确保所有约束和目标函数都得到正确实现。

2. 可视化飞行路径和时间表

最终实现结果


1.题目

A题 农村公交与异构无人机协同配送优化

农村地区因其复杂多变的地形、稀疏的道路网络以及分散的配送点,传统配送方式效率低下,成本高昂,难以满足日益增长的配送需求。随着无人机技术迅猛发展和在物流领域的广泛应用,一种全新的配送模式应运而生——农村公交与异构无人机协同配送模式。

农村公交作为地面交通系统的重要组成部分,其覆盖范围广、定时定点运行且成本相对较低,为无人机提供了理想的地面支撑。通过将无人机与农村公交相结合,可以充分利用两者的优势,实现高效协同配送。具体而言,农村公交负责将无人机和货物运送至各个公交站点,这些站点既是无人机的起降点,也是货物的转运中心。无人机则利用自身的空中优势,从公交站点起飞,快速准确地完成到具体配送点的配送任务。

为提升配送效率和灵活性,异构无人机的使用显得尤为重要。异构无人机具有不同的飞行特性、载荷能力和速度,能够根据不同配送需求进行灵活的任务分配。通过合理搭配和调度不同类型的异构无人机,可以实现对复杂多变配送需求的精准应对,提高整体配送效率。

实施同时取送货服务也更能体现农村物流的独特需求。在一次飞行中,无人机能够兼顾多个配送点的送货与取货任务,从而显著提升配送效率,减少周转时间。通过精心策划飞行路径和合理分配任务,能够有效减少无人机的使用次数和飞行频率。

农村公交装载货物和无人机,从配送中心出发,按公交固定路线及公交站点行驶。根据客户需求和无人机性能,精准分配无人机类型及配送任务。无人机在接近客户点的公交站点起飞,按优化路径执行取送货任务,确保高效完成。完成任务后,无人机返回最近站点,搭乘下一次经过该站点的公交进行迅速换电后继续服务该站点附近客户需求点或搭载公交到达其他站点服务其周围需求点,无人机没有任务后搭载公交回到配送中心。整个过程中,无人机与农村公交紧密协作,循环执行配送任务,直至所有任务完成。通过这种模式,能够充分利用地面和空中的优势,提高配送效率,降低成本,满足农村地区日益增长的配送需求。

假设无人机可以在公交站点等待下一班次的公交车,若公交站点处有返回的无人机需要装货,公交车在该站点逗留5分钟时间用于更换无人机电池(不需要充电)及装载货物。无人机产生的费用包括两部分,一是固定费用,只要使用就会产生,与无人机类型有关,二是运输费用,取决于无人机类型及运输过程的飞行里程(从站点起飞至回到站点的飞行里程)。此外,需求点的任务不能拆分,一辆公交车最多可携带两架无人机,每天任务完成后无人机必须回到起始站,不考虑客户点的时间窗,不考虑道路的随机性堵车,公交车的行驶速度为35公里/小时。

请根据附件所给数据解决以下几个问题:

问题1 只考虑使用A类无人机,请给出公交与无人机协同配送方案,使总费用最小;要求给出具体的飞行路径及时刻表。

问题2 三种类型无人机均可使用时,请给出最小费用的协同配送方案。

问题3 在问题2的基础上,如果每个需求点有取货的需求,且取货能获得一定的收入(每公斤0.5元),请给出最佳配送方案。

2.问题1

只考虑使用A类无人机,请给出公交与无人机协同配送方案,使总费用最小;要求给出具体的飞行路径及时刻表

1. 问题建模

输入数据
  • 公交站点数据:包括站点的位置和之间的距离。
  • 需求点数据:包括需求点的位置和配送需求。
  • A类无人机性能参数:包括最大飞行距离、载重能力、固定费用和飞行费用。
  • 公交发车时间表:公交车的出发和到达时间。

 2. 算法选择

3.数据导入 

# 公交站点数据
stations_data = pd.DataFrame({
    'Station_ID': [1, 2, 3, 4, 5, 6, 7, 8, 9],
    'Longitude': [110.125713, 110.08442, 110.029866, 109.962839, 109.956003, 109.920425, 109.839046, 109.823329, 109.767127],
    'Latitude': [32.815024, 32.771676, 32.748994, 32.743622, 32.812194, 32.856136, 32.860495, 32.847468, 32.807855]
})

# 需求点数据
demands_data = pd.DataFrame({
    'Demand_ID': range(1, 51),
    'Longitude': [
        110.1053385, 110.1147032, 110.0862574, 110.0435344, 110.0575508,
        110.0386243, 110.0115086, 110.0390602, 110.0246454, 110.0575847,
        109.9456331, 109.9612274, 109.94592, 109.9316682, 109.9245376,
        109.7087533, 109.7748005, 109.7475891, 109.7534532, 109.783015,
        109.7410728, 109.7554844, 109.7147417, 109.8807093, 109.8070677,
        109.9054481, 109.8954509, 109.8979229, 109.8942179, 109.8610985,
        109.8744682, 109.8338804, 109.870924, 109.8292467, 109.8711312,
        109.8813363, 109.978788, 109.8166563, 109.8151216, 109.885638,
        109.9890984, 109.9647812, 109.9303732, 109.9401099, 109.944496,
        109.979708, 109.976757, 109.94999, 109.973673, 109.967765
    ],
     'Latitude': [
        32.77881526, 32.75599834, 32.74905239, 32.74275416, 32.76712584,
        32.70855831, 32.72619993, 32.73965997, 32.72360718, 32.76553658,
        32.7526657, 32.72286471, 32.70899877, 32.73848444, 32.70740885,
        32.7815564, 32.80016336, 32.80903496, 32.85129032, 32.82296929,
        32.82914197, 32.80581363, 32.79995734, 32.89696579, 32.79622985,
        32.89437141, 32.86724756, 32.83444574, 32.83224374, 32.90687042,
        32.89939698, 32.85616627, 32.848223, 32.83825122, 32.88979101,
        32.8642824, 32.75943454, 32.8096699, 32.82822489, 32.84032485,
        32.80854774, 32.80993619, 32.78956582, 32.85264625, 32.802178,
        32.817449, 32.811064, 32.795207, 32.746858, 32.820998
    ],
    'Demand_kg': [3, 4, 2, 0, 8, 7, 4, 9, 10, 6, 7, 12, 3, 5, 6, 5, 3, 13, 12, 3,
                  14, 10, 4, 34, 6, 6, 3, 4, 20, 5, 6, 5, 3, 15, 2, 6, 3, 4, 3, 2,
                  6, 5, 9, 3, 3, 4, 6, 4, 4, 0]
})
# 无人机参数
D_max = 27  # 最大飞行距离
Q_max = 9   # 最大载重
C_fixed = 80  # 固定费用
C_per_km = 0.8  # 每公里费用
wait_time = 5 / 60  # 等待时间(小时)
battery_swap_time = 5 / 60  # 电池更换时间(小时)

# 公交车参数
bus_speed = 35  # 公交车速度(km/h)
bus_schedule = {
    '白河至仓上': [6.67, 8.5, 9, 11, 14, 16.5],
    '仓上至白河': [6, 7.33, 8.83, 11, 14, 15.83]
}

3.模型构建

import pandas as pd # 公交站点数据 stations_data = pd.DataFrame({ 'Station_ID': [1, 2, 3, 4, 5, 6, 7, 8, 9], 'Longitude': [110.125713, 110.08442, 110.029866, 109.962839, 109.956003, 109.920425, 109.839046, 109.823329, 109.767127], 'Latitude': [32.815024, 32.771676, 32.748994, 32.743622, 32.812194, 32.856136, 32.860495, 32.847468, 32.807855] }) # 需求点数据 demands_data = pd.DataFrame({ 'Demand_ID': range(1, 51), 'Longitude': [ 110.1053385, 110.1147032, 110.0862574, 110.0435344, 110.0575508, 110.0386243, 110.0115086, 110.0390602, 110.0246454, 110.0575847, 109.9456331, 109.9612274, 109.94592, 109.9316682, 109.9245376, 109.7087533, 109.7748005, 109.7475891, 109.7534532, 109.783015, 109.7410728, 109.7554844, 109.7147417, 109.8807093, 109.8070677, 109.9054481, 109.8954509, 109.8979229, 109.8942179, 109.8610985, 109.8744682, 109.8338804, 109.870924, 109.8292467, 109.8711312, 109.8813363, 109.978788, 109.8166563, 109.8151216, 109.885638, 109.9890984, 109.9647812, 109.9303732, 109.9401099, 109.944496, 109.979708, 109.976757, 109.94999, 109.973673, 109.967765 ], 'Latitude': [ 32.77881526, 32.75599834, 32.74905239, 32.74275416, 32.76712584, 32.70855831, 32.72619993, 32.73965997, 32.72360718, 32.76553658, 32.7526657, 32.72286471, 32.70899877, 32.73848444, 32.70740885, 32.7815564, 32.80016336, 32.80903496, 32.85129032, 32.82296929, 32.82914197, 32.80581363, 32.79995734, 32.89696579, 32.79622985, 32.89437141, 32.86724756, 32.83444574, 32.83224374, 32.90687042, 32.89939698, 32.85616627, 32.848223, 32.83825122, 32.88979101, 32.8642824, 32.75943454, 32.8096699, 32.82822489, 32.84032485, 32.80854774, 32.80993619, 32.78956582, 32.85264625, 32.802178, 32.817449, 32.811064, 32.795207, 32.746858, 32.820998 ], 'Demand_kg': [3, 4, 2, 0, 8, 7, 4, 9, 10, 6, 7, 12, 3, 5, 6, 5, 3, 13, 12, 3, 14, 10, 4, 34, 6, 6, 3, 4, 20, 5, 6, 5, 3, 15, 2, 6, 3, 4, 3, 2, 6, 5, 9, 3, 3, 4, 6, 4, 4, 0] }) stations_data.head(), demands_data.head()

结果

(   Station_ID   Longitude   Latitude
 0           1  110.125713  32.815024
 1           2  110.084420  32.771676
 2           3  110.029866  32.748994
 3           4  109.962839  32.743622
 4           5  109.956003  32.812194,
    Demand_ID   Longitude   Latitude  Demand_kg
 0          1  110.105339  32.778815          3
 1          2  110.114703  32.755998          4
 2          3  110.086257  32.749052          2
 3          4  110.043534  32.742754          0
 4          5  110.057551  32.767126          8)

我们已经加载了公交站点和需求点的数据。接下来,我们将根据这些数据计算各个站点与需求点之间的距离,并建立一个优化模型,来求解最优的公交与A类无人机协同配送方案。

1. 距离计算

首先,我们需要计算每个站点与每个需求点之间的距离。

2. 优化模型

我们将使用整数线性规划(ILP)来求解该问题。目标是最小化总费用,包括固定费用和飞行费用。

具体步骤

  1. 计算距离矩阵。
  2. 建立优化模型。
  3. 求解模型,得到最优路径和时间表。

进一步优化

  1. 考虑无人机的等待时间和电池更换时间:由于无人机在站点可能需要等待公交车或进行电池更换,这些时间也需要纳入优化模型中。

  2. 考虑公交车的发车时间表:优化模型需要结合公交车的发车时间,以确保无人机能够在合理的时间内完成任务。

  3. 考虑多架无人机协同工作:每辆公交车最多可以携带两架无人机,需要确保这些无人机的任务分配合理。

下面是一个更为详细和优化的实现步骤:

1. 重新定义问题

重新定义问题以考虑等待时间、电池更换时间和公交车发车时间表。

2. 变量定义

3. 优化目标

最小化总费用,包括固定费用、飞行费用、等待时间和电池更换时间。

具体步骤

  1. 计算距离矩阵。
  2. 建立优化模型。
  3. 求解模型,得到最优路径和时间表。

下面是具体的实现:

import numpy as np
from geopy.distance import geodesic
import pulp

# 计算距离矩阵
num_stations = stations_data.shape[0]
num_demands = demands_data.shape[0]

distances = np.zeros((num_stations, num_demands))
for i, station in stations_data.iterrows():
    for j, demand in demands_data.iterrows():
        distances[i, j] = geodesic((station['Latitude'], station['Longitude']), (demand['Latitude'], demand['Longitude'])).km

# 无人机参数
D_max = 27  # 最大飞行距离
Q_max = 9   # 最大载重
C_fixed = 80  # 固定费用
C_per_km = 0.8  # 每公里费用
wait_time = 5 / 60  # 等待时间(小时)

# 公交车参数
bus_speed = 35  # 公交车速度(km/h)
bus_schedule = {
    '白河至仓上': [6.67, 8.5, 9, 11, 14, 16.5],
    '仓上至白河': [6, 7.33, 8.83, 11, 14, 15.83]
}

# 创建优化问题
prob = pulp.LpProblem("Minimize_Cost", pulp.LpMinimize)

# 定义决策变量
x = pulp.LpVariable.dicts("x", (range(num_stations), range(num_demands)), cat='Binary')
t = pulp.LpVariable.dicts("t", (range(num_stations), range(num_demands)), lowBound=0)

# 目标函数
prob += pulp.lpSum(x[i][j] * (C_fixed + distances[i, j] * C_per_km + wait_time * bus_speed) for i in range(num_stations) for j in range(num_demands))

# 约束条件
for j in range(num_demands):
    prob += pulp.lpSum(x[i][j] for i in range(num_stations)) == 1  # 每个需求点只能被一个无人机配送

for i in range(num_stations):
    for j in range(num_demands):
        prob += distances[i, j] * x[i][j] <= D_max  # 无人机飞行距离限制
        prob += demands_data.loc[j, 'Demand_kg'] * x[i][j] <= Q_max  # 无人机载重限制

# 公交车行程约束
for schedule in bus_schedule.values():
    for i in range(1, len(schedule)):
        prob += (schedule[i] - schedule[i-1]) * bus_speed >= 0

# 求解问题
prob.solve()

# 解析结果
optimal_routes = []
for i in range(num_stations):
    for j in range(num_demands):
        if pulp.value(x[i][j]) == 1:
            optimal_routes.append((i+1, j+1, distances[i, j]))

optimal_routes

再进一步优化

  1. 公交车发车时间和到达时间:确保无人机任务的起始时间和完成时间与公交车的时间表一致。
  2. 电池更换和装载时间:将无人机电池更换和装载货物的时间纳入模型。
  3. 多架无人机的任务分配:合理分配多架无人机的任务,确保每辆公交车最多携带两架无人机。

具体实现步骤

1. 计算距离矩阵

首先计算每个站点与每个需求点之间的距离。

2. 变量定义

3. 约束条件

  • 每个需求点只能被一个无人机配送。
  • 无人机的最大飞行距离限制。
  • 无人机的载重能力限制。
  • 公交车的发车和到达时间。

4. 优化目标

最小化总费用,包括固定费用、飞行费用、等待时间和电池更换时间。

以下是优化模型的具体实现:

首先,我们重新定义和求解优化模型,

1.确保所有约束和目标函数都得到正确实现。

import numpy as np
from geopy.distance import geodesic
import pulp
import matplotlib.pyplot as plt

# 计算距离矩阵
num_stations = stations_data.shape[0]
num_demands = demands_data.shape[0]

distances = np.zeros((num_stations, num_demands))
for i, station in stations_data.iterrows():
    for j, demand in demands_data.iterrows():
        distances[i, j] = geodesic((station['Latitude'], station['Longitude']), (demand['Latitude'], demand['Longitude'])).km

# 无人机参数
D_max = 27  # 最大飞行距离
Q_max = 9   # 最大载重
C_fixed = 80  # 固定费用
C_per_km = 0.8  # 每公里费用
wait_time = 5 / 60  # 等待时间(小时)
battery_swap_time = 5 / 60  # 电池更换时间(小时)

# 公交车参数
bus_speed = 35  # 公交车速度(km/h)
bus_schedule = {
    '白河至仓上': [6.67, 8.5, 9, 11, 14, 16.5],
    '仓上至白河': [6, 7.33, 8.83, 11, 14, 15.83]
}

# 创建优化问题
prob = pulp.LpProblem("Minimize_Cost", pulp.LpMinimize)

# 定义决策变量
x = pulp.LpVariable.dicts("x", (range(num_stations), range(num_demands)), cat='Binary')
y = pulp.LpVariable.dicts("y", (range(num_stations), range(2)), cat='Binary')  # 每站最多两架无人机

# 目标函数
prob += pulp.lpSum(x[i][j] * (C_fixed + distances[i, j] * C_per_km) + y[i][k] * (wait_time + battery_swap_time) * bus_speed for i in range(num_stations) for j in range(num_demands) for k in range(2))

# 约束条件
for j in range(num_demands):
    prob += pulp.lpSum(x[i][j] for i in range(num_stations)) == 1  # 每个需求点只能被一个无人机配送

for i in range(num_stations):
    for j in range(num_demands):
        prob += distances[i, j] * x[i][j] <= D_max  # 无人机飞行距离限制
        prob += demands_data.loc[j, 'Demand_kg'] * x[i][j] <= Q_max  # 无人机载重限制

# 公交车发车和到达时间约束
for schedule in bus_schedule.values():
    for i in range(1, len(schedule)):
        prob += (schedule[i] - schedule[i-1]) * bus_speed >= 0

# 每站最多两架无人机约束
for i in range(num_stations):
    prob += pulp.lpSum(y[i][k] for k in range(2)) <= 2

# 求解问题
prob.solve()

# 解析结果
optimal_routes = []
for i in range(num_stations):
    for j in range(num_demands):
        if pulp.value(x[i][j]) == 1:
            optimal_routes.append((i, j, distances[i, j]))

optimal_routes

2. 可视化飞行路径和时间表

我们使用 Matplotlib 来绘制飞行路径和时间表。

# 可视化飞行路径
plt.figure(figsize=(10, 8))

# 绘制公交站点
for i, station in stations_data.iterrows():
    plt.plot(station['Longitude'], station['Latitude'], 'bo', markersize=8)
    plt.text(station['Longitude'], station['Latitude'], f'S{i+1}', fontsize=12, ha='right')

# 绘制需求点
for j, demand in demands_data.iterrows():
    plt.plot(demand['Longitude'], demand['Latitude'], 'ro', markersize=6)
    plt.text(demand['Longitude'], demand['Latitude'], f'D{demand["Demand_ID"]}', fontsize=10, ha='left')

# 绘制最优路径
for route in optimal_routes:
    station_idx, demand_idx, dist = route
    station = stations_data.iloc[station_idx]
    demand = demands_data.iloc[demand_idx]
    plt.plot([station['Longitude'], demand['Longitude']], [station['Latitude'], demand['Latitude']], 'k--')

plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Optimal Drone Delivery Routes')
plt.legend(['Bus Station', 'Demand Point'])
plt.grid()
plt.show()

# 输出具体的时间表
schedule_output = []

for route in optimal_routes:
    station_idx, demand_idx, dist = route
    station = stations_data.iloc[station_idx]
    demand = demands_data.iloc[demand_idx]
    # 假设从公交站出发的时间为公交车到达时间
    for time in bus_schedule['白河至仓上']:
        arrival_time = time + dist / bus_speed
        schedule_output.append((f'Station {station_idx+1}', f'Demand {demand_idx+1}', time, arrival_time))

schedule_output_df = pd.DataFrame(schedule_output, columns=['Station', 'Demand', 'Departure Time', 'Arrival Time'])
schedule_output_df

最终实现结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/630133.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NVM安装及VUE创建项目的N种方式

VUE 参考官网&#xff1a;https://cli.vuejs.org/zh/guide/ 目录 NVM安装 1.卸载node.js 2.安装nvm ​编辑​ 3.配置 4.使用nvm安装node.js 5.nvm常用命令 创建VUE项目 1.使用vue init 创建vue2&#xff08;不推荐&#xff09; 2.使用vue create创建vue2和3&#xff…

(保姆级教程傻瓜式操作)树莓派--基于opencv实现人脸识别

前言 因为当时没有边实验边记录&#xff0c;所以这篇文章可能存在疏漏。不过很多地方我推荐了我参考过的博客或者视频&#xff0c;希望尽可能地解答您的疑惑&#xff0c;如果您仍有不懂的地方&#xff0c;欢迎评论&#xff0c;如果我知道答案&#xff0c;我会很乐意为您解答。 …

C++错题集(持续更新ing)

Day 1 一、选择题 解析&#xff1a; 在数字不会溢出的前提下&#xff0c;对于正数和负数&#xff0c;有&#xff1a; 1&#xff09;左移n位&#xff0c;相当于操作数乘以2的n次方&#xff1b; 2&#xff09;右移n位&#xff0c;相当于操作数除以2的n次方。 解析&#xff1a…

基于51单片机的自动浇花器电路

一、系统概述 自动浇水灌溉系统设计方案&#xff0c;以AT89C51单片机为控制核心&#xff0c;采用模块化的设计方法。 组成部分为&#xff1a;5V供电模块、土壤湿度传感器模块、ADC0832模数转换模块、水泵控制模块、按键输入模块、LCD显示模块和声光报警模块&#xff0c;结构如…

51单片机超声波测距_液位检测_温度检测原理图PCB仿真代码

目录 实物图&#xff1a; PCB ​原理图​ 仿真图 ​编辑 程序 资料下载地址&#xff1a;51单片机超声波测距-液位检测-温度检测原理图PCB仿真代码 主控为stc89c52,通过ds18b20进行温度采集&#xff0c;超声波测距&#xff0c;距离不可以超过1m&#xff0c;通过按键可以设…

做简单易用的GIS资源管理软件

在室外资源管理领域&#xff0c;采用基于GIS的解决方案已成为主流趋势&#xff0c;旨在实现资源的高效利用和管理。GIS技术结合资源对象的规划、定位和监控&#xff0c;为企业提供全面的管理方案&#xff0c;从而优化资源使用、提高运营效率和降低成本。 然而&#xff0c;许多资…

shell脚本实现linux系统自动化配置免密互信

目录 背景脚本功能脚本内容及使用方法 1.背景 进行linux自动化运维时需要先配置免密&#xff0c;但某些特定场景下&#xff0c;做了互信的节点需要取消免密&#xff0c;若集群庞大节点数量多时&#xff0c;节点两两之间做互信操作非常麻烦&#xff0c;比如有五个节点&#x…

计网面试干货---带你梳理常考的面试题

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、HTTP和HTTPS的区别 1.安全性&#xff1a;HTTPS通过SSL/TLS协议对数据进行加密处理&#xff0c;有效防止数据在传输过…

人工智能项目,如何解决大模型的数据私有化

这个问题是最近走访百家企业&#xff0c;客户问的最多的问题。人工智能是对数据集中后&#xff0c;再利用的智能化手段&#xff0c;ChatGPT还在持续的投入&#xff0c;汇集数据、训练模型&#xff0c;微软也不过是做了一个办公客户端的智能工具&#xff0c;那么行业应运之时&am…

写后端项目时上传文件接口使用阿里云oss-规范写法

文章目录 开通对象存储服务密钥管理点击头像点击密钥管理创建新密钥AccessKey 写在yml配置文件中相关配置1.pom依赖2.全局配置类3.AliOssUtil 工具类3.AliOssProperties类&#xff0c;用于读取yml文件中写入的密钥4.controller层&#xff0c;用于写传输文件的接口 开通对象存储…

《Python编程从入门到实践》day29

# 昨日知识点回顾 修改折线图文字和线条粗细 矫正图形 使用内置格式 # 今日知识点学习 15.2.4 使用scatter()绘制散点图并设置样式 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg)plt.style.use(seaborn-v0_8) # 使用内置格式 fig, ax plt.subpl…

荣耀MagicBook X 14 Pro锐龙版 2023 集显(FRI-H76)笔记本电脑原装出厂Windows11系统工厂模式安装包下载,带F10智能还原

恢复开箱状态预装OEM系统&#xff0c;适用型号&#xff1a;HONOR荣耀FRI-H76、FRI-H56 链接&#xff1a;https://pan.baidu.com/s/1Lcg45byotu5kDDSBs3FStA?pwdl30r 提取码&#xff1a;l30r 华为荣耀原装WIN11系统工厂安装包&#xff0c;含F10一键恢复功能、系统自带所有驱…

蓝桥杯-外卖店优先级(简单写法)

“饱了么”外卖系统中维护着 N 家外卖店&#xff0c;编号 1∼N。 每家外卖店都有一个优先级&#xff0c;初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位&#xff0c;如果外卖店没有订单&#xff0c;则优先级会减少 1&#xff0c;最低减到 0&#xff1b;而如果外卖店有订…

四、基于Stage模型的应用架构设计

前面我们了解了如何构建鸿蒙应用以及开发了第一个页面&#xff0c;这只是简单的demo&#xff1b;那么如何去设计&#xff0c;从0到1搭建一个真正的应用呢 一、基本概念 1、Stage模型基本概念 Stage模型概念图 AbilityStage&#xff1a;是一个Module级别的组件容器&#xff0…

「AIGC」Python实现tokens算法

本文主要介绍通过python实现tokens统计,避免重复调用openai等官方api,开源节流。 一、设计思路 初始化tokenizer使用tokenizer将文本转换为tokens计算token的数量二、业务场景 2.1 首次加载依赖 2.2 执行业务逻辑 三、核心代码 from transformers import AutoTokenizer imp…

基于网络爬虫技术的网络新闻分析(二)

目录 2 系统需求分析 2.1 系统需求概述 2.2 系统需求分析 2.2.1 系统功能要求 2.2.2 系统IPO图 2.2 系统非功能性需求分析 3 系统概要设计 3.1 设计约束 3.1.1 需求约束 3.1.2 设计策略 3.1.3 技术实现 3.3 模块结构 3.3.1 模块结构图 3.3.2 系统层次图 3.3.3…

与禹老师学前端vue3学习汇总

24.5.15&#xff1a; 创建Vue3工程 1.确定自己电脑有没有nodejs环境&#xff0c;在cmd中输入node&#xff0c;如果出现Node.js的版本号说明已经有这个环境了&#xff0c;否则搜索Node.js安装 2.先在D盘创建一个文件夹Vue3_Study&#xff0c;然后在这个空文件夹中右键选择终端…

汇聚荣:拼多多长期没有流量如何提高?

在电商的海洋中&#xff0c;拼多多以其独特的团购模式吸引了众多消费者的目光。然而&#xff0c;随着市场竞争的加剧和消费者需求的多样化&#xff0c;一些商家发现自家店铺的流量持续低迷&#xff0c;销售业绩难以突破。面对这样的挑战&#xff0c;如何有效提升拼多多店铺的客…

Linux进程控制——Linux进程程序替换

前言&#xff1a;Linux进程控制包含了进程终止&#xff0c;进程等待&#xff0c;进程程序替换。走到现在我们也只剩下进程程序替换没介绍了&#xff0c;那么让我们来看看进程程序替换到底是什么&#xff01; 本篇主要内容&#xff1a; 替换原理 替换函数 实现简易shell 我们所创…

不用投稿邮箱,怎样向各大新闻媒体投稿?

身为单位的信息宣传员,我深知肩上责任重大。每个月,完成单位在媒体上投稿发表文章的考核任务,就如同一场无声的赛跑,既要保证速度,更要注重质量。起初,我遵循“前辈们”的老路,一头扎进了邮箱投稿的海洋。但很快,现实给了我一记重拳——邮箱投稿的竞争犹如千军万马过独木桥,稿件…