ছোট পয়েন্টের 3D উত্তল হলের ভলিউম সমস্ত হলের উপর সেট করে


11

আমার কাছে একটি প্রশ্ন রয়েছে যা থ্রিডি বাদে আগে জিজ্ঞাসা করা প্রশ্নটির অনুরূপ এবং আমার কেবল খণ্ডের আসল আকার নয়, ভলিউমের প্রয়োজন।

আরও স্পষ্টতই, আমাকে 3 ডি-তে একটি ছোট পয়েন্ট (বলুন, 10-15) দেওয়া হয়েছে, এগুলি সমস্তই বিন্দু সেটটির উত্তল হলের উপর থাকা বলে পরিচিত (যাতে তারা সকলেই "পদার্থ" এবং হলের সংজ্ঞা দেয়)। আমি কেবল হলের আয়তন গণনা করতে চাই, আমি প্রকৃত পলিহেড্রোন গণনা করার বিষয়ে চিন্তা করি না। এটি করার জন্য কোনও দক্ষ অ্যালগরিদম আছে কি?


আপনি জানেন যে পয়েন্টগুলি পলিহাইড্রনের শীর্ষে অবস্থিত। আপনি কি মুখগুলি (হুলের উপর বহুভুজ) জানেন? যদি তাই হয় তবে আপনি সহজেই ভলিউমটি গণনা করতে পারেন ("শঙ্কু" ভলিউমের যোগফল হিসাবে)।
কষ্টকর

1
একটি অলস উপায়টি প্রথমে ত্রিভুজিত হবে, তারপরে তেত্রহেদ্রের খণ্ডগুলি যুক্ত করা (গণনা করা খুব সহজ)।
শুহাও কাও

@ হার্মথ: না, আমি জানি যে আমি যদি মুখের আকারগুলি জানতাম তবে এটি সহজ হত।
ভিক্টর লিউ

@ শুহাও কাও: এই বিশেষ মামলার জন্য কি কোনও সাধারণ ত্রিভঙ্গীকরণ অ্যালগরিদম আছে? সাধারণত 3 ডি টেটারহেড্রালাইজেশন অ্যালগরিদমগুলি বেশ জটিল এবং আমি আশা করি এই সমস্যাটি কয়েক হাজার বা কয়েক মিলিয়ন বার সমাধান করা দরকার।
ভিক্টর লিউ

উত্তর:


5

আপনি যদি শুহাও কওয়ের পরামর্শটি হারাতে পারেন তবে আমি অবাক হব: একবার হলের একটি ত্রিভুজ তৈরি হয়ে গেলে হুলটি এবং তারপরে খণ্ডটি গণনা করুন। আপনি ইনক্রিমেন্টাল অ্যালগরিদম, বা উপহার-মোড়ানো আলগোরিদিম দিয়ে হলের গণনা করতে পারেন । যদি আপনি সত্যিই সহজ কোড চান, আপনি ঝুলিতে রয়েছেন কিনা তা দেখতে কেবল সমস্ত সম্ভাব্য ত্রিভুজগুলির উপরে একটি লুপ লিখতে পারেন। জন্য , এই এখনও বেশ দ্রুত, এবং আপনি খুব সহজেই শর্টকাট বাস্তবায়ন করতে পারে। আপনার সমস্ত ত্রিভুজ মুখগুলি পরে, তারপরে একটি ত্রিভুজ বেছে নিন এবং প্রতিটি ত্রিভুজ এবং দিয়ে একটি টেট্রহেড্রন তৈরি করুন । ভার্টেক্সের স্থানাঙ্কগুলিতে এর ভলিউম নির্ধারক।O(n2)n4n=15vTv4×4


2

ভার্সেক্স সংখ্যার জন্য ম্যাটল্যাবে একটি ছোট পরীক্ষা , প্রতিটি উপাদান একটি অভিন্ন র্যান্ডম সংখ্যা :N=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×4N=105

time_elapse =
              3.244278
Vol =
     0.998068316875714

তেত্রহেদ্র সংখ্যা সহ । ক্লাস্টারযুক্ত অনেকগুলি পয়েন্ট রয়েছে বলে মোট ভলিউমটি টিতে বন্ধ হয়ে গেছে দেখুন ।7×1051[0,1]3


বিটিডাব্লু পরীক্ষাটি আমার পুরানো 2007 কোর 2 টি 61 পি-তে করা হয়।
শুহাও কাও

2

কোমে ফুকুডার পলিহেড্রাল গণনা এফএকিউ :

২.২৩ in কোন উত্তল পলিটোপটির ভলিউম গণনা করার জন্য কোনও কার্যকর অ্যালগরিদম আছে কি ?Rd

