সংক্ষেপণের জন্য অনুকূলকরণের জন্য ডেটা (স্ট্রিংগুলির সেট) পুনরায় অর্ডারিং করা হচ্ছে?


12

সংক্ষেপণের জন্য অনুকূলিত করার জন্য ডেটা পুনঃক্রম করার জন্য কি কোনও অ্যালগরিদম রয়েছে? আমি বুঝতে পারি এটি ডেটা এবং সংক্ষেপণ অ্যালগরিদমের সাথে সুনির্দিষ্ট, তবে এই বিষয়ের জন্য একটি শব্দ আছে? এই অঞ্চলে আমি কোথায় গবেষণা পাব?

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


1
জিজিপ সংক্ষেপণের জন্য অনুকূলভাবে স্ট্রিংগুলি (ছোট স্লাইডিং উইন্ডো সহ LZ77) এনপি-হার্ড সমস্যার মতো শোনাচ্ছে sounds আপনি সম্ভবত সবচেয়ে সংক্ষিপ্ত সাধারণ সুপারস্ট্রিং সমস্যা থেকে হ্রাস নিয়ে আসতে পারেন।
জৌনি স্যারন

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

উত্তর:


6

এটি নবীন গিয়ালের উত্তরের একটি সংযোজন।

যেহেতু কোনও জেএসএন ফাইলটিকে গাছের ডেটা কাঠামো হিসাবে বিবেচনা করা যায়, আপনি গাছগুলির জন্য এক্সবিডাব্লু-ট্রান্সফর্ম ব্যবহার করতে পারেন, এটি স্ট্রিংগুলির জন্য বুরোস-হুইলারের রূপান্তরটির একটি এক্সটেনশন।


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

4

বুড়ো - হুইলারের ট্রান্সফর্ম একটি সুপরিচিত কম্প্রেশন অ্যালগরিদম যা সংকীর্ণ হওয়ার জন্য স্ট্রিংয়ের অক্ষরগুলিকে পুনরায় সাজিয়ে কাজ করে।


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

1

জিজিপ সংকোচনের উন্নতি করতে, আপনি "অনুরূপ" স্ট্রিংগুলি তালিকার কাছে থাকতে চান। এই জাতীয় মিলকে সংজ্ঞায়িত করার বিভিন্ন উপায় রয়েছে; অনুশীলনে ভালভাবে কাজ করে এমন একটি যুক্তিসঙ্গত বর্ণনা করুক। মনে রাখবেন জিজিপের ব্লকের আকার K৪ কে is সুতরাং, আপনার ডেটা K৪ কে বাইটের ব্লকে বিভক্ত হবে এবং প্রতিটি ব্লক স্বাধীনভাবে সংকুচিত হবে। সংক্ষেপে সংক্ষিপ্তকরণটি অনুকূলিতকরণের জন্য প্রতিটি ব্লকের স্বতন্ত্র কে-মের্স (আকারের সাব সাবস্ট্রিংস) সংখ্যা কমিয়ে আনতে হবে। অনুপ্রেরণা হ'ল এই জাতীয় সমস্ত সাবস্ট্রিংগুলি একটি শনাক্তকারীর সাথে প্রতিস্থাপন করা হবে।

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

বিকল্প হিসাবে জেএসডিডি ব্যবহার করা হয় , যা (i) দ্রুত, (ii) উচ্চতর সংক্ষেপণ অনুপাত গ্রহণ করে এবং (iii) ব্লকের আকারের সীমাবদ্ধতা থাকে না (এবং এইভাবে ইনপুট ক্রম নির্বিশেষে স্ট্রিংগুলি সমানভাবে সংকুচিত করে)।


0

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


এটি ট্র্যাকটেবলের মতো শোনায় না, তবে যদি কেউ এটি চেষ্টা করে থাকে তবে দয়া করে আপনার ফলাফলের সাথে একটি মন্তব্য পোস্ট করুন
জয়েন

আমি এটি পরীক্ষা করার চেষ্টা করব। আমি এই সমস্যা সম্পর্কে উত্সাহী। তা ছাড়া, আপনি কেন এটি ট্র্যাকটেবল নয় বলে মনে করেন?
রাফায়েল রিবেইরো

আমি যতদূর জানি, সম্পাদনার দূরত্ব হ'ল O (nm), যেখানে n এবং m টি স্ট্রিংয়ের জোড়ের অক্ষরের সংখ্যা এবং আপনার প্রতিটি জোড় স্ট্রিং O (s ^ 2) এর জন্য এটি করতে হবে, তাই যদি n = মি, এটি ও (গুলি) which 2 * n ^ 2) যা আমার কাছে 1.5 মিলিয়ন স্ট্রিংয়ের জন্য জটিল বলে মনে হচ্ছে।
জয়েন

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

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