采用分段编码模式的混合进化算法的多目标多维优化调度方法

文献翻译笔记-参考文献来源

[1]XU W, GUO S. A Multi-Objective and Multi-Dimensional Optimization Scheduling Method Using a Hybrid Evolutionary Algorithms with a Sectional Encoding Mode[J/OL]. Sustainability, 2019, 11(5): 1329. DOI:10.3390/su11051329.

摘要:

针对柔性制造系统( FMS )中自动导引车( AGV )的绿色调度问题,在考虑机器能耗和多功能机器的基础上,定义了多目标多维优化调度过程。该过程是一个复杂的组合过程,考虑到这一特点,建立了数学模型并与进化算法集成,包括分段编码遗传算法( SE-GA )、分段编码离散粒子群算法( SE-DPSO )和混合分段编码遗传算法和离散粒子群算法( H-SE-GA-DPSO)。在该模型中,针对不同的优化维度,以最小化机器的最大完工时间、能量消耗和AGV数量为目标,将算法的编码分为3段。

分段编码分别描述相关作业的作业顺序、搬运任务与AGV的匹配关系( AGV -任务)、作业与机器的匹配关系(作业-机器),进行多维优化调度。通过典型实验验证了所提3种EA的有效性。此外,在实验中对SE - GA、SE - DPSO、H - SE - GA - DPSO、混合遗传算法和粒子群算法( H - GA - PSO算法)以及禁忌搜索算法( TSA )进行了比较。在H - GA - PSO和TSA中,前者只考虑作业顺序,后者同时考虑作业顺序和AGV任务。根据对比结果,证明了H - SE - GA - DPSO相对于其他算法的优越性。

1引言

随着制造业的发展和竞争市场的变化,满足客户多样化需求和提高服务质量成为制造企业战略转移的主要方向,柔性制造系统( FMS )成为满足这些需求的有效途径。与此同时,智能制造已成为制造业发展的一大趋势[ 1-3 ]。在此背景下,FMS为智能制造车间提供了极大的柔性,在智能制造中发挥着越来越重要的作用,尤其是在一台或多台大型设备上满足各种零件的并发生产。FMS由物料搬运设备( (自动导引( AGVs ))和机器人)、工作站、自动化存储系统等组成。AGV是一种自动运输工具,它可以通过不同的导引方式和系统沿着规划的路线进行导航[ 4 ]。它被广泛应用于现代生产系统中物料的传递,提高生产效率[ 5-7 ];所有的AGV都可以使用中央计算机控制系统进行统一调度,这样所有的车间作业都可以通过AGV系统进行控制。

AGV调度是FMS中的一个重要问题,它在很大程度上影响着生产效率、配送成本和服务质量;它也决定了整个生产系统的效率[ 8 ]。在现有的大多数研究中,相关作业的作业顺序以及转运任务与AGV的匹配关系( AGV- task )是优化AGV调度问题的主要方式;它们是两个相互关联的维度,在AGV调度中是重要且有效的[ 9 ]。Deroussi等提出了一种同时调度AGV运行和分配顺序的求解方法[ 10 ]。拉科姆等人引入了基于析取图的框架来建模机器和AGV的联合调度问题[ 11 ]。Baruwa等提出了一种基于时间有色Petri网的机器和AGV同时调度方法[ 12 ]。除此之外,车间中也有一些实际情况被研究者在研究中考虑,如AGV的电池充电、运行成本、运行时间等[ 13-16 ]。Cai等人开发了生产任务混合区域控制模型,解决了多AGV系统的任务调度和协调控制问题[ 17 ]。Novas等人提出了一种新的方法,考虑了资源约束、设备的加载和空移动[ 18 ]。Mchaney提出了几种方法,可以用来考虑各种电池使用方案对AGV仿真的影响[ 19 ]。Kabir等研究了如何改变AGV的电池充电时间,以增加制造系统的灵活性和制造能力[ 20 ]。Yan等通过考虑这些车辆的健康管理及其最优任务配置,研究了评估AGV可靠性问题的能力[ 21 ]。虽然通过建立不同的模型对AGV调度进行了大量的研究,但AGV调度的进一步优化还需要考虑其他一些条件。在FMS中,很多机器具有通用性;这意味着一台机器可以处理多个操作,并且对于不同的操作具有不同的处理能力。因此,通过优化AGV调度来优化制造过程中的机器选择是有用的。制造资源组合优化( MRCO ) [ 22-25 ]已经有很多学者研究了类似的问题,为AGV在FMS中的机器选型优化提供了重要参考。

