EDA2算法速通(编者崩溃版)

这个内容是用来回忆一下EDA2涉及的算法和解题的主要步骤:

有疑问或发现错误可以私信来讨论

高级综合概述

柏拉图优化:这个是来判断是否有哪些节点能完全被其他节点优化掉。比如(1,2)这个节点就可以完全优化(3,4)(3,2)这些节点。判断的方式就是两个值都比已经存在的其他节点大或相等(也可以使用坐标系向坐标轴做垂线,如果完全某节点的区域完全包裹另外一个就说明它会被优化)

操作调度

最小延迟无约束调度

没有约束可以直接理解为没有处理机资源数量的限制,只考虑先后次序

ASAP 从前向后

这个算法就是针对有向图,从前向后先把无前驱的节点标成1,之后根据后继顺序依次标为2、3、4直到完成所有节点的标注

ALAP 从后向前

这个算法会给出一个时间限制,是从最后一个节点按照这个根据这个时间限制的数值来进行标注。

看一下上图F的区别,就可以看出来前向后调度和后向前调度的区别

上述的ALAP和ASAP是下面这些算法中的一种调度思路

有约束调度

有约束和上面

Hu调度算法

这个算法针对的有限个是同种处理机资源进行的调度

1. 划分出优先级(使用ALAP)

2.根据优先级进行调度(考虑每个时刻处理机的使用量)

列表调度

这个算法是针对不同处理机进行的调度,有MR-LCS(对时间有具体限制,处理机数量是未知量表示)与ML-RCS(对处理机数量有明显显示,但是对于时间并无要求)。

这个调度会使用下面的ILP进行数字化处理(画的图用于对ILP的唯一约束化简)

ILP优化(x 数值上只能为1或0)

ML-RCS中有三个约束

1.唯一约束:每个节点只被调度一次  

2.顺序约束:后继节点时间必须大于等于 前驱节点时间+处理前驱节点所用时间

3.资源约束:在同一时刻某一类资源被调度的数量必须小于等于该类资源的处理机的数量

对于这种题的做法就是根据上面的列表调度,使用ALSP算法画图,对唯一限制的式子进行优化

MR-LCS中有三个约束

1.唯一约束:每个节点只被调度一次  

2.顺序约束:后继节点时间必须大于等于 前驱节点时间+处理前驱节点所用时间

3.时间约束:最终的时间必须小于 给出时间+1(调度最后一个节点的时间)

对于这种题需要将处理机数量设置为a1 a2这种,之后进行类型资源约束的写法,之后按照ML-RCS的方法进行化简

MIN 权重*资源数量+权重*资源数量(这个是最终的表达式,列出来化简就行,不用全算出来)

时间分析

关键节点关键性

这种题的步骤:
1.标出:需要时间/到达时间(第一个节点前后都有、后面节点的都是后面)

2.裕量=需要时间-到达时间

3.裕量为零的节点是关键节点,这些节点形成的路径是关键路径

4.关键性=1-(裕量/图中最大裕量)

绑定问题

兼容图和冲突图

这个也是针对有向图,一般是使用优化算法处理过的

兼容图:节点之间不存在并发关系(说白了就是在ASAP这种图里面不在同一排)

冲突图:兼容图的补图

左边缘算法

放两张图就明白了

两级逻辑优化

优化目标

假设一家公司有很多人,有会前端和后端的、有会后端和运维的......

最小覆盖:裁员之后在所有技术栈都被覆盖的情况下剩余的人数最少

非冗余覆盖:不一定人数最少,但每个人都不可或缺(再裁谁就必然会有某个技术栈没被覆盖)

单个蕴含项下的非冗余覆盖:一个人被另一个人完全替代(技术栈被完全包括)

精确两级优化逻辑

Quine算法

On数组(1),Off数组(0),Dc数组(非0也非1)

比如F=abcd+ab(非c)d+a(非b)cd这种形式,要求出其一次的最小蕴涵项:

1.枚举出可以使F=1的情况,比如abcd就是1111,ac(非c)d就是1101

2.两两对比,找出可以概括的项合并为*,比如1111和1101可以合并成11*1

3.再次合并直到无法合并为止

列出合并的最终结果和合并过程中没有合并进去的列在一起

分支优化

这个不会考递归那个式子,考的是矩阵的缩减

1. 按照题目给出蕴涵项那一列(打勾),划掉那一列所含1所在的行

2.之后进行列之间的支配(1被全覆盖),不打勾

3.之后扫描每一列,发现进出现一个1的话就这一列打勾,并且划掉那一列所含1所在的行

4.直到不存在1为止

打勾的行头部的式子就是蕴含式

启发式两级优化逻辑

矩阵表示法

首先两个操作:

1.Intersection:同1才为1

