পদ্ধতিগত অন্ধকূপ জেনারেশন: এই কক্ষগুলি সর্বনিম্ন করিডোর ব্যবহার করে সংযুক্ত হয়েছে তা নিশ্চিত করার জন্য কি কোনও সাধারণ অ্যালগরিদম আছে?


9

মধুচক্রের মতো কাঠামো পাওয়া, খুব বেশি করিডোর ছাড়াই সমস্ত কক্ষগুলি সংযুক্ত করে কী পাওয়া সম্ভব? (একক ঘর থেকে প্রচুর অনেকগুলি 3-4+ করিডোর আসছে)

নীচে আমার ঘরগুলি কেমন দেখাচ্ছে তার আউটপুট দেওয়া আছে, মূলত তারা এলোমেলোভাবে স্থাপন করে।

একটি গ্রিড কক্ষের আউটপুট, এলোমেলোভাবে রাখা

আমি যা করিডোর ভিত্তিক পাওয়ার আশা করছি।

http://i.imgur.com/9GUi6Yy.png


আমি মনে করি না 3 বা 4 "অনেকগুলি করিডোর"। বিশেষত যদি আপনার অন্ধকূপে 9 টি কক্ষ থাকে। এছাড়াও, আমি নিশ্চিত নই যে আপনি "মাতাল জাতীয় ধরণের কাঠামো" বলতে কী বোঝাতে চেয়েছেন, আপনি কী চেহারার দিকে যাচ্ছেন তা বোঝাতে পারেন?
fnord

আপনার কী থাকতে আগ্রহী তা দেখানোর জন্য একটি "সমাপ্ত" মানচিত্র অন্তর্ভুক্ত করুন।
MichaelHouse

হ্যাঁ, আমি প্রতিটি ঘর থেকে সর্বাধিক 3 বা 4 করিডর বোঝাতে চাইছি।
মিশ্রকটি

আমি যতটা করিডোরের দিকে কাজ করছি তার একটি চিত্র আমি যুক্ত করেছি।
মিশ্রক

2
আপনার যদি কোনও কক্ষ থেকে ৩ টি করিডোর না থাকে তবে আপনি কেবলমাত্র কক্ষগুলিতে একটি সরল রৈখিক জোড়িং করতে সক্ষম হবেন এবং তাই কেবল একটি বাছাই করতে পারবেন এবং এর নিকটস্থ দু'জন দাতব্য প্রতিবেশীর সাথে যোগ দিন।
নিক

উত্তর:


6

ভাল, আমি সবচেয়ে সহজ উপায়টি নিশ্চিত করতে শুরু করি যে সমস্ত কক্ষ কমপক্ষে 1 করিডোরের মাধ্যমে সংযুক্ত রয়েছে:

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

এখন আমরা জানি যে আপনি সমস্ত কক্ষে যেতে পারেন, তবে এখন আপনি যদি এই কড়া রৈখিক গোলকধাঁধার চেয়ে আরও বেশি কিছু চান তবে আপনি কেবল আপনার ঘরের মধ্যে দিয়ে যেতে পারেন এবং এলোমেলোভাবে রুমের সাথে সংযোগ স্থাপনের জন্য একটি নতুন পথ তৈরি করতে পারেন, প্রতি রুমে সীমাবদ্ধ করতে পারেন 2-3 বা কক্ষগুলির একটি নির্দিষ্ট শতাংশ সর্বাধিক সংযোগগুলিতে হিট না হওয়া পর্যন্ত - ইত্যাদি etc.

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

প্রতিটি অনুমান এবং নিয়ম আপনার স্তরগুলি দেখতে কেমন তা আমূল পরিবর্তন করতে পারে তবে এটি মজাদার একটি অংশ! এটি কমপক্ষে আপনার মুরগি / গুহার মতো কক্ষগুলি শুরু করতে হবে।


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

3

ইতিমধ্যে সংযুক্ত আপনার ঘরগুলি কেবল তৈরি করুন। একটি ঘর দিয়ে শুরু করুন, তারপরে অন্য কক্ষে 1-3 করিডোর তৈরি করুন। তারপরে পুনরাবৃত্তি করুন যতক্ষণ না আপনি পর্যাপ্ত কক্ষ যুক্ত করেন।


2

যেহেতু এই কক্ষগুলি 2 ডি সমতলতে এম্বেড থাকা গ্রাফ উল্লম্ব, তাই তত্ত্বগতভাবে ট্র্যাভেলিং বিক্রয় ব্যবসায়ী সমস্যা সমাধানের মাধ্যমে এটি করা যেতে পারে (যা কেবল কয়েকটি কক্ষের সাথে ভাল হবে)। স্পষ্টতই, একটি সরল হিউরিস্টিক ভাল থাকে এবং যুক্তিসঙ্গত স্কেলাবিলিটি মঞ্জুর করে।

আপনি সমস্ত কক্ষের মধ্যে প্রান্তগুলি (করিডোর দৈর্ঘ্য) গণনা করুন। আপনি তাদের দৈর্ঘ্য অনুসারে বাছাই করুন। আপনি সবচেয়ে সংক্ষিপ্ত করিডোর যুক্ত করুন যতক্ষণ না এটি একটি চক্র তৈরি করে বা আপনার কাঙ্ক্ষিত সর্বাধিক মান (3-4) (পুনরাবৃত্তি) এর উপরে শীর্ষের (ঘর) ডিগ্রি বৃদ্ধি করে। চক্র পরীক্ষা করার জন্য আপনি ইউনিয়নফাইন্ড প্রয়োগ করতে পারেন বা ছোট ডেটাতে একটি দ্রুত বিএফএস করতে পারেন।


এই উত্তর গৃহীত উত্তরের চেয়ে ভাল। সবচেয়ে সংক্ষিপ্ত সংযোগকারী করিডোরগুলি প্রথমে বাছাই করার লোভী কৌশলটির কাজ করা উচিত। চক্র এড়ানোর জন্য, এমন কক্ষগুলিতে সংযোগ স্থাপন করবেন না যেগুলি ইতিমধ্যে তাদের সাথে একটি করিডোর সংযুক্ত রয়েছে।
জেলি ভ্যান ক্যাম্পেন

ধন্যবাদ জেল্লেভান ক্যাম্পেন ধন্যবাদ ;) আপনার দুটি পৃথক সংযুক্ত উপাদান থাকতে পারে। সুতরাং আপনি সম্ভবত ইউনিয়নটি ব্যবহার করতে বা দুটি নোড সংযুক্ত থাকলে বিএফএসের সাথে চেক করতে চান।
আতুরস্যামস

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