Sponsorluk

ডেপথ ফার্স্ট সার্চ অ্যালগরিদম - Depth-First Search

0
2

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

নিচের অ্যানিমেশনটা দেখি, ডেপথ ফার্স্ট সার্চ কিভাবে হয়, তার ভিজুয়াল চিত্রঃ

image_proxy.php?url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2F7%2F7f%2FDepth-First-Search.gifডেপথ ফার্স্ট সার্চ কিভাবে হয়, তার ভিজুয়াল চিত্র। সোর্সঃ উইকিপিডিয়া
ডেপথ ফার্স্ট সার্চ করার জন্য আমরা ব্যবহার করি Stack ডেটা স্ট্র্যাকচার। Stack হচ্ছে Last In First Out ডেটা স্ট্রাকচার। আনফেয়ার ডেটা স্ট্রাকচারও বলতে পারেন। স্ট্যাকের উদাহরণ হচ্ছে খাবারের প্লেট গুলো। প্লেট যেটা সবার আগে রাখা হয়, সেটা থাকে সবার নিচে। যেটা একবারে শেষে রাখা হয়, সেটা থাকে সবার উপরে। এবং আমরা সাধারনত সবার উপরেরটাই সবার আগে নেই।

Depth-First Search Traversal:
আমরা নিচের গ্রাফটি ডেপথ ফার্স্ট সার্চ অ্যালগরিদমের সাহায্যে ভ্রমন করব।
simple-graph-depth-first-search

এ জন্য প্রথমে আমরা রুট নড বা ইনিশিয়াল নড দিয়ে শুরু করব। যেমন 1 হচ্ছে আমাদের রুট নড। এটাকে স্ট্যাকে ঢুকাবো। তাহলে স্ট্যাকে থাকে শুধু 1।

দেখব এক থেকে এর পর যাওয়া যায় 2 তে। স্ট্যাকে 2 ঢুকাবো। 2 থেকে যাওয়া যায় 3 এ। স্ট্যাকে 3 ঢুকাবো। 3 থেকে যাওয়া যায় 4 এ। স্ট্যাকে 4 ঢুকাবো। 4 থেকে আর কোথাও যাওয়া যায় না। স্ট্যাকে থাকবে 1,2,3,4।

চার থেকে যেহেতু আর কোথাও যাওয়া যায় না, আমরা 4 কে স্ট্যাক থেকে বের করব। বের করে ভিজিটেড লিস্টে রাখব। এখন স্ট্যাকের সবার উপরে থাকবে 3। 3 থেকে দেখব কোথায় যাওয়া যায়। 3 থেকে চার এ যাওয়া যায়। 4 আমাদের ভিজিটেড লিস্টে রয়েছে। তাই 4 এ আর ভিজিট করব না। এ ছাড়া 3 থেকে আর কোথাও যাওয়া যায়? যায় না। তাহলে 3 স্ট্যাক থেকে রিমুভ করব। এবং 3 কে ভিজিটেড লিস্টে রাখব। তাহলে স্ট্যাকে থাকবে 1,2।

এখন স্ট্যাকে সবার উপরে যেহেতু 2 থাকবে, আমরা দেখব দুই থেকে প্রথমে কোথায় যাওয়া যায়। দেখব 3 এ যাওয়া যায়। 3 এ আমরা এর আগে একবার গিয়েছি। তাই 3 ছাড়া দেখব আর কোথায় যাওয়া যায়। আর কোথাও যাওয়া যায় না। তাহলে 2কে স্ট্যাক থেকে রিমুভ করব এবং ভিজিটেড লিস্টে রাখব। স্ট্যাকে এখন রয়েছে শুধু 1।

1 থেকে সবার আগে কোথায় যাওয়া যায়? 2 এ। 2 আমরা ভিজিট করেছি। এরপর যাওয়া যায় 5 এ। তাহলে 5 কে স্ট্যাকে ঢুকাবো। 5 থেকে এরপর আগে যাওয়া যায় 6 এ। 6 কে স্ট্যাকে ঢুকাবো। 6 থেকে যাওয়া যায় 7 এ। 7 কে স্ট্যাকে ঢুকাবো। 7 থেকে আর কোথাও যাওয়া যায় না। যেহেতু 7 থেকে আর কোথাও যাওয়া যায় না, তাই আমরা 7 কে স্ট্যাক থেকে রিমুভ করব এবং ভিজিটেড লিস্টে রাখব। তাহলে আমাদের স্ট্যাকে এখন থাকবেঃ 1,5,6

