Θ (এন) এবং ও (এন) এর মধ্যে পার্থক্য কী?


427

কখনও কখনও আমি মাঝে মাঝে কিছু সহ অদ্ভুত Θ চিহ্ন সহ see (এন) দেখতে পাই এবং কখনও কখনও কেবল ও (এন)। কেউ কীভাবে এই প্রতীকটি কীভাবে টাইপ করতে হয় তা জানে না বা এটির অর্থ কি অন্যরকম?


8
এটি সুস্পষ্ট নয়, তবে এই প্রশ্নটি গতকাল থেকে এই একটি স্ট্যাকওভারফ্লো . com / জিজ্ঞাসা / 464078/… এর সদৃশ ।
দ্য টিকটিকি

উত্তর:


600

সংক্ষিপ্ত ব্যাখ্যা:

যদি একটি অ্যালগরিদম Θ (g (n)) এর হয় তবে এর অর্থ এন (ইনপুট আকার) হিসাবে আলগোরিদমের চলমান সময়টি বৃহত্তর (g) এর সমানুপাতিক।

যদি একটি অ্যালগরিদম ও (জি (এন)) এর হয় তবে এর অর্থ হ'ল এন বড় হওয়ার সাথে সাথে অ্যালগরিদমের চলমান সময়টি সর্বাধিক আনুপাতিক জি (এন) এর সাথে হয়।

সাধারণত, লোকেরা ও (জি (এন)) সম্পর্কে কথা বলার পরেও তাদের আসলে mean (জি (এন)) বোঝায় তবে প্রযুক্তিগতভাবে, একটি পার্থক্য রয়েছে।


আরও প্রযুক্তিগতভাবে:

ও (এন) উপরি বাউন্ড উপস্থাপন করে। Θ (n) এর অর্থ টাইট বাঁধা। Ω (n) নিম্ন সীমাটি উপস্থাপন করে।

f (x) = Θ (g (x)) iff f (x) = O (g (x)) এবং f (x) = Ω (g (x))

মূলত যখন আমরা বলি একটি আলগোরিদিম হে (ঢ) হয়, এটিও হে (ঢ 2 হে (ঢ), 1000000 ), হে (2 এন ), ... কিন্তু একটি Θ (ঢ) আলগোরিদিম না Θ (ঢ 2 ) ।

আসলে, যেহেতু f (n) = Θ (g (n)) এর অর্থ n এর পর্যাপ্ত পরিমাণে বৃহত মান রয়েছে, f (n) c এর কিছু মানের জন্য c 1 g (n) এবং c 2 g (n) এর মধ্যে আবদ্ধ হতে পারে 1 এবং গ 2 , অর্থাত্ f এর বৃদ্ধির হার asyptotically g এর সমান: g একটি নিম্ন বাউন্ড এবং f এর উপরের সীমানা হতে পারে। এটি সরাসরি বোঝায় যে এফটি একটি নিম্ন বাউন্ড এবং উপরের বাউন্ডও হতে পারে। অতএব,

f (x) = Θ (g (x)) iff g (x) = Θ (f (x))

একইভাবে, f (n) = Θ (g (n)) দেখাতে, এটি g এর উপরের বাউন্ডের (যেমন f (n) = O (g (n))) দেখাতে যথেষ্ট এবং f এর একটি নিম্ন সীমা g (যেমন f (n) = Ω (g (n)) যা g (n) = O (f (n))) এর ঠিক একই জিনিস। concisely,

f (x) = Θ (g (x)) iff f (x) = O (g (x)) এবং g (x) = O (f (x))


ωফাংশনের আলগা উপরের এবং looseিলে boundালা সীমানাকে উপস্থাপন করে লিটল ওহ এবং লিটল ওমেগা ( ) স্বীকৃতিগুলিও রয়েছে।

সংক্ষেপ:

f(x) = O(g(x))(বড়-OH) মানে যে বৃদ্ধির হার f(x)এসিম্পটোটিকভাবে হয় কম বা সমান বৃদ্ধির হার g(x)

f(x) = Ω(g(x))(বড়-ওমেগা) মানে যে বৃদ্ধির হার f(x)এসিম্পটোটিকভাবে হয় তার চেয়ে অনেক বেশী বা সমান বৃদ্ধির হারg(x)

