বুস্টোফিডন কোষের ক্ষয়টি এমন একটি পরিবেশকে কেবল এমন পরিবেশে উপ-বিভাজন করে যা কোনও দক্ষতার সাথে একটি বুথরোড্ডন পথ দ্বারা coveredাকা যায়। একটি ট্র্যাপিজয়েডাল পচন ঘটায় এবং লাইন-সুইপ অ্যালগরিদম ব্যবহার করে সম্পন্ন করা যায়। [চয়েসট 2000], এই ওয়েব সাইটটি দেখুন
, বা (আমি প্রস্তাব দিই!) মার্ক ডি বার্গ, এবং এর দুর্দান্ত বই "কম্পিউটেশনাল জ্যামিতি" দেখুন। আল, প্রয়োজনীয় ডেটা স্ট্রাকচার এবং অ্যালগরিদমের সম্পূর্ণ বিবরণের জন্য।
চয়েসেট, হাওয়ে "জ্ঞাত স্পেসের কভারেজ: দ্য বাস্ট্রোফিডন সেলুলার পচন" স্বায়ত্তশাসিত রোবটস , ২০০০।
উদাহরণস্বরূপ, বাধাগুলির সেটটি প্রান্ত এবং শীর্ষে হিসাবে বিবেচনা করুন। ধরা যাক পরিবেশটিও একটি বিশেষ বহুভুজের দ্বারা আবদ্ধ। আমাদের নীচের মত কিছু আছে। এই স্থানটি পচানোর জন্য, আমরা প্রতিটি প্রান্তিকের এবং নিকটতম লাইন বা মেরুদণ্ডের মধ্যে উল্লম্ব প্রান্তগুলি যুক্ত করি।
কোডে এটি সম্পাদন করার জন্য আপনার কেবল একটি লাইন-সেগমেন্ট ছেদ পরীক্ষা, প্রান্তগুলির একটি বাছাই করা তালিকা এবং শীর্ষে বাছাইয়ের তালিকা প্রয়োজন need
- বাম থেকে ডান ক্রমে প্রতিটি শীর্ষস্থানীয় থেকে ,vi
- একটি উল্লম্ব লাইন তৈরি করুন প্রতিটি , প্রথম প্রান্ত পর্যন্ত বাড়ানো বা প্রান্তবিন্দু এটা ছেদ করেlivi
- প্রতিটি চৌরাস্তায় একটি নতুন শীর্ষবিন্দু তৈরি করুন।
এটি করা হয়ে গেলে, নতুন প্রান্ত এবং কোণগুলির সেটটি কেবল ট্র্যাপিজয়েডগুলি ঘিরে রাখে। তবে আমি জোর দিয়ে বলছি, আপনি অনলাইনে এটি করতে পারবেন না (বাধা সম্পর্কে পূর্বের জ্ঞান ছাড়াই)। আপনি যদি পূর্বের জ্ঞান ছাড়াই দৃust় কভারেজ করতে চান তবে আপনি "বাগ অ্যালগরিদম" এর দিকে নজর দিতে পারেন। বিশেষত, পরিবেশ সীমাবদ্ধ তা ধরে নিয়েই এখানে একটি সাধারণ অ্যালগরিদম।
প্রারম্ভিক অবস্থান থেকে, আপনি উপরের-বাম কোণে না পৌঁছা পর্যন্ত উপরে এবং বাম দিকে যান। আপনি যদি প্রথমে কোনও প্রতিবন্ধকতার মুখোমুখি হন তবে আপনাকে অবশ্যই এটির চারপাশে ভ্রমণ করতে হবে। আপনি জানেন যে কিছু যদি অবরুদ্ধ করা যায় (বাধা এবং সরানো) যায় an
উপরের বাম দিক থেকে, সীমানার মুখোমুখি না হওয়া পর্যন্ত ডানদিকে যান move তারপরে নীচে এবং বাম দিকে সরে যান (আমরা পুরো জায়গার বুথরোড্ডন করছি)।
আপনি যখন বাম-ডান লাইনে থাকেন এবং কোনও প্রতিবন্ধকতার মুখোমুখি হন, আপনার কাছে দুটি বিকল্প রয়েছে। (i) আমরা coverেকে দেওয়ার চেষ্টা করছি এমন বাম-ডান লাইনে পৌঁছানো অবধি অবনত হতে পারি then (ii), আমরা বাধা পেরিয়ে নতুন পরিস্থিতিটি untilেকে দিতে পারি যতক্ষণ না আমরা আমাদের বাধা পেরিয়ে আমাদের এই পথটি খুঁজে বার করি এবং এই পরিস্থিতিতে শেষ না করি। আমি বর্ণনা করব।
বাম দিকে, আমরা "লাইন "টিতে ফিরে না যেতে পারা অবধি বাধাটিকে ঘুরিয়ে রেখেছি যা আমরা অনুসরণ করার চেষ্টা করছিলাম। ডানদিকে, আমরা বাধাটির একপাশে (ছোট) অঞ্চলটি coveringেকে রাখি।
প্রথম পদ্ধতির সুবিধাটি হ'ল আপনি কীভাবে কীভাবে তাড়াবেন সে সম্পর্কে সিদ্ধান্ত নেওয়ার আগে আপনি সর্বদা বাধাটিকে পুরোপুরি নির্ধারণ করেন, এভাবে আপনি আরও ছোট পথটি গ্রহণ করতে পারেন। দ্বিতীয় পদ্ধতির সুবিধা হ'ল আপনাকে কোনওভাবেই বাধা অতিক্রম করতে হবে না, আপনি যে অঞ্চলে রয়েছেন তা coverাকতে আপনি কেবল এগিয়ে যেতে পারেন।
নোট করুন যে এটি আপনার বুস্ট্রোফিডনের পচনটিকে একটি অনলাইন উপায়ে সংজ্ঞায়িত করে : আপনি বাধা বা বাধার মধ্যে এবং সীমানার মধ্যে অঞ্চলটি কভার করেন।
তবে যতদূর আমি জানি, প্রথম পদ্ধতিটি বিশ্লেষণ করা সহজ। আরও জটিল অ্যালগরিদমগুলি (যেমন বিএফএস, ইত্যাদি) পরিবেশকে সীমাহীন করার কারণে বাছাই করা হয় (আপনি চিরকালের জন্য সীমাবদ্ধতার সন্ধান করতে চান না), বা পরিবেশকে মূলত বিভাজন করে দেওয়ার পথে খুব বাজে বাধা রয়েছে। কেন এই খারাপ? এই উদাহরণটি দেখুন:
মুভিং বাম-ডান, তারপর প্রতিটি বাধা চক্কর উত্পাদন করে উপায় প্রতিটি বাধা মধ্যে ছোট অংশ অনেক কভার। প্রকৃতপক্ষে, বিশ্বব্যাপী পাথ পরিকল্পনা ছাড়াই আপনি এই কলামগুলি 1 পিক্সাল প্রশস্ত, পুরো পরিবেশের মতো লম্বা এবং 1 পিক্সেলের মতো পৃথক করে আপনার গ্রিডের রেজোলিউশনের মতো খারাপ করতে পারেন। তারপরে প্রতিবার আঘাত করার সময় আপনাকে প্রতিবন্ধকতার চারপাশে ঘুরতে হবে।
এই কারণেই আমি জিজ্ঞাসা করেছি আপনি পরিবেশে কোথায় ছিলেন বা বিশ্বব্যাপী পরিকল্পনা পরিকল্পনা করতে পারেন সে সম্পর্কে আপনার কিছু ধারণা ছিল কিনা। তবে অনলাইন বনাম অফলাইন আলোচনা এবং এর জন্য সর্বোত্তম অ্যালগরিদম আপনি যা চেয়েছিলেন তা নয়।
আপডেট: আমাকে ছবিগুলি মুছে ফেলতে হয়েছিল (https নয়) এবং এটি পোস্ট করব যা প্রায়শই বাস্তব বাস্তব অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। http://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/integrated1/yamauchi_frontiers.pdf