L-BFGS算法比较适合在大规模的数值计算中,具备牛顿法收敛速度快的特点,但不需要牛顿法那样存储Hesse矩阵,因此节省了大量的空间以及计算资源。本文主要通过对于无约束最优化问题的一些常用算法总结,一步步的理解L-BFGS算法,本文按照最速下降法 - 牛顿法 - 共轭梯度法 - 拟牛顿法 - DFP...
分类:
其他好文 时间:
2014-10-14 17:37:39
阅读次数:
349
TBOX提供了各种常用算法,对容器中的元素进行各种操作,这里主要介绍下排序和查找算法。 排序算法目前支持如下几种: 1. 快速排序:tb_quick_sort 2. 堆排序: tb_heap_sort 3. 插入排序:tb_bubble_sort 4. 冒泡...
分类:
其他好文 时间:
2014-09-20 19:38:49
阅读次数:
183
一、图的可行遍历 1)欧拉图 条件:1、图连通;2、奇度点数为0或2; 算法(一次dfs) 时间复杂度O(E),空间复杂度O(E) 1 //前向星,vis[]标记走过的边,cnt初始为1,i的反向边为i^1 2 void addedge (int u, int v) { 3 ...
分类:
其他好文 时间:
2014-09-09 18:16:09
阅读次数:
392
一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立...
分类:
其他好文 时间:
2014-09-06 10:56:23
阅读次数:
263
概述双重编解码算法是实现数据保护的关键技术。磁盘阵列中的常用算法是RAID6,其属于Reed-solomon算法范畴。RAID6算法计算复杂度较高,往往需要硬件加速单元的支持。随着闪存技术的发展,新的编解码技术层出不穷,因此有必要了解常用阵列技术的双重编解码算法,通常来讲,常用..
分类:
其他好文 时间:
2014-08-31 02:52:51
阅读次数:
313
前面两篇文章,分别介绍了字符串的概念、抽象数据类型、KMP模式匹配算法。这篇文章,我们来学习字符串的一些常用算法。字符串的相关操作算法StrAssign:/*功能:生成一个其值等于Chars的串T*/Status StrAssign(String T, char *chars){ int i...
分类:
其他好文 时间:
2014-08-29 17:53:38
阅读次数:
183
//汉诺塔
void Hanoi(int n,string A,string B,string C){
if(n == 1)
cout"<<C<<endl;
else{
Hanoi(n-1,A,C,B);
cout"<<C<<endl;
Hanoi(n-1,B,A,C);
}
}
//递归实现
int maxNUm(int num[],int n){
if(1 ==...
分类:
其他好文 时间:
2014-08-29 11:03:07
阅读次数:
174
插入排序:public static void main(String[] args) { int array[] = {5,4,2,45,44,34,22}; System.out.println(Arrays.toString(array)); for (int i = 0; i < ar...
分类:
编程语言 时间:
2014-08-27 23:26:38
阅读次数:
248
一、基本概念
动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
动态规划是运筹学中用于求解决策过程中的最优化数学方法。当然,我们在这里关注的是作为一种算法设计技术,作为一种使用多阶段决策过程最优的通用方法。它是应用数学中用于解决某类最优化问题的重要工具。
如果问题是由交叠的子问题所...
分类:
其他好文 时间:
2014-08-13 03:36:25
阅读次数:
385