凸優化理論學習三|凸優化問題(一)

系列文章目錄

凸優化理論學習一|最優化及凸集的基本概念
凸優化理論學習二|凸函數及其相關概念

文章目錄

  • 系列文章目錄
  • 一、優化問題
    • (一)標準形式的優化問題
    • (二)可行點和最優點
    • (三)局部最優點
    • (四)隱式和顯式約束
    • (五)可行性問題
  • 二、凸優化問題
    • (一)標準形式的凸優化問題
    • (二)局部最優與全局最優
    • (三)一些標準凸問題
      • 1、線性規劃 (LP)
      • 2、二次規劃 (QP)
      • 3、二次約束二次規劃 (QCQP)
      • 4、二階錐規劃(SOCP)
      • 4、凸椎形式問題
      • 5、半定規劃 (SDP)
      • 6、LP、SOCP與SDP


一、優化問題

(一)標準形式的優化問題

  • 優化目標:minimize f 0 ( x ) f_0(x) f0?(x)
  • 約束條件:
    • 非等式約束: f i ( x ) ≤ 0 , i = 1 , . . . , m f_i(x)\leq0,i=1,...,m fi?(x)0i=1,...,m
    • 等式約束: h i ( x ) = 0 , i = 1 , . . . , p h_i(x)=0,i=1,...,p hi?(x)=0i=1,...,p

(二)可行點和最優點

  • 如果 x ∈ d o m f 0 x ∈ dom f_0 xdomf0? 并且滿足約束條件,則 x ∈ R n x ∈ R_n xRn? 是可行的
  • 最優值 p ? = i n f { f 0 ( x ) ∣ f i ( x ) ≤ 0 , i = 1 , . . . , m , h i ( x ) = 0 , i = 1 , . . . , p } p^{*}=inf\{f_0(x)|f_i(x)\leq 0,i=1,...,m,h_i(x)=0,i=1,...,p\} p?=inf{f0?(x)fi?(x)0,i=1,...,m,hi?(x)=0,i=1,...,p}
  • 如果問題不可行,則 p ? = ∞ p^{*}=∞ p?=
  • 如果問題無下界,則 p ? = ? ∞ p^{*}=-∞ p?=?
  • 如果 f 0 ( x ) = p ? f_0(x)=p^{*} f0?(x)=p?,則可行點 x x x是最優點
  • X o p t X_{opt} Xopt?是最優點的集合

(三)局部最優點

如果存在 R > 0 R > 0 R>0 使得 x 在以下情況下是最優的:

  • m i n i m i z e ( o v e r z ) f 0 ( z ) minimize\ (over\ z)\ \ f_0(z) minimize?(over?z)??f0?(z)
  • s u b j e c t t o subject\ to subject?to
    • f i ( z ) ≤ 0 , i = 1 , . . . , m f_i(z)\leq 0,i=1,...,m fi?(z)0,i=1,...,m
    • h i ( z ) = 0 , i = 1 , . . . , p h_i(z)=0,i=1,...,p hi?(z)=0,i=1,...,p
    • ∣ ∣ z ? x ∣ ∣ 2 ≤ R ||z-x||_2\leq R ∣∣z?x2?R

那么 x x x即為局部最優點。
在這里插入圖片描述

(四)隱式和顯式約束

  • 顯式約束:
    • 非等式約束: f i ( x ) ≤ 0 , i = 1 , . . . , m f_i(x)\leq0,i=1,...,m fi?(x)0i=1,...,m
    • 等式約束: h i ( x ) = 0 , i = 1 , . . . , p h_i(x)=0,i=1,...,p hi?(x)=0i=1,...,p
    • 如果 m = p = 0 m=p=0 m=p=0,即沒有約束,此時問題為無約束問題
  • 標準形式優化問題具有隱式約束
    x ∈ D = ? i = 0 m d o m f i ∩ ? i = 1 p d o m h i x\in D=?^m_{i=0}domf_i∩?^p_{i=1}domh_i xD=i=0?m?domfi?i=1?p?domhi?

(五)可行性問題

