শালমোলি গুপ্ত ইতিমধ্যে ব্যাখ্যা করেছেন যে সাধারণ সমস্যাটি এনপি-হার্ড, সুতরাং আমি কোনও বিশেষ মামলা বহুপদী সমাধানযোগ্য কিনা তা অনুসন্ধানের সিদ্ধান্ত নিয়েছি। অবশেষে, আমি সেই সেটগুলির বিশেষ ক্ষেত্রে সমাধান পেয়েছি যা কোনও গাছকে উপস্থাপন করে বা আরও সাধারণভাবে, সমস্ত অতুলনীয় সেটগুলিকে পৃথকীকরণের সাথে সাবসেট অন্তর্ভুক্ত করে একটি সিরিজ সমান্তরাল ক্রম।
একটি সম্পত্তি যা জিনিসগুলিকে সহজ করে তা হ'ল যদি ছেলের নীচে সেটগুলির তালিকা বন্ধ থাকে। যদি , তবে, এখানে একটি অনুকূল ক্রম রয়েছে যার মধ্যে s 1 এস 2 এর আগে আসে । আমরা ডাব্লুএইচএলজি ধরে নিতে পারি যে সর্বোত্তম ক্রম হ'ল সাবসেট অন্তর্ভুক্তি দ্বারা প্রদত্ত আংশিক ক্রমের লিনিয়ার বর্ধন।s1⊆s2s1s2
যেহেতু কোনও সেটের সমস্ত উপসর্গ ক্রমের সামনে উপস্থিত হয়, এর অর্থ এই যে কোনও নির্দিষ্ট সেট দ্বারা চলমান যোগে যোগ করা পরিমাণ নির্ধারিত হয়, তা যেখানেই প্রদর্শিত হোক না কেন appears যদি সেট তালিকা, তারপর একটি সেটের ক্রমবর্ধমান খরচ গুলি করে s এর কোনো উপসেট যে প্রদর্শিত হবে না থাকা উপাদানের সংখ্যা এস । যদি একই সেট এস এ একাধিকবার উপস্থিত হয় , আমরা প্রথমে প্রথমে যাওয়ার জন্য নির্বিচারে একটি চয়ন করতে পারি এবং অন্যকে 0 দিতে হবে।SSS
এর অর্থ হ'ল সমস্যাটি অগ্রাধিকারের সীমাবদ্ধতার সাথে একক মেশিনের শিড্যুলিংয়ে সর্বনিম্ন ওজন সমাপ্তির সময় সমস্যার সমান। এই সমস্যা, ওজন সঙ্গে কাজ একটি সেট দেওয়া এবং বার টন ঞ , এবং কাজ উপর একটি আংশিক অর্ডার পি , আমরা কাজ একজন ক্রম যে ভরযুক্ত মোট সমাপ্তির সময় ছোট, অর্থাত্ এটি করতে ইচ্ছুকwjtjP
∑ni=1wji(∑ik=1tjk)
প্রাধান্য সীমাবদ্ধতা সাপেক্ষে । ছেদকৃত বন্ধ সেটগুলির সাথে সংক্ষিপ্ত সংক্ষিপ্ত সেট সমস্যাটি প্রতিটি সেটের জন্য একটি জব তৈরি করে এটিকে রূপান্তরিত করা যেতে পারে, যেখানে প্রতিটি কাজের ওজন 1, উপরে বর্ণিত বর্ধিত ব্যয়ের সমান সময় এবং পি সাবসেট অন্তর্ভুক্তির দ্বারা প্রদত্ত আদেশ।PP
দেখা যাচ্ছে যে সাধারণ জন্যও এই সমস্যাটি এনপি-হার্ড । যাইহোক, পি এর নির্দিষ্ট কিছু বিশেষ ফর্মগুলি বহুপদী সময়ে সমাধান করা যেতে পারে।PP
এই কাগজটি সিরিজের সমান্তরাল আদেশ পি (যা গাছের গুরুত্বপূর্ণ ক্ষেত্রেও অন্তর্ভুক্ত করে ) এর ক্ষেত্রে একটি অ্যালগরিদম দেয় । দুর্ভাগ্যক্রমে, আমি সেই কাগজটি অ্যাক্সেস করতে পারিনি, তাই আমি স্বাধীনভাবে এটি পুনরুদ্ধার করার চেষ্টা করার সিদ্ধান্ত নিয়েছি। আমি যা নিয়ে এসেছি তা এখানে।O(nlogn)P
এই সমস্যাটি সমাধান করার জন্য, বেশ কয়েকটি পর্যবেক্ষণ প্রয়োজন।
প্রথমত, কোনও অগ্রগতির সীমাবদ্ধতার অভাবে, সর্বোত্তম সমাধানটি হ'ল টি জে র ক্রম অনুসারে কাজগুলি বাছাই করা simply । সরলতার জন্য, আমি এটিকে কাজের মান, সংক্ষেপিতভি(জে)হিসাবে উল্লেখ করব। মনে রাখবেন যেহেতু বাছাই করাO(nlogn), তাই এই জটিলতার চেয়ে ভাল করা অসম্ভব।tjwjv(j)O(nlogn)
রুল 1 যাক এবং খ কাজ যেমন যে হতে একটি < খ ∈ পি ও b কভার ক। যদি ভি ( ক ) < ভি ( বি ) হয় , তবে আমরা অনুকূল ক্রম বা উদ্দেশ্য মানকে প্রভাবিত না করেই একটি < b> সীমাবদ্ধতা ফেলে দিতে পারি ।aba<b∈Pv(a)<v(b)a<b
ধরা যাক শিথিল সমস্যাটির সর্বোত্তম ক্রমে একটি উপস্থিত হওয়ার আগে । যেহেতু খ একটি প্রাথমিকভাবে আচ্ছাদন করেছে, এর অর্থ হ'ল নতুন ক্রমে খ এবং ক এর মধ্যে থাকা সমস্ত চাকরি a এবং b এর সাথে তুলনামূলক উপযুক্ত। তবে যেহেতু খ এর চেয়ে একটি এর চেয়ে বেশি মান রয়েছে, তাই আমরা বি ও এ, বৈপরীত্যের অদলবদলের মাধ্যমে উদ্দেশ্য মানকে হ্রাস করতে পারি।ba
তেমনি, আমরা ক্ষেত্রে সীমাবদ্ধতা বাদ দিতে পারি যতক্ষণ না আমরা নিশ্চিত করি যে যতক্ষণ মান অনুসারে বাছাই করার পরে, আমরা মূল (সরল) সমস্যার অগ্রাধিকারের সম্পর্কের সাথে পরামর্শ করে বন্ধনগুলি ভেঙে ফেলি। এটি নিশ্চিত করে যে শিথিল সমস্যার জন্য পাওয়া সর্বোত্তম সমাধানটিও মূল সমস্যার সর্বোত্তম সমাধান।v(a)=v(b)
অতএব, যখনই খ a এবং কভার করে , আমরা একটি < b> সীমাবদ্ধতা ফেলে সমস্যাটিকে সহজ করতে পারি ।v(a)≤v(b)a<b
বিধি 2 মনে করুন যে আমরা জানি যে খ একটি অনুকূল সমাধানের সাথে সাথে অনুসরণ করে। আমরা a ও b দিয়ে একটি নতুন নোড গ মধ্যে একত্রীকরণ করতে এবং টি গ = T একটি + + T খ , যখন poset চুক্তিবদ্ধ পি উপযুক্তভাবে।wc=wa+wbtc=ta+tbP
নতুন সমস্যার সর্বোত্তম উদ্দেশ্য মানটি মূল অবজেক্ট মান থেকে একটি ধ্রুবক দ্বারা পৃথক হয় (বিশেষত ) তবে এই ধ্রুবকটি অর্ডিংয়ের উপর নির্ভর করে না এবং তাই সর্বোত্তম অর্ডারিং প্রভাবিত হয় না। আমরা নতুন সমস্যার কোনো সন্তোষজনক সমাধান গ্রহণ এবং প্রতিস্থাপন পুরাতন সমস্যার কোনো সন্তোষজনক সমাধান পুনরুদ্ধার করতে পারেন গ সঙ্গে একটি খ ।watbcab
বিধি 3 ধরুন যে সমস্যার উদাহরণের সর্বোত্তম সমাধানে, খ এবং ভি ( ক ) > ভি ( বি ) এর আগেই আসে । এখন ধরা যাক আমরা সিরিজের সাথে সমান্তরাল রচনা বা সমান্তরাল রচনা দিয়ে তৈরি নতুন পোসেটের সাথে নতুন কাজ যুক্ত করে একটি বৃহত্তর সমস্যা উদাহরণ তৈরি করি। সবসময় বড় সমস্যা যেখানে একটি সন্তোষজনক সমাধান হবে একটি সামনে অবিলম্বে আসে খ ।abv(a)>v(b)ab
Suppose otherwise. Let the optimal solution contain a,x1,x2,…,b. Since P was formed by series parallel composition, we know that all xis are incomparable to a and b. Merge all the xi nodes into a new node x′ using rule 2. Now consider v(x′). If v(x′)≤v(a) then we can swap x′ and a without increasing objective value. Likewise, if v(x′)≥v(b), we can swap x′ and b. Therefore, v(a)<v(x′)<v(b). But v(a)>v(b), a contradiction.
Using rule 2 and rule 3, we can already get a simple but suboptimal O(n2) algorithm. Since P is a series parallel order, assume the input contains a tree representation of P where each node represents series composition or parallel composition, and the leaves are individual jobs. We can find an optimal solution with preorder traversal of the tree by maintaining the invariant that the optimal solution to each subproblem is a chain in increasing value order.
Suppose P is the series composition of subproblems with posets P1 and P2. Let the optimal solutions be ordering C1 and C2. The optimal solution to P is clearly the concatenation of these chains. However, it is possible that the first job in C2 has lower value than the last job in C1. In order to maintain the invariant that the solution is a sorted chain, we use rule 3 + rule 2 to merge the endpoints as long as they aren't in sorted order.
If P is instead a parallel composition, we simply take the sorted chains S1 and S2 and merge them into a new sorted chain. Thanks to the invariant, this is valid.
Unfortunately, this algorithm is O(n2). In order to get an O(nlogn) algorithm, we need to compute the chains lazily using rule 1.
Specifically, if a subproblem contains only nodes where the precedence constraints are the same as the order of values, then we can forget the precedence constraints completely and only look at the values. This is ensured by the same invariant that ensured the solutions are sorted chains in the previous algorithm.
Instead of computing a sorted chain for each subproblem, we represent the optimal solution to a subproblem as a pair of Fibonacci heaps, one a min heap, and one a max heap, both containing all the jobs in the subproblem. This means that we can pop off the minimum or maximum element of the solution in logarithmic time.
As before, we do a preorder traversal. Where P is a series composition, we examine the maximum job of the first heap pair and the minimum job of the second heap pair. If their values are out of order, we pop them off and merge them using rule 2 and 3. Then we compare the newly created job to the new endpoints and continue popping and merging as long as they are out of order. Once the endpoints no longer have out of order values, we can safely forget the series precedence restriction thanks to rule 1. Then we just push the newly created jobs if any onto a heap, then merge the heaps to create the heap pair representing the solution to P itself.
একটি সমান্তরাল রচনার জন্য, আমরা কেবল হিপ জোড়গুলিকে একত্রিত করি। নতুন মিনি হিপ হ'ল প্রতিটি সাব-প্রব্লেম থেকে মিনি হ্যাপের একত্রীকরণ এবং তেমনিভাবে সর্বোচ্চ গাদা দিয়ে ap নোট করুন যে ফিবোনাচি হ্যাপগুলি স্থির সময়ে মার্জ হয়।
একবার আমাদের কাছে একটি হিপ জুটি পুরো সমস্যার সমাধান উপস্থাপন করার পরে, আমরা নূন্যতম হিপটি খালি না করে পপিং করে আসল সমাধান ক্রমটি পেতে পারি। এর পরে আমরা আসল সমস্যার সমাধান পেতে সমস্ত নিয়ম 2 বিকল্পগুলি পূর্বাবস্থায় ফিরিয়ে আনি।
O(nlogn)