当前位置: 首页 > news >正文

【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、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型&#xff…...

MySQL锁类型(详解)

锁的分类图&#xff0c;如下&#xff1a; 锁操作类型划分 读锁 : 也称为共享锁 、英文用S表示。针对同一份数据&#xff0c;多个事务的读操作可以同时进行而不会互相影响&#xff0c;相互不阻塞的。 写锁 : 也称为排他锁 、英文用X表示。当前写操作没有完成前&#xff0c;它会…...

搜索插入位置(35)

35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 相关算法&#xff1a;二分查找最左侧和最右侧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. 最后&#xff1a; 在 springboot 中 , 整合 redis 可以通过 RedisTemplate 完成对 redis 的操作, 包括设置数据/获取数据 比如添加和读取数据 具体整…...

VDSuit-Full惯性动捕设备:高效率、高品质动画制作的利器

惯性动捕设备作为动画制作领域的新兴技术&#xff0c;与传统的关键帧动画制作相比&#xff0c;可以大大的缩短制作周期为创作者们提供极大便利。传统方式下&#xff0c;动画师需要逐帧调整角色动作&#xff0c;耗时费力。而惯性动捕设备能实时捕捉演员的动作&#xff0c;几乎瞬…...

【环境搭建】1.1源码下载与同步

目录 写在前面 一&#xff0c;系统要求 二&#xff0c;安装depot_tools 三&#xff0c;获取代码 四&#xff0c;代码同步 五&#xff0c;代码结构 写在前面 当前的开发背景是基于Google的开源Chromium&#xff0c;来开发Android设备的浏览器方案。 一&#xff0c;系统要…...

开源智慧园区管理系统对比其他十种管理软件的优势与应用前景分析

内容概要 在当今数字化快速发展的时代&#xff0c;园区管理软件的选择显得尤为重要。而开源智慧园区管理系统凭借其独特的优势&#xff0c;逐渐成为用户的新宠。与传统管理软件相比&#xff0c;它不仅灵活性高&#xff0c;而且具有更强的可定制性&#xff0c;让各类园区&#…...

C语言可变参数

在C语言中&#xff0c;处理可变参数&#xff08;Variable Arguments&#xff09;主要依赖于 <stdarg.h> 头文件中的一组宏定义。 以下是详细讲解和示例&#xff1a; 声明可变参数函数&#xff1a;使用 ... 表示可变参数 访问参数&#xff1a;通过 va_list 类型和配套宏…...

(1)Linux高级命令简介

Linux高级命令简介 在安装好linux环境以后第一件事情就是去学习一些linux的基本指令&#xff0c;我在这里用的是CentOS7作演示。 首先在VirtualBox上装好Linux以后&#xff0c;启动我们的linux&#xff0c;输入账号密码以后学习第一个指令 简介 Linux高级命令简介ip addrtou…...

frida 入门

一直想学 frida 一直鸽&#xff0c;终于有 ctf 用到了&#xff0c;我测东西这么多 官方文档感觉写的依托&#xff0c;这 python rpc 直接拿来入门真的太有生活了 frida 是一个动态插桩 (dynamic instrumentation) 工具&#xff0c;提供了交互式 cli 界面来追踪函数行为。用人话…...

基于STM32的智能健康监测手环

1. 引言 随着可穿戴设备的普及&#xff0c;健康监测技术正逐步融入日常生活。本文设计了一款基于STM32的智能健康监测手环&#xff0c;能够实时采集用户心率、血氧饱和度、体温及运动数据&#xff0c;并通过低功耗蓝牙&#xff08;BLE&#xff09;与手机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 循环类型 循环是一个强大的编程工具&#xff0c;使您能够重复执行一组命令。在本教程中&#xff0c;您将学习以下类型的循环 Shell 程序&…...

WAWA鱼2024年终总结,关键词:成长

前言 本来想着偷懒一下&#xff0c;不写2024年终总结了&#xff0c;因为24年上半年还在忙毕业&#xff0c;下半年在忙转正&#xff0c;其实没什么太多好写的。结果被an_da和学弟催更了&#xff0c;哈哈哈&#xff0c;感谢大家对我近况的关注&#xff0c;学校内容基本都忘的差不…...

【Redis】hash 类型的介绍和常用命令

1. 介绍 Redis 中存储的 key-value 本身就是哈希表的结构&#xff0c;存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示 2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为…...

二分基础两道

Leetcode704: 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出:…...

Skyeye 云 VUE 版本 v3.15.7 发布

Skyeye 云智能制造&#xff0c;采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…...

位运算和操作符属性

位运算和操作符属性 除了课件中提到的那几种应用&#xff0c;其他时候一般先不考虑用这个原反补码 printf("%d\n,017")打印出来则是15 printf("%d\n,0017")打印出来也是15 printf("%d\n,0x017")打印出来是23eg:2进制转换为32进制则每5个2进制位…...

php的使用及 phpstorm环境部署

