数值优化基础

凸集 Convex Sets

凸集的定义

令X是线性空间。如果对于X的子集S中的所有x和y,并且在区间 [0,1]中的所有t,点 ( 1 − t ) x + t y (1-t)x + ty (1−t)x+ty也属于S,则S称为凸集。
不失一般性,对于所有的凸集,其线性组合点都位于凸集内部:
∑ θ i x i ∈ X ∑ θ i = 1 , θ i ≥ 0 , ∀ θ i \sum \theta_{i} x_{i} \in X \\ \sum \theta_i = 1, \theta_i \geq 0, \forall \theta_i ∑θi​xi​∈X∑θi​=1,θi​≥0,∀θi​

凸集的性质

  • 任意凸集之交为凸集。
  • X的子空间为凸集。若S为凸集,则对X中任何x,x+S亦为凸集。
  • 如果除了端点之外的连接x和y的线段上的每个点都在C的内部,则C是严格凸起的。
  • 凸集相加为凸集
    A + B = { x + y ∣ x ∈ A , y ∈ B } A+B=\{x+y \mid x \in A, y \in B\} A+B={x+y∣x∈A,y∈B}
  • 凸集相乘为凸集
    A × B = { x × y ∣ x ∈ A , y ∈ B } A \times B=\{x \times y \mid x \in A, y \in B\} A×B={x×y∣x∈A,y∈B}
  • 凸集相交不为凸集

High-Order Info of Functions

Functions f ( x ) = f ( x 1 , x 2 , x 3 ) f(x)=f\left(x_1, x_2, x_3\right) f(x)=f(x1​,x2​,x3​)

Gradient ∇ f ( x ) = ( ∂ 1 f ( x ) ∂ 2 f ( x ) ∂ 3 f ( x ) ) \nabla f(x)=\left(\begin{array}{l}\partial_1 f(x) \\ \partial_2 f(x) \\ \partial_3 f(x)\end{array}\right) ∇f(x)= ​∂1​f(x)∂2​f(x)∂3​f(x)​ ​

Hessian ∇ 2 f ( x ) = ( ∂ 1 2 f ( x ) ∂ 1 ∂ 2 f ( x ) ∂ 1 ∂ 3 f ( x ) ∂ 2 ∂ 1 f ( x ) ∂ 2 2 f ( x ) ∂ 2 ∂ 3 f ( x ) ∂ 3 ∂ 1 f ( x ) ∂ 3 ∂ 2 f ( x ) ∂ 3 2 f ( x ) ) \nabla^2 f(x)=\left(\begin{array}{ccc}\partial_1^2 f(x) & \partial_1 \partial_2 f(x) & \partial_1 \partial_3 f(x) \\ \partial_2 \partial_1 f(x) & \partial_2^2 f(x) & \partial_2 \partial_3 f(x) \\ \partial_3 \partial_1 f(x) & \partial_3 \partial_2 f(x) & \partial_3^2 f(x)\end{array}\right) ∇2f(x)= ​∂12​f(x)∂2​∂1​f(x)∂3​∂1​f(x)​∂1​∂2​f(x)∂22​f(x)∂3​∂2​f(x)​∂1​∂3​f(x)∂2​∂3​f(x)∂32​f(x)​ ​

在0点处的近似:泰勒展开
f ( x ) = f ( 0 ) + x T ∇ f ( 0 ) + 1 2 x T ∇ 2 f ( 0 ) x + O ( ∥ x − x 0 ∥ 3 ) \quad f(x)=f(0)+x^T \nabla f(0)+\frac{1}{2} x^T \nabla^2 f(0) x+O\left(\left\|x-x_0\right\|^3\right) f(x)=f(0)+xT∇f(0)+21​xT∇2f(0)x+O(∥x−x0​∥3)
现在拓展概念,设将 f ( x ) f(x) f(x)为维度从n维到m维的映射,即 f ( x ) : R n → R m f(x): \mathbb{R}^n \rightarrow \mathbb{R}^m f(x):Rn→Rm,则有Jacobian矩阵

矩阵和向量微分规则与表格

一些有用的性质

