优化调度和混合操作过程中产业
学习如何执行库存混合优化利润最大化和持续满足产品的需求规格。与优化工具箱™,你可以制定你的混合优化问题炼油利润率最大化减少off-spec混合和质量赠品除了满足任何产品需求和原料可用性限制。
看如何创建一个库存混合模型使用MATLAB优化工具箱和生活编辑®。重点是优化生产的汽油,但策略也适用于其他multiproduct过程具有典型的混合过程的标准。您还将学习如何创建一个交互式专业应用使用MATLAB应用设计师无需成为一名专业的软件开发人员。通过这种方式,您可以与non-MATLAB用户分享你的工作。
你好,每个人。期待和你聊天。(听不清)提到,我只在MathWorks大约一年半。我管理一个非常优秀的咨询工程师组成的团队,在MATLAB具体咨询工作,主要是在数据分析、机器学习api和应用程序开发。
所以我今天的话题是关于一个混合的问题。和一个混合的问题你必须是一个类的问题,比方说,您必须创建一个为你的产品生产计划。s manbetx 845你混合岩组件来满足特定的规范。
假设你要计划你的时间表。和你想优化降低成本或利润最大化。所以我们今天要讲的东西会是利润最大化这个东西你。我们受到各种限制。
你只能做这么多材料。你只可以存储。这么多。如果我进入一个特定的示例,我们将讨论。我们会讲到汽油混合。我们有一个问题,我们有三个等级的汽油,中期年级,优等品。
他们有几个规格我们需要满足我们的使用。对于这个示例辛烷和蒸汽压。然后,我们要让那些成绩由岩石成分混合在一起。在这个例子中,我们有三个组件。
我们要做的是要计算每月的产量和库存水平的存储为每个年级我们有汽油超过24个月,实现利润最大化,我们可以做那件事。我们会受到库存能力约束和限制我们。
在这种情况下,我们知道原材料的成本。假设我们在这个东西你真的有固定成本。实际上,你知道市场需求。所以市场需求和成本是固定的,和例子。
为了给你一个进修的这类问题从数学角度看是吗?所以你在谈论这些东西,基本上,一个线性方程组,基本上,所有组件的混合。这属于一个线性规划。
和MATLAB工具箱。优化工具箱,这实际上提供了工作流解决线性规划问题。现在,不要担心在这里所有的数学,因为你这个东西是很快的事情。
我们只是给你一个背景在一个线性规划问题。你有一个目标函数,你试图最小化或最大化。在我们的例子中,我们将编写一个方程,将定义的利润,我们要让这个项目。我们想最大化。
这是受到约束。在我们的问题,我们有约束限制的产品质量。辛烷值,多少有一些评级的蒸汽压。我们也有界限的事实,我们只有能力和库存限制我们能做的事情上。
所以我们要把这个工作流的优化工具箱和应用这个来解决这个问题。优化工具箱有两个工作流,您可以使用它们来解决这些类型的问题。一个是基于软件的方法。
这样你要做的是你花了很多时间框架问题的矩阵和向量,这样它就可以输入到你要特别使用的解算器。它是包含在优化工具箱。这是解决问题的基础框架,工作流的工作问题。
另一个是基于工作流的问题。在基于工作流的问题,我们会象征性地,定义优化变量、约束条件和表达式,和目标。然后我们可以解决这个问题。我们有一个模型表示。万博1manbetx
然后我们将符号表征,然后它将解决这个问题。这使它更容易理解当你写这个问题。更容易和更容易调试。而言,权衡,它需要更多的代码,更行代码。这样做并不是有效的使用为基础的解决方法。
但对于我们的问题,不是很的运算量,基于工作流的问题是真正的路要走。所以我要做的是我进入MATLAB。实际上向您展示我们如何解决这个问题的脚本。所以你们可以了解你如何工作在MATLAB开发问题。
那么好吧。我们将快速浏览。我要切换到MATLAB。如果你看一看,我在这里。这是MATLAB。的人不熟悉MATLAB,它基本上是一个集成开发环境,可以解决一个非常一种简单的方法计算复杂的问题。
我们有一个行式项目,一个命令窗口,您可以输入命令。我告诉你这是一个脚本实际上是生活,可以放在命令到MATLAB,把他们写成脚本,然后你可以在他们工作。你的调试。保存(听不清)
然后现场脚本评论中还可以添加注释,图形,人口的代表什么样的问题我们正在做。这是很好的有用的共享。MATLAB执照或其他的人你可以打印这个文档。
在这种情况下,我们要做的就是找出工作流的问题是这个问题。所以在这种情况下,我们需要做的第一件事就是我们需要的数据,我们的市场需求,产品价格,原材料价格,到工作区中。这样我们就可以解决优化问题。
所以对于这个特定的例子中,我们要从Excel电子表格输入数据。让我们给你一个快速的看看,是什么样子。这Excel电子表格包含很多表,它定义了,像这样的特定表定义了产品成分要求,八度和蒸汽压的评级,原料,成分和产品价格。
所以我们有三个等级的汽油。和每月的需求。这是一系列单独的工作表在这里,我要表。我们需要导入到工作区中。到他们的。所以对不起。所以你可以看到,我在做什么是灰色的这一部分实际上是MATLAB代码。
这将执行导入。我可以运行,部分。它会导入的数据。现在我们有数据。我要跑几个检查。总是好的,当你导入数据来验证它尤其是Excel电子表格。
假设你在你修改的问题编辑它,也许你搞错了一个表。这是一个最小的检查尺寸。这是一个空间检查。它运行。这里没有任何错误。这很好。我的一切都是好的。
现在我们有我们的工作空间,我们这些表定义所有我们想要的数据。所以下一步后我们有数据输入到工作区实际上开始框架优化问题。
在优化问题中,您可以看到,我们要这方面的决策变量。这是所有提供的优化工具箱。所以我们首先,有几个变量定义我们的各种组件,原材料的数量,组件品质我们寻找,汽油的混合。
然后我们要优化变量。所以,包括,从本质上讲,如果你考虑这个问题,我们要做的是我们每月每个计划我们制造如此多的混合。我们要卖这么多混合。我们将使用原始组件。
这就是这些定义这些变量。在这里。我使用这个函数的优化工具箱来定义这些变量。所以我们不需要去写出所有的矩阵表示。
我们还需要有一个库存,因为我们需要代表库存。这是要受到一些限制。和你可以把约束的变量。所以如果你看这些东西之一。从本质上讲,你—
每月库存由每个混合。你不能小于零库存上限是我们存储上限。这是所有已定义的变量,我们已经在这里。所以我刚刚退出运行。
然后接下来我们要做的是实际上,定义问题的目标函数优化的事情和工作,这是利润,我们要对这个东西。我们看看这个,我们有一个库存问题。
我们要用这个来创建一个对象,它将存储所有我们需要的信息来解决这个问题。这是由一个函数的优化工具箱。我们会有我们的目标感。我们想最大化。我们有一个最大化问题,我们定义它。
然后,我们需要定义我们的目标函数,也就是利润。所以先算出利润,我们需要弄清楚好了,我们要做多少收入?我们需要知道材料我们要用多少钱?成本和材料?或存储的成本。
然后我们的目标函数,这是该对象的一部分,它有一个属性是目标函数是本质上,等于收入减去成分-存储成本。这是所有这些变量建立起来的我们做过的,灯回到这里。使销售使用。这里我们定义这些变量。
现在我们有一个目标函数的定义。我虽然这项工作真正的很快,只是给你一个这是什么样的味道。不过可以肯定的是,有一个例子在未来对肥料混合产品,这是非常相似的。你可以走过一个更好的理解。
然后我们有一些限制。我们开始工作限制,现在,我们已经定义了目标函数。所以,包括,我们开始吧。我们可以显示目标函数的表达式。
你可以看到,这是一个很大的表情,这是一个很大的矩阵,包括材料的使用量,或,或出售每个月和每个流血。
所以一旦你定义目标函数,那么你需要你的约束。我们有几个约束条件必须满足。我们有一个库存。我们必须有输入库存。库存必须在下月,等于之前的库存+生产-销售。所以我们必须确保我们做到这一点。
我们有物质平衡、约束,我们不得不说。一切生产和销售最后,我们没有创造任何材料这些必须平衡。我们有一个质量平衡约束。我们也有另一个,这是一个长。
我们也有其他约束的,我们有一个最后的库存,你必须指定。你有库存的限制。只有这么多,我们每个月可以存储。有限制的过程。只有这么多的材料我们可以让每一个——那么多的混合混合每月我们可以做。
然后我们需要跟踪材料我们用多少。和我们使用的材料数量与我们的金额相等。然后我们有组件质量混合,这都是不同的,因为这是一个范围。我们有一个最小质量指标和最大质量指标集这些事情。
所以我们知道最后,我们将我们的辛烷和蒸汽压规格,有范围。这是不平等的,因为他们有约束。我们所有的约束加载到这个问题。让我们快速运行。结束部分。
然后我们可以,内部的问题,我们可以写出这个问题。所以你可以去检查所有的方程。它很长。它有一个功能,你可以把它写出来一个文本文件,看看外面的MATLAB。如果这是你喜欢什么。
然后我们可以去解决这个问题。所以我现在已经定义了,我设置优化对象。目标函数。它有约束和要使用的变量。所以我将运行这个。如果我们幸运的话,它会说它会解决。它迅速解决问题。
所以它找到了一个最佳的解决方案,给你一些信息详细说明解决方案工作。然后我们可以显示输出。所以你可以看看实际的解决方案。这是实际的解决方案。这是显示在表格格式。
的材料数量。我们出售的材料。我们商店的材料。然后我们有一个图表展示,这是优化问题的输出显示。每个月我们需要多少材料。每个月的材料数量我们卖。和存储来最大化利润基于输入原材料价格的市场需求。
这给你一个快速的味道如何经历和解决混合在MATLAB的优化问题。和我演示了使用脚本。这就是基本的框架如何实际经历和设置一个例子。
所以下一个阶段在这个东西可能是下一步你要做什么之后,你有一个问题你解决它,现在你需要你的团队成员间分享这可能有也可能没有MATLAB ?和你打算怎么做呢?
我将回到表示。所以我要讨论下一阶段就像应用程序共享。你可能会说,等等,我有我的生活。为什么我想要一个应用程序或图形用户群?有几个方面原因,为您的工作流,您可能想要一个图形用户界面。什么是,它可能帮助你在你自己的工作流来让自己更有效率,而不是必须。
如果你有重复的东西,不断重复做同样的事情,但你使用不同的数据,你可能想要有一个用户界面。这很容易做到。你不需要复制和粘贴错误从脚本。另一件事是,如果你想分发,稍后我们将讨论,您的应用程序分发给人们也许没有MATLAB许可但需要在您的应用程序的功能。
我们会讨论不同的方法你可以分发应用程序。但首先,我想简要介绍如何构建一个图形用户界面。有一个集成开发环境在MATLAB叫设计师。这是MATLAB。这允许您构建一个图形用户界面。
这是一个更高级的版本。你们有些人可能已经熟悉MATLAB,过去。有前一版本叫指南。这是取代指南,是你们的方式构建按钮。
当你谈论UI开发,人们会谈论组件。只是小计轴显示的组件。你可以做的是您可以使用设计师在组件中。你有一个托盘的事情你可以选择。然后它会做—
和应用程序有什么伟大的设计师,你可以把所有这些事情,然后在后台有设计师,将所有代码需要做的工作。所以你不必去工艺编程,编程。
基于对象的现代所有代码,真的可以帮助使它一个高效和易于维护的应用程序。设计你的应用程序的另一个关键之处和艺术设计师然后你可以在web浏览器中运行它。这将允许您在MATLAB在线运行应用程序。
并使用MATLAB编译器允许您运行包应用程序。然后主机使用MATLAB的Web服务器。然后你可以在内部托管MATLAB Web服务器。然后你所有的用户使用你的应用程序,然后可以从网站访问它,而无需下载任何软件或做任何安装。
也简单,提到这一点,在2020年,当我们开始船指南应用设计师转换工具。所以如果你有老指导应用和你说喜欢,我需要保持更新。现在是一个很好的时间来考虑观察指导,设计师过渡工具和更新您的应用程序。所以这一点。
所以我要和流行的应用程序我构建和解决这个问题。好吧。所以我在MATLAB。艺术设计是一个应用程序,该应用程序集实际发射。你可以在应用程序,你可以选择在你的应用程序的应用程序设计师,在这里。应用程序,我失踪。但我实际上已经起来。
只是左边,你可以看到一个设计应用第一件事——更离开。或离开。
(插入式的声音)
菜单。更多的左边,左边。
哦,在这里。
是的。在这里。是的。这有点困难。明白了。
是的。其实我从来没有,不得不说这是一个自由的事情,因为我真的不叫它。我输入应用程序设计师,我是一个命令行类型的人,所以我尝试一切命令行类型。总之,这是程序设计师。
你可以看到我在这里,我建的是图形界面来解决这个问题,前端解决这个问题,我们解决的优化工具箱。我想给你一个味道如何
工作,我先给你一个简单的例子从头开始构建一个新的应用程序。只是向你展示实际的工作流。
这里有一个伟大的教程。所以你可以在这里看到有几个教程。实际上是一个伟大的方式,实际上穿过,教你如何构建一个应用程序。但我要做第一,只是从一个空白的应用。开始,第一部分我们的工作流程,如我所描述,所以我需要我需要加载在一个电子表格中的数据。
所以我就试着给一个简单的例子,如何做,如何做,这样的应用程序。所以我们讨论,实际上我错了按钮。好了。取消了。让我再一次,构建新应用程序。
所以我要做的是,有一个按钮,会降低电子表格。所以基于一个按钮。然后假设我想显示在一个表。所以粘贴在一个表中。所以伟大的是程序设计师,你把这些,它实际上有浏览器的一个组成部分,然后定义这些对象。
这跟踪的所有属性,回调,等等。这是第一个按钮,让我们改名为负载。我们知道这是做什么。我们要做的是当我们按下按钮时,我们希望它实际上然后打开一个文件对话框。然后我们可以点击表格和加载到工作区。
所以当你有一个行动,你想做,这就叫做回调。所以看回调,这是按钮,按钮按函数这种模式按钮。所以我们会在这里,我们将添加回调。是什么就好,真的把你进代码视图。
说,哦,这是函数。这是发生了什么当你按这个按钮执行。然后我们要做的这个按钮被推,其实是我们想买一个文件对话框。然后显示在表中。
所以我们看一看,说,我需要的功能如何调用一个对话框。所以我所做的,是帮助我手动去。说,我需要文件对话。这个有点困难,因为我肯定这样做过。你可以说,我们有—
你注意到有什么好处点击应用程序设计师是,你真的想要使用的东西从UI。所以如果你看到UI的东西,这是你真正想要的东西来构建你的设计师应用程序,确保它是兼容的。
你可以看到有几个不同的文件。这是一个UI打开,打开文件对话框,加载文件,工作区。所以我们不学习工作,我们想要得到这个例子的文件名。所以我将使用UI获得文件,实际上,把文件的名称。
其实我想读它。我读它从Excel电子表格MATLAB。不是一个变量保存在MATLAB数学文件。所以我将把这个复制到这个函数。这段代码将会更新。它会抓住一个文件名的路径文件。然后我想做的是装载在一个电子表格的事情。
我会回到我住脚本,我写道。滚动到顶部。然后说——我们只是复制和使它简单,本产品成分表。这实际上的表函数读取表格。现在这个粘贴回我的程序设计师。
我需要确保这个变量在这个背景下已经没有任何意义。所以我就复制粘贴。得到各种有用的提示在应用程序设计师,对你所做的文件。这实际上会现在—
所以打开文件,然后读它,把它放到这个变量的产品组合。下一件事就是,我想要去到另一个组件在UI中。这个UI表。让我把它。我回到设计视图。我有这个表,UI表在这里。我想这些数据加载到那里。
在浏览器的组件定义的。你可以看到它在桌子。ui。所以我回到这里。把一个应用程序的对象,所有的事情与我们工作的窗口。然后我可以看到它。它会弹出。它给了我帮助。它说,好的。在这里,我有一个表。
好吧。我的表。然后我要将数据装载到表中。所以我知道表的属性,然后我可以。我用这个符号。我可以把数据放进去。这是当我想重新定义该产品成分。
只会说,好吧。然后我们会把它放在那里。如果你这样做正确,我会保存。这实际上应该然后,将数据装载到表中。让我运行这个。我让我们的应用程序,在mat-lab现在实际运行。最小化窗口,我们可以看到发生了什么。
我单击按钮。我把我的文件的事情。其实默认情况下。只有看着MATLAB文件。所以我得去注入一切。你可以设置的属性。父亲是加载它也是这个汽油文件。所以,开放。然后我们可以在那里看到我们的数据。
这只是给你一个味道如何开始构建组件,然后和他们一起工作应用程序的内部。这里在我们的更大的应用程序中,我们对于这个混合的问题,我们其实有一件事,一个非常复杂的UI。
这一切都是记录在该组件的事情。从本质上讲,我有这个UI设计的两个函数。一个是加载数据。它来验证它。它填补了。我们可以检查我们所做的。然后我们可以运行数据和解决它。只是给出一个快速的信息以及这是如何运作的。
如果你看一看这个东西。我可以负担。我独自在一个不同的文件,因为我改变了电子表格的格式属性略,使之更符合快速加载的事情。无论如何,所以我爱这个文件。所有的数据。它喜欢的数据格式。它做一些基本的检查。太棒了。
我有一个光变成了绿色。我可以通过和检查各种属性。然后我可以运行模拟和解决这个问题。这将弹出。它告诉我们我们的利润。它让我们的图,就像之前一样。我可以单击save按钮然后保存结果。
这是应用程序的整体功能,给你一个小味道如何,其实都是建立在那里,都是这些事情,就像我说的,他们都从这里被选中的对象,安排各面板界面配置。和他们都有。
然后那里有回调函数。如果我在一个负载的事情,对的,有一个小按钮功能我可以回电话,我发现。我可以点击这个,搬到这个函数在程序设计师。你注意到什么,不是我之前提到的,但是很多直接的代码。
东方的所有代码,对象代码的应用程序设计师跟踪。你不需要担心。然后你可以的事情,这是发生了什么在什么是代码执行的事情,当我按下按钮。这就是它的定义。
有一件事是好的,所以这做什么呢?所以当我实际上,单击按钮,现在我必须执行所有的代码,我之前和生活脚本。还有一些工作在后台能使到一个实际的类对象在MATLAB对于这个特定的例子。
和你不需要使用一个类对象。你可以使用一个函数形式。但使用类有一些优势的应用程序开发,因为你可以定义一个对象。和存储所有的数据相关的问题和所有的方法,在一个对象中。
容易份额之间的组件。为了解释这是如何工作的。所以我只是做一个快速浏览这类函数。这本质上是,过去的功能,其中包含所有脚本中的代码写的。
它有能力创建一个默认的对象,将存储所有相关信息的客观问题的数据变量和一切。然后有几个方法中使用他们。我只是想导入问题,验证数据和运行数据。的所有代码,这真是在应用程序的执行。
对于应用程序设计师,真的一件事实际上是有一个好的应用程序设计师能力分离前端代码从后端代码。我们看一看。所以我想点击回我们回到应用程序设计师。
你可以看到,我调用这些函数。这些内部类。这些类中的方法。所以导入数据。和验证数据。这是发生了什么。这是实际问题有关的所有代码的内部应用程序设计师。都是做外部的应用程序设计师。
你可能会说,好吧,我怎么分享数据标记为这事?我做了这个对象称为页。它允许你去各个组件之间的实际,共享的数据。并在启动函数被定义。
所以你有问答功能启动。试图启动调用的构造函数,构造该对象。这个程序.PP对象,可以使用,然后做所有的落后,工作的问题。这只是给你一个快速概述如何—
允许你,你没有在实际的应用程序代码。这只是给你一个快速的味道mat-lab内部应用程序开发和应用程序设计师。现在你有你的应用,你真的要经历和与人分享这个假设可能没有执照。
所以你做什么下一步呢?我们看看,回到我的幻灯片。所以你可以做的是,你其实可以分享你的圈使用我给你的工作使用MATLAB的Web服务器。,你可以从本质上讲,唠叨你的应用作为一个交互式web应用程序运行。没有实际用户使用许可。正确的安装。
所以你购买的web应用程序服务器。你把你的应用程序。然后用户在访问该服务器,可以使用该应用程序在一个web浏览器。所以我将向您展示如何去工作流。
首先,您开发您的应用程序,我们已经讨论了,应用程序设计师。你可以包与MATLAB编译器应用程序。和你有两种选择。最常见的是——如果你想让一个真正的独立应用程序,你可以应用使用应用程序编译器数据独立的可执行文件。
但后来没有MATLAB的用户可以执行运行功能。然后你也可以做一个web应用程序的编译器。这是另一个在MATLAB应用程序。然后得到一个周大福文件,它实际上是由web应用程序服务器。实际上,它的内部浏览器运行。
所以你经历。然后你可以独自站在那里。和一个web应用程序。所以让我快速看。我可以给你演示,或我们的特定的应用程序。这我有实际的应用。它的设计。这是在一个web浏览器。
它实际上是在Chrome运行。这是由在一个矩阵。所以我有内部访问。这是一些。这最初的问题的所有功能。所以我可以负荷,选择文件。
在这种情况下,我可以加载。我有另一个例子,这个东西做肥料。所以我要加载一个你可以看到有点不同策划。我将加载的。它就在那里。我可以运行问题。然后我们有解决方案出来的利润和生产计划是什么。,也可以拯救出来。然后下载这些结果。
所以我有功能的桌面应用程序和运行在web浏览器。所以很容易在组织内分享。用户需要做的。的市场情况。这是一个整体的总结你如何构建web应用程序。
我就把这个时间吧,结束的时候说我有一个团队的顾问必须建立专业的应用。我们所做的各种行业和应用程序。如果你有,所以我们期待
我们可以做很复杂的应用程序。如果你需要帮助来构建复杂应用专业的方式,我的团队准备和可用。如果你有问题也涉及到分析和数据分析,我也可以工作。
谢谢你的时间。这里有一些额外的信息你们可以看看。谢谢你!
相关产品s manbetx 845
了解更多
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。