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

约束优化:约束优化的三种序列无约束优化方法(罚函数法)

文章目录

  • 约束优化:约束优化的三种序列无约束优化方法(罚函数法)
    • 外点罚函数法
      • L2-罚函数法:非精确算法
        • 对于等式约束
        • 对于不等式约束
      • L1-罚函数法:精确算法
    • 内点罚函数法:障碍函数法
    • 参考文献

约束优化:约束优化的三种序列无约束优化方法(罚函数法)

罚函数法是指将约束作为惩罚项加到目标函数中,从而转化成熟悉的无约束优化问题。

外点罚函数法

简而言之,外点罚函数法是指对于可行域外的点,惩罚项为正,即对该点进行惩罚;对于可行域内的点,惩罚项为0,即不做任何惩罚。因此,该算法在迭代过程中点列一般处于可行域之外,惩罚项会促使无约束优化问题的解落在可行域内。罚函数一般由约束部分乘正系数组成,通过增大该系数,我们可以更严厉地惩罚违反约束的行为,从而迫使惩罚函数的最小值更接近约束问题的可行区域。

L2-罚函数法:非精确算法

对于等式约束

在这里插入图片描述 在这里插入图片描述

对于不等式约束

在这里插入图片描述 在这里插入图片描述

对于一般优化问题,则是将上述不等式约束和等式约束的惩罚项加到一起。

在这里插入图片描述

什么情况下使用L2-罚函数法?

  • 实际优化问题中,等式与不等式约束具有物理意义;
  • 约束违背量不要求特别小,在1e-2~1e-3之间可接受就行。例如某优化问题中速度约束v≤10v \leq 10v10,解v=10.01v=10.01v=10.01也可以接受。

使用该方法时,可采用如下两种方式:

  • 一步到位,即取σ\sigmaσ足够大,直接解无约束罚函数P最优化问题,此时P最优解是个近似解,与实际最优解之间的误差在可接受范围内;
  • 序列迭代优化,例如:

σ=1⟹P(x,1)\sigma=1 \implies P(x,1)σ=1P(x,1),解x1∗=x1x^{*}_{1}=x_1x1=x1;

σ=10⟹P(x,10)\sigma=10 \implies P(x,10)σ=10P(x,10),上一次迭代x1x_1x1作初值解x2∗=x2x^{*}_{2}=x_2x2=x2;

σ=100⟹P(x,100)\sigma=100 \implies P(x,100)σ=100P(x,100),上一次迭代x2x_2x2作初值解x3∗=x3x^{*}_{3}=x_3x3=x3;

​ ……直到达到收敛准则。算法伪代码如下:

在这里插入图片描述

一般情况下,具体选择何种方式取决于实际工程问题的精度需求和速度需求。

L2-罚函数法的优缺点?

优点:

  • 将约束优化问题转化为无约束优化问题,当ci(x)c_i(x)ci(x)光滑时可以调用一般的无约束光滑优化问题算法求解;
  • 二次罚函数形式简洁直观而在实际中广泛使用。

缺点:

  • 需要σ→∞\sigma \rightarrow \inftyσ,此时海瑟矩阵条件数过大,对于无约束优化问题的数值方法拟牛顿法与共轭梯度法存在数值困难,且需要多次迭代求解子问题;
  • 对于存在不等式约束的P(x,σ)P(x,\sigma)P(x,σ)可能不存在二次可微性质,光滑性降低;
  • 不精确,与原问题最优解存在距离。

例子:

在这里插入图片描述 在这里插入图片描述

L1-罚函数法:精确算法

由于L2-罚函数法存在数值困难,并且与原问题的解存在误差,因此考虑精确罚函数法。精确罚函数是一种问题求解时不需要令罚因子趋于正无穷(或零)的罚函数。换句话说,若罚因子选取适当,对罚函数进行极小化得到的解恰好就是原问题的精确解。这个性质在设计算法时非常有用,使用精确罚函数的算法通常会有比较好的性质。

由于L1-罚函数非光滑,因此无约束优化问题P的收敛速度无法保证,这实际上就相当于用牺牲收敛速度的方式来换取优化问题P的精确最优解。

在这里插入图片描述

内点罚函数法:障碍函数法

前面介绍的L1和L2罚函数均属于外点罚函数,即在求解过程中允许自变量xxx位于原问题可行域之外,当罚因子趋于无穷时,子问题最优解序列从可行域外部逼近最优解。自然地,如果我们想要使得子问题最优解序列从可行域内部逼近最优解,则需要构造内点罚函数。顾名思义,内点罚函数在迭代时始终要求自变量xxx不能违反约束,因此它主要用于不等式约束优化问题

如下图所示,考虑含不等式约束的优化问题,为了使迭代点始终在可行域内,当迭代点趋于可行域边界时,我们需要罚函数趋于正无穷。常见的罚函数有三种:对数罚函数,逆罚函数和指数罚函数。对于原问题,它的最优解通常位于可行域边界,即ci(x)≤0c_i(x) \leq 0ci(x)0中至少有一个取到等号,此时需要调整惩罚因子σ\sigmaσ使其趋于0,这会减弱障碍罚函数在边界附近的惩罚效果。

