పైథాన్ భాషలో SciPy డిఫరెన్షియల్ ఎవల్యూషన్ అంటే ఏమిటి?
Scipy అనేది శాస్త్రీయ మరియు గణిత సమస్యలను పరిష్కరించడానికి ఉపయోగించే ఉపరితల, ఉచిత మరియు అర్థమయ్యే లైబ్రరీ. SciPy డెవలపర్ల కోసం ఒక నిధి పెట్టె, ఎందుకంటే దాని లైబ్రరీ విలువైన మాడ్యూళ్లతో నిండి ఉంది. SciPy విలువైన అల్గారిథమ్ల క్లస్టర్తో NumPy కార్యాచరణను విస్తరిస్తుంది. SciPy లైబ్రరీలో scipy.io, scipy.optimize మొదలైన గణనల కోసం ఉపయోగించబడే ఉప-ప్యాకేజీలు ఉన్నాయి. SciPy scipy.optimize ప్యాకేజీలో 'డిఫరెన్షియల్ ఎవల్యూషన్' ఫంక్షన్ మరియు అనేక శక్తివంతమైన ఫంక్షన్లను ఉత్పత్తి చేస్తుంది. Scipy.optimize పైథాన్ అప్లికేషన్లలో ఆప్టిమైజేషన్ కోసం ఉపయోగించబడుతుంది.
డిఫరెన్షియల్ ఎవల్యూషన్ ఫంక్షన్ అనేది SciPy ఆప్టిమైజ్ ప్యాకేజీ ద్వారా పొందిన గ్లోబల్ ఫంక్షన్, ఇది గ్లోబల్ కనీస మల్టీవియారిట్ ఫంక్షన్లను కనుగొనడానికి ఉపయోగించబడుతుంది. ఇది నాన్-లీనియర్ మరియు నాన్-డిఫరెన్షియబుల్ అయిన మల్టీడైమెన్షనల్ ఆబ్జెక్టివ్ ఫంక్షన్లను నిర్వహించగలదు. ఇది నిరంతర స్పేస్ ఫంక్షన్ల ప్రాంతాలను శోధించడానికి ఉపయోగించే శోధన అల్గారిథమ్. ఈ ఫంక్షన్ నిజమైన విలువలపై పని చేస్తుంది.
డిఫరెన్షియల్ ఎవల్యూషన్ ఫంక్షన్ యొక్క సింటాక్స్
డిఫరెన్షియల్_ఎవల్యూషన్ () ఫంక్షన్ని ఉపయోగించి పైథాన్లో డిఫరెన్షియల్ ఎవల్యూషన్ ఫంక్షన్ ఉంది. అవకలన పరిణామ ఫంక్షన్ యొక్క సింటాక్స్ క్రింద చూపబడింది:
ఫంక్షన్ పారామితులను పరిశీలిద్దాం:
ఫంక్షన్ తప్పనిసరిగా f(x,*args)తో కాల్ చేయదగినదిగా ఉండాలి; సరిహద్దులు అనేది రెండు విధాలుగా పేర్కొనబడే వేరియబుల్స్ క్రమాన్ని సూచిస్తుంది: వ్యూహం ఐచ్ఛికం లేదా డిఫాల్ట్ విలువ 'best1bin'తో స్ట్రింగ్; maxiter ఐచ్ఛికం లేదా పూర్ణాంక విలువ; పాప్సైజ్ అనేది పూర్ణం లేదా ఐచ్ఛికం; టోల్ పూర్తి లేదా ఐచ్ఛికం; మ్యుటేషన్ విలువ ఫ్లోట్ లేదా ఐచ్ఛికంలో ఉంటుంది; రీకాంబినేషన్ విలువ ఫ్లోట్లో లేదా ఐచ్ఛికంలో ఉంటుంది; విత్తనం ఏదీ కాదు, పూర్ణాంకం, NumPy మరియు రాండమ్.
తదుపరి విభాగంలో, మేము సులభమైన ఉదాహరణల సహాయంతో అవకలన పరిణామ ఫంక్షన్ గురించి చర్చిస్తాము.
ఉదాహరణ 1
అవకలన పరిణామ ఫంక్షన్ యొక్క భావనను అర్థం చేసుకోవడంలో మీ ఆసక్తిని పెంపొందించే సూటి ఉదాహరణతో ప్రారంభిద్దాం. కనీస విలువను కనుగొనడానికి మేము differential_evolution() ఫంక్షన్ని ఉపయోగించాము. కానీ, కనీస విలువను కనుగొనడానికి, ఫంక్షన్కు శోధన సరిహద్దులు మరియు నిర్వచించబడిన కాల్ చేయదగిన ఆబ్జెక్టివ్ ఫంక్షన్ అవసరం. ఫలితంగా, ప్రోగ్రామ్లో డిఫరెన్షియల్_ఎవల్యూషన్ ఫంక్షన్ని ఉపయోగించే ముందు మేము ఒక ఫంక్షన్ని నిర్వచిస్తాము. ప్రోగ్రామ్ యొక్క రిఫరెన్స్ కోడ్ క్రింద పేర్కొనబడింది:
దిగుమతి మొద్దుబారిన వంటి ఉదానుండి scipy దిగుమతి అనుకూలపరుస్తుంది
నుండి scipy. అనుకూలపరుస్తుంది దిగుమతి అవకలన_పరిణామం
దిగుమతి matplotlib. పైప్లాట్ వంటి py
నుండి matplotlib దిగుమతి సెం.మీ
డెఫ్ ఫంక్ ( p ) :
తో , x = p
h = ఉదా చ ( తో ** 4 + x ** 4 )
తిరిగి ఉదా చ ( h )
DE_ హద్దులు = [ [ - 6 , 6 ] , [ - 6 , 6 ] ]
res = అవకలన_పరిణామం ( ఫంక్ , DE_ హద్దులు )
ముద్రణ ( res )
మేము శ్రేణి సంఖ్యా గణనల కోసం SciPy మరియు NumPy వంటి లైబ్రరీలను దిగుమతి చేసాము. మేము scipy.optimize మాడ్యూల్ నుండి డిఫరెన్షియల్_ఎవల్యూషన్ ఫంక్షన్ని దిగుమతి చేసాము. అప్పుడు, 'def' అనే కీవర్డ్తో, మేము కాల్ చేయదగిన ఆబ్జెక్టివ్ ఫంక్షన్ను నిర్వచించి, 'p' పరామితిని పాస్ చేస్తాము. మేము NumPy వేరియబుల్స్ జోడింపు యొక్క వర్గమూలాన్ని కనుగొనే ఫంక్షన్ను విజయవంతంగా నిర్వచించాము, అది z, x. వర్గమూలం విలువ 'h' వేరియబుల్లో నిల్వ చేయబడుతుంది. మేము నిర్వచించిన ఫంక్షన్లో వర్గమూల విలువను తిరిగి ఇస్తాము. ఇది వాదనగా తిరిగి ఇవ్వబడింది.
ఆ తర్వాత, ఫంక్షన్ యొక్క కనిష్ట మరియు గరిష్ట విలువలను వివరించడం ద్వారా వర్గీకరించబడే వేరియబుల్ యొక్క హద్దులను మేము పరిష్కరిస్తాము. మేము డిఫరెన్షియల్_ఎవల్యూషన్ ఫంక్షన్ను ‘DE_bounds”’తో ఆర్గ్యుమెంట్గా అమలు చేస్తాము. మేము ఫంక్షన్ విలువను res అనే వేరియబుల్తో పిలుస్తాము. చివరికి, మేము అవుట్పుట్ను చూపించడానికి ప్రింట్ స్టేట్మెంట్ని ఉపయోగిస్తాము. ప్రోగ్రామ్ను అమలు చేసిన తర్వాత ఫలితం ప్రదర్శించబడుతుంది. ఊహించిన అవుట్పుట్ స్క్రీన్షాట్ క్రింద చూపబడింది:
Differential_evolution() ఫంక్షన్ యొక్క కనీస విలువ పాయింట్ (0, 0) వద్ద ప్రదర్శించబడుతుందని చూపిస్తుంది.
ఉదాహరణ 2
డిఫరెన్షియల్ ఎవల్యూషన్ ఫంక్షన్కి ఇది మరొక ఉదాహరణ. దీనిలో, మేము శ్రేణులను తీసుకుంటాము మరియు వాటి మధ్య వేర్వేరు కార్యకలాపాలను వర్తింపజేస్తాము. ప్రోగ్రామ్ యొక్క రిఫరెన్స్ కోడ్ క్రింద పేర్కొనబడింది:
దిగుమతి మొద్దుబారిన వంటి ఉదానుండి scipy దిగుమతి అనుకూలపరుస్తుంది
నుండి scipy. అనుకూలపరుస్తుంది దిగుమతి అవకలన_పరిణామం
డెఫ్ లక్ష్యం_ఫంక్ ( డి ) :
తిరిగి ( డి [ 1 ] - 1.2 ) / 2 + 0.5 * డి [ 0 ] * 1.3 * ( డి [ 1 ] + 0.5 ) ** 3
_హద్దులు = [ ( - 0.3 , 0.3 ) , ( - 0.3 , 0.3 ) ]
disp = అవకలన_పరిణామం ( లక్ష్యం_ఫంక్ , _హద్దులు , popsize = 80 , పాలిష్ = తప్పు )
ముద్రణ ( disp )
మునుపటి స్క్రీన్షాట్లో చూపినట్లుగా, మేము ప్రోగ్రామ్లోకి SciPy.optimize.differential_evolution లైబ్రరీ మరియు NumPy లైబ్రరీని విజయవంతంగా దిగుమతి చేసాము. ఇప్పుడు, మేము కనీస విలువను కనుగొనే ఆబ్జెక్టివ్ ఫంక్షన్ను నిర్వచించాము. మేము ఆబ్జెక్టివ్ ఫంక్షన్లో గణిత వ్యక్తీకరణను ఆమోదించాము మరియు నిర్వచించిన ఫంక్షన్కు విలువను ఆర్గ్యుమెంట్గా అందించాము. ఫంక్షన్ విలువల మధ్య సరిహద్దు తప్పనిసరి. కాబట్టి, ఫంక్షన్ను నిర్వచించిన తర్వాత, మేము రెండు విలువలను (గరిష్ట మరియు కనిష్ట) పరిష్కరించాము.
అన్ని ముఖ్యమైన వేరియబుల్లను నిర్వచించిన తర్వాత, మేము ఫంక్షన్ యొక్క కనీస విలువను కనుగొనడానికి డిఫరెన్షియల్_ఎవల్యూషన్ ఫంక్షన్ని పిలుస్తాము. మేము ఫంక్షన్ యొక్క కనీస రిటర్న్ విలువను disp అనే వేరియబుల్లో సేవ్ చేసాము. ప్రోగ్రామ్ ముగింపులో, ఫలితాన్ని ప్రదర్శించడానికి ప్రింట్ స్టేట్మెంట్లో డిస్ప్ వేరియబుల్ను పాస్ చేస్తాము. ప్రోగ్రామ్ను అమలు చేసిన తర్వాత, నిర్వచించిన ఫంక్షన్ యొక్క కనీస విలువ హద్దులతో స్క్రీన్పై ప్రదర్శించబడుతుంది. కిందిది అవుట్పుట్:
ఉదాహరణ 3
మనం చూడగలిగినట్లుగా, అవకలన పరిణామం దాని నిర్వచనం ఆధారంగా ఆబ్జెక్టివ్ ఫంక్షన్ యొక్క విభిన్న కనీస విలువలను అందిస్తుంది. ఇక్కడ, డిఫరెన్షియల్_ఎవల్యూషన్()కి సంబంధించిన మరొక ఉదాహరణను తీసుకుంటాము. ఈ ప్రోగ్రామ్ కోసం సూచన కోడ్ క్రింద చూపబడింది:
దిగుమతి మొద్దుబారిన వంటి ఉదానుండి scipy దిగుమతి అనుకూలపరుస్తుంది
నుండి scipy. అనుకూలపరుస్తుంది దిగుమతి అవకలన_పరిణామం
డెఫ్ obj_func ( oper ) :
తిరిగి 3 ** 9 / 0.2 + 6 / 3 * 2 ** ఇరవై
సరిహద్దు = [ ( - 0.5 , 0.5 ) , ( - 0.5 , 0.5 ) ]
బయటకు = అవకలన_పరిణామం ( obj_func , సరిహద్దు , పాలిష్ = నిజమే )
ముద్రణ ( 'అవుట్పుట్:' , బయటకు )
లైబ్రరీలు విజయవంతంగా ఈ ప్రోగ్రామ్లోకి దిగుమతి చేయబడ్డాయి ఎందుకంటే అవి లేకుండా మనం కోరుకున్న కార్యకలాపాలను మేము చేయలేము. ఫలితంగా, మేము ప్రోగ్రామ్లో SciPy లైబ్రరీని చేర్చాము. ఆ తరువాత, అవసరమైన ఆపరేషన్తో ఆబ్జెక్టివ్ ఫంక్షన్ను నిర్వచించండి. మేము నిర్వచించిన ఫంక్షన్ యొక్క కనీస విలువను కనుగొంటాము. ఫంక్షన్ యొక్క సరిహద్దును సర్దుబాటు చేసిన తర్వాత, మేము ఫంక్షన్ యొక్క కనీస విలువను కనుగొనడానికి అవకలన పరిణామంలో నిర్వచించిన ఫంక్షన్ని పిలుస్తాము. ఇది వేరియబుల్లో ఉంచబడుతుంది. ప్రింట్ స్టేట్మెంట్లో ఈ వేరియబుల్ని కాల్ చేయడం ద్వారా మేము దీన్ని ప్రదర్శిస్తాము. ఈ ప్రోగ్రామ్ యొక్క అవుట్పుట్ క్రింద చూపబడింది:
మునుపటి స్క్రీన్షాట్లో వలె, ఫంక్షన్ యొక్క కనిష్ట విలువ [0.29236931, 0.16808904]. డిఫరెన్షియల్_ఎవల్యూషన్ ఫంక్షన్ కాన్సెప్ట్ను బాగా అర్థం చేసుకోవడానికి మీరు మీ వాతావరణంలో ఈ ఉదాహరణలను కూడా అమలు చేయవచ్చు.
ముగింపు
ఈ కథనం యొక్క శీఘ్ర పునశ్చరణను తీసుకుందాం. మేము పైథాన్లోని SciPy లైబ్రరీకి చెందిన అవకలన పరిణామ పద్ధతి యొక్క ప్రాథమిక కార్యాచరణను గ్రహించాము. అనేక సౌకర్యవంతమైన లైబ్రరీలతో పైథాన్ ఇటీవలి భాష. చాలా మంది డెవలపర్లు ముందే నిర్వచించబడిన విధులు మరియు లైబ్రరీల ద్వారా సంక్లిష్ట కోడ్ నిర్మాణాలను పరిష్కరించడంలో సహాయం చేశారు. డిఫరెన్షియల్ ఎవల్యూషన్ అనేది SciPy ప్యాకేజీ ఆప్టిమైజేషన్ ఫంక్షన్ లేదా కనిష్టీకరణ కోసం ఉపయోగించే పద్ధతి. మీరు ఈ మునుపటి ఉదాహరణలను కోడ్లో ఉపయోగించినప్పుడు, మీరు అవకలన పరిణామం యొక్క భావనను మరింత స్పష్టంగా అర్థం చేసుకుంటారు.