當前位置:吉日网官网 - 傳統美德 - 有效的算法設計

有效的算法設計

有效的算法設計

貪心法Dijkstra最短路徑(時間復雜度O(N2));Prim在存儲最小生成樹的鄰接表時找到O(n+e),如圖O(N2);關鍵路徑和關鍵活動的解決方案。

追蹤

分支定界法

分而治之。分,解,合。二分搜索法,合並排序,快速排序。

動態編程。Floyd-Warshall算法求解圖中所有點對間最短路徑的時間復雜度為O(n3)。

動態規劃是壹種高效的方法,其時間復雜度通常為O(n2),O(n3),可以求解相當大的信息量。(塔的數量以N為單位

適用原則:原則就是優化原則,即整體優化可以分解成若幹局部優化。

動態規劃比窮舉法計算次數少。

遞歸算法需要大量的堆棧空間,而動態編程不需要。

貪婪和動態規劃的區別;

所謂貪婪選擇性質,是指問題的全局最優解可以通過壹系列局部最優選擇來實現,即貪婪選擇。這是貪婪算法可行性的第壹個基本要素,也是貪婪算法與動態規劃算法的主要區別。

在動態規劃算法中,每壹步的選擇往往取決於相關子問題的解。所以,只有解決了相關的子問題,才能做出選擇。在貪婪算法中,只在當前狀態下做出最佳選擇,即局部最優選擇。然後做出這個選擇後再解決相應的子問題。

貪婪算法做出的貪婪選擇可以依賴於過去做出的選擇,但絕不依賴於未來做出的選擇,也不依賴於子問題的解。正是由於這種差異,動態規劃算法通常采用自下而上的方式解決每個子問題,而貪婪算法通常采用自上而下的方式,以叠代的方式進行連續的貪婪選擇,每次進行貪婪選擇時,都將所需問題簡化為更小的子問題。

p問題

p問題,如果能通過運行多項式次(即運行時間至多為輸入量大小的算法)來求解,就能找到壹個能在多項式時間內求解的算法。確定性的問題

NP問題雖然可以用計算機求解,但對於任意常數k都不能在O(nk)時間內求解,壹個求解的問題可以在多項式時間內驗證。所有的P問題都是NP問題。

對於NP完全問題,我們知道有效的確定性算法,但不知道是否存在有效的確定性算法。同時,我們也無法證明這些問題中的任何壹個都不存在有效的確定性算法。這類問題稱為NP完全問題。

  • 上一篇:最難忘的傳統節日短篇小說
  • 下一篇:機器人教育:中國機器人教育的現狀
  • copyright 2024吉日网官网