คำถามติดแท็ก scheduling

2
ขายบล็อกของช่วงเวลา
รับช่วงเวลาที่คนต้องการซื้อคนที่มีค่าแต่ละครั้งสล็อตเจแต่ละคนสามารถซื้อช่วงเวลาหนึ่งช่วงติดต่อกันเท่านั้นซึ่งอาจว่างเปล่าnnnkkkiiih(i,j)≥0h(i,j)≥0h(i,j)\geq 0jjj มีวิธีคิดแบบพหุนามเวลาในการคำนวณมูลค่าสูงสุดที่ผู้ขายสามารถทำได้หรือไม่? เราสามารถให้แต่ละช่วงเวลาแก่บุคคลที่เห็นคุณค่าได้มากที่สุด นอกจากนี้หากเราแก้ไขลำดับของช่วงเวลาของผู้คนดังนั้นการเขียนโปรแกรมแบบไดนามิกสามารถใช้เพื่อแก้ปัญหาสำหรับค่าสูงสุดของคนแรกที่ซื้อเวลาครั้งแรก สล็อตkkk0≤i≤k0≤i≤k0\le i \le k0≤j≤n0≤j≤n0\le j \le n

2
ความแปรปรวนของเวลาในการทำภารกิจมีผลต่อการเลื่อนอย่างไร
สมมติว่าเรามีคอลเลกชันขนาดใหญ่ของงานτ1,τ2,...,τnτ1,τ2,...,τn\tau_1, \tau_2, ..., \tau_nและคอลเล็กชันของโปรเซสเซอร์ (ในแง่ของประสิทธิภาพ) ที่เหมือนกันซึ่งทำงานได้อย่างสมบูรณ์แบบขนาน สำหรับสถานการณ์ที่น่าสนใจที่เราอาจคิดn แต่ละใช้เวลา / รอบในการดำเนินการให้เสร็จสมบูรณ์เมื่อกำหนดให้กับโปรเซสเซอร์และเมื่อได้รับมอบหมายจะไม่สามารถกำหนดใหม่ได้จนกว่าจะเสร็จสมบูรณ์ สมมติว่าแต่ละτ ฉันใช้เวลาระยะเวลา / รอบρ1,ρ2,...,ρmρ1,ρ2,...,ρm\rho_1, \rho_2, ..., \rho_mm≤nm≤nm \leq nτiτi\tau_iρjρj\rho_jτiτi\tau_iXiXiX_iซึ่งไม่ทราบล่วงหน้านำมาจากการกระจายแบบสุ่มโดยสิ้นเชิง สำหรับคำถามนี้เรายังสามารถสันนิษฐานได้ว่าการกระจายง่าย:P(Xi=1)=P(Xi=5)=1/2P(Xi=1)=P(Xi=5)=1/2P(X_i = 1) = P(X_i = 5) = 1/2และทุกXiXiX_iมีความเป็นอิสระจากจำนวน ดังนั้นμi=3μi=3\mu_i = 3และσ2=4σ2=4\sigma^2 = 4 4 สมมติว่าในเวลา / รอบที่ 0 งานทั้งหมดจะถูกกำหนดอย่างสม่ำเสมอเท่าที่จะเป็นไปได้สำหรับตัวประมวลผลทั้งหมดโดยการสุ่มอย่างสม่ำเสมอ ดังนั้นโปรเซสเซอร์แต่ละชิ้นρjρj\rho_jจึงได้รับมอบหมายงานn/mn/mn/m (เราสามารถสมมติm|nm|nm | nสำหรับวัตถุประสงค์ของคำถามได้เช่นกัน) เราเรียกว่าตัวเลื่อนทำให้เวลา / รอบที่ตัวประมวลผลตัวสุดท้ายρ∗ρ∗\rho^*ให้เสร็จตามที่ได้รับมอบหมายจนเสร็จงานที่ได้รับมอบหมาย คำถามแรก: ในฐานะที่เป็นฟังก์ชันของmmm , nnn …

