एक क्यूब में वस्तुओं को वितरित करें ताकि उनके बीच एक दूसरे के बीच अधिकतम दूरी हो


11

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

RGB स्पेस में, हमारे पास तीन प्लेन होते हैं, जिनमें 0 और 255 के बीच के सभी मान होते हैं। इस क्यूब में , मैं n रंगों को वितरित करना चाहूंगा ताकि जितना हो सके जितना संभव हो अपने और दूसरों के बीच की दूरी। एक अतिरिक्त प्रतिबंध यह है कि ( 0 , 0 , 0 ) और ( 255 , 255 , 255 ) (या जितना संभव हो उतना करीब) n में शामिल किया जाना चाहिए(0,0,0)/(255,255,255)n(0,0,0)(255,255,255)nरंग, क्योंकि मैं यह सुनिश्चित करना चाहता हूं कि मेरी वस्तुओं में से कोई भी रंग नहीं लेता क्योंकि पृष्ठभूमि संभवतः इन रंगों में से एक होगी।(n-2)

संभवतः, (काले और समय सहित) लगभग 14 से अधिक नहीं होगी।n

इन रंगों को कैसे प्राप्त करें, इस पर किसी भी संकेत के लिए अग्रिम धन्यवाद।


2
मुझे लगता है कि आपको केवल एक दो आयामी स्थान पर विचार करना चाहिए, क्योंकि आपका कैमरा संभवतः उन वस्तुओं को अलग करने में सक्षम नहीं होगा जिनमें एक ही रंग है लेकिन विभिन्न अंतरंगताएं हैं। समस्या हालांकि दिलचस्प है।
स्टीफन जिमेनेज़

तीन आयाम तीन रंग विमानों से आते हैं: लाल, हरा और नीला, जहां वे स्वतंत्र रूप से 0-255 से मान ले सकते हैं। RGB स्पेस में, मुझे नहीं लगता कि तीव्रता है। अन्य रंग स्थान हैं जो इसके लिए अधिक उपयुक्त हो सकते हैं क्योंकि वे केवल 2 डी हो सकते हैं, हालांकि मुझे उनके बारे में ज्यादा जानकारी नहीं है।
मैट

यदि आप वस्तुओं पर डाली गई प्रकाश की मात्रा को ठीक से नियंत्रित कर सकते हैं तो ठीक है। RGB स्पेस (100, 100, 100) और (200, 200, 200) में, जिसे मैं अलग-अलग तीव्रता के साथ एक ही रंग (ग्रे) कहते हैं।
स्टीफन जिमेनेज़

@ मैट, स्टीफन को सुझाव है कि आप आरजीबी क्यूब के बजाय एचएसएल या एचएसवी क्यूब का उपयोग करें। रंग मैप किए जाते हैं, कम या ज्यादा, लेकिन फिर आप 2 डी मानचित्र के लिए एस घटक को अनदेखा कर सकते हैं। मैं H पर अकेले चुने गए SV या SL में 1D पैमाने का सुझाव देने के लिए आगे जाऊंगा जो आपके रंगों को एक समान सौंदर्य "टोन" में रखेगा। 1 डी पर समान वितरण एल्गोरिथ्म सरल भी है!
जेसन क्लबन

1
हाँ, अधिकतम जोड़ीदार दूरी। @ uos results HSV वास्तव में RGB से बेहतर परिणाम देने लगा। यहां तक ​​कि सभी तीन एचएसवी विमानों का उपयोग करके मैं प्रत्येक आदर्श रंग से दूरी के आधार पर अलग-अलग रंगों का चयन कर सकता हूं।
मैट

जवाबों:


4

सभी रंग आरजीबी क्यूब की सतह पर होंगे, जब तक मैं गलत नहीं हूं, उसी कारण से कि विद्युत कंडक्टरों की सतह पर सभी विद्युत आवेश दिखाई देते हैं। यह रंगों को निर्धारित करने के लिए निम्न विधि का सुझाव देता है:

  • एक XYZ कार्तीय स्थान के रूप में RGB रंग स्थान की व्याख्या करें;
  • आवेशित कणों, उदाहरण के लिए, इलेक्ट्रॉनों की व्याख्या करें;
  • सिस्टम की निम्न-ऊर्जा स्थिति का पता लगाएं, जैसे सिम्युलेटेड एनीलिंग;