php语法 环境搭建&#xff1a;在小皮中新建网站&#xff0c;注意先填写域名再点击选择根目录。 成功创建网站后&#xff0c;打开发现forbidden&#xff0c;因为新建的网站里是空的&#xff0c;需要新建index.php文件----> 在Phpstorm中左上角打开文件&#xff0c;打开那个文…...

高阶开发基础——快速入门C++并发编程6——大作业:实现一个超级迷你的线程池

目录 实现一个无返回的线程池 完全代码实现 Reference 实现一个无返回的线程池 实现一个简单的线程池非常简单&#xff0c;我们首先聊一聊线程池的定义&#xff1a; 线程池&#xff08;Thread Pool&#xff09; 是一种并发编程的设计模式&#xff0c;用于管理和复用多个线程…...

Adafruit M4SK开发板外设接口实战:从I2C到PDM麦克风的嵌入式交互设计

1. 项目概述与核心价值如果你正在寻找一款既能玩转嵌入式图形界面&#xff0c;又能轻松连接各种传感器、执行器&#xff0c;并且自带丰富交互外设的开发板&#xff0c;Adafruit M4SK绝对是一个会让你眼前一亮的选项。它不像传统的单片机开发板那样“光秃秃”&#xff0c;而是将…...

我的世界《农场物语》整合包下载2026最新版下载分享

一、整合包基础信息我的世界农场物语 1.4.1 整合包&#xff0c;是依托《我的世界》1.20.1 版本打造的精品模组整合包&#xff0c;采用 Forge 框架运行&#xff0c;内置 310 个精心筛选与适配的模组&#xff0c;以星露谷物语为核心创作灵感&#xff0c;深度融合农场经营与方块生…...

深度学习模型边缘部署技术与优化实践

1. 深度学习模型边缘部署的技术全景在计算机视觉和自然语言处理领域&#xff0c;深度学习模型的边缘部署正经历着从理论到实践的深刻变革。与传统的云端部署相比&#xff0c;边缘部署将计算能力下沉到终端设备&#xff0c;实现了数据处理的本土化。这种转变不仅大幅降低了网络延…...

别再只用AddModuleScore了!用irGSEA包一站式搞定单细胞基因集富集分析与8种可视化

单细胞基因集富集分析进阶指南&#xff1a;告别AddModuleScore&#xff0c;拥抱irGSEA的全能解决方案 在单细胞转录组数据分析中&#xff0c;基因集富集分析&#xff08;Gene Set Enrichment Analysis, GSEA&#xff09;是揭示细胞状态和功能特征的关键步骤。然而&#xff0c;许…...

如何破解Wallpaper Engine资源文件:终极RePKG工具指南

如何破解Wallpaper Engine资源文件&#xff1a;终极RePKG工具指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 想要修改Wallpaper Engine动态壁纸却打不开PKG资源包&#xff1f;…...

JAVA摄影约拍线上预约系统源码的预约流程

&#x1f4f8; JAVA摄影约拍线上预约系统 — 完整预约流程&#xff08;源码级拆解&#xff09;&#x1f5fa;️ 整体预约流程图&#xff08;一张图看懂&#xff09;用户端&#xff08;小程序/H5&#xff09; Java后端&#xff08;Spring Boot&#xff09; …...

深度解析JDK Docker镜像构建:从基础镜像选择到容器化Java应用部署

1. 项目概述&#xff1a;一个为特定场景而生的JDK镜像在容器化部署和持续集成/交付&#xff08;CI/CD&#xff09;的实践中&#xff0c;我们经常需要为不同的应用构建和运行环境准备特定的基础镜像。对于Java开发者而言&#xff0c;一个稳定、可靠且经过优化的Java Development…...

实例分割实战:基于TensorFlow2的Mask R-CNN平台搭建与核心模块解析

1. 实例分割与Mask R-CNN基础解析 实例分割是计算机视觉领域的重要任务&#xff0c;它不仅要识别图像中的物体类别和位置&#xff0c;还需要精确描绘每个物体的轮廓。这就像在玩"大家来找茬"游戏时&#xff0c;不仅要找出不同之处&#xff0c;还要用笔精确勾勒出差异…...

Ruoyi-Vue深度整合JimuReport:基于Token的精细化权限与菜单实践

1. Ruoyi-Vue与JimuReport整合背景与价值 在企业管理系统的开发中&#xff0c;报表功能往往是刚需。Ruoyi-Vue作为国内流行的开源后台框架&#xff0c;提供了完善的权限体系和基础架构&#xff1b;而JimuReport作为一款国产可视化报表工具&#xff0c;以其零代码设计和丰富的数…...

MATLAB imagesc保姆级教程:从单一热图到多图排版,附完整代码

MATLAB imagesc全攻略&#xff1a;从热图绘制到高级排版实战 在数据科学和工程领域&#xff0c;可视化是理解复杂矩阵数据不可或缺的一环。MATLAB作为技术计算领域的标杆工具&#xff0c;提供了imagesc这一强大的矩阵可视化函数&#xff0c;能够将抽象的数字矩阵转化为直观的热…...