आनुवंशिक प्रतिनिधित्व

कंप्यूटर प्रोग्रामिंग में, जेनेटिक रिप्रजेंटेशन एवोलुशनरी कम्प्यूटेशन विधियों में सोलूशन्स/इंडिवीडुअल्स को प्रस्तुत करने का एक तरीका है। यह शब्द कंक्रीट डाटा स्ट्रक्चर और डेटा टाइप दोनों को सम्मिलित करता है जिसका उपयोग जीनोम के रूप में कैंडिडेट सोल्युशन की जेनेटिक मटेरियल और सर्च स्पेस और प्रॉब्लम स्पेस के बीच संबंधों को समझने के लिए किया जाता है। सरलतम केस में, सर्च स्पेस प्रॉब्लम स्पेस (डायरेक्ट रिप्रजेंटेशन) से मेल खाता है। प्रॉब्लम रिप्रजेंटेशन का चुनाव जेनेटिक ऑपरेटर्स की पसंद से जुड़ा हुआ है, दोनों का ऑप्टिमाइजेशन की एफिशिएंसी पर डीसीसिव  इफ़ेक्ट पड़ता है। जेनेटिक रिप्रजेंटेशन इंडिवीडुअल्स की उपस्थिति, बिहेवियर, फिजिकल क्वालिटीज़ को कूटबद्ध कर सकता है। जेनेटिक रिप्रजेंटेशन में अंतर एवोलुशनरी कम्प्यूटेशन के ज्ञात वर्गों के बीच एक रेखा खींचने वाले प्रमुख मानदंडों में से एक है।

शब्दावली प्रायः नेचुरल जेनेटिकी के अनुरूप होती है। कंप्यूटर मेमोरी का वह ब्लॉक जो एक कैंडिडेट सोल्युशन का रिप्रजेंटेशन करता है, एक इंडिविजुअल कहलाता है। उस ब्लॉक के डेटा को क्रोमोसोम (जेनेटिक एल्गोरिदम) कहा जाता है। प्रत्येक गुणसूत्र में जीन होते हैं। किसी विशेष जीन के पॉसिबल वैल्यू को एलील कहा जाता है। एक प्रोग्रामर बाइनरी एन्कोडिंग, परमुटेशनल एन्कोडिंग, ट्री द्वारा एन्कोडिंग, या कई अन्य रिप्रजेंटेशन में से किसी एक का उपयोग करके पॉपुलेशन मॉडल (एवोलुशनरी एल्गोरिदम) के सभी इंडिवीडुअल्स का रिप्रजेंटेशन कर सकता है।

कुछ लोकप्रिय एवोलुशनरी एल्गोरिदम में रिप्रजेंटेशन
जेनेटिक एल्गोरिद्म (जीए) सामान्यतः लीनियर रिप्रजेंटेशन होते हैं; ये प्रायः बाइनरी होते हैं, लेकिन हमेशा नहीं। जॉन हेनरी हॉलैंड के GA के मूल विवरण में बिट्स की सारणियों का उपयोग किया गया था। अन्य प्रकार और संरचनाओं की सरणियों का उपयोग अनिवार्य रूप से उसी तरह से किया जा सकता है। मेन प्रॉपर्टी जो इन जेनेटिक रिप्रजेंटेशन को कनविनिएंट बनाता है वह यह है कि उनके निश्चित आकार के कारण उनके हिस्से आसानी से अलाइन हो जाते हैं। यह सरल क्रॉसओवर ऑपरेशन की फैसिलिटेट करता है। एप्लीकेशन के आधार पर, एवोलुशनरी एल्गोरिदम (ईए) में वैरिएबल-लेंथ रिप्रजेंटेशन का भी सफलतापूर्वक उपयोग और परीक्षण किया गया है। सामान्यतः और जेनेटिक एल्गोरिदम  विशेष रूप से, हालांकि इस स्तिथि में क्रॉसओवर का इम्प्लीमेंटेशन अधिक जटिल है।

एवोलुशन स्ट्रेटेजी लीनियर रियल-वैल्यूड रिप्रजेंटेशन का उपयोग करती है, उदाहरण के लिए, रियल वैल्यूज की एक श्रृंखला है। यह अधिकतर गाऊसी उत्परिवर्तन और सम्मिश्रण/औसत क्रॉसओवर का उपयोग करता है।

