当前位置:网站首页 >> 美食

动态计划解决背包问题百度生态项目解决原创

时间:2019-05-15 04:58:15 来源:互联网 阅读:0次

1 : 百度生态项目解决原创文章排名问题

2013.2.21阿城seo博客的内页放出来了,在经历了将近两个月的考核期,终究可以site到了。恰巧是百度更新绿萝算法的第2天,很多站出现了关键词排名消失、降权,也有很多站排名上涨,不过我感觉站的内页放出应当和这个算法调解没有关系。由于互动seo博客作为1个个人博客,并没有买卖链接,单向的导入链接也是微不足道,应当只是时间上的1个偶合。

site共能查询到4篇文章,除首页外其余3篇文章均在a5有投稿,当时在我的博文没有收录的情况下投稿到a5,然后被很多站长援用。也是由于这个缘由,致使站的内页1直不被收录(百度1般认为先收录谁的谁的就是原创)。我也料想主要是这个缘由致使百度认为互动seo是1个收集站,所以站进入了漫长的考核期。

在百度搜索3篇文章的标题,震动的事情产生了,我的排名都是第1。(以往只要a5转载你的文章,那么就会出现分流问题,排名不可能在第1,柳焕斌、卢松松的博文如果被a5转载,排名都不可能超太高权重的a5)。百度的LEE曾声明百度有1个生态项目可以解决原创文章的排名问题,据此我猜想多是生态项目的缘由。由于a5,包括1些权重高的站长站在转载文章时都留有原文的链接,百度可能根据这个判断谁是原始的文章。

《站的百度权重是真的吗》这篇文章昨天的排名还是在第1,今天震荡到了第2页。关于百度的生态项目是否是见效,阿城也只是猜想,原创文章的排名可能会有1些好转,各位如果有时间,无妨看看自己的站(如果有在高权重的站投稿的文章有说服力),由于假定你的文章自己写的,1个高权重站收集走了,并没有给你链接,那末我感觉排名这个问题还是不好解决(蜘蛛不会根据时间来判断,我说的是根据链接的指向来判断谁的多是原创,然后给予好的排名)不管事情到底怎样样,我相信对认真做站的朋友都是1件好事。

原文早发表在互动seo博客,原文链接:,推荐关注《百度沙龙关于生态项目相干问答整理》

2 : 利用动态计划解决01背包问题

[摘要]在计算机愈来愈普及的今天,人们对计算机的求知欲日渐增长,对计算速度的要求也越来越高,因此算法也愈来愈受人重视,好的算法可以加快计算速度和减少系统资源。

动态规范是算法里1种非常重要的方法,是求解决策进程化的数学方法。动态计划自问世以来,在经济管理、生产调度、工程技术和控制等方面得到了广泛的利用。例如短线路、库存管理、资源分配、设备更新、排序、装载等问题,用动态计划方法比用其他方法求解更加方便。

本文通过对经典的01背包问题的求解,从动态计划的角度进行论述,通过案例对该算法的计算进程进行了直观的描写,并对该算法进行了1定的优化,指出该算法的优缺点。

[关键词]背包 动态计划 时间复杂度 空间复杂度

[中图分类号]TP31[文献标识码]A[文章编号]1009⑸349(2010)

前言

背包问题是1个经典的动态计划模型,很多关于算法的教材都把它作为1道例题,该问题既简单又容易理解,而且在某种程度上还能够揭露动态计划的本质。

将具有不同重量和价值的物体装入1个有固定载重量的背包,以获得价值,这类问题被称为背包问题。

背包问题可以扩大出很多种问题,而01背包问题是多见、有代表性的背包问题。

1、问题描述

给定1个载重量为M的背包及n个物体,物体i的重量为wi、价值为pi,1≤i≤n,要求把这些物体装入背包,使背包内的物体价值总量。此处我们讨论的物体是不可分割的,通常称这类物体不可分割的背包问题为01背包问题。

2、基本思路

