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库求解线性规划问题

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

你可能感兴趣的:(python,开发语言)