当前位置: 首页 > news >正文

2024 年 亚太赛 APMCM (C题)中文赛道国际大学生数学建模挑战赛 | 量子计算的物流配送 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题!

完整内容可以在文章末尾领取!

在这里插入图片描述

该段文字的第一个问题是:以最小化单个物流公司的运营成本为目标,建立QUBO模型,使用Kaiwu SDK中的CIM模拟器和模拟退火求解器分别求解,为两个物流公司分别设计货车租赁方案和货物运输方案。

首先,我们需要确定问题的决策变量,即需要决定的变量。本题目中,我们需要决定的变量有:卡车的租赁方案(选择哪种卡车,租赁时长);货物的运输方案(货物从哪个城市出发,经过哪些城市,最终到达目的地城市)。

其次,我们需要构建目标函数,即需要最小化的目标,本题目中,我们需要最小化单个物流公司的运营成本。我们可以定义目标函数为:

minimize C t o t a l = C r e n t + C t r a n s p o r t C_{total} = C_{rent} + C_{transport} Ctotal=Crent+Ctransport

其中, C r e n t C_{rent} Crent为卡车租赁成本, C t r a n s p o r t C_{transport} Ctransport为货物运输成本。

接下来,我们需要确定约束条件,即需要满足的条件。本题目中,我们需要满足的约束条件有:每个城市的货物数量不能超过卡车的载重量;每个城市的货物数量必须满足运输需求;货物从一个城市出发后必须到达目的地城市;每个城市的卡车数量有限。

因此,我们可以得到约束条件为:

C r e n t = ∑ i = 1 n C r e n t i C_{rent} = \sum_{i=1}^{n} C_{rent}^{i} Crent=i=1nCrenti

其中, n n n为城市的数量, C r e n t i C_{rent}^{i} Crenti为第 i i i个城市的卡车租赁成本。

C t r a n s p o r t = ∑ j = 1 m C t r a n s p o r t j C_{transport} = \sum_{j=1}^{m} C_{transport}^{j} Ctransport=j=1mCtransportj

其中, m m m为货物的数量, C t r a n s p o r t j C_{transport}^{j} Ctransportj为第 j j j个货物的运输成本。

∑ j = 1 m q i j j ≤ Q i \sum_{j=1}^{m} q_{ij}^{j} \leq Q_{i} j=1mqijjQi

其中, q i j j q_{ij}^{j} qijj为从第 i i i个城市运输到第 j j j个城市的货物数量, Q i Q_{i} Qi为第 i i i个城市的卡车载重量。

∑ j = 1 m q i j j = S i \sum_{j=1}^{m} q_{ij}^{j} = S_{i} j=1mqijj=Si

其中, S i S_{i} Si为第 i i i个城市的货物总数量。

∑ i = 1 n q i j j = D j \sum_{i=1}^{n} q_{ij}^{j} = D_{j} i=1nqijj=Dj

其中, D j D_{j} Dj为第 j j j个城市的货物总数量。

∑ i = 1 n x i = N i \sum_{i=1}^{n} x_{i} = N_{i} i=1nxi=Ni

其中, x i x_{i} xi为第 i i i个城市的卡车数量, N i N_{i} Ni为第 i i i个城市的卡车数量限制。

∑ i = 1 n x i r e n t = N i r e n t \sum_{i=1}^{n} x_{i}^{rent} = N_{i}^{rent} i=1nxirent=Nirent

其中, x i r e n t x_{i}^{rent} xirent为第 i i i个城市的特定类型卡车数量, N i r e n t N_{i}^{rent} Nirent为第 i i i个城市的特定类型卡车数量限制。

最后,我们可以将目标函数和约束条件转换为QUBO模型的形式,即:

minimize x T Q x x^{T}Qx xTQx

subject to A x ≤ b Ax \leq b Axb

其中, x x x为决策变量向量, Q Q Q为系数矩阵, A A A为约束条件矩阵, b b b为约束条件向量。

通过使用Kaiwu SDK中的CIM模拟器和模拟退火求解器,我们可以求解出最优的卡车租赁方案和货物运输方案,从而最小化单个物流公司的运营成本。

首先,我们需要将题目中给出的运输成本、货车租赁成本、货物数量、货物类型等信息进行量化,以便于建立数学模型。假设题目中给出的城市数量为n,货物类型数量为m,卡车类型数量为k,那么我们可以定义如下的变量:

x i , j x_{i,j} xi,j:第i辆卡车在第j个城市中能否租赁,若能租赁,则为1,否则为0,其中i=1,2,…,k,j=1,2,…,n

y i , j y_{i,j} yi,j:第i种货物在第j个城市中的货物数量,i=1,2,…,m,j=1,2,…,n

z i , j z_{i,j} zi,j:第i种货物在第j个城市中的货物数量是否需要航空运输,若需要,则为1,否则为0,i=1,2,…,m,j=1,2,…,n

然后,我们可以根据题目中给出的运输成本、货车租赁成本等信息,建立QUBO模型:

min ⁡ x , y , z ∑ i = 1 k ∑ j = 1 n ( x i , j ∗ c i , j ) + ∑ i = 1 m ∑ j = 1 n ( y i , j ∗ c i , j ) + ∑ i = 1 m ∑ j = 1 n ( z i , j ∗ c i , j ) \min \limits_{x,y,z} \sum \limits_{i=1}^{k} \sum \limits_{j=1}^{n} (x_{i,j}*c_{i,j}) + \sum \limits_{i=1}^{m} \sum \limits_{j=1}^{n} (y_{i,j}*c_{i,j}) + \sum \limits_{i=1}^{m} \sum \limits_{j=1}^{n} (z_{i,j}*c_{i,j}) x,y,zmini=1kj=1n(xi,jci,j)+i=1mj=1n(yi,jci,j)+i=1mj=1n(zi,jci,j)

其中, c i , j c_{i,j} ci,j表示第i种货物在第j个城市中的运输成本,可以根据题目中给出的数据进行赋值。

约束条件为:

  1. 每个城市中的货物数量不能超过该城市的载重量限制:

∑ i = 1 m y i , j ≤ L j \sum \limits_{i=1}^{m} y_{i,j} \leq L_j i=1myi,jLj,其中, L j L_j Lj为第j个城市的载重量限制。

  1. 每辆卡车的载重量不能超过其载重量限制:

∑ j = 1 n y i , j ≤ C i \sum \limits_{j=1}^{n} y_{i,j} \leq C_i j=1nyi,jCi,其中, C i C_i Ci为第i辆卡车的载重量限制。

  1. 每辆卡车在每个城市中只能租赁一次:

∑ j = 1 n x i , j = 1 \sum \limits_{j=1}^{n} x_{i,j} = 1 j=1nxi,j=1,其中,i=1,2,…,k。

  1. 每种货物在每个城市中的数量不能超过其需求量:

y i , j ≤ D i y_{i,j} \leq D_i yi,jDi,其中, D i D_i Di为第i种货物的需求量。

  1. 每种货物在每个城市中的数量需求量与航空运输的数量之和不能超过其需求量:

y i , j + z i , j ≤ D i y_{i,j} + z_{i,j} \leq D_i yi,j+zi,jDi,其中,i=1,2,…,m,j=1,2,…,n。

  1. 每种货物在每个城市中的数量需求量与航空运输的数量之和不能超过其需求量:

z i , j ≤ D i z_{i,j} \leq D_i zi,jDi,其中,i=1,2,…,m,j=1,2,…,n。

通过以上的QUBO模型,我们可以得到最小化运营成本的解,从而设计出最优的货车租赁方案和货物运输方案,从而实现最小化单个物流公司的运营成本的目标。

同时,可以通过Kaiwu SDK中的CIM模拟器和模拟退火求解器进行求解,从而得到最优解。此外,也可以结合CIM模拟器和模拟退火求解器的特点,进行优化求解,从而得到更加精确的最优解。

设Q为问题的QUBO矩阵,其中Q[i][j]为第i辆车在第j个城市的运输成本,x[i][j]为第i辆车是否运输到第j个城市(0表示不运输,1表示运输)。另外,y[i][k]为第i种货物在第k个城市的数量,z[i][j]为第i辆车从第j个城市运输的第1种货物的数量。

则问题的QUBO模型可以表示为:

m i n x T Q x min x^T Qx minxTQx
s . t . x [ i ] [ j ] = 0 o r 1 , f o r a l l i a n d j s.t. x[i][j] = 0 or 1, for\ all\ i \ and \ j s.t.x[i][j]=0or1,for all i and j
y [ i ] [ k ] = s u m ( x [ i ] [ j ] ) , f o r a l l i a n d k y[i][k] = sum(x[i][j]), for \ all \ i\ and\ k y[i][k]=sum(x[i][j]),for all i and k
z [ i ] [ j ] = s u m ( x [ i ] [ j ] ∗ y [ i ] [ k ] ) , f o r a l l i a n d j z[i][j] = sum(x[i][j] * y[i][k]), for\ all\ i \ and \ j z[i][j]=sum(x[i][j]y[i][k]),for all i and j

其中,约束条件保证每辆车只能运输到一个城市,每种货物只能由一辆车运输,每辆车只能运输一种货物。

为了将该问题转化为QUBO模型,需要对约束条件进行转换。首先,将约束条件y[i][k] = sum(x[i][j])转化为二进制表示,即y[i][k] = 2^j * x[i][j],其中j为城市的编号。同理,将约束条件z[i][j] = sum(x[i][j] * y[i][k])转化为二进制表示,即z[i][j] = 2^(j+k) * x[i][j] * y[i][k]。

因此,QUBO模型可以表示为:

m i n x T Q x min x^T Qx minxTQx
s . t . x [ i ] [ j ] = 0 o r 1 , f o r a l l i a n d j s.t. x[i][j] = 0 or 1, for\ all\ i \ and \ j s.t.x[i][j]=0or1,for all i and j
y [ i ] [ k ] = 2 j ∗ x [ i ] [ j ] , f o r a l l i a n d k y[i][k] = 2^j * x[i][j], for\ all\ i \ and \ k y[i][k]=2jx[i][j],for all i and k
z [ i ] [ j ] = 2 ( j + k ) ∗ x [ i ] [ j ] ∗ y [ i ] [ k ] , f o r a l l i a n d j z[i][j] = 2^(j+k) * x[i][j] * y[i][k], for\ all\ i \ and \ j z[i][j]=2(j+k)x[i][j]y[i][k],for all i and j

其中矩阵Q的具体取值为:

Q [ i ] [ j ] = 2 j ∗ c o s t [ i ] , f o r a l l i a n d j Q[i][j] = 2^j * cost[i], for\ all\ i \ and \ j Q[i][j]=2jcost[i],for all i and j
Q [ i ] [ j ] = 2 ( j + k ) ∗ c o s t [ i ] ∗ c o s t [ k ] , f o r a l l i a n d j a n d k Q[i][j] = 2^(j+k) * cost[i] * cost[k], for\ all\ i \ and \ j \ and \ k Q[i][j]=2(j+k)cost[i]cost[k],for all i and j and k

其中cost[i]为第i辆车的运输成本。通过求解该QUBO模型,可以得到最优的货车租赁方案和货物运输方案,从而实现最小化单个物流公司的运营成本的目标。

# 导入Kaiwu SDK
from kaiwu import QuantumMachine# 创建量子计算机
quantum_machine = QuantumMachine()# 设置货物当前所在城市
city_A = {"成都": 19,"上海": 20,"天津": 12
}
city_B = {"成都": 14,"上海": 24,"天津": 18
}# 设置货物需要运往的城市
destination_A = {"普货": {"西安": 19,"昆明": 25,"深圳": 7}
}
destination_B = {"普货": {"西安": 27,"昆明": 10,"深圳": 19}
}# 设置卡车市场
truck_market = {"12吨载重卡车": 5000,"5吨载重卡车": 3000
}# 设置卡车运输时间
transport_time = {"上海": {"上海": 0,"西安": 3,"昆明": 6,"深圳": 4,"天津": 3,"郑州": 2},"西安": {"上海": 3,"西安": 0,"昆明": 4,"深圳": 4,"天津": 2,"郑州": 1},"昆明": {"上海": 6,"西安": 4,"昆明": 0,"深圳": 2,"天津": 6,"郑州": 5},"深圳": {"上海": 4,"西安": 4,"昆明": 2,"深圳": 0,"天津": 5,"郑州": 4},"天津": {"上海": 3,"西安": 2,"昆明": 6,"深圳": 5,"天津": 0,"郑州": 1},"郑州": {"上海": 2,"西安": 1,"昆明": 5,"深圳": 4,"天津": 1,"郑州": 0}
}# 设置卡车单趟成本
transport_cost = {"普通卡车 A(12吨)": {"上海": 13500,"西安": 13500,"昆明": 26500,"深圳": 16500,"天津": 13500,"郑州": 8500},"普通卡车 B(5吨)": {"上海": 11000,"西安": 11000,"昆明": 24000,"深圳": 14000,"天津": 11000,"郑州": 6000}
}# 设置航空运输费用
air_transport_cost = 10000# 计算单个物流公司的运营成本
def calculate_cost(city_A, city_B, destination_A, destination_B, truck_market, transport_time, transport_cost, air_transport_cost):# 计算货物总量total_A = sum(city_A.values())total_B = sum(city_B.values())# 计算货物运输量transport_A = sum(destination_A["普货"].values())transport_B = sum(destination_B["普货"].values())# 计算卡车租赁成本truck_cost_A = truck_market["12吨载重卡车"] * (total_A - transport_A) + truck_market["5吨载重卡车"] * transport_Atruck_cost_B = truck_market["12吨载重卡车"] * (total_B - transport_B) + truck_market["5吨载重卡车"] * transport_B# 计算陆路运输成本transport_cost_A = 0transport_cost_B = 0for city, goods in destination_A["普货"].items():transport_cost_A += transport_time["成都"][city] * (transport_cost["普通卡车 A(12吨)"] * goods)for city, goods in destination_B["普货"].items():transport_cost_B += transport_time["成都"][city] * (transport_cost["普通卡车 B(5吨)"] * goods)# 计算航空运输成本air_transport_cost_A = air_transport_cost * transport_Aair_transport_cost_B = air_transport_cost * transport_B# 计算总运营成本total_cost_A = truck_cost_A + transport_cost_A + air_transport_cost_Atotal_cost_B = truck_cost_B + transport_cost_B + air_transport_cost_Breturn total_cost_A, total_cost_B

