PRNG গুলি কি যাদুতে স্ট্রেস সংকোচনের জন্য ব্যবহার করা যেতে পারে?


38

এই ধারণাটি আমার কাছে প্রোগ্রাম শিখার বাচ্চা হিসাবে এবং প্রথম পিআরএনজির মুখোমুখি হয়েছিল occurred এটি এখনও কতটা বাস্তববাদী তা আমি এখনও জানি না তবে এখন স্ট্যাক এক্সচেঞ্জ রয়েছে।

একটি আশ্চর্যজনক সংকোচনের অ্যালগরিদমের জন্য এখানে একটি 14 বছরের পুরানো পরিকল্পনা:

পিআরএনজি নিন এবং sসিউডো-এলোমেলো বাইটের দীর্ঘ ক্রম পেতে এটি বীজের সাথে বীজ করুন। এই অনুক্রমটিকে অন্য একটি দলের কাছে প্রেরণ করতে আপনার কেবল পিআরএনজি, উপযুক্ত বীজ এবং বার্তার দৈর্ঘ্যের বিবরণ যোগাযোগ করতে হবে। দীর্ঘ পর্যাপ্ত ক্রমের জন্য, সেই বিবরণটি আরও ছোট হবে তারপরে ক্রমটি নিজেই।

এখন ধরুন আমি প্রক্রিয়াটি উল্টাতে পারতাম। পর্যাপ্ত সময় এবং গণনামূলক সংস্থান দেওয়া, আমি একটি নিষ্ঠুর শক্তি অনুসন্ধান করতে পারি এবং একটি বীজ (এবং পিআরএনজি, বা অন্য কথায়: একটি প্রোগ্রাম) খুঁজে পেতে পারি যা আমার কাঙ্ক্ষিত ক্রম তৈরি করে (আসুন বলি বিড়ালদের দুষ্টু হওয়ার কারণে একটি মজাদার ছবি)।

প্রচুর পরিমাণে বিট তৈরি হওয়ার পরে পিআরএনজি পুনরাবৃত্তি করে, তবে "সাধারণ" চক্রের সাথে আমার বার্তাটি খুব সংক্ষিপ্ত তাই এই সমস্যাটি খুব একটা সমস্যার মতো মনে হয় না।

ভয়েলা, একটি কার্যকর (যদি রুবে-গোল্ডবারজিয়ান) ডেটা সংকোচন করার উপায়।

সুতরাং, ধরে নিচ্ছি:

  • আমি যে সিকোয়েন্সটি সংকুচিত করতে চাই তা সীমাবদ্ধ এবং অগ্রিম পরিচিত।
  • আমি নগদ বা সময় নিয়ে সংক্ষিপ্ত নই (যতক্ষণ না উভয়ের সীমাবদ্ধ পরিমাণ প্রয়োজন)

আমি জানতে চাই:

  • এই প্রকল্পের পিছনে যুক্তিতে কি কোনও মৌলিক ত্রুটি রয়েছে?
  • এই ধরণের চিন্তার পরীক্ষাগুলি বিশ্লেষণের স্ট্যান্ডার্ড উপায় কী?

সারাংশ

এটি প্রায়শই এমন হয় যে ভাল উত্তরগুলি কেবল উত্তরটিই স্পষ্ট করে না, তবে আমি সত্যই জিজ্ঞাসা করি তা কি what প্রত্যেকের ধৈর্য এবং বিস্তারিত উত্তরের জন্য ধন্যবাদ।

উত্তরের সংক্ষিপ্তসারে আমার নবম চেষ্টাটি এখানে:

  • পিআরএনজি / বীজ কোণ কিছুই অবদান রাখে না, এটি আউটপুট হিসাবে পছন্দসই ক্রম উত্পাদন করে এমন একটি প্রোগ্রামের চেয়ে বেশি কিছু নয়।
  • কবুতরের নীতি: দৈর্ঘ্যের প্রোগ্রাম (বার্তা উত্পন্ন) এর চেয়ে বেশি দৈর্ঘ্যের> কে এর আরও বার্তা রয়েছে <= কে। সুতরাং কিছু সিকোয়েন্স কেবল মেসেজের চেয়ে কম প্রোগ্রামের আউটপুট হতে পারে না।
  • এটি উল্লেখ করার মতো যে প্রোগ্রামটির দোভাষী (বার্তা) আগেই ঠিক করা হয়েছিল। এবং এটির নকশাটি বার্তাগুলির (ছোট) উপসেটটি নির্ধারণ করে যা দৈর্ঘ্যের কে এর বার্তা পাওয়ার পরে উত্পন্ন করা যায়।

এই মুহুর্তে মূল PRNG ধারণাটি ইতিমধ্যে মারা গেছে, তবে নিষ্পত্তি করার জন্য কমপক্ষে একটি শেষ প্রশ্ন রয়েছে:

  • প্রশ্ন: আমি কি ভাগ্যবান হতে পারি এবং জানতে পারি যে আমার দীর্ঘ (তবে সীমাবদ্ধ) বার্তাটি কেবলমাত্র <কে বিটের দৈর্ঘ্যের একটি প্রোগ্রামের আউটপুট হতে পারে?

