AI大模型学习笔记|多目标算法梳理、举例
多目标算法学习内容推荐:
1.通俗易懂讲算法-多目标优化-NSGA-II(附代码讲解)_哔哩哔哩_bilibili
2.多目标优化 (python pyomo pareto 最优)_哔哩哔哩_bilibili学习笔记:
通过网盘分享的文件:多目标算法学习笔记
链接: https://pan.baidu.com/s/1bJ2_WzmtY4o43n_YeUwHQg 提取码: hstm
一、多目标算法
学习资料1的内容整理:
智能优化算法是一种模拟自然进化过程的计算方法,用于寻找复杂问题的最优解。它们通过迭代过程,结合策略和保底(精英)机制,不断更新解集,以逼近问题的最优解。
(1)智能优化算法基本原理和流程
智能优化算法是一种模拟自然界中生物进化或其他智能行为的算法,它们通过模拟自然选择、遗传、交叉和变异等过程来寻找问题的最优解。这些算法的基本流程包括初始化一组候选解,评估这些解的质量(适应度),然后通过特定的策略(如遗传算法中的交叉和变异)生成新的解。接着,通过保底(精英)机制保留最优的解,淘汰较差的解,然后迭代这个过程直到找到满意的解或达到预定的迭代次数。
(2)多目标优化算法的前置知识
多目标优化算法处理的是同时优化多个目标的问题,这些目标之间往往存在冲突,即改善一个目标可能会导致另一个目标变差。在这种情况下,不存在单一的最优解,而是存在一系列权衡解,这些解被称为帕雷托最优解。帕雷托最优解构成了帕雷托前沿,它代表了在多个目标之间取得最佳权衡的解集。理解帕雷托最优的概念对于设计和应用多目标优化算法至关重要。
(3)智能优化算法的流程
智能优化算法的流程可以详细描述为以下几个步骤:首先,随机初始化一组候选解;然后,评估这些解的适应度;接着,根据适应度选择优秀的解,并应用特定的策略生成新的候选解;之后,将新旧解集合并,并进行筛选,保留最优的解;最后,重复上述过程直到满足停止条件。这个流程模拟了生物进化中的“适者生存”原则,通过不断的迭代,逐步逼近问题的最优解。
(4)多目标问题的解的生成
在多目标优化问题中,解的生成更为复杂,因为需要同时考虑多个目标。算法需要生成一组新的解,这些解不仅要与旧的解竞争,还要在多个目标之间取得平衡。这通常涉及到更复杂的策略,如同时考虑多个目标的适应度函数,或者在生成新解时采用多目标优化策略。
(5)解的排序:非支配排序
非支配排序是多目标优化中用于解排序的一种方法。它根据解是否被其他解支配来对解进行分层。在非支配排序中,一个解如果没有任何其他解在所有目标上都比它好,则认为它是非支配的。这种方法可以有效地识别出帕雷托最优解,并将解分为不同的前沿,每个前沿包含的解在目标空间中是相互非支配的。
(6)拥挤距离
拥挤距离是一种衡量解在目标空间中分布密度的指标。在多目标优化中,我们不仅希望找到帕雷托最优解,还希望这些解在帕雷托前沿上均匀分布。拥挤距离通过计算解与其邻居之间的距离来实现这一点,从而避免解的聚集,确保在不同区域的帕雷托前沿上都有解的存在。
(7)排序的具体计算
在具体计算排序时,首先需要对每个目标维度上的解进行排序,然后计算每个解与其最近邻解之间的距离。这个距离反映了解在目标空间中的拥挤程度。通过这种方式,我们可以识别出哪些解是孤立的,哪些解是拥挤的,从而在后续的迭代中对这些解进行适当的选择和淘汰。
(8)支配关系的判断
在多目标优化中,支配关系的判断是确定解优劣的关键。一个解A支配解B,意味着A在所有目标上都不比B差,并且在至少一个目标上严格优于B。这种判断不仅涉及到解的直接比较,还涉及到解在目标空间中的相对位置,是多目标优化算法中解评估和选择的基础。

















