之前学习了遗传算法对单目标函数的最优值求解,对于多目标问题。或者说是多目标函数的求解问题,我想再研究一下。正好,我也想改进一下之前的代码架构。不得不说,之前的代码是面向过程的架构,完全没有体现出python面向对象的特点。于是在上篇里更新了面向对象的程序。

一.举个多目标函数的简单例子

这里我们举个二元函数的最大值优化例子:


根据之前所学,

第一步,编码。这里我们采用二进制对个体基因型编码,将个体表现型编码为十进制。如,基因型x=100001对应的表现型是{4,1}。

第二步,初始生成种群。本例中,随机生成4个个体组成一个种群。如下,{011101}{101011}{011100}{111001},其表现型为{3,5}{5,3}{3,4}{7,1}。

第三步,计算适应度。本例,直接用目标函数作为适应度函数。得到如下表格:


第四步,选择。适应度越高的个体,遗传到下一代的数量越多,这里采用轮盘赌方式。轮盘赌是典型的几何概率模型,其特点在于其选择概率与适应度大小成正比。在第三步中,计算了4个个体的适应度以及他所占总适应度值的比值将其组成一个概率区域,如下:


接下来,我们随机生成4个[0,1]之间的随机数,{0.15,0.35,0.89,0.75}。根据随机数的大小,来选择个体存活的数量。这里,有两个随机数落在了4#区间,分别有1个随机数落在了1#和2#区间。这样,我们就选出了下一代的个体。


第五步,交配。在这步中会个体间的基因互换,这里采取的是单点互换。首先,选择对群体进行随机配对,然后随机设置交换点的位置,最后互换基因。这里,我们将1-2,3-4,配对并且互换基因,如下:


第六步,变异。在这步中,我们随机选择一个个体,并且随机选择一个位置进行变异。将0变为1,或者将1变为0。

编号                                    基因型                            变异点                           变异结果


经过以上过程,我们得到了第二代,对其适应度计算如下:

此时,我们已经发现其解的适应度都得到了提升。实际上本轮已经得到了最佳的解{7,7}。

二. 复杂的多目标函数求解

以上我们的目标函数是不存在冲突的,但是有这样一种冲突的情况,两个目标函数一个要求最大,一个要求最小。某个目标函数的提高需要另一个函数降低作为代价,这样就出现了帕雷托解(pareto)。

我们使用遗传算法解决pareto解有以下几种方法:

1.权重系数转换法

对每个目标函数f(xi)(i=1,2,3,4...)赋予权重wi(i=1,2,3.....),wi为目标函数重要程度。则得到如下线性组合:

这里我们就将多目标转化为单目标函数,将u作为评价函数。

2.并列选择法

主要步骤:(1)将种群按照目标函数个数等分为子种群,为每个子种群分配一个目标函数。(2)将子种群中的个体按照各自的目标函数选择出适应度高的个体,然后将其组成一个子种群。(3)再将子种群进行交配,变异,生成下一代父亲种群。然后,再重复第一步。

并列选择法的缺点在于易于生成单个目标函数的极端最优解,而较难生成一种多个目标在某种程度上都比较满意的折衷解。


3.排序选择法

排序选择法的基本思想是:基于“pareto最优个体”的概念对群体中的个体进行排序,然后根据这个次序进行种群选择。这样的话就能够让pareto最优个体有更多的机会遗传到下一代。这种方法的缺点是仅仅度量了各个个体之间的优越次序,而并未度量各个个体的分散程度,所以容易生成相似的解,而不是分布较广的多个最优解

4.共享函数法

针对排序选择方法的缺点,即所求的几个最优解通常是集中于最优解集合的某一个小区域内,而不是分散在整个pareto最优解集合。由此,引出了基于共享函数的小生境技术。该算法对相同个体或类似个体是数目加以限制,以便能够产生出种类较多的不同的最优解。这就引出一个问题,怎么衡量两个个体之间的相似度?这就是小生境数。顾名思义,小生境就是在一个小环境中相似的个体种群。最常见的公式为:

s(d)为共享函数,是表示群体中两个个体之间密切关系程度的一个函数。d(X,Y)为个体X,Y之间的hanmin距离,也是用于衡量个体间相似度的一个函数。在计算出小生境数后,可以是小生境数较小的个体能够有更多的机会被选中,遗传到下一代群体中,即相似程度较小的个体能够有更多的机会被遗传到下一代群体中。

其缺点是:每次选择操作时都需要进行大量的个体之间的优越关系的评价和比价较运算,是算法搜索效率较低。

5.Horn和Nafploitis印的基于小生境pareto多目标遗传算法(NPGA)

类似于上面的并列选择法将每一代个体划分为若干类,每个类别选出若干适应度较大的个体作为一个类的优秀代表组成一个种群,然后交配变异产生新一代种群。基于这种小生境的遗传算法(Niched Genetic Algorithms,NGA),可以更好的保持解的多样性,同时具有很高的全局寻优能力和收敛速度,特别适合于复杂多峰函数的优化问题。

6.Srinvivas和Deb的非支配排序遗传算法NSGA

1980年提出的,在遗传算法的基础上对选择再生方法进行改进:将每个个体按照他们的支配与非支配关系进行再分层,再做选择操作,从而达到目的。这里有几个概念要介绍一下:

pareto支配关系



分层

我理解的分层意思就是取出种群中的非支配个体组成一个小种群(第一个非支配最优层),并赋予其中所有个体一个共享的虚拟适应度值。然后在取出个体后的种群中继续取出非支配个体,再将它们组成一个小种群(第二个非支配最优层),并赋予所有个体一个共享的虚拟适应度值。重复以上步骤,直到原始种群分配完毕,这就叫分层,也叫非支配型排序。伪代码如下:


上面说到,我们要指定共享适应度,算法根据适应度共享对虚拟适应度要重新指定。因而需要引出个体共享后的适应度值,以及共享函数和共享半径。具体的公式这里就不展开了,具体想了解可阅读参考文献3的25页。

因此可以发现,非支配型排序遗传算法有如下问题:

1.计算复杂度较高,O(MN**3)M为目标函数个数,N为种群大小。

2.没有精英策略。精英策略可以一定程度上加速算法执行程度,而且在一定程度上保证已经找到的满意解不会丢失。

3.需要指定共享半径。

针对以上问题有学者(k.Deb 2002)提出了用精英策略快速非支配的遗传算法来解决。

7.带精英策略的非支配排序遗传算法一NSGAII

1).采用快速非支配型排序,降低了算法复杂度。其复杂度降为了O(MN**2)。

2).提出了拥挤度和拥挤度比较算子,代替需要指定共享半径的适应度共享策略。并在快速排序后的同级比较中作为胜出标准。使准pareto解中的个体能扩展到整个pareto域中,并均匀分布,保持了种群的多样性。

3).引入精英策略,扩大采样空间。将父代种群和子代种群合并,保证优良个体能够留存下来。

其算法步骤如下:1.首先随机产生数量为n的初始种群,然后对其进行非支配型排序。接下来,就是常规的选择,交叉,变异操作产生第一代子代种群。2.然后,从第二代开始,将父代和子代合并。然后对其进行快速非支配型排序,同时计算每个非支配层的个体进行拥挤度的计算。然后根据非支配关系和拥挤度来选择合适的个体组成新的父代种群。最后通过再通过选择,交叉,变异产生子代。3.接下来,重复第二步。

这里有几个主要的关键技术需要解释一下:

1).快速非支配型排序


2).拥挤度

在原来的NSGA中,我们采用共享函数来确保多样性,但需要共享半径。为了解决这个问题,我们提出了拥挤度的概念:在种群种群中的给定点的周围个体密度,用id表示。它指出了在个体i周围包含个体i本身但不包含其他个体的最小的长方形。

拥挤度计算伪代码:



3).拥挤比较算子

经过快速非支配排序和拥挤度计算,种群中的每一个个体都得到了两个属性:非支配序rankn和拥挤度。利用这两个属性,我们可以区分种群中间任意两个个体间的支配和非支配关系。定义拥挤度比较算子,当且仅当irank>jrank或irank=jrank且id>jd,有个体i优于个体j。

