कुछ उत्साही प्रोग्रामिंग करते समय मुझे इस समस्या का सामना करना पड़ा। इस प्रकार समस्या व्यक्त किया जा सकता:क्या मल्टीसेट के सभी अद्वितीय परिपत्र क्रमपरिवर्तन उत्पन्न करने के लिए कोई एल्गोरिदम है?
एक मल्टीसेट एक के लिए, चलो पी (ए) को निरूपित ए पी (ए) के सभी संभव क्रमपरिवर्तन की सेट स्वाभाविक रूप से संबंध तोड़ना सबसेट कि तुल्यता हैं में विभाजित है कक्षाएं, समानता संबंध "सर्कुलर बदलावों से संबंधित हो सकती हैं।" उत्पन्न करने वाले सभी समकक्ष वर्गों को उत्पन्न करके सभी समकक्ष वर्गों का आकलन करें।
उदाहरण के लिए, मल्टीसेट {0, 1, 1, 2} पर विचार करें। क्रमपरिवर्तन "0112" और "1201" अद्वितीय क्रमपरिवर्तन हैं, लेकिन उत्तरार्द्ध परिपत्र-पूर्व और इसके विपरीत स्थानांतरित करके पाया जा सकता है। वांछित एल्गोरिदम दोनों उत्पन्न नहीं करना चाहिए।
बेशक एक ब्रूट-बल दृष्टिकोण संभव है: केवल परिपत्र उत्पन्न करें - गोलाकार क्रमिकता के बावजूद - किसी भी मल्टीसेट क्रमपरिवर्तन एल्गोरिदम का उपयोग करके, और पिछले परिणामों की तुलना में पाए गए डुप्लिकेशंस को छोड़ दें। हालांकि, यह अभ्यास में अक्षम है। शून्य बहीखाता नहीं होने पर वांछित एल्गोरिदम को न्यूनतम की आवश्यकता होनी चाहिए।
इस समस्या में किसी भी अंतर्दृष्टि की सराहना की जाती है।
सावा द्वारा पेपर के लिंक और संदर्भ के लिए धन्यवाद। मुझे अध्ययन करने के लिए कुछ समय लगेगा, अगर मेरे पास और प्रश्न हैं तो वापस पोस्ट करें। –
वैसे मैं इसे समाधान के रूप में चिह्नित करूंगा :) मैंने एक करीबी संबंधित समस्या के एल्गोरिदम के लिए एक पेपर भी खोजा, अर्थात् वर्णमाला से एक निश्चित लंबाई के सभी हारों की पीढ़ी। पेपर से लिंक: http://dx.doi.org/10.1006/jagm.2000.1108 –