সংলগ্ন তালিকা বা ম্যাট্রিকগুলি কখন আরও ভাল পছন্দ হয়?


15

আমাকে বলা হয়েছিল যে আমরা গ্রাফটি বিচ্ছুরিত হলে একটি তালিকা এবং গ্রাফ ঘন হলে একটি ম্যাট্রিক্স ব্যবহার করব । আমার জন্য, এটি একটি কাঁচা সংজ্ঞা মাত্র। আমি এর বাইরে খুব একটা দেখতে পাচ্ছি না। প্রাকৃতিক পছন্দটি কখন করা উচিত তা আপনি পরিষ্কার করতে পারেন?

আগাম ধন্যবাদ!



এটি কোনও সংজ্ঞা নয়, বেশিরভাগ কারণ "স্পার্স" এবং "ঘন" কোনও সংজ্ঞা নেই। এছাড়াও, অন্যান্য বিবেচনা রয়েছে, যেমন গ্রাফের কোন দিকগুলি আপনি কতবার অ্যাক্সেস করেন।
রাফেল

@ রাফেল আপনি অন্যান্য বিবেচনা সম্পর্কে আরও বিশদে যেতে পারেন?
ব্যবহারকারী 21312

1
@ ব্যবহারকারী21312, একটি বড় পার্থক্য প্রান্তের অ্যাক্সেস বনাম পুনরুক্তি is আপনার যদি প্রায়শই প্রান্তগুলি দিয়ে পুনরাবৃত্তি করতে হয় তবে অ্যাড তালিকা আরও কার্যকর হতে পারে। আপনার যদি প্রায়শই নির্ধারণ করতে হয় যে কোনও প্রান্তটি উপস্থিত রয়েছে বা তার ওজন (বা অন্যান্য তথ্য) অ্যাক্সেস করতে পারে তবে ম্যাট্রিক্স আরও ভাল।
রায়ান

আপনার উদ্দেশ্যে, 'স্পার্স' এবং 'ঘন' সংজ্ঞাটি কী তা আমরা সম্ভবত নির্লিপ্ত হতে পারি। আপনি প্রতিটি ধরণের ডেটাস্ট্রাকচারের জন্য ম্যাট্রিক্স অপারেশনের সময় জটিলতার মডেল করুন এবং দেখুন যেখানে 'ঘনত্বের ব্রেক পয়েন্ট' রয়েছে। আমি মনে করি @ আর্যানের দ্বিতীয় লিঙ্কটিও অনুরূপ কিছু করার চেষ্টা করছে
অপিওয়াত চাঁতাবইবুল

উত্তর:


17

n(n1)/2n

n×nM[i][j]=1ijM[i][j]=0

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

n(n1)/2n2


O(n2)
O(n+m)
nm


O(n2)
O(n+n)O(n)n2


O(n2)
O(n+n2)O(n2)

O(1)n


"সংলগ্ন তালিকার সাথে সাথে, এটি রৈখিক সময় নিতে পারে" - আপনার সংলগ্ন তালিকার (সম্ভবত) কোনও প্রাকৃতিক অর্ডার নেই বলে দেওয়া হচ্ছে কেন এটি হ্যাশ সেটের পরিবর্তে একটি তালিকা?
কেভিন

1
@ কেভিন তারপরে এটিকে "তালিকার" পরিবর্তে "সংলগ্ন হ্যাশ" বলা হবে। এছাড়াও সম্ভব, কেন না? তবে আপনি যদি কেবল ডিএফএস বা বিএফএস, বা অন্য কোনও পদ্ধতি করেন যা নিয়মিতভাবে সমস্ত নোডগুলি স্ক্যান করে তবে হ্যাশ ওভার তালিকার ব্যবহারের সুবিধা কী? যে কোনও ক্ষেত্রে আপনি সংলগ্ন সমস্ত নোড পরিদর্শন করবেন।
fade2black

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

3

একটি সাধারণ উপমা সরবরাহ করে উত্তর দেওয়ার জন্য .. যদি আপনার 6 জলের জল সঞ্চয় করতে হয় তবে আপনি (সাধারণভাবে) 5 গ্যালন পাত্রে, বা একটি 8 ওজন কাপ দিয়ে তা করবেন?

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

ম্যাট্রিক্স বনাম তালিকার পিছনে যুক্তি এই ক্ষেত্রে যে খুব সহজ।

পিএস একটি তালিকা সত্যিই একটি একক কলাম ম্যাট্রিক্স !!! (এটি সিদ্ধান্তের / দৃশ্যের কতটা স্বেচ্ছাসেবী আপনাকে দেখানোর চেষ্টা করছে)


2

NEN2

আসলে আপনার কত বিট দরকার?

NE(N2E)log2(N2E)

আমরা সাধারণের ক্ষতি ছাড়াই ধরে নেব যে , অর্থাৎ অর্ধেক বা এর চেয়ে কম প্রান্ত উপস্থিত রয়েছে। যদি এটি না হয় তবে আমরা এর পরিবর্তে "অ-কিনারা" সেটটি সঞ্চয় করতে পারি।EN22

যদি , , সুতরাং ম্যাট্রিক্স উপস্থাপনা asyptotically অনুকূল। যদি , স্টার্লিংয়ের সান্নিধ্য এবং কিছুটা গাণিতিক ব্যবহার করে আমরা পাই:E=N22log2(N2E)=N2+o(N2)EN2

log2(N2E)
=2লগ2এন+হে(নিম্ন অর্ডার শর্তাবলী)
=log2(N2)!E!(N2E)!
=2Elog2N+O(low order terms)

যদি আপনি বিবেচনা করেন যে হল একটি পূর্ণসংখ্যার আকার যা কোনও নোড সূচককে উপস্থাপন করতে পারে তবে অনুকূল উপস্থাপনা নোড আইডির একটি অ্যারে, অর্থাৎ নোড সূচির একটি অ্যারে।2 log2N2E

বলার পরে, স্পারসিটির একটি ভাল পরিমাপ হ'ল এনট্রপি, যা সর্বোত্তম উপস্থাপনার প্রান্তে বিটের সংখ্যাও। তাহলে সম্ভাব্যতা যে প্রান্ত উপস্থিত হয়, এনট্রপি হয় । জন্য , এনট্রপি 2 (অর্থাত দুই অনুকূল উপস্থাপনা প্রান্ত প্রতি বিট), এবং গ্রাফ ঘন হয়। যদি এনট্রপিটি উল্লেখযোগ্যভাবে 2 এর চেয়ে বেশি হয় এবং বিশেষত এটি যদি কোনও পয়েন্টারের আকারের কাছাকাছি থাকে তবে গ্রাফটি বিচ্ছিন্ন। -লগ2পি(1-পি)পি1p=EN2log2p(1p)p12

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