কম্পিউটার সায়েন্সে বাছাই করা বনাম 'রিয়েল' ওয়ার্ল্ডে বাছাই করা


87

আমি সফ্টওয়্যারে অ্যালগরিদম বাছাই করার বিষয়ে ভাবছিলাম, এবং সম্ভাব্য উপায়গুলি যে কোনওটি রাস্তা অবরোধকে অতিক্রম করতে পারে O(nlogn)। ব্যবহারিক অর্থে দ্রুত সাজানো সম্ভব বলে আমি মনে করি না, সুতরাং দয়া করে মনে করবেন না যে আমি এটি করি।

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

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

প্রতিটি নোডের কিছু ওভারহেড (কোনও মান বা পদ্ধতি নোডের প্রতিটিটিতে লাগানো) দিয়ে তালিকার ক্রমটি 'চাপিয়ে দেওয়া' কি সম্ভব হবে? সেন্ট্রিফিউজের মতো কিছু, যেখানে কেবল প্রতিটি উপাদানই স্থানটিতে তার সম্পর্কিত অবস্থানের বিষয়ে চিন্তা করে (অন্যান্য নোডের সাথে সম্পর্কিত)। বা, এটি গণনার ক্ষেত্রে কিছু নিয়ম লঙ্ঘন করে?

আমি মনে করি যে এখানে উপস্থিত হওয়া বড় পয়েন্টগুলির মধ্যে একটি হ'ল প্রকৃতির কোয়ান্টাম মেকানিকাল প্রভাব এবং কীভাবে তারা একই সাথে সমস্ত কণার সমান্তরালে প্রয়োগ করে apply

সম্ভবত ধ্রুপদী কম্পিউটারগুলি অন্তর্নিহিতভাবে ডোমেনে বাছাইকে সীমাবদ্ধ করে O(nlogn), যেখানে কোয়ান্টাম কম্পিউটারগুলি সেই প্রান্তিকভাবে O(logn)কাজ করে এমন অ্যালগরিদমে প্রবেশ করতে সক্ষম হতে পারে cross

যে কেন্দ্রবিন্দুটি মূলত একটি সমান্তরাল বুদবুদ সাজানোর বিষয়টি সঠিক বলে মনে হয়, যার একটি সময়ের জটিলতা রয়েছে O(n)

আমার অনুমান যে পরবর্তী চিন্তাটি হ'ল যদি প্রকৃতি বাছাই করতে O(n)পারে তবে কম্পিউটার কেন পারবে না?


44
সেন্ট্রিফিউজ হ'ল ব্যপক সমান্তরাল বুদ্বুদ সাজানোর বাস্তবায়ন, অভিনব কিছু নয়।
el.pescado

4
যখন থাকার nপ্রসেসর (কোর) শুধু একটি অ্যারের বাছা করতে nআইটেম আপনি সহজেই অর্জন করতে পারেন O(n)জটিলতা। একটি তিক্ত সত্য আমরা সাধারণত সিপিইউতে কেবল 2..10 কোরের সাথে দীর্ঘ অ্যারে (কয়েক হাজার এবং কয়েক মিলিয়ন আইটেম) বাছাই করতে পারি।
দিমিত্রি বাইচেনকো

24
মনে রাখবেন যে এন লগ এন এমন তুলনা সংখ্যা যা একটি সাজানোর ক্ষেত্রে তৈরি করতে হবে যা জোড়া আইটেমের তুলনা করে । কোনও প্রয়োজন নেই যে একটি সাজানো অ্যালগরিদম আইটেমের জোড়া তুলনা করুন ; আপনি যদি এমন কোনও সাজান নিয়ে আসতে পারেন যা জুটিওয়ালা তুলনা না করে তবে আপনি এটি এন লগ এন এর চেয়ে দ্রুত তৈরি করতে পারেন।
এরিক লিপার্ট

