বড়-স্বরলিপি ঠিক কী প্রতিনিধিত্ব করে?


178

বড় ও, বড় ওমেগা এবং বড় থেটা স্বীকৃতির মধ্যে পার্থক্য সম্পর্কে আমি সত্যিই বিভ্রান্ত।

আমি বুঝতে পারি যে বড় হে হ'ল উপরের বাউন্ড এবং বড় ওমেগা হ'ল নীচের গণ্ডি, তবে বড় Ө (থেইটা) আসলে কী উপস্থাপন করে?

আমি পড়েছি যে এর অর্থ কড়া বাঁধা , তবে এর অর্থ কী?


উত্তর:


93

এর অর্থ হল যে প্রদত্ত ফাংশনটিতে অ্যালগরিদম হ'ল বিগ-ও এবং বড়-ওমেগা।

উদাহরণস্বরূপ, যদি এটি হয় Ө(n)তবে কিছু ধ্রুবক রয়েছে kযেমন আপনার ফাংশন (রান-টাইম, যাই হোক না কেন) n*kযথেষ্ট পরিমাণের চেয়ে বড় nএবং কিছু অন্যান্য ধ্রুবক Kযেমন আপনার ফাংশন n*Kপর্যাপ্ত পরিমাণের চেয়ে ছোট n

অন্য কথায়, যথেষ্ট বড় হিসাবে nএটি দুটি লিনিয়ার ফাংশনগুলির মধ্যে স্যান্ডউইচ করা হয়:

জন্য k < Kএবং nযথেষ্ট বড়,n*k < f(n) < n*K


এটি নয়, those ভেরিয়েবলগুলি কিছুটা বিভ্রান্তিকর, তারা সম্পর্কিত নয়।
অ্যারন রবেসন 21

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

329

প্রথমে বুঝতে পারি যে বড় ও, বড় থেটা এবং বড় ওমেগা কী। তারা ফাংশন সব সেট

বিগ হে আপার অ্যাসিপটোটিক বাউন্ড দিচ্ছেন , অন্যদিকে বড় ওমেগা একটি নিম্ন সীমা দিচ্ছে। বিগ থেটা দুটোই দেয়।

সবকিছু যে Ө(f(n))হয় O(f(n)), কিন্তু না অন্য উপায় কাছাকাছি।
T(n)হতে বলা হয় Ө(f(n))যদি এটি উভয় হয় O(f(n))এবং Omega(f(n))
সেট পরিভাষায় Ө(f(n))হয় ছেদ এর O(f(n))এবংOmega(f(n))

উদাহরণস্বরূপ, একীভূত বাছাই করা খারাপতম উভয় ক্ষেত্রে O(n*log(n))এবং Omega(n*log(n))- এবং এটিও হয় Ө(n*log(n))তবে এটিও O(n^2), যেহেতু n^2এশিম্পোটোটিকালি এটির চেয়ে "বড়"। তবে এটি তা নয় Ө(n^2) , যেহেতু অ্যালগরিদম নেই Omega(n^2)

কিছুটা গভীর গাণিতিক ব্যাখ্যা

O(n)অ্যাসিপটোটিক আপার বাউন্ড। যদি T(n)হয় O(f(n))তবে এর অর্থ একটি নির্দিষ্ট থেকে n0, ধ্রুবক Cধরণের থাকে T(n) <= C * f(n)। অন্যদিকে, বড়-ওমেগা বলেছে C2যে এরকম একটি ধ্রুবক রয়েছে T(n) >= C2 * f(n)))।

বিভ্রান্ত করবেন না!

সবচেয়ে খারাপ, সেরা এবং গড় ক্ষেত্রে বিশ্লেষণের সাথে বিভ্রান্ত হওয়ার দরকার নেই: তিনটিই (ওমেগা, ও, থেটা) স্বরলিপিটি অ্যালগরিদমের সবচেয়ে ভাল, সবচেয়ে খারাপ এবং গড় ক্ষেত্রে বিশ্লেষণের সাথে সম্পর্কিত নয় । এর প্রতিটি একটি প্রতিটি বিশ্লেষণে প্রয়োগ করা যেতে পারে।

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

কেন আমরা একটি অ্যালগোরিদমের সীমাহীন আবদ্ধের যত্ন নিই?

