[发明专利]有约束条件排列组合编码生成算法及MATLAB实现方法在审

专利信息
申请号: 201710915691.1 申请日: 2017-09-30
公开(公告)号: CN107526903A 公开(公告)日: 2017-12-29
发明(设计)人: 杜瑞卿;杜彦辉;顾妍;张征田;张新刚 申请(专利权)人: 南阳师范学院
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 北京中恒高博知识产权代理有限公司11249 代理人: 刘洪京
地址: 473061 河南*** 国省代码: 河南;41
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 约束条件 排列组合 编码 生成 算法 matlab 实现 方法
【说明书】:

技术领域

发明属于运筹、规划、信息、计算机等领域的编码生成算法技术领域,特别涉及有约束条件排列组合编码生成算法及MATLAB实现方法。

背景技术

关于1,2,…,n的全排列及组合生成,目前已有数十种不同的求解算法。典型的排序算法有直接选择排序、冒泡排序、插入排序、归并排序、快速排序等;而全排列生成算法典型的如字典序法、进位法、换位法、邻位对换法等,其中一些是比较难理解的递归型算法。但实际应用中不完全是不同元素的全排列或组合,有时是有特殊要求的排列,诸如课程安排算法的求解,体育赛事的安排,车辆调度,整数线性规划求解,信息编码、某种算法或程序中的要求等。关于有约束条件要求的排列组合,有部分文献资料,但存在不足:1、算法思想不够简捷,比较复杂。2、算法描述不够描述精炼,不易让读者掌握领会。3、在程序实现上,不够具体,缺少明确性。4、约束条件简单,位数少,不具有普遍性。

发明内容

本发明目的是提供一种有约束条件排列组合编码生成的算法;基于算法的程序实现;以实例演示便于掌握该算法及程序;为信息编码、运筹、规划求解等科研、生产实际提供有效服务。

本发明是采用以下技术方案实现的:

一种有约束条件排列组合编码生成算法,包括有约束条件的排列生成方法和有约束条件的组合生成方法,

有约束条件的排列生成方法:

设排列a1a2…am,满足:0≤ai≤Ni,a1+a2+…+am=n,求所有a1a2…am的生成;

从满足约束条件的最小全排列开始,按依次增大的方法生成下一个全排列:

(1)从排列a1a2…an最右边开始向左边查找:at<Nt,t=max{i︱ai<Ni,i≠m},a1a2…at-1保持不变,at+1→at

(2)计算:

(3)重新生成第t+1位到m位:

MjφNj时,令a′j=Nj,Mj-1=Mj-Nj;Mj≤Nj时,令a′j=Mj,a′j-1=a′j-2=Λ=a′t+1=0;

(4)形成新的排列:a1a2Λat-1(at+1)a′t+1Λa′j-1a′jΛa′m

(5)重复(1)-(3),可生成全部排列,结束生成。

优选地,有约束条件的组合生成方法:

设求ai≠aj,i≠j,a1+a2+Λ+am=n,由a1,a2,…,am组成的所有组合。

从满足约束条件的最小升序组合开始,按依次增大的方法生成下一个升序组合:

(1)从升序组合a1a2…am的最右边开始寻找ak,t=max{j|aj-1φaj-1},

k=max{r|t-rφ1Ιar+1-ar=2}(1)式或者k=max{r|ar+1-ar≥3}(2)式;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南阳师范学院,未经南阳师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710915691.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top