সেটগুলির সেট দেওয়া, প্রতিটি সেট থেকে কমপক্ষে একটি উপাদান যুক্ত ক্ষুদ্রতম সেট (গুলি) সন্ধান করুন


15

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

একটি কংক্রিট উদাহরণ হিসাবে, যে অনুমান করা সেট জাতীয় পতাকার সেট, এবং প্রতিটি পতাকার এ , অনেক উপাদান আছে যা জাতির পতাকা ব্যবহৃত রং। মার্কিন যুক্তরাষ্ট্র হবে এবং মরক্কো হবে । তারপরে সেই সম্পত্তি সহ রঙের একটি সেট হবে যা প্রতিটি জাতীয় পতাকা অন্তত একটি রঙ ব্যবহার করে । ( অলিম্পিক রঙ নীল, কালো, লাল, সবুজ, হলুদ এবং সাদা এই জাতীয় উদাহরণ , বা কমপক্ষে 1920 সালে ছিল)) এস এস এস = { আর ডি , ডাব্লু এইচ আই টি , বি এল ইউ } এস = { আর ডি , জি আর এন } এম এম এমSSSS={red,white,blue}S={red,green}MMM

এই সমস্যার কোনও সাধারণ নাম আছে? সেট খুঁজে পাওয়ার জন্য কি কোনও গ্রহণযোগ্য "সেরা" অ্যালগরিদম আছে ? (গণনাগত জটিলতার জন্য প্রক্রিয়াটি অনুকূল করার চেয়ে আমি সমাধানটিতে আরও আগ্রহী))M


2
আপনি কি সেট কভার সমস্যাটি খুঁজছেন ?
জুহো

@ জুহো যথেষ্ট নয় আমার উদাহরণে, সেট কভার সমস্যা পতাকা একটি সেট যেমন যে ঐ পতাকা ইউনিয়ন রয়েছে এটি হবে সব সমস্ত ফ্ল্যাগ ব্যবহার রঙের। বিপরীতে, আমি এমন কিছু সন্ধান করছি যা পতাকাগুলির তালিকা নয়, কেবল রঙের একটি তালিকা বের করে দেবে এবং প্রতিটি সম্ভাব্য রঙ ধারণ করার জন্য আমার সেট দরকার নেই । আমি যদিও উইকিপিডিয়াতে এই অঞ্চলটি ঘিরে ফেলব তবে আমি মনে করি আপনি আমাকে সঠিক পথে পৌঁছেছেন। ধন্যবাদ! M
বিডেশাম

উত্তর:


13

সমস্যাটি হ'ল হিটিং সেটটি সুপরিচিত এনপি-সম্পূর্ণ সমস্যা । এটি সেট-কভারের সাথে ঘনিষ্ঠভাবে সম্পর্কিত । এনপি-সম্পূর্ণতার প্রমাণ গ্যারি এবং জনসনের ক্লাসিক বইয়ে পাওয়া যাবে ।

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

আপনি যদি সঠিক সমাধানগুলিতে আগ্রহী হন এবং আপনার ইনপুটগুলি সুন্দর আচরণ করে, তবে আমি একটি স্থির-পরামিতি ট্র্যাকটেবল ব্যবহার করার পরামর্শ দেব । চলমান সময় এখানে কেবল ইনপুট দৈর্ঘ্য n এর ক্ষেত্রেই প্রকাশ করা হয় নি তবে অতিরিক্ত প্যারামিটার k হিসাবেও প্রকাশিত হয় । চলমান সময় যদি O(f(k)nO(1)) আমরা অ্যালগরিদমকে এফপিটি-অ্যালগরিদম বলি। এখানে, f(k) একটি বর্ধনশীল ফাংশন। সুতরাং যদি k স্থির থাকে তবে আমাদের কাছে পলটাইম অ্যালগরিদম থাকে। প্রথম অধ্যায় এরফ্লুম এবং গ্রোহের বই , সেটটি হিট করার জন্য একটি এফপিটি-অ্যালগরিদম ব্যাখ্যা করেছে (আরও সুনির্দিষ্টভাবে p -কার্ড-হিটিং সেটটির জন্য)। অ্যালগরিদম কার্যকর এবং আবদ্ধ অনুসন্ধান গাছগুলির পদ্ধতি ব্যবহার করে method তবুও এখানে এটি ব্যাখ্যা করার জন্য অনেক বেশি স্থান প্রয়োজন, মূলত আপনি প্রয়োজনীয় (?) ব্রুট-ফোর্স অনুসন্ধানকে ছোট ছোট টুকরো টুকরো করে (যখন k ছোট হয়)।


