প্রথমে অন্য একটি অ্যালগরিদম সন্ধান করে কোনও ফাংশন গণনা করার জন্য কি কোনও অ্যালগরিদম সম্পর্কিত ধারণা রয়েছে?


14

যদি আমি এটি সঠিকভাবে বুঝতে একটি অ্যালগরিদম যে একটি বাস্তব ফাংশনের মান নির্ণয় গণনীয় জটিলতা রয়েছে যদি নিম্নলিখিত ঝুলিতে: যখন আমরা কম্পিউট স্পষ্টতা থেকে অনুক্রম প্রয়োজন পদক্ষেপ ।fO(g(n))fδg(n)

তবে, আমাদের যদি এমন একটি অ্যালগরিদম থাকে যা প্রথমে " গণনা করার জন্য আরও কার্যকর অ্যালগরিদম খুঁজে পায় ", এবং তারপরে ?ff

অন্য কথায়, আমাদের যদি একটি আলগোরিদিম থাকে যা নিম্নলিখিতটি করে:A

  1. একটি দক্ষ অ্যালগরিদম খুঁজুন কম্পিউটিং জন্য ।Bf

  2. ব্যবহারের গনা ।Bf

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

আমার প্রশ্ন হ'ল এই ধরণের অ্যালগরিদম সম্পর্কে কোনও ধারণা / তত্ত্ব আছে যা কোনও ফাংশন গণনার আগে প্রথমে অন্য একটি অ্যালগরিদম খুঁজে পায়? বিশেষত আমি এই জাতীয় অ্যালগোরিদমের গণনা জটিলতার বিশ্লেষণ সম্পর্কে ভাবছি।


1
আপনি কি বলবেন গণিত যে আপনি যা জিজ্ঞাসা করছেন তা মূলত তা করে? আপনি এটি সমাধান করার জন্য সমীকরণ দিন এবং এটি স্বয়ংক্রিয়ভাবে নির্ধারণ করে যে এই সমীকরণগুলি সমাধান করতে কোন অ্যালগরিদম ব্যবহার করা হবে, তারপরে সেগুলি সমাধান করে।
ব্যবহারকারী541686

পরীক্ষা করে দেখুন itu.dk/people/sestoft/pebook , এটা প্রাসঙ্গিক।
নাথান রিঙ্গো

উত্তর:


18

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

লেভিনের অ্যালগরিদম অযৌক্তিক হলেও (এতে জড়িত বিশাল ধ্রুবকগুলির কারণে), তাত্ত্বিকভাবে এটি অত্যন্ত আকর্ষণীয়। সার্বজনীন অনুসন্ধানের জন্য স্কলার্পিডিয়া নিবন্ধটি দেখুন ।


10

ধরুন আমাদের একটি ফাংশন রয়েছে fযা xটাইপের একটি আর্গুমেন্ট গ্রহণ করে Aএবং অন্য একটি ফাংশন আউটপুট দেয় যা yটাইপের একটি আর্গুমেন্ট গ্রহণ করে Bএবং টাইপের ফলাফল প্রদান করে C। আপনার কথায়, fএকটি আর্গুমেন্ট নেয় xএবং একটি "অ্যালগরিদম" দেয় যা টাইপের ইনপুট নেয় এবং টাইপের Bফলাফল আউটপুট দেয় C

ফাংশন fটাইপ আছে

A → (B → C)

প্রকৃতপক্ষে, এটি গ্রহণ করে x : Aএবং টাইপ করে একটি ফাংশন দেয় B → C। তবে এ জাতীয় কোনও fফাংশনের সমতুল্য g : A × B → Cযা উভয় x এবং yএকবারে লাগে এবং আপনাকে চূড়ান্ত ফলাফল দেয়। প্রকৃতপক্ষে, প্রকারগুলির মধ্যে একটি আইসোমরফিজম রয়েছে

A → (B → C)

এবং

A × B → C

কারণ আমরা সংজ্ঞায়িত করতে পারেন gপরিপ্রেক্ষিতে fযেমন

g(x, y) := f(x)(y)

এবং আমরা সংজ্ঞায়িত করতে পারেন fপরিপ্রেক্ষিতে gযেমন

f(x) := (y ↦ g(x,y))

থেকে পাস gকরার ক্রিয়াকলাপটিকে কারিঙf বলা হয় এবং ক্রিয়ামূলক প্রোগ্রামাররা সর্বদা এটি ব্যবহার করে। Computability তত্ত্ব একটি ইনপুট গ্রহণ এবং একটি ফাংশন (এলগরিদম) outputing ধারণা মধ্যে emboddied হয় SMN উপপাদ্য

আপনার প্রশ্নের উত্তর "হ্যাঁ, লোকেরা সারাক্ষণ এটি করে"। তবে একটি নৈতিকতাও রয়েছে: একটি অ্যালগরিদম যা একটি অ্যালগরিদম খুঁজে পায় তা এখনও একটি অ্যালগরিদম।


1
চূড়ান্ত বাক্যটির জন্য +1। ভাল বলেছ.
জন কোলেম্যান

"একটি অ্যালগরিদম যা একটি অ্যালগরিদম খুঁজে পায় তা এখনও কেবল একটি অ্যালগরিদম"। হ্যাঁ এটি সত্য, তবে একটি মৌলিক পার্থক্য রয়েছে। যদি কোনও "প্রত্যক্ষ" অ্যালগরিদম দুবার গণনা করে তবে এটি করতে তার পদক্ষেপ ব্যয় করতে হবে, যেখানে একবার গণনা করার জন্য প্রয়োজনীয় পদক্ষেপগুলি । অন্যদিকে, যদি একটি অ্যালগরিদম যা প্রথমে অন্য অ্যালগরিদম গণনাগুলির জন্য অনুসন্ধান করে তবে তার জন্য তাকে পদক্ষেপ ব্যয় করতে হবে , যেখানে প্রথম গণনার ব্যয় এবং দ্বিতীয়টির 2, এবং , সম্ভবত ব্যাপকভাবে বড়। এই ঘটনাটি আমি আগ্রহী নয়।f(5)c+ccf(5)f(5)c1+c2c1c2c1>c2
user56834

@ প্রোগ্রামার 2134 সংকলক অপ্টিমাইজেশন আপনার আগ্রহী ধারণা হতে পারে? আমি এর পিছনে তত্ত্ব সম্পর্কে মোটেও অনিশ্চিত (বিশেষত জটিলতার তত্ত্বের সাথে এর মিথস্ক্রিয়া), তবে এটি একটি সম্ভাব্য উদাহরণ হতে পারে
মার্ক

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