Showing posts with label Searching. Show all posts
Showing posts with label Searching. Show all posts

Monday, March 2, 2015

KMP (Knuth-Morris-Pratt algorithm)

KMP কি?

kmp স্ট্রিং ম্যাচিং এ্যালগরিদম। Kmp লিনিয়ার টাইমে একটা স্ট্রিং T তে একটা প্যাটার্ন স্ট্রিং P কতবার আছে এবং কোন কোন পজিশনে আছে তা বের করে।

KMP কিভাবে কাজ করে?

Kmp কিভাবে কাজ করে তা বুঝার আগে একটা স্ট্রিং T থেকে প্যাটার্ন স্ট্রিং P কতবার ও কোথায় আছে তার naive solution টা দেখে নেয়া জরুরী।

Naive solution:

উপরে solution এ T এর প্রতি পজিশন থেকে P স্ট্রিং ম্যাচ করে দেখা হচ্ছে এবং কোথাও ম্যাচ না পেলে আবার P স্ট্রং এর প্রথম পজিশনে গিয়ে ম্যাচ করে দেখা হচ্ছে।
Kmp এ্যালগরিদম ম্যাচ না পেলে P স্ট্রিং এর বার বার প্রথম পজিশন এ গিয়ে ম্যাচ করানোর জিনিস টা স্কিপ করে।
Kmp এ্যালগরিদমে একটা ফাংশন থাকে যাকে prefix/π/failure ফাংশন বলা হয়ে থাকে।
এই ফাংশন একটা π এ্যারে তৈরী করে দেয়, যাতে প্যাটার্ন স্ট্রিং P এর সব পজিশনে কতটুক প্রিফিক্স ম্যাচ করে তা থাকে।

Wednesday, November 26, 2014

Python: Graph Theory Algorithm

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

Popular posts