কড়া কথায় বলতে গেলে এটি সুযোগের বিষয় নয় যেহেতু প্রতিটি সম্ভাব্য বার্তা (প্রোগ্রাম) এর অর্থ অবশ্যই আগে থেকেই জানা উচিত। উভয় ক্ষেত্রেই এটা হয় <ট বিট কিছু মেসেজ এর মানে বা তা না হয়

আমি যদি> = কে বিটের এলোমেলো বার্তাটি এলোমেলোভাবে বেছে নিই (কেন আমি করব?), আমি কোনও অবস্থাতেই কে বি বিটের চেয়ে কম ব্যবহার করে এটি প্রেরণ করতে পারার সম্ভাবনা বিলুপ্ত হয়ে যাব এবং প্রেরণে সক্ষম না হওয়ার প্রায় নিশ্চিতভাবেই এটি মোটামুটি বি বিটের চেয়ে কম ব্যবহার করে।

OTOH, আমি যদি কে = বিটের চেয়ে কম প্রোগ্রামের আউটপুট হয় তাদের থেকে> = কে বিটের একটি নির্দিষ্ট বার্তা বেছে নিই (ধরে নিই এরকম একটি বার্তা রয়েছে) তবে আমি কার্যত আমি ইতিমধ্যে সংক্রমণিত বিটের সুবিধা গ্রহণ করছি রিসিভার (দোভাষীর নকশা), যা স্থানান্তরিত বার্তার অংশ হিসাবে গণনা করে।

অবশেষে:

পরিশেষে, উভয়ই আমাদের একই জিনিসটি বলুন (সহজতর) কবুতরহোল নীতিটি আমাদের কতটা সংকোচন করতে পারে তা সম্পর্কে বলে: সম্ভবত কিছুটা নয়, সম্ভবত কিছু, তবে অবশ্যই আমরা যতটা অভিনব (আমরা প্রতারণা না করি) ততটা নয়।


6
আপনার প্রশ্নটিকে কিছুটা সামান্য তাত্পর্য করুন এবং আপনি এখনও প্রতিটি স্ট্রিং সংকোচ করতে পারবেন না (নীচের উত্তরগুলিতে বর্ণিত হিসাবে) তবে আপনি অ্যালগরিদমিক তথ্য থিয়োরি ( en.wikedia.org/wiki/Kolmogorov_complexity ) পান। "সার্বজনীন টিউরিং মেশিন" এবং "বীজ" দিয়ে "পিআরএনজি" প্রতিস্থাপন করুন "ইনপুট টেপ এমন একটি প্রোগ্রাম রয়েছে যা আমি চাইলে আউটপুট তৈরি করে।" বেশিরভাগ ইনপুট টেপগুলি তাদের উত্পন্ন আউটপুটগুলির চেয়ে দীর্ঘ হয় তবে প্রতিটি আউটপুটের জন্য কমপক্ষে একটি ইনপুট উপস্থিত থাকে যা সেই আউটপুট তৈরি করে।
বেড়ানো

না, তবে সঙ্কুচিত আকারটি উত্সটির এনট্রপি ^ _ ^
নবীন

5
আপনি যদি বাস্তবে এটি বাস্তবায়ন করেন তবে আপনি একটি আকর্ষণীয় জিনিস খুঁজে পাবেন: স্বেচ্ছাসেবীর ইনপুটটি পুনর্গঠন করার জন্য, আপনার বীজ + আরএনজি প্রয়োজন যা গড়ে, মূল তথ্য হিসাবে প্রতিটি বিট। উফ।
চিহ্নিত করুন

এটি কেন কাজ করবে না তা বোঝার আরেকটি উপায়: পিআরএনজি স্বেচ্ছায় দীর্ঘ আউটপুট উত্পন্ন করতে পারে তা স্বেচ্ছাসেবী আউটপুট উত্পন্ন করতে পারে না । (একটি পিআরএনজির ফলাফল সর্বদা কিছু স্থির চক্র বা প্যাটার্ন হবে, এটি তার রাজ্যের আকার দ্বারা সীমাবদ্ধ))
পাই ডিলপোর্ট

@ পিটডেলপোর্ট, যে কোনও এন এর জন্য একটি পিআরএনজি রয়েছে যার চক্রটি অনেক বেশি বড় এবং প্রশ্নটি উত্থাপিত প্রশ্নটি আগে থেকেই জানা গেছে। সুতরাং আমি নিশ্চিত নই যে পিআরএনজি চক্রটি নিজেই সরাসরি প্রশ্নটি নিষ্পত্তি করে।

উত্তর:


43

