ভাগ এবং বিজয়ের তাত্ত্বিক ভিত্তি


22

অ্যালগরিদমগুলির ডিজাইনের কথা উঠলে, কেউ প্রায়শই নিম্নলিখিত কৌশলগুলি ব্যবহার করে:

  • ডায়নামিক প্রোগ্রামিং
  • লোভী-কৌশল
  • ডিভাইড ও জয় করো

প্রথম দুটি পদ্ধতির জন্য, বেলম্যান অপটিমালিটি প্রিন্সিপাল এবং ম্যাট্রয়েড (রেস। লোভডয়েড) তত্ত্ব নামে সুপরিচিত তাত্ত্বিক ভিত্তি রয়েছে, আমি ডি অ্যান্ড সি এর উপর ভিত্তি করে অ্যালগরিদমের জন্য এমন সাধারণ কাঠামো খুঁজে পাইনি।

প্রথমত, আমি এমন কিছু সম্পর্কে অবগত রয়েছি যা আমরা (বা বরং, অধ্যাপক) একটি কার্যনির্বাহী প্রোগ্রামিং ক্লাসে প্রবর্তন করি, যাকে একটি "অ্যালগরিদমিক কঙ্কাল" বলা হয়, যা সংযোজকগুলির প্রসঙ্গে উদ্ভূত হয়েছিল। এর উদাহরণ হিসাবে, আমরা ডি ও সি অ্যালগরিদমের জন্য এই জাতীয় কঙ্কালটি নিম্নরূপ দিয়েছি:

সংজ্ঞা : আসুন খালি খালি সেট হোন। আমরা উপাদান কল সমাধান এবং উপাদান (যে, এর সাব-সেট নির্বাচন ) হিসেবে উল্লেখ করা হয় সমস্যার । তারপরে, একটি ডি এবং সি-কঙ্কাল একটি 4-টিউপল , যেখানে:A,SS P:=P(A)A(Pβ,β,D,C)

  • Pβ সমস্যাগুলির সেটগুলির উপরে একটি প্রিকিকেট এবং আমরা বলে থাকি যে কোনও সমস্যা যদি ধারণ করে তবে তা মৌলিকpPβ(p)
  • β হ'ল ম্যাপিং যা প্রতিটি মৌলিক সমস্যার সমাধান সমাধান করে।PβS
  • D হ'ল ম্যাপিং যা প্রতিটি সমস্যাকে সাব-প্রবলেমের একটি সেটে বিভক্ত করে।PP(P)
  • C হ'ল একটি ম্যাপিং যা সমাধানগুলিতে ("পাইভট সমস্যার ধরণের" উপর নির্ভর করে) সমাধানগুলিতে যোগ দেয়।P×P(S)S

তারপরে, প্রদত্ত কঙ্কালের জন্য এবং একটি সমস্যা , নীচের জেনেরিক ফাংশন একটি সমাধান গণনা করে (আনুষ্ঠানিকভাবে) ইন্দ্রিয়) জন্য :s=(Pβ,β,D,C)pfs:PSp

fs(p)={β(p)if p is basicC(p,f(D(p)))otherwise

যেখানে দ্বিতীয় লাইন আমরা স্বরলিপি ব্যবহার সাব-সেট নির্বাচন জন্য একটি ম্যাপিং এর codomain এর ।f(X):={f(x):xX}Xf

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

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

উত্তর:


5

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

বিভাজন এবং বিজয় এবং এর সমান্তরালতার জন্য একটি বীজগণিতীয় মডেল জিজিং জি মৌ এবং পল হুডাক ( জার্নাল অব সুপারকম্পটিং , খণ্ড 2, সংখ্যা 3, পৃষ্ঠা 257-278, নভেম্বর 1988)


1

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

একীকরণের উদাহরণ হিসাবে নিন। আসুন ইনপুট দিয়ে শুরু করা যাক, উপাদানগুলির একটি অ্যারে । এক করতে পারেন যাও recursively অ্যারের গঠন সংজ্ঞায়িত নিম্নরূপ:n

  • জন্য , এরে খালি।n=0
  • জন্য , এরে একটি Singleton উপাদানn=1
  • জন্য , এরে আকারের এর একটি অ্যারের সংযুক্তকরণের হয় ( বাম ) এবং আকার ( ডান )n>1n2n2

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

এটি লক্ষ করা গুরুত্বপূর্ণ যে এটি ডি ও সি অ্যালগরিদম থেকে আপনার প্রত্যাশাটি অগত্যা নেতৃত্ব দেয় না। আমরা নীচে অ্যারে কাঠামোটি সংজ্ঞায়িত করতে পারি:

  • জন্য , এরে খালি।n=0
  • জন্য , এরে আকারের একটি অ্যারের ঘনিভূত একটি একক উপাদান । n>0n1

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

এখন, ডি অ্যান্ড সি অ্যালগরিদম বিশ্লেষণের জন্য মাস্টার উপপাদ্য রয়েছে এবং এটি একটি ডিঅ্যান্ডসি অ্যালগরিদমের উপ-উপাদানগুলির জন্য একটি নির্দিষ্ট সামগ্রিক রান-টাইম দক্ষতার সাথে দক্ষতার প্রত্যাশার উপর কিছুটা আলোকপাত করে।


আপনি যে উদাহরণগুলি আমার প্রশ্নে দেওয়া সাধারণ প্রসঙ্গে খাপ খাইয়ে দেখেন (এবং বাস্তবে, আপনি কোনও কংক্রিট প্রয়োগ দেওয়ার ক্ষেত্রে এটি সহায়ক হতে পারে)। যাইহোক, আমার প্রশ্ন ছিল যে অ্যালগোরিদমগুলি যে এই ধরণটির সাথে খাপ খায় সেগুলি সমাধান করার জন্য কোনও মানদণ্ড রয়েছে (যেমন বিওপি বা ম্যাট্রয়েড কাঠামো)।
কর্নেলিয়াস ব্র্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.