প্রতিটি লিনিয়ার-টাইম অ্যালগরিদম কি স্ট্রিমিং অ্যালগরিদম হয়?


14

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

সুতরাং আমার প্রশ্ন:

প্রতিটি লিনিয়ার-টাইম অ্যালগরিদমকে কি অবিচ্ছিন্নভাবে অনেকগুলি পাস দিয়ে স্ট্রিমিং অ্যালগরিদম হিসাবে প্রকাশ করা যায়?

এলোমেলো অ্যাক্সেস একটি (সরল) নির্মাণকে ইতিবাচক উত্তর প্রমাণ করে বলে মনে হচ্ছে, তবে আমি কোনও পাল্টা উদাহরণ দিয়ে আসতে পারিনি।

মেশিনের মডেলের উপর নির্ভর করে এলোমেলো অ্যাক্সেস এমনকি রানটাইম-ভিত্তিক কোনও সমস্যাও হতে পারে না। আমি এই মডেলগুলির উত্তরগুলিতে আগ্রহী:

  • টুরিং মেশিন, ফ্ল্যাট ইনপুট
  • র‌্যাম, অ্যারে হিসাবে ইনপুট
  • র‌্যাম, লিঙ্কযুক্ত তালিকার হিসাবে ইনপুট

যেমন আপনি উত্তরগুলিতে দেখেন, "স্ট্রিমিং অ্যালগরিদম" প্রায়শই ক্ষুদ্র (পলিগ স্পেস) বোঝায়। কিন্তু আপনার প্রেরণা, প্রশ্ন আমি হওয়া উচিত মনে করি প্রদত্ত: প্রতিবার রৈখিক সময় এলগরিদম যে ব্যবহারসমূহ করতে পারেন কর্মক্ষেত্র শব্দের স্ট্রিমিং অ্যালগরিদম যে ব্যবহারসমূহ রূপান্তরিত করা হে ( গুলি ) শব্দ স্থান। সুতরাং একটি কাউন্টারিক্স উদাহরণটি এমন সমস্যা হবে যা ( এন ) স্পেস দিয়ে এলোমেলো অ্যাক্সেসের সাথে সমাধান করা যেতে পারে যখন কোনও ধ্রুবক পাস স্ট্রিমিং অ্যালগরিদমকে Ω ( n ) স্পেসের প্রয়োজন হয়। কোনও উত্তর এখনও এই ধরনের উদাহরণ দেয়নিsO(s)o(n)Ω(n)
সাশো নিকোলভ

@ সাশোনিকোলভ: আসলে পুরো জায়গার বিষয়টি স্পর্শকাতর। আমার প্রশ্নটি মূলত রানটাইম নিয়ে। যদি উত্তরটি "হ্যাঁ" হয়, তবে কাগজে প্রমাণিত নিম্ন সীমাগুলি (স্পেস জটিলতায়) সমস্ত লিনিয়ার-টাইম অ্যালগরিদমের জন্য প্রযোজ্য হবে । যে নিম্ন সীমাটি মহাকাশে রয়েছে তা ঘটনাচক্রে, তবে প্রতি সেচের প্রশ্নের কেন্দ্রবিন্দু নয়।
রাফেল

আমি বুঝতে পারছি না. সীমিত সময় অ্যালগরিদম সীমাহীন স্থান সহ "ওয়ান পাস স্ট্রিমিং" করা তুচ্ছ। আপনার প্রশ্নটি কেবল তখনই " জটিলতার পরিমাপ approximately সংরক্ষণের সময় কোনও রৈখিক সময় এলোমেলো অ্যাক্সেস অ্যালগরিদমকে ধ্রুবক পাস স্ট্রিমিং করা যায় "। " সুতরাং আপনার একটি জটিলতা পরিমাপ বাছাই করা উচিত o μ
সাশো নিকোলভ

@ সাশোনিকোলভ: আমি জানতাম না যে "স্ট্রিমিং অ্যালগরিদম" এর মধ্যে এ জাতীয় সংজ্ঞা রয়েছে। প্রদত্ত যে তারা অ্যালগোরিদমগুলির স্ট্রিমিংয়ের জন্য একটি রৈখিক স্থান নিম্ন সীমাবদ্ধ দেখায় , আমি ধরে নিয়েছিলাম যে স্থানটি কোনও সংজ্ঞার মূল নয়। তবে আমি অনুমান করি আপনি "এই স্ট্রিমিং অ্যালগরিদম নেই ..." তে আবদ্ধ অনুবাদ করতে পারেন। যাইহোক, এই সংজ্ঞাটি সম্পর্কে কী: "একটি স্ট্রিমিং অ্যালগরিদম হল একটি অ্যালগরিদম যা একটি উপাদানকে একটি সময় ইনপুট (তালিকা) দেওয়া হয় every প্রতিটি নতুন উপাদানগুলির জন্য, এটি একটি গণনা সম্পাদন করতে পারে constantly অবিচ্ছিন্নভাবে এর পরে অনেকগুলি পাস হয় After , এটি অতিরিক্ত ( এন ) সময়ের পরে একটি উত্তর আউটপুট দিতে হয় । " o(n)(এন)
রাফেল

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

