लोगों के एक समूह के लिए भोजन और आकार के तालिकाओं के क्रम के लिए बैठने की अच्छी व्यवस्था


23

एक सेट को देखते हुए लोगों की मैं उन्हें आकार के टेबल पर भोजन के एक दृश्य के लिए बैठने के लिए करना चाहते हैं । (बेशक, सभी खाने के लिए पर्याप्त टेबल हैं । प्रत्येक भोजन के लिए ।) मैं इस तरह की व्यवस्था करना चाहता हूं कि कोई भी व्यक्ति एक ही व्यक्ति के साथ दो बार तालिका साझा न करे। विशिष्ट मूल्य हैं और और 6 से 10 भोजन।के | एस | | एस | = 45 k = 5Sk|S||S|=45k=5

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

मैं समस्या के बेहतर सूत्रीकरण के लिए आभारी हूँ और प्रासंगिक साहित्य की ओर संकेत करता हूँ क्योंकि यह मेरे डोमेन के बाहर है।

पृष्ठभूमि: इसका उपयोग श्लॉस डागस्टुहल में बैठने की व्यवस्था के लिए किया जा सकता है जहां कई कंप्यूटर वैज्ञानिक एक सप्ताह के दौरान अपने शोध पर चर्चा करने आते हैं। वर्तमान में सीटिंग बेतरतीब ढंग से की जाती है और आश्चर्यजनक रूप से कुछ लोग एक सप्ताह के दौरान खुद को दो बार (या अधिक बार) उसी लोगों के साथ बैठे पाते हैं। इसके अलावा, हम इस बारे में कुछ शिकायतें प्राप्त करते हैं कि यह कैसे सुधारें। मैं इसे और बेहतर समझना चाहूंगा। समस्या के एक मजबूत सूत्रीकरण में अनुकूलन शामिल है जो एक दूसरे के बगल में बैठे हैं, लेकिन मेरा मानना ​​है कि यह आकार 5 की तालिकाओं के लिए प्रासंगिक नहीं है।

आवेदन के बाहर मुझे लगता है कि दिलचस्प सवाल भोजन की अधिकतम संख्या के लिए है जो किसी दिए गए और लिए परोसा जा सकता है , अर्थात, ऐसे कितने विभाजन मौजूद हैं।केSk


IIRC, यह हैमिल्टन-वाटरलू समस्या की तरह लगता है।
जुहो

हैमिल्टन-वाटरलू समस्या के बारे में एक पेपर पर नज़र डालने से मुझे यह आभास होता है कि यह सुनिश्चित करने की कड़ी समस्या से निपटता है कि एक प्रतिभागी एक दूसरे के ठीक एक बार प्रतिभागी के पास बैठता है।
ईसाई लिंडिग

1
किर्कमैन की छात्रा समस्या समान प्रकृति की प्रतीत होती है और यह एक प्रारंभिक बिंदु हो सकती है।
क्रिश्चियन लिंडिग

जवाबों:


11

यहां मूल उत्तर (नीचे) का एक प्रकार है जो वांछित सेटिंग देता है: आकार 5, 45 लोगों और 10 भोजन की तालिकाएं, सिवाय इसके कि एक भोजन में आकार 4 के कुछ टेबल हैं।

चलो आकार के क्षेत्र हो 9. 4 खड़ी, पतित लाइनों उठाओ { ( , एक्स ) | एक्स एफ } हर के लिए = 0 , 1 , 2 , 3 और की घोषणा अपने लोगों को "खाली।" हम 81 - 9x4 = 45 लोगों के साथ बचे हैं।एफ{(,एक्स)|एक्सएफ}=0,1,2,3

9 भोजन ढलानों द्वारा दिया जाता है । 4 खाली पतित रेखाओं वाले चौराहों की तालिका का आकार 9-4 = 5 तक कम हो जाता है।=0,1,...,8

शेष पतित रेखाओं द्वारा अतिरिक्त भोजन दिया जाता है हर के लिए = 4 , 5 , 6 , 7 , 8 । यहाँ तालिका का आकार 9. है। हालांकि (किसी भी समाधान में) हम आकार 9 की तालिका को आकार 5 और तालिका 4 के आकार में तोड़ सकते हैं।{(,एक्स)|एक्सएफ}=4,5,6,7,8

यदि कुछ और लोग हैं तो आकार 11 के क्षेत्र का उपयोग कर सकते हैं।


सबसे पहले हम लोगों और k भोजन को संभालते हैं।कश्मीर2कश्मीर