d A = 0 d ( α X ) = α ( d X ) d ( A X B ) = A ( d X ) B d ( X + Y ) = d X + d Y d ( X T ) = ( d X ) T d ( X Y ) = ( d X ) Y + X ( d Y ) d < X , Y > = < d X , Y > + < X , d Y > d ( X ϕ ) = ϕ d X − ( d ϕ ) X ϕ 2 d t r X = I d f ( g ( x ) ) = f g d ˙ g ( x ) dA = 0\\ d(\alpha X) = \alpha (dX)\\ d(AXB) = A(dX)B\\ d(X+Y) = dX + dY\\ d(X^T) = (dX)^T\\ d(XY) = (dX)Y + X(dY)\\ d<X,Y> = <dX,Y> + <X,dY>\\ d(\frac{X}{\phi}) = \frac{\phi dX - (d\phi)X}{\phi^2}\\ dtrX = I\\ df(g(x)) = \frac{f}{g} \dot dg(x) dA=0d(αX)=α(dX)d(AXB)=A(dX)Bd(X+Y)=dX+dYd(XT)=(dX)Td(XY)=(dX)Y+X(dY)d<X,Y>=<dX,Y>+<X,dY>d(ϕX​)=ϕ2ϕdX−(dϕ)X​dtrX=Idf(g(x))=gf​d˙g(x)
规则可以参考wikipedia网站MATRIX CALCULUS

凸函数的性质 Convex Functions

Jensen不等式

凸函数满足Jensen不等式,如下所示
f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta) y) \leq \theta f(x)+(1-\theta) f(y) f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)


一阶条件 First-order conditions

f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) f(y) \geq f(x)+\nabla f(x)^T(y-x) f(y)≥f(x)+∇f(x)T(y−x)
当 ∇ f ( x ) T = 0 \nabla f(x)^T=0 ∇f(x)T=0时,有 f ( y ) ≥ f ( x ) f(y) \geq f(x) f(y)≥f(x)

二阶条件 Second-order conditions

一个光滑函数为凸函数,当且仅当
∇ 2 f ( x ) ⪰ 0 , ∀ x \nabla^2 f(x) \succeq 0, \forall x ∇2f(x)⪰0,∀x
即函数的二阶导数半正定
对于非凸函数,局部最小值满足
∇ 2 f ( x ∗ ) ⪰ 0 , \nabla^2 f(x^*) \succeq 0, ∇2f(x∗)⪰0,

强凸性 strong convexity

f ( y ) ≥ f ( x ) + ( y − x ) T ∇ f ( x ) + m 2 ∥ y − x ∥ 2 f(y) \geq f(x)+(y-x)^T \nabla f(x)+\frac{m}{2}\|y-x\|^2 f(y)≥f(x)+(y−x)T∇f(x)+2m​∥y−x∥2
式中前两部分对所有凸函数适用,第三部分也就是最后一部分为min curvature
当 f ( x ) f(x) f(x)有Hessian阵时,有
f ( y ) ≈ f ( x ) + ( y − x ) T ∇ f ( x ) + 1 2 ( y − x ) T ∇ 2 f ( x ) ( y − x ) ≥ f ( x ) + ( y − x ) T ∇ f ( x ) + λ min ⁡ 2 ∥ y − x ∥ 2 \begin{aligned} f(y) & \approx f(x)+(y-x)^T \nabla f(x)+\frac{1}{2}(y-x)^T \nabla^2 f(x)(y-x) \\ & \geq f(x)+(y-x)^T \nabla f(x)+\frac{\lambda_{\min }}{2}\|y-x\|^2 \end{aligned} f(y)​≈f(x)+(y−x)T∇f(x)+21​(y−x)T∇2f(x)(y−x)≥f(x)+(y−x)T∇f(x)+2λmin​​∥y−x∥2​
则有
∇ 2 f ( x ) ⪰ m I \nabla^2 f(x) \succeq m I ∇2f(x)⪰mI

Lipchitz常数

Lipchitz常数满足
∥ ∇ f ( x ) − ∇ f ( y ) ∥ ≤ M ∥ y − x ∥ \|\nabla f(x)-\nabla f(y)\| \leq M\|y-x\| ∥∇f(x)−∇f(y)∥≤M∥y−x∥
由近似展开可以得到
f ( y ) ≤ f ( x ) + ( y − x ) T ∇ f ( x ) + M 2 ∥ y − x ∥ 2 f(y) \leq f(x)+(y-x)^T \nabla f(x)+\frac{M}{2}\|y-x\|^2 f(y)≤f(x)+(y−x)T∇f(x)+2M​∥y−x∥2

