দ্রুত ম্যাট্রিক্সের গুণনের জন্য মেমরির প্রয়োজনীয়তা


12

মনে করুন আমরা ম্যাট্রিককে গুণ করতে চাই । ধীর ম্যাট্রিক্সের গুণ গুণ অ্যালগরিদম সময় এবং মেমরি ব্যবহার করে। দ্রুততম ম্যাট্রিক্সের গুণটি time সময়ে সঞ্চালিত হয় , যেখানে লিনিয়ার বীজগণিত ধ্রুবক, তবে এর স্মৃতি জটিলতায় কী পরিচিত?( এন 3 ) ( এন 2 ) এন ω + ( 1 ) ω ωn×nO(n3)O(n2)nω+o(1)ω

দেখে মনে হচ্ছে দ্রুত ম্যাট্রিক্সের গুণটি মেমরি গ্রহণ করে এমন কোনও প্রাথমিকতা হতে পারে । এটি মেমোরিতে করা যায় এমন কোনও গ্যারান্টি আছে কি ? এটি কি বর্তমানে পরিচিত ম্যাট্রিক্সের গুণিত অ্যালগরিদমগুলি মেমরি ব্যবহার করে? O ( n 2 ) ( n 2 )nωO(n2)O(n2)

(আমি আসলে আয়তক্ষেত্রাকার ম্যাট্রিক্সের গুণায় আগ্রহী, তবে আমি ধরে নিয়েছি যে উত্তরটি বর্গক্ষেত্রের ক্ষেত্রে একই রকম হবে এবং বর্গক্ষেত্রের কেসটি আরও ভালভাবে অধ্যয়ন করা হয়েছে))

উত্তর:


16

সমস্ত স্ট্র্যাসেনের মতো অ্যালগরিদমগুলির জন্য স্থানের ব্যবহার সর্বাধিক (যেমন বীজগণিত অনুসারে ম্যাট্রিক্স গুণনের র‌্যাঙ্কের উপরের উপর ভিত্তি করে)। দেখুন কপারস্মিথ-Winograd আলগোরিদিম স্পেস জটিলতাO(n2)

যাইহোক, আমি আমার পূর্ববর্তী উত্তরে বুঝতে পেরেছিলাম যে স্থানটির ব্যবহার কেন হয় তা আমি ব্যাখ্যা করিনি ... সুতরাং এখানে কিছু কিছু হাতের avyেউয়ে goes স্ট্র্যাসেনের মতো অ্যালগরিদম কী করে তা বিবেচনা করুন। এটি ম্যাট্রিক্স গুণনের জন্য একটি নির্দিষ্ট অ্যালগরিদম থেকে শুরু হয় যা কিছু ধ্রুবক জন্য গুণকে ব্যবহার করে । বিশেষত, এই অ্যালগরিদম (এটি যাই হোক না কেন) ডাব্লুএইচএলজি লিখতে পারে যাতে:কে × কে কে সি সি < 3O(n2)K×KKcc<3

  1. এটি বিভিন্ন ম্যাট্রিক্স গণনা করে যা বিভিন্ন দ্বারা প্রথম ম্যাট্রিক্স এবং দ্বিতীয় ম্যাট্রিক্স থেকে ম্যাট্রিক্স দ্বারা গুণিত হয় একটি অনুরূপ ফর্ম,এল 1 , , এল কে সিকে সি আর 1 , , আর কে সি বিKcL1,,LKcAKcR1,,RKcB

  2. এটি পরে এই লিনিয়ার সংমিশ্রণগুলিকে বহুগুণ করেLiRi

  3. এটি বিভিন্ন দ্বারা এন্ট্রিগুলিকে গুণ করে, তারপরে অর্জন করতে এই সমস্ত ম্যাট্রিকগুলি প্রবেশের দিকে বাড়িয়ে ।বিLiRiAB

(এটি একটি তথাকথিত "বিলিনিয়ার" অ্যালগরিদম, তবে দেখা যাচ্ছে যে প্রতিটি "বীজগণিত" ম্যাট্রিক্সের গুণ গুণ এইভাবে লেখা যেতে পারে)) প্রতিটি এই অ্যালগরিদমটি কেবল বর্তমান পণ্য এবং বর্তমান মান (প্রাথমিকভাবে অল- সেট করা) যে কোনও বিন্দুতে স্মৃতিতে সংরক্ষণ করুন, তাই স্থানের ব্যবহার হ'ল ।এল আইআর আইবি হে ( কে 2 )i=1,,KcLiRiABO(K2)

এই সসীম অ্যালগরিদম দেওয়া, তারপরে এটিকে নির্বিচারে ম্যাট্রিকগুলিতে প্রসারিত করা হয় , বড় ম্যাট্রিকগুলি এর আকারের ব্লকে বিভক্ত করে , ব্লক ম্যাট্রিকগুলিতে সীমাবদ্ধ অ্যালগরিদম প্রয়োগ করে এবং যখনই যখন দুটি ব্লককে গুণিত করার প্রয়োজন হয় তখন পুনরাবৃত্তভাবে অ্যালগরিদম কল করে। পুনরাবৃত্তির প্রতিটি স্তরে, আমাদের কেবল ফিল্ড উপাদানগুলি মেমরিতে রাখতে হবে ( বিভিন্ন ম্যাট্রিকেস) সংরক্ষণ করতে হবে। ম্যাট্রিক্স গুণনের জন্য স্থান ব্যবহার অনুমান করে কে × কে কে - 1 × কে - 1 কে × কে ( কে 2 ) ( 1 ) কে × কে কে - 1 × কে - 1 এস ( - 1 ) এস ( ) এস ( - 1 )K×KK×KK1×K1K×KO(K2)O(1)K×KK1×K1S(1)এই পুনরাবৃত্ত অ্যালগরিদমের স্থান ব্যবহার হ'ল , যা জন্য সমাধান করে ।এস ( 1 ) = 2 কে 2 এস ( ) ( কে 2 )S()S(1)+O(K2)S(1)=2K2S()O(K2)


যে কোনও একটি স্ট্র্যাসেন-শৈলীর অ্যালগোরিদমের জন্য, এটি আমার কাছে সঠিক বলে মনে হচ্ছে। তবে কপারস্মিথ-উইনোগ্রাড আরও প্রমাণ করেছেন যে নামার জন্য আসলে স্ট্র্যাসেন-স্টাইলের অ্যালগরিদমগুলির একটি সীমাহীন ক্রম প্রয়োজন, যার প্রতিটি সত্যিকারের সাথে আরও ঘনিষ্ঠ হয়। প্রকৃতপক্ষে, সিডাব্লু-স্টাইলের অ্যালগরিদম এবং সিইউ-স্টাইলের অ্যালগরিদম উভয়ই এই জাতীয় ক্রম সরবরাহ করে (যদিও আমরা জানি যতদূর না পৌঁছানো )। যুক্তিগুলির উপর, এটি সম্ভব যে এই ধরণের ক্রমগুলিতে ব্যবহৃত ধ্রুবকগুলি খুব দ্রুত বৃদ্ধি পেতে পারে, যাতে "" অ্যালগরিদম স্পেস ব্যবহার করে শেষ হতে পারে । ω n ω ω ( n 2 )nωωnωω(n2)
জোশুয়া গ্রাচো

1
... তবে আপনার যুক্তি অনুসারে, যে কোনও সময় time জন্য এবং স্পেস ক্ষেত্রে সর্বদা একটি অ্যালগরিদম পাওয়া যায় । হে ( 2 ) δ > 0O(nω+δ)O(n2)δ>0
জোশুয়া গ্রাচো

@ জোশুয়া, এই স্ট্র্যাসেন-টাইপ অ্যালগরিদমের মেমরির প্রয়োজনীয়তা , যেখানে আমি অ্যালগরিদমের সূচক সংখ্যা এবং চ গণনাযোগ্য। সুতরাং, আপনি যদি এই অ্যালগরিদমগুলি থেকে অনুসন্ধান করেন তবে এটি n এর ধীরে ধীরে ক্রমবর্ধমান ফাংশন হয়, তবে কাজটি becomes হয়ে যায় এবং মেমরিটি । আমি = 0 , , কে এন ω + ( 1 ) এন 2 + ( 1 )f(i)n2i=0,...,knω+o(1)n2+o(1)
ডেভিড হ্যারিস

@DavidHarris: ওয়েল, নিশ্চিত করুন, যতদিন হয় ধীরে ধীরে বেড়ে চলা তুলনায় যথেষ্ট , যথা, দ্রুত হিসাবে হিসাবে সর্বাধিক হত্তয়া হয়েছে । প্রশ্নটি হ'ল যে কোনও নির্দিষ্ট পরিবারের জন্য, এবং কীভাবে দ্রুত বৃদ্ধি পায়। তবে সামগ্রিকভাবে মেমরির ব্যবহার পাওয়ার জন্য ধীরে ধীরে যথেষ্ট বাড়বে এমন কোনও গ্যারান্টি নেই ...f k f - 1 f k k n 2 + o ( 1 )kfkf1fkkn2+o(1)
জোশুয়া গ্রাচো

@Joshua। ধারণাটি হ'ল দৈর্ঘ্য ইনপুটগুলিতে আমরা প্রথম পুটিভেটিভ স্ট্র্যাসেন-টাইপ অ্যালগরিদমগুলি সন্ধান করি, সেগুলি বৈধ কিনা তা যাচাই করুন এবং দ্রুততমটি চয়ন করুন choose শুধু চয়ন এর কার্যকারিতা হিসেবে যাতে । যেহেতু , এই যে বোঝা কোনো Strassen-টাইপ অ্যালগরিদম নির্বাচিত করা হবে পর্যাপ্ত বড়। সুতরাং সময়টি পাশাপাশি to এ যায় । কে কে এন ( কে ( এন ) ) = এন ( 1 ) কে ( এন ) n এন ω + ( 1 )nkknf(k(n))=no(1)k(n)nnω+o(1)
ডেভিড হ্যারিস

4

আরও সাধারণভাবে, প্রসেসরের প্রতি মেমরির প্রসেসরে দ্রুত ম্যাট্রিক্স গুণ করা যায় । তবে প্রসেসরের মধ্যে যোগাযোগটি তখন সাবঅপটিমাল। আরও বেশি স্মৃতি ব্যবহার করে অনুকূল যোগাযোগ অর্জন করা যায়। আমি যতদূর জানি, একযোগে অনুকূল যোগাযোগ এবং সর্বোত্তম স্মৃতি অর্জন করা যায় কিনা তা জানা যায়নি। বিস্তারিত রয়েছে http://dx.doi.org/10.1007/PL00008264( এন 2 / পি )pO(n2/p)

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