最优化方法
weixin_35338624
这个作者很懒,什么都没留下…
展开
-
最优化方法----有约束优化问题C++实现
问题描述在可行域内,沿着目标函数的负梯度方向移动;沿着被破坏的约束的梯度方向与目标函数梯度方向的和向量移动。优化问题: min x^2+2*y^2 s.t. x+...原创 2019-09-22 22:02:22 · 2853 阅读 · 2 评论 -
最优化方法:Fletcher-powell算法C++实现
优化目标: f(x) = 1/2 * X'AX 其中 A = {{3,-1},{-1,1}}#include<iostream>#include<vector>using namespace std;vector<vector<double>> A={{3,-1},{-1,1}};vector<doub...原创 2019-09-21 19:24:10 · 801 阅读 · 0 评论 -
最优化方法----powell共轭梯度算法
Fletcher_Reeves共轭梯度算法要先计算梯度,然后对梯度进行修正得到一组共轭梯度。而计算梯度和计算函数值一样耗时。powell算法使用一维搜索技术寻找一组共轭梯度,从而不需要计算梯度。#include<iostream>#include<vector>using namespace std;vector<vector<double>...原创 2019-09-21 14:27:13 · 1720 阅读 · 0 评论 -
最优化方法:Fletcher-Reevse共轭梯度算法理论与C++实现
在https://blog.csdn.net/weixin_35338624/article/details/100981729中提到过,最速下降算法的缺陷是不能在有限步内找到最优值。如果把每次更新的方向选为共轭方向,在理论上可以保证有限步内达到局部最优点。数学证明参考https://www.bilibili.com/video/av14666879/?p=11问题为了验证共轭梯度算...原创 2019-09-19 15:16:03 · 860 阅读 · 0 评论 -
最优化方法:无约束梯度问题----最速下降法理论与C++实现
背景优化问题的关键在于每次更新时方向、步长的选择(比较简单的方式是固定步长,缺陷步长选太小收敛速度慢,太大则在靠近最优值时剧烈震荡)。最速下降方法:方向选择的是负梯度方向,步长通过极小化 g(k) = f(x0+k*dx) 确定(这里 g(k) 是关于k这个常数的一元函数,可以通过求导等于零求解析解,也可以使用一元搜索方法:斐波那契、黄金分割法迭代计算)。由于函数的二阶泰勒展开式(忽略...原创 2019-09-18 14:35:54 · 2142 阅读 · 0 评论 -
最优化方法:斐波那契搜索
适用于无约束、单变量或一个自由度问题#include<iostream>#include<vector>#include<limits>#include<cmath>#include<algorithm>using namespace std;vector<int> vect(46);int feibo(...原创 2019-09-14 17:14:11 · 681 阅读 · 0 评论