贪心算法思想:不从整体最优上加以考虑,它所做出选择只是在某种意义上局部最优选择,当然希望贪心算法得到最终结果也是整体最优贪心算法性质:指所求问题整体最优解可以通过一系列局部最优选择,即贪心选择来达到;最优装载问题(1)问题描述:有一批集装箱要装上一艘载重量为 tatol 轮船,其中集装箱 index 重量为 weight。最优装载问题要求在装载体积不受限制情况下,将尽可能多
/*-----------------------------------------------------给出n个物体,第i个物体重量为wi。选择尽量多物体,使得总重量不超过C。 输入:n和C以及n个整数表示wi。 输出:按照输入物体顺序输出n个用空格分隔Y或N。Y表示该物体被选中,N...
转载 2014-07-28 16:32:00
157阅读
2评论
贪心算法通过一系列选择来得到问题解。它所做每一个选择都是当前状态下局部最好选择。从许多贪心算法求解问题可以看到可用贪心算法求解问题一般具有两个重要性质:贪心选择性质和最优子结构性质。1、贪心选择性质贪心选择性质是 指所求问题整体最优解可以通过一系列局部最优选择,即贪心选择来达到。与动态规划算法不同之处是贪心算法只依赖在当前状态下做出最优选择,然后再去解做出这个选择后产生相应
转载 2023-11-29 06:04:20
56阅读
最优装载问题
原创 2022-07-07 10:08:34
105阅读
贪心选择算法算法分析中一种常用算法,通过一系列选择来得到一个问题解。它所作每一个选择都是当前状态下某种意义最好选择,即贪心选择。希望通过每次所作贪心选择导致最终结果是问题一个最优解。这种启发式策略并不总能奏效,然而在许多情况下确能达到预期目的。对于可利用贪心算法解决问题需要同时满足:最优子结构性质和贪心选择性质。1.贪心选择性质    所
 问题描述如上,易知只要每一件都是挑选质量最小,就可以实现贪心目标(载重量恒定情况下)代码实现如下: 
 问题描述如上,易知只要每一件都是挑选质量最小,就可以实现贪心目标(载重量恒定情况下)代码实现如下: 
原创 2022-03-11 09:59:11
135阅读
问题描述:有
原创 2023-05-25 16:34:49
210阅读
参考完往上面的动态规划解决装载问题,总是觉得少了点什么,其实很多他们算不上真正动态规划,他们只是对于决策不断求解,并没有选出最优答案,接下来,我就把我对于动态规划理解,解决出装载问题算法中没有选出船具体装载箱子)一:问题描述两艘船各自可装载重量为c1,c2,n个集装箱,各自重量为w[n],设计一个可以装载方案,使得两艘船装下全部集装箱二:算法概念阶段 将所给问题过程,恰当
贪心算法贪心算法(greedy algorithm),又称贪婪算法,在每一步都做出当时看起来最好选择,就是不断贪心选取当前最优策略计算方法。目的: 贪心算法是求解最优问题适用条件/前提:贪心选择性质: 可以通过做出局部最优贪心)选择来构造全局最优解。换句话说,当进行选择时,我们直接做出在当前问题中看来最优选择,而不是考虑子问题最优子结构: 如果一个问题最优解包含其子问题最优
一、贪心算法精讲,内含例题(专栏持续更新)1.1官方定义:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好选择。也就是说,不从整体最优上加以考虑,算法得到是在某种意义上局部最优解。1.2个人理解:就是一个人想要完成一件事时候总是一步一步来,而贪心的人在完成这件事每一步时候都想要最好(当前情况下),每一步都拿到最好,当整件事情完成时候,结果便是最好。1.3
        现有一个载重为W货船,集装箱i个,重量分别为wi,在不考虑体积情况下,要求装载数量最多。        这是一个简单最优装载问题,类似01背包问题,但考虑不是价值而是数量,所以每次选取剩余集装箱中重量最轻就可以,
原创 2018-11-30 22:36:01
1976阅读
分割数组为连续子序列给你一个按升序排序整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。 如果可以完成上述分割,则返回 true ;否则,返回 false 。示例输入: [1,2,3,3,4,5] 输出: True 解释: 你可以分割出这样两个连续子序列 : 1, 2, 3 3, 4, 5算法思路首先使用两个哈希 map。
转载 2024-05-30 19:45:08
20阅读
一、问题描述在北美洲南部,有一篇神秘海域,那里碧海蓝天、阳光明媚。这正是传优装载问题,要求装
原创 2022-09-20 10:37:45
584阅读
船舶装载问题采用贪心算法求解,通过"每次选择最轻物品"策略实现装载数量最大化。优化后C++代码使用vector存储数据,分离输入与计算逻辑,时间复杂度为O(nlogn)。核心步骤包括:重量排序、顺序装载、载重检测。代码改进体现在动态数组、输入验证和模块化设计,提升了安全性和可维护性。该算法适用于中等规模数据,体现贪心算法"局部最优→全局最优"特性。
转载 27天前
331阅读
# 实现最优装载问题贪心算法 ## 问题描述 最优装载问题是一个经典组合优化问题,其目标是在给定一系列货物和一定容量限制下,使得装载货物总重量最大化。这个问题可以通过贪心算法来解决。 ## 贪心算法思路 贪心算法是一种在每一步选择中都采取当前状态下最优选择,从而希望最终能够得到全局最优算法。在最优装载问题中,我们可以按照货物重量从大到小进行排序,然后依次将货物装入容器,直到容器
原创 2023-07-13 11:19:02
117阅读
贪婪算法(又称贪心算法)是指,在对问题求解时,总是做出在当前看来是最好选择。也就是说,不从整体最优上加以考虑,他所做出是在某种意义上局部最优解。贪婪算法不是对所有问题都能得到整体最优解,关键是贪婪策略选择,选择贪婪策略必须具备无后效性,即某个状态以前过程不会影响以后状态,只与当前状态有关。下面我将用python结合问题实例来详细讲述此算法问题描述:如下图所示,有5个广播台,以及8个州
问题某一初始解出发;while 能朝给定总目标前进一步 do ,求出可行解一个解元素;最后,由所有解元素组合成问题一个可行解。 贪心法处理问题都很极端,容易过早做决定,只是得出一个解就行,因而没法达到最佳解。在某些方面可能最优,但是在绝大时候并不是很合适。 贪心好处在于容易设计和很多时能达到好近似解。 背包问题贪心算法思想三种解决方法:public class Test { p
转载 2023-06-12 10:44:18
128阅读
一、贪心算法介绍贪心算法总是作出在当前看来是最好选择,即贪心算法并不从整体最优解上加以考虑,它所作出选择只是在某种意义上局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广许多问题它能产生整体最优解。如图单源最短路径、最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,但其最终结果却是最优很好近似解。贪心算法求解问题一般具有两个重要性质:贪心选择性质和最
   该算法只用一层循环,时间复杂度是O(n);【算法精髓】   解决最优装载问题之前,需要把所有物体按重量从小到大排序;   该算法使用了...
原创 2021-08-25 14:10:19
2668阅读
  • 1
  • 2
  • 3
  • 4
  • 5