排序和调度的方法及其系统的制作方法

文档序号:6552867阅读:310来源:国知局
专利名称:排序和调度的方法及其系统的制作方法
技术领域
本发明提出一种生产排序和生产调度的方法及其系统,特别指一种用于在给定的生产能力定义和一组约束下生成对一组作业的最优化排序和调度的方法和系统。
背景技术
生产线用于制造工厂中必须严格按照排序进行产品生产时。然而,由于制造和市场有很多约束,而且通常需要与动态的制造环境步伐一致,如何实现生产线上生产的各个单位之间的有效排序是一项复杂的任务。
为使生产能在生产线中以最佳水准运行,生产调度必须考虑生产线的生产能力定义以及对其有影响的约束。常见的约束包括如劳动力和原材料短缺的资源约束和围绕工厂内生产量问题的生产能力约束。
近期的技术已启用了通过软件系统执行的最佳生产调度和排序。一些通常使用的最优化技术包括数学程序设计、调遣(dispatch)规则、专家系统、神经网络、遗传算法、模糊逻辑和归纳学习。
然而,当前的生产排序系统每次安装到新的制造环境后,都需要重新装配其最优化技术。这体现了这类系统安装方面的问题。另外,在今天不断变化的条件下,约束也根据市场条件在生产过程中不断变化。
因此,需要一种可适用于任何生产环境的有效的生产线排序和调度解。定制计画必须可配置,以使排序和调度解可应用于不同的制造环境。此外,随着约束和要求的演化,可使用户能够容易地通过修改系统现有部件的行为来反映变化。所述系统还应具备一定的灵活性,可方便纳入新的约束。

发明内容
本发明的目的在于提供一种用于针对作业定义、约束定义、参数定义和生产能力定义生成最优化排序和调度的方法、系统和计算机程序产品。作业定义包括至少一个作业,其中每个作业包含至少一个待生产单位。每个作业也通过至少一个用于描述待生产单位的属性来描述。约束定义包含对单位生产的限制。参数定义包含一组参数,该组参数支配用于生成最优化排序和调度的最优化方法的行为。最优化排序和调度针对一个排序范围(sequencing horizon)产生,其中所述排序范围限定了生成最优化排序和调度的持续时间。该系统可与各种已知的最优化方法结合使用。
根据本发明的实施例,生成最优化排序和调度的方法包含响应上述定义生成通用对象,然后在用来生成最优化排序和调度的最优化方法中使用所生成的通用对象。第一步包含响应作业定义生成至少一个通用作业对象。所述通用作业对象提供了用于最优化方法的作业属性。第二步包含响应约束定义生成至少一个通用约束对象。所述通用约束对象使用了作业对象的属性,以应用约束。第三步包含响应生产能力定义生成至少一个通用槽(slot)对象。所述通用槽对象表示槽,其中槽表示作业的单位生产的生产能力。排序范围以槽的形式表示,槽分割排序范围的整个持续时间。通用槽对象使最终的最优化排序和调度以贯穿整个排序范围的槽的形式表示。第五步包含响应参数定义生成参数对象。所述参数对象用于根据用户需要影响最优化方法。
接着,作业定义所界定的逻辑用于生成初始解。最后,四个对象和初始解用来生成最优化排序和调度。该步骤还涉及迭代初始解以改善所得的最终排序和调度。
本发明的另一实施例提供一种用于生成最优化排序和调度的系统。该系统包含一可配置层,其能存储至少一个通用作业对象、至少一个通用槽对象、至少一个通用约束对象和一参数对象。另外,该系统包含一核心产品层,其包括一个最优化引擎,其中所述最优化引擎利用通用作业对象、通用槽对象、通用约束对象和参数对象生成最优化的排序和调度。


