簡體   English   中英

如何在CPLEX的Python API中導入CSV文件

[英]How to import CSV file in Python API of CPLEX

我想導入這個文件http://people.brunel.ac.uk/~mastjjb/jeb/orlib/files/scp61.txt CPLEX 在 Python 中是否支持這種格式? 我將文本文件轉換為 CSV 文件,然后編寫此代碼cplex.read("scp61.csv")但我收到此錯誤"CPLEX Error 1436: Max or Min missing."
文本文件中沒有任何 Max 或 Min 字樣。

scp61 包含數據,但不包含 model。

在 python 中,可以解析文件,然后通過docplex python API 調用 cplex。

from docplex.mp.model import Model


file = open('scp61.txt', 'r')
count = 0

values=[]
print("Using for loop")
for line in file:
    count += 1
    ar=line.split()
    for i in ar:
        values.append(int(i))
 
file.close()

n=values[0]
m=values[1]

print("n=",n)
print("m=",m)

values2=values[2:]

mdl = Model(name='scp')

#decision variables
x=[mdl.binary_var(name='x'+str(i)) for i in range(1,m+1) ]

#objective
mdl.minimize(mdl.sum(x[i-1]*values2[i-1] for i in range(1,m+1)))

index=0
index=index+m
i=0

while (index!=len(values2)):
    
    i=i+1
    nbr=values2[index]
   
    index=index+1
    which=[]
    for j in range(0,nbr):
        index=index+1
        
        
        if index==len(values2):
            break
        which.append(values2[index])
    #constraint    
    mdl.add(1<=mdl.sum(x[j-1] for j in which),"ct"+str(i))

mdl.solve(log_output=True,)

for v in mdl.iter_binary_vars():
    if (v.solution_value!=0):
        print(v," = ",v.solution_value)

DOcplex 支持三種 model 格式:用於 MP 模型的 LP、SAV 和 MPS,以及用於 CP 問題的 CPO 格式。

對於其他格式,您需要編寫自定義閱讀器代碼以導入 DOcplex model,正如 Alex 在上述帖子中所做的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM