数值计算中的智能:分支限界算法详解
1. 分支限界框架的形式化描述
若算法要反思自身计算结构并学习提升性能,就需对其组件进行声明式表示。以生成批量操作最优调度的分支限界算法为例,它应具备以下声明式表示:
- 批量操作的调度。
- 确定调度策略可行性的谓词。
- 目标函数。
- 确定分支限界算法控制策略的条件。
2. 解空间表示——离散决策过程
解决组合优化问题的首要步骤是对解空间进行建模。为使模型独立于具体求解算法,其应具有声明式特征。这里采用的离散决策过程(DDP)由Karp和Held于1967年提出。一个DDP,记为Y,是一个三元组(Σ, S, f),各元素定义如下:
- Σ:有限非空字母表,其符号用于构建解的描述。Σ 表示由Σ中符号拼接生成的有限字符串集合。
- S:Σ 的子集,其成员满足关于Σ*的一组可行性谓词,代表“可行”解。
- f:S上的成本函数,将S映射到实数集。
对于流水车间问题,一种选择是让Σ的符号数量与待调度的不同批次数量相同,即每个批次对应一个符号。每个离散的批次调度由从字母表Σ中抽取的有限字符串σ表示,只有包含每个字母元素且仅包含一次的字符串才代表可接受的批量操作调度。用c表示解字符串Σ*中包含的Σ的符号集合,O(Y)表示DDP Y的最优解集合。
DDP比组合优化问题的传统形式更通用,为统一广泛类别的此类问题的形式化提供了出色框架,还与人工智能研究中常用的问题状态空间表示有许多共同特征,这便于后续将使用状态空间表示的机器学习算法与解决组合优化问题的分支限界算法集成。