slide1
Download
Skip this Video
Download Presentation
上帝掷 色子 吗

Loading in 2 Seconds...

play fullscreen
1 / 22

上帝掷 色子 吗 - PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 上帝掷 色子 吗' - yagil


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
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
slide12
平面最近点对
  • 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;
slide13
平面最近点对
  • What if?....
  • 出题人太ws,测试数据中点的x比较接近
slide14
平面最近点对
  • 改进:
  • 投影到一个随机的向量上,两点距离≥投影点距离
  • 按投影位置排序,投影点距离≥ans,则break
  • 出题人卡不到
slide15
平面最小三角形
  • 给定N个点,求一个以其中三个点为顶点的三角形,使其周长最小。
  • 传统算法:O(nlogn),难写,常数大
  • O(n^3)
  • 随机向量投影,O(n^3)+break比O(nlogn)快
slide16
费马点问题
  • 给定n个点,求一个点到这n个点的距离和最小。
slide17
费马点
  • 爬山算法: (求局部最优解)
  • 随机设置一个初始点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
slide18
模拟退火
  • 原理:热力学退火过程,给固体设置一个充分高的温度,温度高时,原子容易脱离原位置做自由运动。再让其慢慢冷却。冷却时原子会趋向内能最小的地方,但也有一定概率去内能较大的地方,直到温度足够低。
  • 流程:
  • 初始温度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
slide20
遗传算法
  • 原理:达尔文进化论和遗传学机理
  • 有n个个体(DNA序列),按照适应度(权值)从高到低排序。
  • 繁殖:选出两个个体,以高概率选择适应度高的,低概率选择适应度低的,以一定概率P交配得出两个新个体代替原来的老个体,新个体的DNA是老个体DNA的组合。
  • 突变:以一定概率随机改变序列的一到两位。
  • 重复
  • 适应度高的个体得到保存,适应度低的个体淘汰。
slide21
拓展
  • 遗传算法与蒙娜丽莎
  • TSP问题->模拟退火
ad