二、多目标算法的补充内容
摘要:本章内容深入探讨了多目标优化的概念及其在处理多个互相冲突目标时的应用。通过一个生动的羊肉串选择例子,讲解了加权和法、补偿规划、目标约束法等方法,以及帕雷托最优的概念,旨在帮助学生理解理论基础和实践应用。加权和法通过给每个目标设定权重将多目标问题转化为单目标问题;补偿规划在不牺牲一个目标的同时改善另一个目标;目标约束法则通过设定优先级来解决目标冲突;帕雷托最优强调了在多目标优化中找到不可再优化的解决方案集的重要性。讨论强调了每种方法的适用场景和操作细节,鼓励学生通过编程实践加深理解。
(1)多目标优化的定义?
一般来说给定一个优化问题,有一些的约束条件,这,X是一个向量,我们定位一个为N行一列向量就是N个自变量。这边约束条件广义上来讲,它也并不是线性的,也可以是非线性的。那我们上节课讲内容是只有一个目标,但是我们现在有若干目标,有K目标,有大于等于一的,大于等于2。
优化问题三要素:,目标函数在这里。约束条件在这里,决策变量三要素,优化问题就这边。
可阅读的综述:Marler, R. Timothy, and Jasbir S. Arora. "Survey of multi-objective optimization methods for engineering." Structural and multidisciplinary optimization 26 (2004): 369-395.
(2)属性归一化,消除量纲
讲一下idea,关键点是把不同之间的属性先故意一化,消除量纲。会讲一个L2就是度量空间的采用这个距离公式。表示是某一列,因为这一列对应的是同一个属性。
(3)加权求和法
注意,我刚才说是两种思路不一样,所以说我这个价格20.1元人分一半。从这个约束条件入手。但是我们在这个本题中,就多目标优化,从数学的角度来讲,我们从这个目标函数下手。也就是说我们两个的目标函数,比如我是F1X它是F2X之间,加一个权重比较传统说法一人一半,比如说0.5F1X0.5F2X表示的权重是一样的。我们的如果说更一般,我们再加一个小小的权重,这个是这个W1W2咱们要加权。一般习惯性要求这个wi是大于等于零的,并且它们之和是等于一。
(4)compromise programming—均衡规划
我们把本来一个多目标优化问题,我先给它分解成K个单目标优化问题。因为F是F1X一直到FKX。我这边假设有M个约束条件,不管它Y的问题,给它分解成这个问题。就针对每个目标我算一个问题。对第一个问题就是我们是极大化,极大化是F1X满足一个约束条件,GIX小于等于0,然后在max。
(5)e-Constraint method、Weighted min-max method、Pareto optimal
其实总的来说做这种多秒优化问题,回顾一下这个key ideas就两点。第一点先是规划,最后已经现成代码摆在这里了。这个其实我用的是L二度量,可以有好多好多度量,感兴趣同学自己试试看。第二个就是把这个多目标给它转化成单目标或者一目标。那怎么转呢?下面讲一些方法,都是和我这个比如第一种是加权的,给个权重。后面几种类似,都是找我一个最理想点,从最理想点再反过来计算。这个很法很重要,我们会讲这个综合评价也会令人理想这个理想点,乌托邦点特别感兴趣。









































