একটি অপরিবর্তিত গ্রাফের সবচেয়ে ছোট পথ?


19

সুতরাং আমি ভেবেছিলাম এটি (যদিও কিছুটা প্রাথমিক) প্রশ্নটি এখানে অন্তর্ভুক্ত:

বলুন আমার কাছে 10x10 প্যাটার্নে সাজানো আকারের 100 নোডের একটি গ্রাফ রয়েছে (মনে করুন দাবাবোর্ড)। গ্রাফটি পুনর্নির্দেশিত, এবং অপ্রকাশিত। গ্রাফের মধ্য দিয়ে চলতে তিনটি স্পেস এগিয়ে নিয়ে যাওয়া এবং একটি স্থানকে ডান বা বাম দিকে নিয়ে যাওয়া (দাবা নাইট কীভাবে বোর্ডের উপরে চলে যায় তার সমান)।

একটি নির্দিষ্ট প্রারম্ভ নোড দেওয়া, বোর্ডের অন্য কোনও নোডের সবচেয়ে সংক্ষিপ্ত পথটি কীভাবে পাওয়া যাবে?

আমি কল্পনা করেছিলাম যে কেবল নোডের মধ্যে কেবল একটি প্রান্ত থাকবে যা व्यवहार्य পদক্ষেপ। সুতরাং, এই তথ্যটি দেওয়া, আমি একটি প্রারম্ভিক নোড থেকে একটি শেষ নোডের সংক্ষিপ্ততম পথটি খুঁজতে চাই।

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

যাইহোক, আমি কীভাবে সন্ধানটি ব্যবহার করে সবচেয়ে সংক্ষিপ্ত পথ পাব তা আমার জীবনের কল্পনা করতে পারি নি।

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

কারও কি এমন ধারণা আছে যা আমাকে এই দিকে সঠিক দিকে নির্দেশ করতে পারে?

আপনাকে অনেক ধন্যবাদ.

(আমি গ্রাফটির দৃশ্যধারণ করার চেষ্টা করেছি, তবে আমার সুনামের কারণে অযোগ্য হয়েছি)

উত্তর:


19

গ্রাফের প্রান্তগুলি যদি নির্দিষ্ট পজিশনের মধ্যে বৈধ পদক্ষেপের প্রতিনিধিত্ব করে তবে ডিজকস্ট্রা ব্যবহার করে ঠিক কাজ হবে। তবে গ্রাফটি অপ্রকাশিত হওয়ায় এটি ওভারকিল হবে। একটি সাধারণ প্রস্থ-প্রথম-অনুসন্ধানটি সর্বোত্তম উত্তর দেবে।


ওহহহহহ্ মানুষ আমি কোনও বিএফএসের কথা ভাবিনি! অসংখ্য ধন্যবাদ!
gfppaste

ওভারকিল কেমন? বাস্তবায়ন হতে পারে কিছুটা কঠিন আর কিছু নয়।

আমি আরও যোগ করতে চাই যে বিএফএস আরও দক্ষ। বিএফএসের রয়েছে O(|E|), আর ডিজকস্ট্রার রয়েছে O(|E| + |V|log(|V|)
ডগ রামসে

@ ব্যবহারকারী 74৪২ বিএফএস জিক্সস্ট্রাসের চেয়ে দ্রুত। জিক্সট্রা O(mn)যখন বিএফএস রয়েছেO(V + E)
কোডি বাগস্টাইন

13

নিকোলাস ইতিমধ্যে একটি নিখুঁত উত্তর সরবরাহ করেছে। তবে গভীরতা-প্রথম অনুসন্ধানটি ব্যবহার করার জন্য আপনার আসল প্রয়াসটি আমাকে সম্বোধন করুন।

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

dmaxkidmax+i×মিএকটিএক্স==1 তারপরে সমাধানের গভীরতায় মেমরি রৈখিক ব্যবহার করার সময় আপনি অনুকূল সমাধান সন্ধানের গ্যারান্টিযুক্ত।

ঠিক আছে, আপনি ভাবছেন যে নোডগুলি পুনঃ-প্রসারণ করা একটি খারাপ ধারণা। একেবারেই না! এটি যা মেমরির এক রৈখিক গ্রাহকের গ্যারান্টি দেয় যখন সামগ্রিক চলমান সময়কে আধিপত্য করা কেবল সর্বশেষতম যাতে এটি প্রমাণ করা যায় যে এই অ্যালগরিদম ওভারহেডে প্রবেশ করে-1

চিয়ার্স,

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