【LDF】线性判别函数(三)

news2024/11/16 4:35:23

松弛方法

  1. 学习准则
  • 在感知函数准则中, 目标函数中采用了 − a T y -\mathbf{a}^T \mathbf{y} aTy 的形式。实际上有很多其它准则也可以用于感知函数的学习。
  • 线性准则
    J p ( a ) = ∑ y ∈ Y ( − a T y ) J_p(\mathbf{a})=\sum_{\mathbf{y} \in Y}\left(-\mathbf{a}^T \mathbf{y}\right) Jp(a)=yY(aTy)
  • 平方准则
    J q ( a ) = ∑ y ∈ Y ( a T y ) 2 J_q(\mathbf{a})=\sum_{\mathbf{y} \in Y}\left(\mathbf{a}^T \mathbf{y}\right)^2 Jq(a)=yY(aTy)2
  • 松弛准则
    J r ( a ) = 1 2 ∑ y ∈ Y ( a T y − b ) 2 ∥ y ∥ 2 J_r(\mathbf{a})=\frac{1}{2} \sum_{\mathbf{y} \in Y} \frac{\left(\mathbf{a}^T \mathbf{y}-b\right)^2}{\|\mathbf{y}\|^2} Jr(a)=21yYy2(aTyb)2
  • 线性准则的目标函数是分段线性的, 因此其梯度是不连续的。
  • 平方准则的梯度是连续的, 但目标函数过于平滑, 收敛速度很慢(达到目标函数为零的区域的路径很平缓)。同时, 目标函数过于受到最长样本的影响。
  • J r ( a ) J_r(\mathrm{a}) Jr(a) 则避免了这些缺点。 J r J_r Jr (a) 最终达到零。此时对所有的 y , a T y > b \mathbf{y}, \mathbf{a}^T \mathbf{y}>b y,aTy>b, 则意味着集合 Y Y Y 是空集。
    梯度:
    ∂ J r ( a ) ∂ a = ∑ y ∈ Y a T y − b ∥ y ∥ 2 y \frac{\partial J_r(\mathbf{a})}{\partial \mathbf{a}}=\sum_{\mathbf{y} \in Y} \frac{\mathbf{a}^T \mathbf{y}-b}{\|\mathbf{y}\|^2} \mathbf{y} aJr(a)=yYy2aTyby
    权重更新准则:
    a k + 1 = a k − η k ∑ y ∈ Y a T y − b ∥ y ∥ 2 y \mathbf{a}_{k+1}=\mathbf{a}_k-\eta_k \sum_{\mathbf{y} \in Y} \frac{\mathbf{a}^T \mathbf{y}-b}{\|\mathbf{y}\|^2} \mathbf{y} ak+1=akηkyYy2aTyby