के लिए , एक बेहद सटीक अनुकरण काफी जल्दी होना चाहिए; आप एक रन कुट्टा तकनीक का उपयोग कर सकते हैं, या यहां तक ​​कि छोटे समय के कदम के साथ यूलर की विधि शायद इसे कर सकती है (लागू करने / समझने में बहुत आसान)। मैं ब्याज के संख्यात्मक एकीकरण / चतुष्कोणीय तकनीकों के लिए श्रृंखला "संख्यात्मक व्यंजनों" का सुझाव दे सकता हूं।n~15

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

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

संपादित करें:

जैसा कि टिप्पणियों में कहा गया है, यह धारणा कि इष्टतम समाधान केवल सतह पर झूठ होना चाहिए शायद असतत मामले में सभी ज्यामितीयों के लिए पकड़ नहीं है।

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

यह भी ध्यान दें कि मेरा मानना ​​है कि यह विधि "(हार्मोनिक?) कणों के जोड़े के बीच औसत दूरी" जैसी कुछ अधिकतम होगी। यदि आप कणों के जोड़े के बीच न्यूनतम दूरी, या कुछ अन्य औसत (ज्यामितीय) कणों के जोड़े के बीच अधिकतम करना चाहते हैं, तो यह आपको सबसे अच्छा समाधान नहीं दे सकता है।

किसी भी घटना में, मुझे लगता है कि यह तकनीक आपको रंगों के अच्छे लगभग-इष्टतम सेट के साथ आने का एक आसान तरीका देगी ... वास्तविक "इष्टतम" समाधान प्राप्त करना संभवतः आपके उपयोग-मामले के लिए आवश्यक नहीं है। स्वाभाविक रूप से, यदि एक सटीक और साबित इष्टतम समाधान वांछित है, तो संख्यात्मक सिमुलेशन शायद जाने का सबसे अच्छा तरीका नहीं है।


3
n=9

@SaeedAmiri दिलचस्प अवलोकन ... प्रभारी घनत्व की सामान्य भौतिक चर्चा की तुलना में समस्या बहुत अच्छी तरह से इस समस्या की असतत प्रकृति के साथ हो सकती है। यह ध्यान देने योग्य है, हालांकि, इसका कोई कारण नहीं है कि भौतिक एनीलिंग के साथ संख्यात्मक सिमुलेशन अभी भी आपके द्वारा वर्णित समाधान नहीं मिलेगा; अपनी टिप्पणी और इस अंतर्दृष्टि को परिष्कृत करने के लिए संपादन उत्तर।
पैट्रिक87

मैं देखूंगा कि क्या मैं यह पता लगा सकता हूं कि मतलाब में यह कैसे करना है (सिमुलानेलबैंड के साथ)। मैं जिस कठिनाई की कल्पना करता हूं, वह समस्या को एक गणितीय फ़ंक्शन में अनुवाद करने में होगी जो कि मटलब को कम करने की कोशिश कर सकती है।
मैट

पीएस मेरा प्रारंभिक विचार एक पॉलीहेड्रॉन (आईसीओसहेड्रॉन) के कोने का उपयोग करना था, क्योंकि मैंने भी सोचा था कि समाधान शायद सतह पर होगा, लेकिन तब मुझे यकीन नहीं था कि यह सच होगा।
मैट

माटलाब में मैंने एक फ़ंक्शन लिखा, जिसमें (x, y, z) बिंदुओं का एक सेट दिया गया, यह सेट में प्रत्येक जोड़ी के बीच जोड़ीदार यूक्लिडियन दूरी के योग की गणना करता है। फिर मैं परिणाम से एक को विभाजित करता हूं और matlab को इस फ़ंक्शन का न्यूनतम पता लगाना चाहिए। उदाहरण के लिए, matlab यह सही नहीं है, 4 डी बिंदुओं के लिए यह निम्नलिखित X1, x2, x3, x4; y1, y2 .... अंक (0-1 रेंज): 0.0001, 0.0031, 0.9993, 0.9920 लौटाता है ; 0.9970 0.0004 0.9919 0.0030; 0.0030 0.0003 0.9973 0.5756। फिर भी, मुझे लगता है कि यह एक matlab मुद्दा है इसलिए मैं इसे स्वीकार करूंगा।
मैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.