Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调用与Excel链接的CPLEX(.mod)文件_Python_Cplex - Fatal编程技术网

Python 调用与Excel链接的CPLEX(.mod)文件

Python 调用与Excel链接的CPLEX(.mod)文件,python,cplex,Python,Cplex,我想从Python调用.mod CPLEX文件。在下一个链接中,有关于如何在Python中调用CPLEX的说明: 但是,在我的例子中,.mod文件使用从Excel读取的数据。在这种情况下,我是否需要使用: import pandas 这样做(调用与Excel链接的CPLEX(.mod)文件)是正确的还是好的方法 在链接中,总线被定义为一种具有座位和成本特征的总线结构 但是如果问题中没有这样的结构,并且只有单独的变量和参数,那么我们应该使用什么来代替opl.set_input() 例如,如果

我想从Python调用.mod CPLEX文件。在下一个链接中,有关于如何在Python中调用CPLEX的说明:

但是,在我的例子中,.mod文件使用从Excel读取的数据。在这种情况下,我是否需要使用:

import pandas
这样做(调用与Excel链接的CPLEX(.mod)文件)是正确的还是好的方法

在链接中,总线被定义为一种具有座位和成本特征的总线结构

但是如果问题中没有这样的结构,并且只有单独的变量和参数,那么我们应该使用什么来代替
opl.set_input()

例如,如果代码中只定义了nbKids之类的变量或参数,我们如何将其从Python传递到CPLEX.mod文件?

如中所示

然后在.dat中,您可以使用SheetRead连接Excel电子表格

单张(zoo.xlsx)


我这样做了,现在代码正在运行。它甚至可以处理嵌套文件,每个文件都链接到另一个.dat文件。“谢谢,”亚历克斯·弗莱舍说。
you can use a .dat file with doopl to read / write data with OPL from python:

from doopl.factory import *


# Create an OPL model from a .mod file
with create_opl_model(model="zootupleset.mod",data="zootupleset.dat") as opl:
    

    # Generate the problem and solve it.
    opl.run()

    # Get the names of post processing tables
    print("Table names are: "+ str(opl.output_table_names))

    # Get all the post processing tables as dataframes.
    for name, table in iteritems(opl.report):
        print("Table : " + name)
    for t in table.itertuples(index=False):
            print(t)

    # nicer display
    for t in table.itertuples(index=False):
        print(t[0]," buses ",t[1], "seats")
params from SheetRead(s,"params!A2");
buses from SheetRead(s,"buses!A2:B3");
results to SheetWrite(s,"buses!E2:F3");