计算

第二个问题是如何在两个物流公司之间合作运营时,最小化两个公司的总成本。

问题二的目标是最小化两个物流公司的总成本,因此可以将问题建模为一个最小化的目标函数。假设两个物流公司分别为公司一和公司二,我们需要考虑的变量有:

  1. 货物从公司一发往终点城市的路径,记为 x i j x_{ij} xij,其中 i i i表示起点城市, j j j表示终点城市, x i j = 1 x_{ij}=1 xij=1表示货物从城市 i i i发往城市 j j j x i j = 0 x_{ij}=0 xij=0表示不发往城市 j j j

  2. 货物从公司二发往终点城市的路径,记为 y i j y_{ij} yij,其中 i i i表示起点城市, j j j表示终点城市, y i j = 1 y_{ij}=1 yij=1表示货物从城市 i i i发往城市 j j j y i j = 0 y_{ij}=0 yij=0表示不发往城市 j j j

  3. 货物从公司一发往终点城市的运输方式和工具,记为 a i a_i ai,其中 i i i表示城市, a i = 1 a_i=1 ai=1表示使用12吨载重卡车, a i = 0 a_i=0 ai=0表示使用5吨载重卡车。

  4. 货物从公司二发往终点城市的运输方式和工具,记为 b i b_i bi,其中 i i i表示城市, b i = 1 b_i=1 bi=1表示使用12吨载重卡车, b i = 0 b_i=0 bi=0表示使用5吨载重卡车。

在这里插入图片描述

因此,可以将目标函数建模为:

Minimize ∑ i = 1 n ∑ j = 1 n ( x i j ⋅ a i ⋅ c i ⋅ d j + y i j ⋅ b i ⋅ d i ⋅ d j ) + ∑ i = 1 n ( e i ⋅ a i ⋅ c i + f i ⋅ b i ⋅ d i ) \text{Minimize} \quad \sum_{i=1}^{n}\sum_{j=1}^{n} (x_{ij} \cdot a_i \cdot c_i \cdot d_j + y_{ij} \cdot b_i \cdot d_i \cdot d_j) + \sum_{i=1}^{n} (e_i \cdot a_i \cdot c_i + f_i \cdot b_i \cdot d_i) Minimizei=1nj=1n(xijaicidj+yijbididj)+i=1n(eiaici+fibidi)

具体的约束条件有:

  1. 每个货物只能从一个起点城市发往一个终点城市,因此有:

∑ j = 1 n x i j + ∑ j = 1 n y i j = 1 , i = 1 , 2 , ⋯ , n \sum_{j=1}^{n} x_{ij} + \sum_{j=1}^{n} y_{ij} = 1, \quad i=1,2,\cdots,n j=1nxij+j=1nyij=1,i=1,2,,n

  1. 每个城市的货物数量不能超过卡车的载重量,因此有:

∑ i = 1 n x i j ⋅ c i ≤ 12 , j = 1 , 2 , ⋯ , n \sum_{i=1}^{n} x_{ij} \cdot c_i \leq 12, \quad j=1,2,\cdots,n i=1nxijci12,j=1,2,,n

∑ i = 1 n y i j ⋅ d i ≤ 12 , j = 1 , 2 , ⋯ , n \sum_{i=1}^{n} y_{ij} \cdot d_i \leq 12, \quad j=1,2,\cdots,n i=1nyijdi12,j=1,2,,n

  1. 如果需要拼货,那么卡车的载重量应该可以满足拼货的总量,因此有:

∑ i = 1 n e i ⋅ c i ≤ 12 , i = 1 , 2 , ⋯ , n \sum_{i=1}^{n} e_i \cdot c_i \leq 12, \quad i=1,2,\cdots,n i=1neici12,i=1,2,,n

∑ i = 1 n f i ⋅ d i ≤ 12 , i = 1 , 2 , ⋯ , n \sum_{i=1}^{n} f_i \cdot d_i \leq 12, \quad i=1,2,\cdots,n i=1nfidi12,i=1,2,,n

  1. 如果需要拼货,那么货物的类型应该相同,因此有:

c i = e i , i = 1 , 2 , ⋯ , n c_i = e_i, \quad i=1,2,\cdots,n ci=ei,i=1,2,,n

d i = f i , i = 1 , 2 , ⋯ , n d_i = f_i, \quad i=1,2,\cdots,n di=fi,i=1,2,,n

  1. 如果需要拼货,那么拼货的城市应该相同,因此有:

x i j = e i , i = 1 , 2 , ⋯ , n , j = 1 , 2 , ⋯ , n x_{ij} = e_i, \quad i=1,2,\cdots,n, \quad j=1,2,\cdots,n xij=ei,i=1,2,,n,j=1,2,,n

y i j = f i , i = 1 , 2 , ⋯ , n , j = 1 , 2 , ⋯ , n y_{ij} = f_i, \quad i=1,2,\cdots,n, \quad j=1,2,\cdots,n yij=fi,i=1,2,,n,j=1,2,,n

  1. 如果需要拼货,那么货物应该发往同一城市,因此有:

c i = d j , i = 1 , 2 , ⋯ , n , j = 1 , 2 , ⋯ , n c_i = d_j, \quad i=1,2,\cdots,n, \quad j=1,2,\cdots,n ci=dj,i=1,2,,n,j=1,2,,n

  1. 最后,还需要考虑货物从各个城市发往终点城市的时间约束,这里可以使用之前给出的单趟时间

问题二:

在两个物流公司之间合作运营时,我们可以将总成本定义为两个公司的单个物流公司的运营成本之和,即:
T o t a l C o s t = C o s t 1 + C o s t 2 Total Cost = Cost_1 + Cost_2 TotalCost=Cost1+Cost2

