我最近为我的生产部门构建了一个高斯过程机器学习程序。这个GP系统建立了一个庞大的mySQL数据库,该数据库提供了我们生长的每个生物体(实验室环境)的生长持续时间,以及每个生长步骤组合的预测产量。
我想用python(最好)构建一个优化程序,帮助我安排生长什么生物,何时生长,以及每一步生长多长时间。
以下是一些背景:
- 流程的4个步骤
- 平板步骤(接种生物体;开始生长)
- 种子步骤(生物体从平板转移到种子阶段)
- 培养步骤(生物体从种子转移到培养阶段)
- 收获步骤(收获生物体;收集产量)
- 每年有多种生物(>50种)生长。每个都有自己的数字ID
- 在培养步骤中培养生物体的空间有限
- 在盘子和种子的台阶上有无限的空间来生长生物
- 同一个生物体通常同时生长多个"批"。批次由培养步骤中使用的容器数量预先定义
- 不同的生物体具有非常不同的最大产量。有些产量最高为2000克,另一些产量最高为600克
- mySQL服务器具有每个生物体在每个步骤的天数的每个组合,以及该组合的预测产量。这些数据是需要用于优化的数据
我们遇到的巨大挑战是安排什么生物何时生长。对于GP过程,我们知道理论上的最大值(它们有效!),但由于限制(见下文),很难将其付诸实践
以下是我的限制:
- 每天只能收获一种生物体
- 周末不能启动任何步骤。生物体可以在周末生长,但我们不能在周末开始新的一步
- 如果同一个模具生长多个"批次",则每个"批次"的平板和种子开始日期应相同。-这在实践中通常看起来是:-盘子和种子步骤在同一天开始-接下来,孵化步骤日复一日地开始,生产多少批次-最后,收成也是如此(日复一日)-因此,通常情况下,平板阶段的天数相同,孵化天数相同,种子天数不同
目标函数:我不知道如何完美地表达这一点,但从广义上讲,我们需要最大限度地提高每个生物体的产量。然而,也需要时间平衡,因为生长生物体的空间是有限的,我们生长它们的时间也是有限的。
我创建了一个称为"周数"的指标,试图捕捉这一点。它是根据SQL服务器的预测产量来衡量特定生物体的预期年需求增长所需的周数(在孵化阶段)。因此,一个潜在的目标函数将是最小化每个生物体的lot_Week。
这显然更像是一次广泛的求助。我没有具体的要求。如果这不适合本论坛,我可以在其他地方提出我的问题。我对项目的范围感到满意,并且可以随着时间的推移找出如何编写代码,但我需要在使用什么工具和可能的工具方面得到帮助。
我已经看到pyomo可能会有所帮助,但我也想先在这里检查一下。谢谢
我曾尝试过使用Pyomo,但由于复杂性而停止了,如果它不适合这个问题,我不想学习所有内容。
编辑:这太宽泛了,我道歉。我创建了另一个带有更具体例子的帖子。谢谢你的帮助。
对于这个论坛来说,这个问题太宽泛了,可能会被关闭。也就是说。。。
这里有一个框架,可以在其中进行优化。数据库部分无关紧要。对于一个有效的优化模型,你真正需要的是变量和结果之间的已知关系,例如,潜伏期=>收获的大小或诸如此类。听起来你有。
这不是您所描述的入门级模型。你有什么资源可以帮忙吗?当地大学可能需要该领域的研究生项目或类似项目?
当你开发这个时,你应该从小处着手,把模型集中在这里的关键问题上。。。如果他们不为人所知,那么也许这就是开始的地方。例如,也许关键问题是与周末相比种植时间的管理(这是一种模式)。或者,关键问题可能是对有限增长空间的管理,以及无法在周末实现目标的问题。(这是空间管理的另一种模式。)尝试一种似乎可以解决关键管理问题的模式。从小处着手,看看你是否能把一些东西作为概念的证明。如果这是你第一次尝试线性编程,你将需要帮助。你也可以从LP的入门教材开始。