एक परिमित फ़ील्ड का आकार k चुनें और F × F वाले लोगों की पहचान करें । प्रत्येक भोजन के लिए एक ढलान से मेल खाती है, उस ढलान के समानांतर एक मेज पर।एफकश्मीरएफ×एफ

विशेष रूप से, भोजन है कश्मीर टेबल { ( एक्स , एक एक्स + ) | एक्स एफ } हर के लिए एफकश्मीर{(एक्स,एक्स+)|एक्सएफ}एफ

आप जिस चौराहे की संपत्ति चाहते हैं, वह तथ्य यह है कि अलग-अलग ढलानों वाली रेखाएं एक बिंदु पर एक दूसरे को काटती हैं।


लोगों को संभालने के लिए , उन्हें k 2 के दो समूहों में विभाजित करें , और प्रत्येक समूह के ऊपर निर्माण लागू करें। 2 k 2 - k = 45 को संभालने के लिए , (पहले समूह में) एक निश्चित लाइन जैसे कि { ( x , x ) | एक्स एफ } के रूप में "खाली।" आपके पास k - 1 लोगों के साथ कुछ टेबल हो सकते हैं ।2कश्मीर2कश्मीर22कश्मीर2-कश्मीर=45{(एक्स,एक्स)|एक्सएफ}कश्मीर-1

अधिक भोजन के लिए उदाहरण के लिए, 6 वें भोजन की शुरुआत में दो समूहों में एक अलग विभाजन चुन सकते हैं। (कहते हैं कि आप मूल विभाजन को इंटरलेव करते हैं, यह सुनिश्चित करने के लिए कि दो समूह "मिक्स।") बेशक यह कुछ चौराहों में परिणाम हो सकता है।


यह एक दिलचस्प निर्माण है, लेकिन मेरे विशेष मामले के कारण भी सीमित है लेकिन कम सीमा के रूप में सर्वर कर सकता है। |एस|=कश्मीर2
ईसाई लिंडिग

मैंने अधिक सामान्य मापदंडों को संबोधित करने के लिए प्रश्न को संपादित किया है।
मनु

1
मेरा मानना ​​है कि [ब्लॉक डिजाइन] ( en.wikipedia.org/wiki/Block_design ) सामान्य मामले के लिए उपयुक्त रूपरेखा है, जैसा कि नीचे दिए गए डोमोटर द्वारा बताया गया है । हालाँकि, मुझे इसका रचनात्मक पहलू पसंद है और स्वीकार करना एक अच्छे उत्तर के रूप में है।
क्रिश्चियन लिंडिग

3
मैं उत्सुक हूँ अगर 10 भोजन के साथ एक समाधान मौजूद है; मैंने कुछ गुगली की, लेकिन जवाब नहीं मिला। वैसे भी, एक बार सबसे अच्छा समाधान मिल गया है, तो इसे कोडित करने के बारे में क्या है ताकि आयोजक पार्टिसिपेंट्स के नाम पेस्ट कर सकें और सभी सीटों के असाइनमेंट वापस पा सकें? क्या यह उनके लिए उपयोगी होगा? यदि हम इसे सरल बनाते हैं तो अन्य कार्यशालाएं दाग्स्तुहल की इस अच्छी परंपरा को अपना सकती हैं।
मनु

1
अच्छा अद्यतन। अगर यह लागू हो जाता है तो हमें आपके सम्मान में दाग्स्तुहल में एक बीयर पीना चाहिए :)
सुरेश वेंकट

4

यहां उन भोजन की संख्या पर एक ढीला (ढीला) ऊपरी बंधन है जो आप परोस सकते हैं।

चलो और मान लें कि n k से विभाज्य है । इसके अलावा, मान लें कि आपके पास बिल्कुल n / k टेबल हैं और आप चाहते हैं कि प्रत्येक भोजन के दौरान प्रत्येक तालिका पूर्ण हो।|एस|=nnकश्मीरn/कश्मीर

प्रत्येक भोजन के लिए, में प्रत्येक व्यक्ति के लिए एक नोड के साथ एक ग्राफ और एक किनारे का निर्माण करें जब दो लोग एक तालिका साझा करते हैं। यह ग्राफ का एक संग्रह है n / कश्मीर क्लिक्स आकार के प्रत्येक कश्मीर । इस प्रकार ग्राफ में किनारों की संख्या Θ ( n k ) हैएसn/कश्मीरकश्मीरΘ(nकश्मीर)