如果目標函數恒等于零,那么其最優解要么是零(如果可行集非空),要么是∞(如果可行集是空集)。我們稱其為可行性問題:

  • 目標:0
  • 約束條件:
    • f i ( x ) ≤ 0 , i = 1 , . . . , m f_i(x)\leq 0,i=1,...,m fi?(x)0,i=1,...,m
    • h i ( x ) = 0 , i = 1 , . . . , p h_i(x)=0,i=1,...,p hi?(x)=0,i=1,...,p

二、凸優化問題

(一)標準形式的凸優化問題

  • 目標:最小化 f 0 ( x ) f_0(x) f0?(x)
  • 約束條件:
    • f i ( x ) ≤ 0 , i = 1 , . . . , m f_i(x)\leq 0,i=1,...,m fi?(x)0,i=1,...,m
    • a i T x = b i , i = 1 , . . . , p a_i^Tx=b_i,i=1,...,p aiT?x=bi?,i=1,...,p

其中:目標和不等式約束 f 0 , f 1 , . . . , f m f_0, f_1, ..., f_m f0?,f1?,...,fm?是凸的;等式約束是仿射的,通常寫為 A x = b Ax = b Ax=b;凸優化問題的可行集和最優集是凸的;如果 f 0 f_0 f0? 是擬凸的, f 1 , . . . , f m f_1, ..., f_m f1?,...,fm? 是凸的, h 1 , . . . , h p h_1, ..., h_p h1?,...,hp? 是仿射的,則問題是擬凸的。

考慮一個標準形式問題的例子:

  • 目標:最小化 f 0 ( x ) = x 1 2 + x 2 2 f_0(x)=x_1^2+x_2^2 f0?(x)=x12?+x22?
  • 約束條件:
    • f 1 ( x ) = x 1 ( 1 + x 2 2 ) ≤ 0 f_1(x)=\frac{x_1}{(1+x_2^2)}\leq 0 f1?(x)=(1+x22?)x1??0
    • h 1 ( x ) = ( x 1 + x 2 ) 2 = 0 h_1(x)=(x_1+x_2)^2=0 h1?(x)=(x1?+x2?)2=0

易知目標函數 f 0 f_0 f0?是凸的,并且可行集 { ( x 1 , x 2 ) ∣ x 1 = ? x 2 ≤ 0 } \{(x_1,x_2)|x_1=-x_2\leq0\} {(x1?,x2?)x1?=?x2?0}也是凸的;但是約束條件 f 1 f_1 f1?不是凸的, h 1 h_1 h1?不是仿射的,因此它不是一個凸問題。這個問題可以等價為以下凸問題:

  • 目標:最小化 x 1 2 + x 2 2 x_1^2+x_2^2 x12?+x22?
  • 約束條件:
    • x 1 ≤ 0 x_1\leq 0 x1?0
    • x 1 + x 2 = 0 x_1+x_2=0 x1?+x2?=0

(二)局部最優與全局最優

凸問題的任何局部最優點都是(全局)最優的
在這里插入圖片描述
可微分 f 0 f_0 f0? 的最優性準則:

對于凸問題,點 x x x是最優解的一個充分必要條件:

  • x x x是可行解,即 x x x屬于可行集合 X X X
  • 對于任何可行點 y y y,都滿足梯度條件: ? 2 f 0 ( x ) T ( y ? x ) ≥ 0 ?^2f_0(x)^T(y-x)\geq 0 ?2f0?(x)T(y?x)0

這個條件表明,如果 x x x 是最優解,那么任何與之可行的點 y y y 的方向上的梯度內積都是非負的。這實際上是凸問題最優解的一個重要性質,稱為一階條件。這種條件確保了最優解的局部性質,即在最優解附近,目標函數不會在可行方向上下降。另一方面,如果 x x x 滿足這個條件,那么根據凸優化的性質,它意味著 x x x 是最優解。這個條件表明,如果梯度與任何可行方向的變化都是非負的,那么該點是全局最優解的候選者。
在這里插入圖片描述

如果梯度 ? f 0 ( x ) ?f_0(x) ?f0?(x) 在點 x x x 處非零,則它確實定義了可行集 X X X 在點 x x x 處的一個支撐超平面。

