টেরিটরি টহল পরিকল্পনা


14

আমি এমন একটি গেম / সিমুলেশন বিকাশ করছি যেখানে এজেন্টরা জমির জন্য লড়াই করছে। আমি নীচের ছবিতে পরিস্থিতি দেখিয়েছি:

একই রকম বর্ণযুক্ত "প্রাণী" সহ একটি সবুজ এবং লাল টাইলযুক্ত অঞ্চল

এই প্রাণীগুলি ঘুরে বেড়াচ্ছে এবং জমি টুকরো টুকরো করছে যে তারা যদি মুক্ত হয়। এটিকে আরও আকর্ষণীয় করার জন্য, আমি "টহল" আচরণটি প্রবর্তন করতে চাই, যেমন এজেন্টরা প্রকৃতপক্ষে যে কোনও অনুপ্রবেশকারীদের নিতে পারে তাদের কাছ থেকে টহল দেওয়ার জন্য তাদের জমিটি ঘুরে বেড়াচ্ছে।

প্রযুক্তিগত দিক থেকে, প্রতিটি বর্গক্ষেত্রের x,yপাশাপাশি একটি পাশের দৈর্ঘ্যের প্রতিনিধিত্বকারী একটি মাত্রা হিসাবে উপস্থাপিত হয়। স্কোয়ারটি কারা দখল করে সে সম্পর্কেও তথ্য রয়েছে। সমস্ত স্কোয়ার একটি এ সংরক্ষণ করা হয় ArrayList

আমি কীভাবে টহল আচরণের পরিচয় দিতে পারি? আমি যা চাই তা হ'ল প্রতিটি এজেন্টের ওই অঞ্চলের একটি নির্দিষ্ট অংশে টহল দেওয়া (তারা নিজেদের মধ্যে ভাগ করে নিবে কোন অঞ্চলে তারা টহল দেবে)। আমি যে মূল সমস্যাটি পেয়েছি তা নিম্নরূপ:

  • ছবিতে দেখা গেছে জমির ক্ষেত্রফলটি এলোমেলো। প্রতিটি দিকের সীমানা কোথায় তা বোঝা বরং এটি কঠিন।
  • তাদের এজেন্টদের কীভাবে অঞ্চলগুলিকে টহল দেওয়ার জন্য বিভক্ত করা উচিত?
  • জমির ক্ষেত্রগুলি বিরূপ হতে পারে, যেহেতু বিরোধী দল মাঝখানে থেকে অঞ্চল নিতে পারে।

আমার কাছে প্রতিটি দিকের চৌকোটি নিয়ে যাওয়ার, তাদেরকে এই অঞ্চলের সীমানা হিসাবে বিবেচনা করা এবং সেই সীমানার উপর ভিত্তি করে অঞ্চলগুলি বিভক্ত করার ধারণা ছিল তবে এতে প্রচুর অপ্রাসঙ্গিক জমি অন্তর্ভুক্ত থাকতে পারে।

এই সমস্যাটির কাছে আমার কীভাবে যোগাযোগ করা উচিত?


1
সম্ভবত আপনি ধারণা জন্য কিছু ইমেজ প্রসেসিং কৌশল তাকান পারে? একযোগে চলমান বিভিন্ন অঞ্চল বৃদ্ধির অ্যালগরিদমগুলি প্রতিটি দফতরের কাছ থেকে উদ্ভূত হতে পারে যতক্ষণ না তাদের দলে অন্তর্ভুক্ত সমস্ত টাইল একটি টহলকারী এজেন্টকে অর্পণ করা হয়।
কোয়েটজলকোটল

@ কিয়েজটালকোটল: দুর্দান্ত ধারণা, বাস্তবায়নের পক্ষে সহজ তবে এটি অত্যন্ত অসম টহল অঞ্চলগুলিতে নিয়ে যাবে। উপরের চিত্রের সবুজ এজেন্টগুলি বিবেচনা করুন। উপরের ডান এজেন্ট কভার করতে ~ 15 স্কোয়ার, কেন্দ্রে এক মাত্র 2. হবে
Junuxx

উম এটি কমবেশি পরবর্তী ব্লকটি বর্তমান ব্লক থেকে তাদের দলের অন্তর্ভুক্ত বাছাইয়ের মতো like
তোহমাস

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

