当前位置: 网站首页>小程序开发>网站开发

定州400电话申请开通【定州企业网站建设】定州微信公众号小程序开发运营价格、定州微信公众号APP软件客户端设计运营、定州网页页面设计公司费用、定州公司网站制作方案流程改版维护大概需要多少钱

发表日期: 2021-04-13 15:01:15 浏览次数:182

定州400电话申请开通【定州企业网站建设】定州微信公众号小程序开发运营价格、定州微信公众号APP软件客户端设计运营、定州网页页面设计公司费用、定州公司网站制作方案流程改版维护大概需要多少钱


定州市,河北省辖县级市,由保定市代管, [1]  是河北省省直管县(市)体制改革试点县(省直管县行政区划隶属关系不变 [2]  ), [3-4]  是全省重点培育的新兴区域中心城市。连续4年获评全国中小城市投资潜力百强、新型城镇化质量百强,晋级全国科技创新百强,入围全国县域经济强县。面积1283平方公里,截至2019年,定州市常住总人口123.09万人,辖25个乡镇(办),542个村(社区)。 [5-6] 

定州市位于京津冀经济区,是京津冀经济区重要节点城市 [7]  ,国家新型城镇化综合试点地区 [8]  ,河北省十二五规划重点培育的现代化中等城市 [9]  ,河北省十大历史文化名城之一。

2019年,定州市户籍总户数37.3万户,户籍总人口124.1万人,比上年增加0.3万人。常住总人口123.09万人,比上年末增加0.4万人。 [6]  2019年,定州市生产总值实现3330429万元,比上年增长7.1%。按常住人口计算,定州市人均地区生产总值为27101元。 [6]  2020年9月,入选河北省食品产业强县(市、区)(培育型)名单。 [10]  2020年12月,入选河北省数字乡村试点地区名单。

依据。如果i+j=,那么i 和 j 都为0,所以LCS是ε。因此L(0,0)=0。

归纳。考虑i 和 j,并假设已经为满足g+hi+j 的任意g 和h 计算出L(g,h )。有如下3种情况需要考虑。

1. 如果i 或 j 中有一个为0,那么L(i,j)=0。

2. 如果i>0且j>0,而且ai ≠bj,那么L(ij )=max(L(i ,j-1),L(i-1 , j ))。

3. 如果i>0且j>0,而且ai ≠bj,那么L(ij )=1+L(i-1, j-1)。

6.9.2 用于LCS的动态规划算法

我们最终想要的是L(m,n),即表x 和表y 的LCS的长度。如果根据之前的归纳编写递归程序,它所花的时间是m 和n 的较小者的指数。这一简单的递归算法对n=m=100这样的情况而言要花上太多太多的时间。这一递归表现如此糟糕的原因有些复杂。首先,假设表x 和表y 中的字符间完全没有匹配,并调用L(3,3)。这会带来对L(2,3)和L(3,2)的调用,而这两次调用又都会带来对L(2,2)的调用。因此就要将L(2,2)的工作完成两遍。随着L 的参数变小,L(i , j )的调用次数会迅速增加。如果将调用追踪继续下去,就会发现,L(1,1)被调用了6次,L(0,1)和L(1,0)各被调用了10次,而L(0,0)被调用了20次。

如果构建二维表或二维数组来存储对应不同i 和 j 的L(ij ),就可以有更佳的表现。如果按照归纳的次序计算这些值,也就是说先从最小的(i+j )的值开始计算,那么在计算L(ij )时所需的L 的值总是在表中。其实,逐行计算L 要更简单,也就是对i=0,1,2等计算L,而在一行之中,要按列计算L,也就是对j=0,1,2等计算L。在计算L(ij )时,还是一定能够在表中找到所需的值,而且不需要进行递归调用。这样一来,计算表中每一项都只需要花费O(1)的时间,而要构建二维表表示长度分别为m 和n 的表的LCS,需要花的时间是O(mn)。

图6-31展示了填充该表的C语言代码,是按行处理而非按i+j 的和处理的。假设表x 存储在数组A[1..m]中,而表y 存储在b[1..n]中。请注意,数组中标号为0的元素未被使用,这样做简化了图6-31中的表示法。这里将证明该程序处理长度分别为m 和n 的表的运行时间为O(mn)的工作留作本节习题。8

8严格地讲,我们只讨论了是一个单变量函数的大O表达式。不过,这里要表达的意思应该是明了的。如果T(m,n)是该程序处理长度为m 和n 的表的运行时间,那么存在常数m0n0c,使得对所有的mm0nn0,都有T(m,n)≤cmn

