线性规划
标准型
maximizen∑j=1cjxjs.t.n∑j=1ai,jxj⩽bi,i=1,2,⋯,mxj⩾0,j=1,2,⋯,n
用矩阵表示:
maximizecTxs.t.Ax⩽bx⩾0
所有线性规划问题都可以通过变换来用标准型表示。若某个变量 x 无限制,则可以将其拆为两个非负变量 x0,x1,使得 x=x0−x1。
松弛型
maximizen∑j=1cjxjs.t.xi+n=bi−n∑j=1ai,jxj,i=1,2,⋯,mxj⩾0,j=1,2,⋯,n+m
用松弛型表示就能使所有约束条件都是等式,这样可以避免不等号变号的问题。
单纯形
发现所有可行解构成的区域,即解空间,是一个凸形区域,因此局部最优解的值有且仅有一个,并且等于全局最优解的值,所以使用一个类似爬山的算法求解最优解时不用担心算法会陷入一个局部最优解。单纯形就是那个类似爬山的算法。
设松弛型中等式左侧形如 xi+n 的变量为基变量,等式右侧形如 xj 的变量为非基变量。当常数项 bi 非负时,一组基变量和非基变量就存在着一个基本解,即基变量的值为 bi,非基变量的值为 0。
得到可行解后,进行一个操作叫转轴 pivot,就是互换一个基变量和一个非基变量,如:
xB=bi−n∑j=1ai,jxj⇒xN=1ai,N(bi−∑j≠Nai,jxj−xB)
把其他等式和答案函数中的 xN 也都替换掉。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
2020-08-11 题解 洛谷 P5299 【[PKUWC2018]Slay the Spire】