मैं गुरुबी और पायथन का उपयोग कर रहा हूं और मुझे अपने एमआईएलपी मॉडल में सभी बाधाओं में एक विशिष्ट चर का गुणांक प्राप्त करने की आवश्यकता है। मुझे पता है कि वांछित आउटपुट प्राप्त करने के लिए m.gtCol या m.getCoeff जैसे कुछ कार्य हैं। हालांकि, मैं गुणांकों को वापस करने के लिए उनका उचित तरीके से उपयोग नहीं कर सका। मैंने अपने चर को इस तरह परिभाषित किया:

w = {}
for i in I:
    for n in N:
        for j in J:
            w[i,n,j] = m.addVar(vtype=GRB.BINARY, name='w_%d_%d_%d' % (i,n,j))

कोई इसमें मेरी मदद कर सकता है?

0
sajjad 11 जुलाई 2018, 17:32

2 जवाब

आप यहां देख सकते हैं: https://groups.google.com/forum /#!topic/gurobi/pQXRd37BQL8

[x for x in model.getVars() if x.VarName.find('w_1_1_1') != -1]

उन चरों की सूची देनी चाहिए जिनके नाम में पैटर्न w_1_1_1 है।

0
Eugene Primako 11 जुलाई 2018, 18:20
आपकी प्रतिक्रिया के लिए धन्यवाद, यह उपयोगी है हालांकि मुझे सभी बाधाओं से उस चर के गुणांक को प्राप्त करने की आवश्यकता है।
 – 
sajjad
11 जुलाई 2018, 19:22

आपको gurobipy के Column वर्ग पर एक नज़र डालनी चाहिए। यह आपको किसी दिए गए Var ऑब्जेक्ट के लिए घटना की जानकारी तक पहुंचने की अनुमति देता है। यहां एक सरल उदाहरण दिया गया है जिसे आप शुरुआती बिंदु के रूप में उपयोग कर सकते हैं:

import gurobipy as gp

m = gp.Model()
x = m.addVars(3)
m.addConstr(2 * x[0] + x[1] == 9, name="Cone")
m.addConstr(-x[0] + x[2] >= 1, name="Ctwo")
m.update()
col = m.getCol(x[0])
for i in range(col.size()):
    coef = col.getCoeff(i)
    row = col.getConstr(i)
    print("x[0] coef/row pair: {}/{}".format(coef, row.ConstrName))

इसलिए हम तीन चर, और दो बाधाओं के साथ एक मॉडल बनाते हैं, और पहले चर x[0] के सभी गुणांकों को प्रिंट करना चाहते हैं, साथ ही उस बाधा नाम के साथ जो चर की घटना है। मेरी मशीन पर उपरोक्त स्निपेट चलाना मैं देखता हूं:

x[0] कोफ/पंक्ति जोड़ी: 2.0/कोन
x[0] कोफ/पंक्ति जोड़ी: -1.0/Ctwo

0
Robert 22 मई 2019, 18:12