4).精英选择策略

将父代优秀的个体与子代合并。

三.NSGAII的实现

算法流程


代码实现

#Importing required modules
import math
import random
import matplotlib.pyplot as plt#定义函数1
def function1(x):value = -x**2return value#定义函数2
def function2(x):value = -(x-2)**2return value#Function to find index of list
#查找列表指定元素的索引
def index_of(a,list):for i in range(0,len(list)):if list[i] == a:return ireturn -1#Function to sort by values
# 函数根据指定的值列表排序
'''list1=[1,2,3,4,5,6,7,8,9]value=[1,5,6,7]sort_list=[1,5,6,7]
'''
def sort_by_values(list1, values):sorted_list = []while(len(sorted_list)!=len(list1)):# 当结果长度不等于初始长度时,继续循环if index_of(min(values),values) in list1:# 标定值中最小值在目标列表中时sorted_list.append(index_of(min(values),values))#     将标定值的最小值的索引追加到结果列表后面values[index_of(min(values),values)] = math.inf#      将标定值的最小值置为无穷小,即删除原来的最小值,移向下一个#     infinitedreturn sorted_list#Function to carry out NSGA-II's fast non dominated sort
#函数执行NSGA-II的快速非支配排序,将所有的个体都分层
'''
郭军p21
1.np=0 sp=infinite
2.对所有个体进行非支配判断,若p支配q,则将q加入到sp中,并将q的层级提升一级。若q支配p,将p加入sq中,并将p的层级提升一级。
3.对种群当前分层序号k进行初始化,令k=1
4.找出种群中np=0的个体,将其从种群中移除,将其加入到分层集合fk中,该集合就是层级为0个体的集合。
5.判断fk是否为空,若不为空,将fk中所有的个体sp中对应的个体层级减去1,且k=k+1,跳到2;若为空,则表明得到了所有非支配集合,程序结束
'''
"""基于序列和拥挤距离,这里找到任意两个个体p,q"""
def fast_non_dominated_sort(values1, values2):S=[[] for i in range(0,len(values1))]# 种群中所有个体的sp进行初始化 这里的len(value1)=pop_sizefront = [[]]# 分层集合,二维列表中包含第n个层中,有那些个体n=[0 for i in range(0,len(values1))]rank = [0 for i in range(0, len(values1))]# 评级for p in range(0,len(values1)):S[p]=[]n[p]=0# 寻找第p个个体和其他个体的支配关系# 将第p个个体的sp和np初始化for q in range(0, len(values1)):#step2:p > q 即如果p支配q,则if (values1[p] > values1[q] and values2[p] > values2[q]) or (values1[p] >= values1[q] and values2[p] > values2[q]) or (values1[p] > values1[q] and values2[p] >= values2[q]):#支配判定条件:当且仅当,对于任取i属于{1,2},都有fi(p)>fi(q),符合支配.或者当且仅当对于任意i属于{1,2},有fi(p)>=fi(q),且至少存在一个j使得fj(p)>f(q)  符合弱支配if q not in S[p]:# 同时如果q不属于sp将其添加到sp中S[p].append(q)# 如果q支配pelif (values1[q] > values1[p] and values2[q] > values2[p]) or (values1[q] >= values1[p] and values2[q] > values2[p]) or (values1[q] > values1[p] and values2[q] >= values2[p]):# 则将np+1n[p] = n[p] + 1if n[p]==0:# 找出种群中np=0的个体rank[p] = 0# 将其从pt中移去if p not in front[0]:# 如果p不在第0层中# 将其追加到第0层中front[0].append(p)i = 0while(front[i] != []):# 如果分层集合为不为空,Q=[]for p in front[i]:for q in S[p]:n[q] =n[q] - 1# 则将fk中所有给对应的个体np-1if( n[q]==0):# 如果nq==0rank[q]=i+1if q not in Q:Q.append(q)i = i+1# 并且k+1front.append(Q)del front[len(front)-1]return front# 返回将所有个体分层后的结果#Function to calculate crowding distance
#计算拥挤距离的函数
'''
高媛p29
1.I[1]=I[l]=inf,I[i]=0 将边界的两个个体拥挤度设为无穷。
2.I=sort(I,m),基于目标函数m对种群排序
3.I[i]=I[i]+(Im[i+1]-Im[i-1])/(fmax-fmin)
'''
def crowding_distance(values1, values2, front):distance = [0 for i in range(0,len(front))]# 初始化个体间的拥挤距离sorted1 = sort_by_values(front, values1[:])sorted2 = sort_by_values(front, values2[:])# 基于目标函数1和目标函数2对已经划分好层级的种群排序distance[0] = 4444444444444444distance[len(front) - 1] = 4444444444444444for k in range(1,len(front)-1):distance[k] = distance[k]+ (values1[sorted1[k+1]] - values2[sorted1[k-1]])/(max(values1)-min(values1))for k in range(1,len(front)-1):distance[k] = distance[k]+ (values1[sorted2[k+1]] - values2[sorted2[k-1]])/(max(values2)-min(values2))return distance
#     返回拥挤距离#函数进行交叉
def crossover(a,b):r=random.random()if r>0.5:return mutation((a+b)/2)else:return mutation((a-b)/2)#函数进行变异操作
def mutation(solution):mutation_prob = random.random()if mutation_prob <1:solution = min_x+(max_x-min_x)*random.random()return solutionpop_size = 20
max_gen = 100
# 迭代次数
#Initialization
min_x=-55
max_x=55
solution=[min_x+(max_x-min_x)*random.random() for i in range(0,pop_size)]
# 随机生成变量
gen_no=0
while(gen_no<max_gen):function1_values = [function1(solution[i])for i in range(0,pop_size)]function2_values = [function2(solution[i])for i in range(0,pop_size)]# 生成两个函数值列表,构成一个种群non_dominated_sorted_solution = fast_non_dominated_sort(function1_values[:],function2_values[:])# 种群之间进行快速非支配性排序,得到非支配性排序集合print("The best front for Generation number ",gen_no, " is")for valuez in non_dominated_sorted_solution[0]:print(round(solution[valuez],3),end=" ")print("\n")crowding_distance_values=[]# 计算非支配集合中每个个体的拥挤度for i in range(0,len(non_dominated_sorted_solution)):crowding_distance_values.append(crowding_distance(function1_values[:],function2_values[:],non_dominated_sorted_solution[i][:]))solution2 = solution[:]#生成了子代while(len(solution2)!=2*pop_size):a1 = random.randint(0,pop_size-1)b1 = random.randint(0,pop_size-1)# 选择solution2.append(crossover(solution[a1],solution[b1]))#随机选择,将种群中的个体进行交配,得到子代种群2*pop_sizefunction1_values2 = [function1(solution2[i])for i in range(0,2*pop_size)]function2_values2 = [function2(solution2[i])for i in range(0,2*pop_size)]non_dominated_sorted_solution2 = fast_non_dominated_sort(function1_values2[:],function2_values2[:])# 将两个目标函数得到的两个种群值value,再进行排序 得到2*pop_size解crowding_distance_values2=[]for i in range(0,len(non_dominated_sorted_solution2)):crowding_distance_values2.append(crowding_distance(function1_values2[:],function2_values2[:],non_dominated_sorted_solution2[i][:]))# 计算子代的个体间的距离值new_solution= []for i in range(0,len(non_dominated_sorted_solution2)):non_dominated_sorted_solution2_1 = [index_of(non_dominated_sorted_solution2[i][j],non_dominated_sorted_solution2[i] ) for j in range(0,len(non_dominated_sorted_solution2[i]))]#排序front22 = sort_by_values(non_dominated_sorted_solution2_1[:], crowding_distance_values2[i][:])front = [non_dominated_sorted_solution2[i][front22[j]] for j in range(0,len(non_dominated_sorted_solution2[i]))]front.reverse()for value in front:new_solution.append(value)if(len(new_solution)==pop_size):breakif (len(new_solution) == pop_size):breaksolution = [solution2[i] for i in new_solution]gen_no = gen_no + 1#Lets plot the final front now
function1 = [i * -1 for i in function1_values]
function2 = [j * -1 for j in function2_values]
plt.xlabel('Function 1', fontsize=15)
plt.ylabel('Function 2', fontsize=15)
plt.scatter(function1, function2)
plt.show()