আপনি একটি উজ্জ্বল নতুন সংক্ষেপণ স্কিম পেয়েছেন, তাই না? ঠিক আছে তাহলে...

♫ আসুন সবাই খেলি, এনট্রপি গেম ♫

সহজ সরল হতে, আমি ধরে নেব যে আপনি কিছু নির্দিষ্ট জন্য ঠিক বিটের বার্তা সংকুচিত করতে চান । তবে আপনি এটি দীর্ঘতর বার্তাগুলির জন্য ব্যবহার করতে সক্ষম হতে চান, সুতরাং আপনার দ্বিতীয় বার্তা থেকে আপনার প্রথম বার্তাটি আলাদা করার কিছু উপায় প্রয়োজন (এটি আপনি কী সংকোচিত করেছেন তা অস্পষ্ট হতে পারে না)।nn

সুতরাং, আপনার প্রকল্পটি PRNG / বীজের কিছু পরিবারকে নির্ধারণ করে যেমন আপনি যদি সংকোচন করতে চান, , তবে আপনি কেবল কিছু সংখ্যক লিখবেন যা কিছু পূর্বসূচীযুক্ত (এবং ভাগ করা) বীজ / পিআরএনজি কম্বো সনাক্ত করে যা সেই বিটগুলি পরে তৈরি করে প্রশ্ন। ঠিক আছে। দৈর্ঘ্য এর কতগুলি বিট-স্ট্রিং রয়েছে? (দুটি আইটেমের মধ্যে আপনার পছন্দ আছে; এবং )। তার মানে আপনাকে এই কম্বোগুলির গণনা করতে হবে । সমস্যা নেই. যাইহোক, আপনি লিখতে প্রয়োজন আমাকে পড়ার জন্য বাইনারি হবে। কত বড় করতে পেতে? ঠিক আছে, এটি মতো বড় হতে পারে01000111001knn2n012nkk2n। out লিখতে আমার কতগুলি বিট দরকার ? ।2nlog2n=n

ওহো! আপনার সংকোচনের স্কিমটি যতক্ষণ আপনি সংকুচিত করছেন ততক্ষণ বার্তাগুলি প্রয়োজন!

"হাহাহা!", আপনি বলেছেন, "তবে এটি সবচেয়ে খারাপ ক্ষেত্রে! আমার একটি বার্তা ম্যাপ করা হবে , যা প্রতিনিধিত্ব করতে কেবল বিট প্রয়োজন! বিজয়!"01

হ্যাঁ, তবে আপনার বার্তাটি দ্ব্যর্থহীন হতে হবে! আমি কিভাবে জানাতে পারব পৃথক্ দ্বারা অনুসরণ থেকে ? যেহেতু আপনার কিছু কীগুলি দৈর্ঘ্য , সেগুলি অবশ্যই অবশ্যই থাকা উচিত, না হলে আপনি কোথায় শুরু করেছেন এবং কোথায় থামলেন তা আমি বলতে পারি না।1010n

"হাহাহা!", আপনি বলেছেন, "তবে আমি প্রথমে বাইনারিগুলিতে স্ট্রিংয়ের দৈর্ঘ্যটি স্থাপন করতে পারি! তার জন্য কেবল গণনা করা দরকার , যা বিট দ্বারা প্রতিনিধিত্ব করা যেতে পারে ! সুতরাং আমার এখন উপসর্গযুক্ত আসে কেবলমাত্র বিট, আমি এখনও জিতেছি! "nlogn0logn

হ্যাঁ, তবে এখন সেই প্রকৃত বড় সংখ্যাগুলি বিটগুলির সাথে উপসর্গযুক্ত। আপনার সংক্ষেপণ স্কিমটি আপনার বার্তাগুলির কিছু আরও দীর্ঘ করে দিয়েছে! আর অর্ধেক সব আপনার সংখ্যার সঙ্গে শুরু , তাই অর্ধেক আপনার বার্তাগুলির যে অনেক লম্বা হয়!logn1

তারপরে আপনি একটি সমাপ্তি চরিত্র, সংখ্যাটি জিপিং, এবং দৈর্ঘ্যটি সংকোচনের মতো আরও ধারণাগুলি ছড়িয়ে দিতে এগিয়ে যান, তবে ফলাফলের বার্তাটি কেবল দীর্ঘতর হয়ে থাকে এমন সমস্ত ক্ষেত্রেই এটি চালিত হয়। প্রকৃতপক্ষে, প্রতিটি বার্তার জন্য আপনি কিছু বার্তা সংরক্ষণ করেন, অন্য একটি বার্তা প্রতিক্রিয়াতে আরও দীর্ঘতর হবে। সাধারণভাবে, আপনি কেবলমাত্র আপনার বার্তাগুলির "ব্যয়" ঘুরে দেখছেন। কিছুটা খাটো করা অন্যকে আরও দীর্ঘায়িত করবে। আপনি সত্যিই পর্যাপ্ত জায়গা নেই লেখার চেয়ে কম স্থান বিভিন্ন বার্তা বাইনারি দৈর্ঘ্যের স্ট্রিং ।2n2nn

