নোড এবং প্রান্তগুলির মধ্যে অনুমোদিত একাধিক প্রান্তের সাথে গ্রাফকে কীভাবে উপস্থাপন করা যায় যা নির্বাচনীভাবে অদৃশ্য হয়ে যেতে পারে


11

আমি কিছু অনুমান, আদর্শ নেটওয়ার্ক ব্যবহারের মডেলিংয়ের জন্য কী ধরণের ডেটা স্ট্রাকচার ব্যবহার করতে হবে তা জানার চেষ্টা করছি।

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

এখানে চিত্র বর্ণনা লিখুন

এনসিটিএম গ্রাফ স্রষ্টার সহায়তায় চিত্র উত্পন্ন হয়েছে

আমি মনে করি এর মূলটি একটি অপরিবর্তিত চক্রীয় গ্রাফ হতে চলেছে, যেখানে নোডগুলি কম্পিউটার এবং এজগুলি ইথারনেট তারগুলি উপস্থাপন করে with যাইহোক, দৃশ্যের প্রকৃতির কারণে, কয়েকটি অসাধারণ বৈশিষ্ট্য রয়েছে যা সংলগ্ন তালিকা এবং সংলগ্ন ম্যাট্রিকগুলি (কমপক্ষে, অ-তুচ্ছ পরিবর্তন ছাড়াই) বাতিল করে দেয়:

  1. প্রান্তগুলি সীমাবদ্ধ-ব্যবহারে পরিণত হতে পারে; এটি হল, যদি কোনও ব্যবহারকারী কোনও প্রদত্ত নেটওয়ার্ক সংযোগ অর্জন করে, অন্য কোনও ব্যবহারকারী সেই সংযোগটি ব্যবহার করতে পারে না
    • উদাহরণস্বরূপ, সবুজ ব্যবহারকারী সম্ভবত কম্পিউটার এ এর ​​সাথে সংযোগ করতে পারবেন না, তবে লাল ব্যবহারকারী তাদের মধ্যে সরাসরি লিঙ্ক না থাকা সত্ত্বেও বি এর সাথে বি যুক্ত করেছেন has
  2. কিছু ক্ষেত্রে, একটি প্রদত্ত জোড়া নোড একাধিক প্রান্ত দ্বারা সংযুক্ত হবে
    • উদাহরণস্বরূপ, ডি থেকে ই তে দুটি স্বতন্ত্র কেবল চলমান রয়েছে, তাই সবুজ এবং নীল ব্যবহারকারীরা উভয়ই সেই মেশিনগুলিকে সরাসরি সংযোগ করতে সক্ষম হন; তবে, লাল আর এই জাতীয় সংযোগ তৈরি করতে পারে না
  3. যদি দুটি কম্পিউটার একাধিক কেবল দ্বারা সংযুক্ত থাকে তবে প্রতিটি ব্যবহারকারীর সেই কেবলগুলির মধ্যে একটির বেশি মালিকানা থাকতে পারে না

এই গ্রাফটিতে আমাকে বেশ কয়েকটি অপারেশন করা দরকার যেমন:

  • নির্দিষ্ট কোনও কম্পিউটারের প্রদত্ত ব্যবহারকারীর জন্য সংযুক্ত কিনা তা নির্ধারণ করে
  • লক্ষ্যযুক্ত কম্পিউটারগুলিতে সংযোগ দেওয়ার জন্য প্রদত্ত ব্যবহারকারীর জন্য সর্বোত্তম পথ চিহ্নিত করা
  • প্রদত্ত ব্যবহারকারীর জন্য সর্বাধিক-বিলম্বিত কম্পিউটার সংযোগ সনাক্তকরণ (অর্থাত্ শাখা ছাড়াই দীর্ঘতম পথ)

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


এটি কোনওভাবে প্রাসঙ্গিক বলে মনে হচ্ছে। youtube.com/watch?v=xdiL-ADRTxQ
রাবারডাক

আমি এখানে আসলে কীভাবে সহায়তা করব তা সত্যি দেখছি না।
পোপস

