中小型网站建设流程,青岛做网站多少钱,如何查公司注册信息及法人,线上注册公司是在哪个网站目录
前言
一、实测
1、整数规划问题
2、非线性规划问题
二、代码正确性验证
1、整数规划问题代码验证
2、非线性规划问题代码验证
三、结果正确性验证
1、整数规划问题结果正确性验证
2、非线性规划问题正确性验证
四、整数规划问题示例
后记 前言
模型#xff…目录
前言
一、实测
1、整数规划问题
2、非线性规划问题
二、代码正确性验证
1、整数规划问题代码验证
2、非线性规划问题代码验证
三、结果正确性验证
1、整数规划问题结果正确性验证
2、非线性规划问题正确性验证
四、整数规划问题示例
后记 前言
模型使用ollama部署的deepseek-r1:14b。
一、实测
直接问规划求解python代码
回答它给出了两份代码一个适用于整数规划问题一个适用于非线性规划。 1、整数规划问题
from pulp import *# 创建问题
prob LpProblem(example, LpMaximize)# 定义变量
x1 LpVariable(x1, 0, None, Integer)
x2 LpVariable(x2, 0, None, Integer)# 定义目标函数
prob 3 * x1 2 * x2# 定义约束条件
prob x1 x2 4
prob 2 * x1 x2 6# 求解问题
prob.solve()# 输出结果
print(状态:, prob.status)
print(fx1 {x1.value})
print(fx2 {x2.value})
print(f目标函数值 {value(prob.objective)})
2、非线性规划问题
from scipy.optimize import minimize# 目标函数
def objective(x):return x[0]**2 x[1]**2# 约束条件
constraints [{type: ineq, fun: lambda x: 4 - (x[0] x[1])}, # x1 x2 4{type: ineq, fun: lambda x: 6 - (2*x[0] x[1])} # 2x1 x2 6
]# 初始猜测值
x0 [0, 0]# 使用SLSQP方法求解
result minimize(objective, x0, methodSLSQP, constraintsconstraints)if result.success:print(结果)print(fx1 {result.x[0]:.2f})print(fx2 {result.x[1]:.2f})print(f目标函数值 {result.fun})
else:print(无解或问题未定义。)
二、代码正确性验证
1、整数规划问题代码验证
直接报错…… 问题LpVariable方法的第四个参数有问题。
# 定义变量
x1 LpVariable(x1, 0, None, Integer)
x2 LpVariable(x2, 0, None, Integer)
改为
# 定义变量
x1 LpVariable(x1, 0, None, Integer)
x2 LpVariable(x2, 0, None, Integer)或者改为这个也行
# 定义变量
x1 LpVariable(x1, 0, None, LpInteger)
x2 LpVariable(x2, 0, None, LpInteger)修改完就正常运行了。 2、非线性规划问题代码验证
第二份代码就正常运行了。 三、结果正确性验证
1、整数规划问题结果正确性验证 显然一眼就看出来了它结果有问题x1和x2应为具体的数值。
问题
print(fx1 {x1.value})
print(fx2 {x2.value})
在源码中找到一个比较可疑的变量名试试看。 修改
print(fx1 {x1.varValue})
print(fx2 {x2.varValue})
结果 那么这个结果是否正确呢还需进一步验证
问题转换
设x x1y x2为方便查看 限制条件 ① x ≥ 0且为整数 ② y ≥ 0且为整数 ③ x y ≤ 4 ④ 2x y ≤ 6 求当x和y取何值时3x 2y取最大值创建问题时使用的是LpMaximize即求最大值
解直接上图 正确答案为x 2y 2目标函数最大值为10。
结果正确。
2、非线性规划问题正确性验证
问题转换
设x x1y x2为方便查看 限制条件 ① x ≥ 0因初始猜测值的是x0 [0, 0] ② y ≥ 0因初始猜测值的是x0 [0, 0] ③ x y ≤ 4 ④ 2x y ≤ 6 求当x和y取何值时x² y²取最小值使用的是SciPy库中的optimize中的minimize
解直接上图 根据条件可知x和y的取值范围在四边形ABCD的范围内很容易得出当x 0y 0时x² y²的最小值为0。
结果正确。
四、整数规划问题示例
from pulp import *物品A 6.85元/个
物品B 5.28元/个
物品C 2.3元/个
总价90.56元
求A、B、C分别买了几个
arr [6.85, 5.28, 2.3]
total 90.56# 创建问题实例
prob LpProblem(example, LpMaximize)# 定义决策变量整数
n len(arr)
variables [LpVariable(fx{i1}, 0, None, LpInteger) for i in range(n)]# 定义约束条件
prob lpSum([arr[i] * variables[i] for i in range(n)]) total# 求解问题
prob.solve()# 输出结果
print(Status:, prob.status)
for i in range(n):print(fx{i1} {variables[i].value()})
结果
Status: 1
x1 10.0
x2 2.0
x3 5.0from pulp import *假设有三种产品每种产品的单位利润分别为 [3, 5, 4] 元
而生产每个产品需要消耗的资源为 [2, 4, 3] 单位
总共有 100 单位的资源可用。
目标是确定每种产品的生产数量以使总利润最大化。
# 输入数据
profits [3, 5, 4] # 利润数组
resource_usage [2, 4, 3] # 资源消耗数组
total_resource 100 # 总资源可用量# 创建问题实例
prob LpProblem(Maximize_Profits, LpMaximize)# 定义决策变量整数
n len(profits)
variables [LpVariable(fx{i1}, 0, None, LpInteger) for i in range(n)]# 定义目标函数最大化总利润
prob lpSum([profits[i] * variables[i] for i in range(n)]), Maximize Profits# 添加约束条件资源限制
prob lpSum([resource_usage[i] * variables[i] for i in range(n)]) total_resource, Total Resource Constraint# 求解问题
prob.solve()# 输出结果
print(Status:, prob.status)
for i in range(n):print(fx{i1} {variables[i].value()})
print(Maximized Profit , value(prob.objective))
结果
Status: 1
x1 50.0
x2 0.0
x3 0.0
Maximized Profit 150.0后记
后面又测试了几次有时候它给出的代码可以直接运行有时候又有问题