Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||

策略決策:概覽

| , 1 minutes reading.

策略決策:宏偉藍圖

選擇的分量

在之前的章節中,我們學習了如何組織數據(樹、哈希、圖)。現在,我們要問:「當路徑不清晰時,我們該如何解決問題?」

生活和軟體中充滿了最優化問題:

  • 「回家的最短路徑是什麼?」
  • 「如何在一個有限的背包裡裝入價值最高的物品?」
  • 「這步棋該怎麼走才是最優的?」

要回答這些問題,我們需要 策略 (Strategy)。策略是在無限的可能性空間中探索,而又不至於迷失方向的高級方法。

策略的四大支柱

在本章中,我們將探索演算法思維的大師級模板:

策略靈魂 / 隱喻代表演算法最佳應用場景
記憶智慧的長者
從不重複解決同一個問題。透過記住過去來構建未來。
動態規劃 (DP)最優解
最大利潤、最小成本。
衝動短視的獵人
只做眼下最好的選擇,且從不回頭。
貪心演算法 (Greedy)效率
快速、且「足夠好」的答案。
探索勇敢的冒險家
嘗試每一條路,但在撞牆時有勇氣掉頭重來。
回溯演算法 (Backtracking)可能性
拼圖、數獨、N 皇后問題。
拆解切割者
將巨大的怪獸拆解成微小的螞蟻,然後逐一處理。
分治演算法 (Divide & Conquer)並行化
排序、大規模數學運算。

策略的三大法則

  1. 重疊子問題: 如果通往終點的路需要經過同一座橋十次,請記住那座橋!(DP 的核心)。
  2. 局部 vs. 全局: 僅僅因為一個選擇現在看起來不錯,並不意味著她能帶來最好的結局。只有當「局部最優」等於「全局最優」時,貪心演算法才有效。
  3. 剪枝 (Pruning): 可能性空間是一棵樹。如果妳知道某個分支通向懸崖,請儘早將她砍掉。不要浪費時間探索不可能的情況。

小結

在本章中,我們將從「寫代碼的人」轉變為「邏輯的架構師」。我們將明白,工程師工具箱中最強大的工具不是特定的語言或庫,而是為正確的戰鬥選擇正確策略的能力。

讓我們從最強大(也最令人畏懼)的策略開始:動態規劃