1. 确定问题的目标函数和约束条件,将问题转化为求最大或求最小值。
2. 定义一个优先队列,用于存储候选解及其对应的目标函数值。
3. 初始化队列,将初始解加入队列,同时设定初始界限
4. 对队列中结点进行扩展,并求生成的子节点对应的目标函数值。如果所求子节点的目标函数值超出设定的界限,就将该节点剪去,否则,将该节点加入优先队列。
5. 从队列中选择一个目标函数值最大(或最小)的节点,作为当前扩展的节点,并将其从优先队列中移除。
6. 如果当前节点是可行解并且目标函数值优于当前界限值,则更新当前界限。
7. 重复步骤4~6直到队列为空或者找到最优解。
8. 输出找到的最有解及其对应的目标函数值。