जेनेटिक प्रोग्रामिंग (जीपी) ने ट्री जैसे रिप्रजेंटेशन पायनियर किया और ऐसे रिप्रजेंटेशन के लिए सूटेबल जेनेटिक ऑपरेटर विकसित किए। डिजायरड प्रॉपर्टीज के साथ फंक्शनल प्रोग्राम्स का रिप्रजेंटेशन करने और विकसित करने के लिए जीपी में ट्री-लाइक रिप्रजेंटेशन का उपयोग किया जाता है।

ह्यूमन-बेस्ड जेनेटिक एल्गोरिथ्म (HBGA) सभी जेनेटिक ऑपरेटर्स को बाहरी एजेंटों को आउटसोर्स करके कठिन रिप्रजेंटेशन प्रॉब्लम को हल करने से बचने का एक तरीका प्रदान करता है, इस स्तिथि में, इंडिविजुअल को आउटसोर्स करके कठिन रिप्रजेंटेशन प्रॉब्लम को हल करने से बचने का एक तरीका प्रदान करता है। एल्गोरिथम को किसी फिक्स्ड जेनेटिक जेनेटिक रिप्रजेंटेशन के नॉलेज की कोई आवश्यकता नहीं है, जब तक कि पर्याप्त बाहरी एजेंट उन रिप्रजेंटेशन को संभालने में सक्षम हैं, जो मुक्त-रूप और विकसित जेनेटिक रिप्रजेंटेशन की अनुमति देते हैं।

कॉमन जेनेटिक रिप्रजेंटेशन

 * जेनेटिक एल्गोरिद्म
 * एवोलुशनरी एल्गोरिदम रियल-वैल्यूड ऐरे
 * बाइनरी ट्री
 * नेचुरल लैंग्वेज
 * पार्स ट्री
 * डायरेक्टेड  ग्राफ

सर्च स्पेस और प्रॉब्लम स्पेस के बीच अंतर
जीव विज्ञान के अनुरूप, ईएएस प्रॉब्लम स्पेस (फेनोटाइप के अनुरूप) और सर्च स्पेस (जीनोटाइप के अनुरूप) के बीच अंतर करते हैं। प्रॉब्लम स्पेस में प्रॉब्लम के कंक्रीट सोलूशन्स होते हैं, जबकि सर्च स्पेस में एन्कोडेड सोलूशन्स होते हैं। सर्च स्पेस से प्रॉब्लम स्पेस तक के फ़ंक्शन (गणित) को जीनोटाइप-फेनोटाइप मैपिंग कहा जाता है। जेनेटिक ऑपरेटर को सर्च स्पेस के एलिमेंट पर लागू किया जाता है, और इवैल्यूएशन के लिए, सर्च स्पेस के एलिमेंट को जीनोटाइप-फेनोटाइप मैपिंग के माध्यम से प्रॉब्लम स्पेस के एलिमेंट पर मैप किया जाता है।

सर्च स्पेस और प्रॉब्लम स्पेस के बीच संबंध
ईए एप्लिकेशन की सफलता के लिए सर्च स्पेस के उचित विकल्प के महत्व को प्रारम्भ में ही पहचान लिया गया था।  निम्नलिखित आवश्यकताओं को एक सूटेबल सर्च स्पेस पर रखा जा सकता है और इस प्रकार एक सूटेबल जीनोटाइप-फेनोटाइप मैपिंग पर रखा जा सकता है:

कम्प्लीटनेस
सभी पॉसिबल अड्मिससिबल सोलूशन्स सर्च स्पेस में कॉन्टैन होने चाहिए।