তাই আমি এই সম্পর্কে কিছু সময়ের জন্য চিন্তা। গ্রাফগুলির জন্য বেশিরভাগ অ্যালগরিদমগুলিতে আপনার প্রাথমিকভাবে দুটি জিনিস করা উচিত: প্রতিবেশীদের গণনা করুন বা একটি প্রান্তের ওজন পান। আপনি যে সমস্ত প্রশ্ন তালিকাভুক্ত করেছেন সেগুলিতে কেবলমাত্র একজন ব্যবহারকারী জড়িত। একক ব্যবহারকারীর জন্য, প্রতিবেশীদের গণনা করা বা একটি প্রান্তের ওজন সন্ধানের উত্তর ধ্রুব সময়ে (যদি ব্যবহারকারীর গণনা সীমাবদ্ধ থাকে) অথবা লগ এন-এ কেবল "মালিকানা" এর সাথে সংলগ্ন তালিকা বা ম্যাট্রিক্সকে মিরর দিয়ে উত্তর দেওয়া যেতে পারে। সে লক্ষ্যে, আমি মনে করি হয় সহজেই প্রসারিত করা যেতে পারে এবং ব্যবহারকারী অংশ দ্বারা বিভ্রান্ত হওয়ার পরিবর্তে traditionalতিহ্যগত শক্তির উপর ভিত্তি করে চয়ন করা উচিত।
জে

উত্তর:


6

স্থান ধরে নেওয়া কোনও উদ্বেগ নয়, একক গ্রাফের পরিবর্তে গ্রাফের একাধিক অনুলিপি (প্রতিটি ব্যবহারকারীর জন্য একটি) তৈরি করা কি যুক্তিসঙ্গত হবে?

আমার কাছে মনে হচ্ছে আপনার "লেয়ার্ড গ্রাফ" লেবেলযুক্ত যা ব্যবহার করা উচিত, অর্থাত্ গ্রাফগুলির জন্য একটি সংযুক্তকারী যুক্ত করুন, বলুন @যাতে:

  • যদি A এবং B গ্রাফ হয় তবে A @ B একটি গ্রাফ (যেমন আপনার গ্রাফ লাইব্রেরির অ্যালগরিদমে খাওয়ানো যেতে পারে)।
  • A @ B তে উল্লম্বের সেটটি A এবং B তে উল্লম্বের মিলন is
  • A @ B তে প্রান্তগুলির সেটটি A এবং B তে প্রান্তগুলির মিলন union
  • কাঠামো A @ B এর কোনও ভার্টেক্স বা প্রান্তের মালিকানা নয়, বরং A এবং B ডেটা ধারক হিসাবে ব্যবহার করে।

এই জাতীয় স্তরযুক্ত গ্রাফের সাহায্যে আপনি কে কে কমমন উপলভ্য তথ্য এবং আর, জি, বি প্রতিটি ব্যক্তিগত তথ্য হিসাবে সংজ্ঞায়িত করতে পারেন যাতে প্রতিটি খেলোয়াড়ই আসলে আর @ কে, জি @ কে, বি @ কে দেখতে পাবে।

এটি বাস্তবায়নের জন্য, আপনি সাধারণভাবে আলগোরিদিম প্রয়োগকারী গ্রাফ গ্রন্থাগারের সন্ধান করতে পারেন, যাতে দীর্ঘতম পথের অ্যালগরিদম ইত্যাদি আপনার গ্রাফের প্রকৃত উপস্থাপনা দ্বারা প্যারামিট্রিস হয়। আপনার লাইব্রেরি যদি তাই বলে

ConcreteGraphAlgorithms = GenericAlgorithms(ConcreteGraphImplementation)

আপনি সহজেই এটির সাথে প্রতিস্থাপন করতে পারেন

LayeredGraphAlgorithms = GenericAlgorithms(LayeredGraphs(ConcreteGraphImplementation))

যেখানে আপনি সরবরাহ করছেন LayeredGraphsএবং বাকিটি গ্রন্থাগার থেকে ধার করছেন।


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

1

আপনার যা প্রয়োজন তাকে একটি "অ্যাট্রিবিউট গ্রাফ" বলা হয়। একটি বিশিষ্ট গ্রাফে তথ্য (বৈশিষ্ট্য) আরকেসের সাথে সংযুক্ত করা হয়। সবচেয়ে সহজ বৈশিষ্ট্যযুক্ত গ্রাফগুলির মধ্যে একটি ওজনযুক্ত গ্রাফ।

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


1
অবশ্যই একটি সংলগ্ন ম্যাট্রিক্স সাধারণত প্রতিটি জোড় নোড
জেকে

1
@ জে কে, সাধারণত আপনি সঠিক হন। তবে সংলগ্ন ম্যাট্রিক্সের সাথে সংযুক্ত তথ্যটিতে প্রতিটি চাপের জন্য আরাকের সংখ্যা এবং পৃথক বৈশিষ্ট্য থাকতে পারে। তবে বেশিরভাগ ক্ষেত্রে আমি সংলগ্ন তালিকাটি ব্যবহার করব কারণ এটি সহজ হবে be
ওয়ালরি

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