應用舉例:

  • 無約束問題: x x x 最小化 f 0 ( x ) f_0 (x) f0?(x) 當且僅當 ? f 0 ( x ) = 0 ?f_0 (x) = 0 ?f0?(x)=0
  • 等式約束問題: x x x 最小化 f 0 ( x ) f_0 (x) f0?(x) 且滿足 A x = b Ax = b Ax=b 當且僅當存在 v v v使得:
    A x = b , ? f 0 ( x ) + A T v = 0 Ax=b,\ ?f_0 (x)+A^Tv=0 Ax=b,??f0?(x)+ATv=0
  • 非負正交坐標系上的的最小化問題: x x x 最小化 R + n R^n_+ R+n? 上的 f 0 ( x ) f_0 (x) f0?(x) 當且僅當:
    • x x x的所有分量非負: x ≥ 0 x\geq 0 x0
    • 對于所有的分量 i i i,如果 x i = 0 x_i=0 xi?=0,則其對應的梯度分量 ? f 0 ( x ) i ?f_0 (x)_i ?f0?(x)i?非負
    • 對于所有的分量 i i i,如果 x i > 0 x_i>0 xi?>0,則其對應的梯度分量 ? f 0 ( x ) i ?f_0 (x)_i ?f0?(x)i?等于0

(三)一些標準凸問題

1、線性規劃 (LP)

線性規劃(LP)是一種特殊形式的凸優化問題,其目標函數和約束函數都是仿射的,可行集是多面體(即由線性不等式和等式構成的凸多面體)。這使得線性規劃問題具有一些特殊的性質和解決方法。

  • 目標函數:最小化 c T x + d c^Tx+d cTx+d
  • 約束條件: G x ≤ h Gx\leq h Gxh A x = b Ax=b Ax=b
    在這里插入圖片描述

飲食問題:
在這里插入圖片描述

分段線性最小化問題可以轉化為線性規劃(LP)問題
在這里插入圖片描述>等價的線性規劃問題即為:

  • 目標函數:最小化t
  • 約束條件: a i T x + b i ≤ t , i = 1 , . . . , m a^T_ix+b_i\leq t,i=1,...,m aiT?x+bi?t,i=1,...,m x ∈ R n , t ∈ R x\in R^n,t\in R xRn,tR

這個線性規劃問題的變量包括 x x x t t t,約束條件描述了函數 f 0 ( x ) f_0 (x) f0?(x) 的上確界(epigraph)。通過將凸分段線性函數轉化為等價的線性規劃問題,我們可以使用線性規劃算法來求解原始的凸分段線性函數最小化問題。

多面體的切比雪夫中心:
Chebyshev center x c h e b x_{cheb} xcheb?是多面體 P P P 的中心,即它是一個點,使得對于多面體 P P P 中的每個點 x x x,從 x c h e b x_{ cheb} xcheb??到 x x x 的歐幾里得距離小于或等于到 P P P 的邊界的最大距離。這等價于說,Chebyshev center 是可以包容在 P P P 內的最大球的中心。中心 x c h e b x_{ cheb} xcheb?和球的半徑 r r r可以通過以下方式找到:

  • 對于每個約束 a i T x ≤ b i a_i^Tx\leq b_i aiT?xbi?,要求在球 B B B內部找到與約束最靠近的點,即對于每個 i i i,找到最大化 a i T ( x c h e b + u ) a_i^T(x_{cheb}+u) aiT?(xcheb?+u) u u u,其中 ∣ ∣ u ∣ ∣ 2 ≤ r ||u||_2\leq r ∣∣u2?r,這相當于在球內找到一個與約束最接近的邊界點
  • 找到這些最近的點的最小值,即最大化 r r r,同時滿足所有約束。這等價于最大化球的半徑,使得球包含在多面體P中。

用線性規劃表示為:

  • 最大化 r r r
  • 約束條件: a i T x c h e b + r ∣ ∣ a i ∣ ∣ 2 ≤ b i , i = 1 , . . . , m a_i^Tx_{cheb}+r||a_i||_2\leq b_i,i=1,...,m aiT?xcheb?+r∣∣ai?2?bi?,i=1,...,m
    在這里插入圖片描述

2、二次規劃 (QP)

二次規劃(Quadratic Programming,簡稱QP)是一種優化問題,其目標是最小化或最大化一個二次型目標函數,其變量受到一組線性等式和不等式約束的限制。通常的形式如下:

  • 目標函數:最小化 ( 1 / 2 ) x T P x + q T x + r (1/2)x^TPx+q^Tx+r (1/2)xTPx+qTx+r
  • 約束條件: G x ≤ h Gx\leq h Gxh A x = b Ax=b Ax=b

