全面思考,从目标到起点规划,提升LLM规划能力4%至24% |普林斯顿最新

LLM单智能体系统中的目标驱动与任务规划 LLM单智能体系统中的目标驱动与任务规划 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 大语言模型(LLM)的发展历程 1.1.1 早期的语言模型 阅读详情

在Prompt工程领域,规划任务一直以来都是一个巨大的挑战,因为这要求大语言模型(LLMs)不仅能够理解自然语言,还能有效执行复杂推理和应对长时间跨度的操作。规划能力对于大语言模型的应用至关重要,它直接决定了AI系统能否顺利完成多步推理、动态调整和复杂决策等任务。

在开发AI产品时,Prompt工程师经常面临如何让模型高效实现特定目标的问题,规划能力的优劣直接影响模型的整体表现。一个强大的规划系统可以帮助AI理解初始状态、目标状态与中间步骤之间的关系,从而生成准确且高效的解决方案。

普林斯顿大学的研究者们最新的成果为我们展示了一个新奇的角度:通过逆向思维来提升LLMs的规划能力。研究者巧妙地利用逆向规划策略来克服大语言模型在前向规划中的固有缺陷,从而显著提高了任务成功率。这一成果为Prompt工程师在实际开发AI产品时提供了全新的灵感与技术支持。

为什么研究向后规划?

在大模型规划领域,绝大多数研究都关注"向前规划" - 即从起点出发到达目标。但普林斯顿大学最新研究发现,在许多规划场景中存在显著的不对称性 - 从目标开始向起点规划,反而更容易找到解决方案。

考虑一个具体场景:机器人要通过一条长走廊到达卧室。如果从终点(卧室)开始规划,首先就能确定必须经过走廊这个"瓶颈",搜索空间大幅减少。相反,如果从起点开始,可能的路径会迅速扩散,增加了搜索难度。

这种"瓶颈效应"在很多领域都存在。比如数学证明,从定理结论出发往往比从前提开始更容易找到证明路径,因为结论通常和定理陈述有更直接的关联。

1. 前向与后向思维的对立与统一

1.1 LLMs 的前向规划问题

在大多数规划任务中,我们通常采取前向规划的策略,即从初始状态出发,逐步推理出达到目标状态的路径。然而,正如研究者们指出的那样,这种“从起点到终点”的方式在许多实际问题中并不总是最有效的。尤其在存在瓶颈的情况下,前向规划的过程会遭遇大量岔路,增加了模型探索无关路径的风险。例如,当一个机器人需要从一个宽敞的房间走到狭窄走廊尽头的卧室时,规划出最后的几个步骤反而比从起点开始规划要简单得多。这种情形下,前向搜索带来的广阔选择会导致问题的复杂化。

研究表明,LLMs在前向规划中遇到的主要困难之一就是路径选择的复杂性。随着任务的进行,初始状态可能带来无限多的可能性,这让模型的搜索空间变得越来越大,尤其是对于长时间跨度的问题。这种“可能性泛滥”的现象不仅浪费了模型计算资源,也极大增加了错误的概率。

1.2 逆向规划的思路:为何逆向更简单?

为了应对前向规划的复杂性,研究者们提出了一种逆向思维的解决方案,即从目标出发进行规划。逆向规划的核心思想是:当目标状态本身约束了可能的中间步骤时,模型可以通过逐步从终点推回到起点来显著减少搜索空间。下面这张图能很好地帮助您理解三个规划任务的具体形式,以及向前规划和向后规划在这些任务中的区别。在这里插入图片描述

再比如,在一个数学证明中,最后的推论往往与定理陈述密切相关,这使得逆向寻找证明过程中的关键步骤比从头开始尝试所有可能的方法更加高效。同样的道理在很多规划问题中也成立:例如,当路径上存在“瓶颈”时,从瓶颈向外规划往往比试图找到从一片混乱的初始状态通向目标的路径要简单。

1.3 实验中的发现

研究者们通过实验验证了逆向规划在经典规划任务中的优势。在他们的实验中,涉及三个典型的规划问题:

  1. 图规划(Graph Planning):从一个节点规划到另一个节点,目标是找到最短路径。

  2. 数组变换(Array Transformation):通过一系列函数操作,将一个整数数组转化为目标数组。

  3. 积木世界(Blocksworld):将不同颜色的积木堆叠成目标形状。

他们发现,在这些任务中,LLMs在逆向规划方向上表现出更高的成功率,并且在较少的计算步骤下能够更快地收敛到正确的解法。

