IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Complexity Theory

共 2 篇相关文章

IT 累计浏览 2,306

通信复杂度问题:确定双方手中所有数的中位数

这篇讲的是通信复杂度中一个经典问题的算法设计:两地的两个人各自持有一个数字集合,他们想用尽可能少的通信来共同确定两个集合合并后的中位数,而不是笨拙地传输全部数据。 作者从问题背景出发,清晰地展示了从“暴力传输”到“极精巧算法”的优化路径。最初,A把全部数据传给B,通信量是O(n)比特;随后,通过在区间上进行多轮二分查找,算法被优化至O(log²n)。文章的高潮在于将复杂度降至O(logn)的精妙改进。核心思路是让双方比较各自数列的中位数a和b,根据大小关系丢弃一半不可能成为答案的数据。但关键在于,双方不需要完整传输a和b的数值,而是从高位到低位逐位比较并发送比特。一旦某一位不同就能立即停止本轮比较;同时,由于数据集在每轮都被减半,之前比过的公共前缀位在未来轮次中可以直接跳过。这种逐位比较与信息复用,将总通信量压到了O(logn)。 文章不仅给出了算法,还从信息论角度推导了Ω(logn)的下界,完整勾勒出问题的解空间。其价值在于,通过一个看似简单的游戏,生动展现了通信复杂度的理论力量与算法设计的艺术。

IT 累计浏览 4,277

P和NP那些事

这篇讲的是计算机科学中P、NP、NP完全(NPC)与NP难(NP-hard)这几个核心概念。很多人误以为NP就是“非P”,文章一开始就澄清了这一点:NP(非确定性多项式时间)问题指的是那些“能在多项式时间内被验证解”的问题,而P(多项式时间)问题自然属于NP。 作者用一个生动的比喻解释了NP的核心:非确定型图灵机可以“猜”出一个解(比如哈密顿路径),然后快速验证其正确性。接着,文章引入了“规约”这一关键工具,并指出Cook发现了所有NP问题都可规约到SAT问题,由此引出NP完全问题——NP中最困难的一类,它需同时满足“是NP问题”且“所有NP问题都可规约到它”这两个条件。 文章还以SAT、2-SAT(P)与3-SAT(NPC)为例,具体说明了概念间的差异,并列举了旅行商问题等经典NPC问题。最后,作者提及了对P≠NP证明尝试的看法,认为这可能需要现有理论体系之外的突破。全文从澄清误解入手,层层拆解概念间的逻辑关系,为理解这个理论计算机科学的核心难题提供了清晰的脉络。