[发明专利]一种构造有限集合部分覆盖的方法在审
申请号: | 201610109994.X | 申请日: | 2016-02-29 |
公开(公告)号: | CN105787593A | 公开(公告)日: | 2016-07-20 |
发明(设计)人: | 张迎周;吴寄语;徐晨晨;闫丽;尹秀;陈星昊;王星;赵莲 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06Q10/04 | 分类号: | G06Q10/04;G06Q10/06 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 构造 有限 集合 部分 覆盖 方法 | ||
技术领域
本发明涉及有限集合覆盖算法领域,尤其是一种构造有限集合部分覆盖的方法。
背景技术
集合覆盖问题(SetCoveringProblem,简称SCP)是运筹学研究中典型的组合优化问题, 同时也是计算机科学问题的一个典型代表,在资源分配、模式识别、运输车辆路线安排等诸多 领域有着广泛的应用。
针对集合覆盖这一问题,近年来,出现了一些用于解决集合覆盖问题的启发式算法,例 如遗传算法、人工蚁群算法、DNA计算等。由于本身固有的计算复杂难度,这些算法具有各 自优点的同时也表露出它们各自的缺陷。虽然这些用于解决集合覆盖问题的启发式算法都已 得到了广泛地关注,但是,关于有限集合的划分与覆盖方面却很少讨论和研究。
发明内容
为了解决有限集合覆盖的构造算法缺乏的问题,本发明提出一种构造有限集合部分覆盖 的方法,可以根据给定的约束条件来构造解空间,在此解空间上寻找问题的优化解,大大减 少原搜索空间的范围,提高求解效率。
一种构造有限集合部分覆盖的方法,包括以下步骤:
步骤1、输入有限集合中元素的个数n,生成有限集合A为{1,2,...,n};
步骤2、递归求出有限集合A的所有种类的划分,将划分结果存放到队列N[]中;
步骤3、通过运算求出有限集合A的第一层覆盖并存放到队列S[]中;
步骤4、将S[]赋值给存放最终结果的队列R[],完成对R[]的初始化;
步骤5、取S[]中及N[]中的所有元素,通过⊙运算构造其他覆盖,将结果保存到队列R[] 中;
步骤6、对R[]中的所有元素进行查重。
步骤2的具体过程为:
S201、如果n=1,则A有唯一的划分{1};否则执行S202;
S202、先生成集合{1,2,...,n-1}的所有不同划分,再生成集合{1,2,...,n}的所有不同划分;
S203、将求出的所有划分结果存放到队列N[]中。
其中S202的具体过程为:
S202-1、对于集合{1,2,...,n-1}的每一个i-1块划分,将{n}作为集合A的划分的一块添 加到这些划分中,得到集合A的子集{n}是其中一块的i块划分,其中i=n,n-1,...,2;
S202-2、对于集合{1,2,...,n-1}的每i-1块划分的第j块Nj,将{n}合并到块中,得到集 合A的i-1个i-1块划分,其中i=n,n-1,...,2,,j=1,2,...,i;
S202-3、综合S202-1、S202-2的结果,得到集合A的全部划分。
步骤3的具体过程为:
依次选取队列N[]中的不同元素,两两之间作运算,将结果保存到队列S[]对应元素的位置,其中S[]中的每个元素都是一个可变数组。
步骤5的具体过程为:
S501、取队列S[]中的元素S[i],取队列N[]中的N[k];
S502、如果k在S[i]记录的下标中,则跳过N[k],继续取划分队列N[]中的元素;否则 S[i]⊙;
S503、i和k值分别加1,重复执行S501~S502,直到队列S[]与N[]中的元素全部被取完。
其中S502为:如果N[k]可以加入S[i]中,则将S[i]⊙N[k]结果保存到R[]中,并将k加 入到R[]对应元素所记录的下标中;如果N[k]不可以加入S[i]中,则跳过,继续取划分队列N[] 中的元素。
步骤6的具体过程为:对队列R[]中的所有元素,对于下标数组中相同位置所对应的下 标也相同的所有R[]元素,进行第一次查重;对于下标数组中前i位的所有下标都相同,但是 第i+1位的下标不同的所有R[]元素,进行第二次查重。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610109994.X/2.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理