作者reader (讀者)
看板CSSE
標題Re: [問題] 如何確定正確性
時間Sat Apr 30 13:27:28 2005
※ 引述《ccpz (....)》之銘言:
: 剛剛看到台大的 25-queen 想到的
: 像那種一台主機算出一些結果(ex:質數,n-queen)
: 之前又沒有算出來過,那是要如何驗證正確性呢?
: 我想到的是同一台電腦多跑幾次,不知道有沒有別的方法?
: 另外就是像seti 這類分散運算,要如何確保 client 回傳資料是正確的?
: 不會有人惡意傳錯誤的資料回去?
確保分散運算結果的正確性的方法其實很多。
例如把傳回來的資料再送去別的機器驗證。
傳回來的資料也應該包括計算過程的資訊,使得主機可以做初步檢驗。
只要是需要大量運算的程序,一般都不缺乏過渡性質的計算資訊。
當然基本的訊息驗證也應當要做,正常來說,只要有適當的訊息驗證,
要做假資料的困難度就會提高許多(這也是雜湊函數很重要的原因)。
以及,同樣的計算可以給兩台以上的機器做。就看是否需要付出這樣的
計算成本。
為避免浪費運算資源,也可以區分機器的可信任度,例如對於已傳回過
正確結果的機器和新加入的機器,調整驗證程序的仔細程度。
分散式運算的困難,通常不在於計算程序的設計上。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.173.29