चूंकि आप नहीं चाहते दो अलग-अलग भोजन में पाए जाते हैं किसी भी किनारे करने के लिए, और आकार के एक शीर्ष सेट पर संभव किनारों की कुल संख्या के बाद से है Θ ( n 2 ) , इस शो आप केवल सेवा कर सकते हैं हे ( एन / कश्मीर ) भोजन ।nΘ(n2)हे(n/कश्मीर)

वास्तव में, यहां स्थिरांक ढूंढना मुश्किल नहीं है और जब आप गणित करते हैं, तो आपको वास्तव में n - 1 का ऊपरी हिस्सा मिलता है , जो, आपके विशिष्ट मूल्यों के लिए, 11 है।n-1कश्मीर-1


3

यदि आप चाहते हैं कि कोई भी दो लोग एक ही मेज पर एक बार बैठें, तो इसे रिसोल्वेबल 2-डिज़ाइन कहा जाता है और इस पर काफी अध्ययन किया गया है। बेशक कुछ भोजन को छोड़ने की अनुमति आपकी समस्या का समाधान देगी जब दो लोग एक बार में मिल सकते हैं। (लेकिन अन्य समाधान मौजूद हो सकते हैं, मुझे लगता है।)


मैं चाहूंगा कि दो लोग एक बार में मिलें। तालिका की पहचान कोई समस्या नहीं है और मैं आपके उत्तर के भाग के रूप में एक ही टेबल पर बैठने के महत्व के बारे में निश्चित नहीं हूं लेकिन लिंक की गई परिभाषा को देखूंगा।
क्रिश्चियन लिंडिग

2

यदि आप एक निर्धारक एल्गोरिथ्म की आवश्यकता नहीं है, तो मुझे यकीन नहीं है, लेकिन मैंने एक मार्कोव श्रृंखला मोंटे कार्लो विधि का उपयोग करके अतीत में इसी तरह की समस्या को हल किया है ।

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

नोट: यह कार्यक्रम ठीक उसी समस्या को हल नहीं करता है जिसे आप प्रस्तावित करते हैं, लेकिन यह एक मार्कोव श्रृंखला मोंटे कार्लो विधि का एक कार्य प्रदर्शन देता है, और यह काफी करीब है कि आप इसे आसानी से अपनी समस्या के लिए आवश्यकतानुसार समायोजित कर सकते हैं।

कार्यक्रम एक रात्रिभोज के लिए समस्या को हल करता है, लेकिन आपके मामले में, समस्या के करीब पहुंचने का एक आसान तरीका एल्गोरिदम को प्रत्येक रात्रिभोज के लिए एक बार चलाना होगा, प्रत्येक बार प्रत्येक भोजनकर्ता के पिछले साथियों को या तो फजी या पूर्ण नकारात्मक आवश्यकताओं को प्रदान करना होगा। (फ़ज़ी आवश्यकताओं का लाभ यह है कि आपको गारंटी दी जाती है कि एल्गोरिथ्म सभी इनपुट पर रुकेगा, भले ही एक पूर्ण व्यवस्था नहीं मिल सके)।

इस प्रक्रिया में, हम सबसे पहले प्रत्येक डिनर को पूर्ण आवश्यकताओं के अनुसार सीट देने का प्रयास करेंगे - आप प्रक्रिया के इस भाग को छोड़ना चाह सकते हैं, क्योंकि यह केवल तभी काम करता है जब पूर्ण आवश्यकताएं अपेक्षाकृत कम संख्या में हों; अन्यथा आप एक अविश्वसनीय रूप से बड़ी समस्या के साथ समाप्त होते हैं !

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

प्रक्रिया का यह हिस्सा आदर्श रूप से कई प्रारंभिक कॉन्फ़िगरेशन के साथ दोहराया जाना चाहिए, और आसानी से समानांतर में गणना की जा सकती है।


|एस|

0

मुझे लगता है कि बैठने की कोई भी व्यवस्था डी-रेगुलर हाइपरग्राफ के बराबर है। S | कोने, जहां d पर रात्रिभोज की संख्या है, जिसमें रैंक अधिकतम k और अधिकतम कोडग्री 1 है। तुच्छ समाधान हर किसी को हमेशा अपने पास बैठाना है, लेकिन मुझे लगता है कि लक्ष्य तालिकाओं की संख्या को कम करना है?


1
इस सेटिंग में तालिकाओं की संख्या निश्चित है। और यह लोगों की संख्या से कड़ाई से कम है।
सुरेश वेंकट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.