【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、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型ÿ…...
虚幻基础17:动画蓝图
能帮到你的话,就给个赞吧 😘 文章目录 animation blueprint图表(Graph): 编辑动画逻辑。变量(Variables): 管理动画参数。函数(Functions): 自定义…...
【游戏设计原理】98 - 时间膨胀
从上文中,我们可以得到以下几个启示: 游戏设计的核心目标是让玩家感到“时间飞逝” 游戏的成功与否,往往取决于玩家的沉浸感。如果玩家能够完全投入游戏并感受到时间飞逝,说明游戏设计在玩法、挑战、叙事等方面达到了吸引人的平衡…...
C语言基础系列【1】第一个C程序:Hello, World!
C语言的历史与特点 历史背景 C语言起源于20世纪70年代,最初是由美国贝尔实验室的Dennis Ritchie和Ken Thompson为了开发UNIX操作系统而设计的一种编程语言。在UNIX系统的开发过程中,他们发现原有的B语言(由Thompson设计)在功能和…...
【LLM】DeepSeek-R1-Distill-Qwen-7B部署和open webui
note DeepSeek-R1-Distill-Qwen-7B 的测试效果很惊艳,CoT 过程可圈可点,25 年应该值得探索更多端侧的硬件机会。 文章目录 note一、下载 Ollama二、下载 Docker三、下载模型四、部署 open webui 一、下载 Ollama 访问 Ollama 的官方网站 https://ollam…...
go-zero学习笔记(三)
利用goctl生成rpc服务 编写proto文件 // 声明 proto 使用的语法版本 syntax "proto3";// proto 包名 package demoRpc;// golang 包名(可选) option go_package "./demo";// 如需为 .proto 文件添加注释,请使用 C/C 样式的 // 和 /* ... */…...
C# 修改项目类型 应用程序程序改类库
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
普罗米修斯监控服务搭建位置全解析:权衡与抉择
在数字化时代,监控系统对于企业的稳定运营和业务发展至关重要。普罗米修斯作为一款备受青睐的开源监控和告警工具,其搭建位置的决策绝非小事,它紧密关联着监控系统的性能、可靠性与安全性,如同为整座大厦奠定基石。接下来…...
为什么“记住密码”适合持久化?
✅ 特性 1:应用重启后仍需生效 记住密码的本质是长期存储用户的登录凭证(如用户名、密码、JWT Token),即使用户关闭应用、重启设备,仍然可以自动登录。持久化存储方案: React Native 推荐使用 AsyncStorag…...
地址查询API接口:高效查询地址信息,提升数据处理效率
地址查询各省市区API接口 地址查询是我们日常生活中经常遇到的一个需求,无论是在物流配送、地图导航还是社交网络等应用中,都需要通过地址来获取地理位置信息。为了满足这个需求,我们可以使用地址查询API接口来高效查询地址信息,提…...
2021版小程序开发5——小程序项目开发实践(1)
2021版小程序开发5——小程序项目开发实践(1) 学习笔记 2025 使用uni-app开发一个电商项目; Hbuidler 首选uni-app官方推荐工具:https://www.dcloud.io/hbuilderx.htmlhttps://dev.dcloud.net.cn/pages/app/list 微信小程序 管理后台:htt…...
元音字母(模拟)
给定一个由大小写字母、空格和问号组成的字符串。 请你判断字符串中的最后一个字母是否是元音字母。 我们认为元音字母共有 66 个,分别为:AA、EE、II、OO、UU、YY(当然还有它们的小写)。 输入格式 一个由大小写字母、空格和问…...
如何处理 Typecho Joe 主题被抄袭或盗版的问题
在开源社区中,版权保护是一个非常重要的话题。如果你发现自己的主题(如 Joe 主题)被其他主题(如子比主题)抄袭或盗版,你可以采取以下措施来维护自己的权益。 一、确认侵权行为 在采取任何行动之前…...
将markdown文件和LaTex公式转为word
通义千问等大模型生成的回答多数是markdown类型的,需要将他们转为Word文件 一 pypandoc 介绍 1. 项目介绍 pypandoc 是一个用于 pandoc 的轻量级 Python 包装器。pandoc 是一个通用的文档转换工具,支持多种格式的文档转换,如 Markdown、HTM…...
自动化测试框架搭建-封装requests-优化
目的 1、实际的使用场景,无法避免的需要区分GET、POST、PUT、PATCH、DELETE等不同的方式请求,以及不同请求的传参方式 2、python中requests中,session.request方法,GET请求,只支持params传递参数 session.request(me…...
Smart contract -- 钱包合约
在区块链的世界里,钱包是存储和管理加密货币的基本工具。今天,我们将通过 Solidity 智能合约来创建一个简单的以太坊钱包。这个钱包将允许用户存入和取出以太坊主币(ETH),并且只有管理员(合约的创建者&…...
模拟实战-用CompletableFuture优化远程RPC调用
实战场景 这是广州某500-900人互联网厂的面试原题 手写并发优化解决思路 我们要调用对方的RPC接口,我们的RPC接口每调用一次对方都会阻塞50ms 但是我们的业务要批量调用RPC,例如我们要批量调用1k次,我们不可能在for循环里面写1k次远程调用…...
图 、图的存储
图的基本概念: 图g由顶点集v和边集e组成,记为g(v,e) 用|v|表示图g中顶点的个数,也称图g的阶,用|e|表示图g中边的条数 线性表可以是空表,树可以是空树,但图不可以是空&…...
快速提升网站收录:利用网站新闻发布功能
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/63.html 利用网站新闻发布功能快速提升网站收录是一个有效的策略。以下是一些具体的建议,帮助你更好地利用这一功能: 一、保持新闻更新频率 搜索引擎尤其重视网站的…...
信息学奥赛一本通 2112:【24CSPJ普及组】地图探险(explore) | 洛谷 P11228 [CSP-J 2024] 地图探险
【题目链接】 ybt 2112:【24CSPJ普及组】地图探险(explore) 洛谷 P11228 [CSP-J 2024] 地图探险 【题目考点】 1. 模拟 2. 二维数组 3. 方向数组 在一个矩阵中,当前位置为(sx, sy),将下一个位置与当前位置横纵坐…...
【数据结构】(4) 线性表 List
一、什么是线性表 线性表就是 n 个相同类型元素的有限序列,每一个元素只有一个前驱和后继(除了第一个和最后一个元素)。 数据结构中,常见的线性表有:顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…...
YOLO11/ultralytics:环境搭建
前言 人工智能物体识别行业应该已经饱和了吧?或许现在并不是一个好的入行时候。 最近看到了各种各样相关的扩展应用,为了理解它,我不得不去尝试了解一下。 我选择了git里非常受欢迎的yolo系列,并尝试了最新版本YOLO11或者叫它ultr…...
Spring Boot 2 快速教程:WebFlux优缺点及性能分析(四)
WebFlux优缺点 【来源DeepSeek】 Spring WebFlux 是 Spring 框架提供的响应式编程模型,旨在支持非阻塞、异步和高并发的应用场景。其优缺点如下: 优点 高并发与低资源消耗 非阻塞 I/O:基于事件循环模型(如 Netty)&am…...
《OpenCV》——图像透视转换
图像透视转换简介 在 OpenCV 里,图像透视转换属于重要的几何变换,也被叫做投影变换。下面从原理、实现步骤、相关函数和应用场景几个方面为你详细介绍。 原理 实现步骤 选取对应点:要在源图像和目标图像上分别找出至少四个对应的点。这些对…...
20250202在Ubuntu22.04下使用Guvcview录像的时候降噪
20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡:笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起:在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大! …...
fflush的概念和使用案例
fflush() 是C语言标准库中用于控制输入/输出缓冲区的函数,其主要功能是强制刷新缓冲区,确保数据及时写入目标设备(如屏幕、文件)。以下是其概念和典型使用场景: 概念 功能: 刷新指定流的缓冲区。对于输出流…...
2024年度总结
首先,我是在2023年结束高中生涯进入大学的,难免会有固化的“高中生”思维,我等着老师的安排,看着课表上课,跟着时间吃饭,睡觉,偶尔会熬夜,但整体跟高中没差太多。我对社团没兴趣&…...
The Simulation技术浅析(四):随机数生成
随机数生成技术 是 The Simulation 中的核心组成部分,广泛应用于蒙特卡洛模拟、密码学、统计建模等领域。随机数生成技术主要分为 伪随机数生成器(PRNG,Pseudo-Random Number Generator) 和 真随机数生成器(TRNG,True Random Number Generator)。 1. 伪随机数生成器(PR…...
如何生成强密码:提高网络安全性的全面指南
引言 在数字化时代,密码的安全性至关重要。随着我们在社交媒体、电子邮件、在线银行等平台上储存越来越多的个人信息,强密码的使用变得更加关键。强密码能有效防止暴力破解、字典攻击等安全威胁。因此,在本文中,我们将深入探讨如…...
结构体DMA串口接收比特错位
发送: 显示: uint16_t接收时候会比特错位。...
