牙说:接着上一篇继续写。

论文标题:An Energy-Efficient Ant-Based Routing Algorithm forWireless Sensor Networks
作者:Tiago Camilo, Carlos Carreto, Jorge Sá Silva, Fernando Boavida

正文:


2、相关工作
可以考虑无线传感器网络,如前所述,ad-hoc网络。 然而,用于移动自组织网络(MANET)的协议不提供传感器网络的一些要求:传感器通常具有低功率电池,低存储器,并且路由表随着网络长度而增长,并且不支持扩散通信。 这些是建立在能源效率最重要标准的基础上设计新协议的主要原因。
[2]中描述的低能量自适应聚类层次结构(LEACH)可能是传感器网络区域中引用最多的协议之一。 它是一种用于传感器网络的,有持续的数据流动(无阻塞的传感器活动)功能强大,高效的协议。 它使用分层拓扑的协议,随机创建标签头,并呈现数据聚合机制。
  Power-Efficient GAthering inSensor Information Systems (PEGASIS), 是一种新开发的协议,它和leach协议类似,但是每轮所需能量更少( 牙注:这里的每轮是什么意思?明白后补)。 在PEGASIS中,创建了链使得每个节点接收聚合信息并将其转发到附近的邻居。 它提出了允许无线电通信能量参数变化的机制。 与LEACH相比,PEGASIS协议在每轮获得高达100%的能源成本改进[4]。 然而,这两个协议在移动情况下都不适用,并且它们都假设数据包可以在簇头聚合。
直接扩散(DD)[5]是一种以数据为中心的协议,它通过监视的数据而不是其网络地址来定位节点。 在该协议中,应用程序负责查询网络的具体现象值。 满足特定查询的传感器节点开始发送其数据。 基于接收器节点请求,该协议在构建其基于洪泛的路由方案时不考虑节点的可用能量。
Jeon等 [6]提出了一种节能路由协议,试图解决延迟和能量问题。 基于AntNet协议[7],该算法使用蚂蚁信息素的概念来生成两个优先级排队,用于差分传输( 牙注:所谓差分传输,就是发送端在两条信号线上传输幅值相等相位相反的电信号,接收端对接受的两条线信号作减法运算,这样获得幅值翻倍的信号)。 然而,由于保存两个队列需要不小的内存,这种方法在当前传感器节点中可能是不可行的。 如果传感器网络非常密集,这可能会更加麻烦,因为每个设备上的路由表取决于邻居的数量。
张等人 [8],研究了三种不同的基于Ant的算法,用于WSN。 然而,作者只关注初始信息素分布的建立,擅长系统启动。
在[9]中,作者提出了一种可以移植到WSN路由的Steiner Tree(斯坦纳树)的蚁群算法。 然而,对于具体的WSN要求,他没有考虑任何变化,也没有考虑到WSN性能所必需的能源管理。
上面提出的蚁群算法都假定WSN应用程序需要传感器节点(端到端)之间的通信,在这样的假设基础上构建其算法。 然而,在大多数WSN场景中并不是这样,大多数WSN场景从源节点(传感器节点)到汇聚节点执行逐跳或单跳通信,负责从网络收集传感器数据。这些节点( 牙注:这里的这些节点指的是源节点与汇聚节点吗?)与正常的传感器节点(更多的能量,更大的存储能力和更大的处理能力)相比呈现出不同的特征,这些差异在所引用的算法中都没有被考虑到。

3、基于蚁群的能量有效路由协议

当一个WSN协议被设计出来的时候,一定要考虑基础算法的能量效率,因为这种类型的网络(牙注:大概指的是无线传感网吧)具有严格的功率要求。在本节中,我们提出了一种新的能量约束协议,EEABR协议,它基于蚁群优化启发式,并且集中在主要的WSN约束上(牙注:这句话耐人寻味,有点不懂,明白后补)。