在FMS中AGV调度的优化目标方面,早期的研究主要集中在最小化所有相关作业的完工时间,并在提高生产率和资源利用率[ 8、15、16]上得到了有效的应用。有时,makespan以所有AGV的行驶距离的形式呈现[ 26 ]。Carid á等提出了一种基于模糊系统的FMS中AGV调度方法,以最小化最大完工时间为目标[ 27 ]。Chang等提出了一种混合遗传算法( Hybrid Genetic Algorithm,HGA )来改进分布式FMS调度问题的makespan解[ 28 ]。Achmad等在FMS中提出了一种非支配排序生物地理学优化( NSBBO )调度方法,以最小化最大完工时间问题和总提前期为目标[ 29 ]。然而,AGV作为FMS中最重要的部件之一,其数量的多少严重影响了FMS的盈利能力,提高AGV的利用率对于优化FMS的性能至关重要[ 30-32 ]。为满足FMS中AGV更好地优化调度的需求,开展了一些研究。穆萨维等人提出了AGV的优化调度模型,其目标是在考虑AGV电池充电的情况下最小化最大完工时间和AGV数量;在模型[ 15、16]中还开发了两种优化算法。Vivaldini等人提出了一种在特定时间窗口内执行给定运输订单所需最少AGV数量的估计方法[ 33 ]。随着绿色制造的发展,考虑机器能耗的绿色车间研究也越来越多,这也是可持续发展的重要组成部分[ 34-36 ]。因此,在FMS中,为了降低成本、优化制造质量,机器的能耗应该是AGV调度的目标之一,而很少有人考虑到这一点。


综上所述,尽管对FMS中的AGV调度问题进行了大量有效的研究,但仍有价值和需要进一步研究的两个问题:

  1. ( 1 )考虑更多的机器能耗等目标,综合优化制造过程,使FMS获益,对企业具有重要价值。

  1. ( 2 )在FMS中,优化作业顺序和转运任务与AGV的匹配关系只是提高生产系统性能的两个维度,但是,众所周知,许多机器具有多种工序能力,优化机器选型是提高FMS资源利用率和生产效率的重要环节。

为了解决上述问题,本研究在考虑机器能耗和多功能的情况下,建立了多目标和多维度的优化调度数学模型。在该模型中,多目标是最小化机器的最大完工时间和能量消耗以及AGV的数量;多维目标是针对多目标同时优化相关作业的作业顺序、转运任务与AGV的匹配关系( AGV -任务)和作业与机器的匹配关系(作业-机器)。为解决这类问题,进化算法是[ 9、37 ~ 39]的常用方法。调度背景下的一些独特研究也可以为带有AGV的FMS提供一些新的思路[ 40-42 ]。如前所述,本研究将采用三种进化算法(分段编码遗传算法( SE-GA ))、分段编码离散粒子群算法( SE-DPSO )和混合分段编码遗传算法和离散粒子群算法( H-SE-GA-DPSO)对提出的模型进行三维优化,并进行相应的实验和比较。此外,混合遗传算法、粒子群优化算法( H - GA - PSO算法)和禁忌搜索算法( TSA )也被用于比较;前者只考虑了操作的先后顺序,文献[ 15 ]提出;后者同时考虑了操作顺序和AGV任务,文献[ 9 ]提出。

本文其余部分安排如下。模型、问题描述和假设详见第2节。算法设计详见第3节。为了验证本文算法的有效性,在第4节进行了实验和讨论。特别地,将SE - GA、SE - DPSO、H - SE - GA - DPSO、H - GA - PSO和TSA的结果进行对比,证明了H - SE - GA - DPSO的优越性。最后,第5节给出了本文的结论,并进一步指明了研究方向。

2问题描述和数学模型

