যখন কোনও বড় সম্ভাবনার অক্ষর নেই তখন হাফম্যান কোডটি কতটা ভাল?


21

একটি সম্ভাব্যতা বিতরণের জন্য Huffman কোড ন্যূনতম পরিমেয় গড় codeword দৈর্ঘ্য সঙ্গে উপসর্গ কোড , যেখানে এর দৈর্ঘ্য হল তম codword। এটি একটি সুপরিচিত উপপাদ্য যে হাফম্যান কোডের প্রতীক প্রতি গড় দৈর্ঘ্য এবং , যেখানে শ্যানন এন্ট্রপি সম্ভাব্যতা বিতরণ।ppiiiiH(p)H(p)+1H(p)=ipilog2pi

ক্যানোনিকাল খারাপ উদাহরণ, যেখানে গড় দৈর্ঘ্য শ্যানন এনট্রপিকে প্রায় 1 দ্বারা ছাড়িয়ে যায়, সম্ভাব্যতা বন্টন যেমন , যেখানে এনট্রপি প্রায় 0, এবং গড় কোডওয়ার্ড দৈর্ঘ্য 1 হয়। এটি দেয় এনট্রপি এবং প্রায় এর codeword দৈর্ঘ্য মধ্যে একটা ফাঁক ।{.999,.001}1

তবে সম্ভাব্যতা বন্টনের বৃহত্তম সম্ভাবনার উপর আবদ্ধ থাকাতে কী ঘটে? ধরুন, উদাহরণস্বরূপ, যে সমস্ত সম্ভাব্যতা কম । আমি এই ক্ষেত্রে সবচেয়ে বড় ব্যবধানটি খুঁজে পেতে পারি could as এর মতো একটি সম্ভাব্যতা বিতরণের জন্য , যেখানে এনট্রপিটি 1 এর চেয়ে কিছুটা বেশি এবং গড় কোডওয়ার্ডের দৈর্ঘ্য 1.5 এর চেয়ে কিছুটা কম ফাঁক । এই আপনি কি করতে পারেন কি শ্রেষ্ঠ? আপনি এই ক্ষেত্রে যে ব্যবধানটি কঠোরভাবে 1 এর চেয়ে কম তার উপরের উপরের বাউন্ড দিতে পারেন?12{.499,.499,.002}0.5

এখন, আসুন বিবেচনা করা যাক যেখানে সমস্ত সম্ভাবনা খুব কম। মনে করুন আপনি অক্ষরের উপর একটি সম্ভাব্যতা বন্টন চয়ন করেছেন , যার প্রতিটি সম্ভাব্যতা । এই ক্ষেত্রে, বৃহত্তম ফাঁক ঘটে যদি আপনি নির্বাচন । এখানে, আপনি প্রায় সমস্ত সম্ভাবনা কম হ'ল এই পরিস্থিতিতে আপনি কি সেরা করতে পারেন?M1/MM2kln2

1+lnln2ln2ln20.08607.

এই প্রশ্নটি এই টিসিএস স্ট্যাকেক্সচেঞ্জ প্রশ্নটি দ্বারা অনুপ্রাণিত হয়েছিল ।

উত্তর:


19

প্রচুর কাগজপত্র রয়েছে যেগুলি আপনি উল্লেখ করেছেন এমন সমস্যাটি অধ্যয়ন করে। সিরিজের প্রথমটি হ'ল গ্যালাগারের একটি কাগজ, "হাফম্যানের মাধ্যমে একটি থিমের পরিবর্তন", আইইইই-আইটি, খণ্ড। 24, 1978, পিপি 668-674। তিনি প্রমাণ করিতে পারেন যে একটি Huffman কোড গড় codeword দৈর্ঘ্য এবং এনট্রপি (তিনি আহ্বান যে পরিমাণ "অতিরেক") মধ্যে পার্থক্য সবসময় কঠোরভাবে চেয়ে কম হয় , (= সম্ভাব্যতা বিতরণের সর্ববৃহৎ সম্ভাব্যতা) ক্ষেত্রে , এবং এটি চেয়ে কম , যদি । আরও ভাল সীমা জানা যায়, আপনি সেগুলি অসংখ্য কাগজপত্রগুলিতে খুঁজে পেতে পারেন যা গ্যালাগার কাজের উদ্ধৃতি দেয়।pp1/2p+0.086p<1/2


2
সেরা বাউন্ডটি ম্যানস্টেটেন দ্বারা পাওয়া গেছে, হাফম্যান কোডগুলির অপ্রয়োজনীয়তার উপর আঁটসাঁট পোশাক
যুবাল ফিল্মাস

2

আবদ্ধ দ্বারা বিচার করে , আমি বিশ্বাস করি যে আপনি একটি ভিন্ন প্রশ্ন জিজ্ঞাসা করতে চেয়েছিলেন ... বা আপনি "গড়" কীভাবে গ্রহণ করবেন তা সুনির্দিষ্টভাবে করেননি। সুতরাং আমি উভয় জবাব দেব। উভয় প্রশ্নের উত্তর নেই।H(p)H(p)+1

প্রথমত, আপনি যদি কোড শব্দের উপর অভিন্ন বিতরণ ব্যবহার করে গড় কোডের দৈর্ঘ্য নির্ধারণ করেন এবং যে কোনও একটি উপাদানের সম্ভাব্যতার উপরের সীমা হিসাবে take নেন, তবে এর দৈর্ঘ্যের কোডটি বিবেচনা করুন যেখানে কোড শব্দের দৈর্ঘ্য এবং বাকী length দৈর্ঘ্যের । বন্টন পুরোপুরি এই কোড দ্বারা এনকোড করা জন্য, গড় দৈর্ঘ্য পন্থা , যদি না আপনি এছাড়াও, একটি নিম্ন এক উপাদান সম্ভাবনা জন্য আবদ্ধ আছে যখন এনট্রপি হয় ।2qq+k2q1q2q+k1q + k q + kq+kq+kq+k2

