Gurobi示例的列表

我们建议您首先阅读示例的概述(从下一节)。但是,如果您想直接深入到一个特定的示例中,下面是按基本函数组织的ruby发行版中包含的所有示例的列表。示例的源代码可以通过所提供的链接找到,也可以在例子Gurobi发行版的目录。

从文件中读取模型

  • lp—一个非常简单的例子,从文件中读取连续模型,对其进行优化,并将解决方案写入文件。如果模型是不可行的,它会写一个不可简化的不一致子系统(IIS)。Cc++c#JavaPythonRVB
  • mip2—从文件中读取MIP模型,进行优化,解决MIP模型的固定版本。Cc++c#JavaPythonVB

建立一个简单的模型

一些简单的应用程序

  • 饮食-构建并解决了经典的饮食问题。演示模型构建和简单的模型修改-在初始模型解决后,添加一个约束来限制乳制品的数量。Cc++c#JavaMATLABPythonRVB
  • 饮食2,饮食3,饮食4,饮食模型-节食示例的python变体,用于演示模型-数据分离。diet2.pydiet3.pydiet4.pydietmodel.py
  • 设施-简单的设施选址模型:给定一组工厂和一组仓库,以及它们之间的运输成本,这个例子找到最便宜的工厂,以满足产品需求。这个示例演示了MIP启动的使用——该示例计算一个初始的启发式解决方案,并将该解决方案传递给MIP求解器。手机万博登录Cc++c#JavaMATLABPythonRVB
  • matrix2-仅Python示例,使用面向矩阵的Python接口解决n-queens问题。matrix2.py
  • netflow-解决多商品网络流模型的仅python示例。它演示了几种Python建模结构的使用,包括字典、元组、元pledict和元列表对象。netflow.py
  • 投资组合-一个仅使用python的示例,解决了一个金融投资组合优化模型,其中使用pandas包存储历史回报数据,使用matplotlib包绘制结果。它演示了pandas、NumPy和Matplotlib与ruby的结合使用。portfolio.py
  • 数独-从文件中读取数独数据集,建立一个MIP模型来解决该模型,解决它,并打印解决方案。Cc++c#JavaMATLABPythonRVB
  • workforce1-制定并解决劳动力调度模型。如果模型不可行,则示例计算并打印一个不可约不一致子系统(IIS)。Cc++c#JavaMATLABPythonRVB
  • workforce2-加强workforce1。这个例子解决了相同的劳动力调度模型,但是如果模型不可行的,它将计算一个IIS,从模型中删除一个相关的约束,然后重新解决。这个过程不断重复,直到模型变得可行。演示约束移除。Cc++c#JavaMATLABPythonRVB
  • workforce3-不同的增强workforce1。这个例子解决了相同的劳动力调度模型,但如果模型不可行的,它会向每个约束添加人工变量,并最小化人工变量的总和。这对应于找到使模型可行所需的右手边向量的最小总变化。演示变量加法。Cc++c#JavaMATLABPythonRVB
  • workforce4-加强workforce3。这个示例解决了相同的劳动力调度模型,但它从每个约束中的人工变量开始。它首先使人为变量的总和最小化。然后,引入了一个新的二次目标来平衡工人之间的工作量。演示了多目标函数的优化。Cc++c#JavaMATLABPythonRVB
  • workforce5-另一种增强workforce3。这个示例解决了相同的劳动力调度模型,但它从每个约束中的人工变量开始。它制定了一个多目标模型,其中主要目标是最小化人工变量(未覆盖的班次)的总和,次要目标是最小化任何一对工人之间工作班次数量的最大差异。演示多目标优化。Cc++c#JavaMATLABPythonRVB

说明具体功能

  • feasopt—从文件中读取MIP模型,添加人为松弛变量来放松每个约束,然后最小化人为变量的总和。然后计算相同的松弛可行性放松特性。该示例演示了通过添加松弛变量对模型进行简单修改。并论证了该方法的可行性松弛特性。Cc++c#JavaMATLABPythonRVB
  • lpmethod-演示不同LP算法的使用。从文件中读取一个连续模型,并使用多种算法解决它,报告哪个是该模型最快的。Cc++c#JavaMATLABPythonRVB
  • lpmod-演示LP中高级启动的使用。从文件中读取一个连续模型,求解它,然后修改一个变量边界。然后以两种不同的方式解决生成的模型:从原始模型的解决方案开始,或者从头开始。Cc++c#JavaMATLABPythonRVB
  • 参数个数-演示使用ruby参数。从文件中读取一个MIP模型,然后用四个不同的值中的每一个花5秒钟求解该模型MIPFocus参数。比较了四种不同运行的最优性差距,并继续进行MIPFocus产生最小差距的值。Cc++c#JavaMATLABPythonRVB
  • 灵敏度- MIP敏感性分析。读取一个MIP模型,求解它,然后计算将模型中的每个二元变量固定为0或1的客观影响。演示多场景特性。Cc++c#JavaMATLABPythonRVB
  • 调优—使用参数调优工具搜索模型的改进参数设置。Cc++c#JavaPythonVB
  • fixanddive-实现一个简单的MIP启发式。它从文件中读取MIP模型,放宽完整性条件,然后解决松弛问题。然后,它选择一组整数变量,这些变量在松弛中取整数或接近整数的值,将它们固定到最接近的整数,并再次解决松弛问题。重复这个过程,直到松弛是整数可行或线性不可行的。该示例演示了不同类型的模型修改(放宽完整性条件,改变变量边界等)。Cc++c#JavaMATLABPythonRVB
  • multiscenario-简单的设施选址模型:给定一组工厂和一组仓库,以及它们之间的运输成本,这个例子找到最便宜的工厂,以满足产品需求。由于工厂固定成本和仓库需求是不确定的,因此创建了多个场景来捕获不同的可能值。构建并求解多场景模型,检索并显示不同场景的解。Cc++c#JavaPythonVB
  • batchmode-演示批量优化的使用。Cc++c#JavaPythonVB
  • workforce_batchmode-仅限python的示例,用于制定劳动力调度模型。该模型采用批量优化方法求解。VTag属性用于标识一组变量,这些变量的解决方案信息用于构造计划。workforce_batchmode.py
  • mip1_remote-仅限python的示例,展示了如何使用上下文管理器来创建和处置环境和模型对象。mip1_remote.py

更高级的功能

  • 茶匙-解决了一个使用懒惰约束的旅行推销员问题。Cc++c#JavaPythonVB
  • 回调-演示了ruby回调函数的使用。Cc++c#JavaPythonVB