একটি বিগ-ওহ সময়ের জটিলতায় কি একাধিক চলক থাকতে পারে?


11

উদাহরণস্বরূপ বলা যাক আমি স্ট্রিং প্রসেসিং করছি যার জন্য দুটি স্ট্রিংয়ের কিছু বিশ্লেষণ প্রয়োজন। তাদের দৈর্ঘ্য কী হতে পারে সম্পর্কে আমার কোনও তথ্য নেই, সুতরাং তারা দুটি স্বতন্ত্র পরিবার থেকে আসে। একটি অ্যালগরিদম বা ( এন + মি ) এর জটিলতাটিকে কল করা কি গ্রহণযোগ্য হবে (আমরা যদি কোনও ভোলা বা অপ্টিমাইজড অ্যালগরিদম ব্যবহার করি তার উপর নির্ভর করে)?O(nm)O(n+m)

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

উভয় গণনা রৈখিক হওয়ায় কেবল তাদের কল করা কি উপযুক্ত হবে ?O(n)


কিছুটা পটভূমির জন্য এই উত্তরের মন্তব্যগুলি দেখুন - এতটা বিতর্কিত প্রশ্ন জিজ্ঞাসাবাদ করার জন্য @ কর্সিকাকে আমার শ্রদ্ধা।
ওল্ড কার্মিউডজিয়ন

@ ওल्डকুরিমডজিয়ন, আমি দেখছি। আমি মন্তব্য মন্তব্যে আবদ্ধ করতে ঘৃণা করব। Oldcurmudgeon, আপনি বড়-ও স্বরলিপি না বুঝেই বড়-ও স্বরলিপি নিয়ে বিতর্ক করছেন? বিশ্রী সত্যিই। এছাড়াও, আপনি এবং কর্সিকা প্যারামিটারগুলি এবং m নির্ধারণ না করে চলমান সময় নিয়ে তর্ক করছেন - ভুল সংযোগের একটি রেসিপি। ইঙ্গিত: স্ট্রিংগুলির সাথে কাজ করার সময় একটি সাধারণ কনভেনশন হ'ল এম স্ট্রিংয়ের দৈর্ঘ্য এবং অন্য স্ট্রিংয়ের দৈর্ঘ্যের জন্য এন ব্যবহার করতে সম্মত হয় - তবে আদর্শভাবে এটি স্পষ্ট করে দেওয়া ভাল, কারণ অন্যথায় এটি বিভ্রান্তির কারণ হতে পারে (যেমন এখানে চিত্রিত)। nmmn
DW

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

2
আমি মনে করি এটির এখানে এবং এখানে পর্যাপ্ত উত্তর রয়েছে ।
রাফেল

উত্তর:


14

হ্যা অবশ্যই. এটি সূক্ষ্ম এবং পুরোপুরি গ্রহণযোগ্য। অ্যালগরিদমগুলি দেখতে এটি সাধারণ এবং মানক যার চলমান সময় দুটি পরামিতিগুলির উপর নির্ভর করে।

উদাহরণস্বরূপ, আপনি প্রায়শই হিসাবে প্রকাশিত গভীরতার প্রথম অনুসন্ধানের চলমান সময় দেখতে পাবেন , যেখানে এন হ'ল কোণের সংখ্যা এবং এম গ্রাফের প্রান্তগুলির সংখ্যা। এটি পুরোপুরি বৈধ। এর অর্থ এখানে রয়েছে একটি ধ্রুবক । অন্য কথায়, যদি চলমান সঠিক সময়টি f ( n , m ) হয় তবে আমরা বলি যে f ( n , m ) = O ( n + m ) থাকে যদি c , n 0 থাকেO(n+m)nmc এবং সংখ্যাগুলি যেমন অ্যালগরিদমের চলমান সময় সর্বাধিক সি ( এন + মি ) হয় , সমস্ত এন > এন 0 , এম > মি 0n0,m0c(n+m)n>n0,m>m0f(n,m)f(n,m)=O(n+m)c,n0,m0 যেমন এবং m > মি 0 এর অর্থ f ( n , m ) c ( n + m )n>n0m>m0f(n,m)c(n+m)

হ্যাঁ, এটি পুরোপুরি উপযুক্ত এবং গ্রহণযোগ্য যে প্রথম পর্যায়ে সময় লাগে এবং দ্বিতীয় পর্যায়ে O ( মি ) সময় লাগে ।O(n)O(m)

