fbpx
维基百科

时空权衡

计算机科学中的时空权衡(英語:space–time trade off,又叫空间换时间)是指一个算法程序用增加空间使用量来换取时间减少的情况。这里,空间指的是执行一个给定任务所消耗的数据存储内存硬盘等),而时间指的是执行一个给定任务所消耗的时间(计算时间或反應時間)。

一个给定的时空权衡的效用受到相关的固定可变成本(如CPU速度、存储空间)的影响,并受到收益递减的影响。

历史 编辑

动物行为的早期阶段,可以看到时空权衡的生物学用途。使用储存的知识或将刺激反应编码为DNA中的“本能”,可以避免在时间紧迫的情况下进行“计算”的需要。更具体到计算机,查找表从最早期的操作系统开始就已经实现了。

1980年,馬丁·赫爾曼首次提出使用时空权衡法进行密码分析[1]

权衡的类型 编辑

查询表 vs 重新计算 编辑

一个常见的情况是涉及查找表的算法:一个实现可以包含整个表,这减少了计算时间,但增加了所需的内存量;或者它可以根据需要计算表项,增加计算时间,但减少内存需求。

压缩数据 vs 不压缩数据 编辑

时空权衡可以应用于数据存储的问题。如果数据未经压缩就被存储,它需要更多的空间,但访问所需的时间要比数据被压缩后存储所需的时间少(因为压缩数据减少了它所占用的空间,但运行解压缩算法需要时间)。根据问题的具体实例,两种方式都是实用的。也有一些罕见的情况是可以直接使用压缩数据的,比如在压缩位图索引英语bitmap index的情况下,使用压缩的方式比不使用压缩的方式更快。

重新渲染 vs 储存图像 编辑

只存储矢量图SVG源代码,并在每次请求页面时将其渲染为位图图像,这是以时间换空间;使用更多的时间,但空间更少。在改变页面时渲染图像并存储渲染后的图像是以空间换取时间;使用更多的空间,但减少时间。这种技术更普遍地被称为缓存

代码量少 vs 循环展开 编辑

在应用循环展开时,较大的代码量可以换来较快的程序速度。这种技术使循环的每一次迭代的代码变长,但却节省了在每一次迭代结束时跳回循环起点所需的计算时间。

其他例子 编辑

同样利用时空权衡的算法有:

  • 计算离散对数大步小步算法
  • 密码学中的彩虹表,比蛮力攻击所需的指数级时间做得更好。彩虹表使用加密哈希函数的哈希空间中的部分预计算值,在几分钟内而不是几周内破解密码。减少彩虹表的大小会增加在哈希空间上迭代所需的时间。
  • 中途相遇攻擊使用时空权衡,只需 次加密(和 空间)就能找到加密密钥,而朴素的攻击预计需要 次加密(但只需 空间)。
  • 动态规划通过使用更多的内存,可以大大降低问题的时间复杂性。

参见 编辑

参考文献 编辑

  1. ^ Hellman, Martin. A Cryptanalytic Time-Memory Tradeoff. IEEE Transactions on Information Theory. July 1980, 26 (4): 401–406. CiteSeerX 10.1.1.120.2463 . doi:10.1109/tit.1980.1056220. 

