【Deep Seek本地化部署】模型实测:规划求解python代码
目录
前言
一、实测
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(f"x1 = {x1.value}")
print(f"x2 = {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, method='SLSQP', constraints=constraints)if result.success:print("结果:")print(f"x1 = {result.x[0]:.2f}")print(f"x2 = {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(f"x1 = {x1.value}")
print(f"x2 = {x2.value}")
在源码中找到一个比较可疑的变量名,试试看。

修改:
print(f"x1 = {x1.varValue}")
print(f"x2 = {x2.varValue}")
结果:

那么这个结果是否正确呢?还需进一步验证
问题转换:
设:x = x1,y = x2(为方便查看)
限制条件:
① x ≥ 0,且为整数
② y ≥ 0,且为整数
③ x + y ≤ 4
④ 2x + y ≤ 6
求:当x和y取何值时,3x + 2y取最大值(创建问题时使用的是LpMaximize,即求最大值)
解:直接上图

正确答案为:x = 2,y = 2,目标函数最大值为10。
结果正确。
2、非线性规划问题正确性验证
问题转换:
设:x = x1,y = 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 = 0,y = 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(f'x{i+1}', 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(f"x{i+1} = {variables[i].value()}")'''
结果
Status: 1
x1 = 10.0
x2 = 2.0
x3 = 5.0
'''
from 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(f'x{i+1}', 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(f"x{i+1} = {variables[i].value()}")
print("Maximized Profit =", value(prob.objective))'''
结果:
Status: 1
x1 = 50.0
x2 = 0.0
x3 = 0.0
Maximized Profit = 150.0
'''
后记
后面又测试了几次,有时候它给出的代码可以直接运行,有时候又有问题


相关文章:
【Deep Seek本地化部署】模型实测:规划求解python代码
目录 前言 一、实测 1、整数规划问题 2、非线性规划问题 二、代码正确性验证 1、整数规划问题代码验证 2、非线性规划问题代码验证 三、结果正确性验证 1、整数规划问题结果正确性验证 2、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型ÿ…...
MySQL锁类型(详解)
锁的分类图,如下: 锁操作类型划分 读锁 : 也称为共享锁 、英文用S表示。针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的。 写锁 : 也称为排他锁 、英文用X表示。当前写操作没有完成前,它会…...
搜索插入位置(35)
35. 搜索插入位置 - 力扣(LeetCode) 相关算法:二分查找最左侧和最右侧target的index-CSDN博客 class Solution { public:int searchInsert(vector<int>& nums, int target) {int left 0;int right nums.size() - 1;int ans nu…...
八. Spring Boot2 整合连接 Redis(超详细剖析)
八. Spring Boot2 整合连接 Redis(超详细剖析) 文章目录 八. Spring Boot2 整合连接 Redis(超详细剖析)2. 注意事项和细节3. 最后: 在 springboot 中 , 整合 redis 可以通过 RedisTemplate 完成对 redis 的操作, 包括设置数据/获取数据 比如添加和读取数据 具体整…...
VDSuit-Full惯性动捕设备:高效率、高品质动画制作的利器
惯性动捕设备作为动画制作领域的新兴技术,与传统的关键帧动画制作相比,可以大大的缩短制作周期为创作者们提供极大便利。传统方式下,动画师需要逐帧调整角色动作,耗时费力。而惯性动捕设备能实时捕捉演员的动作,几乎瞬…...
【环境搭建】1.1源码下载与同步
目录 写在前面 一,系统要求 二,安装depot_tools 三,获取代码 四,代码同步 五,代码结构 写在前面 当前的开发背景是基于Google的开源Chromium,来开发Android设备的浏览器方案。 一,系统要…...
开源智慧园区管理系统对比其他十种管理软件的优势与应用前景分析
内容概要 在当今数字化快速发展的时代,园区管理软件的选择显得尤为重要。而开源智慧园区管理系统凭借其独特的优势,逐渐成为用户的新宠。与传统管理软件相比,它不仅灵活性高,而且具有更强的可定制性,让各类园区&#…...
C语言可变参数
在C语言中,处理可变参数(Variable Arguments)主要依赖于 <stdarg.h> 头文件中的一组宏定义。 以下是详细讲解和示例: 声明可变参数函数:使用 ... 表示可变参数 访问参数:通过 va_list 类型和配套宏…...
(1)Linux高级命令简介
Linux高级命令简介 在安装好linux环境以后第一件事情就是去学习一些linux的基本指令,我在这里用的是CentOS7作演示。 首先在VirtualBox上装好Linux以后,启动我们的linux,输入账号密码以后学习第一个指令 简介 Linux高级命令简介ip addrtou…...
frida 入门
一直想学 frida 一直鸽,终于有 ctf 用到了,我测东西这么多 官方文档感觉写的依托,这 python rpc 直接拿来入门真的太有生活了 frida 是一个动态插桩 (dynamic instrumentation) 工具,提供了交互式 cli 界面来追踪函数行为。用人话…...
基于STM32的智能健康监测手环
1. 引言 随着可穿戴设备的普及,健康监测技术正逐步融入日常生活。本文设计了一款基于STM32的智能健康监测手环,能够实时采集用户心率、血氧饱和度、体温及运动数据,并通过低功耗蓝牙(BLE)与手机APP交互。该系统结合了…...
neo4j-community-5.26.0 install in window10
在住处电脑重新配置一下neo4j, 1.先至官方下载 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官网下载 Java Downloads | Oracle 中国 path: 4.查看java -version 版本 5.n…...
Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 循环类型】
文章目录 一、Shell 循环类型二、Shell while 循环三、Shell for 循环四、Shell until 循环五、Shell select 循环六、总结 一、Shell 循环类型 循环是一个强大的编程工具,使您能够重复执行一组命令。在本教程中,您将学习以下类型的循环 Shell 程序&…...
WAWA鱼2024年终总结,关键词:成长
前言 本来想着偷懒一下,不写2024年终总结了,因为24年上半年还在忙毕业,下半年在忙转正,其实没什么太多好写的。结果被an_da和学弟催更了,哈哈哈,感谢大家对我近况的关注,学校内容基本都忘的差不…...
【Redis】hash 类型的介绍和常用命令
1. 介绍 Redis 中存储的 key-value 本身就是哈希表的结构,存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示 2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为…...
二分基础两道
Leetcode704: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出:…...
Skyeye 云 VUE 版本 v3.15.7 发布
Skyeye 云智能制造,采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程,CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…...
位运算和操作符属性
位运算和操作符属性 除了课件中提到的那几种应用,其他时候一般先不考虑用这个原反补码 printf("%d\n,017")打印出来则是15 printf("%d\n,0017")打印出来也是15 printf("%d\n,0x017")打印出来是23eg:2进制转换为32进制则每5个2进制位…...
php的使用及 phpstorm环境部署
php语法 环境搭建:在小皮中新建网站,注意先填写域名再点击选择根目录。 成功创建网站后,打开发现forbidden,因为新建的网站里是空的,需要新建index.php文件----> 在Phpstorm中左上角打开文件,打开那个文…...
高阶开发基础——快速入门C++并发编程6——大作业:实现一个超级迷你的线程池
目录 实现一个无返回的线程池 完全代码实现 Reference 实现一个无返回的线程池 实现一个简单的线程池非常简单,我们首先聊一聊线程池的定义: 线程池(Thread Pool) 是一种并发编程的设计模式,用于管理和复用多个线程…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
