SciPy வேறுபட்ட பரிணாமம்

Scipy Verupatta Parinamam



இந்தக் கட்டுரை SciPy Differential Evolution (DE) பற்றியது. SciPy என்பது பைதான் மொழியின் நூலகமாகும், மேலும் Differential Evolution என்பது SciPy நூலகத்தின் முறை அல்லது செயல்பாடு ஆகும். பைத்தானின் ஏராளமான நூலகங்கள் மற்றும் செயல்பாடுகள் அதை மிகவும் பாதுகாப்பானதாகவும் நம்பகமானதாகவும் ஆக்குவதால், பெரும்பாலான மக்கள் பைத்தானை அவர்கள் டெவலப்பர்களாக இருந்தாலும் இல்லாவிட்டாலும் கற்று வருகின்றனர். வேறுபட்ட மற்றும் இயற்கணித சமன்பாடுகள், இடைக்கணிப்பு, உகப்பாக்கம் போன்றவற்றைத் தீர்க்க SciPy அடிக்கடி பயன்படுத்தப்படுகிறது. பைதான் பயன்பாடுகளில் SciPy வேறுபாடு பரிணாமச் செயல்பாட்டை எவ்வாறு செயல்படுத்துவது என்பதைப் புரிந்துகொள்ள SciPy DE பயன்பாட்டைப் பற்றி இங்கு விவாதிக்கிறோம்.

பைதான் மொழியில் SciPy வேறுபட்ட பரிணாமம் என்றால் என்ன?

Scipy என்பது அறிவியல் மற்றும் கணித சிக்கல்களைத் தீர்க்கப் பயன்படும் மேலோட்டமான, இலவச மற்றும் புரிந்துகொள்ளக்கூடிய நூலகமாகும். SciPy டெவலப்பர்களுக்கான புதையல் பெட்டியாகும், ஏனெனில் அதன் நூலகம் விலைமதிப்பற்ற தொகுதிகள் நிறைந்துள்ளது. SciPy மதிப்புமிக்க அல்காரிதம்களின் தொகுப்புடன் NumPy செயல்பாட்டை விரிவுபடுத்துகிறது. SciPy நூலகத்தில் scipy.io, scipy.optimize போன்ற கணக்கீடுகளுக்குப் பயன்படுத்தக்கூடிய துணைத் தொகுப்புகள் உள்ளன. SciPy ஒரு 'வேறுபட்ட பரிணாமம்' செயல்பாட்டையும் scipy.optimize தொகுப்பில் பல சக்திவாய்ந்த செயல்பாடுகளையும் உருவாக்குகிறது. scipy.optimize பைதான் பயன்பாடுகளில் தேர்வுமுறைக்கு பயன்படுத்தப்படுகிறது.

வேறுபட்ட பரிணாம செயல்பாடு என்பது SciPy ஆப்டிமைஸ் தொகுப்பால் பெறப்பட்ட உலகளாவிய செயல்பாடு ஆகும், இது உலகளாவிய குறைந்தபட்ச பன்முக செயல்பாடுகளைக் கண்டறியப் பயன்படுகிறது. இது நேரியல் அல்லாத மற்றும் வேறுபடுத்த முடியாத பல பரிமாண புறநிலை செயல்பாடுகளை நிர்வகிக்க முடியும். இது தொடர்ச்சியான விண்வெளி செயல்பாடுகளின் பகுதிகளைத் தேடுவதற்குப் பயன்படுத்தப்படும் ஒரு தேடல் அல்காரிதம் ஆகும். இந்த செயல்பாடு உண்மையான மதிப்புகளில் வேலை செய்கிறது.







வேறுபட்ட பரிணாம செயல்பாட்டின் தொடரியல்

வேறுபட்ட பரிணாம செயல்பாடு பைத்தானில் வேறுபட்ட_எவல்யூஷன் () செயல்பாட்டைப் பயன்படுத்தி உள்ளது. வேறுபட்ட பரிணாம செயல்பாட்டின் தொடரியல் கீழே காட்டப்பட்டுள்ளது:





செயல்பாட்டு அளவுருக்களுக்கு செல்லலாம்:





செயல்பாடு f(x,*args) உடன் அழைக்கக்கூடியதாக இருக்க வேண்டும்; எல்லைகள் என்பது இரண்டு வழிகளில் குறிப்பிடக்கூடிய மாறிகளின் வரிசையைக் குறிக்கிறது: உத்தி என்பது விருப்பமானது அல்லது இயல்புநிலை மதிப்பு 'best1bin' கொண்ட ஒரு சரம்; maxiter விருப்பத்தேர்வு அல்லது ஒரு முழு மதிப்பு; Popsize முழு எண்ணாக அல்லது விருப்பத்திற்குரியது; டோல் முழு எண்ணாக அல்லது விருப்பத்திற்குரியது; பிறழ்வு மதிப்பு மிதவை அல்லது விருப்பமானது; மறுசீரமைப்பு மதிப்பு மிதவை அல்லது விருப்பமானது; விதை எதுவும் இல்லை, முழு எண்ணாக, NumPy மற்றும் ரேண்டம்.