三、多目标算法补充内容
(1)多目标算法求解的内在求解策略
多目标优化算法的实现可以从多个角度进行探讨,除了加权求和法和帕累托前沿方法之外,还有以下几种常见的策略:
1. ε-约束法:在这种方法中,选择一个目标函数进行优化,而将其他目标函数转化为约束条件。通过调整这些约束条件的值,可以得到不同的解。
2. 目标规划法:这种方法通过设定目标值并最小化目标值与实际值之间的偏差来实现多目标优化。它通常用于决策问题中。
3. 分层法:将多个目标分层处理,首先优化最重要的目标,然后在此基础上优化次要目标。这种方法适用于目标之间有明显优先级的情况。
4. 多目标遗传算法(MOGA):利用遗传算法的特性,通过选择、交叉和变异等操作来生成多样化的解集,最终得到一组帕累托最优解。
5. 多目标粒子群优化(MOPSO):基于粒子群优化算法的多目标扩展,利用粒子之间的信息共享来探索解空间,寻找多个目标的最优解。
6. 动态权重法:在优化过程中动态调整各个目标的权重,以便在不同的迭代阶段关注不同的目标。
7. 模糊多目标优化:结合模糊逻辑处理不确定性和模糊性,适用于目标和约束条件不明确的情况。
(2)内在策略的优缺点
这些方法各有优缺点,选择合适的方法通常取决于具体问题的性质和需求。在多目标优化算法中,除了加权求和法和帕累托前沿方法外,还有多种其他方法和视角可以用来处理多个目标。以下是一些常见的多目标优化方法和角度:
1. ε-约束法:
- 该方法将一个目标函数作为主目标进行优化,而将其他目标函数转化为约束条件。通过设置这些约束的阈值(ε),可以在满足这些约束的前提下优化主目标。
2. 加权目标法:
- 类似于加权求和法,但在这种方法中,可以动态调整目标的权重,或使用不同的加权组合来生成不同的解决方案。
3. 目标规划:
- 目标规划是一种决策方法,它通过建立目标函数和约束条件来寻找最佳解决方案。目标函数通常是多个目标的组合,决策者可以设定每个目标的优先级。
4. 目标分解法:
- 将多目标问题分解为多个单目标问题,分别求解并合并结果。这种方法可以使复杂问题变得更易处理。
5. 多目标遗传算法(MOGA):
- 使用遗传算法的变种来处理多目标优化问题。通过选择、交叉和变异等操作,MOGA 能够在搜索空间中找到多种帕累托最优解。
6. 非支配排序遗传算法(NSGA-II):
- NSGA-II 是一种流行的多目标优化算法,通过非支配排序和拥挤度比较来维护多样性,能有效找到帕累托前沿。
7. 多目标粒子群优化(MOPSO):
- 类似于多目标遗传算法,MOPSO 使用粒子群优化的思想,通过粒子在解空间的移动来寻找多个目标的最优解。
8. 模糊多目标优化:
- 使用模糊逻辑处理目标的不确定性,适用于目标和约束不精确或具有模糊性的情况。
9. 决策树和随机森林:
- 在多目标优化中,可以使用决策树等机器学习方法来建立模型,从而帮助决策者在多个目标之间进行权衡。
10. Pareto优化:
- 通过寻找和比较不同方案的帕累托效率来评估解决方案,确保没有其他解决方案在某个目标上更好而在其他目标上不更差。
11. 层次分析法(AHP):
- 将复杂的多目标决策问题分解为多个层次,通过比较各层次中的元素,最终确定各目标的相对重要性。
12. 模糊层次分析法(FAHP):
- 结合模糊逻辑与层次分析法,处理目标之间的不确定性和模糊性。
相关文章:
AI大模型学习笔记|多目标算法梳理、举例
多目标算法学习内容推荐: 1.通俗易懂讲算法-多目标优化-NSGA-II(附代码讲解)_哔哩哔哩_bilibili 2.多目标优化 (python pyomo pareto 最优)_哔哩哔哩_bilibili 学习笔记: 通过网盘分享的文件:多目标算法学习笔记 链接: https://pan.baidu.com…...
蓝桥杯刷题——day3
蓝桥杯刷题——day3 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造…...
企业级日志分析系统ELK之ELK概述
ELK 概述 ELK 介绍 什么是 ELK 早期IT架构中的系统和应用的日志分散在不同的主机和文件,如果应用出现问题,开发和运维人员想排 查原因,就要先找到相应的主机上的日志文件再进行查找和分析,所以非常不方便,而且还涉及…...
【开源项目】经典开源项目数字孪生体育馆—开源工程及源码
飞渡科技数字孪生体育馆管理平台,融合物联网IOT、BIM数据模型、三维GIS等技术,实现体育馆的全方位监控和实时全局掌握,同时,通过集成设备设施管理、人员管理等子系统,减少信息孤岛,让场馆“可视、可控、可管…...
C++多线程实战:掌握图像处理高级技巧
文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 在当今的计算世界中,…...
解决MAC装win系统投屏失败问题(AMD显卡)
一、问题描述 电脑接上HDMI线后,电脑上能显示有外部显示器接入,但是外接显示器无投屏画面 二、已测试的方法 1 更改电脑分辨,结果无效 2 删除BootCamp,结果无效 3更新电脑系统,结果无效 4 在设备管理器中&#…...
网易游戏分享游戏场景中MongoDB运行和分析实践
在游戏行业中,数据库的稳定和性能直接影响了游戏质量和用户满意度。在竞争激烈的游戏市场中,一个优秀的数据库产品无疑能为游戏的开发和后期的运营奠定良好的基础。伴随着MongoDB在不同类型游戏场景中的应用越来越广泛,许多知名的游戏公司都在…...
Android14 AOSP 允许system分区和vendor分区应用进行AIDL通信
在Android14上,出于种种原因,system分区的应用无法和vendor分区的应用直接通过AIDL的方法进行通信,但是项目的某个功能又需要如此。 好在Binder底层其实是支持的,只是在上层进行了屏蔽。 修改 frameworks/native/libs/binder/Bp…...
R学习——因子
目录 1 定义因子(factor函数) 2因子的作用 一个数据集中的 只需要考虑可以用哪个数据来进行分类就可以了,可以用来分类就可以作为因子。 Cy1这个因子对应的水平level是4 6 8: 1 定义因子(factor函数) 要…...
pytest入门三:setup、teardown
https://zhuanlan.zhihu.com/p/623447031 function对应类外的函数,每个函数调用一次 import pytest def setup_module():print(开始 module)def teardown_module():print(结束 module)def setup_function():print(开始 function)def teardown_function():print(结…...
前端面试准备问题2
1.防抖和节流分别是什么,应用场景 防抖:在事件被触发后,只有在指定的延迟时间内没有再次触发,才执行事件处理函数。 在我的理解中,简单的说就是在一个指定的时间内,仅触发一次,如果有多次重复触…...
web前端sse封装
这是一个基于microsoft/fetch-event-source包封装的sse函数,包含开始、停止功能; 可传更多参数、使用非常简单。 使用前: 安装 microsoft/fetch-event-source 代码: // sse import { fetchEventSource } from microsoft/fetch-event-source import { …...
智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能
前言: 在当今社会的高速运转之下,夜幕低垂之时,许多辛勤工作的父母尚未归家。对于肩负家庭责任的他们而言,确保孩童按时用餐与居家安全成为心头大事。此时,家居留言录音提示功能应运而生,恰似家中的一位无形…...
【创建模式-蓝本模式(Prototype Pattern)】
目录 Overview应用场景代码演示JDK Prototype pattern 更优实践泛型克隆接口 https://doc.hutool.cn/pages/Cloneable/#%E6%B3%9B%E5%9E%8B%E5%85%8B%E9%9A%86%E7%B1%BB The prototype pattern is a creational design pattern in software development. It is used when the t…...
Spring Boot应用开发深度解析与实战案例
Spring Boot应用开发深度解析与实战案例 在当今快速发展的软件开发领域,Spring Boot凭借其“约定优于配置”的理念,极大地简化了Java应用的开发、配置和部署过程,成为了微服务架构下不可或缺的技术选型。本文将深入探讨Spring Boot的核心特性、最佳实践,并通过一个具体的…...
优化Go语言中的网络连接:设置代理超时参数
网络连接优化的重要性 在分布式系统和微服务架构中,网络请求的效率直接影响到整个系统的响应速度。合理的超时设置可以防止系统在等待网络响应时陷入无限期的阻塞,从而提高系统的吞吐量和用户体验。特别是在使用代理服务器时,由于增加了网络…...
《神经网络与深度学习》(邱锡鹏) 内容概要【不含数学推导】
第1章 绪论 基本概念:介绍了人工智能的发展历程及不同阶段的特点,如符号主义、连接主义、行为主义等。还阐述了深度学习在人工智能领域的重要地位和发展现状,以及其在图像、语音、自然语言处理等多个领域的成功应用。术语解释 人工智能&…...
原创 传奇996_55——后端如何点击npc隐藏主界面
点击图片退出,举例: |linkexit Img|ax0.5|ay0.5|percentx50|percenty50|imgpublic/touming2.png|hideMain1|linkexit <Img|x0|y0|esc1|show4|bg1|move0|imgcustom/new/longhun/bg.png|loadDelay0|reset1|hideMain1>...
RabbitMQ中的Work Queues模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信和解耦系统的关键组件之一。RabbitMQ 是一个广泛使用的开源消息代理软件,支持多种消息传递模式。其中,Work Queues(工作队列)模式是一…...
GESP202412 四级【Recamán】题解(AC)
》》》点我查看「视频」详解》》》 [GESP202412 四级] Recamn 题目描述 小杨最近发现了有趣的 Recamn 数列,这个数列是这样生成的: 数列的第一项 a 1 a_1 a1 是 1 1 1;如果 a k − 1 − k a_{k-1}-k ak−1−k 是正整数并且没有在数…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
SQL注入篇-sqlmap的配置和使用
在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc…...
