ন্যূনতম বিপর্যয়ের সংখ্যা রেখে তালিকায় দক্ষতার সাথে সন্নিবেশ করানো


15

তুলনামূলক আইটেমের দুটি তালিকা ধরুন: ইউ এবং এস। INV (u) কে ইউ-তে বিপরীত সংখ্যার সংখ্যা হতে দিন।

আমি আইএনভি (ইউ) এর ন্যূনতম বর্ধনের সাথে ইউ এর মধ্যে আইটেমগুলি সন্নিবেশ করানোর জন্য একটি কার্যকর অ্যালগরিদমের সন্ধান করছি।

মূলত আমি প্রথম তালিকার ক্রম বজায় রেখে "যথাসম্ভব বাছাই করা" রেখে অবজেক্টগুলিকে একটি তালিকায় প্রবেশ করতে চাই।

উদাহরণ:

u = [4,6,2,9,7]
INV(u) = 3 ((4, 2), (6, 2) and (9, 7)

s = [8,3,10]

one optimal solution u' = [3, 4, 6, 2, 8, 9, 7, 10]
INV(u') = 5 ((4, 2), (7, 2) and (9, 7) + (3,2), (8,7))

different optimal solution u' = [3, 4, 6, 2, 9, 7, 8, 10]
INV(u') = 5 ((4, 2), (7, 2) and (9, 7) + (3,2), (9,8))

আপনি দেখতে পাচ্ছেন যে কোনও অনন্য অনুকূল সমাধান নেই।

আমি যে কোনও ধরণের ধারণা বা দিকনির্দেশনার জন্য খুশি হব।


চিন্তার জন্য খাদ্য: নির্বোধ দৃষ্টিভঙ্গিটি হবে: গুলি থেকে একটি উপাদান নিন, এটি আপনার বাম থেকে ডানে প্রতিটি উপাদানের সাথে তুলনা করুন, যদি এটি কোনও বিপরীতা হয় এবং পূর্ববর্তী গণনা করা সংখ্যাটি বহন করে। তারপরে একই অবস্থানের সাথে তালিকার ডান থেকে বাম দিকটি অতিক্রম করুন এবং প্রতিটি পদের জন্য গণনা বাড়িয়ে তুলুন। এটি স্পেস = ও (| ইউ |) এর সাথে ও (| গুলি | * | u |) এ
চলছে

1
সমস্ত সর্বাধিক ক্রমবর্ধমান অনুচ্ছেদগুলি পরিদর্শন করা কোথাও কোথাও যেতে পারে।
রাফেল

উত্তর:


2

এটি ট্রেভোরের উত্তরের একটি বিশদ বিবরণ। একটি মন্তব্যে ফিট করার জন্য এটি দীর্ঘ দীর্ঘ এবং এতে তার সমাধানের প্রমাণ রয়েছে (বা কমপক্ষে আমি কীভাবে এটি বুঝতে পারি)।

আপনি যে কোনও সর্বোত্তম সমাধানে দেখাতে পারেন যে উপাদানগুলি অর্ডারযুক্ত প্রদর্শিত হবে। গুলিযদি তা না হয় তবে ধরে নিন এবং এগুলি একটি অনুকূল সমাধানে বিপরীতে প্রদর্শিত হবে appear যাক σ 1 মধ্যে উপাদানের সংখ্যা হতে গুলি 1 এবং গুলি 2 যে কম গুলি 1 এবং β 1 ঐ যে চেয়ে বড় সংখ্যা হতে গুলি 1 । নির্ধারণ σ 2 এবং বিটা 2 জন্য একভাবে গুলি 2 । নোট করুন যে σ 1গুলি1<গুলি2σ1গুলি1গুলি2গুলি1β1s1σ2β2s2 এবং β 2β 1 । সোয়াপিং গুলি 1 এবং গুলি 2 দ্বারা inversions সংখ্যা পরিবর্তন করতে হবে - β 1 + + β 2 - σ 2 + + σ 1 - 1 যা সর্বাধিক -1 হয়।σ1σ2β2β1s1s2β1+β2σ2+σ11

উপাদানগুলি স্বাধীনভাবে beোকানো যেতে পারে তা দেখতে অসুবিধা হয় না । গুলিযেহেতু তারা আদেশ প্রদর্শিত, উপাদান একে অপরের উপস্থিতি না "বোধ" না। যে, এস থেকে উপাদানগুলির জোড়া জোড়া বিপরীত গণনায় অবদান রাখে না। যে কাজের জন্য, মধ্যমা ঢুকিয়ে গুলি সন্তোষজনক ভাবে রৈখিক টাইমে। তারপরে, পুনরাবৃত্তভাবে, মিডিয়ানের বাম দিকে মিডিয়ানের চেয়ে কম এর উপাদান এবং তার ডানদিকে মিডিয়ান থেকে বড় উপাদানগুলি সন্নিবেশ করান ।গুলিগুলিগুলিগুলি

মিডিয়েন পজিশনে serted োকানো যাক, এই সন্তুষ্টির রানটাইম, টি ( | গুলি | , | ইউ | ) = টি ( | এস | / 2 , | ইউ | - কে ) + টি ( | গুলি | / 2 , কে) ) + | u | + | s | , লিনিয়ার | s |T(|s|,|u|)=T(|s|/2,|u|k)+T(|s|/2,k)+|u|+|s||s|ফ্যাক্টরটি হ'ল মাঝারি সন্ধান এবং উপাদানগুলিকে বদলে দেওয়া । ইন্ডাকশন দ্বারা এটি সহজেই প্রদর্শিত হয় যে টি ( | গুলি | , | ইউ | ) = ( | গুলি | লগ | এস | + | ইউ | লগ | এস | )sT(|s|,|u|)=O(|s|log|s|+|u|log|s|)

নোট করুন উপর নির্ভরতা s | এখানে অনুকূল। খালি সঙ্গে সমস্যা সমাধানে যেহেতু তোমার দর্শন লগ করা বাছাই সমতূল্য গুলি শুধুমাত্র তুলনা ব্যবহার করে। | এর উপর নির্ভরতা u | একটি Singleton তালিকার জন্য সমস্যা সাল থেকে অনুকূল হয় গুলি এবং একটি তালিকা U রৈখিক কাজ প্রয়োজন আবশ্যক।|s|us|u|su


বিশদ দেওয়ার জন্য ধন্যবাদ। আমি হ'ল সমাধানটি হ'ল এটি।
ট্রেভোর

1

ঠিক আছে, এখানে আমার সমাধান:

একটি পর্যবেক্ষণ (যা আমি কম বা বেশি প্রমাণিত) হ'ল একটি সর্বোত্তম সমাধান সর্বদা এক থাকে যেখানে এসকে ক্রমবর্ধমানভাবে সাজানো হয়। এটি একটি ও ((| ইউ | + | গুলি |) * লগ (| গুলি |)) অ্যালগরিদমকে জন্ম দেয়।

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

এটি ও (| u |)।

বাছাই করুন এস।

পজিশনের মাঝারি উপাদানের জন্য এম: ইউ তে সেরা অবস্থানের সন্ধান করুন (উপরের পদ্ধতিটি ব্যবহার করে)।

S তে m এবং u বিভক্ত করুন এবং বারবার বাম এবং ডান অংশগুলির সাথে কল করুন, ফলাফলগুলি ডান ক্রমের সাথে যুক্ত করে।

আপনি বা গুলি খালি হওয়ার সাথে সাথে থামুন।


আমি এটা বুঝতে পারি না। s একটি ইনপুট। আপনি ধরে নিতে পারবেন না যেগুলি সাজানো ক্রমে রয়েছে। আপনার অ্যালগরিদম অবশ্যই সমস্ত সম্ভাব্য মানের জন্য কাজ করবে।
ডিডাব্লু

হ্যাঁ, তবে যে কোনও সর্বোত্তম সমাধানে s এর উপাদানগুলি সর্বদা নতুন অ্যারেতে আরোহী অনুসারে বাছাই করা শেষ হবে। পদক্ষেপটি "বাছাই করুন" নোট করুন। উপরের উদাহরণটি দেখুন। আমি এখন পর্যন্ত যা প্রমাণ করেছি তা হ'ল: a, b in s, a <b যদি একটি অনুকূলভাবে আপনার মধ্যে স্থাপন করা হয় তবে খ এর অনুকূল স্থানটি a এর ডানদিকে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.