基于GAMS软件的多阶段资源分配模型建模分析

来源:百度文库 编辑:神马文学网 时间:2024/05/02 12:30:59

在电脑里发现了当初上课时写的论文,虽然简单,不能发表,但是放在那里也可惜,不如拿出来放在网上,也许有人可以用一下呢:)

 

内容摘要:

在SCM优化模型中,有一种称为多阶段资源分配模型,它的任务是帮助管理者制定生产计划,以决策未来的生产、销售和库存等问题。要求解这类模型,可以利用软件——通用代数建模系统(The General Algebraic Modeling System,GAMS)。GAMS是专门为求解线性规划、非线性规划和混合整数规划建模的软件,适于解决大型复杂的模型问题。

本文以杰里米·夏皮罗(美)的《供应链建模》中提供的一个简单实例为背景,从问题分析入手建立了线性规划下的优化模型,并利用GAMS软件进行求解,给出了相应的结论。在文章的最后,提出了文中所建模型有待解决的问题。

关键词:GAMS   多阶段资源分配模型  线性规划  

 

一、       供应链建模

供应链管理中的各种分析和决策活动按内容和时间可分为策略性和经营性的。为了解决这些活动中的问题,各种各样的供应链模型被建立起来。根据不同层次的决策处理的问题,模型也可以分为决策型和经营性:策略性决策由于涉及的范围很广,因此模型很大,且需要大量的数据;而经营性决策则由于关心的是供应链的日常运作,考虑的范围比较小,因此使用的模型通常具有较强的针对性,能够考虑较多的细节。

许多供应链模型都是混合整数规划模型,其中资源分配模型是常见的一种。目标函数为生产和销售成本等费用最小或利润最大,用整数变量表示供应链中成员的选择、生产技术的选择或运输方式等,用连续变量表示供应链中各成员的能力、产量库存、各种资源的分配等,用约束表示供应链中的物流平衡关系和供需关系等。本文的题例中建立的就是多阶段的资源分配模型,求解的是为实现最大利润各阶段的生产和库存决策。

 

二、       GAMS软件

通用代数建模系统(GAMS)是特别为建模线性,非线性和混合整数最优化问题而设计的。其主要特点有:

1、        GAMS善于解决复杂问题。

GAMS对于处理大型的,复杂的,需要多次修订才能最终确定精确模型的独一无二的问题特别有帮助。GAMS可以运行在个人计算机,工作站,大型机和超级计算机上。系统以高度简洁和自然的方式来建模问题。使用者能够快速和方便的更改公式,能从一个求解器转到另一个,甚至稍加费心就能从线性转换到非线性。

2、        使用者可以把精力集中到建模上。

通过排除考虑纯技术上的机器特定的问题的需要,比如地址计算,存储分配,子程序链接,和输入输出和流程控制,GAMS增加了用于概念化和运行模型,和分析结果的时间。GAMS本身构建了良好的建模习惯,通过请求简明而精确的实体和关系的规范。GAMS语言形式上和通常使用的编程语言相似,因此对于那些有编程检验的使用者将非常熟悉。

3、        使用GAMS,数据仅仅需要一次就能在熟悉的列表和表格形式中输入。

模型以简练的代数声明来描述,对于人和机器都很容易读懂。非常相关的约束的整个集合都被输入到一个声明中。GAMS自动生成每个约束等式,并让使用者处理例外情况,假使那里一般来说是不需要的。在模型中的声明能够被重用,而不需要更改代数式。

4、        当其它的实例是相同的或出现了相关问题,错误的位置和类型会在尝试解决方案前被查明。

5、        GAMS是灵活而强大的。

模型可以非常方便的从一个计算机平台移到另外一个,只要GAMS已经在每个平台被安装好。GAMS很容易进行敏感度分析。使用者能够方便的规划模型来求解一个成分的不同值,然后生成一个输出报告,列出了每种情况的解决方案特征。模型能够同时被开发和文档化,因为GAMS允许使用者包含解释性的文本作为任意符号和等式的定义和解释。

6、        GAMS模型类型包括LP,MIP和NLPs的不同形式。

三、       实例分析

(一)问题阐述

1.       背景:阿贾克斯电脑公司销售三种类型的计算机:个人电脑阿尔法,笔记本电脑贝塔和工作站伽玛。它的生产经理面临着资源分配问题,需要为未来的四周制定一个生产计划。

2.       给定条件:

(1)       三种产品的净利润:(净利润等于每台机器的销售价格减去直接成本,直接成本包括购买配件、生产机箱以及组装和测试计算机的成本)

           阿尔法机——350美元/台;

           贝塔机——470美元/台;

 伽玛机——610美元/台。