2.supercube:存1即为1

之后有一个操作:

求余子式Fa

F先对a进行Inter操作、操作结果对a取反的结果进行supercube操作

重言式:

1.余子式存在全为1的一行

2.对于唯一决定项,每一列都不全为0

非重言式:

对于唯一决定项,存在一列都全为0

单调性:

对于F中的某一个元素,比如是a,若只存在a即a为单调增,若只存在(非a)则a为单调减

操作

取反

使用德摩根律和矩阵计算对F去某一个因子的反,如果算不出来就接着取

拓展

会让尝试拓展某一项

1.F取反

2.检查F中某一个项是否可以简化,比如abc是否可以简化成ab(F反和ab进行Inter运算)

3.若运算结果为空(存在00项的话该行直接划掉),则可以拓展

4.之后可以进一步拓展,比如ab可否简化为a,即F反与a进行Inter运算,看结果是否为空

缩减

其实是增加了字母(抽象程度降低)

下面这个例子说的很明白,这是者怒地某一个元素进行的缩减尝试

1.对剩余子式取反

2.之后求该反式对a取余因子的结果

3.之后对于该结果进行supercube运算

4.最后看选出项和3的运算结果交集是否等于选出项

5.若相等说明无法化简,不相等更新原函数该项

去冗余

非冗余覆盖是Rp中的元素+Er中的元素

Er存放必须存在的项(处理之后不是重言式)

Rp存放不存在的项(处理之后无法判断不是重言式)

1.在F中去除一个项

2.剩余项对该项取余子式

3.余子式不是重言式的话就放入Er,反之先放入Rp

Rt

对于Rp中的元素进行如下判定:

1.H=Rp中的元素+Er中的元素-选出来接受判定的元素

2.H对该元素求余因子,若结果不是重言式,就不可以去掉该元素

3.去掉的元素放入Rt,并从Rp中删去

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

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

相关文章

雷池waf配置第三方登录-钉钉配置详细教程

雷池waf配置第三方登录-钉钉配置详细教程 前往钉钉开放平台https://open.dingtalk.com/ 选择一个登录方式登录钉钉开放平台 选择一个自己所管理的组织 登录成功后点击我的后台 选择应用开发 在钉钉应用下点击创建应用 填写应用名称和应用描述后点击保存 点击网页…

神经网络中的均方误差(Mean Squared Error)详解

引言 在机器学习和神经网络领域,损失函数(Loss Function)是衡量模型预测值与真实值之间差异的关键指标。均方误差(Mean Squared Error, MSE)作为一种经典的损失函数,因其简单性、可解释性和数学上的优良性…

day036-lsyncd实时同步服务与网站存储架构

文章目录 1. 实时同步工具2. lsyncd 实时同步服务2.1 环境准备2.2 rsync准备2.2.1 服务端检查2.2.2 客户端检查2.2.3 备份测试 2.3 配置lsyncd2.3.1 安装软件2.3.2 编写配置文件 2.4 测试 3. 案例-网站存储架构3.1 rsync服务配置3.1.1 服务端配置3.1.2 客户端配置 3.2 lsyncd服…

React Native WebView键盘难题:如何让输入框不被键盘遮挡?

写在前面 “明明点击了输入框,键盘却把内容顶得不见踪影!” —— 这可能是React Native开发者使用WebView时最头疼的问题之一。 想象一下:你的App内嵌了一个网页表单,用户兴奋地准备填写信息,结果键盘弹出后&#xf…

Web攻防-XSS跨站浏览器UXSS突变MXSSVueReactElectron框架JQuery库写法和版本

