python - scipy.optimize.basinhopping interval and accept test syntaces -
मैं basinhopping
का उपयोग करते हुए एक उद्देश्य फ़ंक्शन की वैश्विक न्यूनतम खोज करने की कोशिश कर रहा हूं, लेकिन बहुमत के लिए उस समय के एक स्थानीय न्यूनतम पर अटक गया है मैंने दस्तावेज़ के माध्यम से पढ़ा और पाया कि अंतराल
और accept_test
सहायक हो सकता है, लेकिन अब सवाल यह है कि उन्हें क्या देना है, उदा। मैं चाहता हूं कि मेरे उद्देश्य का कार्य 4 या 5 जैसे बहुत बड़े मूल्यों पर बहुत अधिक समय बिताने के बिना संभवत: 0 (1e-5 बंद) के करीब जाने के लिए चाहें। अंतराल
के लिए कैसे पता चलता है कि कितनी बार एक Stepsize अद्यतन किया जा रहा है?
यहाँ मैं एक "वैश्विक" न्यूनतम की तलाश कर रहा हूं:
np.random.seed (555) # प्रतिकृति की अनुमति देने के लिए बीज। Minimizer_kwargs = {"विधि": "एल-बीएफजीएस-बी", "सीमा": बीएसडीओ, tol = 1e-4} रेट = बेसिनोपिंग (मेरिट_फंक्शन, एबीसीडीएक्स, मिनिमजर_क्वार्ग्ज = मिनिमजर_क्वार्ग, निटर = 10) ज़ूम = रेट ['एक्स '] Res = minimize (merit_function, ज़ूम, विधि =' एल-बीएफजीएस-बी ', सीमा = बीड, टोल = 1e-9) प्रिंट रेस
यदि आप स्थानीय न्यूनतम में फंस रहे हैं तो संभवतः इसका मतलब है कि आपको बड़े कदम उठाने की आवश्यकता है। आप "stepize" कीवर्ड के साथ कदम उठाना सेट कर सकते हैं
एक उचित कदम उठाने की समस्या पर निर्भर करता है, लेकिन सौभाग्य से बेसिंफिंग स्वतः कदम उठाने के लिए समायोजित करेगा यह कितनी बार करता है यह "अंतराल" कीवर्ड पर निर्भर करता है। हर अंतराल पुनरावृत्तियों के कदम 1 9 के एक पहलू से बढ़े या घटाए जाएंगे। अगर कदम उठाने के लिए शुरुआती अनुमान है तो यह अभी कुछ समय ले सकता है। यदि आप अंतराल को 10 (या तो) कम करते हैं तो यह बहुत तेज़ होना चाहिए।
मुझे नहीं लगता है कि स्वीकार्यता की मदद से आप यहाँ मदद करेंगे। इसका उपयोग, उदाहरण के लिए, कॉन्फ़िगरेशन स्थान के वर्जित क्षेत्रों को लागू करने के लिए किया जा सकता है।
Comments
Post a Comment