四.总结

相对于单目标函数求解,多目标函数求解明显难度提升了好几个数量级,其核心问题在于出现了pareto解。我们需要权衡各个目标函数之间的利弊,选择合适算法来求解。本篇通过引出一个简单的多目标函数例子,介绍了7种算法着重介绍了其中的NSGAII算法,其核心策略在于对快速非支配算法的设计,拥挤度的计算,拥挤度算子的设计,精英策略的设计。由于篇幅较长,里面几个的概念不容易理解,程序中也有一些技巧不易察觉。但是静下心来慢慢琢磨,还是挺有收获的。本人才疏学浅,如有纰漏,望诸位读者不吝赐教。祝好!


五.参考文献:

  1. 九二. 遗传算法学习--多目标优化中的遗传算法[DB/OL]. https://www.cnblogs.com/lomper/p/3831428.html
  2. variousme. 小生境遗传算法[EB/OL]. http://blog.sina.com.cn/s/blog_714e46f80100o1pp.html.
  3. 卢小亭. 多目标优化遗传算法选择方法的研究与改进[D]. 合肥:安徽理工大学, 2008. 20-25
  4. 高媛. 非支配排序遗传算法NSGA的研究与应用_[D]. 杭州:浙江大学, 2006. 20-24
  5. devilmaycry812839668. 带精英策略的快速非支配排序遗传算法 NSGA-II 算法[EB/OL]. https://www.cnblogs.com/devilmaycry812839668/p/6268408.html.
  6. 郭军. 带精英策略的非支配排序遗传算法优化研究[D]. 沈阳:辽宁大学, 2017. 21-25
  7. A, Konak, DW, Coit. Multi-objective optimization using genetic algorithms: A tutorial[J]. Reliability Engineering and System Safety, 2006, 91(9): 992-1007
  8. Duyuankai1992. 使用python做遗传算法与基于遗传算法的多目标算法[EB/OL]. https://blog.csdn.net/qq_37879432/article/details/80457054.
  9. Alex.遗传算法-python实现[EB/OL]. http://www.cnblogs.com/biaoyu/p/4865368.html