f ( y ) − f ( x ⋆ ) ≥ m 2 ∥ y − x ⋆ ∥ 2 f(y)-f\left(x^{\star}\right) \geq \frac{m}{2}\left\|y-x^{\star}\right\|^2 f(y)−f(x⋆)≥2m​∥y−x⋆∥2
f ( y ) − f ( x ⋆ ) ≤ M 2 ∥ y − x ⋆ ∥ 2 f(y)-f\left(x^{\star}\right) \leq \frac{M}{2}\left\|y-x^{\star}\right\|^2 f(y)−f(x⋆)≤2M​∥y−x⋆∥2

条件数 condition number

对于任何函数,有 κ = m a j o r a x i s m i n o r a x i s \kappa=\frac{major \quad axis}{minor \quad axis} κ=minoraxismajoraxis​
对于光滑函数,有 κ ≈ c o n d ( ∇ 2 f ( x ) ) \kappa \approx cond(\nabla^2f(x)) κ≈cond(∇2f(x))
对于可微函数,有 κ = M / m \kappa = M/m κ=M/m

Sub-differential

对于不光滑的函数,其导数在一点左右不相等,我们称之为sub differential

记为 ∂ f ( x ) = { g : f ( y ) > f ( x ) + ( y − x ) T g , ∀ y } \partial f(x)=\left\{g: f(y)>f(x)+(y-x)^T g, \forall y\right\} ∂f(x)={g:f(y)>f(x)+(y−x)Tg,∀y}

sub-differential的方向不唯一,但是最速下降的方向是负sub-diff中模长最小的方向

单调性Monotonicity

无约束非凸函数优化

min ⁡ f ( x ) x = ( x 1 , . . . , x n ) ∈ R n : o p t i m i z a t i o n v a r i a b l e s f : R n → R : o b j e c t i v e f u n c t i o n \min f(x)\\ x = (x_1,...,x_n) \in \mathbb{R}^n : optimization variables\\ f:\mathbb{R}^n \rightarrow \mathbb{R} : objective function minf(x)x=(x1​,...,xn​)∈Rn:optimizationvariablesf:Rn→R:objectivefunction

线性搜索最速梯度下降 Line-Search Steepest Gradient Descent

最速梯度下降的迭代形式如下所示
x k + 1 = x k − τ ∇ f ( x k ) x^{k+1}=x^k-\tau \nabla f\left(x^k\right) xk+1=xk−τ∇f(xk)
其中 τ \tau τ为步长。
选择步长的方法有多种,如下所示

  • 1.常数 constant step size
    τ = c \tau = c τ=c
  • 2.随着时间减小 diminishing step size
    τ = c / k \tau = c/k τ=c/k
  • 3.精确线性搜索 exact line search
    τ = arg ⁡ min ⁡ α f ( x k + α d ) \tau = \arg \min_{\alpha} f(x^k + \alpha d) τ=argαmin​f(xk+αd)
  • 4.非精确线性搜索 inexact line search
    τ ∈ { α ∣ f ( x k ) − f ( x k + α d ) ≥ − c ⋅ α d T ∇ f ( x k ) } \tau \in\left\{\alpha \mid f\left(x^k\right)-f\left(x^k+\alpha d\right) \geq-c \cdot \alpha d^{\mathrm{T}} \nabla f\left(x^k\right)\right\} τ∈{α∣f(xk)−f(xk+αd)≥−c⋅αdT∇f(xk)}
    其中方法1过于代办,方法2需要满足robbins-monro规则,对于一些很复杂计算很昂贵的函数来说是适合用的,方法3不具备可行性,方法4需要满足Armijo条件,较为容易满足。

Backtracking/Armijo line search

  1. 选择搜索方向: d = − ∇ f ( x k ) d=-\nabla f\left(x^k\right) d=−∇f(xk)
  2. 当 f ( x k + τ d ) > f ( x k ) + c ⋅ τ d T ∇ f ( x k ) f\left(x^k+\tau d\right)>f\left(x^k\right)+c \cdot \tau d^T \nabla f\left(x^k\right) f(xk+τd)>f(xk)+c⋅τdT∇f(xk)时,重复 τ ← τ / 2 \tau \leftarrow \tau/2 τ←τ/2
  3. 迭代 x k + 1 = x k + τ d x^{k+1}=x^k+\tau d xk+1=xk+τd

重复直至梯度很小或者sub-diff包含0时。

Backtracking的缺点