01背包问题的特点是:每种物体只有1件,可以选择放或不放。假定:xi表示物体i被装入背包的情况,xi=0,1。当xi=0时,表示物体没有被装入背包;当xi=1时,表示物体被装入背包。根据问题的要求,有以下的束缚方程(1)和目标函数(2):

3、利用动态计划法求解01背包问题

(1)动态计划算法的基本思想

动态计划算法通经常使用于求解具有某种性质的问题。在这类问题中,可能会有许多可行解。每个解都对应于1个值,我们希望找到具有值的解。动态计划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,合适于用动态计划求解的问题,经分解得到子问题常常不是相互独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算很屡次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就能够避免大量的重复计算,节省时间。我们可以用1个表来记录所有已解的子问题的答案。不管该子问题以后是否是被用到,只要它被计算过,就将其结果填入表中,这就是动态计划法的基本思路。具体的动态计划算法多种多样,但它们具有相同的填表格式。

(2)算法设计

假定背包的载重量范围为0~m。类似于资源分配那样,令optpi(j)表示在前i个物体中,能够装入载重量为j的背包所得的价值,j=1,2,……,m。明显,此时在前i个物体中,有些物体可以装入背包,有些物体不能装入背包。因而,可以得到下面的动态计划函数:

(4)式表明:把前面i个物体装入载重量为0的背包,或把0个物体装入载重量为j的背包,得到的价值都为0。(5)式表明:当第i个物体的重量大于背包的载重量时,装入前i个物体得到的价值,与装入前i⑴个物体得到的价值1样,即第i个物体没有装入背包。(6)式表明:当第i个物体的重量小于背包的载重量时,如果第i个物体装入背包,背包中物体的价值,等于把前i⑴个物体装入载重量为j-wi的背包所得到的价值与第i个物体的价值pi之和;如果第i个物体没有装入背包,则背包中物体的价值,等于把前i⑴个物体装入载重量为j的背包,却不装入第i个物体所获得的价值。明显,这两种装入方法,在背包中所取得的价值不1定相同,因此,取这二者中的值,作为把前面i个物体装入载重量为j的背包所取得的价值。

该算法可分为n阶段:

第1阶段,只装入1个物体,计算在不同载重量的背包情况下,所获得的价值;

第2阶段,装入前两个物体,按(5)式和(6)式计算在不同载重量的背包情况下,获得的价值;

……

第n阶段,装入前n个物体,按(5)式和(6)式计算在不同载重量的背包情况下,获得的价值,而在背包载重量为M时,所得结果就是我们想要的结果。

为了肯定具体哪个物体装入背包,从optpn(m)的值向前倒推。有以下递推关系式:

(7)式表明:如果optpi(j)大于optpi⑴(j),则物体i被装入背包;如果optpi(j)等于optpi⑴(j),表明i物体未被装入背包。依照该关系式,i从n到1顺次类推,直到肯定第1个物体是不是被装入背包为止,就可以肯定装入背包的具体物体。

(3)存储结构

该算法需要将每个物体的重量和价值分别存储起来,并针对不同载重量的背包对物体分别计算,故斟酌使用数组来实现。对物体i,用weight[i]来表示重量、用p[i]表示价值,解向量用x[i]表示物体i是否是被放入,上面提到的optpi(j)则用2维数组相应的optp[i][j]来表示,物体个数n,背包载重量为m。

(4)算法实现

initial knapsack_dynamic(initial optp[][],weight[],p[],x[],n,m)

{

initial i,j,value;

//根据(4)式初始化第0列及解向量X

//解向量初始值设置为false,表示起初所有物体均未放入背包

for(i = 0; i= weight[i]) && (optp[i⑴][j - weight[i]]+p[i])>optp[i⑴][j])

optp[i][j] = optp[i⑴][j-weight[i]] + p[i];

}

}

//肯定装入背包的具体物体

j = m;

for(i = n; i>0; i--)

{

if(optp[i][j]>optp[i⑴][j])

{

x[i] = TRUE;

j = j - weight[i];

}

}

