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

NICE Seminar(2023-07-16)|演化算法的理论研究到底有什么用?(南京大学钱超教授)

模式定理(Schema Theorem)

模式定理(Schema Theorem)是遗传算法(Genetic Algorithm, GA)的重要理论基础,由约翰·霍兰德(John Holland)在1975年提出。它描述了具有特定模式(schema)的基因片段在遗传算法中如何传播和保留的过程。以下是模式定理的详细介绍:

1. 模式(Schema)

模式是一种模板,表示在某些位置上具有相似性的字符串子集。模式用“*”符号表示可以是任何值。例如:

  • 模式1*0*表示所有长度为4的二进制字符串,这些字符串以1开头,第三位是0,第二位和第四位可以是0或1。
2. 模式定理的公式

模式定理的数学表达式如下:

3. 定理的含义

模式定理揭示了以下几方面的内容:

  • 适应度的影响:高适应度模式的个体数量在下一代中将会增加。
  • 定义长度的影响:定义长度较短的模式在交叉过程中更容易保留下来。
  • 突变率的影响:低突变率有助于模式的保留。
4. 应用场景
  • 优化问题:模式定理解释了遗传算法在优化问题中效果显著的原因,说明高适应度基因片段会在种群中传播。
  • 算法改进:理解模式定理有助于设计更有效的遗传算法,优化选择、交叉和突变操作,以更好地保留和传播有利模式。
  • 机器学习:在机器学习中的特征选择和模型优化过程中,模式定理提供了理论支持。

例子

假设在一个二进制遗传算法中,一个长度为10的个体有一个模式101*0*1*01,这个模式具有较高的适应度,并且定义长度较短。在这种情况下,根据模式定理,这个模式在下一代中会被更多地保留和传播,从而提高种群整体的适应度。

模式定理通过描述模式的保留和传播,解释了遗传算法如何通过选择、交叉和突变操作,在进化过程中逐步逼近最优解。

d m y  表示解的目标值

没有免费午餐定理(No Free Lunch Theorems, NFL)

是由Wolpert和Macready在1997年提出的,它是计算复杂性理论中的一个重要概念,特别是在演化算法和机器学习领域。没有免费午餐定理指出,没有任何一种算法能够在所有可能的问题上普遍优于其他所有算法。

以下是定理的主要内容:

定理的基本观点

  • 算法的普遍性能:NFL定理表明,如果我们考虑所有可能的问题(包括所有可能的输入和目标函数),那么所有算法的期望性能是相同的。换句话说,没有任何算法能够在所有问题上都表现得更好。
  • 特定问题上的性能:尽管在所有可能的问题上的平均性能是相同的,但在特定问题上,一些算法可能会比其他算法表现得更好。

定理的含义

  • 算法选择:NFL定理意味着在选择算法时,必须考虑特定问题的特性。没有一种算法是通用的,最好的算法取决于问题的性质。
  • 偏差与适应性:NFL定理强调了算法设计中的偏差与适应性之间的权衡。一个算法可能在某些问题上表现良好,但这是因为它对这些特定类型的问题有适应性(或偏差)。

定理的推论

  • 优化困难:NFL定理表明,优化是一个困难的问题,因为没有一种单一的方法可以保证在所有情况下都能找到最优解。
  • 问题特定算法:对于特定类型的问题,可以设计出比通用算法更有效的算法。

实际应用

  • 算法设计:在设计算法时,了解问题的特定属性是非常重要的,这样可以为特定类型的问题定制算法。
  • 性能评估:在评估算法性能时,应该在相关的问题集上进行,而不是在所有可能的问题上进行。

限制

  • 实际意义:虽然NFL定理在理论上是正确的,但在实际应用中,我们通常只关注特定类型的问题,这使得某些算法在实际情况下比其他算法更有效。
  • 假设条件:NFL定理基于一些假设,例如所有问题都是等可能的,这在现实世界中并不总是成立。

没有免费午餐定理是对算法设计和性能评估的一种哲学上的提醒,它强调了算法与问题之间的相互作用,以及在设计和选择算法时应考虑的问题特定性。 

目标空间与决策空间

在优化问题中,目标空间和决策空间是两个核心概念,它们分别描述了优化问题的不同方面。

决策空间(Decision Space)

