python算法--贪婪算法

本文介绍了Python中的贪婪算法,这是一种追求局部最优解的策略。通过教室调度问题展示了贪婪算法的应用,虽然不保证得到全局最优解,但在某些场景下能接近最优解。此外,文章还提及了集合操作和NP完全问题的概念。
摘要由CSDN通过智能技术生成

今天,我们来学习python五大算法之一的----贪婪算法

基本介绍:

贪婪算法也叫贪心算法,指在解决问题时,先做出当前看来的最优选择,不从整体最优上加以考虑,算法得到的是某种意义上的局部最优解

对所采用的贪心策略一定要仔细分析其是否满足无后效性

贪婪算法的基本思路:
建立数学模型来描述问题
把求解的问题分成若干个子问题
对每个子问题求解,得到子问题的局部最优解
把子问题的解局部最优解合成原来问题的一个解

该算法存在的问题:
不能保证求得的最后解是最佳的
不能用来求最大值或最小值的问题
只能求满足某些约束条件的可行解的范围

教室调度的问题:

在这里插入图片描述
在上课时间不冲突的情况下,怎样安排才会更加多的安排课程呢?
1.选出结束最早的课,它就是要在这间教室上的第一堂课
2.接下来,必须选择第一堂课结束后才开始的课。同样,你选择结束最早的课,这将是要在这间教室上的第二堂课
一直进行重复就会找到最终的答案
在这里插入图片描述
在有些的情况下,贪婪算法可能不会找到最优解,但是非常接近,有时候只需要找到一个能大致解决问题的算法就可以了

集合

集合类似于列表,只是不能包含重复的元素
并集意味着将集合合并交集意味着找出两个集合中都有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值