本文在现有FMS中AGV多目标优化调度问题的基础上,提出了AGV多目标多维调度模型,如图1所示。假设有若干个作业分配给一个FMS,可描述为一组作业{ J1,J2,..,Jn }。每个作业包含若干操作。例如,Ji由操作序列{ Oi ( 1 ),Oi ( 2 ),..,Oi ( mi ) }组成。选择该FMS中的一些相关机器{ M1,M2,..,Ms },用有限的AGV { A1,A2,..,At }来执行这些操作,并且每个AGV都能满足一个或多个操作{ Oa ( b ),Oc ( d ),..,Oe ( f ) }。相同的操作可以由不同能耗的机器执行。因此,Oi ( j )对应的候选机器标记为{ Mx,My,..,Mz }。在该模型中,每个候选机器上执行的每个操作的运行时间和能耗、每个机器单位时间的待机能耗、所有机器之间的物流时间都是预先已知的。模型中的假设如下:

  1. 所有AGV都具有单位负载能力。

  1. 在任何AGV上都没有电池充电问题。

  1. AGV和机器连续运行没有故障。

  1. 没有交通问题,碰撞,死锁。

  1. AGV装卸时间是固定的,被认为是旅行时间。·

  1. AGV总是可以停放在他们的卸载位置。

  1. AGV的速度是恒定的。

  1. 每个作业的起始点( SP )在AGV的主位置( H )。

  1. 机器到机器的距离和起点(SP)到机器的距离是已知的。

  1. 每个机器一次只操作一个产品。·安装时间包含在生产的时间内。

见图1。模型中考虑多个优化维度的多目标优化调度问题示意图。

为制定问题的数学模型,相关参数和变量汇总于本文附录A。

数学模型

数学模型中考虑了最大完工时间、能耗和AGV数量3个目标。它可以表述如下。

最小化最大完工时间。最大完工时间( Makespan,MS )的数学表达式可以表示为:

这里,式( 1 )定义了MS的计算方法,可以用指派给每台机器的作业最大完成时间(即max { MFTk })、指派给每台AGV的行驶任务最大完成时间(即max { AFTl + T ( k , Nk )) } )、指派给每台作业的作业最大完成时间(即max { ot ( i) } )或指派给每台作业的行驶任务最大完成时间(即max { tt ( i) + ot( i , mi) } )来表示。式( 2 )和式( 6 )定义了相关值的计算方法,它们决定了max { MFTk }的结果。式( 3 )和式( 7 )定义了相关值的计算方法,决定了max { AFTl + T( k , Nk) }的计算结果。式( 4 )、( 8 )和( 10 )定义了相关值的计算方法,决定了max { ot ( i ) }的结果。式( 5 )、式( 9 )和式( 11 )定义了相关值的计算方法,决定了max { tt ( i ) + ot( i , mi) }的结果。

约束数( 12 )通过满足DT的需求来保证完工时间的可行性。约束数( 13 )和( 14 )定义了方程( 1 ) - ( 5 )中mi,Nk和Nl的数值关系。

最小化能源消耗。能耗的数学表达式可以表示为:

在这里,式( 15 )通过完成所有作业来定义所有机器的ES。式( 16 )和式( 17 )定义了构成ES的esw和ese的计算方法。式( 16 )中,otw( i , j) × wesu ( k )表示选择Mk执行作业编号i的作业编号j。

最小化AGV的数量。AGV数量用NA表示。一般来说,更多的AGV意味着更小的完工时间,同时也意味着成本的增加。因此,尽量减少AGV数量对优化FMS的性能具有重要意义。

多目标评价。当有几个目标需要考虑时,通常通过考虑一个综合结果来做出决策。Pareto为我们解决多目标优化问题提供了一种有效的方法。在该方法中,24个Pareto前沿中的Pareto最优集和Pareto前沿分别指一组最佳折衷方案和一组Pareto解[ 15 ]。3个目标的整体适应度函数表达式为:

Φ 1、φ 2、φ 3分别为3个目标的权重,由式( 19 )约束,式( 18 )中的f1 ( x )、f2 ( x )、f3 ( x )分别对应3个目标的适应度函数。因此,整体适应度函数为:

式( 18 )中的Ψ 1和ψ 2是不同取值范围的目标之间达到平衡的比例[ 41 ]。为了便于计算和分析,考虑ES和NA的主要部分,分别定义为:

式( 18 )中的Ψ 1和ψ 2是不同取值范围的目标之间达到平衡的比例[ 41 ]。为了便于计算和分析,考虑ES和NA的主要部分,分别定义为:

式( 21 )中的表达式max ( ese )为完成所有作业的最大能耗。

