ও (এমএন) "লিনিয়ার" বা "চতুর্ভুজ" বৃদ্ধি হিসাবে বিবেচিত হয়?


24

যদি আমার কিছু ফাংশন থাকে যার টাইম জটিলতা হ'ল ( এমএন ), যেখানে এম এবং এন এর দুটি ইনপুটগুলির আকার, আমরা কি তার সময়ের জটিলতাটিকে "রৈখিক" বলি (যেহেতু এটি এম এবং এন উভয় ক্ষেত্রেই লিনিয়ার ) বা "চতুর্ভুজ" ( যেহেতু এটি দুটি আকারের পণ্য)? অথবা অন্য কিছু?

আমি এটিকে "রৈখিক" বলা বিভ্রান্তিকর বলে মনে করি কারণ ও (এম + এন) লিনিয়ার তবে আরও দ্রুত, তবে আমি এটি "চতুর্ভুজ" বলাও অদ্ভুত বলে মনে করি কারণ এটি প্রতিটি ভেরিয়েবলের পৃথকভাবে লিনিয়ার।


7
এটা তোলে রৈখিক বলতে গুরুত্বপূর্ণ কি । উদাহরণস্বরূপ, যদি আমাদের প্রান্ত এবং টিউটোরিজ সহ একটি গ্রাফ থাকে তবে প্রান্তের সংখ্যায় রৈখিক, তবে (সম্ভাব্যভাবে) উল্লম্ব সংখ্যায় চতুর্ভুজ। এন ( এম + এন )mnO(m+n)
রাফায়েল

3
আমি মনে করি রাফেলের মন্তব্য স্পট রয়েছে। "লিনিয়ার" অবশ্যই কোনও কিছুর তুলনায় ব্যবহার করতে হবে, প্রায়শই ইনপুট আকার। যদি আপনি একটি ট্রান্সপোস করছেন তবে ম্যাট্রিক্স "লিনিয়ার" কারণ ইনপুটটির আকার । আপনি যদি কোনও অক্ষরের স্ট্রিংয়ে একটি অক্ষরের স্ট্রিংয়ের উপস্থিতিগুলি সন্ধান করছেন তবে লিনিয়ার নয় --- হবে। ( এম এন ) ( এম এন ) এন এম ( এম এন ) ( এম + এন )m×nO(mn)O(mn)nmO(mn)O(m+n)
স্যামম

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

3
@ মেহরদাদ: আমি মনে করি বেসলাইনটি "ইনপুট আকারে, ধরে নিচ্ছি ইনপুটটি বাইনারি স্ট্রিং (একটি ট্যুরিং মেশিন টেপে) হিসাবে এনকোড করা আছে"। এই ইনপুট আকারটি তখন এবং নিজেই একটি ফাংশন । স্যাম ভাল উদাহরণ দেয়। মিnm
রাফায়েল

1
একাধিক ভেরিয়েবলের ল্যান্ডউ নোটেশনের জন্য লোকজন.সি.এস.এসইউ.ইডু / hrhowell/asyompotic.pdf দেখুন ।
জোনাস ক্যালকার

উত্তর:


18

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


এবং একটি বিবেচনা স্থির যুক্তিসঙ্গত করে তোলে ? এনmn
ব্যবহারকারী 2768

11

মন্তব্যে আলোচনার ব্যাখ্যা দেওয়ার জন্য, আপনি বৃদ্ধির তুলনায় কী পরিমাপ করছেন তা গুরুত্বপূর্ণ matters

@ কাভেহের দ্বারা বর্ণিত হিসাবে, একই সাথে উভয় ক্ষেত্রে রৈখিক নয়, তবে লিনিয়ার হয় যদি একটি ধ্রুবক হয় এবং অন্যটি বৃদ্ধি পায়।O(mn)

অন্যদিকে, সম্ভবত রৈখিক হিসাবে বিবেচিত হবে। Intuitively, যদি দ্বিগুণ অথবা যদি দ্বিগুণ বা এমনকি উভয় এবং ডবল, বেশী দ্বিগুণ করতে পারেন। এটি সত্য নয় ; যদি এবং উভয় ডাবল 4 দ্বারা যায় তবে এটি অনেক প্রসঙ্গে এই চলমান সময়টিকে চতুর্ভুজ হিসাবে বিবেচনা করা হবে। আমি একটি দম্পতি অনুচ্ছেদে স্ট্রিং ম্যাচিংয়ের সাথে এর উদাহরণ দিই।মি এন এম এন এম + + এন এম এন এম এন এম এনO(m+n)mnmnm+nmnmnmn

তবে সাধারণত আপনি যখন বিগ- স্বরলিপি ব্যবহার করছেন তখন আপনি এটি বিশেষ কোনও বিষয়ের জন্য ব্যবহার করছেন using যেহেতু আমরা বেশিরভাগ তাত্ত্বিকই তাই এটি সাধারণত সমস্যার ইনপুটটির আকার।O

