近似算法的特点与计算方法、分类及概率算法的计算过程与应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

近似算法和概率算法的特点与计算方法、分类及概率算法的计算过程

与应用

一.近似算法

1近似算法的计算方法

设D是一个最优化问题,A是一个算法,若把A用于D的任何一个实例I,都能在|I|的多项式时间内得到I的可行解,则称算法A为问题D的一个近似算法,其中|I|表示实例I的规模或输入长度,进而,设实例I的最优值为OP(I),而算法A所得到实例I的可行解之值为A(I),则称算法A解实例I的性能比为R A(I)的性能比为R A(D),同时称D有R A—近似解.其中

A ( I)

OP(I) ,若D为最小化问题.

R A ( I) =

OP(I) ,若D为最大化问题.

A ( I)

R A(D)=inf{r≥|R A(I)≤r,I∈D}

2近似算法的特点

(1)解同一个问题的近似算法可能有多个

(2)算法的时间复杂性:近似算法的时间复杂性必须是多项式阶的,这是设计近似算法的基本目标。

(3)解的近似程度:近似最优解的近似程度也是设计近似算法的重要目标。近似程度可能与近似算法本身、问题规模,乃至不同的输入实例都有关。

3近似算法的分类

(1)基于线性规划的近似算法

(2)基于动态规划的近似算法

(3)绝对近似类

(4)相对近似类

(5)P TAS类和FPTAS类

(6)随机近似算法

二.概率算法

1概率算法的计算方法

概率算法允许算法在执行的过程中随机选择下一个计算步骤。许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择省时。

2概率算法的特点

(1)不可再现性。概率算法的一个特点是对所求解问题的同一实例用同一概率算法求解两次可能得到完全不同的效果。

(2)分析困难。要求有概率论、统计学和数论的知识。

3概率算法的分类

(1)数值概率算法。数值概率算法常用于数值问题的求解。这类算法所得到的往往是近似解。而且近似解的精度随计算时间的增加不断提高。在许多情况下,要计算出问题的精确解是不可能或没有必要的,因此用数值概率算法可得到相当满意的解。

(2)蒙特卡罗(Monte Carlo)算法。蒙特卡罗算法用于求问题的准确解。对于许多问题来说,近似解毫无意义。例如,一个判定问题其解为“是”或“否”,二者必居其一,不存在任何近似解答。又如,我们要求一个整数的因子时所给出的解答必须是准确的,一个整数的近似因子没有任何意义。用蒙特卡罗算法能求得问题的一个解,但这个解未必是正确的。求得正确解的概率依赖于算法所用的时间。算法所用的时间越多,得到正确解的概率就越高。蒙特卡罗算法的主要缺点就在于此。一般情况下,无法有效判断得到的解是否肯定正确。Monte Carlo 算法偶然会犯错,但它无论对何实例均能以高概率找到正确解。当算法出错时,没有警告信息。偏真偏假的概念只在Monte Carlo 算法里出现。

Def1:设p 是一个实数,且1/2

Def2:若一个MC 算法对同一实例决不给出两个不同的正确解,则该算法称是相容的(consistent)或一致的。

基本思想:为了增加一个一致的、p-正确算法成功的概率,只需多次调用同一算法,然后选择出现次数最多的解。

Def:(偏真算法)为简单起见,设MC(x)是解某个判定问题,对任何x,若当MC(x)返回true 时解总是正确的,仅当它返回false 时才有可能产生错误的解,则称此算法为偏真的(true-biased)。

Def:(偏y0 算法)更一般的情况不再限定是判定问题,一个MC 是偏y0 的(y0 是某个特定解),如果存在问题实例的子集X 使得:

若被解实例x ∉ X,则算法MC(x)返回的解总是正确的(无论返回y0 还是非y0)。

(3)拉斯维加斯(Las Vegas)算法。拉斯维加斯算法不会得到不正确的解,一旦用拉斯维加斯算法找到一个解,那么这个解肯定是正确的。但是有时候用拉斯维加斯算法可能找不到解。与蒙特卡罗算法类似。拉斯维加斯算法得到正确解的概率随着它用的计算时间的增加而

提高。对于所求解问题的任一实例,用同一拉斯维加斯算法反复对该实例求解足够多次,可使求解失效的概率任意小。

算法的一般形式:

LV(x, y, success) —— x 是输入的实例,y 是返回的参数,success 是布尔值,

true 表示成功,false 表示失败

p(x) ——对于实例x,算法成功的概率

s(x) ——算法成功时的期望时间

e(x) ——算法失败时的期望时间

Obstinate(x) {

repeat

LV(x, y, success);

until success;

return y;

}

设t(x)是算法obstinate 找到一个正确解的期望时间,则

t(x) = p(x)s(x) + (1 − p(x))(e(x) + t(x))

t(x)是指第一次成功的期望时间,第一次失败,后面再成功就需要花费的时间。

(4)舍伍德(Sherwood)算法。舍伍德算法总能求得问题的一个解,且所求得的解总是正确的。当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时,可以在这个确定算法中引入随机性将它改造成一个舍伍德算法,消除或减少问题的好坏实例间的这种差别。舍伍德算法精髓不是避免算法的最坏情况行为,而是设法消除这种最坏行为与特定实例之间的关联性。Sherwood 算法预处理的数学模型

1. 确定性算法:f: X -> Y

2. 确定性算法的实例集合:X, size 为n 时写作Xn

3. Sherwood 算法用于均匀随机抽样的集合:A,size 为n 时写作An,|An|=|Xn|

4. 随机抽样的预处理及后处理时用到的一对函数,对应上面的①③

u: X × A -> Y

v: A × Y -> X

u,v 满足三个性质:

1(∀n ∈ N)(∀x, y ∈ Xn)(∃! r ∈ An),使得u(x, r) = y

这条对应①,其中∃!表示有且仅有一个

2(∀n ∈ N)(∀x ∈ Xn)(∀r ∈ An),使得f(x) = v(r, f(u(x, r))) 这条对应③

相关文档
最新文档