3算法设计

遗传算法( GA )和粒子群算法( PSO )是求解AGV调度问题最典型的进化算法。GA是一种基于自然选择过程机理的搜索算法。它具有同时评价搜索区域内多个点的能力,增加了找到问题全局解的概率[ 15 ]。此外,遗传算法的编码方式非常灵活[ 43-46 ],可以使用合适的编码格式来解决不同类型的问题。PSO是受鸟类群集的社会行为启发而提出的一种种群EA;该类算法利用种群智慧进行协同搜索,从而在解空间中寻找最优结果。与其他算法相比,它具有更强的鲁棒性,因为它可以处理有限的信息,如每个粒子的适应度评估[ 47 ]。PSO的编码方式可以同时满足连续变量值和离散变量值,因此可以同时用于极值逼近和MRCO问题[ 48、49]的求解。为了提高算法的性能,混合进化算法也得到了大量的研究,通过综合各算法的补偿特性的优点来获得更好的结果[ 50-52 ]。

在此基础上,发展了一种混合分段编码遗传算法和离散粒子群算法( H-SE-GA-DPSO)来满足本文提出的模型。它是一种混合算法,兼有遗传算法和粒子群算法的特点。该算法将染色体编码和粒子编码均分为3段进行多维优化调度。相应地,提出了分段编码遗传算法( SE-GA )、分段编码离散粒子群算法( SE-DPSO )、混合遗传算法和粒子群算法( H - GA - PSO算法)以及禁忌搜索算法( TSA ),并与H - SE - GA - DPSO进行了比较。在这里,H - GA - PSO已被证明是一种更有效的优化操作序列的算法[ 15 ]。此外,作为两个相关的维度,TSA [ 9 ]在研究中同时考虑了操作顺序和AGV任务,以进一步优化。SE - GA和SE - DPSO的相关步骤和配置分别如3.1节和3.2节所示。图2给出了H - SE - GA - DPSO算法的流程图,在3.1节和3.2节详细阐述。

见图2。混合分段编码遗传算法和离散粒子群算法( H-SE-GA-DPSO)的主要流程和方法。

3.1分段编码遗传算法

分段编码遗传算法( SE-GA )是本文提出的H - SE - GA - DPSO的主要算法;也可以独立提供优化方案。它的基础是GA;不同之处在于将染色体编码分为三段进行多维优化调度。因此,其主要步骤与GA类似,可描述如

步骤1。初始化参数。

包括交叉率( CR )、变异率( MR )、种群规模( PS )、染色体长度( LC )、最大迭代次数( NCmax )等相关基础数据的设置。表1展示了本研究所提出模型的数据结构。' SgSo '的' Gene code ( g ) '列、' SgOm '的' Gene code ( g ) '列和' SgAt '的' Gene code ( g ) '列分别表示染色体( Cr )的操作序列片段( SgSo )、操作机器片段( SgOm )、AGV任务片段( SgAt )的代码,后文将进行讨论。

步骤2。初始化种群。这一步将生成一组染色体。

染色体编码。本文采用的编码是根据问题的需要进行实数编码。如表1 " SgSo "的" Gene code ( g ) "列所示,每个基因代码定义了一个与作业相关的操作。基因的顺序代表操作的优先级,从左到右依次递减。在' SgOm '的' Gene code ( g ) '列中,每个基因代码定义一个机器来执行操作。与Sg So不同,它的顺序是按照原来的操作顺序固定的。在" Sg At "的" Gene code ( g ) "列中,每个基因代码定义一个AGV执行一个行驶任务。其顺序与SgOm相同。

染色体编码以3个作业( J1、J2、J3)为例进行说明,每个作业分别有2次、2次和3次操作,Cr为的随机构造

这里,在部分Sg So中,代码' 1 '、' 2 '、' 3 '分别表示J1、J2、J3的操作,从左边开始,第一个' 1 '表示J1的第一次操作,第二个' 1 '表示J1的第二次操作,第一个' 2 '表示J2的第一次操作,依此类推。在部分SgOm中,从左边开始,第一个' 2 '表示J1的第一个操作,由机器编号2执行。第一个" 1 "表示J1的第二个操作,由编号1的机器执行。第一个" 4 "表示J2的第1次操作,由编号4的机器执行,以此类推。在部分Sg At中,从左边开始,第一个" 1 "表示J1第1次作业的行走任务由编号1的AGV执行。第2个" 3 "是指J1第2次作业的行走任务由编号3的AGV等执行。