2. 解决逆向规划中的系统偏差

2.1 LLMs 在逆向规划中的固有缺陷

尽管逆向规划在理论上更为高效,但研究者们发现,LLMs在逆向规划中存在固有偏差。这种偏差主要体现在:LLMs在生成逆向规划路径时,表现出比前向规划更差的效果。这一现象与LLMs的自回归生成特性密切相关,LLMs的生成是从左到右的逐步构建,而这种生成模式在逆向规划中会导致对先前生成的依赖性过高,进而影响规划的正确性。

另外,LLMs的训练数据也倾向于更多地包含正向推理,而较少包含逆向推理,这进一步加剧了其在逆向规划中的劣势。于是,如何让模型克服这种偏差,成为了提升逆向规划性能的关键挑战。

具体数据显示:

  • 无向图搜索:向前规划成功率82.5%,向后76.7%

  • 有向图搜索:向前38.5%,向后29.7%

  • 数组转换:向前67.5%,向后62.2%

  • 方块世界:向前39.5%,向后20.5%

2.2 问题翻转:将目标作为起点

为了解决LLMs在逆向规划中的偏差问题,研究者们提出了一种创新性的“问题翻转”策略。他们将规划问题中的初始状态和目标状态进行对调,把目标作为新的初始状态,让模型从新定义的初始状态开始进行前向规划。这种策略称为“问题翻转”,可以避免模型在逆向推理中的不适,从而更好地利用其前向推理的优势。

这种方法不仅简单,而且非常有效。通过让LLMs在翻转后的问题中规划,研究者成功地克服了模型在逆向推理中的固有缺陷,从而使得模型能够生成更多样化的候选计划,提升了规划的总体成功率。特别是在存在路径瓶颈的规划问题中,这种方法的效果尤为显著。

2.3 结合自我验证:确保规划的可靠性

在实施问题翻转之后,研究者们还引入了“自我验证”(self-verification)机制来进一步提高规划的准确性。具体来说,LLMs在生成出多条可能的规划路径后,会对每一条路径进行自我验证,以确保其正确性和有效性。在验证过程中,模型会逐步推理各个步骤,检查每一步操作是否能够将当前状态正确地转化为下一步状态。

这种自我验证的过程显著提高了规划的质量,因为它能够帮助模型排除不正确或低效的解答,从而将最优的解决方案呈现出来。在实验中,结合自我验证的逆向规划方法在多个规划域中成功率提高了4%至24%。

3. 实验设计与成果分析

3.1 规划域的选择与任务定义

在实验部分,研究者选择了三个典型的规划域进行测试:图规划、数组变换和积木世界。

在这里插入图片描述

  • 图规划(Graph Planning):在图规划中,实验使用了带有不同节点和边的图,要求模型从一个初始节点规划到目标节点的最短路径。研究者对比了模型在正向和逆向规划中的表现,发现当图中存在瓶颈节点时,逆向规划显著减少了计算开销。

  • 数组变换(Array Transformation):该任务要求模型将初始数组通过一系列操作函数(如重复、切割、移位等)转化为目标数组。实验结果显示,某些操作函数(例如缩减数组长度的操作)在逆向规划中更易于被模型识别,从而提高了规划的成功率。

  • 积木世界(Blocksworld):这一任务中,模型需要将颜色不同的积木从初始堆叠状态通过一系列移动操作调整为目标状态。实验中,研究者发现,翻转问题之后,模型在操作积木的顺序和选择上更为准确,减少了由于错误堆叠而导致的失败率。

3.2 实验结果与分析

在这三种规划任务中,研究者发现,逆向规划(尤其是通过翻转问题后的逆向规划)成功率普遍高于传统的正向规划方法。这种效果在具有瓶颈结构的问题上表现得尤为明显,因为瓶颈约束了状态空间,使得逆向规划路径的选择更加明确。

通过实验,研究者还发现,LLMs在逆向规划中由于自回归生成带来的固有偏差问题可以通过翻转问题得到显著缓解。使用翻转问题和自我验证相结合的策略,在多种任务设置中,规划成功率提升了4%-24%。此外,实验显示,这种方法还能生成更多样化的候选解决方案,这对实际开发AI产品中的复杂问题有非常重要的启示意义。

4. 实现逆向规划:Prompt 设计与模型细化

4.1 如何设计Prompt以实现问题翻转

