मैं अजीब आकार के ब्लॉक रखने के लिए एल्गोरिदम सुधारने में सहायता की तलाश में हूं। मेरी समस्या डोमेन अजीब है, लेकिन मेरे ब्लॉक के लिए सबसे अच्छा सादृश्य Tetris टुकड़े है, सिवाय इसके कि वे चार से अधिक टुकड़े हो सकते हैं। ब्लॉक अभी भी केवल सही कोणों से बने हैं, लेकिन वे लंबे और घुमावदार हो सकते हैं, वे शाखा बना सकते हैं, आदिब्लॉक लेआउट एल्गोरिदम
मैं न्यूनतम स्थान पर कई बड़े मनमाने ढंग से आकार वाले ब्लॉक की व्यवस्था करने की कोशिश कर रहा हूं (मुझे पता है, एक बिन-पैकिंग समस्या) लेकिन मेरा वर्तमान समाधान बदसूरत लग रहा है। मैं मूल रूप से एक को रख रहा हूं, फिर अपने ग्रिड की उत्पत्ति पर उन्हें रखने की कोशिश करके बाकी को मजबूर कर रहा हूं और फिर धीरे-धीरे उन्हें अलग-अलग दिशाओं में धक्का दे रहा है जब तक वे अब टकरा नहीं जाते। यह धीमा नहीं है, लेकिन यह अच्छी तरह से टुकड़ों को फिट करने का कोई प्रयास नहीं करता है, इसलिए वे समग्र स्थान बर्बाद नहीं करते हैं।
एकमात्र चीज जिसे मैं कोशिश करने के बारे में सोच सकता हूं, आकार के आधार पर ब्लॉक को ऑर्डर कर रहा है, सबसे पहले सबसे पहले रखता है, फिर अंत में सबसे छोटे को किसी भी छेद में फिट कर रहा है। लेकिन निश्चित रूप से ऐसे तरीके हैं जो पीछे हट सकते हैं।
क्या कोई हेरिस्टिक्स या अनुमानित एल्गोरिदम हैं जो मेरी मदद कर सकते हैं?
इसके अलावा, शायद मेरी gravatar दूर देता है कि इस मेगा मैन संबंधित है ...
कृपया छवि – Navin
जोड़ें अपनी छवि का मतलब यह है कि आप ब्लॉक के बीच की जगह चाहते हैं। क्या यह सच है? –
@ एंड्रयू हां मैं करूंगा, लेकिन मुझे लगता है कि यह एल्गोरिदम को प्रभावित नहीं करेगा। मैं सिर्फ नाटक कर सकता था कि ब्लॉक सभी तरफ 1 इकाई से मोटा हो। – Tesserex