
算法
文章平均质量分 51
sinat_25357975
fighting
展开
-
算法(DP):矩阵链相乘
定义:1.Mij =Mi*Mi+1*Mi+2*....Mj 表示从第i个矩阵乘到第j个矩阵;2.C[i,j]表示从第i个矩阵乘到第j个矩阵的最小的耗费相乘方式; 则Mij = Mik *M(k+1)j 3.即使用动态规划来记录每一个C[i,j],寻找C[i,j]与C[1,N]的关系,获得关系式,最终求得C[1,N]。递推关系式:Java代码如下:原创 2016-01-05 10:42:22 · 997 阅读 · 1 评论 -
算法(DP):最长公共子序列问题
最长公共子序列问题大体分为两种方法:1.蛮力搜索:列举A所有的2^n个子序列,对于每一个子序列在θ(m)时间内来确定它是否也是B的子序列,复杂性是θ(m*2^n),是指数复杂性的。2.动态规划:原创 2016-01-03 10:53:35 · 517 阅读 · 1 评论 -
算法:寻找第K小元素
使用从一端走的快速排序的寻找第K小元素:(注意)1.在进行一次循环时的两种交换元素顺序①a[j]right时2.何时递归,何时返回数据,左右递归的判断,递归的参数。public class FindKth {public static void main(String[] args) {int A[] = {5,3,-4,-1,2,-2,-3,1};Find原创 2016-01-03 09:32:28 · 1033 阅读 · 0 评论 -
禁忌搜索算法
1.局部搜索算法a.定义step1:选定一个初始可行解:x0;记录当前最优解:xbest = x0,T = N( xbest )。step2:当T \ ( xbest ) = 空集时,或者满足其他停止运算准则时,输出计算结果,停止运算;否则,从T中选一集合S,得到S中的最好接xnow;若f ( xnow ) b.方法1--全邻域搜索(以五城市对称转载 2016-03-31 22:23:46 · 31383 阅读 · 5 评论 -
使用NEH解决no-wait flowshop makespan问题 (源码)
1.NEH的原理(1)将每个工件在所有机器上的加工时间求和;对求和后的值进行从大到小排序;(2)首先选择第一个工件(加工时间最长的),用第二个工件插入到第一个工件的前后两个位置,计算makespan,小的被保存;(3)将上一步保存的序列固定位置,使用下一个工件插入到之前的工件中,并比较得出最小的makespan并保存;(4)重复上一步,得出最终结果。2.源码clc;原创 2016-06-04 09:28:44 · 7857 阅读 · 15 评论 -
启发式与元启发式算法
启发式算法(Heuristic Algorigthm)是一种基于直观或经验构造的算法,在可接受的花费(指计算时间、计算空间等)给出待解决优化问题的每一实例的一个可行解,该可行解与与最优解的偏离程度一般不可以事先预计。 启发式算法是一种技术,这种算法可以在可接受的计算费用内找到最好的解,但不一定能保证所得到解的可行性及最优性,甚至大多数情况下无法阐述所得解与最优解之间的近似程度。原创 2016-05-23 09:34:10 · 14941 阅读 · 1 评论 -
三种方法求解最大公约数
%greatest common divisor 最大公约数clc;clear;%1.辗转相除法(欧几里得算法):两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。a=250;b=100;c=1;while(c~=0) c=mod(a,b); if(c==0) b else a=b; b原创 2016-10-16 22:11:04 · 4367 阅读 · 0 评论 -
局部加权线性回归
紧接着之前的问题,我们的目标函数定义为:我们的目标是最小化cost function:换成线性代数的表述方式:是mxm维的对角矩阵是mxn维的输入矩阵是mx1维的结果是nx1维的参数向量令有既权重定义为:参数τ控转载 2017-03-10 11:00:44 · 1784 阅读 · 0 评论