求解装箱问题的一种变长度染色体遗传算法

合集下载

一种求解装箱问题的混合算法-最新文档

一种求解装箱问题的混合算法-最新文档

一种求解装箱问题的混合算法: This paper presents a new hybrid algorithm based on genetic algorithm and tabu search for bin packing problem. It combines the advantage of global search ability of genetic algorithm with the adaptability of tabu search and has better convergence performance than simple genetic algorithm. At last, an practical example is applied to prove the efficiency of this algorithm.0引言装箱问题(Bin Packing Problem, BPP)是一类重要的组合优化问题,在现实生活中有着广泛的应用背景,特别在现代物流中,许多问题都抽象化为装箱问题或其变形,如货物如何装载,才能提高运载器具的利用率,从而降低运输成本;物流任务应如何调度,才能提高运行效率,等等。

但在理论上,装箱问题是一个NP难题[1],很难精确求解。

因此对其求解进行研究具有重要的理论价值和实际意义。

到目前为止,针对该问题人们提出了许多算法,但都有其局限性:枚举法和分支定界等精确算法在箱子数目稍大时,会出现“组合爆炸”;一些近似算法如下次适应NF、首次适应FF、降序首次适应FFD、最佳适应BF等,在解决复杂的装箱问题时结果与物品的体积数据有较大关系,在极端情况下很不理想;遗传算法能在合理的时间内求得最优解或满意解,但易陷入局部最优。

本文针对以上算法的不足,提出一种混合算法,该算法结合遗传算法良好的全局搜索能力和禁忌搜索具有记忆能力的全局逐步优化特性,增强全局和局部意义下的搜索能力和效率。

使用遗传算法进行优化问题求解的技巧

使用遗传算法进行优化问题求解的技巧

使用遗传算法进行优化问题求解的技巧遗传算法是一种模拟自然进化过程的优化算法,被广泛应用于各种优化问题的求解中。

它通过模拟自然界中的遗传、交叉和变异等过程,不断演化出更优解的种群。

本文将介绍使用遗传算法进行优化问题求解的一些技巧。

一、问题建模在使用遗传算法求解优化问题之前,首先需要将问题进行合理的建模。

建模的关键是定义适应度函数,即评价解的好坏程度的函数。

适应度函数应该能够准确地反映出问题的目标和约束条件。

在建模时,还需要确定问题的变量范围、约束条件等。

二、编码与解码遗传算法对问题的解进行编码,将解表示为染色体或基因的形式。

编码的方式有很多种,常见的有二进制编码、实数编码和排列编码等。

编码的选择应根据问题的特点和求解的要求进行合理的选择。

解码是将编码后的染色体或基因解码成问题的实际解。

解码过程应与编码过程相逆,保证解码后的结果能够准确地表示问题的解。

三、种群初始化种群初始化是遗传算法的起点,它决定了算法的初始状态。

种群的初始化应该尽量保证多样性,避免陷入局部最优解。

常见的初始化方法有随机初始化和启发式初始化等。

在初始化时,还可以利用问题的特点进行有针对性的初始化,提高算法的效率。

四、选择操作选择操作是遗传算法中的关键步骤,它决定了哪些个体能够生存下来并参与后续的交叉和变异操作。

选择操作的目标是根据个体的适应度值,按照一定的概率选择优秀个体,并保留下来。

常见的选择方法有轮盘赌选择、锦标赛选择和排名选择等。

选择操作应该保证优秀个体有更高的生存概率,同时也应该给予较差个体一定的生存机会,以保持种群的多样性。

五、交叉操作交叉操作是遗传算法中的重要步骤,它模拟了自然界中的基因交叉过程。

交叉操作通过将两个个体的染色体或基因进行交叉,产生新的个体。

交叉操作的目标是将两个个体的优秀特征结合起来,产生更优解的个体。

常见的交叉操作有单点交叉、多点交叉和均匀交叉等。

在进行交叉操作时,应该根据问题的特点和求解的要求进行合理的选择。

遗传算法在解装箱问题中的应用

遗传算法在解装箱问题中的应用

遗传算法在解装箱问题中的应用摘要:组合优化是一种离散最优化问题,在规划、调度、资源分配、决策等问题中有着非常广泛的应用,典型的组合优化问题有旅行商问题、加工调度问题、背包问题、装箱问题、图着色问题、类聚问题等。

这类问题都有非常精确的数学描述,计算复杂度高,属于NP难类问题。

