运筹学实验报告
运筹学实验报告心得
运筹学实验报告心得运筹学实验报告实验一:线性规划问题1、实验目的:?学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
?掌握利用计算机软件求解线性规划最优解的方法。
2、实验任务?结合已学过的理论知识,建立正确的数学模型; ?应用运筹学软件求解数学模型的最优解?解读计算机运行结果,结合所学知识给出文字定性结论 3、实验仪器设备:计算机 4、实验步骤:(1)在主菜单中选择线性规划模型,在屏幕上就会出现线性规划页面,如图所示。
(2)在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数及约束条件的各变量的系数和b值,并选择好“?”、“?”或“=”号,如图所示。
(3)当约束条件输入完毕后,请点击“解决”按钮,屏幕上将显现线性规划问题的结果,如图所示。
例题一:例题二:例题三:例题四:例题五5、试验体会或心得运筹学是一门实用的学科,学习运筹学,结合生活实际运用运筹学,我们可以将资源最大化利用。
学习理论的目的就是为了解决实际问题。
线性规划的理论对我们的实际生活指导意义很大。
当我们遇到一个问题,需要认真考察该问题。
如果它适合线性规划的条件,那么我们就利用线性规划的理论解决该问题。
线性规划指的是在资源有限的条件下,为达到预期目标最优,而寻找资源消耗最少的方案。
其数学模型有目标函数和约束条件组成。
一个问题要满足一下条件时才能归结为线性规划的模型:?要求解的问题的目标能用效益指标度量大小,并能用线性函数描述目标的要求;?为达到这个目标存在很多种方案;?要到达的目标是在一定约束条件下实现的,这些条件可以用线性等式或者不等式描述。
所以,通过这次实验,不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。
这次实验让我懂得了运筹学在电脑的应用,让我对运输与数学相结合的应用理解更深了。
篇二:运筹学实验报告实验一:线性规划问题1、实验目的:(1)学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
运筹学实践教学报告范文(3篇)
第1篇一、引言运筹学作为一门应用数学分支,广泛应用于经济管理、工程技术、军事决策等领域。
本报告旨在通过运筹学实践教学,验证理论知识在实际问题中的应用效果,提高学生的实践能力和创新能力。
以下是对本次实践教学的总结和反思。
二、实践教学内容1. 线性规划问题本次实践教学选择了线性规划问题作为研究对象。
通过建立线性规划模型,我们尝试解决生产计划、资源分配等实际问题。
- 案例一:生产计划问题某公司生产A、B两种产品,每单位A产品需消耗2小时机器时间和3小时人工时间,每单位B产品需消耗1小时机器时间和2小时人工时间。
公司每天可利用机器时间为8小时,人工时间为10小时。
假设A、B产品的利润分别为50元和30元,请问如何安排生产计划以获得最大利润?- 建模:设A产品生产量为x,B产品生产量为y,目标函数为最大化利润Z = 50x + 30y,约束条件为:\[\begin{cases}2x + y \leq 8 \\3x + 2y \leq 10 \\x, y \geq 0\end{cases}\]- 求解:利用单纯形法求解该线性规划问题,得到最优解为x = 3,y = 2,最大利润为240元。
- 案例二:资源分配问题某项目需要分配三种资源:人力、物力和财力。
人力为50人,物力为100台设备,财力为500万元。
根据项目需求,每种资源的需求量如下:- 人力:研发阶段需20人,生产阶段需30人;- 物力:研发阶段需30台设备,生产阶段需50台设备;- 财力:研发阶段需100万元,生产阶段需200万元。
请问如何合理分配资源以满足项目需求?- 建模:设人力分配量为x,物力分配量为y,财力分配量为z,目标函数为最大化总效用U = x + y + z,约束条件为:\[\begin{cases}x \leq 20 \\y \leq 30 \\z \leq 100 \\x + y + z \leq 500\end{cases}\]- 求解:利用线性规划软件求解该问题,得到最优解为x = 20,y = 30,z = 100,总效用为150。
运筹学实验报告
运筹学实验报告一实验一:线性规划【例l】某制药厂用甲、乙两台机器生产A、B两种药物。
每种药物要经过两道工序,在甲机器上搅拌,在乙机器上包装。
生产每千克药物所需的加工时间以及机器1周可用于加工的总时间如下表1所示。
已知生产每千克药物A的利润是30元,B是25元,问应如何安排1周的生产计划才能使工厂获利最大?表 1 两种药物在各机器上所需加工时间及各机器可用于加工的总时间(1)写出数学模型,建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果。
(2)将电子表格格式转换成标准模型。
(3)将结果复制到Excel或Word文档中。
(4)分析结果。
解:(1)从已知条件写出该问题的数学模型:max Z=30x1+25x2;2x1+4x2<=40;3x1+2x2<=30;x1>=0,x2>=0.建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果:求解模型过程Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 3X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioX2 25.0000 0 1.0000 0.3750 -0.2500 7.5000X1 30.0000 1.0000 0 -0.2500 0.5000 5.0000C(j)-Z(j) 0 0 -1.8750 -8.7500 337.5000(2)将电子表格格式转换成标准模型。
大学生运筹学实训报告范文
一、引言运筹学是一门应用数学的分支,它运用数学模型、统计方法和计算机技术等工具,对复杂系统进行优化和决策。
为了更好地理解和掌握运筹学的理论和方法,提高实际操作能力,我们开展了大学生运筹学实训。
以下是本次实训的报告。
二、实训目的1. 理解运筹学的基本概念、原理和方法;2. 学会运用运筹学解决实际问题;3. 提高团队协作和沟通能力;4. 培养独立思考和创新能力。
三、实训内容1. 线性规划(1)实训目的:通过线性规划实训,掌握线性规划问题的建模、求解和结果分析。
(2)实训内容:以生产问题为例,建立线性规划模型,运用单纯形法求解最优解。
2. 整数规划(1)实训目的:通过整数规划实训,掌握整数规划问题的建模、求解和结果分析。
(2)实训内容:以背包问题为例,建立整数规划模型,运用分支定界法求解最优解。
3. 非线性规划(1)实训目的:通过非线性规划实训,掌握非线性规划问题的建模、求解和结果分析。
(2)实训内容:以旅行商问题为例,建立非线性规划模型,运用序列二次规划法求解最优解。
4. 网络流(1)实训目的:通过网络流实训,掌握网络流问题的建模、求解和结果分析。
(2)实训内容:以运输问题为例,建立网络流模型,运用最大流最小割定理求解最优解。
5. 概率论与数理统计(1)实训目的:通过概率论与数理统计实训,掌握概率论与数理统计的基本概念、原理和方法。
(2)实训内容:以排队论为例,建立概率模型,运用排队论公式求解系统性能指标。
四、实训过程1. 组建团队,明确分工;2. 针对每个实训内容,查阅相关资料,了解理论背景;3. 根据实际问题,建立数学模型;4. 选择合适的算法,进行编程实现;5. 对结果进行分析,总结经验教训。
五、实训成果1. 理解了运筹学的基本概念、原理和方法;2. 掌握了线性规划、整数规划、非线性规划、网络流和概率论与数理统计等运筹学工具;3. 提高了团队协作和沟通能力;4. 培养了独立思考和创新能力。
六、实训心得1. 运筹学是一门实用性很强的学科,它可以帮助我们解决实际问题,提高工作效率;2. 在实训过程中,我们要注重理论联系实际,将所学知识应用于实际问题的解决;3. 团队协作和沟通能力在实训过程中至关重要,要学会与团队成员共同进步;4. 实训过程中,我们要敢于尝试,勇于创新,不断提高自己的实践能力。
运筹学实验总结
运筹学实验总结引言:运筹学是一门综合了数学、经济学和工程学等多学科知识的学科,它通过建立数学模型和运用各种优化方法,帮助我们在现实问题中寻找最优解决方案。
在这学期的运筹学课程中,我们进行了一系列实验。
这些实验不仅加深了对运筹学理论的理解,还提供了一种应用运筹学方法解决问题的实践平台。
在本文中,我将总结我参与的运筹学实验,并分享我的体会和收获。
实验一:线性规划问题求解在这个实验中,我们学习了线性规划的基本概念和求解方法。
我选择了一个典型的生产调度问题作为实验题目。
通过建立数学模型,并运用线性规划软件,我成功地解决了这个问题。
通过这个实验,我深刻理解了线性规划问题的本质,以及如何利用线性规划方法找到最优解。
实验二:整数规划问题求解整数规划是线性规划的扩展,它在决策问题中更加实用。
在这个实验中,我选择了货物配送路线问题作为研究对象。
通过构建整数规划模型,并运用求解软件,我得到了最佳的货物配送方案。
这个实验不仅对我的数学建模能力提出了要求,还培养了我的实际问题解决能力。
实验三:动态规划动态规划是一种重要的优化方法,它广泛应用于最优化问题的求解。
在这个实验中,我们学习了动态规划的基本原理和设计思想。
我选择了旅行商问题作为研究对象,通过建立递推关系和寻找最优子结构,我成功地解决了该问题。
这个实验让我意识到了动态规划方法的强大威力,同时也对我的算法设计能力提出了更高的要求。
实验四:模拟退火算法模拟退火算法是一种全局搜索优化算法,具有很强的应用能力。
在这个实验中,我选择了旅行商问题作为研究对象,通过模拟退火算法的迭代和优化,我得到了一个较好的解。
通过这个实验,我掌握了模拟退火算法的基本原理和实现过程,也了解到了算法的优越性。
实验五:遗传算法遗传算法是一种模拟自然选择和遗传机制的优化算法。
在这个实验中,我选择了装箱问题作为研究对象。
通过运用遗传算法的交叉、变异和适应度选择,我得到了一个较好的装箱方案。
这个实验不仅对我的算法设计能力提出了更高的要求,还让我意识到了遗传算法的创新性和解决复杂问题的能力。
运筹学实验报告
运筹学实验报告运筹学实验报告一、引言运筹学是一门研究如何有效地进行决策和规划的学科。
它利用数学、统计学和计算机科学的方法,帮助解决各种实际问题。
本次实验旨在通过实际案例,探讨运筹学在实践中的应用。
二、问题描述我们选择了一个物流配送问题作为本次实验的研究对象。
假设有一家电商公司,需要将一批商品从仓库分配给不同的客户。
每个客户的需求量和距离仓库的距离都不同。
我们的目标是找到一种最优的配送方案,以最小化总配送成本。
三、数学模型为了解决这个问题,我们采用了整数规划模型。
首先,我们定义了以下变量:- Xij:表示将商品从仓库i分配给客户j的数量- Di:表示仓库i的供应量- Dj:表示客户j的需求量- Cij:表示将商品从仓库i分配给客户j的单位运输成本然后,我们建立了以下约束条件:1. 每个仓库的供应量不能超过其库存量:∑Xij ≤ Di2. 每个客户的需求量必须得到满足:∑Xij ≥ Dj3. 分配的商品数量必须是非负整数:Xij ≥ 0最后,我们的目标是最小化总配送成本:Minimize ∑Cij*Xij四、实验步骤1. 收集数据:我们收集了仓库的库存量、客户的需求量和单位运输成本的数据,并进行了整理和清洗。
2. 建立数学模型:根据收集到的数据,我们建立了上述的整数规划模型。
3. 求解模型:我们使用了运筹学软件对模型进行求解,并得到了最优的配送方案和总配送成本。
4. 分析结果:我们对结果进行了分析,比较了不同方案的优劣,并提出了一些建议。
五、实验结果与分析经过运筹学软件的求解,我们得到了最优的配送方案和总配送成本。
通过与其他方案的比较,我们发现该方案在成本上具有明显的优势。
同时,我们还发现一些仓库和客户之间的距离较远,可能会导致运输时间和成本增加。
因此,我们建议公司可以考虑优化仓库和客户的布局,以减少运输成本。
六、实验总结本次实验通过运筹学的方法,解决了一个物流配送问题。
我们通过建立数学模型、求解模型和分析结果,得出了最优的配送方案和总配送成本。
管理运筹学实训报告结论
本次管理运筹学实训旨在通过实际操作,使我们对运筹学的基本理论、方法和技术有一个更为深入的理解,并能够将其应用于解决实际问题。
通过实训,我们不仅提高了自己的数学建模能力、计算机操作能力和问题解决能力,还培养了团队合作精神,为今后从事相关工作打下了坚实的基础。
二、实训内容与过程1. 实训内容本次实训主要包括以下内容:(1)线性规划:通过学习线性规划的基本原理和方法,运用软件求解线性规划问题,并分析问题解的特点。
(2)整数规划:了解整数规划的基本概念和求解方法,通过软件求解整数规划问题,并分析问题解的特点。
(3)非线性规划:学习非线性规划的基本原理和方法,运用软件求解非线性规划问题,并分析问题解的特点。
(4)动态规划:了解动态规划的基本概念和求解方法,通过软件求解动态规划问题,并分析问题解的特点。
(5)网络流:学习网络流的基本概念和求解方法,运用软件求解网络流问题,并分析问题解的特点。
2. 实训过程(1)理论学习:在实训开始前,我们通过查阅资料、阅读教材等方式,对运筹学的基本理论进行了系统的学习。
(2)案例分析:在理论学习的基础上,我们选取了具有代表性的案例,对案例中的问题进行分析,并运用所学知识进行求解。
(3)软件操作:为了提高实训效果,我们使用了专业的运筹学软件,如Lingo、MATLAB等,对实际问题进行求解。
(4)讨论与交流:在实训过程中,我们积极讨论、交流心得,互相学习、共同进步。
1. 实训成果通过本次实训,我们取得了以下成果:(1)掌握了运筹学的基本理论、方法和技术。
(2)提高了数学建模、计算机操作和问题解决能力。
(3)培养了团队合作精神,提高了沟通协调能力。
(4)对实际问题有了更深入的认识,为今后从事相关工作打下了坚实的基础。
2. 实训体会(1)理论联系实际的重要性:通过本次实训,我们深刻体会到理论联系实际的重要性。
只有将所学知识应用于实际,才能真正掌握其精髓。
(2)团队合作的重要性:在实训过程中,我们充分体会到团队合作的重要性。
实用运筹学实习报告
一、实习目的本次实习旨在使我对运筹学有一个更深入的了解,掌握运筹学的基本原理和方法,提高运用运筹学解决实际问题的能力。
通过实习,我将学会如何运用运筹学的方法对实际问题进行分析和求解,提高自己的综合素质。
二、实习时间2022年6月1日至2022年7月31日三、实习单位某知名企业四、实习内容1. 了解运筹学的基本原理和方法在实习期间,我首先对运筹学的基本原理和方法进行了系统学习。
通过阅读相关书籍和资料,我对线性规划、整数规划、网络流、动态规划、排队论等运筹学方法有了较为全面的了解。
2. 参与实际项目在实习期间,我参与了企业的一个实际项目,该项目涉及到生产计划与调度问题。
我运用所学的运筹学知识,对该项目进行了分析和求解。
(1)问题背景该企业主要生产电子产品,产品种类繁多,生产周期较短。
为了提高生产效率,降低生产成本,企业希望优化生产计划与调度。
(2)问题建模根据企业实际情况,我将生产计划与调度问题建模为一个线性规划问题。
模型中,变量表示生产任务,约束条件包括生产设备能力、生产周期、原材料供应等。
(3)求解方法运用Lingo软件,对所建立的线性规划模型进行求解。
通过调整参数,寻找最优的生产计划与调度方案。
(4)结果分析根据求解结果,我对最优方案进行了详细分析,包括生产任务分配、生产设备使用、原材料消耗等方面。
通过对比不同方案,为企业提供了优化生产计划与调度的建议。
3. 总结与反思通过本次实习,我对运筹学在实际问题中的应用有了更深入的认识。
以下是我对实习过程的总结与反思:(1)理论联系实际实习过程中,我深刻体会到理论联系实际的重要性。
在解决问题时,要善于将所学知识运用到实际中,提高自己的实际操作能力。
(2)运用软件求解在实际问题中,运用运筹学软件求解问题是一种高效的方法。
通过学习Lingo软件,我掌握了如何运用软件进行建模和求解,提高了自己的工作效率。
(3)团队协作实习过程中,我与团队成员共同完成了项目。
运筹学实验报告
《运筹学》实验报告指派问题班级:姓名:学号:指导教师:《运筹学》实验报告(一)一.实验目的熟练的掌握整数规划,0-1规划问题的数学模型的建立于求解和数据分析二.实验要求利用EXCEL软件求解整数规划和0-1规划模型三.实验准备Pc486微机、Windows环境、Excel软件四.实验内容及步骤实验内容:某公司面临5项任务,计划派甲、乙、丙、丁、戊分别去做。
由于戊临时被公司派往国外,因此公司只有让甲、乙、丙、丁中的一个人同时担任两项任务,其他三人仍旧单独完成一项任务。
各人完成相应任务时间如下表。
请为公司制定一个总工时最小的指派方案。
实验内容分析:本题中研究的是制定一个总工时最小的工作任务分配方案即本题是一个0-1规划问题。
又本题中是四个员工五个任务的不平衡的分配任务,所以可以有增加虚拟人物的方式来解决不平衡问题也可以直接用抽屉原则来解决不平衡问题。
方法一:(虚拟人物法)建立数学模型:变量:甲员工做A任务为X11,甲员工做B任务为X12,甲员工做C任务为X13,甲员工做D任务为X14,甲员工做E任务为X15,乙员工做A任务为X21,乙员工做B任务为X22,乙员工做C任务为X23,乙员工做D任务为X24,乙员工做E任务为X25,丙员工做A 任务为X31,丙员工做B任务为X32,丙员工做C任务为X33,丙员工做D任务为X34,丙员工做E任务为X35,丁员工做A任务为X41,丁员工做B任务为X42,丁员工做C任务为X43,丁员工做D任务为X44,丁员工做E任务为X45,虚拟员工做A任务为X51,虚拟员工做B任务为X52,虚拟员工做C任务为X53,虚拟员工做D任务为X54 ,虚拟员工做E任务为X55目标:总工时最小的人员安排方法约束:每人(包括虚拟人物)只能做一项任务即决策变量的0-1约束。
规划模型如下:MINZ(x)=25X11+29X12+31X13+42X14+37X15+39X21+38X22+26X23+20X24 +33X25+34X31+27X32+28X33+40X34+32X35+24X41+42X42+36X43+23X44+45X45+24X51+27X52+26X53+20X54+32X55X11+ X21+ X31+ X41+ X51=1X12+ X22+ X32+ X42+ X52=1X13+ X23+ X33+ X34+ X35=1X14+ X24+ X34+ X44+ X45=1X15+ X25+ X35+ X45+ X55=1 s.t. X11+ X12+ X13+ X14+ X15=1X21+ X22+ X23+ X24+ X25=1X31+ X32+ X33+ X34+ X35=1X41+ X42+ X43+ X44+ X45=1X51+ X52+ X53+ X54+ X55=1X ij=0或1(i=0-5,j=0-5)用EXCEL求解上式,过程如下:输入效率矩阵、方案矩阵和约束条件单元格公式:求解参数对话框如图所示:最终结果为:最小总工时131甲做A任务乙做C任务和D任务丙做E任务丁做B任务方法二:(抽屉原则法)建立数学模型:设甲员工做A任务为X11,甲员工做B任务为X12,甲员工做C任务为X13,甲员工做D任务为X14,甲员工做E任务为X15,乙员工做A任务为X21,乙员工做B任务为X22,乙员工做C任务为X23,乙员工做D任务为X24,乙员工做E任务为X25,丙员工做A任务为X31,丙员工做B任务为X32,丙员工做C任务为X33,丙员工做D任务为X34,丙员工做E任务为X35,丁员工做A任务为X41,丁员工做B任务为X42,丁员工做C任务为X43,丁员工做D任务为X44,丁员工做E任务为X45。
运筹学实验报告_7
运筹学实验(注: 此代码还有一些未完善的地方, 仅供参考, 此实验报告纯属个人意见, 同样仅供参考。
话说一样的内容多了老师会发现的)一、实验目的通过实验熟悉单纯形法的原理, 掌握matlab循环语句的应用, 提高编程的能力和技巧, 体会matlab在进行数学求解方面的方便快捷。
二、实验环境Matlab2012b,计算机三、实验内容(包含参数取值情况)构造单纯形算法解决线性规划问题Min z=cxs.t. Ax=bxj>=0,j=1,…,nfunction[S,val]=danchun(A1,C,N)S为最优值;Val为最优解;A1为标准形式LP问题的约束矩阵及最后一列为资源向量(注: 资源向量要大于零);A1=[A+b]C是目标函数的系数向量;C=cN为初始基的下标(注: 请按照顺序输入, 若没有初始基则定义N=[]):先输入A1,C,N三个必要参数,然后调用danchun(A,C,N)进行求解。
在此函数中,首先判断N的长度是否为空,若为空,则flag=1, 进入初始解问题的迭代求值,添加辅助问题, 构建单纯形表, 求g所对应的RHS值,若其>0,则返回该问题无解若其=0, 则返回A1,Z,N三个参数, 继续构造单纯形表求解A1为经过变换后的系数及资源向量Z为单纯形表的第一行N为经过辅助问题求解之后的基的下标否则,直接构建单纯形表, 对该问题进行求解, 此时flag=2,多次迭代后找到解。
另外,若在大于零的检验数所对应的系数均小于零时, 会显示“此问题无界”若找到最优解和最优值时, 会输出“val”和“S=”以及具体数值。
四、源程序function[S,val]=danchun(A1,C,N)if(length(N)==0)gN=zeros(1,length(A1(:,1)));gC=[-C,gN,0];%原文题的检验数的矩阵Z=gC;G=[zeros(1,length(C)),-ones(1,length(gN)),0];val=zeros(1,length(C));%val为最优解;for i=(length(C)+1):length(C)+length(A1(:,1))%生成基变量gN(i-length(C))=i;endNn=gN;%%%%%%%ll=zeros(1,length(N));%比值最小原则%生成除了最上端两行的表的矩阵gb=A1(:,length(C)+1);A1(:,length(C)+1)=[];l=zeros(length(gN),length(gN));gA=[A1,l,gb];for i=1:length(gb)gA(i,gN(i))=1;endfor i=1:length(gN)%J为基本可行基所对应的检验数J(i)=G(gN(i));endfor i=1:length(gN)%找到基本可行基的检验数, 将其赋值为0 if(J(i)~=0)G=G-(J(i)/gA(i,gN(i)))*gA(i,:);endendflag=1;elseflag=2;A=A1;Z=[-C,0];%单纯形表的第一行val=zeros(1,length(C));%val为最优解;ll=zeros(1,length(N));%比值最小原则end%%初始解问题while flag==1for i=1:length(gN)%J为基本可行基所对应的G的检验数J(i)=G(gN(i));JZ(i)=Z(gN(i));%JZ为基本可行基所对应的Z的检验数endfor i=1:length(gN)%找到基本可行基的检验数, 将其赋值为0 if(J(i)~=0)G=G-(J(i)/gA(i,gN(i)))*gA(i,:);Z=Z-(JZ(i)/gA(i,gN(i)))*gA(i,:);endendG1=G;%G1为检验数G1(:,length(G1))=[];D=max(G1);%找到检验数的最大值if(D<=0)%检验数都小于0if(G(length(G))>=1)disp('此情况无解');flag=0;elseif(G(length(G))>=0)for i=1:length(gN)if(max(gN)<=length(A1(1,:)));flag=2;for j=1:length(Nn)a=Nn(1);gA(:,a)=[];Z(a)=[];endA=gA;N=gN;break;endendendendelse%检验数大于0for i=1:length(G)if(G(i)==D)%找到最大的那个检验数所对应的元素for j=1:length(gN)if(gA(j,i)>0)ll(j)=gA(j,length(G))/gA(j,i);%求比值elsell(j)=10000;endendd=min(ll);for k=1:length(ll)%找到进基和离基if(ll(k)==d)gN(k)=i;gA(k,:)=gA(k,:)/gA(k,i);for m=1:k-1gA(m,:)=-(gA(m,i)/gA(k,i))*gA(k,:)+gA(m,:);endfor n=k+1:length(ll)gA(n,:)=-(gA(n,i)/gA(k,i))*gA(k,:)+gA(n,:);endbreak;endendendendendendwhile(flag==2)for i=1:length(N)%J为基本可行基所对应的检验数J(i)=Z(N(i));endfor i=1:length(N)%找到基本可行基的检验数, 将其赋值为0if(J(i)~=0)Z=Z-(J(i)/A(i,N(i)))*A(i,:);endendZ1=Z;%Z1为检验数Z1(:,length(Z1))=[];D=max(Z1);%找到检验数的最大值if(D<=0)%检验数都小于0disp('已找到最优解和最优值')for i=1:length(N)val(N(i))=A(i,length(Z));endS=Z(length(Z));disp('val');disp(val);flag=0;else%检验数大于0for i=1:length(Z)if(Z(i)==D)%找到最大的那个检验数所对应的元素for j=1:length(N)if(A(j,i)>0)ll(j)=A(j,length(Z))/A(j,i);%求比值elsell(j)=10000;endendd=min(ll);if(d==10000)disp('此问题无界')flag=0;break;endfor k=1:length(ll)%找到进基和离基if(ll(k)==d)N(k)=i;A(k,:)=A(k,:)/A(k,i);for m=1:k-1A(m,:)=-(A(m,i)/A(k,i))*A(k,:)+A(m,:);endfor n=k+1:length(ll)A(n,:)=-(A(n,i)/A(k,i))*A(k,:)+A(n,:);endbreakendendendendendend五、运行结果与数据测试参考例题:例1:Min z=3x1+x2+x3+x4 s.t. -2x1+2x2+x3=43x1+2x+x4=6Xj>=0,j=1,2,3,4例2: 初始解问题Min z=5x1+21x3 s.t. x1-x2+6x3-x4=2x1+x2+2x3-x5=1 xj>=0,j=1,…,5六、求解实际问题(即解决附件中的实验题目)实验题目列出下列问题的数学模型, 并用你自己的单纯形算法程序进行计算, 最后给出计算结果。
哈工大运筹学实验报告实验
哈工大运筹学实验报告实验实验一:货物运输问题的数学建模与求解实验目的:1.了解货物运输问题的数学建模方法;2.掌握货物运输问题的线性规划求解方法;3.学会使用运筹学软件求解货物运输问题。
实验原理:货物运输问题属于线性规划问题的一种,其目标是在满足供需平衡和运输容量限制的前提下,使运输成本最小化。
实验内容:1.问题描述:公司有m个供应点和n个需求点,其中每个供应点的供应量为si (i=1,2,…,m),每个需求点的需求量为dj (j=1,2,…,n)。
公司希望通过运输将货物从供应点送到需求点,各供应点到需求点的单位运输成本为aij (i=1,2,…,m; j=1,2,…,n)。
公司希望确定每个供应点与需求点之间的货物运输量xij,以及总运输成本C,使总运输成本最小。
2.数学建模:设xij表示从第i个供应点到第j个需求点的货物运输量,C表示总运输成本,则该问题的数学模型可以描述为:min C = ∑(i=1 to m) ∑(j=1 to n) aij * xijsubject to:∑(j=1 to n) xij = si, i=1,2,…,m∑(i=1 to m) xij = dj, j=1,2,…,nxij ≥ 0, i=1,2,…,m; j=1,2,…,n3.求解方法:利用运筹学软件求解上述线性规划问题,得到最优解。
实验步骤:1.在运筹学软件中新建一个线性规划模型;2.设定决策变量、目标函数和约束条件,并输入相应参数;3.运行求解算法,得到最优解。
实验结果:根据实验步骤,通过运筹学软件求解货物运输问题,得到最优解如下:供应点1到需求点1的运输量为x11=200;供应点1到需求点2的运输量为x12=150;供应点2到需求点1的运输量为x21=100;供应点2到需求点2的运输量为x22=250;总运输成本最小为C=900。
实验总结:通过本次实验,我了解了货物运输问题的数学建模方法,并掌握了线性规划求解的基本步骤。
运筹学实验报告_2
运筹学上机实验报告
5.用指令 linprog()实现 page 48 例 10
6. 用指令 linprog()实现 page 48 例 11
三、程序流程图: 1.用指令 linprog() 实现 page 15
f=-[2,3]'; a=[1,2;4,0;0,4]; b=[8,16,12]'; lb=[0,0]'; [x,fval,ex]=linprog(f ,a,b,[],[],lb,[])
2.用指令 linprog() 实现 page18 无穷多最优解
if exitflag==-3 fprintf('该线性规划为无界解')
end
4. 用指令 linprog()实现 page18 无可行解
f=-[1,1]'; a=[-2,1;1,-1]; b=[0,0]'; [x,fval,exitflag]=linprog(f,a,b,[],[],lb,[ ])
所e述xi问tf题la无g 可= 行解 5.用指-2令 linprog()实现 page 48 例 10
x=
2.5470 0.0000 0.0000 0.0000 0.0000
fval =
1.0043e-011
6. 用指令 linprog()实现 page 48 例 11
x=
100.0000 50.0000 50.0000
0.0000 0.0000 0.0000 0.0000 25.0000 0.0000
运筹学实训实验报告
一、实验背景运筹学是一门应用数学的分支,它运用数学模型和算法来解决各种优化问题。
随着现代科技的发展,运筹学在各个领域的应用越来越广泛,如生产管理、物流运输、资源分配等。
为了提高学生运用运筹学知识解决实际问题的能力,我们开展了运筹学实训实验。
二、实验目的1. 熟悉运筹学的基本概念和常用方法;2. 掌握线性规划、整数规划、运输问题、目标规划等运筹学模型;3. 学会运用计算机软件解决实际问题;4. 培养学生的团队合作精神和创新意识。
三、实验内容本次实验主要包括以下内容:1. 线性规划:以生产计划问题为例,建立数学模型,并运用Excel规划求解器求解最优解。
2. 整数规划:以人员排班问题为例,建立数学模型,并运用Lingo软件求解最优解。
3. 运输问题:以物流配送问题为例,建立数学模型,并运用Lingo软件求解最优解。
4. 目标规划:以投资组合问题为例,建立数学模型,并运用Lingo软件求解最优解。
四、实验步骤1. 线性规划实验(1)问题分析:某企业需要生产甲、乙两种产品,已知生产甲、乙两种产品所需的原料、劳动力及设备等资源消耗量,以及产品的售价和利润。
(2)模型建立:根据问题分析,建立线性规划模型,目标函数为最大化利润,约束条件为资源消耗量不超过限制。
(3)求解:运用Excel规划求解器求解最优解。
2. 整数规划实验(1)问题分析:某公司需要安排员工值班,要求每天至少有3名员工值班,且员工值班时间不能超过一周。
(2)模型建立:根据问题分析,建立整数规划模型,目标函数为最小化员工值班成本,约束条件为员工值班时间不超过限制。
(3)求解:运用Lingo软件求解最优解。
3. 运输问题实验(1)问题分析:某物流公司需要将货物从A、B两个仓库运送到C、D两个销售点,已知各仓库的货物量、各销售点的需求量以及运输成本。
(2)模型建立:根据问题分析,建立运输问题模型,目标函数为最小化运输成本,约束条件为各仓库的货物量不超过需求量。
运筹学综合性实验报告
ni 200 ( xi1 xi 2 ) 2 x ik 0, i 1,2,3,4,5,6; k 1,2
(二)用 LINGO 中来求解线性规划问题 打开 LINGO,创建一个新文件,输入以下代码[备注:其中@gin 中是对变量进行整数约束] :
max=30*(y1+y2+y3+y4+y5+y6)-1500*(p1+p2+p3+p4+p5+p6)-1000*(d1+d2+d3+d4+d5+d6)-5*(kc 1+kc2+kc3+kc4+kc5+kc6)-2000*(x1+x2+x3+x4+x5+x6); x0=4; p1-d1=x1-x0; p2-d2=x2-x1; p3-d3=x3-x2; p4-d4=x4-x3; p5-d5=x5-x4; p6-d6=x6-x5; kc0=0; kc1=y1+kc0-500; kc2=y2+kc1-600; kc3=y3+kc2-300; kc4=y4+kc3-400; kc5=y5+kc4-500; kc6=y6+kc5-800; y1<=100*x1;y2<=100*x2;y3<=100*x3;y4<=100*x4;y5<=100*x5;y6<=100*x6;y1+y2+y3+y4+y5+y 6<=3100; @gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5);@gin(y6);@gin(x1);@gin(x2);@gin(x3);@ gin(x4);@gin(x5);@gin(x6);
南邮运筹学运输问题实验报告(一)
南邮运筹学运输问题实验报告(一)南邮运筹学运输问题实验报告1. 背景运输问题是管理科学中常见的数学问题之一。
本实验旨在通过运用运筹学的方法对南邮快递公司的运输问题进行优化,使得运输成本最小化,配送效率最大化。
2. 实验方法本实验使用了线性规划方法对运输问题进行建模,运用了Excel或MATLAB等工具进行求解。
具体步骤如下:1.收集数据,包括快递运输的起点、终点和运输量等信息;2.建立运输问题的数学模型,即线性规划模型;3.编写程序并求解;4.分析结果,得出优化的方案。
3. 实验结果通过对南邮快递公司的运输问题进行分析和优化,得出了如下方案:1.尽量选择简单线路进行配送,减少运输中转,降低运输成本;2.优先派送运输量大、运输距离小的货物,减少路途中停留和等待时间,提高配送效率;3.设立中转站,适时调整运输路线,减少空运和空驶,提高车辆使用率;4.采用信息化管理手段,通过优化物流调度系统和智能配送系统,实现物流信息实时监控、自动化配送等目的。
4. 实验总结本实验主要运用了线性规划方法对南邮快递公司的运输问题进行了分析和优化,得出了一系列优化方案。
实验结果表明,运用运筹学的方法可以有效地降低快递公司的运输成本,提高配送效率,为企业节省了大量的时间和资源。
总之,运用运筹学的方法对现代物流业的发展有着重要的意义,为企业实现可持续发展提供了强有力的技术支撑。
5. 实验心得通过本次实验,我对运筹学的方法和思想有了更深入的理解。
在实践中,我们不仅要有熟练的数学建模和编程技巧,还要注重数据的收集和分析,才能得出准确、实用的结果。
此外,实验中还提到了信息化管理手段,这也是当今物流业的发展趋势之一。
通过智能化技术和数据分析,我们可以对物流系统进行全面的优化和升级,提高物流效率,降低成本,并为企业的可持续发展保驾护航。
6. 实验意义运筹学的方法已经广泛应用于企业的生产、销售等领域,可以降低成本、提高效率、优化资源和规划未来。
运筹学实践教学报告模板(3篇)
第1篇一、引言运筹学作为一门应用广泛的学科,其核心在于运用数学模型和算法解决实际问题。
为了更好地理解和掌握运筹学的理论和方法,本次实践教学报告以XX项目为例,详细阐述运筹学在实际问题中的应用过程。
二、项目背景与目标1. 项目背景XX项目是XX公司为提高生产效率、降低成本而提出的一个优化问题。
公司现有生产线,由于设备老旧、工艺流程不合理等原因,导致生产效率低下,成本较高。
为了解决这一问题,公司决定运用运筹学方法进行生产线优化。
2. 项目目标通过运筹学方法,对XX项目生产线进行优化,实现以下目标:- 提高生产效率,降低生产周期;- 降低生产成本,提高企业经济效益;- 优化生产线布局,提高生产线柔性。
三、运筹学方法选择与应用1. 方法选择针对XX项目的特点,本次实践选择了以下运筹学方法:- 线性规划(Linear Programming,LP)- 整数规划(Integer Programming,IP)- 模拟退火算法(Simulated Annealing,SA)2. 方法应用(1)线性规划首先,根据XX项目实际情况,建立了线性规划模型。
模型中包含决策变量、目标函数和约束条件。
通过求解线性规划模型,得到了最优的生产方案,包括各设备的生产能力分配、生产顺序安排等。
(2)整数规划由于部分设备的生产能力为整数,因此采用整数规划方法对模型进行改进。
通过求解整数规划模型,进一步优化了生产方案,使得设备利用率达到最大化。
(3)模拟退火算法为了提高生产方案的鲁棒性,采用模拟退火算法对优化后的生产方案进行全局搜索。
通过模拟退火算法,得到了一组更加优化的生产方案,提高了生产线的柔性。
四、结果与分析1. 结果经过运筹学方法的应用,XX项目生产线优化取得了以下成果:- 生产效率提高了XX%;- 生产周期缩短了XX天;- 生产成本降低了XX%;- 生产线柔性得到了显著提高。
2. 分析(1)线性规划方法的应用使得生产线设备利用率得到最大化,从而提高了生产效率;(2)整数规划方法的应用确保了设备生产能力的合理分配,避免了生产过程中的资源浪费;(3)模拟退火算法的应用使得生产方案具有更好的鲁棒性,提高了生产线的柔性。
运筹学实验报告(一)线性规划问题的计算机求解-(1)
运筹学实验报告(一)线性规划问题的计算机求解-(1)-CAL-FENGHAI.-(YICAI)-Company One1运筹学实验报告实验课程:运筹学实验日期: 任课教师:王挺第五种方案0 3 0 0第六种方案0 1 1 3第七种方案0 0 2 1设:第i种方案需要的钢管为Xi根(其中i=1,2...6),可得:minz=X1+X2+X3+X4+X5+X6+X7解:model:min= X1+X2+X3+X4+X5+X6+X7;3*X1+2*X2+2*X3+X4>=100;X2+2*X4+3*X5+X6>=150;X3+X6+2*X7>=120;endObjective value: 135.0000Infeasibilities: 0.000000Total solver iterations: 2Variable Value Reduced CostX1 0.000000 0.2500000X2 0.000000 0.1666667X3 50.00000 0.000000X4 0.000000 0.8333333E-01X5 50.00000 0.000000X6 0.000000 0.1666667X7 35.00000 0.0000004人力资源分配问题某昼夜服务的公交线路每天各时间段内所需司机和乘务人员人数如表1所示。
班次时间所需人数班次时间所需人数1 6:00~10:00 60 4 18:00~22:00 502 10:00~14:00 70 5 22:00~2:00 203 14:00~18:00 60 6 2:00~6:00 30设司机和乘务人员分别在各时间段开始时上班,并连续工作8小时,问该公交线路应怎样安排司机和乘务人员,既能满足工作需要,又使配备司机和乘务人员的人数最少?5投资计划问题某地区在今后三年内有四种投资机会,第一种是在3年内每年年初投资,年底可获利润20%,并可将本金收回。
运筹学最大流问题实验报告
运筹学最大流问题实验报告一、实验目的1. 学习最大流问题的基本概念。
2. 掌握最大流问题的求解算法。
3. 通过程序模拟求解,加深对最大流问题的理解。
二、实验原理最大流问题是在一个有向图中,给定一条源点到汇点的路径以及每一条边的最大容量,求最大流量的问题。
在网络流中,每个有向边都表示一定的流量,其中每个边的构成是(开始节点,结束节点,最大容量)。
最大流问题通常使用增广路算法或Ford-Fulkerson算法来求解。
1.增广路算法增广路算法是一种贪心算法。
该算法不断寻找一条增广路,并将增广路中的最小流量分配给这条增广路的每一条边。
当不存在增广路时,算法结束,返回最大流量。
2.Ford-Fulkerson算法Ford-Fulkerson算法是一种经典的解法,它是基于增广路径的算法。
但是这种算法是暴力寻求增广路径,时间复杂度较高。
需要借助一个可行函数,用来判断剩余网络中是否还有增广路。
一个网络的可行函数应该满足:当且仅当所有的边都满足限制的时候,可行函数有唯一最大值。
可行函数常常构建为距离标号(下面会讲到)。
三、实验步骤使用Python语言,实现最大流问题的求解算法。
算法采用增广路算法。
1. 构建有向图,每个节点可以表示为一个数字。
源点的编号为0,汇点的编号为N-1。
有向边的构成是(开始节点,结束节点,最大容量)。
2. 实现BFS广度优先搜索算法寻找增广路径。
3. 实现对路径上节点的最小流量计算并更新网络。
4. 不断循环执行2、3步骤,直到不存在增广路径为止。
5. 输出最大流量。
四、实验结果下面是一个简单的实例,以验证程序的正确性。
在这个网络中,从源点0到汇点5,可以有两条不同路径:0→1→2→4→5和0→1→3→4→5。
这两条路径中,最小容量的路径是第一条,容量为3。
在执行完毕后,程序输出了最大流量为3。
五、实验结论通过本实验,我们学习了最大流问题的基本概念,掌握了最大流问题的求解算法,并且通过程序模拟成功地求解了一个基本问题,加深了对最大流问题的理解。
运筹学实训报告个人总结
一、前言运筹学作为一门研究资源优化配置的学科,在各个领域都有着广泛的应用。
为了更好地将理论知识与实践相结合,提高自身的实际操作能力,我参加了为期两周的运筹学实训。
以下是我在实训过程中的个人总结。
二、实训内容与目标1. 实训内容本次实训主要包括以下内容:(1)线性规划:掌握线性规划问题的建模、求解方法及软件应用。
(2)整数规划:了解整数规划问题的特点、建模方法及求解算法。
(3)非线性规划:掌握非线性规划问题的建模、求解方法及软件应用。
(4)动态规划:了解动态规划问题的特点、建模方法及求解算法。
(5)排队论:掌握排队论的基本概念、模型建立及求解方法。
(6)库存管理:了解库存管理的基本理论、模型建立及求解方法。
2. 实训目标(1)熟练掌握运筹学的基本理论和方法。
(2)提高运用运筹学解决实际问题的能力。
(3)培养团队协作和沟通能力。
三、实训过程与收获1. 实训过程在实训过程中,我们按照以下步骤进行:(1)学习运筹学的基本理论和方法。
(2)根据实际问题,建立数学模型。
(3)运用所学知识,求解数学模型。
(4)对求解结果进行分析和评估。
(5)撰写实训报告。
2. 实训收获(1)理论知识方面:通过实训,我对运筹学的基本理论和方法有了更深入的了解,为今后在相关领域的工作奠定了基础。
(2)实践能力方面:在实训过程中,我学会了如何将实际问题转化为数学模型,并运用运筹学方法进行求解。
这对我今后解决实际问题具有重要意义。
(3)团队协作能力:在实训过程中,我与同学们相互学习、共同进步,培养了良好的团队协作精神。
四、存在问题与不足1. 实践经验不足:虽然通过实训掌握了运筹学的基本方法,但在实际操作过程中,仍存在一些问题,如模型建立不够完善、求解方法选择不当等。
2. 理论知识掌握不够扎实:在实训过程中,发现自己在某些理论知识方面存在不足,需要进一步加强学习。
3. 沟通能力有待提高:在实训过程中,与团队成员的沟通不够充分,导致部分问题未能得到及时解决。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉林工程技术师范学院应用理学院运筹学实验报告专业:班级:姓名:学号:指导教师:数学与应用数学专业2015-12-18实验目录一、实验目的 (3)二、实验要求 (3)三、实验内容 (3)1、线性规划 (3)2、整数规划 (6)3、非线性规划 (13)4、动态规划 (114)5、排队论 (19)四、需用仪器设备 (26)五、MATLAB优化工具箱使用方法简介 (26)六、LINGO优化软件简介 (26)七、实验总结 (27)一、实验目的1、会利用适当的方法建立相关实际问题的数学模型;2、会用数学规划思想及方法解决实际问题;3、会用排队论思想及方法解决实际问题;4、会用决策论思想及方法解决实际问题;5、掌握MATLAB、LINGO等数学软件的应用;二、实验要求1、七人一组每人至少完成一项实验内容;2、每组上交一份实验报告;3、每人进行1~2分钟实验演示;4、实验成绩比例:出勤:40%课堂提问:20%实验报告:30%实验演示:10%。
三、实验内容1、线性规划例运筹学74页14题Min z=-2x-x2s.t. 2x1+5x2≤60x1+x2≤183x1+x2≤44X2≤10X1,x2≥0用matlab运行后得到以下结果:the program is with the linear programmingPlease input the constraints number of the linear programming m=6m =6Please input the variant number of the linear programming n=2n =2Please input cost array of the objective function c(n)_T=[-2,-1]'c =-2-1Please input the coefficient matrix of the constraints A(m,n)=[2,5;1,1;3,1;0,1;-1,0;0,-1]A =2 51 13 10 1-1 00 -1Please input the resource array of the program b(m)_T=[60,18,44,10,0,0]'b =60184410Optimization terminated.The optimization solution of the programming is: x =13.00005.0000The optimization value of the programming is: opt_value =-31.0000LINDO程序在命令窗口键入以下内容:max -2x-ysubject to2x+5y<=60x+y<=183x+y<=44y<=10end按solve键在reports window出现: Global optimal solution found.Objective value: 0.000000Total solver iterations: 0Variable Value Reduced Cost X 0.000000 2.000000Y 0.000000 1.000000Row Slack or Surplus Dual Price1 0.000000 1.0000002 60.00000 0.0000003 18.00000 0.0000004 44.00000 0.0000005 10.00000 0.000000 2、整数规划课本第二章79页1题Max z=100x1+180x2+70x3s.t. 40x1+50x2+60x3≤100003 x1+6x2+ 2x3≤600x1≤130X2≤80x3≤200x1 x2 x3≥0程序运行及结果:biprogramthe program is with the binary linear programmingPlease input the constraints number of the programming m=5m =5Please input the variant number of the programming n=5n =5Please input cost array of the objective function c(n)_T=[100,180 ,70]'c =10018070Please input the coefficient matrix of the constraints A(m,n)=[40 ,50,60;3,6,2;1,0,0;0,1,0;0,0,1]A =40 50 603 6 21 0 00 1 00 0 1Please input the resource array of the program b(m)_T=[10000;600; 130;80;200]b =1000060013080200Optimization terminated.The optimization solution of the programming is:x =The optimization value of the programming is:opt_value =程序名:intprogram b程序说明:% the programm is with the integer linear programming use branc h and bound method!%这个程序是用分支定界法解决整数规划问题% please input the parameters in the main function in the comm and winows%请在命令窗口输入这个主要定义函数的参数function [x,f]=ILp(c,A,b,vlb,vub,x0,neqcstr,pre)% min f=c'*x,s.t. A*x<=b,vlb<=x<=vub% f的最小值等于c的转置乘以x,A乘以x小于等于b,x大于等于vlb小于等于vub % the vectors of x is required as integers as whole% x是整个的整数需要% x0 is the initialization,'[]' is also ok% x0是初始值,"[]"也可以是。
% neqcstr is the number of equational constraints,when 0 can be delete% neqcstr是平均约束条件的数目,当0能删除时% pre is the concise rate% pre是简明率% x is the integer optimization and f is the optimal value% x是整数规划,f 是最优值%%%%%%%%%%%%%%%%if nargin<8,pre=0; % nargin is the factually input vari ants number (这个参数是实际输入的变量个数)if nargin<7,neqcstr=0;if nargin<6,x0=[];if nargin<5,vub=[];if nargin<4,vlb=[];endendendendend%%%%%%%%%%%%%%%%%%% set to column vectors%建立列向量x0=x0(:);c=c(:);b=b(:);vlb=vlb(:);vub=vub(:);mm=1;j=1;nvars=length(c'); % number of variants(变量的个数)fvub=inf;xall=[];fall=[];x_f_b=[];[xtemp,ztemp,how]=lp(c,A,b,vlb,vub,x0,neqcstr,-1);ftemp=c'*xtemp;%%%%%%%%%%%%%%%%%%%%%%%if strcmp(how,'ok') % compare between how and ok(how和ok之间的比较)temp0=round(xtemp);%临时变量四舍五入temp1=floor(xtemp);%取比其小的整数temp2=find(abs(xtemp-temp0)>pre);mtemp=length(temp2);if ~isempty(temp2)x_f_b=[xtemp;ftemp;vlb;vub];while j<=mmi=1;while i<=mtemp%%%%%%%%%%%%%%%%%%%%%if x_f_b(nvars+1,j)<=fvubvlbl=x_f_b(nvars+2:2*nvars+1,j);vubl=x_f_b(2*nvars+2:3*nvars+1,j);vubl(temp2(i))=temp1(temp2(i));[xtemp,z,how]=lp(c,[A;c'],[b;fvub],vlbl,vubl, x0,neqcstr,-1);ftemp=c'*xtemp;if strcmp(how,'ok')templ0=round(xtemp);templ1=floor(xtemp);templ2=find(abs(xtemp-templ0)>pre );if isempty(templ2)xall=[xall,xtemp];fall=[fall,ftemp];fvub=min([fvub,fall]);elseif ftemp<=fvubx_f_b=[x_f_b,[xtemp;ftemp;vlb l;vubl]];endendend%%%%%%%%%%%%%%%%%%if x_f_b(nvars+1,j)<=fvubvlbr=x_f_b(nvars+2:2*nvars+1,j);vlbr(temp2(i))=temp1(temp2(i))+1;vubr=x_f_b(2*nvars+2:3*nvars+1,j);[xtemp,z,how]=lp(c,[A;c'],[b;fvub],vlbr,vub r,x0,neqcstr,-1);ftemp=c'*xtemp;if strcmp(how,'ok')tempr0=round(xtemp);tempr1=floor(xtemp);tempr2=find(abs(xtemp-tempr0)>pre );if isempty(tempr2)xall=[xall,xtemp];fall=[fall,ftemp];fvub=min([fvub,fall]);elseif ftemp<=fvubx_f_b=[x_f_b,[xtemp;ftemp;vlb r;vubr]];endendend%%%%%%%%%%%%%%%%%%%%%i=i+1;end % the second whilexint=x_f_b(1:nvars,:);[m,mm]=size(xint);j=j+1;if j>mmbreakend % the end because the break (因为中断而结束)temp0=round(xint(:,j));temp1=floor(xint(:,j));temp2=find(abs(xint(:,j)-temp0)>pre);mtemp=length(temp2);end % the end of while(结束当前)else % correspond the second if(符合第一个如果)x=xtemp;f=ftemp;end % the end of second if(第二个如果的结束)%%%%%%%%%%%%%%%%%%5if ~isempty(fall)fmin=min(fall);nmin=find(fall==fmin);x=xall(:,nmin);f=fmin;endelse % correspond the first if(符合第一个如果)x=nan*ones(1,nvars);endLINDO程序例99页第6题第二问在命令窗口键入以下内容:max -11x1-4x2st-x1+2x2<=45x1+2x2<=162x1-x2<=4endgin x1gin x2按solve键在reports window出现:Global optimal solution found.Objective value: 0.000000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced Cost X1 0.000000 11.00000 X2 0.000000 4.000000Row Slack or Surplus Dual Price1 0.000000 1.0000002 4.000000 0.0000003 16.00000 0.0000004 4.000000 0.000000 3、非线性规划程序名:unpfun1函数unpfun1函数执行实例:(课本第四章152页16题)min4x1+6x2-2x1x2-2x^2,取初始点x0=(1;1)在命令窗口键入以下内容:f = 4*x(1)-2*x(1)*x(2) - x(2)^2-6*x(2);[x,fval]=fminunc(@unpfun1,x0)(调用无约束线性规划函数)按运行按钮在solution report 窗口得到以下结果:Warning: Gradient must be provided for trust-region method;using line-search method instead.> In fminunc at 265Optimization terminated: relative infinity-norm of gradient less than options.TolFun.x =1.0e-006 *0.2541 -0.2029fval =1.3173e-0134、动态规划程序名:dynamic; dynfun1_1, dynfun1_2, dynfun1_3;例180页第一题程序说明:dynamic程序:% the programm is with the dynamic programming use the recurisive method for the last to first% this is the main function of the methodfunction[p_opt,fval,u]=dynprog(x,DecisFun,ObjFun,TransFun)% the function is to solve the dynamic example in the textbook% x is the situation variant and its column number represent the stage situation% subfunction DecisFun(k,x) is to solve the decision variant of k stage variant x% subfunction ObjFun(k,x,u) is to stage index function% subfunction TransFun(k,x,u) is the stage transformation function,u is the corresponding decision variant% p_opt has four output,the first is the number of the stage,the second is the optimal road of decision% the third is the optimal stategies of the decision ,the forth is the index function group.% fval is a column vector,is to represent the optimal value correspend to the initial stage is x%k=length(x(1,:));f_opt=nan*ones(size(x));d_opt=f_opt;t_vubm=inf*ones(size(x));x_isnan=~isnan(x);t_vub=inf;%%%%%%%%%%%%%%%%%% to caculate the teminate valuestmp1=find(x_isnan(:,k));tmp2=length(tmp1);for i=1:tmp2u=feval(DecisFun,k,x(i,k));tmp3=length(u);for j=1:tmp3tmp=feval(ObjFun,k,x(tmp1(i),k),u(j));if tmp<=t_vubf_opt(i,k)=tmp;d_opt(i,k)=u(j);t_vub=tmp;endendend%%%%%%%%%%%%%%%%% recurisivefor ii=k-1:-1:1tmp10=find(x_isnan(:,ii));tmp20=length(tmp10);for i=1:tmp20u=feval(DecisFun,ii,x(i,ii));tmp30=length(u);for j=1:tmp30tmp00=feval(ObjFun,ii,x(tmp10(i),ii),u(j));tmp40=feval(TransFun,ii,x(tmp10(i),ii),u(j)); tmp50=x(:,ii+1)-tmp40;tmp60=find(tmp50==0);if ~isempty(tmp60),if nargin<5tmp00=tmp00+f_opt(tmp60(1),ii+1);if tmp00<=t_vubm(i,ii)f_opt(i,ii)=tmp00;d_opt(i,ii)=u(j);t_vubm(i,ii)=tmp00;endendendendendendfval=f_opt(tmp1,1);%%%%%%%%%%%%%%%%%%% to write the index and parameter or resultp_opt=[];tmpx=[];tmpd=[];tmpf=[];tmp0=find(x_isnan(:,1));tmp01=length(tmp0);for i=1:tmp01tmpd(i)=d_opt(tmp0(i),1);tmpx(i)=x(tmp0(i),1);tmpf(i)=feval(ObjFun,1,tmpx(i),tmpd(i));p_opt(k*(i-1)+1,[1,2,3,4])=[1,tmpx(i),tmpd(i),tmpf(i)];for ii=2:ktmpx(i)=feval(TransFun,ii-1,tmpx(i),tmpd(i));tmp1=x(:,ii)-tmpx(i);tmp2=find(tmp1==0);if ~isempty(tmp2)tmpd(i)=d_opt(tmp2(1),ii);endtmpf(i)=feval(ObjFun,ii,tmpx(i),tmpd(i));p_opt(k*(i-1)+ii,[1,2,3,4])=[ii,tmpx(i),tmpd(i),tmpf(i)]; endenddynfun2_1程序:function u=dynfun2_1(k,x)if x==1u=[2,3,4];elseif x==2u=[5;6];elseif x==3u=[5;6];elseif x==4u=[5;6];elseif x==5u=[7;8;9];elseif x==6u=[7;8;9];elseif(x==7)|(x==8)|(x==9)u=10;elseif x==10u=10;enddynfun2_2程序:function v=dynfun2_2(k,x,u)tt=[3;2;1;4;3;1;3;3;5;2;5;1;1;4;2;3;1;5];tmp=[x==1&u==2,x==1&u==3,x==1&u==4,x==2&u==5,x==2&u==6,...x==3&u==5,x==3&u==6,x==4&u==5,x==4&u==6,...x==5&u==7,x==5&u==8,x==5&u==9,x==6&u==7,x==6&u==8,x==6&u==9,x==& u==10,x==8&u==10,x==9&u==10];v=tmp*tt;dynfun2_3程序:function y=dynfun2_3(k,x,u)y=u;在命令窗口的程序执行过程和结果如下:>>x=nan*ones(3,5);>>x>(1,1)=1;>>x(1:3,2)=(2:4)';>>x(1:2,3)=[5,6]';>>x(1:3,4)=(7:9)';>>x(1,5)=10;>>[p,f]=dynamic(x,'dynfun2_1','dynfun2_2','dynfun2_3')得到以下结果:p =1 1 3 22 3 5 13 5 7 24 7 10 35 10 10 0f =8该结果表明最短路线为1 3 5 7 10最短路程为85排队论程序:queueM/M/1/k系统课本270页例8.2.5程序及结果如下:queuethe program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2(该数字表示选择M/M/1/k系统)Please input the average arrival number in unit time lapta=10 lapta =10Please input the average service number in unit time mu=30mu =30Please input the parameter k=2k =2输出结果如下:The service intensity(Untruth) of the system is:ru =0.3333The average queue length is:L =0.3846(平均队长)The average waiting length is:Lq =0.0769(平均等待队长)The lost possibility is:p_k =0.0769The average lost customer number in unit time is:lapta_L =0.7692The truth average arrival customer number in unit time is: lapta_e =9.2308The average delay time is:W =0.0417(平均逗留时间)The average waiting time is:Wq =0.0083(平均等待时间)The average service intensity(efficent and truth) of the system is:ru_e =0.3077若按照甲方案,则如下结果:the program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2Please input the average arrival number in unit time lapta=10 lapta =10Please input the average service number in unit time mu=30mu =30Please input the parameter k=3k =3输出结果如下:The service intensity(Untruth) of the system is:ru =0.25The average queue length is:L =0.3176The average waiting length is:Lq =0.0706The lost possibility is:p_k =0.0118The average lost customer number in unit time is:lapta_L =0.1176The truth average arrival customer number in unit time is: lapta_e =9.8824The average delay time is:W =0.0321The average waiting time is:Wq =0.0071The average service intensity(efficent and truth) of the system is:ru_e =0.2471the program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2Please input the average arrival number in unit time lapta=10 lapta =10Please input the average service number in unit time mu=40mu =40Please input the parameter k=2k =2输出结果如下:The service intensity(Untruth) of the system is:ru =0.25The average queue length is:L =0.2857The average waiting length is:Lq =0.0476The lost possibility is:p_k =0.0476The average lost customer number in unit time is:lapta_L =0.4762The truth average arrival customer number in unit time is: lapta_e =9.5238The average delay time is:W =0.03The average waiting time is:Wq =0.005The average service intensity(efficent and truth) of the system is:ru_e =0.2381the program is with queueing theoryPlease input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4!Pattern=2Pt =2Please input the average arrival number in unit time lapta=30 lapta =30Please input the average service number in unit time mu=30mu =30Please input the parameter k=2k =2输出结果如下:The service intensity(Untruth) of the system is:ru =1The average queue length is:L =1The average waiting length is:Lq =0.3333The lost possibility is:p_k =0.3333The average lost customer number in unit time is:lapta_L =10The truth average arrival customer number in unit time is: lapta_e =20The average delay time is:W =0.05The average waiting time is:Wq =0.0167The average service intensity(efficent and truth) of the system is:ru_e =0.6667四、需用仪器设备PC i5、windows XP、MATLABR2007a、LINGO11五、MATLAB优化工具箱使用方法简介MATLAB优化工具箱具有强大的科学计算能力,在工程设计领域得到了广泛的应用.简要介绍了MATLAB优化工具箱,通过对MATtAB优化工具箱中fmincon函数的语法进行分析,提出了结构优化设计的通用求解方法.首先,合理设置优化目标函数和约束条件.然后,使用MATLAB优化工具箱进行编程计算.结果显示,与其他方法相比,使用MATLAB优化工具箱进行优化,不仅可以提高计算精度,而且可以减少计算时间.因此,在结构工程设计领域有较强的实际应用价值.六、LINGO优化软件简介lingo是用来求解线性和非线性优化问题的简易工具。