Ⅰ 如何判斷演算法優劣
演算法的好壞是看它的運行效率比如遞歸一般來說是比較耗時間的,也就是說效率低當然也看具體情況,有的演算法在基數小的情況是差不多,性能反而還好點
Ⅱ 遺傳演算法、數值演算法、爬山演算法、模擬退火 各自的優缺點
遺傳演算法:其優點是能很好地處理約束,跳出局部最優,最終得到全局最優解。缺點是收斂速度慢,局部搜索能力弱,運行時間長,容易受到參數的影響。
模擬退火:具有局部搜索能力強、運行時間短的優點。缺點是全局搜索能力差,容易受到參數的影響。
爬山演算法:顯然爬山演算法簡單、效率高,但在處理多約束大規模問題時,往往不能得到較好的解決方案。
數值演算法:這個數值演算法的含義太寬泛了,指的是哪種數值演算法,陣列演算法與爬山演算法一樣,各有優缺點。
(2)演算法效率優劣擴展閱讀:
注意事項:
遺傳演算法的機制比較復雜,在Matlab中已經用工具箱中的命令進行了打包,通過調用可以非常方便的使用遺傳演算法。
函數GA:[x,Fval,reason]=GA(@fitnessfun,Nvars,options)x為最優解,Fval為最優值,@Fitnessness為目標函數,Nvars為自變數個數,options為其他屬性設置。系統的默認值是最小值,所以函數文檔中應該加上一個減號。
要設置選項,您需要以下函數:options=GaOptimset('PropertyName1','PropertyValue1','PropertyName2','PropertyName3','PropertyValue3'…)通過該函數,可以確定一些遺傳演算法的參數。
Ⅲ 演算法優劣的五個標準是什麼
1、時間復雜度:同樣的輸入規模花費多少時間;
2、空間復雜度:同樣的輸入規模花費多磨嫌銀少空間;
瞎宴3、穩定性:不會因為輸入的不同而導致不穩定的情況發生;
4、演算法思路是否簡單:越簡單越容易實現越好;
5、漸近時間復雜度:是指當問題規模趨向無窮大時,該演算法時間復雜度的數量者塌級。
Ⅳ 舉例說明何謂演算法,特點是什麼評價一個演算法的優劣,主要從哪些因素分析
評價演算法優劣的四個分析因素:
1.正確性
能正確地實現預定的功能,滿足具體問題的需要。處理數據使用的演算法是否得當,能不能得到預想的結果。
2.易讀性
易於閱讀、理解和交流,便於調試、修改和擴充。寫出的演算法,能不能讓別人看明白,能不能讓別人明白演算法的邏輯?如果通俗易懂,在系統調試和修改或者功能擴充的時候,使系統維護更為便捷。
3.健壯性
輸入非法數據,演算法也能適當地做出反應後進行處理,不會產生預料不到的運行結果。數據的形式多種多樣,演算法可能面臨著接受各種各樣的數據,當演算法接收到不適合演算法處理的數據,演算法本身該如何處理呢?如果演算法能夠處理異常數據,處理能力越強,健壯性越好。
4.時空性
演算法的時空性是該演算法的時間性能和空間性能。主要是說演算法在執行過程中的時間長短和空間佔用多少問題。
演算法處理數據過程中,不同的演算法耗費的時間和內存空間是不同的。
(4)演算法效率優劣擴展閱讀:
演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。此外,一個演算法還具有下列5個重要的特性。
(1)、有窮性
一個演算法必須總是(對任何合法的輸入值)在執行有窮步之後結束,且每一步都可在有窮時間內完成。
(2)、確定性
演算法中每一條指令必須有明確的含義,讀者理解時不會產生二義性。即對於相同的輸入只能得到相同的輸出。
(3)、可行性
一個演算法是可行的,即演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現的。
(4)、輸入
一個演算法有零個或多個的輸入,這些輸入取自於某個特定的對象的集合。
(5)、輸出
一個演算法有一個或多個的輸出,這些輸出是同輸入有著某種特定關系的量。
Ⅳ 如何衡量一個演算法的優劣有哪些標准
如何衡量一個演算法的優劣,見人見智。一個好的演算法首先是要能夠滿足場景的需求,其次是在能夠最大限度的節省資源(最低成本原則),最後是實現邏輯簡單,比較容易理解(本質上也是最低成本原則)。但是,在現實中硬體資源不變,演算法不變情況下,演算法執行的效率提高,相對應往往是資源消耗增加。一個合格的演算法是在一個可以接受的范圍內滿足場景需求,而一個優秀的演算法則是在滿足場景需求的基礎上,最大限度的節省資源,簡化邏輯。
比如我要完成一項計算任務,要求是在5分鍾執行完成。現在有演算法1:需要執行1分鍾,消耗內存8G;演算法2需要執行3分鍾,需要消耗內存256M。那麼,我們應該如何選擇呢?首先,這兩種方案都能滿足我們的需求;其次:演算法1的需要消耗的資源是演算法2的32倍,演算法1的效率是演算法2的3倍。在這種滿足需求的情況下,往往更傾向於選擇演算法2。衡量一個演算法的優劣往往要評估多方因素,結合實踐,綜合比較最終得出結論。
衡量一個演算法的的標准主要有3個: 演算法的執行效率 , 演算法的內存消耗 和 演算法的穩定性 。