供应链 | 零售商-供应商柔性承诺契约:一种鲁棒优化方法 (一)

在这里插入图片描述

论文解读:毕鑫宇

作者:Aharon Ben-Tal, Boaz Golany, Arkadi Nemirovski, Jean-Philippe Vial
引用:Ben-Tal, A., Golany, B. , Nemirovski, A., & Vial, J. P… (2005). Retailer-supplier flexible commitments contracts: a robust optimization approach. Manufacturing & Service Operations Management, 7(3), 248-271.
文章链接:https://doi.org/10.1287/msom.1050.0081

问题定义

文章研究了一个两阶段多周期供应链问题,称为零售商-供应商柔性承诺问题 (retailer-supplier flexible commitment,RSFC).

"零售商-供应商柔性承诺问题"是一个供应链管理的概念,涉及到供应商和零售商之间的合同安排。它主要关注如何灵活地承诺产品或服务的供应,以应对市场需求的不确定性。在这种情况下,"柔性承诺"通常是指供应商对零售商做出的灵活供应承诺,即供应商将根据市场条件的变化和/或零售商的需求来调整产品或服务的供应量。这种灵活性可以帮助供应链更好地应对市场的波动和不确定性,例如季节性的需求变化或突发事件导致的需求激增.然而,这种柔性承诺也会带来一些挑战,包括:

  1. 需求预测:供应商需要准确地预测未来的需求以准备适当的供应量;
  2. 生产和库存管理:供应商需要灵活地管理生产和库存以满足不断变化的需求;
  3. 合同设计:供应商和零售商需要设计一种合同,可以公平地分享柔性承诺带来的收益和风险。

文章所关注的RSFC问题具有不确定需求,且已知只存在某不确定集中。具体而言,此问题涉及一家零售商,该零售商面临终端客户对产品的不确定需求。 零售商从供应商处订购并根据合同进行运营,根据该合同,零售商承诺(在时间为零时)固定时间范围内的订单数量向量,然后动态地用实际订单替换这些承诺的数量。 除了通常的成本(订购、持有和短缺)和最终残值之外,零售商还会因实际订单与承诺订单之间的偏差以及连续承诺/实际订单之间的偏差而受到处罚而产生额外成本。

作者采用最小-最大 (min-max) 准则,即解决 min-max RSFC 问题。为解决大规模复杂系统问题,文章采用适用于动态决策问题的鲁棒优化方法的扩展,即仿射可调鲁棒对等方法 (affinely adjustable robust counterpart,AARC), 详见 Ben-Tal et al. (2004).

AARC 的一个主要特点是在了解部分不确定数据后,可以确定部分决策变量。 在 AARC 方法中,这些“可调整”变量对已实现数据的依赖性仅限于仿射函数的形式,因而实现易处理性。 事实上,在 AARC 方法中,一系列不确定的线性规划被单个易处理的确定性问题(线性或二次曲线问题)所取代。 当然,仅使用次优策略所付出的代价是因具体问题而异的,但对于文章讨论的问题,作者通过大型模拟研究,表明该代价非常低。

模型构建