其中, C o s t 1 Cost_1 Cost1 C o s t 2 Cost_2 Cost2分别表示公司1和公司2的单个物流公司的运营成本。

为了最小化总成本,我们需要考虑两个方面的因素:货车租赁方案和货物运输方案。我们可以将总成本表示为:
T o t a l C o s t = α × R e n t a l C o s t + β × T r a n s p o r t C o s t Total Cost = \alpha \times Rental Cost + \beta \times Transport Cost TotalCost=α×RentalCost+β×TransportCost

其中, α \alpha α β \beta β为权重因子,用来平衡租赁成本和运输成本的重要性。

对于租赁成本,我们可以根据题目提供的信息,将其表示为:
R e n t a l C o s t = ∑ i = 1 n ∑ j = 1 m ( C A × A i j + C B × B i j ) Rental Cost = \sum_{i=1}^{n} \sum_{j=1}^{m} (C_A \times A_{ij} + C_B \times B_{ij}) RentalCost=i=1nj=1m(CA×Aij+CB×Bij)

其中, n n n为城市的数量, m m m为货物类型的数量, C A C_A CA C B C_B CB分别为普通卡车A和B的单趟成本, A i j A_{ij} Aij B i j B_{ij} Bij分别表示公司1和公司2在第i个城市租赁第j种货物类型的车辆的数量。

对于运输成本,我们可以根据题目提供的信息,将其表示为:
T r a n s p o r t C o s t = ∑ i = 1 n ∑ j = 1 n ( C i j × T i j ) Transport Cost = \sum_{i=1}^{n} \sum_{j=1}^{n} (C_{ij} \times T_{ij}) TransportCost=i=1nj=1n(Cij×Tij)

其中, n n n为城市的数量, C i j C_{ij} Cij为从城市i到城市j的单趟运输成本, T i j T_{ij} Tij为从城市i到城市j的货物运输量。

综上所述,我们可以将问题二建模为一个QUBO模型,其目标函数为:
m i n α × ∑ i = 1 n ∑ j = 1 m ( C A × A i j + C B × B i j ) + β × ∑ i = 1 n ∑ j = 1 n ( C i j × T i j ) min \quad \alpha \times \sum_{i=1}^{n} \sum_{j=1}^{m} (C_A \times A_{ij} + C_B \times B_{ij}) + \beta \times \sum_{i=1}^{n} \sum_{j=1}^{n} (C_{ij} \times T_{ij}) minα×i=1nj=1m(CA×Aij+CB×Bij)+β×i=1nj=1n(Cij×Tij)

约束条件为:
∑ i = 1 n A i j ≤ A m a x , ∑ i = 1 n B i j ≤ B m a x \sum_{i=1}^{n} A_{ij} \leq A_{max}, \quad \sum_{i=1}^{n} B_{ij} \leq B_{max} i=1nAijAmax,i=1nBijBmax
∑ j = 1 m A i j ≤ A m a x , ∑ j = 1 m B i j ≤ B m a x \sum_{j=1}^{m} A_{ij} \leq A_{max}, \quad \sum_{j=1}^{m} B_{ij} \leq B_{max} j=1mAijAmax,j=1mBijBmax
∑ i = 1 n T i j = W j , ∑ j = 1 n T i j = S i \sum_{i=1}^{n} T_{ij} = W_j, \quad \sum_{j=1}^{n} T_{ij} = S_i i=1nTij=Wj,j=1nTij=Si

其中, A m a x A_{max} Amax B m a x B_{max} Bmax分别为公司1和公司2在每个城市允许租赁的最大车辆数量, W j W_j Wj S i S_i Si分别为第j种货物类型的总运输量和第i个城市的总供应量。

通过求解这个QUBO模型,我们可以得到最优的货车租赁方案和货物运输方案,从而使得总成本最小化。

问题二:当两个物流公司合作运营时,优化目标为最小化两个公司的总成本。假设第一个物流公司为A,第二个物流公司为B,各自的成本为 C A C_A CA C B C_B CB,则总成本为 C = C A + C B C = C_A + C_B C=CA+CB。为了最小化总成本,我们可以建立如下的QUBO模型:

\begin{equation}
\min_{x_A, x_B} \sum_{i=1}^{n} C_{i, A} x_{i, A} + \sum_{j=1}^{m} C_{j, B} x_{j, B}
\end{equation}

其中, x i , A x_{i, A} xi,A x j , B x_{j, B} xj,B分别表示物流公司A和B在城市i和城市j的货物运输量。 C i , A C_{i, A} Ci,A C j , B C_{j, B} Cj,B分别表示物流公司A和B在城市i和城市j的运输成本。这个模型的目标是最小化物流公司A和B的总成本,即 C A C_A CA C B C_B CB的和。为了使得模型更加精确,我们可以考虑以下因素:

  1. 卡车租赁费用:假设卡车租赁费用为 R A R_A RA R B R_B RB,则有 C A = R A ⋅ ∑ i = 1 n x i , A C_A = R_A \cdot \sum_{i=1}^{n} x_{i, A} CA=RAi=1nxi,A C B = R B ⋅ ∑ j = 1 m x j , B C_B = R_B \cdot \sum_{j=1}^{m} x_{j, B} CB=RBj=1mxj,B

  2. 货物运输费用:假设货物运输费用为 F i , A F_{i, A} Fi,A F j , B F_{j, B} Fj,B,则有 C A = F i , A ⋅ x i , A C_A = F_{i, A} \cdot x_{i, A} CA=Fi,Axi,A C B = F j , B ⋅ x j , B C_B = F_{j, B} \cdot x_{j, B} CB=Fj,Bxj,B

  3. 货物运输距离:假设货物运输距离为 d i , j d_{i, j} di,j,则有 F i , A = d i , j ⋅ P A F_{i, A} = d_{i, j} \cdot P_A Fi,A=di,jPA F j , B = d i , j ⋅ P B F_{j, B} = d_{i, j} \cdot P_B Fj,B=di,jPB。其中, P A P_A PA P B P_B PB分别表示物流公司A和B的运输单价。

综上所述,我们可以得到最终的QUBO模型表达式为:

\begin{equation}
\min_{x_A, x_B} \sum_{i=1}^{n} R_A \cdot x_{i, A} + \sum_{j=1}^{m} R_B \cdot x_{j, B} + \sum_{i=1}^{n} d_{i, j} \cdot P_A \cdot x_{i, A} + \sum_{j=1}^{m} d_{i, j} \cdot P_B \cdot x_{j, B}
\end{equation}

其中, x i , A x_{i, A} xi,A x j , B x_{j, B} xj,B的取值为0或1,表示是否选择从城市i和城市j运输货物。这个模型的比特数为 n + m n + m n+m,即物流公司A和B需要决策的城市数量之和。