其中, P P P是對稱正定矩陣
在這里插入圖片描述

最小二乘法:

  • 目標函數:最小化 ‖ A x ? b ‖ 2 ‖Ax ? b‖_2 Ax?b2?
  • 解析解: x ? = A ? b x^* = A?b x?=A?b A ? A? A? 是偽逆)
  • 可以添加線性約束,例如:
    • x > 0 x> 0 x>0(非負最小二乘法)
    • x 1 ≤ x 2 ≤ . . . ≤ x n x_1\leq x_2\leq ... \leq x_n x1?x2?...xn?(等滲回歸)

具有隨機成本的線性規劃:

  • 目標函數:最小化 c ˉ T x + γ x T Σ x \bar{c}^Tx+\gamma x^T\Sigma x cˉTx+γxTΣx
  • 約束條件: G x ≤ h , A x = b Gx\leq h,Ax=b Gxh,Ax=b

其中, c c c是隨機成本, γ > 0 \gamma > 0 γ>0 為風險厭惡參數,控制預期成本和方差(風險)之間的權衡

3、二次約束二次規劃 (QCQP)

二次約束二次規劃(Quadratically Constrained Quadratic Programming,QCQP)問題是在二次目標函數下,滿足一組二次不等式約束條件。通常的形式如下:

  • 目標函數:最小化 ( 1 / 2 ) x T P 0 x + q 0 T x + r 0 (1/2)x^TP_0x+q_0^Tx+r_0 (1/2)xTP0?x+q0T?x+r0?
  • 約束條件: ( 1 / 2 ) x T P i x + q i T x + r i , i = 1 , . . . , m (1/2)x^TP_ix+q_i^Tx+r_i,i=1,...,m (1/2)xTPi?x+qiT?x+ri?,i=1,...,m A x = b Ax=b Ax=b

其中, P P P是對稱正定矩陣,目標和約束是凸二次的;如果 P 1 , . . . , P m ∈ S n + + P_1,..., P_m ∈ S_n^++ P1?,...,Pm?Sn+?+,可行域是 m 個橢球與仿射集的交集。

4、二階錐規劃(SOCP)

Second-Order Cone Programming (SOCP)是一類凸優化問題,它涉及到二階錐約束,通常具有以下形式:

  • 目標函數:最小化 f T x f^Tx fTx
  • 約束條件: ∣ ∣ A i x + b i ∣ ∣ 2 ≤ c i T x + d i , i = 1 , . . . , m ||A_ix+b_i||_2\leq c_i^Tx+d_i,i=1,...,m ∣∣Ai?x+bi?2?ciT?x+di?,i=1,...,m F x = g Fx=g Fx=g

其中,不等式約束又叫二階錐約束(SOC): ( A i x + b i , c i T x + d i ) ∈ s e c o n d ? o r d e r c o n e i n R n i + 1 (A_ix+b_i,c_i^Tx+d_i)\in second-order\ cone\ in\ R^{n_i+1} (Ai?x+bi?,ciT?x+di?)second?order?cone?in?Rni?+1。如果 n i = 0 n_i=0 ni?=0,二階錐規劃就會退為線性規劃,如果 c i = 0 c_i=0 ci?=0,二階錐規劃退為二次約束二次規劃 (QCQP)。

魯棒線性規劃問題: 假設約束向量 a i a_i ai?是不確定的情況,也就是說魯棒線性規劃(Robust Linear Programming)涉及到在不確定條件下尋找最優解。

  • 目標函數:最小化 c T x c^Tx cTx
  • 約束條件: a i T x ≤ b i , i = 1 , . . . , m a_i^Tx\leq b_i,i=1,...,m aiT?xbi?,i=1,...,m

對于這種不確定性,常見的處理方式有確定性最壞情況方法和隨機方法兩種。