文章考虑一个单产品、两阶段 (echelon)、 T T T周期、定期管理库存的问题。在计划范围的开始,零售商为产品指定承诺向量 w = w 1 , … , w T w=w_1,\ldots,w_T w=w1,,wT, 作为供应商对其生产能力的预测。在每个时期 t t t开始时,零售商初始库存为 x t x_t xt,且以单位成本 c t c_t ct从供应商处订购数量 q t q_t qt, 随后收到顾客需求。零售商在计划范围开始时的状态通过参数 x 1 x_1 x1(初始库存)和 w 0 w_0 w0(一个名义值,可能表示计划范围之前的最后一个订单或以前订单的平均值)给出。因此,产生了以下成本:

  1. 持有成本 = h t max ⁡ [ x t + q t − d t , 0 ] =h_t\max[x_t+q_t-d_t, 0] =htmax[xt+qtdt,0],其中 h t h_t ht为单位持有成本,
  2. 缺货成本 = p t max ⁡ [ d t − x t − q t , 0 ] =p_t\max[d_t-x_t-q_t, 0] =ptmax[dtxtqt,0],其中 p t p_t pt为单位缺货成本。
    此外,由于合同的规定,零售商产生了以下额外费用:
  3. 由于承诺订单和实际订单之间的偏差而造成的惩罚成本(可理解为“预测误差”)
    α t + m a x [ q t − w t , 0 ] + α t − m a x [ w t − q t , 0 ] , \alpha_t^+max[q_t-w_t,0]+\alpha_t^-max[w_t-q_t,0], αt+max[qtwt,0]+αtmax[wtqt,0],
    其中 α t + , α t − \alpha_t^+,\alpha_t^- αt+,αt分别为正偏差和负偏差的单位惩罚成本;
  4. 对连续承诺之间偏差的惩罚成本
    β t + m a x [ w t − w t − 1 , 0 ] + β t − m a x [ w t − 1 − w t , 0 ] , \beta_t^+max[w_t-w_{t-1},0]+\beta_t^-max[w_{t-1}-w_t,0], βt+max[wtwt1,0]+βtmax[wt1wt,0],
    其中 β t + , β t − \beta_t^+,\beta_t^- βt+,βt是相关的单位惩罚。

同时,计划期末的剩余存货 x T + 1 x_{T+1} xT+1存在单位残值为 s s s, 且要求为了在文章的上下文中有意义, s < c T s<c_T s<cT. 且为保持模型中目标函数的凸性, s s s必须在终端周期 T T T满足不等式
h T − s ≥ − p T h_T-s\geq-p_T hTspT

模型中的约束包括:

  1. 库存平衡: x t + 1 = x t + q t − d t x_{t+1}=x_t+q_t-d_t xt+1=xt+qtdt;
  2. 每个时期订购量的上下界: L t ≤ − q t ≤ U t L_t\leq-q_t\leq U_t LtqtUt;
  3. 每个时期累计订购量的上下界: L ^ t ≤ ∑ τ = 1 t q τ ≤ U ^ t \hat L_t\leq \textstyle\sum_{\tau=1}^tq_\tau\leq \hat U_t L^tτ=1tqτU^t.

后两类约束条件中参数 ( L t , U t , L ^ t , U ^ t ) (L_t,U_t,\hat L_t,\hat U_t) (Lt,Ut,L^t,U^t)赋值的选择为零售商和供应商之间的各种契约协议提供了柔性模型的灵活性。


如果模型的所有参数都已知,包括需求向量 d = ( d 1 , … , d T ) d=(d_1,\ldots,d_T) d=(d1,,dT),则 RSFC 问题用以下确定性数学规划表示(其中 [ ξ ] + ≡ max ⁡ [ ξ , 0 ] [\xi]^+\equiv \max[\xi,0] [ξ]+max[ξ,0]):

AARC方法

RSFC问题,像许多其他的OM问题一样,是一个一般的不确定T-时期LP问题的实例,它的数据 { ( A t , c t , b t ) : \{(A_t,c_t,b_t): {(At,ct,bt):
t = 1 , 2 , … , T } t=1,2,\ldots,T\} t=1,2,,T}仿射性依赖于不确定参数 λ = ( λ 1 , λ 2 , … , λ T ) \lambda=(\lambda_1,\lambda_2,\ldots,\lambda_T) λ=λ1,λ2,,λT)的向量:
min ⁡ x = x 1 , … , x T { ∑ t = 1 T c t ( λ ) x t : ∑ τ = 1 t x τ A t τ ( λ ) ≤ b t ( λ ) , t = 1 , 2 , … , T } \displaystyle\min_{x=x_1,\ldots,x_T}\{\sum_{t=1}^Tc_t(\lambda)x_t:\sum_{\tau=1}^tx_\tau A_t^\tau(\lambda)\leq b_t(\lambda),t=1,2,\ldots,T\} x=x1,,xTmin{t=1Tct(λ)xt:τ=1txτAtτ(λ)bt(λ),t=1,2,,T}

其中 A t τ , b t A_t^\tau,b_t Atτ,bt是相同维数的向量。

