এলোমেলো 2D লাইনের মধ্যে স্থান পূরণ করা


23

এলোমেলোভাবে রেখায় ভরা একটি অঞ্চল (2 ডি) বিবেচনা করুন (চিত্রের নিম্নলিখিত)। আমরা একরকম চারটি সীমানা প্রান্ত সহ লাইনের মধ্যে ফাঁকা স্থান পূরণ করতে আগ্রহী:

0- পার্সেলের আকার সর্বাধিক করা;
1- ভরাট পার্সেলগুলির আকারটি বর্গক্ষেত্রটি অনুভূমিকভাবে বা উল্লম্বভাবে সংযুক্ত;
2- ভরাট পার্সেলগুলির আকারটি বর্গক্ষেত্র , স্বাচ্ছন্দ্যযুক্ত প্রান্তিককরণ ;
3- ভর্তি পার্সেলগুলির আকার কোনও চতুর্ভুজ। আমাদের মূল প্রশ্ন

সুতরাং আপাতত তিনটি ভিন্ন দৃশ্য আছে।
লক্ষ করুন যে লাইনগুলি ফর্ম [x1,y1,x2,y2]পয়েন্ট সেট, আসল সংখ্যাগুলির।

[* * *] সম্ভাব্য সমাধান / অ্যালগরিদম / কোড স্নিপেটস ইত্যাদির আইডিয়াগুলি স্বাগত অপেক্ষা বেশি।

এখানে চিত্র বর্ণনা লিখুন


আপডেট 1: আমরা প্রথম কেসের জন্য একটি সমাধান পরিচালনা করতে পারি:
এখানে চিত্র বর্ণনা লিখুন
পদক্ষেপগুলি হ'ল :
1- লাইন
2- বিটম্যাপে লাইনগুলিকে রাস্টারাইজ করা
3- সর্বাধিক উদ্দেশ্যমূলক ফাংশন সহ কাঙ্ক্ষিত বর্ণের প্রতিটি কক্ষের (যেমন, একই রঙ) জন্য কাছাকাছি ঘরগুলি অনুসন্ধান করা অঞ্চল অর্থাত্ কোষের সংখ্যা

এটি ভালভাবে কাজ করে তবে এটি কেবল প্রথম দৃশ্যের অন্তর্ভুক্ত এবং এটিও ধীর।


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


আপডেট 3:
সংক্ষিপ্তসার:
একটি অ্যাপ্লিকেশন হ'ল ভারি ভাঙা 'খনি' তে নিষ্কাশনযোগ্য অক্ষত 'রক' ব্লকগুলির বিতরণ সন্ধান করা। এটি ড্রিলিং ডিজাইন, আর্থিক মূল্যায়ন ইত্যাদি
বিবরণ সহ অনেক দিকের জন্য খুব সহায়ক হতে পারে :
আলংকারিক শৈলের একটি খনি (পাথর) জন্য যে পণ্যগুলি আয়তক্ষেত্রাকার ঘনক্ষেত্র হিসাবে কাটা অক্ষত শৈলগুলির ব্লকগুলি দামের আকারের সাথে ঘনিষ্ঠভাবে নির্ভরশীল ব্লক। একটি উপযুক্ত অঞ্চল থেকে কোনও ব্লক উত্তোলন অর্থাত্‍, বড় অংশগুলির ফ্র্যাকচার না থাকলে পছন্দসই হবে যদি অবশিষ্ট অংশগুলির পরিমাণ যতটা সম্ভব কম হয়। সাধারণত, পাথরের ছোট ছোট টুকরাগুলির তুলনামূলকভাবে কোনও অর্থনৈতিক মূল্য থাকে না এবং এটি বর্জ্য হিসাবে বিবেচিত হয়।
এই পোস্টের প্রশ্নটি এই ধরণের সমস্যার সমাধান অনুসন্ধান করে।

সমস্যার গাণিতিক দৃষ্টিভঙ্গিটি নিম্নরূপ বলা যেতে পারে:
2 ডি: প্রদত্ত 2D অঞ্চল থেকে আরও বড় আয়তক্ষেত্র আকারের জন্য অনুকূলিত করে কিছু লাইন দিয়ে যে সমস্ত আয়তক্ষেত্র বের করা যেতে পারে তা সন্ধান করুন।
থ্রিডি: প্রদত্ত 3D অঞ্চল থেকে কিছু সাব-প্লেন (আরও ভাল: বহুভুজ) যতটা সম্ভব বৃহত্তর ব্লকের আকারের জন্য অনুকূলিতকরণের সাথে নেওয়া যেতে পারে এমন সমস্ত আয়তক্ষেত্রাকার কিউবগুলি সন্ধান করুন।