7
আপনি যে জিনিসটি মিস করছেন তা হ'ল সমাধানের সেই অণুগুলির প্রতিটি হ'ল প্রসেসিং ইউনিট। অণু গণনা করার মতো কোনও এমুলেটর নেই - অণুগুলি তাদের গণনা করে। আপনার অনুসারে বাছাইয়ের আইটেমগুলির মতো একটি অ্যানালগাস কম্পিউটারে অনেকগুলি প্রসেসরের কোর এবং স্বতন্ত্র স্মৃতি থাকবে। O(n)নিজে থেকে আপনাকে কিছুই বলে না - এটি কেবল একইরকম প্রতিবন্ধকতাগুলির সাথে অ্যালগরিদমগুলির তুলনা এবং অনুরূপ আর্কিটেকচারে চলার জন্য দরকারী; অ্যালগরিদমিক জটিলতার জন্য প্রারম্ভিক পাঠ্যক্রমগুলিতে আমরা একটি অতি সরল মডেল "কম্পিউটার" ব্যবহার করি যা সেন্ট্রিফিউজ বা বাস্তব কম্পিউটারগুলির সাথে খুব কমই থাকে :)
লুয়ান

4
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ এটি cs.stackex بدل.com- এর সাথে সম্পর্কিত
রবার্ট ফ্রেজার

উত্তর:


71

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

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

কিছু অন্যান্য তুলনামূলক বাছাই করা অ্যালগরিদম হ'ল বালতি বাছাই এবং গণনা অনুসারে বাছাই করুন । আপনি দেখতে পাচ্ছেন যে বালতি বাছাই একটি সেন্ট্রিফিউজের সাধারণ ধারণার সাথেও খাপ খায় (ব্যাসার্ধটি একটি বিনের সাথে সামঞ্জস্য করতে পারে)।

আরেকটি তথাকথিত 'বাছাই অ্যালগরিদম' যেখানে প্রতিটি উপাদান বিচ্ছিন্ন হিসাবে বিবেচনা করা হয় হ'ল স্লিপ সাজান । এখানে সময়কেন্দ্রিক বা বলের পরিবর্তে বাছাইয়ের জন্য ব্যবহৃত পরিধি হিসাবে কাজ করে।


এটি আসলে সঠিক উত্তর - বিন সাজানোর / রেডিক্সের বাছাইয়ের ক্ষেত্রে ও (এন) জটিলতা রয়েছে তবে ও (1) সময়ে বিন এবং ইনপুট অ্যাক্সেস করা যায়।
pjc50

4
আমি জিজ্ঞাসা করতে যাচ্ছিলাম "অন্য কেউ এখনই ঘুমের বাছাইয়ের কথা চিন্তা করে কি?"।
সুস্পষ্টভাবে

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

স্লিপসোর্টের জটিলতা আসলে শিডিয়ুলারের উপর নির্ভর করে না?
মরউভেন

@ মরউভেন পুরাতন লিনাক্সের শিডিয়ুলার ছিলেন ও (1), নতুনটি হ'ল ও (লগ এন)। এই
দু'টিই

35

গণনামূলক জটিলতা সর্বদা কিছু গণনার মডেলকে সম্মান করে সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ, একটি সাধারণ কম্পিউটারে ( এন ) এর একটি অ্যালগরিদম ব্রেইনফাকে প্রয়োগ করা হলে (2 এন ) হতে পারে ।

সেন্ট্রিফিউজ কম্পিউটিং মডেলের কিছু আকর্ষণীয় বৈশিষ্ট্য রয়েছে; উদাহরণ স্বরূপ:

  • এটি নির্বিচারে সমান্তরালতা সমর্থন করে; সমাধানে কতগুলি কণা থাকুক না কেন, সেগুলি একই সাথে বাছাই করা যায়।
  • এটি ভর দ্বারা একটি কঠোর রৈখিক ধরণের কণা দেয় না, বরং একটি খুব কাছাকাছি (স্বল্প শক্তি) সমীকরণ।
  • ফলস্বরূপ পৃথক কণা পরীক্ষা করা সম্ভব হয় না।
  • বিভিন্ন বৈশিষ্ট্য দ্বারা কণা বাছাই করা সম্ভব নয়; শুধুমাত্র ভর সমর্থন করা হয়।

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


