演算法容錯性
『壹』 評價演算法優劣的指標包括演算法的什麼
1、時間復雜度
演算法的時間復雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函數f(n),演算法的時間復雜度也因此記做。
2、空間復雜度
演算法的空間復雜度是指演算法需要消耗的內存空間。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。
3、正確性
演算法的正確性是評價一個演算法優劣的最重要的標准。
4、可讀性
演算法的可讀性是指一個演算法可供人們閱讀的容易程度。
5、健壯性
健壯性是指一個演算法對不合理數據輸入的反應能力和處理能力,也稱為容錯性。
『貳』 c語言中什麼是演算法有哪些描述演算法的例子
1、有窮性(有限性)。任何一種提出的解題方法都是在有限的操作步驟內可以完成的。
如果在有限的操作步驟內完不成,得不到結果,這樣的演算法將無限的執行下去,永遠不會停止。除非手動停止。例如操作系統就不具有有窮性,它可以一直運行。
2、一個演算法應該具有以下七個重要的特徵:
1)有窮性(finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
2)確切性(definiteness)
演算法的每一步驟必須有確切的定義;
3)輸入項(input)
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4)輸出項(output)
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果.沒有輸出的演算法是毫無意義的;
5)可行性(effectiveness)
演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成;
6)
高效性(high
efficiency)
執行速度快,佔用資源少;
7)
健壯性(robustness)
健壯性又稱魯棒性,是指軟體對於規范要求以外的輸入情況的處理能力。所謂健壯的系統是指對於規范要求以外的輸入能夠判斷出這個輸入不符合規范要求,並能有合理的處理方式。
『叄』 演算法的評價指標有哪些
時間復雜度和空間復雜度。
1、時間復雜度
演算法的時間復雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函數f(n),演算法的時間復雜度也因此記做。
T(n)=Ο(f(n))
因此,問題的規模n 越大,演算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間復雜度(Asymptotic Time Complexity)。
2、空間復雜度
演算法的空間復雜度是指演算法需要消耗的內存空間。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。
空間復雜度記做S(n)=O(f(n))。比如直接插入排序的時間復雜度是O(n^2),空間復雜度是O(1) 。而一般的遞歸演算法就要有O(n)的空間復雜度了,因為每次遞歸都要存儲返回信息。一個演算法的優劣主要從演算法的執行時間和所需要佔用的存儲空間兩個方面衡量。
(3)演算法容錯性擴展閱讀:
演算法的方法:
1、遞推法
遞推是序列計算機中的一種常用演算法。它是按照一定的規律來計算序列中的每個項,通常是通過計算機前面的一些項來得出序列中的指定項的值。其思想是把一個復雜的龐大的計算過程轉化為簡單過程的多次重復,該演算法利用了計算機速度快和不知疲倦的機器特點。
2、遞歸法
程序調用自身的編程技巧稱為遞歸(recursion)。一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。
一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。
注意:
(1) 遞歸就是在過程或函數里調用自身.
(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。
『肆』 演算法的評定
同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程序的效率。演算法分析的目的在於選擇合適演算法和改進演算法。一個演算法的評價主要從時間復雜度和空間復雜度來考慮。 演算法的時間復雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函數f(n),演算法的時間復雜度也因此記做。
T(n)=Ο(f(n))
因此,問題的規模n 越大,演算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間復雜度(Asymptotic Time Complexity)。
健壯性是指一個演算法對不合理數據輸入的反應能力和處理能力,也稱為容錯性。
『伍』 評價演算法優劣的標準是
同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程序的效率。演算法分析的目的在於選擇合適演算法和改進演算法。一個演算法的評價主要從時間復雜度和空間復雜度來考慮。
時間復雜度
演算法的時間復雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函數f(n),演算法的時間復雜度也因此記做。
T(n)=Ο(f(n))
因此,問題的規模n 越大,演算法執行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間復雜度
空間復雜度
演算法的空間復雜度是指演算法需要消耗的內存空間。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。
正確性
演算法的正確性是評價一個演算法優劣的最重要的標准。
可讀性
演算法的可讀性是指一個演算法可供人們閱讀的容易程度。
健壯性
健壯性是指一個演算法對不合理數據輸入的反應能力和處理能力,也稱為容錯性。
(5)演算法容錯性擴展閱讀
演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法,厄米變形模型,隨機森林演算法。
演算法可以宏泛的分為三類:
一,有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
二,有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
三,無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。
參考資料:演算法--網路
『陸』 什麼是容錯性
所謂容錯是指在故障存在的情況下計算機系統不失效,仍然能夠正常工作的特性。容錯即是Fault Tolerance,確切地說是容故障(Fault),而並非容錯誤(Error)。例如在雙機容錯系統中,一台機器出現問題時,另一台機器可以取而代之,從而保證系統的正常運行。在早期計算機硬體不是特別可靠的情況下,這種情形比較常見。現在的硬體雖然較之從前穩定可靠得多,但是對於那些不允許出錯的系統,硬體容錯仍然是十分重要的途徑。
計算機系統的容錯性通常可以從系統的可靠性、可用性、可測性等幾個方面來衡量。可靠性對於火箭發射之類關鍵性應用領域來說尤為重要。而對於通用計算機來說,一個重要的指標就是系統的可用性。可用性是指在一年的時間中確保系統不失效的時間比率。可測性在容錯系統的設計過程中也是一個非常重要的指標,如果我們無法對某個系統進行測試,又如何能保證它不出問題呢?此外還有MTBF(故障間的平均時間),即當系統正常運行後能堅持多長時間不失效。MTTR(故障修理的平均時間),即指系統要清除故障所需的時間。MTTR的大小直接影響著系統的可用性,而MTBF則反映了系統的可靠性。
『柒』 冗餘 和 容錯 的區別
區別:容錯主要依靠冗餘設計來實現,它以增加資源的辦法換取可靠性。由於資源的不同,冗餘技術分為硬體冗餘、軟體冗餘、時間冗餘和信息冗餘。
硬體冗餘是通過硬體的重復使用來獲得容錯能力。
軟體冗餘的基本思想是用多個不同軟體執行同一功能,利用軟體設計差異來實現容錯。
信息冗餘是利用在數據中外加的一部分信息位來檢測或糾正信息在運算或傳輸中的錯誤而達到容錯。在通信和計算機系統中,常用的可靠性編碼包括:奇偶校驗碼、循環冗餘碼CRC、漢明碼等。
時間冗餘是通過消耗時間資源來實現容錯,其基本思想是重復運算以檢測故障。按照重復運算是在指令級還是程序級分為指令復執程序復算。指令復執當指令執行的結果送到目的地址中,如果這時有錯誤恢復請求信號,則重新執行該指令。
程序復算常用程序滾回技術。例如將機器運行的某一時刻稱作檢查點,此時檢查系統運行的狀態是否正確,不論正確與否,都將這一狀態存儲起來,一旦發現運行故障,就返回到最近一次正確的檢查點重新運行。
冗餘設計可以是元器件級的冗餘設計,也可以是部件級的、分系統級的、或系統級的冗餘設計。冗餘要消耗資源,應當在可靠性與資源消耗之間進行權衡和折衷。
容錯系統工作過程包括自動偵測、自動切換、自動恢復。