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