当条件数很大,或者函数很差的时候,可能会反复震荡。如下图所示,当我们在优化一个非常扁的椭圆形函数的时候,就会出现这样在椭圆上往复震荡的情况,因此我们发现,很有必要了解到函数的曲率,将其纳入考虑范围。

改进牛顿法 Modified Damped Newton’s Method

牛顿法

根据泰勒二阶展开,有
f ( x ) ≈ f ^ ( x ) = f ( x k ) + ∇ f ( x k ) T ( x − x k ) + 1 2 ( x − x k ) T ∇ 2 f ( x k ) ( x − x k ) f(x) \approx \hat{f}(x) = f(x_k) + \nabla f(x_k)^T(x - x_k) + \frac{1}{2}(x-x_k)^T \nabla^2 f(x_k)(x-x_k) f(x)≈f^​(x)=f(xk​)+∇f(xk​)T(x−xk​)+21​(x−xk​)T∇2f(xk​)(x−xk​)
最小化二阶近似
∇ f ^ ( x ) = ∇ 2 f ( x k ) ( x − x k ) + ∇ f ( x k ) = 0 \nabla \hat{f}(x) = \nabla^2 f(x_k)(x - x_k) + \nabla f(x_k) = 0 ∇f^​(x)=∇2f(xk​)(x−xk​)+∇f(xk​)=0
得到给定 ∇ 2 f ( x k ) ≻ 0 \nabla^2 f(x_k) \succ 0 ∇2f(xk​)≻0时,有
x = x k − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) x = x_k - [\nabla^2 f(x_k)]^{-1} \nabla f(x_k) x=xk​−[∇2f(xk​)]−1∇f(xk​)
牛顿步骤为
x k + 1 = x k − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) x_{k+1} = x_k - [\nabla^2 f(x_k)]^{-1} \nabla f(x_k) xk+1​=xk​−[∇2f(xk​)]−1∇f(xk​)
其优化过程如下图所示

牛顿法缺点

Hessian阵可能是奇异的,且不稳定的,这样的话我们无法对Hessian阵进行求逆运算。

可行牛顿法

首先初始化 x x x, x ← x 0 ∈ R n x \leftarrow x_0 \in \mathbb{R}^n x←x0​∈Rn
当 ∣ ∣ ∇ f ( x ) ∣ ∣ > δ ||\nabla f(x)|| > \delta ∣∣∇f(x)∣∣>δ时,进行如下计算
d o do do:
d ← − M − 1 ∇ f ( x ) d \leftarrow -M^{-1} \nabla f(x) d←−M−1∇f(x)
t ← b a c k t r a c k i o n g l i n e s e a r c h t \leftarrow backtrackiong \quad line \quad search t←backtrackionglinesearch
x ← x + t d x \leftarrow x + td x←x+td
e n d w h i l e end \quad while endwhile
r e t u r n return return
其中,M是一个接近Hessian阵的正定矩阵,以此来替代线性搜索中的求梯度和求Hessian阵。
如果函数为凸函数,则有
M = ∇ 2 f ( x ) + ϵ I , ϵ = min ⁡ ( 1 , ∥ ∇ f ( x ) ∥ ∞ ) / 10 \boldsymbol{M}=\nabla^2 f(\boldsymbol{x})+\epsilon \boldsymbol{I}, \epsilon=\min \left(1,\|\nabla f(\boldsymbol{x})\|_{\infty}\right) / 10 M=∇2f(x)+ϵI,ϵ=min(1,∥∇f(x)∥∞​)/10
因为M是正定的,因此可以使用Cholesky factorization
M d = − ∇ f ( x ) , M = L L T \boldsymbol{M} \boldsymbol{d}=-\nabla f(\boldsymbol{x}), \boldsymbol{M}=\boldsymbol{L} \boldsymbol{L}^{\mathrm{T}} Md=−∇f(x),M=LLT
如果函数是非凸的,那么我们通过如下计算M
Bunch-Kaufman Factorization:
M d = − ∇ f ( x ) , M = L B L T \boldsymbol{M} \boldsymbol{d}=-\nabla f(\boldsymbol{x}), \boldsymbol{M}=\boldsymbol{L} \boldsymbol{B} \boldsymbol{L}^{\mathrm{T}} Md=−∇f(x),M=LBLT

补充性质

埃尔米特矩阵 Hermitian matrix