6
การหาค่า XOR สูงสุดของตัวเลขสองตัวในช่วงเวลาหนึ่ง: เราจะทำได้ดีกว่าสมการกำลังสองหรือไม่?
สมมติว่าเรากำลังได้รับสองหมายเลขและและที่เราต้องการที่จะหาสำหรับL \ le i, \, J \ le Rlllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r อัลกอริทึมnaïveเพียงตรวจสอบคู่ที่เป็นไปได้ทั้งหมด เช่นในทับทิมเรามี: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end ฉันรู้สึกว่าเราสามารถทำได้ดีกว่าสมการกำลังสอง มีอัลกอริทึมที่ดีกว่าสำหรับปัญหานี้หรือไม่?

1
รับรายการแบบขนานในการแก้ปัญหาการพึ่งพา
ฉันได้จัดเรียงทอพอโลยีตามบทความ Wikipediaซึ่งฉันใช้สำหรับการแก้ปัญหาการพึ่งพา แต่มันจะส่งกลับรายการเชิงเส้น อัลกอริทึมชนิดใดที่ฉันสามารถใช้เพื่อค้นหาเส้นทางที่เป็นอิสระ

2
กรณีพิเศษของปัญหาการตั้งเวลาสามารถแก้ไขได้ในเวลาเชิงเส้นหรือไม่?
อลิซนักเรียนทำการบ้านมากมายในสัปดาห์หน้า การบ้านแต่ละรายการจะใช้เวลาหนึ่งวัน แต่ละรายการมีกำหนดเวลาและผลกระทบทางลบต่อผลการเรียนของเธอ (สมมติว่าเป็นจำนวนจริงคะแนนโบนัสสำหรับการเปรียบเทียบเท่านั้น) หากเธอพลาดกำหนดเวลา เขียนฟังก์ชั่นที่ให้รายการของ (กำหนดเวลาผลกระทบระดับคะแนน) กำหนดตารางเวลาสำหรับการทำการบ้านในวันที่ลดผลรวมของผลกระทบที่ไม่ดีต่อเกรดของเธอ การบ้านทั้งหมดจะต้องทำในที่สุด แต่ถ้าเธอพลาดกำหนดเวลาสำหรับรายการมันไม่สำคัญว่าเธอจะเปิดช้าแค่ไหน ในสูตรทางเลือก: ACME corp ต้องการส่งน้ำให้กับลูกค้า พวกเขาทั้งหมดอาศัยอยู่ตามถนนสายเดียว ACME มีหลุมหลายแห่งกระจายอยู่ตามถนน แต่ละบ่อมีน้ำเพียงพอสำหรับลูกค้าหนึ่งราย ลูกค้าเสนอราคาเป็นจำนวนเงินที่แตกต่างกัน น้ำไหลลงเขาเท่านั้น เพิ่มรายได้ให้สูงสุดด้วยการเลือกลูกค้าที่จะจัดหา เราสามารถจัดเรียงกำหนดเวลาโดยใช้การจัดเรียงกลุ่ม (หรือสมมติว่าเราได้เรียงลำดับตามกำหนดเวลาแล้ว) เราสามารถแก้ปัญหาได้อย่างง่ายดายด้วยอัลกอริธึมโลภหากเราจัดเรียงโดยการกระทบจากระดับสูงสุดก่อน ทางออกนั้นจะไม่ดีไปกว่า O (n log n) ได้รับแรงบันดาลใจจากMedian of MediansและอัลกอริทึมSpanning Tree แบบขั้นต่ำแบบเส้นตรงฉันสงสัยว่าเราสามารถแก้ปัญหาการตั้งเวลา / การไหลแบบง่าย ๆ ของฉันในเวลาเชิงเส้น (แบบสุ่ม?) ได้เช่นกัน ฉันกำลังมองหา: อัลกอริทึมเวลาเชิงเส้น (อาจสุ่ม) หรือมิฉะนั้นก็โต้แย้งว่าไม่สามารถใช้เวลาเชิงเส้นได้ ในฐานะที่เป็นหินก้าว: ฉันได้พิสูจน์แล้วว่าเพิ่งรู้ว่ารายการใดที่สามารถทำได้ก่อนกำหนดเวลาของพวกเขาเพียงพอที่จะสร้างตารางเวลาที่สมบูรณ์ในเวลาเชิงเส้น (ข้อมูลเชิงลึกนั้นเป็นรากฐานของสูตรที่สองที่ฉันถามเกี่ยวกับใบรับรองเท่านั้น) โปรแกรมเชิงเส้นตรง (integral!) สามารถจำลองปัญหานี้ได้ …

