随机算法初探

随机算法,顾名思义,就是在算法的运行过程中引入了随机机制,因此每次运行得到的结果和运行时间不一样。常见的随机算法有两种Monte Carlo算法 和 Las Vegas算法。

Monte Carlo 算法。算法总能够给出一个结果,不过这个结果是一个随机变量,有一定概率是正确的。其中,给出正确结果的概率是一个大于1/2的数。

Las Vegas算法。算法不一定能在有限时间内给出结果,不过一旦它给出了结果,就一定是正确的。其中,给出结果的概率是一个任意大于0的数。

容易证明,上述两类算法虽然只是以一定概率的到正确结果,但是可以通过运行多次,使得成功概率无限逼近1。

案例1 Ramsey Numbers

“任意6个人的聚会,总能够找出3个互相认识的或者互相不认识的”。相信大家对这个表述并不陌生。归结到数学表示上,它实际上说的是,对于一个有6个顶点的无向图,我们总能找到size为3的独立集(任意两点不相连)或者最大团(任意两点之间均相连)。特别的,我们还有一个数Ramsey Number来表述这一数学问题:


monotone set就是独立集与最大团的合称。更一般的我们有R(k,l),表示对于保证含有size k的最大团与sizel的独立集的图的最小顶点数。

根据对称性,容易得到R(k,l) = R(n-l,n-k)。一般的,我们可以给出R(k,l)的一个上界的估计: R(k,l) \leq {k+l-2}\choose{l-1} (还没有搞懂)。我们也希望得到它的一个下界。思路也很简单,考虑一个含有n个顶点的随机图。每两个点之间都有\frac{1}{2}的几率有边相连。我们考察这个时候图中找不到size为kmonotone set的概率P(n)。如果概率大于0,那么就说明实际的R(k)要比n要大。记V 的导出子图X中找不到monotone set为事件\epsilon_x

案例2 Satisfiability of Boolean Formulas (SAT)

布尔可满足性问题,指给定一个合取范式(conjunctive norm form),如果能够找到一组变量赋值,使得最后表达式的结果为真,我们则说这个式子是可满足的。

一般来说,这是一个NP问题。但是当给定的式子满足一定条件时,我们能够很轻易得判断他们是否是可满足的。

证明思路其实很简单。我们一共有2^n种赋值方法。对于子表达式C_i,有2^{n-l_i}种赋值方法使得子表达式不满足。因此,所有的不满足的赋值最多有

所以我们至少能够找到一组赋值,使得给定的合取范式为真。

下面我们可以给出找到这个赋值的方法。思路也很简单,对变量一个一个赋值。比如说,首先对x_1赋值。按照子式中包含的x_1还是\bar{x}_1,或者不包含x_1,我们将整个合取范式分成三部分A,B,C。当给x_1赋值为0的时候,表达式剩下A'和C;给x_1赋值为1的时候,表达式剩下B'和C。其中A'的子式长度指数和为\sum_1^{|A|}2^{-l_i+1}. B'为\sum_1^{|B|}2^{-l_i+1}.因此,表达式1的指数和为\sum_1^{|A|}2^{-l_i+1}+\sum_1^{|C|}2^{-l_i};表达式2的指数和为\sum_1^{|B|}2^{-l_i+1}+\sum_1^{|C|}2^{-l_i}。将两个式子相加,得到

image.png

两个数相加小于2,其中必有一个数小于1。我们只要选择那个小于1的取值就行。

案例3 Long Path in Graph

在给定的无向图中找到最长路径是一个NP-hard问题。因为在无向图中找到一个Hamiton回路就已经是一个NP-complete问题。我们把要求降低一些,在hamiton图中找到一个k = \log n长度的路径。下面我们证明,将有一个关于n的多项式时间的算法能够解决这个问题。不过,我们稍微修改一下问题:给定图一种涂色coloring。如果给定路径中每个点的颜色都不相同,我们就说这是一条彩虹路径。问题转变为:给定一个染色图,找到最长的彩虹路径。

首先,我们给出一个算法,它能够在多项式时间内解决上述问题,用到的思想是动态规划。定义P_i(v):

需要注意的是,P_i(v)是一个集合的集合。其中的元素是集合,是以v结尾长度为i的彩虹路径的点的颜色集合。我们希望从P_i(v)中推出P_{i+1}(v)。思路也很清楚,我们找到v的邻域点集\Gamma(v)。对于x \in \Gamma(v), 考察P_i(x)中每一个元素S,也即颜色序列,如果序列中不含有v,那么我们可以将S和color of v同时加入P_{i+1}(v)。以此类推。

算法如下:


对于给定的长度i,最内层循环最大值是{k}\choose{i}.外层两个循环的值为2*mm是图G的边的个数。得到复杂度是O(2^k)2m,当我们有k=\log n的时候,复杂度显然是关于n的多项式。(此处有疑问)

接下来回到原来的问题:给定无向图,如何找到长度为k=\log n的路径。首先,我们分情况讨论:如果不存在,那么显然找不到。如果存在,那么我们可以随机给图上色,然后用上述算法进行求解。如果找到,则问题解决;如果没有找到,并不代表不存在,有可能只是这个涂色方案不合适。我们固定一条路径P,有如下的递推关系:


注意其中的逻辑转换。有两个重要的不等式
1-x <= e^{-x}
以及
k! >( \frac{k}{e})^k

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 本文简书备份地址:微信红包随机算法初探 最近看了一篇文章,讲微信红包随机算法的。感觉很不错,所以自己实现了下,并进...
    Coder_Roc阅读 10,324评论 1 8
  • 随机数是一个非常重要的概念,最简单的应用可能就是掷骰子游戏。而更深层的应用就有谷歌的试试手气,微博的随便看看,还有...
    陌上之云阅读 303评论 0 1
  • 轻绒绒, 满天飞舞, 松涛沉醉, 心晖碎! 又览翠竹突起波澜, 披银装素裹尽娇娆! 小草亮晶晶, 泉水叮咚吟, 少...
    吴楚红阅读 157评论 0 1
  • 最近小宝处于认字敏感期,对识字保持了极大的热情。今天他说:妈妈,“只”字像个小鸡,特别小的那种。你看他有...
    探索的蜗牛阅读 147评论 0 0
  • 信息系统的概念一般泛指收集、存储、处理和传播各种信息的具有完整功能的集合体。当代的信息系统是指以计算机为信息处理工...
    彬荣阅读 1,766评论 0 0