在这里插入图片描述

  • 每一步权重更新都要重新计算错误样本集,而且要用到错误样本集里面的所有样本
  • 单样本松弛算法更新准则
    a k + 1 = a k − η k a k T y k − b ∥ y k ∥ 2 y k = a k − η k a k T y k − b ∥ y k ∥ y k ∥ y k ∥ \mathbf{a}_{k+1}=\mathbf{a}_k-\eta_k \frac{\mathbf{a}_k^T \mathbf{y}^k-b}{\left\|\mathbf{y}^k\right\|^2} \mathbf{y}^k=\mathbf{a}_k-\eta_k \frac{\mathbf{a}_k^T \mathbf{y}^k-b}{\left\|\mathbf{y}^k\right\|} \frac{\mathbf{y}^k}{\left\|\mathbf{y}^k\right\|} ak+1=akηkyk2akTykbyk=akηkykakTykbykyk
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 单样本松弛法的收敛性(设 a \mathbf{a} a 是一个解向量, 因此对任意 y i \mathbf{y}_i yi, 有 a T y i > b \mathbf{a}^T \mathbf{y}_i>b aTyi>b
    ∥ a k + 1 − a ∥ 2 = ∥ a k − a ∥ 2 − 2 η b − a k T y k ∥ y k ∥ 2 ( a − a k ) T y k + η 2 ( b − a k T y k ) 2 ∥ y k ∥ 2 ( a − a k + 1 ) T y k = a T y k − a k + 1 T y k > b − a k + 1 T y k ⇒ ∥ a k + 1 − a ∥ 2 < ∥ a k − a ∥ 2 − η ( 2 − η ) ( b − a k T y k ) 2 ∥ y k ∥ 2 \begin{gathered} \left\|\mathbf{a}_{k+1}-\mathbf{a}\right\|^2=\left\|\mathbf{a}_k-\mathbf{a}\right\|^2-2 \eta \frac{b-\mathbf{a}_k^T \mathbf{y}^k}{\left\|\mathbf{y}^k\right\|^2}\left(\mathbf{a}-\mathbf{a}_k\right)^T \mathbf{y}^k+\eta^2 \frac{\left(b-\mathbf{a}_k^T \mathbf{y}^k\right)^2}{\left\|\mathbf{y}^k\right\|^2} \\ \quad\left(\mathbf{a}-\mathbf{a}_{k+1}\right)^T \mathbf{y}^k=\mathbf{a}^T \mathbf{y}^k-\mathbf{a}_{k+1}^T \mathbf{y}^k>b-\mathbf{a}_{k+1}^T \mathbf{y}^k \\ \Rightarrow \quad\left\|\mathbf{a}_{k+1}-\mathbf{a}\right\|^2<\left\|\mathbf{a}_k-\mathbf{a}\right\|^2-\eta(2-\eta) \frac{\left(b-\mathbf{a}_k^T \mathbf{y}^k\right)^2}{\left\|\mathbf{y}^k\right\|^2} \end{gathered} ak+1a2=aka22ηyk2bakTyk(aak)Tyk+η2yk2(bakTyk)2(aak+1)Tyk=aTykak+1Tyk>bak+1Tykak+1a2<aka2η(2η)yk2(bakTyk)2
    如果 0 < η < 2 0<\eta<2 0<η<2,则 ∥ a k + 1 − a ∥ 2 < ∥ a k − a ∥ 2 \left\|\mathbf{a}_{k+1}-\mathbf{a}\right\|^2<\left\|\mathbf{a}_k-\mathbf{a}\right\|^2 ak+1a2<aka2

最小平方误差(MSE)准则函数

  • 对两类分类问题, 感知准则函数是寻找一个解向量 a , \mathbf{a ,} a,, 对所有样本 y i \mathbf{y}_i yi, 满足 a T y i > 0 , i = 1 , 2 , … n \mathbf{a}^T \mathbf{y}_i>0, i=1,2, \ldots n aTyi>0,i=1,2,n 。或者说, 求解一个不等式组, 使满足 a T y i > 0 \mathbf{a}^T \mathbf{y}_i>0 aTyi>0 的数目最大, 从而错分样本最少。
  • 将不等式约束改为等式
    a T y i = b i > 0 \mathbf{a}^T \mathbf{y}_i=b_i>0 aTyi=bi>0
    其中, b i b_i bi 是任意给定的正常数, 通常取 b i = 1 b_i=1 bi=1, 或者 b i = b_i= bi= n j / n n_j / n nj/n 。 其中 n j , j = 1 n_j, j=1 nj,j=1 2 2 2, 为属于第 j j j 类样本的总数, 且 n 1 + n 2 = n n_1+n_2=n n1+n2=n
  • 可得一个线性方程组 Y a = b \mathbf{Y a}=\mathbf{b} Ya=b
    ( y 10 y 11 ⋯ y 1 d y 20 y 21 ⋯ y 2 d ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ y n 0 y n 1 ⋯ y n d ) ( a 0 a 1 ⋮ ⋮ a d ) = ( b 1 b 2 ⋮ ⋮ b d ) \left(\begin{array}{cccc} y_{10} & y_{11} & \cdots & y_{1 d} \\ y_{20} & y_{21} & \cdots & y_{2 d} \\ \vdots & \vdots & & \vdots \\ \vdots & \vdots & & \vdots \\ y_{n 0} & y_{n 1} & \cdots & y_{n d} \end{array}\right)\left(\begin{array}{c} a_0 \\ a_1 \\ \vdots \\ \vdots \\ a_d \end{array}\right)=\left(\begin{array}{c} b_1 \\ b_2 \\ \vdots \\ \vdots \\ b_d \end{array}\right) y10y20yn0y11y21yn1y1dy2dynd a0a1ad = b1b2bd
  • 如果 Y \mathbf{Y} Y 可逆, 则 a = Y − 1 b \mathbf{a}=\mathbf{Y}^{-1} \mathbf{b} a=Y1b
  • 但通常情形下样本数远大于特征数 n ≫ d + 1 n \gg d+1 nd+1, 求不出逆矩阵;因此考虑定义一个误差向量 e = Y a − b \mathbf{e}=\mathbf{Y a}-\mathbf{b} e=Yab, 并使误差向量最小
  • 平方误差准则函数:
    J s ( a ) = ∥ e ∥ 2 = ∥ Y a − b ∥ 2 = ∑ i = 1 n ( a T y i − b i ) 2 J_s(\mathbf{a})=\|\mathbf{e}\|^2=\|\mathbf{Y} \mathbf{a}-\mathbf{b}\|^2=\sum_{i=1}^n\left(\mathbf{a}^T \mathbf{y}_i-b_i\right)^2 Js(a)=e2=Yab2=i=1n(aTyibi)2
    求偏导数:
    ∂ J s ( a ) ∂ a = ∑ i = 1 n 2 ( a T y i − b i ) y i = 2 Y T ( Y a − b ) \frac{\partial J_s(\mathbf{a})}{\partial \mathbf{a}}=\sum_{i=1}^n 2\left(\mathbf{a}^T \mathbf{y}_i-b_i\right) \mathbf{y}_i=2 \mathbf{Y}^T(\mathbf{Y} \mathbf{a}-\mathbf{b}) aJs(a)=i=1n2(aTyibi)yi=2YT(Yab)
    令偏导数为 0 0 0
    Y T Y a = Y T b , ⇒ a = ( Y T Y ) − 1 Y T b = Y + b \mathbf{Y}^T \mathbf{Y} \mathbf{a}=\mathbf{Y}^T \mathbf{b}, \quad \Rightarrow \mathbf{a}=\left(\mathbf{Y}^T \mathbf{Y}\right)^{-1} \mathbf{Y}^T \mathbf{b}=\mathbf{Y}^{+} \mathbf{b} YTYa=YTb,a=(YTY)1YTb=Y+b
    矩阵论告诉我们 Y T Y \mathbf{Y}^T \mathbf{Y} YTY 一定是可逆的(我记得是在值空间零空间那边,但是我已经忘了ಥ_ಥ); Y + \mathbf{Y}^{+} Y+即为 Y \mathbf{Y} Y 的伪逆,实际计算常用(不知道为什么)
    Y + ≈ ( Y T Y + ε I ) − 1 Y T ∣ ε → 0 \left.\mathbf{Y}^{+} \approx\left(\mathbf{Y}^T \mathbf{Y}+\varepsilon \mathbf{I}\right)^{-1} \mathbf{Y}^T\right|_{\varepsilon \rightarrow 0} Y+(YTY+εI)1YT ε0
  • 计算伪逆需要求矩阵的逆, 计算复杂度高。如果原始样本的维数很高, 比如 d > 5000 d>5000 d>5000, 将十分耗时
  • 采用梯度下降法: a k + 1 = a k + η k Y T ( b − Y a k ) \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \mathbf{Y}^T\left(\mathbf{b}-\mathbf{Y} \mathbf{a}_k\right) ak+1=ak+ηkYT(bYak)
  • 梯度下降法得到的 a k + 1 \mathbf{a}_{k+1} ak+1 将收敛于一个解, 该解满足方程: Y T ( b − Y a ) = 0 \mathbf{Y}^T (\mathbf{b}-\mathbf{Y} \mathbf{a})=\mathbf{0} YT(bYa)=0
  • 也可以采用序列更新方法, 此方法需要的计算存储量会更小:
    a k + 1 = a k + η k ( b k − ( a k ) T y k ) y k \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k\left(b_k-\left(\mathbf{a}_k\right)^T \mathbf{y}^k\right) \mathbf{y}^k ak+1=ak+ηk(bk(ak)Tyk)yk
  • 序列最小平方更新方法
    在这里插入图片描述
  • Widrow-Hoff 要求更正不相等情形: ( a k ) T y k ≠ b k \left(\mathbf{a}_k\right)^T \mathbf{y}^k \neq b_k (ak)Tyk=bk 。但是, 实际上, 满足 ( a k ) T y k = b k \left(\mathrm{a}_k\right)^T \mathbf{y}^k=b_k (ak)Tyk=bk 几乎是不可能的。因此, 迭代将会无穷次进行下去。所以要求 η k \eta_k ηk 需要随着 k k k 的增加而逐渐减小, 以保证算法的收敛性。一般来讲, 实际计算中取: η k = \eta_k= ηk= η 1 / k \eta_1 / k η1/k
  • 相对于感知器准则, 最小平方准则方法可能并不收敛于可分超平面, 即使该平面是存在的
    在这里插入图片描述
    如上图,MSE的解并不能实现线性可分样本集的正确分类

Ho-Kashyap方法

  • MSE算法上最小化 ∥ Y a − b ∥ 2 \|\mathbf{Y} \mathbf{a}-\mathbf{b}\|^2 Yab2, 所得到的最优解并不需要位于可分超平面上
  • 如果训练样本是线性可分的, 则可找到一个权向量 a \mathbf{a} a, 对所有样本, 均有 a T y i > 0 \mathbf{a}^T \mathbf{y}_i>0 aTyi>0 。换句话说, 一定存在一个 a \mathbf{a} a b \mathbf{b} b, 使 Y a = b > 0 \mathbf{Y a}=\mathbf{b}>\mathbf{0} Ya=b>0
  • 但是, 事先并不知道 b \mathbf{b} b 。因此, MSE准则函数可以更新为: J s ( a , b ) = ∥ Y a − b ∥ 2 J_s(\mathbf{a}, \mathbf{b})=\|\mathbf{Y} \mathbf{a}-\mathbf{b}\|^2 Js(a,b)=Yab2
  • 直接优化 J s ( a , b ) J_s(\mathbf{a}, \mathbf{b}) Js(a,b) 将导致平凡解(都取 0 0 0 直接就结束了), 所以需要给 b \mathbf{b} b 加一个 b > 0 \mathbf{b}>\mathbf{0} b>0 的约束条件。此时 b \mathbf{b} b 可以解释为 margin
  • 梯度
    ∂ J s ( a , b ) ∂ a = 2 Y T ( Y a − b ) , ∂ J s ( a , b ) ∂ b = − 2 ( Y a − b ) \frac{\partial J_s(\mathbf{a}, \mathbf{b})}{\partial \mathbf{a}}=2 \mathbf{Y}^T(\mathbf{Y} \mathbf{a}-\mathbf{b}), \quad \frac{\partial J_s(\mathbf{a}, \mathbf{b})}{\partial \mathbf{b}}=-2(\mathbf{Y} \mathbf{a}-\mathbf{b}) aJs(a,b)=2YT(Yab),bJs(a,b)=2(Yab)
  • a \mathbf{a} a 而言, 总有 a = Y + b \mathbf{a}=\mathbf{Y}^{+} \mathbf{b} a=Y+b, 其中 Y + \mathbf{Y}^{+} Y+ Y \mathbf{Y} Y 的伪逆 ( Y T Y ) − 1 Y T \left(\mathbf{Y}^T \mathbf{Y}\right)^{-1} \mathbf{Y}^T (YTY)1YT
  • b \mathbf{b} b, 需要同时满足约束条件 b > 0 \mathbf{b}>\mathbf{0} b>0 。梯度更新:
    b k + 1 = b k − η k ∂ J s ( a , b ) ∂ b \mathbf{b}_{k+1}=\mathbf{b}_k-\eta_k \frac{\partial J_s(\mathbf{a}, \mathbf{b})}{\partial \mathbf{b}} bk+1=bkηkbJs(a,b)
  • 由于 b k \mathbf{b}_k bk 总是大于零, 要使 b k + 1 \mathbf{b}_{k+1} bk+1 也大于零, 可以要求 ∂ J s ( a , b ) / ∂ b \partial J_s(\mathbf{a}, \mathbf{b}) / \partial \mathbf{b} Js(a,b)/b 为负(若 ∂ J s ( a , b ) / ∂ b \partial J_s(\mathbf{a}, \mathbf{b}) / \partial \mathbf{b} Js(a,b)/b 为正,括号里面为 0 0 0;若 ∂ J s ( a , b ) / ∂ b \partial J_s(\mathbf{a}, \mathbf{b}) / \partial \mathbf{b} Js(a,b)/b 为负,括号里面为负)
    b 1 > 0 , b k + 1 = b k − η k 1 2 ( ∂ J s ( a , b ) ∂ b − ∣ ∂ J s ( a , b ) ∂ b ∣ ) \mathbf{b}_1>\mathbf{0}, \quad \mathbf{b}_{k+1}=\mathbf{b}_k-\eta_k \frac{1}{2}\left(\frac{\partial J_s(\mathbf{a}, \mathbf{b})}{\partial \mathbf{b}}-\left|\frac{\partial J_s(\mathbf{a}, \mathbf{b})}{\partial \mathbf{b}}\right|\right) b1>0,bk+1=bkηk21(bJs(a,b) bJs(a,b) )
  • ∂ J s ( a , b ) ∂ b = − 2 ( Y a − b ) \frac{\partial J_s(\mathbf{a}, \mathbf{b})}{\partial \mathbf{b}}=-2(\mathbf{Y} \mathbf{a}-\mathbf{b}) bJs(a,b)=2(Yab),并记 e k + = 1 2 ( ( Y a k − b k ) + ∣ Y a k − b k ∣ ) \mathbf{e}_k^{+}=\frac{1}{2}\left(\left(\mathbf{Y} \mathbf{a}_k-\mathbf{b}_k\right)+\left|\mathbf{Y} \mathbf{a}_k-\mathbf{b}_k\right|\right) ek+=21((Yakbk)+Yakbk),则有
    a k = Y + b k b 1 > 0 , b k + 1 = b k + 2 η k e k + \begin{gathered} \mathbf{a}_k=\mathbf{Y}^{+} \mathbf{b}_k \\ \mathbf{b}_1>\mathbf{0}, \quad \mathbf{b}_{k+1}=\mathbf{b}_k+2 \eta_k \mathbf{e}_k^{+} \end{gathered} ak=Y+bkb1>0,bk+1=bk+2ηkek+
  • 为了防止 b \mathbf{b} b 收敛于 0 \mathbf{0} 0, 可以让 b \mathbf{b} b 从一个非负向量 ( b 1 > 0 ) \left(\mathbf{b}_1>\mathbf{0}\right) (b1>0) 开始进行更新
  • 由于要求 ∂ J s ( a , b ) / ∂ b \partial J_s(\mathbf{a}, \mathbf{b}) / \partial \mathbf{b} Js(a,b)/b 等于 0 \mathbf{0} 0, 在开始迭代时可令 ∂ J s ( a , b ) / ∂ b \partial J_s(\mathbf{a}, \mathbf{b}) / \partial \mathbf{b} Js(a,b)/b 的元素为正的分量等于零, 从而加快收敛速度。
    在这里插入图片描述
  • 由于权向量序列 { a k } \left\{\mathbf{a}_k\right\} {ak} 完全取决定于 { b k } \left\{\mathbf{b}_k\right\} {bk}, 因此本质上讲 Ho-Kashyap 算法是一个生成margin 序列 { b k } \left\{\mathbf{b}_k\right\} {bk} 的方法
  • 由于初始 b 1 > 0 \mathbf{b}_1>\mathbf{0} b1>0, 且更新因子 η > 0 \eta>0 η>0, 因此 b k \mathbf{b}_k bk 总是大于 0 \mathbf{0} 0
  • 对于更新因子 0 < η ≤ 1 0<\eta \leq 1 0<η1, 如果问题线性可分, 则总能找到元素全为正的 b b b (不懂)
  • 如果 e k = Y a k − b k \mathbf{e}_k=\mathbf{Y} \mathbf{a}_k-\mathbf{b}_k ek=Yakbk 全为 0 , 此时, b k \mathbf{b}_k bk 将不再更新, 因此获得一个解。如果 e k \mathrm{e}_k ek 有一部分元素小于 0 , 则可以证明该问题不是线性可分的 (不懂)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MP中定义全局常量用于xml的判断

1.普通方式 mybatis-plus.configuration.variables.secretFilterSwitch0 yml的方式 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.demo configuration: variables: userId: 456132465 userName: 李四 配置完成后在代码…

NLP论文RoFormer(含源码)中文解读:具有旋转式位置嵌入的增强型transformer模型(一场相对革命)

目录 1、论文与源码2、摘要介绍3、展开解读3.1、匹配或超过了目前可用于将位置信息注入变换器的所有其他方法3.2、模型思想3.3、公式推导3.4、源码解释GPT-NeoX(PyTorch)网状变压器 JAX (JAX)4、 对比实验参考文献1、论文与源码 RoFormer匹配或超过了目前可用于将位置信息注…

分享76个PHP源码,总有一款适合您

链接&#xff1a;https://pan.baidu.com/s/1dC6_-CLs_qSyNnKEmno0Pg?pwd6666 提取码&#xff1a;6666 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 UTForum社区论坛 v2.5 响应式健身房信息展…

小波分析—— 3. 实现一个简单的Haar小波

由于小波在应用形式上与卷积很相似&#xff0c;所以如果你有需要&#xff0c;可以查看我以前写过的内容&#xff1a; 信号采样基本概念 —— 冲激函数卷积计算——1. 关于卷积的基本概念卷积计算——2. 一些常用于图像的卷积核与应用 另外常见的信号处理工具&#xff0c;傅里…

Unity脚本(三)

视频教程&#xff1a;https://www.bilibili.com/video/BV12s411g7gU?p128 目录 Time Prefab Animation Time Time.time&#xff1a;自应用程序启动以来&#xff0c;每帧的开始时间&#xff08;只读&#xff09; Time.deltaTime&#xff1a;每帧间隔&#xff0c;或说完…

SpringData

文档&#xff1a;D:\springdata SpringData是一个用来简化dao层开发的框架.在保证了各个底层存储特性同时,提供了一套统一的数据访问API.它可以很好的支持常用的关系型数据库和非关系型数据库. 使用SpringData做为dao层开发技术,将大大简化代码&#xff0c;而且其API比各个技…

【力扣周赛#326】6279.数组乘积中的不同质因数数目+6196.将字符串分割成值不超过K的子字符串+6280.范围内最接近的两个质数

目录 6278.统计能整除数字的位数 - 简单ac 6279.数组乘积中的不同质因数数目 - 质因数 6196.将字符串分割成值不超过K的子字符串 - 贪心 6280.范围内最接近的两个质数 - 质数筛 贪心 6278.统计能整除数字的位数 - 简单ac 6278. 统计能整除数字的位数 class Solution {pu…

aws codebuild 配置codecommit更新触发和squid正向代理

本文主要讨论如何通过监听codecommit仓库自动触发codebuild的构建&#xff0c;以及为codebuild配置正向代理 通过codecommit更新触发codebuild codecommit触发器相关 每个codecommit最多配置10个触发器 sns触发器 为sns创建lambda函数订阅&#xff0c;在lambda日志中查看s…

一个例题,了解包装类

下列代码输出什么,为什么? public class Test3 {public static void main(String[] args) {Integer a1 100;Integer a2 Integer.valueOf(100);Integer a3 new Integer(100);System.out.println(a1 a2);System.out.println(a1 a3);System.out.println(a1.equals(a3));Sys…

分离编译、类型萃取、变参模板

分离编译 一个程序由若干个源文件共同实现&#xff0c;每个源文件单独编译生成目标文件&#xff0c;最后将所有的目标文件链接起来形成单一可执行文件的过程称之为分离编译模式。模板不支持分离编译 编译器报的这种错误属于链接性错误&#xff0c;也就是当程序预处理、编译、汇…

Sutherland–Hodgman 算法介绍(简单易懂)

目录 一、算法介绍 二、算法描述 三、计算细节补充 四、算法总结 一、算法介绍 我们使用Sutherland–Hodgman算法来裁剪多边形的边&#xff0c;一般是给你一个多边形顶点序列(P1,P2,P3,P4,…Pn)让你裁剪&#xff0c;最终裁剪掉裁剪多边形的外部部分(下图黑框就是裁剪多边形…

大中型政企机构网络安全建设发展趋势研究报告

声明 本文是学习大中型政企机构网络安全建设发展趋势研究报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 研究背景 大中型政企机构是网络安全保护的重中之重&#xff0c;也是国内网络安全建设投入最大&#xff0c;应用新技术、新产品最…

Proteus8仿真:51单片机25AA020A(SPI接口EEPROM)的使用

51单片机25AA020A实验内容25AA020A引脚功能SPI信号模拟8位写8位读EEPROM读写函数EEPROM写使能EEPROM写一个Byte实验程序例程main.c工程文件Microchip的25AA020A是一个2Kbit串行电可擦除可编程只读存储器&#xff08;EEPROM&#xff09;。内存可以通过一个简单的串行外围接口&am…

第三十讲:神州路由器路由重分发配置

RIP和OSPF协议是目前应用最广泛的路由协议&#xff0c;两种协议交接的场合也很多见&#xff0c;两种协议的重分布是比较常见的配置。主校区原来所采用的网络协议为OSPF&#xff0c;而分校区采用的路由协议是RIP&#xff0c;采用RIP和OSPF重分发技术可以解决此问题。 实验拓扑图…

HDLBits练习汇总-14-时序逻辑设计测试--状态机(二)

水箱问题&#xff08;Exams/ece241 2013 q4&#xff09; 一个大水库的水为几个用户服务。为了保持足够高的水位&#xff0c;三个传感器以5英寸的间隔垂直放置。当水位高于最高传感器S3时&#xff0c;输入流量应为零。当液位低于最低传感器(Si)时&#xff0c;流量应处于最大(公…

【技术分享】戴尔工作站安装Win10+Ubuntu20.04双系统避坑指南

文章目录引言1.安装前的几个注意事项&#xff08;避坑指南&#xff09;1.1.有多块硬盘&#xff0c;该如何分配给Win10和Ubuntu系统&#xff1f;1.2.Ubuntu分区应该怎么分&#xff1f;2.系统安装步骤2.1.下载系统镜像2.2.制作U盘启动盘2.3.进入Win10系统分配系统空间2.4.BIOS设置…

82.【LibraryManger】

图书管理系统(一)、搭建环境1.数据库语句2.导入需要的依赖(二)、配置文件3.创建MyBatis的xml文件 mybais-config.xml4.创建dao层接口以及dao层的 mapper.xml5.创建数据库的资源 database.properties6.创建spring的配置文件 spring-dao.xml【】7.创建service层的接口以及servcie…

查找

章节目录&#xff1a;一、线性查找1.1 概述1.2 代码示例二、二分查找2.1 概述2.2 代码示例三、插值查找3.1 概述3.2 代码示例四、斐波那契查找4.1 概述4.2 代码示例五、结束语一、线性查找 1.1 概述 线性查找又称顺序查找&#xff0c;是一种最简单的查找方法&#xff0c;它的…

若依框架:前端登录组件与图像验证码|用户登录逻辑

在上一篇《若依框架&#xff1a;前端项目结构与初始页面渲染流程》中&#xff0c;我们探讨了与“vue.config.js文件配置、.env模式和环境变量配置、vue-router全局导航守卫配置、vue-router路由配置简介”相关的内容&#xff0c;书接上回&#xff0c;我们继续探讨若依前端项目的…

【C语言进阶】字符函数与字符串函数

目录 1、函数介绍 1.1 strlen 1.2 strcpy 1.3 strcat 1.4 strcmp 1.5 strncpy 1.6 strncat 1.7 strncmp 1.8 strstr 1.9 strtok 1.10 strerror 【补】字符分类函数&#xff1a; 1.11 memcpy 1.12 memmove 1.13 memcmp 1.14 memset 1、函数介绍 1.1 strlen siz…