確定性最壞情況方法:約束必須適用于所有 a i ∈ E i a_i ∈ E_i ai?Ei?(不確定性橢球)

  • 確定性最壞情況方法的基本形式:
    • 目標函數:最小化 c T x c^Tx cTx
    • 約束條件: a i T x ≤ b i f o r a l l a i ∈ E i , i = 1 , . . . , m a_i^Tx\leq b_i\ for\ all\ a_i\in E_i,i=1,...,m aiT?xbi??for?all?ai?Ei?,i=1,...,m
  • 確定性最壞情況方法的原理:不確定性橢球形式為 E i = { a ˉ i + P i u ∣ ∣ ∣ u ∣ ∣ 2 ≤ 1 } E_i=\{\bar{a}_i+P_iu|\ ||u||_2\leq 1\} Ei?={aˉi?+Pi?u?∣∣u2?1},其中 a ˉ i ∈ R \bar{a}_i\in R aˉi?R是中心, P i ∈ R n × n P_i\in R^{n\times n} Pi?Rn×n是決定半軸的奇異值/奇異向量。最終可以等價于以下形式的二階錐規劃問題:
    • 目標函數:最小化 c T x c^Tx cTx
    • 約束條件: a ˉ i T x + ∣ ∣ P T i x ∣ ∣ 2 2 ≤ b i , i = 1 , . . . , m \bar{a}_i^Tx+||PT_ix||^2_2\leq b_i,i=1,...,m aˉiT?x+∣∣PTi?x22?bi?,i=1,...,m

隨機方法:把 a i a_i ai?看成一個隨機變量,約束必須以一定的概率 η \eta η成立

  • 隨機方法的基本形式
    • 目標函數:最小化 c T x c^Tx cTx
    • 約束條件: p r o b ( a i T x ≤ b i ) ≥ η , i = 1 , . . . , m prob(a_i^Tx\leq b_i)\geq \eta,i=1,...,m prob(aiT?xbi?)η,i=1,...,m
  • 隨機方法的基本原理:假設 a i ~ N ( a ˉ i , Σ i ) a_i\sim N(\bar{a}_i,\Sigma_i) ai?N(aˉi?,Σi?),所以 a i T x ~ N ( a ˉ i T x , x T Σ i x ) a_i^Tx\sim N(\bar{a}_i^Tx,x^T\Sigma_ix) aiT?xN(aˉiT?x,xTΣi?x) p r o b ( a i T x ≤ b i ) = Φ ( b i ? a ˉ i T x ∣ ∣ Σ i 1 / 2 x ∣ ∣ 2 ) prob(a_i^Tx\leq b_i)=\Phi(\frac{b_i-\bar{a}_i^Tx}{||\Sigma_i^{1/2}x||_2}) prob(aiT?xbi?)=Φ(∣∣Σi1/2?x2?bi??aˉiT?x?) p r o b ( a i T x ≤ b i ) ≥ η prob(a_i^Tx\leq b_i)\geq \eta prob(aiT?xbi?)η可以被表示 a ˉ i T x + Φ ? 1 ( η ) ∣ ∣ Σ i 1 / 2 x ∣ ∣ 2 ≤ b i \bar{a}_i^Tx+\Phi^{-1}(\eta)||\Sigma_i^{1/2}x||_2\leq b_i aˉiT?x+Φ?1(η)∣∣Σi1/2?x2?bi?。當 η > 1 / 2 \eta > 1/2 η>1/2時,可以等價于以下形式的二階錐規劃問題:
    • 目標函數:最小化 c T x c^Tx cTx
    • 約束條件: a ˉ i T x + Φ ? 1 ( η ) ∣ ∣ Σ i 1 / 2 x ∣ ∣ 2 ≤ b i , i = 1 , . . . , m \bar{a}_i^Tx+\Phi^{-1}(\eta)||\Sigma^{1/2}_ix||_2\leq b_i,i=1,...,m aˉiT?x+Φ?1(η)∣∣Σi1/2?x2?bi?,i=1,...,m

4、凸椎形式問題

在凸優化中,凸錐形式的問題是一種重要的形式,涉及到優化目標函數以及約束條件均為凸錐函數或凸錐集。具體而言,考慮以下凸錐形式的問題:

  • 目標函數: 最小化 最小化 最小化c^Tx$
  • 約束條件: F x + g ≤ K 0 Fx+g\leq_K 0 Fx+gK?0 A x = b Ax=b Ax=b

其中, K K K表示一個凸椎,通常是一個封閉的凸椎

5、半定規劃 (SDP)