প্রকৃতি / পদার্থবিজ্ঞান সাধারণভাবে সমান্তরাল (এজন্য আমাদের সিরিয়াল কম্পিউটারগুলিতে সিমুলেট করা এত কমপিউটিভভাবে ব্যয়বহুল), তাই হ্যাঁ, ওপি'র উপমাটির একটি বড় ত্রুটি রয়েছে। কণা / অণুগুলির জন্য একটি টেস্ট টিউব বা যে কোনও কিছু দৈর্ঘ্য বরাবর চলতে এখনও সময় লাগে, যদিও দীর্ঘতর টেস্ট টিউবটি থ্রেড অনুযায়ী আরও কাজ করার মতো, তবে একটি বৃহত্তর টেস্ট টিউব আরও সমান্তরালতা। (এবং নোট না সাজানোর একটি টেস্ট টিউব এলাকা জুড়ে, এটা কোন মার্জ অনেক সমান্তরাল প্রকারের যাতে কেন্দ্রীয় করেন কিন্তু হয়তো পথ ধরে কিছু মিথষ্ক্রিয়া একটি সমান্তরাল কম্পিউটারের একটি প্রকৃত সাজানোর চূড়ান্ত মার্জ সঙ্গে ভিন্ন।)
পিটার Cordes

29

কৌতুকটি এখানে রয়েছে যে, আপনার কেবল সেন্ট্রিফিউজ ব্যবহার করে আপনার তালিকাটি বাছাই করার সম্ভাবনা রয়েছে। অন্যান্য বাস্তব-জগতের প্রকারের মতো [উদ্ধৃতি প্রয়োজন] আপনি নিজের তালিকাটি সাজানোর সম্ভাবনাটি পরিবর্তন করতে পারেন তবে সমস্ত মান (পরমাণু) পরীক্ষা না করে কখনই সুনিশ্চিত হন না।

প্রশ্নটি বিবেচনা করুন: "আপনি আপনার সেন্ট্রিফিউজটি আর কতক্ষণ চালাবেন?"
আপনি যদি এটি কেবল পিকসেকেন্ডের জন্য চালিয়ে যান তবে আপনার নমুনা প্রাথমিক অবস্থার চেয়ে কম বাছাই হতে পারে .. বা আপনি যদি কয়েক দিন এটি চালিয়ে যান তবে এটি সম্পূর্ণরূপে বাছাই করা যেতে পারে। যাইহোক, আপনি আসলে বিষয়বস্তুগুলি পরীক্ষা না করে জানতে পারবেন না।


এটি একটি খুব ভাল পয়েন্ট। তুমি কিভাবে জান? তারপরে আবার যদি নিয়মগুলি যথাযথভাবে ভাল হয় তবে আপনি কি তা জানারও যত্ন নেবেন? (যেমন। আপনি যদি সম্ভাবনাটি এত কম করেন যে তা নগন্য হয়ে যায়)।
ক্রিস

আপনি সবসময় গণনা করতে পারেন যে কেন্দ্রীভূত শেষে কোনও কণা সময় নিতে কত সময় লাগবে। আপনি ত্বরণ জানেন (ডাব্লু ^ 2 * আর যেখানে ডাব্লু কৌণিক বেগ) এবং আপনি সময়টি গণনা করতে পারেন।
ব্যবহারকারী 1952500

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

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