যেহেতু এটি একটি চলমান গবেষণার অংশ, তাই নীচের মন্তব্যে জিজ্ঞাসা করা কিছু প্রশ্নের উত্তরগুলির নির্দিষ্ট উত্তর নেই যা আমরা সরবরাহ করতে পারি। আমরা বিশ্বাস করি যে এতক্ষণে এখানে সরবরাহিত তথ্য সমস্যার সামগ্রিক চিত্র পাওয়ার জন্য যথেষ্ট। তবুও, সম্প্রদায়ের সুবিধার জন্য আমরা কিছু বিশদ সরবরাহ করতে পারি।
চূড়ান্ত প্রশ্নের সমাধানে আপনি কিছু বিধিনিষেধ আরোপ করতে পারেন, যদিও, আমরা বিশ্বাস করি এটি আরও পরে যুক্ত করা সর্বদা সম্ভব। উদাহরণস্বরূপ, এগুলি অনুসরণ করুন: {2 ডি কেস}
উপরে বর্ণিত শর্তের অধীনে নিষ্কলনের জন্য একটি ব্লকের (অর্থনৈতিকভাবে সর্বোত্তম আয়তক্ষেত্রের) সেরা আকারের উদাহরণটি এই অঞ্চলের জন্য 1x1 mদেওয়া 10x10 mহয়েছে। এটি অর্থনৈতিক মানের উপর ভিত্তি করে সংজ্ঞায়িত একটি প্রতিবন্ধকতা। কাটা ইত্যাদির জন্য সর্বনিম্ন কার্যক্ষম আকার let0.15x0.15 m; সুতরাং এটি দ্বিতীয় আকারের সীমা।
এখানে চিত্র বর্ণনা লিখুন
উপরের চিত্রটি ব্লকের আকারের উপর নির্ভর করে অর্থনৈতিক মান ফাংশনটি দেখায়। সুতরাং এই বিশেষ ক্ষেত্রে প্রতিটি শিলা টুকরা ছোট 0.15x0.15 mঅপচয় থেকে। 1.7x1.7 mঅপারেশন সীমাবদ্ধতার কারণে কোনও ব্লকের আকার আর বড় হবে না ।


3
@ আরকে - আমি একমত নই এস / সে ইতিমধ্যে জানিয়েছে যে তারা কী স্পষ্টভাবে সন্ধান করছে। অবশ্যই একাধিক সম্ভাব্য সমাধান রয়েছে তবে সেগুলি কার্যকর এবং ভোট দেওয়া বন্ধ করার মতো কিছুই নেই।
জিআইএস-জনাথন

1
যেহেতু এটি একটি অ্যালগরিদমী প্রশ্ন যা বেশ গণিতের ভারী হতে পারে, আপনি চেষ্টা করতে পারেন - math.stackexchange.com
জিআইএস-জনাথন

1
ঘনিষ্ঠভাবে সম্পর্কিত: gis.stackexchange.com/questions/27303 । @ আরকে নোট হিসাবে বর্তমান প্রশ্নের কোনও নির্দিষ্ট উত্তর নেই কারণ এটি যথেষ্টভাবে উত্থাপিত নয়। কত আয়তক্ষেত্র অনুমোদিত? "আকার বাড়িয়ে তোলা" এর অর্থ কী? নোট, এছাড়াও, যে এটি একটি "এলোমেলো টাইলিং" সমস্যা নয়: লাইনগুলি কেবলমাত্র তাদের পরিপূরকগুলির মাধ্যমে, যে অঞ্চলগুলি দখল করা যেতে পারে তা নির্ধারণ করে; সমাধানগুলি অবশ্যই এলোমেলো হবে না । দ্রষ্টব্য, এছাড়াও, একটি সহজ সরলকরণ অবিলম্বে উপলব্ধ: সমস্যাটি পরিপূরক প্রতিটি উপাদান মধ্যে পৃথকভাবে সমাধান করা যেতে পারে।
whuber

1
@ হুইবার: ওয়েল, একটি অ্যাপ্লিকেশন যার প্রতি আমরা আগ্রহী তা হ'ল ভারি ভাঙা 'মাইন'এ নিষ্কাশনযোগ্য অক্ষত' রক 'ব্লকগুলির বিতরণ সন্ধান করা। ঠিক আছে, জিআইএস এই সমস্যার জন্য আশাব্যঞ্জক বলে মনে হচ্ছে, আমরা মনে করি। আমরা এটিও প্রশ্নের সাথে যুক্ত করেছি। আমাদের ধারণা, জিআইএস সম্প্রদায় তাদের সম্পর্কিত অন্যান্য বিশেষ সমস্যার জন্য ধারণাটি থেকে উপকৃত হতে পারে। যাইহোক, আপনি যদি এটি স্থানান্তর করেন তবে এটি আপনার উপর নির্ভর করে;)
বিকাশকারী