步骤3。适应度评价。

根据式( 1 ) ~式( 17 ),用完工时间、能耗和AGV数量来评价每条染色体。此外,根据式( 20 ) ~ ( 22 )计算总适应度值。

步骤4。产生新的种群。通过选择、交叉和变异操作产生新的种群。

选择。本研究中选择算子采用轮盘赌法,该方法是一种概率随机选择方法。

交叉。采用了单点交叉和基于部分字符串交换的两点交叉,其中两点交叉基于步骤2中的例子如图3a,b所示。交叉产生的子代可能是非法编码(因为每件工件的工序数不同,交叉后可能出现某个工件的工序数增多)。例如,作业运行的未修正代码可以在部分Sg So中看到。因此,需要对这些非法的Sg So码进行修复,如图3所示。

本研究采用单点变异算子,如图4所示。如果突变点属于Sg So,则突变产生的后代可能是非法编码,应进行修复。

步骤5。终止。当迭代次数达到最大时,选择最优个体作为算法的结果


3.2分段编码离散粒子群优化算法

步骤1。初始化参数。

其主要内容是对SE - DPSO算法中的参数进行设置,包括种群数量( NS )、学习因子1 ( LF1 )、学习因子2 ( LF2 )、粒子维数( DP )、最大迭代次数( NC _ Pmax )、惯性权重( ω )、相关基础数据等。编码描述方法在表1的SE - DPSO部分给出。第2列表示粒子SgSo的维数( Pr ),第'维码( dc ) '列、第' Sg Om '列、第' Sg At '列分别表示粒子Pr的Sg So、Sg Om、Sg At的维码,后文将讨论。

步骤2。初始化粒子群。

在这一步中创建了一组初始种群。粒子的初始位置( p )和初始速度( v )由:

这里,α,β分别为粒子的索引和粒子中某维的索引。

步骤3。粒子编码。

考虑到模型中粒子尺寸编码的离散性,采用最小位置值( SPV )规则和离散区间( DI )规则将粒子位置转移到尺寸编码集合中。SE - DPSO中的代码表示与SE - GA中的代码相同。编码一个粒子的两个子步骤如下:

  1. 应用Spv和Di规则。利用SPV规则将PSO中的连续码转化为适用于所有类型调度问题的离散码[ 15 ],DI规则也是如此。Sg So采用SPV规则,粒子的Sg Om和Sg At采用DI规则。

  1. 定义作业顺序、作业-机器和AGV -任务关系。一个包含两个工件、三台机器和六台可用AGV的实例如表2所示;这两项工作都包括三项操作。本算例中粒子的假设位置如表2第1、6、8行所示。粒子中Sg So、Sg Om、Sg At维码的定义方法分别说明如下。

如表2第1、2行所示,粒子中Sg So的连续编码为( 0.21、0.32、0.43、0.18、0.66、0.89)。根据SPV规则,对应的离散码应为( 2、3、4、1、5、6)。按照从小到大的顺序,0.18为最小值,其离散编码应为1;0.89为最大值,其离散编码应为6等。表2第3行显示了粒子中SgSo的作业代码;表2第2行中离散代码最小的3个数字被分配给第1个作业,因此作业代码应为1。最大的三个数字分配给第二个作业,因此作业代码应该为2。

如表2第5、7行所示,Sg Om在粒子中的位置为SgOm _ P = ( 0.1、0.3、0.7、0.2、0.3、0.7)。根据DI规则,对应的离散码应为SgOm _ C = ( 1 , 2 , 3 , 2 , 2 , 2)。如表2的第6行和第8行所示,O1 ( 1 )可以由M1、M2和M3执行。因此,如果Sgom _ P ( 1 )在0到0.33之间,那么Sgom _ C ( 1 )应该是1;若Sgom _ P ( 1 )在0.34 ~ 0.66之间,则Sgom _ C ( 1 )应为2,以此类推。算例中Sgom _ P ( 1 )为0.1,介于0 ~ 0.33之间,故Sgom _ C ( 1 )应为1。O1 ( 2 )可以被M2和M3执行。因此,如果Sgom _ P ( 2 )在0到0.50之间,则Sgom _ C ( 2 )应该为2,否则Sgom _ C ( 2 )应该为3。算例中Sgom _ P ( 2 )为0.3,介于0 ~ 0.50之间,故Sgom _ C ( 2 )应为2。O1 ( 3 )只能被M2执行,所以SgOm _ C ( 3 )应该是2。