将向量 x x x划分为 x = ( x a , x n a ) x=(x^a,x^{na}) x=(xa,xna)。其中子向量量 x n a x^{na} xna(不可调变量)由“here and now”决策组成,即必须在任何不确定数据实现之前确定的决策。(在RSFC问题中,它们是:量 q 1 q_1 q1-第一时期的订购量,以及承诺量 w 1 , w 2 , … , w T w_1,w_2,\ldots,w_T w1,w2,,wT.)子向量量 x a x^a xa(可调变量)由“wait and see”决策组成,这些决策可以在必须做出决策时根据所显示的数据进行调整(在RSFC问题中, x a = ( q 2 , … , q T ) x^a=(q_2,\ldots,q_T) xa=q2,,qT))。

x = ( x a , x n a ) x=(x^a,x^{na}) x=(xa,xna)的划分会导致索引集 { 1 , 2 , … , T } = I a ∪ I n a \{1,2,\ldots,T\}=I_a\cup I_{na} {1,2,,T}=IaIna的划分,根据这个划分,我们现在可以对时间相关(多周期)不确定LP进行如下建模:

最小-最大多周期可调鲁棒对等(Adjustable Robust Counterpart,ARC)

min ⁡ x n a , E { E : s u c h t h a t ∀ λ ∈ Λ ∃ x t = x t ( λ t − 1 ) , t ∈ I a : \displaystyle\min_{x_{na},E}\{E:such that \forall\lambda \in\Lambda \exists x_t=x_t(\lambda^{t-1}),t\in I_a: xna,Emin{E:suchthatλΛ∃xt=xt(λt1),tIa:
∑ τ ∈ I n a c τ ( λ ) x τ + ∑ τ ∈ I a c τ ( λ ) x τ ( λ τ − 1 ) ≤ E , \sum_{\tau \in I_{na}}c_\tau(\lambda)x_\tau+\sum_{\tau \in I_{a}}c_\tau(\lambda)x_\tau(\lambda^{\tau-1})\leq E, τInacτ(λ)xτ+τIacτ(λ)xτ(λτ1)E,
∑ τ ∈ I n a ( t ) x τ A t τ ( λ ) + ∑ τ ∈ I a ( t ) x τ ( λ t − 1 ) A t τ ( λ ) ≤ b t ( λ ) , \sum_{\tau \in I_{na}(t)}x_\tau A_t^\tau(\lambda)+\sum_{\tau \in I_{a}(t)}x_\tau(\lambda^{t-1}) A_t^\tau(\lambda)\leq b_t(\lambda), τIna(t)xτAtτ(λ)+τIa(t)xτ(λt1)Atτ(λ)bt(λ),
t = 1 , … , T } t=1,\ldots,T\} t=1,,T}
其中 λ s = ( λ 1 , … , λ s ) \lambda^s=(\lambda_1,\ldots,\lambda_s) λs=(λ1,,λs) I n a ( t ) = I n a ∩ { 1 , … , t } , I a ( t ) = I a ∩ { 1 , … , t } I_{na}(t)=I_{na}\cap \{1,\ldots,t\},I_a(t)=I_{a}\cap\{1,\ldots,t\} Ina(t)=Ina{1,,t},Ia(t)=Ia{1,,t}.

ARC模型提供的额外灵活性被它通常在计算上难以处理(NP-hard)的事实所抵消。即使对于简单的不确定性集(例如,一般多面体集)也是如此。求解ARC模型的核心难点在于 x t a x_t^a xta与“历史” λ t − 1 \lambda^{t-1} λt1之间未知的的函数关系。为了克服这一困难,Ben-Tal等人(2004)建议通过将这些函数关系限制为仿射来近似ARC解。因此,将ARC模型中的每个可调变量 x t a x_t^a xta通过以下线性决策规则( linear decision rule,LDR)替换为:
x t a ( λ t − 1 ) = μ t 0 + ∑ τ = 1 t − 1 μ t τ λ τ x_t^a(\lambda^{t-1})=\mu _t^0+\sum_{\tau=1}^{t-1}\mu _t^\tau\lambda_\tau xta(λt1)=μt0+τ=1t1μtτλτ

