দুটি পুনরাবৃত্তির কলগুলির সাথে পুনরাবৃত্তির সম্পর্ক সমাধান করা


10

আমি অবস্থার অধীনে quicksort এর সবচেয়ে খারাপ ক্ষেত্রে রানটাইম অধ্যয়নরত করছি যে এটা একটা করতে হবে না খুব সংজ্ঞা তারতম্য জন্য ভারসাম্যহীন পার্টিশন খুব

এটি করার জন্য আমি নিজেই এই প্রশ্নটি জিজ্ঞাসা করি যে রানটাইম এর ক্ষেত্রে কী হবে কোয়িকোর্টটি সর্বদা কিছু ভগ্নাংশ বিভক্ত অংশে ভাগ হয়ে যায় যেমন উপাদানগুলি বাম বিভাজনে রয়েছে এবং ডান পার্টিশনে রয়েছে ( উপাদান, পিভট মাঝখানে রেখে)।T(n,p)0<p12p(n1)(1p)(n1)1

সবচেয়ে খারাপ অবস্থার জন্য একটি উপরের গণ্ডিকে দেয় তা দেখতে অসুবিধা হওয়া উচিত নয় যেখানে সর্বাধিক ভারসাম্যহীন অনুমোদিত পার্টিশন, কারণ ভগ্নাংশ সাথে যে কোনও বিভাগ আরও সুষম হবে এবং একটি ছোট রানটাইম থাকবে এবং কোনও ভগ্নাংশ অনুমোদিত নয়।T(n,p)p>p<p

এটা সুস্পষ্ট যে সর্বোত্তম কেস এবং হল কোকোর্টের সবচেয়ে খারাপ পরিস্থিতি। উভয়েরই সহজ পুনরাবৃত্তি সম্পর্ক রয়েছে যা কোনও শিক্ষামূলক সংস্থায় পাওয়া যায়। তবে সাধারণভাবে কীভাবে অধ্যয়ন করতে হবে তা সম্পর্কে আমার কোনও ধারণা নেই । সুস্পষ্ট সম্পর্কটি হ'ল:T(n,12)T(n,0)T(n,p)

T(n,p)=n+T(p(n1),p)+T((1p)(n1),p)

এখানে আমি আটকে যাই। আমি প্রায় অনুসন্ধান করার চেষ্টা করেছি, তবে যে সমস্ত সাহিত্য আমি বিভাজন এবং অ্যালগরিদমের বিরুদ্ধে বিজয় সম্পর্কে বুঝতে পেরেছিলাম সেগুলি "বিভাজনকে" আক্ষরিক অর্থে এবং "প্রতারণা" করে বিশ্লেষণকে এই অংশটি ব্যবহার করে যে পার্টিশনগুলি সর্বদা আকারে সমান হয়, শর্তগুলিকে এক বারে মার্জ করে a ধ্রুব।

আমি কীভাবে দুটি পুনরাবৃত্ত কলগুলি মোকাবেলা করতে জানি না এবং আমি জানি না যে এটি বৃত্তাকারটি সরিয়ে ফেলা নিরাপদ কিনা। এটি বিশ্লেষণাত্মকভাবে সমাধান করা সম্ভব, এবং যদি হ্যাঁ, তবে কীভাবে?

পিএস: আমি অ্যাসিম্পটিকগুলিতে আগ্রহী নই (যে কোনও ধ্রুবক জন্য প্রদর্শন করা সহজ )। ছোট হওয়ার সাথে সাথে ধীরে ধীরে কুইকোর্টটি আরও কমে যায় সে বিষয়ে আমি আগ্রহী, উদাহরণস্বরূপ আমি অনুপাতের ।Θ(nlogn)ppT(n,0.25)T(n,0.5)

পিপিএস: একজন স্নাতক শিক্ষার্থী হিসাবে আমি ক্ষমা চাইছি যদি আমি স্পষ্টতই বিষয়গুলি দীর্ঘ বা অবিস্মরণীয় ননতান্ত্রিকতা তৈরি করে থাকি। এবং যদিও আমি জানি না যে এটি অন্য এসই সাইটের মতো এখানে খুব বেশি নিচু করে দেখানো হয়েছে, আমি লক্ষ্য করব যে এটি ব্যক্তিগত স্বার্থ, গৃহকর্ম নয়।

উত্তর:


9

যেমনটি আপনি উল্লেখ করেছেন, আকরা – বাজজী উপপাদ্যটি দেখায় যে পুনরাবৃত্তি হ'ল সমস্ত । তবে এটি উপর নির্ভরতার প্রকৃতি প্রকাশ করে না । পরবর্তীটি নির্ধারণ করার জন্য, আমরা পুনরাবৃত্তি গাছের পদ্ধতির ব্যবহার করতে পারি।T(n,p)O(nlogn)p(0,1)p

