0

我是促销和 PySP 的新手。我正在尝试复制随机编程教程下的车辆路由问题的解决方案,https://projects.coin-or.org/Coopr/browser/pyomo.data/trunk/pyomo/data/pysp/vehicle_routing/3-7f?rev=9398&order=name 但使用 PS3-7b 的摘录,所有其他代码,一旦我在它们各自的文件夹中复制并运行命令

`pyomo solve --solver=glpk ReferenceModel.py ReferenceModel.dat` 

抛出以下错误

[    0.00] Setting up Pyomo environment
[    0.00] Applying Pyomo preprocessing actions
[    0.78] Pyomo Finished
ERROR: Unexpected exception while loading model:
    'dict' object has no attribute 'f

'这几天一直在烦我。关于我做错了什么的任何帮助。

I am running Pyomo 4.3.11388 (Python 2.7.10 on Darwin 15.6.0) on MacBook Late 2008 model.

谢谢

4

1 回答 1

0

尝试在命令末尾添加 -c。它将为您提供显示错误来源的完整堆栈跟踪。

您还应该注意到 Coopr 项目已重命名为 Pyomo,我们现在托管在 Github 上。最新的文档可以在 pyomo.org 上找到

编辑:

我仔细查看了该示例,并修复了一些错误。您可以在此处找到更新的代码:https ://github.com/Pyomo/pyomo-model-libraries/blob/master/pysp/vehicle_routing/3-7b/ReferenceModel.py 。

您应该注意,3-7b 设置为作为独立脚本运行。也就是说,您不应使用 pyomo 命令运行它,而应使用安装 Pyomo 的 python 解释器运行它

python ReferenceModel.py

如果您查看该文件的底部,您将看到以下代码:(1) 使用 .dat 文件创建具体实例,(2) 创建求解器并用它求解模型,以及 (3) 通过打印询问解决方案实例上的目标和变量的值。这基本上是 pyomo 命令在您向其提供模型文件时所做的事情,因此您不应向其提供包含此类代码的模型文件。

于 2016-10-06T23:47:25.967 回答