//value就是所要求的值

value = optp[n][m];

return value;

}

1.案例分析

现有载重量为10的背包,有4个物体A、B、C、D,其重量分别为4、2、5、3,价值分别为4、3、5、8,要求放入物体使背包所获价值。

用optp[i][j]来存储这4个物体在不同载重量的背包下所获的价值,计算进程以下表所示:

2.时间空间复杂度

该算法中,矩阵optp的大小为(m+1)×(n+1),物体的重量、价值和解向量大小都等于物体个数n,故该算法的空间复杂度为O(nm)(]。对物体重量、价值的初始化(算法实现略)所需时间都为n,解向量和矩阵第0行初始化时间为n,矩阵第0列初始化时间为m,对矩阵optp的计算所需时间为n×m,解向量X的肯定时间为n,故全部算法的时间复杂度为O(nm)。

(5)算法优化

在上述算法中,时间复杂度不能再继续优化了,但是空间复杂度是可以继续优化的。

上述算法中,存储optp使用的是2维数组,其大小为(m+1)×(n+1),但是仔细视察发现,optp[i][j]只与optp[i⑴][j]和optp[i⑴][j - weight[i]]有关,与optp[k][l](k=1,2,……,i⑵,i+1,……n,j=1,2,……,m)无关,故可斟酌只用1维数组_optp来存储,_optp[j]相当于optp[i][j]。而斟酌到optp[i][j]是由optp[i][j]和optp[i⑴][j - weight[i]]共同计算得到的,故该算法中的j循环要从后往前计算,_optp[]的计算算法设计以下所示:

for(i = 1; i= 1; j--)

{

if((j>= weight[i]) && (_optp[j - weight[i]]+p[i])>_optp[j])

_optp[j] = optp[j-weight[i]] + p[i];

}

}

上述例子中,相应的_optp[j]计算结果以下表所示:

}

}

上述例子中,相应的_optp[j]计算结果以下表所示:

明显,对物体i,_optp[j]的计算不会影响到_optp[0,1,……,weight[i]⑴],故上述算法可继续优化为:

for(i = 1; i= weitht[i]; j--)

{

if((_optp[j - weight[i]]+p[i])>_optp[j])

_optp[j] = optp[j-weight[i]] + p[i];

}

}

对01背包问题,常见的要求有两种:1种是恰好装满背包、另外一种则没有要求,针对这两种问法,可从初始化上来辨别。

当要求恰好装满背包时,初始化时将_optp[0]设为0,其他_optp[1,2,……,m]全部设为-∞,这样便可保证终究得到的_optp[n]是1种恰好装满的解,此时可以把初始化理解成没有任何物体可放时,只有容量为0的背包能被价值为0的nothing“恰好装满”;当没有这个限制时,初始化时应将_optp[0,1,……,m]都设为0,此时可以理解为任何1个背包都有1个合法的解“甚么都不装”,这个解的价值为0。

当优化后,空间复杂度变成O(m),计算所需时间为:

当weitht[i]较大时,可以节省很多时间。

动态计划的缺点:对01背包问题,用动态计划方法解很容易理解,但是这类方法有1些弊端,从上述算法可以看出:当物体的重量较大时,所需的物理空间较大;当物体的重量不是整数时,没法利用数组来存储该结构。

4、结束语

在平常生活中,01背包问题有很多利用,比如如何利用有限空间的手提包,装入外出旅行的各种必须品。

01背包问题还有很多种解法,每种解法也有各种不同的实现,比如回溯法可以利用结构或类来表示状态空间树,每本关于算法的书籍都把它当做必讲的题目,而由01背包问题引伸出来的各种题目也层见叠出,例如完全背包问题就要求每种物体都无穷制使用。01背包问题是基本的背包问题,它包括了背包问题中设计状态、方程的基本思想,但是不管哪一种类型的背包问题,都可以转换为01背包问题。所以读者们要仔细体会01背包问题基本思路的得出方法,状态转移方程的意义,和关于时间空间复杂度的优化等问题。