f(x) = o(g(x))(অল্প OH) মানে যে বৃদ্ধির হার f(x)এসিম্পটোটিকভাবে হয় কম বৃদ্ধির হার g(x)

f(x) = ω(g(x))(অল্প ওমেগা) মানে যে বৃদ্ধির হার f(x)এসিম্পটোটিকভাবে হয় তার চেয়ে অনেক বেশী বৃদ্ধির হারg(x)

f(x) = Θ(g(x))(থেটা) মানে যে বৃদ্ধির হার f(x)এসিম্পটোটিকভাবে হয় সমান বৃদ্ধির হারg(x)

আরও বিশদ আলোচনার জন্য, আপনি উইকিপিডিয়ায় সংজ্ঞাটি পড়তে পারেন বা Cormen et al দ্বারা পরিচিতি অ্যালগরিদমের মতো ক্লাসিক পাঠ্যপুস্তকের সাথে পরামর্শ করতে পারেন ।


1
যদি "যদি একটি অ্যালগরিদম ও (জি (এন)) এর হয় তবে এর অর্থ হ'ল এন বড় হওয়ার সাথে সাথে অ্যালগরিদমের চলমান সময়টি সর্বাধিক আনুপাতিক জি (এন) এর সাথে হয়।" তাহলে আপনি কীভাবে বলবেন যে "মূলত যখন আমরা বলি একটি অ্যালগরিদম ও (এন) এর হয়, এটি ও (এন 2), ও (এন 1000000), ও (2 এন)," ??
Andy897

@ অ্যান্ডি 897 এটি "আনুপাতিক" সংজ্ঞা থেকে অনুসরণ করে। উইকিপিডিয়া থেকে: "গণিতে, দুটি পরিবর্তনশীল সমানুপাতিক হয় যদি একটিতে সর্বদা অন্যটির পরিবর্তনের সাথে পরিবর্তন হয় এবং যদি পরিবর্তনগুলি সবসময় ধ্রুবক গুণকের ব্যবহারের সাথে সম্পর্কিত হয়। ধ্রুবকটিকে অনুপাত বা অনুপাতের সহগ বলা হয় ধ্রুব। "
মেহরদাদ আফশারি

কী >= \Omega(...)মানে? আমি যদি এটি বলি যে এটির সদস্য \Omega(...), তবে এটি এর চেয়ে বড় যদি হয়? এটি কী বোঝায়?
জোহানেস স্কাউব - লিটব

328

কোন স্বরলিপি মানে কী তা মনে রাখার জন্য একটি সহজ উপায় (একটি কৌশল, আমি অনুমান করি)।

সমস্ত বিগ-ও স্বরলিপিগুলিতে একটি বার রয়েছে বলে মনে করা যেতে পারে।

যখন একটি at এ খুঁজছেন, বারটি নীচে রয়েছে, সুতরাং এটি একটি (অ্যাসিপটোটিক) নীচের দিকে আবদ্ধ।

যখন একটি at তাকানো হয়, বারটি অবশ্যই মাঝখানে থাকে। সুতরাং এটি একটি (asympotic) আঁটসাঁট আবদ্ধ।

হে হস্তাক্ষর যখন, আপনি সাধারণত শীর্ষে শেষ, এবং একটি স্কিগল আঁকুন। সুতরাং ও (এন) হ'ল ফাংশনের উপরের সীমা bound সত্য কথা বলতে গেলে, এটি বেশিরভাগ ফন্টের সাথে কাজ করে না, তবে এটি নামের আসল সমর্থনযোগ্যতা।


5
আমি সাধারণত কোনও প্রশ্নে 3-4 উত্তরের নিচে যাই না। এই যাত্রা মূল্য ছিল। কৌশল ভাগ করে নেওয়ার জন্য ধন্যবাদ। : ডি
অসম্ভব

56

একটি বড় "ও"

একটি হ'ল বিগ থেটা

http://en.wikipedia.org/wiki/Big_O_notation

বিগ হে মানে আপনার অ্যালগরিদম প্রদত্ত এক্সপ্রেশন ছাড়া আর কোনও পদক্ষেপে কার্যকর হবে (n ^ 2)

