কম্পিউটার টিউটোরিয়াল

ডেটা স্ট্রাকচরে অপ্টিমাল লপসাইডেড ট্রি

অনইকুয়াল লেটার কস্টের জন্য অপ্টিমাল প্রিফিক্স-ফ্রি কোড খুঁজে বের করার সমস্যা হলো একটি মিনিমাম কস্ট প্রিফিক্স-ফ্রি কোড কম্পিউট করা যেখানে এনকোডিং আলফাবেট অনইকুয়াল কস্ট (লেন্থ) লেটার নিয়ে গঠিত, লেন্থ α এবং β, যেখানে α ≤ β। আমরা নিজেদের বাইনারি ট্রি পর্যন্ত সীমাবদ্ধ রাখি।

কোডটি একটি লপসাইডেড ট্রি দ্বারা রিপ্রেজেন্ট করা হয়, ঠিক একইভাবে হাফম্যান ট্রি হাফম্যান কোডিং প্রোব্লেমের সমাধান রিপ্রেজেন্ট করে। সাদৃশ্যের باয়जूद, অনইকুয়াল লেটার কস্টের কেস ক্লাসিক্যাল হাফম্যান প্রোব্লেমের চেয়ে অনেক কঠিন; জেনারেল লেটার কস্টের জন্য কোনো পলিনোমিয়াল টাইম অ্যালগরিদম জানা নেই বা উপলব্ধ নেই, সমৃদ্ধ লিটারেচার থাকলেও।

তবে, α এবং β ইন্টিজার কনস্ট্যান্ট হলে পলিনোমিয়াল টাইম অ্যালগরিদম জানা আছে।

এই কেসে লিস্ট কস্ট ট্রি কম্পিউট করার সমস্যা প্রথমে Karp দ্বারা ১৯৬১ সালে অধ্যয়ন করা হয়েছিল যিনি সমস্যাটি ইন্টিজার লিনিয়ার প্রোগ্রামিং-এ রিডাকশন করে সমাধান করেছিলেন, একটি অ্যালগরিদম তৈরি করেছিলেন যা n এবং β-এ এক্সপোনেনশিয়াল। সেটির পর থেকে এই সমস্যার বিভিন্ন দিক যেমন; অপ্টিমাল ট্রির কস্ট বাউন্ড করা; স্পেশাল কেসে লিমিটেশন যখন সকল ওয়েট সমান।

এই সব প্রচেষ্টার باয়जूद এটি এখনও, আশ চ র্যের কথা, অজানা যে বেসিক প্রোব্লেমটি পলিনোমিয়াল-টাইম সলভেবল কিনা বা NP-কমপ্লিট।

Golin এবং Rote একটি O(nβ+2)-টাইম ডাইনামিক প্রোগ্রামিং অ্যালগরিদম বর্ণনা করেছেন যা ট্রি টপ-ডাউন ফ্যাশনে বিল্ড করে।

এটি উন্নত করা হয়েছে একটি ভিন্ন পদ্ধতিতে (মনোটোন-ম্যাট্রিক্স কনসেপ্ট, যেমন Monge প্রোপার্টি এবং SMAWK অ্যালগরিদম)।

THEOREM 1: অপ্টিমাল লপসাইডেড ট্রি O(nβ) টাইমে কনস্ট্রাক্ট করা যায়।

এটি ছোট β ভ্যালুর কেসের জন্য সবচেয়ে ইফিশিয়েন্ট জানা অ্যালগরিদম; প্র্যাকটিসে লেটার কস্ট সাধারণত ছোট (যেমন, Морзе কোড)।

এইক্ষণে একটি ইফিশিয়েন্ট অ্যপ্রক্সিমেটিং অ্যালগরিদমের স্কিম প্রদান করা হয়েছে।

THEOREM 2

অপ্টিমাল লপসাইডেড ট্রির জন্য একটি পলিনোমিয়াল টাইম অ্যপ্রক্সিমেশন স্কিম আছে।

  1. ডেটা স্ট্রাকচরে ইয়েনস k-শর্টেস্ট পাথ অ্যালগরিদম

  2. ডেটা স্ট্রাকচরে এক্সপ্রেশন ট্রি কনস্ট্রাক্ট করার অ্যালগরিদম

  3. ডেটা স্ট্রাকচরে BSP ট্রি

  4. ডেটা স্ট্রাকচরে রেঞ্জ ট্রি