C++程序设计
文章平均质量分 93
关关雎鸠儿
学而不思则罔,思而不学则die
展开
-
【动态规划法】求解0/1背包问题
问题描述有5个物品,其重量分别是{2, 2, 6, 5, 4},价值分别为{6, 3, 5, 4, 6},背包的容量为10,计算背包所能装入物品的最大价值。求解思路 在0/1背包问题中,物品i或者被装入背包,或者不被装入背包,设xi表示物品i装入背包的情况,则当xi=0时,表示物品i没有被装入背包,xi=1时,表示物品i被装入背包。根据问题的要求,有如下约束条件和目...原创 2019-07-15 12:40:35 · 20206 阅读 · 4 评论 -
【贪心法】求解TSP问题,采用最近邻点策略
问题描述求解下图所示的TSP问题,计算出所经过的城市编号以及最短路径值,城市代价矩阵如图所示:基本思想 最近邻点策略:从任意城市出发,每次在没有到过的城市中选择最近的一个,直到经过了所有的城市,最后回到出发城市。 用最近邻点贪心策略求解TSP问题所得的结果不一定是最优解,图 (a)中从城市1出发的最优解是1→2→5→4→3→1,总代价只有...原创 2019-07-15 14:46:35 · 7070 阅读 · 0 评论 -
【贪心法】求解背包问题
问题描述 有3个物品,其重量分别是{20, 30, 10},价值分别为{60, 120, 50},背包的容量为50,应用三种贪心策略装入背包的物品和获得的价值如图所示,至少有三种看似合理的贪心策略,,选一种贪心策略计算可以装入背包的物品的最大价值。(1)选择价值最大的物品,因为这可以尽可能快地增加背包的总价值。但是,虽然每一步选择获得了背包价值的极大增长,但背包容量却可...原创 2019-07-15 15:12:29 · 2920 阅读 · 0 评论 -
【贪心法】多机调度问题
问题描述 设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 设7个独立作业{1, 2, 3, 4, 5...原创 2019-07-15 15:24:28 · 14274 阅读 · 10 评论 -
【回溯法】0/1背包问题
感觉回溯法最难了~~~问题描述 给定种物品和一个容量为的背包,物品的重量是,其价值为,背包问题是如何使选择装入背包内的物品,使得装入背包中的物品的总价值最大。其中,每种物品只有全部装入背包或不装入背包两种选择。求解思路 回溯法:为了避免生成那些不可能产生最佳解的问题状态,要不断地利用限界函数(bounding function)来处死那些实际...原创 2019-07-15 15:38:34 · 634 阅读 · 0 评论 -
【回溯法】TSP问题
问题描述求解下图所示的TSP问题,计算出所经过的城市编号以及最短路径值,城市代价矩阵如图所示:求解思路给定n个城市的无向带权图G(V,E),顶点代表城市,权值代表城市之间的距离。若城市之间没有路径,则距离为无穷。城市之间的距离存放在二维数组value[][]中。从城市1出发,先到临近城市2,将走过的路程存放在变量 cl 中。bestl代表当前找到的一种最短路径长度。如走法:1-2...原创 2019-07-15 18:41:59 · 7291 阅读 · 1 评论 -
【分支限界法】求解TSP问题
问题描述TSP问题是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的路程最短。求解思路 采用贪心法求得近似解为1→3→5→4→2→1,其路径长度为1+2+3+7+3=16,这可以作为TSP问题的上界。 把矩阵中每一行最小的元素相加,可以得到一个简单的下界,其路径长度为1+3+1+3+2=10,但是还有一个信...原创 2019-07-15 19:13:27 · 23562 阅读 · 11 评论