উত্তর:


15

স্ট্রিমিং অ্যালগরিদমগুলিকে অর্থবহ হওয়ার জন্য, তাদের ইনপুট থেকে তুলনামূলকভাবে কম পরিমাণে কাজের জায়গার সাথে কাজ করতে হবে। উদাহরণস্বরূপ, আপনি যদি একই পরিমাণ কাজের জায়গাকে ইনপুট হিসাবে মঞ্জুরি দেন, তবে আপনি "সিঙ্গল-পাস স্ট্রিমিং অ্যালগরিদম" হিসাবে যে কোনও অ্যালগরিদমকে তুচ্ছভাবে বলতে পারেন যা প্রথমে একক পাসে কাজের জায়গাতে ইনপুটটি অনুলিপি করে এবং তারপরে কেবলমাত্র কাজটি ব্যবহার করে স্থান।

আমি মনে করি যে স্ট্রিমিং অ্যালগরিদম সম্পর্কে কথা বলার সময় কাজের জায়গাকে ইনপুট আকারে সর্বাধিক পলিউগারিদমিকের মধ্যে সীমাবদ্ধ রাখা সাধারণ। এই অনুমানের অধীনে, মুনরো এবং পেটারসন [এমপি 80] এর ফলাফল দ্বারা মিডিয়ান সিলেকশনটিতে একটি O (1) -পাস স্ট্রিমিং অ্যালগরিদম নেই: এন উপাদানগুলিতে মধ্যবর্তী নির্বাচনের জন্য কোনও পি- পাসাস স্ট্রিমিং অ্যালগরিদমকে Ω ( এন 1 / পি) সংরক্ষণ করতে হবে ) উপাদান। অন্যদিকে, মধ্যবর্তী নির্বাচনের একটি সুপরিচিত ডিটারমিনিস্টিক লিনিয়ার-টাইম অ্যালগরিদম [বিএফপিআরটি 73] রয়েছে।

[বিএফপিআরটি ]৩] ম্যানুয়েল ব্লুম, রবার্ট ডব্লিউ ফ্লয়েড, ভাগান প্র্যাট, রোনাল্ড এল। রিভস্ট এবং রবার্ট ই টার্জন। নির্বাচনের সময়সীমা। কম্পিউটার ও সিস্টেম সায়েন্সেস জার্নাল , 7 (4): 448–461, আগস্ট 1973. ডিওআই: 10.1016 / এস 0022-0000 (73) 80033-9

[এমপি 80] জে। আয়ান মুনরো এবং মাইক এস। পিটারসন। সীমিত স্টোরেজ সহ নির্বাচন এবং বাছাই করা। তাত্ত্বিক কম্পিউটার বিজ্ঞান , 12 (3): 315–323, নভেম্বর 1980. ডিওআই: 10.1016 / 0304-3975 (80) 90061-4


6

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

একটি উদাহরণ টি পাঠ্য টির প্রত্যয় অ্যারে তৈরির জন্য ডিসি 3 অ্যালগরিদম (র‌্যাম মডেলের অ্যারে হিসাবে দেওয়া হয়েছে)। একটি প্রত্যয় অ্যারে তৈরি করার জন্য, আপনি অক্ষরগুলি তিনটি ভাগে ভাগ করেছেন, যাতে আপনি নতুন সুপার-অক্ষর সহ একটি পাঠ্য পান । আপনি 0 , 1 , 2 এর অফসেট দিয়ে এটি করতে পারেন , যার ফলস্বরূপ তিনটি নতুন পাঠ্য টি 1 , টি 2 , টি 3 ঘটে । মজার বিষয় হল, লিনিয়ার সময়ে আপনার কাছে টি 1টি 2 এর প্রত্যয় অ্যারে থাকলে আপনি প্রত্যয় অ্যারের অঙ্ক করতে পারেন । সুতরাং অ্যালগরিদমের প্রয়োজনটি0,1,2টি1,টি2,টি3টি1টি2

টি(এন)=টি(2/3এন)+ +হে(এন)