গুরুত্বপূর্ণ: আপনি এবং এম কী তা নির্ধারণ করেছেন তা নিশ্চিত করুন । আপনি কী বলতে পারবেন না "এটি একটি ( এন ) সময়ের অ্যালগরিদম" এন কী তা উল্লেখ না করেই । যদি সমস্যা বিবৃতিতে n নির্দিষ্ট না করা থাকে তবে আপনার এটি নির্দিষ্ট করা দরকার। উদাহরণস্বরূপ, গ্রাফ অ্যালগরিদমগুলি দেখুন, যেখানে আমরা সাধারণত প্রান্তিকের n = # এবং প্রান্তের m = # সংজ্ঞা করি।nmO(n)nnn=m=

যতক্ষণ না আপনি তাদের সময় হিসাবে কল করতে পারেন , না, অবশ্যই না - আপনি যদি কোনওভাবে এম = ( এন ) না জেনে থাকেন । অবশ্যই, যদি আপনি জানেন যে এম = ( এন ) , তবে এটি অনুসরণ করেO(n)m=O(n)m=O(n) , সুতরাং একটি হে ( এম + এন ) সময়ের অ্যালগরিদম হল( এন ) সময়ের অ্যালগরিদমও। তবে এর কোনও গ্যারান্টি না থাকলে মি = হে (m+n=O(n)O(m+n)O(n) , তারপরে আপনি এটিকে( এন ) সময়ের অ্যালগরিদমবলতে পারবেন না।m=O(n)O(n)

এটি বেসিক স্টাফ। আপনি এটি সমস্ত আলগোরিদিম পাঠ্যপুস্তকগুলিতে খুঁজে পাবেন।


1
@ ওल्डকুরিমডজিয়ন, মতবিরোধগুলি হ'ল আপনি অনেক স্ট্যান্ডার্ড অ্যালগরিদম পাঠ্যপুস্তকে এর উদাহরণ পাবেন। আপনি কি দেখেছেন? আপনি গভীরতা-প্রথম অনুসন্ধানের অধ্যায়টি দেখার চেষ্টা করেছেন (আমি আমার উত্তরে যে উদাহরণটি উল্লেখ করেছি)?
DW

2
@ ওল্ড কার্মিউডজিয়ন সিএলআরএস অনুশীলনের আমার সংস্করণে ৩.১-৮ অনেকগুলি ভেরিয়েবলের ফাংশনগুলির জন্য নোটেশনের ঠিক এই সংজ্ঞাটি উপস্থাপন করেছে। এবং dfs চলমান সময় উপরের আবদ্ধ একটি গ্রাফের জন্য ( ভি + ) হয় (OO(V+E)(V,E)
কিরিল

2
@ কিরিল আমার বক্তব্যটি এটি অনুমেয়, অতীতে এক পর্যায়ে কেবলমাত্র মোট সামগ্রিক দৈর্ঘ্য বিবেচনা করার প্রথা হিসাবে বিবেচিত হয়েছিল, অন্যথায় করা ত্রুটি হিসাবে বিবেচিত হতে পারে। আপনি যদি আমরা একজন শিক্ষার্থীর পরীক্ষায় গ্রেডিং করছি এবং সেই ছাত্রটি ডিএসএফের সময় জটিলতার জন্য চলক হিসাবে মোট ইনপুট দৈর্ঘ্য ব্যবহার করে , আপনি দুটি মাত্রা (ভী এবং ই) বিবেচনা না করার জন্য এটিকে একটি ত্রুটি হিসাবে বিবেচনা করবেন? সত্য কী, এবং লোকে যা স্বীকার করতে ইচ্ছুক তা সর্বদা এক এবং এক রকম হয় না। n
প্যাট্রিক 87

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

1
@ প্যাট্রিক ৮87 জটিল জটিলতার তত্ত্বটি অনেক সুপরিচিত শ্রেণীর সংজ্ঞা অনুসারে ব্যবহার করে, বেশিরভাগ ইনপুট দৈর্ঘ্য (উল্লেখযোগ্য ব্যতিক্রমগুলি সহ)।অ্যালগরিদম বিশ্লেষণটি হ'ল - যখন গুরুত্ব সহকারে করা হয় - আসল সংস্থান ব্যবহার সম্পর্কে কিছু শেখার আগ্রহ (মডেল যতটা অনুমতি দেয়) পুরো পেন্টটি আঁকানোর জন্য অন্যান্য পরামিতিগুলি আরও আকর্ষণীয় হয়ে উঠবে (আরও সঠিকভাবে)।
রাফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.