知识点: 1、Web攻防-XSS跨站-浏览器&转换-UXSS&MXSS 2、Web攻防-XSS跨站-框架和库-VUE&React&Electron&JQuery 分类: 1、框架或三方库的XSS(Vue、React、Electron、JQuery) 2、浏览器或插件的XSS(UXSS) 3、客户端预览内核的XSS(MXS…

PyTorch 中torch.clamp函数使用详解和实战示例

torch.clamp 是 PyTorch 中的一个非常有用的函数,它可以将张量的每个元素限制在一个指定的范围内,超出范围的元素将被裁剪为边界值。 函数签名: torch.clamp(input, minNone, maxNone, outNone)参数说明: input:输入…

详解Redis数据库和缓存不一致的情况及解决方案

数据库与缓存不一致是分布式系统中常见问题,本质是数据在缓存层和存储层出现版本差异。 一、并发写操作导致不一致(最常见) 场景描述 线程A更新数据库 → 线程B更新数据库 → 线程B更新缓存 → 线程A更新缓存 结果:缓存中存储的…

湖北理元理律师事务所:企业债务危机的“急诊科”式应对方案

当企业陷入债务危机时,传统“头痛医头”的应对往往加速死亡。本方案基于企业债务重组实务,提炼出 “止血-清创-修复”三阶急救体系,助力企业守住生存底线。 第一阶段:精准止血(0-30天关键期) 目标&#x…

华为云Flexus+DeepSeek征文|基于Dify构建智能票据信息识别助手

华为云FlexusDeepSeek征文|基于Dify构建智能票据信息识别助手 一、构建智能票据信息识别助手前言二、构建智能票据信息识别助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建智能票据信息识别助手实战3.1 配置Dify环境3.2 配置Dify工具…

Python实例题:基于联邦学习的隐私保护 AI 系统(分布式学习、隐私计算)

目录 Python实例题 题目 问题描述 解题思路 关键代码框架 难点分析 扩展方向 Python实例题 题目 基于联邦学习的隐私保护 AI 系统(分布式学习、隐私计算) 问题描述 开发一个基于联邦学习的隐私保护 AI 系统,包含以下功能&#xff…

点点(小红书AI搜索):生活场景的智能搜索助手

1. 产品概述 点点是小红书于2024年12月正式推出的AI搜索助手,由上海生动诗章科技有限公司开发,定位为生活场景搜索工具,聚焦交通、美食、旅游、购物等日常需求,旨在通过即时信息和真实用户分享帮助用户“精准避坑”。 核心特点 …

软件工程概述:核心概念、模型与方法全解析

一、软件工程定义与诞生背景 定义 将系统化、规范化、可度量的方法应用于软件开发、运行和维护的过程(IEEE标准)。 核心目标:在可控成本下,生产高质量、可维护、满足需求的软件产品。 - 软件开发:需求 → 设计 → 编码…

LVS+Keepalived+nginx

LVSKeepalivednginx 1 安装依赖 sudo yum install ipvsadm keepalived -y 查询是否安装成功 rpm -q -a keepalived 2 配置虚拟IP并安装ipvsadm /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-ens33:1 修改里面配置文件 TYPE"Ethernet" PROXY_METHOD"n…

数据分析实操篇:京东淘宝商品实时数据获取与分析

在电商行业蓬勃发展的当下,数据已然成为驱动决策的核心要素。无论是商家精准把控市场需求、制定营销策略,还是消费者做出明智的购物抉择,都离不开对电商平台商品数据的深入剖析。京东和淘宝作为国内电商领域的两大巨头,汇聚了海量…

微信小程序扫码添加音频播放报错{errCode:10001, errMsg:“errCode:602,err:error,not found param“}

主要流程代码如下: let innerAudioContext wx.createInnerAudioContext() // 提示音 innerAudioContext.autoplay true innerAudioContext.src ../images/scan.mp3 innerAudioContext.onError(function(res){ console.log(onError 开始监听:,res) }) innerAudi…

SVN合并指南,从dev合并部分revision到release指南

dev合并到release 1.进入release的工作区,右击选择Merge 点击Next 2.确认merge来源分支和当前分支 点击Show Log,挑选需要合并的单号 3. 选择需要合并的commit 注意点击Hide no-mergeable revisions,来隐藏掉已经合并的commit 4.选择需…

《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题

复习题 8.1节 R1. 机密性是攻击者截获原始明文消息的密文加密后无法确定原始明文的属性。消息完整性是接收方可以检测发送的消息(无论是否加密)在传输过程中是否又被更改的属性。 因此,这两者是不同的概念,可以独立存在。一个在传…

抖音小程序开发:ttml和传统html的区别

1 传统 Web 中 HTML 的角色 HyperText Markup Language&#xff1a;用来描述页面结构——标题、段落、图片、表单…… 只负责“放什么元素、排在什么层级”&#xff0c;真正的行为靠 JS&#xff0c;视觉靠 CSS。 <!-- 传统网页&#xff1a;结构 class 交给 CSS --> &…

Unity2D 街机风太空射击游戏 学习记录 #12QFramework引入

概述 这是一款基于Unity引擎开发的2D街机风太空射击游戏&#xff0c;笔者并不是游戏开发人&#xff0c;作者是siki学院的凉鞋老师。 笔者只是学习项目&#xff0c;记录学习&#xff0c;同时也想帮助他人更好的学习这个项目 作者会记录学习这一期用到的知识&#xff0c;和一些…

Proteus如何创建第一个工程

视频教程&#xff1a; [最详细]Proteus新建第一个工程与快捷键设置 操作步骤 1打开Proteus后&#xff0c;左上角点击文件然后点击新建工程。 2新建工程后&#xff0c;弹出以下界面&#xff0c;选择修改自己的工程名字&#xff0c;&#xff08;工程名的后缀“.pdspsj”不要修改…