अतिरेक
जब फेनोटाइप की तुलना में अधिक संभावित जीनोटाइप उपस्थित होते हैं, तो ईए के जेनेटिक रिप्रजेंटेशन को अनावश्यक कहा जाता है। प्रकृति में, इसे डीजेनेरेट जेनेटिक कोड कहा जाता है। रेडनडंट रिप्रजेंटेशन की स्तिथि में, तटस्थ उत्परिवर्तन संभव है। ये ऐसे उत्परिवर्तन हैं जो जीनोटाइप को बदलते हैं लेकिन फेनोटाइप को प्रभावित नहीं करते हैं। इस प्रकार, जेनेटिक ऑपरेटर के उपयोग के आधार पर, फेनोटाइपिक रूप से अनचेंज्ड ऑफस्प्रिंग हो सकती हैं, जिससे अन्य चीजों के अतिरिक्त अननेसेसरी फिटनेस डेटर्मिनेशन्स हो सकता है। चूंकि रियल-वर्ल्ड ऍप्लिकेशन्स में इवैल्यूएशन सामान्यतः गणना समय के बड़े हिस्से के लिए उत्तरदायी होता है, यह गणितीय ऑप्टिमाइजेशन प्रक्रिया को धीमा कर सकता है। इसके अतिरिक्त, इससे पॉपुलेशन में फेनोटाइपिक विविधता की तुलना में अधिक जीनोटाइपिक विविधता हो सकती है, जो एवोलुशनरी प्रगति में भी बाधा बन सकती है।

जीव विज्ञान में, आणविक विकास के तटस्थ सिद्धांत में कहा गया है कि यह प्रभाव नेचुरल इवैल्यूएशन में एक प्रमुख भूमिका निभाता है। इसने ईए मोटिवेटेड रीसर्चर को यह जांचने के लिए प्रेरित किया है कि क्या तटस्थ उत्परिवर्तन ईए कार्यप्रणाली में लोकल ऑप्टिमम में परिवर्तित हो चुकी कम्युनिटी को जेनेटिक ड्रिफ्ट के माध्यम से उस लोकल ऑप्टिमम से बचने का एक तरीका देकर सुधार कर सकते हैं। इस पर विवादास्पद रूप से चर्चा की गई है और ईएएस में तटस्थता पर कोई निर्णायक परिणाम नहीं हैं। दूसरी ओर, प्रीमैच्योर कन्वर्जेन्स को संभालने के लिए अन्य सिद्ध उपाय भी हैं।

स्थान
जेनेटिक रिप्रजेंटेशन का स्थान उस डिग्री से मेल खाता है जिस तक जीनोटाइप-फेनोटाइप मैपिंग के बाद सर्च स्पेस में मीट्रिक स्पेस प्रॉब्लम स्पेस में संरक्षित है। अर्थात्, एक रिप्रजेंटेशन में उच्च स्थानीयता ठीक उसी स्थिति में होती है जब सर्च स्पेस में नेबर भी प्रॉब्लम स्पेस में नेबर होते हैं। एक माइनर म्युटेशन (जेनेटिक एल्गोरिदम) के बाद जीनोटाइप-फेनोटाइप मैपिंग द्वारा सफल स्कीमा (जेनेटिक एल्गोरिदम) को डिस्ट्रॉय न करने के लिए, रिप्रजेंटेशन लोकैलिटी उच्च होनी चाहिए।

स्केलिंग
जीनोटाइप-फेनोटाइप मैपिंग में, जीनोटाइप के एलिमेंट को अलग-अलग तरीके से स्केल (भारित) किया जा सकता है। सबसे सरल स्तिथि यूनिफार्म स्केलिंग का है: जीनोटाइप के सभी एलिमेंट को फेनोटाइप में समान रूप से महत्व दिया जाता है। एक सामान्य स्केलिंग एक्सपोनेंशियल है। यदि इन्टिजर को बाइनरी कोडित किया जाता है, तो परिणामी बाइनरी नंबर के अलग-अलग नंबर में फेनोटाइप का रिप्रजेंटेशन करने में एक्सपोनेंशियल ग्रोथ अलग-अलग होती है।
 * उदाहरण: नंबर 90 को बाइनरी में (अर्थात् घातांक दो में) 1011010 के रूप में लिखा जाता है। यदि अब बाइनरी नोटेशन में सामने के नंबर में से एक को बदल दिया जाता है, तो इसका कोड पीछे के नंबर में किसी भी परिवर्तन की तुलना में नंबर पर काफी अधिक प्रभाव पड़ता है (चयन दबाव का सामने के नंबर पर तीव्रता से अधिक प्रभाव पड़ता है)।

