专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

面对2000笔金额记录的凑数最优问题,你学了python竟然

  好不容易学了一门编程语言Python,又懂一点Excel操作,感觉自己无所不能了。直到有一天遇到了凑数最优问题,看似很简单,但始终无法解决。
  凑数问题:在很多数值数据当中,不限制个数(或一些限制条件),选择出一些数据,这些数据的数值之和要等于一个或最接近与定值。比如:在〔2,1,17,34,3,8,47,9,30〕中挑出几个和等于或最接近于100的数值
  熟悉Excel的小伙伴一定知道规划求解功能,于是你怀着期待的心情打开它,结果只是出来这样子的提示
  原来,超过200笔数据是需要用它的收费版本。
  相信我,就算只有100多笔数据,它的求解速度也会难以满足你。我可不希望Excel卡你半天的时间。
  今天,我就来教大家如何使用python的ortools解决凑数最优问题。
  需要安装这些库:
  本期内容的视频版本理解流程
  库的使用,只不过是一些函数的堆砌。关键在于理解大概的优化流程,否则你是不可能使用ortools得到你要的效果。
  下面我用少量数据讲解,以便你更好理解。
  可以看到,简单的7笔数据。目标值是9。
  首先我们需要定义一列变量x,这里的x表示是否取出该笔金额。0表示不取,1表示取出
  为什么说是变量呢?因为稍后程序会不断改变它们的值。
  接着,定义目标函数。目标函数需要变量参与其中。在这个问题里面,我们需要用每一笔的金额乘以变量x,然后求和。
  这里使用SUMPRODUCT函数。
  现在看看目前为止做了什么事情。定义了一组变量定义了目标函数定义了一个约束条件,每个x只能取0或1
  我们的目标是,通过修改变量x的值,使得目标函数最大化。但这些定义就足够了吗?我们来测试一下。
  首先,第一个x取1。目标函数结果满足了所有约束条件,但不是最大化。于是,第二个x取1。以此类推,直到第四个x取1。发现目标函数超过了9
  此时,从第一个x为1开始的搜索找不到结果,退回一开始的全是0的状态。现在换第二个x取1开始,直到第四个x取1,得到结果
  上面的过程只是一种简单表述,实际程序会做很多优化步骤。
  现在可以总结一下关键流程:一,定义变量,设定变量取值的约束二,定义目标函数三,设定目标函数的约束四,使目标函数最大化
  接下来,带着这四点步骤,就可以轻松使用ortools。用ortools表达问题
  首先,导入相关的库
  使用pandas加载数据
  设置好指定金额值
  接下来,就是使用ortools。
  行1:实例化model,我们将使用它进行变量创建,定义约束等一系列操作。行4:使用model创建一列变量。注意,在创建变量的时候,分别指定了最小值、最大值、以及变量的名字。行5:为了方便计算,添加到表格中行10:定义目标函数。按照之前的讲解,每一条记录的金额与x相乘,然后求和。行13:设定目标函数的约束。也就是小于等于指定值行16:最大化目标函数
  一切就绪,使用求解器求解。
  行1:创建一个求解器行3:调用求解器的函数,传入之前构造的model行5:其返回值可以表示是否找到最优解
  可以看到目标函数结果与指定值一致。
  但我们需要知道,目标函数的结果是来自于哪些记录。也就是每一个变量x的取值。
  只需要把每个变量x,给求解器转换,就可以得到变量值。这里我们在表格中新增一列,查看结果
  到这里,肯定有人会认为,自己用Python的itertools中的排列组合也能做到
  注意看左下角的运行时间,这个库是在C中执行运算。而且它使用的是最先进的算法。作为学习可以自己实现,但在产生工作切忌心高气燥添加更多约束条件
  在实际工作需求中,往往会存在更多的限制条件。比如本来超过指定成本值等等。
  接下来看看需求进阶。
  看看结果中,每个组别抽取了多少笔记录。
  可以看到,总共26个组别,其中一些组别被抽取了多于10笔的记录
  现在可以考虑第二个需求。我们希望在每个组别抽取的数量不能多于10笔,这种情况还能找到凑数结果吗?
  回到之前定义约束的代码。
  行1315:对表格数据按组别分组,每一组数据中,对该组别中的所有变量x的总和,限定在10以内。注意,所有的约束条件都记录放入model中
  重新执行得到:
  可以看到仍然找到最优解。
  再次获取变量的值,然后看看每个组别的抽取数量。
  完全符合要求
  不要忘记一键三连。你的点赞、收藏、关注,是我创作的动力。
  今天就分享到这里。从本期例子中可以看到,凑数问题在找到最优解的情况下,是有可能出现多个组合答案。那么,怎么可以列出所有符合要求的组合答案呢?
  此外,ortools还可以解决排班问题、路径最优、解答数独游戏等等。以后有机会再分享。
  转发、关注我,私信数据处理,获得本期源码和数据。

