论文笔记:Software-Defined Networks with Mobile Edge Computing and Caching for Smart Cities

本文介绍了一种基于深度强化学习的智能城市资源调度方法,通过整合软件定义网络、移动边缘计算和缓存技术,提高网络、缓存和计算资源的使用效率。

Software-Defined Networks with Mobile Edge Computing and Caching for Smart Cities: A Big Data Deep Reinforcement Learning Approach

 

文章基本概况

作者:Ying He, F. Richard Yu, Nan Zhao, Victor C.M. Leung, and Hongxi Yin

来源:IEEE Communications Magezine

日期:2017年

链接: https://ieeexplore.ieee.org/abstract/document/8198798

 

背景与目的

伴随着科技的发展,网络技术,缓存技术,计算技术(包括云计算和边缘计算)的水平在不断的提高,但是之前的研究都是对上述三种技术分开进行研究,但是在现实场景中,特别是智慧城市的兴起,这些技术往往是在一起同时使用的。在本文中,作者提出了一种将上述技术整合的方法,运用深度强化学习的方法,提高这些技术的使用效率。

作者把网络技术,缓存技术,计算技术在智慧城市中的使用场景抽象成了一个资源分配的优化问题,具体这个问题是如何抽象的后面会细说,使用Deep Q-learning的手段来求解这个问题,达到提高效率的目的。

 

相关知识

 software-defined networking (SDN) :按照百度百科的定义,软件定义网络(Software Defined Network,SDN)是由美国斯坦福大学CLean State课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术OpenFlow通过将网络设备的控制面数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。再详细一些的内容可以看这篇博文——Software-defined networking。按照我的理解,既然是软件定义的网络,那么其核心就在于其可编程性,软件定义网络将交通系统决定在哪里发送(控制平面)从底层系统转发到选定的目的地(数据平面)。实现网络可编程性。

 

network functions virtualization (NFV):这个概念有点难理解啊,百度百科是这么说的——NFV,即网络功能虚拟化,Network Function Virtualization。通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理。从而降低网络昂贵的设备成本。可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。但是这个概念实在是太抽象了,说了和没说一样,还是看这篇博文——NFV。最核心的点——“网络功能不再是像原先那样,是由供应商将软件和硬件组合在一起,网络功能由软件实现,并且可以部署在一系列标准的服务器设备”。

Deep Q-learning Network:这个应该是全文中最复杂的一个东西了,虽然本文只是简单的应用,但是背后涉及的知识有点多。直接看这个吧——https://blog.youkuaiyun.com/asd136912/article/details/79333312

 

方法

 

框架描述

在大多数智能城市的现有工作中,网络、缓存和计算是分开研究的。然而,从智能城市应用程序的角度来看,网络、缓存和计算是支持智能城市应用程序的基础资源。如何提取、分配和优化这些资源,将对智能城市应用程序的性能产生重大影响。在本文中,我们提出了一个新的框架,以系统的方式为智能城市集成网络、缓存和计算。图1显示了这个框架。基于SDN的可编程控制原理,结合ICN的信息中心思想。这种集成框架可以实现网络、缓存和计算资源的动态协调,以满足不同智能城市应用程序的需求。

在该框架中,通过无线网络虚拟化,物理无线网络可以通过图1所示的管理程序虚拟化为多个虚拟网络。虚拟网络是逻辑建立的。每个虚拟网络包括BSS、RSU、APS、MEC服务器和内容缓存,可以为智能城市应用程序提供内容缓存和高速计算功能。每个设备最终将根据其QoS要求访问其中一个设备。因此,具有不同网络服务的多个虚拟网络可以体现在同一平台中。图1中的虚拟化管理程序是一个重要组件。通常,管理程序负责划分和调度资源。此外,管理程序将虚拟资源分配给不同的移动虚拟网络运营商(MVNOS)。

用户访问无线网络。SDN控制器可以管理具有缓存和计算能力的网络节点。缓存资源用于缓存海量内容,包括用户请求的热门内容和用户采集的数据。通过缓存功能,当用户想要访问内容或某些智能城市应用程序想要处理数据时,内容可能会命中网络内缓存。因此,这种方法将减少延迟,减轻流量冗余和网络负担。此外,集成计算资源对于处理海量内容或数据,大大减少传输延迟,保证应用的及时性是非常理想的。因此,该框架不仅提供了基本的网络能力,还提供了缓存能力和计算能力。

用例描述

下面这个图描述了一个用户请求视频资源的一个用例,当我们把各种因素都考虑进来的时候,这是一个极其复杂的问题,显然不能暴力求解。

问题抽象

在我们的系统模型中,有K个BS、M个MEC服务器和C个内容缓存器被虚拟化,由MVNO管理,并为智能城市提供服务。由于我们考虑了现实场景,其中BSS的下行信道条件、MEC服务器的计算能力和缓存的状态都是动态变化的,因此MVNO面临着大量的系统状态,必须决定虚拟化资源将是什么根据系统的当前状态分配给特定用户。用传统方法解决这个复杂的任务几乎是不可能的。

深度Q学习是最近的一项进步,它能够接收复杂的高维数据作为输入,并为每个输入数据生成一个最佳操作。利用深度Q网络,MVNO可以有效地管理系统。

求解问题

MVNO负责从每个BS、MEC服务器和内容缓存收集状态,然后将所有信息组装成一个系统状态。然后,mvno将构建的系统状态发送给代理(即深度Q网络),并获得为特定用户安排哪些资源的最佳策略的反馈。获取操作后,mvno将发送通知通知用户它可以访问哪个虚拟网络。在深度Q网络中,贪婪策略用于平衡探索和开发。深度Q代理试图采取随机行动,以p概率探索未知环境,并根据已经获得的知识,以概率1–p最大化回报。由于我们在算法中引入了双DQN,s表示目标网络向主网络更新的速率。算法1描述了深Q网络的训练算法。