外部链接 编辑

  • Philippe Oechslin: Making a Faster Cryptanalytic Time-Memory Trade-Off.(页面存档备份,存于互联网档案馆
  • Once Upon a Time-Memory Tradeoff. (页面存档备份,存于互联网档案馆

时空权衡, 计算机科学中的, 英語, space, time, trade, 又叫空间换时间, 是指一个算法或程序用增加空间使用量来换取时间减少的情况, 这里, 空间指的是执行一个给定任务所消耗的数据存储, 内存, 硬盘等, 而时间指的是执行一个给定任务所消耗的时间, 计算时间或反應時間, 一个给定的的效用受到相关的固定和可变成本, 如cpu速度, 存储空间, 的影响, 并受到收益递减的影响, 目录, 历史, 权衡的类型, 查询表, 重新计算, 压缩数据, 不压缩数据, 重新渲染, 储存图像, 代码量少, 循环展开. 计算机科学中的时空权衡 英語 space time trade off 又叫空间换时间 是指一个算法或程序用增加空间使用量来换取时间减少的情况 这里 空间指的是执行一个给定任务所消耗的数据存储 内存 硬盘等 而时间指的是执行一个给定任务所消耗的时间 计算时间或反應時間 一个给定的时空权衡的效用受到相关的固定和可变成本 如CPU速度 存储空间 的影响 并受到收益递减的影响 目录 1 历史 2 权衡的类型 2 1 查询表 vs 重新计算 2 2 压缩数据 vs 不压缩数据 2 3 重新渲染 vs 储存图像 2 4 代码量少 vs 循环展开 3 其他例子 4 参见 5 参考文献 6 外部链接历史 编辑在动物行为的早期阶段 可以看到时空权衡的生物学用途 使用储存的知识或将刺激反应编码为DNA中的 本能 可以避免在时间紧迫的情况下进行 计算 的需要 更具体到计算机 查找表从最早期的操作系统开始就已经实现了 1980年 馬丁 赫爾曼首次提出使用时空权衡法进行密码分析 1 权衡的类型 编辑查询表 vs 重新计算 编辑 一个常见的情况是涉及查找表的算法 一个实现可以包含整个表 这减少了计算时间 但增加了所需的内存量 或者它可以根据需要计算表项 增加计算时间 但减少内存需求 压缩数据 vs 不压缩数据 编辑 时空权衡可以应用于数据存储的问题 如果数据未经压缩就被存储 它需要更多的空间 但访问所需的时间要比数据被压缩后存储所需的时间少 因为压缩数据减少了它所占用的空间 但运行解压缩算法需要时间 根据问题的具体实例 两种方式都是实用的 也有一些罕见的情况是可以直接使用压缩数据的 比如在压缩位图索引 英语 bitmap index 的情况下 使用压缩的方式比不使用压缩的方式更快 重新渲染 vs 储存图像 编辑 只存储矢量图的SVG源代码 并在每次请求页面时将其渲染为位图图像 这是以时间换空间 使用更多的时间 但空间更少 在改变页面时渲染图像并存储渲染后的图像是以空间换取时间 使用更多的空间 但减少时间 这种技术更普遍地被称为缓存 代码量少 vs 循环展开 编辑 在应用循环展开时 较大的代码量可以换来较快的程序速度 这种技术使循环的每一次迭代的代码变长 但却节省了在每一次迭代结束时跳回循环起点所需的计算时间 其他例子 编辑同样利用时空权衡的算法有 计算离散对数的大步小步算法 密码学中的彩虹表 比蛮力攻击所需的指数级时间做得更好 彩虹表使用加密哈希函数的哈希空间中的部分预计算值 在几分钟内而不是几周内破解密码 减少彩虹表的大小会增加在哈希空间上迭代所需的时间 中途相遇攻擊使用时空权衡 只需2 n 1 displaystyle 2 n 1 nbsp 次加密 和O 2 n displaystyle O 2 n nbsp 空间 就能找到加密密钥 而朴素的攻击预计需要2 2 n displaystyle 2 2n nbsp 次加密 但只需O 1 displaystyle O 1 nbsp 空间 动态规划通过使用更多的内存 可以大大降低问题的时间复杂性 参见 编辑算法效率 計算資源 布盧姆加速定理 萨维奇定理参考文献 编辑 Hellman Martin A Cryptanalytic Time Memory Tradeoff IEEE Transactions on Information Theory July 1980 26 4 401 406 CiteSeerX 10 1 1 120 2463 nbsp doi 10 1109 tit 1980 1056220 外部链接 编辑Philippe Oechslin Making a Faster Cryptanalytic Time Memory Trade Off 页面存档备份 存于互联网档案馆 Once Upon a Time Memory Tradeoff 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 时空权衡 amp oldid 74269964, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。