埃尔米特矩阵(英语:Hermitian matrix,又译作厄米特矩阵,厄米矩阵),也称自伴随矩阵,是共轭对称的方阵。埃尔米特矩阵中每一个第i行第j列的元素都与第j行第i列的元素的复共轭。
对于
A = { a i , j } ∈ C n × n A=\left\{a_{i, j}\right\} \in C^{n \times n} A={ai,j​}∈Cn×n

a i , j = a j , i ‾ a_{i, j}=\overline{a_{j, i}} ai,j​=aj,i​​
记作
A = A H A=A^H A=AH

埃尔米特矩阵的性质

  • 若A和B是埃尔米特矩阵,那么它们的和A+B也是埃尔米特矩阵;而只有在A和B满足交换性(即AB = BA)时,它们的积才是埃尔米特矩阵。
  • 可逆的埃尔米特矩阵A的逆矩阵A-1仍然是埃尔米特矩阵。 如果A是埃尔米特矩阵,对于正整数n,An是埃尔米特矩阵。
  • 方阵 C C C与其共轭转置的和 C + ( C ∗ ) {\displaystyle C+(C^{*})} C+(C∗)是埃尔米特矩阵,
  • 方阵 C C C与其共轭转置的差 C − C ∗ {\displaystyle C-C^{*}} C−C∗是斜埃尔米特矩阵。
  • 任意方阵 C C C都可以用一个埃尔米特矩阵 A A A与一个斜埃尔米特矩阵 B B B的和表示:
    C = A + B with  A = 1 2 ( C + C ∗ ) and  B = 1 2 ( C − C ∗ ) C=A+B \quad \text { with } \quad A=\frac{1}{2}\left(C+C^*\right) \quad \text { and } \quad B=\frac{1}{2}\left(C-C^*\right) C=A+B with A=21​(C+C∗) and B=21​(C−C∗)
  • 埃尔米特矩阵是正规矩阵,因此埃尔米特矩阵可被酉对角化,而且得到的对角阵的元素都是实数。这意味着埃尔米特矩阵的特征值都是实的,而且不同的特征值所对应的特征向量相互正交,因此可以在这些特征向量中找出一组Cn的正交基。
  • n-阶埃尔米特矩阵的元素构成维数为 n 2 n^2 n2的实向量空间,因为主对角线上的元素有一个自由度,而主对角线之上的元素有两个自由度。
  • 如果埃尔米特矩阵的特征值都是正数,那么这个矩阵是正定矩阵,若它们是非负的,则这个矩阵是半正定矩阵。
    具体参考wikipedia埃尔米特矩阵

LU分解

定义

对于方阵 A A A, A A A的 L U LU LU 分解是将它分解成一个下三角矩阵 L L L 与上三角矩阵 U U U的乘积,也就是
A = L U A=LU A=LU

PLU分解

方阵 A 的 PLU 分解是是将它分解成一个置换矩阵 P、一个下三角矩阵 L 与上三角矩阵 U 的乘积,即
A = P L U A=PLU A=PLU

LDU分解

方阵 A 的 LDU 分解是是将它分解成一个单位下三角矩阵 L、对角矩阵 D 与单位上三角矩阵 U 的乘积,即
A = L D U A=LDU A=LDU
更多细节参考wikipediaLU分解

Cholesky分解

如果矩阵A是埃尔米特矩阵,并且是正定矩阵,那么可以使,U是L的共轭转置。也就是说,A可以写成

A = L L ∗ {\displaystyle A=LL^{*}\ } A=LL∗ 
这个分解被称作Cholesky分解。对每一个正定矩阵,Cholesky分解都唯一存在。此外,比起一般的LU分解,计算Cholesky分解更为快捷,并具有更高的数值稳定性。
更多细节参考wikipediaCholesky分解