其中系数 μ t τ \mu_t^\tau μtτ是新的决策变量。注意,只有当向量 λ t − 1 \lambda^{t-1} λt1在时期 t t t实现时,策略 x t a ( λ t − 1 ) x_t^a(\lambda^{t-1}) xta(λt1)的实际值才由上述LDR规则决定。于是通过上述的仿射变换,ARC模型通过仿射可调RC(AARC)模型进行近似:

E ∗ ∗ = min ⁡ x n a , E , μ s τ { E : ∀ λ ∈ Λ : ∑ τ ∈ I n a c τ ( λ ) x τ + ∑ τ ∈ I a c τ ( λ ) [ μ τ 0 + ∑ s = 1 τ − 1 μ τ s λ s ] ≤ E , E^{**}=\displaystyle\min_{x_{na},E,\mu_s^\tau}\{E:\forall\lambda \in\Lambda:\sum_{\tau \in I_{na}}c_\tau(\lambda)x_\tau+\sum_{\tau \in I_{a}}c_\tau(\lambda)[ \mu _\tau^0+\sum_{s=1}^{\tau-1}\mu _\tau^s\lambda_s]\leq E, E∗∗=xna,E,μsτmin{E:λΛ:τInacτ(λ)xτ+τIacτ(λ)[μτ0+s=1τ1μτsλs]E,
∑ τ ∈ I n a ( t ) x τ A t τ ( λ ) + ∑ τ ∈ I a ( t ) [ μ τ 0 + ∑ s = 1 τ − 1 μ τ s λ s ] A t τ ( λ ) ≤ b t ( λ ) , \sum_{\tau \in I_{na}(t)}x_\tau A_t^\tau(\lambda)+\sum_{\tau \in I_{a}(t)}[ \mu _\tau^0+\sum_{s=1}^{\tau-1}\mu _\tau^s\lambda_s] A_t^\tau(\lambda)\leq b_t(\lambda), τIna(t)xτAtτ(λ)+τIa(t)[μτ0+s=1τ1μτsλs]Atτ(λ)bt(λ),
t = 1 , … , T } . t=1,\ldots,T\}. t=1,,T}.

与LP RSFC问题对应的AARC模型

