基于GAMS软件的多阶段资源分配模型建模分析
来源:百度文库 编辑:神马文学网 时间:2024/05/02 12:30:59
在电脑里发现了当初上课时写的论文,虽然简单,不能发表,但是放在那里也可惜,不如拿出来放在网上,也许有人可以用一下呢:)
内容摘要:
在SCM优化模型中,有一种称为多阶段资源分配模型,它的任务是帮助管理者制定生产计划,以决策未来的生产、销售和库存等问题。要求解这类模型,可以利用软件——通用代数建模系统(The General Algebraic Modeling System,GAMS)。GAMS是专门为求解线性规划、非线性规划和混合整数规划建模的软件,适于解决大型复杂的模型问题。
本文以杰里米·夏皮罗(美)的《供应链建模》中提供的一个简单实例为背景,从问题分析入手建立了线性规划下的优化模型,并利用GAMS软件进行求解,给出了相应的结论。在文章的最后,提出了文中所建模型有待解决的问题。
关键词:GAMS
一、
供应链管理中的各种分析和决策活动按内容和时间可分为策略性和经营性的。为了解决这些活动中的问题,各种各样的供应链模型被建立起来。根据不同层次的决策处理的问题,模型也可以分为决策型和经营性:策略性决策由于涉及的范围很广,因此模型很大,且需要大量的数据;而经营性决策则由于关心的是供应链的日常运作,考虑的范围比较小,因此使用的模型通常具有较强的针对性,能够考虑较多的细节。
许多供应链模型都是混合整数规划模型,其中资源分配模型是常见的一种。目标函数为生产和销售成本等费用最小或利润最大,用整数变量表示供应链中成员的选择、生产技术的选择或运输方式等,用连续变量表示供应链中各成员的能力、产量库存、各种资源的分配等,用约束表示供应链中的物流平衡关系和供需关系等。本文的题例中建立的就是多阶段的资源分配模型,求解的是为实现最大利润各阶段的生产和库存决策。
二、
通用代数建模系统(GAMS)是特别为建模线性,非线性和混合整数最优化问题而设计的。其主要特点有:
1、
GAMS对于处理大型的,复杂的,需要多次修订才能最终确定精确模型的独一无二的问题特别有帮助。GAMS可以运行在个人计算机,工作站,大型机和超级计算机上。系统以高度简洁和自然的方式来建模问题。使用者能够快速和方便的更改公式,能从一个求解器转到另一个,甚至稍加费心就能从线性转换到非线性。
2、
通过排除考虑纯技术上的机器特定的问题的需要,比如地址计算,存储分配,子程序链接,和输入输出和流程控制,GAMS增加了用于概念化和运行模型,和分析结果的时间。GAMS本身构建了良好的建模习惯,通过请求简明而精确的实体和关系的规范。GAMS语言形式上和通常使用的编程语言相似,因此对于那些有编程检验的使用者将非常熟悉。
3、
模型以简练的代数声明来描述,对于人和机器都很容易读懂。非常相关的约束的整个集合都被输入到一个声明中。GAMS自动生成每个约束等式,并让使用者处理例外情况,假使那里一般来说是不需要的。在模型中的声明能够被重用,而不需要更改代数式。
4、
5、
模型可以非常方便的从一个计算机平台移到另外一个,只要GAMS已经在每个平台被安装好。GAMS很容易进行敏感度分析。使用者能够方便的规划模型来求解一个成分的不同值,然后生成一个输出报告,列出了每种情况的解决方案特征。模型能够同时被开发和文档化,因为GAMS允许使用者包含解释性的文本作为任意符号和等式的定义和解释。
6、三、
(一)问题阐述
1.
2.
(1)
(2)
A测试线对已装配好的阿尔法机和贝塔机进行测试,可用时间为120小时;
C测试线对已装配好的伽玛机进行测试,可用时间为48小时;
每台计算机的测试时间为1小时。
产品组装的可用劳动力小时为2000小时:
每台阿尔法机需要10个劳动力小时;
每台贝塔机需要15个劳动力小时;
每台伽玛机需要20个劳动力小时。
每台阿尔法机9美元;
每台贝塔机10美元;
每台伽玛机18美元。
第一周初始库存为22台阿尔法机、42台贝塔机、36台伽玛机。
表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)
(2)
(3)
(4)
(5)
2.
首先我们需要比较一下“四周总利润最大”,与“四周中每周的利润最大”这两个目标的含义。
假设我们要保证每周的利润最大,那么先算第一周时,势必会尽可能使库存达到最小,也就是说,只要仓库里面有产品,我们就不生产这种产品(注意:这样做会使得第一周里面存在大量的闲置劳动力)。然后算第二周,此时仍然是坚持“只要有库存就不生产”的原则。直到所有产品的库存为零,我们再恢复正常生产。此时,会出现一种情况——可能市场上需要的产品数量多于我们的生产能力,也就是会发生供小于求的状况,使得利润无法满足最大化。这主要是因为我们在最初的时候没有留下足够的库存、而且浪费了劳动力造成的。
在本题例中,每一周利润最大化与四周总利润最大化实际上是矛盾的,甚至这四周每一周利润最大化之间本身就是矛盾的、不可实现的。因此如果将目标函数(obj.)设为四个,即令每周的利润取最大值,GAMS软件的提示为:“模型不可行(infeasible)”。
所以我们要以总利润最大为目标,建立多阶段资源分配的线性规划模型。