ম্যাট্রিক্স শৃঙ্খলা গুণ এবং ক্ষতিকারক


13

আমি দুটি ম্যাট্রিক্সের যদি এবং , মাত্রার এবং যথাক্রমে, এবং Compute করতে চান , এটি আরও দক্ষ প্রথম যেমন অভিব্যক্তি পুনর্লিখন এবং তারপরেই সংখ্যাসূচকভাবে মূল্যায়ন করুন, কারণ মাত্রা তবে মাত্রা ।বি 1000 × 2 2 × 1000 ( বি ) 5000( বি ) 4999 বি বি 1000 × 1000 বি 2 × 2একজনবি1000×22×1000(একজনবি)5000একজন(বিএকজন)4999বিএকজনবি1000×1000বিএকজন2×2

আমি এই সমস্যার একটি সাধারণ সংস্করণ সমাধান করতে চাই। এমন একটি এক্সপ্রেশনকে অনুকূলকরণের জন্য কি যুক্তিসঙ্গতভাবে দক্ষ অ্যালগরিদম আছে (ব্রুট ফোর্স নয়):

  • পরিচিত মাত্রাগুলির ফ্রি ম্যাট্রিক্স ভেরিয়েবল
  • স্বেচ্ছাসেবী এক্সপ্রেসশনগুলির পণ্য
  • প্রাকৃতিক শক্তি থেকে স্বেচ্ছাসেবক subexpressions উত্থাপিত

... যাতে কংক্রিট ম্যাট্রিক্স মানগুলি সহ ফ্রি ম্যাট্রিক্স ভেরিয়েবলগুলি প্রতিস্থাপনের পরে, সংখ্যার সাথে মূল্যায়ন করতে কমপক্ষে কাজের প্রয়োজন হয়?

ম্যাট্রিক্স চেইন গুণ সমস্যা আমার সমস্যা একটি বিশেষ ক্ষেত্রে দেখা যায়।


সম্পাদনা:

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

একটি শক্তিতে উত্থাপিত প্রতিটি পণ্যগুলির জন্য, বলুন, , কারণগুলির প্রতিটি চক্রীয় বিবেচনা করুন:(একজন1একজন2...একজন)এন

  • (একজন1একজন2...একজন)এন
  • একজন1(একজন2...একজনএকজন1)এন-1একজন2...একজন
  • A1A2(A3AkA1A2)n1A3Ak
  • ...
  • A1A2Ak1(AkA1A2Ak1)n1Ak

... পুনরাবৃত্তি। প্রতিটি পাওয়ারকে স্কোয়ারিং (স্পষ্টতই) দ্বারা এক্সপেনসেন্টেশন ব্যবহার করে গণনা করতে হয়, এবং অন্যান্য সমস্ত পণ্য ম্যাট্রিক্স চেইন গুণিত অ্যালগরিদমের দ্বারা প্রত্যাবর্তিত অনুকূল ক্রম ব্যবহার করে গণনা করতে হয়।


সম্পাদনা:

আমার পূর্ববর্তী সম্পাদনায় বর্ণিত ধারণাটি এখনও কিছুটা অপ্রয়োজনীয়। স্কোয়ারিং অ্যালগরিদমের দ্বারা ক্ষুদ্রাকৃতিটি আসলে বা ফর্মের এক্সপ্রেশনগুলি মূল্যায়ন করে , যেখানে অগত্যা পরিচয় ম্যাট্রিক্স নয়। তবে আমার অ্যালগরিদম পরিচয় ম্যাট্রিক্সের সমান নয় দিয়ে স্কোয়ারিং অ্যালগরিদম দ্বারা এক্সপেনসিটিশন ব্যবহারের সম্ভাবনাটিকে বিবেচনা করে না ।KAnAnKKকে


@ gnasher729: দুঃখিত, আমি আরও স্পষ্ট করা উচিত ছিল। আমি সমস্ত সম্ভাবনার হিংস্র চাপ প্রয়োগ করতে চাই না, ঠিক একই কারণে আপনি ব্রুট ফোর্সের মাধ্যমে ম্যাট্রিক্স চেইন গুণকে সমাধান করতে চান না। আমি ঠিক সেই অনুসারে প্রশ্নটি সম্পাদনা করেছি।
পাইওন

দ্রষ্টব্য যে আপনি চতুরতার সাথে ফ্যাক্টরটি ফ্যাক্টর করার পরেও এটি ( বি ) 2 ( 2 1249 + 1 ) + 1 বি হিসাবে ফ্যাক্টর করা আরও চালাক । পয়েন্টটি হ'ল, দ্রুত বর্ধনের জন্য আপনাকে সম্ভবত ম্যাট্রিক্স চেইন গুণ এবং অন্যান্য স্ট্যান্ডার্ড অ্যালগরিদমের মধ্যে মেশাতে হবে। A(BA)4999B
A(BA)2(21249+1)+1B
অপিওয়াত চানতাবুলুল