在这里插入图片描述

算法伪代码如下:

在这里插入图片描述

同样地,内点罚函数法也会有类似外点罚函数法的数值困难,即当σ\sigmaσ趋于0时,子问题P(x,σ)P(x,\sigma)P(x,σ)的海瑟矩阵条件数会趋于无穷,因此对子问题的求解将会越来越困难。

在这里插入图片描述

参考文献

机器人中的数值优化

最优化:建模、算法与理论/最优化计算方法

相关文章:

约束优化:约束优化的三种序列无约束优化方法(罚函数法)

文章目录约束优化:约束优化的三种序列无约束优化方法(罚函数法)外点罚函数法L2-罚函数法:非精确算法对于等式约束对于不等式约束L1-罚函数法:精确算法内点罚函数法:障碍函数法参考文献约束优化:…...

你真的会做APP UI自动化测试吗?我敢打赌百分之九十的人都不知道这个思路

目录 前言 一,开发语言选择 二,UI测试框架选择 1,Appium 2,Airtest 3,选择框架 三,单元测试框架选择 四,测试环境搭建 1,测试电脑选择 2,测试手机选择 3&#…...

GIT:【基础三】Git工作核心原理

目录 一、Git本地四个工作区域 二、Git提交文件流程 一、Git本地四个工作区域 工作目录(Working Directory):电脑上存放开发代码的地方。暂存区(Stage/Index):用于l临时存放改动的文件,本质上只是一个文件,保存即将提交到文件列…...

【1.12 golang中的指针】

1. 指针 区别于C/C中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 1.1. Go语言中的指针 Go语言中的函数传参都是值拷贝,当我们想要修改某…...

十五.程序环境和预处理

文章目录一.程序翻译环境和执行环境1.ANSI C 标准2.程序的翻译环境和执行环境二.程序编译和链接1.翻译环境2.编译本身的几个阶段3.运行环境三.预处理1.预定义符号2.#define(1)#define定义标识符(2)#define定义宏(3&…...

高并发系统设计之负载均衡

本文已收录至Github,推荐阅读 👉 Java随想录 文章目录DNS负载均衡Nginx负载均衡负载均衡算法负载均衡配置超时配置被动健康检查与主动健康检查LVS/F5Nginx当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到…...

嵌入式Linux从入门到精通之第十四节:Linux IO控制技术

目录 设备控制概述 操作设备文件函数 监听文件描述符 示例 设备控制概述 对于硬件设备,Linux采用了与裸机完全不同的机制进行管理。 Linux下的所有硬件(IO、键盘、鼠标等)均是以文件的形式进行统一管理的,每个设备在/dev/目录下都有一个设备文件与之对应。操作相应的文件…...

/etc/fstab文件

文件/etc/fstab存放的是系统中的文件系统信息,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。当正确的设置了该文件,则可以通过mount /directoryname命令来加载一个文件…...

深度学习神经网络基础知识(一) 模型选择、欠拟合和过拟合

专栏:神经网络复现目录 深度学习神经网络基础知识(一) 本文讲述神经网络基础知识,具体细节讲述前向传播,反向传播和计算图,同时讲解神经网络优化方法:权重衰减,Dropout等方法,最后进行Kaggle实…...

同样做软件测试,为什么有人月入3k-5k,有人能拿到17-20k?

同样做软件测试,为什么有人月入3k-5k,有人能拿到17-20k? 虽然各大培训机构一直鼓吹软件测试行业薪资高,但是依旧有一些拿着3-5k薪资,甚至找不到软件测试工作的人。 先来看一些例子: 小A在一家培训机构学完…...

如何运行YOLOv5的代码,实现目标识别

YOLOv5和v8都由Ultralytics这家创业公司开发的https://github.com/ultralytics/yolov5环境配置git clone https://github.com/ultralytics/yolov5.git作者要求python3.6(我用的3.8也能跑通)torch1.7.0pip install -r requirements_my_version.txtrequire…...

【正点原子FPGA连载】第十四章SD卡读写TXT文本实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十四章SD卡读写…...

【人工智能AI :Open AI】我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。

我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。 中国文学史 第一章 经典文学 1.1 先秦文学 1.1.1 先秦诗歌 1.1.1.1 小雅 1.1.1.2 大雅 1.1.1.3 颂 1.1…...

「文档数据库之争」MongoDB和CouchDB的比较

MongoDB和CouchDB都是基于文档的NoSQL数据库类型。文档数据库又称mdocument store,通常用于存储半结构化数据的文档格式及其详细描述。它允许创建和更新程序,而不需要引用主模式。移动应用程序中的内容管理和数据处理是可以应用文档存储的两个字段。Mong…...

c++11 标准模板(STL)(std::unordered_set)(三)

