রেডিক্স বাছাইয়ের ব্যবহারিক প্রয়োগসমূহ Applications


20

র‌্যাডিক্স বাছাই তাত্ত্বিকভাবে খুব দ্রুত যখন আপনি জানেন যে কীগুলি নির্দিষ্ট সীমাবদ্ধ সীমার মধ্যে রয়েছে, উদাহরণস্বরূপ [ 0 n কে - 1 ] রেঞ্জের মানগুলি বলুন । যদি কে < এলজি এন আপনি কেবলমাত্র মানগুলিকে বেস এন হিসাবে রূপান্তর করেন যা Θ ( n ) সময় নেয় , একটি বেস রেডিক্স সাজান এবং তারপরে সামগ্রিক অ্যালগরিদমের জন্য আপনার মূল বেসে ফিরে রূপান্তর করুন ।এন[0...এন-1]<এলজিএনএনΘ(এন)Θ ( এন কে )এনΘ(এন)

যাইহোক, আমি পড়েছি যে অনুশীলনে র‌ডিক্স সাজানোর কাজটি সাধারণত একটি এলোমেলোভাবে কোকসোর্টের তুলনায় খুব ধীর হয় :

বড় অ্যারেগুলির জন্য, রেডিক্স সাজানোর ক্ষেত্রে নিম্নতম নির্দেশনা গণনা রয়েছে তবে তুলনামূলকভাবে কম ক্যাশের পারফরম্যান্সের কারণে, এর সামগ্রিক কর্মক্ষমতা মেশানো এবং কুইকোর্টের মেমরির অনুকূলিত সংস্করণগুলির চেয়ে খারাপ worse

র‌্যাডিক্স কি কেবল একটি সুন্দর তাত্ত্বিক অ্যালগরিদম বাছাই করে বা এর ব্যবহারিক ব্যবহারের সাধারণ ব্যবহার রয়েছে?

উত্তর:


15

মূল্যের ধরণগুলি প্রায়শই, অনুশীলনে, সমান্তরাল মেশিনে দ্রুত এবং সবচেয়ে দরকারী ধরণের হয়।

মাল্টিপ্রসেসরের প্রতিটি নোডে আপনি সম্ভবত কুইকোর্টের মতো কিছু করতে পারেন তবে রেডিক্স সারণি একাধিক নোডকে একসাথে বিভিন্ন পুনরাবৃত্ত আকারের তুলনায় কম সিঙ্ক্রোনাইজেশনের সাথে কাজ করার অনুমতি দেয়।

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


প্যাটারসন এবং হেনেসি তাদের উপরের লিঙ্কার পেপার, কম্পিউটার অর্গানাইজেশন এবং ডিজাইন বইয়ের উপরের লিঙ্কযুক্ত কাগজের মতো একই বিষয় তৈরি করেছেন।
রবার্ট এস বার্নেস

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

ইহা আকর্ষণীয়. ২০০৯ সালের কমপোর্গের চতুর্থ সংস্করণে তারা রেডিক্স সাজ্টের পূর্ববর্তী সংস্করণগুলিতে বন্ধুত্বপূর্ণভাবে ক্যাশে হওয়ার (লিমিটেড পৃষ্ঠার 489) লামার্কার কাজটির কথা উল্লেখ করেছে, তবে তারপরে 490 পৃষ্ঠায় কুইকোর্ট এবং রেডিক্স সাজানোর তুলনায় গ্রাফিকের অধীনে তারা বলে, "এই জাতীয় ফলাফলের কারণে নতুন সংস্করণ অ্যালগরিদমিক সুবিধাগুলি পুনরুদ্ধার করতে রেডিক্স সাজানোর উদ্ভাবন করা হয়েছে যা মেমোরি শ্রেণিবদ্ধিকে বিবেচনায় রাখে। " আমি কৌতূহল করছি কীভাবে রেডিক্স বাছাইয়ের এই নতুন সংস্করণটি পরিচালনা করে।
রবার্ট এস বার্নেস

আমার সন্দেহ হ'ল লামারকা স্রেফ একটি মূ rad় রেডিক্স সাজান্ট ব্যবহার করেছিলেন (যেটি তার বালতিগুলিকে লিঙ্কযুক্ত তালিকাগুলি হিসাবে রাখে।) কেউ কখনই তা করবে না। আপনি কিছু ধরণের অপটিমাইজড ডায়নামিক অ্যারে (উদাহরণস্বরূপ, সি ++ এর মতো vector) ব্যবহার করে বালতিগুলি বাস্তবায়ন করবেন । তবে আমি জানি না, যেহেতু আমি লামারকার কাগজপত্র পড়ি নি।
25:43

@WanderingLogic কোথায় রেডিক্স বাছাই করে? আপনি এখানে বালতি বাছাই মানে?
বার

3

@ রবার্ট: আপনার লিঙ্কটি বেশ আশ্চর্যজনক (আসলে আমি উদ্ধৃত বাক্যটি খুঁজে পাইনি)। আমার ব্যক্তিগত অভিজ্ঞতা এলোমেলো ইনপুট এর জন্য, রেডিক্স সাজানো এসটিএল এর চেয়ে অনেক দ্রুত std::sort(), যা কোয়িকোর্টের বৈকল্পিক ব্যবহার করে। আমি std::sort()অস্থির র‌্যাডিক্স সাজানোর পরিবর্তে 50% দ্রুত একটি অ্যালগরিদম তৈরি করতাম । কুইকোর্টের "মেমরি অপ্টিমাইজড সংস্করণ" কী তা আমি নিশ্চিত নই, তবে আমি সন্দেহ করি এটি এসটিএল সংস্করণের দ্বিগুণ দ্রুত হতে পারে।

এই ব্লগ পোস্টটি বিভিন্ন অন্যান্য বাছাই করা অ্যালগরিদমের সাথে র‌্যাডিক্স সাজানোর মূল্যায়ন করেছে । সংক্ষেপে, এই মূল্যায়নে, std::sort()50 মিলিয়ন পূর্ণসংখ্যার বাছাই করতে 5.1 সেকেন্ড সময় লাগে, যখন স্থানে / অস্থির র‌্যাডিক্স সারণিকে 2.0 সেকেন্ড লাগে। স্থিতিশীল রেডিক্সের ক্রম আরও দ্রুত হওয়া উচিত।

স্টাডিকে বাছাইয়ের স্ট্রিংয়ের জন্য মূলত সার্টিকেশন ব্যাপকভাবে ব্যবহৃত হয়। রেডিক্সের ধরণের রূপগুলি মাঝে মাঝে প্রত্যয় অ্যারে, বিডাব্লুটি, ইত্যাদি তৈরির জন্য দেখা যায় etc.


1

রেডিক্স বাছাই একটি স্থির বর্ণমালার উপরে স্থির দৈর্ঘ্যের শব্দগুলিকে বাছাই করার একটি প্রাকৃতিক উপায়, উদাহরণস্বরূপ কার্ক্কিনিউন এবং স্যান্ডার্স অ্যালগরিদম ( http://www.cs.cmu.edu/~guyb/realworld/papersS04/KaSa03.pdf )

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