半定規劃(Semidefinite Programming,SDP)是一類重要的凸優化問題,它涉及到優化一個線性函數,其變量是對稱半正定矩陣。半定規劃的一般形式如下:

  • 目標函數:最小化 c T x c^Tx cTx
  • 約束條件: x 1 F 1 + x 2 F 2 + . . . + x n F n + G ≤ 0 x_1F_1+x_2F_2+...+x_nF_n+G\leq 0 x1?F1?+x2?F2?+...+xn?Fn?+G0 A x = b Ax=b Ax=b

其中, F F F G G G為對稱矩陣( F i , G ∈ S k F_i,G\in S^k Fi?,GSk),不等式約束稱為線性矩陣不等式(LMI)。

示例:矩陣范數最小化
在這里插入圖片描述

6、LP、SOCP與SDP

LP 和等效的 SDP:
在這里插入圖片描述SOCP 和等效的 SDP:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12293.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Python編程從入門到實踐》day28

# 昨日知識點回顧 安裝Matplotlib 繪制簡單的折線圖 # 今日知識點學習 15.2.1 修改標簽文字和線條粗細 # module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? # 解決辦法:matplotlib切換圖形界面顯示終端TkAgg。 #…

使用Three.js繪制快速而逼真的水

本文將利用GPUComputationRenderer來實現水波紋的繪制,相似的案例可以看threejs官方的GPGPU Water示例。更多精彩內容盡在數字孿生平臺。 什么是 GPGPU GPGPU代表通用圖形處理單元(General-Purpose Graphic Processing Unit),意思…

1146 -Table ‘performance schema.session variables‘ doesn‘t exist的錯誤解決

一、問題出現 今天在本地連數據庫的時候,發現這個問題,哎呦我擦,差點嚇死了 二、解決辦法 1)找文件 用everything搜一下MySQL Server 5.7 然后去Windows服務找一下MySQL配置文件的具體路徑 如果知道那最好,不知道那…

寶塔8.1.0去除綁定用戶

非要綁定手機號,確實很煩 1,/www/server/panel/BTPanel __init__.py if not public.is_bind():return redirect(/bind, 302) 將is_bind的路由全部注釋 2,/www/server/panel/class下 panelPlugin.py 注釋異常, 新增 softLis…

SSL協議

SSL 安全傳輸協議(安全套接層) 也叫TLS ---- 傳輸層安全協議 SSL的工作原理:SSL協議因為是基于TCP協議工作的,通信雙方需要先建立TCP會話。因為SSL協議需要進行安全保證,需要協商安全參數,所以也需要建立…

【MySQL】7.MySQL性能優化的六大核心策略

數據庫的性能對整個應用的響應速度和用戶體驗起著至關重要的作用。MySQL,作為廣泛使用的開源關系型數據庫,提供了豐富的性能優化手段。從資源優化、查詢優化到結構、配置、代碼乃至架構優化,每一個層面的調整都可能帶來性能的飛躍。本文將深入…

springboot房屋租賃系統

摘要 房屋租賃系統;為用戶提供了一個房屋租賃系統平臺,方便管理員查看及維護,并且可以通過需求進行設備信息內容的編輯及維護等;對于用戶而言,可以隨時進行查看房屋信息和合同信息,并且可以進行報修、評價…

清理緩存簡單功能實現

在程序開發中,經常會用到緩存,最常用的后端緩存技術有Redis、MongoDB、Memcache等。 而有時候我們希望能夠手動清理緩存,點一下按鈕就把當前Redis的緩存和前端緩存都清空。 功能非常簡單,創建一個控制器類CacheController&#xf…

SpringBoot PowerMockito 私有/靜態/方法/屬性

SpringBoot PowerMockito 私有/靜態/方法/屬性 1 PrepareForTest2 待測試類3 測試類 1 PrepareForTest PrepareForTest 是 PowerMockito 提供的一個注解,用于告訴 PowerMockito 哪些類需要被修改以允許使用 PowerMockito 的功能。 PowerMockito 主要用于修改 Java…

【計算機畢業設計】基于SSM+Vue的線上旅行信息管理系統【源碼+lw+部署文檔+講解】

