
1951年,冯诺依曼在一篇论文[1]中提到了这样一个小问题:给你一枚不均匀的硬币,允许你抛足够多次。你能否通过这些结果,来模拟出一枚均匀硬币?
这个问题有一个简单巧妙的解决方法:抛两次硬币,如果结果相同则抛弃,不同则取第一次的结果。由于“01”与“10”的概率相等,所以这个方法投掷出“0”和“1”的概率都是
尽管这个例子并不复杂,但它却打开了一个全新的领域:提取随机。简单来说,就是构造一个确定性算法。当我们输入任何一个满足某些条件的概率分布时,它的输出总是等于或接近于均匀分布。
这种算法有什么用?高质量的真随机数是密码学、模拟算法等领域的基础,而随机性的提取对于生成真随机数而言至关重要。我们知道,现有的计算机不能凭空生成出真正的随机数。而真随机性的来源——物理世界中发生的随机事件——又常常遵循各种不同的分布,与算法中所需要的独立、均匀的随机数大相径庭。将这些千奇百怪的分布中蕴含的随机性提取出来,使之转化为均匀分布,才能满足一般算法的需求。
然而,一般场景下的随机分布往往比一枚不均匀的硬币要复杂的多,拥有各式各样的奇特性质。在这当中,什么样的性质能表明一族分布“足够好”,从而可以为之构造算法,提取随机性?直到1990年代初,班尼·霍尔,奧德·戈德里克和大卫·祖克曼才为学界找到一个简练又好用的标准:最小熵,并在前人基础上建立起了对应的随机性提取器的理论框架[2]。
简单介绍一下最小熵。假设一个离散概率分布用
我们想要找的随机性提取器(Randomness Extractor)就是这样一种函数
在这个定义下,后续的一系列研究构造了各种各样参数优秀的随机性提取器。除此之外,还有一些随机数提取器专门为某些较为特殊的分布设计。例如,有些通过电路生成的概率分布,其分布的方式往往满足某种特殊的性质,从而不用种子就能直接提取出均匀分布[3]。感兴趣的读者可以自行查阅相关文献。
综上所言,假设采集的随机事件有足够高的最小熵。那么,不管它是大气噪声、辐射衰变还是你的鼠标移动,不管它有着怎样的独特性质,计算机都可以通过随机性提取器,将它转变为独立、均匀的随机比特串,来为密钥生成、模拟算法以及抽卡游戏提供可靠的随机性。这下,你可以放心地让计算机抛硬币了。
而随着研究的不断深入,随机数提取器的各种用途不断展露,其与理论计算机中的其他问题的关系也逐渐显现。在这里,我想简单介绍两个与随机数提取器相关的著名研究:一是将随机性提取器用于生成伪随机数。二是通过伪随机数生成器的构造,生成更好的随机性提取器。
提取随机
假设有一台
答案是肯定的:取一个
这成立的关键就在于,
这一做法由诺姆·尼散和大卫·祖克曼在90年代末提出[4],其构造的伪随机数生成器时至今日仍在去随机化领域中被广泛应用。这里还有一个问题留给读者思考:上述的伪随机数生成器的种子长度大约是
难函数、伪随机数、随机性提取器的相互转换
回顾小满 | 与不可区分的随机共舞,随机性,不可区分性,难函数之间往往有着密切的联系。通过一些构造[5],一个足够难的函数
如果要使用
基于这一发现,卢卡·特雷维桑构造了一种新型的随机数提取器
结语
从 random() 函数的幕后到理论计算机科学的前沿,关于随机性的研究一直是计算机科学中一个重要的课题。时至今日,神秘的随机性仍然困扰着无数科学家,有人将其视为计算中不可替代的资源,有人则相信有朝一日,我们能够用确定性的算法完全取代随机性。而随机性提取器的研究,作为随机性研究的一部分,正在与越来越多的领域相互交融,为我们带来了更多的启示。
参考文献:
[1] John von Neumann. Various techniques used in connection with random digits. Applied Math Series, 12:36–38, 1951.
[2] Zuckerman, D. 1990. General weak random sources. In Proceedings of the 31st IEEESymposium on Foundations of Computer Science (1990), pp. 534–543.
[3] Emanuele Viola. 2011. Extractors for Circuit Sources. In Proceedings of the 2011 IEEE 52nd Annual Symposium on Foundations of Computer Science (FOCS '11). IEEE Computer Society, USA, 220–229.
[4] Noam Nisan and David Zuckerman. 1996. Randomness is Linear in Space. J. Comput. Syst. Sci. 52, 1 (Feb. 1996), 43–52.
[5] Noam Nisan and Avi Wigderson. 1994. Hardness vs randomness. J. Comput. Syst. Sci. 49, 2 (Oct. 1994), 149–167.
[6] 2001. Extractors and pseudorandom generators. J. ACM 48, 4 (July 2001), 860–879.

文 | 吴睿洋

— 版权声明 —
本微信公众号所有内容,由北京大学前沿计算研究中心微信自身创作、收集的文字、图片和音视频资料,版权属北京大学前沿计算研究中心微信所有;从公开渠道收集、整理及授权转载的文字、图片和音视频资料,版权属原作者。本公众号内容原作者如不愿意在本号刊登内容,请及时通知本号,予以删除。

内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