कण झुंड अनुकूलन (PSO) एक कम्प्यूटेशनल विधि है जो कृत्रिम बुद्धिमत्ता और कम्प्यूटेशनल विज्ञान में किसी समस्या को गुणवत्ता के दिए गए माप के सापेक्ष उम्मीदवार समाधानों की आबादी को पुनरावृत्त रूप से सुधारकर अनुकूलित करती है। यह उम्मीदवार समाधानों की आबादी के बीच अंतःक्रियाओं के माध्यम से समस्या को हल करती है, जिन्हें कण कहा जाता है, और उन्हें सरल गणितीय सूत्रों के अनुसार खोज-स्थान में घुमाती है जो प्रत्येक कण की स्थिति और वेग को समायोजित करते हैं। प्रत्येक कण की गति उसकी अपनी अब तक की सर्वश्रेष्ठ ज्ञात स्थिति और उसके टोपोलॉजिकल पड़ोस में सर्वश्रेष्ठ ज्ञात स्थिति से प्रभावित होती है, जिसमें निर्दिष्ट होने पर पूरी आबादी शामिल हो सकती है। बेहतर स्थितियाँ मिलने पर वेक्टर अद्यतन किए जाते हैं, और यह अपेक्षा की जाती है कि झुंड अच्छे समाधानों की ओर बढ़ेगा।
PSO एक मेटाह्यूरिस्टिक है क्योंकि यह अनुकूलित की जा रही समस्या के बारे में कुछ या कोई धारणा नहीं बनाता है और उम्मीदवार समाधानों के बहुत बड़े स्थानों की खोज कर सकता है। यह समस्या के ग्रेडिएंट का उपयोग नहीं करता है, इसलिए इसे अनुकूलन समस्या के अवकलनीय होने की आवश्यकता नहीं होती है, जैसा कि ग्रेडिएंट डिसेंट या अर्ध-न्यूटन विधियों जैसे शास्त्रीय तरीकों के विपरीत है। हालाँकि, PSO जैसे मेटाह्यूरिस्टिक्स यह गारंटी नहीं देते हैं कि एक इष्टतम समाधान कभी मिलेगा।
उत्पत्ति और विकास
PSO को मूल रूप से केनेडी और एबरहार्ट के लिए श्रेय दिया जाता है, जिन्होंने पहली बार इसे सामाजिक व्यवहार के अनुकरण के लिए पक्षी झुंड या मछली स्कूल में जीवों की गति, या मानव आबादी में दृष्टिकोण के विकास के शैलीबद्ध प्रतिनिधित्व के रूप में अभिप्रेत किया था। सामाजिक व्यवहार के सिद्धांतों का अनुकरण कठिन गणितीय समस्याओं को हल करने में सक्षम देखा गया। केनेडी और एबरहार्ट की पुस्तक PSO और झुंड बुद्धिमत्ता के कई दार्शनिक पहलुओं का वर्णन करती है। PSO अनुप्रयोगों का एक व्यापक सर्वेक्षण पोली द्वारा किया गया था, और 2017 में PSO पर सैद्धांतिक और प्रयोगात्मक कार्यों की एक व्यापक समीक्षा बोन्यादी और मिचालेविज़ द्वारा प्रकाशित की गई थी।
एल्गोरिथ्म
PSO एल्गोरिथ्म का एक बुनियादी संस्करण उम्मीदवार समाधानों (जिन्हें कण कहा जाता है) की एक जुड़ी हुई आबादी (जिसे झुंड कहा जाता है) के साथ आरंभ किया जाता है। एक उम्मीदवार समाधान संख्यात्मक मानों का एक वेक्टर है जिसे खोज स्थान में एक बिंदु के निर्देशांक के रूप में माना जा सकता है; एक पुनरावृत्त रूप से गतिशील बिंदु के रूप में, इसे एक कण के रूप में अवधारणाबद्ध किया जा सकता है। कण कुछ सरल सूत्रों के अनुसार खोज-स्थान में घूमते हैं। प्रत्येक कण के कुछ पड़ोसी होते हैं जिनसे वह जुड़ा होता है, जहाँ पड़ोस कुछ या सभी अन्य आबादी सदस्य हो सकते हैं। एक कण की अगली स्थिति स्टोकेस्टिक रूप से उसकी अपनी अब तक की सर्वश्रेष्ठ स्थिति के साथ-साथ कण के सर्वश्रेष्ठ पड़ोसी की अब तक की सर्वश्रेष्ठ स्थिति द्वारा निर्धारित होती है। जब एक बेहतर स्थिति खोजी जाती है - जो उद्देश्य फलन में बेहतर परिणाम उत्पन्न करती है - तो कण की अब तक की सर्वश्रेष्ठ स्थिति अद्यतन की जाती है। प्रक्रिया दोहराई जाती है, और ऐसा करने से यह अपेक्षा की जाती है, लेकिन गारंटी नहीं, कि एक संतोषजनक समाधान अंततः खोजा जाएगा।
औपचारिक रूप से, मान लीजिए \( f: \mathbb{R}^n \to \mathbb{R} \) लागत फलन है जिसे न्यूनतम किया जाना है। फलन एक उम्मीदवार समाधान को वास्तविक संख्याओं के वेक्टर के रूप में तर्क के रूप में लेता है और उद्देश्य फलन मान को इंगित करने वाली एक वास्तविक संख्या आउटपुट के रूप में उत्पन्न करता है। \( f \) का ग्रेडिएंट ज्ञात नहीं है। लक्ष्य एक समाधान \( a \) खोजना है जिसके लिए खोज-स्थान में सभी \( b \) के लिए \( f(a) \le f(b) \) हो, जिसका अर्थ है कि \( a \) वैश्विक न्यूनतम है।
मान लीजिए \( S \) झुंड में कणों की संख्या है, प्रत्येक की स्थिति \( x_i \in \mathbb{R}^n \) और वेग \( v_i \in \mathbb{R}^n \) है। मान लीजिए \( p_i \) कण \( i \) की सर्वश्रेष्ठ ज्ञात स्थिति है, और मान लीजिए \( g \) कण के पड़ोस की सर्वश्रेष्ठ ज्ञात स्थिति है। लागत फलन को न्यूनतम करने के लिए एक बुनियादी PSO एल्गोरिथ्म है:
- प्रत्येक कण \( i = 1, \dots, S \) के लिए:
- कण की स्थिति को समान रूप से वितरित यादृच्छिक वेक्टर के साथ आरंभ करें: \( x_i \sim U(b_{lo}, b_{up}) \)।
- कण की सर्वश्रेष्ठ ज्ञात स्थिति को उसकी प्रारंभिक स्थिति पर आरंभ करें: \( p_i \leftarrow x_i \)।
- यदि \( f(p_i) < f(g) \), झुंड की सर्वश्रेष्ठ ज्ञात स्थिति अद्यतन करें: \( g \leftarrow p_i \)।
- कण का वेग आरंभ करें: \( v_i \sim U(-|b_{up}-b_{lo}|, |b_{up}-b_{lo}|) \)।
- जबकि एक समाप्ति मानदंड पूरा नहीं होता है:
- प्रत्येक कण \( i = 1, \dots, S \) के लिए:
- प्रत्येक आयाम \( d = 1, \dots, n \) के लिए:
- यादृच्छिक संख्याएँ चुनें \( r_p, r_g \sim U(0,1) \)।
- कण का वेग अद्यतन करें: \( v_{i,d} \leftarrow w v_{i,d} + \phi_p r_p (p_{i,d} - x_{i,d}) + \phi_g r_g (g_d - x_{i,d}) \)।
- कण की स्थिति अद्यतन करें: \( x_i \leftarrow x_i + v_i \)।
- यदि \( f(x_i) < f(p_i) \), कण की सर्वश्रेष्ठ ज्ञात स्थिति अद्यतन करें: \( p_i \leftarrow x_i \)।
- यदि \( f(p_i) < f(g) \), झुंड की सर्वश्रेष्ठ ज्ञात स्थिति अद्यतन करें: \( g \leftarrow p_i \)।
मान \( b_{lo} \) और \( b_{up} \) खोज-स्थान की निचली और ऊपरी सीमाओं का प्रतिनिधित्व करते हैं। पैरामीटर \( w \) जड़त्व भार है। पैरामीटर \( \phi_p \) और \( \phi_g \) को अक्सर संज्ञानात्मक गुणांक और सामाजिक गुणांक कहा जाता है। समाप्ति मानदंड किए गए पुनरावृत्तियों की संख्या या एक समाधान हो सकता है जहाँ एक पर्याप्त उद्देश्य फलन मान पाया जाता है। पैरामीटर \( w \), \( \phi_p \), और \( \phi_g \) चिकित्सक द्वारा चुने जाते हैं और PSO विधि के व्यवहार और प्रभावशीलता को नियंत्रित करते हैं।
पैरामीटर चयन
PSO पैरामीटरों का चयन अनुकूलन प्रदर्शन पर बड़ा प्रभाव डाल सकता है। अच्छा प्रदर्शन देने वाले पैरामीटरों का चयन बहुत शोध का विषय रहा है। विचलन ("विस्फोट") को रोकने के लिए, जड़त्व भार 1 से छोटा होना चाहिए। अन्य दो पैरामीटर संकुचन दृष्टिकोण का उपयोग करके प्राप्त किए जा सकते हैं या स्वतंत्र रूप से चुने जा सकते हैं, लेकिन विश्लेषण उन्हें सीमित करने के लिए अभिसरण डोमेन सुझाते हैं। विशिष्ट मान [1, 3] की सीमा में हैं। PSO पैरामीटरों को एक अन्य ओवरलेइंग अनुकूलक का उपयोग करके भी ट्यून किया जा सकता है, एक अवधारणा जिसे मेटा-अनुकूलन के रूप में जाना जाता है, या अनुकूलन के दौरान भी ठीक-ट्यून किया जा सकता है, उदाहरण के लिए, फ़ज़ी लॉजिक के माध्यम से। पैरामीटर विभिन्न अनुकूलन परिदृश्यों के लिए भी ट्यून किए गए हैं।
पड़ोस और टोपोलॉजी
झुंड की टोपोलॉजी उन कणों के उपसमुच्चय को परिभाषित करती है जिनके साथ प्रत्येक कण जानकारी का आदान-प्रदान कर सकता है। एल्गोरिथ्म का बुनियादी संस्करण वैश्विक टोपोलॉजी को झुंड संचार संरचना के रूप में उपयोग करता है। यह टोपोलॉजी सभी कणों को अन्य सभी कणों के साथ संवाद करने की अनुमति देती है, इसलिए पूरा झुंड एक ही कण से सर्वश्रेष्ठ स्थिति \( g \) साझा करता है। हालाँकि, यह दृष्टिकोण झुंड को स्थानीय न्यूनतम में फंसा सकता है, इसलिए कणों के बीच सूचना के प्रवाह को नियंत्रित करने के लिए विभिन्न टोपोलॉजी का उपयोग किया गया है। उदाहरण के लिए, स्थानीय टोपोलॉजी में, कण केवल कणों के एक उपसमुच्चय के साथ जानकारी साझा करते हैं। यह उपसमुच्चय ज्यामितीय हो सकता है - उदाहरण के लिए "m निकटतम कण" - या, अधिक बार, सामाजिक, अर्थात, कणों का एक समुच्चय जो किसी दूरी पर निर्भर नहीं करता है। ऐसे मामलों में, PSO संस्करण को स्थानीय सर्वश्रेष्ठ कहा जाता है (बुनियादी PSO के लिए वैश्विक सर्वश्रेष्ठ के विपरीत)। एक सामान्य रूप से उपयोग की जाने वाली झुंड टोपोलॉजी रिंग है, जिसमें प्रत्येक कण के केवल दो पड़ोसी होते हैं, लेकिन कई अन्य हैं। टोपोलॉजी आवश्यक रूप से स्थिर नहीं है; यह अनुकूलन प्रक्रिया के दौरान बदल सकती है।
अनुप्रयोग और संबंधित विधियाँ
PSO को इंजीनियरिंग, अर्थशास्त्र और मशीन लर्निंग जैसे क्षेत्रों में अनुकूलन समस्याओं की एक विस्तृत श्रृंखला पर लागू किया गया है। यह विशेष रूप से उपयोगी है जब खोज स्थान बड़ा होता है और उद्देश्य फलन गैर-अवकलनीय या शोरग्रस्त होता है। PSO अन्य जनसंख्या-आधारित मेटाह्यूरिस्टिक्स, जैसे आनुवंशिक एल्गोरिथ्म और चींटी कॉलोनी अनुकूलन के साथ समानताएँ साझा करता है, लेकिन यह सामाजिक व्यवहार से प्रेरित अपने वेग-अद्यतन तंत्र द्वारा प्रतिष्ठित है। मशीन लर्निंग के संदर्भ में, PSO का उपयोग हाइपरपैरामीटर ट्यूनिंग या तंत्रिका नेटवर्क के प्रशिक्षण के लिए किया जा सकता है, हालाँकि इसकी तुलना अक्सर ग्रेडिएंट-आधारित विधियों से की जाती है। इसकी स्टोकेस्टिक प्रकृति और ग्रेडिएंट आवश्यकताओं की कमी इसे कृत्रिम बुद्धिमत्ता के व्यापक क्षेत्र में एक बहुमुखी उपकरण बनाती है।