2
แบ่งข้อความอย่างสม่ำเสมอเป็นจำนวนบรรทัด
มีอัลกอริธึมเชิงเส้นเวลาสำหรับการแบ่งข้อความอย่างสม่ำเสมอในบรรทัดที่มีความกว้างสูงสุด มันใช้ SMAWK (หรือ Knuth & Plass) และ "สม่ำเสมอ" หมายถึง: http://th.wikipedia.org/wiki/Word_wrap#Minimum_raggedness มีอัลกอริทึมหรือฟังก์ชั่นต้นทุนเว้าสำหรับอัลกอริทึมด้านบนซึ่งจะคำนึงถึงจำนวนบรรทัดที่ฉันต้องการให้แบ่งข้อความแทนความกว้างของบรรทัดสูงสุดหรือไม่ นอกจากนี้ในเวลาเชิงเส้น? กล่าวอีกนัยหนึ่งฉันกำลังมองหาอัลกอริทึมการแบ่งบรรทัด (หรือการสร้างย่อหน้าหรือการตัดคำ) ซึ่งอินพุตเป็นจำนวนบรรทัดที่ต้องการไม่ใช่ความกว้างของเส้นที่ต้องการ เพียงเพื่ออธิบายวิธีการที่ใช้ไม่ได้จริง: มีคำ N และช่องว่าง N-1 อยู่ระหว่างแต่ละคำคู่ M คือจำนวนบรรทัดที่ต้องการ (M <= N) หลังจากแต่ละช่องว่างอาจมีการแบ่งบรรทัดมากที่สุด (อาจเป็นศูนย์) ตอนนี้อัลกอริทึมจะพยายามหยุดพักในชุดค่าผสมที่เป็นไปได้แต่ละอันคำนวณ "raggedness" และคืนค่าที่ดีที่สุด ทำอย่างไรให้เร็วขึ้นมาก? นอกจากนี้ปัญหาดังกล่าวมีชื่อหรือไม่ ปัญหา "ครอบครัว" คืออะไร (เช่น "การจัดเก็บถังขยะ") หากฉันไม่ต้องการโซลูชันที่ดีที่สุดอย่างสมบูรณ์แบบเป็นเครื่องที่ดีมากเป็นไปได้ไหมที่จะสามารถแก้ปัญหาได้เร็วขึ้น? (ฮิวริสติกบางรูปแบบสามารถใช้งานได้ถ้าสำหรับอินพุตที่กำหนดจะมีวิธีแก้ปัญหาย่อยที่ดีที่สุดเสมอ) ปรับปรุง จันทรา Chekuri แนะนำร้อง "ปัญหาใน Kleinberg และบท Tardos ในการเขียนโปรแกรมแบบไดนามิก" …