2012-07-25 17 views
10

पर cplex आउटपुट को आउटपुट कैसे करें I अनुकूलन समस्या को हल करने के लिए आईबीएम cplex अनुकूलक का उपयोग कर रहा हूं और मैं ऑप्टिमाइज़र के सभी टर्मिनल प्रिंट नहीं चाहता हूं। क्या कोई ऐसा सदस्य है जो इसे IloCplex या IloModel क्लास में बंद कर देता है? ये कटौती और पुनरावृत्तियों के बारे में प्रिंट हैं। टर्मिनल के लिए प्रिंट महंगा हैं और मेरी समस्या अंततः लाखों चर के क्रम में होगी और मैं इन अनिवार्य आउटपुट के साथ समय बर्बाद नहीं करना चाहता हूं। धन्यवाद।टर्मिनल

+2

जबकि cplex साथ चर के लाखों लोगों के साथ एक MIP मॉडल को सुलझाने गैर तुच्छ है, यह बिल्कुल असामान्य नहीं है और डिफ़ॉल्ट प्रवेश एक महत्वपूर्ण तरीके से समाधान समय को प्रभावित नहीं करेगा। औसतन, समस्या का बड़ा उदाहरण, लॉग संदेश की प्रति पंक्ति अधिक गणना की जाती है। (इसमें 10 कटौती के बारे में एक पंक्ति मुद्रित करने में समान समय लगता है क्योंकि यह 1000 कटौती के बारे में एक पंक्ति मुद्रित करने के लिए लेता है, लेकिन वास्तव में 1000 कटौती की गणना करने में काफी समय लगता है)। असल में, बड़ी समस्याओं के लिए मैं आम तौर पर लॉगिंग को चालू कर दूंगा। –

+0

सलाह के लिए धन्यवाद – DiegoNolan

उत्तर

14

cplex/संगीत कार्यक्रम का उपयोग करना, आप पूरी तरह से बंद cplex की लॉगिंग कंसोल के लिए

cpx.setOut(env.getNullStream()) 

साथ बदल सकते हैं कहाँ cpx एक IloCplex वस्तु है। आप फ़ाइल में लॉग रीडायरेक्ट करने के लिए setOut फ़ंक्शन का भी उपयोग कर सकते हैं।

लॉग इन किए जाने वाले नियंत्रण को नियंत्रित करने के लिए कई cplex पैरामीटर हैं, उदाहरण के लिए MIPInterval लाइनों के बीच खोजी गई एमआईपी नोड्स की संख्या निर्धारित करेगा। उदाहरण के लिए, एमआईपीडिस्प्ले को 0 में बदलना कटौती के प्रदर्शन को बंद कर देगा, सिवाय इसके कि जब नए समाधान पाए जाते हैं, तो 5 का एमआईपीडिस्प्ले प्रत्येक एलपी-सबप्रोबलेम के बारे में विस्तृत जानकारी दिखाएगा।

लॉगिंग से संबंधित मानकों MIPInterval MIPDisplay SimDisplay BarDisplay NetDisplay

आप setParam समारोह के साथ पैरामीटर सेट शामिल हैं।

cpx.setParam(IloCplex::MIPInterval, 1000) 
+1

धन्यवाद, बहुत उपयोगी – DiegoNolan