一种遗传算法在集合覆盖问题中的应用研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
N
对于每个新产生的未覆盖集合的染色体进行
2)
i, i
U , P ( k ) = min( j = 1Aij cj ) , k
3) 对每一个 k , 修补该染色体; 4) 如果修补后的染色体不覆盖 , 转到 1. 消除染色体的冗余 . 一个染色体含有 1 的基 因的多少对该染色体覆盖集合 A 的状况有很大关 系, 如果含 1 不多, 很可能不能覆盖集合 A , 如果 含 1 过多, 则该染色体的代价也相应过大 . 这样的 染色体经过遗传操作后 , 并不利于收敛到较优解 . 为了使染色体在种群中的效率较高 , 一种采用的办 法就是消除染色体中冗余基因 , 使得消除后的染色 体还能覆盖集合 A , 并使该染色体的代价减小 . 本 算法采用性能代价比优先方法 . 为了更有效率的找 出冗余基因 , 我们根据集合 A 和染色体含 1 基因 的位置产生两个中间向量 , 通过对该中间向量的操 作找出其中较优的基因 , 并删除其余冗余的基因 . 一个中间向量 a 用染色体中含 1 基因的位置来 表示, 另一个 中间向量 b 用来表示中间向量 a 中 选中一个性能代价比较优的基因后没有覆盖集合 A 的行号. 依次根据性能代价比找出较优的基因 , 计算中间向量 b , 中间向量 a 中的基因被选中后就 在向量 a 中删除该基因, 因随着中间向量 a 中被 选种的基因增多 , 中间向量 b 的个数减少, 直到中 间向量 b 为空, 表示所选的基因覆盖了集合 A. 1) 计算向量 a 中每个基因的性能代价比 ; 选 出性能代价比最大的基因 , 记录该基因在染色体中 的位置并初始化中间向量 a ; 2) 根据该性能代价比最大的基因计算出未覆 盖集合 A 的行号, 并初始化中间向量 b ; 3) 计算中间向量 a 中每个基因的性能代价比 并选出最大的基因; 4) 计算该基因覆盖集合的行 号, 并在向量 b 中去除这些行号 ; 5) 在中间向量 a 中删除该基因 ; 6) 如果中间向量 b 不空, 则跳转到 3;
r
A 的列向量代价值. 向量 x 为矩阵 A 的一个集合 覆盖, 而本例的最小覆盖为 x = ( 0, 0, 0, 1, 0, 1, 0, 1) , 代价为 15.
1
1 1
基于启发式的遗传算法
基本遗传算法 遗传算法是一种基于生物进化原理构想出来
的搜索最优解的仿生算法 , 它模拟基因重组与进化 的自然过程, 把待解决问题的参数编成二进制码或 十进制码( 也可编成其它进制码 ) , 即基因 , 若干基 因组成一个染色体( 个体 ) . 许多染色体进行类似于 自然选择、 配对交叉和变异运算, 经过多次重复迭 代( 即世代遗传 ) 直至得到最后的优化结果. 遗传算 法的步骤如下: 1) 初始化第 0 代种群 P 0 ; 2) 对第 i 代种群 P i 迭代执行步骤 ( i) ~ ( v) , 直到满足停止准则; ( i) 计算 P i 中每个个体的适应值, 并按照适 应值的大小对所有个体进行排序; ( ii) 将 P i 中适应值最佳的个体加入 P i + 1 ; ( iii) 按照适应值的大小顺序在 P i 中选择两个 父体 ; ( iv) 按概率选择杂交算子或变异算子对两父 体进行遗传操作 , 将生成的个体加入 P i + 1 ; ( v) 如果 P i + 1 的规模已经与 P i 持平则 i 1 并转 2, 否则转 iii; 3) 将最终种群中适应值最佳的个体作为遗传 算法的结果. 1 2 基于遗传的启发式算法 对于特殊应用问题的遗传算法的设计第一步 是设计一种合适的表示方案. 对于集合覆盖问题 , 因为矩阵 A 是 0- 1 矩阵, 向量 x 的元素也是 0 或 1, 因 为用 0- 1 二进制表示是一个显而易见的选 择. 这里我们用一个 n 位的二进制串作为染色体 结构, 这里 n 是矩阵 A 的列数 , 第 i 位的值 1 意 味着第 i 列被选择. 用二进制表示进行遗传操作有个重要问题要 必须考虑, 那就是可能产生不可靠的结果 . 产生的 染色体并不能覆盖集合 , 这样就会影响遗传效率 . 有两种方法处理这种不可靠结果. 一种方法是应 用一个类似惩罚函数去处理不可行的解决方案, 比 如比较极端的惩罚方法是丢弃该染色体 , 并产生新 1 2 1 染色体的表示 i+
2 遗传参数的选取
21 J 种群大小和种群初始化 在应用遗传算法解决实际问题的过程中人们 发现 , 种群对遗传算法所求得的解的质量有一定的 影响 , 选择适当的种群大小可以提高算法的性能 . 种群数目如果过大 , 虽然可以在比较小的代数收敛 到最优解 , 但会执行效率降低 . 种群数目如果过小 , J; 则收敛过慢 . 在集合覆盖问题中 , 本算法并没有采 取对种群大小进行严格的限制 , 对于大多数情况 , 一般采用染色体的长度于集合密度的乘积作为种 群的大小的一个大概范围 . 对于一些特殊情况 , 如 集合行、 列值较小, 集合密度过大的情况, 则再适当 的调整. 2. 2 父代的选择技术 在父代的选择是在种群中每个个体赋予产生 后代的机会 , 这有很多广泛的可用方法, 包括按比 例选择, 锦标赛选择和轮盘赌选择 . 这里选择的是 按比例选择 . 种群中每个染色 体被选择的概 率为
陈 亮, 任世军
( 哈尔 滨工业大学 计算机学院 , 黑龙江 哈尔滨 , 150001) 摘 要 : 利用遗传算法的思想把集合覆盖问题进行 适当的转化 并提出了 一种适用于 求解该问 题的改 进遗传算法 , 通过对种群中的染色体进行启发式改进 和遗传参数的选取 , 来达到求解的目的 . 关键词 : 集合覆盖 ; NP 完全问题 ; 遗 传算法 ; 启发式 中图分类号 : TP 393 文献标识码 : A 文章编号 : 1672- 0946( 2006) 02- 0067- 04
cj x j , M,
( 1) ( 2) S then x j = 1 else x j = ( 3)
aij x j
1, j
{ 0, 1} , j
N . if j
, m} ,
68
哈尔 滨商业大 学学报( 自然 科学版)
第 22 卷
例如, 上图中 A 为一个 6
8 矩阵, 向量 C 为矩阵
染色体来代替这个不可靠染色体 . 另一个方法是设 计一个启发操作算子, 把不可行的染色体转变成可 行的染色体. 我们选择后一个方法 , 用启发式操作 , 因为一个好的惩罚函数经常很难定义 . 12 2 染色体的启发式改进 正如上边所提起的 , 由于变异操作引起的染色 体并不适合问题集合 ( 如, 一些行没有覆盖 ) , 这导 致遗传算法收敛的速度变慢 , 因此需要让所有染色 体有个合理的补充操作 . 这里 , 我们提出一个启发 式操作算子, 这个算子不仅仅保持所产生的染色体 的可靠性, 而且提供一个额外的局部优化过程 , 目 的使遗传算法更有效率 . 对于每个染色体所覆盖集合的情况不外乎两 种情况: 一种是染色体不覆盖集合 , 另一种是覆盖 了集合, 但有冗余, 造成改染色体的代价不是较优 . 对于第一种情况的处理办法一种是丢弃, 但有可能 丢失最优解 , 导致收敛的速度变慢 ; 本算法采用的 是另一种解决方法 , 通过性能代价比较优的列来弥 补该染色体 , 使该染色体以较 优代价保留在 种群 中. 性能代价比是指某列所能覆盖的行数与该列的 代价比. 对于第二种情况, 本算法采用的是通过保 留性能代价比较优且能覆盖集合的列 , 去除多余的 冗余列来替代该冗余染色体 , 并保留在种群中 . 具 体的算法如下 . 修补染色体. 对于一个染色体, 很容易判断是 否覆盖一个集合. 如果不覆盖集合 , 染色体在遗传 进化过程中不利于收敛 , 因此通过修补染色体使之 能覆盖集合是一个很好的办法. 修补染色的方法很 多, 如果修补后的染色体的代价过大 , 就会产生过 多的冗余, 就会造成另一个极端 . 早期有人提出用 贪心算法来补偿染色体 , 但这种算法只考虑染色体 中基因的代价而并没有考虑到染色体中的基因在 集合中的性能 . 本算法采用一个性能代价比优先算 法找出更适合的基因来补偿染色体, 使得补偿后的 染色体为较优的染色体 . 这里说的性能指染色体中 的某位基因所对应集合中的列的含 1 的个数 , 如果 该列含 1 的个数多, 则该列覆盖的行数就多, 说明 该基因的性能比较高. 采用同样的方法就可以找出 其他位置的基因就可以覆盖集合 . 为了找出较优的 染色体, 还要考虑每个基因的代价 , 所以对于每个 基因采用公式 f ( j ) = ( i = 0A ij ) cj 来计算基因的性 能代价比 , 其中 r 表示集合 A 的行数 , cj 为第 j 列 的代价. 性能代价比较高的基因优先选择, 从而保 证补偿后的染色体能覆盖集合且代价较优 . 该算法
N ) 表示列 j 的代价. 不失一般性 , 我们假定
了行 i M . 集合覆盖问题 ( SCP) 要求一个最小代价 的子集合 S N , 这样每一行 i M 至少被一列j S 覆盖 . SCP 的一 个自然 的数学 模型可 以描述 如 下: v ( SCP ) = minj 服从于 xj 0.
j N N
收稿日期 : 2005- 09- 23. 作者简介 : 陈 亮 ( 1972- ) , 男 , 硕士 , 研究方向 : 人工智能 .
[ 2] [ 1]
N = { 1, cj ( j cj > 0, j
, n } 表示矩阵 A 的行向量和列向量 . 值 N . 如果 a ij = 1, 我们则认为列 j N 覆盖
第 2期
陈
亮 , 等 : 一种遗传算法在集合覆盖问题中的应用研究
69
如下 . 令 I : 所有行的集合; J : 所有列的集合; U: 未覆盖 A 的行的集合 ; Col : 集合 A 的列数; P j : 新增加一个染色体中的基因位置, j 如下处理 : 1) 产生该染色体的 U ;
Col
7) 如果中间向量 b 为空 , 则让未被选出的含 1 基因变异成 0 .
Study on genetic algorithm application in set covering problem
CHEN Liang, REN Shi jun
( School of Computer, Harbin Institute of Technology , Harbin 150090, China)
Abstract: This paper transforms the set covering problem based on genetic algorithm and present an improved genetic algorithm for the set covering problem. Through the heuristic improvement of chromosome in population and selection of genet ic parameters to find a solut ion of set covering problems. Key words: set covering problem; NP- hard problem; genetic algorithm; heurist ic 遗传算法 ( Genetic Algorithm 简称 GA) 是 20 世 纪 70 年代由美国密切根大学 John Holland 教授为 研究自然与人工系统的自适应行为而提出的一种 算法 , 后经其 学生 Kenneth De Jong 、 David Goldberg 等人的改进推广得以广泛应用于各类优化问题. 遗 传算法作为一种全新的优化搜索算法, 与传统的优 化算法相比, 遗传算法具有适应性广、 抗干扰性强 、 鲁棒性强以及不受搜索空间限制性条件约束 、 适应 于并行处理 、 全局搜索等显著的特点 . 近年来, 引 起了广大学者的注意以及越来越大的研究及应用 热潮, 出现了很多的优秀研究成果, 广泛应用于自 动控制、 计算机科学 、 机器人学 、 模式识别和神经网 络等领域 . 集合覆盖问题 ( SCP ) 是经典组 合优化问题之 一, 被广泛应用到航空的人员行程安排 、 电路设计 、 运输的车辆路线安排等领域. 该问题已被证明是一 个 NP 完全问题 . 集合覆盖问题形式上可以描述 如下 : 令 A = ( aij ) 是一个 m 行 , n 列的 0- 1 矩阵 . C = ( cj ) 是一个 n 维整数向量 . 令 M = { 1,
第 22 卷 第 2 期 2006 年 4 月
பைடு நூலகம்
哈 尔 滨 商 业 大 学 学 报( 自然科学版)
Journal of Harbin University of Commerce ( Natural Sciences Edition)
Vol. 22 No. 2 Apr. 2006
一种遗传算法在集合覆盖问题中的应用研究
对于每个新产生的未覆盖集合的染色体进行
2)
i, i
U , P ( k ) = min( j = 1Aij cj ) , k
3) 对每一个 k , 修补该染色体; 4) 如果修补后的染色体不覆盖 , 转到 1. 消除染色体的冗余 . 一个染色体含有 1 的基 因的多少对该染色体覆盖集合 A 的状况有很大关 系, 如果含 1 不多, 很可能不能覆盖集合 A , 如果 含 1 过多, 则该染色体的代价也相应过大 . 这样的 染色体经过遗传操作后 , 并不利于收敛到较优解 . 为了使染色体在种群中的效率较高 , 一种采用的办 法就是消除染色体中冗余基因 , 使得消除后的染色 体还能覆盖集合 A , 并使该染色体的代价减小 . 本 算法采用性能代价比优先方法 . 为了更有效率的找 出冗余基因 , 我们根据集合 A 和染色体含 1 基因 的位置产生两个中间向量 , 通过对该中间向量的操 作找出其中较优的基因 , 并删除其余冗余的基因 . 一个中间向量 a 用染色体中含 1 基因的位置来 表示, 另一个 中间向量 b 用来表示中间向量 a 中 选中一个性能代价比较优的基因后没有覆盖集合 A 的行号. 依次根据性能代价比找出较优的基因 , 计算中间向量 b , 中间向量 a 中的基因被选中后就 在向量 a 中删除该基因, 因随着中间向量 a 中被 选种的基因增多 , 中间向量 b 的个数减少, 直到中 间向量 b 为空, 表示所选的基因覆盖了集合 A. 1) 计算向量 a 中每个基因的性能代价比 ; 选 出性能代价比最大的基因 , 记录该基因在染色体中 的位置并初始化中间向量 a ; 2) 根据该性能代价比最大的基因计算出未覆 盖集合 A 的行号, 并初始化中间向量 b ; 3) 计算中间向量 a 中每个基因的性能代价比 并选出最大的基因; 4) 计算该基因覆盖集合的行 号, 并在向量 b 中去除这些行号 ; 5) 在中间向量 a 中删除该基因 ; 6) 如果中间向量 b 不空, 则跳转到 3;
r
A 的列向量代价值. 向量 x 为矩阵 A 的一个集合 覆盖, 而本例的最小覆盖为 x = ( 0, 0, 0, 1, 0, 1, 0, 1) , 代价为 15.
1
1 1
基于启发式的遗传算法
基本遗传算法 遗传算法是一种基于生物进化原理构想出来
的搜索最优解的仿生算法 , 它模拟基因重组与进化 的自然过程, 把待解决问题的参数编成二进制码或 十进制码( 也可编成其它进制码 ) , 即基因 , 若干基 因组成一个染色体( 个体 ) . 许多染色体进行类似于 自然选择、 配对交叉和变异运算, 经过多次重复迭 代( 即世代遗传 ) 直至得到最后的优化结果. 遗传算 法的步骤如下: 1) 初始化第 0 代种群 P 0 ; 2) 对第 i 代种群 P i 迭代执行步骤 ( i) ~ ( v) , 直到满足停止准则; ( i) 计算 P i 中每个个体的适应值, 并按照适 应值的大小对所有个体进行排序; ( ii) 将 P i 中适应值最佳的个体加入 P i + 1 ; ( iii) 按照适应值的大小顺序在 P i 中选择两个 父体 ; ( iv) 按概率选择杂交算子或变异算子对两父 体进行遗传操作 , 将生成的个体加入 P i + 1 ; ( v) 如果 P i + 1 的规模已经与 P i 持平则 i 1 并转 2, 否则转 iii; 3) 将最终种群中适应值最佳的个体作为遗传 算法的结果. 1 2 基于遗传的启发式算法 对于特殊应用问题的遗传算法的设计第一步 是设计一种合适的表示方案. 对于集合覆盖问题 , 因为矩阵 A 是 0- 1 矩阵, 向量 x 的元素也是 0 或 1, 因 为用 0- 1 二进制表示是一个显而易见的选 择. 这里我们用一个 n 位的二进制串作为染色体 结构, 这里 n 是矩阵 A 的列数 , 第 i 位的值 1 意 味着第 i 列被选择. 用二进制表示进行遗传操作有个重要问题要 必须考虑, 那就是可能产生不可靠的结果 . 产生的 染色体并不能覆盖集合 , 这样就会影响遗传效率 . 有两种方法处理这种不可靠结果. 一种方法是应 用一个类似惩罚函数去处理不可行的解决方案, 比 如比较极端的惩罚方法是丢弃该染色体 , 并产生新 1 2 1 染色体的表示 i+
2 遗传参数的选取
21 J 种群大小和种群初始化 在应用遗传算法解决实际问题的过程中人们 发现 , 种群对遗传算法所求得的解的质量有一定的 影响 , 选择适当的种群大小可以提高算法的性能 . 种群数目如果过大 , 虽然可以在比较小的代数收敛 到最优解 , 但会执行效率降低 . 种群数目如果过小 , J; 则收敛过慢 . 在集合覆盖问题中 , 本算法并没有采 取对种群大小进行严格的限制 , 对于大多数情况 , 一般采用染色体的长度于集合密度的乘积作为种 群的大小的一个大概范围 . 对于一些特殊情况 , 如 集合行、 列值较小, 集合密度过大的情况, 则再适当 的调整. 2. 2 父代的选择技术 在父代的选择是在种群中每个个体赋予产生 后代的机会 , 这有很多广泛的可用方法, 包括按比 例选择, 锦标赛选择和轮盘赌选择 . 这里选择的是 按比例选择 . 种群中每个染色 体被选择的概 率为
陈 亮, 任世军
( 哈尔 滨工业大学 计算机学院 , 黑龙江 哈尔滨 , 150001) 摘 要 : 利用遗传算法的思想把集合覆盖问题进行 适当的转化 并提出了 一种适用于 求解该问 题的改 进遗传算法 , 通过对种群中的染色体进行启发式改进 和遗传参数的选取 , 来达到求解的目的 . 关键词 : 集合覆盖 ; NP 完全问题 ; 遗 传算法 ; 启发式 中图分类号 : TP 393 文献标识码 : A 文章编号 : 1672- 0946( 2006) 02- 0067- 04
cj x j , M,
( 1) ( 2) S then x j = 1 else x j = ( 3)
aij x j
1, j
{ 0, 1} , j
N . if j
, m} ,
68
哈尔 滨商业大 学学报( 自然 科学版)
第 22 卷
例如, 上图中 A 为一个 6
8 矩阵, 向量 C 为矩阵
染色体来代替这个不可靠染色体 . 另一个方法是设 计一个启发操作算子, 把不可行的染色体转变成可 行的染色体. 我们选择后一个方法 , 用启发式操作 , 因为一个好的惩罚函数经常很难定义 . 12 2 染色体的启发式改进 正如上边所提起的 , 由于变异操作引起的染色 体并不适合问题集合 ( 如, 一些行没有覆盖 ) , 这导 致遗传算法收敛的速度变慢 , 因此需要让所有染色 体有个合理的补充操作 . 这里 , 我们提出一个启发 式操作算子, 这个算子不仅仅保持所产生的染色体 的可靠性, 而且提供一个额外的局部优化过程 , 目 的使遗传算法更有效率 . 对于每个染色体所覆盖集合的情况不外乎两 种情况: 一种是染色体不覆盖集合 , 另一种是覆盖 了集合, 但有冗余, 造成改染色体的代价不是较优 . 对于第一种情况的处理办法一种是丢弃, 但有可能 丢失最优解 , 导致收敛的速度变慢 ; 本算法采用的 是另一种解决方法 , 通过性能代价比较优的列来弥 补该染色体 , 使该染色体以较 优代价保留在 种群 中. 性能代价比是指某列所能覆盖的行数与该列的 代价比. 对于第二种情况, 本算法采用的是通过保 留性能代价比较优且能覆盖集合的列 , 去除多余的 冗余列来替代该冗余染色体 , 并保留在种群中 . 具 体的算法如下 . 修补染色体. 对于一个染色体, 很容易判断是 否覆盖一个集合. 如果不覆盖集合 , 染色体在遗传 进化过程中不利于收敛 , 因此通过修补染色体使之 能覆盖集合是一个很好的办法. 修补染色的方法很 多, 如果修补后的染色体的代价过大 , 就会产生过 多的冗余, 就会造成另一个极端 . 早期有人提出用 贪心算法来补偿染色体 , 但这种算法只考虑染色体 中基因的代价而并没有考虑到染色体中的基因在 集合中的性能 . 本算法采用一个性能代价比优先算 法找出更适合的基因来补偿染色体, 使得补偿后的 染色体为较优的染色体 . 这里说的性能指染色体中 的某位基因所对应集合中的列的含 1 的个数 , 如果 该列含 1 的个数多, 则该列覆盖的行数就多, 说明 该基因的性能比较高. 采用同样的方法就可以找出 其他位置的基因就可以覆盖集合 . 为了找出较优的 染色体, 还要考虑每个基因的代价 , 所以对于每个 基因采用公式 f ( j ) = ( i = 0A ij ) cj 来计算基因的性 能代价比 , 其中 r 表示集合 A 的行数 , cj 为第 j 列 的代价. 性能代价比较高的基因优先选择, 从而保 证补偿后的染色体能覆盖集合且代价较优 . 该算法
N ) 表示列 j 的代价. 不失一般性 , 我们假定
了行 i M . 集合覆盖问题 ( SCP) 要求一个最小代价 的子集合 S N , 这样每一行 i M 至少被一列j S 覆盖 . SCP 的一 个自然 的数学 模型可 以描述 如 下: v ( SCP ) = minj 服从于 xj 0.
j N N
收稿日期 : 2005- 09- 23. 作者简介 : 陈 亮 ( 1972- ) , 男 , 硕士 , 研究方向 : 人工智能 .
[ 2] [ 1]
N = { 1, cj ( j cj > 0, j
, n } 表示矩阵 A 的行向量和列向量 . 值 N . 如果 a ij = 1, 我们则认为列 j N 覆盖
第 2期
陈
亮 , 等 : 一种遗传算法在集合覆盖问题中的应用研究
69
如下 . 令 I : 所有行的集合; J : 所有列的集合; U: 未覆盖 A 的行的集合 ; Col : 集合 A 的列数; P j : 新增加一个染色体中的基因位置, j 如下处理 : 1) 产生该染色体的 U ;
Col
7) 如果中间向量 b 为空 , 则让未被选出的含 1 基因变异成 0 .
Study on genetic algorithm application in set covering problem
CHEN Liang, REN Shi jun
( School of Computer, Harbin Institute of Technology , Harbin 150090, China)
Abstract: This paper transforms the set covering problem based on genetic algorithm and present an improved genetic algorithm for the set covering problem. Through the heuristic improvement of chromosome in population and selection of genet ic parameters to find a solut ion of set covering problems. Key words: set covering problem; NP- hard problem; genetic algorithm; heurist ic 遗传算法 ( Genetic Algorithm 简称 GA) 是 20 世 纪 70 年代由美国密切根大学 John Holland 教授为 研究自然与人工系统的自适应行为而提出的一种 算法 , 后经其 学生 Kenneth De Jong 、 David Goldberg 等人的改进推广得以广泛应用于各类优化问题. 遗 传算法作为一种全新的优化搜索算法, 与传统的优 化算法相比, 遗传算法具有适应性广、 抗干扰性强 、 鲁棒性强以及不受搜索空间限制性条件约束 、 适应 于并行处理 、 全局搜索等显著的特点 . 近年来, 引 起了广大学者的注意以及越来越大的研究及应用 热潮, 出现了很多的优秀研究成果, 广泛应用于自 动控制、 计算机科学 、 机器人学 、 模式识别和神经网 络等领域 . 集合覆盖问题 ( SCP ) 是经典组 合优化问题之 一, 被广泛应用到航空的人员行程安排 、 电路设计 、 运输的车辆路线安排等领域. 该问题已被证明是一 个 NP 完全问题 . 集合覆盖问题形式上可以描述 如下 : 令 A = ( aij ) 是一个 m 行 , n 列的 0- 1 矩阵 . C = ( cj ) 是一个 n 维整数向量 . 令 M = { 1,
第 22 卷 第 2 期 2006 年 4 月
பைடு நூலகம்
哈 尔 滨 商 业 大 学 学 报( 自然科学版)
Journal of Harbin University of Commerce ( Natural Sciences Edition)
Vol. 22 No. 2 Apr. 2006
一种遗传算法在集合覆盖问题中的应用研究