摘要: 首先这是要解决什么问题:一个带权完全图,每条边都有自己的花费值cost[i]和收益值benifit[i],如果用x[i]来代表一条边取或不取,那么求一个生成树。要求:r=(∑cost[i]*x[i] ) / (∑benifit[i]*x[i] )最小。经典题目:POJ2728 - Desert King如何来求解:这里用到了0-1分数规划思想,对于上式可以变形为 z(r)=∑cost[i]*x[i] -r*∑benifit[i]*x[i]。而z(r)=0为我们所求。这里有个非常重要的结论:z(r)为单调递减函数,因此是线性的。于是"我们可以兴高采烈地把z(r)看做以 cost[i]- 阅读全文
posted @ 2012-07-17 21:44 AC_Von 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 第一次接触A*,感觉好神奇。。启发函数:f(x) = g(x) + h(x);比如初始状态为s,目标状态为tg(x)表示从s到达状态x所消耗的代价h(x)表示从x到达t所估算的代价g'(x)表示s -> x可能出现的最小代价h'(x)表示x -> t可能出现的最小代价g(x) >= g'(x);h(x) <= h'(x);好吧,上面全是概念。。。当g(x) 为0时,A*就成了bfs,当h(x)为0时,A*就成了dfs。所以。。。启发函数的选择直接影响到A*算法的性能。大概的说说我对A*算法运算过程的理解吧:基本就是bfs形式,不过要用到优 阅读全文
posted @ 2012-07-17 10:06 AC_Von 阅读(4340) 评论(1) 推荐(0) 编辑