"হাহাহা!", আপনি বলেছেন, "তবে আমি কিছু মেসেজকে 'বোকা' হিসাবে বেছে নিতে এবং এটিকে অবৈধ করে তুলতে পারি! তারপরে আমার সমস্ত উপায়ে count গুনতে হবে না , কারণ আমি এতগুলি বার্তা সমর্থন করি না! "2n

আপনি ঠিক বলেছেন, কিন্তু আপনি সত্যিই জিততে পারেন নি। আপনি সমর্থন করেছেন এমন বার্তাগুলির সেট আপনি সঙ্কুচিত করেছেন। যদি আপনি কেবলমাত্র এবং বার্তাগুলি হিসাবে সমর্থন করে থাকেন তবে অবশ্যই আপনার ঠিক , যা আমি যা বলেছিলাম তার সাথে মেলে। এখানে, । বার্তাগুলির প্রকৃত দৈর্ঘ্য গুরুত্বপূর্ণ নয়, এটি কতটি রয়েছে।a=0000000011010b=111111110101000a0b1n=1

"হাহাহা!", আপনি বলেছেন, "তবে আমি কেবল নির্ধারণ করতে পারি যে এই নির্বোধ বার্তাগুলি বিরল! আমি বিরলগুলি খুব বড় করব এবং সাধারণগুলি ছোট করব! তারপরে আমি গড়ে জিতি!"

হাঁ! অভিনন্দন, আপনি সবেমাত্র এনট্রপি আবিষ্কার করেছেন ! আপনার যদি বার্তা থাকে, যেখানে ম বার্তাটি প্রেরণের সম্ভাবনা রয়েছে, তবে আপনি আপনার প্রত্যাশিত বার্তাটির দৈর্ঘ্যটি এন্টারপ্রাই এ পেতে পারেন বার্তা সেট। এটি এক ধরণের অদ্ভুত অভিব্যক্তি, তবে সমস্ত বার্তা একইরকম হওয়ার সম্ভাবনা সবচেয়ে কম এবং কিছু যখন অন্যের চেয়ে বেশি সাধারণ হয় তখন তা আপনাকে সবচেয়ে বেশি জানা উচিত। চূড়ান্তভাবে, আপনি যদি মূলত জানেন তবে প্রতিটি বার্তা হতে । তারপরে আপনি এই সুপার দক্ষ কোডটি ব্যবহার করতে পারেন: ,i p i H = n i = 1 p আমি লগ ( 1 / p i ) a = 000111010101 a 0 x 1 x 1 H HnipiH=i=1npilog(1/pi)a=000111010101a0x1xঅন্যথায়। তারপরে আপনার প্রত্যাশিত বার্তার দৈর্ঘ্যটি মূলত , যা দুর্দান্ত and এবং এটি এনট্রপি সত্যিই কাছাকাছি হতে চলেছে । যাইহোক, একটি নিম্ন গণ্ডি, এবং আপনি যতই চেষ্টা করুন না কেন আপনি এটিকে সত্যিই হারাতে পারবেন না।1HH

এনট্রপিকে বীট দাবি করে এমন যে কোনও কিছু সম্ভবত সংকুচিতভাবে সংকুচিত বার্তা পুনরুদ্ধার করার জন্য যথেষ্ট তথ্য দিচ্ছে না, বা এটি ভুল wrong এন্ট্রপি এমন একটি শক্তিশালী ধারণা যা আমরা এর সাথে কিছু অ্যালগরিদমের চলমান সময়কে নিম্ন-সীমাবদ্ধ (এবং কখনও কখনও এমনকি উপরের দিকের দিকেও ) করতে পারি, কারণ তারা যদি সত্যই দ্রুত (বা সত্যই ধীর) চালায় তবে তাদের অবশ্যই এন্ট্রপি লঙ্ঘনকারী কিছু করা উচিত ।


13
ছেলে, তুমি যখন আমাকে ভান করছ তখন আমি কি নির্বোধ শব্দ করি? Godশ্বরের ধন্যবাদ আমি এন্ট্রপি আবিষ্কার করে গর্ব করতে পারি। কৌতুক একপাশে, এটি একটি উত্তম উত্তর - কেবল যদি সুরটি উপহাসের সাথে এতটা আঁকানো না হত।

6
আমি উপহাস করার ইচ্ছা করছিলাম না, কেবল "একটি আশ্চর্যজনক সংকোচনের অ্যালগরিদমের জন্য 14 বছর বয়সের স্কিম" ধারণার সাথে খেলছিলাম। :)
অ্যালেক্সিস বেনগেসনার

