এই ধারণাটি আমার কাছে প্রোগ্রাম শিখার বাচ্চা হিসাবে এবং প্রথম পিআরএনজির মুখোমুখি হয়েছিল occurred এটি এখনও কতটা বাস্তববাদী তা আমি এখনও জানি না তবে এখন স্ট্যাক এক্সচেঞ্জ রয়েছে।
একটি আশ্চর্যজনক সংকোচনের অ্যালগরিদমের জন্য এখানে একটি 14 বছরের পুরানো পরিকল্পনা:
পিআরএনজি নিন এবং s
সিউডো-এলোমেলো বাইটের দীর্ঘ ক্রম পেতে এটি বীজের সাথে বীজ করুন। এই অনুক্রমটিকে অন্য একটি দলের কাছে প্রেরণ করতে আপনার কেবল পিআরএনজি, উপযুক্ত বীজ এবং বার্তার দৈর্ঘ্যের বিবরণ যোগাযোগ করতে হবে। দীর্ঘ পর্যাপ্ত ক্রমের জন্য, সেই বিবরণটি আরও ছোট হবে তারপরে ক্রমটি নিজেই।
এখন ধরুন আমি প্রক্রিয়াটি উল্টাতে পারতাম। পর্যাপ্ত সময় এবং গণনামূলক সংস্থান দেওয়া, আমি একটি নিষ্ঠুর শক্তি অনুসন্ধান করতে পারি এবং একটি বীজ (এবং পিআরএনজি, বা অন্য কথায়: একটি প্রোগ্রাম) খুঁজে পেতে পারি যা আমার কাঙ্ক্ষিত ক্রম তৈরি করে (আসুন বলি বিড়ালদের দুষ্টু হওয়ার কারণে একটি মজাদার ছবি)।
প্রচুর পরিমাণে বিট তৈরি হওয়ার পরে পিআরএনজি পুনরাবৃত্তি করে, তবে "সাধারণ" চক্রের সাথে আমার বার্তাটি খুব সংক্ষিপ্ত তাই এই সমস্যাটি খুব একটা সমস্যার মতো মনে হয় না।
ভয়েলা, একটি কার্যকর (যদি রুবে-গোল্ডবারজিয়ান) ডেটা সংকোচন করার উপায়।
সুতরাং, ধরে নিচ্ছি:
- আমি যে সিকোয়েন্সটি সংকুচিত করতে চাই তা সীমাবদ্ধ এবং অগ্রিম পরিচিত।
- আমি নগদ বা সময় নিয়ে সংক্ষিপ্ত নই (যতক্ষণ না উভয়ের সীমাবদ্ধ পরিমাণ প্রয়োজন)
আমি জানতে চাই:
- এই প্রকল্পের পিছনে যুক্তিতে কি কোনও মৌলিক ত্রুটি রয়েছে?
- এই ধরণের চিন্তার পরীক্ষাগুলি বিশ্লেষণের স্ট্যান্ডার্ড উপায় কী?
সারাংশ
এটি প্রায়শই এমন হয় যে ভাল উত্তরগুলি কেবল উত্তরটিই স্পষ্ট করে না, তবে আমি সত্যই জিজ্ঞাসা করি তা কি what প্রত্যেকের ধৈর্য এবং বিস্তারিত উত্তরের জন্য ধন্যবাদ।
উত্তরের সংক্ষিপ্তসারে আমার নবম চেষ্টাটি এখানে:
- পিআরএনজি / বীজ কোণ কিছুই অবদান রাখে না, এটি আউটপুট হিসাবে পছন্দসই ক্রম উত্পাদন করে এমন একটি প্রোগ্রামের চেয়ে বেশি কিছু নয়।
- কবুতরের নীতি: দৈর্ঘ্যের প্রোগ্রাম (বার্তা উত্পন্ন) এর চেয়ে বেশি দৈর্ঘ্যের> কে এর আরও বার্তা রয়েছে <= কে। সুতরাং কিছু সিকোয়েন্স কেবল মেসেজের চেয়ে কম প্রোগ্রামের আউটপুট হতে পারে না।
- এটি উল্লেখ করার মতো যে প্রোগ্রামটির দোভাষী (বার্তা) আগেই ঠিক করা হয়েছিল। এবং এটির নকশাটি বার্তাগুলির (ছোট) উপসেটটি নির্ধারণ করে যা দৈর্ঘ্যের কে এর বার্তা পাওয়ার পরে উত্পন্ন করা যায়।
এই মুহুর্তে মূল PRNG ধারণাটি ইতিমধ্যে মারা গেছে, তবে নিষ্পত্তি করার জন্য কমপক্ষে একটি শেষ প্রশ্ন রয়েছে:
- প্রশ্ন: আমি কি ভাগ্যবান হতে পারি এবং জানতে পারি যে আমার দীর্ঘ (তবে সীমাবদ্ধ) বার্তাটি কেবলমাত্র <কে বিটের দৈর্ঘ্যের একটি প্রোগ্রামের আউটপুট হতে পারে?
কড়া কথায় বলতে গেলে এটি সুযোগের বিষয় নয় যেহেতু প্রতিটি সম্ভাব্য বার্তা (প্রোগ্রাম) এর অর্থ অবশ্যই আগে থেকেই জানা উচিত। উভয় ক্ষেত্রেই এটা হয় <ট বিট কিছু মেসেজ এর মানে বা তা না হয় ।
আমি যদি> = কে বিটের এলোমেলো বার্তাটি এলোমেলোভাবে বেছে নিই (কেন আমি করব?), আমি কোনও অবস্থাতেই কে বি বিটের চেয়ে কম ব্যবহার করে এটি প্রেরণ করতে পারার সম্ভাবনা বিলুপ্ত হয়ে যাব এবং প্রেরণে সক্ষম না হওয়ার প্রায় নিশ্চিতভাবেই এটি মোটামুটি বি বিটের চেয়ে কম ব্যবহার করে।
OTOH, আমি যদি কে = বিটের চেয়ে কম প্রোগ্রামের আউটপুট হয় তাদের থেকে> = কে বিটের একটি নির্দিষ্ট বার্তা বেছে নিই (ধরে নিই এরকম একটি বার্তা রয়েছে) তবে আমি কার্যত আমি ইতিমধ্যে সংক্রমণিত বিটের সুবিধা গ্রহণ করছি রিসিভার (দোভাষীর নকশা), যা স্থানান্তরিত বার্তার অংশ হিসাবে গণনা করে।
অবশেষে:
- প্রশ্ন: এই সমস্ত এন্ট্রপি / কলমোগোরভ জটিলতা ব্যবসা কী?
পরিশেষে, উভয়ই আমাদের একই জিনিসটি বলুন (সহজতর) কবুতরহোল নীতিটি আমাদের কতটা সংকোচন করতে পারে তা সম্পর্কে বলে: সম্ভবত কিছুটা নয়, সম্ভবত কিছু, তবে অবশ্যই আমরা যতটা অভিনব (আমরা প্রতারণা না করি) ততটা নয়।