বড় ওমেগা মানে আপনার অ্যালগরিদম প্রদত্ত অভিব্যক্তিটির চেয়ে কম পদক্ষেপে কার্যকর হবে (n ^ 2)

যখন উভয় শর্ত একই অভিব্যক্তির জন্য সত্য হয়, আপনি বড় থিটা স্বরলিপি ব্যবহার করতে পারেন ....


20
তবে ভুল! N খুব বড় হয়ে যাওয়ার সাথে সাথে পদক্ষেপের সংখ্যা উপরে n ^ 2 দ্বারা আবদ্ধ। তবে, এন ^ 2 + সি পদক্ষেপে চলমান একটি অ্যালগরিদম n ^ 2 পদক্ষেপের চেয়ে বেশি সময় নেয় তবে এটি এখনও O (n ^ 2)। বিগ-ও স্বরলিপি কেবল অ্যাসিম্পটোটিক বেহভিওর বর্ণনা করে ।
হেনরিআর

1
এটি সব শেষ হয় না সমস্ত সংজ্ঞা। এটি কেবল একটি প্রবর্তন বিন্দু .... যেহেতু আমরা অসীম প্রতিযোগিতার স্বরলিপিগুলি এন অসীমের কাছে যাওয়ার সাথে কথা বলছি। ধ্রুব সি একটি অ-ফ্যাক্টর হয়ে যায়।
l_39217_l

1
যদিও আমি এই উত্তরের সরলতাটি পছন্দ করি, তবে এটি লক্ষ্য করা উচিত যে একটি হে (এন ^ 2) অ্যালগরিদম কার্যকর করতে 1,000,000,000 * n ^ 2 পদক্ষেপ নিতে পারে যা অবশ্যই এন ^ 2 এর চেয়ে অনেক বড়। একটি অ্যালগরিদম ও (এন ^ 2) হওয়ার অর্থ হ'ল এটি কার্যকর করতে কে * এন ^ 2 পদক্ষেপের চেয়ে বেশি সময় নেবে না, যেখানে কে কিছু ধনাত্মক আসল সংখ্যা।
মারেডচিজ

38

ইতিমধ্যে এখানে সুন্দরভাবে সংক্ষিপ্তিত একটি তাত্ত্বিক সংজ্ঞা প্রদানের পরিবর্তে আমি একটি সাধারণ উদাহরণ দেব:

অনুমান রান টাইম f(i)হয় O(1)। নীচে একটি কোড খণ্ড রয়েছে যার অ্যাসিম্পটোটিক রানটাইম Θ(n)। এটি সর্বদা ফাংশনটির f(...) nসময়কে কল করে । নিম্ন এবং উপরের উভয় প্রান্তই n।

for(int i=0; i<n; i++){
    f(i);
}

নীচের দ্বিতীয় কোড খণ্ডটিতে অসম্পূর্ণ রানটাইম রয়েছে O(n)। এটি f(...) বেশিরভাগ n সময়ে ফাংশনটি কল করে । উপরের গণ্ডিটি এন, তবে নীচের গণ্ডিটি ভিতরে হতে পারে তার উপর নির্ভর করে Ω(1)বা হতে পারে ।Ω(log(n))f2(i)

for(int i=0; i<n; i++){
    if( f2(i) ) break;
    f(i);
}

"অ্যাসিপটোটিক রানটাইম" বলতে কী বোঝ?
হেলিকপ্টার ড্র

1
এই প্রসঙ্গে অ্যাসিপটোটিকের অর্থ "বড় পরিমাণে এন এর জন্য"। কোড খণ্ডের রানটাইম যার অ্যাসিপোটটিক রানটাইম হ'ল Θ(n)রেখাযুক্তভাবে বৃদ্ধি পাবে যেমন এন বৃদ্ধি পাবে, যেমন রানটাইম টি টি টি (এন) = আ * এন + বি হিসাবে প্রকাশ করা যেতে পারে। এন এর ছোট মানগুলির জন্য (যেমন এন = 1 বা 2) আচরণের বর্ণনা দেওয়ার পক্ষে এটি সর্বোত্তম উপায় নাও হতে পারে - সম্ভবত আপনার কিছু সূচনা কোড রয়েছে যা f (i) এর চেয়ে অনেক বেশি সময় নেয়।
কারা নিনিজ

