一、引言
在机器学习以及优化组合问题中,最常用的方法就是梯度下降法。比如BP神经网络,多层感知器的神经元(units)越多,对应的权矩阵也就越大,每个权可视为一个自由度或者变量。我们知道自由度越高,变量越多,模型越复杂,模型的能力越强。但是模型能力越强,模型就越容易过拟合,对噪声太敏感。另一方面,使用梯度下降进行最优解搜寻时,多变量的误差曲面很像是连绵起伏的山峰一样,变量越多,山峰和山谷也越多,...
分类:
其他好文 时间:
2015-08-10 12:02:38
阅读次数:
261
记得以前做过一道经典的题目,也是选k套筷子,那么不难描述状态 ,即用d[i][j]表示在前i根筷子里选j双的最优解, 该题的唯一不同就是多加了一根最长的筷子 , 为了解决这个问题,就要想办法在状态转移的时候排除最长筷子的影响 。
我们还是先来考虑简单情况,假设没有最长的筷子,那么对于每一个状态只有两个决策 :选第i根筷子还是不选 。因为已经排好序了,所以选相邻两根筷子最优,因此如果不选第i根,状...
分类:
其他好文 时间:
2015-08-09 17:13:09
阅读次数:
92
一、引言
在机器学习以及优化组合问题中,最常用的方法就是梯度下降法。比如BP神经网络,多层感知器的神经元(units)越多,对应的权矩阵也就越大,每个权可视为一个自由度或者变量。我们知道自由度越高,变量越多,模型越复杂,模型的能力越强。但是模型能力越强,模型就越容易过拟合,对噪声太敏感。另一方面,使用梯度下降进行最优解搜寻时,多变量的误差曲面很像是连绵起伏的山峰一样,变量越多,山峰和山谷...
分类:
其他好文 时间:
2015-08-08 10:31:01
阅读次数:
270
优化算法入门系列文章目录(更新中): 1.模拟退火算法 2.遗传算法一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要.....
分类:
编程语言 时间:
2015-08-07 23:37:09
阅读次数:
234
经典的贪婪。两种方案:一个:让我们来最快,第二快,在过去的第一,最快的回。然后最慢,最慢第二,在过去。次最快的回来a[0]+a[1]+a[1]+a[n-1]二:最快的和最慢的过去,最快的回来,最快的和当前最慢的过去,最快的回来。a[0]+a[n-1]+a[0]+a[n-2]每次取最优解。注意:最后剩...
分类:
其他好文 时间:
2015-08-07 21:58:39
阅读次数:
116
由于我们并不清楚要求的W的值,但是我们知道W的值不超过矿石中价值最大的,如果W大于了矿石中价值最大的,那么Y的值为0,无法达到最优解。
因此,很容易就能想到在确定W的值要用二分的方法。
在分析这道题的时候,我们很容易知道Y的值是满足单调性的,当W的值越大,Y的值越小,因为W越大,能够选的矿石就越少。
所以我们把得到的Y值作为判断条件,如果Y比S小,就说明检验值了,而W取大了。每次更改W的同时...
分类:
其他好文 时间:
2015-08-07 20:00:48
阅读次数:
106
题目地址:HDU 5360
题意:给定n个人,现在要邀请这些人去远足,但每个人同意邀请的条件是当前已经同意去远足的人数c必须满足c>=l[i]&&c<=ri,问你邀请的顺序是什么才能使尽可能多的人去远足,若有多个最优解,输出任意的一个。
思路:先按照L从小到到排序,把当前符合的L放入优先队列中 ,然后对队列中的R从小到大排序,贪心的选择R小的,然后乱搞一番就可以了。#include <stdio...
分类:
其他好文 时间:
2015-08-07 16:17:30
阅读次数:
192
题意:置换群,问环的长度有多少种
分析:
环的长度就是每次你选择的区间长度的最小公倍数。总区间长度是n,那么这道题就是求和等于n的各个数的最小公倍数有多少种。
状态:dp[i][j]前i个质数,区间长度不超过j的最优解
转移:dp[i][j]=dp[i-1][j]+dp[i-1][j-k],k=prim[i]^1,2...
这题和上一题的dp难哭我了。
代码:
#include
#i...
分类:
其他好文 时间:
2015-08-04 22:56:10
阅读次数:
105
设f[x]为x子树里能选的最多的路径数,h[x]为x子树里往上走的点的集合,且不与x子树内的最优解冲突首先f[x]=sum(f[son])若h[son]与x可以直接匹配,则匹配上,f[x]++然后把剩下的未配对的son之间进行匹配,f[x]+=最大匹配数因为度数不超过10,所以设dp[S]表示二进制...
分类:
其他好文 时间:
2015-08-04 22:45:08
阅读次数:
278
IDA*算法,迭代加深搜索和A*算法的结合 。
迭代加深搜索适用于那些没有明显深度上限的题目,将深度从小到大枚举,直到找到最优解 ,减小了深搜的盲目性 。
A*算法需要一个乐观估价函数,在这个函数里寻找一个代价最小的点去搜索,所以时间复杂度都浪费在这个上面了 。
其实我照着紫书上巧的,感觉很容易,实际上其中的算法思想是要静下心来仔细研究的,练ACM这么久了,深深感到这个竞赛是那么的迷人,又是...
分类:
编程语言 时间:
2015-08-04 21:06:59
阅读次数:
163