希望有志同道合的小伙伴关注我的公众平台,欢迎您的批评指正,共同交流进步。


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

相关文章

  1. Google:C++、Java、Scala、Go四种语言性能对比

    谷歌发布了一个研究报告,仔细比较了C + +、Java、Scala和谷歌自己拥有的Go编程语言的性能。 根据谷歌的测试报告(PDF格式),C+ +是四种语言中运行速度最快的。 但是该文件同时也指出,优化代码相对困难,这需要相当的努力、熟练的水准,不是平均水平的程序员所能达到。 Go旨…...

    2024/4/21 11:21:21
  2. ESP定理如何判断找出OEP 【OEP脱壳的5种方法】

    ESP定理如何判断找出OEP 【OEP脱壳的5种方法】OEPOEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP), 只要我们找到程序真正的OEP,就可以立刻脱壳。 PUSHAD (压栈) 代表程序的入口点POPAD (出栈) 代表程序的出口点,与PUSHAD相对应,一般找到这个OEP就在附近…...

    2024/4/21 11:21:21
  3. w3wp.exe进程cpu使用率高和内存占用多的问题

    今天,朋友的web服务器总出现CPU使用率特别高的问题,一般都在50%以上,高的时候达到100%,导致网站不能正常访问。打开任务管理器,发现竟然是w3wp.exe长时间占用大量CPU.出现这种情况应该是网站程序存在死循环等问题所致。在找到问题以前可以暂时采取限制w3wp进程CPU使用率的…...

    2024/4/21 11:21:20
  4. 手动脱壳教程

    一、什么是壳?壳是指在一个程序的外面再包裹上另一段代码,保护里面的代码不被非法修改或反编译的的程序。它们一般先于程序运行,拿到控制权,然后完成它们保护软件的任务。 二、壳的加载过程 1、保存程序入口参数加壳程序初始化时保存各个寄存器的值(用堆栈),外壳执行完毕…...

    2024/4/29 1:40:19
  5. Go Web开发基础

    1.Abstract 在学习web开发的过程中会遇到很多困难,因此写一篇类似综述类的文章。作为路线图,从web开发要素的index出发,来介绍golang开发的学习流程以及Example代码。在描述中多是使用代码来描述使用方法不会做过多的说明。最后可以方便地copy代码来实现自己的需求。 本文适…...

    2024/4/30 20:44:38
  6. 基于遗传算法和Kmeans的电影推荐算法

    本文参考文献:https://www.sciencedirect.com/science/article/pii/S1045926X140009011.基于用户的协同滤波算法在我的前一篇文章中我介绍了一种基于用户喜好和电影类型进行推荐的算法。这次我来介绍一种将遗传算法和Kmeans结合的电影推荐算法。我们知道基于用户的协同滤波算法…...

    2024/4/20 17:09:14
  7. 关于网站w3wp.exe占用CPU过高的解决办法……

    进程文件: W3wp 或者 W3wp.exe 进程名称: IIS Application Pool ProcessW3Wp.exe是IIS工具的一部分。w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。这个进程用来分配大量的系统资源。这…...

    2024/4/20 17:09:13
  8. 简单脱壳教程笔记(4)---手脱ASPACK壳

    本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记。ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A3%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B/ximo%e8%84%b1%e5%a3%b3%e5%9f%ba%e7%a1%80.7z本笔记用到…...

    2024/4/20 17:09:21
  9. [rust整理笔记]一门比较有前景的编程语言--rust

    Rust是mozilla推出的一款系统级的编程语言,其两大特点在于零开销抽象和安全性。 rust特点 类似于C++,Rust的定位是一款系统级语言,它所有特点: 1.零开销抽象 2.没有gc 3.内存模型没有高度封装 4.语法干净正交,没有C++那么繁琐。 5.安全性。Rust语法引入所有权和生命期概念…...

    2024/4/20 17:09:20
  10. 病毒加壳技术与脱壳杀毒方法解析

    壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚。当你想听说脱壳这个名词并试着去了解的时候,说明你已经在各个安全站点很有了一段日子了。下面,我们进入“壳”的世界吧。一、金蝉脱壳的故事   我先想讲个故事吧。那就是金蝉脱壳…...

    2024/5/7 13:57:25
  11. 在线编程语言模拟(Java,C,Python,R语言,Ruby,PHP,Perl,Go等)

    这里给大家介绍一个可以模拟多种语言的网站,详细请参考下图。网址:http://www.shucunwang.com/RunCode/java/...

    2024/4/20 12:31:24
  12. html xmlns="http://www.w3.org/1999/xhtml"

    xmlns 是用来定义xml namespace属性的。 xmlns 属性在 XHTML 中是必需的。不过即使你的 XHTML 文档没有使用此属性,W3C 的验证器也不会报错。因为 "xmlns=http://www.w3.org/1999/xhtml" 是一个固定值,所以,即使你没有包含它,此值也会被添加到 <html> 标签…...

    2024/4/21 11:21:18
  13. 【转载】最全的脱壳,反编译_,汇编工具集合

    向原作者致敬! ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 本文由nbdsb123456贡献 最全的脱壳,反编译 ,汇编工具集合 破解工…...

    2024/4/21 11:21:18
  14. Go编程之接口作结构体属性

    最近在看Ethereum源码,发现在它的BlockChain结构体里面有属性直接是接口,它有个set函数,用于设置接口的,传的值为实现这个接口的一个结构体。下面自己试着写了一个小demo:package mainimport ("fmt" )type A interface {NameGet() string }type B struct {i inta…...

    2024/4/26 16:52:17
  15. html xmlns="http://www.w3.org/1999/xhtm的解释

    做WEB页面的人经常会碰到形如html xmlns="http://www.w3.org/1999/xhtml"这样的代码,那后面的xmlns是表示什么意思呢? 官方概念:xmlns是xml namespace的缩写,也就是XML命名空间,xmlns属性可以在文档中定义一个或多个可供选择的命名空间。该属性可以放置在文档内…...

    2024/5/7 0:22:08
  16. 2017年编程语言排名

    https://spectrum.ieee.org发布了2017年编程语言排名,这个榜单是对数十种流行的编程语言进行排名。请参考: https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017 可以对排名规则进行选择 可选择的权重分别为:IEEE SpectrumOur all-round r…...

    2024/4/21 11:21:14
  17. W3af---命令行模式实验详解(一)

    实验环境: Kali:192.168.128.128 Metasploitable:192.168.128.129安装W3af:kali2.0简介及安装w3af文档 w3af用户接口: console命令行接口 Gui图形界面化接口 API让我们边敲命令边学习w3afroot@kali:~/w3af-master# ./w3af_console w3af>>> w3af>>> help …...

    2024/5/3 16:11:31
  18. Go语言学习环境搭建

    简介Go编程语言是一个使得程序员更加有效率的开源项目。Go是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。Go编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类…...

    2024/4/25 19:01:18
  19. 手工脱壳之FSG压缩壳-IAT表修复

    目录一、工具及壳介绍二、脱壳2.1、单步跟踪脱壳2.2、IAT修复三、程序脱壳后运行截图四、个人总结五、附件一、工具及壳介绍 使用工具:Ollydbg、PEID、ImportREC、LoadPE FSG壳 2.0:二、脱壳 2.1、单步跟踪脱壳 因为FSG是压缩壳,所以脱壳最应该尝试的是ESP定律,其次就是单步…...

    2024/4/21 11:21:11
  20. kali linux 2018.1版下安装w3af 【超详细】

    参考: https://github.com/andresriancho/w3af/issues/15523 http://blog.csdn.net/ycl146/article/details/750415271 1、更新软件包sudo apt-get install update2、进入安装目录cd /usr/local/src3、下载w3afgit clone https://github.com/andresriancho/w3af.git4、更新完后…...

    2024/5/5 13:37:09

最新文章

  1. python 项目如何生成 requirements.txt文件

    在Python项目中生成requirements.txt文件是一个很好的实践&#xff0c;它可以帮助记录项目依赖&#xff0c;便于他人复现环境或部署应用。以下是几种常见的生成方法&#xff1a; 使用pip 安装所有依赖: 确保你的项目环境中已经安装了所有需要的包。 生成requirements.txt: 在…...

    2024/5/7 16:59:55
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. linux进阶篇:磁盘管理(一):LVM逻辑卷基本概念及LVM的工作原理

    Linux磁盘管理(一)&#xff1a;LVM逻辑卷基本概念及LVM的工作原理 一、传统的磁盘管理 在传统的磁盘管理方案中&#xff0c;如果我们的磁盘容量不够了&#xff0c;那这个时候应该要加一块硬盘&#xff0c;但是新增加的硬盘是作为独立的文件系统存在的&#xff0c;原有的文件系…...

    2024/5/7 14:21:10
  4. 深度学习500问——Chapter05: 卷积神经网络(CNN)(2)

    文章目录 5.6 有哪些池化方法 5.7 1x1卷积作用 5.8 卷积层和池化层有什么区别 5.9 卷积核是否一定越大越好 5.10 每层卷积是否只能用一种尺寸的卷积核 5.11 怎样才能减少卷积层参数量 5.12 在进行卷积操作时&#xff0c;必须同时考虑通道和区域吗 5.13 采用宽卷积的好处有什么 …...

    2024/5/6 10:30:46
  5. 蓝桥杯第十三届电子类单片机组决赛程序设计

    前言 一、决赛题目 1.比赛题目 2.题目解读 二、功能实现 1.关于定时器资源 1&#xff09;超声波和NE555需要的定时器资源 2&#xff09;定时器2 2.单位切换 3.数据长度不足时&#xff0c;高位熄灭 4.AD/DA多通道的处理 5.PWM输出 6.长按功能的实现 三、完整代码演…...

    2024/5/5 7:02:26
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/7 5:50:09
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57