11

থিতা হ'ল সংক্ষিপ্ত পন্থাটি একটি বিশেষ সিটেশন হিসাবে উল্লেখ করা যেখানে বড় ও ওমেগা একই।

সুতরাং, যদি এক দাবী The Theta is expression q, তারপর তারা অগত্যা যে দাবি করছেন Big O is expression qএবং Omega is expression q


রুক্ষ সাদৃশ্য:

যদি: থিটা দাবি করে, "সেই প্রাণীর 5 পা রয়েছে" " তারপরে এটি অনুসরণ করে: বিগ ও সত্য ("সেই প্রাণীর 5 টির চেয়ে কম বা সমান অংশ রয়েছে" ") এবং ওমেগা সত্য (" এই প্রাণীটির 5 টিরও বেশি বা তার সমান রয়েছে "")

এটি কেবল মোটামুটি উপমা কারণ অভিব্যক্তিগুলি নির্দিষ্টভাবে নির্দিষ্ট সংখ্যা নয়, পরিবর্তে লগ (এন), এন, এন n 2, (ইত্যাদি) এর আকারের বিভিন্ন ক্রমের ক্রিয়াকলাপ।


11

একটি চার্ট পূর্ববর্তী উত্তরগুলি বুঝতে সহজ করে তুলতে পারে:

Ation-স্বরলিপি - একই আদেশ | ও-স্বরলিপি - উপরের সীমাবদ্ধ

Θ (n) - একই আদেশ ও (এন) - উপরের আবদ্ধ

ইংরেজীতে,

বামদিকে, লক্ষ্য করুন যে এখানে একটি উপরের বাউন্ড এবং নীচে একটি আবদ্ধ রয়েছে যা উভয়ই একই মানের আকারের (যেমন জি (এন) )। ধ্রুবকগুলিকে উপেক্ষা করুন এবং যদি উপরের বাউন্ড এবং নিম্ন সীমাটির পরিমাণ একই মাত্রার হয় তবে, কেউ বৈধভাবে বলতে পারেন f (n) = Θ (g (n)) বা f (n) g (n) এর বৃহত থিটারে

ঠিক আছে, সহজ উদাহরণ শুরু করে, বলছে উপরের বাউন্ড ছ (ঢ) কেবল মাত্রার ক্রম এবং উপেক্ষা করে ধ্রুবক (সমস্ত ঠিক যেমন বড় হে স্বরলিপি না)।


আপনি শব্দ এবং গ্রাফ গুলিয়ে ফেলেছেন।
কুশলভম

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

শেষ অনুচ্ছেদের শেষ লাইনটি f (n) হওয়া উচিত না g (n) এর থেটা?
কুশলভম

@ কুশালভম, এটি পরিষ্কার করার জন্য ধন্যবাদ। আমি আমার ইংরেজি ভুল সংশোধন করার জন্য শেষের আগে অনুচ্ছেদের শেষ লাইনের পাঠ্য পরিবর্তন করেছি changed
রিকার্ডো


6

f(n)জন্যে O(n)যদি ইতিবাচক বিদ্যমান kযেমনf(n)<=k*n

f(n)জন্যে Θ(n)যদি ইতিবাচক বিদ্যমান k1, k2যেমনk1*n<=f(n)<=k2*n

বিগ ও নোটেশন উইকিপিডিয়া নিবন্ধ


1
আপনি একটি গুরুত্বপূর্ণ পয়েন্টটি মিস করেছেন - এগুলি কেবলমাত্র সমস্ত এন> এন 1 এর জন্য সত্য, যেমন অ্যাসেম্পোটোটিক্যালি।
হেনরিআর

এন> এন 1 এর অর্থ কী?
হেলিকপ্টারটি

3

সীমা ব্যবহার করে

আসুন বিবেচনা করুন f(n) > 0এবং সবার g(n) > 0জন্য n। এটি বিবেচনা করা ঠিক আছে, কারণ দ্রুততম আসল অ্যালগরিদমে কমপক্ষে একটি অপারেশন রয়েছে এবং শুরুর পরে তার কার্যকরকরণ সম্পন্ন করে। এটি ক্যালকুলাসকে সহজতর করবে, কারণ আমরা f(n)পরম মানের ( |f(n)|) পরিবর্তে মান ( ) ব্যবহার করতে পারি ।

  1. f(n) = O(g(n))

    সাধারণ:

              f(n)     
    0 ≤ lim ──────── < ∞
        n➜∞   g(n)
    

    এর জন্য g(n) = n:

              f(n)     
    0 ≤ lim ──────── < ∞
        n➜∞    n
    

    উদাহরণ:

        Expression               Value of the limit
    ------------------------------------------------
    n        = O(n)                      1
    1/2*n    = O(n)                     1/2
    2*n      = O(n)                      2
    n+log(n) = O(n)                      1
    n        = O(n*log(n))               0
    n        = O(n²)                     0
    n        = O(nⁿ)                     0
    

    Counterexamples:

        Expression                Value of the limit
    -------------------------------------------------
    n        ≠ O(log(n))                 ∞
    1/2*n    ≠ O(sqrt(n))                ∞
    2*n      ≠ O(1)                      ∞
    n+log(n) ≠ O(log(n))                 ∞
    
  2. f(n) = Θ(g(n))

    সাধারণ:

              f(n)     
    0 < lim ──────── < ∞
        n➜∞   g(n)
    

    এর জন্য g(n) = n:

              f(n)     
    0 < lim ──────── < ∞
        n➜∞    n
    

    উদাহরণ:

        Expression               Value of the limit
    ------------------------------------------------
    n        = Θ(n)                      1
    1/2*n    = Θ(n)                     1/2
    2*n      = Θ(n)                      2
    n+log(n) = Θ(n)                      1
    

    Counterexamples:

        Expression                Value of the limit
    -------------------------------------------------
    n        ≠ Θ(log(n))                 ∞
    1/2*n    ≠ Θ(sqrt(n))                ∞
    2*n      ≠ Θ(1)                      ∞
    n+log(n) ≠ Θ(log(n))                 ∞
    n        ≠ Θ(n*log(n))               0
    n        ≠ Θ(n²)                     0
    n        ≠ Θ(nⁿ)                     0
    

2

উপসংহার: আমরা বড় ও, বড় big এবং বড় Ω কে একই জিনিস হিসাবে বিবেচনা করি।

কেন? আমি নীচের কারণটি বলব:

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

বড় ও ও বড় between এর মধ্যে স্পষ্টভাবে সম্পর্কটি ব্যাখ্যা করার জন্য, আমি প্রথমে বড় ও ও ছোট ও এর মধ্যে সম্পর্কটি ব্যাখ্যা করব। সংজ্ঞা থেকে, আমরা সহজেই জানতে পারি যে ছোট ও বড় ও এর একটি উপসেট example উদাহরণস্বরূপ :

টি (এন) = এন ^ 2 + এন, আমরা টি (এন) = ও (এন ^ 2), টি (এন) = ও (এন ^ 3), টি (এন) = ও (এন ^ 4) বলতে পারি। তবে ছোট ও এর জন্য টি (এন) = ও (এন ^ 2) ছোট ও এর সংজ্ঞা পূরণ করে না। সুতরাং কেবল টি (এন) = ও (এন ^ 3), টি (এন) = ও (এন ^ 4) ছোট ও এর জন্য সঠিক। অপ্রয়োজনীয় টি (এন) = ও (এন ^ 2) কী? এটা বড় θ!

সাধারণত, আমরা বলি বড় হে হ'ল হে (এন ^ 2), টি (এন) = ও (এন ^ 3), টি (এন) = ও (এন ^ 4) বলা খুব কমই। কেন? কারণ আমরা বড় ওকে অবচেতনভাবে বড় হিসাবে বিবেচনা করি।

একইভাবে, আমরা অবচেতনভাবেও বড়কে বড় হিসাবে বিবেচনা করি।

এক কথায়, বড় ও, বড় θ এবং বড় the সংজ্ঞা থেকে একই জিনিস নয়, তবে তারা আমাদের মুখ এবং মস্তিষ্কে একই জিনিস।


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