প্রয়োজনীয়তা বোঝা
- সমস্ত খেলোয়াড়ের কাছে সীমিত সংখ্যক শত্রু রয়েছে।
প্রথমে, আমরা খেলোয়াড়দের স্পন পয়েন্টগুলি নিয়ে কথা বলছি, খেলাগুলির বর্তমান অবস্থানটি খেলায় নির্দিষ্ট সময়ে নয়। স্রেফ পথ থেকে বেরিয়ে আসা।
যখন আমরা কোনও গ্রাফের বিষয়ে কথা বলি তখন সংলগ্নটি ভালভাবে সংজ্ঞায়িত হয়। আমরা এমন একটি মানচিত্রের কথা ভাবতে পারি যা মানচিত্রে নাব্যতা উপস্থাপন করে - এখন থেকে "গ্রাফ"।
যদি নোডে সর্বাধিক এক স্প্যান পয়েন্ট থাকতে পারে তবে তাদের "সংলগ্ন" হওয়ার কথাটি বোঝা যায়। দ্রষ্টব্য: আমি নোডগুলিকে সর্বাধিক একটি মাত্র স্প্যান পয়েন্ট রাখতে বাধ্য করব না, কারণগুলি পরে প্রকাশিত হবে।
গ্রাফটি তৈরি করতে আমাদের দেওয়াল, সেতু, মই, টেলিপোর্টেশন পয়েন্ট ইত্যাদির মতো বিষয়গুলি বিবেচনা করতে হবে বা বিমানের স্থান বিবেচনা করতে হবে যদি এমন কোনও খেলোয়াড় থাকতে পারে যা উড়তে পারে। প্রতিটি নোড একটি স্থান পরিবর্তনযোগ্য অবস্থান প্রতিনিধিত্ব করে; প্রতিটি সংযোগ একটি সম্ভাব্য আন্দোলনের প্রতিনিধিত্ব করে।
দ্রষ্টব্য: নোডগুলির আকার এবং আকার জানুন এবং আসন্ন সংযুক্ত নোডগুলির সাথে কাজ করুন। নোডগুলিকে একটি বিষয় বিবেচনা করবেন না। সংযোগগুলি দৈর্ঘ্য হিসাবে বিবেচনা করবেন না। এছাড়াও, উত্তল নোড ব্যবহার করুন।
গ্রাফটি পূর্বনির্ধারিত হতে পারে (মানচিত্রটি একজন ডিজাইনার তৈরি করেছিলেন); অন্যথায়, মানচিত্রটি এলোমেলোভাবে উত্পাদিত হলে ফ্লাইতে এটি তৈরি করা যেতে পারে।
- সমস্ত খেলোয়াড়ের সংলগ্ন শত্রুদের মুখোমুখি হওয়ার সমান সুযোগ রয়েছে।
আমি ধরে নেব শত্রুরাও অন্য খেলোয়াড়। আবার, স্রেফ পথ থেকে বেরিয়ে আসা।
প্রতিটি খেলোয়াড় ধরেই এলোমেলো হাঁটাচলা করে, একটি নির্দিষ্ট পয়েন্টে - খেলোয়াড়ের সন্ধানের সম্ভাবনা - একটি সমতল স্থানে, বাধা মুক্ত - স্পোন পয়েন্টের দূরত্বের একটি (গাউসিয়ান) কার্য দ্বারা দেওয়া হবে - এখন থেকে " ফাংশন "।
যেহেতু আমরা গ্রাফটিতে কাজ করছি, আমরা পরিবর্তে গ্রাফের মানগুলি বর্ননা করব।
- মানচিত্রের আকারে খেলোয়াড়ের সংখ্যার আনুপাতিক বৃদ্ধি করতে হবে না।
আমাদের যদি নোডের প্রতি একক স্প্যান পয়েন্ট থাকার সীমাবদ্ধতা থাকে, তবে আরও প্লেয়ার যুক্ত করতে আমাদের আরও ছোট নোডের প্রয়োজন হবে। আমাদের কয়জন খেলোয়াড় থাকবে তা জানার আগে যদি আমরা গ্রাফটি স্থির করি তবে আমাদের নির্দিষ্ট গেমের জন্য নোডগুলি উপ-বিভাগে থাকতে পারে।
- এই সীমাবদ্ধতাগুলি নির্বিচারে দুর্গম স্থানগুলির সাথে প্রয়োগ করা হয় না।
আমি সমস্যাটি সমাধানে বাধা যুক্ত করার ইচ্ছা করি না। তবে , আমার বাধা বিপত্তি কাজ করতে হবে। যদি তারা না থাকত তবে বাস্তবায়নটি সহজতর হত।
সমাধান
আমরা এন স্পন পয়েন্টগুলি এমনভাবে স্থাপন করার চেষ্টা করছি যে এই সমস্ত স্পন পয়েন্টগুলিতে অন্য খেলোয়াড়ের মুখোমুখি হওয়ার সুযোগ সমান।
সম্ভাবনাগুলির গড়ের সম্ভাবনার পার্থক্যের যোগফল হিসাবে আমরা ত্রুটির একটি পরিমাপ পেতে পারি। আমরা এটি হ্রাস করার চেষ্টা করছি (আসলে, আমরা এটি 0 তৈরি করতে চাই)।
এটি করতে, আমাদের গ্রাফের প্রতিটি নোডে খেলোয়াড়ের মুখোমুখি হওয়ার সুযোগটি জানতে হবে।
সেই সুযোগটি গণনা করতে শূন্য দিয়ে শুরু করুন। যেহেতু কোনও খেলোয়াড় নেই, কোনও প্রদত্ত নোডে প্লেয়ার সন্ধানের সুযোগটি শূন্য। এবং তারপরে, প্রতিটি স্প্যান পয়েন্টের জন্য, বর্তমান স্প্যান পয়েন্টের জন্য ফাংশনটির মানটি টীকাযুক্ত সুযোগকে যোগ করে গ্রাফটি হাঁটুন।
দ্রষ্টব্য 1: একটি স্প্যান পয়েন্ট যুক্ত করা বা স্থানান্তর করা সমস্ত মানচিত্রের জন্য কোনও খেলোয়াড়ের মুখোমুখি হওয়ার সুযোগকে প্রভাবিত করবে।
দ্রষ্টব্য 2: প্রতিটি স্প্যান পয়েন্ট সুযোগকে কতটা প্রভাবিত করে তা ট্র্যাক করে রাখা বিষয়গুলিকে আরও সহজ করে তুলবে।
নোট 3: যেহেতু নোডের আকার থাকে তাই আপনি ত্রুটির কাছে কতটা কাছাকাছি যেতে পারেন = শূন্য নোডগুলির আকারের উপর নির্ভর করে। মানগুলির ব্যাপ্তিগুলির সাথে কাজ করে আপনি আরও সুনির্দিষ্ট হতে পারেন (নোডের মধ্যে স্প্যান পয়েন্টগুলির নির্দিষ্ট অবস্থানের উপর নির্ভর করে মিনিমুন এবং ম্যাক্সিমুন সুযোগ)।
স্প্যান পয়েন্টগুলি এলোমেলোভাবে রাখুন, তারপরে এগুলি এমনভাবে সরানো শুরু করুন যাতে ত্রুটি আরও ছোট হয়ে যায় (একটি সম্ভাব্য আন্দোলন বিবেচনা করুন এবং যদি ত্রুটি হ্রাস হওয়ার কারণ হয়ে থাকে তবে তা অন্যথায় ফিরিয়ে দিন)। এবং যতক্ষণ না আমরা আরও কোনও উন্নতি করতে পারি না ততক্ষণ তা চালিয়ে যান (উন্নতি ছাড়া অনেকগুলি পুনরাবৃত্তি বা ত্রুটি শূন্য হয়)।
দ্রষ্টব্য 4: একটি স্প্যান পয়েন্টটি সরানোর সময়, আপনি কোনও প্লেয়ারের মুখোমুখি হওয়ার সুযোগটি ব্যবহার করতে পারেন (স্প্যান পয়েন্টটি বাদ দিয়ে আপনি চলে যাবেন) এলোমেলোভাবে একটি স্পন পয়েন্টের জন্য একটি নতুন অবস্থান বেছে নিতে যেমন পজিশনের কাছাকাছি কোনও খেলোয়াড়ের মুখোমুখি হওয়ার সম্ভাবনা রয়েছে গড় বেশি সম্ভাবনা আছে। আমি আপনাকে মনে করিয়ে দিচ্ছি যে স্প্যান পয়েন্টটি স্থানান্তর করা গড়কে প্রভাবিত করবে।
প্রত্যাশিত আচরণটি হ'ল স্প্যান পয়েন্ট যা খুব কাছাকাছি একসাথে থাকে এবং সরানো বিন্দুগুলি যে খুব দূরে দূরে থাকে সেগুলি আরও কাছে আসে। যতক্ষণ না তারা ভারসাম্য অর্জন করে।
যদি কোনও প্রদত্ত পুনরাবৃত্তিতে আপনার নোডের একাধিক স্প্যান পয়েন্ট থাকে (যা অসম্ভব, যেহেতু তাদের পৃথকীকরণের ঝোঁক হওয়া উচিত, তবে আপনার যদি যথেষ্ট পরিমাণে নোড থাকে তবে সম্ভব হয়), নোডকে বিভক্ত করুন এবং সমাধান চালিয়ে যান। নোডের যে কোনও বিভাগই বৈধ।
উপরের সমাধানটি ত্রুটি = শূন্যের কাছে যাবে তবে শূন্যে পৌঁছানোর গ্যারান্টিযুক্ত নয়। কোনও স্থানীয় সর্বনিম্ন না পৌঁছানো পর্যন্ত আপনি এটি চালিয়ে যেতে পারেন ... তত্ত্ব অনুসারে, আপনি একে একে একে নূন্যে শূন্য করতে নোডগুলি ভাগ করতে পারেন ... তবুও, এটি স্পন পয়েন্ট স্থানাঙ্কগুলি টিক করার সমতুল্য!
নোডের মধ্যে স্প্যান পয়েন্টটি সরানোর জন্য সিমুলেটেড অ্যানিলিং চেষ্টা করুন। যদিও, সত্যিই, এ জাতীয় স্তরের বিশদটি নিয়ে বিরক্ত করার পক্ষে এটি সম্ভবত উপযুক্ত নয়।
আমি এটা পরিষ্কার করতে চাই যে বাধা মুক্ত ফ্ল্যাট মানচিত্রের ফলাফল অভিন্ন বিন্দুতে বিতরণ করা হবে না। পরিবর্তে, যদি মানচিত্রে প্রান্ত থাকে (তবে এটি যদি প্রায় আবৃত না হয়) তবে প্রান্তগুলির আরও কাছে স্পোন পয়েন্ট থাকবে, কারণ এটি কেন্দ্রে অবস্থিত পয়েন্টগুলি আরও বেশি দিক থেকে পৌঁছতে পারে, মুখোমুখি হওয়ার সম্ভাবনা বাড়িয়ে তোলে অন্য খেলোয়াড়রা। এইভাবে, ক্ষতিপূরণ দেওয়ার জন্য কেন্দ্রের কাছে আরও দূরে পয়েন্টগুলি।