广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么实现线性规划
  • 550
分享到

Python中怎么实现线性规划

2023-06-16 12:06:16 550人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家介绍python中怎么实现线性规划,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 运筹学运筹学是一种科学的决策方法,它通常是在需要分配稀缺资源的条件下,寻求系统的优秀设计。科学的决策方法需要使用

这篇文章给大家介绍python中怎么实现线性规划,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

 运筹学

运筹学是一种科学的决策方法,它通常是在需要分配稀缺资源的条件下,寻求系统的优秀设计。科学的决策方法需要使用一个或多个数学模型(优化模型)来做出最优决策。

优化模型试图在满足给定约束的决策变量的所有值的集合中,找到优化(最大化或最小化)目标函数的决策变量的值。 它的三个主要组成部分是:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 目标函数:要优化的函数(最大化或最小化)。

  3. 决策变量:影响系统性能的可控变量。

  4. 约束:决策变量的一组约束(即线性不等式或等式)。非负性约束限制了决策变量取正值。

优化模型的解称为最优可行解。

建模步骤

对运筹学问题进行准确建模是很重要的任务,也是很困难的任务。错误的模型会导致错误的解决方案,从而不能解决原来的问题。团队成员应按照以下步骤进行建模:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 问题定义:定义项目的范围,并确定三个要素:决策变量、目标和限制(即约束)。

  3. 模型构建:将问题定义转化为数学关系。

  4. 模型求解:使用标准优化算法。在获得解后,需要进行灵敏度分析,以找出由于某些参数的变化而导致的解的行为。

  5. 模型有效性:检查模型是否按预期工作。

  6. 实现:将模型和结果转换为解决方案。

线性规划

线性规划(Linear  Programming,也称为LP)是一种运筹学技术,当当所有的目标和约束都是线性的(在变量中)并且当所有的决策变量都是连续的时使用。线性规划是最简单的运筹学方法。

Python的SciPy库包含用于解决线性编程问题的linprog函数。在使用linprog时,编写代码要考虑的两个注意事项:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 这个问题必须表述为一个最小化问题。

  3. 不等式必须表示为≤。

最小化问题

让我们考虑以下要解决的最小化问题:

Python中怎么实现线性规划

让我们看一下Python代码:

# Import required libraries import numpy as np from scipy.optimize import linprog  # Set the inequality constraints matrix # Note: the inequality constraints must be in the fORM of <= A = np.array([[-1, -1, -1], [-1, 2, 0], [0, 0, -1], [-1, 0, 0], [0, -1, 0], [0, 0, -1]])  # Set the inequality constraints vector b = np.array([-1000, 0, -340, 0, 0, 0])  # Set the coefficients of the linear objective function vector c = np.array([10, 15, 25])  # Solve linear programming problem res = linprog(c, A_ub=A, b_ub=b)  # Print results print('Optimal value:', round(res.fun, ndigits=2),       '\nx values:', res.x,       '\nNumber of iterations performed:', res.nit,       '\nStatus:', res.message)

输出结果:

# Optimal value: 15100.0  # x values: [6.59999996e+02 1.00009440e-07 3.40000000e+02]  # Number of iterations performed: 7  # Status: Optimization terminated successfully.

最大化问题

由于Python的SciPy库中的linprog函数是用来解决最小化问题的,因此有必要对原始目标函数进行转换。通过将目标函数的系数乘以-1(即通过改变其符号),可以将最小化问题转化为一个最大化问题。

让我们考虑下面需要解决的最大化问题:

Python中怎么实现线性规划

让我们看一下Python的实现:

# Import required libraries import numpy as np from scipy.optimize import linprog  # Set the inequality constraints matrix # Note: the inequality constraints must be in the form of <= A = np.array([[1, 0], [2, 3], [1, 1], [-1, 0], [0, -1]])  # Set the inequality constraints vector b = np.array([16, 19, 8, 0, 0])  # Set the coefficients of the linear objective function vector # Note: when maximizing, change the signs of the c vector coefficient c = np.array([-5, -7])  # Solve linear programming problem res = linprog(c, A_ub=A, b_ub=b)  # Print results print('Optimal value:', round(res.fun*-1, ndigits=2),       '\nx values:', res.x,       '\nNumber of iterations performed:', res.nit,       '\nStatus:', res.message)

上述代码的输出结果为:

# Optimal value: 46.0  # x values: [5. 3.]  # Number of iterations performed: 5  # Status: Optimization terminated successfully.

关于Python中怎么实现线性规划就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python中怎么实现线性规划