পুনরাবৃত্তির ট্রি রুট এ ব্যবধান হয় । তার দুই সন্তান অন্তর হয় এবং , যার মোট দৈর্ঘ্য আবার । এই নোডের প্রত্যেকটির দুটি শিশু রয়েছে (ধরে নেওয়া যথেষ্ট বড়) এবং আরও অনেক কিছু। সরলতার জন্য আমরা রাউন্ডিং ত্রুটিগুলি উপেক্ষা করি, এটি হ'ল আমরা অনুমান করি যে একটি পূর্ণসংখ্যা; এটি কেবল একটি প্রযুক্তি, এবং আমি এটি সম্পর্কে চিন্তা করব না। আমরা প্রক্রিয়াটিকে থামিয়ে যখনই একটি নোড সর্বাধিক দৈর্ঘ্য । অ্যালগরিদমের জটিলতা গাছের অন্তরগুলির মোট দৈর্ঘ্যের সমানুপাতিক। যখন , পাতার{1,n}{1,,pn}{pn+1,,n}nnpn1p1/2 (যে নোডগুলিতে আমরা প্রক্রিয়াটি বন্ধ করি) এর গভীরতা রয়েছে এবং এটি সামগ্রিক জটিলতা নির্ধারণ করা আরও কঠিন করে তোলে।

গাছটি সর্বাধিক স্তর রয়েছে তা উল্লেখ করে আমরা একটি সহজ উপরের : প্রতিটি নোড তার পিতামাতার চেয়ে কমপক্ষে ছোট একটি ফ্যাক্টর । শুধু বিশ্লেষণে মত , কোন স্তরে অন্তর এর মোট দৈর্ঘ্য সর্বাধিক হয় , এবং আমরা একটি ঊর্ধ্ব বাউন্ড প্রাপ্ত উপর সময় চলমান. যেহেতু এবং ছোট , আমরা এটি হিসাবে লিখতে পারি ।log1p(1/n)1pp=1/2nO(nlog1p(1/n))log1p(1/n)=logn/log(1p)1log(1p)1=log(1p)=p±O(p2)pO(nlogn/p)

এখানে আরও সঠিক গণনা দেওয়া হচ্ছে। স্তর বিবেচনা করুন । মনে করুন আমরা একটি ছোট ব্যবধানে পৌঁছানোর পরে প্রক্রিয়াটি বন্ধ করি না। আমরা পদক্ষেপ গ্রহণ করে একটি এলোমেলো প্রান্তটি তৈরি করতে পারি, যার প্রতিটিটিতে আমরা সম্ভাব্যতা এবং ডান (বলি) সাথে সম্ভাব্যতা দিয়ে বামে (বলি) যাই । প্রতিবার আমরা একটি বাম পদক্ষেপ নিলে অন্তরালের দৈর্ঘ্যের লগ হ্রাস পায় , এবং প্রতিবার আমরা একটি সঠিক পদক্ষেপ নিলে এটি হ্রাস পায় । লম্বার লগের প্রকৃত গাছটিতে একটি শীর্ষবিন্দু হ'ল সর্বাধিক দ্বারা হ্রাস । স্তরের অন্তরগুলির মোট ওজনttp1plogplog(1p)logntগাছটির হুবহু সম্ভাবনা যা এই প্রক্রিয়া অনুসারে একটি ভার্টেক্স তৈরি হয়েছে most হ্রাসের সাথে মিলে যায় । মানে, যদি বিতরণ যা সমান সম্ভাব্যতা সঙ্গে এবং সম্ভাব্যতা সঙ্গে এবং স্বাধীন, তারপর স্তরের মোট ওজন হল । সুপার-ধ্রুবক জন্য , দৈব চলক মোটামুটিভাবে স্বাভাবিকভাবে সঙ্গে গড় বিতরণ করা হয় এবং ভ্যারিয়েন্স রৈখিক মধ্যেlognDlogpplog(1p)1pX1,,XtDtPr[X1++Xtlogn]tX1++Xt[plogp(1p)log(1p)]tt, তাই জন্য পরিতৃপ্ত , বলো, সম্ভাব্যতা খুব পাসে হবে , জন্য যখন সন্তুষ্টকারী , বলুন, এটি শূন্যের খুব কাছাকাছি থাকবে। (বাইনারি এনট্রপি ফাংশন হিসাবে পরিচিত সংজ্ঞায়িত করে , আমরা উপসংহারে পৌঁছেছি যে চলমান সময়টি (ইন অভিন্ন , যেমন )। হিসাবে আমাদের কাছে , এবং তাই আমাদের পূর্ববর্তী অনুমানটি শক্ত ছিল না।t[plogp(1p)log(1p)]t(logn)/21t[plogp(1p)log(1p)]t2lognh(p)=plogp(1p)log(1p)Θ(nlogn/h(p))pnp0h(p)plogp

