การสั่งซื้อองค์ประกอบเพื่อให้องค์ประกอบบางอย่างไม่ได้อยู่ระหว่างคนอื่น


10

ได้รับจำนวนเต็มnและเซตของจำนวนเต็มสามเท่าของจำนวนเต็ม ค้นหาอัลกอริธึมที่พบการเปลี่ยนแปลงของเซตเช่นนั้น หรือกำหนดอย่างถูกต้องว่าไม่มีการเปลี่ยนแปลงดังกล่าว อย่างเป็นทางการน้อยเราต้องการเรียงลำดับหมายเลข 1 ถึงอีกครั้ง แต่ละสามในระบุว่าต้องปรากฏก่อนkในลำดับใหม่ แต่jต้องไม่ปรากฏระหว่างiπ

S{(i,j,k)1i,j,kn,ij,jk,ik},
π{1,2,,n}
(i,j,k)S(π(j)<π(i)<π(k))  (π(i)<π(k)<π(j))
n(i,j,k)Sikjiและk .

ตัวอย่างที่ 1

สมมติว่าn=5และS={(1,2,3),(2,3,4)}\} แล้วก็

  • π=(5,4,3,2,1)คือไม่การเปลี่ยนแปลงที่ถูกต้องเพราะ(1,2,3)Sแต่π(1)>π(3)(3)

  • π=(1,2,4,5,3)คือไม่การเปลี่ยนแปลงที่ถูกต้องเพราะ(1,2,3)Sแต่π(1)<π(3)<π(5)(5)

  • (2,4,1,3,5)เป็นการเปลี่ยนแปลงที่ถูกต้อง

ตัวอย่างที่ 2

หากและจะไม่มีการเปลี่ยนแปลงที่ถูกต้อง ในทำนองเดียวกันไม่มีการเปลี่ยนแปลงที่ถูกต้องหากและ ( ฉันคิดว่าอาจจะทำผิดพลาดที่นี่)n=5S={(1,2,3),(2,1,3)}n=5S={(1,2,3),(3,4,5),(2,5,3),(2,1,4)}

โบนัส: คุณสมบัติอะไรของพิจารณาว่าเป็นไปได้หรือไม่S


ทำไมไม่ใช้ถ้อยคำสภาพที่สองเป็น ? จากนั้นคุณมีปัญหาความพึงพอใจข้อ จำกัด ตรงไปตรงมามากหรือน้อย (โปรดทราบว่าฉันได้ทำให้เงื่อนไขง่ายขึ้นตามสมมติฐานอื่น ๆ )(σmi,σmj,σmk)S(i>jj>k)
Dave Clarke

BTW: แรงจูงใจสำหรับปัญหานี้คืออะไร?
Dave Clarke

@DaveClarke ดูการแก้ไขของฉัน ปัญหานี้เกิดจากการอภิปรายโดยรอบปัญหาการจัดตารางเวลาฉันกำลังพูดคุยกับนักเรียนคนอื่น ๆ ในห้องแล็บ โดยพื้นฐานแล้วแนวคิดคือคุณมีงานจำนวนมากบางงานต้องดำเนินการตามลำดับที่แน่นอน อย่างไรก็ตามคุณไม่ต้องการให้บางงานถูกกำหนดเวลาระหว่างงานในลำดับอาจเป็นเพราะเหตุผลที่ลึกซึ้งมาก
Patrick87

3
ทำไมต้อง sigmas เพียงแค่กำหนด } ตัวห้อยที่ซ้อนกันทำให้ลูกน้อยของพระเยซูร้องไห้ Σ={1,2,,n}
JeffE

@JeffE สุจริตฉันชอบข้อแก้ตัวที่จะเล่นกับสิ่งที่สมการ มีบางสิ่งบางอย่างเป็นเพียงไส้ความพึงพอใจเกี่ยวกับการเขียนโค้ดที่รวบรวมไปเล็ก ๆ เหล่านั้น 's อย่าเอามันไปจากฉัน σ
Patrick87

คำตอบ:


3

นี่คืออัลกอริทึมไร้เดียงสา ในที่สุดมันก็ขึ้นอยู่กับแรงเดรัจฉาน แต่อาจทำงานได้ดีในบางครั้ง

