एक आनुवंशिक एल्गोरिथ्म को अधिक प्रसार के साथ अच्छे जीन को पुरस्कृत करने के लिए किसी तरह की आवश्यकता होती है। यदि आपके पास बुरे जीन से अच्छे जीन को बताने का कोई तरीका नहीं है, तो आप आनुवंशिक एल्गोरिथम का उपयोग नहीं कर सकते हैं।
काम करने के लिए एक आनुवंशिक एल्गोरिथ्म के लिए, आपको कम फिट समाधानों की वरीयता में अधिक उपयुक्त समाधानों को पुन: पेश करने की अनुमति देनी चाहिए। अन्यथा, आप बस यादृच्छिक समाधान की कोशिश कर रहे होंगे।
यहां मेरे स्वयं के अनुभव से एक विशिष्ट उदाहरण है: पहली वॉइस डायलिंग प्रणालियों में से एक का विकास करना, हमारे पास एक कठिन समय था एक एल्गोरिथ्म खोजने के लिए एक बोले गए नाम को उसी नाम की एक संग्रहीत प्रति से मिलान करना। हमें बताया गया कि 25 में से एक नाम लेने वाली 95% सटीकता पर्याप्त थी। हम लोगों के पास एक संग्रहित शव था, जिसमें कहा गया था कि प्रत्येक में 25 नाम 10 बार।
सबसे पहले, हमने एक इनपुट सिस्टम विकसित किया, जो बोले गए शब्द की लंबाई और आवृत्ति ऊर्जा को इसके कई सामान्यीकृत विखंडों में मापता है। फिर हमने एक एल्गोरिथ्म विकसित किया जो उन मापदंडों पर मैचों को भार देता है और उन भारों के माध्यम से मापदंडों के दो सेटों की तुलना करता है।
अब, हमारे पास एक अंतिम चरण था - उन भारों का मूल्य क्या होना चाहिए?
हमने वजन के 1,000 यादृच्छिक सेट बनाए और उन्हें कॉर्पस के खिलाफ परीक्षण किया। हमने सबसे खराब प्रदर्शन करने वाले 500 को फेंक दिया। शेष 500 के लिए, हमने प्रत्येक को एक में और उनमें से एक में बेतरतीब ढंग से उठाया या कम किया।
हमने लगभग दो सप्ताह तक इस प्रक्रिया को एक कंप्यूटर पर दोहराया जब तक कि यह अंत में वजन का एक सेट नहीं था जो 95% सटीकता की कसौटी पर खरा उतरा। फिर हमने इसे कॉरपस में नहीं डेटा पर परीक्षण किया। यह लगभग 92% सटीक था। इसलिए हम कॉर्पस पर 98% सटीकता प्राप्त करने के लिए लंबे समय तक भागते रहे और वजन के उस सेट ने 95% सटीकता का उत्पादन किया जो कि कॉर्पस में नहीं है।
तो, मुद्दा यह है, आपके पास आनुवंशिक एल्गोरिथ्म चलाने के लिए एक फिटनेस फ़ंक्शन होना चाहिए। यदि आपके पास बुरे जीन से अच्छे जीन को बताने का कोई तरीका नहीं है, तो आप यह कैसे सुनिश्चित कर सकते हैं कि अच्छे जीन का पुनरुत्पादन हो और बुरा जीन न हो?