- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈信息学竞赛中的线性规划——简洁高效的单纯形法实现与应用 浙江省杭州第二中学 李宇骞 引子 最优匹配 网络流 最短路 资源优化配置问题 最佳物资供给问题 多物网络流 引子 最优匹配 网络流 最短路 有更好的特殊解法 资源优化配置问题 最佳物资供给问题 多物网络流 只有线性规划 引子 无论作为替代解法或者唯一解法 构造模型 解线性规划 一劳永逸 复杂 因题而异 简单 概览 定义与简单应用 单纯形法简介 实现 构造模型 解线性规划 定义 线性规划:在满足一些线性等式或者不等式的条件下,最优化一个线性函数。 x1+x2+x3+x4 -2x1+8x2+0x3+10x4 = 50 x1 =0 x2=4 x1+5=x2 多物网络流 源点1 源点2 汇点1 汇点2 要求流量 多物网络流 k个物品,那么对每个边,设k个变量,分别代表该物品在此边上的流量。 最优化的目标函数:无——只求可行解 约束: 所有物品流量和 不超过 边容量限制 每个物品的流都 满足 流量平衡条件 每个物品总流量 达到 它的要求流量 单纯形法 标准形式——统一问题的描述 主程序——调整法 松弛形式——方便程序中点的表示 转轴操作——最核心的调整操作 单纯形法 标准形式(Standard form) 最大化 x1+x2+x3+x4 满足: x1+2x2+3x3 = 3 x4 = 5 x1,x2,x3,x4 = 0 目标函数要求最大化 所有的变量都有非负限制 所有的限制条件都是小于等于的 单纯形法 标准形式(Standard form) m n a c b 单纯形法 标准形式(Standard form) 最大化 共n+m个约束,除了n个变量的非负限制外,还满足m个约束,第j个约束为 单纯形法 形象的理解 最优值在某一顶点上 用调整法,从一个顶点出发,不断寻找目标函数更大的点,直到到达一个最优值。 单纯形法 主程序 初始化:首先找到一个顶点 最优化:不断调整,直到最优 单纯形法 顶点 松弛形式 一个顶点对应一个松弛形式 单纯形法 n维空间中的一个顶点 n个数的坐标 n个n元一次方程组的解 n个不等式取等号 单纯形法 松弛形式(Slack form) 将n+m个不等式和n+m个变量一一对应 x1=0 xn=0 … x1=0 xn=0 xn+j=0 … 第i个不等式取等号时就是xi=0 单纯形法 松弛形式(Slack form) n维空间中的一个顶点 n个不等式取等号 n个变量取0 单纯形法 松弛形式(Slack form) 点 点 松弛形式 松弛形式 单纯形法 转轴操作(Pivot) n-1个等式确定一条边 调换N中的某一个元素 沿着另外n-1个等式所确定的边到达另一个点 单纯形法 时间复杂度 最多有 个松弛形式 顶点的个数远不到这么多 调整法“爬”得很快,经过很少的点以后就达到了最优 实现 细节决定成败 系数矩阵的表示——以退为进 初始化中X0的处理——被忽略的关键 贪心的优化——小改动带来速度上的大飞跃 实现 编程复杂度 200行 110行 17个空行 12行注释 18个“{” 14行读入、输出 UVA10498,没有初始化步骤的单纯形法 实现 优化 贪心:每一次调整使目标函数变得尽量大! 普通的最优化过程——25行 加优化以后的过程——35行 速度? 测试 200个变量、200个约束 普通程序 优化程序 LINDO 时间(秒) 8 1 1 操作数 (Pivot) 5396 336 558
文档评论(0)