定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_set;(1)(C11 起)namespace pmr { templ…...

事件循环机制eventLoop?Js事件流?JavaScript如何实现异步编程?

单线程模式&#xff1a;由用户交互和修改dom的问题&#xff0c;只能决定js就是单线程任务异步模式诞生&#xff1a;同步模式遇到耗时操作页面便会阻塞&#xff0c;就像图片加载&#xff0c;接口获取&#xff0c;页面会一直等待&#xff1b;在执行主线程时&#xff0c;先执行同步…...

视频播放器倍速、清晰度切换、m3u8下载

视频上很容易就可以做到倍速播放&#xff0c;一般的视频格式都是每秒固定的帧数&#xff0c;按比例跳帧就可以了。音频上其实也可以用这种方式来直接删除一些周期&#xff0c;因为电脑里的音频也是数字化离散化地储存的。但是为了使声音不失真&#xff0c;应该都用了稍复杂一点…...

将Nginx 核心知识点扒了个底朝天(五)

什么叫 CDN 服务&#xff1f; CDN &#xff0c;即内容分发网络。 其目的是&#xff0c;通过在现有的 Internet中 增加一层新的网络架构&#xff0c;将网站的内容发布到最接近用户的网络边缘&#xff0c;使用户可就近取得所需的内容&#xff0c;提高用户访问网站的速度。 一般…...

【基础算法】差分

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…...

【LeetCode】剑指 Offer(5)

目录 写在前面&#xff1a; 题目&#xff1a; 题目的接口&#xff1a; 解题思路1&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 解题思路2&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a;…...

Windows Subsystem for Android全流程实战攻略:从环境搭建到场景落地

Windows Subsystem for Android全流程实战攻略&#xff1a;从环境搭建到场景落地 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA Windows Subsystem for And…...

颠覆级开源模型Wan2.2-TI2V-5B:重新定义AI视频创作

颠覆级开源模型Wan2.2-TI2V-5B&#xff1a;重新定义AI视频创作 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型&#xff0c;基于创新的混合专家架构&#xff08;MoE&#xff09;设计&#xff0c;显著提升了视频生成的质量与效率。该模型支持文本生…...

基于 LangChain 1.0 的 LangGraph 高级应用

基于 LangChain 1.0 的 LangGraph 高级应用 文章目录基于 LangChain 1.0 的 LangGraph 高级应用1. 深度对比&#xff1a;Workflow vs Agent1.1 Workflow 实现示例&#xff08;内容审核&#xff09;1.2 Agent 实现示例&#xff08;内容审核&#xff09;2. 高级状态管理&#xff…...

uosc:革命性MPV播放器UI,基于接近度智能显示界面元素

uosc&#xff1a;革命性MPV播放器UI&#xff0c;基于接近度智能显示界面元素 【免费下载链接】uosc Feature-rich minimalist proximity-based UI for MPV player. 项目地址: https://gitcode.com/gh_mirrors/uo/uosc uosc是一款为MPV播放器打造的功能丰富且极简的基于接…...

Wan2.2-TI2V-5B:消费级GPU上的720P视频生成革命

Wan2.2-TI2V-5B&#xff1a;消费级GPU上的720P视频生成革命 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型&#xff0c;基于创新的混合专家架构&#xff08;MoE&#xff09;设计&#xff0c;显著提升了视频生成的质量与效率。该模型支持文本生成…...

一次性拖鞋自动下料系统设计超声波热熔裁剪机设计【论文+CAD图纸+solidworks三维+开题报告+任务书+实习调研报告+其它相关资料】

一次性拖鞋自动下料系统与超声波热熔裁剪机的设计&#xff0c;聚焦于提升拖鞋制造环节的效率与精度。传统拖鞋生产中&#xff0c;人工下料易受操作误差影响&#xff0c;导致材料浪费与产品尺寸偏差&#xff1b;而普通裁剪方式可能因热熔不充分&#xff0c;出现边缘毛刺或连接不…...

用Python手把手教你实现隐马尔可夫模型(HMM)从理论到实战

用Python手把手教你实现隐马尔可夫模型&#xff08;HMM&#xff09;从理论到实战 在自然语言处理、语音识别和生物信息学等领域&#xff0c;隐马尔可夫模型&#xff08;Hidden Markov Model, HMM&#xff09;是一种经典的概率图模型。本文将带你从零开始&#xff0c;用Python实…...

【CAPL实战】LIN校验和自动化测试:从函数解析到脚本验证

1. LIN校验和的核心概念与CAPL函数解析 第一次接触LIN总线校验和测试时&#xff0c;我也曾被各种专业术语绕得头晕。简单来说&#xff0c;校验和就像是给数据包贴上的"防伪标签"——当LIN报文从主机发往从机时&#xff0c;这个标签能帮我们确认数据在传输过程中是否…...

音乐自由解决方案:Listen1音乐聚合工具使用指南

音乐自由解决方案&#xff1a;Listen1音乐聚合工具使用指南 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_chrome_extension 你是否曾…...

避坑指南:OpenClaw接入百川2-13B-4bits量化模型常见报错大全

避坑指南&#xff1a;OpenClaw接入百川2-13B-4bits量化模型常见报错大全 1. 为什么选择百川2-13B-4bits量化模型 去年我在搭建个人知识管理自动化系统时&#xff0c;第一次尝试将OpenClaw接入本地部署的大模型。当时显存只有12GB的RTX 3060让我在模型选择上捉襟见肘&#xff…...