基于大语言模型的组合优化

news2025/1/14 11:39:55

在这里插入图片描述
摘要:组合优化(Combinatorial Optimization, CO)对于提高工程应用的效率和性能至关重要。随着问题规模的增大和依赖关系的复杂化,找到最优解变得极具挑战性。在处理现实世界的工程问题时,基于纯数学推理的算法存在局限性,无法捕捉到优化所需的上下文细微差别。本研究探索了大型语言模型(Large Language Models, LLMs)在解决工程组合优化问题中的潜力,利用其推理能力和上下文知识。我们提出了一种基于LLM的新框架,该框架结合了网络拓扑和领域知识,以优化设计结构矩阵(Design Structure Matrix, DSM)的排序——这是一个常见的组合优化问题。我们在多个DSM案例上的实验表明,所提出的方法比基准方法具有更快的收敛速度和更高的解质量。此外,结果表明,尽管LLM的选择不同,融入上下文领域知识显著提高了性能。这些发现凸显了LLMs通过结合语义和数学推理来解决复杂现实世界组合优化问题的潜力。这一方法为现实世界中的组合优化开辟了新的范式。

组合优化现行解决方案

传统上,工程中的组合优化问题通常通过以下过程来解决:首先将问题建模为数学模型,然后使用特定的算法或启发式方法进行求解,最后在实际工程背景下进行解释[4]。这种问题求解和解释阶段的分离存在局限性,无法捕捉到现实世界问题优化所需的上下文细微差别。

LLM决策理论支持

1、近年来,大型语言模型(Large Language Models, LLMs)在自然语言生成、语义理解、指令跟随(instruction following)和复杂推理方面展示了强大的能力
2、研究表明,LLMs可以用于连续和具体的优化问题[7, 8, 9]。例如,DeepMind的研究人员利用LLMs作为优化器,并在经典的组合优化问题(如旅行商问题,TSP)上评估了其有效性
3、融入上下文领域知识可以通过语义洞察支持数学推理,从而提升LLMs的性能。先前的研究还强调,LLMs通过预训练获得了广泛的工程相关领域的知识,这增强了它们在工程领域的适用性。

创新点

在此基础上,我们提出了一种基于LLM的新框架,将网络拓扑和领域上下文整合到优化过程中。该框架首先从整个解空间中随机采样一个初始解。每个解都会根据预定义的标准由评估器进行评估,评估器量化了解的质量。基于这一评估,框架通过少样本学习(few-shot learning)和生成新的候选解来迭代更新解库,整个过程由精心设计的提示(prompts)引导,这些提示包括数学形式的网络信息和自然语言描述的领域知识。新生成的解及其评估结果会被添加到解库中。当达到迭代次数时,解库会返回最佳解作为最终输出。接下来,我们以DSM排序这一常见的组合优化问题为例,说明该框架的工作流程。框架的示意图如图2所示。

在这里插入图片描述
1、Initialization and solution sampling。初始化过程涉及从整个解空间中随机采样生成一个初始解。在DSM排序任务中,一个解表示一个完整且不重复的节点序列(见图2)。这个初始解随后会被评估并添加到解库中以供后续使用。在后续的迭代中,我们设计了一个采样规则,该规则从解库中选择 Kp 个表现最优的解,并从剩余的 Kn - Kp 个解中随机采样 Kq 个解,形成一个解集,其中 Kn 是解库中解的总数。Kp 和 Kq 是可调整的参数。获得的解集会被进一步优化并转化为提示(prompts)。

解库(Solution Base) 是一个核心模块,其功能包括:
(1) 存储已探索的解及其评估结果,
(2) 为后端LLM提供历史解以进行少样本学习(few-shot learning),
(3) 在迭代结束时返回表现最优的解。

