शुरू करेंमुफ़्त में शुरू करें

Callback का उपयोग

आप एक profit फंक्शन के दो सबसे ऊँचे maxima खोजना चाहते हैं और आपने callback का उपयोग करके पाए गए optima इकट्ठा करने और फिर शीर्ष दो मान चुनने का निर्णय लिया है.

सबसे पहले, आप callback फंक्शन को पूरा करेंगे। आप जाँचेंगे कि basinhopping द्वारा वर्तमान में जाँचा जा रहा objective का मान optimum के रूप में स्वीकार किया गया है या नहीं, और यदि हाँ, तो आप उसे सूची opt_values में जोड़ देंगे। इसके बाद आप अभी परिभाषित किए गए callback फंक्शन के साथ basinhopping चलाएँगे.

basinhopping आपके लिए import किया जा चुका है. प्रारंभिक अनुमान x0, kwargs, और profit फंक्शन पहले से आपके लिए परिभाषित हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Optimization परिचय

पाठ्यक्रम देखें

अभ्यास निर्देश

  • callback फंक्शन में भरिए ताकि वर्तमान iteration में जाँचा गया x candidate वास्तव में optimum माना गया है या नहीं, यह जाँच हो सके.
  • minimized objective के मान को सूची opt_values में जोड़िए.
  • उपयुक्त callback फंक्शन के साथ basinhopping चलाइए और शीर्ष दो maxima खोजिए.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

opt_values = []

def callback(x, f, accept):
# Check if the candidate is an optimum  
    if ____:
# Append the value of the minimized objective to list opt_values      
        opt_values.append(____)

# Run basinhopping to find top two maxima  
result = basinhopping(lambda q: -profit(q), x0, callback=____, minimizer_kwargs=kwargs, niter=5, seed=3) 
top2 = sorted(list(set([round(f, 2) for f in opt_values])), reverse=True)[:2]
top2 = [-f for f in top2]

print(f"{result.message}\nThe highest two values are {top2}")
कोड संपादित करें और चलाएँ