数学建模专题1.1线性规划模型(LP问题) | 您所在的位置:网站首页 › 线性规划模型步骤 › 数学建模专题1.1线性规划模型(LP问题) |
一:前言
数学规划是运筹学的一个重要分支,而线性规划又是数学规划中的一部分主要内容,很多实际问题都可以归结为"线性规划(Linear Programming,LP)"问题。 二:解决步骤规划模型由3个要素组成: 决策变量:问题中要确定的未知量,用于表明规划问题中的方案,措施等目标函数:是决策变量的函数,优化目标通常是求该函数的最大值或最小值约束条件:是决策变量的约束和限制条件,通常由等式和不等式组成解决步骤: 第一步:分析问题,找出决策变量第二步:找出约束条件,即决策变量必须满足的一组线性等式或不等式约束第三步:根据问题的目标,构造一个关于决策变量的线性函数,即目标函数 三:线性规划模型的一般形式max(或min) 主要利用cvxpy库求解,命令行输入以下代码即可下载cvxpy库(若想下载其他库,修改cvxpy即可) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple cvxpy 例一某企业利用两种原材料A和B生产三种产品P₁、P₂和P₃。已知每生产 1 公斤的产品所消耗的原材料A、B的数量 (单位:公斤) 和花费的加工时间C (单位:小时),每公斤产品销售后所带来的利润 (单位:元) 以及每天可用的资源的数量如表 4.1 所示,则该企业应该如何制订每天的生产计划,才能使所获利润达到最大? 可以通过txt或者xlsx读入 import cvxpy as cp import numpy as np import pandas as pd c = np.genfromtxt("data0.txt",dtype=float,max_rows=6,usecols=range(8))#读取前6行前8列数据 e = np.genfromtxt("data0.txt",dtype=float,max_rows=6,usecols=8)#产量,读取最后一列数据 d = np.genfromtxt("data0.txt",dtype=float,skip_header=6)#销量,读取最后一行数据 # 上述代码也可写为 # data0 =pd.read_excel("data1.xlsx",header=None)#读取没有表头的表格 # data = data0.values # c = data[:-1,:-1] # e = data[:-1,-1] # d = data[-1,:-1] x = cp.Variable((6,8),pos=True)#6行8列数据,非负数 obj =cp.Minimize(cp.sum(cp.multiply(c,x)))#目标的最小值函数 #此处只能用cp.multipy(),不能用* con = [ cp.sum(x,axis=0)==d,#对应列的和 cp.sum(x,axis=1) |
CopyRight 2018-2019 实验室设备网 版权所有 |