学习凸优化的过程中,首先要接触到仿射集与凸集的定义,非常有必要完全理解。
关于锥、凸锥参看另一篇博文:https://blog.csdn.net/robert_chen1988/article/details/78828727
一、仿射集(Affine set),凸集(Convex set)定义
设
与
是定义在集合
中任意两个不同的点,即
, 并且
,对任意一个实数
,都有
则称 为一个仿射集。 若要求 ,则 为一个凸集,可见 一个仿射集必属于凸集(锥跟仿射集并没有隶属关系)。
仿射集的几何意义是:一个集合中任意两点的连线上的点仍然属于这个集合,则该集合为仿射集。个人感觉在三维空间内,整个坐标系才属于仿射集。
注:每一个线性方程组 的解为一个仿射集。
为什么称作仿射呢? 定义
,该表达式可以化为
可以表示为通过基点 ,方向为 ,大小为 的一个箭头的末端,如下图所示:
import matplotlib.pyplot as plt
import numpy as np
plt.arrow(2, 3, 4, 8, width = 0.08, color = 'c', length_includes_head = True)
plt.plot(2, 3, 'ro')
plt.annotate('$x_2$', xy = (2.2, 2.8))
plt.plot(5, 9, 'ro')
plt.annotate('$x_1$', xy = (5.2, 8.8))
plt.plot(6, 11, 'ro')
plt.annotate('$y=x_2+\\theta (x_1-x_2), \\theta = 2$', xy = (6.2, 10.8))
plt.xlim((0, 10))
plt.ylim((0, 16))
plt.show()
若
是一个仿射集,
,
,
,并且
, 则
其中, 称作点 的 仿射组合。
若要求 , 则 称作点 的 凸组合。
二、子空间(Subspace)
对于一个仿射集
,及其内部任意一点
,集合
称作一个子空间。 仿射空间可以看做对一个子空间的平移。
性质1:一个子空间
为仿射集。
性质2:一个子空间
为凸锥。
性质3:一个子空间
为凸集。
证明:对于
中任意两点
与
,它们的线性组合
,因为
(因为 , , 仿射集定义)
所以 ,即一个子空间中任意两点的线性组合仍然属于该子空间。
特别的,我们令 ,则根据仿射集定义,子空间属于一个仿射集。
特别的,我们令 ,则根据凸锥的定义,子空间属于一个凸锥。
若我们令 ,则估计凸集定义,子空间属于一个凸集。
综合以上,子空间也属于凸锥。
一条直线是一个仿射集合,一个通过原点的直线属于子空间(证明过程类似上面)
三、仿射包(affine hull)
一个集合
内所有点的仿射组合,称作该集合的仿射包, 即 aff
: