5

के लिए सीपीएलईएक्स जावा का इष्टतम उपयोग मैं सीपीएलएक्स जावा एपीआई के साथ बड़ी अनुकूलन समस्याओं को हल कर रहा हूं। वर्तमान में मैं सिर्फउच्च-थ्रूपुट

IloCplex cplex = new IloCplex(); 
... add lots of variables and constraints ... 
cplex.solve(); 
cplex.end(); 

यह बहुत अच्छा काम करता है, लेकिन मैं अक्सर प्रक्रिया को दोहराता हूं जहां मैं सह-प्रभावकारियों को बदल रहा हूं। प्रत्येक बार जब मैं दोहराता हूं तो मैं एक नया cplex ऑब्जेक्ट बना देता हूं और सभी चर फिर से बना देता हूं।

क्या ऐसा करने के लिए एक और अधिक प्रभावी तरीका है? आईबीएम दस्तावेज में 'मॉडल के उदाहरण में मॉडल जोड़ना' जैसी भाषा है, जो अजीब लगता है, लेकिन मैंने सोचा कि यह चीजों का पुन: उपयोग करने में सक्षम होने पर संकेत दे रहा था।

अधिक अनुभवी उपयोगकर्ताओं से कोई सुझाव बहुत अच्छा होगा। धन्यवाद।

+2

आपको शायद आईबीएम चर्चा मंचों से या ओआर-एक्सचेंज, एक बहन साइट से स्टैक ओवरफ्लो से बेहतर प्रतिक्रिया मिलेगी। –

उत्तर

6

यदि आप केवल बाधाओं (या उद्देश्य कार्य के उन लोगों के गुणांक) को बदलना चाहते हैं, तो आप मौजूदा IloCplex ऑब्जेक्ट पर गुणांक को संशोधित कर सकते हैं। आपको स्क्रैच से मॉडल नहीं बनाना चाहिए।

retval = cplex.solve(); 
// verify that the solve was successful 

// change coeficients on constraints (or in the objective) 
cplex.setLinearCoef(constraint, newCoef, variable); 
cplex.setLinearCoef(objective, newObjCoef, variable); 

// change right bounds on constraints 
constraint.setBounds(newLB, newUB); 

// change variable bounds 
var.setBounds(newLB, newUB); 

retval = cplex.solve(); 
// verify the solve 
+0

धन्यवाद। इसने एपीआई के बारे में मेरी भ्रम को मंजूरी दे दी। –