4
@ শুভর পরামর্শ অনুসারে, এটি আসলে একটি জিআইএস প্রশ্ন নয় (যদিও আমি এখানে জিজ্ঞাসা করি না যে আমি বিরক্ত হই না) গণ্য জ্যামিতি বা অপ্টিমাইজেশনের জন্য একটি ফোরামে উত্তর পাওয়ার জন্য আপনার ভাগ্য ভাল হবে।
Llaves

উত্তর:


2

আপনি কীভাবে পুনরায় এফএমই (নিরাপদ সফ্টওয়্যার দ্বারা) ব্যবহার করে বড় ব্লকগুলি থেকে নীচে ছোট ব্লকগুলিতে কাজ করেন তা আমার একটি ধারণা আছে যা রেকর্ডের জন্য আমি তাদের পক্ষে কাজ করি না তবে মনে হয় যথেষ্ট তাদের সরঞ্জামের প্রশংসা করছি ...

  1. আগ্রহের ক্ষেত্রটিতে "বাউন্ডিংবক্সআরেপ্লেসার" ব্যবহার করুন।
  2. এটি স্থানীয় স্থানাঙ্ক ব্যবস্থায় পুনঃপ্রক্রিয়া করুন (পরে যখন আপনার পা / মিটারে "টাইল" লাগবে)
  3. "বাফার" ট্রান্সফর্মার দিয়ে লাইনগুলি বাফার করুন। আপনার কেবল একটি নির্বিচার আকার প্রয়োজন, বলুন .01 ফুট / মিটার। আমরা এখানে যা খুঁজছি তা হ'ল পরের ধাপের জন্য একটি বহুভুজ।
  4. একটি "টাইলার" ট্রান্সফর্মার যুক্ত করুন। ফুট বা মিটারে একটি বড় (আনুমানিক বা অন্যথায়) টাইল আকার নির্দিষ্ট করুন। আমরা এখানে যা করছি তা আগ্রহের ক্ষেত্রটি স্কয়ার ব্লকে টাইলিং করছে। ডেটাসেটের উপর নির্ভর করে সত্যিই বড় আউটলিয়ারগুলি পেতে বড় শুরু করুন।
  5. একটি "ক্লিপার" ট্রান্সফর্মার যুক্ত করুন। আমরা এখানে যা করছি তা মূলত ডেটাসেটটি টুকরো টুকরো করে দেখার জন্য কোন টাইলগুলি ভাল / খারাপ। আউটপুটে, "অভ্যন্তরীণ" টাইলগুলি খুব বড়। তবে, "বাইরের" টাইলগুলি যথেষ্ট বড় এবং কাটার জন্য প্রস্তুত ...
  6. এখানে এটি জটিল হয়ে উঠেছে তবে শক্ত নয় ... আমরা ট্রান্সফর্মারটি লুপ করতে যাচ্ছি যাতে আমরা আসল বাউন্ডিংবক্সকে পুনরায় ব্যবহার করতে পারি, তবে এমন অঞ্চলগুলি ক্লিপ আউট যা কাটানোর জন্য ইতিমধ্যে প্রস্তুত। সুতরাং, একটি ক্লিপার যুক্ত করুন এবং ক্লিপারটিকে পূর্বের ক্লিপার আউটপুটে "আউটপুট" টাইল হিসাবে রুট করুন। এখন আমাদের কাছে একটি একক বহুভুজ রয়েছে যা আবার কাজ করার জন্য প্রস্তুত।
  7. আবার টাইলারটি ব্যবহার করুন, এবার একটি ছোট টাইল নির্দিষ্ট করুন। উদাহরণস্বরূপ আপনি যদি আগে 100 মিটার টাইল ব্যবহার করেন তবে 90 মিটার চেষ্টা করুন।
  8. ইনপুট ক্লিপারটি বাফার লাইনগুলির সাথে এবং ইনপুট ক্লিপিটি ইনপুট হিসাবে আরও ছোট টাইলস হিসাবে যুক্ত করুন।

প্রতিটি বার ছোট টাইল ব্যবহার করে প্রয়োজনীয় হিসাবে যতবার বার ধুয়ে ফেলুন এবং পুনরাবৃত্তি করুন। আমি একটি পদ্ধতির হিসাবে ব্যবহার করব এমন একটি ওয়ার্কব্যাঞ্চের শুরুটি সংযুক্ত করেছি।

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

যাইহোক, এটি কেবলমাত্র একটি পন্থা যা আমি কমপক্ষে চাফ থেকে গম ফিল্টার করে শুরু করব।

এফএমই টাইল উদাহরণ

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