4
@ ক্রিস ওয়েল, আমরা জানি যে সেন্ট্রিফিউজ পুরোপুরি বাছাই করে না। আপনার রক্ত ​​কেন্দ্রীভূত রক্ত ​​জমাট বাঁধা রোধ করার মতো - ব্যবহারিক উদ্দেশ্যটির জন্য পার্থক্যটি আর গুরুত্বপূর্ণ না হওয়া পর্যন্ত আমরা এটি চালিয়ে যাচ্ছি। তবে ইউরেনিয়াম সেন্ট্রিফিউজগুলি দেখুন - তাদের খুব বেশি "কাছাকাছি" (আলাদা করা শক্ত) আইটেমগুলি বাছাই করা দরকার এবং প্রয়োজনীয় সুবিধার পরিমাণে ক্ষুদ্র পরিমাণে উত্পাদন করতে বিশাল ব্যয়ের জন্য বার বার বাছাই করে রাখা একটি বিশাল সুবিধার প্রয়োজন। এবং সেন্ট্রিফিউজের একটি নির্দিষ্ট আকার রয়েছে এবং বিচ্ছেদের সময়টি টিউবগুলির প্রস্থের সাথে সমানুপাতিক, এবং ... আপনি কেবল ও (এন) বলতে পারবেন না, হ্যাঁ!
লুয়ান

5

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

একটি "সাজানোর" জন্য, ড্রোনগুলি একটি নির্দিষ্ট ক্রমে একটি লাইন বা প্যাটার্ন গঠনের জন্য প্রোগ্রাম করা যেতে পারে, প্রাথমিকভাবে যেকোন অনুগমন বা আকারে প্রকাশ করা হত এবং সম্মিলিতভাবে এবং সমান্তরালে তারা দ্রুত অর্ডার করা রেখা বা প্যাটার্ন গঠন করে।

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

প্রতিটি উপাদান অবস্থান জানুন

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


4

আইএমএইচও, লোকে লগ (এন) কে উড়িয়ে দেয়। ও (এনলগ (এন)) কার্যত ও (এন)। এবং আপনার কেবলমাত্র ডেটা পড়তে ও (এন) দরকার।

কুইকোর্টের মতো অনেক অ্যালগরিদম উপাদানগুলিকে বাছাই করার জন্য খুব দ্রুত উপায় সরবরাহ করে। আপনি কুইকোর্টের বিভিন্নতা প্রয়োগ করতে পারেন যা অনুশীলনে খুব দ্রুত হবে।

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

মন্তব্য থেকে:

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

  2. এ সম্পর্কে ভাবার আর একটি উপায় হ'ল বলুন যে আপনার প্রতিটি সংখ্যার সাথে একটি ছোট প্রসেসর সংযুক্ত রয়েছে এবং প্রতিটি প্রসেসর তার প্রতিবেশীদের সাথে যোগাযোগ করতে পারে, আপনি ও (লগ (এন)) সময়ে এই সংখ্যাটি বাছাই করতে পারেন।


কিন্তু গণনা ঠিক তা নয় - প্রকৃতির দৈহিক বৈশিষ্ট্য ব্যবহার করে কিছু কাজ? আমি হয়ত এখানে কোয়ান্টাম কম্পিউটিংয়ের মধ্যে চলে যাচ্ছি, তবে এটি যদি শারীরিকভাবে করা যায় তবে এটি গণনা করা সম্ভব হবে? সম্ভবত শাস্ত্রীয় গণনা হ'ল ও (নলগন) এবং ও (লগন) এর মধ্যে রাস্তা ব্লক।
ক্রিস

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

কি এই সীমা কিউএম অবজেক্টগুলিতেও প্রযোজ্য? কৌতূহলের বাইরে
ক্রিস

4
@ ক্রিস আমি কিউএম এর উত্তর দিতে যথেষ্ট গভীরতার সাথে বুঝতে পারি না।
এলকামিনা

কোন চিন্তা করো না! আমি খুব কৌতুহলী এবং হা হা ঘুমাতে পারে বলে মনে হচ্ছে না। আকর্ষণীয় উত্তরের জন্য আপনাকে ধন্যবাদ।
ক্রিস