3
আমার কাছেও উপহাস করার মতো শোনেনি :) এটি জনপ্রিয় বিজ্ঞানের সমস্যাগুলি ব্যাখ্যা করার জন্য একটি সাধারণ পরিকল্পনা (এবং আরও কয়েকটি ক্ষেত্র), যদিও এটি সত্য যে "প্রশ্নকারী" সাধারণত "সত্য" না হয়ে এলিস বা বব ব্যক্তি: ডি দেখুন কত সহজেই আপনি হঠাৎ বুঝতে পারবেন যে সমস্যাটি আসলে কত জটিল! (এটি উল্লেখ করার জন্য নয় যে যখন আমি আমার মাথার মধ্যে একটি জটিল সমস্যাটি ভাবছি তখন আমি একই প্রক্রিয়াটি ব্যবহার করি - "আরও মাথা আরও জানুন" অনুকরণে একটি অভ্যন্তরীণ সংলাপ আশ্চর্যজনকভাবে ভাল)
লুয়ান

2
@ স্টেভ জেসোপ, এটি একটি ভ্রান্ত দ্বৈতত্ত্ব এবং এটি সেখানে যাওয়া উচিত নয়। এটি একটি ভাল উত্তর এবং আমি সম্ভবত অতিরিক্ত সংবেদনশীল, এটাই।

3
@ চিপমনকি, আমি মনে করি এটি এখনও "এনট্রপি গেম" সম্পর্কে অ্যালেক্সিসের উত্তর দ্বারা আবৃত। সম্ভবত, এটি করতে প্রয়োজনীয় অ্যালগরিদমের সংখ্যা এত বেশি হবে যে কোনটি ব্যবহৃত হয়েছিল তা নির্দিষ্ট করার জন্য প্রয়োজনীয় বিটের সংখ্যা সুবিধাটি বাতিল করে দেবে।

21

আছে কম দৈর্ঘ্যের বাইনারি স্ট্রিং , এবং দৈর্ঘ্যের বাইনারি স্ট্রিং ঠিক । এর অর্থ হ'ল আপনার সংক্ষেপণ অ্যালগরিদম যা-ই হোক না কেন , কিছু স্ট্রিং অবশ্যই থাকতে পারে যা এটি মোটেও সংকোচন করতে পারে না, কেবল কারণ মূল স্ট্রিং থেকে সংকুচিত স্ট্রিংয়ের ম্যাপিংটি ইনজেকশন (এক-থেকে-এক) হওয়া আবশ্যক। কলমোগোরভ জটিলতার অনেকগুলি প্রয়োগের পিছনে এটিই চালিকা শক্তি।এন 2 এন এন2N1N2NN

বাস্তব জীবনে, আমরা প্রায়শই আমরা যে সংক্রমগুলি সংকোচিত করছি সে সম্পর্কে কিছুটা জানি, বলুন এটি ভয়েস বা কোনও ছবি। লসলেস সংকোচনের ক্ষেত্রে, শ্যাননের উত্স কোডিং উপপাদ্যটি দেখায় যে অনুকূল সংকোচনের হার উত্সের এনট্রপির সমান। ক্ষতিকারক এনকোডিংয়ের জন্য তথ্য তত্ত্বের অন্যান্য উপপাদ্য (হার-বিকৃতি তত্ত্ব) রয়েছে। এমনকি এই ক্ষেত্রেও আপনি কতটা তথ্য সংকোচন করতে পারেন তার সীমা রয়েছে।


আমি এর আগে কখনও এটিকে দেখিনি, তবে এটি কেবল আমার কাছে এসেছিল: শ্যানন বলেছে যে সর্বোত্তম ক্ষেত্রে এমনকি নির্বিচারে সংকোচিত করা যায় না এবং পাইগনহোল নীতিমালা গ্যারান্টি দেয় যে একটি খারাপ পরিস্থিতি অবশ্যই সংকুচিত করা যায় না। মোটেই এটি কি বোধগম্য বৈশিষ্ট্য?
জার্গ ডব্লু মিটাগ

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

আহ, অবশ্যই if input.empty? then output_very_long_stringসেরা ক্ষেত্রে হিসাবে একটি অসীম সংক্ষেপণ অনুপাত দিতে হবে। আসলে, একটি সংক্ষেপণ অ্যালগরিদম এমনকি এটি ব্যবহার করে। (আমি নাম দুর্ভাগ্যবশত ভুলে।) এটা খুবই সংক্ষিপ্ত স্ট্রিং জন্য দেয়ার উদ্দেশ্যে করা হয়, এবং আপনি এটা পছন্দ হার্ড কোডেড সাবস্ট্রিং জন্য বিশেষ এনকোডিং হয়েছে http://, www., .comইত্যাদি।
Jörg ডব্লু মিট্টাগ

আমি যদি কোনও পিআরএনজি পরিবারকে এমনভাবে ডিজাইন করার উপায় পাই যাতে তারা যে অনুক্রমগুলি প্রকাশ করতে পারে না আমি সেগুলি আগেই বাদ দিই? (গোলমাল আকারের ঝর্ণা মনে মনে)।