এটি পরিচিত যে ভি-পলিটোপ (বা এইচ-পলিটোপ) এর ভলিউম গণনা করা হচ্ছে # পি-হার্ড, [ডিএফ ৮৮] এবং [খ ৯৩] দেখুন। উত্তল দেহের [LS93] আয়তনের আনুমানিক পরিমাণে তাত্ত্বিকভাবে দক্ষ র্যান্ডমাইজড অ্যালগরিদম রয়েছে তবে কোনও প্রয়োগ পাওয়া যায় বলে মনে হয় না। উত্তল পলিটোপগুলির জন্য বিভিন্ন ভলিউম গণনা অ্যালগরিদমের একটি তুলনামূলক অধ্যয়ন [BEF00] রয়েছে। এটি ইঙ্গিত দেয় যে কোনও একক অ্যালগরিদম নেই যা বিভিন্ন ধরণের পলিটোপগুলির জন্য ভাল কাজ করে।

[DF88] এমই ডায়ার এবং এএম ফ্রিজ । পলিহেড্রনের ভলিউম গণনা করার জটিলতা। সিয়াম জে। কম্পিউটার। , 17: 967-974, 1988।

[Kha93] এলজি খাচিয়ান। পলিটোপ ভলিউম গণনার জটিলতা। জে.পাচ-এ সম্পাদক, ডিস্ক্রিট অ্যান্ড কম্পিউটেশনাল জ্যামিতির নতুন ট্রেন্ডস , পৃষ্ঠাগুলি 91-101। স্প্রিঞ্জার ভার্লাগ, বার্লিন, 1993।

[এলএস ৯৩] এল লোভাস এবং এম সাইমনোভিটস। এলোমেলোভাবে উত্তল বডি এবং একটি উন্নত ভলিউম অ্যালগরিদমে চলে। এলোমেলো স্ট্রাকচার এবং অ্যালগরিদম , 4: 359-412, 1993।

[BEF00] বি। বুয়েলার, এ। এঞ্জ এবং কে। ফুকুদা। উত্তল পলিটোপগুলির জন্য সঠিক ভলিউম গণনা: একটি ব্যবহারিক গবেষণা। জি কালাই এবং জিএম জিগেলারে, সম্পাদক, পলিটোপেস - সংযুক্তি এবং গণনা , ডিএমভি-সেমিনার 29, পৃষ্ঠা 131-154। বিরখাউজার, 2000।

ডায়ার এবং ফ্রিজ পেপারের শিরোনাম থাকা সত্ত্বেও উচ্চতর মাত্রার অসুবিধার মধ্যে 3 ডি সমস্যার সুনির্দিষ্ট বিষয়গুলি এটি সমাহিত করে বলে মনে হতে পারে। তাদের বিমূর্তি থেকে: "আমরা দেখাই যে কোনও পলিহিডনের ভলিউম গণনা করা হয় উভয় দিকের তালিকা হিসাবে বা উল্লম্বের তালিকা হিসাবে ম্যাট্রিক্সের স্থায়ী গণনা করার মতোই কঠিন is"

পলিটোপ ভলিউম কম্পিউটেশন , জিম লরেন্সের 1991 সালের একটি কাগজ অনলাইনে পড়তে পারে এবং বিশেষত 3 ডি ক্ষেত্রে তার কিছু উল্লেখ রয়েছে। তিনি লিখেছেন, "বর্তমান গবেষণাপত্রে পদ্ধতিটি বা এর সীমানার ত্রিভঙ্গীকরণ এড়িয়ে চলে ।" এছাড়াও অ্যালগরিদম যে কাগজ বর্ণনা অনুযায়ী আপনার পরিস্থিতির জন্য উপযুক্ত মনে হয় এটি "প্রকাশ ভলিউম সংখ্যার একটি সমষ্টি হিসাবে , প্রতিটি প্রান্তবিন্দু জন্য এক এর । এই সংখ্যা, কম্পিউট করা সহজ হয় তাই কার্যপ্রণালী অসুবিধা প্রধানত এর অনুভূমিকগুলি গণনা করা হচ্ছে " লিনিয়ার বৈষম্যগুলির একটি সিস্টেমের সমাধান হিসাবে জন্য একটি অভিব্যক্তি খুঁজে পেতে অসুবিধা সম্ভবত আপনার পরিস্থিতিতে অনুবাদ করেPPNvvPPPP={xR3:Axb}

যদি আপনি ইতিমধ্যে জন্য এই জাতীয় "অর্ধ-স্পেসের ছেদ" অভিব্যক্তিটি জানেন তবে সম্ভবত এটি মোটামুটি দ্রুত গণনার অনুমতি দেবে।P

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.