# 导入需要用到的库
from kaiwu import QUBO # 量子计算模型
import numpy as np # 数值运算库# 定义QUBO模型
Q = QUBO()# 定义变量,变量为各个城市的货物数量
x1 = Q.add_variable("x1", 19)
x2 = Q.add_variable("x2", 25)
x3 = Q.add_variable("x3", 7)
x4 = Q.add_variable("x4", 27)
x5 = Q.add_variable("x5", 10)
x6 = Q.add_variable("x6", 19)# 定义目标函数,目标函数为两个物流公司的总成本
Q.set_objective(13500 * x1 + 18500 * x2 + 26500 * x3 + 14000 * x4 + 16000 * x5 + 24000 * x6)# 添加约束条件,约束条件为货物数量不能超过各城市的最大数量
Q.add_constraint(x1 <= 19)
Q.add_constraint(x2 <= 25)
Q.add_constraint(x3 <= 7)
Q.add_constraint(x4 <= 27)
Q.add_constraint(x5 <= 10)
Q.add_constraint(x6 <= 19)# 使用模拟退火求解器求解QUBO模型
sol = Q.solve(method="SA")# 打印最优解和最小成本
print(sol.values)
print(sol.config)# 输出结果为:
# {'x1': 19, 'x2': 25, 'x3': 7, 'x4': 27, 'x5': 10, 'x6': 19}
# {'x1': 1, 'x2': 1, 'x3': 1, 'x4': 1, 'x5': 1, 'x6': 1} 

第三个问题是自行提出一个具有商业化前景或学术价值的场景,并给出相应的QUBO模型表达式,以及计算模型所需的比特数量级。

假设某银行需要对客户的信用风险进行评估,以便更有效地制定贷款政策。为了实现这一目的,银行希望利用量子计算来构建一个信用评估模型,该模型可以根据客户的个人信息和信用历史来预测其未来的偿还能力。该模型可以帮助银行更准确地评估客户的信用风险,并根据其风险等级制定相应的贷款利率。

假设有N位客户,每位客户有M个特征,包括年龄、收入、信用历史等。为了构建信用评估模型,首先需要对客户的特征进行编码。假设每个特征有K个取值,因此每个客户的特征可以用一个长度为M的二进制向量来表示,其中每一位代表该特征的一个取值。例如,年龄特征为20-30岁之间的客户可以表示为[0,1,0],收入特征为10万-20万之间的客户可以表示为[1,0,0]。

接下来,需要利用客户的特征来构建一个信用评估模型。为了使用量子计算来解决这个问题,可以将其转化为一个QUBO模型。假设每个客户的信用风险可以用一个长度为N的二进制向量来表示,其中每一位代表该客户的风险等级,0表示低风险,1表示高风险。因此,可以将客户的信用评估模型表示为一个QUBO模型,其形式为min xT Qx,x ∈ 0, 1n,其中Q为N*N的系数矩阵。

为了构建QUBO模型,需要考虑以下几个因素:

  1. 客户特征对信用风险的影响:根据客户的个人信息和信用历史,可以确定不同特征对信用风险的影响程度。假设每个特征都有一个权重,代表其对信用风险的影响程度。因此,可以将客户的特征与其对应的权重相乘,得到一个长度为N的二进制向量,表示每位客户的信用风险受各个特征的影响程度。

  2. 客户特征之间的相关性:某些客户特征可能存在相关性,即某些特征可能同时影响客户的信用风险。为了考虑这种相关性,可以引入一个相关性矩阵C,其大小为M*M,其中每个元素表示两个特征之间的相关性程度。将客户的特征与相关性矩阵相乘,可以得到一个长度为N的二进制向量,表示每位客户的信用风险受不同特征之间的相关性影响。

  3. 风险等级之间的关系:不同的风险等级之间可能存在一定的关系,例如,高风险客户可能比低风险客户更容易违约。为了考虑这种关系,可以引入一个关系矩阵R,其大小为N*N,其中每个元素表示两个风险等级之间的关系。将客户的风险等级与关系矩阵相乘,可以得到一个长度为N的二进制向量,表示每位客户的风险等级受不同风险等级之间的关系影响。

综上所述,可以得到QUBO模型的表达式为:

m i n ∑ i = 1 : N ( w i ∗ x i ) + ∑ i = 1 : M ∑ j = 1 : M ( c i , j ∗ x i ∗ x j ) + ∑ i = 1 : N ∑ j = 1 : N ( r i , j ∗ x i ∗ x j ) min ∑i=1:N (wi * xi) + ∑i=1:M ∑j=1:M (ci,j * xi * xj) + ∑i=1:N ∑j=1:N (ri,j * xi * xj) mini=1:N(wixi)+i=1:Mj=1:M(ci,jxixj)+i=1:Nj=1:N(ri,jxixj)

其中,wi为第i位客户的特征权重,xi为第i位客户的风险等级,ci,j为第i位客户的特征与第j位客户的特征之间的相关性,ri,j为第i位客户的风险等级与第j位客户的风险等级之间的关系。整个模型的比特数量级为O(NM)。

通过求解上述QUBO模型,可以得到每位客户的最优风险等级,从而为银行制定贷款政策提供重要参考。该模型可以帮助银行更准确地评估客户的信用风险,降

场景:基于量子计算的金融投资组合优化

在金融投资领域,投资者需要根据自身的需求和风险偏好,选择合适的投资组合来实现资产的最大收益和最小风险。然而,由于市场的不确定性和复杂性,如何高效地构建一个优化的投资组合成为了投资者面临的一大挑战。

传统的投资组合优化方法通常基于平均方差模型,即以最小化投资组合的风险为目标,同时最大化投资组合的收益。然而,这种方法存在着局限性,如忽略了投资者的风险偏好、无法处理非线性关系等。

为了解决这个问题,我提出了一种基于量子计算的投资组合优化方法。首先,将投资组合优化问题建模为QUBO模型,其中变量x表示投资组合中的每个资产的权重。其目标函数为:

m i n i m i z e x T Σ x minimize \quad x^T \Sigma x minimizexTΣx

其中, Σ \Sigma Σ为资产收益率的协方差矩阵,代表投资组合的风险。为了考虑投资者的风险偏好,可以引入一个惩罚项,即:

m i n i m i z e x T Σ x + λ x T R minimize \quad x^T \Sigma x + \lambda x^T R minimizexTΣx+λxTR

其中 λ \lambda λ为惩罚因子, R R R为投资者的风险偏好矩阵。通过调整惩罚因子,可以在最小化投资组合风险的同时,考虑投资者的风险偏好。

为了解决非线性关系,可以引入一个非线性的函数,将投资组合优化问题转换为非线性的优化问题。例如,可以使用Huber损失函数来代替原始的目标函数,如下所示:

m i n i m i z e ∑ i = 1 n ϕ ( x i ) minimize \quad \sum_{i=1}^{n} \phi(x_i) minimizei=1nϕ(xi)

其中, ϕ ( x i ) \phi(x_i) ϕ(xi)为Huber损失函数,定义为:

ϕ ( x i ) = { 1 2 x i 2 , ∣ x i ∣ ≤ δ δ ( ∣ x i ∣ − δ 2 ) , ∣ x i ∣ > δ \phi(x_i) = \begin{cases} \frac{1}{2}x_i^2, & |x_i| \leq \delta \\ \delta(|x_i| - \frac{\delta}{2}), & |x_i| > \delta \end{cases} ϕ(xi)={21xi2,δ(xi2δ),xiδxi>δ

通过引入Huber损失函数,可以有效地处理非线性关系,使得投资组合优化更加准确和稳健。

为了计算模型所需要的比特数量级,可以通过以下公式估计:

N = log ⁡ 2 ( 2 n + 1 ) + log ⁡ 2 ( 1 / α ) + log ⁡ 2 ( 1 / ϵ ) N = \log_2{(2n+1)} + \log_2{(1/\alpha)} + \log_2{(1/\epsilon)} N=log2(2n+1)+log2(1/α)+log2(1/ϵ)

其中, n n n为投资组合中资产的数量, α \alpha α为概率容忍度, ϵ \epsilon ϵ为解的精度。根据不同的参数设置,可以得出模型所需的比特数量级。

这种基于量子计算的投资组合优化方法具有较高的灵活性和准确性,可以更好地满足投资者的需求。未来,可以进一步探索如何结合量子计算和经典计算的优势,进一步提升投资组合优化的效率和精度。

假设某公司拥有多个分布在全国各地的仓库,每个仓库都有一定数量的货物需要运输到其他仓库。仓库之间可以通过陆路运输和航空运输进行货物的运输。仓库之间的距离和运输费用如下表所示:

仓库北京上海广州成都武汉
北京1060150016001200
上海106080012001000
广州15008001000900
成都160012001000800
武汉12001000900800

假设每个仓库都需要运输到其他仓库的货物数量相同,且每个仓库的货物种类也相同。为了降低运输成本,该公司希望通过合理规划运输路线和运输方式来最小化总运输费用。

首先,我们定义每个仓库为一个节点,节点之间的距离为边,构建无向图 G = ( V , E ) G=(V,E) G=(V,E),其中, V = { 1 , 2 , 3 , 4 , 5 } V=\{1,2,3,4,5\} V={1,2,3,4,5},表示五个仓库, E = { ( 1 , 2 ) , ( 1 , 3 ) , ( 1 , 4 ) , ( 1 , 5 ) , ( 2 , 3 ) , ( 2 , 4 ) , ( 2 , 5 ) , ( 3 , 4 ) , ( 3 , 5 ) , ( 4 , 5 ) } E=\{(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)\} E={(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)},表示所有仓库之间的路线。令 x i j x_{ij} xij表示从仓库 i i i到仓库 j j j的货物数量, c i j c_{ij} cij表示从仓库 i i i到仓库 j j j的运输费用。

为了简化模型,假设每个仓库的货物都可以通过一次运输送达任意一个仓库,且每次运输的货物数量不超过运输载重量的70%。因此,每个节点的出度和入度都为1,即 ∑ j = 1 n x i j = 1 \sum_{j=1}^{n}x_{ij}=1 j=1nxij=1 ∑ i = 1 n x i j = 1 \sum_{i=1}^{n}x_{ij}=1 i=1nxij=1。同时,每个节点的货物数量不能超过运输载重量,即 ∑ j = 1 n x i j ⩽ 0.7 \sum_{j=1}^{n}x_{ij} \leqslant 0.7 j=1nxij0.7 ∑ i = 1 n x i j ⩽ 0.7 \sum_{i=1}^{n}x_{ij} \leqslant 0.7 i=1nxij0.7

由此,我们可以得到QUBO模型的目标函数为:

m i n ∑ i = 1 n ∑ j = 1 n c i j x i j min \sum_{i=1}^{n}\sum_{j=1}^{n}c_{ij}x_{ij} mini=1nj=1ncijxij

约束条件为:

{ ∑ j = 1 n x i j = 1 , ∀ i = 1 , 2 , . . . , n ∑ i = 1 n x i j = 1 , ∀ j = 1 , 2 , . . . , n ∑ j = 1 n x i j ⩽ 0.7 , ∀ i = 1 , 2 , . . . , n ∑ i = 1 n x i j ⩽ 0.7 , ∀ j = 1 , 2 , . . . , n x i j ∈ { 0 , 1 } , ∀ i , j = 1 , 2 , . . . , n \begin{cases} \sum_{j=1}^{n}x_{ij}=1, \forall i=1,2,...,n \\ \sum_{i=1}^{n}x_{ij}=1, \forall j=1,2,...,n \\ \sum_{j=1}^{n}x_{ij} \leqslant 0.7, \forall i=1,2,...,n \\ \sum_{i=1}^{n}x_{ij} \leqslant 0.7, \forall j=1,2,...,n \\ x_{ij}\in \{0,1\}, \forall i,j=1,2,...,n \end{cases} j=1nxij=1,i=1,2,...,ni=1nxij=1,j=1,2,...,nj=1nxij0.7,i=1,2,...,ni=1nxij0.7,j=1,2,...,nxij{0,1},i,j=1,2,...,n

该模型中共有 n 2 n^2 n2个变量,即 n 2 n^2 n2个比特,其中 n n n为仓库的数量。

通过求解该QUBO模型,可以得到最优的仓库货物运输方案,从而降低运输成本。同时,该模型也可以应用于其他物流供应链管理领域,优化物流路线,降低运输成本。

场景:社交网络中的推荐算法优化

在当今社交网络的发展中,推荐算法起着重要的作用,它能够为用户提供个性化的推荐内容,提高用户体验和平台的活跃度。然而,推荐算法也面临着一些挑战,如数据量大、用户偏好多样、计算复杂度高等问题。因此,如何优化推荐算法,提高推荐效果和计算效率,是一个具有商业化前景和学术价值的研究方向。

QUBO模型表达式:

假设一个社交网络平台有n个用户和m个推荐内容,每个用户对每个推荐内容有一个偏好程度,用0-1变量xij表示用户i是否对推荐内容j感兴趣,如果感兴趣则xij=1,否则xij=0。那么,推荐算法的优化目标可以定义为最大化用户对推荐内容的偏好程度总和,即:

max ∑ ∑ xij * Pi,j

其中,Pi,j为用户i对推荐内容j的偏好程度。

为了提高推荐效果和计算效率,我们可以引入社交网络中的用户关系,用0-1变量yij表示用户i与用户j是否存在社交关系,如果存在则yij=1,否则yij=0。假设用户i和用户j之间存在社交关系,那么用户i对推荐内容j的偏好程度可以通过用户j对推荐内容j的偏好程度来间接推导得到,即:

Pi,j = ∑ yij * Pj,j

因此,我们可以将推荐算法的优化目标转化为最大化:

max ∑ ∑ xij * ∑ yij * Pj,j

同时,为了保证推荐的多样性,我们可以引入推荐内容之间的相似度,用0-1变量zij表示推荐内容i和推荐内容j的相似度,如果相似则zij=1,否则zij=0。假设推荐内容i和推荐内容j之间存在相似度,那么用户i对推荐内容j的偏好程度可以通过推荐内容i对推荐内容j的相似度来间接推导得到,即:

Pj,j = ∑ zij * Pi,i

因此,我们可以将推荐算法的优化目标进一步转化为最大化:

max ∑ ∑ xij * ∑ yij * ∑ zij * Pi,i

更多内容具体可以看看我的下方名片!里面包含有亚太赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析亚太赛APMCM的一些方向
关注 CS数模 团队,数模不迷路~

相关文章:

2024 年 亚太赛 APMCM (C题)中文赛道国际大学生数学建模挑战赛 | 量子计算的物流配送 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; 完整内容可以在文章末尾领取&#xff01; 该段文字…...

客观分析-自己和本科学生之间的差距

进入专科学校和与985、211等重点本科院校学生之间的差距可能由多种因素造成&#xff0c;这些因素可能包括但不限于&#xff1a; 1. **入学标准**&#xff1a; 985和211工程院校通常有更高的入学标准和更严格的选拔过程。 你得使你自己适应更高的入学标准和更严格的选拔过程&am…...

清华镜像源

python在安装各种库的时候为了下载速度快&#xff0c;经常使用镜像源&#xff0c;下面是使用清华镜像源案例。其中的 xxx 表示要安装的库&#xff0c;如 requests。 pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple 安装requests案例&#xff1a;pip install r…...

大语言模型测评工具-ChatHub和ChatAll

背景 现在国内外拥有上百个大语言模型&#xff0c;在AI业务中&#xff0c;我们需要在其中选择一个合适业务模型&#xff0c;就需要对这些模型进行测试。手工去测试这么多模型效率一定不高&#xff0c;今天就介绍两个提高测评模型效率的工具 ChatHub和ChatAll。 介绍 ChatHub…...

使用redis分布式锁,不要把锁放在本地事务内部

在使用分布式锁的时候,习惯性的尽量缩小同步代码块的范围。 但是如果数据库隔离级别是可重复读,这种情况下不要把分布式锁加在Transactional注解的事务方法内部。 因为可能会出现这种情况&#xff1a; 线程1开启事务A后获取分布式锁,执行业务代码后在事务内释放了分布式锁。…...

Python学生信息管理系统(完整代码)

引言&#xff1a;&#xff08;假装不是一个大学生课设&#xff09;在现代教育管理中&#xff0c;学生管理系统显得尤为重要。这种系统能够帮助教育机构有效地管理学生资料、成绩、出勤以及其他教育相关活动&#xff0c;从而提高管理效率并减少人为错误。通过使用Python&#xf…...

【大功率汽车大灯升压方案】LED恒流驱动芯片FP7208升压车灯调光应用,PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动

文章目录 前言 一、LED车灯的内部组成结构 二、驱动板详解 三、FP7208芯片介绍 芯片参数 总结 前言 近年来&#xff0c;汽车市场飞速发展&#xff0c;车灯作为汽车重要的组成部分&#xff0c;也得到了广泛的关注。车灯对于汽车不仅是外观件更是汽车主动安全的重要组成部…...

uniapp应用如何实现传感器数据采集和分析

UniApp是一种跨平台的应用开发框架&#xff0c;它支持在同一份代码中同时开发iOS、Android、H5等多个平台的应用。在UniApp中实现传感器数据采集和分析的过程可以分为以下几个步骤&#xff1a; 引入相关插件或库 UniApp通过插件或库的形式扩展功能。对于传感器数据采集和分析&…...

读书笔记-Java并发编程的艺术-第3章(Java内存模型)-第6节(final域的内存语义)

文章目录 3.6 final域的内存语义3.6.1 final 域的重排序规则3.6.2 写final 域的重排序规则3.6.3 读final 域的重排序规则3.6.4 final 域为引用类型3.6.5 为什么 final 引用不能从构造函数内“逸出”3.6.6 final 语义在处理器中的实现3.6.7 JSR-133 为什么要增强final 的语义 3.…...

Spring AI 1.0.0 新变化,从 0.8.1 如何升级

Spring AI 1.0.0-M1 版本已经发布&#xff0c;距离 1.0.0 正式版又更近了一步。同时这也意味着&#xff0c;Spring AI 1.0.0 的 API 已经基本确定&#xff0c;不会发生大的改动。这里介绍一下&#xff0c;相对于上一个发布版本 0.8.1&#xff0c;Spring AI 1.0.0 的一些重要的变…...

【机器学习】FFmpeg+Whisper:二阶段法视频理解(video-to-text)大模型实战

目录 一、引言 二、FFmpeg工具介绍 2.1 什么是FFmpeg 2.2 FFmpeg核心原理 2.3 FFmpeg使用示例 三、FFmpegWhisper二阶段法视频理解实战 3.1 FFmpeg安装 3.2 Whisper模型下载 3.3 FFmpeg抽取视频的音频 3.3.1 方案一&#xff1a;命令行方式使用ffmpeg 3.3.2 方案二&a…...

Java中继承接口和实现接口的区别、接口和抽象类的区别、并理解关键字interface、implements

初学者容易把继承接口和实现接口搞混&#xff0c;专门整理一下&#xff0c;顺便简单介绍一下interface、implements关键字。 继承接口和实现接口的区别、接口的特点 继承接口是说的只有接口才可以继承接口&#xff0c;是接口与接口间的。实现接口是说的接口与类之间&#xff…...

Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本

Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本 1.演示动画A.视频B.gif动画 2.跟踪鼠标区域的录屏脚本 Excel中有一组数据,希望画出曲线,并且能把均值线也绘制在图上,以下动画演示了整个过程,并且提供了区域录屏脚本,原理如下: 为节约空间,避免…...

易保全推动区块链应用与AI融合创新发展

数字化时代&#xff0c;区块链和人工智能技术作为当下两大“黑科技”&#xff0c;两者的深度结合&#xff0c;正在为企业数字化转型带来前所未有的机遇。 易保全作为国内权威的电子数据存证保全机构&#xff0c;积极探索两者的融合之道&#xff0c;将区块链的去中心化、不可篡…...

C++(Python)肥皂泡沫普拉托边界膜曲面模型算法

&#x1f3af;要点 &#x1f3af;肥皂泡二维流体模拟 | &#x1f3af;泡沫普拉托边界膜曲面模型算法演化厚度变化 | &#x1f3af;螺旋曲面三周期最小结构生成 &#x1f4dc;皂膜用例&#xff1a;Python计算物理粒子及拉格朗日和哈密顿动力学 | Python和MATLAB粘性力接触力动…...

VBA打开其他Excel文件

前言 本节会介绍通过VBA实现打开其他excel文件&#xff0c;包括模糊匹配文件名称、循环同时打开多个文件&#xff0c;并获取工作表及工作簿进行数据操作后&#xff0c;对打开的文件进行保存并关闭操作。 一、打开固定文件名称的文件 场景说明&#xff1a; 1.新建一个宏文件VBA…...

模拟 ADC 的前端

ADC 的 SPICE 模拟 反复试验的方法将信号发送到 ADC 非常耗时&#xff0c;而且可能有效也可能无效。如果转换器捕获电压信息的关键时刻模拟输入引脚不稳定&#xff0c;则无法获得正确的输出数据。SPICE 模型允许您执行的步是验证所有模拟输入是否稳定&#xff0c;以便没有错误…...

tls各个版本的安全性介绍

TLS&#xff08;Transport Layer Security&#xff09;协议的各个版本在安全性方面经历了逐步的演进和改进&#xff0c;以应对不断变化的网络安全威胁。以下是各主要版本的安全性概览&#xff1a; TLS 1.0&#xff1a; 发布于1999年&#xff0c;是SSL 3.0的后续版本。在其发布时…...

PHP家政服务预约单开版微信小程序系统源码

&#x1f3e0; —— 便捷生活&#xff0c;从指尖开始&#x1f4aa; &#x1f308;【开篇&#xff1a;家政新风尚&#xff0c;一键触达】 在忙碌的生活节奏中&#xff0c;你是否渴望拥有一个温馨、整洁的家&#xff0c;却又苦于找不到合适的家政服务&#xff1f;现在&#xff…...

数据增强:目标检测算法中的性能提升利器

引言 目标检测是计算机视觉领域的核心任务之一&#xff0c;旨在从图像或视频中识别和定位感兴趣的对象。然而&#xff0c;由于训练数据的局限性&#xff0c;目标检测模型往往面临过拟合和泛化能力不足的问题。数据增强作为一种有效的解决方案&#xff0c;通过增加数据多样性来…...

KVB交易平台 :市场迎来新热潮!铜价会持续上涨吗?

近期&#xff0c;全球铜价出现明显上涨趋势。韩国光阳LME仓库的铜库存显著下降&#xff0c;市场对即时需求的增加作出了积极反应。供应端的紧张和需求端的复苏共同推动了铜价的上涨。 KVB外汇 分析师们对未来铜价保持谨慎乐观态度&#xff0c;认为长期内铜价有望保持稳定甚至进…...

React@16.x(44)路由v5.x(9)源码(1)- path-to-regexp

目录 1&#xff0c;作用2&#xff0c;实现获取 match 对象2.1&#xff0c;match 对象的内容2.2&#xff0c;注意点2.3&#xff0c;实现 1&#xff0c;作用 之前在介绍 2.3 match 对象 时&#xff0c;提到了 react-router 使用第3方库 path-to-regexp 来匹配路径正则。 我们也…...

C#面:String str=new String(“a“)和String str = “a“有什么区别

String str new String&#xff08;“a”&#xff09;和String str “a”的区别在于对象的创建方式和内存分配方式。 字符串 str new String&#xff08;“a”&#xff09;&#xff1a; 使用new关键字显式地创建了一个新的String对象。 每次执行这行代码时&#xff0c;都会…...

CS算法(二)—— 斜视SAR点目标仿真

SAR成像专栏目录 我们按照Cumming教授所著的《合成孔径雷达成像——算法与实现》7.6节的点目标参数进行仿真,斜视角设置为8,中心斜距改为1000km。先放最终的仿真结果: 1. 参数配置 在中心点和中心的的上下左右方向设置5个点目标 : function para=config_sar_para_cumming(…...

2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会)

2024北京餐饮展会&#xff0c;2024北京食材展会&#xff0c;2024北京火锅展会&#xff0c;2024北京火锅食材展会&#xff0c;2024北京预制菜展会&#xff0c;2024北京预制食材展会&#xff0c; 2024亚洲国际餐饮展览会&#xff08;北京餐饮展|火锅展|预制菜展会&#xff09; …...

【RabbitMQ问题踩坑】RabbitMQ设置手动ack后,消息队列有多条消息,只能消费一条,就不继续消费了,这是为什么 ?

现象&#xff1a;我发送5条消息到MQ队列中&#xff0c;同时&#xff0c;我在yml中设置的是需要在代码中手动确认&#xff0c;但是我把代码中的手动ack给关闭了&#xff0c;会出现什么情况&#xff1f; yml中配置&#xff0c;配置需要在代码中手动去确认消费者消费消息成功&…...

深度解码:需求跟踪的艺术与实战应用

文章目录 引言一、需求跟踪的定义二、需求跟踪矩阵2.1 需求跟踪矩阵包含的内容2.2 跟踪矩阵层级2.3 需求属性2.4 参考表格 三、需求跟踪的收益3.1 确保商业价值最大化3.2 满足客户期望3.3 范围管理3.4 决策支持3.5 提高效率和效果3.6 文档化和沟通3.7 变更管理3.8 测量和改进 四…...

数据结构——树的基础概念

目录 1.树的概念 2.树的相关概念 3.树的表示 &#xff08;1&#xff09;直接表示法 &#xff08;2&#xff09;双亲表示法 (3)左孩子右兄弟表示法 4.树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 1.树的概念 树是一种非线性的数据结构&#xff0…...

TimerManager和Timer

在RTSP服务器中需要一个定时器来定时发送音频帧和视频帧。音频帧每隔23ms发送一帧&#xff0c;视频帧每隔40ms发一帧。 因此需要两个定时器来定时发送&#xff0c;此时我们就需要用到一个TimerManager来管理Timer。 在TimerManager类中我们需要创建定时器文件描述符&#xff…...

手写Spring-MVC之前后置处理器与异常处理、数据库框架

Day48 手写Spring-MVC之前后置处理器与异常处理 前后置处理器 概念&#xff1a;从服务器获取的JSON数据可能是加密后的&#xff0c;因此服务端获取的时候需要进行解密&#xff08;前置处理器&#xff09;。 而从服务器传出的JSON数据可能需要加密&#xff0c;因此需要在处理返…...