算法策略

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


一、算法的第一性原理

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)

与回溯的核心差异:

维度 回溯 分支限界
搜索顺序 DFS BFS / 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. 空间与时间的权衡


九、算法设计的元技巧

关联内容(自动生成)