min ⁡ q t τ , x t + 1 τ , y t τ , u t τ , w t , z t , E E \displaystyle\min_{q_t^\tau,x_{t+1}^\tau,y_t^\tau,u_t^\tau,w_t,z_t,E}E qtτ,xt+1τ,ytτ,utτ,wt,zt,EminE
s . t . E ≥ ∑ t = 1 T [ c t q t 0 + y t 0 + u t 0 + z t + ∑ τ = 1 t − 1 [ c t q t τ + y t τ + u t τ ] d τ ] s.t. E\geq\sum_{t=1}^T\bigg[c_tq_t^0+y_t^0+u_t^0+z_t+\sum_{\tau=1}^{t-1}[c_tq_t^\tau+y_t^\tau+u_t^\tau]d_\tau\bigg] s.t.Et=1T[ctqt0+yt0+ut0+zt+τ=1t1[ctqtτ+ytτ+utτ]dτ]
∀ d ∈ u ℓ and ∀ t = 1 , … , T , \forall d\in u_{\ell} \text{and} \forall t=1,\ldots,T, duandt=1,,T,
( x ∗ ) x t + 1 0 ∑ τ = 1 t x t + 1 τ d τ = x t 0 + ∑ τ = 1 t − 1 x t τ d τ + q t 0 + ∑ τ = 1 t − 1 q t τ d τ − d t , (x^*) x_{t+1}^0\sum_{\tau=1}^tx_{t+1}^\tau d_\tau=x_t^0+\sum_{\tau=1}^{t-1}x_t^\tau d_\tau+q_t^0+\sum_{\tau=1}^{t-1}q_t^\tau d_\tau-d_t, (x)xt+10τ=1txt+1τdτ=xt0+τ=1t1xtτdτ+qt0+τ=1t1qtτdτdt,
y t 0 + ∑ τ = 1 t − 1 y t τ d τ ≥ h ‾ t [ x t + 1 0 + ∑ τ = 1 t − 1 x t + 1 τ d τ ] , ∀ d ∈ u b o x , y_t^0+\sum_{\tau=1}^{t-1}y_t^\tau d_\tau\geq \overline{h}_t[x_{t+1}^0+\sum_{\tau=1}^{t-1}x_{t+1}^\tau d_\tau],\forall d\in u_{box}, yt0+τ=1t1ytτdτht[xt+10+τ=1t1xt+1τdτ],dubox,
y t 0 + ∑ τ = 1 t − 1 y t τ d τ ≥ − p t [ x t + 1 0 + ∑ τ = 1 t − 1 x t + 1 τ d τ ] , ∀ d ∈ u b o x , y_t^0+\sum_{\tau=1}^{t-1}y_t^\tau d_\tau\geq -p_t[x_{t+1}^0+\sum_{\tau=1}^{t-1}x_{t+1}^\tau d_\tau],\forall d\in u_{box}, yt0+τ=1t1ytτdτpt[xt+10+τ=1t1xt+1τdτ],dubox,
u t 0 + ∑ τ = 1 t − 1 u t τ d τ ≥ α t + [ q t 0 + ∑ τ = 1 t − 1 q t τ d τ − w ] , ∀ d ∈ u b o x , u_t^0+\sum_{\tau=1}^{t-1}u_t^\tau d_\tau\geq\alpha_t^+[q_{t}^0+\sum_{\tau=1}^{t-1}q_{t}^\tau d_\tau-w_],\forall d\in u_{box}, ut0+τ=1t1utτdταt+[qt0+τ=1t1qtτdτw],dubox, > u t 0 + ∑ τ = 1 t − 1 u t τ d τ ≥ − α t − [ q t 0 + ∑ τ = 1 t − 1 q t τ d τ − w ] , ∀ d ∈ u b o x , u_t^0+\sum_{\tau=1}^{t-1}u_t^\tau d_\tau\geq-\alpha_t^-[q_{t}^0+\sum_{\tau=1}^{t-1}q_{t}^\tau d_\tau-w_],\forall d\in u_{box}, ut0+τ=1t1utτdταt[qt0+τ=1t1qtτdτw],dubox,
z t ≥ β t + ( w t − w t − 1 ) , z_t\geq\beta_t^+(w_t-w_{t-1}), ztβt+(wtwt1),
z t ≥ − β t − ( w t − w t − 1 ) , z_t\geq-\beta_t^-(w_t-w_{t-1}), ztβt(wtwt1),
L t ≤ q t 0 + ∑ τ = 1 t − 1 q t τ d τ ≤ U t , ∀ d ∈ u b o x , L_t\leq q_{t}^0+\sum_{\tau=1}^{t-1}q_{t}^\tau d_\tau\leq U_t,\forall d\in u_{box}, Ltqt0+τ=1t1qtτdτUt,dubox,
L ^ t ≤ ∑ τ = 1 t ( q τ 0 + ∑ θ = 1 τ − 1 q τ θ d θ ≤ U ^ t , ∀ d ∈ u b o x , \hat{L}_t\leq \sum_{\tau=1}^t\bigg(q_\tau^0+\sum_{\theta=1}^{\tau-1}q_\tau^\theta d_\theta\leq \hat{U}_t,\forall d\in u_{box}, L^tτ=1t(qτ0+θ=1τ1qτθdθU^t,dubox,
q t τ , ( t , τ ) ∈ J t . q_t^\tau,(t,\tau)\in J_t. qtτ,(t,τ)Jt.
该模型的具体推导详看原文的第二节和第三节。

优势

文章进行的分析表明,在AARC问题中的每一个半无限约束都可以等效地写成一组有限的线性约束或一个单一的二次约束。这些约束类型的问题被称为二次型(conic-quadratic,CQ)。众所周知,它们是多项式可解的(参见,例如,Ben-Tal和Nemirovski,2001),并且可以使用非常有效的算法(和软件,例如,MOSEK)来找到它们的解。特别地,如果所有的不确定性集都是类型为box(或者,更一般地,多面体集),则AARC是LP问题。

讨论

与其他方法一样,AARC 也有一定的局限性。
目前,其只适用于确定性线性多阶段有限周期的问题,并且只适用于不确定性是外生给定而非受内生决策变量影响的问题。例如,它不适用于今天选择的市场价格会影响明天需求的不确定性的多阶段定价问题。
AARC 方法使用最小目标函数,如果没有关于不确定参数概率分布的可靠知识,这种方法是合理的。否则,基于期望值、中位数等的目标函数可能更合适,并会导致政策不那么保守。不过,我们认为,即使在后一种情况下,如果决策者希望其所选政策在面对不确定性时的表现能得到有力的保证,也可以采用最小最大法。
最后,AARC 使用线性决策规则来获得近似解,因此无法保证最优解(通常不可能找到)接近线性决策规则。

参考文献

Ben-Tal, A., A. Goryashko, E. Guslitzer, A. Nemirovski. 2004.Adjusting robust solutions of uncertain linear programs. Math.Programming 99(2) 351–376.

Ben-Tal, A., A. Nemirovski. 2001. Lectures on Modern Convex Optimization: Analysis, Algorithms and Engineering Applications.SIAM-MPS Series in Optimization. SIAM, Philadelphia, PA.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot篇之集成Jedis、Lettuce、Redisson

目录 前言一、详解Jedis、Lettuce 和 Redisson的区别二、SpringBoot集成2.1 集成Jedis2.2 集成Lettuce2.3 集成Redisson 总结 前言 大家好&#xff0c;我是AK&#xff0c;最近在做新项目&#xff0c;基于旧项目框架修改&#xff0c;正好最近也在整理springboot相关知识&#x…

游戏中的随机——“动态平衡概率”算法

前言 众所周知计算机模拟的随机是伪随机&#xff0c;但在结果看来依然和现实中的随机差别不大。 例如掷硬币&#xff0c;连续掷很多很多次之后&#xff0c;总有连续七八十来次同一个面朝上的情况出现&#xff0c;计算机中一般的随机函数也能很好模拟这一点。 但在游戏中&…

使用ChatGPT和MindShow一分钟生成PPT模板

对于最近学校组织的实习答辩&#xff0c;由于时间太短了&#xff0c;而且小编也特别的忙&#xff0c;于是就用ChatGPT结合MindShow一分钟快速生成PPT&#xff0c;确实很实用。只要你跟着小编后面&#xff0c;你也可以快速制作出这个PPT&#xff0c;下面小编就来详细介绍一下&am…

C语言中的文件操作函数

C语言中的文件操作函数_c语言文件操作函数_点子李的博客-CSDN博客C语言文件操作_c语言文件操作函数https://blog.csdn.net/qq_53332052/article/details/128470575?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-1-128470575-blog-125…

Nginx - 反向代理与负载均衡

目录 一、Nginx 1.1、Nginx 下载 1.2、nginx 基础配置的认识 a&#xff09;第一部分&#xff1a;全局块 b&#xff09;第二部分&#xff1a;events 块 c&#xff09;第三部分&#xff1a;http 块 http 块中 内嵌的 server 块 1.3、一些常用配置 1.3.1、location 匹配级…

windows Vscode 连接 虚拟机,超详细,含免密免ip配置 以 linux 虚拟机为例

我们这里使用 ssh 进行连接&#xff0c;不了解 ssh 的也没关系&#xff0c;感兴趣的可以自己了解一下。 我的虚拟机是 Ubuntu20.04&#xff0c;如果出现与 Centos 不一样的操作可以自行替换。 &#xff08;应该不会有&#xff1f;&#xff1f;&#xff09; 一 . 登录虚拟机~&a…

2023年中国云计算软件市场规模、市场结构及市场份额情况分析[图]

云计算是分布式计算的一种&#xff0c;指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序&#xff0c;然后&#xff0c;通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算软件类型分为三类&#xff0c;即基础设施即服务、平台即服…

EMC Unity存储(VNXe) service Mode和Normal Mode的一些说明

本文介绍下EMC unity存储设备&#xff08;也包含VNXe存储设备&#xff09;的两种工作模式&#xff1a; Service mode&#xff1a;也叫做rescue mode&#xff0c;存储OS工作不正常或者有其他故障&#xff0c;就会进入这个模式&#xff0c;无法对外提供服务Normal mode&#xff…

深入JTS事务引擎:理论与实践相结合,掌握高效事务管理的秘诀

事务是可靠应用程序的构建块 如果您阅读过任何有关 J2EE 的介绍性文章或者书籍&#xff0c;那么就会发现&#xff0c;只有一小部分资料是专门针对 Java Transaction Service&#xff08;JTS&#xff09;或 Java Transaction API&#xff08;JTA&#xff09;的。这并不是因为 J…

基于SpringBoot的网上订餐系统

基于SpringBoot的网上订餐系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;用户、管理员管理员&#xff1a;登录、个人中心、会员管理、…

网络工程师--网络安全与应用案例分析

前言 需要网络安全学习资料的点击链接&#xff1a;【282G】网络安全&黑客技术零基础到进阶全套学习大礼包&#xff0c;免费分享&#xff01; 案例一&#xff1a; 某单位现有网络拓扑结构如下图所示&#xff0c;实现用户上网功能&#xff0c;该网络使用的网络交换机均为三…

边端小场景音视频流分发架构

备注&#xff1a;绿色线条&#xff0c;红色线条&#xff0c;蓝色线条&#xff0c;均是表示同一路流的不同的协议而已 1&#xff09;IPC本身的流媒体的能力有限&#xff0c;一般IPC支持的客户端数10~50个&#xff0c;媒体分发能力&#xff1a;10~20路&#xff0c;看设备品牌能力…

linux中搭建c语言环境并编译

安装gcc 安装 yum install gcc 检查 gcc --version 编译文件 1.编写test.c vim test.c #include <stdio.h>int main() {printf(" ***** \n");printf(" * o o * \n");printf("* ^ *\n");printf("* - *\n");printf…

小程序如何设置各种时间参数

在小程序管理员后台->基本设置处&#xff0c;可以设置各种时间。例如待支付提醒时间、待支付取消时间、自动发货时间、自动收货时间、自动评价时间等等。下面具体解释一下各个时间的意思。 1. 待支付提醒时间&#xff1a;在用户下单后&#xff0c;如果一段时间内没有完成支付…

RS485电路设计

引言 今天学习RS485电路的设计。 首先先来了解一下RS485电路是什么干什么。 RS485是一种串行通信协议&#xff0c;也是一种电气标准。它可以用于在远距离范围内传送数据&#xff0c;最长传输距离可以达到1200米&#xff0c;可以支持多个设备同时通信。RS485通常应用于工业自…

【漏洞复现】安全云平台存在任意文件下载getshell

漏洞描述 深圳市强鸿电子有限公司鸿运主动安全云平台存在任意文件下载漏洞,攻击者可通过此漏洞下载敏感文件信息。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权…

SQL 教程||SQL 简介

SQL 简介&#xff08;开个新坑&#xff09; SQL&#xff08;结构化查询语言&#xff09;是用于访问和操作数据库中的数据的标准数据库编程语言。 SQL是关系数据库系统的标准语言。所有关系数据库管理系统(RDMS)&#xff0c;如MySQL、MS Access、Oracle、Sybase、Informix、Po…

开源任务调度框架

本文主要介绍一下任务调度框架Flowjob的整体结构&#xff0c;以及整体的心路历程。 功能介绍 flowjob主要用于搭建统一的任务调度平台&#xff0c;方便各个业务方进行接入使用。 项目在设计的时候&#xff0c;考虑了扩展性、稳定性、伸缩性等相关问题&#xff0c;可以作为公司…

用超声波清洗机来洗眼镜好不好?眼镜超声波清洗机推荐

超声波清洗机不单单可以清洗眼镜了&#xff0c;已经衍生到可以清洗项链首饰化妆刷等物件了&#xff0c;要说利用超声波清洗机洗眼镜好不好的话其实毋庸置疑是不错的&#xff0c;毕竟现在眼镜店都会有一部超声波清洗机放在店里给顾客清洗&#xff0c;也是亲眼所见一副很久没清洗…

3.MySQL数据类型详解

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 1.数据类型分类 2.数值类型 (1).tinyint&#xff0c;smallint类型等 (2)bit类型 (3)小数类型 1).float 2).decimal 3.字符串类型 (1)char (2)varchar (3)char和varchar比较 (4)日期和时间类型 (5)enum和se…