2、LLM-driven optimization using network information and domain knowledge。在优化过程的每次迭代中,我们向后端LLM提供以下信息:

  • (i) 拓扑信息:这两个元素完成了DSM的数学描述。值得注意的是,描述网络的数学表示有多种等价形式,例如边列表(edge list)、根据节点序列的依赖关系列表或邻接矩阵。在本研究中,我们选择边列表作为网络拓扑的表示形式,并对所有边进行随机打乱以避免可能的偏差。
  • (ii) 上下文领域知识:这包括每个节点的名称和网络的整体描述,这些信息将DSM数学结构背后的领域知识传递给LLM。例如,在活动DSM中,每个节点代表整个设计过程中的一个活动名称。
  • (iii) 元指令:我们采用了一些常用的提示工程策略[20],包括角色扮演、任务规范和输出格式规范。这些策略使LLM能够根据指导进行推理,并以特定格式生成解。
  • (iv) 选定的历史解:如上一节所述,我们通过从解库中采样获得最多 Kp + Kq 个解,供LLM在少样本学习中使用。

一旦接收到上述输入,后端LLM会结合网络拓扑信息和领域知识进行推理,并提出新的解。生成的解必须通过检查器(checker)的验证,检查器会确保序列中的所有节点都恰好出现一次。一旦验证通过,该解会被评估并添加到解库中。详细的输入提示(prompts)见附录1。

3、Evaluation of DSM sequencing solutions。评估器(evaluator)用于量化每个新生成的解。对于DSM排序任务,目标是通过重新排列DSM的行和列来最小化反馈循环。为了实现这一目标,评估器会计算对应序列中的反向依赖数量。

数值试验

以设计结构矩阵(Design Structure Matrix, DSM)排序任务为例,作为组合优化问题的一个实例。DSM是工程设计中的一种建模工具,用于表示系统中任务或组件之间的依赖关系[14]。重新排序DSM的节点序列可以显著减少反馈循环并提高模块化[15, 16]。DSM排序问题也是一个NP难问题,传统方法通常使用基于启发式的算法来解决[17, 18]。图1展示了一个设计活动DSM在排序前和排序后的对比[19]。在本文中,我们在多个DSM案例上进行了广泛的实验,以证明我们基于LLM的方法在收敛速度和解质量上优于基准方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2276454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装conda 环境

conda create -n my_unet5 python3.8 conda activate my_unet5

容器技术全面攻略:Docker的硬核玩法

文章背景 想象一下,一个项目终于要上线了,结果因为环境配置不一致,测试服务器一切正常,生产环境却宕机了。这是开发者噩梦的开始,也是Docker救世主角色的登场!Docker的出现颠覆了传统环境配置的方式&#…

LabVIEW部署Web服务

目录 LabVIEW部署Web服务1、创建项目2、创建Web服务3、新建WebVI3.1、使用GET方法3.2、使用POST方法 4、 部署和对应URL4.1、应用程序:80804.2、本地调试:80094.3、NI Web服务器:9090(禁用) 5、测试5.1、测试GET方法5.2、测试POST方法 6、实际…

STM32 : 波特率发生器

波特率发生器 1. 发送器和接收器的波特率 波特率寄存器 (BRR): 在串行通信中,发送器和接收器的波特率是由波特率寄存器(BRR)中的一个值 DIV 来确定的。 2. 计算公式 计算公式: 详细解释 1. 波特率寄存器 (BRR) BRR: 波特率寄存器是一…

Excel数据叠加生成新DataFrame:操作指南与案例

目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据(可选) 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFra…

基于微信小程序的汽车销售系统的设计与实现springboot+论文源码调试讲解

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专…

C#调用OpenCvSharp实现图像的开运算和闭运算

对图像同时进行腐蚀和膨胀操作,顺序不同则效果也不同。先腐蚀后膨胀为开运算,能够消除小斑点和细小的突出物、平滑图像以及改善边缘;先膨胀后腐蚀为闭运算,能够去除噪点、填补图像孔洞、连接邻近物体和平滑物体边界。   OpenCvS…

从 SQL 语句到数据库操作

