প্যারালাল ম্যাট্রিক্স এক্সফেনসিয়েশন অ্যালগরিদমগুলি রয়েছে যা ক্রমিক ক্রমের চেয়ে আরও দক্ষ?


11

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


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

2
@ টমআর এই প্রশ্নটি সম্ভবত আপনার আগ্রহী
অ্যাড্রিয়ানএন

1
হয়তো কিছু ভালো ? বা আপনি অন্য কিছু খুঁজছেন? আপনার আবেদনে মাপ এবং ক্ষমতাগুলি কী কী?
এভিল

1
N th 4. আপনি যখন n-1 এর চেয়ে কম সংখ্যার সাথে n তম শক্তিটি গুণতে পারেন তবে বড় ম্যাট্রিক্সের জন্য, গুণের সংখ্যা সবচেয়ে কম সংখ্যার সন্ধান করা সাধারণত উপযুক্ত হবে (উদাহরণস্বরূপ, 6 with সহ n ^ 15 গণনা করার জন্য একটি সহজ পদ্ধতি রয়েছে) গুণ, তবে এটি 5 দিয়ে করা যেতে পারে। তারপরে আপনি সিক্যুয়ালিক গুণগুলির ক্ষুদ্রতম সংখ্যার সন্ধান করতে একই নীতিটি প্রয়োগ করতে পারেন, যা আরও শক্ত।
gnasher729

1
আপনার জন্য উপলব্ধ সমান্তরালতার পরিমাণটিও বিবেচনা করা উচিত। "সমান্তরালতা" হ'ল সম্পদগুলি শোষণ সম্পর্কে যা অন্যথায় অব্যবহৃত হবে। যদি ম্যাট্রিক্স গুণনের কোনও প্রয়োগ ইতিমধ্যে দক্ষতার সাথে উপলব্ধ সমস্ত সংস্থান ব্যবহার করতে পারে তবে ম্যাট্রিক্সের শক্তি গণনা করার জন্য শোষণ করার মতো আর কিছুই নেই।
gnasher729

উত্তর:


5

আপনার যদি একাধিক প্রসেসর রয়েছে যা সমান্তরালভাবে কাজ করতে পারে তবে আপনি কে পদক্ষেপে পাওয়ার (2 ^ কে) পর্যন্ত যে কোনও শক্তি গণনা করতে পারেন। উদাহরণস্বরূপ: গণনা করতে , আপনি গণনা করুন:M15

মঞ্চ 1: গণনা 2 M2

দ্বিতীয় পর্যায়: এবং এম 4 = এম 2এম 2 গণনা করুনM3=M2MM4=M2M2

পর্যায় 3: এবং এম 8 = এম 4এম 4 গণনা করুনM7=M4M3M8=M4M4

পর্যায় 4: এম 15 = এম 8এম 7 গণনা করুনM15=M8M7

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

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

M2=MMM3=M2MM2M3M2M3M4

M15M1000

M2M5

M6M25M25

M108M125k(k+1)2


4

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

nnO(log2(n))O(n)

(দ্রষ্টব্য: উইকিপিডিয়া পৃষ্ঠাটি সাধারণ ম্যাট্রিক্স গণনার জন্য।

AmA

AkO(log(k))

প্রশ্নটি হল: আমরা কী এটিকে প্যারালালিজমের সাথে মারতে পারি? আমি দাবি উত্তর নেই।

এর সহজ কারণ হ'ল স্কোয়ারিংয়ের মাধ্যমে ক্ষয়ক্ষতিটি মূলত একটি গতিশীল প্রোগ্রামিং অ্যালগরিদম; এটি আপনাকে subresults পুনরায় ব্যবহার করে সমস্ত কাজ এড়িয়ে যেতে দেয়, কিন্তু এর ফলে এটি একটি ডেটা নির্ভরতা তৈরি করে যা সমান্তরালতাটিকে অস্বীকার করে। যদি আমরা ডেটা নির্ভরতা থেকে মুক্তি পেয়ে থাকি তবে আমাদের যে পরিমাণ কাজ করতে হবে তা আমরা ব্যাপকভাবে বাড়িয়ে তুলি।

k

A1A2A3A4A5...Ak

এটিকে সমান্তরাল করার প্রাকৃতিক উপায়টি সুস্পষ্ট, আপনার সম্পাদন করার জন্য অপব্যবহার করা উচিতk2

(A1A2)(A3A4)(A5A6)...(Ak1Ak)

kO(log(k))

তবে, আমরা যদি এভাবে ক্ষতিকারক কাজটি করতে পারি তবে এটি দেখতে এটির মতো হবে:

(AA)(AA)(AA)...(AA)

A2

AknnAO(log2(n)log(k))O(nlog(k))


3

mlogm2m

A=SΛS1Am=SΛmS1
mO(1)m
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.