2
การจัดตารางเวลางานที่มีปัญหาคอขวด
ได้รับงานJ 1 , J 2 , . . , J n , แต่ละงานต้องใช้T i > 0 , T i ∈ Nเวลาให้เสร็จสมบูรณ์nnnJ1,J2,...,JnJ1,J2,...,JnJ_1,J_2,...,J_nTi>0,Ti∈NTi>0,Ti∈NT_i > 0, T_i \in N แต่ละงานจะต้องได้รับการประมวลผลล่วงหน้าและประมวลผลภายหลังโดยเครื่องเดียว M ที่สามารถจัดการงานได้ครั้งละ 1 งานเท่านั้นและเฟสทั้งสองต้องใช้เวลา 1 หน่วย หลังจากประมวลผลล่วงหน้าแล้วงานจะถูกส่งไปยังเครื่องที่มีกำลังไฟไม่ จำกัด (ที่สามารถจัดการกับงานได้ไม่ จำกัด จำนวน) และมันจะพร้อมในเวลาT iจากนั้นจะต้องส่ง ( ทันที ) ไปยังเครื่อง M อีกครั้งสำหรับการประมวลผลภายหลังJiJiJ_iTiTiT_i ปัญหาการตัดสินใจที่เกี่ยวข้องคือ: อินพุต:เวลาในการประมวลผลของงานN , จำนวนเต็มK …