3
@ foo1899, যদি আপনি নির্ধারণ করতে পারেন যে কিছু স্ট্রিংগুলি সম্ভবত অন্যদের থেকে থাকে তবে হ্যাঁ, আপনি গড়ে আরও ভাল করতে পারবেন। সাধারণভাবে, নিম্ন আপনার প্রত্যাশিত সঙ্কুচিত বার্তার আকার কে পরাজিত করতে পারে না । যেখানে হ'ল সম্ভাব্য বার্তা প্রেরণের সম্ভাবনা। সমস্ত বার্তা সমান সম্ভাবনা আছে, এবং ছোট যখন অন্যথায় সর্বোচ্চ হয়। চূড়ান্তভাবে, যদি প্রায় প্রতিটি বার্তা "হ্যালো" হয় এবং আপনি অন্য প্রতিটি বার্তা বিরল হয় তবে আপনি দুর্দান্ত গড় পারফরম্যান্স পেতে পারেন। কেবল "হ্যালো" -> 0 এবং x-> 1x সেট করুন otherwise পি আই এইচH=ipilog1/pipiH
অ্যালেক্সিস বেঞ্জেসনার

7

কল্পনা করুন আপনার বীজ যে দৈর্ঘ্য । তাই এটি সর্বাধিক আউটপুট তোমার PRNG বীজ একটি নির্ণায়ক ফাংশন দৈর্ঘ্যের বিভিন্ন সিকোয়েন্স । আছে তাই আপনার পরিকল্পনা কাজ যাচ্ছে না যদি না তা পিছনে পড়ে মাত্র পুরো পাঠানোর এগুলোর -বিট স্ট্রিং কোনও সংশ্লিষ্ট ।কে 2 কে এন 2 এন এন এসsk2kn2nns

(অন্য উত্তর হিসাবে উল্লেখ করা হয়েছে, এটি আপনি যে কোনও সংকোচন ফাংশনটি বেছে নেওয়ার জন্য ঘটবে)


নিজেই এটি প্রমাণ করে না যে আমি কোনও পিআরএনজি নির্মাণ করতে পারছি না যা কেবলমাত্র আমার নির্বাচিত ক্রমটিকে এর সম্ভাব্য আউটপুটগুলির একটি হিসাবে তৈরি করার জন্য ঘটে, যখন এর জন্য খুব কম বিটের প্রয়োজন হয়। আমি অন্যান্য উত্তরগুলি থেকে বুঝতে পারছি, এনট্রপি প্রয়োজনীয় বিটগুলির সংখ্যার উপর নিম্ন স্তরে কার্যকরভাবে প্রয়োগ করে। এটি হ'ল আমি আমার নির্বাচিত অনুক্রমের জন্য স্বেচ্ছায় ভাল করতে পারি না।

এই সমস্ত কথাই হ'ল যদি আপনি আপনার প্রিয় পিআরএনজি তৈরি করেন তবে আমি আপনার কাছে এমন ক্রম নিয়ে এসেছি যা এটি উত্পাদন করে না, যা ইতিমধ্যে আপনার ধারণাটিকে ভঙ্গ করে। একটি শক্তিশালী বিবৃতিটি এমন কিছু ক্রম রয়েছে যা কোনও কোনও সংক্ষিপ্ত প্রোগ্রামের দ্বারা নির্গত হয় না। (অন্য কথায়, আমার ক্রমটি দেখার পরে আমি আপনাকে আপনার ক্রিয়াকলাপ পরিবর্তন করতে দিলেও আপনি এখনও হারাতে পারেন That's ইউভাল "কোলমোগোরভ জটিলতা" দিয়ে এটাই বোঝায়))
লুই

4

ইতিমধ্যে উত্তর দেওয়া অন্যান্য পয়েন্টগুলির পাশাপাশি, আমি কেবল এই লিঙ্কটি যুক্ত করতে চাই: https://www.schneier.com:443/blog/archives/2009/09/t__ghug_cr.html

এখন, আমাদের সূর্যের বার্ষিক শক্তি আউটপুট প্রায় 1.21 × 10 ^ 41 এর্গ er আমাদের আদর্শ কম্পিউটারে প্রায় 2.7 × 10 ^ 56 একক বিট পরিবর্তনগুলি পাওয়ার পক্ষে এটি যথেষ্ট; তার সমস্ত মানগুলির মধ্যে 187-বিট কাউন্টার লাগাতে পর্যাপ্ত রাষ্ট্র পরিবর্তন করে changes যদি আমরা কোনও ডাইসন গোলকটি সূর্যের চারপাশে তৈরি করি এবং 32 বছর ধরে তার সমস্ত শক্তি কোনও ক্ষতি ছাড়াই ক্যাপচার করি তবে আমরা একটি কম্পিউটারকে 2 ^ 192 পর্যন্ত গুনতে সক্ষম করতে পারি। অবশ্যই, এই কাউন্টারটি দিয়ে কোনও কার্যকর গণনা সম্পাদন করার শক্তি এড়ানো যায় না।

