根据递归式(15.2)为活动选择问题设计一个动态规划算法,假定所有活动已经按照结束时间排好序。比较该算法和GREEDY-ACTIVITY-SELECTOR的运行时间。 解答: 对应第三版16.1-1。 方法一:动态规划(区间两个端点都不固定) 对于子问题 S_{ij} ,当 j-i\ge2 时,我们要找到活动 a_k ,使得 i<k<j,f_i\le s_k,...
活动选择问题 (动态规划、贪心算法) 问题描述: 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi。如果选择了活动i,则它在半开时间区间[si, fi)内占用资源...
活动选择问题 (动态规划解决、贪心算法解决)学贪心不贪心 问题描述: 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi。如果选择了活动i,则它在半开时间区间...
活动选择问题分别采用动态规划和贪心算法进行分析并实现。动态规划的运行时间为O(n^3),贪心算法的运行时间为O(n)。动态规划解决问题时全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。贪心算法的主要思想就是对问题求解时,总是做出在当前看来是最好的选择,产生...
老规矩,动态规划,要找出两个问题: 1,子问题的最优解; 2,子问题是什么。 abviously,本问题的最优解为:活动数的次数最多,子问题是:看递推公式 设c[i]为第i个 位置处的活动次数...做不出来了,以后补充。 本想用动态规划试试做做,操蛋的做不出来,算了还是贪心吧,毕竟贪心最简单对于活动调度,不过有个...
动态规划——活动选择问题 一个递归解 设c[i][j]为Sij中最大兼容子集中的活动数目,当Sij为空集时,c[i][j]=0;当Sij非空时,若ak在Sij的最大兼容子集中被使用,则则问题Sik和Skj的最大兼容子集也被使用,故可得到c[i][j] = c[i][k]+c[k][j]+1。
这篇文章将讨论一个 动态规划 活动选择问题的解决方案,它只不过是 最长递增子序列 (LIS) 问题。 这个想法是首先按照开始时间的升序对给定的活动进行排序。让 jobs[0…n-1] 是活动的排序数组。我们可以定义一个数组 L 这样L[i] 本身是一个数组,存储最大的非冲突作业,结束于 i'th 工作。所以, L[i] 可以...
动态规划——活动选择问题 一个递归解 设c[i][j]为Sij中最大兼容子集中的活动数目,当Sij为空集时,c[i][j]=0;当Sij非空时,若ak在Sij的最大兼容子集中被使用,则则问题Sik和Skj的最大兼容子集也被使用,故可得到c[i][j] = c[i][k]+c[k][j]+1。
那么,根据动态规划的方法,就应该用从底向上的方法来解决这个问题,先计算小区间的值,并存储起来,然后再利用已经得到的小区间的值来计算大区间的值。最终得到原问题的最优解。如下图 格子[i,j]表示从i点到j点,最大利用时间值是多少。灰掉的部分是无效值,因为此时i值大于j值,没有实际意思。这个表,我们从左到...
动态规划 贪心法 得到局部最优选择有一些可能的贪心选择准则: 最大价值优先:选择可用价值最高的物件放入背包中。 最小重量优先:选择可用重量最小的物件放入背包中。 最大重量优先:选择可用重量最大的物件放入背包中。 最大性价比优先:选择可用的、价值重量比最高的物件放入背包中。 不尽人意的是,以上方法没有一...