(2)       限制条件

                           i.      测试线:

A测试线对已装配好的阿尔法机和贝塔机进行测试,可用时间为120小时;

C测试线对已装配好的伽玛机进行测试,可用时间为48小时;

每台计算机的测试时间为1小时。

                         ii.      劳动力:

产品组装的可用劳动力小时为2000小时:

每台阿尔法机需要10个劳动力小时;

每台贝塔机需要15个劳动力小时;

每台伽玛机需要20个劳动力小时。

                        iii.      保管费用:

每台阿尔法机9美元;

每台贝塔机10美元;

每台伽玛机18美元。

                       iv.      初始库存:

第一周初始库存为22台阿尔法机、42台贝塔机、36台伽玛机。

                         v.      销售预测量: 表1给出的是每周每种产品可能销售量的上下限。

表1 销售预测

 

第一周

第二周

第三周

第四周

阿尔法机

贝塔机

伽玛机

[20,60]

[20,40]

[20,50]

[20,80]

[20,40]

[20,40]

[20,120]

[20,40]

[20,30]

[20,140]

[20,40]

[20,70]

 

1.       建模目标:

我们需要考虑如何制订出未来4个星期的生产规划,以使利润最大化。

(二)模型分析

1.         建模思路

对于上述问题,基于线性规划的优化模型,我们可以归结为以下几条:

A.      目标函数:四周利润最大(每周利润最大或者四周总利润最大)

B.      约束条件:

(1)         A线测试能力限制

(2)         C线测试能力限制

(3)         劳动力限制

(4)         销售量限制

(5)         每周期初期末库存的关系限制

2.         建模分析

首先我们需要比较一下“四周总利润最大”,与“四周中每周的利润最大”这两个目标的含义。

假设我们要保证每周的利润最大,那么先算第一周时,势必会尽可能使库存达到最小,也就是说,只要仓库里面有产品,我们就不生产这种产品(注意:这样做会使得第一周里面存在大量的闲置劳动力)。然后算第二周,此时仍然是坚持“只要有库存就不生产”的原则。直到所有产品的库存为零,我们再恢复正常生产。此时,会出现一种情况——可能市场上需要的产品数量多于我们的生产能力,也就是会发生供小于求的状况,使得利润无法满足最大化。这主要是因为我们在最初的时候没有留下足够的库存、而且浪费了劳动力造成的。

在本题例中,每一周利润最大化与四周总利润最大化实际上是矛盾的,甚至这四周每一周利润最大化之间本身就是矛盾的、不可实现的。因此如果将目标函数(obj.)设为四个,即令每周的利润取最大值,GAMS软件的提示为:“模型不可行(infeasible)”。

所以我们要以总利润最大为目标,建立多阶段资源分配的线性规划模型。

基于GAMS软件的多阶段资源分配模型建模分析 怎样成为优秀的软件模型设计者? , 耦合度,建模,模型,模块,归档,需求,编码,原型,定义,译者, , 怎样成为优秀的软件模型设计者? , 耦合度,建模,模型,模块,归档,需求,编码,原型,定义,译者, , - CSDN软件研发频道 怎样成为优秀的软件模型设计者? , 耦合度,建模,模型,模块,归档,需求,编码,原型,定义,译者, , - CSDN软件研发频道 基于服务的建模和架构 基于服务的建模和架构 基于模型、模式的技术架构设计 基于WIKI的化学教学模型 基于网络的学习环境设计模型WBLED 中国民营企业的商业模式创新:基于权变资源观的理论框架与案例分析 面向对象的软件设计本质[ERP信息监理 ||解决方案|系统分析|需求分析|业务模型|软件工... 混合制造的ERP解决方案[ERP总设计师 ||解决方案|系统分析|需求分析|业务模型|软件... 面向对象的软件设计本质[ERP信息监理 ||解决方案|系统分析|需求分析|业务模型|软件工... 审判阶段公诉案件举证责任的分配 提高建模效率及软件运行速度的技巧 探索模型驱动开发 (MDD) 和相关方法,将领域特定建模应用于模型驱动的体系结构(转IBM) 基于网络的研究性学习课程学习模型的思考 组织成长阶段模型 一种基于Web的协作学习系统模型 基于自组织逾渗的金融市场模型 基于“感觉循环动力模型”的学前儿童社会教育 基于自组织逾渗的金融市场模型 基于STV三角模型的奢侈品营销策略研究 怎样成为优秀的软件模型设计者?