ঠিক আছে, এর অনেকগুলি কারণ রয়েছে তবে আমি বিশ্বাস করি যে এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ হ'ল:

  1. সঠিক জটিলতা কার্যকারিতা নির্ধারণ করা অনেক কঠিন , সুতরাং আমরা তাত্ত্বিকভাবে যথেষ্ট তথ্যবহুল, বিগ-ও / বিগ-থেটা নোটেশনগুলিতে "আপস" করি "
  2. অপ্সের সঠিক সংখ্যাটিও প্ল্যাটফর্ম নির্ভর । উদাহরণস্বরূপ, যদি আমাদের 16 সংখ্যার ভেক্টর (তালিকা) থাকে। কত অপশন লাগবে? উত্তরটি হল, এটা নির্ভরশীল. কিছু সিপিইউ ভেক্টর সংযোজনকে অনুমতি দেয়, অন্যগুলি না করে, তাই উত্তরটি বিভিন্ন বাস্তবায়ন এবং বিভিন্ন মেশিনের মধ্যে পরিবর্তিত হয়, যা একটি অনাকাঙ্ক্ষিত সম্পত্তি। বিগ-ও স্বরলিপিটি মেশিন এবং প্রয়োগের মধ্যে অনেক বেশি ধ্রুবক।

এই সমস্যাটি প্রদর্শনের জন্য, নিম্নলিখিত গ্রাফগুলিতে একবার দেখুন: এখানে চিত্র বর্ণনা লিখুন

এটি পরিষ্কার যে f(n) = 2*nএটি "খারাপ" এর চেয়ে খারাপ f(n) = n। তবে পার্থক্যটি অন্য ফাংশন থেকে ততটা কঠোর নয়। আমরা দেখতে পাচ্ছি যে f(n)=lognঅন্যান্য ফাংশনগুলির তুলনায় দ্রুত অনেক কম হয়ে f(n) = n^2উঠছে এবং অন্যদের তুলনায় দ্রুত অনেক বেশি বাড়ছে।
সুতরাং - উপরের কারণগুলির কারণে আমরা ধ্রুবক কারণগুলিকে "উপেক্ষা" করি (গ্রাফের উদাহরণে 2 *), এবং কেবলমাত্র বিগ-ও স্বরলিপি গ্রহণ করি।

