上帝掷
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

上帝掷 色子 吗 PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on
  • Presentation posted in: General

上帝掷 色子 吗. 谢其哲. Introduction. 上帝掷 色子 吗 -> 随机和 概率 能力 : 1. 很大 概率上的正确 解 2. 较 优 解 3. 期望时间 复杂 度 很好的正确解 效果好. 最好写的平衡树 Treap. 期末时当你开始预习数据结构的平衡树是什么感受? AVL , 红黑, AA …… What the f* ck are these ugly trees? 被吓倒了? 来看看居家旅行杀人越货必备之平衡树: Treap. 最好写的平衡树 Treap. 堆 + 排序 二叉树 权 值: key, aux 。

Download Presentation

上帝掷 色子 吗

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


5614469

上帝掷色子吗

谢其哲


Introduction

Introduction

  • 上帝掷色子吗 ->随机和概率

  • 能力:

  • 1.很大概率上的正确解

  • 2.较优解

  • 3.期望时间复杂度很好的正确解

  • 效果好


Treap

最好写的平衡树Treap

  • 期末时当你开始预习数据结构的平衡树是什么感受?

  • AVL,红黑,AA……

  • What the f*ck are these ugly trees?

  • 被吓倒了?

  • 来看看居家旅行杀人越货必备之平衡树:Treap


Treap1

最好写的平衡树Treap

  • 堆+排序二叉树

  • 权值:key, aux。

  • Key:左子树≤根≤右子树(排序二叉树)

  • Aux: 根≤左子树,右子树(堆)


Treap2

最好写的平衡树Treap

  • 插入:根据key找到插入的位置

  • 随机生成aux,旋转调整


Treap3

最好写的平衡树Treap

  • Insert(I, k)

    • If (i==0)

      • 新建点,aux[i] = rand()

    • If (k < key[i])

      • Insert(l[i], k)

      • If (aux[l[i]] < aux[i]) right(i)

    • Else

      • Insert(r[i], k)

      • If (aux[r[i]] > aux[i]) left(i)


Treap4

最好写的平衡树Treap

  • Delete差不多,只有单旋

  • 期望高度:O(logn)

  • 平均复杂度:O(logn)


Miller rabin

素数判定Miller-Rabin算法

  • O() -> O(logn)

  • 费马小定理:

  • (p为素数, a<p)

  • 二次探测定理:

  • P为合数时,x取值有很多,如


Miller rabin1

素数判定Miller-Rabin算法

  • 令,d为奇数

  • 若或,则称p通过以a为底的素性测试(为素数)。

  • 原理:若p为素数,则

  • 考虑数列. 最后一位是1,每一位是前一位的平方%p,设数列最后一个1的前一个是x,若x≠-1则p为合数。

  • 例子:a=2, p=13,p-1=12=

  • 数列:8, 64%13=12, 144%13=1


Miller rabin2

素数判定Miller-Rabin算法

  • 素数一定会通过测试

  • 合数有1/4的概率通过测试

  • 取6次不同的底a,误判率不到千分之二

  • 取内无误判。


A b c

判断A*B=C?

  • Problem: 给定A,B,C(n*n的矩阵),判断是否A*B=C

  • 随机生成D(1*n的矩阵),判断是否D*A*B=D*C


5614469

平面最近点对

  • O(logn)

  • 两点距离≥X值的差

  • 解1: (对随机数据效果很好)

  • 把输入的点按x从小到大排序

  • For i = 1 to n

  • for j = i + 1 to n

  • if (x[j] – x[i] < ans)

  • ans = min(ans, distant(i, j));

  • else break;


5614469

平面最近点对

  • What if?....

  • 出题人太ws,测试数据中点的x比较接近


5614469

平面最近点对

  • 改进:

  • 投影到一个随机的向量上,两点距离≥投影点距离

  • 按投影位置排序,投影点距离≥ans,则break

  • 出题人卡不到


5614469

平面最小三角形

  • 给定N个点,求一个以其中三个点为顶点的三角形,使其周长最小。

  • 传统算法:O(nlogn),难写,常数大

  • O(n^3)

  • 随机向量投影,O(n^3)+break比O(nlogn)快


5614469

费马点问题

  • 给定n个点,求一个点到这n个点的距离和最小。


5614469

费马点

  • 爬山算法: (求局部最优解)

  • 随机设置一个初始点b,设置初始步长T

  • While T>T_min

    • Flag=false

    • For i = 1 to k

      • 生成长度为T的随机向量v

      • If b+v优于b

        • b=b+v, flag=true

    • If (flag == false) T=T*0.8


5614469

模拟退火

  • 原理:热力学退火过程,给固体设置一个充分高的温度,温度高时,原子容易脱离原位置做自由运动。再让其慢慢冷却。冷却时原子会趋向内能最小的地方,但也有一定概率去内能较大的地方,直到温度足够低。

  • 流程:

  • 初始温度T,初始解S,每次迭代次数L,降温系数p

  • While T>T_min

    • Flag=false

    • For k = 1 to L

      • 随机长度为T的增量D,S’=S+D

      • 计算df=f(S’)-f(S)

      • df>0时(变优了)接受解S’, flag=true

      • df<0时(变差了)以接受解S’

    • If (flag==false)T=T*p


Poj3301

最小正方形覆盖(poj3301)

  • 枚举正方形一条边的角度,计算最小需要的边长。

  • 初始温度T=pi/2, 角度S=0,每次迭代次数L=20, 降温系数p=0.5

  • While T>1e-8

    • Flag=false

    • For k = 1 to L

      • t = T * (-1到1中的一个随机数)

      • df=f(S)-f(S+t) (f(S)为一条边角度为S时最小正方形边长)

      • df>0时接受解S’,flag=true

      • df<0时 以接受解S’()

    • If (flag==false)T=T*p


5614469

遗传算法

  • 原理:达尔文进化论和遗传学机理

  • 有n个个体(DNA序列),按照适应度(权值)从高到低排序。

  • 繁殖:选出两个个体,以高概率选择适应度高的,低概率选择适应度低的,以一定概率P交配得出两个新个体代替原来的老个体,新个体的DNA是老个体DNA的组合。

  • 突变:以一定概率随机改变序列的一到两位。

  • 重复

  • 适应度高的个体得到保存,适应度低的个体淘汰。


5614469

拓展

  • 遗传算法与蒙娜丽莎

  • TSP问题->模拟退火


5614469

谢谢!


  • Login