遗传算法通过编码技术,运用繁殖、杂交和突变等遗传算子,对染色体组成的初始种群,进行适应度分析,构成优胜劣汰、适者生存的自然环境,产生出新的更加优良的种群.经过若干代的进化,最终求得适合问题的最优解.因此,遗传算法在解决组合优化问题上体现了相当的优越性。

关键词:组合优化;遗传算法1 遗传算法的产生与发展遗传算法就是根据自然界这个“物竞天择,适者生存”现象而提出来的一种随机搜索算法。

遗传算法起源于对生物系统所进行的计算机模拟研究。

遗传算法最早是由美国密执安大学著名学者J.H.Holland教授在1962年提出的,当时并未受到普遍重视,1975年,Holland 教授出版了一本颇有影响的专著--《自然和人工系统的适配》(Adaptation in Natural and Artificial Systems),GA这个名称才逐渐为人所知。

标志着遗传算法的创立。

Holland在该书中系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极其重要的模式理论(schema theory)。

进入20世纪80年代,人们越来越清楚地意识到传统人工智能方法的局限性,并且由于计算机速度的提高以及并行机的普及,使进化计算对机器速度的要求不再是制约其发展的因素。

遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。

各种遗传算法国际会议的顺利召开,以及针对遗传算法研究的主要成果发布,使遗传算法在工程技术和社会生活中成功地解决了许多应用实例问题。

目前,关于遗传算法研究的热潮仍在持续,越来越多的从事不同领域的研究人员已经或正在置身于有关遗传算法的研究或应用之中。

遗传算法的基本操作

遗传算法的基本操作

遗传算法的基本操作1 遗传算法遗传算法(Genetic Algorithm,简称 GA)是一种染色体基因行为模拟的进化计算算法,它是一种基于自然选择和遗传变异进化机制的计算智能方法,是从生物学进化规律探索求解各种复杂问题的一种工具。

遗传算法是一种元胞自动机入门级的人工智能技术,能够解决各种复杂的最优化问题。

2 遗传算法的基本操作遗传算法的基本操作主要包括以下几个步骤:1.初始化种群:分配种群中每个个体的基因型,对种群中每个染色体随机分布互不相同的基因,成功分配染色体。

2.测试种群:评估种群中各个个体的适应度。

3.挑选进化操作:根据适应度值大小,选择优秀个体留入下一代。

4.变异和交叉:执行变异操作和交叉操作,以旧的种群基因组为基础生成新的基因组,以挑选某几代作为新的种群。

5.使用适应度值:重新计算每个个体的适应度,建立新的种群,获取最优解。

3 遗传算法在工程中的应用遗传算法可以完成多种实现最优解的工程问题,如最易支付路径分析、公路交叉路口路径优化、货物运输路线最优解、拆线问题等等。

随着科学技术的进步,遗传算法也广泛应用于其他领域,如通信网络结构优化、模式识别、系统自控等,使利用遗传算法工程化运用更加广泛,受到计算机应用研究者的追捧。

4 遗传算法的优势遗传算法有着诸多优势:1. 遗传算法可以解决非线性多变量优化问题;2. 遗传算法没有预定义的搜索空间,能够自动根据变量的取值范围搜索最优解;3. 能够处理连续和离散的优化变量;4. 遗传算法可实现并行化搜索,可大大提高计算速率;5. 遗传算法可以从全局最优出发搜索;6. 遗传算法擅长解非凸优化问题,比如有多个局部最优;7. 遗传算法可以应用于大规模复杂的优化问题。

遗传算法的运行效率不高,一般在解决工程优化问题时,常会伴随其他技术或工具,比如模糊技术、神经网络等,共同完成相应的优化工作。

此外,为了确保在种群的进化过程中保持正确的进化方向,必须了解其精准的适应度函数,为此必须提供明确的评价函数,这是关键性任务。

遗传算法在解装箱问题中的应用

遗传算法在解装箱问题中的应用

遗传算法在解装箱问题中的应用摘要:组合优化是一种离散最优化问题,在规划、调度、资源分配、决策等问题中有着非常广泛的应用,典型的组合优化问题有旅行商问题、加工调度问题、背包问题、装箱问题、图着色问题、类聚问题等。

这类问题都有非常精确的数学描述,计算复杂度高,属于NP难类问题。

遗传算法通过编码技术,运用繁殖、杂交和突变等遗传算子,对染色体组成的初始种群,进行适应度分析,构成优胜劣汰、适者生存的自然环境,产生出新的更加优良的种群.经过若干代的进化,最终求得适合问题的最优解.因此,遗传算法在解决组合优化问题上体现了相当的优越性。

关键词:组合优化;遗传算法1 遗传算法的产生与发展遗传算法就是根据自然界这个“物竞天择,适者生存”现象而提出来的一种随机搜索算法。

遗传算法起源于对生物系统所进行的计算机模拟研究。

遗传算法最早是由美国密执安大学著名学者J.H.Holland教授在1962年提出的,当时并未受到普遍重视,1975年,Holland 教授出版了一本颇有影响的专著--《自然和人工系统的适配》(Adaptation in Natural and Artificial Systems),GA这个名称才逐渐为人所知。

标志着遗传算法的创立。

Holland在该书中系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极其重要的模式理论(schema theory)。

进入20世纪80年代,人们越来越清楚地意识到传统人工智能方法的局限性,并且由于计算机速度的提高以及并行机的普及,使进化计算对机器速度的要求不再是制约其发展的因素。

遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。

各种遗传算法国际会议的顺利召开,以及针对遗传算法研究的主要成果发布,使遗传算法在工程技术和社会生活中成功地解决了许多应用实例问题。

目前,关于遗传算法研究的热潮仍在持续,越来越多的从事不同领域的研究人员已经或正在置身于有关遗传算法的研究或应用之中。

遗传算法基本概念

遗传算法基本概念

遗传算法基本概念一、引言遗传算法(Genetic Algorithm,GA)是一种基于生物进化原理的搜索和优化方法,它是模拟自然界生物进化过程的一种计算机算法。

遗传算法最初由美国科学家Holland于1975年提出,自此以来,已经成为了解决复杂问题的一种有效工具。

二、基本原理遗传算法通过模拟自然界生物进化过程来求解最优解。

其基本原理是将问题转换为染色体编码,并通过交叉、变异等操作对染色体进行操作,从而得到更优的解。

1. 染色体编码在遗传算法中,问题需要被转换成染色体编码形式。

常用的编码方式有二进制编码、实数编码和排列编码等。

2. 适应度函数适应度函数是遗传算法中非常重要的一个概念,它用来评价染色体的适应性。

适应度函数越高,则该染色体越有可能被选中作为下一代群体的父代。

3. 选择操作选择操作是指从当前群体中选择出适应度较高的个体作为下一代群体的父代。

常用的选择方法有轮盘赌选择、竞赛选择和随机选择等。

4. 交叉操作交叉操作是指将两个父代染色体的一部分基因进行交换,产生新的子代染色体。

常用的交叉方法有单点交叉、多点交叉和均匀交叉等。

5. 变异操作变异操作是指在染色体中随机改变一个或多个基因的值,以增加种群的多样性。

常用的变异方法有随机变异、非一致性变异和自适应变异等。

三、算法流程遗传算法的流程可以概括为:初始化种群,计算适应度函数,选择父代,进行交叉和变异操作,得到新一代种群,并更新最优解。

具体流程如下:1. 初始化种群首先需要随机生成一组初始解作为种群,并对每个解进行编码。

2. 计算适应度函数对于每个染色体,需要计算其适应度函数值,并将其与其他染色体进行比较。

3. 选择父代根据适应度函数值大小,从当前种群中选择出若干个较优秀的染色体作为下一代群体的父代。

4. 进行交叉和变异操作通过交叉和变异操作,在选出来的父代之间产生新的子代染色体。

5. 更新最优解对于每一代种群,需要记录下最优解,并将其与其他染色体进行比较,以便在下一代中继续优化。

遗传算法简介

遗传算法简介

遗传算法简介遗传算法英文全称是Genetic Algorithm,是在1975年的时候,由美国科学家J.Holland从生物界的进化规律之中发现并且提出来的,借助适者生存,优胜劣汰的自然科学规律运用到科学的训练方法之中,对于对象直接进行操作的一种算法。

并且,遗传算法作为一种搜索的方法,已经成为成熟的具有良好收敛性、极高鲁棒性和广泛适用性的优化方法,很好的解决了电力系统的多变量、非线性、不连续、多约束的优化控制问题。

非常多的运用到了生产的方方面面。

可以说遗传算法的研究已经取得了巨大的成功。

2.1.1染色体在具体的使用遗传算法的时候,一般是需要把实际之中的问题进行编码,使之成为一些具有实际意义的码子。