4

আমি যখন কলেজ শুরু করি তখন আমি হাইস্কুলের পরে অফিসের গ্রীষ্মে কাজ করি। আমি এপি কম্পিউটার সায়েন্সে অন্যান্য বিষয়গুলির মধ্যেও বাছাই এবং অনুসন্ধান করেছি

আমি এই জ্ঞানটি বিভিন্ন শারীরিক সিস্টেমে প্রয়োগ করেছি যা আমি স্মরণ করতে পারি:

প্রাকৃতিক মার্জ সাজানোর শুরু ...

ফাইল-কার্ড-আকারের টিয়ার অফ সহ একটি সিস্টেম মুদ্রিত একাধিক ফর্ম, যা ড্রয়ারের একটি ব্যাংকে ফাইল করা দরকার।

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

তারপরে, স্ট্যাকের প্রতিটি জোড়া একত্রীকরণ করুন , আরও বড় স্ট্যাক উত্পাদন করুন। কেবল একটি স্ট্যাক না হওয়া পর্যন্ত পুনরাবৃত্তি করুন।

… সম্পূর্ণ করার জন্য সন্নিবেশ সাজান

বাছাই করা কার্ডগুলি ফাইল করা আরও সহজ, কারণ পরের প্রতিটি একই খোলার ড্রয়ারের থেকে কিছুটা দূরে থাকে।

রেডিক্স বাছাই

বার বার চেষ্টা করার পরেও আমি এটি কীভাবে তা দ্রুত করেছিলাম তা অন্য কেউ বুঝতে পারে নি।

চেক স্টাবগুলির একটি বড় বাক্স (পাঞ্চ কার্ডের আকার) বাছাই করা দরকার। দেখে মনে হচ্ছে বড় টেবিলে সলিটায়ার খেলছে — ডিল আউট, স্ট্যাক আপ, পুনরাবৃত্তি।

সাধারণভাবে

30 বছর আগে, আমি আপনি কী সম্পর্কে জিজ্ঞাসা করেছেন তা লক্ষ্য করেছি: ধারণাগুলি সরাসরি সরাসরি শারীরিক সিস্টেমে স্থানান্তর করে কারণ তুলনাপরিচালনা রেকর্ডের তুলনামূলক ব্যয় এবং ক্যাশিংয়ের স্তর রয়েছে are

সম্যক সমপরিমাণের বাইরে চলে যাওয়া

আমি আপনার বিষয় সম্পর্কে একটি রচনা স্মরণ করি, এবং এটি স্প্যাগেটি বাছাই করে আনে । মূল মানটি নির্দেশ করতে আপনি শুকনো নুডলের একটি দৈর্ঘ্য ছাঁটাচ্ছেন এবং রেকর্ড আইডি দিয়ে লেবেল করুন। এটি ও (এন), প্রতিটি আইটেম একবারে প্রক্রিয়াজাত করা।

তারপরে আপনি বান্ডিলটি ধরে টেবিলের এক প্রান্তে আলতো চাপুন। তারা নীচের প্রান্তগুলিতে প্রান্তিককরণ করে এবং সেগুলি এখন সাজানো হয়। আপনি তুচ্ছভাবে দীর্ঘতম একটিকে বন্ধ করতে এবং পুনরাবৃত্তি করতে পারেন। পঠনযোগ্যটি ও (এন )ও।

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

দ্বিতীয়ত, প্রান্তগুলি সারিবদ্ধকরণ একটি সাজানোর কাজটি কীভাবে সম্পাদন করে? বাস্তব শ্রেণীবিভাজন যদিও আপনি পঠিত আউট আপনি এক ধাপ দীর্ঘতম এটি করতে দেয় যা হয়, না তাদের সব দীর্ঘতম এটি তুলনা করুন। আবার, n এর একটি উপাদান দ্বারা ভাগ করুন, সুতরাং সর্বাধিক সন্ধান করা এখন হে (1)।

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