1. SQL 语句分类 数据定义语言 DDL : 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。create、drop alter 数据操作语言 DML : 用于添加、删除、更新数据库中的数据。select、insert alter、drop 数据控制语言 D…

django在线考试系统

Django在线考试系统是一种基于Django框架开发的在线考试平台,它提供了完整的在线考试解决方案。 一、系统概述 Django在线考试系统旨在为用户提供便捷、高效的在线考试环境,满足教育机构、企业、个人等不同场景下的考试需求。通过该系统,用…

【Spring Boot 应用开发】-04-01 自动配置-数据源-连接池

资源关闭 还记得上一节中的这段代码么? try {if (resultSet ! null) resultSet.close();if (preparedStatement ! null) preparedStatement.close();if (connection ! null) connection.close(); } catch (SQLException e) {e.printStackTrace(); }这是我们在查询…

AngularJs指令中出错:Error: $compile:nonassign Non-Assignable Expression

Expression {resumeId: item.resumeId} used with directive rwdsDelete is non-assignable! 在AngularJS中,$compile服务用于将指令编译成HTML。当你在模板中使用了一个表达式,但这个表达式不是一个左值(即不能被赋值的表达式)时…

Docker 的安装和基本使用[SpringBoot之Docker实战系列] - 第535篇

历史文章(文章累计530) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

聚铭网络当选中关村华安关键信息基础设施安全保护联盟理事单位

近日,在北京隆重举行的中关村华安关键信息基础设施安全保护联盟(以下简称“联盟”)第一届第四次会员大会上,聚铭网络凭借其在网络安全领域的卓越贡献和创新实力,成功当选为联盟的理事单位。此次大会吸引了来自政府机关…

CES 2025|全面拥抱端侧AI,美格智能在CES发布系列创新成果

要点: ▶ 在AI机器人领域,以高算力AI模组助力发布“通天晓”人形机器人和2款全新微小型AI机器人 ▶ 在AI硬件领域,发布消费级AI智能体产品——AIMO,引领个人专属的大模型时代 ▶ 在5G通信领域,发布全新5GWiFi-7 CPE…

VScode 配置 C语言环境

遇到的问题集合 mingw官方下载网站(https://sourceforge.net/projects/mingw-w64/files/)更新之后,与网上大多数教程上写的界面不同了。 网上大多数教程让下载这个: 但是现在找不到这个文件。 写hello.c文件时,报错&…

013:深度学习之神经网络

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 深度学习是机器学习中重要的一个学科分支,它的特点就在于需要构建多层且“深度”的神经网络。 人们在探索人工智能初期,就曾设想构建一个用数学方式…

STM32-Flash存储

目录 1.0 闪存模块组织 2.0 Flash基本结构 3.0 Flash解锁 4.0 指针访问存储器地址 5.0 程序存储器编程 6.0 选项字节 7.0 选项字节编程 8.0 选项字节擦除 9.0 电子签名 10.0 手册解读 定义: STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部…

工程水印相机结合图纸,真实现场时间地点,如何使用水印相机,超简单方法只教一次!

在工程管理领域,精准记录现场信息至关重要。水印相机拍照功能,为工程人员提供了强大的现场信息记录工具,助力工程管理和统计工程量,更可以将图片分享到电脑、分享给同事,协同工作。 一、打开图纸 打开手机版CAD快速看图…

Oracle 分区索引简介

目录 一. 什么是分区索引二. 分区索引的种类2.1 局部分区索引(Local Partitioned Index)2.2 全局分区索引(Global Partitioned Index) 三. 分区索引的创建四. 分区索引查看4.1 USER_IND_COLUMNS 表4.2 USER_INDEXES 表 五. 分区索…

JDK安装配置保姆级教程【图文详解】

目录 一. JDK介绍 二. JDK下载 三. JDK安装 四. 配置环境 五. 验证安装 一. JDK介绍 Java 环境分JDK 和JRE ,JDK就是Java Development Ki,JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。本文以Windows 11系统,JD…