这些码子构成的固定不变的结构字符串通常被叫做染色体。

跟生物学之中一样的,具体的染色体中的每一个字符符号就是一个基因。

总的固定不变的结构字符串的长度称之为染色体长度,每个具体的染色体求解出来就是具体问题之中的一个实际问题的解。

2.1.2群体具体的实际之中的问题的染色体的总数我们称之为群体,群体的具体的解就是实际之中的问题的解的集合。

2.1.3适应度在对于所有的染色体进行具体的编码之后,具体的一条染色体对应着一个实际的数值解,而每个实际的数值解对应着一个相对应的函数,这个函数就是适应度指标,也就是我们数学模型之中常说的目标函数。

2.1.4遗传操作说到遗传算法,不得不提的是遗传算法之中的遗传问题,具体进行遗传的时候有如下操作:1、选择:从上一次迭代过程之中的M个染色体,选择二个染色体作为双亲,按照一定的概率直接遗传到下一代。

2、交叉:从上一次迭代过程之中的M个染色体,选择二个染色体A、B作为双亲,用A、B作为双亲进行生物学之中的交叉操作,遗传到下一代。

3、变异从上一次迭代过程之中的M个染色体,选择一个染色体进行去某一个字符进行反转。

遗传算法优化问题求解

遗传算法优化问题求解

遗传算法优化问题求解遗传算法是一种模拟自然界进化过程的优化算法,它通过模拟基因的变异和选择,来寻找最优解。

在实际问题中,有许多优化问题需要求解,例如旅行商问题、物流路径规划、机器学习模型参数调优等。

本文将介绍遗传算法在优化问题求解中的应用,并分析其优势和不足之处。

一、遗传算法的原理遗传算法是一种进化搜索算法,主要由基因表示和三个基本操作组成:选择、交叉和变异。

首先,将问题的解表示为一个染色体,染色体由基因构成。

每个基因是问题的一个变量,可以是一个二进制编码、实数编码或排列编码等。

接着,通过选择操作,根据适应度函数对染色体进行评估,并选择适应度较高的染色体作为父代。

然后,通过交叉操作将父代的基因组合生成新的子代,模拟生物的基因交流。

最后,通过变异操作对子代的基因进行随机变动,以增加搜索空间和多样性。

这样不断进化迭代,直到找到满足问题需求的最优解。

二、遗传算法在问题求解中的应用1. 旅行商问题旅行商问题是一种NP难问题,要求找到一条最短路径经过所有城市并回到起点。

遗传算法通过基因表示城市的顺序,通过选择、交叉和变异操作找到最优路径。

通过多次迭代,可得到较优解。

2. 物流路径规划在物流行业中,如何合理地规划送货路线以降低成本和提高效率是一项重要任务。

遗传算法可以通过选择合适的送货路线,优化物流方案。

基因表示物流路径的顺序,通过选择、交叉和变异操作,不断调整路径,直到找到最优解。

3. 机器学习模型参数调优机器学习模型中存在各种参数需要调优,如学习率、隐藏层节点数等。

遗传算法可以通过基因表示参数值,通过选择、交叉和变异操作,优化参数取值,提高模型的性能和准确性。

三、遗传算法的优势1. 并行处理能力遗传算法可以同时处理多个个体,保持种群中多样性,并进行并行计算。

这使得遗传算法能够在大规模问题上进行求解,并在相对较短的时间内找到较优解。

2. 全局搜索能力遗传算法具有全局搜索的能力,能够避免陷入局部最优解。

