- 博客(38)
- 收藏
- 关注
原创 字典树运用
字典树又叫 前缀树, 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。这是一个字符串字典树的典型例子,字符串中只包含26个小写字母。
2025-03-09 19:42:46
193
原创 八股打卡(六)
举个例子,实际项目中,一个service可能有成百上千个底层类,对这个service实例化,每次都要理清底层类的构造函数,而采用IOC,则只需要配置好,在需要的位置引用即可。它也是从根节点开始标记所有可达对象,与标记-清除算法直接清除未被标记的对象的做法不同,该算法将所有存活对象压缩到内存的一侧,清除边界外的所有空间,这种算法不需要两块相同的内存,又能避免产生碎片,性价比较高。面向切面编程,是一种横切的技术,剖解开封装对象的内部,将影响多个类的公共行为封装到一个可重用的模块,称之为切面。
2025-03-07 15:23:07
636
原创 八股打卡(五)
当一段同步代码被一个线程一直访问,那么这个线程就获得了偏向锁,此时如果有其他线程试图访问,那么偏向锁会升级成轻量级锁,其他线程通过自旋的形式尝试获取锁,但是不会阻塞,当自旋到一定的次数时还没有获取到锁,线程就会进入阻塞,此时轻量级锁升级成重量级锁。多线程环境下,每个线程都有自己的程序计数器,线程执行方法时,程序计数器记录的是正在执行的虚拟机字节码指令的地址。尝试获取锁的线程不会立即被阻塞,而是采取循环的方式尝试获取锁,好处是可以减少线程上下文切换的损耗,缺点是循环消耗cpu。
2025-03-06 16:14:41
575
原创 八股打卡(四)
此时其他线程访问该段代码,通过自旋方式尝试获取锁,不会阻塞,锁升级成为轻量级锁;当自旋达到一定次数还没获得锁,那么锁升级为重量级锁,将所有试图访问的线程阻塞。例如: ReentrantLock和synchronized都是独占锁,ReadWriteLock中Read是共享锁,Write是独占锁。获得自旋锁的线程不会阻塞,它循环去获取锁,好处是减少线程上下文切换,坏处循环消耗cpu。悲观锁是加锁编程,乐观锁是无锁编程,常采用CAS操作通过自旋方式实现原子更新。公平锁:按照申请锁的顺序来获取锁。
2025-03-04 16:18:34
648
原创 八股打卡(三)
当把一个子类对象赋值给父类引用变量,调用该引用变量的方法,其方法表现出子类方法的行为特征,而不是父类方法的行为特征。将对象的属性和方法结合在一起,隐藏内部的实现细节,对外暴露一个可以访问的接口,通常使用public, private, protected关键字来设置访问权限,以实现封装。Java中的集合类都是由这四个类派生的。一个类继承另一个类的方法和属性,子类能够重用父类的代码,并且新增方法或者修改已有方法实现功能的拓展。指的是计算出新扩容的数据的大小,并实例化,将旧数组中的数据复制到新数组。
2025-02-28 14:54:40
539
原创 八股打卡(一)
先存进来的页面先被置换出去进程同步:多个并发执行的进程协调和管理它们之间的执行顺序,使得进程按照一定的顺序或时间间隔执行。进程互斥:对于共享资源,一个时刻只能由一个进程访问。
2025-02-26 16:22:06
1031
原创 无人机使能的边缘计算优化问题
系统中移动用户的数量M、移动用户的位置(x,y,0)、任务的CPU频率C、任务的数据量D都是已知的,而无人机数量N、无人机位置(X,Y,H)是未知的。上层负责优化UAV的部署,下层负责优化任务调度。在上层中,UAV的部署问题是一个可变长度的优化问题,在进化算法中引入一种新的编码机制,使得每个individual都有固定长度(2维,位置的x坐标和y坐标)个任务【疑问:资源的分配通过任务执行数来界定有一定偏颇,若任务种类相似可以这样定义,若任务种类不相似,任务大小的方差太大,对于资源的分配利用并非高效的】
2024-07-16 15:38:39
1696
原创 生成扩散模型在网络优化方面的应用
生成扩散模型(Generative Diffusion Models, GDMs)具有建模复杂数据分布和生成高质量样本的能力,基于此,GDMs常常被用来执行例如图片生成等任务,随着6G的不断建设与探索,网络规模逐步扩大,网络状态愈加复杂,学习复杂网络中潜在的信息和依赖关系是十分重要的。
2024-04-02 16:56:59
1279
原创 《Cache-Aided MEC for IoT: Resource Allocation Using Deep Graph Reinforcement Learning》阅读笔记
论文笔记
2023-12-10 15:54:47
1159
1
原创 《Joint Caching and Transmission in the Mobile Edge Network: An Multi-Agent Learning Approach》阅读笔记
比如如果在t时刻服务器e中缓存的文件为{1, 2, 3},agent采取的动作为删除文件1替换为文件4,那么t+1时刻服务器e中缓存的文件为{4, 2, 3}。caching network基于多智能体学习预测和存储用户感兴趣的文件,网络的输入为请求文件和用户接入信息,输出为缓存决策x,每个边缘服务器作为agent学习缓存策略。疑问:这里的奖励函数定义为边缘服务器与用户之间传输时延最小,若边缘服务器只缓存一个文件岂不是此时的传输时延最小,r最大吗?当a(t)=0时,说明请求的文件在缓存中,不进行替换。
2023-11-29 22:07:18
139
原创 贝叶斯学习自动机
step2:再次画出图像选择,得到随机变量x2 > x1, 选择arm2并获得了奖励,更新选择两个arm的Beta分布,估计arm2获得奖励的概率下降,agent选择arm1的概率变成0.5。step3:第三次选择中,x1 > x2,选择arm1并获得了奖励,更新选择两个arm的Beta分布,估计arm1获得奖励的概率上升,agent选择arm1的概率变成0.7。其中,一般用Beta分布作为先验分布。:对于伯努利分布,用Beta分布作为先验分布,通过贝叶斯推断后得到的后验分布依然时Beta分布的特性。
2023-11-23 23:12:24
165
原创 多智能体解决数据缓存
经验回放(Experience Replay)是强化学习中的一个技术,旨在改善学习的效率和稳定性。在实时与环境交互中获得的经验(状态、动作、奖励等)通常会被立即用于更新模型。这种做法可能非常低效和不稳定。经验回放通过存储这些经验到一个称为“经验回放缓冲区”的数据结构中,然后在训练过程中随机抽样以用于模型更新,从而解决了这一问题。固定边缘节点之间、边缘节点和数据中心之间的数据率。真实世界数据集MovieLens。
2023-11-17 21:56:52
128
1
原创 《Data Caching Optimization in the Edge Computing Environment》论文阅读笔记
阅读笔记
2023-11-10 10:16:44
223
1
原创 马尔可夫决策过程详解
RL本质是互动学习,让智能体与外界环境进行交互,其目标是使得agent在与环境的交互中得到最大的累计reward,从而学习到自身动作的最优控制。RL模型中三个关键部分:(1) 状态(state):外界环境信息,状态体现环境的特征。(2) 动作(action):感知环境后采取的行为,动作的表现形式可以是离散的,也可以是连续的。(3) 奖励(reward):采取行动后获得的收益值,收益根据实际场景可以时正的也可以是负的。
2023-11-03 16:46:45
1910
2
原创 GAP问题近似算法
近似比:A是问题I的近似算法,OPTA是问题I的最优算法,则定义近似算法A的近似比率为:最小化问题的近似比:近似比率总是>=1,近似比越小,算法越好。相对误差界:若对于输入规模为n的问题,存在一个函数ϵ\epsilonϵ(n)使得:优化问题近似方案:把近似算法A的近似比满足如下条件:称为优化问题的近似方案。
2023-10-29 16:47:35
681
1
原创 《Mobility-Aware Computation Offloading in Edge Computing Using Machine Learning》 论文阅读笔记二
笔记2
2023-10-29 11:40:07
150
1
原创 《Mobility-Aware Computation Offloading in Edge Computing Using Machine Learning》 论文阅读笔记一
关于计算卸载的理论研究较为广泛,绝大部分将问题建模成为整数规划/混合整数规划问题等,通过采用凸优化理论,启发式算法,博弈论,排队论,马尔可夫决策,深度强化学习等方法进行近似求解。A[10 + 8].b = A[10].b + b3 = 6 + 4 = 10,A[10 + 8].p = A[10].p + p3 = 5 + 1 = 6,代价为18时,分配策略为app196、app143。其中,xi/yi为app的位置,md为迁移数据量,id为卸载数据量,w为计算所需指令数,p为所需处理速度,b为所需带宽。
2023-10-28 23:20:25
196
1
原创 Android Studio 在蓝屏后出现import包标红解决方法
如何在Android Studio的文件突然标红后恢复正常由于某些原因,电脑在运行Android Studio时经常蓝屏(以前没什么事情,但是今天再次打开后project的activity文件出现了标红,导入的包与控件有关的全部标红,xml文件的控件不可用。网上搜索了很多方法都无法解决,最后参考他人做法想出了一个解决方法。问题描述导入包全部标红解决方案打开Tool->SDK Manager,将原有的SDK全部删除,关闭AS。重新打开AS,提示没有SDK,此时重新安装SDK。安装完毕,
2021-10-11 18:06:23
788
原创 CSAPP Lab 2 Bomb小记三
在前面两篇文章中,我们已经分析完了六个phase,接下来分析最后一个phase。实验过程secret phase 破解在此之前,我们分析bomb.c文件,发现一件有趣的事情:在文件执行的过程中,我们似乎并没有察觉到phase_defused()函数的动静,接下来我们看看这个函数干了什么。这里要注意:这是一个防止栈溢出的操作。把%fs段偏移0x28处的一个数据存储到了%rsp上面0x68距离处(金丝雀)903:将%esi置为0x402619,查看其代表含义为输入两个数字和一个字符串,
2021-04-26 22:10:08
173
原创 CSAPP Lab 2 Bomb小记二
接着上一篇文章,我们来继续分析几个phase实验过程phase 4 破解反汇编代码:设置断点:执行程序:分析汇编:446:压栈447:传入的第二个参数%rcx448:传入的第一个参数%rdx449:输入” %d %d”450-453:输入个数为2454-457:判断输入的第一个参数的大小,该数需小于等于14,且被初始化为14458:%esi值为0459:%edi的值等于刚输入第一个参数的值460:调用func4,大致上浏览一遍函数,找到传入func4的参数:%edi,%e
2021-04-26 21:56:19
238
原创 CSAPP Lab2 Bomb小记一
实验概述这是一个非常有趣的实验,实验以通关(phase)的形式来呈现汇编语言学习的重点与难点,并且一环扣一环,除了必须要经过的六个phase外,还有一个secret phase,接下来我们看一下如何破解这些phase。实验过程首先,输入命令objdump -d bomb > bomb_assembly.S,得到bomb_assembly.s反汇编文件。之后在终端用gdb对bomb.c进行调试。phase 1破解首先给出phase 1的反汇编代码:347: 压栈348:将0x402
2021-04-26 21:19:49
241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人