@ বিলিস্কা: প্রকৃতপক্ষে, আমি অবশ্যই এটি করতে চাই: সম্মিলিত সমস্যার জন্য একক অ্যালগরিদমে স্কোয়ারিং করে ম্যাট্রিক্স চেইন গুণ এবং এক্সপেনসেন্টেশন একত্রিত করুন। তবে কিছু জটিল সমস্যা রয়েছে। প্রদত্ত , আমি কীভাবে A B ( A B ) n - 2 A B , A B A ( B A ) n - 3 B A B ইত্যাদি চেষ্টা করে আলগোরিদিমকে রোধ করব ? A(BA)n1BAB(AB)n2ABABA(BA)n3BAB
পাইয়ন

আমরা ম্যাট্রিক্স এক্সপেনসিয়েশনের জন্য ইজেন ভেক্টরে ভিত্তি পরিবর্তন করি এবং যখন সমস্ত ম্যাট্রিক্সের ক্ষমতা 1 থাকে তখন আমরা ম্যাট্রিক্স চেইন গুণকে ব্যবহার করতে পারি।
দীপ জোশী

@ প্রদীপ জোশি দুঃখিত, আমি আপনার মন্তব্যটি বরং ক্ষয়প্রাপ্ত দেখতে পেলাম। কিন্তু, আমি যদি আপনার ধারণা সঠিকভাবে বুঝতে আমি ভীত এটা সাধারণ ক্ষেত্রে কাজ করবে না, কারন একটি এর eigenspaces এর মাত্রা ম্যাট্রিক্স প্রয়োজন পর্যন্ত যোগ এন । অন্য কথায়, এটি সবসময় এমন হয় না যে প্রতিটি ভেক্টর ইগেনভেেক্টরগুলির একটি রৈখিক সংমিশ্রণ হিসাবে প্রকাশ করা যেতে পারে। n×nn
পাইয়ন

উত্তর:


3

দাবি অস্বীকার: নিম্নলিখিত পদ্ধতিটি কঠোরভাবে অনুকূল প্রমাণিত হয়নি। একটি অনানুষ্ঠানিক প্রমাণ সরবরাহ করা হয়।

পণ্যটির বর্গক্ষেত্র বিবেচনা করার সময় সমস্যাটি সবচেয়ে কার্যকর অর্ডার খোঁজার ক্ষেত্রে হ্রাস পায়।

উদাহরণস্বরূপ, উদাহরণস্বরূপ দিকে তাকানোর সময় , আমাদের কেবলমাত্র সর্বোত্তমভাবে সমাধান করতে হবে ( A B C ) 2 যেহেতু এটি A B C A B C তে প্রসারিত হয় । কোনও বি সি আবার যুক্ত করে কোনও কার্যকর অর্ডারের তথ্য যুক্ত করা হয় না। এখানে অন্তর্নিহিততাটি হ'ল যেহেতু অনুকূল ক্রমের সমস্যাটি নীচের দিকে সমাধান করা যায়, একই ম্যাট্রিকগুলি ব্যবহার করে আরও উপাদান যুক্ত উচ্চতর ক্রমগুলি অপ্রাসঙ্গিক।(ABC)50(ABC)2ABCABCABC

শ্রেষ্ঠ ক্রম খোঁজা ম্যাট্রিক্স চেইন গুণ সমস্যা হ্রাস করা হয়। একটি অনুকূল অর্ডার সন্ধানের পরে, ক্রমে ট্রিপলেট (এন-টিপল সাধারণত) তে এক্সপেনশনেশন প্রয়োগ করুন।একজনবিসিএকজনবিসি

একটি উদাহরণ, যদি স্কোয়ারের জন্য অনুকূল ক্রম হয় , প্রাথমিক সমস্যার সমাধান হয় একটি ( বি ( সি একটি ) ) 49 বি সিএকজন(বি(সিএকজন))বিসিএকজন(বি(সিএকজন))49বিসি

সংক্ষেপে বলা:
1) সমাধানে প্রথম পদক্ষেপ বিশ্লিষ্ট করা হল ( 1 একটি 2একটি এন ) 2 । 2) সলিং ( 1 2এন ) 2 ম্যাট্রিক্স চেইন গুণটির সমস্যার উদাহরণ হিসাবে সর্বাধিক যোগাযোগ করা হয়। 3) সমাধানটি থেকে এন-টিপল অর্ডার জি- কে (2 ) ব্যবহার করে আমাদের সমাধান 1 ( A ) এর A 1A এর স্বাদ হিসাবে দেবে(একজন1একজন2একজনএন)মি(একজন1একজন2একজনএন)2
(একজন1একজন2একজনএন)2
জি (দ্রষ্টব্য (2) থেকে অন্য কোনও গ্রুপিংও প্রয়োগ করা উচিত) নোট করুন।একজন1একজন2জিমি-1একজনএন

