অক্ষ সারিবদ্ধ স্থান বিভাগ: স্থানটি এলোমেলো আয়তক্ষেত্রগুলিতে ভাগ করুন?


11

এলোমেলো অক্ষরেখার বাক্স আকারগুলিতে 3 ডি স্পেস বিভক্ত করার জন্য আমার একটি পদ্ধতি প্রয়োজন। আপাতত আমি পরীক্ষার উদ্দেশ্যে 2 ডি স্পেস ভাগ করছি। যে তাত্ক্ষণিক পদ্ধতির সাথে আমি সামনে এসেছি তা হ'ল আকারের একটি আয়তক্ষেত্র (1, 1) সংজ্ঞায়িত করা এবং তারপরে পুনরাবৃত্তভাবে অক্ষ এবং এক্স এবং ওয়াইয়ের মধ্যবর্তী দুটি অসম আয়তক্ষেত্রগুলিকে পুনরায় বিভাজকভাবে বিভক্ত করে ly

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

এখানে সমস্যাটি সুস্পষ্ট। এই পদ্ধতির ফলস্বরূপ দীর্ঘ প্রসারিত রেখাগুলি (লাল রঙে চিহ্নিত)

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

আমি যা চাই তা আরও কিছু জৈব চেহারা (আমি একটি উদাহরণ অন্তর্ভুক্ত করেছি)

দেখুন, উপরে থেকে নীচে বা বাম থেকে ডানদিকে কোনও দীর্ঘ সরল রেখা নেই।

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

একমাত্র সীমাবদ্ধতা হ'ল আমি আকারগুলির গ্রানুলারিটি প্রভাবিত না করে আয়তক্ষেত্রের সর্বনিম্ন আকার সীমাবদ্ধ করতে চাই। অর্থাত্ যদি ক্ষুদ্রতম আয়ত সেকেন্ডের চেয়ে 1 বর্গ সেন্টিমিটার হয় ছোট কক্ষটি 2 ​​বর্গ একক না হওয়া উচিত।

সুতরাং আদর্শভাবে অ্যালগরিদমের নিম্নলিখিত তিনটি সীমাবদ্ধতা পূরণ করা উচিত:

  1. আয়তক্ষেত্রগুলি খুব কম নয়।
  2. রেক্ট আকারগুলি ক্ষুদ্রতম আয়ত আকারের বিচ্ছিন্ন গুণ নয় are অর্থাত্ যদি ক্ষুদ্রতম আয়তাকারটি 3 টি বর্গ ইউনিট বৃহত্তর রিক্সগুলির চেয়ে 6, 9, 12 এবং এর আগে বর্গ ইউনিট হিসাবে সীমাবদ্ধ না হয় এবং পরিবর্তে সেই বিষয়ে 3.2 বা 4.7 হতে পারে)।
  3. অ্যালগরিদম বহুত্বের সময়ে চলে (দ্রুত গণনা করা প্রয়োজন)।

উত্তর:


12