在实现逆向规划时,Prompt的设计尤为重要。研究者通过精心设计的Prompt来指导LLMs理解如何翻转问题并进行规划。在Prompt中,研究者首先对初始状态和目标状态进行了详细描述,然后通过明确的指令将二者对调,使模型能够理解新的初始状态和目标状态。

例如,在图规划任务中,Prompt中会告诉模型:“将目标节点视为新的起点,寻找通向原始起点的最短路径”。这种明确的指令帮助模型快速理解并适应翻转后的任务描述,从而更高效地生成解决方案。

4.2 自我验证机制的Prompt设计

为了实现自我验证机制,研究者们在Prompt中加入了验证阶段的指令。模型在生成多个可能的规划路径后,会被要求对每一个步骤进行验证,并给出“是否匹配目标状态”的回答。这种验证不仅要求模型进行进一步的推理,还要求其对每个步骤的有效性进行确认,从而确保规划的质量。

研究者发现,通过让模型进行自我验证,可以大大减少错误解答的比例,尤其是在存在多种可能解的情况下,验证过程能够有效地帮助模型排除不合适的选项。这一机制对提升模型的整体规划成功率至关重要。

4.3 提高Prompt工程师的工作效率

对于Prompt工程师而言,这些研究成果提供了许多实践中的指导。例如,在处理需要多步骤推理和复杂规划的问题时,可以尝试通过翻转初始与目标状态来减少规划的复杂度,并通过自我验证机制来提升规划的正确性。此外,Prompt的设计需要尽可能明确、直观,以帮助模型更好地理解翻转后的问题结构和步骤验证要求。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

相关推荐

薅“刷宝”羊毛的autojs脚本教程,简单粗暴好用!!!

本教程旨在帮助大家实现用手机或闲置手机来进行“刷宝”平台的收益,能薅多少米就看你的本事了,作者教你的是如何用autojs来进行脚本的挂机教程,掌握了这个思路后,你可以根据自己的实际需要来改进脚本或者撸别的平台:) 适用系统,**android4.0以上,苹果机暂不适用**(大多数android系统手机都是7.0以上,要查看自己手机是android几,见文件夹“视频教程-基础”>1.查看android版本的方法)

rousseaou8的博客 8万+

复杂任务也不怕!上海AI Lab提出增强型LLM框架—ControlLLM,大模型可操控多模态工具

作者提出了 ControlLLM,这是一个多模态交互框架,可以准确地控制在各个领域中的工具使用,包括文本、图像、音频、视频等。它具有几个优点:能够准确处理涉及多模态输入和输出的复杂现实任务减少自然语言中的歧义问题的影响克服 LLM 在任务规划过程中的 token 限制工具箱易于扩展。然而,这项工作仍然存在一些局限性由于这项工作的目标是提高工具使用的准确性,即使解决方案可行,也不能保证工具的输出能够满足人类的期望。另一方面,由于自然语言中固有的歧义,很难确保所选的最佳解决方案与用户的目标一致。

夕小瑶科技说 1641

火山引擎实时对话AI实战:5分钟搞定WebRTC+大模型+ASR/TTS全链路集成

本文详细介绍了如何利用火山引擎的实时对话AI解决方案,快速集成WebRTC、大模型、ASR和TTS服务,构建低延迟、高保真的实时语音对话应用。通过实战代码示例,从环境准备、音频流管理到全链路串联与性能优化,为开发者提供了一套端到端的集成指南,适用于智能客服、在线教育等互动场景。

weixin_29051245的博客 1128

【AI大模型】拆解、对比与优化:LLM工具智能体的五种任务规划与执行模式,零基础小白收藏这一篇就够了!!

大语言模型(LLM)驱动的 AI 智能体,特别是在借助Tools(工具)来完成复杂任务执行的过程中展现出了巨大的潜力。然而,让智能体能够合理规划任务步骤与执行、避免盲目行动是确保其高效可靠完成目标的关键。本篇将探讨多种 AI 智能体的任务规划与执行模式。包括:

bugyinyin的博客 1474

数学之美 | 图论和网络爬虫

文章目录概述图论网络爬虫分析BFSDFSBFS + DFS参考资料 概述 这篇文章主要给大家介绍一下计算机算法中非常重要的一部分——图论,以及它在生活中的应用——网络爬虫。   图论 离散数学是当代数学的一个重要的分支,也是计算机科学的数学基础。它又包括四个分支,而图论便是其中一支,另外三个分别是:数理逻辑、集合论、近代数学。 图论中的图由一些节点和边构成,比如下面这张图 。 在图论中一个很基础...

小小酥梨的博客 3231