इस कारण से, एक्सपोनेंशियल स्केलिंग में जीनोटाइप में पीछे के स्थानों को रैंडम्ली फिक्स करने का प्रभाव होता है, इससे पहले कि पॉपुलेशन इन सटलटीस को समायोजित करने के लिए गणितीय ऑप्टिमाइजेशन के काफी निकट पहुंच जाए।

जीनोटाइप-फेनोटाइप मैपिंग में संकरण और मरम्मत
जब जीनोटाइप को इवैल्यूएशन किए जा रहे फेनोटाइप से मैप किया जाता है, तो डोमेन-स्पेसिफिक नॉलेज का उपयोग फेनोटाइप को बेहतर बनाने और/या यह सुनिश्चित करने के लिए किया जा सकता है कि कंस्ट्रेंट्सपूरी हो गई हैं। रनटाइम और सोलूशन्स गुणवत्ता के संदर्भ में ईए परफॉरमेंस को बेहतर बनाने के लिए यह सामान्यतः इस्तेमाल की जाने वाली विधि है। इसे नीचे तीन में से दो उदाहरणों द्वारा दर्शाया गया है।

डायरेक्ट रिप्रजेंटेशन का उदाहरण
ट्रैवलिंग सेल्समैन प्रॉब्लम और संबंधित कार्यों के लिए एक स्पष्ट और सामान्यतः इस्तेमाल की जाने वाली एन्कोडिंग उन शहरों की लगातार नंबर निर्धारित करना और उन्हें क्रोमोसोम (जेनेटिक एल्गोरिदम) में इन्टिजर के रूप में स्टोर करना है। जेनेटिक ऑपरेटर को सूटेबल रूप से एडॉप्ट किया जाना चाहिए ताकि वे केवल शहरों (जीन) के क्रम को बदल सकें और डिलीशन या डुप्लीकेशन का कारण न बनें। इस प्रकार, जीन क्रम शहर के क्रम से मेल खाता है और एक सरल वन-टू-वन मैपिंग है।

एक जटिल जीनोटाइप-फेनोटाइप मैपिंग का उदाहरण।
सब्टास्क के एक सेट को सौंपे जाने वाले विषम और आंशिक रूप से वैकल्पिक रिसोर्सेज के साथ एक शेड्यूलिंग कार्य में, जीनोम में इंडिविजुअल शेड्यूलिंग ऑपरेशन के लिए सभी आवश्यक जानकारी होनी चाहिए या उन्हें इससे प्राप्त करना संभव होना चाहिए। परफॉर्म किए जाने वाले सब्टास्क के क्रम के अतिरिक्त, इसमें रिसोर्स सिलेक्शन के बारे में जानकारी सम्मिलित है। फिर एक फेनोटाइप में उनके प्रारंभ समय और निर्दिष्ट रिसोर्सेज के साथ सब्टास्क की एक सूची होती है। इसे बनाने में सक्षम होने के लिए, उतने एलोकेशन मैट्रिक्स (गणित) बनाए जाने चाहिए जितने रिसोर्सेज को अधिकतम एक सब्टास्क के लिए एलॉकेट किया जा सके। सबसे सरल स्तिथि में यह एक संसाधन है, उदाहरण के लिए, एक मशीन, जो सब्टास्क परफॉर्म कर सकती है। एलोकेशन मैट्रिक्स एक टू-डायमेंशनल मैट्रिक्स है, जिसमें एक डायमेंशन उपलब्ध समय इकाइयाँ हैं और दूसरा एलॉकेट किए जाने वाले संसाधन हैं। एम्प्टी मैट्रिक्स सेल अवेलेबिलिटी दर्शाते हैं, जबकि एक प्रविष्टि निर्दिष्ट सब्टास्क का नंबर दर्शाती है। एलोकेशन मैट्रिक्स का निर्माण सबसे पहले यह सुनिश्चित करता है कि कोई इनअड्मिससिबल मल्टीप्ल एलोकेशन नहीं हैं। दूसरे, सब्टास्क के स्टार्ट टाइम को इसके साथ-साथ निर्दिष्ट रिसोर्सेज से भी पढ़ा जा सकता है।

