摘要: 对于一个凸二次规划问题 它的Lagrange函数为 在最优点,有 如果知道最优点的有效约束集,则可以求解等式约束二次规划 求出原问题的KKT点 原始有效集方法从计算可行点开始,要求所有迭代点可行 定义第k次迭代时xk处的有效约束(等式约束和等号成立的不等式约束)指标集为“工作集”,记为Wk,Wk中所 阅读全文
posted @ 2018-06-26 20:13 "kisetsu 阅读(1793) 评论(0) 推荐(0) 编辑
摘要: 等式约束的二次规划问题一般形式是 其中 应用直接消去法求解:将A分块,使其包含一个m×m非奇异矩阵AB,x,g做对应的分块 带入到等式约束条件中,可解得xB,再带入q(x),于是二次规划问题转化为无约束规划问题 这个二次规划问题有解析解 广义消去法是消去法的一个推广,将Rn划分成两个空间:一个A的列 阅读全文
posted @ 2018-06-20 21:43 "kisetsu 阅读(3351) 评论(0) 推荐(0) 编辑
摘要: 首先需要了解几个概念: 对于一个标准的线性规划问题 设A为m×n满秩的矩阵,将它分块为A=[B N],其中B为m×m非奇异矩阵,x按B和N的列选择划分成x=(xB xN)T 于是Ax=b可以写成 因此有 取xN=0,有 这样的解叫做基本解,xN、xB分别叫非基本变量和基本变量,N、B分别是基矩阵、非 阅读全文
posted @ 2018-06-12 17:35 "kisetsu 阅读(1361) 评论(0) 推荐(0) 编辑
摘要: 要实现计算任意表达式(如算数表达式和逻辑表达式),首先想到的是输入一个表达式字符串,将其转化为后缀表达式进行计算。因此该问题的第一步是如何将中缀表达式转化为后缀表达式。 利用数据结构中的栈来进行操作,在叙述时,用S="..."来代表栈及其元素,如S="A1B2C3"表示A为栈底元素,3为栈顶元素;O 阅读全文
posted @ 2018-06-12 10:04 "kisetsu 阅读(1893) 评论(0) 推荐(0) 编辑
摘要: 牛顿法的思想是利用目标函数的二次Taylor展开模型的极小点去逼近目标函数的极小点。 设f(x)二次连续可微,Hesse矩阵正定,在xk附近展开f 令等式取0,得牛顿迭代公式 ,即 当初始点距离最优解较远时,Gk不一定正定,迭代不一定收敛,因此引入了步长因子α 带步长因子的牛顿法,即阻尼牛顿法,迭代 阅读全文
posted @ 2018-06-11 14:45 "kisetsu 阅读(9009) 评论(1) 推荐(1) 编辑
摘要: (FR)共轭梯度法是介于最速下降法和牛顿法之间的一个方法,相比最速下降法收敛速度快,并且不需要像牛顿法一样计算Hesse矩阵,只需计算一阶导数 共轭梯度法是共轭方向法的一种,意思是搜索方向都互相共轭 共轭的定义如下: 共轭梯度法是一种典型的共轭方向法,它的搜索方向是负梯度方向和上一次搜索方向的一个组 阅读全文
posted @ 2018-06-11 14:45 "kisetsu 阅读(7039) 评论(0) 推荐(0) 编辑
摘要: 第一次使连接C和MySql时,需要安装C语言的连接工具,可以用linux终端下的apt进行安装: 在Clion中创建工程后,需要让工程连接libmysqlclient.so(否则编译时会报“xx未定义的引用”错误),在CMakeList中输入如下一行代码: 这里的database是工程名,要根据具体 阅读全文
posted @ 2018-06-11 14:44 "kisetsu 阅读(3200) 评论(0) 推荐(0) 编辑
摘要: 示例代码如下: 阅读全文
posted @ 2018-06-11 14:44 "kisetsu 阅读(2588) 评论(0) 推荐(0) 编辑
摘要: 精确线搜索花费的计算量一般较大。一般问题中,特别是初始迭代点具体目标点较远时,不精确线搜索的效率往往要高于精确线搜索。并且牛顿法和拟牛顿法的收敛速度不依赖于步长的搜索,因此可以对α进行不精确线搜索。 不精确线搜索包括Goldstein准则、Wofle准则和Armijo准则。 1. GoldStein 阅读全文
posted @ 2018-06-08 10:19 "kisetsu 阅读(2602) 评论(0) 推荐(0) 编辑
摘要: 优化算法经常要用到导数、梯度、Hesse矩阵等,因此编写了一个类用于实现这些功能 建立一个Function类,构造函数的参数是一个函数 其中part的功能是求偏导,var_index表示是第几个变量,val表示这些变量的值 diff的功能是方便一元函数求导 私有函数__diff_是为了hesse编写 阅读全文
posted @ 2018-06-08 08:54 "kisetsu 阅读(9785) 评论(0) 推荐(0) 编辑