ধন্যবাদ। আপনি বাস্তবের বাস্তবায়ন সম্পর্কে পড়ার জন্য কোথাও একটি রেফারেন্স সরবরাহ করতে পারেন? অর্থাৎ আমি কীভাবে আমার সমস্যাটিকে একটি সেট-কভার সমস্যার সাথে অনুবাদ করব এবং তারপরে আমি কীভাবে এটি সমাধান করব?
বিডিশাম

1
বিডিশাম, প্রতিটি উপাদানটিকে সেটগুলির সেট হিসাবে সেট করুন think উপাদানগুলির হিসাবে সেট ইনপুটটিতে সেট কভার চালান। এছাড়াও, এখানে লিঙ্কযুক্ত উইকি পৃষ্ঠা পড়ুন।
সাশো নিকোলভ

আপনি কি আনুমানিক সমাধানে আগ্রহী, বা আপনি সঠিক সমাধানটি পেতে চান?
এ.চুল্জ

আমি একটি সঠিক সমাধান চাই। আমি যে ডেটা সেটগুলির সাথে কাজ করছি তা যথেষ্ট কম যা আমি মনে করি না যে এটি হওয়া উচিত।
বিডেশম

1
@ কেসার: আপনি ঠিক বলেছেন। তবে সিদ্ধান্তের সমস্যাটি সম্পর্কিত অপ্টিমাইজেশান সমস্যার সাথে যুক্ত করা সাধারণ বিষয় কারণ তারা এনপি-সম্পূর্ণ সমস্যার ঘনিষ্ঠভাবে সম্পর্কিত।
এ.চুল্জ

2

একটি ধারণা যে সাহায্য করতে পারে যদি সমস্ত সেট ছেদ খালি না হয়, তাহলে আপনার কোন উপাদান বাছাই করতে পারেন গুলি ছেদ এবং সেট এম = { গুলি } । যদি ছেদ খালি থাকে, এটি একটি উপাদান (COLOR) সেটে যার সংঘটন সর্বাধিক এবং সব সেট যেখানে এটি Singleton দ্বারা ঘটে প্রতিস্থাপন { } । প্রতিটি উপাদানগুলির উপস্থিতি গণনা 1 এর সমান না হওয়া অবধি এটি চালিয়ে যান এবং তারপরে বাকি সেটগুলির ইউনিটে এম সেট করুন। উদাহরণস্বরূপ, যদি এস কিছু সেট A এর পাওয়ার সেট হয় তবে এম = এসগুলিএম={গুলি}{}1এমএসএকজনএম=একজন। আমি তবে ভুল হতে পারে।


2

রে রিটারের "প্রথম তত্ত্বগুলি থেকে ডায়াগনোসিস থেকে একটি থিওরি" একবার দেখুন যেখানে তিনি হিটিং সেটগুলি কম্পিউটিংয়ের জন্য একটি অ্যালগরিদম দিয়েছেন এবং এই অতিরিক্ত নোটটি "একটি সংশোধন ..."

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


2
আপনার উত্তরটিকে আরও স্বনির্ভর করার জন্য আপনি কি অ্যালগরিদমের সংক্ষিপ্তসার করতে পারেন? লিঙ্কগুলি ভাঙ্গতে পারে এবং করবে।
জুহো

0

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

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