在实际部署的无线传感网络中,传感器节点可能没有补充能量的能力。这个假设要求我们必须强制使用节能算法来最大限度的提高网络的使用寿命。相比之下,在及时传输网络中,路由算法的目标是找到两个设备(源和目的)之间的最短路径,这可以通过选择具有较少通信跳数的路径轻松完成。在运行协议需要降低的通信延迟的WSNs中,这种要求被降到第二个阶层,因为服务质量和服务意识没有像在一般MANETs中那么重要。

本节的其余部分总结了EEABR背后的想法。 首先介绍基于蚂蚁的基本路由算法。 接下来,介绍了基本算法的改进。 最后,提出了EEABR算法

3.1 基于蚁群的基础路由

ACO元启发式已经成功应用于许多组合优化问题[13]。 其优化过程可以轻松实现用于WSN的蚁群路由算法的优化。 AntNet [7]算法的基本实现可以非正式地描述如下。

1.定期从每个网络节点发起一个前向蚂蚁k,其任务是找到一个直到目的地的路径。 每个访问节点的标识符被保存到被蚂蚁携带的存储器Mk中。

2.在每个节点r,前向蚂蚁使用ACO元启发式中提出的同一个概率规则来选择下一跳节点(牙注:下图就是那个概率规则):

pk(r,s)是蚂蚁k选择从节点r移动到节点s的概率,T是每个节点上的路由表,用于存储每个连接上的信息素浓度(牙注:T(r,s)代表的是r到s这条链路上的信息素浓度),E代表可见性函数1/(C-es)(C是节点的初始能量水平,es是节点s的实际能量水平)(牙注:就是说一个节点的消耗能量越大,到这个节点的概率就越小),α和β是控制信息素与可见度的相对重要性的参数。选择概率是可见度(表示节点能量越高越可能被选中)和信息素浓度(即如果在连接(r,s)的流量越多这条连接越可能被选中)之间的折衷(牙注:这个α和β感觉可以好好玩一下)。

3.当前向蚂蚁到达目的地节点时,它被转换成一个后向蚂蚁(牙注:这个大概是说回发一个数据包吧),其任务是更新用于到达目的地的路径的信息素浓度,并将其存储在其存储器中(牙注:或者是将更新完的信息素浓度存储到存储器中,这个存储器是节点的存储器吗?还是随包携带的路由表啊?)。

4.在返程蚂蚁k开始其返程之前,目的地节点计算蚂蚁在旅途中会下降的信息素浓度的量(牙注:这里的信息素浓度下降是什么意思?谁的信息素浓度会下降啊?)(牙注:下图就是计算的那个公式):