for (j = 0; j <= n; j++)
    L[0][j] = 0;for (i = 1; i <= m; i++) {
    L[i][0] = 0;
    for (j = 1; j <= n; j++)
        if (a[i] != b[j])
            if (L[i-1][j] >= L[i][j-1])                L[i][j] = L[i-1][j];            else                L[i][j] = L[i][j-1];        else /* a[i] == b[j] */            L[i][j] = 1 + L[i-1][j-1];}复制代码

图 6-31 填充LCS表的C语言程序片段

动态规划

术语“动态规划”源自R. E. Bellman在1950年为解决控制系统中的问题所提出的一般理论。而人工智能领域的工作者通常会将这一技术称为备忘(memoing)或制表(tabulation)。

像本例这样的填表技术通常称为动态规划算法(dynamic programming algorithm)。这种情况下,它比重复为相同子问题求解的直接递归实现更高效。

示例 6.14

x 是表cbabacy 是表abcabba。图6-32展示了为这两个表构建的二维表。例如,L(6,7)是a6b7的情况。因此L(6,7)就是它下方和左侧两个项中的较大者。因为这两项分别为4和3,所以我们右上角的项L(6,7)置为4。现在考虑一下L(4,5)。因为a4a5都是符号b,所以在L(4,5)左下的L(3,4)这项上加1。因为该项为2,所以将L(4,5)置为3。

图 6-32 对应cbabacabcabba最长公共子序列的二维表

6.9.3 LCS的恢复

现在就得到了能给出LCS长度的二维表,不仅能给出问题中两个表的LCS的长度,而且可以给出它们每对前缀的LCS的长度。从这些信息一定能推导出问题中两个表可能的LCS之一。要完成这一工作,就要找到形成LCS之一的匹配元素对。我们会找到一条从右上角开始穿越该二维表的路径,而这一路径将确定一个LCS。

假设这条从右上角开始的路径已经将我们带到了第i 行第j 列,也就是该二维表中对应元素对ai 和bj 的点。如果ai=bjL(i , j )就是1+L(i-1, j-1)。因此可以将ai 和bj 当作已匹配的元素对,而且我们会把ai(也是bj)表示的符号包含在LCS中,并排在目前为止所有已被找到的LCS元素之前。然后将路径向左下移动,也就是说移动到第i-1行第 j-1列。

不过,也可能aj ≠bj。如果这样,L(i , j )肯定至少与L(i-1 , j )和L(i , j-1)中的某一个是相等的。如果L(i , j )=L(i-1 , j ),就会把路径向下移动一行,否则,就知道L(i , j )=L(i , j-1),就会把路径向左移动一列。

遵循这一规则,最终会到达左下角。至此,就已经选定了一个作为LCS的元素序列,而且该LCS本身也是由这些元素组成的表,表中元素的次序与它们被选定的次序是相反的。

图 6-33 找到最长公共子序列cbba的路径

示例 6.15

图6-33再次展示了图6-32中的二维表,并将路径加粗表示出来。我们从值为4的L(6,7)开始。因为a6b7,所以立刻向左和向下寻找值4,它至少会在这两个位置中的一个出现。在本例中,4出现在L(6,7)下方,所以我们移动到L(5,7)。现在有a5b7,都是a。因此a就是该最长公共子序列中最后的符号,于是我们移向左下方,移动到L(4,6)。

因为a4b6都是b,所以将b放入正在成形的LCS中,位于a之前,而我们继续向左下移动,移动至L(3,5)。这里,我们发现a3b5,不过L(3,5)的值为2,与它下面和左边的项都相等。在这种情况下我们选择向下移动,所以接下来要移动到L(2,5)。在该点会看到a2=b5=b,所以我们将b放在正在成形的LCS前头,并继续向左下移动到L(1,4)。

因为a1b4L(1,4)只有在它左边的项,而且该项有着与它相同的值1,所以我们移动到L(1,3)。现在有a1=b3=c,因此可以将c添加到LCS的前端,并移动到L(0,2)。至此,我们别无选择,只能向左移动到L(0,1),然后移动到L(0,0),最终完成了这条路径。得到的LCS由我们发现的4个字符按反序组成,就是cbba。这刚好是我们在示例6.12中提到的两个LCS之一。要得到其他的LCS,可以在L(i , j )与L(i-1 , j )和L(i , j-1)都相等时选择向左移动而非向右移动,并且在L(i-1, j )和L(i , j-1)其中之一等于L(i , j)时,选择向左或向右移动,即便是在ai =bj 的情况下(即跳过某些匹配而直接到达其左边的匹配)。

可以证明,这一寻路算法总能找到最大公共子序列。我们要利用对两个表长度之和进行完全归纳加以证明的命题如下。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

定州400电话申请开通定州企业网站建设定州微信公众号小程序开发运营价格、定州微信公众号APP软件客户端设计运营、定州网页页面设计公司费用、定州公司网站制作方案流程改版维护大概需要多少钱

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878