• Python_操作记录


    1、Pandas读取数据文件(以文本文件作为示例),sep表示间隔,header=None表示无标题行

    df = pd.read_table("data/youcans3.dat", sep="\t", header=None)

    2、线性规划问题求解

            1)问题定义,确定决策变量、目标函数和约束条件;

            2)模型构建,由问题描述建立数学方程,并转化为标准形式的数学模型;

            3)模型求解,用标准模型的优化算法对模型求解,得到优化结果。

    很多Python的第三方包,都提供求解线性规划问题的算法,有的工具包还提供证书规划、非线性规划的算法,例如:

            1)Scipy提供了了解简单线性或非线性规划问题,但是不能求解如背包问题的0-1规划问题,或整数规划问题,混合整数规划问题。

            2)PuLP可以求解线性规划、整数规划、0-1规划、混合整数规划、二次规划和几何规划问题

    2.1 PuLP库求解线性规划问题

    1. import pulp
    2. #1、定义一个规划问题,Demo表示问题名称,sense表示最大/最小参数(LpMinimize、LpMaximize)
    3. m = pulp.LpProblem("Demo", sense=pulp.LpMaximize)
    4. #定义决策变量(名称,上限,下限,参数)
    5. #2、cat来设置变量类型,'Continuous'表示连续变量(默认值),'Integer'表示离散变量,'Binary'表示0/1变量
    6. x1 = pulp.LpVariable('x1',lowBound=0,upBound=7,cat='Continuous')
    7. x2 = pulp.LpVariable('x2',lowBound=0,upBound=7,cat='Continuous')
    8. x3 = pulp.LpVariable('x3',lowBound=0,upBound=7,cat='Continuous')
    9. #3、添加目标函数
    10. m += 2*x1 + 3*x2 - 5*x3
    11. #4、添加约束条件
    12. m += (2*x1 - 5*x2 + x3 >= 10)
    13. m += (x1 + 3*x2 + x3 <= 12)
    14. m += (x1 + x2 + x3 == 7)
    15. #5、求解
    16. m.solve()
    17. print("Satus:",pulp.LpStatus[m.status]) #输出求解状态
    18. for v in m.variables():
    19. print(v.name,"=",v.varValue) #输出每个变量的最优值
    20. print("F(x) = ",pulp.value(m.objective)) #输出最优解的目标函数值

  • 相关阅读:
    ARM术语
    云计算时代的等保测评挑战和应对策略
    27.gateway的限流实战(springcloud)
    vue2系列 — 自定义指令
    构建自动化测试环境:使用Docker和Selenium!
    小程序分包加载和拓展
    【ODPS 新品发布第 2 期】实时数仓 Hologres:推出计算组实例/支持 JSON 数据/向量计算+大模型等新能力
    图解Kafka架构学习笔记(一)
    给定DNA序列,查找有效匹配子串
    5个物联网商业案例及其带给我们的启示
  • 原文地址:https://blog.csdn.net/qq_63761366/article/details/132740121