প্রত্যাশিত চলমান সময় এবং অ্যালগোরিদমের গড় চলমান সময় বলতে কী বোঝায়?


17

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

"প্রত্যাশিত সময়" কী? কোন ক্ষেত্রে সবচেয়ে খারাপ ক্ষেত্রে সময় পরিবর্তে প্রত্যাশিত সময় সন্ধান দরকারী ?

সম্পাদনা : আমার মনে হয় প্রত্যাশিত চলমান সময় এবং গড় চলমান সময়ের মধ্যে একটি সূক্ষ্ম পার্থক্য রয়েছে তবে আমি নিশ্চিত নই। এই পোস্টের মাধ্যমে আমি সঠিক পার্থক্যটি যদি কোনও হয় তা জানতে চাই।


1
সম্ভবত তারা গড় কেসটি বোঝায় ..
মার্টিজান পিটারস

4
প্রত্যাশিত মান একটি সম্ভাব্যতা বণ্টনের ফাংশনের মধ্যে x * নেতিবাচক থেকে চ (x) এর ইতিবাচক অনন্ত অবিচ্ছেদ্য হিসাবে বর্ণনা করা হয়। সম্ভাব্য সময়গুলির সম্ভাব্যতা বন্টন নির্ধারণ করে এবং তারপরে প্রত্যাশিত মানটি নিয়ে প্রত্যাশিত সময়টি নেওয়া হবে। এই অপারেশনটি গড় হিসাবে গণনা করা বা গড় গণনা হিসাবে বেশি পরিচিত ।
জোয়েল করনেট

1
@ জোয়েল কর্নেট: আপনি যদি এটি পোস্ট করেন তবে এটি একটি দুর্দান্ত উত্তর দিতে পারে ..
মার্টিজান পিটারস

@ মার্তিজ্নপিটারস: না, গড় ক্ষেত্রে ইনপুটগুলির সম্ভাব্যতা বন্টন সম্পর্কে অনুমান করে, প্রত্যাশিত কেসটি তা করে না।
Jörg ডব্লু মিটাগ

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

উত্তর:


15

প্রত্যাশিত সময় মাত্র গড় হল প্রত্যাশিত , অ্যালগোরিদম ব্যবহার করে এর সময় চলমান অভিপ্রেত ইনপুট।

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

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

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

এটি হাতের ইনপুটটির জন্য সঠিক অ্যালগরিদম ব্যবহার সম্পর্কে It's


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

4

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

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

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

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

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

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