সময় স্লট ব্লক বিক্রয়


27

প্রদত্ত সময় স্লট যে মানুষ কিনতে চাই। প্রতিবার স্লট কাছে ব্যক্তির মান । প্রতিটি ব্যক্তি কেবল সময়ের স্লটগুলির একটানা ব্লক কিনতে পারে, যা খালি থাকতে পারে।nkih(i,j)0j

বিক্রেতার যে সর্বাধিক মান অর্জন করতে পারে তা গণনা করার জন্য কি বহু-কাল-অ্যালগরিদম রয়েছে ?

সাধুবাদ বাধা না থাকলে আমরা প্রতিটি সময় স্লটটি সেই ব্যক্তিকে দিতে পারি যিনি এর সর্বাধিক গুরুত্ব রাখেন। এছাড়াও, যদি আমরা লোকের সময়ের স্লটের ক্রম ঠিক করি তবে ডাইনামিক প্রোগ্রামিংটি প্রথম সময় কেনার প্রথম সর্বাধিক মান সমাধানের জন্য ব্যবহার করা যেতে পারে স্লট।k0ik0jn

উত্তর:


9

ভ্যারিয়েবল সহ একটি দেওয়া হয়েছে । ধরুন এবং both উভয়ই যথাক্রমে সর্বাধিক বারের সূত্রে উপস্থিত হন ।ϕ1,,ϕkx1,,xnxixi¯ki

আমরা একটি রঙিন ডিএজি নকশা করি যার শীর্ষে তিনটি অংশ থাকে:G

  • "অ্যাসাইনমেন্ট" শীর্ষবিন্দুগুলি এবং , , । রঙ "রঙ" সঙ্গে , এবং সঙ্গে ।vi(j)v¯i(j)1in1jkivi(j)xi(j)v¯i(j)xi¯(j)
  • "ধারা" ছেদচিহ্ন , , । (বা সাথে রঙের ) যদি (বা , রেস।) থাকে তবে ধারাটির -th আক্ষরিক , এবং এটি এই আক্ষরিক সহ -th ক্লজ।wi(j)1ikj=1,2,3wi(j)xi(j)xi¯(j)xi¯xijϕij
  • "কাটা" । উপরে থেকে পৃথক পৃথক রঙের তাদের রঙ করুন।s=s0,s1,,sn,sn+1,sn+k=t

প্রান্তগুলি অন্তর্ভুক্ত:

  • si1vi(1) , , ;v i ( k i ) s ivi(j)vi(j+1)vi(ki)si
  • ˉ v i ( j ) ˉ v i ( j + 1 ) ˉ v i ( k i ) s isi1v¯i(1) , , ;v¯i(j)v¯i(j+1)v¯i(ki)si
  • এবং , ।W আমি ' ( ' ) গুলি এন + + আমি 'sn+i1wi(j)wi(j)sn+i

উদাহরণস্বরূপ, 3CNF থেকে নীচের গ্রাফটি তৈরি করা হয়েছে (প্রান্ত দিকগুলি বাম থেকে ডানদিকে)। (x1x2x3¯)(x1x2¯x3)এখানে চিত্র বর্ণনা লিখুন

এখন এটি দেখতে শক্ত নয় যে আসল 3CNFটি সন্তুষ্টযোগ্য যদি কেবল এবং যদি বিভিন্ন ভার্টেক্স রঙের সাথে একটি - পাথ থাকে ।t GstG

(যাইহোক, এটি একটি উপ-উত্পাদন যে রঙিন ডিএজে বিভিন্ন রঙের সাথে - পাথের উপস্থিতি হ'ল আমি দৃষ্টিকোণে এই সমস্যাটি সম্পর্কে অনেক সাহিত্য খুঁজে পাইনি If আপনি জানেন, মন্তব্য করুন!)t এনপি-হার্ডstNP-hard

তাহলে এবং ওপির সমস্যার মধ্যে কী সম্পর্ক ? স্বজ্ঞাতভাবে আমরা যা করতে যাচ্ছি তা হল ম্যাট্রিক্স ডিজাইন করা , যাতে প্রতিটি রঙ একটি সারিতে ম্যাপ করা হয় (যা একজন ব্যক্তি), এবং প্রান্তগুলি পরপর কলামগুলিতে ম্যাপ করা হয় (সময় স্লট)। সুতরাং একটি সর্বোচ্চ সময়সূচী, যা ম্যাট্রিক্সে মূলত বাম থেকে ডানে চলেছে, একটি - পথের সাথে সামঞ্জস্য করে ।এইচ এস টিGhst

আমাদের ম্যাট্রিক্স আছে সূচকগুলি থেকে শুরু দিয়ে, কলাম । নিম্নলিখিত সংক্রমণের ক্ষেত্রে একটি দুটি মান । অনুপাতটি এবং এর বৃহত শক্তি হতে পারে । যাক ।2 এন + 1 + i 2 কে আই + কে 0 এক্স ওয়াই 1 এক্স ওয়াই এক্স / 1 , ওয়াই / এক্স কে এনh2n+1+i2ki+k0XY1XYX/1,Y/XknKi=2i+2j=1iki

  • প্রতিটি , , আসুন (যদি স্থানাঙ্ক বিদ্যমান, নীচে একই)। 0 i n h ( s i , K i ) = h ( s i , K i - k i - 1 ) = h ( s i , K i + k i + 1 + 1 ) = Ysi0inh(si,Ki)=h(si,Kiki1)=h(si,Ki+ki+1+1)=Y
  • প্রতিটি জন্য ; প্রত্যেকের জন্য যাক ।h ( x i ( j ) , K i - 1 + j ) = X ¯ x i ( j ) h ( ¯ x i ( j ) , K i - 1 + k i + 1 + j ) = এক্সxi(j)h(xi(j),Ki1+j)=Xxi¯(j)h(xi¯(j),Ki1+ki+1+j)=X
  • প্রতিটি , এবং ক্লজ আক্ষরিক এর জন্য , । 1 i k x ϕ i h ( x , K n + i ) = 1ϕi1ikxϕih(x,Kn+i)=1
  • অন্যান্য সমস্ত এন্ট্রি 0 হয়।

উদাহরণস্বরূপ, উপরের উদাহরণের জন্য গ্রাফটি সম্পর্কিত ম্যাট্রিক্স এখানে চিত্র বর্ণনা লিখুন

এখন আমরা দাবি করি: আসল 3CNF কেবলমাত্র সর্বোচ্চ মান ।(2n+1)Y+ikiX+k

সর্বোচ্চ মান অর্জনের সময়সূচী বিবেচনা করুন। যেহেতু ঠিক হয় কলাম ধারণকারী , তারা সব ঢেকে দিতে হবে। কলামের জন্য যা এর দুটি পছন্দ রয়েছে , ধরুন এটিকে নির্ধারণ করে । যেহেতু কলাম নির্ধারিত করা আবশ্যক , consecutiveness দ্বারা আমরা কলাম হারাতে হবে করতে । একই ব্যাপার ঘটতে যদি কলাম বরাদ্দ সিডিউলিং করতে ।ওয়াই কে আমি + + k আমি + + 1 ওয়াই গুলি আমি কে আমি আমার K আমি + + 1 কে আমি + + k আমি K আমি + + k আমি + + 1 এর আমি + + 1(2n+1)hYKi+ki+1YsiKisiKi+1Ki+kiKi+ki+1si+1

সুতরাং, মান , আমাদের অবশ্যই ম্যাট্রিক্সের বাকী সমস্ত উপলব্ধ নির্বাচন করতে হবে , যা ভেরিয়েবলের সাথে একটি কার্যক্রমে অনুরূপ। সুতরাং এর বাকী মানটি যদি অ্যাসাইনমেন্টটি প্রতিটি ধারা পূরণ করে তবেই তা অর্জনযোগ্য।X kikiXXk

একটি উপসংহার হিসাবে, একটি আইনি সিডিউলিং সর্বোচ্চ মান সিদ্ধান্ত হয় । সম্ভবত সে কারণেই আমাদের পূর্ববর্তী সমস্ত অ্যালগোরিদম সন্ধান করার চেষ্টা ব্যর্থ হয়েছিল।NP-hard


তবে, ম্যাট্রিক্সের উদাহরণে, আমি যদি এবং pick চয়ন করি তবে আমি এখনও উদ্দেশ্যটিতে পৌঁছতে পারি। আমি কি ভুল করছি? এছাড়াও মধ্যে ডান এবং একটি কলাম হওয়া উচিত মধ্যে বাম একটি কলাম হওয়া উচিত ¯ এক্স 2 এক্স3এক্স ¯ এক্স 1 (1)এক্স ¯ এক্স 1 (2)x1¯ x2¯x3Xx1¯(1)Xx1¯(2)
rotia

@rotia হ্যাঁ, এবং যে উপায়ে বাম আপনি বাছাই করতে হবে আছে । সুতরাং এটি একটি সন্তোষজনক কার্যভারের সাথে সামঞ্জস্য । 4 এক্স এক্স 1 = এক্স 2 = 1 , এক্স 3 = 0x1,x2,x3¯4Xx1=x2=1,x3=0
উইলার্ড ঝান

আপনি কী ব্যাখ্যা করতে পারেন "ধরুন দুইটি এবং এর উপস্থিতির দুটি সংখ্যার মধ্যে বৃহত্তর " " কারে কয়? আক্ষরিক উপস্থিতির সংখ্যা কত? এটি ক্লজ / সূত্র যেখানে প্রদর্শিত হয় সে সম্পর্কে এমন কিছু, বা সূত্রে এটি কতবার প্রদর্শিত হয়? কি একটি আক্ষরিক বা নম্বর? x i ¯ x i k ikixixi¯ki
DW

@DW একটি সংখ্যা। আমার অভিব্যক্তি সত্যই পরিষ্কার ছিল না; আমি এটি সম্পাদনা করেছি। ki
উইলার্ড ঝান

@ উইলার্ডজান হ্যাঁ তবে আমি যদি এই পরিবর্তনগুলি চয়ন করি তবে আমি সূত্রের চেয়ে বড় যে মানটি পেতে পারি। উদাহরণস্বরূপ, আমি এবং সেট করেছি , সূত্র অনুসারে আমার কেবল 450 পয়েন্ট পাওয়া উচিত (ধরে নিলে অনুচ্ছেদের সংখ্যা)। তবে, আমি চারটি ডানদিকে বাছাই করে 452 পয়েন্ট পেতে পারিX = 7 k x 1 , x 2 , ¯ x 3Y=60X=7kx1,x2,x3¯
রোটিয়া

3

এই সমাধানটিতে সমস্যা রয়েছে এবং শীঘ্রই মুছে ফেলা হবে; টেমপ্লেট টাইপফের মন্তব্য দেখুন।

আপনি সর্বনিম্ন সময়ে ন্যূনতম ব্যয় প্রবাহ ব্যবহার করে এটি সমাধান করতে পারেন । নিম্নলিখিতটিতে, সমস্ত প্রান্তের ইউনিট ক্ষমতা রয়েছে।

  • একটি উৎস প্রান্তবিন্দু তৈরি করুন , এবং একটি লক্ষ্য প্রান্তবিন্দু । আমরা থেকে তে প্রবাহের ইউনিট প্রেরণ করব ।টি কে এস টিstkst
  • স্লটগুলির মধ্যে সময় পয়েন্টগুলি উপস্থাপন করতে টি এবং প্রতিটি ব্যয়ের সাথে জন্য একটি নির্দেশিত প্রান্ত Create তৈরি করুন ।v 0 , , v n v j v j + 1 0 j < nn+1v0,,vnvjvj+10j<n
  • প্রতিটি ব্যক্তির জন্য নিম্নলিখিতটি তৈরি করুন: i
    • একটি সাব সোর্স প্রান্তবিন্দু এবং একটি উপ-বেসিনে প্রান্তবিন্দু ।t isiti
    • প্রত্যেক জন্য , থেকে একটি প্রান্ত করার থাকার খরচ (যা আমরা 0 যদি হতে নেওয়া )।0j<nsivjΣk=1jh(i,k)j=0
    • প্রত্যেক জন্য , থেকে একটি প্রান্ত করার খরচ হচ্ছে ।1jnvjtiΣk=1jh(i,k)
    • ব্যয় 0 সহ একটি প্রান্ত ।ssi
    • ব্যয় 0 সহ একটি প্রান্ত ।tit

এই নেটওয়ার্কের একটি সর্বনিম্ন ব্যয়ের প্রবাহে সর্বোত্তম সম্ভাব্য লাভের নেতিবাচক সমান মোট ব্যয় হবে। (এই নেতিবাচক হবে, তবে এটি কোনও সমস্যা নয়)) এখানে একটি অনুকূল অবিচ্ছেদ্য সমাধান রয়েছে যার মধ্যে একক প্রান্তের রেখে একক প্রান্ত থাকে এবং 1 টি প্রবাহের সাথে এ একক প্রান্ত আসে এবং এবং বা অন্য সমস্ত প্রান্তের ঘটনায় 0 টি প্রবাহ রয়েছে। এই প্রবাহ -১ প্রান্তটি ব্যক্তির জন্য আসুন এবং হতে : তারপরে , যেহেতু পরিবর্তনগুলির মধ্যে একমাত্র পাথগুলি সেগুলি সাবস্ক্রিপ্ট বৃদ্ধি করে। যদিisitisitiisivjvktikjvk=j, তারপরে ব্যক্তি কোনও সময় স্লট বরাদ্দ করা হয়; অন্যথায়, ব্যক্তি সময় স্লট ব্লক বরাদ্দ করা হয়েছে ।iij+1,,k