স্ট্যাকের এখন সবার উপরে থাকবে 6। 6 থেকে যেহেতু আর কোথাও যাওয়া যায় না, আমরা 6 কে স্ট্যাক থেকে রিমুভ করব এবং ভিজিটেড লিস্টে রাখব। এখন স্ট্যাকে থাকবে 1,5।

5 ভিজিট করে দেখব 5 থেকে আর কোথাও যাওয়া যায়? হ্যা, যাওয়া যায়। 5 থেকে 6 এ যাওয়া যায়। কিন্তু 6 আমরা একবার ভিজিট করেছি। এরপর আর যাওয়া যায়? হ্যা, 5 থেকে এরপর 8 এ যাওয়া যায়। তাহলে আমরা স্ট্যাকে 8 ঢুকাবো। এখন স্ট্যাকে থাকবে 1,5,8। এভাবে এরপরের নড গুলো আমরা ভিজিট করব।

ডেপথ ফার্স্ট সার্চ এর ব্যবহারঃ সাধারণত সার্চিং এবং সর্টিং যেমন টপোলজিক্যাল সর্টে ডেপট ফার্স্ট সার্চ ব্যবহার করা হয়। কানেক্টেড কম্পোনেন্ট গুলো বের করার জন্যও ডেপথ ফার্স্ট সার্চ ব্যবহার করা যায়। আমরা সাধারনত যখন কোন ম্যাজ/ধাঁধা সমাধান করি, ডেপথ ফার্স্ট সার্চ এর মাধ্যমেই করি।

ডেপথ ফার্স্ট সার্চ অ্যালগরিদমের সুডোকোড নিচে দেওয়া হলো। সোর্সঃ উইকিপিডিয়া।

কমপ্লেক্সিটি: ডেপথ ফাস্ট সার্চ করার সময় আমরা প্রতিটি নড [V] একবার এবং প্রতিটা এজ [E] এ একবার গিয়েছি, তাই কমপ্লেক্সিটি হবে O(V+E)।

কমপ্লিটনেসঃ ডেপথ ফাস্ট সার্চ কমপ্লিট না। সার্চ করার সময় এটি একটি লুপে পড়তে পারে এবং তখন আর এটি সব গুলো নডে সার্চ করতে পারবে না।

মূল কনসেফট বুঝলে যে কোন ল্যাঙ্গুয়েজেই ইমপ্লিমেন্ট করা যাবে। আর ইমপ্লিমেন্ট করতে না পারলে গুগলে সার্চ করলেই অনেক কোড পাওয়া যাবে। তাই আর কোন কোড শেয়ার করলাম না।

 

রিলেটেড লেখাঃ

Site içinde arama yapın
Kategoriler
Read More
Nulled
JusTalk v1.2.1 - Mobile+Web Video Conference for Live Class, Meeting, Webinar, Online Training App Source
JusTalk v1.2.1 – Mobile+Web Video Conference for Live Class, Meeting, Webinar, Online...
By Nettumi 2026-09-18 03:52:14 0 48
Tech
ফেসবুক একাউন্ট ডিলিট এবং ডিএক্টিভ করার মধ্যে পার্থক্য জানুন
ফেসবুক ডিএকটিভ ও ফেসবুক ডিলিট – এই দুইটি বিষয় শুনতে কারো কারো কাছে একই মনে হতে পারে। অনেক...
By Nettumi 2026-09-25 10:08:31 0 31
Nulled
ExProduct v1.7.4 - Single Product Theme Free
ExProduct v1.7.4 – Single Product Theme Free Download. ExProduct is a Modern and...
By Nettumi 2026-09-18 03:46:08 0 49
Nulled
স্মার্টফোনের রাজার রাজকীয় স্টাইল! Samsung Galaxy S26 এর এই লুক জাস্ট অসাধারণ! | Techtunes | টেকটিউনস
অ্যাপল মানুষকে ফিরিয়ে নিচ্ছে হাত ঘড়ির যুগে… অসামান্য প্রাযুক্তিক উৎকর্ষতায়! একটি Apple...
By Nettumi 2026-09-21 05:28:47 0 31
Tech
কটলিন প্রোগ্রামিং ল্যাঙ্গুয়েজে সূচনা
এখন বেশির ভাগ অ্যান্ড্রয়েড রিলেটেড জবের রিকোয়ারমেন্টে কটলিন উল্লেখ থাকে। যারা অ্যান্ড্রয়েড...
By Nettumi 2026-09-30 18:40:12 0 1
‎ ‎ ‎
Nettumi https://nettumi.com