গ্রিডে নোডের ক্রম সনাক্তকরণ


12

নীচের চিত্রটি দেওয়া, আমাকে বোর্ডের (সবুজ রেখা) সর্বাধিক অনুকূল সিকোয়েন্সটি সনাক্ত করতে হবে। নীল / লাল রেখাগুলি সম্ভব প্রতিনিধিত্ব করে, তবে সেরা চালগুলি নয়।

এখানে বিধি রয়েছে:

  1. আপনি যেকোন টাইলের কাছে যেতে পারেন যা একই, এবং আপনার প্রতিবেশী (তির্যকটি বৈধ)
  2. একবার আপনি কোনও টাইল পরিদর্শন করার পরে, আপনি এটি আবার দেখতে পারবেন না।

আমি প্রতিটি নোডের মধ্য দিয়ে লুপিং সম্পর্কে চিন্তা করেছি এবং এর প্রতিবেশীদের দিকে তাকিয়েছি, তারপর পুনরাবৃত্তি করে যাচ্ছি। আমি যখন কোনও সম্ভাব্য পদক্ষেপ পেয়েছি তখন আমি এটি একটি কাঠামোর মধ্যে রাখতে পারি। সমস্ত সম্ভাব্য পদক্ষেপগুলি পাওয়া গেলে আমি নোডের সর্বোচ্চ গণনা সহ এই পদক্ষেপটি বেছে নিয়েছি pick যখন নোডের একাধিক প্রতিবেশী মেলে তখন এটি আরও কঠিন হয়ে যায়।

সুতরাং, আমি কি কিছু অ্যালগরিদম ব্যবহার করতে পারি? আমি একরকম বন্যার ভরাট ভাবছিলাম, তবে এটি # 2 বিধি পূরণ করে না।

অনুরোধ হিসাবে, এখানে অনুরূপ গেমপ্লে একটি ভিডিও আছে। http://youtube.com/watch?v=eumnCTG0AE8

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


এটি লক্ষ করা গুরুত্বপূর্ণ যে 3 টি তরোয়াল / সোনার সম্ভাব্য ম্যাচ, তবে আমি কেবল সেগুলি ইমেজে অন্তর্ভুক্ত করি নি।

3 টি তরোয়াল / সোনার সম্ভাব্য মিল কেন? আপনি কি কমপক্ষে 3 টি আইটেম সমন্বিত সমস্ত পাথ সন্ধান করতে চান?
বম্মজ্যাক

হ্যাঁ, এটি ধারণা।

উত্তর:


6

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

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

    1
1 1 1
    1
    1
    1
    1

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

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

প্রযুক্তিগতভাবে বলতে গেলে, আপনার বোর্ডকে পৃথক গ্রাফে ভেঙে আপনি একাধিক " দীর্ঘতম পথ সমস্যা " এর সাথে শেষ করেন । যেমনটি আমরা আপনার উদাহরণ থেকে দেখতে পাচ্ছি, আপনার গ্রাফটিতে আপনার চক্র থাকতে পারে (উদাহরণস্বরূপ, একই ধরণের মঞ্চের বাইরের দিকে সমস্ত চিহ্ন রয়েছে) যার অর্থ এই বিশেষ সমস্যায় আপনাকে দীর্ঘতম পথটি সন্ধান করতে হবে বেশ কয়েকটি চক্রীয় পুনঃনির্দেশিত গ্রাফগুলিতে, যা বহুপদী সময়ে করা যায় না

যদি আপনি দেখতে পান যে এটি খুব ধীর, স্বতন্ত্র "দীর্ঘতম পথ সমস্যাগুলি" কীভাবে অনুকূলিত করা যায় তার আরও বিশদ জানতে স্ট্যাকওভারফ্লোতে এই উত্তরটি দেখুন ।

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