目錄 1 緒論 1.1 研究背景 1.2 設計原則 1.3 論文組織結構 2 系統關鍵技術 2.1JSP技術 2.2 JAVA技術 2.3 B/S結構 2.4 MYSQL數據庫 3 系統分析 3.1 可行性分析 3.1.1 技術可行性 3.1.2 操作可行性 3.1.3 經濟可行性 3.1.4 法律可行性 3.2系統功能分析 3.2.1管理員功能分析 3.2.…

JavaScript精粹(一)

JavaScript(簡稱為JS)是一種廣泛應用于網頁開發的腳本語言,具有以下幾個主要作用: 網頁交互:JavaScript 可以用于創建動態的網頁效果,例如響應用戶的操作,實現頁面內容的動態更新,以…

Java SE vs Java EE:深入剖析及面試指南

Java 平臺提供了多個版本來滿足不同應用場景的需求,其中最常用的是 Java SE(Standard Edition)和 Java EE(Enterprise Edition)。理解這兩個版本的區別對于任何 Java 開發者都是至關重要的,尤其是在面試過程…

C++字符串細節,面試題06

文章目錄 22. 字符串22.1. 字符數組 vs 字符指針 vs 常量字符指針 vs string22.2. strcpy vs sprintf vs memcpy22.3. strlen vs length vs size vs sizeof22.4. 字符串之間的轉換22.5 其他數據類型與字符串之間的轉換22.6 字符串分割 22. 字符串 22.1. 字符數組 vs 字符指針 …

Spring整合其他技術

文章目錄 Spring整合mybatis思路分析Mybatis程序核心對象分析整合Mybatis 代碼實現 Spring整合Junit修改成警告 Spring整合mybatis 思路分析 Mybatis程序核心對象分析 上面圖片是mybatis的代碼,上述有三個對象,分別是sqlSessionFactory,sqlS…

Linux:配置客戶端自定義autofs服務

Linux:配置客戶端自定義autofs服務 修改autofs的主策略文件 [rootserver200 data]# vim /etc/auto.master# 修改內容如下 /misc /etc/auto.misc # 掛載目錄的上級目錄 /mnt /etc/auto.timinglee --timeout3修改autofs的自定義策略文件 [rootserver200 data]…

數據庫SQL編寫規范-SQL書寫規范整理(SQL語句書寫規范全解-Word原件)

編寫本文檔的目的是保證在開發過程中產出高效、格式統一、易閱讀、易維護的SQL代碼。 1 編寫目 2 SQL書寫規范 3 SQL編寫原則 軟件全套精華資料包清單部分文件列表: 工作安排任務書,可行性分析報告,立項申請審批表,產品需求規格說…

鴻蒙布局Column/Row/Stack

鴻蒙布局Column/Row/Stack 簡介我們以Column為例進行講解1. Column({space: 10}) 這里的space: 10,表示Column里面每個元素之間的間距為102. width(100%),height(100%) 表示寬高占比3. backgroundColor(0xffeeeeee) 設置背景顏色4. padding({top: 50}) 設…

【ARM 嵌入式 C 文件操作系列 20.4 -- 打印 uint64_t 類型的數值】

文章目錄 C代碼中 打印 uint64_t 類型的數值測試效果 C代碼中 打印 uint64_t 類型的數值 為了以16進制方式打印uint64_t類型的數值&#xff0c;可以使用printf函數&#xff0c;配合<inttypes.h>頭文件中定義的宏PRIX64或PRIx64。這些宏確保了無論在哪個平臺上&#xff0…

keepalived雙機熱備超詳細入門介紹

keepalived 一、keepalived入門介紹 1.keepalived簡介 2.keepalived服務的三個重要功能 2.1.管理LVS負載均衡軟件 2.2.實現對LVS集群節點健康檢查功能 2.3.作為系統網絡服務的高可用功能 3.keepalived高可用故障切換轉移原理 4.keepalived安裝及主配置文件介紹 …

如何用Rust獲取本機CPU、內存在Web網頁中顯示?

目錄 一、需求描述 二、具體操作步驟 三、知識點 1、systemstat 2、Actix 一、需求描述 需求&#xff1a; 1、需要使用Rust進行后端開發獲取本機CPU和內存信息&#xff1b; 2、使用WEB框架發布API&#xff1b; 3、然后使用HTML/CSS/JavaScript進行前端開發&#xff0…