সাধারণ এবং ব্যবহারিক নির্বাহী অ্যালগরিদম, জটিল চলমান সময়


18

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

থাম্বের এই নিয়মটি ব্যর্থ হয় বলে আমাদের কী উল্লেখযোগ্য উদাহরণ রয়েছে?

অবশ্যই খুব সহজেই খুব সহজেই চলতে থাকে এমন এক অ্যালগরিদমের উদাহরণগুলি পাওয়া খুব সহজ যেগুলি কার্যকর করা খুব কঠিন। তবে কনভার্সের কী হবে?

আমাদের কাছে কি খুব সাধারণ এবং ব্যবহারিক ডিটারমিনিস্টিক অ্যালগরিদমগুলির উদাহরণ রয়েছে যা কার্যকর করা সহজ তবে এর সবচেয়ে জটিল-মত অ্যাসিম্পটোটিক চলমান সময় হিসাবে খুব জটিল অভিব্যক্তি হিসাবে ঘটে?

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

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


পুনশ্চ. আমি চাই না এই একটি "বিগ-তালিকা প্রশ্ন" করতে, এবং হিসাবে The CW। আমি একটি একক দুর্দান্ত উদাহরণ খুঁজে পেতে চাই (এটি যদি বিদ্যমান থাকে তবে)। অতএব দয়া করে অন্য উত্তর পোস্ট করুন যদি আপনি মনে করেন যে এখন পর্যন্ত যে কোনও উত্তরের চেয়ে এটি "ভাল"।


2
একেএস প্রাইমালিটি টেস্টিং অ্যালগরিদম উত্তর হিসাবে যোগ্যতা অর্জন করে? আমি দ্বিধা বোধ করছি কারণ এটির চলমান সময়ের "জটিলতা" কিছুটা অর্থে প্রাইম বিতরণের
সিউডোরেন্ডমনেসের ফল

আমার অনুভূতিটি হ'ল সবচেয়ে খারাপ পরিস্থিতি বেশিরভাগ ক্ষেত্রে "সমস্ত কিছুর উপর দিয়ে যায়" এবং সবকিছুই আমরা রানটাইম পরিমাপ করি। সুতরাং, স্বাভাবিকভাবেই সহজ অ্যালগরিদমে সহজ ডাব্লুসি-রানটাইম থাকে। জটিল কিছু রানটাইম সামনে আসে যদি আমরা কিছু কৌশল দ্বারা একটি ক্ষুদ্র বিট শেভ করার চেষ্টা করি। তবে আপনার প্রশ্ন আকর্ষণীয়; আমার অনুভূতি ঠিক আছে বলে আমি অবশ্যই আগ্রহী ious
রাফেল

@নাব: ধন্যবাদ, একেএস একটি ভাল ধারণা। তবে আমি নিশ্চিত না যে আমরা এটিকে "ব্যবহারিক" বলতে পারি কিনা?
Jukka Suomela

জরিপ প্রচার, সীমাবদ্ধতা প্রচার বা ক্রমিক টিআরডাব্লু যেমন "অ্যালগরিদম" হিসাবে গণনা বার্তা-পাসিং প্রকল্পগুলি? কার্যকর করা সহজ, রানটাইমের পূর্বাভাস দেওয়া কঠিন
ইয়ারোস্লাভ বুলাটোভ

ওফস, আমি সবসময় পোলার্ডের rho পদ্ধতি পছন্দ করি, এটি সহজ এবং ব্যবহারিক, এবং বিশ্লেষণটি সত্যই শক্ত, তবে অ্যালগরিদমের
এলোমেলোতা

উত্তর:


20

