এই পুনরায় সাজানো / বাছাই করার সমস্যাটির নাম?


10

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

[2,1,3,3,2,2][2,2,2,1,3,3], অথবা[2,1,3,3,2,2][1,2,2,2,3,3], অথবা[2,1,3,3,2,2][3,3,2,2,2,1]

এই সমস্যাটিকে সাহিত্যে কী বলা হয়? এর জন্য কি কোনও কার্যকর অ্যালগরিদম আছে?


1
আমি নিশ্চিত নই যে এই সমস্যার একটি নাম আছে যদিও এটি অবশ্যই সম্ভব। সমস্ত কল্পনাযোগ্য সমস্যার নাম নেই।
যুবাল ফিল্মাস

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

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

উত্তর:


6

দ্রষ্টব্য: এটি কঠোরতার প্রমাণ, এবং আমি মনে করি ব্যবহারিক অ্যালগরিদম যেমন পূর্ণসংখ্যা প্রোগ্রামিং ইত্যাদি are

একটি BIN_PACKING উদাহরণস্বরূপ আপনি কোথায় প্যাক করতে চান প্রদত্ত সংখ্যার মধ্যে আকারের বিন , এবং এটি নিশ্চিত করা হয় যে, , তাহলে আমরা একটি উদাহরণ হিসেবে বলা যায় ডিজাইন পারে আপনার সমস্যার নিম্নরূপ:এন 1 , , এন কে এল এম 1 , , এম এলn i = এম জে = এনকেএন1,...,এনকেএলমি1,...,মিএলΣএনআমি=Σমি=এন

  • আছে শ্রেণীর;কে+ +(এন+ +1)(এল-1)
  • প্রথম ক্লাসের আকার যথাক্রমে এবং বাকী প্রতিটি শ্রেণীর আকারের ;;কেএন1,...,এনকেএন+ +1
  • অ্যারের আকারের স্লটে বিভাজন করা হয়েছে: যেখানে আকারের প্রতিটি স্লট ক্লাসে ভরাট করা হয়েছে , সাবলীলভাবে সাজানো হয়েছে এবং বাকীগুলি নির্বিচারে সাজানো হয়েছে।
    মি1,(এন+ +1)2,মি2,(এন+ +1)2,মি3,...,(এন+ +1)2,মিএল
    (এন+ +1)2এন+ +1

এখন একটি মূল পর্যবেক্ষণ হ'ল কমপক্ষে একটি শ্রেণিকে একটি স্লটটি অনড় করে রাখা এবং অন্যগুলি স্থানান্তর করা অর্থহীন (কারণ এটি 'বিনের আকার পরিবর্তন করবে না)। সুতরাং মূল বিন প্যাকিং যদি কেবলমাত্র ন্যূনতম ন্যূনতম সংখ্যা চেয়ে বড় না হয় তবেই উপলব্ধ । বিন-প্যাকিং যেহেতু দৃ strongly়ভাবে এনপি-সম্পূর্ণ হিসাবে পরিচিত , আপনার সমস্যাটি এনপি-হার্ড।(এন+ +1)2এন


এটা সুন্দর! কেস অন্যদের মধ্যে আরো লড়াই: (1) বিনিময়সমূহ সবসময় কোন "বিন প্যাকিং" তৈরি করছি যে, আমরা আকারের স্লট চান যথেষ্ট মি 1 , ... , মি এল , যেহেতু একটি একক swap 'র তার চুড়ান্ত এক উপাদান সরাতে যথেষ্ট ইতিমধ্যে স্থাপন উপাদানগুলিকে বিরক্ত না করে অবস্থান। (২) দৈর্ঘ্যের সাথে আমরা কেবল দুটি সম্ভাব্য জিনিস চেষ্টা করতে পেরেছি- ( এন + 1 ) 2 "বাফার অঞ্চল" "বিন" এর মধ্যে: পুরো দৈর্ঘ্য- ( এন + 1 ) অন্য কোথাও অন্য কোথাও স্থানান্তর করুন ( তবে এটির জন্য এন + 1 খরচ হয়এনমি1,...,মিএল(এন+ +1)2(এন+ +1)এন+ +1ইতিমধ্যে অদলবদল হয়, তাই আমরা পারব না), বা পুরো জিনিসকে "স্লাইড" করে এক অবস্থান বাম বা ডান (তবে এটি প্রতিটি "স্লাইডিং" অন্তর্ভুক্ত করে ...
j_random_hacker

... বাফারে ক্লাস বাম বা ডান এক পজিশনে রয়েছে, এবং যদিও আমরা ক্লাস প্রতি একক অদলবদল দিয়ে এটি করতে পারি, জোনে ক্লাস রয়েছে, সুতরাং কমপক্ষে N + 1 অদলবদল প্রয়োজন, তাই আবার একবার: অসম্ভব)। এই বিন্দুটি তর্ক দিয়ে খরচ ওপি এর সমস্যার একটি সমাধান জন্য প্রয়োজন হয় এন একটি বৈধ বিন প্যাকিং বোঝা। (3) কারণ বিন প্যাকিং হয় জোরালোভাবে দ্বারা NP-সম্পূর্ণ স্বাভাবিক গ্যাজেটগুলি (এখানে, এরে উপাদান) ইনপুটে এনকোড এখানে প্রযোজ্য নয় :) সংখ্যার সমানুপাতিক একটি নম্বর তৈরি করার "নো-না"এন+ +1এন+ +1এন
j_random_hacker

1

আমি সন্দেহ করি এটি এনপি-হার্ড, কিন্তু প্রমাণের জন্য ধারণা না থাকায়, এখানে দ্রুত কয়েকটি গননযোগ্য নিম্ন সীমানা দেওয়া যেতে পারে যা একটি হিউরিস্টিক সমাধানের অনুকূলতা যাচাই করতে, বা শাখা-শাখা অনুসন্ধানকে ছাঁটাই করতে কার্যকর হতে পারে here ।

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

  1. সমস্ত উপর সর্বাধিক গ্রহণ করুন iকে = 2 এর জন্য আঁটসাঁট , সম্ভবত বড় কে-কে খুব দুর্বল ।Liকে=2কে
  2. সমস্ত যোগফল দিন এবং 2 দিয়ে ভাগ করুন এটি বৈধ কারণ যে কোনও swap সর্বোচ্চ 2 টি ভুল অবস্থান ঠিক করতে পারে।এলআমি

আপনার উদাহরণে এই সীমানা উভয়ই 1 দেয় (0.5% পরবর্তী ক্ষেত্রে গোল করা যেতে পারে), যা অবশ্যই আলগা।

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