🦄
近似算法和随机算法最大的区别就是,当我们设计、分析、讨论近似算法的时候,我们关注的都是它的最坏情况。也就是说,近似算法是完全可控的,而纯粹的随机算法则是通过概率来减少坏情况出现的可能,并没有严格的约束。近似算法最坏也就坏到𝜌
而随机算法最坏可以坏到海拉鲁大陆。
近似范式(approximation scheme)指的是对于某个优化问题的一族相同模式的算法,它们满足对于确定的 𝜖>0,算法的近似比为 1+𝜖
可以粗糙地理解为:“范式”是一个输出为算法的特殊函数,而 ϵ 是“范式”的一个参数,对于特定的 ϵ,“范式”输出一个特定的算法(这些算法有着相同的模式),而这些“范式”输出的算法,都解决同一个问题,并且对于任意固定的ϵ 其近似比为1+ϵ。
而关于ϵ>0 这个约束,是因为近似比必定大于 1。
而此时,这一族的算法的复杂度可以表示为 𝑂(𝑓(𝑛,𝜖))O(f(nϵ)),如 𝑂(𝑛2/𝜖),𝑂((1𝜖)2𝑛3)O(n2/ϵ),O((ϵ1)2n3)。当 𝑓(𝑛,𝜖)f(nϵ) 关于 𝑛n 是多项式时,我们称其为多项式时间近似范式(polynomial-time approximation scheme, PTAS)。当 𝑓(𝑛,𝜖)f(nϵ) 关于 𝑛n 和 1𝜖ϵ1 都是多项式时,我们称其为完全多项式时间近似范式(fully polynomial-time approximation scheme, FPTAS)
为什么要区分 PTAS 和 FPTAS 呢?我们观察 𝜖ϵ 对算法的影响:随着 𝜖ϵ 的减小,近似比逐渐变小,即准确度提高;而 1𝜖ϵ1 变大,而通常来说 1𝜖ϵ1 与算法复杂度都是正相关的,因此会导致算法复杂度升高。如果说这个近似范式是 FPTAS,那么为了提高准确度而缩小 𝜖ϵ,导致的复杂度变化是相对可接受的(多项式级的变化,如 (1𝜖)2𝑛3(ϵ1)2n3 关于 1𝜖ϵ1 是多项式级的);然而如果它不是 FPTAS,那么 𝜖ϵ 的缩小可能带来恐怖的复杂度增加(如 𝑛2/𝜖n2/ϵ 关于 𝜖ϵ 是指数级的)
 
Loading...
fufu酱
fufu酱
一个爱折腾的大学生
公告
👋
欢迎 欢迎来到fufu酱的blog! 💞️我是22级浙江大学竺可桢学院计算机科学与技术专业的学生 一个爱折腾的大学生 🌱我会在这个网站上更新我的笔记和工具分享 🌈目前all in MLLM 📫你可以用下面的方式联系到我
🍀
今後ともよろしくお願いします