首页 > 其他分享 >第十二章 Amortized Analysis平摊分析

第十二章 Amortized Analysis平摊分析

时间:2022-12-04 13:11:07浏览次数:51  
标签:势能 Amortized Analysis 实际成本 平摊 操作 代价 成本

第12章 Amortized Analysis平摊分析

第10周

记于2022/11/29

概率分析与平摊分析的区别

  • 概率分析
    • 平均执行时间
      • 考虑同一算法的所有可能输入情况
      • 如果使用概率,则称为期望运行时间
      • 针对单一操作/算法
  • 平摊分析
    • 针对某一数据结构的 操作序列
    • 不使用概率
    • 操作序列中的平均操作性能/代价【主要针对对象】
      • 操作代价可能不同,其中有些代价巨大

平摊分析策略

聚集分析

  • n个操作的序列最坏情况下花费总时间为T(n)

  • T(n) / n每个操作的平均代价(或摊还代价)

  • image-20221129165334892image-20221129165349084

  • image-20221129165247797image-20221129165527980

  • image-20221129165624873 - A[0]位每次都会进行反转,总共进行n次 - A[1]位每间隔一次进行反转,共计n/2向下取整 .... - A[i]位,n/(2^i)
  • 对于n个累加的序列,最坏情况运行时间为O(n),因此每一个操作的平摊成本/【平均成本】为O(1)

记账方法 / 核算法

  • 【为不同的操作分配不同的费用 ,费用的金额称为**平摊成本**】
  • 每个操作赋予一个(不同的)平摊代价
  • 平摊代价高于其实际代价 / 平摊成本大于实际成本
    • 差值称为某一操作的存款(credit),如果存款不足则无法进行该操作
  • 存款用于补偿以后那些平摊代价低于实际代价的操作
  • 假设用 ci 表示第i个操作的实际成本/真实代价,用 ci` 表示其平摊成本/摊还代价
  • 满足:image-20221129204451818
  • 适用于所有的操作序列,因此要求总的平摊成本作为总的实际成本的上限,总的平摊成本 - 总的实际成本>=0
  • 在中间任意时刻,都要保持总的平摊成本 - 总的实际成本>=0
  • image-20221129211038656 - PUSH 的**摊还代价**为 2 ,是因为其中有一个1给PUSH操作,还有一个1是因为现在压入一个数据将来要出栈,需要预留一个POP操作的成本 - 每个操作的平摊成本为O(1) - 对于二进制计数器,如果用1¥代表每次操作的成本,flip of one bit就代表花1¥,那么如果某位由0变为1给出的平摊成本为多少? **2¥,1¥用于支付现在由0->1的费用(实际成本),1¥存起来用于支付将来由1->0的费用** - 每次操作最多置 1 bit,因此一个操作的平摊成本最多为2¥ - 因此,n次操作总的平摊成本为O(n),平均每次的成本为O(1)

势能方法

  • 类似记账方法

  • 存款不是某一操作的,而是整个数据结构的势(Potential);预付的不是存款,而是一种“势能”,将势能释放即可以用来支付未来操作的代价

  • image-20221130192819228 - 总的平摊成本=总的实际成本 + 势能的总变化
  • 栈操作

    • image-20221130195039535
    • image-20221130195917093
    • 势能等于栈中元素的个数
  • 二进制计数器

    • image-20221130201314093
    • 势能应该为某次操作后计数器中 1 的个数! 因为0的个数只影响当前这一位,这一位完全可以用现在已有的势能来支付其开销
    • 如果bi>0(中间计数状态),bi等于原来的1的个数,减去重置个数,再加一个新set为1的个数
    • 实际成本ci为ti+1,平摊成本<=2

动态表

  • 操作:表插入、表删除

  • 应用场景

    • 哈希表
    • 事先不知道表的大小;随插入而扩展;随删除而收缩
  • 目标

    • 得到O(1)的平摊成本
    • 未使用的空间 <= 已经使用的空间
  • 负载系数α = num/size

    • 如果size=0,则num=0,α=1
    • 不允许α>1 (目标2)
  • 表空间满了则size加倍,保证α >= 1/2

  • Insertimage-20221130210527628

    • 聚集分析
      • image-20221130210819265
      • image-20221130211037214
    • 记账方法:插入x 收费3¥ :1¥-> x实际插入费用 1¥ -> 将来删除x的费用 1¥ -> 其他项目【移动的费用】
    • 势能方法:
      • image-20221130213455433
      • image-20221130213509310
      • image-20221130213522365
  • Expansion

    • image-20221130213721563
    • image-20221130213751320
  • Strategy

    • image-20221130213906761
    • image-20221130213921888
    • image-20221130213954197
    • image-20221130214010603

标签:势能,Amortized,Analysis,实际成本,平摊,操作,代价,成本
From: https://www.cnblogs.com/buwenliunian/p/16949699.html

相关文章

  • c++的线程安全静态检查 Thread Safety Analysis
    leveldb源码的过程中,发现很多成员变量被GUARDED_BY修饰,如下:structIterState{port::Mutex*constmu;Version*constversionGUARDED_BY(mu);MemTable*const......
  • Image Processing and Analysis_8_Edge Detection
    此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像......
  • Image Processing and Analysis_8_Edge Detection
    此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像......
  • Image Processing and Analysis_8_Edge Detection:The Design and Use of Steerable Fi
    此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像......
  • Image Processing and Analysis_8_Edge Detection
    此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像......
  • Image Processing and Analysis_8_Edge Detection
    此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像......
  • Image Processing and Analysis_15_Image Registration
    此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像......
  • 2019 Non-Profiled Deep Learning-based Side-Channel attacks with Sensitivity Anal
    一、引言侧信道分析可以分为建模类攻击(模板攻击和随机方法)和非建模类攻击(DPA、CPA和互信息分析)进行建模类侧信道攻击需要目标设备和建模设备攻击者对目标设备由有限......
  • 2022 Deep Learning-Based Side-Channel Analysis Against AES Inner Rounds
    一、引言1CPA将能量迹和观察到的泄露(泄露模型包括HW、HD)关联2深度学习方法DL-SCA在预处理和攻击效果上优于其它建模类攻击,它将能量迹和标签在建模阶段结合起来,在......
  • 2006 An AES smart card implementation resistant to power analysis attacks
    一、对DPA攻击的反制措施1掩码定义:所有中间值通过一个随机值(掩码)m隐藏起来,该掩码由密码设备内部生成,通常与中间值进行异或原理:由于掩码是随机的且对攻击者未知,被掩......