算法导论随笔(十五):线性规划与单纯形算法(上篇:基本概念)

2023-11-13

线性规划(Linear Programming)问题指的是在给定有限资源的前提下最大化或最小化某个目标的问题。这里我将分上下两篇来谈谈线性规划和单纯形算法。

前言

线性规划问题有很多例子,比如在算法导论随笔(六):贪心算法Greedy algorithm与分数背包问题中,我曾经提到过一个分数背包问题。当时是使用贪心策略来解决。其实,这个问题也可以使用线性规划来解决。

先来回顾一下分数背包问题:如下图,图中有5瓶液体,分别标号为1,2,3,4,5。编号为1的液体有4毫升,每毫升价值3美元。所以该液体的总价值为12美元。类似地,编号2,3,4和5的液体,分别有8毫升,2毫升,6毫升和1毫升,而每毫升的价值分别为4,20,5,50美元,它们的总价值分别为32,40,30,50美元。
在这里插入图片描述
现在我们有一个10毫升的杯子,想从5个瓶子里取出共10毫升的液体,使得该10毫升液体的总价值最高。回顾本篇文章最开始时候对线性规划问题的描述:在给定有限资源的前提下,最大化或最小化某个目标的问题。
这里我们可以看出来,对于分数背包问题,“给定有限资源的前提”就是:我们只能从每瓶液体中取出大于0而且小于该液体容积的液体,并且最后的总容积为10毫升。“最大化某个目标”也就是指我们要使得该10毫升的液体总价值最高。假定我们把这5个瓶子中所拿出的液体体积分别设置为x1,x2,x3,x4和x5,那么如果我们把这些前提和目标用数学的方式写下来,就是下面的这种形式。
最大化
x 1 × 3 + x 2 × 4 + x 3 × 20 + x 4 × 5 + x 5 × 50 x_1 \times 3 + x_2 \times 4 + x_3 \times 20 + x_4 \times 5 + x_5 \times 50 x1×3+x2×4+x3×20+x4×5+x5×50
,其中x1,x2,x3,x4和x5满足下列条件
x 1 ≥ 0 x 1 ≤ 4 x 2 ≥ 0 x 2 ≤ 8 x 3 ≥ 0 x 3 ≤ 2 x 4 ≥ 0 x 4 ≤ 6 x 5 ≥ 0 x 5 ≤ 1 x 1 + x 2 + x 3 + x 4 + x 5 = 10 x_1 \ge 0 \newline x_1 \le 4 \newline x_2 \ge 0 \newline x_2 \le 8 \newline x_3 \ge 0 \newline x_3 \le 2 \newline x_4 \ge 0 \newline x_4 \le 6 \newline x_5 \ge 0 \newline x_5 \le 1 \newline x_1 + x_2 + x_3 + x_4 + x_5 = 10 x10x14x20x28x3<

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法导论随笔(十五):线性规划与单纯形算法(上篇:基本概念) 的相关文章

  • 人工智能的缺陷

    首先从应用层面理解什么是人工智能 目前人工智能主流应用面包括 自然语言处理领域 代表为chatgpt 我们能用其进行日常交流 问题答疑 论文书写等 计算机视觉领域 代表为人脸识别 现在广泛应用于进出小区 办公打卡 实名认证等 所以简单理解人

随机推荐

  • Ubuntu下配置DNS

    方法一 通过 etc network interfaces 在它的最后增加一句 多个dns之间用空格分隔 interfaces 5 file used by ifup 8 and ifdown 8 Include files from et
  • Jeecg-boot JDBC任意代码执行漏洞

    漏洞描述 JeecgBoot是一款开源的企业级低代码平台 提供了表单 视图 流程等一键生成代码功能 目前在GitHub具有 35 5k star 在V3版本中 由于未对JDBC连接字符串进行限制 未授权的攻击者可配置恶意的连接字符串 通过发
  • 【react】props的批量传递

    真实开发中 如果有很多个要传递的属性 并且属性值很有可能是通过后台接口拿到的 那么一个个的在标签上写属性就不行了 正确写法 此处 p 的 不是解构赋值的那个 而是react用来放置变量的 实际上真实的表达式只有 p 但是根据es6语法 对象
  • 解读awr报告

    第一次看到awr报告 里面包含很多东西 完全不知道从哪里看起也不知道各项指标都是什么含义 从头到尾看了一遍 啥也没有看到 看了后面忘了前面的 花费一天的时间去熟悉它 在网上查资料对着报告一项项的熟悉了一遍 DB Name DB Id Ins
  • Vim:如何退出Vim编辑器?

    Vim 如何退出Vim编辑器 笑 这个问题可以说是每个初学者的 必经之路咯 解决办法如下 想要退出vim时 先按Esc 然后直接输入 就会在最下面显示出一行 vim开始进入命令模式 而不是write模式 当初自己傻得不行 明知道命令却不知道
  • SQL Server 2012下载和安装配置详细教程手册

    SQL Server 2012 下载和安装详细教程 目录 SQL Server 2012 下载和安装详细教程 1 软件下载 2 软件安装 3 软件验证 1 软件下载 1 官网地址 https www microsoft com zh cn
  • 【LeectCode】刷题指南

    LeetCode刷题指南 算法 双指针 633 平方数之和 https leetcode cn com problems sum of square numbers 345 反转字符串中的元音字母 https leetcode cn com
  • 数字集成电路设计-18-UVM

    引言 UVM Universal Verification Methodology 可以理解为形而上的东西 可以理解为是基于System verilog的一个库 提供一些API调用 其实没必要把UVM抬的那么高 上升到形而上的层次 因为在实
  • 利用RDM速度投影法提取微多普勒时频图

    0 关于微多普勒 雷达发射电磁信号 EW 到物体并接受物体的回波信号 基于接收信号的延迟时间 雷达可以测量目标的距离 如果物体是移动的 接受信号的频率将偏离发射信号的频率 成为多普勒效应 多普勒频移取决于移动物体的径向速度 即在视线方向上的
  • 【Cubase11】音乐工作站:宿主软件 - 基础入门笔记

    笔记目录 一 虚拟声卡安装与设置 1 1 为什么要安装虚拟声卡 1 2 Voicemeeter官网下载 1 3 Voicemeeter安装运行 1 3 1 双击安装包 默认安装即可 1 3 2 设置电脑的声音输出设备为虚拟声卡输入 1 3
  • SQL 子查询和临时表格

    首个子查询解决方案 首先 我们需要按照日期和渠道分组 然后按事件数 第三列 排序 这样可以快速得出第一个问题的答案 SELECT DATE TRUNC day occurred at AS day channel COUNT as even
  • 华为OD机试真题 Java 实现【获取最大软件版本号】【2023Q1 100分】

    一 题目描述 Maven版本号定义 lt 主版本 gt lt 次版本 gt lt 增量版本 gt lt 里程碑版本 gt 举例3 1 4 beta 其中 主版本和次版本都是必须的 主版本 次版本 增量版本由多位数字组成 可能包含前导零 里程
  • 张一鸣

    转自 https baike baidu com item E5 BC A0 E4 B8 80 E9 B8 A3 15898544 fr aladdin 张一鸣出生于1983年福建龙岩 父亲在市科委的工作 后来去东莞开办电子产品加工厂 母亲
  • wangEditor富文本编辑器(第三章:图片上传)

    目录 前言 一 思路 1 修改上传方式 二 全部流程 总结 前言 接上一章字数限制做好后 这一章要解决一下图片上传得问题 官方中得图片是转成了base格式 但是现实情况下就是要调用后端接口上传照片 所以我们这章主要是修改图片上传得默认接口
  • bigdecimal去除末尾多余的0 ,stripTrailingZeros()科学计数法解决

    BigDecimal是处理高精度的浮点数运算的常用的一个类 当需要将BigDecimal中保存的浮点数值打印出来 特别是在页面上显示的时候 就有可能遇到预想之外的科学技术法表示的问题 一般直接使用 BigDecimal toString 方
  • 若依框架如何开启注册功能?

    如何开启注册功能 一 后端需要的修改 根据路径找到controller 发现配置通过service获得 找到对应的sysConfigMapper xml文件 找到数据库中表的数据 修改为true 后端需要改的就好了 二 前端需要的修改 将l
  • UVA 1601 The Morning after Halloween [DBFS]

    The Morning after Halloween Time Limit 12000MS 64bit IO Format lld llu 直接搜索时间过不了 可以先把底图抽出来 这样的话就不用O maxn maxn 5 来判断是否可以转
  • qemu模拟器搭建arm运行环境搭建笔记

    qemu system arm M vexpress a9 m 512M kernel home lyk Downloads qemu linux 3 16 arch arm boot zImage nographic append roo
  • SD2.0软件大会纪实 - 个人观感

    12月9日 10日 SD2 0大会在上海光大会展中心国际大酒店举行 有幸参加这场盛会 将这两天的所得分享一下 以下文字是通过回忆并参考了CSDN网站的报道整理出来的 9日是全体大会 上午Keynote基本上是个广告的集合 CSDN给自己的各
  • 算法导论随笔(十五):线性规划与单纯形算法(上篇:基本概念)

    线性规划 Linear Programming 问题指的是在给定有限资源的前提下 最大化或最小化某个目标的问题 这里我将分上下两篇来谈谈线性规划和单纯形算法 前言 线性规划问题有很多例子 比如在算法导论随笔 六 贪心算法Greedy alg