একই বিশ্লেষণ দিকে তাকিয়ে আরেকটি উপায় স্বাধীন র্যান্ডম ভেরিয়েবল অসীম অনুক্রম না থাকার হয় আগের মতই, এবং একটি বাঁধন সময় সংজ্ঞা প্রথমবার হতে যেমন যে । চলমান সময়টি তখন সমানুপাতিক । প্রাথমিক পুনর্নবীকরণের উপপাদ্যটি তখন বলেছে যে বোঝায় যে অন্তরগুলির মোট আকার সমান । আরও সঠিকভাবে, প্রতিটি ধ্রুবক এর জন্য অন্তরগুলির মোট আকার , যেখানেX1,X2,TtX1++XtlognnE[T]limnE[T]/logn=1/E[D]=1/h(p)(1+o(1))nlogn/h(p)p(1+αp(n))nlogn/h(p)αp(n)=o(n) । প্রাথমিক পুনর্নবীকরণ সময় প্যারামিটারে উপপাদ্য সূচকীয় মধ্যে অভিসৃতি - আমাদের ক্ষেত্রে - তাই বহুপদী মধ্যে থাকা উচিত , যে, । রূপান্তরটি সম্ভবত কোনও জন্য জন্যও অভিন্ন ।lognnαp(n)=O(nCp)p(δ,1δ)δ>0


সংক্ষিপ্তসার হিসাবে, পুনরাবৃত্তি গাছের অন্তরগুলির মোট দৈর্ঘ্য, যা চলমান সময়ের সাথে সমানুপাতিক, প্রতিটি জন্য নিম্নলিখিত ফর্মের হয় : যেখানে এবং একই বেসে নেওয়া হয় এবং উপর নির্ভর করে এবং সাথে উপর নির্ভর করে একটি ফাংশন ।p

T(n,p)=(1+o(1))nlognh(p),
lognh(p)=plogp(1p)log(1p)o(1)p0n

তদুপরি, এটি সম্ভবত সত্য যে কোনও এবং যে কোনও এটি সত্য যে অন্তরালের মোট দৈর্ঘ্য আকারের যেখানে এবং লুকানো বড় হে ধ্রুবক কেবল উপর নির্ভর করে । বিশেষত, এমন ঘটনাটি হওয়া উচিত যে সমস্ত ধ্রুবক , এবং দ্রুত।δ>0p(δ,1δ)

T(n,p)=(1+O(nCδ))nlognh(p),
Cδ>0δp1,p2
limnT(n,p1)T(n,p2)=h(p2)h(p1),

আপনার দ্রুত উত্তর ইউভাল জন্য ধন্যবাদ। আপনি যে সংক্ষিপ্তসারে ব্যবহার করেছিলেন সে সম্পর্কে আমি কিছুটা বিভ্রান্ত । একটি ধ্রুবক, এবং এর অর্থ এই নয় যে এটি অধীনে অপ্রাসঙ্গিক ? আমি কিছুটা পরীক্ষা প্রোগ্রাম লেখার সিদ্ধান্ত নিয়েছি , যা বিশ্লেষণী পদ্ধতি এবং একটি গণনার মধ্যে তুলনা করার জন্য জন্য 0.03 এর ত্রুটি দিয়েছে showed এটি বরং বড় মনে হয়, বা এটি প্রত্যাশিত? Θh(p)Θn=100000000000000T(n,0.1)/T(n,0.5)
orlp

ধ্রুবকটি সমান । আরও সঠিকভাবে, কিছু ধ্রুবকের জন্য এমন ক্ষেত্রে দেখা যায় যে প্রতিটি জন্য উপস্থিত যেমন , । আপনি সম্ভবত ফর্মের আরও শক্তিশালী স্টেটমেন্ট পেতে পারেন প্রতিটি নির্দিষ্ট জন্য , যেখানে ছোট্ট হে সাথে ( তবে উপর নির্ভর করতে পারে ); উপর নির্ভর করবে নাΘpc,CpNpnNpcnlogn/h(p)T(n,p)Cnlogn/h(p)T(n,p)=(1+o(1))Cnlogn/h(p)pnpCp
যুবাল ফিল্মাস 21

সীমাতে রূপান্তর উপর নির্ভর করে , তাই আপনাকে খুব ভাল একটি আনুমানিকতা পেতে বড় হতে দরকার হতে পারে। অন্যদিকে, 0.03 এর আপেক্ষিক ত্রুটি এত বড় শোনাচ্ছে না। আপনি ঠিক করতে এবং চলমান সময়কে ক্রিয়াকলাপ হিসাবে সাথে তুলনা করে প্লট করতে পারেন । lognlognnp1/h(p)
যুবাল ফিল্মাস 21

ওহ আমি দুঃখিত, আমি 0.03 এর তুলনামূলক ত্রুটি বোঝাতে চাইনি, তবে এটি একটি পরম (2.13222 বনাম 2.10339)। ষড়যন্ত্র এর কার্যকারিতা হিসেবে , এর আপেক্ষিক দিয়েছেন 4% একটি আপেক্ষিক পার্থক্য সঙ্গে 96% হচ্ছে । T(n,p)p1/h(p)T(1011,0.05)h(0.05)T(1011,0.4)h(0.4)
orlp

1
সুপার-ধ্রুবক হ'ল প্রাসঙ্গিক ভেরিয়েবলের (এই ক্ষেত্রে ) সম্মানের সাথে অনন্তের দিকে ঝোঁক function এটি সমান । nω(1)
যুবাল ফিল্মাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.