सब्टास्क के लिए रिसोर्सेज को शेड्यूल करते समय एक कॉमन कन्सट्रैन्ट यह है कि एक संसाधन को प्रति समय इकाई केवल एक बार एलॉकेटेड किया जा सकता है और रिजर्वेशन एक सन्निहित अवधि के लिए होना चाहिए। इसे समयबद्ध तरीके से प्राप्त करने के लिए, जो एक कॉमन ऑप्टिमाइजेशन गोल है और कोई बाधा नहीं है, एक सिंपल हेयरिस्टिक का उपयोग किया जा सकता है: डुप्लिकेट रिजर्वेशन से बचते हुए, जितनी जल्दी हो सके डीज़ायरड टाइम पीरियड के लिए रिक्वायर्ड रिसोर्स एलॉकेट करें। इस सरल प्रक्रिया का लाभ दोहरा है: यह कन्सट्रैन्ट से बचाता है और ऑप्टिमाइजेशन में मदद करता है।

यदि शेड्यूलिंग प्रॉब्लम को इंडिपेंडेंट सब्टास्क के स्थान पर वर्कफ़्लो की शेड्यूलिंग में मॉडिफाई किया जाता है, तो वर्कफ़्लो के कम से कम कुछ वर्क स्टेप्स को दिए गए क्रम में परफॉर्म करना होगा। यदि पहले डिस्क्राइब्ड शेड्यूलिंग हेयरिस्टिक अब यह निर्धारित करता है कि किसी वर्क स्टेप्स का प्रेडेसर पूरा नहीं हुआ है जबकि इसे स्वयं प्रारम्भ किया जाना चाहिए, तो निम्नलिखित मरम्मत तंत्र मदद कर सकता है: इस कार्य चरण की शेड्यूलिंग को तब तक स्थगित करें जब तक कि इसके सभी प्रेडेसर समाप्त न हो जाएं। चूँकि जीनोटाइप अनचेंज्ड रहता है और रिपेयर केवल फेनोटाइप लेवल पर किया जाता है, इसलिए इसे फेनोटाइपिक रिपेयर भी कहा जाता है।

हेयरस्टिक-बेस्ड जीनोटाइप-फेनोटाइप मैपिंग का उदाहरण
निम्नलिखित लेआउट प्लानिंग टास्क इसका उद्देश्य जीनोटाइप-फेनोटाइप मैपिंग में हेयरस्टिक के एक अलग उपयोग को चित्रित करना है: एक रेक्टेंगुलर बेस पर विभिन्न ज्यामितीय प्रकार की वस्तुओं को इस तरह से अर्रेंज किया जाना चाहिए कि जितना संभव हो उतना कम एरिया अनयूज़्ड रहे। वस्तुओं को रोटेट किया जा सकता है, प्लेसमेंट के बाद ओवरलैप नहीं होना चाहिए, और पूरी तरह से सतह पर स्थित होना चाहिए। स्टील प्लेट या फैब्रिक शीट से भागों को काटते समय एक संबंधित एप्लीकेशन स्क्रैप मिनीमाईज़ेशन होगा।

ऑब्जेक्ट के सेंटर के निर्देशांक और वस्तुओं की ज्यामिति के संभावित समरूपता के लिए कम किए गए रोटेशन एंगल को निर्धारित किए जाने वाले वेरिएबल के रूप में माना जा सकता है। यदि यह सीधे ईए द्वारा किया जाता है, तो संभवतः बहुत सारे ओवरलैप होंगे। इससे बचने के लिए, रेक्टेंगल के केवल एक तरफ का एंगल और कोआर्डिनेट ईए द्वारा निर्धारित किया जाता है। प्रत्येक वस्तु को अब रोटेट किया जाता है और उस तरफ के एज पर स्थित किया जाता है, यदि आवश्यक हो तो इसे शिफ्ट किया जाता है ताकि जब इसे बाद में शिफ्टि किया जाए तो यह रेक्टेंगल के अंदर हो। फिर इसे दूसरी तरफ पैरेलल घुमाया जाता है जब तक कि यह किसी अन्य वस्तु को नहीं छू लेता या रेक्टेंगल के विपरीत छोर तक नहीं पहुंच जाता। इस तरह, ओवरलैप से बचा जाता है और प्रति प्लेसमेंट अप्रयुक्त क्षेत्र को कम किया जाता है, लेकिन सामान्यतः नहीं, जिसे ऑप्टिमाइजेशन के लिए छोड़ दिया जाता है।