演算法導論 4 6

2021-05-23 18:34:03 字數 1152 閱讀 4091

vlsi 晶元測試:

diogenes 教授有n個被認為是完全相同的vlsi晶元,原則上它們是可以互相測試的.教授的測試裝置一次可測試二片,當該裝置中放有兩片晶元時,每一片就對另一片作測試並報告其好壞.乙個好的晶元總能夠正確的報告另一片的好壞,但乙個壞的晶元的結果就是不可靠的.這樣,每次的測試的四種可能結果如下:

a)證明若少於 n/2 的晶元是壞的,在這種成對測試方式下,使用任何策略都不能確定哪個晶元是好的.

b)假設有多於 n/2 的晶元是好的,考慮從 n 片中找出一片好晶元的問題.證明 n/2 對測試就足以使問題的規模降至近原來的一半.

c)假設有多於 n/2 的晶元是好的,證明好的晶元可用 o(n) 對測試找出.

分析:

a)比較顯然.略.

b)本題要求證明 n/2 對測試就能使問題的規模降至近原來的一半.所以要考慮的是怎麼降低待測晶元的規模,而且還能繼續可解.也就是需證明剩下的近一半中,仍然有多於1/2 的晶元是好的. 分兩種情況討論:

如果 n 是偶數,則把它為成 n/2 對.分別測試每一對.如果出現結果2,3,4.則將兩片都暫時擱置.如果是結果1,則隨意把其中一片擱置.因為有大於1/2 的晶元是好的,所以肯定總是能出現結果為1的一對晶元.設好的晶元 有 k 個,壞晶元 n-k個,分對時有 r 個壞晶元跟好晶元分成一對. k>n-k>=r. 則剩餘的好晶元為 (k-r)/2, 剩餘的壞晶元至多為 (n-k-r)/2,(當每對壞晶元相遇結果都是1的時候).顯然 (k-r)/2 >(n-k-r)/2 .得證.

如果 n 是奇數,則先提一片(設代號為a),剩下的n-1片變為偶數,這在n-1片中,有好片》=壞片,然後按數偶數的情況處理.設經處理後剩下 q 片. 根據上面的步驟易知.在這 q 片中,好片不少於壞片.

現在又為兩種情況: 1) q 為奇數: 這時 q 中的好片肯定多於壞片,將a 擱置.

2) q 為偶數: 這時 q 中的好片不少於壞片.若好片等於壞片,反推易知 a 為好片.將 **加入 q 中.得證.

c)用b)方法找出乙個好片對全部晶元做測試即可.顯然只用o(n)對即可得出答案.  

看到網上都沒有遞迴式的證明,我證一下。   

t(n)表示n個晶元需要找1個好晶元。

t(n/2)表示n/2個晶元需要找乙個好晶元。

n/2表示需要n/2次比較n/2對晶元。

所以t(n)=t(n/2)+n/2;

演算法導論 4 6

vlsi 晶元測試 diogenes 教授有n個被認為是完全相同的vlsi晶元,原則上它們是可以互相測試的.教授的測試裝置一次可測試二片,當該裝置中放有兩片晶元時,每一片就對另一片作測試並報告其好壞.乙個好的晶元總能夠正確的報告另一片的好壞,但乙個壞的晶元的結果就是不可靠的.這樣,每次的測試的四種可...

演算法導論 4 6

vlsi 晶元測試 diogenes 教授有n個被認為是完全相同的vlsi晶元,原則上它們是可以互相測試的.教授的測試裝置一次可測試二片,當該裝置中放有兩片晶元時,每一片就對另一片作測試並報告其好壞.乙個好的晶元總能夠正確的報告另一片的好壞,但乙個壞的晶元的結果就是不可靠的.這樣,每次的測試的四種可...

演算法導論 4 6

vlsi 晶元測試 diogenes 教授有n個被認為是完全相同的vlsi晶元,原則上它們是可以互相測試的.教授的測試裝置一次可測試二片,當該裝置中放有兩片晶元時,每一片就對另一片作測試並報告其好壞.乙個好的晶元總能夠正確的報告另一片的好壞,但乙個壞的晶元的結果就是不可靠的.這樣,每次的測試的四種可...