এখন আসুন "গড় দৈর্ঘ্য" যা গড় কোডওয়ার্ডের দৈর্ঘ্যের অর্থ বিবেচনা করি যখন হাফম্যান কোড জন্য কোড ব্যবহার করা হয় । এখানে, সীমাটি শক্ত, এবং সীমাতে এটি অর্জনের একটি উদাহরণ বিতরণ এমন একটি যা প্রতিটি উপাদান সম্ভাব্যতার সাথে ঘটে occurs জন্য(চূড়ান্ত উপাদানটি কোনও অবশিষ্ট সম্ভাব্যতা অর্পণ করা হয়েছে, তবে এটি asyptotically কোনও তাত্পর্য তৈরি করবে না)।2 কুই ± 1 / 2 কুই জেডp2q±1/2qZ.

উদাহরণস্বরূপ, বিবেচনা করুন Thenq=7.

A+B=128,A2+B/2128,maxAZA ফল দেয় । আমাদের বিতরণে সম্ভাব্যতা , সম্ভাব্যতা with সহ উপাদান রয়েছে এবং একটি উপাদান বাকী অংশ পায়।A=52,B=765226.57627.5

তারপরে , যখন হাফম্যান কোড অর্জন করেছে এন্ট্রপি লোকসান। (উল্লেখ্য, এনট্রপি ক্ষতি একটি নাম আছে, যেখানে আপনি Huffman কোডিং বা কোডিং নির্বিচারে না : Kullback-Liebler বিকিরণ । এটি ব্যবহার করে, আমি কয়েকদিন আগে আবিষ্কার করেছি, চেরনফ সীমানার জন্য উইকিপিডিয়ায় দেখতে পাবেন, আপনি আরও কঠোর দ্বি-পার্শ্বযুক্ত চেরনফ সীমানা বাড়ে)H(X)=(526.5+767.5)/128=7.09375(520.5760.5)/1280.99436QD(PQ)=pilogpiqi+(1pi)log1pi1qi


1
আমি এই দ্বিতীয় উদাহরণ দ্বারা কিছুটা বিস্মিত। আপনার যদি 128 কোডওয়ার্ড রয়েছে, তবে গড় শব্দের দৈর্ঘ্য 7 সহ একটি কোড রয়েছে (প্রকৃতপক্ষে, সমস্ত শব্দের দৈর্ঘ্য 7 আছে), যা আপনার বক্তব্যটির সাথে বিরোধী যে এনট্রপি 7.09375। এই ডিস্ট্রিবিউশনের এনট্রপি (যা আপনি একটি গড় এবং গড় হিসাবে নয়) , যখন হাফম্যান কোডের গড় দৈর্ঘ্য 7. হয়। এটি একটি ফাঁক দেয় (বা কুলব্যাক-লেবলার ডাইভারজেন) 0.12 এর কাছাকাছি যা আমার উদাহরণের চেয়ে কিছুটা ভাল বলে মনে হয় তবে 1 এর কাছাকাছি নয়log2pi
পিটার শর

এবং সত্যই, আপনি ঠিক বলেছেন। আমি সম্ভাব্যতা বিতরণ অধীনে প্রত্যাশিত কোডওয়ার্ডের দৈর্ঘ্য সম্পর্কে জিজ্ঞাসা করার ইচ্ছা নিয়েছিলাম । p
পিটার শর

ওফস, আমি বনাম সম্পর্কে ভুল গণনা করেছি । আমরা এখনও চেয়ে সামান্য কম চাই, তবে মতো কিছু , কম প্রবেশিকে নিম্ন সারিতে বাধ্য করতে। এটিABA2+B/22kA+2B=2kA=21/221B.
কার্ল

আসলে এটি ... তবে সমীকরণের এই পদ্ধতির কোনও ইতিবাচক সমাধান নেই - দেখে মনে হচ্ছে আমরা সবকিছুকে অর্ধ-পূর্ণসংখ্যার শক্তি হিসাবে বাধ্য করতে পারি না । সুতরাং এবং পরিবর্তে আমরা বিবেচনা করতে পারি, উদাহরণস্বরূপ হাফম্যান কোডের অর্ধেকের জন্য এবং বাকিদের জন্য, এন্ট্রি দেওয়া ...2A+B221/2(1+x)/2k(1x)/2k+132k
কার্ল

সুতরাং, এটি চেষ্টা করুন (অনুকূল নয় - আমি মনে করি এটি নির্ভর করে যে আপনি কীভাবে উপরে উঠে যাবেন বা তার উপরে নির্ভর করবেন)। সম্ভাব্যতা সঙ্গে এন্ট্রি এবং এন্ট্রি সম্ভাব্যতা সঙ্গে এনট্রপি হয়েছে । পরিবর্তে এটি সম্ভাব্যতা এবং এন্ট্রি সম্ভাব্যতা সহ টি এন্ট্রিতে পরিবর্তন করুন । এই বিতরণের এন্ট্রপিটি যা 6.4023 দেয়, যখন হাফম্যান কোডের এনট্রপি y.৫ ইউনিফর্মের অধীনে, এবংসুতরাং আমি ভুল গণনা না করা (এবং আমি প্রায়শই করি), এটি প্রায় একটি ফাঁক দেয়641/1281281/2567.5641/12821281/256(21/2)1/(22)7.5+(11/(2(2)))5.802(121.5)7+21.58=7.3535.0.95
কার্ল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.