उत्क्रांती शोध अल्गोरिदम ही नैसर्गिक उत्क्रांतीच्या यंत्रणेवर आधारित एक ऑप्टिमायझेशन पद्धत आहे. हा अल्गोरिदम एखाद्या समस्येसाठी सर्वोत्तम उपाय शोधण्यासाठी पिढ्यानपिढ्या लोकसंख्येतील व्यक्तींच्या उत्क्रांती प्रक्रियेचे अनुकरण करतो.
हे कसे कार्य करते
- लोकसंख्या आरंभ करणे: यादृच्छिकपणे व्युत्पन्न केलेल्या व्यक्तींची प्रारंभिक लोकसंख्या तयार करा.
- मूल्यमापन: वस्तुनिष्ठ कार्य किंवा मूल्यमापन निकषांवर आधारित लोकसंख्येतील प्रत्येक व्यक्तीच्या गुणवत्तेचे मूल्यांकन करा.
- निवड: संभाव्यता किंवा निवड निकषांवर आधारित वर्तमान लोकसंख्येमधून सर्वोत्तम व्यक्तींचा उपसंच निवडा.
- उत्क्रांती: निवडलेल्या व्यक्तींना क्रॉसओवर आणि उत्परिवर्तन ऑपरेशन्स लागू करून नवीन पिढी तयार करा.
- पुनरावृत्ती: समाधानकारक समाधान मिळेपर्यंत किंवा पुनरावृत्तीची पूर्वनिर्धारित संख्या गाठेपर्यंत अनेक पिढ्यांमध्ये चरण 2 ते 4 पुनरावृत्ती करा.
उदाहरण: Fibonacci उत्क्रांती शोध वापरून कार्य ऑप्टिमाइझ करणे
Fibonacci F(0) = 0, F(1) = 1 सह F(x) = F(x-1) + F(x-2) फंक्शनची ऑप्टिमायझेशन समस्या विचारात घ्या. आम्हाला x चे मूल्य शोधायचे आहे ज्यासाठी F(x) कमाल केले आहे. उत्क्रांती शोध पद्धत यादृच्छिक x मूल्यांची लोकसंख्या निर्माण करू शकते, इष्टतम x मूल्य शोधण्यासाठी त्यांना पिढ्यानपिढ्या विकसित करू शकते.
C++ मधील कोड उदाहरण
या उदाहरणात, आम्ही फंक्शन ऑप्टिमाइझ करण्यासाठी उत्क्रांती शोध पद्धत वापरतो Fibonacci. आम्ही यादृच्छिक x मूल्यांची लोकसंख्या व्युत्पन्न करतो, सर्वोत्तम व्यक्ती निवडून आणि क्रॉसओवर आणि उत्परिवर्तन ऑपरेशन्स लागू करून त्यांना पिढ्यानपिढ्या विकसित करतो.