动态计划法是解题的1种思路,它的存在其实不仅仅用于解决01背包问题,而是对分而治之和递推的1种有效结合,这才是本文的真正意义所在。

3 : 动态计划解非线性计划问题(静态计划问题)

动态计划解非线性计划问题

初识动态计划,感觉很新鲜,方法也很奇妙。

把多阶段进程转化为1系列单阶段问题,逐一求解,解决这类问题的方法称为动态计划,它是1种方法、考察问题的1种途径,但不是1种特殊的算法。

虽然动态计划主要用于求解以时间划分阶段的动态进程的优化问题,但是1些与时间无关的静态计划(如线性计划、非线性计划),只要人为地引进时间因素,把它视为多阶段决策进程,也能够用动态计划方法方便地求解。

1.动态计划的思路:

2.与静态计划相比,动态计划的优越性在于:

(i)能够得到全局解。由于束缚条件肯定的束缚集合常常很复杂,即便指标函数较简单,用非线性计划方法也很难求出全局解。而动态计划方法把全进程化为1系列结构类似的子问题,每一个子问题的变量个[]数大大减少,束缚集合也简单很多,易于得到全局解。特别是对束缚集合、状态转移和指标函数不能用分析情势给出的优化问题,可以对每一个子进程用枚举法求解,而束缚条件越多,决策的搜索范围越小,求解也越容易。对这类问题,动态计划通常是求全局解的唯1方法。

(ii)可以得到1族解。与非线性计划只能得到全进程的1个解不同,动态计划得到的是全进程及所有后部子进程的各个状态的1族解。有些实际问题需要这样的解族,即使不需要,它们在分析策略和值对状态的稳定性时也是很有用的。当策略由于某些缘由不能实现时,这样的解族可以用来寻觅次优策略。

(iii)能够利用经验提高求解效力。如果实际问题本身就是动态的,由于动态计划方法反应了进程逐段演化的前后联系和动态特点,在计算中可以利用实际知识和经验提高求解效率。如在策略迭代法中,实际经验能够帮助选择较好的初始策略,提高收敛速度。

3.动态计划的主要缺点是:

(i)没有统1的标准模型,也没有构造模型的通用方法,乃至还没有判断1个问题能否构造动态计划模型的准则。这样就只能对每类问题进行具体分析,构造具体的模型。对较复杂的问题在选择状态、决策、肯定状态转移规律等方面需要丰富的想象力和灵活的技能性,这就带来了利用上的局限性。

(ii)用数值方法求解时存在维数灾(curse of dimensionality)。若1维状态变量有m个取值,那么对n维问题,状态x_k就有m^n个值,对每一个状态值都要计算、存储函数f_k(x_k),对n稍大的实际问题的计算常常是不现实的。目前还没有克服维数灾的有效的1般方法。

4.下面是1个例子

4 : 友批南昌朝阳拍脑袋计划 霸气出招解决出行问题

小长假后,接连几天交通大拥堵,让南昌市民饱受其“虐”,因而乎全民大吐槽模式瞬间开启,特别南昌朝阳新城因公交、教育、医疗等多种配套设施的不完善,让9月7日爆出《南昌朝阳新城:看上去很美住进去很累》1文瞬间产生共鸣,络上霎时怨声1片。

问:为什么上关于朝阳的舆情和民意如此集中?

友“灵感水瓶88”认为,1是近众多朝阳新城新居交付,朝阳入住率提高,朝阳新城居民愈来愈多了;2是朝阳新城配套确切未按计划如期到位,特别是公交线路;3是朝阳新城居民怨声载道,之前反应的诸多问题没有得到回应和解决。

因而乎,众多友在上发帖呼吁政府有关部门提高重视尽快给予回应和疏导。

西湖区回应:计划由不得我们

