Callback का उपयोग
आप एक profit फंक्शन के दो सबसे ऊँचे maxima खोजना चाहते हैं और आपने callback का उपयोग करके पाए गए optima इकट्ठा करने और फिर शीर्ष दो मान चुनने का निर्णय लिया है.
सबसे पहले, आप callback फंक्शन को पूरा करेंगे। आप जाँचेंगे कि basinhopping द्वारा वर्तमान में जाँचा जा रहा objective का मान optimum के रूप में स्वीकार किया गया है या नहीं, और यदि हाँ, तो आप उसे सूची opt_values में जोड़ देंगे। इसके बाद आप अभी परिभाषित किए गए callback फंक्शन के साथ basinhopping चलाएँगे.
basinhopping आपके लिए import किया जा चुका है.
प्रारंभिक अनुमान x0, kwargs, और profit फंक्शन पहले से आपके लिए परिभाषित हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Optimization परिचय
अभ्यास निर्देश
callbackफंक्शन में भरिए ताकि वर्तमान iteration में जाँचा गयाxcandidate वास्तव में 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}")