< align=center><b> 贪婪算法</b></P> 虽然设计一个好的求解算法更像是一门艺术,而不像是技术,但仍然存在一些行之有效的能够用于解决许多问题的算法设计方法,你可以使用这些方法来设计算法,并观察这些算法是如何工作的。一般情况下,为了获得较好的性能,必须对算法进行细致的调整。但是在某些情况下,算法经过调整之后性能仍无法达到要求,这时就必须寻求另外的方法来求解该问题。 6 o5 \1 W$ v+ x9 C7 s. Y' j J8 @' A2 G" X 本章首先引入最优化的概念,然后介绍一种直观的问题求解方法:贪婪算法。最后,应用该算法给出货箱装船问题、背包问题、拓扑排序问题、二分覆盖问题、最短路径问题、最小代价生成树等问题的求解方案。 ; Q' n' k% z% P1 u- `+ B; \, R5 [, {0 Y& V: |, i
" L. x% m. c5 O0 Q7 k2 ?, X) K- H) g, U" ?- v: l. z% \ t L C: X3 `
< align=center><EM> 最优化问题</EM></P> ; M. u% o' }" z- _9 I1 q
<>本章及后续章节中的许多例子都是最优化问题( optimization problem),每个最优化问题都包含一组限制条件( c o n s t r a i n t)和一个优化函数( optimization function),符合限制条件的问题求解方案称为可行解( feasible solution),使优化函数取得最佳值的可行解称为最优解(optimal solution)。9 c C& p9 D! s" C& W+ _% B% m