সময়। এই পুনরাবৃত্তিটি স্পষ্টভাবে টি(এন)=হে(এন) । এটি কীভাবে স্ট্রিমিং অ্যালগরিদমে রূপান্তরিত করা যায় তা আমি দেখছি না।

আর একটি সুপরিচিত উদাহরণ হ'ল ধ্রুপদী রৈখিক-সময় নির্বাচন অ্যালগরিদম।


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

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

হে(এন)

"আমি দেখতে পাচ্ছি না কীভাবে এটি স্ট্রিমিং অ্যালগরিদমে রূপান্তরিত হতে পারে" আমাকে বিশ্বাস করিয়েছে আপনি "এই অ্যালগরিদম পরিবর্তন ছাড়া স্ট্রিমিং করছেন না" ছাড়াও কিছু বলছেন "
সাশো নিকোলভ

4

পি

  • আর(পি)পি
  • এস(পি)পি

সুতরাং আমি মনে করি আপনি মধ্যে কত বড় ব্যবধান রয়েছে তা সম্পর্কে জিজ্ঞাসা করছেনআর(পি)এস(পি) হতে পারে তা ।

এন[1,এন-1]হে(লগএন)হে(1)শব্দের সংখ্যা): মূলত পয়েন্টার-তাড়া। তবে অবিচ্ছিন্নভাবে একটি পাস অ্যালগরিদম অবশ্যই থাকা উচিতω(লগএন) স্থান জটিলতা।

মডেলটির একটি দিক রয়েছে যা আমরা যথেষ্ট স্থির করি নি: পাসগুলি কোন দিকে যায়? অর্থাৎ, একবার আমরা পুরো অ্যারে স্ট্রিমিং অ্যালগরিদমকে ফিড করি, পরবর্তী পাসটি কি শেষ বা শুরু থেকে শুরু হবে? মজার বিষয়, এটি একটি বড় পার্থক্য করতে পারে। দুটি ধরণের বন্ধনী যেখানে রয়েছে সেখানে একটি ভাল-প্রথম বন্ধনী হিসাবে প্রকাশের সমস্যাটি বিবেচনা করুন। বলুন আমরা ত্রুটি হওয়ার সম্ভাবনা চাইহে(1/লগ2এন)। তারপরে চক্রবর্তী আর আল। দেখান যে আমরা যদি সমস্ত পাসকে এক দিকে যেতে সীমাবদ্ধ করি তবে আমাদের কাছে রয়েছেপিগুলি=Ω(এন), কোথায় পি পাসের সংখ্যা এবং গুলিস্থান জটিলতা। অন্যদিকে, ম্যাগনিজ এট আল। ব্যবহার করে এমন একটি সাধারণ অ্যালগরিদম দিনহে(লগ2এন) স্পেস, একটি মিথ্যা ধনাত্মক হওয়ার বহুগুণে কম সম্ভাবনা থাকে এবং এটি একটি পাস এবং একটিকে পিছনের দিকে তোলে।


1

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

RadixSort ওরফে BucketSort হ'ল O (N) (প্রযুক্তিগতভাবে O (NlogM) যেখানে এম এন আইটেমগুলির সর্বাধিক মান, যা ছোট হিসাবে বিবেচিত হয়), এবং কোনও পৃথক আইটেম তার চূড়ান্ত স্থানে রয়েছে তার গ্যারান্টি দেওয়ার জন্য এটি সম্পূর্ণরূপে চালানো উচিত।

একটি "স্ট্রিমিং" অ্যালগরিদম হওয়ার সহজতম সময়ে, একটি অ্যালগরিদমের নিম্নলিখিত দুটি বৈশিষ্ট্য থাকতে হবে, যার মধ্যে দুটিও সুস্পষ্টভাবে সময়সীমাযুক্ত নয়:

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

অতএব, প্রবাহিত অ্যালগরিদমের প্রধান শ্রেণি হ'ল "অনুমান" সম্পাদনকারী আলগোরিদিমগুলি (এক্স> 0 আউটপুটগুলিতে একটি ইনপুটের বর্ধিত রূপান্তর)।


কেন হে(লগএন)জায়গার ব্যবহার ঠিক হচ্ছে না? অন্যান্য প্রশ্নের সাথে লিঙ্কিত কাগজগুলি প্রচুর স্ট্রিমিং অ্যালগরিদম ব্যবহার করে playω(1)স্থান।
রাফেল

লগএনও ঠিক আছে; মুল বক্তব্যটি ছিল যে অ্যালগরিদমের একবারে পুরো ইনপুট বা আউটপুট সম্পর্কে জ্ঞান থাকা উচিত নয়।
কিথস

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