决策空间是指所有可能的决策变量值的集合。它定义了优化问题中可以探索的解的范围。决策空间中的每一个点都对应于问题的一个潜在解。

  • 特性

    • 通常由一组变量 x_1, x_2, ..., x_nx1​,x2​,...,xn​ 定义,这些变量可以是连续的或离散的。
    • 决策空间的维度等于决策变量的数量。
    • 决策空间的边界可能由变量的物理限制或问题的约束条件决定。
  • 例子

    • 在线性规划问题中,决策空间可能是所有线性不等式约束下的解集合。
    • 在工程设计问题中,决策空间可能包括所有可能的设计参数值。

目标空间(Objective Space)

目标空间是指所有可能的目标函数值的集合。它是决策空间中每个点通过目标函数映射后形成的空间。在多目标优化问题中,目标空间通常是多维的,每个维度对应一个目标函数。

  • 特性

    • 由目标函数 f(x)f(x) 的输出定义,其中 xx 是决策空间中的一个点。
    • 目标空间可以是单维的(单一目标优化问题)或多维的(多目标优化问题)。
    • 目标空间中的点通常表示优化问题的某种性能或质量指标。
  • 例子

    • 在单目标优化问题中,目标空间可能是一维的,表示成本或收益的值。
    • 在多目标优化问题中,目标空间是多维的,可能表示多个相互冲突的目标,如成本、质量、时间等。

关系

  • 映射:决策空间中的每个点通过目标函数映射到目标空间中的一个点或一组点。
  • 优化:优化问题的目标是找到决策空间中的点,使得在目标空间中的对应点满足某些优化准则,如最小化或最大化目标函数。
  • 约束:在优化问题中,决策空间通常受到约束条件的限制,这些约束条件进一步限制了目标空间的形状和范围。

理解目标空间与决策空间的关系对于设计优化算法和解释优化结果至关重要。在多目标优化中,这种区分尤为重要,因为在目标空间中寻找Pareto前沿是问题的核心。理论证明了解的质量有保障!!!!!

相关文章:

NICE Seminar(2023-07-16)|演化算法的理论研究到底有什么用?(南京大学钱超教授)

模式定理(Schema Theorem) 模式定理(Schema Theorem)是遗传算法(Genetic Algorithm, GA)的重要理论基础,由约翰霍兰德(John Holland)在1975年提出。它描述了具有特定模式…...

优盘驱动器未格式化?数据恢复全攻略

在数字时代,优盘作为便携的数据存储工具,广泛应用于日常生活与工作中。然而,当遇到“优盘驱动器未被格式化”的提示时,无疑给许多人带来了不小的困扰。这一状况往往意味着优盘的文件系统出现了问题,导致系统无法正确识…...

(超全)Kubernetes 的核心组件解析

引言 在现代软件开发和运维的世界中,容器化技术已经成为一种标志性的解决方案,它为应用的构建、部署和管理提供了前所未有的灵活性和效率。然而,随着应用规模的扩大和复杂性的增加,单纯依靠容器本身来管理这些应用和服务已不再足够…...

前端常用的【设计模式】和使用场景

设计原则 最重要的:开放封闭原则 对扩展开放对修改封闭 工厂模式 用一个工厂函数,来创建实例,隐藏 new 如 jQuery 的 $ 函数,React 的 createElement 函数 单例模式 全局唯一的实例(无法生成第二个) 如 Vuex 和 Redux 的 store…...

QT下载问题:Download from your IP address is not allowed

问题 Download from your IP address is not allowed 解决 https://download.csdn.net/download/baidu_34971492/89608794...

自建数据库VS云数据库

自建数据库VS云数据库 什么是自建数据库?自建数据库方案自建数据库的优点自建数据库的缺点什么是云数据库?自建数据库的缺点什么是云数据库? 云数据库方案云数据库的优点云数据库的缺点适用场景比较总结 【纪录片】中国数据库前世今生 在数字…...

【大数据开发语言Scala的入门教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🪁Scala 🪡Scala是一种功能丰富且具有强大表达能力的静态类型…...

docker部署kkfileview文件在线预览服务

kkfileview文件在线预览服务部署使用 免费开源,功能强大,几乎支持日常见到的所有文件类型在线预览 目前支持的文件类型如下 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla 等 Office 办公文档支持 wp…...

朱锐 | 生命图像中的时间和意识