স্বজ্ঞাতভাবে, প্রতিটি ব্যক্তি থেকে প্রবাহের 1 ইউনিট "পায়" এবং একটি শুরুর সময় (প্রান্ত) এবং শেষ সময় (প্রান্ত) পছন্দ করে; এই শুরু এবং শেষ প্রান্তগুলি নেটওয়ার্কে ননজারো ব্যয়ের সাথে একমাত্র প্রান্ত এবং আমরা দুটি উপসর্গের যোগফলের পার্থক্য হিসাবে একটি ব্লকের মান উপস্থাপন করতে পারি । রূপান্তরগুলির মধ্যে প্রান্তে থাকা ইউনিট সক্ষমতা 2 জনকে একই সময়ের স্লট ব্যবহার করতে বাধা দেয়।sj+1,,kv

মজার বিষয় হল, মানগুলি নেতিবাচক হলেও এই সূত্রটি কার্যকর হবে ।h(i,j)


3
যদি কোনও ব্যক্তি যদি তাদের উত্স থেকে অন্য ব্যক্তির ডুবন্ত এবং তদ্বিপরীত হয়ে কোনও রুট নিয়ে যাই তবে এটি কি ব্যর্থ হতে পারে? i
টেমপ্লেটিপটিফ

@templatetypedef: আমি বিশ্বাস করি আপনি ঠিক বলেছেন; আমি এই উত্তরটি শীঘ্রই মুছে ফেলব। পরিবর্তে এই নির্মাণ সম্পর্কে কী: আমাদের আগের মতো একই সূচি এবং প্রান্ত রয়েছে, তবে এখন আমরা সমস্ত প্রান্ত বাদ দিয়ে লোকের "পাইপলাইন" দিয়ে ( মান বাড়িয়ে আদেশ করা ) এক প্রবাহের একক ইউনিটকে "থ্রেড" করার চেষ্টা এবং সব প্রান্ত করা ছাড়া তাদের , এবং একটি প্রান্ত যোগ বিশাল নেতিবাচক খরচ দিয়ে প্রত্যেকের জন্য । গুলি সব দেখার জন্য প্রবাহ একক বাধ্য করা হবে কোন সন্তোষজনক সমাধান এই "পাইপ লাইন" প্রান্ত করুন। গুলি গুলি আমি গুলি গুলি 1 টি আমি টন টন টি টি গুলি আমি + + 1 - এম 1 আমি < - এম - 1ississ1tittkttisi+1M1i<kMk1
j_random_hacker

@ j_random_hacker আপনি লোকদের অর্ডার দিতে বাধ্য করছেন । k
চাও শো

@ ছাএক্সু: আমার মনে হয় না: লোকদের কোনওরকম ব্লকের নিয়োগে, অ্যাসাইনমেন্টটি ব্যক্তির দ্বারা ক্রমবর্ধমান ক্রমে তালিকাভুক্ত করা যেতে পারে। (লক্ষ্য করুন কিছুই একজন ব্যক্তির নিষিদ্ধ যে একটি ব্লক এ বিভক্তি নিয়োগ হচ্ছে , যেখানে প্রথম ব্লক ব্যক্তি নির্ধারিত হয় ।) কিন্তু আমি একটি অনুভূতি আছে যে সমস্যা যে আমার প্রথম আক্রান্ত একটি নিকট আত্মীয় j < j j ii>ij<jji
প্রয়াসও

@j_random_hacker খরচ যে করতে হবে হতে অনুকূল দ্রবণে তম ব্যক্তি। sivj isii
চাও শো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.