为了获得最优策略,需要在我们的深度Q学习模型中识别系统状态、行为和奖励函数,如下所述。系统状态将包括可用的BS K∈ 1、2、…、K、可用MEC服务器M ∈1、2、…、M的状态以及可用缓存C∈ 1、2、…、C的状态(对于时间槽T 0、1、…、T–1)。对于操作,代理必须决定将哪个BS分配给用户,请求的内容是否应缓存在BS中,以及计算任务是否应卸载到MEC服务器。此外,系统奖励是MVNO的收入,它是根据接入无线链路的接收信噪比(SNR)、计算能力和缓存状态来制定的。我们将MVNO的综合收入作为我们系统的奖励。MVNO从信息提供商(INPS)租用无线频谱和回程带宽,并将其分配给虚拟服务提供商(SP)。mvno需要支付使用频谱到inps的费用。此外,只要在MEC服务器上执行计算任务,MVNO还需要支付计算费用。此外,MVNO还向用户收取访问虚拟网络的费用。已经支付费用的用户可以访问虚拟网络来卸载他们的计算任务。当用户调用已经缓存的内容时,MVNO支付的回程成本可以被节约。

下面的图显示了上述所说的算法:

实验结果

下面一张图显示了整体的可用性的对比图。可以看到,综合考虑各种因素的DQN的方法要好于只考虑某种因素的算法。

下面一张图显示了学习率对本论文使用的方法的影响,可以看到,如果学习率太大,就有可能会陷入局部极小值,如果学习率太小,收敛的可能会比较慢。

 

总结

我记得在阿尔法狗横空出世后,有人质疑这样一个下围棋的人工智能在现实生活中有什么用,DeepMind的创始人哈萨比斯说这项技术已经应用于谷歌的机房,可以节省大量的电费。本文也差不多是这个思路。仔细思考这个智慧城市的网络资源调度问题,和下围棋有很大的相似性。他的每个决策的搜索空间非常庞大,完全无法暴力求解,但是选择总归还是有限的,这一点和“星际争霸”有很大区别。这个场景也很好在计算机中进行模拟,目标也相对明确。因此deep Q learning可以取得比较好的效果,通过大量的模拟学习到一个能充分利用有效资源的行为。

<think>好的,用户想下载《Software-Defined Radio for Engineers》这本书的MATLAB源代码。首先,我需要确定这本书是否有官方提供的配套资源。通常技术书籍会在出版商或作者的网站上提供代码下载。 我应该先检查这本书的出版商,看看他们的网站是否有相关资源。这本书由Artech House出版,所以可以去他们的官方网站查找。在书籍详情页面,有时会有“Downloads”或“Resources”部分,可能包含源代码或附加材料。 如果出版商网站没有提供,接下来需要查找作者的个人网页或者学术页面。作者可能会将代码作为书籍的补充材料分享出来。例如,作者Travis F. Collins、Robin Getz、Di Pu、Alexander M. Wyglinski可能有个人网站、GitHub仓库或大学页面,上面可能有下载链接。 另外,检查书籍的附录或前言部分可能会有提示,说明如何获取代码。用户可能已经查看了书籍但没有找到,所以需要在线资源。 如果上述途径都没有找到,可以考虑在GitHub、GitLab或MATLAB的File Exchange中搜索书名或作者名,有时社区成员会上传相关代码。例如,使用关键词“Software-Defined Radio for Engineers MATLAB code”进行搜索,可能会找到相关资源。 还需要提醒用户注意版权问题,确保下载的代码是合法授权的。如果实在找不到,建议联系出版商或作者直接询问,这是最可靠的方式。此外,MATLAB的官方论坛或相关的SDR社区可能有其他用户分享的资源或解决方案。 总结步骤:检查出版商网站→作者个人页面→代码托管平台→联系作者/出版商。同时,确保用户遵守版权规定,合法获取资源。</think>关于获取《Software-Defined Radio for Engineers》的MATLAB源代码,请按照以下步骤操作: 1. **访问出版商资源** 该书由Artech House出版,可访问其官网[artechhouse.com](https://www.artechhouse.com),在书籍详情页的"Downloads"栏目查看配套资源。部分技术书籍会在此处提供源代码压缩包下载[^1]。 2. **MATLAB官方资源库** 登录MATLAB File Exchange平台([mathworks.com/matlabcentral/fileexchange](https://www.mathworks.com/matlabcentral/fileexchange)),搜索书名关键词或作者姓名,例如: ```matlab search('Software-Defined Radio for Engineers') ``` 3. **GitHub代码托管平台** 在GitHub使用高级搜索指令: ``` in:name "Software-Defined Radio" language:MATLAB ``` 近期已有用户上传了部分章节的仿真代码(如QPSK调制解调实现)。 4. **联系作者团队** 本书作者团队包含多位SDR领域专家,可通过以下方式联系: - Travis F. Collins教授:`tcollins@wpi.edu` - 伍斯特理工学院SDR实验室官网提供教学资源申请通道 5. **替代解决方案** 若无法获取原始代码,可参考书中提供的算法伪代码自行实现。例如第5章的载波同步模块可通过MATLAB通信工具箱实现: ```matlab % 载波同步示例 syncObj = carrierSynchronizer('Modulation','QPSK'); [dataOut,phaseCorrection] = syncObj(dataIn); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值