অনানুষ্ঠানিক প্রমাণ
সরলতম ক্ষেত্রে বিবেচনা দুটি ম্যাট্রিক্সের ব্যবহার , আমরা যে লক্ষ্য করুন একটি এবং বি আছে মাত্রা এক্স × ওয়াই এবং ওয়াই × এক্স যথাক্রমে। এবং বি ব্যবহার করে যে কোনও পণ্যতে নিম্নলিখিত মাত্রার একটি থাকে:(একজনবি)এনএকজনবিএক্স×ওয়াইওয়াই×এক্সএকজনবি

ওয়াই × এক্স ওয়াই × ওয়াই এক্স × এক্সএক্স×ওয়াই
ওয়াই×এক্স
ওয়াই×ওয়াই
এক্স×এক্স

আমাদের বা ওয়াই এক্স রয়েছেএক্স<ওয়াইওয়াইএক্স

অনুমান 1 এ): বি এর মাত্রা এক্স × এক্স রয়েছে এবং এই ক্রমটি নীচের অংশের পদ্ধতির থেকে সর্বোত্তম হওয়ার গ্যারান্টিযুক্ত। এবং বি এর অন্য কোনও কনফিগারেশন হয় সমানভাবে ভাল, বা আরও খারাপ। সুতরাং, সমস্যাটি সর্বোত্তমভাবে ( বি ) এন হিসাবে সমাধান করা হয়েছে ।এক্স<ওয়াই
একজনবিএক্স×এক্সএকজনবি(একজনবি)এন

আসাম্প্শান 1B): বি একটি মাত্রা আছে ওয়াই × ওয়াই । এটি A এবং B এর সাথে জড়িত সমস্ত পণ্যের জন্য সর্বোত্তম ক্রম । সুতরাং, সমাধানটি অনুকূলভাবে ( বি ) এন - 1 বি হিসাবে পাওয়া যায় ।ওয়াইএক্স
বিএকজনওয়াই×ওয়াইএকজনবিএকজন(বিএকজন)এন-1বি

এটি প্রমাণ উপসংহারে পৌঁছেছে এবং আমরা কেবল স্কোয়ারের সমস্যা পাওয়া দুটি ক্রমগুলি দেখেছি ।একজনবিএকজনবি

আরও ম্যাট্রিক ব্যবহার করে তর্কটি একই রকম। সম্ভবত একটি inductive প্রমাণ সম্ভব? সাধারণ ধারণাটি হ'ল স্কোয়ারের জন্য এমসিসি সমাধান করা সমস্ত জড়িত ম্যাট্রিক বিবেচনা করে ক্রিয়াকলাপের জন্য সর্বোত্তম আকারের সন্ধান করবে।

কেস স্টাডি:

julia> a=rand(1000,2);
julia> b=rand(2,1000);
julia> c=rand(1000,100);
julia> d=rand(100,1000);
julia> e=rand(1000,1000);

julia> @time (a*b*c*d*e)^30;
  0.395549 seconds (26 allocations: 77.058 MB, 1.58% gc time)

# Here I use an MCM solver to find out the optimal ordering for the square problem
julia> Using MatrixChainMultiply
julia> matrixchainmultiply("SOLVE_SQUARED", a,b,c,d,e,a,b,c,d,e)
Operation: SOLVE_SQUARED(A...) = begin  # none, line 1:
    A[1] * (((((A[2] * A[3]) * (A[4] * (A[5] * A[6]))) * (A[7] * A[8])) * A[9]) * A[10])
  end
Cost: 6800800

# Use the ordering found, note that exponentiation is applied to the group of 5 elements
julia> @time a*(((((b*c)*(d*(e*a)))^29*(b*c))*d)*e);
  0.009990 seconds (21 allocations: 7.684 MB)

# I also tried using the MCM for solving the problem directly
julia> @time matrixchainmultiply([30 instances of a,b,c,d,e]);
  0.094490 seconds (4.02 k allocations: 9.073 MB)

1
(একজনবিসি)2

একজনবিসিএকজনবিসি(একজনবিসি)এন(একজনবিসি)এনএকজন(বিসিএকজন)এন-1বিসিএকজনবি(সিএকজনবি)এন-1সি

@ ডেভিডরিচার্বি কোনও ব্যবহারের যুক্ত অনানুষ্ঠানিক প্রমাণ?
matteyas

@ মাত্তিয়াস: আমার প্রশ্নের প্রথম সম্পাদনায় আমি যা বললাম তা কমবেশি, তাই না?
পাইয়ান

একজনবিসিএকজনবিসি

-1

একজন1একজনএনএকজনআমিএকজনহে(এন3)


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