机器人中的数值优化|【一】数值优化基础相关推荐

  1. 机器人中的数值优化之最速下降法

    本文ppt来自深蓝学院<机器人中的数值优化> 目录 1 迭代方向 2 步长的选择 3 Armijo condition 4 非精确线搜索的优势 1 迭代方向 梯度方向是函数上升最快的方向, ...

  2. 机器人中的数值优化之凸函数

    本文ppt来自深蓝学院<机器人中的数值优化> 目录 1 凸函数的性质 ​2 凸函数的性质 1 凸函数的性质 凸函数最重要的性质就是Jensen's inequality,也就是琴生不等式. ...

  3. 机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例

    机器人中的数值优化|[二]最优化方法:最速下降法,可行牛顿法的python实现,以Rosenbrock function为例 在上一节中提到了我们详细探讨了数值优化/最优化理论中的基本概念和性质,现在 ...

  4. 机器人中的数值优化之基本概念

    本文ppt来自深蓝学院<机器人中的数值优化> 目录 1 推荐书单 2 优化问题的基本范式 3 数值优化在机器人领域的应用 1 推荐书单 对于英语阅读有困难的同学可以看第一本书,对于最优化的 ...

  5. 机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则

       本系列文章主要是我在学习<数值优化>过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程<机器人中的数值优化>和高立编著的<数值最优化方法>等,本系列文 ...

  6. 机器视觉在服务机器人中的应用

    本文从服务机器人对视觉技术的需求入手,围绕口罩识别.人体姿态估计.物体识别等机器视觉技术在不同类型服务机器人中的研究与应用实践进行深度讲解,最后就优必选机器视觉技术在机器人中的未来研究方向给出自己的思 ...

  7. mysql 按日期拆分成多条记录_mysql性能优化2 设计规范 设计原则 结构优化 拆分 配置优化...

    一.MYSQL数据库设计规范 1.数据库命名规范 a.采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; b.命名简洁明确(长度不能超过30个字符); c.例如:us ...

  8. hbase数据读取优化_read读取优化_HBase最佳实践_HBase开发指南_云数据库 HBase - 阿里云...

    其实HBase还是比较灵活的,关键看你是否使用得当,以下主要列举一些读的优化.HBase在生产中往往会遇到Full GC.进程OOM.RIT问题.读取延迟较大等一些问题,使用更好的硬件往往可以解决一部 ...

  9. Android 进阶——性能优化之电量优化全攻略及实战小结(二)

    文章大纲 引言 一.在低电耗模式和应用待机模式下进行测试 1.在低电耗模式下测试您的应用 2.在应用待机模式下测试您的应用 3.列入白名单的可接受用例 4.确定当前充电状态 5.监控充电状态变化 6. ...

  10. Linux性能优化-CPU性能优化思路

    目录 CPU性能指标 性能工具 如何迅速的分析CPU性能瓶颈 性能优化方法论 CPU优化 参考 CPU性能指标 CPU使用率 1.CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任 ...

最新文章

  1. linux多任务切换快捷键,Windows 10十月更新导致Alt+Tab多任务切换快捷键出错
  2. jQuery EasyUI API 中文文档 - 树表格(TreeGrid)
  3. api商品分享源码_SSM框架高并发和商品秒杀项目高并发秒杀API源码免费分享
  4. diy直立双足机器人_Aelos Pro 机器人:让编程变得更有趣
  5. API hook 单步调试
  6. Adobe illustrator 抽丝剥茧选中多个点 - 连载 13
  7. 安装 Visual Studio Async CTP
  8. 电脑桌面底部显示计算机图标怎么隐藏,电脑底部的任务栏如何隐藏
  9. 融创与泛海达成交易 获得京沪优质稀缺土地资源
  10. 联想小新Air2020ill版换硬盘及安装Win11详细过程
  11. LeetCode148经典题目记录(链表排序:快排+递归归并+迭代归并)
  12. linux kernel 报错:FATAL: kernel too old
  13. 2022年最值得阅读的强化学习书籍
  14. Golang如何正确的停止Ticker
  15. Mac中的文件如何拷贝到硬盘中?
  16. csdn上怎样可以获得金币?
  17. 埃斯顿机器人 王杰高_埃斯顿机器人总经理王杰高受邀出席2018中国机器人产业发展大会...
  18. Android System Server大纲之VibratorService
  19. 合振动的初相位推导_如何确定合振动的初相位
  20. C语言生成随机数问题

热门文章

  1. 访问修饰符的真正理解
  2. 图像质量评价数据库TID2013 网盘下载
  3. 全息投影在博物馆中有哪些作用
  4. 2021MathorCup高校数学建模大数据竞赛解题思路
  5. 罗振宇2022年“时间的朋友·原来还能这么干”跨年演讲全文无删减整理,内容归纳总结提炼
  6. Java、JSP(二手车)交易管理系统毕业设计论文
  7. C++.02: Visual Studio 2022 文件筛选器与虚拟目录
  8. 2023 华为 Datacom-HCIE 真题题库 12/12(完结)--含解析
  9. 小白都能懂的 玩转docker系列之 Docker网络详解(超详细)
  10. 推荐一个文献下载神器!免费英文文献网站还能直接翻译