通过不断的选择、交叉和变异操作,遗传算法可以在解空间中进行广泛的搜索,找到全局最优解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
装箱问题的数学模型如下 :
n
∑ min Z ( y) = yi i =1 n
∑ s . t . j =1 Wjxij ≤ Cyi , i ∈ N
n
∑xij = 1 , j ∈ N
i =1
yi = 0 或 1 , i ∈N xij = 0 或 1 , i , j ∈ N 其中 , yi = 1 表示箱子 i 中被装入物品 ,反之 yi = 0 表示箱子空着 。 xij = 1 表示物品 j 装入箱子 i 中 ,反之 xij = 0 表 示物品未装入箱子 i 中 。 装箱问题是许多具有重要意义的实际优化问题 的基础 , 在管理决策中有重要应用 , 它属于 N P hard 问题 ,目前还没有在多项式时间内求得最优解 的算法 。
基于此考虑 , 将常规遗传算法的染色体编码串 中各基因座位置 (表示箱子) 及相应基因值 (箱子中 的物品) 组成一个二元组 , 把此二元组按一定顺序 排列起来 ,就形成了一种变长度染色体编码方案 。
举例说 ,比如从 1 到 6 对物品进行编码 , 染色体 物品部分可写成 142352 ,这表示 :第 1 个物品放入箱 子 1 ,第 2 个物品放入箱子 4 ,第 3 个和第 6 个物品放 入箱子 2 ,第 4 个物品放入箱子 3 ,第 5 个物品放入箱 子 5 ;而染色体的群体部分仅表示箱子 , 用字母来表 示箱子 (这样 ,上面染色体就可以表示为 ADB CEB ) 。
heuristic algorithm
3 结论
遗传算法不是一种单纯的优化算法 ,而是一种
55
以进化思想为基础的全新的一般方法论 ,是解决优 化等复杂问题的有利工具 。随着遗传算法理论研究 的不断深入 ,其自身的发展将得到进一步完善 ,它的 应用范围将得到进一步扩大 。
参考文献
[1 ] Falkenauer E. A new representation and operators for genetic algorithms applied to grouping problems [ J ] . Evolutionary Computation ,1994 ,2(02) .
2. 2 染色体编码设计 在遗传算法中如何描述问题的可行解 , 即把一
个问题的可行解从其解空间转换到遗传算法所能处 理的搜索空间的转化方法 ,就称为编码 。
由于装箱问题的适应值函数依赖于箱子中物体 的群体 ,因此此问题中好的编码应该包含 2 个部分 : 一部分提供关于哪个物品属于哪个箱子 ( 群体) 的 信息 ,另一部分对使用的箱子编码 。
的隐并行性 、应用的鲁棒性 、操作的简明性 , 成为一
种具有良好普适性和可规模化的优化方法 。
基于遗传算法的装箱问题求解过程主要包括染
色体编码结构及各种遗传算子的设计 。
2. 1 适应值函数
确定适应值函数的原则是 :最小化使用的箱子
数量同时 , 尽量装满所有使用的箱子 。具体函数如
下:
fB PP =
to solve the bin2packing problem
YANG Dian2sheng
( Office of The Dean of Studies , Ezhou University , Ezhou 436000 , China)
Abstract :To solve the bin2packing problem , this paper presented an improved inheritance algorithm of a kind of chromosomes with changeable length and analyzed the concrete methods and steps to realize it . Key words :bin2packing problem ; inheritance algorithm ;
ISSN 100928984
长春工程学院学报 (自然科学版) 2004 年 第 5 卷 第 2 期
CN 22 21 32 3/ N J . C ha ng ch un In st. Te ch . (Nat. Sci. Edi. ) ,2004 ,Vol. 5 ,No. 2
17/ 23 53 25 5
第 1 步 :随机选择 2 个交叉位置 ,对每个父代选 定交叉部分 。
第 2 步 :将第 1 个父代交叉部分的内容插入到第 2 个父代第 1 个交叉位置之前 。由于交叉对染色体的 部分群体进行操作 , 这就意味着从第 1 个父代插入 一些群体 (箱子) 到第 2 个父代中 。
第 3 步 :从产生的后代中原有的箱子中去掉所 有重复出现的物品 , 使得这些物品原先的从属关系 让位于“新”插入的箱子 。因此产生的后代中的某些 群体发生了改变 ,他们不再包含与原先相同的物品 。
收稿日期 :2004 - 04 - 01 作者简介 :杨殿生 (1963 ,8 - ) ,男 (汉) ,安徽明光 ,讲师
主要研究工程数学 , (0711) 3853327 。
针对该问题提出了一些启发式算法 , 他们基本 上都是以贪心法为出发点 , 加上某些简单规则得到 的 ,比如次优配合启发式方法 ( next - f it heuristic) 、 优先配合启发式方法 ( f irst - f it heuristic) 或最佳配 合启发式方法 ( best - f it heuristic) 等 ,但这些启发式 算法都不能实现全局最优 ,只能找到局部最优解 。
交叉指按一定的概率 Pc 选择参与交叉的父代 , 把 2 个父代个体中的部分结构加以替换重组而生成 新个体的操作 ,它是遗传算法区别于其他进化算法 的重要特征 ,在遗传算法中起着关键作用 ,是产生新 个体的主要方法 。
由于染色体编码包含 2 部分 :箱子和物品的群 体 ,因此交叉需处理可变长度的染色体 ,具体步骤如 下:
从群体中选择优胜的个体 , 淘汰劣质个体的操
作称为选择 ,其目的是把优化的个体直接遗传到下 一代或通过配对交叉产生新的个体遗传到下一代 , 它是建立在群体中个体的适应值评估基础上的 。
这里采用联赛选择算子 。其基本方法是 ,从群体 中随机选择 k 个个体 , 其中适应值最高的个体保存 到下一代 ,这一过程反复执行 ,直到保存到下一代的 个体数达到预先设定的数目为止 。其中 ,参数 k 称为 竞赛规模 ,常取 k = 2 。 2. 3. 2 交叉算子
n
∑( Fi/ C)
j =1
N
式中 : N ———解中使用的箱子数量 ;
Fi ——— i 个箱子中所有物品的重量之和 , 即箱
子的填充程度 ;
54
长春工程学院学报 (自然科学版)
2004 ,5 (2)
C ———箱子的重量限制 , k 是常数 ( k > 0) 表 示对装满箱子的重视程度 , k 越大 , 装 得满的箱子比一般填充的箱子受到的 重视就越大 ,这里取 k = 2 。
所谓变异运算 ,就是将个体染色体编码中的某 些基因座上的基因值用该基因座的其他等位基因来 替换 ,从而形成一个新个体 。
与前类似 ,装箱问题的变异算子必须针对群体 (箱子) 而不是物品进行操作 ,至于变异过程 ,算子的 实现细节依赖于现有的特定群体问题 ,但可指出两 条一般性策略 :或启用一个新的箱子 ,或消除一个已 经使用的箱子 。如果变异后解中缺少某些物品 ,可 以采用 FF 或 FFD 启发算法来按照随机的顺序将其 重新放入箱子 。
从遗传算法过程中产生新个体的能力方面来 说 ,交叉运算是产生新个体的主要方法 ,它决定遗传 算法的全局搜索能力 ,而变异运算只是产生新个体 的辅助方法 ,但也是必不可少的一个运算步骤 ,因为 它决定了遗传算法的局部搜索能力 。交叉算子和变 异算子的相互配合 ,共同完成对搜索空间的全局和 局部搜索 ,从而使得遗传算法能够以良好的性能完 成最优化问题的寻优过程 。 2. 4 基于遗传算法的装箱问题算法描述
质特征在于群体搜索策略和简单的遗传算子 , 群体
搜索使遗传算法突破领域搜索的限制 , 可以实现整
个解空间上的分布式信息搜索 、采集和继承 ;遗传算
子仅仅利用适应值度量作为运算指标进行染色体的
随机操作 ,降低了一般启发式算法在搜索过程中对
人机交互的依赖 , 这样就使得遗传算法获得了强大
的全局最优解搜索能力 ,问题域的独立性 、信息处理
通过查询物品部分 , 可以清楚群体名称所代表 的含义 ,即 :
B = { 3 ,6} , E = { 5} , C = { 4} , D = { 2} , A = { 1}
因此 , 包括 2 个部分的染色体的集成可由下图 来表示 :
图 1 染色体集成图
这种表示的原理是 :对于装箱问题来说 ,群体是 有意义的积木块 ,也就是最小的解片断 ,这些片断可 以按照对其所属的解所期望的质量来转运信息 。
而这种表示的关键之处就是遗传算子对于染色 体的群体部分进行操作 , 其物品部分仅用于判定由 哪些物品形成该群体 。 2. 3 遗传操作设计
遗传操作包括以下 3 个基本遗传算子 :选择 、交 叉 、变异 。选择和交叉基本完成了遗传算法的大部分 搜索功能 ,变异增加了遗传算法找到接近最优解的 能力 。 2. 3. 1 选择算子
1 装箱问题及数学模型
装箱问题 ( bin - packing problem) 就是要将重量 分别为 w1 , w2 …, wn 的 n 个物品装入许多个箱子 (最 多 n 个) ,且箱子有重量限制 , 每个箱子所装物品的 总重量不超过 C ( C > 0) 。问题是寻找最优的将物品 分配到箱子的方案 , 使每个箱子中物品的重量之和 不超过其限制 ,而使用的箱子数量最少 。
求解装箱问题的一种变长度染色体遗传算法
杨殿生
(鄂州大学 ,湖北鄂州 436000)
摘 要 :针对装箱问题提出了一种变长度染色体的
相关文档
最新文档