স্থির বিবাহ সমস্যা


12

পটভূমি

মনে করুন যে 2*nবিবাহিত হওয়ার মতো লোক রয়েছে এবং আরও ধরুন যে প্রতিটি ব্যক্তি nসীমাবদ্ধতার আওতায় ঠিক অন্য লোকের প্রতি আকৃষ্ট হয়েছে যে:

  1. আকর্ষণ আকর্ষণীয় প্রতিসম ; অর্থ্যাৎ ব্যক্তি যদি ব্যক্তির Aপ্রতি আকৃষ্ট হয় Bতবে ব্যক্তি ব্যক্তি Bপ্রতি আকৃষ্ট হয় A
  2. আকর্ষণ আকর্ষণবিরোধী ; অর্থ্যাৎ ব্যক্তি Aও ব্যক্তি Bযদি প্রতিটি ব্যক্তির প্রতি আকৃষ্ট হয় Cতবে ব্যক্তি Aএবং ব্যক্তি Bএকে অপরের প্রতি আকৃষ্ট হয় না।

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

একটি বিবাহ একটি যুগল হয় (A,B)যেখানে Aএবং Bএকে অপরের প্রতি আকৃষ্ট হয়। বিবাহ অস্থির হয় যদি সেখানে অন্য বিবাহ হয় যেখানে প্রতিটি বিবাহের একজন ব্যক্তি তাদের সঙ্গীকে তালাক দিতে এবং একে অপরকে বিবাহ করতে পারে এবং উভয়ই তাদের প্রাক্তন অংশীদার থেকে উচ্চতর স্থান প্রাপ্ত ব্যক্তির সাথে শেষ হয়।

লক্ষ্য

আপনার কাজটি হ'ল একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখুন যা প্রতিটি ব্যক্তির পছন্দকে ইনপুট হিসাবে গ্রহণ করে এবং প্রতিটি ব্যক্তির জন্য এমন একটি বিবাহকে আউটপুট করে যা প্রতিটি বিবাহ স্থিতিশীল।

ইনপুট

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

আউটপুট

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

মন্তব্য

  1. উইকিপিডিয়া বা এই নম্বরফিলি ভিডিওতেO(n^2) এই সমস্যাটি সমাধান করার জন্য আপনি আরও তথ্য এবং একটি অ্যালগরিদম খুঁজে পেতে পারেন । তবে আপনি যে কোনও অ্যালগরিদম ব্যবহার করতে পারবেন না।
  2. স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  3. এটি । সংক্ষিপ্ত উত্তর (বাইটে) জিতেছে।

15
আকর্ষণ আকৃতির প্রতিসম !
লুইস মেন্ডো

5
@ লুইস মেন্ডো আমি অবাস্তব শব্দ সমস্যার
দোলা

2
এটি ভ্যালেন্টাইনের দিনটি (ইউটিসি +8 এখানে)
বুসুক্সুয়ান

উত্তর:


7

গণিত, 28 বাইট

মনে হবে, এটি প্রতারণা করছে। আমি নিজের মতো করে:

Combinatorica`StableMarriage
  • পুরুষ এবং মহিলাদের পছন্দগুলির ওজন ম্যাট্রিকগুলির সাথে কল করার প্রয়োজন।
  • কাপলিংয়ের জন্য প্রত্যক্ষ সূচকগুলি প্রদান করে।

(হ্যাঁ Combinatoricaহ্রাস করা হয়েছে তবে এর তুলনায় এর চেয়ে কম বাইট ব্যয় হয় FindIndependentEdgeSet)


উদাহরণ (GoT-like): (ন্যায্য হতে - আমি ওজন অনুমান করেছি ... তবে ফলাফলের সাথে আমি ঠিক আছি)

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

m = {{2, 4, 3, 1}, {1, 2, 4, 3}, {3, 2, 1, 4}, {4, 2, 1, 3}};
w = {{2, 3, 4, 1}, {3, 2, 1, 4}, {3, 2, 4, 1}, {4, 1, 2, 3}};
result = Combinatorica`StableMarriage[w, m];
MapThread[
  UndirectedEdge[Show[#1, ImageSize -> 130], 
    Show[#2, ImageSize -> 130]] &, {names1, 
   names2[[result]]}] // TableForm

ব্লককোট


3
কোড-গল্ফার ফাংশন ব্যতীত প্রত্যেককে-অকারণে গণিতের গণিতের গ্রন্থাগার শোষণের জন্য +1।
সাইনস্ট্যাকএফএল্ট

2
আমাকে বিল্ট-ইনগুলি অস্বীকার করার অভ্যাসে থাকা দরকার এমনকি যখন আমি নিশ্চিত যে কারও অস্তিত্ব নেই :)
নেজিনিসিস

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