如表2第9、10行所示,Sg At在粒子中的位置为( 0.93、0.21、0.49、0.37、0.86、0.18),根据DI规则,对应的离散代码为( 6 2 3 3 6 2)。其中,可用AGV数量为6,取值0.93,介于5 / 6和6 / 6之间。因此,对应的编码应为6;0.21的值在1 / 6到2 / 6之间,因此对应的编码应该是2,以此类推。

步骤4。适应度评价。

每个粒子通过式( 1 ) ~ ( 17 )的最大完工时间、总能耗和AGV数量进行评价。此外,根据式( 20 ) ~ ( 22 )计算总适应度值。

步骤5。新粒子群。

更新粒子的位置和速度,生成新的种群。重复步骤3、4、5,直到达到终止标准。每个粒子的速度更新为:

步骤6。终止。当迭代次数达到最大值时终止迭代,返回gbest作为最优解。

4仿真实验与讨论

4.1原始数据

为证明所提模型的有效性,本文采用了数值实验。本实验包括8个作业( J1 , ... , J8)和10台机器( M1 , ... , M10),每个作业有3 - 5个操作。在实验中,多达6台AGV可用。表3显示了操作与机器之间的关联数据。表4为AGV在H个点与机器之间的行程时间。

因此,max ( ese )的值为94.25。图5给出了以6台AGV为实验对象的随机执行序列和行驶序列优化前的甘特图,其中Ai表示AGV i。每次作业左边最近的一条表示AGV将作业从前次作业运输到该次作业的时间,其中第1条和第2条分别表示空载和负载时AGV的运行时间。适应度、AGV数量、完工时间和能耗的值分别为6、420.67、433和134.51。这只是本实验的一个可用的随机方案,6台AGV全部被应用;很难被选为高质量的解决方案。为了优化本实验在FMS中的解决方案,本文提出的EAs在下一节进行了应用和验证。

4.2算法的参数设定

参数的选取对算法的性能有重要影响。为了得到H - SE - GA - DPSO的最佳设置和参数,使其在24个合理的计算时间内,即能提供最佳的性能,基于正交设计方法进行了参数测试实验,这是一种低成本且有效的参数测试方法,数据如4.1节所示。实验采用四水平八因素,如表5所示。实验结果如表6所示。在这里,每组数据以500次迭代运行20次并取平均值作为结果。

如表6所示,可以观察到第21组数据是参数的最佳配置,在合理的计算时间内提供了最优解。根据表5中的数据可以观察到,较大的种群数量导致较长的计算时间。此外,与其他组数据相比,组21的CR和wmax值较小,而MR和wmin值较大;它们和其他参数的取值共同影响算法的性能。因此,为获得最优解,保证在合理的计算时间内对算法进行有效比较,各算法参数设置如表7所示。

4.3实验结果与讨论

5结论与未来展望

本文针对FMS环境下的AGV优化调度问题,建立了考虑机器能耗和多功能的多目标多维优化调度数学模型。在该模型中,多目标是最小化机器的最大完工时间和能量消耗以及AGV的数量。多维目标是针对多目标同时优化相关作业的作业顺序、转运任务与AGV的匹配关系( AGV -任务)和作业与机器的匹配关系(作业-机器)。

为满足上述模型的需要,发展了3种进化算法( SE - GA、SE - DPSO和H - SE - GA - DPSO),实现了多目标、多维度的优化调度,并被证明是有效的。根据对比结果,证明了H - SE - GA - DPSO相对于其他算法的优越性。总体而言,H - SE - GA - DPSO在含AGV的FMS多目标多维调度中是一种较好的优化方法,随着智能制造和绿色制造的发展,H - SE - GA - DPSO也可以应用于更多的情况。

在未来的研究中,有必要对以下问题进行研究:将本文提出的模型从车间层面拓展到企业层面,并考虑更多因素进行更深层次的优化。H - SE - GA - DPSO应应用于分布式计算环境,以满足更复杂的计算需求。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱佩棋(代码版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值