本文链接: https://www.lsjlt.com/news/283554.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中怎么实现线性规划
    这篇文章给大家介绍Python中怎么实现线性规划,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 运筹学运筹学是一种科学的决策方法,它通常是在需要分配稀缺资源的条件下,寻求系统的优秀设计。科学的决策方法需要使用...
    99+
    2023-06-16
  • Python+PuLP怎么实现线性规划
    今天小编给大家分享一下Python+PuLP怎么实现线性规划的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.PuLP 库的...
    99+
    2023-06-30
  • python中如何实现线性规划
    python中如何实现线性规划,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。说明图解法,用几何绘图的方法,求出最优解。中学就讲过这种方法,在经济学研究中非常常用...
    99+
    2023-06-20
  • Python实现线性规划求解
    线性规划标准形式:MATLAB-------------线性规划求解主要分  两个部分,目标函数(max,min)和约束条件(s.t.),求解时一般要化为MATLAB标准形式:求解用到的模块(scipy 和  numpy...
    99+
    2023-06-02
  • Python+PuLP实现线性规划的求解
    目录1.PuLP 库的安装2.线性规划简介2.1 线性规划2.2 整数规划3.求解过程3.1 定义模型3.2 定义决策变量3.3 添加约束条件3.4 添加目标函数3.5 模型求解3....
    99+
    2022-11-10
  • python中求解线性规划的包是什么
    这篇文章主要介绍python中求解线性规划的包是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!说明Scipy库提供简单的线性或非线性规划问题。但不能解决背包问题的0-1规划问题,或者整数规划问题,混合整数规划问题...
    99+
    2023-06-20
  • python中如何处理线性规划问题
    这篇文章主要为大家展示了“python中如何处理线性规划问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中如何处理线性规划问题”这篇文章吧。说明问题定义,确定决策变量、目标函数和约...
    99+
    2023-06-20
  • python四种出行路线规划的实现
    目录一、简介思路高德地图API二、获取经纬度三、路线规划(四种方式)获取出行路线数据处理四、演示效果五、结尾一、简介 路径规划中包括步行、公交、驾车、骑行等不同方式,今天借助高德地图web服务api,实现出行路线规...
    99+
    2022-06-02
    python 出行路线规划 python路线规划图
  • Python解决非线性规划中经济调度问题
    目录1、概述2、scipy.optimize.minimize参数3、简单案例引出(1)Scipy.optimize实现(2)遗传算法包实现 (—sko.GA&...
    99+
    2022-11-10
  • 【自动驾驶】路径规划——ReedsShepp 曲线总结(python实现 | c++实现)
    文章目录 参考资料1. Reeds-Shepp 曲线1.1 基本概念1.2 字段组合1.3 时间翻转(timeflip)、反射(reflect)和向后变换(backwards)1.3.1 时间...
    99+
    2023-10-07
    自动驾驶 人工智能 路径规划 reeds-shepp曲线
  • 怎么在CSS3中利用transition属性实现下划线
    怎么在CSS3中利用transition属性实现下划线?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。transition属性transition: 简写属性,用于在一个属性中设...
    99+
    2023-06-08
  • Python数学建模PuLP库线性规划实际案例编程详解
    目录1、问题描述2、用PuLP 库求解线性规划2.1 问题 1(1)数学建模(2)Python 编程(3)运行结果2.2 问题 2(1)数学建模(2)Python 编程(3)运行结果...
    99+
    2022-11-12
  • div css怎么实现文字中划线
    这篇文章主要介绍了div css怎么实现文字中划线的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇div css怎么实现文字中划线文章都会有所收获,下面我们一起来看看吧。代码&l...
    99+
    2022-10-19
  • Python怎么实现最大连续区间和动态规划
    本篇内容介绍了“Python怎么实现最大连续区间和动态规划”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题描述:给定一段长度为N的整数序列...
    99+
    2023-06-26
  • Python中私有属性下划线和双下划线的区别是什么
    今天小编给大家分享一下Python中私有属性下划线和双下划线的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在Py...
    99+
    2023-07-05
  • Python怎么实现线性回归
    Python怎么实现线性回归,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、概述(1)人工智能学习        &n...
    99+
    2023-06-26
  • 微信小程序中如何实现高德地图路线规划
    这篇文章给大家分享的是有关微信小程序中如何实现高德地图路线规划的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言最近项目中做到相关网约车小程序。需要使用到地图中的路线规划,对3种...
    99+
    2022-10-19
  • java驼峰转下划线怎么实现
    要将驼峰命名法转换为下划线命名法,可以使用以下方法:1. 使用正则表达式:```javaString input = "camelC...
    99+
    2023-09-11
    java
  • css文字划线效果怎么实现
    这篇文章主要介绍“css文字划线效果怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css文字划线效果怎么实现”文章能帮助大家解决问题。 一、文字中划线CS...
    99+
    2022-10-19
  • css中怎么用图片实现超级链接的个性化下划线
    这篇文章给大家分享的是有关css中怎么用图片实现超级链接的个性化下划线的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先,我们来说说这个彩色的下划线是怎么弄的。也许你已经猜到了,一张渐变的背景图片。没错!就是下面...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作