码农知识堂 - 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博客_列生成算法

  • 相关阅读:
    iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)
    高端程序员上班摸鱼指南
    python web 开发与 Node.js + Express 创建web服务器入门
    记一次 .NET 某数控机床控制程序 卡死分析
    SprringCloud Gateway动态添加路由不重启
    PMP每日一练 | 考试不迷路-11.24(包含敏捷+多选)
    将多个EXCEL 合并一个EXCEL多个sheet
    Linux shell终端打开方式
    模拟实现.net中的Task机制:探索异步编程的奥秘
    虚拟服务器EC2实战之监控与调试
  • 原文地址:https://blog.csdn.net/CodeSavior/article/details/126568765
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号