அடுத்த பகுதியில், எளிதான எடுத்துக்காட்டுகளின் உதவியுடன் வேறுபட்ட பரிணாம செயல்பாட்டைப் பற்றி விவாதிப்போம்.



எடுத்துக்காட்டு 1

வேறுபட்ட பரிணாம செயல்பாட்டின் கருத்தை புரிந்து கொள்வதில் உங்கள் ஆர்வத்தை வளர்க்கும் ஒரு நேரடியான உதாரணத்துடன் ஆரம்பிக்கலாம். குறைந்தபட்ச மதிப்பைக் கண்டறிய, differential_evolution() செயல்பாட்டைப் பயன்படுத்தினோம். ஆனால், குறைந்தபட்ச மதிப்பைக் கண்டறிய, செயல்பாட்டிற்கு தேடல் வரம்புகள் மற்றும் வரையறுக்கப்பட்ட அழைக்கக்கூடிய புறநிலை செயல்பாடு தேவை. இதன் விளைவாக, நிரலில் வேறுபட்ட_எவல்யூஷன் செயல்பாட்டைப் பயன்படுத்துவதற்கு முன்பு ஒரு செயல்பாட்டை வரையறுக்கிறோம். நிரலின் குறிப்பு குறியீடு கீழே குறிப்பிடப்பட்டுள்ளது:

இறக்குமதி உணர்ச்சியற்ற என எ.கா.
இருந்து அரிப்பு இறக்குமதி மேம்படுத்த
இருந்து அரிப்பு மேம்படுத்த இறக்குமதி வேறுபட்ட_ பரிணாம வளர்ச்சி
இறக்குமதி matplotlib. பைப்லாட் என பை
இருந்து matplotlib இறக்குமதி செ.மீ

def செயல்பாடு ( ) :

உடன் , எக்ஸ் =

= எ.கா. சதுர ( உடன் ** 4 + x ** 4 )

திரும்ப எ.கா. சதுர ( )


DE_எல்லைகள் = [ [ - 6 , 6 ] , [ - 6 , 6 ] ]

ரெஸ் = வேறுபட்ட_ பரிணாம வளர்ச்சி ( செயல்பாடு , DE_எல்லைகள் )

அச்சு ( ரெஸ் )

வரிசை எண் கணக்கீடுகளுக்காக SciPy மற்றும் NumPy போன்ற நூலகங்களை இறக்குமதி செய்துள்ளோம். scipy.optimize தொகுதியில் இருந்து differential_evolution செயல்பாட்டை இறக்குமதி செய்தோம். பின்னர், 'def' என்ற முக்கிய வார்த்தையுடன், நாம் அழைக்கக்கூடிய புறநிலை செயல்பாட்டை வரையறுத்து 'p' அளவுருவை அனுப்புகிறோம். NumPy மாறிகள் கூட்டலின் வர்க்க மூலத்தைக் கண்டறியும் செயல்பாட்டை வெற்றிகரமாக வரையறுக்கிறோம், இது z, x. வர்க்க மூல மதிப்பு 'h' மாறியில் சேமிக்கப்படுகிறது. வரையறுக்கப்பட்ட செயல்பாட்டில் வர்க்க மூல மதிப்பை வழங்குகிறோம். இது ஒரு வாதமாக திரும்பியது.

அதன் பிறகு, செயல்பாட்டின் குறைந்தபட்ச மற்றும் அதிகபட்ச மதிப்புகளை விளக்குவதன் மூலம் வகைப்படுத்தக்கூடிய மாறியின் எல்லைகளை நாங்கள் தீர்க்கிறோம். டிஃபரென்ஷியல்_எவல்யூஷன் செயல்பாட்டை ஒரு வாதமாக ‘DE_bounds” உடன் செயல்படுத்துகிறோம். res என பெயரிடப்பட்ட மாறியுடன் செயல்பாட்டு மதிப்பை அழைத்தோம். இறுதியில், வெளியீட்டைக் காட்ட அச்சு அறிக்கையைப் பயன்படுத்துகிறோம். நிரலை இயக்கிய பிறகு முடிவு காட்டப்பட்டது. எதிர்பார்க்கப்படும் வெளியீட்டு ஸ்கிரீன்ஷாட் கீழே காட்டப்பட்டுள்ளது:

செயல்பாட்டின் குறைந்தபட்ச மதிப்பு புள்ளியில் (0, 0) காட்டப்படுவதை Differential_evolution() காட்டுகிறது.

உதாரணம் 2

இது வேறுபட்ட பரிணாம செயல்பாட்டின் மற்றொரு எடுத்துக்காட்டு. இதில், நாம் வரிசைகளை எடுத்து அவற்றுக்கிடையே வெவ்வேறு செயல்பாடுகளைப் பயன்படுத்துகிறோம். நிரலின் குறிப்பு குறியீடு கீழே குறிப்பிடப்பட்டுள்ளது:

இறக்குமதி உணர்ச்சியற்ற என எ.கா.
இருந்து அரிப்பு இறக்குமதி மேம்படுத்த
இருந்து அரிப்பு மேம்படுத்த இறக்குமதி வேறுபட்ட_ பரிணாம வளர்ச்சி

def குறிக்கோள்_செயல்பாடு ( ) :
திரும்ப ( [ 1 ] - 1.2 ) / 2 + 0.5 * டி [ 0 ] * 1.3 * ( [ 1 ] + 0.5 ) ** 3

_எல்லைகள் = [ ( - 0.3 , 0.3 ) , ( - 0.3 , 0.3 ) ]

disp = வேறுபட்ட_ பரிணாம வளர்ச்சி ( குறிக்கோள்_செயல்பாடு , _எல்லைகள் , பாப்சைஸ் = 80 , மெருகூட்டல் = பொய் )

அச்சு ( disp )

முந்தைய ஸ்கிரீன்ஷாட்டில் காட்டப்பட்டுள்ளபடி, SciPy.optimize.differential_evolution நூலகத்தையும் NumPy நூலகத்தையும் நிரலில் வெற்றிகரமாக இறக்குமதி செய்தோம். இப்போது, ​​ஒரு புறநிலை செயல்பாட்டை வரையறுக்கிறோம், அதன் சார்பாக குறைந்தபட்ச மதிப்பைக் காண்கிறோம். புறநிலை செயல்பாட்டில் கணித வெளிப்பாட்டைக் கடந்து, வரையறுக்கப்பட்ட செயல்பாட்டிற்கு ஒரு மதிப்பை வாதமாக வழங்கினோம். செயல்பாட்டு மதிப்புகளுக்கு இடையிலான எல்லை அவசியம். எனவே, செயல்பாட்டை வரையறுத்த பிறகு, இரண்டு மதிப்புகளையும் (அதிகபட்சம் மற்றும் குறைந்தபட்சம்) சரிசெய்தோம்.

அனைத்து அத்தியாவசிய மாறிகளையும் வரையறுத்த பிறகு, ஒரு செயல்பாட்டின் குறைந்தபட்ச மதிப்பைக் கண்டறிய வேறுபட்ட_எவல்யூஷன் செயல்பாட்டை அழைத்தோம். செயல்பாட்டின் குறைந்தபட்ச வருவாய் மதிப்பை disp எனப்படும் மாறியில் சேமித்தோம். நிரலின் முடிவில், முடிவைக் காண்பிக்க அச்சு அறிக்கையில் disp மாறியை அனுப்புகிறோம். நிரலை இயக்கிய பிறகு, வரையறுக்கப்பட்ட செயல்பாட்டின் குறைந்தபட்ச மதிப்பு வரம்புகளுடன் திரையில் காட்டப்படும். பின்வருபவை வெளியீடு:

எடுத்துக்காட்டு 3

நாம் பார்க்கிறபடி, வேறுபட்ட பரிணாமம் அதன் வரையறையின் அடிப்படையில் ஒரு புறநிலை செயல்பாட்டின் வெவ்வேறு குறைந்தபட்ச மதிப்புகளை வழங்குகிறது. இங்கே, differential_evolution() தொடர்பான மற்றொரு உதாரணத்தை எடுத்துக்கொள்வோம். இந்த திட்டத்திற்கான குறிப்பு குறியீடு கீழே காட்டப்பட்டுள்ளது:

இறக்குமதி உணர்ச்சியற்ற என எ.கா.
இருந்து அரிப்பு இறக்குமதி மேம்படுத்த
இருந்து அரிப்பு மேம்படுத்த இறக்குமதி வேறுபட்ட_ பரிணாம வளர்ச்சி

def 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 தொகுப்பு தேர்வுமுறை செயல்பாடு அல்லது சிறிதாக்கப் பயன்படுத்தப்படும் முறையாகும். குறியீட்டில் இந்த முந்தைய உதாரணங்களைப் பயன்படுத்தும்போது, ​​வேறுபட்ட பரிணாமத்தின் கருத்தை நீங்கள் இன்னும் தெளிவாகப் புரிந்துகொள்கிறீர்கள்.