স্প্যাগেটি সাজানো মজাদার ছিল। আমি এটি সম্পর্কে চিন্তা করে উপভোগ করেছি, তবে আমি দীর্ঘতম নুডলের জন্য স্ক্যান করার ক্রিয়াটির সমালোচনা করি। আপনি নুডলস স্ক্যান করার পরে এটি আসলে কোনও ও (1) ক্রিয়া নয়। দশ হাজার নুডলস এবং কয়েকটি দৈর্ঘ্যের অনুরূপ কিছু কল্পনা করুন ... এটি কোনও ও (1) "আইটল ইট" অপারেশন নয়। বাস্তবে, দীর্ঘতম সন্ধানের জন্য অবশ্যই সমস্ত অরসোর্টড নুডলস স্ক্যান করতে হবে।
ক্লার্ক

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

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

3

বাছাই করা এখনও ও (এন) মোট সময়। এটি দ্রুত যে এর চেয়ে যে কারণ Parallelization

আপনি সেন্ট্রিফিউজটি দেখতে পাবেন এন পরমাণুর বালতিসোর্ট হিসাবে , এন কোরগুলির সাথে সমান্তরালভাবে (প্রতিটি পরমাণু প্রসেসরের হিসাবে কাজ করে)।

আপনি সমান্তরালভাবে দ্রুত বাছাই করতে পারেন তবে কেবলমাত্র একটি ধ্রুবক কারণের মাধ্যমে প্রসেসরের সংখ্যা সীমিত, হে (এন / সি) এখনও ও (এন) (সিপিইউগুলিতে সাধারণত <10 কোর এবং জিপিইউ <6000 থাকে)


2

সেন্ট্রিফিউজ নোডগুলি বাছাই করে না, এটি তাদের জন্য একটি বল প্রয়োগ করে তবে তারা এর সমান্তরালে প্রতিক্রিয়া দেখায়। সুতরাং আপনি যদি কোনও বুদ্বুদ বাছাই বাস্তবায়ন করেন যেখানে প্রতিটি নোড এটি "ঘনত্ব" এর উপর ভিত্তি করে সমান্তরালভাবে উপরে বা নীচে চলেছে, আপনি সেন্ট্রিফিউজ বাস্তবায়ন করতেন।

মনে রাখবেন যে বাস্তব বিশ্বে আপনি একটি খুব বড় পরিমাণে সমান্তরাল কাজ পরিচালনা করতে পারেন যেখানে একটি কম্পিউটারে আপনার সর্বাধিক বাস্তব সমান্তরাল কার্য থাকতে পারে শারীরিক প্রক্রিয়াকরণ ইউনিটের সংখ্যার সমান।

শেষ পর্যন্ত, আপনি উপাদানগুলির তালিকার অ্যাক্সেসের সাথেও সীমাবদ্ধ থাকবেন কারণ এটি দুটি নোড দ্বারা একসাথে সংশোধন করা যায় না ...


1

প্রতিটি নোডের কিছু ওভারহেড (কোনও মান বা পদ্ধতি নোডের প্রতিটিটিতে লাগানো) দিয়ে তালিকার ক্রমটি 'চাপিয়ে দেওয়া' কি সম্ভব হবে?

আমরা যখন কম্পিউটার প্রোগ্রামগুলি ব্যবহার করে বাছাই করি তখন আমরা মানগুলি বাছাই করার একটি সম্পত্তি নির্বাচন করি। এটি সাধারণত সংখ্যা বা বর্ণানুক্রমিক ক্রমের পরিমাণ।

সেন্ট্রিফিউজের মতো কিছু, যেখানে কেবলমাত্র প্রতিটি উপাদান স্থানের তুলনামূলকভাবে তার অবস্থান সম্পর্কিত (অন্য নোডের সাথে সম্পর্কিত) যত্ন করে

