Recycling computational processes of dynamic programming for combinatorial optimization problems: a reservoir computing approach
यह शोध पत्र एक रिज़र्वोइर कंप्यूटिंग दृष्टिकोण प्रस्तावित करता है जो सन्निकटन सटीकता में सुधार करने और गणना समय को कम करने के लिए कई कॉम्बिनेटोरियल ऑप्टिमाइज़ेशन समस्याओं में मध्यवर्ती डायनेमिक प्रोग्रामिंग परिणामों को स्वचालित रूप से खोजता है और पुन: उपयोग करता है, जिसे ट्रैवलिंग सेल्समैन और सबसेट सम समस्याओं पर मान्य किया गया है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक मास्टर शेफ हैं जो एक डिनर पार्टी के लिए तीन अलग-अलग व्यंजन बनाने की कोशिश कर रहे हैं: एक तीखी करी, एक नाजुक सूफ़ले (soufflé), और एक पौष्टिक स्टू (stew)। पुराने तरीके से काम करने में, आप पहले व्यंजन को शुरू से बनाना शुरू करेंगे, अपने हाथ धोएंगे, दूसरे व्यंजन को फिर से शुरू से बनाना शुरू करेंगे, और फिर तीसरे के लिए भी यही करेंगे। आप बार-बार प्याज काटेंगे, मसाले मापेंगे और पैन गर्म करेंगे, भले ही हर रेसिपी के पहले तीन कदम लगभग एक जैसे हों। कंप्यूटर अक्सर इसी तरह काम करते हैं: वे एक गणितीय समस्या को हल करते हैं, उसे हल करते समय बनाए गए अपने सभी नोट्स फेंक देते हैं, और फिर अगली समस्या के लिए पूरी तरह से नए सिरे से शुरुआत करते हैं, भले ही वे दोनों समस्याएँ आपस में संबंधित हों।
लेकिन क्या होगा अगर आप उन नोट्स को रख सकें? क्या होगा अगर करी बनाते समय आपको एहसास हो कि जिस तरह से आपने प्याज काटे थे, वह स्टू के लिए भी एकदम सही था? काम को "रीसायकल" करने का यह विचार कंप्यूटर विज्ञान की एक क्लासिक तकनीक है जिसे डायनेमिक प्रोग्रामिंग (Dynamic Programming) कहा जाता है। यह एक छोटे गणितीय पहेली का उत्तर एक नोटबुक में लिखने जैसा है ताकि आपको इसे बाद में फिर से हल न करना पड़े। दूसरा विचार, रिजवॉयर कंप्यूटिंग (Reservoir Computing), सूप के एक उबलते हुए बर्तन की तरह है। आप बर्तन में सामग्री (डेटा) डालते हैं, और जिस तरह से वे आपस में घूमते और मिलते हैं, उससे एक जटिल पैटर्न बनता है। आप उन घुमावों को नियंत्रित नहीं करते, लेकिन आप पैटर्न को पढ़ना सीख सकते हैं ताकि यह अनुमान लगाया जा सके कि सूप का स्वाद कैसा है। बड़ा सवाल जो वैज्ञानिक पूछ रहे हैं वह यह है: क्या हम एक कठिन पहेली को हल करने के "नोट्स" को एक अलग कठिन पहेली को हल करने के लिए सामग्री के रूप में उपयोग कर सकते हैं, जिससे समय और ऊर्जा की बचत हो सके?
यह ठीक वही है जिसे इस शोध पत्र के शोधकर्ताओं ने तलाशने की कोशिश की है। वे जटिल गणितीय पहेलियों को हल करने का एक नया तरीका प्रस्तावित करते हैं जिन्हें कॉम्बिनेटोरियल ऑप्टिमाइज़ेशन प्रॉब्लम्स (combinatorial optimization problems) कहा जाता है—इसे ऐसे खेलों के रूप में सोचें जहाँ आपको चीजों का सबसे अच्छा संयोजन खोजना होता है, जैसे कि एक ट्रैवलिंग सेल्समैन के लिए सबसे छोटा रास्ता या किसी लक्ष्य योग तक पहुँचने के लिए संख्याओं का सही संयोजन। आमतौर पर, यदि आप इन खेलों के दो अलग-अलग संस्करणों को हल करना चाहते हैं, तो आप दो अलग-अलग, भारी-भरकम कंप्यूटर प्रोग्राम चलाते हैं। लेखक एक स्मार्ट दृष्टिकोण का सुझाव देते हैं: केवल एक खेल के लिए भारी प्रोग्राम चलाएं, उसके द्वारा उत्पन्न किए गए विशाल मध्यवर्ती परिणामों (नोट्स) की सूची को सुरक्षित रखें, और फिर उन नोट्स के आधार पर अन्य खेलों के उत्तर का अनुमान लगाने के लिए एक सरल, हल्के गणितीय तरीके जिसका नाम लीनियर रिग्रेशन (linear regression) है, का उपयोग करें।
अपने प्रयोगों में, टीम ने इन दो प्रसिद्ध पहेलियों पर इस विचार का परीक्षण किया: ट्रैवलिंग सेल्समान प्रॉब्लम (Traveling Salesman Problem) (शहरों की एक सूची में जाने के लिए सबसे छोटा रास्ता खोजना) और सबसेट सम प्रॉब्लम (Subset Sum Problem) (संख्याओं का एक समूह खोजना जिनका योग एक विशिष्ट लक्ष्य के बराबर हो)। उन्होंने पाया कि ट्रैवलिंग सेल्समैन प्रॉब्लम के "सबसे कठिन" संस्करण (सबसे लंबा रास्ता खोजना) को हल करने की कम्प्यूटेशनल प्रक्रिया को "रीसायकल" करके, वे "सबसे आसान" संस्करण (सबसे छोटा रास्ता खोजना) को आश्चर्यजनक सटीकता के साथ हल कर सके। यह ऐसा ही है जैसे उन्होंने तीखी करी बनाई, उबलते हुए बर्तन को देखा, और तुरंत जान गए कि बिना दूसरे व्यंजन के लिए ओवन चालू किए सूफ़ले कैसे बनाया जाए।
परिणाम बताते हैं कि यह विधि केवल एक सैद्धांतिक जिज्ञासा नहीं है। जब उन्होंने 14 शहरों के लिए सबसे छोटा रास्ता खोजने की कोशिश की, तो उनका "रीसायकल" किया गया तरीका इसे शुरू से हल करने की तुलना में लगभग नौ गुना तेज़ था, और यह वास्तव में विशेषज्ञों द्वारा उपयोग किए जाने वाले कई मानक, प्रसिद्ध शॉर्टकट से अधिक सटीक था। इसी तरह, संख्या-जोड़ने वाली पहेली के लिए, काम साझा करने से उन्हें दो अलग-अलग लक्ष्यों को अलग-अलग करने की तुलना में बहुत तेज़ी से हल करने में मदद मिली। लेखक सुझाव देते हैं कि यह कंप्यूटिंग के बारे में सोचने के एक नए तरीके की ओर इशारा करता है: हर समस्या को एक बिल्कुल नए कार्य के रूप में मानने के बजाय, जिसे ताज़ा शुरुआत की आवश्यकता होती है, हम ऐसे सिस्टम डिज़ाइन कर सकते हैं जहाँ विभिन्न समस्याएँ "एक ही मस्तिष्क साझा" करती हैं, जो एक दूसरे को हल करने में मदद करने के लिए एक दूसरे के मध्यवर्ती चरणों को जैविक रूप से रीसायकल करती हैं। यह वैसा ही है जैसे हमारा मस्तिष्क चलने और नाचने के लिए एक ही तंत्रिका पथों (neural pathways) का उपयोग कर सकता है, पुराने कौशल को नए मूव्स के लिए पुन: उपयोग करना। हालांकि इसका मतलब यह नहीं है कि हम हर असंभव गणितीय समस्या को तुरंत हल कर सकते हैं, लेकिन यह एक ऐसे भविष्य का सुझाव देता है जहाँ कंप्यूटर अलग-थलग श्रमिकों की तरह नहीं, बल्कि एक सहयोगी टीम की तरह होंगे, जो काम को तेज़ी से करने के लिए लगातार अपने सर्वोत्तम विचारों का पुन: उपयोग करते रहेंगे।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।