华为麒麟9000处理器,放到2023年相当于什么水平?还能入手吗华为麒麟9000处理器,放到2023年相当于什么水平?还能入手吗作为华为目前最出色的一款处理器,麒麟9000处理器芯片一直被很数码爱好者们讨论,有很多钟情华为的用户,甚至现在购买手SpringBootGlobalExceptionHandler全局异常处理器的使用作者大卫不加班来源httpsblog。csdn。netqq36922927articledetails82026683通常jsr303参数校验,由于返回的数据提示很不友好(bind正式确定!曝广东男篮续约辽篮克星,杜锋目标CBA总冠军目前CBA各大球队正处于休赛期的备战当中,接下来的第三阶段对于各大球队而言,将回归主场,因此接下来的比赛毫无疑问也是让球迷非常期待的。回顾第二阶段的比赛,广东队毫无疑问成为了最大的从小白到大佬互联网大厂人转型餐饮创业完全指南(2023版)立春已过,乍暖还寒。草木蔓发,春山可望。可清醒点说,我们实际还身在寒冬。过去两三年间,互联网教培房地产等行业,先后被卡住了脖颈。这个冬天,既长且冷。纷纷暮雪下辕门。越来越多大厂人,一文了解C语言C语言复习要点注该文档为手工整理C语言复习的要点,适合于初期完成学习C语言的同学复习大概知识点,以要点为准,时间匆忙,若有错误,请多担待。数据类型及表达式常见数据的表现形式常量程序狂飙之后,还有这5部高分警匪剧可以拯救剧荒今年开看最热的剧肯定是非狂飙莫属了,追剧追到上头,根本不想强哥被抓,甚至是想复活老默和徐江。像老默这样的杀手可以活到大结局,像徐江这么搞笑的反派可以活39集。狂飙收官一周了,身边很安切洛蒂马洛卡总想着激怒维尼修斯,看看对手都对他做了什么直播吧2月5日讯西甲第20轮,皇马01不敌马洛卡,多赛一场距离榜首5分。赛后,皇马主帅安切洛蒂出席了新闻发布会。维尼修斯发生的一切都不是他的错,他只想踢好足球。马洛卡球员和他们的球利拉德背靠背导致的疲劳是失利因素之一这会让你犯一些错误直播吧2月6日讯昨天,NBA常规赛开拓者121129不敌公牛。在下半场,最近4天3赛的开拓者显得有一些疲劳。在赛后接受采访时,利拉德对此这样说道我认为这是一个导致失利的因素,你会感李景亮VS基耶萨!没有理由失败的战斗!据外媒消息称,我国综合格斗运动员李景亮将在UFC287中对阵现排名第12位的基耶萨,这也是李景亮今年的首场战斗!基耶萨现在级别排名第12位,曾经击败过亚昆塔大流士卡洛斯康迪特拉斐尔世体曼联正和达洛特商谈续约事宜,巴萨意识到引进他不可行直播吧2月6日讯据世界体育报报道,曼联正在和达洛特商谈续约事宜,巴萨逐渐意识到引进这名葡萄牙国脚并不可行。目前,曼联和达洛特的续约谈判已经取得了一些进展,但还没能达成最终的协议。双1。94米穆里奇令皇马吃尽苦头,科索沃神锋在西甲重获新生西甲冠军争夺进入关键阶段,在伊比利亚之星球场,皇马后卫纳乔在马洛卡中锋韦达特穆里奇的空中压制下头球顶入自家球门,一场脆弱无力的01后,皇马已经在积分榜上被巴萨甩开8分之多,而穆里奇
开门红!刚刚,Nature发表复旦大学马余刚院士团队在夸克物质整体极化研究中的重要突破!日前,复旦大学马余刚院士团队等科研人员,首次在RHICSTAR国际合作的重离子碰撞实验中观测到了反应末态粒子的整体自旋排列现象。该成果为研究夸克胶子等离子体QGP中的强相互作用提供身体经常异常出汗,或与这4个原因有关,了解后,才能对症治疗出汗是人体正常的生理反应,尤其是到了炎热的夏天,温度升高,哪怕没有做剧烈的运动,但身体上也会出汗,进而达到调控体温的作用。如果是此种因素所导致,并不用过多的担心,可调查数据显示,生这些安卓手机的实用功能,你知道几个?功能一应用锁现在大家都很注重隐私。除了手机锁屏密码,Android还支持锁定单个App。即使在解锁状态下,不输入正确密码也无法打开App。操作方法设置安全应用锁设置应用密码功能二图1月18日星期三早上好,早安温馨的祝福图片带字带问候语录早上好祝福语大全2023年1月18日星期三农历腊月二十七,壬寅年癸丑月乙亥日今日是小寒的第十四天,离下一个节气大寒还有2天。距离2023兔年除夕夜还有3天!岁末将至,亲爱的朋友们,红米RedmiWatch3评测,新增蓝牙通话功能,综合实力再提升RedmiWatch3是红米在前不久的K60系列新品发布会上推出的新款智能手表,对比前代产品,RedmiWatch3在外观设计运动健康和生活便利功能等方面都有着不小的升级,主打有声前方高甜!邛崃冬草莓耙耙柑采摘指南来了!冬天的甜蜜是属于水果的柑橘的酸甜草莓的清甜再自己动手采摘光是想象都趣味无穷今天崃仔为大家推荐几个好去处找一个暖阳天一起去Tao柑橘草莓咯大橘大利邛崃的冬天怎能少了柑橘?一颗颗鲜亮澄世界旅游休闲中心澳门在中国南方的沿海地区,有一个地方,尽管陆地面积只有32。9平方公里,却坐落着超过二十处世界遗产。这个地方就是世界旅游休闲中心澳门。在这里,我们可以游览中外美景,领略古今变迁。妈阁庙2022年深圳龙岗区上新的这些身边公园你都去过了吗?来源深圳侨报漫步街头,抬头赏景,推窗见绿,绿树成荫2022年,通过科学规划和精心建设,深圳市龙岗区打造了许多个便民实用美观特色的宝藏小公园,辖区居民也有了更多健身娱乐拍照打卡的好去老外也爱中国年,速卖通公布海外热卖十大春节年货兔年春节临近,跨境电商平台上的海外消费者们也在悄悄置办春节年货。1月17日,速卖通公布海外消费者最爱买的十大年货,红红火火的兔年摆件新年战袍晚礼服神秘东方力量保温杯保暖神器滑雪内衣拼多多运营管理知识地图4大模块500知识点4大模块,420核心干货点,一图学懂拼多多运营,高清知识地图,在文末领取。目录大纲一,多多必知拼多多的优势特点,营销工具二,运营内功标题的重要性与制作细节,商品主图,商品详情页,重小鹏官宣降价数万元,还给老用户补偿大河报豫视频记者祁驿1月17日,小鹏汽车官方宣布针对旗下的G3iP5和P7三款产品多款配置车型进行调整,降幅为2万3。6万元,降价后,P5顶配不过20万出头,P7入门车型仅售20。
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网