আপনার রূপরেখাটি যে রূপরেখাটি সরল হয়েছে তা সহজ এবং দরকারী তবে প্রদর্শিত হিসাবে ভয়াবহ শৈল্পিকতায় ভোগেন। এটা এড়ানোর. আপনার একটি সমান্তরাল বৃদ্ধি অ্যালগরিদম প্রয়োজন; একক থ্রেডযুক্ত মডেলের জন্য একটি রাউন্ড-রবিনের পদ্ধতি অনুসরণ করে:

  1. এলোমেলোভাবে আপনার মানচিত্রের জায়গাতে বিভিন্ন পয়েন্ট রাখুন। ভোরোনাই ডায়াগ্রামের জন্য লয়েড রিল্যাক্সেশন অনুযায়ী গাউসীয় বিতরণ ব্যবহার করে বা এলোমেলোভাবে স্থাপন করা পয়েন্টগুলি একে অপরের থেকে দূরে সরানোর জন্য পুনরাবৃত্তিমূলক শিথিলকরণ অ্যালগরিদম প্রয়োগ করে তাদের বিতরণকে (কুশ্রী ক্লাস্টারিং এড়ানো) সাধারণকরণ করুন । এই পয়েন্টগুলি আপনার ঘরে ঘরে থাকার কেন্দ্রবিন্দুগুলি উপস্থাপন করে।
  2. (সমস্ত কক্ষের জন্য সমান্তরাল / পুনরাবৃত্তি রাউন্ড-রবিন) প্রতিটি বিন্দু থেকে গ্লোবাল পুনরাবৃত্তির জন্য কেন্দ্র বিন্দু থেকে সরেজমিনে 4 টি উল্লম্ব (একটি আয়তক্ষেত্রাকার কক্ষ) বৃদ্ধি করুন (আপনি প্রতিটি অক্ষের পরিবর্তে একই অক্ষরের চেয়ে আলাদা কক্ষে বিভিন্ন কক্ষ বৃদ্ধি করতে পারেন) সমস্ত, এবং দেখুন এটি কীভাবে সক্রিয় হয় - সম্ভবত আরও জৈব / বৈকল্পিক ফলাফলের জন্য)। কিছু সময়ে, আপনার কিছু আয়তক্ষেত্র একে অপরের বিরুদ্ধে চাপতে শুরু করবে। এই মুহুর্তে, অক্ষটিতে বৃদ্ধি সীমাবদ্ধ করুন, দুটি কক্ষের সংলগ্ন প্রান্তগুলি হুবহু স্পর্শ করছে এবং নিশ্চিত হন on
  3. সংলগ্ন কক্ষগুলি বা মানচিত্রের সীমানা দ্বারা সমস্ত বৃদ্ধি সীমাবদ্ধ না হওয়া পর্যন্ত প্রতিটি কক্ষ ক্রমান্বয়ে বাড়ানো, দ্বিতীয় ধাপটি পুনরাবৃত্তি করুন।
  4. এটি এখনও কিছু খালি স্থান ছেড়ে দেবে। সমস্যাটি এখন অধি-দখলকৃত জায়গাগুলির বাইরে অবস্থান নির্ধারণ এবং ঘর তৈরির অন্যতম হয়ে ওঠে। প্রকৃতপক্ষে, যদি আপনার অন্তর্নিহিত স্থানটি একটি (পূর্ণসংখ্যার সূচকযুক্ত) গ্রিড হয় (এবং প্রতিটি বৃদ্ধির পুনরাবৃত্তি সেই গ্রিডে স্ন্যাপ করে), তবে এটি মোকাবেলা করা আরও সহজ, যেহেতু আপনি অধিগ্রহণকৃত এবং অনিয়ন্ত্রিত গ্রিড কোষের তালিকা বজায় রাখতে পারবেন: একবার আপনি ' আপনার সমস্ত কক্ষ স্থাপন এবং জন্মানো হয়েছে, সংলগ্ন কোষগুলির গোষ্ঠী সমন্বিত পৃথক পৃথক স্থানের জন্য অনাবৃত তালিকা অনুসন্ধান করুন। অনেক অব্যবহৃত স্থানের অ-আয়তক্ষেত্রাকার আকার থাকবে, আপনাকে সেই অ-আয়তক্ষেত্রাকার স্থানের মধ্যে থেকে এলোমেলোভাবে একটি ঘর বাছাই করতে হবে এবং আপনি দ্বিতীয় ধাপের কক্ষগুলির সাথে ঠিক তার আকারে বাড়িয়ে নিতে হবে। - সম্পূর্ণরূপে ভরাট না হওয়া অবধি যথাযথ স্থান।
  5. আপনার মানচিত্রটি 100% দখল না হওয়া পর্যন্ত চতুর্থ ধাপটি পুনরাবৃত্তি করুন।

এটি ভাল পরামর্শ। অসুবিধাটি হ'ল এটি সম্ভবত ক্ষুদ্রতর ছোট ছোট আবৃত্তি থেকে আমাকে রক্ষা করার জন্য কিছু করে না। কত ছোট এবং কত বড় রিসেটগুলি সীমাবদ্ধ করতে আমার কিছু পদ্ধতি প্রয়োজন manner বর্তমানে আমি অন্য পদ্ধতিতে কাজ করার প্রক্রিয়াধীন। আমি ফলাফল এবং আপডেট আপডেট করব।
আতুরস্যামস

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

আপনি সঠিক! আমি ভেবেছিলাম আমি সেই অংশটি লিখেছি। তবে আমি তা করিনি। এই ভুলের জন্য আমি ক্ষমা চেয়ে নিচ্ছি। হ্যাঁ আমি গ্রিডের আকার সম্পর্কে সচেতন। একটি ঘর কেবল গ্রিডের অনুমতি অনুসারে ছোট হতে পারে।
আতুরস্যামস