STM32F103+W5500网络通信

STM32F103+W5500网络通信一、W5500模块(一)W5500以太网模块介绍(二)模块排针功能表二、 modbus协议(一)modbus协议原理(二)Modbus 通讯方式1.Modbus三种通讯方式2.在Modbus网络上传输3.以太网(modbus tcp/ip)三、参考资料 一、W5500模块 (一)W5500以太网模块介绍 D-W5500 EVB以太网模块是一款基于WIZnet W5500芯片的以太网模块,且性价比高的以太网模块。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为

”一只特立独行的猪“的博客 1万+

LLM agentic模式之规划能力(planning)

2024年2月的综述《Understanding the planning of LLM agents: A survey》提供了基于LLM的的agent的规划(planning)能力的系统视角,总结了近年来提高规划能力的工作。

beingstrong的博客 2915

SAP 配额修改 + 修改记录写入实现

采购配额修改并写入修改记录 cdhdr 和 cdpos

GAVIN 1099

大模型LLM | Agent技术解读之Planning(规划)模块:什么是Planning?LLM Planning方法

Planning 指任务分解:把大任务划分成小任务,进而解决复杂问题;反思和提炼:基于已有动作做自我批评和自我反思,从错误中学习优化接下来的动作。任务分解的典型实现方案是 CoT(Chain of thought)和 ToT(Tree of thoughts)。一项复杂任务包括多个子步骤,智能体需要提前将任务分解,并进行规划。规划模块分类1)无反馈规划:大语言模型在做推理的过程中无需外界环境的反馈。单路推理,仅一次大语言模型调用就输出完整的推理步骤;多路推理,借鉴众包思想,让大语言模型生成多个。

star_nwe的博客 1万+

uniapp - 使用web-view加载本地网页vue页面,用webview导入本地网页,uniAPP中使用web-view加载的本地及远程vue页面+双向通讯功能(兼容微信小程序、安卓苹果APP)

uniapp的App端web-view加载本地html,uniapp微信小程序webview加载本地HTML文件,在uniAPP中使用web-view加载的本地及远程vue页面且进行双向通讯,uni-app的web-view组件,支持加载远程网页,在app环境下,还支持加载本地HTML页面。uniapp WebView组件实现本地网页加载与通讯传值,uniAPP如何内嵌webView引入本地的vue网页示例代码,uniapp在web-view加载的本地及远程HTML中调用uni的API及网页和vue页面跳转

🏆 前端领域优质创作者 5226

PLC批量读写优化:C# Modbus TCP多寄存器批量操作(效率提升50%)

效率提升:请求次数减少90%以上,通信耗时降低50%-95%;资源节约:减少网络带宽占用和PLC/上位机CPU负载;稳定性提升:更少的请求意味着更少的通信异常;适配高频采集:满足工业现场100ms/次的高频率数据采集需求。工业落地时需注意:批量操作的核心是地址连续化规划,提前与PLC工程师协同规划寄存器地址,是优化的前提;同时需配合重试、校验机制,确保批量操作的可靠性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1259

51c大模型~合集110

为了解决这一问题,在稠密化过程中,我们对容易引起退化和梯度集中的具有极端延展率的高斯面片进行了筛选,并对其增殖过程进行了限制,从而在不牺牲性能的情况下有效稳定了训练过程,保障了优化过程的顺利进行。大规模场景的重建往往还意味着显著的训练开销,要重建 1.97 平方千米的区域会产生接近两千万的高斯点,这意味着 4.6G 的存储以及 31.5G 的显存开销,以及超过三小时的训练时长。站在 AI 研究者的角度,得到了《苦涩的教训》,意味着在总结教训的过程中明确了什么是「更好」的。第二类则瞄准了相对复杂的问题。

whaosoft~aiotの开发板商城 2604

【深度学习驱动流体力学】OpenFOAM目录流体力学求解器汇总介绍

下面这些目录结构和其中的求解器和工具展示了OpenFOAM作为一个功能强大且广泛应用的开源CFD软件框架的多样性和灵活性。每个求解器都专门用于解决不同类型的流体动力学问题,从基础的流动模拟到复杂的多相流动和燃烧模拟等各种应用场景。

源代码杀手的博客 1184

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 223

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 315

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 590

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 21

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 750

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 371

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 410

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 171

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 85

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 218

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 178

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 354
上一篇: 结构化表格也成模态!浙大TableGPT2开源,最强表格AI问世
下一篇: 大模型落地一年后,这十个方向先跑起来
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值