2
การสั่งซื้อองค์ประกอบเพื่อให้องค์ประกอบบางอย่างไม่ได้อยู่ระหว่างคนอื่น
ได้รับจำนวนเต็มnnnและเซตของจำนวนเต็มสามเท่าของจำนวนเต็ม ค้นหาอัลกอริธึมที่พบการเปลี่ยนแปลงของเซตเช่นนั้น หรือกำหนดอย่างถูกต้องว่าไม่มีการเปลี่ยนแปลงดังกล่าว อย่างเป็นทางการน้อยเราต้องการเรียงลำดับหมายเลข 1 ถึงอีกครั้ง แต่ละสามในระบุว่าต้องปรากฏก่อนkในลำดับใหม่ แต่jต้องไม่ปรากฏระหว่างiπS⊆{(i,j,k)∣1≤i,j,k≤n,i≠j,j≠k,i≠k},S⊆{(i,j,k)∣1≤i,j,k≤n,i≠j,j≠k,i≠k},S \subseteq \{(i, j, k) \mid 1\le i,j,k \le n, i \neq j, j \neq k, i \neq k\},ππ\pi{1,2,…,n}{1,2,…,n}\{1, 2, \dots, n\}(i,j,k)∈S⟹(π(j)&lt;π(i)&lt;π(k)) ∨ (π(i)&lt;π(k)&lt;π(j))(i,j,k)∈S⟹(π(j)&lt;π(i)&lt;π(k)) ∨ (π(i)&lt;π(k)&lt;π(j))(i,j,k) \in S \implies (\pi(j)<\pi(i)<\pi(k)) ~\lor~ (\pi(i)<\pi(k)<\pi(j))nnn(i,j,k)(i,j,k)(i,j,k)SSSiiikkkjjjiiiและkkk . ตัวอย่างที่ 1 สมมติว่าn=5n=5n=5และS={(1,2,3),(2,3,4)}S={(1,2,3),(2,3,4)}S = \{(1,2,3), (2,3,4)\}\} แล้วก็ π=(5,4,3,2,1)π=(5,4,3,2,1)\pi = (5, …

3
ค้นหาว่าใครจะซื้อครัวซองต์บ้าง
ทีมได้ตัดสินใจแล้วว่าทุกคนควรนำครัวซองต์มาให้ทุกคน ไม่ควรเป็นคนคนเดียวกันทุกครั้งดังนั้นควรมีระบบในการพิจารณาว่าใครเป็นเทิร์นถัดไป วัตถุประสงค์ของคำถามนี้คือการกำหนดอัลกอริทึมสำหรับการตัดสินใจว่าใครจะเป็นคนเปิดครัวซองต์ในวันพรุ่งนี้ ข้อ จำกัด สมมติฐานและวัตถุประสงค์: ที่เปิดก็จะนำครัวซองต์จะถูกกำหนดในช่วงบ่ายก่อนหน้า ในบางวันบางคนไม่อยู่ อัลกอริทึมต้องเลือกใครบางคนที่จะนำเสนอในวันนั้น สมมติว่าการขาดทั้งหมดเป็นที่ทราบล่วงหน้าหนึ่งวันดังนั้นผู้ซื้อครัวซองต์สามารถตัดสินใจได้ในช่วงบ่ายก่อนหน้านี้ โดยรวมแล้วคนส่วนใหญ่อยู่ในเกือบทุกวัน เพื่อผลประโยชน์ของความเป็นธรรมทุกคนควรซื้อครัวซองต์หลายครั้ง (โดยทั่วไปสมมติว่าสมาชิกทุกคนในทีมมีจำนวนเงินเท่ากันเพื่อใช้จ่ายกับครัวซองต์) มันจะเป็นการดีถ้ามีองค์ประกอบของการสุ่มหรือการรับรู้อย่างน้อยเพื่อที่จะบรรเทาความเบื่อของบัญชีรายชื่อ นี่ไม่ใช่ข้อ จำกัด อย่างหนัก: มันเป็นการตัดสินใจเชิงสุนทรียะมากกว่า อย่างไรก็ตามบุคคลเดียวกันไม่ควรเลือกสองครั้งติดต่อกัน บุคคลที่นำครัวซองต์มาด้วยควรทราบล่วงหน้า ดังนั้นหากบุคคล P ต้องนำครัวซองต์ในวันที่ D ดังนั้นความจริงข้อนี้ควรถูกกำหนดในวันก่อนหน้าซึ่งมีบุคคล P อยู่ด้วย ตัวอย่างเช่นหากพนักงานเก็บเงินตัวสำรองถูกกำหนดวันก่อนเสมอควรเป็นหนึ่งในบุคคลที่เข้าร่วมเมื่อวานนี้ จำนวนสมาชิกในทีมมีขนาดเล็กเพียงพอที่ทรัพยากรการจัดเก็บและการคำนวณมีไม่ จำกัด อย่างมีประสิทธิภาพ ตัวอย่างเช่นอัลกอริทึมสามารถพึ่งพาประวัติที่สมบูรณ์ของผู้ที่นำครัวซองต์เมื่อในอดีต การคำนวณไม่กี่นาทีบนพีซีที่รวดเร็วทุกวันก็โอเค นี่เป็นรูปแบบของปัญหาในโลกแห่งความเป็นจริงดังนั้นคุณมีอิสระที่จะท้าทายหรือปรับแต่งสมมติฐานหากคุณคิดว่าพวกเขาทำแบบจำลองสถานการณ์ได้ดีขึ้น แหล่งกำเนิดสินค้า: หาผู้ที่จะซื้อครัวซองต์โดยFlorian Margaine การปฏิรูปของฉันที่นี่มีข้อกำหนดแตกต่างกันเล็กน้อย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.