图1描绘根据本发明的一个实施例,生成最优化排序和调度的方法的流程图。
图2描绘根据本发明的一个实施例生成通用作业对象的方法的流程图。
图3显示根据本发明的一个实施例,储存通用作业对象、作业定义和属性包集的数据库的例示性图解表示。
图4描述根据本发明的一个实施例生成通用约束对象的方法的流程图。
图5显示根据本发明实施例,用于储存通用约束对象、仓位类型和属性包集的例示性数据库。
图6描绘根据本发明的一个实施例,添加新的约束类型的方法的流程图。
图7描绘根据本发明的一个实施例,生成通用槽对象的方法的流程图。
图8根据本发明的一个实施例,用于储存生产能力定义、仓位类型和通用槽对象的数据库的例示性图解表示。
图9根据本发明的一个实施例的用于生成最优化排序和调度的系统的示意图。
具体实施例方式
具体实施方式
中所使用的术语定义如下作业(Job)作业包含至少一个待生产单位。每个作业还由至少一个描述其所包含的单位的属性来描述。
作业定义(Job Definition)作业定义包含至少一个生产作业。作业定义还提供至少一个描述各个作业的属性。
约束定义(Constraint Definition)约束定义包含对生产线中单位生产的限制。限制可适用于单位的生产顺序、单位的数量或者单位生产的持续时间。
生产能力定义(Capacity Definition)生产能力定义提供了在一界定的时间段内(诸如一天、一周或任何用户定义的时段)内能生产出的最大产量。
参数定义(Parameters Definition)参数定义包含一组参数,该组参数管理用于生成最优化排序和调度的最优化方法的行为。
输入资料(Input Data)作业定义、约束定义、生产能力定义和参数定义统称为输入资料。
排序范围(Sequencing Horizon)排序范围是生成最优化排序和调度的持续时间。
通用作业对象(Generic Job Object)通用作业对象是包含作业的至少一个属性的作业定义的通用表示(generic representation)。通用表示采用的是允许通过与本发明结合使用的最优化方法处理的格式。通用作业对象可还包含利用作业属性计算出的至少一个复杂作业属性。
属性包(Attribute Kit)属性包以作业属性的通用表示来存储作业的属性。通用表示允许通用作业对象可存储作业的属性,以通过最优化方法进行处理。此外,属性包识别可启用复杂作业属性计算的逻辑表达式。该逻辑表达式也可用于对特定值的作业属性应用约束。
通用约束对象(Generic constraint Object)通用约束对象是约束定义的通用表示,通用表示采用的是允许通过与本发明结合使用的最优化方法处理的格式。通用约束对象指定应用于作业生产的约束的类型。此外,通用约束对象可包括时间区段和属性包,所述时间段表示对于作业生产和属性包应用约束的时间。
通用参数对象(Generic Parameters Object)通用参数对象是参数定义的通用表示,所述参数定义包含了至少一个影响最优化方法的参数。通用表示采用的是允许通过与本发明结合使用的最优化方法进行处理的格式。
仓位(Bin)仓位是划分排序范围的时间单位。每个仓位可看作是固定数目的槽的集合。一个仓位可以多个仓位类型(诸如一天、一周或一个月)表达。
槽(Slot)槽表示作业单位的生产的生产能力。
通用槽对象(Generic Slot Object)通用槽对象是槽的通用表示,其包含至少一个描述该槽的属性。通用表示是采用的可通过与本发明结合使用的最优化方法进行处理的格式。
可配置层(Configurable Layer)可配置层根据特定制造环境输入不同的资料配置输入。可配置层使各种对象可用于与本发明结合使用的最优化方法。
最优化引擎(Optimization Engine)最优化引擎包括利用最优化方法的算法,其使用至少一个通用作业对象、至少一个通用约束对象、至少一个通用槽对象和一个参数对象来产生最优化排序和调度。
核心产品层(Core Product Layer)核心产品层可根据本发明的最优化方法,生成最优化排序和调度。
本发明提供一种方法、系统和计算机程序产品,其用于在给定排序范围、给定生产能力和一组限制的情况下,响应生产要求或一组作业而生成最优化生产排序和调度。在本发明的各实施例中,对使用生产线进行生产的工厂执行排序和调度。在各实施例中,生产要求以至少一项作业的形式提供给本发明,其中每项作业包含至少一个待生产的单位。此外,每项作业通过至少一个用于描述待生产单位的属性来描述。作业和其属性在下文中被称为作业属性。在本发明中设想的作业属性随应用的不同而变化。例如,如果将本发明用于汽车制造厂,则将(例如)作业属性视为要生产的汽车的颜色、型号和例如库存单位(Stock Keeping Unit,SKU)数量的专有代码等;又例如,本发明用于压缩机制造厂,则将作业属性视为压缩机的类型(往复式压缩机/回转式压缩机/涡旋式压缩机)、压缩机的应用(空调/冰箱)、制冷能力、功率等。根据本发明的实施例,至少一项作业(其中各项作业都由一组属性描述的)被称为作业定义。
本发明可配置用于具有不同的生产单位属性组和不同约束的各种应用。此外,本发明可配置以包括针对生产单位的一组属性的变化和针对特定应用的约束的变化。
生产要求可通过允许用户指定要生产的单位的作业属性以用户界面的方式提供给本发明。或者,生产要求可通过指定这些属性的数据库或纯文本文件提供给本发明。所属领域的技术人员将不难发现,在不偏离本发明精神和范围的情况下,提供生产要求的各种方法都可使用。
生产线上的生产调度和排序需要结合生产线上单位生产的限制。作业生产的限制在下文中被称为约束定义(Constraint Definition)。限制适用于单位生产的顺序、单位的数量或者单位生产的持续时间。制造工厂的生产能力表示利用可得工厂设备能力(plant capacity)、劳动力、设备产品规格和产品组合能实现的可持续的最高产量。因此,生产能力定义可由生产能力生成。根据本发明的实施例,生产能力定义提供在一定义时间段内(如一天、一周或用户定义的任何时段内)能实现的最大生产能力。
本发明可与使用已知最优化方法的各种算法结合使用。许多已知的最优化方法在其最优化性质上具有灵活性。根据本发明实施例所使用的例示性最优化方法包括以组合最优化(combinatorial optimization)和搜索启发式算法(search heuristics)为基础的方法。诸如模拟退火算法(simulated annealing)、约束技术(constraints technology)、贪婪启发式算法(greedy heuristics)等技术是所属领域中一些已知的最优化方法的实例。此外,可使用参数定义最优化的精确本质对这些最优化方法实现定制。根据本发明的实施例,将管理用于生成最优化排序和调度的最优化方法的行为的一组参数提供给本发明。该组参数在下文被称为参数定义。
下文将作业定义(Job Definition)、约束定义(Constraint Definition)、参数定义(Parameters Definition)和生产能力(Capacity Definition)定义统称为输入资料(Input Data)。本发明提供最优化方法与输入资料之间的界面,从而使最优化方法与输入资料隔离开来。所述界面将输入资料映像至一组通用对象,用于最优化方法。因此,在使用相同的最优化方法时,仅需要针对不同的生产环境配置所述界面。
图1是描绘根据本发明的一个实施例,生成最优化排序和调度的方法的流程图。该方法包括生成通用对象,其中每个对象储存至少一个描述该对象的属性。在步骤102,响应作业定义,生成至少一个通用作业对象。所述通用作业对象以与制造环境无关的格式表示作业定义。结合图2进一步说明此步骤,且参照图3描述例示性通用作业对象。利用通用作业对象的属性完成排序和调度,所述属性用于对排序和调度的约束进行评估。例如,客户对于生产一组特定汽车的要求可指定在一周的一特定日生产特定型号的黑色汽车。此处,汽车型号和颜色是用于应用约束的作业属性。
在步骤104,响应约束定义,生成至少一个通用约束对象(Genericconstraint Object)。所述通用约束对象以与制造环境无关的格式表示约束定义。结合图4进一步说明此步骤,且参照图5描述例示性通用约束对象。根据本发明的一个实施例,通用约束对象包括将约束应用于作业生产的时间区段。例如,约束定义可以将约束指定在排序范围中每月的规定时间段内。一个这样的约束定义的实例是“在周一和周三的第一个班次中不得生产超过五辆黑色汽车”。通用约束对象中的属性包储存作业属性,以标识可应用该约束的生产单位。例如,如果作业属性是颜色,譬如黑色,则表示该约束可应用于作业中所有颜色为黑色的单位。属性包也标识使得能够使用作业属性来应用约束的逻辑表达式。所述逻辑表达式使用任意的属性组合来执行函数和检查逻辑条件,以进一步指定约束的应用。设想前述实例的情形。如果要仅对黑色汽车应用某特定加工应用(如,冲床),那么需使用一逻辑表达式来启用它。参照图3介绍了一个使用作业属性的逻辑表达式的实例。在根据本发明的实施例的各实施例中,通用约束对象可包括各种其它属性,包括定义该约束相对于其它约束的重要性的优先级、和根据所述约束给出待生产单位的数目的上限和/或下限的最小和/或最大生产数量。
在步骤106,响应生产能力定义,生成至少一个通用槽对象(GenericSlot Object)。所述通用槽对象以与制造环境无关的格式表示。根据本发明的一个实施例,槽(slot)表示生产所述作业中的一个单位的生产能力。例如,设想每个工作日能生产十辆汽车的生产能力的汽车制造工厂。这样认为该工厂每个工作日具有十个槽。在此步骤,排序范围被分割到其组成槽中。例如,在上述汽车制造工厂中,一周的排序范围,其中该周包含七个工作日。因此,总的可得槽数为7*10,即70槽。在各实施例中,本发明将排序范围表示为一组槽。每个槽以通用槽对象表示,供结合本发明使用的最优化方法处理。结合图7进一步说明此步骤,参照图8描述一个例示性通用槽对象。
在步骤108,响应提供的参数定义,生成通用参数对象(GenericParameters Object)。通过将参数定义中的参数映像至通用参数对象的属性,以生成通用参数对象。通用参数对象以与制造环境无关的格式表示参数定义。通用参数对象影响用于生成最优化排序和调度的方法。在本发明的一个实施例中,该影响是通过管理用于生成最优化排序和调度的方法的属性而实现。设想,例如结合本发明的最优化方法中所用的仿真退火方法。模拟退火算法是一种找出组合最优化问题的近似最优解的随机化局部搜索方法。模拟退火算法通过假设大量随机“运动”而运行,其中运动速率是由参数对象管理,且其中的运动可以是问题状态的任一类改变。根据本发明的一个实施例,问题状态可以包含给定一输入资料,生成最优化排序和调度。在本发明的各实施例中,通用参数对象也管理最优化程度与最优化运行时间之间的折衷(trade-off)。
在步骤110,使用作业定义的预定义逻辑生成初始解(initialsolution)。各种生成排序和调度问题的初始解的方法为所属领域的技术人员所熟知。下文中描述一些适于与本发明的各个实施例结合使用的例示性方法。在一个实施例中,通过对作业定义应用一启发法,生成初始解。启发法取输入资料并基于通用规则计算出一个似最优解(seemingly optimal solution)。在本发明的一个实施例中,通用规则是用户定义规则。例如,用户可以指定根据初始解的排序和调度必须按照其各作业的到期日顺序处理所有作业,而不管这些作业的属性。或者,用户可指定根据初始解的排序和调度必须按照生产单位的型号顺序处理所有作业,而不管这些作业的到期日。在各实施例中,基于从先前运行最优化算法获得的最优排序和调度来选择初始解。在本发明的一个实施例中,初始解是随机初始解。
使用所生成的初始解、所述至少一个作业对象、所述至少一个槽对象、所述至少一个约束对象和所述参数对象,在步骤112生成最终的最优化排序和调度。此生成最终的排序和调度包括迭代最优化初始解以获得最终排序和调度。所属领域的技术人员应熟悉用于该迭代的各种最优化方法,例如仿真退火、约束技术和贪婪启发式算法(greedyheuristic)为。所属领域的技术人员将不难发现任何最优化方法皆可结合本发明使用,而不背离本发明的精神和范畴。应注意用于最优化的方法与本发明所应用的制造环境无关。除了前面列出的最优化技术之外,可以采用所属领域中习知的用于生成最优化排序和调度的任何其它方法。此外,上述通用对象可使用相同的基础最优化方法将来自任何制造环境的任何输入数据用于生成最优化排序和调度。
图2是描绘根据本发明的一个实施例生成通用作业对象的方法之流程图。此方法是将作业定义中包含的信息映像至通用作业对象,以供最优化方法用于排序和调度。在步骤202,通过简单的一对一资料映像技术将作业定义的至少一个属性值赋值给通用作业对象的属性。在步骤204,使用作业定义中的至少一个属性值计算作业对象的复杂作业属性(complex job attribute)。计算此复杂作业属性,以增强最优化方法的可定制性(customization)。例如,设想生产一组汽车的最优化生产排序和调度的情形。针对该例的约束可指定在生产周期的第一周内生产深色汽车。此处,该约束未指定特定颜色。因此,创建一用来定义汽车是深色或浅色的复杂作业属性。为对其进行计算,使用一用户定义函数,以利用为汽车指定的颜色计算所述复杂作业属性。一个用户定义逻辑样本如下所示。
If(color==blue||red||black)complexjobattributevalue==″dark″;else outputcomplexjobattribute==″light″上述实例中的逻辑在作业颜色为蓝色、红色或黑色时,定义一深色复杂作业属性;在任何其它颜色时,定义一浅色复杂作业属性。在本发明的各个实施例中,通过用户指定的公式或算法进行计算。
然而,通用作业对象不必要仅包括已经由计算达到的属性。作业属性可以仅是由一对一资料映像技术获得的作业定义的赋值。
图3显示根据本发明的一个实施例,储存通用作业对象302、作业定义304和属性包集(attribute kit set)306的数据库的图解表示。作业定义304储存描述作业的字段,包括作业识别308、数量316、到期日318、类别320、型号322、颜色324、修饰级别(trim level)326和目的地328。作业识别308通过唯一标识符标识作业,如型号或名称。数量316储存作业中定义的单位数。到期日318储存作业的生产到期日。类别320储存作业可能被划分为的预定义类别。类别可以是基于预定义标准的作业分类。例如,加工时间是2分钟的作业可以分组为“类别A”,而加工时间是5分钟的作业可以分组为“类别B”。型号322储存作业的型号,例如,可为生产年份或专有代码。修饰级别326表示作业中所包括的可选特征的级别,目的地328表示生产后作业必须抵达的运输目的地。所属领域的技术人员将不难发现,作业定义304中储存的字段对于生成生产排序和调度的制造环境是唯一的。例如,在生产压缩机的制造工厂的情形下,所述字段可能包含输入到压缩机的电能、压缩机提供的吨位、压缩机型号等。
属性包集306储存至少一个属性包312。属性包312储存从作业定义获得的作业属性。此外,属性包312标识一用于计算复杂作业属性的逻辑表达式330。逻辑表达式330是用户定义逻辑,其使用作业定义304中的至少一个属性值,以生成通用作业对象302的值314。设想有下面的逻辑表达式,其使用销售订单资料(作业定义)中提供的原料字段(作业属性)来确定复杂作业属性。
if($MODELsubstring(0,2)==7\S″|I $MODEL.substring(0,1)==″L″)destination=″QV;else destination=″Q″+$CLASS.substring(3,1);if(destination==″Q4″||destination==″Q7″)return Value=″Yes″;else return Value=″No″;此样本表达式首先基于选定作业的MODEL和CLASS属性值计算中间值“destination”(“目的地”)。MODEL和CLASS可以结合上述作业定义304中所用的型号322和类别320的解释使用。此表达式基于此“destination”值使用条件逻辑来判定值。根据该表达式,如果型号是“AB”或“L”,返回“destination”是“Q1”,否则是另一计算值。或者,如果“destination”是Q4或Q7,返回值是Yes(是),否则是No(否)。
通用作业对象302储存作业识别308、属性包312和值314。键310和缩写FK表示作业识别308是外键(foreign key),它可以访问作业定义304中的主键作业识别308。外键是可唯一标识另一表中的记录的属性。外键是另一表的主键。主键是表中唯一标识所述表的行的属性。外键—主键关系定义了关系连接(relational join)。因此,储存在通用作业对象302中的属性包312是可以访问储存在属性包集306中的主键属性包312的外键。值314视情况储存赋值或计算出的复杂作业属性。例如,在上面所用的逻辑函数中,值314储存基于所执行的计算得到的复杂作业属性“Yes”或“No”。或者,在未使用逻辑函数的情况下,值314仅储存所赋值。
符号332表示其链接的表之间的“多对一”关系。符号332的深色部分表示“多”表,而符号332的浅色部分表示“一”表。
图4是描述根据本发明的一个实施例生成通用约束对象的方法的流程图。在步骤402,指定约束类型。所述约束类型指定所应用的约束的性质。例如,“转换(changeover)”约束对生产顺序进行约束。一个“转换(changeover)”约束的实例是指定在生产线上生产的蓝色汽车不能超过红色汽车的约束。“特征生产能力(feature capacity)”约束对可在指定时间段内生产的单位数目进行限制,而“分配约束”允许根据作业属性进行分配。在步骤404,指定约束应用的仓位类型。仓位(bin)是逻辑划分排序范围的时间单位。可以使用任何标准的时间单位来定义这些仓位(例如,15个仓位,各24小时或30个仓位,各12小时),其中每个仓位大小相同。本发明也允许同时考虑多个标准时间单位仓位类型。这是通过指定单个基本仓位大小而实现的,它是所用的每个仓位类型的公分母。在此情形下,仅需提供基本仓位的生产能力来定义整个排序范围的生产能力。例如,指定12小时基本仓位的固有生产能力也就定义了所有更大的以此时间段(如,天和周)的倍数计的仓位类型的生产能力。因此,视持续时间而定,仓位可以以若干仓位类型表达。在步骤406,指定约束类型应用的至少一个属性包。举例而言,约束可以应用于蓝色汽车,在此情形下所指定的属性包是汽车的颜色。在步骤408,为约束指定优先级。优先级用来定义一个约束类型相对于另一约束类型的重要性。例如,指定黑色汽车不能超过白色汽车的转换约束可能比指定一天内生产白色汽车的数量上限的特征生产能力约束更重要。因此,转换约束比生产能力约束优先级高。在步骤410,指定惩罚严重度因子(penalty severity factor),所述惩罚严重度因子将因约束得不到满足时招致的成本与违反所述约束的程度进行参数关联。惩罚严重度因子结合优先级使用来评估每个约束违反的成本。较高的惩罚严重度因子导致对排序和调度中的一个较大的约束违反分派一个相对较高的成本。例如,当惩罚严重度因子是零时,给一周分派1100或1200辆汽车,成本相同;而当惩罚严重度因子是2时,给一周分派1200辆汽车的成本将大大超过给该周分派1100辆汽车的成本。在步骤412,指定约束时间窗,其表示约束活跃的持续时间。例如,在特定一天断电两小时的情形下,指定生产停工两小时的约束具有针对这两个小时的约束时间窗。在步骤414,指定一设想标记(consider flag),需要时可禁用该约束。用户说明可指定约束的应用不得多于作业中的10个单位,在此情形下,设想标记将在生产10个单位后禁用约束。在本发明的各实施例中,也指定了约束应用的最小和最大单位数量。
图5显示根据本发明实施例,用于储存通用约束对象502、仓位类型504和属性包集306的数据库。通用约束对象502储存外键约束名称(constraint name)506、外键仓位名称(bin name)508和外键属性包312。此外,通用约束对象502还储存属性值510、优先级512、惩罚严重度因子514、约束时间窗516和设想标记518。
根据本发明的实施例,参照图4描述了通用约束对象502是约束类型。外键约束名称506是主键,其储存约束名称,其中约束名称是用户给定的任一专有名称。外键仓位名称508储存用于划分排序范围的仓位类型504的名称。
在仓位类型504中进一步描述了通用约束对象502中的外键仓位名称508。仓位类型504储存主键仓位名称508。基本仓位倍数520使仓位类型504与系统内所定义的基本仓位关联。由于基本仓位大小是所有被定义的基于时间的(time-based)仓位类型的公分母,所以基本仓位倍数520是用基本仓位除仓位类型504求得。如果一个基本仓位含12个小时,则日仓位类型具有的基本仓位倍数520为2,而周仓位类型具有的基本仓位倍数520为14。当基本仓位无法用固定的持续时间(譬如一天或12个小时)定义时,自定义脚本指针522将仓位类型504指向自定义逻辑。需要自定义逻辑的仓位类型的实例是可变长度班次(variable length shifts)和生产周期,其中每个周期是可变量目的生产单位。参考通用约束对象502,属性值510储存应用了约束的属性值。属性值510储存属性包312的值,而逻辑表达式330使得可将约束应用于该值。例如,如果属性包312储存作业属性颜色,属性值510储存值“Blue”(蓝色)。逻辑表达式330将约束应用于特定作业的蓝色单位。此外,参照图4所述,通用约束对象502储存优先级512、惩罚严重度因子514、约束时间窗516和设想标记518。
以下使用图5的表示,给出通用约束对象的三个实例。
实例1转换约束类型实例1是一个例示性转换约束类型。该约束命名为COLOR-BW(颜色—黑/白),此术语充当约束标识符。将属性包EXTERIOR-COLOR(外部颜色)应用于属性值BLACK(黑)和属性值WHITE(白)。用户定义的逻辑指定了若生产了一黑色汽车,则不能紧接着生产一白色汽车。对该约束赋值一优先级10。优先级可基于用户定义的大小用来暗示该约束比其它约束重要。当在排序或调度中,生产完黑色汽车后紧接着生产白色汽车时,则违反了转换约束。此外,设想标记用于表示约束是活跃的(active)而非禁止的(disabled)。另外,为生产线中汽车之间的转换时间赋值为0。
实例2特征生产能力约束类型实例2是一个例示性特征生产能力约束类型。将属性包EXTERIOR-COLOR(外部颜色)应用于属性值RED(红)。此外,指定最小生产量为0,最大生产量为1000。在此例中,仓位是一周。此外,为该约束赋值一优先级5,表示基于用户定义的大小,该约束具有中等优先级。数量类型JOB-QUANTITY(作业—数量)指定了要使用的逻辑。此处,逻辑指定一周内可生产最多1000辆红色汽车。另外,赋值一惩罚因子2,这意味着违反越大,惩罚越严重。
实例3分配约束类型实例3是一个例示性分布约束类型。给定约束名称DISTRIBUTE-MODEL(分配—型号),并将属性包MODEL应用于所有作业,与作业属性无关。其通过将字段“attribute value(属性值)”标为空白来表示。数量类型JOB-QUANTITY(作业—数量)指定要使用的用户定义逻辑。该逻辑指定所有型号的作业都应均匀分布。字段“toleranceplus quantity(公差加数量)”和“tolerance minus quantity(公差减数量)”指出作业生产必须结合所有指定的公差,并确保高品质。预处理值(preprocess value)指定必须计算出一目标值。对于某些约束类型(譬如分布约束类型),通过将排序和调度中的观测值(observed value)与目标值比较,确定约束违反的发生及其程度。预处理是通过检查作业定义自动计算目标值的过程。此外,设想标记用以表示该约束是活跃的。
图6是描绘根据本发明的一个实施例,添加新的约束类型的方法的流程图。在步骤602,定义了新约束类型的资料要求。例如,设想要将转换约束应用于生产排序的情形,其中所述排序必须在针对车的特定型号而非颜色的条件下改变。这样的例示性约束可指定型号TX 30不得超过型号TX 28。在此情况下,通用约束对象502中的属性包312为“型号(model)”,且属性值510为应用该约束的型号类型。在步骤604,更新针对新资料所需要的逻辑,意指在此情况下需要更新逻辑表达式330。根据本发明的一个实施例,使用技术资源人工执行此步骤。同时,所属领域的技术人员将不难发现用于执行此步骤所需要的逻辑变化。如此更新过的逻辑被映像到通用约束对象502,用于将约束应用至属性值510。此后,在步骤606,新添加的约束类型的约束由用户定义,因为新的约束可针对优先级512、惩罚严重度因子514、约束时间窗516和设想标记(设想标记)518字段具有适当的不同值。
图7是描绘根据本发明的一个实施例,生成通用槽对象的方法的流程图。在步骤702,键入的生产能力是针对基于时间的基本仓位。例如,可键入′day bin 1′(“日仓位1”)的生产能力为30个单位,而day bin2(日仓位2)的生产能力为25。这样可判定所定义的全部的基于时间的仓位类型,因为所述基本仓位是公分母。如前所述,如果仓位类型是一周,一周的生产能力计算作一周内每日生产能力的总和。总生产能力计算作排序范围内的所有每日生产能力的总和。基于此信息,为每个仓位判定槽的具体数目。槽的生成还允许可在系统内定义自定义仓位类型。用户可创建一个仓位类型,以任何专有术语(例如,班次、周期等)对其命名,以及使用逻辑把各槽赋值至相关的仓位。例如,每天生产能力的前75%赋值到一独立班次,而剩余的25%赋值到一独立班次。实际上,如果一天仓位包含100个槽,那么前75赋值到一班次,而剩余的25赋值到另一个班次。一旦执行了此一步骤,在步骤704,定义槽的通用槽对象被赋予至少一个基于时间的标识符。例如,如果槽位于一天的第一个小时,那么通用槽对象可被赋予值′Hour 1′(“小时1”)与′Day 1′(“天1”)以进行标识。另外,在步骤706,赋予通用槽对象至少一个非基于时间的标识符。根据本发明的一个实施例,所述非基于时间的标识符可为与槽的生产周期相关的值。如果槽位于排序范围的第二周期,那么向通用槽对象赋予一值,如周期2。在步骤708,为通用槽对象赋予至少一个作业属性,以标识可根据槽而调度的子组作业。例如,如果黑色车是在被赋值′Hour 1′(“小时1”)和′Day 1′(“天1”)的槽中生产,那么为通用槽对象赋值一额外属性“黑色”,以进一步标识它。在本发明的各实施例中,通用槽对象储存了至少一个基于时间的标识符和/或至少一个非基于时间的标识符。
图8是根据本发明的一个实施例,用于储存生产能力定义802、仓位类型504和通用槽对象804的数据库的例示性图解表示。生产能力定义802储存了主键Bin start(仓位起始)806和生产能力808。Bin start806储存了基于时间的字段,以表示根据基本仓位定义的每个仓位的起始。例如,如果生产的第一天包含2个仓位,各为12小时,那么这两个仓位的仓位起始值相隔12小时。生产能力808储存排序范围内定义的基本仓位的生产能力。若给定所述基本仓位生产能力,则可计算总生产能力,因为基本仓位是排序范围内所有仓位的公分母(commondenominator)。
生产能力定义802和仓位类型504提供用于判定仓位内划分排序范围的槽。例如,设想仓位类型504是基本仓位被定义为一天的一周。生产能力808用来定义当天的生产能力,使得可用于判定一周的生产能力。其后,可由此判定为整周的槽数,且可基于此信息生成适合的槽对象。
在本发明的一个实施例中,通用槽对象804储存主键槽编号810、仓位类型A 812、仓位类型B 814和仓位类型C 816。槽编号810储存用于唯一标识所述槽的用户定义编号。仓位类型A 812、仓位类型B814、和仓位类型C 816基于仓位类型定义,储存槽所属的仓位。例如,仓位类型A可能是排序范围中槽所属的一个月,仓位类型B可为在该特定月内的一周,而仓位类型C可为该周内的一天。三个仓位类型是用于增加槽对象804的标识符,以更好地标识该槽。
图9是根据本发明的一个实施例的用于生成最优化排序和调度的系统900的示意图。在各实施例中,系统900执行参照图1所述的方法。
系统900包含可配置层902和核心产品层908。图9显示可配置层(configurable layer)902为非阴影部分,而核心产品层(core productlayer)908为阴影部分。可配置层902可配置以应用于各种制造环境,而核心产品层908对于各种制造环境都不需要任何改变或定制。因此,本发明仅需在可配置层902内执行定制即可用于各种制造环境。根据本发明的一个实施例,将可配置层902和核心产品层908储存于服务器上。可配置层902包含数据库(database)904和配置数据文件(configuration data files)906。数据库904储存作业定义304、生产能力定义802、约束定义和参数定义。储存于数据库904中的数据字典将输入数据条目(entry)配置到上述定义中。根据本发明的一个实施例,资料字典中定义的参数允许配置若干数据库表以储存数据库904上的输入资料。数据库表还储存通用作业对象302、通用约束对象502、通用槽对象804和参数对象。资料字典允许的配置包括添加、删除和编辑数据库表及其结构。此外,数据字典还可配置涉及通过公共唯一标识符(common unique identifier)彼此相关联的多个数据库表的复杂模式。资料字典通过公共唯一标识符链接各种数据库表,所述公共唯一标识符例如通用作业对象302和通用约束对象502中用来存取相关数据库表中的字段的外键。
配置数据文件906包含脚本文件(script files)910,利用核心产品层908中嵌入的脚本引擎来执行所述脚本档910。脚本文件910由任何脚本语言命令组成,如VBScript、JavaScript、Jscript、perlScript、Python等。
脚本档910将工作流工具(workflow tool)912配置到系统900。工作流工具912可启用工作流,如键入和查看输入资料、调用最优化程序生成最优化排序和调度、查看和修改生成的排序和调度等。另外,工作流工具912还允许定义和跟踪各系统元件之间的工作流。通过外部系统界面(external system interface)914执行输入到系统内的输入资料的导入和生成的排序和调度的导出。外部系统界面914使客户端可访问(access)可配置层902。
脚本文件还启用外部系统界面914以与核心产品层908互动。所述互动是通过由外部系统界面914提供的应用程序界面(API)启用。所述API包括提供编程功能和访问核心产品层908的路由。脚本文件910处理各种应用程序界面(API),包括开放数据库连接(ODBC)、网络服务、计算机网关界面(CGI)和Java小程序sen/lets。脚本档910还生成报告(reports)916,用于查看输入资料与最优化排序和调度。报告916可配置为任何计算机可读格式,例如excel工作表或word文件,且用于系统900的决策支持。引擎界面(Engine interface)918可激活各种对象的生成,包括通用作业对象302、通用约束对象502、通用槽对象804和通用参数对象。脚本档910通过参照图2所述的方法生成通用作业对象302。脚本文件910可激活作业定义304中的作业属性至通用作业对象302中属性的映像。脚本文件910还执行通用作业对象302中使用的复杂作业属性的计算。此外,脚本档910激活根据图4所述方法从约束定义生成通用约束对象502的过程和按照图7所述方法生成通用槽对象的过程。脚本档910还通过激活参数定义中的属性值与通用参数对象中的属性之间的一对一映像,生成通用参数对象。另外,本方法中用于生成最优化排序和调度的逻辑是使用脚本文件910来定义。例如,用于作业定义上生成初始解的预定义逻辑就是通过脚本文件910来定义。
配置数据文件906还包含输用于生成输入资料的输入文件。例如,如果输入到系统900的输入形式是销售订单形式,其中销售订单包含与至少一个任务相关的资料,那么输入文件将用于改变销售订单文件的格式和结构,使其适用于生成作业定义304。输入档还提供自定义工作流所需要的支持资料。例如,例示性工作流可包含把制造工厂的实际销售与提供的销售预告比较。在这样的情况中,输入文件将用于提供数据库904中包含的相关资料,以执行比较。
核心产品层908包含网络应用920和最优化引擎922。网络应用920储存用来处理数据库904中的输入资料所需要全部商业逻辑。所述商业逻辑包括典型用于译码商业政策、与储存在数据库904中的输入资料相关的规则。例如,所述商业逻辑可用于添加作业中储存时间比其定义的存储期限长的单位的额外库存成本。此外,网络应用920包括图形用户界面(GUI),便于到可配置层902和核心产品层908的访问。而且,数据库表通过GUI配置。导航元素(例如,呈现给用户的菜单)也通过GUI配置。为各表定义的显示卷标和导航元素可通过GUI使用任何偏好术语。另外,为表中各字段定义验证条件,以控制通过GUI进入系统900的资料。例如,如果作业定义仅对某特定汽车描述了三种颜色,那么将针对这三种颜色创建验证条件,以简化资料键入。GUI还提供可为每个表定义的触发器,用于当用户对数据库表进行添加、编辑或删除资料操作时调用额外的数据处理。例如,当用户键入作业定义的属性时,GUI向用户提供了指针。所述指针可以是向用户提出问题的形式,例如,要求用户提供计算复杂作业属性所必需的资料。
最优化引擎922包括最优化算法,使用至少一个通用作业对象302、至少一个通用约束对象502、至少一个通用槽对象804和参数对象以生成最优化排序和调度。脚本文件910使至少一个通用作业对象302、至少一个通用约束对象502、至少一个通用槽对象804和通用参数对象能够馈入最优化引擎922,以生成最优化排序和调度,此可通过储存在网络应用920中的GUI观察到。在本发明的各实施例中,最优化排序和调度可以以通用解对象的形式表达,其便于检查、分析和操作所述最优化排序和调度。例如,最终最优化排序和调度可以为允许操作考虑对输入资料的修改的互动输出。在本发明的各实施例中,操作允许在最优化排序和调度中执行多个任务。这些任务包括(当不限于)基于用户要求改变最优化排序和调度的一对作业、将顺序中的至少一个作业移到另一位置、以及添加或删除作业。所述方法还允许由执行的任何操作生成变化总成本。另外,其允许系统900的用户可接受或拒绝操作,以及撤回先前已接受的操作。
根据本发明的方法和系统提供了诸多优势。根据本发明的一个实施例,可配置层902可经定制用于特定制造环境,因为其是在核心产品层908之外被定义。最优化完全参数化,保证了最优化的更高准确度。另外,所述系统提供了用来根据特定制造环境定制可配置层902的简单且用户友好的界面。另外,系统900提供了需要时可添加新的约束的灵活性。因此,根据本发明的一个实施例,系统900是使用基于网络的模型,其中系统900驻于服务器上,其网页响应用户请求提供给流览器客户端。系统900也可扩展至客户端服务器模型。另外,如果将客户端服务器模型应用于网络,则客户端/服务器模型提供了便于分布在不同位置的程序相互连接的途径。
系统900可具体体现为计算机系统的形式。计算机系统的常见实例包括通用计算机、编程微处理器、微控制器、外围继承电路元件和能实施本发明方法的各步骤的其它装置或装置排列。
所述计算机系统包含计算机、输入装置、显示部件和互联网。所述计算机还包含微处理器。所述微处理器是连接至通信总线。所述计算机还包括存储器。所述存储器可包括随机存取存储器(RAM)和只读存储器(ROM)。所述计算机系统进一步包含储存装置。所述储存装置可为硬盘驱动或可移动储存驱动如软盘驱动、光盘驱动等。储存装置还可为其它用于下载计算机程序或其它指令到所述计算机系统的类似构件。所述计算机系统还包括通信部件。通信部件允许计算机通过I/O界面连接到其它数据库和互联网。通信部件允许从其它数据库转移和接收资料。通信部件可包括调制解调器、以太网卡或可使计算机系统连接到数据库和网络(如LAN、MAN、WAN和网际网络)的其它类似装置。所述计算机系统方便用户从经I/O界面连接到系统的输入装置进行输入。
计算机系统执行储存在一个或一个以上储存元件中的一组指令,以处理输入资料。储存元件还可保存资料或需要的其它信息。储存远见可为信息源形式或处理机中的物理存储器元件。
该组指令可包括指示处理机执行特定任务(例如,构成本发明的方法的步骤)的各种命令。该组指令可为软件程序形式。另外,所述软件可为独立程序、具较大程序的程序模块或程序模块的一部分的集合的形式。软件还可以包括面向对象的编程形式的模块编程。处理机对输入资料的处理可以是响应用户命令、响应前次处理的结果或响应另一处理机发出的请求。
尽管上文已经描述和说明本发明的优选实施例,但是应了解本发明不应仅仅受限于该等实施例。在不脱离本发明的精神和范畴的情况下,所属领域的技术人员将不难发现本发明的若干修改、变更、变体、替代及其对等物,其范围应由权利要求书界定。
权利要求
1.一种用于获得一针对在一排序范围内的至少一个作业的生产的最优化排序和调度的方法,所述排序范围用来定义在给定至少一个约束和一生产能力定义的情形下生成所述最优化排序和调度的持续时间,所述生产能力定义用来定义在一定义时间段内可生产的单位的数目,所述作业包含至少一个待生产单位,其特征在于,所述方法包含以下步骤a.响应一作业定义,生成至少一个通用作业对象,所述作业定义包含用来描述所述作业的至少一个属性;b.响应一约束定义,生成至少一个通用约束对象,所述约束定义包含对所述作业的生产的限制;c.利用所述生产能力定义在所述排序范围内生成至少一个通用槽对象,所述槽对象包含用来唯一标识一槽的至少一个属性,所述槽包含所述作业中一单位的生产的生产能力;d.响应若干排序和调度参数,生成一通用参数对象,参数定义包含影响用于生成所述最优化排序和调度的最优化方法的至少一个参数;e.利用一预定义逻辑生成一初始解;以及f.利用一最优化算法生成所述最优化排序和调度,所述最优化算法使用了至少一个所述生成的通用作业对象、至少一个所述生成的通用槽对象、至少一个所述生成的通用约束对象、所述生成的通用参数对象和所述生成的初始解。
2.如权利要求1所述的方法,其特征在于所述响应一作业定义生成通用作业对象的步骤包含至少一个以下步骤a.将所述作业定义中的至少一个属性值赋给所述通用作业对象的至少一个属性;以及b.利用所述作业定义中的至少一个属性值,计算所述通用作业对象的至少一个复杂作业属性。
3.如权利要求1所述的方法,其特征在于所述生成通用约束对象的步骤包含以下步骤a.指定一约束类型;b.指定一仓位类型,其中仓位类型是排序范围中的时间单位;c.指定至少一个属性包,所述属性包表示所述约束可适用的作业的属性;d.指定一优先级,所述优先级用来定义所述约束相对于其它约束的重要性;e.指定一惩罚严重度因子,所述惩罚严重度因子将因一约束得不到满足时招致的成本与违反所述约束的程度进行参数关联;f.指定一约束时间窗口,所述约束时间窗口显示所述约束活跃的时间段;以及g.指定一设想标记,以允许禁止所述约束。
4.如权利要求1所述的方法,其特征在于所述生成通用约束对象的步骤包含指定与一通用约束对象相关的约束特定性质。
5.如权利要求4所述的方法,其特征在于所述指定约束特定性质的步骤包含至少一个以下步骤a.指定一最小生产数量;b.指定一最大生产数量,以及c.在所述通用约束对象中对照每个属性包指定一属性包值。
6.如权利要求1所述的方法,其特征在于所述生成通用槽对象的步骤包含赋值一槽标识符以唯一标识所述槽。
7.如权利要求1所述的方法,其特征在于所述生成通用槽对象的步骤包含至少一个以下步骤a.判断生产的生产能力;b.赋值一基于时间的仓位标识符,用于标识所述槽所属的仓位;c.赋值一非基于时间的仓位标识符,用于标识所述槽所属的仓位;以及d.赋值一与所述槽相关的作业属性。
8.如权利要求1所述的方法,其特征在于所述响应一预定义逻辑生成所述初始解的步骤包含生成一随机初始解。
9.如权利要求1所述的方法,其特征在于所述响应一预定义逻辑生成所述初始解的步骤包含响应一所述作业定义上所定义的逻辑生成一初始解。
10.如权利要求1所述的方法,其特征在于所述最优化算法使用了用于生成所述最优化排序和调度的组合最优化方法和搜索启发式算法中的至少一者。
11.如权利要求1所述的方法,其特征在于所述最优化算法使用了一从由模拟退火算法、约束技术和贪婪启发式算法组成的组中选出的最优化方法。
12.如权利要求1所述的方法,其特征在于进一步包含以一通用解对象形式表示所述最优化排序和调度,以方便检查、分析和操作所述最优化排序和调度。
13.如权利要求12所述的方法,其特征在于进一步包含操作所述最优化排序和调度的步骤,所述操作包含至少一个以下步骤a.交换所述最优化排序和调度中的一对作业;b.将所述最优化排序和调度中的一个或一个以上作业移到另一位置;c.将一作业添加到所述最优化排序和调度;以及d.从所述最优化顺序和调度删除一作业。
14.如权利要求13所述的方法,其特征在于所述操作步骤进一步包含至少一个以下步骤a.提供由所述操作产生的变化总成本;b.允许用户接受或拒绝所述操作;以及c.允许用户撤回先前接受的操作。
15.一种用于获得一针对在一排序范围内的至少一个作业的生产的最优化排序和调度的系统,所述排序范围用来定义在给定至少一个约束和一生产能力定义的情形下生成所述最优化排序和调度的持续时间,所述生产能力定义用来定义在一定义时间段内可生产的单位的数目,所述作业包含至少一个待生产单位,其特征在于,所述系统包含a.一用于响应一作业定义生成至少一个通用作业对象的构件,所述作业定义包含用来描述所述作业的至少一个属性;b.一用于响应一约束定义生成至少一个通用约束对象的构件,所述约束定义包含对所述作业的生产的限制;c.一用于利用所述生产能力定义在所述排序范围内生成至少一个通用槽对象的构件,所述槽对象包含用来唯一标识一槽的至少一个属性,所述槽包含所述作业中一单位的生产的生产能力;d.一用于响应若干排序和调度参数生成一通用参数对象的构件,所述参数定义包含影响用于生成所述最优化排序和调度的最优化方法的至少一个参数;e.一用于利用一预定义逻辑生成一初始解的构件;以及f.一用于利用一最优化算法生成所述最优化排序和调度的构件,所述最优化算法使用了至少一个所述生成的通用作业对象、至少一个所述生成的通用槽对象、至少一个所述生成的通用约束对象、所述生成的通用参数对象和所述生成的初始解。
16.如权利要求15所述的系统,其特征在于所述用于响应一作业定义生成通用作业对象的构件包含以下至少一者a.将所述作业定义中的至少一个属性值赋给所述通用作业对象的至少一个属性之一构件;以及b.利用所述作业定义中的至少一个属性值计算所述通用作业对象的至少一个复杂作业属性之一构件。
17.如权利要求15所述的系统,其特征在于所述用于生成通用约束对象的构件包含a.一用于指定一约束类型的构件;b.一用于指定一仓位类型的构件,其中所述仓位类型是所述排序范围中的时间单位;c.一用于指定至少一个属性包的构件,所述属性包表示所述约束可适用的生产单位的属性;d.一用于指定一优先级的构件,所述优先级用来定义所述约束相对于其它约束的重要性;e.一用于指定一惩罚严重度因子的构件,所述惩罚严重度因子将因一约束得不到满足时招致的成本与违反所述约束的程度进行参数关联;f.一用于指定一组约束时间窗口的构件,所述约束时间窗口显示了所述约束活跃的时间段;以及g.一用于指定一设想标记以允许禁止所述约束的构件。
18.如权利要求15所述的系统,其特征在于所述用于生成通用约束对象的构件包含用于指定与一通用约束对象相关的约束特定性质之一构件。
19.如权利要求18所述的系统,其特征在于所述用于指定约束特定性质的构件包含以下至少一者a.一用于指定一最小生产数量的构件;b.一用于指定一最大生产数量的构件,以及c.一用于在所述通用约束对象中对照每个属性包指定一属性包值的构件。
20.如权利要求15所述的系统,其特征在于所述用于生成通用槽对象的构件包含用于赋值一槽标识符以唯一标识所述槽之一构件。
21.如权利要求15所述的系统,其特征在于所述用于生成通用槽对象的构件包含以下至少一者a.一用于赋值一基于时间的仓位标识符以用于标识所述槽所属的仓位的构件;b.一用于赋值一非基于时间的仓位标识符以用于标识所述槽所属的仓位的构件;以及c.一用于赋值一与所述槽相关的作业属性的构件。
22.如权利要求15所述的系统,其特征在于所述响应一预定义逻辑生成一初始解的构件包含用于生成一随机初始解之一构件。
23.如权利要求15所述的系统,其特征在于所述响应一预定义逻辑生成所述初始解的构件进一步包含用于响应一所述作业定义上所定义的逻辑生成一初始解之一构件。
24.如权利要求15所述的系统,其特征在于所述最优化算法使用了用于生成所述最优化排序和调度的组合最优化方法和搜索启发式算法中的至少一者。
25.如权利要求15所述的系统,其特征在于所述最优化算法使用了从由模拟退火算法、约束技术和贪婪启发式算法组成的组中选出的最优化方法。
26.如权利要求15所述的系统,其特征在于进一步包含用于以一通用解对象形式表示所述最优化排序和调度,以方便检查、分析和操作所述最优化排序和调度之一构件。
27.如权利要求26所述的系统,其特征在于进一步包含用于操作所述最优化排序和调度的构件,所述操作构件包含以下至少一者a.一用于交换所述最优化排序和调度中的一对作业的构件;b.一用于将所述最优化排序和调度中的一个或一个以上作业移到另一位置的构件;c.一用于将一作业添加到所述最优化排序和调度的构件;以及d.一用于从所述最优化顺序和调度删除一作业的构件。
28.如权利要求27所述的系统,其特征在于所述操作构件进一步包含以下至少一者a.一用于提供由所述操作产生的变化总成本的构件;b.一用于允许用户接受或拒绝所述操作的构件;以及c.一用于允许用户撤回先前接受的操作的构件。
29.一种用于在给定至少一个约束和一生产能力定义的情形下生成一最优化排序和调度的系统,所述作业包含若干待生产单位,其特征在于,所述系统包含a.一可配制层,其中所述可配置层包含用于存储以下内容的构件至少一个通用作业对象、至少一个通用约束对象、至少一个通用槽对象和一通用参数对象,所述通用作业对象包含至少一个描述所述作业的属性,所述通用约束对象包含对所述作业的生产的约束,所述槽对象包含用以唯一标识一槽的至少一个属性,所述槽包含所述工作中一单位的生产的生产能力,所述通用参数对象包含至少一个影响用于生成所述最优化排序和调度的最优化方法的参数;以及b.一核心产品层,所述核心产品层包含一最优化引擎,所述最优化引擎是利用所述生成的通用作业对象、所述生成的通用槽对象和所述生成的通用约束对象生成一最优化排序和调度。
30.如权利要求29所述的系统,其特征在于所述可配置层包含a.至少一用于根据特定制造环境定制所述可配置层的配置数据文件;以及b.至少一用于存储生成所述最优化排序和调度所需要的资料的数据库。
31.如权利要求29所述的系统,其特征在于所述配置数据文件包含a.一输入档,所述输入档用于向所述系统输入一作业定义、一约束定义、一参数定义和所述生产能力定义;以及b.一脚本档,所述脚本档由一嵌入于所述核心产品层的分析引擎执行。
32.如权利要求31所述的系统,其特征在于所述脚本文件包含a.一用于配置所述系统的工作流的构件,其中所述工作流包含将在所述系统中执行的若干可执行动作;b.一用于将一外部界面配置至所述系统的构件;c.一用于生成一通用作业对象的构件;d.一用于生成一通用槽对象的构件;e.一用于生成一通用约束对象的构件;以及f.一用于生成一通用参数对象的构件。
33.如权利要求31所述的系统,其特征在于所述脚本文件包含用于生成至少一个报告之一构件,所述报告用于所述系统的决策支持。
34.如权利要求30所述的系统,其特征在于所述数据库包含a.一用于存储一作业定义、一约束定义、一参数定义和所述生产能力定义的构件;以及b.一用于存储一数据字典的构件,所述资料字典是用以使所述作业定义、所述约束定义、所述参数定义和所述生产能力定义的配置简便化。
35.如权利要求34所述的系统,其特征在于所述数据字典包括a.一用于创建至少一个数据库表供存储所述作业定义、所述约束定义、所述参数定义和所述生产能力定义的构件;以及b.一用于定义一数据库模式的构件。
36.如权利要求29所述的系统,其特征在于所述核心产品层包含一网络应用,所述网络应用包含a.一用于提供一接入所述系统的外部界面的构件;b.一用于提供对一数据库的存取的构件;c.一用于执行商业逻辑的构件;d.一用于提供对配置数据文件的存取的构件;e.一用于生成图形用户界面的构件;f.一用于维持一作业定义、一约束定义、一参数定义和所述生产能力定义的构件;以及g.一用于分析所生成的最优化排序和调度的构件。
37.一种用于获得一针对在一排序范围内的至少一个作业的生产的最优化排序和调度的计算机程序产品,所述排序范围用来定义在给定至少一个约束和一生产能力定义的情形下生成所述最优化排序和调度的持续时间,所述生产能力定义用来定义在一定义时间段内可生产的单位的数目,所述作业包含至少一个待生产单位,所述计算机程序产品包含一计算机可读媒体,其特征在于,包含a.用于响应一作业定义生成至少一个通用作业对象的程序指令构件,所述作业定义包含用来描述所述作业的至少一个属性;b.一用于响应一约束定义生成至少一个通用约束对象的程序指令构件,所述约束定义包含对所述作业的生产的限制;c.一利用所述生产能力定义在所述排序范围内生成至少一个通用槽对象的程序指令构件,所述槽对象包含用来唯一标识一槽的至少一个属性,所述槽包含所述作业中一单位的生产的生产能力;d.一用于响应若干排序和调度参数生成一通用参数对象的程序指令构件,所述参数定义包含影响用于生成所述最优化排序和调度的最优化方法的至少一个参数;e.一利用一预定义逻辑生成一初始解的程序指令构件;以及f.一利用一最优化算法生成所述最优化排序和调度的程序指令构件,所述最优化算法使用了至少一个所述生成的通用作业对象、至少一个所述生成的通用槽对象、至少一个所述生成的通用约束对象、所述生成的通用参数对象和所述生成的初始解。
38.如权利要求37所述的计算机程序产品,其特征在于所述响应一作业定义生成通用作业对象的程序指令构件包含以下至少一者a.一将所述作业定义中的至少一个属性值赋给所述通用作业对象的至少一个属性的程序指令构件;以及b.一利用所述作业定义中的至少一个属性值计算所述通用作业对象的至少一个复杂作业属性的程序指令构件。
39.如权利要求37所述的计算机程序产品,其特征在于所述用于生成通用约束对象的程序指令构件包含a.一用于指定一约束类型的程序指令构件;b.一用于指定一仓位类型的程序指令构件,其中所述仓位类型是所述排序范围中的时间单位;c.一用于指定至少一个属性包的程序指令构件,所述属性包表示所述约束可适用的作业的属性;d.一用于指定一优先级的程序指令构件,所述优先级用来定义所述约束相对于其它约束的重要性;e.一用于指定一惩罚严重度因子的程序指令构件,所述惩罚严重度因子将因一约束得不到满足时招致的成本与违反所述约束的程度进行参数关联;f.一用于指定一约束时间窗口的程序指令构件,所述约束时间窗口显示所述约束活跃的时间段;以及g.一用于指定一设想标记以允许禁止所述约束的程序指令构件。
40.如权利要求37所述的计算机程序产品,其特征在于所述用于生成一通用约束对象的程序指令构件包含指定与一通用约束对象相关的约束特定性质之一程序指令构件。
41.如权利要求40所述的计算机程序产品,其特征在于所述用于指定约束特定性质的程序指令构件包含以下至少一者a.一用于指定一最小生产数量的程序指令构件;b.一用于指定一最大生产数量的程序指令构件,以及c.一用于在所述通用约束对象中对照每个属性包指定一属性包值的程序指令构件。
42.如权利要求37所述的计算机程序产品,其特征在于所述用于生成一通用槽对象的程序指令构件包含赋值一槽标识符以唯一标识所述槽之一程序指令构件。
43.如权利要求37所述的计算机程序产品,其特征在于所述用于生成一通用槽对象的程序指令构件包含以下至少一者a.一用于赋值一基于时间的仓位标识符以标识所述槽所属的仓位的程序指令构件;b.一用于赋值一非基于时间的仓位标识符以标识所述槽所属的仓位的程序指令构件;以及c.一用于赋值一与所述槽相关的作业属性的程序指令构件。
44.如权利要求37所述的计算机程序产品,其特征在于所述用于响应一预定义逻辑生成一初始解的程序指令构件包含用于生成一随机初始解之一程序指令构件。
45.如权利要求37所述的计算机程序产品,其特征在于所述响应一预定义逻辑生成所述初始解的程序指令构件包含用于响应一所述作业定义上所定义的逻辑生成一初始解之一程序指令构件。
46.如权利要求37所述的计算机程序产品,其特征在于所述最优化算法使用了用于生成所述最优化排序和调度的组合最优化方法和搜索启发式算法中的至少一者。
47.如权利要求37所述的计算机程序产品,其特征在于所述最优化算法使用了一从由模拟退火算法、约束技术和贪婪启发式算法组成的组中选出的最优化方法。
48.如权利要求37所述的计算机程序产品,其特征在于进一步包含以通用解对象形式表示最优化排序和调度,以方便检查、分析和操作所述最优化排序和调度之一程序指令构件。
49.如权利要求48所述的计算机程序产品,其特征在于进一步包含用于操作所述最优化排序和调度的程序指令构件,其中所述操作用程序指令构件包含以下至少一者a.一用于交换所述最优化排序和调度中的一对作业的程序指令构件;b.一用于将所述最优化排序和调度中的一个或一个以上作业移到另一位置的程序指令构件;c.一用于将一作业添加到所述最优化排序和调度的程序指令构件;以及d.一用于从所述最优化顺序和调度删除一作业的程序指令构件。
50.如权利要求49所述的计算机程序产品,其特征在于所述操作用程序指令构件进一步包含以下至少一者a.使用所定义的约束提供由所述操作产生的变化总成本之一程序指令构件;b.一用于允许用户接受或拒绝所述操作的程序指令构件;以及c.一用于允许用户撤回先前接受的操作的程序指令构件。
全文摘要
一种生成最优化生产排序和调度的方法、系统和计算机程序产品。所述方法包括如何产生用于生成最优化生产排序和调度的作业对象、约束对象、槽对象和参数对象。所述系统包括一个用来储存该等对象的可配置层,和一个使用所产生的对象生成最优化排序和调度的核心产品层。所述系统可与各种已知的最优化方法结合使用。
文档编号G06Q10/00GK101065764SQ200580036997
公开日2007年10月31日 申请日期2005年10月21日 优先权日2004年10月28日
发明者斯瑞尼瓦司·那查甘地, 布莱德·拜恩斯, 艾夏克·艾拉米利 申请人:奈特普软体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1