1
সম্ভবত প্রতিটি এজেন্ট চুম্বকের মতো অন্যান্য সমস্ত এজেন্টকে পিছনে ফেলে শুরু করতে পারে। এটি এজেন্টদের এই অঞ্চলের বিভিন্ন কোণে বাধ্য করবে। এজেন্টরা যখন বিশ্রামে আসে, তখন জমিটি কোয়েটজলকোটলের পরামর্শ অনুসারে ভাগ করুন। অঞ্চলগুলি মোটামুটি সমান হওয়া উচিত।
tyjkenn

উত্তর:


9

আকর্ষণীয় প্রশ্ন। আমি মনে করি আপনার প্রথম যে সমস্যার সমাধান করতে হবে সেগুলির মধ্যে একটি হ'ল আপনি কী টহল দেওয়ার আচরণটি "সর্বোত্তম" টহলদল বা "লাইফেলাইক" টহল হিসাবে চান। আমি কেবল এই শব্দগুলি তৈরি করছি, তবে আমার অর্থটি হ'ল:

সর্বোত্তম : এজেন্টরা এমন পদ্ধতিতে চলাফেরা করে যা পুরোপুরি সিস্টেমের জন্য তাদের কভারেজের ক্ষেত্রটি পুরোপুরি বিতরণ করে।

লাইফেলাইক : এজেন্টরা চলাফেরা করে এবং যথাসম্ভব সমানভাবে তাদের বিতরণের চেষ্টা করে, তবে প্রত্যেকেরই কেবল তাদের দৃষ্টিকোণে স্থানীয় ডেটাতে অ্যাক্সেস থাকে।

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

  • পরিহার (বাহিরের অঞ্চল) - এজেন্টরা তাদের অঞ্চলে থাকতে এবং এর বাইরে চলে যাওয়া এড়াতে চেষ্টা করে। কিছু বাস্তববাদের জন্য যদিও এই অঞ্চলটির "বাইরের দিকে পদক্ষেপ" এর প্রভাব এখানে 100% হওয়া দরকার না n't এই অঞ্চলের বাইরে যেতে "কাটিং কর্নার" সামান্য কিছুটা সম্ভবত আরও বাস্তববাদী আন্দোলনের জন্য তৈরি করবে।

  • ঘুরে বেড়ানো - এজেন্টরা ঘুরে বেড়াতে এবং অন্বেষণ চালিয়ে যাওয়ার চেষ্টা করে। আপনি যেটিকে ভারী করে তুলতে চান এটি অন্যথায় এজেন্টরা প্রত্যেকে অন্যের থেকে একটি সর্বোত্তম বিভাজন পয়েন্ট এবং তারপরে "থাক" রাখার চেষ্টা করবে।

  • বিচ্ছেদ (অন্যান্য এজেন্ট) - এজেন্টরা অন্যান্য এজেন্টদের থেকে একটি দূরত্ব বজায় রাখার চেষ্টা করে (যাতে তারা সর্বাধিক স্থলটি coverেকে রাখে এবং না খাড়া হয়ে যায়)।

  • সিক (হানাদার) - এজেন্টরা তাদের সনাক্ত করা কোনও আক্রমণকারীকে বন্ধ করার চেষ্টা করে।

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

বর্ণিত আচরণের ধরণগুলি অনুসরণ করে "Boids" কীভাবে প্রয়োগ করতে হয় সে সম্পর্কে অনলাইনে বেশ কয়েকটি সংস্থান রয়েছে। আমি ওপেন-সোর্স বাস্তবায়ন opensteer সুপারিশ ।


2

একটি প্রতিবেদন হ'ল প্রতিটি কক্ষের জন্য, যখন এটি সর্বশেষ একজন "প্রহরী" দ্বারা পরিদর্শন করা হয়েছিল, এবং প্রহরীরা যে কোনও প্রতিবেশী সেলকে দীর্ঘকালীন un

অবশ্যই, এটি ধরে নিয়েছে যে অঞ্চলটি সংযুক্ত।

এটি একটি নিখুঁত সমাধান নয়, তবে কোডের পক্ষে সহজ, পরিবর্তিত পরিস্থিতিতে অভিযোজিত এবং দক্ষ। আমি এই অ্যালগরিদমটি সফলভাবে ব্যবহার করেছি স্কাউটিং এবং হয়রানির আক্রমণগুলির জন্য একটি আরএসটি আইতে আমি কিছুক্ষণ আগে লিখেছিলাম।

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