छोटे बिंदु के 3 डी उत्तल पतवार की मात्रा सभी पतवार पर सेट होती है


11

मेरे पास एक प्रश्न है जो 3 डी को छोड़कर पहले पूछे गए इस के समान है , और मुझे केवल वॉल्यूम की आवश्यकता है, न कि पतवार के वास्तविक आकार की।

अधिक सटीक रूप से, मुझे 3 डी में अंक (कहते हैं, 10-15) का एक छोटा सा सेट दिया गया है, जो सभी बिंदु सेट के उत्तल पतवार पर झूठ बोलने के लिए जाने जाते हैं (इसलिए वे सभी "मामला" और पतवार को परिभाषित करते हैं)। मैं केवल पतवार की मात्रा की गणना करना चाहता हूं, मैं वास्तविक पॉलीहेड्रॉन की गणना के बारे में परवाह नहीं करता हूं। क्या ऐसा करने के लिए एक कुशल एल्गोरिदम है?


आप जानते हैं कि अंक पॉलीहेड्रॉन के कोने हैं। क्या आप चेहरे (पतवार पर बहुभुज) को जानते हैं? यदि ऐसा है तो आप आसानी से वॉल्यूम की गणना कर सकते हैं ("शंकु" वॉल्यूम के योग के रूप में)।
हार्डमैथ

1
एक आलसी तरीका पहले त्रिकोणीय होगा, फिर टेट्राहेड्रा के संस्करणों को जोड़ना (गणना करना बहुत आसान)।
शुआओ काओ जूल

@hardmath: नहीं। मुझे पता है कि अगर मुझे पता था कि यह आकार आसान होगा।
विक्टर लियू

@ शुआओ काओ: क्या इस विशेष मामले के लिए एक सरल त्रिभुज एल्गोरिथ्म है? आम तौर पर 3 डी टेट्राहेडलाइज़ेशन एल्गोरिदम काफी जटिल होते हैं, और मुझे इस समस्या को हजारों या लाखों बार हल करने की आवश्यकता होती है।
विक्टर लियू

जवाबों:


5

मुझे आश्चर्य होगा अगर आप शुआओ काओ के सुझाव को हरा सकते हैं: एक बार पतवार की त्रिकोणीयता होने पर पतवार और फिर मात्रा की गणना करें। आप वृद्धिशील एल्गोरिथ्म, या उपहार-रैपिंग एल्गोरिथ्म के साथ पतवार की गणना कर सकते हैं । यदि आप वास्तव में आसान कोड चाहते हैं, तो आप बस सभी संभव त्रिकोणों पर एक n 4 लूप लिख सकते हैं यह देखने के लिए कि क्या वे पतवार पर हैं। के लिए n = 15 , यह अभी भी बहुत तेजी से है, और आप आसानी शॉर्टकट लागू कर सकते हैं। एक बार जब आपके पास सभी त्रिभुज चेहरे हों, तो एक वर्टेक्स v चुनें और प्रत्येक त्रिभुज T और v के साथ एक टेट्राहेड्रॉन बनाएं । इसकी मात्रा 4 × हैहे(n2)n4n=15vटीvशीर्ष में 4 निर्धारक निर्देशांक होते हैं।4×4


2

MATLAB में एक छोटी परीक्षा, शीर्ष की संख्या के लिए , प्रत्येक घटक एक समान यादृच्छिक संख्या है [ 0 , 1 ] में :एन=100[0,1]

N = 100;
p=rand(N,3);
tic;
T = delaunayTri(p(:,1),p(:,2),p(:,3));
t = T.Triangulation;
e1 = p(t(:,2),:)-p(t(:,1),:);
e2 = p(t(:,3),:)-p(t(:,1),:);
e3 = p(t(:,4),:)-p(t(:,1),:);
V = abs(dot(cross(e1,e2,2),e3,2))/6;
Vol = sum(V);
time_elapse = toc;

परिणाम:

time_elapse =
              0.014807
Vol =
      0.67880219135839

मैं कहूंगा कि यह काफी तेज है, अगर आप इसे बार चलाना चाहते हैं, तो इसमें केवल 3 घंटे से भी कम समय लगता है। यह इस प्रकार है:106

convhull

4×4एन=105

time_elapse =
              3.244278
Vol =
     0.998068316875714

7×1051[0,1]3


BTW परीक्षण मेरे पुराने 2007 कोर 2 T61p पर किया जाता है।
शुआओ काओ जूल

2

Komei फुकुदा के से बहुफलकीय संगणना पूछे जाने वाले प्रश्न :

आर

यह ज्ञात है कि V-polytope (या H-polytope) की मात्रा की गणना करना # P-hard है, [DF88] और [Kha93] देखें। उत्तल निकाय [LS93] की मात्रा को अनुमानित करने के लिए सैद्धांतिक रूप से कुशल यादृच्छिक एल्गोरिदम हैं, लेकिन कोई कार्यान्वयन उपलब्ध नहीं लगता है। उत्तल पोलीटोप्स के लिए विभिन्न मात्रा संगणना एल्गोरिदम का एक तुलनात्मक अध्ययन [BEF00] है। यह इंगित करता है कि कोई एकल एल्गोरिथ्म नहीं है जो कई अलग-अलग प्रकार के पॉलीटोप्स के लिए अच्छी तरह से काम करता है।

[DF88] ME डायर और AM फ्रेज़ । एक पॉलीहेड्रॉन की मात्रा की गणना करने की जटिलता। स्याम जे। Comput। , 17: 967-974, 1988।

[खाहा] एलजी खाचियान। पॉलीटॉप मात्रा गणना की जटिलता। जे। पाच में, संपादक, असतत और कम्प्यूटेशनल ज्यामिति में नए रुझान , पृष्ठ 91-101। स्प्रिंगर वर्लाग, बर्लिन, 1993।

[LS93] एल। लोवाज़ और एम। साइमनोवित्स। उत्तल शरीर और एक बेहतर वॉल्यूम एल्गोरिदम में यादृच्छिक चलता है। यादृच्छिक संरचनाएं और एल्गोरिदम , 4: 359-412, 1993।

[BEF00] बी। बुएलर, ए। एंगे, और के। फुकुदा। उत्तल बहुभुज के लिए सटीक आयतन संगणना: एक व्यावहारिक अध्ययन। जी। कलाई और जीएम ज़िगलर में, संपादकों, पॉलिटोप्स - संयोजन और संगणना , डीएमवी-सेमिनार 29, पृष्ठ 131-154। बिर्कहॉसर, 2000।

यह डायर और फ्रेज़ पेपर के शीर्षक के बावजूद उच्च आयामों की कठिनाइयों के बीच 3 डी समस्या की बारीकियों को दफनाने के लिए लग सकता है। उनके सार से: "हम दिखाते हैं कि एक पॉलीहेड्रन की मात्रा की गणना या तो पहलुओं की सूची के रूप में की जाती है या एक कोने की सूची के रूप में एक मैट्रिक्स के स्थायी गणना के रूप में कठिन है।"

पीपीएनvvपीपीपीपी={एक्सआर3:एक्स}

पी

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