芯片测试—分治

Diogenes教授有n个被认为是完全相同的VLSI芯片,原则上它们是可以互相测试的。教授的测试装置一次可测二片,当该装置中放有两片芯片 时,每一片就对另一片作测试并报告其好坏。一个好的芯片总是能够报告另一片的好坏,但一个坏的芯片的结果是不可靠的。这样,每次测试的四种可能结果如下:

芯片A的结果芯片B的结果结论
B是好的A是好的两片都是好的,或都是坏的
B是好的A是坏的至少一块是坏的
B是坏的A是好的至少一块是坏的
B是坏的A是坏的至少一块是坏的
  1. 证明:如果超过n/2块芯片是坏的,使用任何基于这种逐队检测操作的策略,教授都不能确定哪些芯片是好的。假定芯片可以合谋欺骗教授。
  2. 考虑从n块芯片中寻找一块好芯片的问题,假定超过n/2块芯片是好的。证明:进行 \left \lfloor n/2 \right \rfloor 次逐队检测足以将问题规模减半。
  3. 假定超过 n/2 块芯片是好的,证明:可以用 \theta (n) 次逐队检测找出好的芯片。给出描述检测次数的递归式,并求解他。

(1)将任何一片芯片与其它所有芯片进行比较,因为有多于n/2的芯片是坏的,且坏的芯片可以联合起来欺骗教授,则测试结果是不可靠的,无法判断出该芯片是好是坏。

(2)

1.随机的两两配对,则共有⌊n/2⌋对,分别测试。

2.如果测试结果为一好一坏,或者两坏,那么把这对丢弃;如果测试结果为两好,那么随意丢弃其中一个,留下一个。

3.重复以上操作,直至n<=2.

当n是偶数时:测试结果为一好一坏,或者两坏,丢弃后好芯片数都比坏芯片数多。如果测试结果为两好,那么好芯片的数量至少比坏芯片的数量多一对,随意丢弃一个时,好芯片的数量仍然多于坏芯片的数量。

当n是奇数时:单独操作,用剩下的芯片对其测试,判断其好坏。

(3)复杂度: T(n)=2T(n/2)+n 。根据主定理 T(n)=O(n) 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值