ঠিক আছে - আশা করি আপনি একটি উপযুক্ত সমাধান খুঁজে পেয়েছেন। বিটিডাব্লু বলতে বোঝায় "গ্রিড-লাইনগুলি সমন্বয় করুন", "অক্ষগুলি সমন্বয় করুন" নয়।
ইঞ্জিনিয়ার

1
আসলে আমি ঠিক এমন কিছু করছি যা আপনি আমাকে যে ধারণাগুলি ভেবেছিলেন তার উপর ভিত্তি করে looseিলে looseালাভাবে। আমি এখানে ফলাফল পোস্ট করব।
আতুরস্যাম 12'14

2

আপনি দেখতে পাচ্ছেন, আমি এই নিদর্শনগুলি থেকে বিশ্বকে মুক্তি দিতে পেরেছি। ধারণাটিও একই রকম।

  1. 2 ডি স্পেসটিকে অ-ইউনিফর্ম গ্রিডে ভাগ করুন। দুটি লাইন খুব কাছাকাছি থাকলে একটি সরিয়ে ফেলুন।
  2. এলোমেলোভাবে একটি আয়তক্ষেত্রটি চয়ন করুন, এটি অক্ষ-y (উচ্চতায়) জুড়ে পরিবর্তন হয়েছে কিনা তা পরীক্ষা করুন এবং এটি প্রত্যক্ষ প্রতিবেশী অক্ষ-y এর মধ্যে সংশোধিত হয়েছে কিনা check আমি উভয়ই সংশোধন করা হয়নি, তাদের মধ্যে বিভাগটি পুনর্বিবেচনা করুন (একজন অন্যকে কিছু স্থান দান করবেন)।
  3. অন্যান্য অক্ষের সাথে এবার দ্বিতীয় ধাপের মতো করুন।
  4. যতক্ষণ না সম্ভব আপনারা যতক্ষণ না সংশোধন করবেন ততক্ষণ প্রক্রিয়াটি পুনরাবৃত্তি করুন।

অ-ইউনিফর্ম গ্রিড (1):

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

অক্ষ x (2) এ আলোচনা চলছে:

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

অক্ষ y এর উপর আলোচনা করা (3):

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

ফলাফল (4):

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

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


এটি @ নিক উইগগিল
আতুরস্যামস

2
প্রথমে এলোমেলোভাবে এন * এম সংলগ্ন কোষগুলির একটি একক আয়তক্ষেত্রগুলিতে একত্রিত করে এর মাধ্যমে আরও উন্নতি করা যেতে পারে। এটি উপরের আউটপুটটিতে এখনও অন্তর্নিহিত গ্রিডটি দৃশ্যমান। এই বৃহত আয়তক্ষেত্রগুলির সাথে আলোচনা করার জন্য এখন এর কোনও এক প্রান্তে সমস্ত কোষে কাজ করতে হবে।
ডিএমগ্রিগরি

ঠিক আছে. এখনও অনেক অনেক কলিনিয়ার সীমানা, আমি সেগুলি নিয়ে আরও কাজ করব, তবে ভাল যে আপনি নিজের সমাধানটি পেয়েছেন! সহায়তায় খুশি।
ইঞ্জিনিয়ার

@ ডিএমজি গ্রেগরী আমি এটি বিবেচনা করেছি তবে আমি চাইছিলাম ছোট রিক্স এবং বৃহত্তর সংস্থাগুলির মধ্যে অনুপাত কিছুটা সামঞ্জস্যপূর্ণ হোক। এটি যদি কোনও টেক্সচার বা স্তর ছিল তবে আমি অবশ্যই এটি করব (আসলে এর আগের উদাহরণ রয়েছে যা এটি করে)।
আতুরস্যামস

@ নিক উইগগিল আমি সম্পূর্ণভাবে কলিনিয়ার লাইনগুলি মুছে ফেলতে পারি এটি কেবল অ্যালগরিদম টুইট করার বিষয়। এটি আরও উন্নত করার জন্য অবশ্যই একটি উপায় থাকতে হবে (অতি সাম্প্রতিকতম পরিবর্তনের সাথে আপডেট করুন)
আতুরস্যামস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.