CN107122849A - 基于SparkR的产品检测总完工时间极小化方法 - Google Patents
基于SparkR的产品检测总完工时间极小化方法 Download PDFInfo
- Publication number
- CN107122849A CN107122849A CN201710255612.9A CN201710255612A CN107122849A CN 107122849 A CN107122849 A CN 107122849A CN 201710255612 A CN201710255612 A CN 201710255612A CN 107122849 A CN107122849 A CN 107122849A
- Authority
- CN
- China
- Prior art keywords
- product
- mrow
- testing
- testing inspection
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000012360 testing method Methods 0.000 claims abstract description 224
- 238000007689 inspection Methods 0.000 claims abstract description 125
- 238000001514 detection method Methods 0.000 claims abstract description 81
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims abstract description 41
- 230000002068 genetic effect Effects 0.000 claims abstract description 32
- 238000005457 optimization Methods 0.000 claims abstract description 30
- 238000004519 manufacturing process Methods 0.000 claims abstract description 21
- 238000002474 experimental method Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000004458 analytical method Methods 0.000 claims abstract description 13
- 238000012800 visualization Methods 0.000 claims abstract description 8
- 238000011173 large scale experimental method Methods 0.000 claims abstract description 6
- 108090000623 proteins and genes Proteins 0.000 claims description 65
- 238000012163 sequencing technique Methods 0.000 claims description 17
- 230000035772 mutation Effects 0.000 claims description 14
- 230000006978 adaptation Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000010998 test method Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 3
- 238000013100 final test Methods 0.000 claims description 3
- 238000010353 genetic engineering Methods 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 101150090724 3 gene Proteins 0.000 claims description 2
- 101150103518 bar gene Proteins 0.000 claims description 2
- 238000001914 filtration Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims description 2
- 241001269238 Data Species 0.000 claims 1
- 239000000284 extract Substances 0.000 claims 1
- 230000008676 import Effects 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 62
- 230000015654 memory Effects 0.000 abstract description 10
- 230000008901 benefit Effects 0.000 abstract description 6
- 238000013468 resource allocation Methods 0.000 abstract description 2
- 238000007306 functionalization reaction Methods 0.000 abstract 1
- 230000008859 change Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000006116 polymerization reaction Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012482 interaction analysis Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 101150028074 2 gene Proteins 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 206010062575 Muscle contracture Diseases 0.000 description 1
- MKYBYDHXWVHEJW-UHFFFAOYSA-N N-[1-oxo-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propan-2-yl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(C(C)NC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 MKYBYDHXWVHEJW-UHFFFAOYSA-N 0.000 description 1
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 1
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 208000006111 contracture Diseases 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005316 response function Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/04—Manufacturing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Genetics & Genomics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Manufacturing & Machinery (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Primary Health Care (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Physiology (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种基于SparkR的检测计划总完工时间极小化方法,用于解决制造企业试验检测计划任务复杂和检测室资源分配不合理的问题,实现步骤为:创建DataFrame,导入原始试验计划任务数据;调用DataFrame操作对数据预处理;设定目标函数和约束条件;建立遗传算法模型优化试验检测计划排序;得到产品最优试验检测计划排序,输出每道工序的开工和完工时间;输出整个检测计划最小完工时间;调用可视化包对试验检测计划排序展示。本发明结合R语言的数据处理功能和可视化能力,借助Spark内存计算和支持多种计算模型的优势,整个过程高效优化,能够对大规模试验任务数据集分析处理,优化产品试验检测计划的完工时间。
Description
技术领域
本发明属于智能制造技术领域,主要涉及智能制造中的产品试验检测计划排序的优化,具体是一种基于SparkR的产品检测总完工时间极小化方法。应用于制造企业解决大规模试验检测任务的排序问题,优化产品制造中的试验检测流程。及智能制
背景技术
智能制造中“产品检测计划总完工时间”,是指在产品试验检测调度中,以优化试验计划的总完工时间为目标,使得试验检测资源能够被稳定有效地利用,以及试验检测总周转时间减少,以提高制造检测中的工作效率。
在智能制造时代,客户对制造企业试验检测服务能力、周期和费用等要求越来越高。但企业自身试验检测能力和水平以及试验检测产能都不足,因此需要提高业务资源的高利用性和可伸缩性,缩短试验周期,满足企业需求,优化试验检测流程,节约时间和资源成本。
当前的制造企业中,试验检测计划主要存在如下问题:①试验计划人员凭借经验估计各检测室检测能力,存在人为因素,会使任务分配存在不合理。检测室在接收任务的时候,试验计划人员无法准确预估完成时间,可能会造成任务闲置或超负荷。②试验项目存在先后顺序、资源数量有限等多种约束,使试验计划调度过程变复杂。不同品种的产品试验检测项目对资源的需求不同,需要对试验项目的资源、所需的时间以及检测的先后顺序进行合理的安排。③针对试验检测计划多项目、多目标以及随机不确定性的问题,随着试验项目数量的增多,试验检测排序的计算量会呈指数级增加。当前制造企业都是一种人工经验排序,没有一种科学高效的试验计划总完工时间极小化方法作为排序依据。
针对以上问题,张腾飞等在其发表的论文“基于遗传算法的多目标车间调度问题的研究”(《组合机床与自动化加工技术》2016,5(5):43-50),公开了一种通过遗传算法解决多目标车间调度问题(JSP)的方法,并使用了11种测试用例来测试算法的性能,证明了遗传算法在解决这一问题方面的实用性。但该方法的不足之处是,对于大规模的作业调度任务,算法能处理的数据量受限于单机的内存容量,无法适应当前大型制造企业的大规模数据处理。Hadoop是流行的大数据处理平台,它的HDFS分布式文件系统和MapReduce编程模型比较好地解决了大数据分布式存储和处理的问题。例如曹书豪等在其发表的“一种改进的Hadoop多用户作业调度方法”(《计算机应用研究》2015,32(5):1395-1398),公开提出了一种基于服务质量(QoS)的作业选择量化和基于遗传算法的任务选择均衡化的方法,解决目前Hadoop作业调度方法服务水平不高、资源利用率低的问题。这一方法使得用户具备了处理大数据的处理能力,提高了Hadoop资源调度器的服务水平,而且负载均衡,但是这一方法没有考虑集群问题,不利于算法的扩展性。
R是非常流行的数据统计分析和制图的语言及环境,在数据挖掘分析中的使用程度仅次于SQL。R本身拥有强大的统计分析功能和丰富的第三方扩展包,在R语言环境下编程建立算法模型能方便的调用算法包和函数来解决试验检测计划调度排序问题,但目前R语言的核心运行环境是单线程的,能处理的数据量受限于单机的内存容量,大数据时代的海量数据处理对R构成了挑战。
2013年9月SparkR作为一个独立项目启动于加州大学伯克利分校的AMPLAB实验室,与Spark源出同门。2014年1月,SparkR项目在github上开源(https://github.com/amplab-extras/SparkR-pkg)。随后,工业界的Alteryx、Databricks、Intel等公司、普渡大学以及其它开发者在2015年4月成功地将SparkR合并进Spark代码库的主干分支,并在Spark 1.4版本中作为重要的新特性之一正式宣布。在R中可以无缝地使用RDD和DataFrame API,借助Spark内存计算、统一软件栈上支持多种计算模型的优势,高效地进行分布式数据计算和分析,解决大规模数据集带来的挑战。
综上所述:现有技术中,不少人进行了有益的尝试,开创了运用人工智能算法的新途径,将优化算法模型和Hadoop大数据计算框架相结合,提高了产品检测排序的效率。但是仅仅通过优化算法模型进行产品试验检测工序的优化,不足以解决车间调度中产生的大规模产品试验检测任务,而Hadoop的编程模型不够灵活和高效,运行时产生的中间值都写入磁盘,没有充分利用内存,性能不足。
发明内容
本发明的目的在于克服上述方法存在的缺陷和不足,提出了一种排序较优、能进行大规模数据处理的基于SparkR的产品检测总完工时间极小化方法,用于解决现有产品试验检测排序方法中存在的优化问题、数据量扩大的问题以及数据统计分析和高效编程模型的结合问题。
本发明是一种基于SparkR的产品检测总完工时间极小化方法,总完工时间极小化过程涉及到产品的试验任务,试验工序,设备资源以及完工时间,把各个产品的试验任务分配到设备资源对应的各个检测室,在产品的试验任务确定的情况下,具体步骤包括有:
(1)导入原始试验数据:在R中调用DataFrame接口,首先创建SparkContext,然后创建SQLContext,用SQLContext来创建DataFrame,导入原始产品试验检测任务数据,用DataFrame对试验检测任务数据进行存储,方便后续调用和操作,原始产品试验检测任务数据量可达到TB量级;
(2)数据预处理:在所创建的DataFrame中对大规模试验任务数据根据产品试验检测任务进行缺失值的查找、插补、过滤以及数据列的操作和提取部分数据,DataFrame表中每个列都可以是不同的数据类型;
(3)确定试验检测任务目标函数和约束条件的数学模型:目标函数根据产品试验任务的最终目标建立,即试验检测计划排序的总完工时间,约束条件根据各试验检测产品的检测先后顺序和各检测室的检测先后顺序确定;
(4)建立产品试验检测任务总完工时间的遗传算法优化模型:对产品的所有试验检测任务数据进行参数初始化、遗传算子的设定、初始种群生成、个体编码、个体适应度计算、交叉和变异操作,得到子代基因序列,即产品的试验检测任务排序,然后根据个体适应度对试验检测任务的排序进行选择,计算每种排序的完工时间,如果目标函数的解没有收敛,则以得到的子代基因序列作为父代继续进行交叉和变异迭代操作,直到目标函数的解收敛;
(5)输出最优试验检测计划排序和每个产品、每道工序的开工、完工时间:满足迭代次数,结果达到收敛条件,即目标函数的解收敛,结束迭代,输出最优试验检测排序和每个产品、每道工序的开工和完工时间列表;
(6)输出整个试验检测计划总完工时间:根据每个产品、每道工序的开工、完工时间,所有产品最后一道工序中的最大完工时间,即为整个试验检测任务的总完工时间,将总完工时间输出;
(7)试验检测计划的可视化展示:总完工时间不能完全展示整个试验检测排序情况,根据每个产品、每道工序的开工、完工时间,将最终的试验检测排序显示为甘特图,将每个产品、每道工序在检测室检测的先后顺序和加工时间信息可视化展示。
本发明所提出的一种基于SparkR的产品检测总完工时间极小化方法,能更好的优化大规模试验检测计划排序问题。
本发明与现有技术相比,具有以下优点:
(1)通过采用R语言丰富的统计功能和数据处理能力以及大量的第三方包,建立遗传算法优化模型对试验检测计划排序进行全局进化寻优,经过一定次数的进化迭代后,得到优化后的计划排序和最短的试验检测计划总完工时间。
(2)SparkR将Spark的分布式扩展能力与R的数据分析功能结合,利用R进行大数据交互分析,在节点上调用R的数据分析库,然后借助Spark内存计算、统一软件栈的多种计算模型高效地进行分布式计算和分析处理TB量级的试验检测任务数据。
附图说明
图1是本发明的整体方法流程图;
图2是本发明中SparkR整体架构图;
图3是本发明中遗传算法流程图;
图4是本发明中5×5产品问题种群均值和目标函数解的变化图;
图5是本发明中5×5产品问题的试验检测方案最优甘特图。
具体实施方式
下面将结合附图和具体实例,对本发明作详细说明。
实施例1
目前制造企业的产品试验检测排序方法主要以人工经验为主,效率低,资源利用也不充分,而且产品试验检测任务数据量不断扩大,已有的算法优化模型能处理的数据量受限于单机的内存容量,无法实现大规模数据的分析,而基于Hadoop的产品调度方法虽然使用户具备了大数据的处理能力,但没有考虑集群问题,不利于算法模型的扩展性,数据统计和分析能力不足。
本发明针对现有产品试验检测排序方法中急需解决的优化问题、数据量扩大的问题以及数据统计分析和高效编程模型的结合问题提出一种基于SparkR的产品检测计划总完工时间极小化方法,也是一种大数据处理场景的产品试验检测计划排序优化方法。总完工时间极小化过程涉及到产品的试验任务,试验工序,设备资源以及完工时间,参见图1,本发明在充分考虑现有试验工序和设备资源限制的基础上,把各个产品的试验任务合理的分配到设备资源对应的各个检测室,在产品的试验任务确定的情况下,具体步骤包括有:
(1)导入原始试验数据:在R中调用DataFrame接口,首先创建SparkContext,然后创建SQLContext,用SQLContext来创建DataFrame,导入原始产品试验检测任务数据,在DataFrame中进行后续数据的操作。DataFrame可以存储TB级的试验检测任务数据,表中每列都可以是不同的数据类型。
(2)数据预处理:DataFrame的数据操作主要包括数据缓存、排序、列操作、数据类型转换、数据聚合以及提取数据等。由于原始试验检测任务的部分数据可能缺失或者记录异常,影响后续的数据处理和结果的准确性,所以本发明在所创建的DataFrame中对试验任务数据根据产品试验检测要求进行的数据预处理操作包括有:缺失值和异常值的查找、插补和过滤。
(3)确定试验检测任务目标函数和约束条件的数学模型:目标函数根据产品试验任务的最终目标建立,即试验检测计划排序的总完工时间。约束条件根据各试验检测产品的检测先后顺序和各检测室的检测先后顺序确定,一个试验任务包含m个试验产品,这m个试验产品的n道工序要在k个检测室中检测,每个试验产品的每道工序在不同的检测室里进行试验。
(4)建立产品试验检测任务总完工时间的遗传算法优化模型:对产品的所有试验检测任务数据进行种群数目和遗传代数的设定、交叉概率和变异概率的设定、初始种群生成、个体编码、适应度函数设定、个体适应度计算、交叉和变异操作,得到子代基因序列,即产品的试验检测任务排序,然后根据个体适应度对试验检测任务的排序进行选择,计算每种排序的完工时间,如果目标函数的解没有收敛,则以得到的子代基因序列作为新父代继续进行交叉和变异迭代操作,直到目标函数的解收敛。
(5)输出最优试验检测计划排序和每个产品、每道工序的开工、完工时间:例如4×4的试验检测任务数据,满足迭代代数15次后,目标函数的解收敛,即目标函数的解不再发生变化,结束迭代,输出此时的试验检测计划排序和每个产品、每道工序的开工和完工时间列表。
(6)输出整个试验检测计划总完工时间:根据每个产品、每道工序的开工、完工时间,所有产品最后一道工序中的最大完工时间,即为整个试验检测任务的总完工时间,将总完工时间输出。
(7)试验检测计划的可视化展示:总完工时间不能完全展示整个试验检测排序情况,根据每个产品、每道工序的开工、完工时间,将最终的试验检测排序显示为甘特图,将每个产品、每道工序在检测室检测的先后顺序、加工时间和完工时间信息进行可视化展示。
本发明通过采用R语言丰富的统计功能和数据处理能力以及大量的第三方包,建立遗传算法优化模型对试验检测计划排序进行全局进化寻优,经过一定次数的进化迭代后,得到最优的产品试验计划排序和最短的试验检测计划总完工时间。
实施例2
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1,本发明步骤(2)所述的DataFrame是为存储产品试验检测任务数据创建的一种类似R的data.frame的二维表,用schema来表示产品试验检测计划任务数据列的名字和数据类型,DataFrame中的所有试验检测任务数据全部是以JVM的数据类型来存储,一个DataFrame方法的实现就是简单地调用JVM端DataFrame的数据处理方法,直接通过R程序对DataFrame中存储的试验检测任务数据进行调用和预处理操作。DataFrame API还包含了一部分RDD API,需要先将DataFrame转换成RDD,然后调用RDD的数据分组、聚合和重分区操作,在这种情况下需要启动R Worker进程来进行试验检测任务数据的分布式计算和处理。
目前SparkR的DataFrame API已经比较完善,Spark的DataFrame API源自R的DataFrame数据类型,对于R用户使用更便利,而且SparkR DataFrame API性能和直接使用Spark框架同样高效。
实施例3
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1-2,本发明步骤(3)的确定试验检测任务目标函数和约束条件的数学模型,试验检测计划调度问题包括确定各检测室上的检测先后顺序和在试验计划调度问题中试验检测任务所要满足的约束条件,其中约束条件具体包括:
(3.1)每个试验任务有若干个试验检测产品组成,每个试验产品的若干个工序在不同检测室进行检测,其中每个检测室在同一时间只能检测一个试验产品,每个试验产品在同一时间只能在一个检测室进行检测。本发明中试验产品简称产品。
(3.2)每个试验产品必须在试验检测人员指定的检测室中进行检测。
(3.3)每个试验产品必须在它前面的试验工序检测完工后才能开始下一个工序的检测。
(3.4)每个试验产品在试验检测过程中不会被另外的试验产品中断。
(3.5)试验任务检测的过程中,不允许新试验检测任务的加入。
约束条件的数学模型为:
cik-pik+M(1-aihk)≥cih,i=1,2,…,n,h,k=1,2,…,m
cjk-cik+M(1-xihk)≥pjh,i,j=1,2,…,n,k=1,2,…,m
cik≥0,i=1,2,…,n,k=1,2,…,m
xijk=0或1,i,j=1,2,…,n,k=1,2,…,m
其中,cik为i产品在检测室k上的完成时间,pik为i产品在检测室k上加工时间,M是一个足够大的正数,aihk表示指示系数和xijk表示指示变量。
有关产品试验检测计划最小总完工时间的目标函数f(x),具体函数如下:
其中T表示产品试验检测总完工时间,cik表示i产品在检测室k上的完成时间,m表示试验检测任务中的产品数,n表示每个产品有n道工序,k表示检测室个数,i表示产品编号。
针对产品试验检测计划排序的最终目标设定目标函数,即m个产品的n道工序在检测室k中的最小完成时间,设定的目标函数与适应度函数相对应,确保适应度函数的解为非负值,所以将目标函数直接设定为最小总完工时间。
实施例4
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1-3,步骤(4)建立的产品试验检测任务总完工时间的遗传算法优化模型具体包括如下步骤:
(4.1)初始化遗传算法参数:遗传操作的效果与遗传算子的选取、编码方法、群体大小、初始群体以及适应度函数的设定密切相关,遗传算法参数主要包括初始种群大小、交叉算子、变异算子和迭代次数,根据试验检测任务数据量进行设定,例如4×4的试验检测任务,设定初始种群大小为40,交叉算子为0.8,变异算子为0.1,迭代代数为15。
(4.2)个体编码操作:根据试验检测计划(工序)进行编码,每个基因序列由m×n个代表工序的基因组成,每个基因序列都表示试验检测任务的一种排列,其中m表示产品个数,n表示产品工序个数。例如7×4的试验检测任务表示7个试验产品进行检测,每个产品各有4道工序,每个产品的工序都在特定的检测室进行检测,所以每个编码的基因序列都对应一个检测室序列。
(4.3)生成遗传算法优化模型的初始种群:根据试验检测计划(工序)进行编码后,通过R编程由系统随机生成N条基因序列,这些基因序列即是遗传算法优化模型的初始种群,其中N表示初始种群数目,根据试验检测任务数据量设定。
(4.4)编写适应度函数:总完工时间极小化对应最小值问题,适应度函数值需为正值,适应度越小代表目标函数值越趋近当前种群中目标函数的最小估计值,保证了个体适应度函数非负,将产品试验检测计划的目标函数f(x)与当前种群中目标函数的最小估计值Cmin之差作为适应度函数ffit(x),适应度函数表示如下:
其中,Cmin是目标函数f(x)的最小估计值,取当前种群中目标函数的最小值。
(4.5)交叉与变异操作:
(4.5.1)交叉:随机选择两个父代基因序列P1和P2,在两个父代基因序列中提取i(1≤i≤m)编号的n个基因,保持其他编号顺序不变,然后分别保存在新的基因串C1和C2中,将新基因串C1和C2分别交叉插入到两个父代基因序列P2和P1留出的n个空位中,就完成了一次交叉操作,产生两个子代基因序列O1和O2。
(4.5.2)变异:从当前种群中选取一个个体基因序列作为父代O1,从试验产品编号中随机选择两个产品号,将其产品号位置交换,生成中间基因串O’1,然后再将基因序列O’1中的基因左移或者右移a个位置,得到最终子代基因序列O”1,完成产品试验检测计划遗传算法优化模型的一次交叉和变异操作。
(4.6)得到的子代基因序列O”1即为产品的试验检测任务排序,根据个体适应度对试验检测任务的排序进行选择,计算每种排序的完工时间,如果目标函数的解没有收敛,则以得到的子代基因序列作为新父代继续进行交叉和变异迭代操作,直到目标函数的解收敛,结束迭代,输出最优试验检测排序和每个产品、每道工序的开工和完工时间列表。
面对复杂的试验检测任务排序,本发明产品检测计划排序遗传算法优化模型同时处理种群中的多个个体,即对种群中的多个基因序列进行评估,减少了陷入局部最优解的风险,能在充分地利用检测室资源的同时合理的将各项试验任务进行优化排序,在不断交叉和变异迭代操作中找到最优的产品试验检测排序和最短的完工时间。
实施例5
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1-4,对试验检测任务数据进行调用RDD的数据分组、聚合和重分区操作时,首先将DataFrame转换成RDD,在执行大规模试验检测任务数据处理时会启动一个Rworker进程,将试验检测任务数据进行分区安排到每个子节点进行分布式计算和分析,通过socket连接将分区试验检测任务数据、序列化后的R函数以及其它信息传给每个R worker进程,每个R worker进程反序列化接收分区试验检测任务数据和编写好的R函数,将R函数应用到分区试验检测任务数据上,最终将结果数据序列化成字节数组传回JVM后端。
SparkR中的RDD数据操作将大规模数据分区安排到子节点中进行分布式的计算和分析,在节点上利用R的数据分析库,利用R进行大数据交互分析的同时借助Spark内存计算、支持多种计算模型的优势,解决R环境的单线程操作对数据量的限制问题。
实施例6
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1-5,步骤(4.3)基于试验检测计划(工序)进行编码,每个个体编码由每个基因序列由m×n个代表工序的基因序列组成,是所有试验项目的排列,例如4×4试验任务:{2,3,4,1,1,3,2,2,4,3,2,4,3,1,1,4}表示4个产品各有4个工序,其中第二次出现的编号3表示产品3的第2道工序,编码1-4位表示产品2、产品3、产品4、产品1的第1道工序,编码5-6位表示产品1、产品3的第2道工序,以此类推。
检测室的安排是由检测人员来设定的,例如上述工序编码对应的检测室安排为{4,1,2,3,3,2,3,1,2,3,4,4,1,4,1,2},其中第一个4表示产品2的第1道工序在检测室4中进行检测。
实施例7
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1-6,步骤(4.5)遗传操作主要包括交叉和变异操作,具体步骤包括:
(4.5.1)交叉:在两个父代基因序列P1和P2中选择试验产品1和3,将其抽出,产生新的基因串C1和C2:
父代1P1:[2,3,4,1,1,3,2,2,4,3,2,4,3,1,1,4]→C1:[3,1,1,3,3,3,1,1]
父代2P2:[1,1,2,4,3,3,4,2,1,3,4,1,2,2,3,4]→C2:[1,1,3,3,1,3,1,3]
将新的基因串C1和C2分别交叉插入P2和P1:
C2:[1,1,3,3,1,3,1,3]→P1:[2,_,4,_,_,_,2,2,4,_,2,4,_,_,_,4]
C1:[3,1,1,3,3,3,1,1]→P2:[_,_,2,4,_,_,4,2,_,_,4,_,2,2,_,4]
得到的子代基因序列O1和O2:
子代1O1:[2,1,4,1,3,3,2,2,4,1,2,4,3,1,3,4]
子代2O2:[3,1,2,4,1,3,4,2,3,3,4,1,2,2,1,4]
(4.5.2)变异:父代O1,随机选取两个产品号2和4,交换2和4的位置得到中间子代基因序列O’1:
父代O1:[4,1,3,3,2,2,4,1,2,4,3,1,3,4,2,1]→O’1:[2,1,3,3,4,4,2,1,4,2,3,1,3,2,4,1]
然后随机左移3个基因位置,得到最终子代基因序列:
子代O”1:[3,4,4,2,1,4,2,3,1,3,2,4,1,2,1,3]
每条子代基因序列都代表一种试验检测排序。
本发明利用R语言强大的统计分析功能和丰富的算法包以及计算函数,在R环境中建立算法优化模型的同时在R中无缝地使用RDD和Data Frame API,借助Spark内存对大规模计算、统一软件栈上支持多种计算模型的优势,解决复杂产品试验检测计划调度排序问题,高效地进行分布式数据计算和分析,解决大规模数据集带来的挑战。
下面结合附图给出一个更加完整详实的实例,对本发明进一步详细说明。
实施例8
基于SparkR的产品试验检测计划总完工时间极小化方法同实施例1-7,下面以5×5的产品试验检测计划问题为例,产品在检测室中的检测信息与加工时间如表1所示,产品种类为:P={1,2,3,4,5};检测室种类为:J={1,2,3,4,5};
表1 5×5检测任务的检测信息
参照图1,本发明所提供的是一种基于SparkR的产品检测总完工时间极小化方法,具体步骤包括:
(1)导入原始试验数据:在R中调用DataFrame接口,首先创建SparkContext,然后创建SQLContext,用SQLContext来创建DataFrame,导入原始产品试验检测任务数据,用DataFrame对试验检测任务数据进行存储,方便后续调用和操作。
参照图2,本发明是一种基于SparkR的产品检测计划总完工时间极小化方法,其中SparkR主要由SparkR包和JVM后端两部分组成。SparkR包是一个R扩展包,为R的运行环境提供了RDD和DataFrame API。SparkR API运行在R解释器中,而Spark Core运行在JVM中。RJVM后端是Spark Core中的一个组件,提供了R解释器和JVM虚拟机之间的桥接功能,能够让R代码创建Java类的实例、调用Java对象的实例方法或者Java类的静态方法。SparkRDataFrameAPI不需要传入R语言的函数(UDF()方法和RDD相关方法除外),DataFrame中的数据全部是以JVM的数据类型存储的。R端的DataFrame对象就是对应的JVM端DataFrame对象的wrapper,一个DataFrame方法的实现就是简单地调用JVM端DataFrame的相应方法;DataFrame API还包含了一部分RDD API,先将DataFrame转换成RDD,然后调用RDD的数据分组、聚合和重分区操作,启动R Worker进程来进行试验检测任务数据的分布式计算和处理,通过socket连接将父RDD的分区数据、序列化后的R函数以及其它信息传给R worker进程,Rworker进程反序列化接收到的分区数据和R函数,将R函数应用到分区数据上,再把结果数据序列化成字节数组传回JVM端。
(2)数据预处理:对产品试验检测任务数据对缺失值进行查找、过滤和插补,然后将DataFrame数据类型转换为RDD类型,调用RDD方法进行数据转换、数据分组、聚合和重分区等操作。
(3)确定试验检测任务目标函数和约束条件的数学模型,具体步骤同上述实施例3。
(4)参照图3,建立的产品试验检测任务总完工时间的遗传算法优化模型具体包括如下步骤:
(4.1)初始化遗传算法参数:针对本例5×5的试验检测任务,设定交叉算子为0.8,变异算子为0.1,迭代代数为20。
(4.2)个体编码操作:针对本例5×5的试验检测任务,工序编码系统随机初始设定为{3,2,1,5,4,3,2,4,5,1,3,2,1,5,4,1,2,3,5,4,2,3,1,5,4}。
(4.3)生成遗传算法优化模型的初始种群:针对本例5×5的试验检测任务数据,设定初始种群数目为45。
(4.4)编写适应度函数:适应度函数表示如下:
其中,Cmin是目标函数f(x)的最小估计值,取当前种群中目标函数的最小值。
(4.5)交叉与变异操作:
(4.5.1)交叉:在两个父代基因序列P1和P2中随机选择试验产品2和4,将其抽出,产生新的基因串C1和C2:
父代1P1:{3,2,1,5,4,3,2,4,5,1,3,2,1,5,4,1,2,3,5,4,2,3,1,5,4}→C1:[2,4,2,4,2,4,2,4,2,4]
父代2P2:{1,4,3,2,5,4,3,5,5,3,1,1,5,3,4,2,3,1,2,2,4,4,1,2,5}→C2:[4,2,4,4,2,2,2,4,4,2]
将新的基因串C1和C2分别交叉插入P2和P1:
C2:[4,2,4,4,2,2,2,4,4,2]→P1:{3,_,1,5,_,3,_,_,5,1,3,_,1,5,_,1,_,3,5,_,_,3,1,5,_}
C1:[2,4,2,4,2,4,2,4,2,4]→P2:{1,_,3,_,5,_,3,5,5,3,1,1,5,3,_,_,3,1,_,_,_,_,1,_,5}
得到的子代基因序列O1和O2:
子代1O1:{3,4,1,5,2,3,4,4,5,1,3,2,1,5,2,1,2,3,5,4,4,3,1,5,2}
子代2O2:{1,2,3,4,5,2,3,5,5,3,1,1,5,3,4,2,3,1,4,2,4,2,1,4,5}
(4.5.2)变异:父代O1,随机选取两个产品号1和2,交换1和2的位置得到中间子代基因序列O’1:
父代O1:{3,4,1,5,2,3,4,4,5,1,3,2,1,5,2,1,2,3,5,4,4,3,1,5,2}
→O’1:{3,4,2,5,1,3,4,4,5,2,3,1,2,5,1,2,1,3,5,4,4,3,2,5,1}
然后随机y移2个基因位置,得到最终子代基因序列:
子代O”1:{2,5,1,3,4,4,5,2,3,1,2,5,1,2,1,3,5,4,4,3,2,5,1,3,4}
每条子代基因序列都代表一种试验检测排序。
(4.6)得到的子代基因序列O”1即为产品的试验检测任务排序,根据个体适应度对试验检测任务的排序进行选择,计算每种排序的完工时间,如果目标函数的解没有收敛,则以得到的子代基因序列作为新父代继续进行交叉和变异迭代操作,直到目标函数的解收敛,结束迭代,输出最优试验检测排序和每个产品、每道工序的开工和完工时间列表。
运用图2和图3中的试验检测计划总完工时间极小化方法计算得到的各工序和各检测室开工和完工时间如表2所示:
表2 5×5产品检测计划开工和完工时间
(5)输出优化产品检测排序{1,2,3,4,5,1,2,5,4,3,1,2,3,4,5,3,2,1,4,5,2,1,3,4,5}。
(6)根据试验检测计划中每道工序、每个检测室开工完工时间,输出总完工时间为30小时。
(7)试验检测计划的可视化展示:
将每个产品、每道工序的开工完工时间作为输入,调用R中的可视化包plotrix对排序结果进行甘特图展示。
如图4所示,为整个产品检测计划目标函数最优解的变化,横坐标表示遗传代数,纵坐标表示个体数目,虚线表示种群中完工时间均值的变化,实线表示目标函数最优解的变化,可以看出,5×5的试验检测任务最优检测计划排序最小完工时间收敛于30小时。
如图5所示,为整个产品检测计划优化排序的甘特图显示,横坐标表示完工时间,纵坐标表示检测室名称,编号P1,P2,P3,P4,P5表示5个产品,例如检测室M4中的检测顺序为产品1,产品2,产品5,产品3,产品4。可以看出,在保证所有约束条件和检测任务顺序的情况下,产品试验检测计划排序较优,各个产品的每道工序互不冲突,检测室得到了充分利用。
本发明通过采用遗传算法优化模型对多产品、多工序试验项目进行试验检测计划的排序优化。调用SparkR在Spark的分布式计算平台上结合R本身的数据处理功能和可视化能力,对大规模数据集进行分析处理,得到试验检测计划的最小完工时间。
以上描述仅是本发明的一些具体实例,对于本领域的专业人员来说,在了解了本发明的流程和原理后,都可在不背离本发明的原理的情况下,进行形式和细节上的各种修改和变形,倘若这些修改和变形在本发明权利要求极其等同技术的范围内,则这些修改变形也在本发明的保护范围之内。说明书中未详细描述的内容为本领域技术人员的现有技术。
本发明提出的一种基于SparkR的检测计划总完工时间极小化方法,用于解决制造企业存在的试验检测计划任务复杂和检测室资源分配不合理的问题,其实现步骤为:(1)创建DataFrame,导入原始试验计划任务数据;(2)调用DataFrame操作对数据进行预处理;(3)设定目标函数和约束条件;(4)建立遗传算法模型优化试验检测计划排序;(5)输出最优试验检测计划排序,输出每个产品、每道工序的开工和完工时间;(6)输出整个检测计划最小完工时间;(7)调用可视化包对试验检测计划排序展示。本发明结合R本身的数据处理功能和可视化能力,借助Spark内存计算和支持多种计算模型的优势,高效地对大规模数据集进行分析处理,得到试验检测计划的最小完工时间。
Claims (7)
1.一种基于SparkR的产品检测计划总完工时间极小化方法,总完工时间极小化过程涉及到产品的试验任务,试验工序,设备资源以及完工时间,其特征在于,把各个产品的试验任务分配到设备资源对应的各个检测室,在产品的试验任务确定的情况下,具体步骤包括有:
(1)导入原始试验数据:在R中调用DataFrame接口,首先创建SparkContext,然后创建SQLContext,用SQLContext来创建DataFrame,导入原始产品试验检测任务数据,用DataFrame对试验检测任务数据进行存储,原始产品试验检测任务数据量可达到TB量级;
(2)数据预处理:在所创建的DataFrame中对大规模试验任务数据根据产品试验检测任务进行缺失值的查找、插补、过滤以及数据列的操作和提取部分数据;
(3)确定试验检测任务目标函数和约束条件的数学模型:目标函数根据产品试验任务的最终目标建立,即试验检测计划排序的总完工时间,约束条件根据各试验检测产品的检测先后顺序和各检测室的检测先后顺序确定;
(4)建立产品试验检测任务总完工时间的遗传算法优化模型:对产品的所有试验检测任务数据进行参数初始化、遗传算子的设定、初始种群生成、个体编码、个体适应度计算、交叉和变异操作,得到子代基因序列,即产品的试验检测任务排序,然后根据个体适应度对试验检测任务的排序进行选择,计算每种排序的完工时间,如果目标函数的解没有收敛,则以得到的子代基因序列作为父代继续进行交叉和变异迭代操作,直到目标函数的解收敛;
(5)输出最优试验检测计划排序和每个产品、每道工序的开工、完工时间:满足迭代次数,结果达到收敛条件,即目标函数的解收敛,结束迭代,输出最优试验检测排序和每个产品、每道工序的开工和完工时间列表;
(6)输出整个试验检测计划总完工时间:根据每个产品、每道工序的开工、完工时间,所有产品最后一道工序中的最大完工时间,即为整个试验检测任务的总完工时间,将总完工时间输出;
(7)试验检测计划的可视化展示:总完工时间不能完全展示整个试验检测排序情况,根据每个产品、每道工序的开工、完工时间,将最终的试验检测排序显示为甘特图,将每个产品、每道工序在检测室检测的先后顺序和加工时间信息可视化展示。
2.根据权利要求1所述的基于SparkR的产品检测计划总完工时间极小化方法,其特征在于,步骤(2)所述的DataFrame是为存储产品试验检测任务数据创建的一种类似R的data.frame的二维表,用schema来表示产品试验检测计划任务数据列的名字和数据类型,DataFrame中的所有试验检测任务数据全部以JVM的数据类型来存储,简单地调用JVM端DataFrame的数据处理方法,直接通过R程序对DataFrame中存储的试验检测任务数据进行调用和预处理操作;DataFrame API还包含了一部分RDD API,先将DataFrame转换成RDD,然后调用RDD的相关方法,启动R Worker进程来进行试验检测任务数据的分布式计算和处理。
3.根据权利要求1所述的基于SparkR的产品检测计划总完工时间极小化方法,其特征在于,步骤(3)所述的确定试验检测任务目标函数和约束条件的数学模型,其中约束条件具体包括:
(3.1)每个试验任务有若干个试验检测产品组成,每个试验产品的若干个工序在不同检测室进行检测,其中每个检测室在同一时间只能检测一个试验产品,每个试验产品在同一时间只能在一个检测室进行检测;
(3.2)每个试验产品必须在试验检测人员指定的检测室中进行检测;
(3.3)每个试验产品必须在它前面的试验工序检测完工后才能开始下一个工序的检测;
(3.4)每个试验产品在试验检测过程中不会被另外的试验产品中断;
(3.5)试验任务检测的过程中,不允许新试验检测任务的加入;
约束条件的数学模型为:
cik-pik+M(1-aihk)≥cih,i=1,2,…,n,h,k=1,2,…,m
cjk-cik+M(1-xihk)≥pjh,i,j=1,2,…,n,k=1,2,…,m
cik≥0,i=1,2,…,n,k=1,2,…,m
xijk=0或1,i,j=1,2,…,n,k=1,2,…,m
其中,cik为i产品在检测室k上的完成时间,pik为i产品在检测室k上加工时间,M是一个足够大的正数,aihk表示指示系数和xijk表示指示变量。
有关产品试验检测计划最小总完工时间的目标函数f(x),具体函数如下:
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>min</mi>
<mi> </mi>
<mi>T</mi>
<mo>=</mo>
<mi>min</mi>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>c</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
</mrow>
其中T表示产品试验检测总完工时间,m表示试验检测任务中的产品数,n表示每个产品有n道工序。
4.根据权利要求1所述的基于SparkR的产品检测计划总完工时间极小化方法,其特征在于,步骤(4)所述的建立产品试验检测任务总完工时间的遗传算法优化模型具体包括如下步骤:
(4.1)初始化遗传算法参数:遗传算法参数主要包括种群大小、交叉算子、变异算子和迭代次数,根据试验检测任务数据进行设定,设定即为初始化;
(4.2)个体编码操作:根据试验检测计划(工序)进行编码,每个基因序列由m×n个代表工序的基因组成,每个基因序列都表示试验检测任务的一种排列,其中m表示产品个数,n表示产品工序个数;
(4.3)生成遗传算法优化模型的初始种群:根据试验检测计划进行编码后,通过R编程由系统随机生成N条基因序列,这些基因序列即是遗传算法优化模型的初始种群;
(4.4)编写适应度函数:总完工时间极小化对应最小值问题,适应度函数值需为正值,适应度越小代表个体越好,为了保证个体适应度函数为正,将产品试验检测计划的目标函数f(x)与当前种群中目标函数的最小估计值Cmin之差作为适应度函数ffit(x),适应度函数表示如下:
<mrow>
<msub>
<mi>f</mi>
<mrow>
<mi>f</mi>
<mi>i</mi>
<mi>t</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<msub>
<mi>C</mi>
<mrow>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>&GreaterEqual;</mo>
<msub>
<mi>C</mi>
<mrow>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo><</mo>
<msub>
<mi>C</mi>
<mrow>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,Cmin是目标函数f(x)的最小估计值,取当前种群中目标函数的最小值;(4.5)交叉与变异操作:
(4.5.1)交叉:随机选择两个父代基因序列P1和P2,在两个父代基因序列中删除i(1≤i≤m)编号的基因,保持其他编号顺序不变,然后分别保存在新的基因串C1和C2中,将新基因串C1和C2分别交叉插入到两个父代基因序列P2和P1留出的空位中,就完成了一次交叉操作,产生两个子代基因序列O1和O2;
(4.5.2)变异:从当前种群中选取一个个体基因序列作为父代O1,从试验产品编号中随机选择两个号码,将其产品号交换,生成中间基因串O’1,然后再将基因序列O’1中的基因左移或者右移a个位置,得到最终子代基因序列O”1;
(4.6)如果目标函数的解没有收敛,以得到的子代基因序列作为父代继续进行交叉和变异迭代操作得到新子代,直到目标函数的解收敛,当目标函数的解收敛后,结束迭代,输出最优试验检测排序和每个产品、每道工序的开工和完工时间列表。
5.根据权利要求2所述的基于SparkR的产品检测计划总完工时间极小化方法,其特征在于,所述对试验检测任务数据进行调用和预处理操作,调用RDD的相关方法,执行大规模试验检测任务数据时会启动一个R worker进程,将大规模试验检测任务数据进行分区安排到每个子节点进行分布式计算和分析,通过socket连接将分区试验检测任务数据、序列化后的R函数以及其它信息传给每个R worker进程,每个R worker进程反序列化接收分区试验检测任务数据和编写好的R函数,将R函数应用到分区试验检测任务数据上,最终将结果数据序列化成字节数组传回JVM后端。
6.根据权利要求4所述的建立产品试验检测任务总完工时间的遗传算法优化模型,其特征在于,步骤(4.3)所述个体编码由每个基因序列由m×n个代表工序的基因序列组成,是所有试验项目的排列,例如4×4试验任务:{2,3,4,1,1,3,2,2,4,3,2,4,3,1,1,4}表示4个产品各有4个工序,其中第二次出现的数字3表示工件3的第2道工序。
7.根据权利要求4所述的建立产品试验检测任务总完工时间的遗传算法优化模型,其特征在于,步骤(4.5)所述的遗传操作主要包括交叉和变异操作,具体步骤包括:
(4.5.1)交叉:在两个父代基因序列P1和P2中选择试验产品1和3,将其抽出,产生新的基因串C1和C2:
父代1 P1:[2,3,4,1,1,3,2,2,4,3,2,4,3,1,1,4]→C1:[3,1,1,3,3,3,1,1]
父代2 P2:[1,1,2,4,3,3,4,2,1,3,4,1,2,2,3,4]→C2:[1,1,3,3,1,3,1,3]
将新的基因串C1和C2分别交叉插入P2和P1:
C2:[1,1,3,3,1,3,1,3]→P1:[2,_,4,_,_,_,2,2,4,_,2,4,_,_,_,4]
C1:[3,1,1,3,3,3,1,1]→P2:[_,_,2,4,_,_,4,2,_,_,4,_,2,2,_,4]
得到的子代基因序列O1和O2:
子代1 O1:[2,1,4,1,3,3,2,2,4,1,2,4,3,1,3,4]
子代2 O2:[3,1,2,4,1,3,4,2,3,3,4,1,2,2,1,4]
(4.5.2)变异:父代O1,随机选取两个产品号2和4,交换2和4的位置得到中间子代基因序列O’1:
父代O1:[4,1,3,3,2,2,4,1,2,4,3,1,3,4,2,1]→O’1:[2,1,3,3,4,4,2,1,4,2,3,1,3,2,4,1]
然后随机左移3个基因位置,得到最终子代基因序列:
子代 O”1:[3,4,4,2,1,4,2,3,1,3,2,4,1,2,1,3]
每条子代基因序列都代表一种试验检测排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710255612.9A CN107122849B (zh) | 2017-04-19 | 2017-04-19 | 基于SparkR的产品检测总完工时间极小化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710255612.9A CN107122849B (zh) | 2017-04-19 | 2017-04-19 | 基于SparkR的产品检测总完工时间极小化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122849A true CN107122849A (zh) | 2017-09-01 |
CN107122849B CN107122849B (zh) | 2021-01-05 |
Family
ID=59725309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710255612.9A Active CN107122849B (zh) | 2017-04-19 | 2017-04-19 | 基于SparkR的产品检测总完工时间极小化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122849B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111461552A (zh) * | 2020-04-02 | 2020-07-28 | 中电工业互联网有限公司 | 基于多品种、小批量订单的试验自动化排程方法及系统 |
WO2023004597A1 (zh) * | 2021-07-27 | 2023-02-02 | 京东方科技集团股份有限公司 | 任务调度方法、装置、计算处理设备、计算机程序及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530702A (zh) * | 2013-10-14 | 2014-01-22 | 西安建筑科技大学 | 一种基于瓶颈设备分解的大规模作业车间调度方法 |
CN103870647A (zh) * | 2014-03-14 | 2014-06-18 | 西安工业大学 | 一种基于遗传算法的作业车间调度建模的方法 |
WO2014196116A1 (en) * | 2013-06-05 | 2014-12-11 | Toyota Jidosha Kabushiki Kaisha | Internal combustion engine |
CN105488568A (zh) * | 2015-11-30 | 2016-04-13 | 清华大学 | 一种基于目标重要性分解的模因演化多目标优化调度方法 |
CN106406990A (zh) * | 2016-08-26 | 2017-02-15 | 李逸博 | 一种带安全约束的成批作业‑资源匹配方法及系统 |
-
2017
- 2017-04-19 CN CN201710255612.9A patent/CN107122849B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014196116A1 (en) * | 2013-06-05 | 2014-12-11 | Toyota Jidosha Kabushiki Kaisha | Internal combustion engine |
CN103530702A (zh) * | 2013-10-14 | 2014-01-22 | 西安建筑科技大学 | 一种基于瓶颈设备分解的大规模作业车间调度方法 |
CN103870647A (zh) * | 2014-03-14 | 2014-06-18 | 西安工业大学 | 一种基于遗传算法的作业车间调度建模的方法 |
CN105488568A (zh) * | 2015-11-30 | 2016-04-13 | 清华大学 | 一种基于目标重要性分解的模因演化多目标优化调度方法 |
CN106406990A (zh) * | 2016-08-26 | 2017-02-15 | 李逸博 | 一种带安全约束的成批作业‑资源匹配方法及系统 |
Non-Patent Citations (5)
Title |
---|
G.JUNG ET AL.: "Enhanced Naive Bayes Classifier for real-time sentiment analysis with SparkR", 《2016 INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGY CONVERGENCE》 * |
LIAO XIAOPING ET AL.: "Hybrid evolutionary algorithm for no-wait flow shops to minimize makespan and total flowtime", 《 JOURNAL OF SOUTHEAST UNIVERSITY》 * |
余涛等: "基于Spark的并行遗传算法研究", 《计算机时代》 * |
朱晓灿: "基于Hadoop的试验检测计划总完工时间极小化研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
赵红武等: "基于遗传算法的试验计划总完工时间极小化模型设计与实现", 《数据挖掘》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111461552A (zh) * | 2020-04-02 | 2020-07-28 | 中电工业互联网有限公司 | 基于多品种、小批量订单的试验自动化排程方法及系统 |
WO2023004597A1 (zh) * | 2021-07-27 | 2023-02-02 | 京东方科技集团股份有限公司 | 任务调度方法、装置、计算处理设备、计算机程序及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107122849B (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | Minimizing flow time variance in a single machine system using genetic algorithms | |
CN101617292B (zh) | 面向生成器图的编程和执行 | |
CN110516325A (zh) | 一种cae自动化仿真分析方法和系统 | |
US20100293119A1 (en) | Systems and methods for parallel processing optimization for an evolutionary algorithm | |
CN105278936B (zh) | 一种基于软件元模型构造软件模型的通用软件建模方法 | |
Lu et al. | Parallel and distributed architecture of genetic algorithm on Apache Hadoop and Spark | |
CN105929690A (zh) | 一种基于分解多目标进化算法的柔性车间鲁棒调度方法 | |
CN106980906B (zh) | 一种基于spark的Ftrl电压预测方法 | |
CN109409746A (zh) | 一种生产调度方法及装置 | |
CN115098278B (zh) | 一种基于微服务的数字孪生车间多场景交互方法 | |
CN111813739A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN115965154A (zh) | 一种基于知识图谱的数字孪生机械加工过程调度方法 | |
CN107122849A (zh) | 基于SparkR的产品检测总完工时间极小化方法 | |
CN112487648A (zh) | 一种基于航天产品特征的多维度结构化数据创建方法 | |
CN108769105A (zh) | 一种云环境下的知识服务多任务调度优化方法及其构建的调度系统 | |
CN105205545A (zh) | 一种运用仿真实验优化物流系统的方法 | |
CN107229234A (zh) | 面向航空电子数据的分布式挖掘系统及方法 | |
CN110264392A (zh) | 一种基于多gpu的强连通图检测方法 | |
CN110348623A (zh) | 基于设计结构矩阵的复杂产品开发时间预测及优化方法 | |
Westerweele et al. | Concept and design of modeller, a computer-aided modelling tool | |
CN110262973B (zh) | 数据养成维护方法、装置、设备及计算机存储介质 | |
Hulme et al. | Development of a multidisciplinary design optimization test simulator | |
Tran et al. | A distributed data mining framework accelerated with graphics processing units | |
CN117474125B (zh) | 一种自动训练机器学习模型系统 | |
CN106294064A (zh) | 一种设置基板管理控制器属性的装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230719 Address after: East side of 1st floor, Building 6, Ruiyun, No. 99 Furong Middle Third Road, Xishan District, Wuxi City, Jiangsu Province, 214191 Patentee after: Wuxi Qigong Data Technology Co.,Ltd. Address before: 710071 Taibai South Road, Yanta District, Xi'an, Shaanxi Province, No. 2 Patentee before: XIDIAN University |