উদাহরণস্বরূপ ম্যাট্রিক্স সংযোজন নেওয়া যাক। দুটি ম্যাট্রিক্স যুক্ত করতে সময় লাগে । তবে আমাদের ইনপুটটির প্রতিটি উপাদান কেবল একবার স্পর্শ করা হয়, তাই এটিকে সাধারণত রৈখিক বলা হবে। অন্য কথায় বলতে গেলে , আমাদের ইনপুটটি আকার , সুতরাং চলমান সময় আকারের ক্ষেত্রে লিনিয়ার।( এম এন ) ( এম এন ) ( এম এন )m×nO(mn)O(mn)O(mn)

এবার স্ট্রিং ম্যাচিংয়ের দিকে লক্ষ্য করা যাক - যথা আমাদের মাপের স্ট্রিং এবং আকার এর একটি স্ট্রিং দেওয়া হয় এবং আমরা দেখতে চাই যে বড় স্ট্রিংয়ের মধ্যে ছোট স্ট্রিংয়ের কোনও উপস্থিতি রয়েছে কিনা। আমরা সময়ে এটিকে নির্লজ্জভাবে পরীক্ষা করতে পারি ; এটি সাধারণত চতুর্ভুজ হিসাবে বিবেচিত হবে। কেন? এবং যদি কিছু হতে পারে তবে সেট করুন । তারপরে আমাদের চলমান সময় এবং আমাদের ইনপুটটি আকার ।এন ( এম এন ) মি এন এম = এন ( এম 2 ) 2 মিmnO(mn)mnm=nO(m2)2m

অন্যদিকে, আমরা যদি রবিন-কার্প অ্যালগরিদম ব্যবহার করি তবে আমরা (গড়) সময় পাই । আমাদের ইনপুটটিতে উভয় স্ট্রিং রয়েছে, সুতরাং আমাদের ইনপুটটি ওপেন এরও ছিল। সুতরাং, এটি সাধারণত রৈখিক হিসাবে উল্লেখ করা হবে।( এম + এন )O(m+n)O(m+n)

সংক্ষিপ্তসার হিসাবে: ম্যাট্রিক্স গুণনের মতো জিনিসের জন্য সাধারণত রৈখিক বলা হয় কারণ এটি ইনপুটটির আকারের ক্ষেত্রে লিনিয়ার, তবে ছোট ইনপুটটির কারণে স্ট্রিং ম্যাচিংয়ের মতো জিনিসগুলির জন্য সাধারণত এটি চতুর্ভুজ বলা হয়। কোন শব্দটি উপযুক্ত তা আপনি এটি ব্যবহার করছেন সেই প্রসঙ্গে নির্ভর করে।O(mn)


8

আপনি চলমান সময় পরিমাপ হয় তারপর হে ( মি এন ) হয় না একটি রৈখিক ফাংশন ( মি , এন )মি এবং এন এর মধ্যে কোনও সম্পর্ক না থাকলে এই ফাংশনটি সাধারণভাবে চতুর্ভুজ বৃদ্ধি পেতে পারে ।(m,n)O(mn)(m,n)mn

তবে এটি পৃথকভাবে তাদের প্রত্যেকের মধ্যে একটি লিনিয়ার ফাংশন, অর্থাত্ যদি আপনি সেগুলির মধ্যে একটি স্থির করেন এবং অন্যান্য ভেরিয়েবলের বিকাশের দিকে তাকান তবে এটি অন্য একটিতে লিনিয়ার ফাংশন।


3

একাধিক ইনপুটগুলির সাথে সমস্যার জটিলতা পরিমাপ করার জন্য একটি উপায় হ'ল প্রভাবশালী ভেরিয়েবলটি সন্ধান করা এবং তারপরে সেই পরিবর্তনশীলটির উপর ভিত্তি করে অন্যান্য ইনপুটগুলি আবদ্ধ করা। এই পদ্ধতির সাথে আপনার একক ভেরিয়েবলের উপর ভিত্তি করে জটিলতা ফাংশন থাকতে পারে ।


2
কোনও প্রভাবশালী পরিবর্তনশীল নাও থাকতে পারে, উদাহরণস্বরূপ যদি আপনার নোড এবং প্রান্তের সংখ্যা থাকে have
রাফেল

0

L={w1#w2|wi(Σ{#}),}fw = w 1 # w 2L O (min{|w1|,|w2|}f(|w|)w=w1#w2LO(|w1||w2|)LO(f(|w|)(|w|f(|w|))=O(f(|w|)|w|f(|w|)2)=O(f(|w|)|w|)

এর অর্থ আপনি লিনিয়ার সময় পান, যদি আপনার ইনপুটটির ছোট অংশটি ধ্রুবক থাকে (পুরো ইনপুটটির তুলনায়), এর মধ্যে কিছু থাকে (যেমন ) যদি এটি লাইনারি হয় তবে এটি সাবলাইনারি এবং চতুর্ভুজ রানটাইম runO(nlogn)

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