算法策略

算法的本质:有限或可结构化的解空间中,在约束条件下,以可接受的计算成本搜索或构造目标函数的最优解


一、算法的第一性原理

1. 解空间(Solution Space)

2. 目标函数(Objective Function)

3. 约束条件(Constraints)


二、算法范式的统一抽象模型

所有算法都可以抽象为:

[f(x) = g({ v(f(s(x, c)), c) \mid c \in values(x) })]

符号含义
x当前问题状态
values(x)当前状态下的可选决策集合
c一次决策
s(x, c)状态转移函数
f(x)状态 x 的最优解
v当前决策与子问题结果的组合
g优化算子(min / max / selection)

不同算法的差异,本质只在于:


三、搜索型算法思想(完整性优先)

关注:是否能穷尽解空间

1. 枚举法(Exhaustive Search)

本质:


2. 回溯法(Backtracking)

成立条件:

本质:


3. 分支限界法(Branch and Bound)

与回溯的核心差异:

维度回溯分支限界
搜索顺序DFSBFS / Best-first
目标所有解 / 任一解最优解
剪枝依据可行性上下界

四、结构型算法思想(问题可分解)

关注:问题是否可拆解为同构子问题

1. 递归(实现机制)

递归必须具备:


2. 分治法(Divide and Conquer)

成立条件:

典型递归式:[T(n) = aT(n/b) + f(n)]


五、最优化算法思想(效率优先)

关注:如何减少搜索成本

1. 贪心算法(局部启发式)

成立条件(缺一不可):

本质:


2. 动态规划(全局状态最优)

动态规划不是递归优化,而是状态空间建模

三大核心要素

  1. **最优子结构**
  2. **无后效性**
  3. **(优势而非必要)子问题重叠**

两种实现方式

本质:


六、数学建模型算法思想

1. 线性规划

本质:


2. 网络流


七、算法范式对比总览(稳定认知表)

范式是否穷尽是否回退是否缓存搜索成本
枚举极高
回溯
分支限界
贪心
分治少量
动态规划

八、算法工程与设计哲学(稳定经验层)

1. 数据结构决定程序


2. 性能分析的层次

  1. 问题定义
  2. 算法与数据结构
  3. 系统结构
  4. 编译与代码
  5. 系统软件
  6. 硬件

3. 优化原则


4. 空间与时间的权衡


九、算法设计的元技巧

关联内容(自动生成)