সুতরাং কেবলমাত্র পুনরাবৃত্তি (কোনও তুলনা ...) আপনার পছন্দসই ডেটাগুলির একটি বৈধ 187 বিট নক্ষত্র খুঁজে পেতে এক বছরেরও বেশি সময় ধরে সূর্যের নিরীক্ষণের চেয়ে বেশি শক্তির আদর্শ অবস্থার অধীনে (অর্জনযোগ্য নয়) নেওয়া হবে।


1

একটি খুব দ্রুত প্রমাণ যে একটি সার্বজনীন সংক্ষেপক উপস্থিত থাকতে পারে না। ধরা যাক আপনি একটি তৈরি করেন এবং আপনি একটি ইনপুট সংকুচিত করেন। এখন, পুনরাবৃত্তভাবে আপনার প্রোগ্রামের আউটপুট সংকোচনের। আপনি যদি সর্বদা আকার হ্রাস করতে পারেন তবে প্রতিটি পদক্ষেপে এটি আরও ছোট এবং ছোট হয়ে যাবে, যতক্ষণ না আপনি 1 বিট নামেন।

আপনি তর্ক করতে পারেন যে, সম্ভবত, আপনার অ্যালগরিদমের আউটপুটটির এমন কাঠামো রয়েছে যে এটি আরও সংকোচিত করা যায় না, তবে আপনি পুনরায় সংকোচন করার আগে কেবল একটি ডিস্ট্রিমেন্টিক শ্যাফেল * প্রয়োগ করতে পারেন।

পাদটীকা: কিছু নির্দ্বন্দ্বী বদলানো কিছু সংক্ষেপণ স্কিমগুলিতে আসলে সহায়তা করে: http://pytables.github.io/usersguide/optimization.html?hightlight=shuffling#shufflingoptim


আমি মনে করি আপনি অনুপস্থিত যে প্রতিটি সংকুচিত বার্তাটির সাথে একটি বীজ sযুক্ত রয়েছে। ২৩৪৪ এর এসএসএস সহ 01001011 বার্তাটি একই সাথে একই বার্তায় 3924 এর ম্যাসেজ থেকে পৃথক হবে I যদি আমি কোনওভাবেই foo1899 এর অ্যালগরিদমকে ভুল না বুঝি।
আজিরাহ

1

"সংক্ষেপণ" এর জন্য পিআরএনজি ব্যবহার মূলত একটি পরিস্থিতিতে কার্যকর: যখন "র্যান্ডম" গুচ্ছ ডেটা ব্যবহার করা প্রয়োজন এবং কোন ডেটা ব্যবহার করা হয়েছিল তা সংক্ষিপ্তভাবে রেকর্ড করা দরকার। বেশিরভাগ সিউডো-এলোমেলো জেনারেটর কেবল সম্ভাব্য সিকোয়েন্সগুলির একটি ক্ষুদ্র ভগ্নাংশ তৈরি করতে পারে, তবে যদি কেবলমাত্র একটি ছোট থেকে মাঝারি সংখ্যক "এলোমেলো" সিকোয়েন্সগুলির প্রয়োজন হয়, তবে একটি পিআরএনজি তৈরি করতে পারে এমন সম্ভাব্য সিকোয়েন্সগুলির ভগ্নাংশ প্রায়শই পর্যাপ্ত পরিমাণের চেয়ে বেশি হবে।

যদি কোনও নির্দিষ্ট পিআরএনজি সঠিক বীজ দিয়ে কী উত্পন্ন করে তা মেলানোর জন্য কাকতালীয়ভাবে যে ডেটা সংরক্ষণের ইচ্ছা রয়েছে সেটি যদি ঘটে তবে বীজ সংরক্ষণ করা ডেটা সংরক্ষণের জন্য একটি কমপ্যাক্ট বিকল্প হতে পারে। তথ্যের উত্সটি যদি না হয় তবে এই জাতীয় ম্যাচগুলি সংঘটিত হওয়ার সম্ভাবনা রয়েছে, তবে এগুলি এত কম ঘটনা যে তাদের অনুসন্ধান সার্থক হবে না।


পিআরএনজিগুলি এলোমেলোভাবে নিখরচায় উপাত্তকে প্রতিনিধিত্ব করতে (সিউডো) ব্যবহার করা হয়, উদাহরণস্বরূপ পরীক্ষার পুনরাবৃত্তির খাতিরে।
যুবাল ফিল্মাস