আমি যে সর্বোত্তম উদাহরণটি ভাবতে পারি তা হ'ল একটি অ্যালগরিদম (নীচে বর্ণিত) এর বিন্যাসে লেভেল গণনা করাkবিমানের এন লাইনের, অর্থাৎ পয়েন্টগুলির দ্বারা গঠিত বহুভুজীয় লাইন যেটিরউপরে উল্লম্বভাবে কে লাইন রয়েছে। এটি সমস্যার জন্য পরিচিত সবচেয়ে দক্ষ অ্যালগরিদম নয়। আরও সহজ জটিলতাগুলির সাথে আরও দক্ষ অ্যালগরিদম রয়েছে তবে আমি বিশ্বাস করি যে এটি বেশিরভাগের তুলনায় (সমস্ত না থাকলে) আরও কার্যকর practical বিশ্লেষণ সম্ভবত শক্ত নয়, কারণ এটি কে- লেভেল জটিলতাব্যবহার করে, যা একটি বিখ্যাত উন্মুক্ত সমস্যা (আমার মনে হয় বিশ্লেষণে অন্যান্য সমস্ত পদগুলি শক্ত)। তবুও, আমি সন্দেহ করি কে- লেভেলেরউন্নত সীমানাচলমান সময়কে আরও সহজ করে তুলবে। আমি ধরে নেব কে =nkkkজটিলতা লিখতে n / 2 কেবলমাত্র n এর ক্রিয়া হিসাবে।k=n/2n