2015年9月9日《信息》就此采访了南昌市西湖区区长梅向荣,梅向荣说,朝阳新城的配套是由市里肯定,其实不是西湖区能决定的,西湖区政府只能尽力积极配合。他并表示,新城的成熟需要时间,朝阳新城正在洽谈多个产业项目,诸如天虹商场、万达朝阳广场、华侨城项目等来完善相干配套。

1山居士:朝阳新城计划难道是“拍脑袋”决定?

面对西湖区官方的评论,中国江西-大江时评作者“1山居士”立马跟出评论《南昌西湖区朝阳新城计划难道是“拍脑袋”决定?》。

文中指出,朝阳新城的计划成了南昌市政府桌面上1个华丽的摆设。听到西湖区区长的答复,就好象看到了南昌西湖区政府在和市政府在相互扯皮。梅区长说,新城的成熟需要时间,这个时间是要再等上1个两年吗?

的确,两年前,南昌市城乡计划局发布的《南昌市朝阳新城控制性详细计划优化》向市民们描绘了朝阳新城将成为融居住、办公、商业服务、文化体育、休闲文娱等多功能为1体的人居典范新城的美好前景。可是,两年过去后的今天,随着朝阳越来越多楼盘交房,类似于《朝阳新城:看上去很美住进去很累》的爆出,令朝阳新城的民众恍如没有了等待的耐心!

高手藏于民间:公交微调便可解决朝阳公交出行问题

9月10日,友“jxypf”晒出1张公交总公司对朝阳公交线路相干布局回复,回答结果可想而知。

“高手藏于民间”,万能的友硬是自行提出:公交微调便可解决朝阳公交出行问题。先不说友提出的方式是不是可行,但是由此可以看出,他们对南昌城建也是“操碎了心”。

以下为图文实录:

公交公司回答说没有停车场,友指出,控制性计划图里云飞路菜市场边上明明就有公交首末站用地,而且这块地现在还是空的,为什么不能使用?

就算没有停车场,过路车总可以吧。云飞路现在是朝阳人员密集的区域,有多个安置房小区。

比如233现在过了朝阳大桥就直接左转入快速路,绕开朝阳片区,可以略微优化成下桥后右转进入云飞路、抚生南路吧,多不了10分钟,就连通了老城区、朝阳、西客站3个区域。

235微调走真君路、云飞路、朝阳大桥去红谷滩,不增加运行里程吧,不用停车场吧,就连通了象湖、朝阳、红角洲、红谷滩4个区域。

现在说10月份开通2条微公交到喜盈门,意味着随意去红谷滩、青云谱都是要转3次车,也发挥不了朝阳大桥的任何作用。或许转3次车多付些钱才是公交公司的目的吧,但是如果能走朝阳大桥到红谷滩你直接收2元也很多赚啊,少节省了大家的时间。

商业综合体井喷朝阳依然是南昌人心中的“宝”

由于优越的地理位置,朝阳新城素被开发商青睐,龙头房企纷纭“抢滩登陆”,住宅小区成片成片拔地而起。如今随着朝阳大桥的通车,朝阳新城区域价值更是进1步凸显,大型商业综合体也“相继而至”纷纭进驻。天虹华中总部已在建、第3粮食仓库地块已签约绿地,朝阳万达商业广场也“蓄势待发”。

据搜狐焦点数据显示,9月份首周,南昌新居住宅共成交865套,套数面积环比双双滑落,但西湖区成交环比暴涨187.6%,成交面积环比上涨154%。可见,南昌人民对朝阳热度1直未减。而且不管是政府、开发商、普通老百姓,众人都1直看好朝阳新城这块热土,朝阳这块“璞玉”,终有闪闪发光的1天。

平时白带多怎么办
子宫内膜炎症状及治疗
得了盆腔炎吃什么药

相关文章

一周热门

热点排行

热门精选

友情链接: 婚姻家庭
媒体合作:

Copyright (c) 2011 八零CMS 版权所有 Inc.All Rights Reserved. 备案号:京ICP0000001号

RSS订阅网站地图