将优化问题转换为决策问题求解

来源:互联网 发布:淘宝充话费联通 编辑:程序博客网 时间:2024/06/02 05:06

1. 简介

将优化问题(optimize problem)转换成决策问题(decision problem),是一种非常实用的设计原则,转换完成之后,再利用二分法求解。

  • 优化问题的返回值通常是实数或者整数;⇒ 可能的答案有无数多个;
  • 决策问题的含义较为简单,只有“是”或“否”(自行脑补军队里,军官和新兵的对话)这两种答案的问题;⇒ 答案只有两个;

下面是以优化问题和决策问题的形式定义的旅行商问题:

  • optimize(G) ⇒ 返回全部访问图 G 中的端点后,回到起点的最短路径;
  • decision(G, x) ⇒ 返回全部访问图 G 的所有端点后,是否存在回到起点的路径中长度小于 x 的路径(决策问题)
double optimize(const Graph& g);bool decision(const Graph& g, double x){    return optimize(g) <= x;}
0 0
原创粉丝点击