এই সাদৃশ্যটি যথাযথভাবে আমাকে সহজ বুদ্বুদ সাজানোর কথা মনে করিয়ে দেয়। প্রতিটি পুনরাবৃত্তিতে কত ছোট সংখ্যা বুদ্বুদ হয়। আপনার সেন্ট্রিফিউজ যুক্তি পছন্দ করুন।

সুতরাং এর উত্তর দিতে, আমরা আসলে সফ্টওয়্যার ভিত্তিক বাছাই মধ্যে ক্রম কিছু না?


4
আমি মনে করি তুমি ঠিক. আমি মনে করি আমি এখানে আমার উপমাটি কোথায় হারিয়েছি তা হ'ল আমি ভুলে গিয়েছিলাম যে প্রতিটি অণু সমান্তরালভাবে কাজ করে। সুতরাং, এটি একটি সমান্তরাল বুদ্বুদ সাজানোর মতো হবে ...
ক্রিস

1

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

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

তৃতীয় আপনি যদি কম্পিউটারের জগতে সেন্ট্রিফিউজ এবং এর ক্রিয়াকলাপকে ম্যাপ করতে চান তবে এটি এমন কেউ (দ্য গড) আপনাকে পদার্থবিজ্ঞানের সমস্ত নিয়ম প্রয়োগ করে একটি সুপার কম্পিউটার দিয়েছে এবং আপনি এটিতে আপনার ছোট্ট বাছাই করছেন ( সেন্ট্রিফিউজ ব্যবহার করে) এবং এই বলে যে আপনার বাছাইয়ের সমস্যাটি ও (এন) এ সমাধান করা হয়েছে আপনি ব্যাকগ্রাউন্ডে চলছে বিশাল পদার্থবিজ্ঞানের সিমুলেশন উপেক্ষা করছেন ...


0

আর একটি দৃষ্টিভঙ্গি হ'ল আপনি সেন্ট্রিফিউজের সাথে যা বর্ণনা করছেন তা "স্প্যাগেটি সাজানো" ( https://en.wikedia.org/wiki/Spaghetti_sort ) নামে পরিচিত to বলুন যে আপনার কাছে বিভিন্ন দৈর্ঘ্যের রান্না করা স্প্যাগেটি রডগুলির একটি বাক্স রয়েছে। এগুলি আপনার মুঠিতে ধরে রাখুন এবং আপনার হাতটি উল্লম্বভাবে নীচে নামাতে আলগা করুন যাতে প্রান্তগুলি সমস্ত একটি অনুভূমিক টেবিলের উপর বিশ্রাম করে। বুম! তারা উচ্চতা অনুসারে বাছাই করা হয়। ও (ধ্রুবক) সময়। (বা ও (এন) আপনি যদি উচ্চতা অনুসারে রডগুলি বাছাই করে এবং একটি স্প্যাগেটি র্যাকের মধ্যে রেখে দেন তবে আমার ধারণা?)

আপনি সেখানে লক্ষ রাখতে পারেন যে এটি স্প্যাগেটির টুকরো সংখ্যায় ও (ধ্রুবক), তবে, স্প্যাগেটির মধ্যে সীমাবদ্ধ গতির কারণে, এটি দীর্ঘতম স্ট্র্যান্ডের দৈর্ঘ্যের হে (এন)। সুতরাং কিছুই নিখরচায় আসে না।


11 ঘন্টা আগে আমি এটাই বলেছিলাম। এবং আমি কীভাবে শারীরিক সিস্টেমগুলি আপনাকে n বা n দ্বারা ভাগ করে এবং অ্যালগোরিটম এবং গণনার মডেল রাখতে দেয় তা ব্যাখ্যা করতে গিয়েছিলাম।
জেডিগোগস

0

বিবেচনা করুন: "সেন্ট্রিফিউজ সাজান" কি আসলে স্কেলিং ভাল? স্কেল আপ করার সাথে সাথে কী ঘটে যায় তা ভেবে দেখুন।

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

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

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

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