แต่ละข้อ จำกัด ประกอบด้วยสอง conjuncts; ขอเรียกว่า TYPE-,ฉัน< kและ TYPE- B , ¬ ( ฉัน< J < k ) แต่ละ TYPE- Bจำกัด สามารถเขียนได้เท่าเป็นร้าวฉานฉัน> เจJ > kอาศัยความจริงที่ว่าฉันJ , J k(σmi,σmj,σmk)Si<k¬(i<j<k)Ai<kB¬(i<j<k)Bi>jj>kij,jk

  1. เก็บ TYPE- ทั้งหมดจำกัด เรียกสิ่งนี้Θ ตรวจสอบว่าสอดคล้องกันหรือไม่นั่นคือการทำให้เป็นเส้นตรงของการสั่งซื้อ สิ่งนี้ใช้เวลาO ( | S | ) - เวลาในจำนวนข้อ จำกัด โดยใช้การเรียงโทโพโลยีAΘO(|S|)
  2. สำหรับแต่ละ disjuncts ใน TYPE- ข้อ จำกัด ตรวจสอบว่ามีความสอดคล้องกับการสั่งซื้อบางส่วนΘ หากไม่สอดคล้องกันให้นำส่วนแยกออก หากการแยกทั้งสองไม่สอดคล้องกับΘแล้วล้มเหลว เมื่อใดก็ตามที่เพียงหนึ่ง TYPE- Bจำกัด จะถูกลบออกเพิ่มหนึ่งเหลือΘ ขั้นตอนนี้เป็นO ( | S | 2 )BΘΘBΘO(|S|2)
  3. ตอนนี้มีอัลกอริทึมที่ชัดเจนสำหรับการค้นหาโซลูชันคือการพิจารณาชุดค่าผสมทั้งหมดของคู่ตัวแยกประเภทและทดสอบความสอดคล้องกับΘแต่สิ่งนี้อธิบายได้อย่างชัดเจนใน| S | . หนึ่งฮิวริสติกในการปรับปรุงประสิทธิภาพคือการรักษาความแตกต่างระหว่างคู่ประเภทBในขณะที่กิ่งก้านของต้นไม้ --- คู่หนึ่งสร้างรากมันคือลูกที่ได้รับจากคู่ที่สองลูกที่สามเป็นต้น เมื่อใช้โครงสร้างข้อมูลนี้จะพบวิธีแก้ปัญหาโดยการสำรวจต้นไม้ในลักษณะที่ลึกเป็นอันดับแรก ทุกครั้งที่มีการเพิ่มข้อ จำกัด ใหม่ (โดยใช้ป้ายกำกับบนสาขา) คุณสามารถตรวจสอบความสอดคล้องได้ สามารถตัดทรีย่อยที่ไม่สอดคล้องกันได้BΘ|S|
    B
  4. หากใบของต้นไม้ที่จะมาถึงแล้วเรามีชุดสอดคล้องของข้อ จำกัด ประกอบด้วยทั้งหมดของ TYPE- จำกัด และเป็นหนึ่งเนื่องของ TYPE- Bจำกัด ให้ผลลัพธ์เป็นเส้นตรงเพื่อให้ได้ผลลัพธ์ตามที่ต้องการAB

วิธีการที่ฉันชอบจริง ๆ แล้วจะเข้ารหัสมันเป็นชุดของข้อ จำกัด และใช้ตัวแก้ข้อ จำกัด เช่น Choco ฉันจะแนะนำตัวแปรจำนวนเต็มตัวx ฉันในช่วง[ 0 , n - 1 ]และต้องการให้มันแตกต่างกันทั้งหมด จากนั้นฉันจะเข้ารหัสข้อ จำกัด แต่ละข้อด้านบนเป็นข้อ จำกัด โดยตรงแล้วให้ Choco ทำธุรกิจnxi[0,n1]


1

นี่คือคำตอบบางส่วน:

หากคุณลบข้อ จำกัดในแต่ละสามแล้วปัญหาของคุณจะกลายเป็นปัญหาที่เกิดขึ้นไม่ Betweeness ซึ่งเป็นN Pที่สมบูรณ์และมีเป็นที่รู้จักกันกลไกที่มีประสิทธิภาพไม่มีปัญหาดังกล่าว แต่ด้วยข้อ จำกัด ของi < kมันอาจบังคับให้โครงสร้างที่ดีบางอย่างซึ่งสามารถถูกใช้เพื่อค้นหาอัลกอริทึมเวลาพหุนามสำหรับปัญหาของคุณi<kNPi<k

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.