উপরের উদাহরণে, f(n)=n, f(n)=2*nউভয় থাকবে O(n)এবং Omega(n)- এবং এইভাবে এছাড়াও থাকবে Theta(n)
অন্যদিকে - এতে f(n)=lognথাকবে O(n)(এটি "তুলনায়" ভাল " f(n)=n) তবে এটিতে থাকবে না Omega(n)- এবং এটিও এতে থাকবে না Theta(n)
Symetrically, f(n)=n^2থাকবে Omega(n)না, কিন্তু O(n), এবং এইভাবে - এছাড়াও নয় Theta(n)


1 সাধারণত, যদিও সর্বদা না। যখন বিশ্লেষণ শ্রেণি (সবচেয়ে খারাপ, গড় এবং সেরা) অনুপস্থিত থাকে, তখন আমরা সত্যিকার অর্থেই সবচেয়ে খারাপ পরিস্থিতি বোঝায়


4
@ কৃষ্ণচন্দ্র: ততক্ষণে তাত্পর্যপূর্ণভাবে f(n) = n^2শক্তিশালী nএবং এটি ওমেগা (এন)। তবে এটি না হে (ঢ) (কারণ বৃহৎ জন্য nমূল্যবোধ, তাহলে বড় c*n, সব জন্য n)। যেহেতু আমরা বলেছিলাম থিতা (এন) ও (এন) এবং ওমেগা (এন) এর ছেদ, কারণ এটি ও (এন) নয়, এটি থেটা (এন )ও হতে পারে না।
amit

8
অ্যালগরিদমের চলমান সময় / চলমান সময়ের সাথে কীভাবে বড়-ও স্বরলিপি সম্পর্কিত নয় তা বোঝার জন্য কাউকে দেখতে দুর্দান্ত। অনেকগুলি ওয়েবসাইট রয়েছে যা আমি যখন টপিকটি গুগল করি তখন ও (টি (এন)) মানে খারাপ সময়ের চলমান সময়।
21:43

1
@ আলমেল এটি 2 * এন (2 এন, দুই বার n) 2 ^ n নয়
amit

5
@ ভিশালক ১. বি-ও উপরের সীমানা হিসাবে এন অসীমের দিকে ঝুঁকছে । 2. ওমেগা হ'ল নিম্ন সীমানা হিসাবে এন অসীমের দিকে ঝোঁক। ৩. থিতা হ'ল উভয়ই উচ্চ এবং নিম্ন যেমন আবদ্ধ এন অনন্ত থাকে। নোট করুন যে সমস্ত সীমা শুধুমাত্র বৈধ "হিসাবে এন , অনন্ত থাকে" কারণ সীমার কম মানের জন্য গন্য করো না এন (কম N0 )। সীমাগুলি সমস্ত nn0 এর জন্য ধারণ করে , তবে নীচের অর্ডার শর্তগুলি প্রাধান্য পেয়েছে এমন N0 এর নীচে নয় ।
বাইন করুন

1
@ সে_আপনি আবার উত্তরটি পড়ুন। বড় ও, থেটা, ওমেগা ফাংশনগুলির জন্য, অ্যালগোরিদম নয়। মার্জ সাজ্ট ওমেগা (এন) সবচেয়ে খারাপ ক্ষেত্রে worst এটি ও (এন ^ 2) সেরা কেস। এটি থেটা (নিলন) সবচেয়ে খারাপ পরিস্থিতিও রয়েছে। মূলত, প্রতিটি বিশ্লেষণের জন্য (সবচেয়ে খারাপ / সেরা / গড় / ...) আপনার জটিলতার কাজ করে T_best(n), T_worst(n), T_average(n)। তাদের অভিন্ন হতে হবে না (এবং বেশিরভাগ ক্ষেত্রে, তারা হয় না)। ও / ওমেগা / থেটা এগুলির যে কোনও একটিতে স্বতন্ত্রভাবে প্রয়োগ করা যেতে পারে।
amit

14

থীটা (ঢ): একটি ফাংশন f(n)জন্যে Theta(g(n)), যদি সেখানে ইতিবাচক ধ্রুবক বিদ্যমান c1এবং c2যেমন যে f(n)মধ্যবর্তী sandwiched যাবে c1(g(n))এবং c2(g(n))। যেমন এটি উভয় উপরের এবং পাশাপাশি নিম্ন আবদ্ধ দেয়।

থেটা (জি (এন)) = {এফ (এন): সেখানে ইতিবাচক ধ্রুবক সি 1, সি 2 এবং এন 1 রয়েছে যা 0 <= সি 1 (জি (এন)) <= f (এন) <= সি 2 (জি (এন)) সমস্ত এন> = এন 1 for

যখন আমরা বলি f(n)=c2(g(n))বা f(n)=c1(g(n))এটি asympototically শক্ত আবদ্ধ প্রতিনিধিত্ব করে।

ও (এন): এটি কেবল উপরের আবদ্ধ দেয় (টাইট নাও হতে পারে)

O (g (n)) = {f (n): c এবং n1 এর মধ্যে ইতিবাচক ধ্রুবক রয়েছে যা সমস্ত এন> = এন 1 for এর জন্য 0 <= f (n) <= সিজি (এন) রয়েছে

উদাহরণস্বরূপ : 2*(n^2) = O(n^2)সীমাটি সংক্ষিপ্ততরভাবে আঁটসাঁট, যদিও 2*n = O(n^2)সীমাটি তাত্পর্যপূর্ণভাবে শক্ত নয়।

o (n): এটি কেবল উপরের গণ্ডিকে দেয় (কখনই শক্ত করে আবদ্ধ হয় না)

ও (এন) ও ও (এন) এর মধ্যে উল্লেখযোগ্য পার্থক্য সমস্ত এন> = এন 1 এর জন্য সিজি (এন) এর চেয়ে কম তবে ও (এন) এর সমান নয়।

প্রাক্তন : 2*n = o(n^2)কিন্তু2*(n^2) != o(n^2)


1
আপনি বড় ওমেগা উল্লেখ করেন নি, যা নিম্ন-গণ্ডিকে বোঝায়। অন্যথায়, খুব সুন্দর প্রথম উত্তর এবং স্বাগত!
বোহনি

1
তিনি থেইটা (এন) এর সংজ্ঞাটি যেভাবে তৈরি করেছিলেন তা আমি পছন্দ করেছি। সম্মত!
ব্যবহারকারী720694


1

বড় থিটা স্বরলিপি:

বন্ধুকে গণ্ডগোল করার কিছুই নেই !!

যদি আমাদের f (n) এবং g (n) একটি ধনাত্মক মূল্যবান ফাংশন থাকে তবে positive (g (n)) কে {f (n) হিসাবে সংজ্ঞায়িত করা হয়েছে: সমস্ত এন> = n1 টি}

যেখানে সি 1 জি (এন) <= এফ (এন) <= সি 2 জি (এন)

একটি উদাহরণ নেওয়া যাক:

যাক f (n) =

ছ (ঢ) =

সি 1 = 5 এবং সি 2 = 8 এবং এন 1 = 1

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

Us আমাদের জানায় যে জি (এন) চ (এন) এর কাছাকাছি, জি (এন) এর বৃদ্ধির হার যতটা সম্ভব চ (এন) এর বৃদ্ধির হারের নিকটবর্তী।

আরও ভাল স্বীকৃতি পেতে চিত্রটি দেখুন


0

সমস্ত তত্ত্বের প্রথম

  1. বড় ও = উচ্চতর সীমা O (n)

  2. থিতা = অর্ডার ফাংশন - থিটা (এন)

  3. ওমেগা = কিউ-নোটেশন (নিম্ন সীমা) Q (n)

মানুষ এত বিভ্রান্ত কেন?

অনেকগুলি ব্লগ এবং বইগুলিতে এই বিবৃতিতে কীভাবে জোর দেওয়া হয়েছে তা লাইক

"এটি বিগ ও (এন ^ 3)" ইত্যাদি etc.

এবং মানুষ প্রায়শই আবহাওয়ার মতো বিভ্রান্ত হয়

ও (এন) == থিটা (এন) == প্রশ্ন (এন)

তবে যা মনে রাখা দরকার তা হ'ল এগুলি হ'ল নাম ও, থিতা ও ওমেগা সহ কেবল গাণিতিক কাজ

সুতরাং তাদের বহুত্বের সাধারণ সূত্র রয়েছে,

দিন,

f (n) = 2n4 + 100n2 + 10n + 50 তারপরে,

g (n) = n4, সুতরাং g (n) হ'ল ফাংশন যা ইনপুট হিসাবে ফাংশন নেয় এবং বিগর্স্ট পাওয়ারের সাথে পরিবর্তনশীল ফেরত দেয়,

সমস্ত ব্যাখ্যার নীচে একই চ (এন) এবং ছ (এন)

বড় ও - ফাংশন (উচ্চ সীমা সরবরাহ করে)

বড় ও (এন 4) = 3 এন 4, কারণ 3 এন 4> 2 এন 4

3n4 এর বিগ ও (এন 4) এর মান ঠিক f (x) = 3x এর মতো

n4 এক্স এর ভূমিকা পালন করছে এখানে তাই,

এক্স 4 এর সাথে এন 4 এর পরিবর্তে, বিগ ও (এক্স ') = 2 এক্স', এখন আমরা দুজনেই খুশি জেনারেল কনসেপ্ট

সুতরাং 0 ≤ f (n) ≤ O (x ')

ও (এক্স ') = সিজি (এন) = 3 এন 4

মূল্য দেওয়া,

0 ≤ 2n4 + 100n2 + 10n + 50 ≤ 3n4

3n4 হ'ল আমাদের উচ্চ সীমানা

থিতা (এন) নিম্ন সীমা সরবরাহ করে

থিতা (এন 4) = সিজি (এন) = 2 এন 4 কারণ 2 এন 4 ≤ আমাদের উদাহরণ চ (এন)

2n4 হ'ল থিতার মান (এন 4)

সুতরাং, 0 ≤ cg (n) ≤ f (n)

0 ≤ 2n4 ≤ 2n4 + 100n2 + 10n + 50

2n4 আমাদের নিম্ন সীমানা

ওমেগা এন - অর্ডার ফাংশন

এটি আবহাওয়ার নীচে বাউন্ডার উপরের সীমানার সমান, এটি নির্ধারণের জন্য গণনা করা হয়,

মামলা 1). আপার বাউন্ডার লোয়ার বাউন্ডের মতো Similar

if Upper Bound is Similar to Lower Bound, The Average Case is Similar

Example, 2n4 ≤ f(x) ≤ 2n4,
Then Omega(n) = 2n4

কেস 2)। যদি আপার বাউন্ডার লোয়ার বাউন্ডের মতো না হয়

in this case, Omega(n) is Not fixed but Omega(n) is the set of functions with the same order of growth as g(n).

Example 2n4 ≤ f(x) ≤ 3n4, This is Our Default Case,
Then, Omega(n) = c'n4, is a set of functions with 2 ≤ c' ≤ 3

আশা করি এটি ব্যাখ্যা করা হয়েছে !!

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