N是节点的总数量,Fdk是前进蚂蚁旅行的距离(也就是它存储器中存着的通过节点的数量)。(牙注:也就是说通过节点越多,信息素浓度下降越快咯

5.每当返程蚂蚁从节点s爬到节点r的时候,节点r将以以下方式更新其路由表:

ρ是一个系数,(1-ρ)代表距离上一次Tk(r,s)更新后的信息素挥发情况。

6.当返程蚂蚁到达创建它的节点时,其任务完成,这只蚂蚁消失。

通过执行该算法几次迭代,每个节点将能够知道向特定目的地发送分组时的最佳邻居是哪个(根据由等式2表示的最优函数)(牙注:为什么是等式2嘞?仅仅根据节点跳数来确定那条路径是最佳路径感觉有失偏颇)。

3.2 为WSN优化蚁群路由

在本节中,我们提出了上一节中描述的基本的蚂蚁路由算法的两个改进,以便减少传感器节点中使用的内存,并考虑蚂蚁发现的路径的能量质量。

在基本算法中,前向蚂蚁的目的节点是不确定的,这意味着传感器节点之间必须能相互通信,每个节点的路由表必须包括其邻域中所有传感器节点的标识和其对应路径的信息素浓度。在大型网络中,由于节点需要大量内存来保存所有关于邻域的信息,这可能会成为一个问题。但是,这个算法能够被轻松地改变来达到节省内存的目的。如果一只蚂蚁要直接到sink节点,那么路由表只需保存位于sink方向的邻居节点(牙注:sink方向?这个怎么确定?),这大大减少了路由表的大小,从而减少了节点所需的内存。

如导言中所述,传感器节点是能量容量非常有限的设备。也就是说,我们在选择传感器节点到sink节点之间的路径的时候,不仅仅要考虑距离(路径的节点数量),还要考虑该条路径的能级(牙注:能量等级大概是说能量的档次问题吧)。例如,我们应当优选选择具有较高能级距离长的路径,放弃能级低距离短的路径。(牙注:这说明能量的吸引力>距离

考虑基本算法路径的能量质量,提出了一种新函数来确定返程蚂蚁在返程过程中下降的信息素浓度量:

Ek是由前进蚂蚁k携带的它前进路上节点能级的新矢量(牙注:这句话有毒,附原句:where Ek is a new vector carried by forward ant k with the energy levels of the nodes of its path,矢量是社么玩意儿?),C是节点的初始能级,Avg(Ek)是向量值的平均值,Min(Ek)是 向量的最小值。(牙注:回来补充,C(节点的初始能量)越高,变化越小;Avg(Ek)(向量值的平均值)越大,变化越大;最小值越大,变化越小,还是不明白,节点的能量本来很高不是很好的事情吗。。

3.3 无线传感网中的基于蚁群的能量有效路由

在本节中,我们提出进一步改进上一节中描述的路由算法的方法,以减少与蚂蚁相关的通信负载和通信所花费的能量。 我们还提出了更新信息素浓度的新函数。

已经证明,节点花费在通信(接收和发送数据)上的能量远大于数据处理和存储器管理上的能量。WSN的关注点之一是最大限度地延长网络的使用寿命,这意味着尽可能多地节省能量,所以我们优选的是路由算法可以在网络节点中执行尽可能多的处理而不是传输所有从蚂蚁到sink节点的数据。(牙注:这句话很懵。。。附上原句:it would be preferable that the routing algorithm could perform as much processing as possible in the network nodes, than transmitting all data through the ants to the sink-node to be processed there)。事实上,在巨大的传感器网络中,节点数目可以轻松到1000个以上,蚂蚁的存储数据将会非常庞大,所以通过网络发送节点是不可行的。(牙注:通过网络发送是不行的。。。那么通过什么发送是可以的?

为了实现这些想法,我们做出如下改进:每个蚂蚁的内存Mk减少到两个记录——最后两个访问的节点。由于蚂蚁爬过的路径没有保存在它的记忆之中,因此我们必须在节点之中创建一个记录,用来记录每只到达和出去的蚂蚁。每条记录都保存着之前的节点、接下来要去的节点、蚂蚁的标识以及超时值(牙注:这里的超时值很有意思,附上原句:a timeout value 懂后解释)。每当收到一只前向蚂蚁的时候,节点就查看存储器,看看有没有这只蚂蚁的标识,看看这只蚂蚁是不是已经爬过又爬回来了(牙注:这里的语言很白话,就是这么个意思)。如果没有找到这只蚂蚁的记录(牙注:这说明这只蚂蚁第一次经过这里),节点就保存所需的信息,重新启动定时器,把蚂蚁转发到下一个节点(牙注:转发方法应该还是那个概率的游戏),如果在节点存储器中发现了这只蚂蚁的记录,就把这只蚂蚁搞灭亡。当一个节点收到一只返程蚂蚁的时候,它会搜索它的存储器,找到这只蚂蚁的下一个去处。(牙注:要是蚂蚁太多,节点的存储器会不会也承受不了?定时器解决了这个问题)定时器用于删除标识返程蚂蚁的记录(牙注:这里莫明,附上原句: The timer is used to delete the record that identifies the backward ant,牙的理解:如果节点存储器中的每条记录都是有时间限制的,在时间到之前还没有等到相应的返程的蚂蚁,这条记录就消失了,解决了可能存在的存储量过大的问题。问题:是不是一条记录等到返程蚂蚁之后,这条记录也会被消除呢?我猜是的。。。

前向蚂蚁k已经没有矢量Ek了,它现在就带着到目前这个节点为止的平均能量(EAvgk)和最小能级(EMink)(牙注:这个是个什么东西,是谁的平均能量与最小能级)这些值被每个收到前向蚂蚁的节点更新。

当前向蚂蚁到达sink节点的时候,这些值用于计算对应的返程蚂蚁使用的信息素浓度。(牙注:下式用于计算差值,分析一下:最小能级越大,差值越大,平均能级越大,差值越小

通过这些改变,可以将蚂蚁的长度(牙注:数据包的长度)减小〜700%(牙注:减少700%也是很有意思的),并保存每个蚂蚁每一跳传输约250个字节(牙注:此句拗口,附上原句: save on each ant hop the transmission of ~250 bytes)。 这是一个重要的成就,因为它可以节省传感器节点上的宝贵能量。

因为有15个节点的路径可能与仅仅有5个节点的路径具有相同的平均能量值,所以如等式4那样,仅仅利用作为路径能级的函数ΔTk不能带来优化的路线。因此,ΔTk计算时必须有两个参数,能级和路径的长度。如等式5所示,可以引入Fdk来解决,Fdk代表的是前向蚂蚁已经访问的节点数量。

用于更新每个节点上的路由表的方程现在更改为:

其中φ是系数,Bdk是到达节点r的返程蚂蚁k的行进距离(被访问节点的数量)(牙注:这是说越靠近sink节点,加的信息素越多)。这两个参数将迫使蚂蚁在其到达源节点的途中松散部分信息素强度。 这种行为背后的想法是建立一个更好的信息素分布(靠近sinknode的节点将具有更多的信息素水平)(牙注:就是说越靠近目标越不能瞎出乱子),这样将强制偏远节点找到更好的路径。由于信息素适应(牙注:?名词翻译,附上原句:pheromone adaptation)非常快,所以这个行为在源节点能够移动的时候非常重要。

4 实验结果

在本节中,我们介绍了第3节中描述的三种算法所获得的实验结果:第3.1节中描述的基于蚂蚁的基本路由算法(BABR),第3.2节中介绍的改进的基于蚂蚁的路由算法(IABR) 以及第3.3节提出的节能蚂蚁基于路由算法(EEABR)。 使用众所周知的ns2模拟器[14],使用两射线地面反射模型(牙注:这个东西很高大上的样子。。。)对算法进行了测试。

为了更好地了解三种算法之间的差异,使用了三种不同的方案,每种方案都可以用来代表真实的WSN部署环境。在所有情况下,节点都以随机方式部署,因为在实际的传感器网络中,由于环境特性,设备部署通常不能由操作员控制。部署的传感器节点的数量在10~100个之间变化。在模拟面积方面也有所变化,为保证节点之间的连通性,按照如下规则选择模拟面积——200×200 m2(10节点),300×300 m2(20节点),400×400 m2(30节点),500×500 m2(40节点)和600×600 m2(50,60,70,80,90和100个节点)。对于每个环境,我们使用以下四个度量用于比较算法的性能:平均能量,其给出了在模拟结束时所有节点的平均能量值;最小能量,其给出所有节点的最低能量;标准偏差,其给出所有节点上的能级之间的平均差异;最后是能量效率,其给出了总消耗能量与接收节点接收的分组数之间的比率。(牙注:觉得这一段是干货,以后在选择分析参数的时候可以借鉴这里的四个度量

第一种情况模拟静态WSN,传感器节点随机部署,以监测静态现象。现象牙注:这个单词翻译无能,现象是什么鬼。。。之后附上全部原句)和接收节点的位置是未知的(牙注:原句:The location of the phenomenon and the sink-node are not known. )节点负责监视现象(牙注:orz....),并且将相关的传感器数据发送到接收节点。在这种情况下,现象(牙注:orz........)附近的节点在能源消耗方面将受到影响,因为它们将被迫周期性地传输数据。图1给出了所研究参数的仿真结果。 在大多数情况下(从10到100个节点),EEABR协议给出了最好的结果。 在图1b),当网络有30个节点时,两个协议(BABR和IABR)中的最小能量都呈现非常低的值,但是在EEABR协议中却不是这样的。这种情况在图1c)中也出现了——标准差显示出相同的特征。考虑到使用的拓扑图,这个又好解释了,因为从源到汇聚节点的通信路径很少(牙注:为什么好解释还没有很明白,明白再补)。

图1 传感器网络中静态环境下的协议性能比较(牙注:翻得很傻。。。。

结果如图1所示。 2对应于第二种情况,第二种情况是可移动的。 与先前情况的结果相比,现象移动性降低了算法的性能,这是可以理解和预期的,因为更多的节点成为数据包的来源(牙注:为什么可以移动会使更多的节点成为数据包的来源),增加了网络中的数据包数量。 与其他协议相比,EEABR协议再次表现出最好的结果,结果可以轻松地与所有环境变量都是静态的情况进行比较。

图2 传感器网络中动态环境下的协议性能比较

最后的研究是模拟网状传感器网络,这些网络由具有不同功能的几个节点组成。在每个网络上,使用三个能级:50,30和20焦耳。这些级别均匀分布在节点上。图3显示了仿真结果。与以前的研究相比,EEABR方案具有更好的最终结果。这可以通过协议的适应性来解释,该协议有效地尝试平衡所有节点上的能量级别。这个结论在图3.d)中更为明显。与其他算法相比,EEABR的标准偏差显着降低。在平均能量水平方面,EEABR呈现最佳效果。与IABR相比,平均值之间的差异在3%和10%之间变化,而与BABR相比,差异在17%和25%之间变化。在模拟结束时节点的最小能量方面,没有算法可以避免“死”节点的存在,但是BABR和IABR呈现出两个“死”节点,与EEABR协议仅提供一个。这种现象的产生式因为随机节点分布——其中只有两个节点负责在源节点和宿节点之间提供连接——因为该现象是静态的。(牙注:这句话翻译无能,理解无能,附原句:This is due to the random node distribution, where only two nodes were responsible to provide connectivity between the source and the sink-node, since the phenomenon was static.

图3 具有不同初始能级传感器网络下的协议性能分析

关于能源效率,结果在所有情况下非常相似。 EEABR和IABR呈现最好的结果且它们的值相近这是因为这两个协议都是能量感知型(牙注:能量感知型?新名词,打标记)的。然而,就其它参数而言,两种协议之间的差异变大,EEABR性能更好,因为它显着降低了通信中消耗的能量。BABR算法对于所有研究的参数呈现最差的结果,尽管在某些情况下,由于IABR在减少交换消息中的开销方面效率低下,它达到与IABR协议相同的值。

5.结论

在本文中,我们研究了蚁群优化元启发式在无线传感器网络中解决路由问题的应用。提出了基于蚁群算法的基本路由算法,并考虑并实现了针对无线传感网络特性(低能级、低处理能力、低存储容量)的几点改进。所得的路由协议(EnergyEfficient Ant Based Routing,EEABR)使用轻量级蚂蚁来查找传感器节点和宿节点之间的路由路径——这些路由路径在距离和能级方面进行了优化。这些特殊的蚂蚁可以最大限度地减少沟通负担,并最大限度地节省能源,有助于延长无线网络的使用寿命。实验结果表明,该算法在不同的WSN场景中有非常好的结果。

作为未来的工作,我们打算研究使用初始信息素水平填充路由表的初始化方法。 如文献[8]所示,这种机制可以进一步提高网络的效率。另一个待研究的方法是集成多个接收节点。

致谢以及文献引用部分不翻译了,原文如下:

ACKNOWLEDGMENTS

The work presented in this paper is partially financed by the Portuguese Foundationfor Science and Technology, FCT through the 6Mnet POSI/REDES/44089/2002 project.This work has been partly supported by the European Union under the E-Next FP6-506869 NoE.

References

1 Estrin, D., et al., “Embedded, Everywhere: A research Agenda for Network Systems of EmbeddedComputers”, National Research Council Report, 2001

2 Handy, M., Haase, M., Timmermann, D., “Low Energy Adaptive Clustering Hierarchy withDeterministic Cluster-Head Selection,” 4th IEEE International Conference on Mobile andWireless Communications Networks, Stockholm, 2002

3 Lindsey, S., Raghavendra, C., “PEGASIS: Power Efficient GAthering in Sensor InformationSystems”, ICC, 2001

[4] Lindsey, S., Raghavendra, C., Sivalingam, K., “Data Gathering in Sensor Networks usingthe EnergyDelay Metric”, 2000

5 Intanagonwiwat, C., Govindan, R., Estrin, D., “Directed Diffusion: a scalable and robustcommunication paradigm for sensor networks”, ACM Press, 2000

6 Jeon, P., Rao, R., Kesidis, G., Two-Priority Routing in Sensor MANETs Using Both Energyand Delay Metrics in preparation, 2004

7 Di Caro G., Dorigo M., "AntNet: Distributed Stigmergetic Control for CommunicationsNetworks", Journal of Artificial Intelligence Research (JAIR), Vol. 9, Pag. 317-365, 1998

8 Zhang, Y., Kuhn, L., Fromherz, M., „Improvements on Ant Routing for Sensor Networks”.In: Ants 2004, Int. Workshop on Ant Colony Optimization and Swarm Intelligence, Sept.2004

9 Singh, G., Das, S. Gosavi, S., Pujar, S., “Ant Colony Algorithms for Steiner Trees: An Applicationto Routing in Sensor Networks”, Recent Developments in Biologically InspiredComputing, Eds. L. N. de Castro, F. J. von Zuben, Idea Group Publishing, pp. 181-206,2004

10 Zuniga, M. Z.; Krishnamachari, B. "Integrating Future Large-Scale Wireless Sensor Networkswith the Internet" - Department of Electrical Engineering, UNiversity of SouthernCalifornia, 2002

11 Alonso, J., Dunkels, A., Voigt. T, „Bounds on the energy consumption of routings in wirelesssensor nodes” WiOpt'04: Modeling and Optimization in Mobile, Ad Hoc and WirelessNetworks, Cambridge, UK, March 2004

An Energy-Efficient Ant-Based Routing Algorithm for Wireless Sensor Networks (无线传感网中基于蚁群算法的能量有效路由)2相关推荐

  1. An Energy-Efficient Ant-Based Routing Algorithm for Wireless Sensor Networks (无线传感网中一种基于蚁群算法的能量有效路由)

    牙说:这篇论文是研究蚁群算法在能量有效路由协议的过程中必读的一篇文章,原是全英文,在这里按照自己的理解大致翻译成中文,好好学习,与君共勉. 论文题目:An Energy-Efficient Ant-B ...

  2. 蚁群算法(Ant Colony Algorithm, ACA)简介及其MATLAB实现

    目录 算法概述 ACA算法的数学原理 算法步骤 ACA算法特点 补充:启发式算法 旅行商问题(TSP) ACA的MATLAB实现 算法概述 模拟蚂蚁觅食行为设计的算法.讲蚂蚁群觅食的特点抽象出来转化成 ...

  3. 【控制】蚁群算法(ACO,Ant Colony Optimization)及 Matlab 实现

    文章目录 简介 实现思路 规则 特点 应用 仿真 Ref. 简介 蚁群算法是一种用来寻找优化路径的概率型算法.它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过 ...

  4. 蚁群算法(Ant Colony Optimization)

    蚁群算法(Ant Colony Optimization) 蚁群算法简介 蚁群算法(Ant Clony Optimization, ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Age ...

  5. 【其他】结构技术优化算法--蚁群算法(ant colony optimization)

    目录 1 遗传基因算法 2 模拟退火算法 2.1爬山算法 2.2随机概率优化 3 群体智能算法 3.1蚁群算法 3.2粒子群算法 4总结 1 遗传基因算法 遗传算法(Genetic Algorithm ...

  6. 蚁群算法(ant system,AS)

    蚁群算法   蚂蚁系统(ant system,AS)由Dorigo于1996年发表,文章题目为[<The Ant System : optimization by a colony of coo ...

  7. 路径算法:蚁群算法(ant colony optimization, ACO)

    一, 蚁群算法概述 自然界中有一个神奇的现象,即蚂蚁在没有提示的情况下总是能够找到从巢穴到食物的最短路径,这是为什么呢?原因就是蚂蚁在寻找食物时,能在其走过的路径上释放一种特殊的分泌物--信息素,随着 ...

  8. 蚁群算法(Ant System)(AS)

    蚁群算法(Ant System)(AS) 基本蚁群算法(AS)是采用人工蚂蚁的行走路线来表示待求解问题可行解的一种方法.没只蚂蚁在解空间中独立地搜索可行解,当它们碰到一个没有走过的路口时,就随机挑选一 ...

  9. Highly-Resilient, Energy-Effificient Multipath Routing in Wireless Sensor Networks阅读报告

    Ganesan D, Govindan R, Shenker S, et al. Highly-resilient, energy-efficient multipath routing in wir ...

最新文章

  1. 基于catalog 创建RMAN存储脚本
  2. 靶场环境vulhub的安装
  3. 大数据神器Kafka入门
  4. 广度优先搜索生成树怎么画_图的深度优先遍历与广度优先遍历以及最小生成树...
  5. OC如何跳到系统设置里的各种设置界面
  6. td之间的间距怎么改_论文的一级标题、二级标题格式怎么弄?
  7. 2020年前端面试之JS手写代码题合集
  8. 送给程序员们的经典电子书大礼包
  9. phpstorm常用功能快捷键(mac)
  10. 019 [工具软件]窗体置顶 DeskPins
  11. 2021一波精品网易云歌单,应该有你喜欢的
  12. MBR 与 GPT - 分区时要知道的事情
  13. ARM Aarch32 中 A32 和 T32 的汇编编程的例子(call return stack 结构相关的指令)
  14. python毕业设计作品基于django框架 景区购票系统毕设成品(4)开题报告
  15. JBPM工作流(二)——数据库表说明
  16. foxmail皮肤_七大改变!Foxmail 6.5新功能体验
  17. html不刷新页面更新js和图片
  18. 旅行商问题回溯法求解
  19. 速写为什么要把人画丑?骨骼肌肉比画的更像加分
  20. 薛斯通道的十二种买入法和四种卖出法

热门文章

  1. storm消息可靠机制(ack)的原理和使用
  2. shiro ajax权限拦截器,Shiro Ajax请求权限不满足,拦截后解决方案
  3. 服务器winsxs文件夹怎么清理工具,winsxs,教您winsxs文件夹清理方法
  4. bmp文件格式_一次性解决CAD转换成BMP格式图片的问题
  5. mysql socket 与IP区别_MySQL本地用IP登陆而非socket
  6. 64测试cpu稳定性_SuperPI-圆周率计算与CPU性能与稳定性测试
  7. qt多线程服务器_常见网络服务器并发模型
  8. java编程中的持有对方引用是什么意思?有什么作用?
  9. python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析
  10. java保存文件到linux指定目录_怎么使用java编程实现linux下全部文件目录的遍历