1
@ ইউয়ালফিল্মাস: হুবহু এগুলি ভিডিও গেম লেভেল জেনারেশনের মতো কিছু পরিস্থিতিতেও ব্যবহার করা যেতে পারে যেখানে উত্পন্ন স্তরের একটি সামান্য ভগ্নাংশ গ্রহণযোগ্য হিসাবে বিবেচিত হবে তবে যেখানে কোনও ভিডিও গেম ডিজাইনার এলোমেলোভাবে স্তর তৈরি করতে পারে যতক্ষণ না সে তার পছন্দমতো কিছু খুঁজে পায় এবং বীজ রেকর্ড করে তাদের উত্পন্ন। Veryতিহাসিকভাবে একটি খুব দরকারী ধারণা, যখন র‌্যামের 128 বাইট সহ একটি ভিডিও গেম মেশিনের কোডিং করা হয়, তখন রমটির 4096 বাইট সহ একটি কার্ট্রিজে প্রোগ্রামটি ফিট করার চেষ্টা করা হয়।
সুপারক্যাটটি

এটি একটি খুব ভাল উদাহরণ, এটি একটি "ভাল" বীজ অনুসন্ধানের বর্ণিত স্কিমের সাথে মেলে, তবে এই দৃশ্যে অনেকগুলি সম্ভাব্য বার্তাগুলি ভাল হওয়ার বিষয়টি কাজে লাগায়।

@ foo1899: ঘটনাচক্রে, গেমটি "পিটফল" en.wikedia.org/wiki/Pitfall ! উপরে বর্ণিত কৌশলটি 128 বাইট র‌্যাম সহ একটি মেশিনে 4 কে গেম কার্ট্রিজে 256-স্ক্রিন মানচিত্র তৈরি করতে ব্যবহার করেছে।
সুপারক্যাট

1

উত্তরের কাকফোনিকে যুক্ত করার জন্য বিবেচনা করার মতো কিছু যা দৃsert়ভাবে জানায় যে কিছু সংখ্যক স্ট্রিং কেননা সংক্ষিপ্ত আকারের সংজ্ঞা, সংক্রামনের প্রকৃতি এবং সংকীর্ণ স্ট্রিংগুলির সীমিত মহাবিশ্বের থেকে বার্তা উপস্থাপনের জন্য নির্বাচন করা উচিত তা হ'ল: বেশিরভাগ স্ট্রিংগুলি সংকুচিত করা যায় না কারণ নিম্ন এনট্রপি এবং কাঠামোগত চেয়ে অনেক বেশি উচ্চতর এনট্রপি, বিশৃঙ্খলাযুক্ত স্ট্রিং রয়েছে, সুতরাং আমরা অনুশীলনে যে শর্তটি দেখি যে এই অবস্থার জন্ম দেয়: সংকোচন বেশিরভাগ সময় কার্যকর, কারণ আমরা বার্তাগুলি থেকে প্রায়শই সঙ্কুচিত করতে ইচ্ছুক হ'ল প্রায়শই কিছু শৃঙ্খলা এবং কাঠামোর কিছু অ্যালিকোটের অধিকারী, এবং এই ছিদ্র দ্বারা, নিম্ন এনট্রপি অবজেক্টগুলির খুব খুব ছোট মহাবিশ্বের অংশ। এর অর্থ এটি সম্ভব যে উপযুক্ত আউটপুট দৈর্ঘ্য চয়ন করে, আমরা ছোট, কাঠামোগত মহাবিশ্বের সমস্ত কিছু সংকুচিত করতে পারি। এখানে কাঠামোগত, এনট্রপি এবং অর্ডার শব্দটি ইচ্ছাকৃতভাবে অসম্পূর্ণ, শব্দার্থের শব্দার্থগত সংজ্ঞা এবং বার্তাগুলির দরকারীতার প্রতিফলন করতে যা আমরা সংক্ষেপ করতে চাই to

এবং প্রশ্নকারীর অনুরোধের প্রত্যক্ষ উত্তরে: হ্যাঁ, আপনি অবশ্যই ভাগ্যবান হতে পারেন এবং আপনার পিআরএনজির আউটপুটটি হ'ল সংকুচিত করতে চান এমন সঠিক বার্তা, এটি আপনাকে কেবল প্রায়শই খুঁজে পাবেন না কারণ এটি কেস হয় কারণ একটি PRNG বৈশিষ্ট্যযুক্ত খুব সম্পত্তি, যথা, তার বিভিন্ন (প্রায়) বিভিন্ন স্ট্রিংয়ের অবসানহীন বিভিন্ন জাতের উত্পাদন করার ক্ষমতা, এটি আপনার উত্পাদন করতে একযোগে অনুল্কিকে তৈরি করে।

অবশ্যই আপনি শব্দটি রূপান্তরের একটি "ডোমেন গ্রাফ" এর উপরে যেতে একটি পিআরএনজি ব্যবহার করে এই অসম্ভাব্যতাটি হ্রাস করতে পারেন, এবং আপনি আপনার বার্তাটির অনুমোদনের সম্ভাবনাটি আরও বাড়িয়ে দিয়েছেন এবং এটিও খুঁজে পেতে পারেন যে আপনাকে এখন সংক্ষেপিত বার্তায় ডোমেন গ্রাফ যুক্ত করতে হবে দৈর্ঘ্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.