【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) 是一种并发编程的设计模式,用于管理和复用多个线程…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