অ্যালগরিদম লাইন সুইপ দৃষ্টান্তের উপর ভিত্তি করে এবং দুটি গতিগত অগ্রাধিকার সারি হিসাবে গতিমূলক টুর্নামেন্ট ব্যবহার করে। একটি লাইন কে- লেভেলের উপরে বা নীচে গেলে সন্নিবেশ এবং মোছা সঞ্চালিত হয় , একটি গতিশীল টুর্নামেন্ট থেকে অন্য লাইনটি সরানো হয়। অতএব, আছে হে ( 4 / 3 ) সন্নিবেশ এবং মুছে দেওয়া (দে এর জন্য আবদ্ধ ব্যবহার পর্যায়ের জটিলতা)। প্রতিটি ইভেন্টের মধ্যে প্রক্রিয়াকৃত হয় হে ( লগ ) সময় এবং আছে হে ( 4 / 3 α ( এন(logn)kO(n4/3)kO(logn) ইভেন্ট ( α (O(n4/3α(n)logn/loglogn) লাইনখণ্ডগুলিরব্যবস্থাপনার উপরের খামের জটিলতা থেকে আসে, যখন লগ এন / লগ লগ এন একটি ( লগ এন ) -রি গাছেরউচ্চতা থেকে আসে)। মোট চলমান সময়α(n)logn/loglogn(logn)

O(n4/3α(n)log2n/loglogn).

আরও বিশদ এবং রেফারেন্সের জন্য দয়া করে টিমোথি চ্যানের পান্ডুলিপি http://www.cs.uwaterloo.ca/~tmchan/lev2d_7_7_99.ps.gz দেখুন। ফ্যাক্টর একটি বাইনারি (এর intead ব্যবহার করে মুছে ফেলা হতে পারে ( লগ ) গতিসম্পর্কিত টুর্নামেন্ট -ary), কিন্তু এটা আসলে পরীক্ষার যে আমি সঞ্চালিত মধ্যে গতিসম্পর্কিত অগ্রাধিকার কিউ দ্রুত সম্পন্ন করা। জটিলতাটি কিছুটা খারাপ এবং আরও খারাপ হওয়া উচিত (যদিও অ্যালগোরিদমটি এখনও ব্যবহারিক হবে) যদি গতিগত টুর্নামেন্টের পরিবর্তে একটি গতিশক্তি ব্যবহার করা হয় ( বর্গাকারের অভ্যন্তরে একটি লগ প্রদর্শিত হবে)।1/loglogn(logn)log


দুর্দান্ত উদাহরণ, ধন্যবাদ! এটি বীট করা সহজ হতে পারে না। :)
Jukka Suomela

1
এই অ্যালগরিদমটি এলোমোডিকৃত অ্যালগরিদমগুলির তুলনায় অনুশীলনে ধীর, যা প্রয়োগ করা বেশ সহজ (যে কেউ এই অ্যালগরিদমকে বাস্তবায়িত করেছেন (আমার কাগজটি "প্ল্যানার বিন্যাসে হাঁটাচলা" দেখুন।))
সারিল হার-প্লেড

আমি যে উত্তরটি মনে রেখেছিলাম তার নিকটতম বলে মনে হওয়ায় আমি এই উত্তরটি গ্রহণ করেছি। তবে কারও কাছে নতুন কিছু ধারণা থাকলে আমি খুশী হব!
Jukka Suomela

24

ইউনিয়ন-অনুসন্ধান ডেটা স্ট্রাকচার ক্রিয়াকলাপগুলি আপনার মানদণ্ডগুলি পূরণ করছে বলে মনে হচ্ছে:

http://en.wikipedia.org/wiki/Disjoint-set_data_structure


2
প্রকৃতপক্ষে, আমি একই উত্তরটি পোস্ট করেছিলাম তবে আমার খেয়াল করার পরে আপনি এটি আমাকে মুছে ফেলেন it :) সাধারণ এবং মার্জিত অ্যালগরিদম যা একটি অ-তাত্ত্বিক এমনকি আবিষ্কার করতে পারে তবে বিপরীত একারম্যান অবিবেদী জটিলতা।
ওয়ারেন স্কুডি

O(α(n))O(n4/3α(n)log2n/loglogn)

ইউনিয়ন-সন্ধানের জন্য প্রুফ জটিলতায় অ্যালগরিদমের দৈর্ঘ্যের অনুপাতটি সম্ভবত অপরাজেয় - তিনটি ক্রিয়াকলাপ কী, নয়টি লাইন কোড?
নীল কৃষ্ণস্বামী

1
I don't think the question is about a simple and practical algorithm with complex analysis. I think the question is about a simple and practical algorithm with complex running time, that is, the actual expression obtained for the upper bound.
Guilherme D. da Fonseca

6

Simplex algorithm. Easy to implement and works wonderfully in practice but is a mess to analyze theoretically.


Yes, it is hard to analyse, but is there an analysis that has concluded that the running time of Simplex is bounded by a certain complicated function of n?
Jukka Suomela

সিম্পলেক্স ক্লি-মিন্টির নির্মাণের মাধ্যমে সবচেয়ে খারাপ ক্ষেত্রে ক্ষতিকারক সময় নেবে বলে জানা গেছে। আমি মনে করি, জুক্কা যা জিজ্ঞাসা করছেন তার একটি উদাহরণ
সুরেশ ভেঙ্কট

1
সিমপ্লেক্স অ্যালগরিদমের চেয়ে আমার সিম্প্লেক্স পদ্ধতিটি বলা উচিত ছিল। ক্লি-মিন্টির কিউব এবং এর বিভিন্নতা কিছু ভ্যানিলা পাইভোটিং নিয়মের জন্য কাজ করে। তবে, উদাহরণস্বরূপ, এলোমেলো দিকের পাইভোটিং নিয়মের একটি ক্রেজি উপরের এবং (সাম্প্রতিক) নীচে আবদ্ধ রয়েছে। গিল কালাই সাম্প্রতিক ফলাফলের জন্য একটি দুর্দান্ত ব্লগ এন্ট্রি ছিল। gilkalai.wordpress.com/2010/11/09/…
মোহিত সিং

good point, Mohit. I was confused as well.
Suresh Venkat

2

I'm not sure if you consider this "practical" but it is a famous open problem. Paul Erdos said about Collatz conjecture: “Mathematics is not yet ready for such problems”

Collatz procedure: while (x != 1) { if x is odd, x = 3x + 1; else x = x/2}. A famous conjecture is that the procedure always terminates with x=1. I'm not aware of simple run-time complexity of this algorithm.


আর এই অ্যালগরিদম দ্বারা কী সমস্যাটি সমাধান হচ্ছে ...?
Jukka Suomela

এটি উপন্যাসের রান-টাইম বিশ্লেষণ কৌশলগুলির সন্ধান করার পরামর্শ দেয়।
মোহাম্মদ আল তুর্কিস্তি

2
আপনি তখন বলতে পারেন যে কোলাটজ অনুমানের প্রমাণের জন্য একটি নিরপেক্ষ শক্তি অনুসন্ধান "উপন্যাসের রান-টাইম বিশ্লেষণ কৌশলগুলি "কেও উদ্বুদ্ধ করে; উভয় ক্ষেত্রেই অ্যালগরিদম কেবল নির্বোধভাবে একটি ডিগ্রাফ অন্বেষণ করছে। কোলাটজ অনুমানটি মজাদার, তবে আমি এটি "একটি অ্যালগরিদম" এর একটি আকর্ষণীয় উদাহরণ বলে মনে করি না।
নীল দে বৌদ্রাপ

2

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

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

One area of application is to computational biology (genetics) where questions about genome rearrangements can be couched in terms of the distance between permutations using reversals of pieces of the permutations subject to various rules.

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