本文载于《科学・经济・社会》2023 年第 41 卷第 2 期第 37~61 页 作者简介: 朱锐(1968年10月—2024年8月1日),中国人民大学哲学院杰出学者、特聘教授,美国德州州立大学客座教授,主要从事神经哲学、心灵哲…...

pytorch: cpu,cuda,tensorRt 推理对比学习

0:先看结果 针对resnet模型对图片做处理 原图结果 分别使用cpu,cuda,TensorRt做推理,所需要的时间对比 方法时间cpu13s594mscuda711mstensorRt 113ms 项目地址: GitHub - july1992/Pytorch-vily-study: vily 学…...

android 音频播放器,(一)SoundPool音频播放实例

1. Apk内&#xff0c;预定义按键与触发按键&#xff1a; layout 按键定义: <Button android:id"id/start" android:layout_width"match_parent" android:layout_height"wrap_content" android:textAllC…...

AVL解析

本节主要看板书 概念 AVL树&#xff08;Adelson-Velsky and Landis tree&#xff09;是一种自平衡二叉查找树&#xff0c;用于在动态集合中进行高效的插入、删除和查找操作。它保持树的高度接近最小可能值&#xff0c;从而确保这些操作的时间复杂度始终保持在O(log n)。AVL树…...

用C#和WinForms打造你的专属视频播放器:从多格式支持到全屏播放的完整指南

使用 C# 和 WinForms 创建一个功能齐全的视频播放器&#xff0c;支持 MP4 和 AVI 格式&#xff0c;并具有文件夹导入、多视频播放、全屏切换、视频列表管理等功能&#xff0c;是一个相对复杂的项目。下面我会给出一个基本的实现方案&#xff0c;包括所需的关键功能和相关代码示…...

Spring security学习笔记

目录 1. 概要2. spring security原理2.1 DelegatingFilterProxy2.2 FilterChainProxy2.3 SecurityFilterChain2.4 Spring Security 作用机制 3.Spring Security快速入门4.高级自定义配置5. Spring Security 结合 JWT使用 1. 概要 Spring Security是一个用于在Java应用程序中实…...

MySQL:基础增删查改

MySQL&#xff1a;基础增删查改 插入插入冲突 查询distinctwhereorder bylimit 删除deletetruncate 更新 插入 基本插入语法&#xff1a; insert [into] 表名 (列1, 列2 ...) values (值1, 值2 ...);into可以省略(列1, 列2 ...)与后面的(值1, 值2)一一对应如果插入时数据完全…...

Apache DolphinScheduler 1.3.4升级至3.1.2版本过程中的踩坑记录

因为在工作中需要推动Apache DolphinScheduler的升级&#xff0c;经过预研&#xff0c;从1.3.4到3.1.2有的体验了很大的提升&#xff0c;在性能和功能性有了很多的改善&#xff0c;推荐升级。 查看官方的升级文档&#xff0c;可知有提供升级脚本&#xff0c;如果只是跨小版本的…...

最后一块石头的重量(超级妙的背包问题)

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…...

如何评估和提升审查者在前端代码审查中的专业技能?

评估和提升审查者在前端代码审查中的专业技能可以通过以下步骤&#xff1a; 技能评估&#xff1a; 定期进行技能评估&#xff0c;了解审查者在前端开发各方面的能力&#xff0c;包括但不限于HTML、CSS、JavaScript、框架使用、代码规范等。 代码审查实践&#xff1a; 通过实…...

C++(区别于C的)基础内容总结

参考&#xff1a; C 教程 | 菜鸟教程 (runoob.com) 简介 C 被认为是一种中级语言&#xff0c;它综合了高级语言和低级语言的特点。 C 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C 进一步扩充和完善了 C 语言&#xff0c;最初命名为带类的C&…...

实现代码灵活性:用Roslyn动态编译和执行存储在数据库中的C#代码

在许多现代应用程序中&#xff0c;动态编译和执行代码是提升灵活性和功能的一种强大技术。本文将介绍如何使用Roslyn编译器平台动态编译和执行存储在数据库中的C#代码&#xff0c;并结合实际公司案例来说明这些技术的应用场景。 1. 引言 在很多应用场景中&#xff0c;我们可能…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...

npm install 相关命令

npm install 相关命令 基本安装命令 # 安装 package.json 中列出的所有依赖 npm install npm i # 简写形式# 安装特定包 npm install <package-name># 安装特定版本 npm install <package-name><version>依赖类型选项 # 安装为生产依赖&#xff08;默认&…...