码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 列生成算法


    列生成是单纯形法的一种形式,其主要用途是用来求解变量多,但是大部分变量都是0的线性规划问题。

    主要思路是先忽略大部分变量,构造一个只使用小部分变量的模型(其他的变量为0),先求出一个解,在扩大求解范围,寻找一个能使目标值更优的变量,加入模型再次求解,重复这个过程,直到找不到更好的变量为止。

    问题是如何判断新增一个变量是否能使目标函数更优。

    我们用对偶的思想看待列生成算法

    原问题如果是包含一些约束的最小化问题,其对偶问题能够转化为包含一些新约束的最大化问题。还有一个比较重要的特征是:原问题的最优值和对偶问题的最优值相等。

    原问题的约束对应对偶问题的变量。原问题的变量对应对偶问题的约束。

    我们之前介绍的列生成是先引入一部分变量。转化为对偶问题后,相当于只包含部分约束。如果在原问题中引入了新的变量,则相应的对偶问题中的约束也变多了。

    我们的目标是新增了变量后能让原问题的目标函数值变小,相当于对于对偶问题新增了约束能让目标函数值更大。

    相当于在对偶问题中,新增加约束前的最优解不在新增约束后的可行域内

    也就是说在对偶问题中,新增约束前的最优解不满足新增的约束条件

    设增加约束前的最优解为w*,新增的约束是:aw\leqslant c

    如果新增约束前的最优解不满足新增的约束条件即:aw*> c,

    即c-aw^{*}< 0。

    我们称上面的式子为检验数,reduced cost。

    我们可以找到检验数中最小的一个或几个加入到包含部分变量的原问题中,不断迭代,直到所有未加入到模型中的变量的检验数都大于等于0,目标值无法再优化,已经得到最优解。

    应用实例可以看这个文章

    运筹说 第21期 | 算法介绍之列生成算法 - 知乎

    单纯形法和列生成算法

    和单纯形法相比,列生成算法步骤大体相同,单纯形法是求解所有非基变量的检验数,而列生成算法通过构造子问题,无需遍历所有变量,生成一个或多个变量,一点一点的提升优化效果。

    (有个问题,列生成算法每次扫描几个变量,万一这几个变量恰巧是的检验数都大于等于0,怎么办?)

    目前好多问题都是整数规划问题,先对整数变量进行松弛,然后用上面提到的方法进行求解。

    最后可以利用分支定界法对得到的解进一步处理成整数解。

    参考文章

    最清楚的-列生成算法简介_xinxing_Star的博客-CSDN博客_列生成算法

  • 相关阅读:
    基于linux的web服务器(一)——配置固定IP地址
    2023国考证件照要求什么底色?证件照换背景底色的方法
    经典论文-SqueezeNet论文及实践
    学生体育铅球网页设计作品静态HTML网页模板源码 大学生体育铅球网站制作 简单校园体育网页设计成品
    DHCP协议从入门到部署DHCP服务器进行实验
    Safari 最新技术预览版来啦,为开发者带来了哪些新功能?
    微信小程序 - 页面插入添加 Banner 广告超详细教程(支持自定义样式、位置、大小等)及注意事项
    Linux每日智囊
    88Q2110 通过C22方式访问C45 phy地址
    MongoDB基础入门
  • 原文地址:https://blog.csdn.net/CodeSavior/article/details/126568765
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号